@deathnaitsa/wa-api 2.0.29 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Nishi WhatsApp API Configuration
3
+ *
4
+ * Diese Datei wird automatisch erstellt und kann beliebig angepasst werden.
5
+ * Alle Einstellungen können zur Laufzeit über Funktionsparameter überschrieben werden.
6
+ */
7
+
8
+ export const waApiConfig = {
9
+ /**
10
+ * Session-Einstellungen
11
+ */
12
+ session: {
13
+ // SQL-Auth als Standard verwenden (true = SQLite DB, false = JSON-Files)
14
+ useSqlByDefault: false,
15
+
16
+ // Standard Browser für WhatsApp Web
17
+ browser: ['Chrome', '120.0.0', 'Windows'],
18
+
19
+ // QR-Code im Terminal anzeigen
20
+ printQR: true,
21
+
22
+ // Credentials Verzeichnis
23
+ credentialsDir: './sessions',
24
+
25
+ // Automatisch reconnecten bei Disconnect
26
+ autoReconnect: false,
27
+
28
+ // Logger Level ('trace', 'debug', 'info', 'warn', 'error', 'fatal', 'silent')
29
+ logLevel: 'silent',
30
+
31
+ // Online-Status beim Verbinden
32
+ markOnlineOnConnect: false,
33
+ },
34
+
35
+ /**
36
+ * Auto-Reconnect Einstellungen
37
+ */
38
+ reconnect: {
39
+ // Maximale Reconnect-Versuche
40
+ maxRetries: 5,
41
+
42
+ // Initiales Delay in ms
43
+ initialDelay: 2000,
44
+
45
+ // Maximales Delay in ms
46
+ maxDelay: 30000,
47
+
48
+ // Delay-Multiplikator für Exponential Backoff
49
+ multiplier: 2,
50
+ },
51
+
52
+ /**
53
+ * Footer/Wasserzeichen für Nachrichten
54
+ */
55
+ footer: {
56
+ // Footer aktivieren/deaktivieren
57
+ enabled: false,
58
+
59
+ // Footer-Text (z.B. "Powered by Nishi API 🚀")
60
+ text: 'Nishi WhatsApp API',
61
+
62
+ // Nachrichtentypen mit Footer (alle Typen wenn leer)
63
+ applyToTypes: ['text', 'image', 'video', 'audio', 'document', 'sticker'],
64
+
65
+ // Footer nur für ausgehende Nachrichten (nicht bei Antworten)
66
+ onlyOutgoing: true,
67
+ },
68
+
69
+ /**
70
+ * Message Queue & Rate Limiting
71
+ */
72
+ rateLimit: {
73
+ // Rate Limiting aktivieren
74
+ enabled: false,
75
+
76
+ // Maximale Nachrichten pro Interval
77
+ maxMessages: 20,
78
+
79
+ // Interval in ms
80
+ interval: 60000, // 60 Sekunden
81
+
82
+ // Queue-Verarbeitungs-Interval in ms
83
+ queueInterval: 1000,
84
+ },
85
+
86
+ /**
87
+ * Webhook-Einstellungen
88
+ */
89
+ webhook: {
90
+ // Standard Webhook URL (optional)
91
+ defaultUrl: null,
92
+
93
+ // Webhook-Timeout in ms
94
+ timeout: 5000,
95
+
96
+ // Retry bei Fehler
97
+ retry: true,
98
+
99
+ // Max Retries
100
+ maxRetries: 3,
101
+ },
102
+
103
+ /**
104
+ * Statistik-Einstellungen
105
+ */
106
+ stats: {
107
+ // Statistiken speichern
108
+ enabled: true,
109
+
110
+ // Stats-File Pfad
111
+ filePath: './sessions/stats.json',
112
+
113
+ // Auto-Save Interval in ms (0 = nur bei Stop)
114
+ autoSaveInterval: 60000, // Jede Minute
115
+ },
116
+
117
+ /**
118
+ * Message Store Einstellungen
119
+ */
120
+ messageStore: {
121
+ // Nachrichten im Speicher behalten (für Zitate/Edits)
122
+ enabled: true,
123
+
124
+ // Maximale Nachrichten pro Session
125
+ maxMessages: 1000,
126
+
127
+ // Nachrichten nach X Stunden löschen
128
+ maxAge: 24, // Stunden
129
+ },
130
+
131
+ /**
132
+ * Media-Einstellungen
133
+ */
134
+ media: {
135
+ // Automatisch Media herunterladen
136
+ autoDownload: false,
137
+
138
+ // Download-Verzeichnis
139
+ downloadDir: './media',
140
+
141
+ // Maximale Dateigröße in MB
142
+ maxFileSize: 100,
143
+ },
144
+
145
+ /**
146
+ * Sticker-Einstellungen
147
+ */
148
+ sticker: {
149
+ // Standard Pack Name
150
+ packname: 'Nishi API',
151
+
152
+ // Standard Author
153
+ author: 'WhatsApp Bot',
154
+
155
+ // Standard Kategorien
156
+ categories: ['🤖', '🚀'],
157
+ },
158
+
159
+ /**
160
+ * Feature-Flags
161
+ */
162
+ features: {
163
+ // Gruppen-Management aktivieren
164
+ groupManagement: true,
165
+
166
+ // Status/Stories aktivieren
167
+ stories: true,
168
+
169
+ // Polls aktivieren
170
+ polls: true,
171
+
172
+ // Broadcast Lists aktivieren
173
+ broadcast: true,
174
+
175
+ // Contact Management aktivieren
176
+ contacts: true,
177
+ },
178
+
179
+ /**
180
+ * Entwickler-Optionen
181
+ */
182
+ developer: {
183
+ // Debug-Modus
184
+ debug: false,
185
+
186
+ // Verbose Logging
187
+ verbose: false,
188
+
189
+ // Error Stack Traces zeigen
190
+ showStackTrace: true,
191
+ },
192
+ };
193
+
194
+ /**
195
+ * Default Config Export (falls keine Config-Datei existiert)
196
+ */
197
+ export default waApiConfig;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Beispiel: Config-System verwenden
3
+ */
4
+
5
+ import { initConfig, startSession, sendText, onMessage } from '@deathnaitsa/wa-api';
6
+
7
+ // 1. Config erstellen (einmalig)
8
+ console.log('📝 Erstelle Config-Datei...');
9
+ initConfig();
10
+
11
+ console.log('\n💡 Du kannst jetzt wa-api.config.js bearbeiten!');
12
+ console.log(' Zum Beispiel:');
13
+ console.log(' - useSqlByDefault: true (SQLite statt JSON-Files)');
14
+ console.log(' - autoReconnect: true (Automatisch reconnecten)');
15
+ console.log(' - footer.enabled: true (Footer für Nachrichten)');
16
+ console.log(' - footer.text: "Dein Text" (Footer-Text anpassen)\n');
17
+
18
+ // 2. Session starten (verwendet Config-Defaults)
19
+ console.log('🚀 Starte Session mit Config-Defaults...');
20
+ await startSession('demo-bot');
21
+
22
+ // 3. Nachrichten empfangen
23
+ onMessage(async (msg) => {
24
+ if (msg.fromMe) return;
25
+
26
+ console.log(`📨 ${msg.name}: ${msg.message}`);
27
+
28
+ if (msg.message === '!ping') {
29
+ // Wenn footer.enabled = true in Config, wird automatisch Footer angehängt
30
+ await sendText(msg.sessionId, msg.from, 'Pong! 🏓');
31
+ }
32
+
33
+ if (msg.message === '!config') {
34
+ await sendText(msg.sessionId, msg.from,
35
+ '⚙️ Config-System aktiv!\n' +
36
+ 'Alle Einstellungen werden aus wa-api.config.js geladen.'
37
+ );
38
+ }
39
+ });
40
+
41
+ console.log('✅ Bot läuft! Sende !ping oder !config');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deathnaitsa/wa-api",
3
- "version": "2.0.29",
3
+ "version": "2.1.1",
4
4
  "description": "Minimalistic & stable WhatsApp Multi-Device API with advanced session management",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",