@neelegirly/baileys 2.2.16 → 2.2.18

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,32 +1,91 @@
1
- # @neelegirly/baileys
1
+ <div align="center">
2
2
 
3
- Neelegirly-Variante von Baileys als WhatsApp-Web-Basis fuer Node.js.
3
+ # 🌸 @neelegirly/baileys 🌸
4
+
5
+ ### *Die WhatsApp Web API mit sauberem Neelegirly-Glow-up*
6
+ ### *QR Branding · Wrapper-Aware Update Notify · LID · Smart Queue*
7
+
8
+ [![Version](https://img.shields.io/badge/Version-2.2.18-ff69b4?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@neelegirly/baileys)
9
+ [![wa-api](https://img.shields.io/badge/wa--api-1.8.0-c77dff?style=for-the-badge)](https://www.npmjs.com/package/@neelegirly/wa-api)
10
+ [![libsignal](https://img.shields.io/badge/libsignal-1.0.28-f4a261?style=for-the-badge)](https://www.npmjs.com/package/@neelegirly/libsignal)
11
+ [![Node](https://img.shields.io/badge/Node-16+-4caf50?style=for-the-badge&logo=node.js)](https://nodejs.org)
12
+ [![npm](https://img.shields.io/npm/v/%40neelegirly%2Fbaileys?style=for-the-badge&color=ff69b4&logo=npm)](https://www.npmjs.com/package/@neelegirly/baileys)
13
+
14
+ <p align="center">
15
+ <img src="https://files.catbox.moe/5bqumy.jpeg" width="780" alt="@neelegirly/baileys Hero" />
16
+ </p>
17
+
18
+ <p align="center"><sub>2026 Glow-Up Edition · klarere QR-Statuszeilen · Companion-Stack auf <strong>2.2.18 / 1.8.0 / 1.0.28</strong></sub></p>
19
+
20
+ [**Installation**](#-installation) · [**Quickstart**](#-quickstart) · [**Highlights**](#-highlights) · [**QR Branding**](#-qr-branding--update-status) · [**Migration**](#-namespace-migration) · [**Release Notes**](#-release-notes-2218)
21
+
22
+ </div>
23
+
24
+ ---
25
+
26
+ Neelegirlys Variante von Baileys ist die WhatsApp-Web-Basis für stabile Bots, schöne QR-Flows und einen sauber gepinnten Multi-Session-Stack. Die Library bleibt nah an Baileys, aber mit fokussiertem Branding, Update-Notify und Begleit-Ökosystem für `@neelegirly/wa-api`.
4
27
 
5
28
  > Hinweis: Dieses Projekt ist nicht offiziell mit WhatsApp, Meta oder Baileys-Upstream verbunden.
6
29
 
7
- ## Highlights
30
+ ---
31
+
32
+ ## ✨ Highlights
33
+
34
+ | Feature | Beschreibung | Status |
35
+ | --- | --- | --- |
36
+ | 💖 Multi-Device API | WhatsApp Web auf Node.js mit Event-Flow | ✅ |
37
+ | 📷 QR Branding | Header/Footer + Wrapper-/Versionskontext direkt im QR-Flow | ✅ |
38
+ | 🔔 Wrapper-Aware Update Notify | Status für Baileys **und** optionalen Wrapper-Kontext | ✅ |
39
+ | 🚀 Smart Queue | Retries, Prioritäten und Bulk-Sending für produktive Setups | ✅ |
40
+ | 🧷 LID / Session-Fokus | passend für moderne Multi-Device-/Linked-ID-Flows | ✅ |
41
+ | 🎀 Neelegirly Scope | sauber auf `@neelegirly/*` ausgerichtet | ✅ |
42
+
43
+ ---
44
+
45
+ ## 🆕 Was sich in `v2.2.18` geändert hat
8
46
 
9
- - Multi-Device WhatsApp Web API auf Node.js
10
- - Event-basierter Socket-Ansatz fuer Bots und Automatisierung
11
- - QR-Login mit Branding-Header und Branding-Footer
12
- - Dynamische Versionsanzeige fuer Paket/Wrapper beim QR-Flow
13
- - Update-Pruefung (npm zuerst, GitHub-Fallback) mit semver-Vergleich
47
+ - ✅ QR-Branding zeigt den Baileys- und Wrapper-Status jetzt klarer als `up to date` oder `update available`
48
+ - Wrapper-Hinweise werden nur noch angezeigt, wenn wirklich ein Update vorhanden ist
49
+ - ✅ Companion-Stack auf `@neelegirly/wa-api 1.8.0` abgestimmt
50
+ - README auf den neuen Release- und Update-Notify-Stand gebracht
14
51
 
15
- ## Kompatibilitaet
52
+ ---
53
+
54
+ ## 📦 Kompatibilität
16
55
 
17
56
  | Paket | Empfohlene Version |
18
57
  | --- | --- |
19
- | `@neelegirly/baileys` | `2.2.16` |
20
- | `@neelegirly/wa-api` | `1.7.15` |
21
- | `@neelegirly/libsignal` | `1.0.27` |
58
+ | `@neelegirly/baileys` | `2.2.18` |
59
+ | `@neelegirly/wa-api` | `1.8.0` |
60
+ | `@neelegirly/libsignal` | `1.0.28` |
61
+
62
+ ---
63
+
64
+ ## 🚀 Installation
65
+
66
+ ### npm
67
+
68
+ ```bash
69
+ npm install @neelegirly/baileys@2.2.18 @neelegirly/libsignal@1.0.28 --save-exact
70
+ ```
71
+
72
+ ### yarn
73
+
74
+ ```bash
75
+ yarn add @neelegirly/baileys@2.2.18 @neelegirly/libsignal@1.0.28 --exact
76
+ ```
22
77
 
23
- ## Installation
78
+ ### pnpm
24
79
 
25
80
  ```bash
26
- npm install @neelegirly/baileys @neelegirly/libsignal
81
+ pnpm add @neelegirly/baileys@2.2.18 @neelegirly/libsignal@1.0.28 --save-exact
27
82
  ```
28
83
 
29
- ## Quickstart
84
+ > Für den kompletten Neelegirly-Stack passt dazu `@neelegirly/wa-api@1.8.0`.
85
+
86
+ ---
87
+
88
+ ## ⚡ Quickstart
30
89
 
31
90
  ```ts
32
91
  import makeWASocket, {
@@ -51,16 +110,15 @@ async function start() {
51
110
 
52
111
  sock.ev.on('connection.update', ({ connection, lastDisconnect }) => {
53
112
  if (connection === 'open') {
54
- console.log('Verbunden')
113
+ console.log('Verbunden 💖')
55
114
  return
56
115
  }
57
116
 
58
117
  if (connection === 'close') {
59
118
  const statusCode = lastDisconnect?.error?.output?.statusCode
60
119
  const isLoggedOut = statusCode === DisconnectReason.loggedOut
61
- if (!isLoggedOut) {
62
- start().catch(console.error)
63
- }
120
+
121
+ if (!isLoggedOut) start().catch(console.error)
64
122
  }
65
123
  })
66
124
  }
@@ -68,41 +126,70 @@ async function start() {
68
126
  start().catch(console.error)
69
127
  ```
70
128
 
71
- ## Migration und Namespace
129
+ > Direktes `sock.ev.on('creds.update', saveCreds)` ist für kleine Demos okay. In produktiven Multi-Session-Setups sollten Credential-Saves gebündelt oder debounced werden.
72
130
 
73
- Wenn du vom Upstream kommst, nutze den Import-Scope von Neelegirly:
131
+ ---
74
132
 
75
- ```diff
76
- - import makeWASocket from '@whiskeysockets/baileys'
77
- + import makeWASocket from '@neelegirly/baileys'
78
- ```
133
+ ## 🧩 Companion Stack
134
+
135
+ | Paket | Rolle |
136
+ |------|-------|
137
+ | `@neelegirly/baileys 2.2.18` | Socket, Events, Messaging |
138
+ | `@neelegirly/libsignal 1.0.28` | Signal-Protokoll-Komponente |
139
+ | `@neelegirly/wa-api 1.8.0` | Lifecycle-, Session- und Update-Wrapper |
140
+
141
+ ---
142
+
143
+ ## 🩷 QR Branding & Update Status
144
+
145
+ Beim QR-Scan werden automatisch Markenzeilen oberhalb und unterhalb des QR-Codes ausgegeben. Die Ausgabe liest Versionen dynamisch aus `package.json`, verarbeitet Update-Status robust und kann zusätzlich Wrapper-Kontext aus `@neelegirly/wa-api` darstellen.
146
+
147
+ Typische Anzeige:
148
+
149
+ - `Baileys Update-Status: up to date (2.2.18)`
150
+ - `Wrapper Update-Status: up to date (1.8.0)`
151
+ - Bei echten Updates werden kompakte Hinweise auf `latest` eingeblendet
79
152
 
80
- ## QR-Branding und Versionsanzeige
153
+ Wenn kein Wrapper-Kontext vorhanden ist, bleibt die Anzeige sauber bei Baileys. Kein unnötiges Drama, nur QR. ✨
81
154
 
82
- Beim QR-Scan werden automatisch Markenzeilen oberhalb und unterhalb des QR-Codes ausgegeben.
83
- Die Anzeige liest Versionen dynamisch aus `package.json` und zeigt bei Bedarf einen kompakten Update-Hinweis an.
155
+ ---
84
156
 
85
- ## Update-Check
157
+ ## 🔄 Update-Check
86
158
 
87
- - Pruefquelle 1: npm Registry (`registry.npmjs.org`)
88
- - Pruefquelle 2: GitHub Releases (`neelegirly/baileys`) als Fallback
89
- - Fehler/Timeouts werden abgefangen, ohne den Prozess zu stoppen
159
+ - Quelle 1: npm Registry (`registry.npmjs.org`)
160
+ - Quelle 2: GitHub Releases (`neelegirly/baileys`) als Fallback
161
+ - Fehler und Timeouts werden abgefangen, ohne den Prozess zu stoppen
90
162
  - Semver-Vergleich wird numerisch ausgewertet
163
+ - Wrapper-Status kann über die von `@neelegirly/wa-api` gesetzten Umgebungsvariablen übernommen werden
91
164
 
92
- ## Was ausgebessert wurde
165
+ Wenn du direkt prüfen willst:
93
166
 
94
- - Veraltete und inkonsistente Texte in der README wurden entfernt.
95
- - Uneinheitliche Bezeichnungen wurden auf den Scope `@neelegirly/...` korrigiert.
96
- - Funktionierender WhatsApp-Web-/Begleitgeraet-Stand als Release-Basis uebernommen.
167
+ ```ts
168
+ import { checkNpmVersion } from '@neelegirly/baileys'
169
+
170
+ const info = await checkNpmVersion('@neelegirly/baileys', '2.2.18', {
171
+ githubRepo: 'neelegirly/baileys'
172
+ })
173
+
174
+ console.log(info)
175
+ ```
176
+
177
+ ---
178
+
179
+ ## 🌐 Namespace-Migration
97
180
 
98
- ## Was veraendert wurde
181
+ Wenn du vom Upstream kommst, nutze den Neelegirly-Scope:
182
+
183
+ ```diff
184
+ - import makeWASocket from '@whiskeysockets/baileys'
185
+ + import makeWASocket from '@neelegirly/baileys'
186
+ ```
99
187
 
100
- - README auf eine klare, technische Struktur mit Kompatibilitaet, Installation und Quickstart umgestellt.
101
- - Migration auf den Neelegirly-Namespace explizit dokumentiert.
102
- - Kompatibilitaetsmatrix auf `2.2.16 / 1.7.15 / 1.0.27` aktualisiert.
188
+ ---
103
189
 
104
- ## Was neu ist
190
+ ## 📝 Release Notes `2.2.18`
105
191
 
106
- - Zentrales QR-Branding mit Header/Footer direkt im QR-Ausgabepfad.
107
- - Dynamische Versionsanzeige fuer `@neelegirly/baileys` und erkannte Wrapper-Kontexte.
108
- - Release auf Version `2.2.16` mit funktionierendem Stack-Stand fuer Onimai/Darkbot.
192
+ - 🌸 QR-/Footer-Branding zeigt Baileys- und Wrapper-Status klarer an
193
+ - 🧠 Wrapper-Updatehinweise werden nur bei echten Updates eingeblendet
194
+ - 🔗 Companion-Stack auf `2.2.18 / 1.8.0 / 1.0.28` aktualisiert
195
+ - ✨ README auf neuen Release- und Update-Notify-Stand gebracht
@@ -75,9 +75,12 @@ const getResolvedVersions = () => {
75
75
  return {
76
76
  baileysPackage: meta.name,
77
77
  baileysVersion: meta.version,
78
+ baileysLatest: process.env.NEELEGIRLY_BAILEYS_LATEST || null,
79
+ baileysUpdateState: process.env.NEELEGIRLY_BAILEYS_UPDATE_STATE || null,
78
80
  wrapperPackage: wrapperPackage || null,
79
81
  wrapperVersion: wrapperVersion || null,
80
82
  wrapperLatest: process.env.NEELEGIRLY_WRAPPER_UPDATE || null,
83
+ wrapperUpdateState: process.env.NEELEGIRLY_WRAPPER_UPDATE_STATE || null,
81
84
  libsignalVersion: libsignalVersion || null
82
85
  };
83
86
  };
@@ -109,8 +112,23 @@ const getQrBranding = async () => {
109
112
  const versions = getResolvedVersions();
110
113
  const update = await getBaileysUpdateInfo();
111
114
  const shouldShowBaileysUpdateHint = Boolean(update?.hasUpdate) && !hasShownBaileysUpdateHint;
112
- const shouldShowWrapperUpdateHint =
113
- Boolean(versions.wrapperPackage && versions.wrapperLatest) && !hasShownWrapperUpdateHint;
115
+ const wrapperHasUpdate =
116
+ versions.wrapperUpdateState === "update-available" && Boolean(versions.wrapperPackage && versions.wrapperLatest);
117
+ const shouldShowWrapperUpdateHint = wrapperHasUpdate && !hasShownWrapperUpdateHint;
118
+
119
+ const baileysStatusLine = update
120
+ ? update.hasUpdate
121
+ ? `Baileys Update-Status: ${update.latest} verfügbar (du nutzt ${update.current})`
122
+ : `Baileys Update-Status: up to date (${update.current})`
123
+ : `Baileys Update-Status: derzeit nicht erreichbar`;
124
+
125
+ const wrapperStatusLine = versions.wrapperPackage && versions.wrapperVersion
126
+ ? wrapperHasUpdate
127
+ ? `Wrapper Update-Status: ${versions.wrapperLatest} verfügbar (du nutzt ${versions.wrapperVersion})`
128
+ : versions.wrapperUpdateState === "up-to-date"
129
+ ? `Wrapper Update-Status: up to date (${versions.wrapperVersion})`
130
+ : `Wrapper Update-Status: wird geprüft (${versions.wrapperVersion})`
131
+ : null;
114
132
 
115
133
  const headerLines = [
116
134
  buildDivider(),
@@ -129,6 +147,11 @@ const getQrBranding = async () => {
129
147
  headerLines.push(color(`Signal-Core: @neelegirly/libsignal v${versions.libsignalVersion}`, ANSI.cyan));
130
148
  }
131
149
 
150
+ headerLines.push(color(baileysStatusLine, update?.hasUpdate ? ANSI.yellow : ANSI.gray));
151
+ if (wrapperStatusLine) {
152
+ headerLines.push(color(wrapperStatusLine, wrapperHasUpdate ? ANSI.yellow : ANSI.gray));
153
+ }
154
+
132
155
  if (shouldShowBaileysUpdateHint) {
133
156
  const source = update.source || "npm";
134
157
  headerLines.push(
@@ -152,9 +175,30 @@ const getQrBranding = async () => {
152
175
  color(`💖 ${BRAND.footerClaim}`, ANSI.magenta),
153
176
  color(`Powered by ${BRAND.name}`, ANSI.cyan),
154
177
  color(BRAND.footerTagline, ANSI.cyan),
155
- color(`Aktive Basis: ${versions.baileysPackage} v${versions.baileysVersion}`, ANSI.gray)
178
+ color(`Aktive Basis: ${versions.baileysPackage} v${versions.baileysVersion}`, ANSI.gray),
179
+ color(
180
+ update
181
+ ? update.hasUpdate
182
+ ? `Baileys: ${update.current} → ${update.latest}`
183
+ : `Baileys: ${update.current} ist aktuell.`
184
+ : `Baileys: Update-Check derzeit nicht erreichbar.`,
185
+ update?.hasUpdate ? ANSI.yellow : ANSI.gray
186
+ )
156
187
  ];
157
188
 
189
+ if (wrapperStatusLine) {
190
+ footerLines.push(
191
+ color(
192
+ wrapperHasUpdate
193
+ ? `Wrapper: ${versions.wrapperVersion} → ${versions.wrapperLatest}`
194
+ : versions.wrapperUpdateState === "up-to-date"
195
+ ? `Wrapper: ${versions.wrapperVersion} ist aktuell.`
196
+ : `Wrapper: Update-Check derzeit nicht verfügbar.`,
197
+ wrapperHasUpdate ? ANSI.yellow : ANSI.gray
198
+ )
199
+ );
200
+ }
201
+
158
202
  if (shouldShowBaileysUpdateHint) {
159
203
  footerLines.push(
160
204
  color(`Du nutzt ${update.current}, neu ist ${update.latest}.`, ANSI.yellow)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neelegirly/baileys",
3
- "version": "2.2.16",
3
+ "version": "2.2.18",
4
4
  "description": "Neelegirly fork of Baileys: multi-device WhatsApp Web API for Node.js",
5
5
  "keywords": [
6
6
  "whatsapp",
@@ -48,7 +48,7 @@
48
48
  "@adiwajshing/keyed-db": "^0.2.4",
49
49
  "@cacheable/node-cache": "^1.5.4",
50
50
  "@hapi/boom": "^9.1.3",
51
- "@neelegirly/libsignal": "1.0.27",
51
+ "@neelegirly/libsignal": "1.0.28",
52
52
  "async-mutex": "^0.5.0",
53
53
  "audio-decode": "^2.1.3",
54
54
  "axios": "^1.3.3",
@@ -63,7 +63,7 @@
63
63
  "ws": "^8.13.0"
64
64
  },
65
65
  "overrides": {
66
- "@neelegirly/libsignal": "1.0.27"
66
+ "@neelegirly/libsignal": "1.0.28"
67
67
  },
68
68
  "devDependencies": {
69
69
  "@adiwajshing/eslint-config": "github:adiwajshing/eslint-config",