@neelegirl/wa-api 1.0.11 → 1.0.13

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.
@@ -49,29 +49,9 @@ const sessions = new Map();
49
49
  const callback = new Map();
50
50
  const retryCount = new Map();
51
51
  let stock;
52
- const CURRENT_WA_API_VERSION = "1.0.10";
53
- // Globale Flag um sicherzustellen, dass Update-Benachrichtigung nur einmal angezeigt wird
54
- if (typeof global !== 'undefined' && !global.__waApiUpdateCheckShown) {
55
- global.__waApiUpdateCheckShown = false;
56
- }
57
- // Version-Vergleichsfunktion (semantische Versionierung)
58
- const compareVersions = (v1, v2) => {
59
- const parts1 = v1.split('.').map(Number);
60
- const parts2 = v2.split('.').map(Number);
61
- for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {
62
- const part1 = parts1[i] || 0;
63
- const part2 = parts2[i] || 0;
64
- if (part1 > part2) return 1;
65
- if (part1 < part2) return -1;
66
- }
67
- return 0;
68
- };
52
+ const CURRENT_WA_API_VERSION = "1.0.13";
69
53
  // Update-Check-Funktion für WA-API
70
54
  const checkWaApiUpdate = () => {
71
- // Wenn bereits angezeigt, nicht erneut prüfen
72
- if (typeof global !== 'undefined' && global.__waApiUpdateCheckShown) {
73
- return Promise.resolve(null);
74
- }
75
55
  return new Promise((resolve) => {
76
56
  const url = `https://registry.npmjs.org/@neelegirl/wa-api/latest`;
77
57
  https_1.default.get(url, { timeout: 5000 }, (res) => {
@@ -83,13 +63,9 @@ const checkWaApiUpdate = () => {
83
63
  try {
84
64
  const packageInfo = JSON.parse(data);
85
65
  const latestVersion = packageInfo.version;
86
- // Nur anzeigen wenn latestVersion wirklich NEUER ist als die aktuelle Version
87
- if (latestVersion && compareVersions(latestVersion, CURRENT_WA_API_VERSION) > 0) {
66
+ if (latestVersion && latestVersion !== CURRENT_WA_API_VERSION) {
88
67
  const updateMessage = `\n╔════════════════════════════════════════╗\n║ 🔔 NEUES UPDATE VERFÜGBAR! 🔔 ║\n╠════════════════════════════════════════╣\n║ @neelegirl/wa-api ║\n║ Aktuelle Version: ${CURRENT_WA_API_VERSION.padEnd(20)} ║\n║ Neue Version: ${latestVersion.padEnd(20)} ║\n║ ║\n║ Bitte aktualisiere: ║\n║ npm install @neelegirl/wa-api@latest ║\n╚════════════════════════════════════════╝\n`;
89
68
  console.log(updateMessage);
90
- if (typeof global !== 'undefined') {
91
- global.__waApiUpdateCheckShown = true; // Markiere als angezeigt
92
- }
93
69
  resolve({
94
70
  current: CURRENT_WA_API_VERSION,
95
71
  latest: latestVersion,
@@ -97,10 +73,8 @@ const checkWaApiUpdate = () => {
97
73
  });
98
74
  }
99
75
  else {
100
- // Kein Update verfügbar oder lokale Version ist neuer/gleich
101
- if (typeof global !== 'undefined') {
102
- global.__waApiUpdateCheckShown = true; // Markiere als geprüft
103
- }
76
+ const currentVersionMessage = `\n╔════════════════════════════════════════╗\n║ ✅ Du nutzt gerade die aktuelle ║\n║ Version von @neelegirl/wa-api ║\n║ ║\n║ Wir informieren dich, wenn es ein ║\n║ Update gibt. ║\n╚════════════════════════════════════════╝\n`;
77
+ console.log(currentVersionMessage);
104
78
  resolve({
105
79
  current: CURRENT_WA_API_VERSION,
106
80
  latest: latestVersion,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neelegirl/wa-api",
3
- "version": "1.0.11",
3
+ "version": "1.0.13",
4
4
  "description": "Multi Session Whatsapp Library",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -27,7 +27,7 @@
27
27
  "jest": "^29.0.0",
28
28
  "@adiwajshing/keyed-db": "^0.2.4",
29
29
  "@hapi/boom": "^10.0.1",
30
- "@neelegirl/baileys": "^1.6.7",
30
+ "@neelegirl/baileys": "^1.6.9",
31
31
  "mime": "^3.0.0",
32
32
  "pino": "^8.11.0",
33
33
  "qrcode-terminal": "^0.12.0"
package/readme.md CHANGED
@@ -1,86 +1,56 @@
1
- <div align="center">
2
-
3
- # 💌 @neelegirl/wa-api 💌
4
-
5
- ### ✨ *Die elegante & simple WhatsApp-Bibliothek* ✨
6
- ### 🎀 *Zur Verwaltung mehrerer Sessions* 🎀
7
-
8
- [![Version](https://img.shields.io/badge/Version-1.0.10-pink?style=for-the-badge&logo=github)](https://github.com/neelegirl/wa-api)
9
- [![npm](https://img.shields.io/npm/v/@neelegirl/wa-api?style=for-the-badge&color=pink&logo=npm)](https://www.npmjs.com/package/@neelegirl/wa-api)
10
- [![Downloads](https://img.shields.io/npm/dw/@neelegirl/wa-api?style=for-the-badge&color=pink&logo=npm)](https://www.npmjs.com/package/@neelegirl/wa-api)
11
- [![License](https://img.shields.io/github/license/neelegirl/wa-api?style=for-the-badge&color=pink)](LICENSE)
12
- [![Baileys](https://img.shields.io/badge/Baileys-1.6.6-pink?style=for-the-badge)](https://www.npmjs.com/package/@neelegirl/baileys)
13
-
14
- ---
15
-
16
1
  <p align="center">
17
2
  <img src="https://files.catbox.moe/63h8xn.jpeg" width="720" alt="Neele WA-API Header" />
18
3
  </p>
19
4
 
20
- **🌟 Kompatibel mit @neelegirl/baileys 1.6.6 🌟**
5
+ # 💌 @neelegirl/wa-api **onimai**
21
6
 
22
- [🚀 Installation](#-installation) • [📖 Quickstart](#-quickstart-guide) • [Features](#-features) [📚 Dokumentation](#-dokumentation) • [💬 Support](#-support--community)
7
+ *Die elegante & simple WhatsApp-Bibliothek*
8
+ zur Verwaltung **mehrerer Sessions** – mit
9
+ 💎 **universeller `sendMessage`** und direkter
10
+ ⚡ **`relayMessage`-Power** für Profis.
23
11
 
24
- </div>
12
+ <p align="center"><strong>🌟 Version 1.0.9 – Kompatibel mit @neelegirl/baileys 1.6.4 🌟</strong></p>
25
13
 
26
14
  ---
27
15
 
28
- ## 📋 Inhaltsverzeichnis
29
-
30
- - [✨ Was ist @neelegirl/wa-api?](#-was-ist-neelegirlwa-api)
31
- - [🚀 Installation](#-installation)
32
- - [📖 Quickstart Guide](#-quickstart-guide)
33
- - [✨ Features](#-features)
34
- - [📲 Session Management](#-session-management)
35
- - [💬 Nachrichten senden](#-nachrichten-senden)
36
- - [🎧 Event Listener](#-event-listener)
37
- - [🔧 Erweiterte Funktionen](#-erweiterte-funktionen)
38
- - [📚 Vollständige API-Referenz](#-vollständige-api-referenz)
39
- - [⚠️ Wichtige Hinweise](#️-wichtige-hinweise)
40
- - [💬 Support & Community](#-support--community)
16
+ <p align="center">
17
+ 🌟 <b>Ja, jetzt ist endlich mal wieder eine neue Funktion raus!</b> 🌟<br/>
18
+ 💫 <b>Ultramäßig cool, ultramäßig geil!</b> 💫<br/>
19
+ <b>Die Daily Girl hat wieder was Neues für euch!</b> ✨
20
+ </p>
41
21
 
42
22
  ---
43
23
 
44
- ## Was ist @neelegirl/wa-api?
45
-
46
- <div align="center">
47
-
48
- ### 🎯 **Die perfekte Lösung für Multi-Session WhatsApp Bots** 🎯
24
+ > ⚠️ **Hinweis:**
25
+ > Diese Library funktioniert **ausschließlich** mit **@neelegirl/baileys** und ist auch **mit LID kompatibel**.
26
+ > 🔒 Andere Baileys-Forks oder Varianten sind **nicht unterstützt**.
49
27
 
50
- </div>
28
+ ---
51
29
 
52
- | Feature | Beschreibung | Status |
53
- |---------|-------------|--------|
54
- | 🔀 **Multi-Session** | Mehrere WhatsApp-Sessions gleichzeitig | ✅ |
55
- | 💎 **Universal API** | Einfache `sendMessage` für alle Typen | ✅ |
56
- | ⚡ **RelayMessage** | Direkte Nachrichten-Weiterleitung | ✅ |
57
- | 🔄 **Auto-Reconnect** | Automatisches Wiederverbinden | ✅ |
58
- | 📱 **QR-Code** | Schöne QR-Code-Anzeige | ✅ |
59
- | 🔔 **Auto-Updates** | Automatische Update-Prüfung | ✅ |
60
- | 🧩 **LID-Support** | Vollständige LID-Kompatibilität | ✅ |
61
- | 🎨 **Einfach** | Simple API für Anfänger | ✅ |
30
+ ## 📚 Inhaltsverzeichnis
62
31
 
63
- > ⚠️ **Wichtig**: Diese Library funktioniert **ausschließlich** mit **@neelegirl/baileys**!
32
+ 1. [📦 Installation](#-installation)
33
+ 2. [🔌 Import & Setup](#-import--setup)
34
+ 3. [📲 Session Management](#-session-management)
35
+ 4. [💬 Nachrichten senden (`sendMessage`)](#-nachrichten-senden-sendmessage)
36
+ 5. [🔧 Spezialfunktionen (`relayMessage`)](#-spezialfunktionen-relaymessage)
37
+ 6. [🎧 Listener](#-listener)
38
+ 7. [🚨 Fehlerbehandlung](#-fehlerbehandlung)
39
+ 8. [👩‍💻 Autorin & Support](#-autorin--support)
64
40
 
65
41
  ---
66
42
 
67
- ## 🚀 Installation
68
-
69
- ### 📦 Mit npm
43
+ ## 📦 Installation
70
44
 
71
45
  ```bash
72
46
  npm install @neelegirl/wa-api@latest
73
47
  ```
74
48
 
75
- ### 📦 Mit yarn
76
-
77
- ```bash
78
- yarn add @neelegirl/wa-api@latest
79
- ```
49
+ ---
80
50
 
81
- ### 📥 Import
51
+ ## 🔌 Import & Setup
82
52
 
83
- ```javascript
53
+ ```js
84
54
  // CommonJS
85
55
  const onimai = require('@neelegirl/wa-api');
86
56
 
@@ -90,577 +60,106 @@ import * as onimai from '@neelegirl/wa-api';
90
60
 
91
61
  ---
92
62
 
93
- ## 📖 Quickstart Guide
94
-
95
- ### 🎯 **Für Anfänger: Dein erster Multi-Session Bot**
96
-
97
- ```javascript
98
- const onimai = require('@neelegirl/wa-api');
99
-
100
- // 1️⃣ Session starten (mit QR-Code)
101
- async function start() {
102
- // Session starten
103
- await onimai.startSession('meine-session', {
104
- printQR: true // QR-Code anzeigen
105
- });
106
-
107
- console.log('✅ Session gestartet!');
108
- }
109
-
110
- // 2️⃣ Nachrichten empfangen
111
- onimai.onMessageReceived(async (msg) => {
112
- const { sessionId, key, message } = msg;
113
- const from = key.remoteJid;
114
- const text = message?.conversation || message?.extendedTextMessage?.text || '';
115
-
116
- // Echo-Bot
117
- if (text.toLowerCase() === 'hallo') {
118
- await onimai.sendMessage(sessionId, from, {
119
- text: '🌸 Hallo! Ich bin ein Onimai-Bot! ✨'
120
- });
121
- }
122
- });
123
-
124
- // 3️⃣ Verbindungs-Status
125
- onimai.onConnected((sessionId) => {
126
- console.log(`✅ Session ${sessionId} ist verbunden!`);
127
- });
128
-
129
- onimai.onDisconnected((sessionId) => {
130
- console.log(`❌ Session ${sessionId} wurde getrennt`);
131
- });
132
-
133
- // Bot starten
134
- start().catch(console.error);
135
- ```
136
-
137
- ### 🎨 **Was passiert hier?**
138
-
139
- 1. **`startSession`**: Startet eine neue WhatsApp-Session mit QR-Code
140
- 2. **`onMessageReceived`**: Event-Handler für neue Nachrichten
141
- 3. **`sendMessage`**: Sendet Nachrichten an einen Chat
142
- 4. **`onConnected`/`onDisconnected`**: Events für Verbindungsstatus
143
-
144
- ---
145
-
146
- ## ✨ Features
147
-
148
- ### 🔥 **Hauptfeatures**
149
-
150
- - ✅ **Multi-Session Support** - Mehrere Sessions gleichzeitig verwalten
151
- - ✅ **Universal sendMessage** - Einfache API für alle Nachrichtentypen
152
- - ✅ **Auto-Reconnect** - Automatisches Wiederverbinden bei Verbindungsabbruch
153
- - ✅ **QR-Code Display** - Schöne QR-Code-Anzeige im Terminal
154
- - ✅ **Auto-Update-Check** - Automatische Prüfung auf neue Versionen
155
- - ✅ **LID-Kompatibel** - Vollständige Linked ID Unterstützung
156
- - ✅ **Session-Management** - Einfaches Starten, Stoppen und Verwalten
157
- - ✅ **Event-System** - Umfangreiches Event-System für alle Events
158
-
159
- ---
160
-
161
63
  ## 📲 Session Management
162
64
 
163
- ### 🚀 **Session starten**
164
-
165
- ```javascript
166
- // Mit QR-Code (Standard)
167
- await onimai.startSession('session1', {
168
- printQR: true // QR-Code im Terminal anzeigen
169
- });
170
-
171
- // Mit Pairing-Code (ohne QR-Code)
65
+ ```js
66
+ await onimai.startSession('session1');
172
67
  await onimai.startSessionWithPairingCode('session2', {
173
- phoneNumber: '491234567890' // Ohne +, mit Ländercode
68
+ phoneNumber: '491234567890'
174
69
  });
175
- ```
176
-
177
- ### 📋 **Sessions verwalten**
178
-
179
- ```javascript
180
- // Alle Sessions auflisten
181
- const allSessions = onimai.getAllSession();
182
- console.log('Aktive Sessions:', allSessions);
183
- // Output: ['session1', 'session2', 'session3']
184
-
185
- // Eine Session abrufen
186
- const session = onimai.getSession('session1');
187
- if (session) {
188
- console.log('Session gefunden!');
189
- }
190
-
191
- // Session löschen
192
- await onimai.deleteSession('session1');
193
- ```
194
-
195
- ### 💾 **Sessions aus Storage laden**
196
-
197
- ```javascript
198
- // Alle gespeicherten Sessions automatisch laden
199
- const loadedSessions = await onimai.loadSessionsFromStorage();
200
- console.log('Geladene Sessions:', loadedSessions);
201
- // Output: ['session1', 'session2']
70
+ const all = onimai.getAllSession();
71
+ const one = onimai.getSession('session1');
72
+ const loaded = await onimai.loadSessionsFromStorage();
202
73
  ```
203
74
 
204
75
  ---
205
76
 
206
- ## 💬 Nachrichten senden
207
-
208
- ### 📨 **Grundlegende Verwendung**
77
+ ## 💬 Nachrichten senden (`sendMessage`)
209
78
 
210
- ```javascript
211
- await onimai.sendMessage(sessionId, jidOrPhone, content, options);
212
- ```
213
-
214
- **Parameter:**
215
- - `sessionId` - Die Session-ID (z.B. 'session1')
216
- - `jidOrPhone` - WhatsApp-ID oder Telefonnummer (z.B. '491234567890@s.whatsapp.net' oder '491234567890')
217
- - `content` - Der Nachrichteninhalt (siehe Beispiele unten)
218
- - `options` - Optionale Parameter (z.B. `{ quoted: message }`)
219
-
220
- ### 📝 **Nachrichtentypen**
221
-
222
- #### 1. **Text-Nachricht**
223
-
224
- ```javascript
225
- await onimai.sendMessage('session1', '491234567890@s.whatsapp.net', {
226
- text: 'Hallo! 🌸'
227
- });
228
- ```
229
-
230
- #### 2. **Bild mit Caption**
231
-
232
- ```javascript
233
- await onimai.sendMessage('session1', '491234567890@s.whatsapp.net', {
234
- image: { url: './bild.jpg' },
235
- caption: 'Schönes Bild! ✨'
236
- });
79
+ ```js
80
+ await onimai1.sendMessage(sessionId, jidOrPhone, content, options);
237
81
  ```
238
82
 
239
- #### 3. **Video**
240
-
241
- ```javascript
242
- await onimai.sendMessage('session1', '491234567890@s.whatsapp.net', {
243
- video: { url: './video.mp4' },
244
- caption: 'Mein Video! 🎬'
245
- });
246
- ```
247
-
248
- #### 4. **GIF (als Video)**
249
-
250
- ```javascript
251
- await onimai.sendMessage('session1', '491234567890@s.whatsapp.net', {
252
- video: { url: './animation.mp4' },
253
- gifPlayback: true, // Wichtig für GIFs!
254
- caption: 'Kawaii GIF! ✨'
255
- });
256
- ```
257
-
258
- #### 5. **Audio/Sprachnachricht**
259
-
260
- ```javascript
261
- const fs = require('fs');
262
-
263
- await onimai.sendMessage('session1', '491234567890@s.whatsapp.net', {
264
- audio: fs.createReadStream('./audio.ogg'),
265
- mimetype: 'audio/ogg',
266
- ptt: true // Push-to-Talk (Sprachnachricht)
267
- });
268
- ```
269
-
270
- #### 6. **Dokument**
271
-
272
- ```javascript
273
- await onimai.sendMessage('session1', '491234567890@s.whatsapp.net', {
274
- document: {
275
- url: './dokument.pdf',
276
- filename: 'Wichtiges Dokument.pdf'
277
- },
278
- mimetype: 'application/pdf'
279
- });
280
- ```
281
-
282
- #### 7. **Umfrage (Poll)**
283
-
284
- ```javascript
285
- await onimai.sendMessage('session1', '491234567890@s.whatsapp.net', {
286
- poll: {
287
- name: 'Was ist deine Lieblingsfarbe?',
288
- values: ['Rot', 'Blau', 'Grün', 'Gelb'],
289
- selectableCount: 1 // Anzahl der auswählbaren Optionen
290
- }
291
- });
292
- ```
83
+ ### Beispiele
293
84
 
294
- #### 8. **Reaktion**
295
-
296
- ```javascript
297
- await onimai.sendMessage('session1', '491234567890@s.whatsapp.net', {
298
- react: {
299
- text: '❤️', // Emoji
300
- key: message.key // Key der Nachricht
301
- }
302
- });
303
-
304
- // Reaktion entfernen
305
- await onimai.sendMessage('session1', '491234567890@s.whatsapp.net', {
306
- react: {
307
- text: '', // Leerer String entfernt Reaktion
308
- key: message.key
309
- }
310
- });
311
- ```
312
-
313
- #### 9. **Nachricht löschen**
314
-
315
- ```javascript
316
- await onimai.sendMessage('session1', '491234567890@s.whatsapp.net', {
317
- delete: message.key // Für alle löschen
318
- });
319
- ```
320
-
321
- #### 10. **Nachricht anpinnen**
322
-
323
- ```javascript
324
- await onimai.sendMessage('session1', '491234567890@s.whatsapp.net', {
325
- pin: {
326
- type: 1, // 0 = entfernen, 1 = anpinnen
327
- time: 86400, // Sekunden (24h = 86400)
328
- key: message.key
329
- }
330
- });
331
- ```
332
-
333
- #### 11. **Kontakt teilen**
334
-
335
- ```javascript
336
- const vcard = `BEGIN:VCARD
337
- VERSION:3.0
338
- FN:Max Mustermann
339
- TEL;type=CELL;type=VOICE;waid=491234567890:+49 123 4567890
340
- END:VCARD`;
341
-
342
- await onimai.sendMessage('session1', '491234567890@s.whatsapp.net', {
343
- contacts: {
344
- displayName: 'Max Mustermann',
345
- contacts: [{ vcard }]
346
- }
347
- });
348
- ```
349
-
350
- #### 12. **Standort**
351
-
352
- ```javascript
353
- await onimai.sendMessage('session1', '491234567890@s.whatsapp.net', {
354
- location: {
355
- degreesLatitude: 52.520008,
356
- degreesLongitude: 13.404954
357
- }
358
- });
359
- ```
360
-
361
- #### 13. **Nachricht weiterleiten**
362
-
363
- ```javascript
364
- await onimai.sendMessage('session1', '491234567890@s.whatsapp.net', {
365
- forward: originalMessage // Originale Nachricht
366
- });
367
- ```
368
-
369
- #### 14. **Mit Quote (Antwort)**
370
-
371
- ```javascript
372
- await onimai.sendMessage(
373
- 'session1',
374
- '491234567890@s.whatsapp.net',
375
- {
376
- text: 'Das ist eine Antwort!'
377
- },
378
- {
379
- quoted: originalMessage // Originale Nachricht
380
- }
381
- );
382
- ```
383
-
384
- #### 15. **Mit Erwähnung**
385
-
386
- ```javascript
387
- await onimai.sendMessage('session1', '491234567890@s.whatsapp.net', {
388
- text: '@491111111111 Hallo!',
389
- mentions: ['491111111111@s.whatsapp.net']
390
- });
391
- ```
85
+ | 📨 Typ | 📘 Beschreibung | 🧾 Inhalt Beispiel |
86
+ |--------------|------------------------|--------------------|
87
+ | **Text** | Klassische Nachricht | `{ text: 'Hallo!' }` |
88
+ | **Bild** | Mit Caption | `{ image: { url: './img.png' }, caption: 'Hey' }` |
89
+ | **Video** | Mit Caption | `{ video: { url: './vid.mp4' }, caption: 'Clip' }` |
90
+ | **GIF** | Loop-Video | `{ video: { url: './gif.mp4' }, gifPlayback: true }` |
91
+ | **Audio** | Sprachnachricht | `{ audio: fs.createReadStream('voice.ogg'), mimetype: 'audio/ogg', ptt: true }` |
92
+ | **Dokument** | PDF o.ä. | `{ document: { url: './doc.pdf', filename: 'Beispiel.pdf' } }` |
93
+ | **Umfrage** | Poll erstellen | `{ pollCreationMessage: { name: 'Frage?', options: [...], selectableCount: 1 } }` |
94
+ | **Reaktion** | Emoji antworten | `{ react: { text: '❤️', key: msg.key } }` |
95
+ | **Löschen** | Nachricht zurückziehen | `{ delete: msg.key }` |
96
+ | **Pin** | Nachricht anpinnen | `{ pin: { type: 1, time: 3600, key: msg.key } }` |
97
+ | **Kontakt** | vCard teilen | `{ contacts: { displayName: 'Max', contacts: [{ vcard }] } }` |
98
+ | **Standort** | Map teilen | `{ location: { degreesLatitude: 52.52, degreesLongitude: 13.405 } }` |
99
+ | **Forward** | Nachricht weiterleiten | `{ forward: origMsg }` |
100
+ | **Status** | Story posten | `{ video: { url: 'story.mp4' }, caption: 'Mein Status' }` |
392
101
 
393
102
  ---
394
103
 
395
- ## 🎧 Event Listener
396
-
397
- ### 📥 **Nachrichten empfangen**
398
-
399
- ```javascript
400
- onimai.onMessageReceived(async (msg) => {
401
- const {
402
- sessionId, // Session-ID
403
- key, // Message-Key (id, remoteJid, fromMe)
404
- message, // Nachrichteninhalt
405
- messageTimestamp // Zeitstempel
406
- } = msg;
407
-
408
- const from = key.remoteJid;
409
- const text = message?.conversation || message?.extendedTextMessage?.text || '';
410
-
411
- console.log(`📥 Neue Nachricht von ${from}: ${text}`);
412
-
413
- // Medien speichern (wenn vorhanden)
414
- if (message?.imageMessage) {
415
- await msg.saveImage('./downloads/');
416
- }
417
- if (message?.videoMessage) {
418
- await msg.saveVideo('./downloads/');
419
- }
420
- if (message?.documentMessage) {
421
- await msg.saveDocument('./downloads/');
422
- }
423
- });
424
- ```
425
-
426
- ### 🔄 **Nachrichten-Updates**
427
-
428
- ```javascript
429
- onimai.onMessageUpdate((sessionId, data) => {
430
- const {
431
- update, // Update-Objekt
432
- messageStatus // Lesbarer Status
433
- } = data;
434
-
435
- console.log(`📊 Status Update: ${messageStatus}`);
436
- // Mögliche Status: 'sent', 'delivered', 'read', 'failed'
437
- });
438
- ```
439
-
440
- ### 🔌 **Verbindungs-Events**
441
-
442
- ```javascript
443
- // Verbunden
444
- onimai.onConnected((sessionId) => {
445
- console.log(`✅ Session ${sessionId} ist jetzt verbunden!`);
446
- });
447
-
448
- // Verbindung wird hergestellt
449
- onimai.onConnecting((sessionId) => {
450
- console.log(`🔄 Session ${sessionId} verbindet...`);
451
- });
104
+ ## 🔧 Spezialfunktionen (`relayMessage`)
452
105
 
453
- // Getrennt
454
- onimai.onDisconnected((sessionId) => {
455
- console.log(`❌ Session ${sessionId} wurde getrennt`);
456
- });
457
- ```
106
+ - **Nachricht löschen (Revoke)**
107
+ - **Ephemeral-Mode an/aus**
108
+ - **Status posten (Story)**
109
+ - **Weiterleiten**
110
+ - **Profilbild ändern**
111
+ - **Chat als gelesen markieren**
112
+ - **Custom Message IDs setzen**
458
113
 
459
- ### 📱 **QR-Code Updates**
114
+ ➡️ Beispiele siehe Code im Repo – alle Funktionen sind out-of-the-box!
460
115
 
461
- ```javascript
462
- onimai.onQRUpdated((info) => {
463
- const { sessionId, qr } = info;
464
- console.log(`📱 Neuer QR-Code für Session ${sessionId}:`);
465
- console.log(qr);
466
-
467
- // Du kannst den QR-Code auch in eine Datei speichern oder auf einer Webseite anzeigen
468
- });
469
- ```
116
+ ---
470
117
 
471
- ### 🔑 **Pairing-Code**
118
+ ## 🎧 Listener
472
119
 
473
- ```javascript
474
- onimai.onPairingCode((sessionId, code) => {
475
- console.log(`🔑 Pairing-Code für Session ${sessionId}: ${code}`);
476
- });
120
+ ```js
121
+ onimai.onConnected(id => console.log('✅ Online:', id));
122
+ onimai.onQRUpdated(info => console.log('📲 QR-Code:', info));
123
+ onimai.onMessageReceived(msg => console.log('📥 Nachricht:', msg));
477
124
  ```
478
125
 
479
126
  ---
480
127
 
481
- ## 🔧 Erweiterte Funktionen
482
-
483
- ### 💾 **Medien speichern**
484
-
485
- ```javascript
486
- onimai.onMessageReceived(async (msg) => {
487
- // Bild speichern
488
- if (msg.message?.imageMessage) {
489
- const path = await msg.saveImage('./downloads/');
490
- console.log('✅ Bild gespeichert:', path);
491
- }
492
-
493
- // Video speichern
494
- if (msg.message?.videoMessage) {
495
- const path = await msg.saveVideo('./downloads/');
496
- console.log('✅ Video gespeichert:', path);
497
- }
498
-
499
- // Dokument speichern
500
- if (msg.message?.documentMessage) {
501
- const path = await msg.saveDocument('./downloads/');
502
- console.log('✅ Dokument gespeichert:', path);
503
- }
504
- });
505
- ```
506
-
507
- ### 🔄 **Multi-Session Beispiel**
508
-
509
- ```javascript
510
- // Mehrere Sessions gleichzeitig starten
511
- const sessions = ['session1', 'session2', 'session3'];
128
+ ## 🚨 Fehlerbehandlung
512
129
 
513
- for (const sessionId of sessions) {
514
- await onimai.startSession(sessionId, { printQR: true });
515
- }
516
-
517
- // Nachricht an alle Sessions senden
518
- const message = { text: 'Broadcast-Nachricht! 📢' };
519
- const recipients = ['491234567890@s.whatsapp.net'];
520
-
521
- for (const sessionId of sessions) {
522
- for (const recipient of recipients) {
523
- await onimai.sendMessage(sessionId, recipient, message);
524
- }
130
+ ```js
131
+ try {
132
+ await onimai1.sendMessage(...);
133
+ } catch (e) {
134
+ console.error('⚠️ Fehler:', e);
525
135
  }
526
136
  ```
527
137
 
528
138
  ---
529
139
 
530
- ## 📚 Vollständige API-Referenz
531
-
532
- ### 🔌 **Session-Funktionen**
533
-
534
- | Funktion | Beschreibung | Beispiel |
535
- |----------|-------------|----------|
536
- | `startSession(id, options)` | Startet eine Session mit QR-Code | `await onimai.startSession('session1')` |
537
- | `startSessionWithPairingCode(id, options)` | Startet mit Pairing-Code | `await onimai.startSessionWithPairingCode('session2', { phoneNumber: '491234567890' })` |
538
- | `getAllSession()` | Gibt alle aktiven Sessions zurück | `const sessions = onimai.getAllSession()` |
539
- | `getSession(id)` | Gibt eine spezifische Session zurück | `const session = onimai.getSession('session1')` |
540
- | `deleteSession(id)` | Löscht eine Session | `await onimai.deleteSession('session1')` |
541
- | `loadSessionsFromStorage()` | Lädt alle Sessions aus Storage | `const loaded = await onimai.loadSessionsFromStorage()` |
542
-
543
- ### 💬 **Nachrichten-Funktionen**
544
-
545
- | Funktion | Beschreibung |
546
- |----------|-------------|
547
- | `sendMessage(sessionId, jid, content, options)` | Sendet eine Nachricht |
548
-
549
- **Content-Typen:**
550
- - `{ text: string }` - Text
551
- - `{ image: { url: string }, caption?: string }` - Bild
552
- - `{ video: { url: string }, caption?: string, gifPlayback?: boolean }` - Video/GIF
553
- - `{ audio: Stream, mimetype: string, ptt?: boolean }` - Audio
554
- - `{ document: { url: string, filename?: string }, mimetype: string }` - Dokument
555
- - `{ poll: { name: string, values: string[], selectableCount: number } }` - Umfrage
556
- - `{ react: { text: string, key: MessageKey } }` - Reaktion
557
- - `{ delete: MessageKey }` - Löschen
558
- - `{ pin: { type: number, time: number, key: MessageKey } }` - Anpinnen
559
- - `{ contacts: { displayName: string, contacts: Array } }` - Kontakt
560
- - `{ location: { degreesLatitude: number, degreesLongitude: number } }` - Standort
561
- - `{ forward: Message }` - Weiterleiten
562
-
563
- ### 🎧 **Event-Listener**
564
-
565
- | Event | Beschreibung | Callback-Parameter |
566
- |-------|-------------|-------------------|
567
- | `onMessageReceived` | Neue Nachricht empfangen | `(msg: Message)` |
568
- | `onMessageUpdate` | Nachrichten-Update | `(sessionId: string, data: UpdateData)` |
569
- | `onConnected` | Session verbunden | `(sessionId: string)` |
570
- | `onConnecting` | Session verbindet | `(sessionId: string)` |
571
- | `onDisconnected` | Session getrennt | `(sessionId: string)` |
572
- | `onQRUpdated` | QR-Code aktualisiert | `(info: { sessionId: string, qr: string })` |
573
- | `onPairingCode` | Pairing-Code erhalten | `(sessionId: string, code: string)` |
574
-
575
- ---
576
-
577
- ## ⚠️ Wichtige Hinweise
578
-
579
- ### 🚨 **Disclaimer**
580
-
581
- > ⚠️ **WICHTIG**: Diese Library funktioniert **ausschließlich** mit **@neelegirl/baileys**!
582
- >
583
- > - ✖️ **Kein Spam** oder Massennachrichten
584
- > - ✖️ **Kein Missbrauch** für unethische Zwecke
585
- > - ✖️ **Keine Stalkerware** oder automatisierte Überwachung
586
- > - ✔️ **Verantwortungsvoller Gebrauch** wird erwartet
587
-
588
- ### 🔒 **Sicherheit**
589
-
590
- - **Nie** deine Session-Daten öffentlich teilen
591
- - **Immer** `.gitignore` für Credentials-Ordner verwenden
592
- - **Regelmäßig** Backups erstellen
593
- - **Sichere** Passwörter für deine Server verwenden
140
+ ## 🆕 Was ist neu in Version 1.0.9?
594
141
 
595
- ### 💡 **Best Practices**
596
-
597
- 1. **Error-Handling**: Immer try-catch für wichtige Operationen
598
- 2. **Rate-Limiting**: Nicht zu viele Nachrichten auf einmal senden
599
- 3. **Session-Management**: Sessions ordentlich verwalten und löschen wenn nicht mehr benötigt
600
- 4. **Updates**: Regelmäßig auf Updates prüfen (automatisch aktiviert)
601
-
602
- ---
603
-
604
- ## 🆕 Was ist neu in Version 1.0.10?
605
-
606
- ### ✨ **Neue Features**
607
-
608
- - ✅ **Kompatibilität** mit @neelegirl/baileys 1.6.6
609
- - 🔔 **Auto-Update-Check** - Automatische Prüfung auf neue Versionen beim Start (nur einmal angezeigt)
142
+ - **Kompatibilität** mit @neelegirl/baileys 1.6.4
143
+ - 🔔 **Update-Benachrichtigung** – Automatische Prüfung auf neue Versionen beim Start
610
144
  - 🚀 **Verbesserte Stabilität** und Performance
611
145
  - 🐛 **Bugfixes** für Session-Management
612
146
  - 💎 **Optimierungen** für Multi-Device-Umgebungen
613
- - 📦 **Aktualisiert** auf Basis von @whiskeysockets/baileys 7.0.0-rc.9
614
- - 🎨 **Verbesserte QR-Code-Anzeige** mit Version-Info
615
-
616
- ### 🔄 **Verbesserungen**
617
-
618
- - Verbesserte Fehlerbehandlung
619
- - Optimierte Session-Verwaltung
620
- - Schnellere Verbindungsaufbau
621
- - Bessere LID-Unterstützung
622
147
 
623
148
  ---
624
149
 
625
- ## 💬 Support & Community
626
-
627
- <div align="center">
628
-
629
- ### 🌸 **Made with Love by @neelegirl** 🌸
150
+ ## 👩‍💻 Autorin & Support
630
151
 
631
- [![GitHub](https://img.shields.io/badge/GitHub-@neelegirl-pink?style=for-the-badge&logo=github)](https://github.com/neelegirl)
632
- [![Email](https://img.shields.io/badge/Email-Support-pink?style=for-the-badge&logo=gmail)](mailto:neelehoven@gmail.com)
633
- [![Docs](https://img.shields.io/badge/Docs-wa--api.org-pink?style=for-the-badge)](https://wa-api.org)
634
-
635
- **⭐ Wenn dir dieses Projekt gefällt, gib ihm ein Star auf GitHub! ⭐**
636
-
637
- </div>
152
+ © 2026 **@neelegirl/wa-api**
153
+ 🌸 Made with Love by **Neele**
154
+ 💌 Support: [neelehoven@gmail.com](mailto:neelehoven@gmail.com)
155
+ 📚 Docs: [wa-api.org](https://wa-api.org)
638
156
 
639
157
  ---
640
158
 
641
- ## 📝 Changelog
642
-
643
- ### Version 1.0.10 (Aktuell)
644
-
645
- - ✨ Automatische Update-Prüfung hinzugefügt
646
- - 🎨 Verbesserte QR-Code-Anzeige
647
- - 🔄 Kompatibilität mit @neelegirl/baileys 1.6.6
648
- - 🚀 Verbesserte Stabilität
649
- - 🐛 Bugfixes für Session-Management
650
-
651
- ### Version 1.0.9
159
+ ## 💖 Community
652
160
 
653
- - 🔔 Update-Benachrichtigung hinzugefügt
654
- - 💎 Optimierungen für Multi-Device
161
+ Wir danken allen **schönen & treuen Usern**, die diese Library benutzen und supporten.
162
+ Euer Vertrauen macht dieses Projekt **LID** und einzigartig. ✨
655
163
 
656
164
  ---
657
-
658
- <div align="center">
659
-
660
- ### ✨ *Stay kawaii, stay connected – Onimai forever!* ✨
661
-
662
- **🌸 Made with Love & Glitter 🌸**
663
-
664
- [⬆️ Nach oben](#-neelegirlwa-api)
665
-
666
- </div>
165
+ 🌸 *Stay kawaii, stay connected – Onimai forever!* 🌸