@neelegirl/baileys 1.4.97 → 1.4.99
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 +29 -53
- package/package.json +2 -2
- package/src/Signal/WASignalGroup/group_cipher.js +1 -1
- package/src/Signal/WASignalGroup/keyhelper.js +1 -1
- package/src/Signal/WASignalGroup/sender_chain_key.js +1 -1
- package/src/Signal/WASignalGroup/sender_key_message.js +1 -1
- package/src/Signal/WASignalGroup/sender_message_key.js +1 -1
- package/src/Signal/libsignal.js +1 -1
- package/src/Socket/chats.js +7 -7
- package/src/Socket/messages-send.js +3 -3
- package/src/Store/make-in-memory-store.d.ts +2 -2
- package/src/Store/make-in-memory-store.js +5 -5
- package/src/Utils/crypto.js +1 -1
- package/src/Utils/generics.js +22 -15
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<h1 align="center">🌸 Willkommen bei <code>@neelegirl/baileys</code> 🌸</h1>
|
|
6
|
-
<p align="center"><i>
|
|
6
|
+
<p align="center"><i>Die zuckersüße, erweiterte und personalisierte Version von Baileys – mit Glitzer, Herz und einer Prise Prinzessinnen-Magie 💖</i></p>
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
@@ -18,72 +18,48 @@
|
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
21
|
-
##
|
|
21
|
+
## 💖 Was ist <code>@neelegirl/baileys</code>?
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
Diese Version ist eine **modifizierte (Mod) Baileys**-Variante –
|
|
24
|
+
perfekt für alle, die **WhatsApp-Bots in TypeScript/JavaScript** nutzen wollen,
|
|
25
|
+
aber es gern **hübsch, liebevoll und voll mit Extra-Features** haben. 🎀
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
> ✖️ Kein Spam, keine Massennachrichten
|
|
27
|
-
> ✖️ Kein Missbrauch für unethische Zwecke
|
|
28
|
-
> ✔️ Stattdessen: Lasst uns **respektvoll Magie verbreiten**! 🌟
|
|
27
|
+
Ich habe sie **mit Herz angepasst**, um:
|
|
29
28
|
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
- 💌 **Extra-Funktionen** einzubauen (z. B. spezielle Sticker-Optionen, Bot-Events)
|
|
30
|
+
- 🌸 Alles **optisch niedlicher** zu gestalten
|
|
31
|
+
- 🪄 **Personalisierte Features** wie die *Message ID „Neele“* zu integrieren
|
|
32
|
+
- 🛠 Stabilität & Komfort zu erhöhen
|
|
32
33
|
|
|
33
34
|
---
|
|
34
35
|
|
|
35
|
-
##
|
|
36
|
+
## 💌 Besondere Note – Message ID „Neele“
|
|
36
37
|
|
|
37
|
-
|
|
38
|
+
Jede generierte **Message ID** ist **personalisert** und trägt den Namen
|
|
39
|
+
**„Neele“** – so weißt du immer, dass jede Nachricht aus *unserer kleinen Zauberwelt* kommt. ✨
|
|
38
40
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
- 💖 Unterstützt WhatsApp **Multi-Device** vollständig!
|
|
41
|
+
**Beispiel:**
|
|
42
|
+
🌟 Das ist nicht nur technisch einzigartig, sondern auch ein kleiner **Signature-Touch**.
|
|
42
43
|
|
|
43
44
|
---
|
|
44
45
|
|
|
45
|
-
##
|
|
46
|
-
|
|
47
|
-
Installiere mit Glanzstaub via **yarn**:
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
yarn add @neelegirl/baileys
|
|
51
|
-
```
|
|
46
|
+
## ✨ Warum diese Mod-Version statt normaler Baileys?
|
|
52
47
|
|
|
53
|
-
|
|
48
|
+
💗 **Mädchenhafte Magie trifft auf Technik**
|
|
49
|
+
Diese Version vereint alle Vorteile von Baileys mit einem **weiblichen, verspielten Look** –
|
|
50
|
+
perfekt für Bots, die **nicht nur funktionieren**, sondern **Charakter** haben.
|
|
54
51
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
```ts
|
|
62
|
-
import makeWASocket from '@neelegirl/baileys'
|
|
63
|
-
```
|
|
52
|
+
✨ **Zusatzfunktionen**:
|
|
53
|
+
- 🧠 Ultra leichtgewichtig – kein Selenium, keine Browser-Hacks
|
|
54
|
+
- 🌈 Multi-Device-Support vollständig integriert
|
|
55
|
+
- 🎀 Sticker & Medien-Versand optimiert
|
|
56
|
+
- 🌟 Events & Methoden, die es im Original nicht gibt
|
|
57
|
+
- 🛡️ Bessere Fehlerbehandlung, damit dein Bot stabil läuft
|
|
64
58
|
|
|
65
59
|
---
|
|
66
60
|
|
|
67
|
-
##
|
|
68
|
-
|
|
69
|
-
Tauche in den Zauberwald ein – siehe [example.ts](./Example/example.ts) 🌲🦋
|
|
70
|
-
|
|
71
|
-
Du kannst damit:
|
|
72
|
-
|
|
73
|
-
- 💌 Nachrichten mit Emojis senden
|
|
74
|
-
- 🖼 Profilbilder setzen
|
|
75
|
-
- ✨ Gruppen erstellen und verzaubern
|
|
76
|
-
- 🎀 Medien direkt als Sticker verschicken
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## ❤️ Credits & Danksagung
|
|
81
|
-
|
|
82
|
-
Mit Liebe, Glitzer und rosa Codezeilen von **@neelegirl** erschaffen.
|
|
83
|
-
Wenn dir dieses Projekt gefällt:
|
|
84
|
-
|
|
85
|
-
> ⭐ Gib ihm ein ⭐️ auf GitHub – das wär sooo süß! 🌟
|
|
86
|
-
|
|
87
|
-
---
|
|
61
|
+
## 🌈 Installation (Dein magisches Setup)
|
|
88
62
|
|
|
89
|
-
|
|
63
|
+
Mit **yarn** Glitzerstaub installieren:
|
|
64
|
+
```bash
|
|
65
|
+
yarn add @neelegirl/baileys
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neelegirl/baileys",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.99",
|
|
4
4
|
"description": "WhatsApp API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"whatsapp",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"cache-manager": "4.0.1",
|
|
39
39
|
"futoin-hkdf": "^1.5.1",
|
|
40
40
|
"libphonenumber-js": "^1.10.20",
|
|
41
|
-
"libsignal
|
|
41
|
+
"@neelegirl/libsignal": "^1.0.1",
|
|
42
42
|
"music-metadata": "^7.12.3",
|
|
43
43
|
"node-cache": "^5.1.2",
|
|
44
44
|
"pino": "^7.0.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const queue_job = require('./queue_job');
|
|
2
2
|
const SenderKeyMessage = require('./sender_key_message');
|
|
3
|
-
const crypto = require('libsignal
|
|
3
|
+
const crypto = require('@neelegirl/libsignal/src/crypto');
|
|
4
4
|
|
|
5
5
|
class GroupCipher {
|
|
6
6
|
constructor(senderKeyStore, senderKeyName) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const SenderMessageKey = require('./sender_message_key');
|
|
2
2
|
//const HKDF = require('./hkdf');
|
|
3
|
-
const crypto = require('libsignal
|
|
3
|
+
const crypto = require('@neelegirl/libsignal/src/crypto');
|
|
4
4
|
|
|
5
5
|
class SenderChainKey {
|
|
6
6
|
MESSAGE_KEY_SEED = Buffer.from([0x01]);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const CiphertextMessage = require('./ciphertext_message');
|
|
2
|
-
const curve = require('libsignal
|
|
2
|
+
const curve = require('@neelegirl/libsignal/src/curve');
|
|
3
3
|
const protobufs = require('./protobufs');
|
|
4
4
|
|
|
5
5
|
class SenderKeyMessage extends CiphertextMessage {
|
package/src/Signal/libsignal.js
CHANGED
|
@@ -27,7 +27,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
27
27
|
}
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true })
|
|
29
29
|
|
|
30
|
-
const libsignal = __importStar(require("libsignal
|
|
30
|
+
const libsignal = __importStar(require("@neelegirl/libsignal"))
|
|
31
31
|
const WASignalGroup_1 = require("./WASignalGroup")
|
|
32
32
|
const Utils_1 = require("../Utils")
|
|
33
33
|
const WABinary_1 = require("../WABinary")
|
package/src/Socket/chats.js
CHANGED
|
@@ -20,8 +20,8 @@ const MAX_SYNC_ATTEMPTS = 2
|
|
|
20
20
|
|
|
21
21
|
const makeChatsSocket = (config) => {
|
|
22
22
|
const { logger, markOnlineOnConnect, fireInitQueries, appStateMacVerification, shouldIgnoreJid, shouldSyncHistoryMessage, } = config
|
|
23
|
-
const
|
|
24
|
-
const { ev, ws, authState, generateMessageTag, sendNode, query, onUnexpectedError, groupFetchAllParticipating } =
|
|
23
|
+
const onimai = usync_1.makeUSyncSocket(config)
|
|
24
|
+
const { ev, ws, authState, generateMessageTag, sendNode, query, onUnexpectedError, groupFetchAllParticipating } = onimai
|
|
25
25
|
let privacySettings
|
|
26
26
|
let needToFlushWithAppStateSync = false
|
|
27
27
|
let pendingAppStateSync = false
|
|
@@ -192,7 +192,7 @@ const makeChatsSocket = (config) => {
|
|
|
192
192
|
id: targetJid
|
|
193
193
|
})
|
|
194
194
|
|
|
195
|
-
const result = await
|
|
195
|
+
const result = await onimai.executeUSyncQuery(usyncQuery)
|
|
196
196
|
|
|
197
197
|
if (result) {
|
|
198
198
|
return result.list
|
|
@@ -207,7 +207,7 @@ const makeChatsSocket = (config) => {
|
|
|
207
207
|
usyncQuery.withUser(new WAUSync_1.USyncUser().withPhone(phone))
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
-
const results = await
|
|
210
|
+
const results = await onimai.executeUSyncQuery(usyncQuery)
|
|
211
211
|
|
|
212
212
|
if (results) {
|
|
213
213
|
return results.list.filter((a) => !!a.contact).map(({ contact, id, lid }) => ({ jid: id, exists: contact, lid }))
|
|
@@ -222,7 +222,7 @@ const makeChatsSocket = (config) => {
|
|
|
222
222
|
usyncQuery.withUser(new WAUSync_1.USyncUser().withId(jid))
|
|
223
223
|
}
|
|
224
224
|
|
|
225
|
-
const result = await
|
|
225
|
+
const result = await onimai.executeUSyncQuery(usyncQuery)
|
|
226
226
|
|
|
227
227
|
if (result) {
|
|
228
228
|
return result.list
|
|
@@ -235,7 +235,7 @@ const makeChatsSocket = (config) => {
|
|
|
235
235
|
usyncQuery.withUser(new WAUSync_1.USyncUser().withId(jid))
|
|
236
236
|
}
|
|
237
237
|
|
|
238
|
-
const result = await
|
|
238
|
+
const result = await onimai.executeUSyncQuery(usyncQuery)
|
|
239
239
|
if (result) {
|
|
240
240
|
return result.list
|
|
241
241
|
}
|
|
@@ -980,7 +980,7 @@ const makeChatsSocket = (config) => {
|
|
|
980
980
|
})
|
|
981
981
|
|
|
982
982
|
return {
|
|
983
|
-
...
|
|
983
|
+
...onimai,
|
|
984
984
|
star,
|
|
985
985
|
addOrEditContact,
|
|
986
986
|
removeContact,
|
|
@@ -29,7 +29,7 @@ const makeMessagesSocket = (config) => {
|
|
|
29
29
|
patchMessageBeforeSending,
|
|
30
30
|
cachedGroupMetadata,
|
|
31
31
|
} = config;
|
|
32
|
-
const
|
|
32
|
+
const onimai = newsletter_1.makeNewsletterSocket(config);
|
|
33
33
|
const {
|
|
34
34
|
ev,
|
|
35
35
|
authState,
|
|
@@ -44,7 +44,7 @@ const makeMessagesSocket = (config) => {
|
|
|
44
44
|
groupToggleEphemeral,
|
|
45
45
|
newsletterWMexQuery,
|
|
46
46
|
executeUSyncQuery,
|
|
47
|
-
} =
|
|
47
|
+
} = onimai;
|
|
48
48
|
|
|
49
49
|
const userDevicesCache =
|
|
50
50
|
config.userDevicesCache ||
|
|
@@ -1114,7 +1114,7 @@ const makeMessagesSocket = (config) => {
|
|
|
1114
1114
|
);
|
|
1115
1115
|
|
|
1116
1116
|
return {
|
|
1117
|
-
...
|
|
1117
|
+
...onimai,
|
|
1118
1118
|
getPrivacyTokens,
|
|
1119
1119
|
assertSessions,
|
|
1120
1120
|
relayMessage,
|
|
@@ -80,8 +80,8 @@ export declare const makeInMemoryStore: (config: BaileysInMemoryStoreConfig) =>
|
|
|
80
80
|
getMessageLabels: (messageId: string) => string[]
|
|
81
81
|
loadMessage: (jid: string, id: string) => Promise<proto.IWebMessageInfo | undefined>
|
|
82
82
|
mostRecentMessage: (jid: string) => Promise<proto.IWebMessageInfo>
|
|
83
|
-
fetchImageUrl: (jid: string,
|
|
84
|
-
fetchGroupMetadata: (jid: string,
|
|
83
|
+
fetchImageUrl: (jid: string, onimai: WASocket | undefined) => Promise<string | null | undefined>
|
|
84
|
+
fetchGroupMetadata: (jid: string, onimai: WASocket | undefined) => Promise<GroupMetadata>
|
|
85
85
|
fetchMessageReceipts: ({ remoteJid, id }: WAMessageKey) => Promise<proto.IUserReceipt[] | null | undefined>
|
|
86
86
|
toJSON: () => {
|
|
87
87
|
chats: KeyedDB<Chat, string>
|
|
@@ -368,19 +368,19 @@ const makeInMemoryStore = (config) => {
|
|
|
368
368
|
const message = messages[jid]?.array.slice(-1)[0]
|
|
369
369
|
return message
|
|
370
370
|
},
|
|
371
|
-
fetchImageUrl: async (jid,
|
|
371
|
+
fetchImageUrl: async (jid, onimai) => {
|
|
372
372
|
const contact = contacts[jid]
|
|
373
373
|
if (!contact) {
|
|
374
|
-
return
|
|
374
|
+
return onimai?.profilePictureUrl(jid)
|
|
375
375
|
}
|
|
376
376
|
if (typeof contact.imgUrl === 'undefined') {
|
|
377
|
-
contact.imgUrl = await
|
|
377
|
+
contact.imgUrl = await onimai?.profilePictureUrl(jid)
|
|
378
378
|
}
|
|
379
379
|
return contact.imgUrl
|
|
380
380
|
},
|
|
381
|
-
fetchGroupMetadata: async (jid,
|
|
381
|
+
fetchGroupMetadata: async (jid, onimai) => {
|
|
382
382
|
if (!groupMetadata[jid]) {
|
|
383
|
-
const metadata = await
|
|
383
|
+
const metadata = await onimai?.groupMetadata(jid)
|
|
384
384
|
if (metadata) {
|
|
385
385
|
groupMetadata[jid] = metadata
|
|
386
386
|
}
|
package/src/Utils/crypto.js
CHANGED
|
@@ -29,7 +29,7 @@ var __importStar = (this && this.__importStar) || function(mod) {
|
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true })
|
|
30
30
|
|
|
31
31
|
const crypto_1 = require("crypto")
|
|
32
|
-
const libsignal = __importStar(require("libsignal
|
|
32
|
+
const libsignal = __importStar(require("@neelegirl/libsignal"))
|
|
33
33
|
const Defaults_1 = require("../Defaults")
|
|
34
34
|
|
|
35
35
|
const generateSignalPubKey = (pubKey) => (
|
package/src/Utils/generics.js
CHANGED
|
@@ -284,22 +284,29 @@ async function promiseTimeout(ms, promise) {
|
|
|
284
284
|
return p
|
|
285
285
|
}
|
|
286
286
|
|
|
287
|
-
const generateMessageID = (
|
|
288
|
-
const
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
287
|
+
const generateMessageID = () => {
|
|
288
|
+
const targetLength = 20; // Gesamtlänge
|
|
289
|
+
const prefix = '3A'; // iOS-Style Prefix
|
|
290
|
+
const middle = 'NEELE'; // Fester Name in der ID
|
|
291
|
+
|
|
292
|
+
const fillLen = targetLength - prefix.length - middle.length;
|
|
293
|
+
const leftLen = Math.floor(Math.random() * (fillLen + 1));
|
|
294
|
+
const rightLen = fillLen - leftLen;
|
|
295
|
+
|
|
296
|
+
const randomHex = (len) => {
|
|
297
|
+
const hexChars = '0123456789ABCDEF';
|
|
298
|
+
let s = '';
|
|
299
|
+
for (let i = 0; i < len; i++) {
|
|
300
|
+
s += hexChars.charAt(Math.floor(Math.random() * hexChars.length));
|
|
295
301
|
}
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
const
|
|
300
|
-
const
|
|
301
|
-
|
|
302
|
-
|
|
302
|
+
return s;
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
const leftPart = randomHex(leftLen);
|
|
306
|
+
const rightPart = randomHex(rightLen);
|
|
307
|
+
|
|
308
|
+
return prefix + leftPart + middle + rightPart;
|
|
309
|
+
};
|
|
303
310
|
|
|
304
311
|
const generateMessageIDV2 = (userId) => {
|
|
305
312
|
const data = Buffer.alloc(8 + 20 + 16);
|