@neelegirly/baileys 2.2.17 → 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
@@ -2,49 +2,89 @@
2
2
 
3
3
  # 🌸 @neelegirly/baileys 🌸
4
4
 
5
- ### *The cutest WhatsApp Web API glow-up for Node.js*
6
- ### *QR Branding · LID Support · Stable Sessions · Update Checks*
5
+ ### *Die WhatsApp Web API mit sauberem Neelegirly-Glow-up*
6
+ ### *QR Branding · Wrapper-Aware Update Notify · LID · Smart Queue*
7
7
 
8
- [![npm](https://img.shields.io/npm/v/@neelegirly/baileys?style=for-the-badge&color=ff69b4&logo=npm)](https://www.npmjs.com/package/@neelegirly/baileys)
9
- [![wa-api](https://img.shields.io/badge/wa--api-1.7.16-c77dff?style=for-the-badge)](https://www.npmjs.com/package/@neelegirly/wa-api)
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
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)
11
13
 
12
14
  <p align="center">
13
- <img src="https://files.catbox.moe/5bqumy.jpeg" width="420" alt="Neelegirly baileys hero" />
15
+ <img src="https://files.catbox.moe/5bqumy.jpeg" width="780" alt="@neelegirly/baileys Hero" />
14
16
  </p>
15
17
 
16
- **🎀 Release-Stack:** `@neelegirly/baileys 2.2.17` · `@neelegirly/libsignal 1.0.28` · `@neelegirly/wa-api 1.7.16`
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)
17
21
 
18
22
  </div>
19
23
 
20
- Neelegirly-Variante von Baileys als WhatsApp-Web-Basis fuer Node.js — gemacht fuer stabile Bots, schoene QR-Flows und einen sauber gepinnten Multi-Session-Stack.
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`.
21
27
 
22
28
  > Hinweis: Dieses Projekt ist nicht offiziell mit WhatsApp, Meta oder Baileys-Upstream verbunden.
23
29
 
30
+ ---
31
+
24
32
  ## ✨ Highlights
25
33
 
26
34
  | Feature | Beschreibung | Status |
27
35
  | --- | --- | --- |
28
36
  | 💖 Multi-Device API | WhatsApp Web auf Node.js mit Event-Flow | ✅ |
29
37
  | 📷 QR Branding | Header/Footer + Wrapper-/Versionskontext direkt im QR-Flow | ✅ |
30
- | 🔔 Update-Checks | npm zuerst, GitHub-Fallback, semver-sicher | ✅ |
31
- | 🧷 LID / Session-Fokus | passend fuer moderne Multi-Device-/Linked-ID-Flows | ✅ |
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 | ✅ |
32
41
  | 🎀 Neelegirly Scope | sauber auf `@neelegirly/*` ausgerichtet | ✅ |
33
42
 
34
- ## 📦 Kompatibilitaet
43
+ ---
44
+
45
+ ## 🆕 Was sich in `v2.2.18` geändert hat
46
+
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
51
+
52
+ ---
53
+
54
+ ## 📦 Kompatibilität
35
55
 
36
56
  | Paket | Empfohlene Version |
37
57
  | --- | --- |
38
- | `@neelegirly/baileys` | `2.2.17` |
39
- | `@neelegirly/wa-api` | `1.7.16` |
58
+ | `@neelegirly/baileys` | `2.2.18` |
59
+ | `@neelegirly/wa-api` | `1.8.0` |
40
60
  | `@neelegirly/libsignal` | `1.0.28` |
41
61
 
62
+ ---
63
+
42
64
  ## 🚀 Installation
43
65
 
66
+ ### npm
67
+
44
68
  ```bash
45
- npm install @neelegirly/baileys@2.2.17 @neelegirly/libsignal@1.0.28 --save-exact
69
+ npm install @neelegirly/baileys@2.2.18 @neelegirly/libsignal@1.0.28 --save-exact
46
70
  ```
47
71
 
72
+ ### yarn
73
+
74
+ ```bash
75
+ yarn add @neelegirly/baileys@2.2.18 @neelegirly/libsignal@1.0.28 --exact
76
+ ```
77
+
78
+ ### pnpm
79
+
80
+ ```bash
81
+ pnpm add @neelegirly/baileys@2.2.18 @neelegirly/libsignal@1.0.28 --save-exact
82
+ ```
83
+
84
+ > Für den kompletten Neelegirly-Stack passt dazu `@neelegirly/wa-api@1.8.0`.
85
+
86
+ ---
87
+
48
88
  ## ⚡ Quickstart
49
89
 
50
90
  ```ts
@@ -77,6 +117,7 @@ async function start() {
77
117
  if (connection === 'close') {
78
118
  const statusCode = lastDisconnect?.error?.output?.statusCode
79
119
  const isLoggedOut = statusCode === DisconnectReason.loggedOut
120
+
80
121
  if (!isLoggedOut) start().catch(console.error)
81
122
  }
82
123
  })
@@ -85,21 +126,33 @@ async function start() {
85
126
  start().catch(console.error)
86
127
  ```
87
128
 
88
- > Direktes `sock.ev.on('creds.update', saveCreds)` ist fuer kleine Demos okay. In produktiven Multi-Session-Setups sollten Credential-Saves gebuendelt/debounced werden, damit Session-Dateien bei vielen Updates stabil bleiben.
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.
89
130
 
90
- ## 🌐 Namespace-Migration
131
+ ---
91
132
 
92
- Wenn du vom Upstream kommst, nutze den Import-Scope von Neelegirly:
133
+ ## 🧩 Companion Stack
93
134
 
94
- ```diff
95
- - import makeWASocket from '@whiskeysockets/baileys'
96
- + import makeWASocket from '@neelegirly/baileys'
97
- ```
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:
98
148
 
99
- ## 🩷 QR-Branding und Versionsanzeige
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
100
152
 
101
- Beim QR-Scan werden automatisch Markenzeilen oberhalb und unterhalb des QR-Codes ausgegeben.
102
- Die Anzeige liest Versionen dynamisch aus `package.json`, erkennt Wrapper-Kontexte und zeigt bei Bedarf einen kompakten Update-Hinweis an.
153
+ Wenn kein Wrapper-Kontext vorhanden ist, bleibt die Anzeige sauber bei Baileys. Kein unnötiges Drama, nur QR.
154
+
155
+ ---
103
156
 
104
157
  ## 🔄 Update-Check
105
158
 
@@ -107,9 +160,36 @@ Die Anzeige liest Versionen dynamisch aus `package.json`, erkennt Wrapper-Kontex
107
160
  - Quelle 2: GitHub Releases (`neelegirly/baileys`) als Fallback
108
161
  - Fehler und Timeouts werden abgefangen, ohne den Prozess zu stoppen
109
162
  - Semver-Vergleich wird numerisch ausgewertet
163
+ - Wrapper-Status kann über die von `@neelegirly/wa-api` gesetzten Umgebungsvariablen übernommen werden
164
+
165
+ Wenn du direkt prüfen willst:
166
+
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
180
+
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
+ ```
187
+
188
+ ---
110
189
 
111
- ## 🎉 Release-Notizen
190
+ ## 📝 Release Notes `2.2.18`
112
191
 
113
- - README im Hero-/Glow-up-Stil komplett erneuert
114
- - Stack auf `2.2.17 / 1.7.16 / 1.0.28` aktualisiert
115
- - QR-/Versionsbranding bleibt zentral im Package verankert
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.17",
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",