@neelegirl/baileys 1.5.2 → 1.5.3
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/LICENSE +21 -21
- package/README.md +195 -187
- package/WAProto/WAProto.proto +537 -236
- package/WAProto/index.d.ts +5971 -2388
- package/WAProto/index.js +17298 -6513
- package/lib/Defaults/baileys-version.json +3 -3
- package/lib/Defaults/index.d.ts +77 -67
- package/lib/Defaults/index.js +148 -136
- package/lib/Defaults/phonenumber-mcc.json +223 -223
- package/lib/Signal/WASignalGroup/GroupProtocol.js +1908 -1908
- package/lib/Signal/WASignalGroup/ciphertext-message.d.ts +9 -0
- package/lib/Signal/WASignalGroup/ciphertext-message.js +19 -0
- package/lib/Signal/WASignalGroup/ciphertext_message.js +15 -15
- package/lib/Signal/WASignalGroup/group-session-builder.d.ts +17 -0
- package/lib/Signal/WASignalGroup/group-session-builder.js +72 -0
- package/lib/Signal/WASignalGroup/group.proto +41 -41
- package/lib/Signal/WASignalGroup/group_cipher.d.ts +19 -0
- package/lib/Signal/WASignalGroup/group_cipher.js +101 -110
- package/lib/Signal/WASignalGroup/group_session_builder.js +45 -45
- package/lib/Signal/WASignalGroup/index.d.ts +11 -0
- package/lib/Signal/WASignalGroup/index.js +61 -6
- package/lib/Signal/WASignalGroup/keyhelper.d.ts +16 -0
- package/lib/Signal/WASignalGroup/keyhelper.js +58 -13
- package/lib/Signal/WASignalGroup/protobufs.js +2 -2
- package/lib/Signal/WASignalGroup/queue_job.js +68 -68
- package/lib/Signal/WASignalGroup/readme.md +5 -5
- package/lib/Signal/WASignalGroup/sender-chain-key.d.ts +14 -0
- package/lib/Signal/WASignalGroup/sender-chain-key.js +47 -0
- package/lib/Signal/WASignalGroup/sender-key-distribution-message.d.ts +17 -0
- package/lib/Signal/WASignalGroup/sender-key-distribution-message.js +71 -0
- package/lib/Signal/WASignalGroup/sender-key-message.d.ts +19 -0
- package/lib/Signal/WASignalGroup/sender-key-message.js +73 -0
- package/lib/Signal/WASignalGroup/sender-key-name.d.ts +19 -0
- package/lib/Signal/WASignalGroup/sender-key-name.js +59 -0
- package/lib/Signal/WASignalGroup/sender-key-record.d.ts +32 -0
- package/lib/Signal/WASignalGroup/sender-key-record.js +58 -0
- package/lib/Signal/WASignalGroup/sender-key-state.d.ts +44 -0
- package/lib/Signal/WASignalGroup/sender-key-state.js +147 -0
- package/lib/Signal/WASignalGroup/sender-message-key.d.ts +11 -0
- package/lib/Signal/WASignalGroup/sender-message-key.js +33 -0
- package/lib/Signal/WASignalGroup/sender_chain_key.js +49 -49
- package/lib/Signal/WASignalGroup/sender_key_distribution_message.js +77 -77
- package/lib/Signal/WASignalGroup/sender_key_message.js +91 -91
- package/lib/Signal/WASignalGroup/sender_key_name.js +69 -69
- package/lib/Signal/WASignalGroup/sender_key_record.js +55 -55
- package/lib/Signal/WASignalGroup/sender_key_state.js +128 -128
- package/lib/Signal/WASignalGroup/sender_message_key.js +38 -38
- package/lib/Signal/libsignal.d.ts +5 -1
- package/lib/Signal/libsignal.js +390 -161
- package/lib/Signal/lid-mapping.d.ts +28 -0
- package/lib/Signal/lid-mapping.js +184 -0
- package/lib/Socket/Client/abstract-socket-client.d.ts +15 -15
- package/lib/Socket/Client/abstract-socket-client.js +13 -13
- package/lib/Socket/Client/index.d.ts +2 -2
- package/lib/Socket/Client/mobile-socket-client.d.ts +12 -12
- package/lib/Socket/Client/mobile-socket-client.js +65 -65
- package/lib/Socket/Client/types.d.ts +1 -1
- package/lib/Socket/Client/websocket.d.ts +1 -1
- package/lib/Socket/business.d.ts +6 -6
- package/lib/Socket/business.js +152 -5
- package/lib/Socket/chats.d.ts +3 -4
- package/lib/Socket/chats.js +31 -26
- package/lib/Socket/communities.d.ts +223 -223
- package/lib/Socket/communities.js +432 -432
- package/lib/Socket/groups.d.ts +2 -4
- package/lib/Socket/groups.js +22 -14
- package/lib/Socket/index.d.ts +69 -69
- package/lib/Socket/index.js +3 -2
- package/lib/Socket/messages-recv.d.ts +3 -6
- package/lib/Socket/messages-recv.js +1449 -1707
- package/lib/Socket/messages-send.d.ts +2 -4
- package/lib/Socket/messages-send.js +617 -126
- package/lib/Socket/mex.d.ts +2 -2
- package/lib/Socket/mex.js +46 -46
- package/lib/Socket/newsletter.d.ts +2 -4
- package/lib/Socket/newsletter.js +294 -285
- package/lib/Socket/socket.js +318 -132
- package/lib/Socket/usync.js +3 -3
- package/lib/Store/index.d.ts +4 -4
- package/lib/Store/index.js +23 -23
- package/lib/Store/make-cache-manager-store.d.ts +13 -13
- package/lib/Store/make-cache-manager-store.js +89 -89
- package/lib/Store/make-in-memory-store.d.ts +122 -122
- package/lib/Store/make-in-memory-store.js +428 -428
- package/lib/Store/make-ordered-dictionary.d.ts +11 -11
- package/lib/Store/make-ordered-dictionary.js +85 -85
- package/lib/Store/object-repository.d.ts +9 -9
- package/lib/Store/object-repository.js +30 -30
- package/lib/Types/Auth.d.ts +5 -4
- package/lib/Types/Bussines.js +3 -0
- package/lib/Types/Bussiness.d.ts +28 -0
- package/lib/Types/Chat.d.ts +13 -8
- package/lib/Types/Contact.d.ts +4 -1
- package/lib/Types/Events.d.ts +13 -16
- package/lib/Types/GroupMetadata.d.ts +1 -1
- package/lib/Types/Message.d.ts +18 -7
- package/lib/Types/Message.js +7 -1
- package/lib/Types/MexUpdates.d.ts +8 -8
- package/lib/Types/MexUpdates.js +17 -17
- package/lib/Types/Newsletter.d.ts +1 -1
- package/lib/Types/Product.d.ts +1 -1
- package/lib/Types/Signal.d.ts +31 -1
- package/lib/Types/Socket.d.ts +34 -13
- package/lib/Types/State.d.ts +1 -1
- package/lib/Types/USync.d.ts +2 -2
- package/lib/Types/index.d.ts +16 -15
- package/lib/Types/index.js +4 -2
- package/lib/Utils/auth-utils.d.ts +20 -20
- package/lib/Utils/auth-utils.js +527 -204
- package/lib/Utils/baileys-event-stream.d.ts +17 -17
- package/lib/Utils/baileys-event-stream.js +69 -69
- package/lib/Utils/business.d.ts +28 -28
- package/lib/Utils/business.js +254 -254
- package/lib/Utils/chat-utils.d.ts +81 -81
- package/lib/Utils/chat-utils.js +808 -780
- package/lib/Utils/crypto.d.ts +55 -55
- package/lib/Utils/crypto.js +188 -178
- package/lib/Utils/decode-wa-message.d.ts +52 -40
- package/lib/Utils/decode-wa-message.js +322 -252
- package/lib/Utils/event-buffer.d.ts +38 -38
- package/lib/Utils/event-buffer.js +594 -564
- package/lib/Utils/generics.d.ts +131 -129
- package/lib/Utils/generics.js +629 -623
- package/lib/Utils/history.d.ts +22 -22
- package/lib/Utils/history.js +103 -109
- package/lib/Utils/index.d.ts +20 -19
- package/lib/Utils/index.js +39 -38
- package/lib/Utils/link-preview.d.ts +22 -22
- package/lib/Utils/link-preview.js +119 -119
- package/lib/Utils/logger.d.ts +13 -13
- package/lib/Utils/logger.js +7 -7
- package/lib/Utils/lt-hash.d.ts +13 -13
- package/lib/Utils/lt-hash.js +57 -57
- package/lib/Utils/make-mutex.d.ts +8 -8
- package/lib/Utils/make-mutex.js +48 -48
- package/lib/Utils/message-retry-manager.d.ts +88 -0
- package/lib/Utils/message-retry-manager.js +160 -0
- package/lib/Utils/messages-media.d.ts +134 -128
- package/lib/Utils/messages-media.js +868 -805
- package/lib/Utils/messages.d.ts +104 -102
- package/lib/Utils/messages.js +1744 -1578
- package/lib/Utils/noise-handler.d.ts +20 -19
- package/lib/Utils/noise-handler.js +164 -154
- package/lib/Utils/process-message.d.ts +48 -48
- package/lib/Utils/process-message.js +427 -428
- package/lib/Utils/signal.d.ts +41 -41
- package/lib/Utils/signal.js +165 -165
- package/lib/Utils/use-mongo-file-auth-state.d.ts +5 -5
- package/lib/Utils/use-mongo-file-auth-state.js +83 -83
- package/lib/Utils/use-multi-file-auth-state.d.ts +17 -17
- package/lib/Utils/use-multi-file-auth-state.js +237 -237
- package/lib/Utils/use-single-file-auth-state.d.ts +12 -12
- package/lib/Utils/use-single-file-auth-state.js +79 -79
- package/lib/Utils/validate-connection.d.ts +12 -12
- package/lib/Utils/validate-connection.js +219 -186
- package/lib/WABinary/constants.d.ts +29 -29
- package/lib/WABinary/constants.js +1315 -1315
- package/lib/WABinary/decode.d.ts +8 -8
- package/lib/WABinary/decode.js +287 -287
- package/lib/WABinary/encode.d.ts +2 -2
- package/lib/WABinary/encode.js +264 -264
- package/lib/WABinary/generic-utils.d.ts +27 -27
- package/lib/WABinary/generic-utils.js +141 -141
- package/lib/WABinary/index.d.ts +5 -5
- package/lib/WABinary/index.js +24 -24
- package/lib/WABinary/jid-utils.d.ts +58 -53
- package/lib/WABinary/jid-utils.js +103 -91
- package/lib/WABinary/types.d.ts +21 -21
- package/lib/WABinary/types.js +2 -2
- package/lib/WAM/BinaryInfo.d.ts +15 -15
- package/lib/WAM/BinaryInfo.js +16 -16
- package/lib/WAM/constants.d.ts +46 -46
- package/lib/WAM/constants.js +15370 -15370
- package/lib/WAM/encode.d.ts +2 -2
- package/lib/WAM/encode.js +163 -164
- package/lib/WAM/index.d.ts +3 -3
- package/lib/WAM/index.js +22 -22
- package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +27 -27
- package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +68 -68
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +3 -3
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +2 -2
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +2 -2
- package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +9 -8
- package/lib/WAUSync/Protocols/USyncLIDProtocol.js +37 -29
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +2 -2
- package/lib/WAUSync/Protocols/index.d.ts +6 -6
- package/lib/WAUSync/USyncQuery.d.ts +3 -3
- package/lib/WAUSync/index.d.ts +3 -3
- package/lib/index.d.ts +13 -13
- package/lib/index.js +33 -33
- package/package.json +96 -94
- package/lib/Socket/registration.d.ts +0 -266
- package/lib/Socket/registration.js +0 -166
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict"
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true })
|
|
4
|
+
|
|
5
|
+
const lru_cache_1 = require("lru-cache")
|
|
6
|
+
const WABinary_1 = require("../WABinary")
|
|
7
|
+
|
|
8
|
+
class LIDMappingStore {
|
|
9
|
+
constructor(keys, onWhatsAppFunc, logger) {
|
|
10
|
+
this.mappingCache = new lru_cache_1.LRUCache({
|
|
11
|
+
ttl: 7 * 24 * 60 * 60 * 1000, // 7 days
|
|
12
|
+
ttlAutopurge: true,
|
|
13
|
+
updateAgeOnGet: true
|
|
14
|
+
})
|
|
15
|
+
this.keys = keys
|
|
16
|
+
this.logger = logger
|
|
17
|
+
this.onWhatsAppFunc = onWhatsAppFunc // needed to get LID from PN if not found
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Store LID-PN mapping - USER LEVEL
|
|
21
|
+
*/
|
|
22
|
+
async storeLIDPNMappings(pairs) {
|
|
23
|
+
// Validate inputs
|
|
24
|
+
const pairMap = {}
|
|
25
|
+
const logger = this.logger
|
|
26
|
+
|
|
27
|
+
for (const { lid, pn } of pairs) {
|
|
28
|
+
if (!((WABinary_1.isLidUser(lid) && WABinary_1.isJidUser(pn)) || (WABinary_1.isJidUser(lid) && WABinary_1.isLidUser(pn)))) {
|
|
29
|
+
logger.warn(`Invalid LID-PN mapping: ${lid}, ${pn}`)
|
|
30
|
+
continue
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const [lidJid, pnJid] = WABinary_1.isLidUser(lid) ? [lid, pn] : [pn, lid]
|
|
34
|
+
const lidDecoded = WABinary_1.jidDecode(lidJid)
|
|
35
|
+
const pnDecoded = WABinary_1.jidDecode(pnJid)
|
|
36
|
+
|
|
37
|
+
if (!lidDecoded || !pnDecoded) return
|
|
38
|
+
|
|
39
|
+
const pnUser = pnDecoded.user
|
|
40
|
+
const lidUser = lidDecoded.user
|
|
41
|
+
|
|
42
|
+
// Check if mapping already exists (cache first, then database)
|
|
43
|
+
let existingLidUser = this.mappingCache.get(`pn:${pnUser}`)
|
|
44
|
+
|
|
45
|
+
if (!existingLidUser) {
|
|
46
|
+
// Cache miss - check database
|
|
47
|
+
const stored = await this.keys.get('lid-mapping', [pnUser])
|
|
48
|
+
|
|
49
|
+
existingLidUser = stored[pnUser]
|
|
50
|
+
|
|
51
|
+
if (existingLidUser) {
|
|
52
|
+
// Update cache with database value
|
|
53
|
+
this.mappingCache.set(`pn:${pnUser}`, existingLidUser)
|
|
54
|
+
this.mappingCache.set(`lid:${existingLidUser}`, pnUser)
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (existingLidUser === lidUser) {
|
|
59
|
+
logger.debug({ pnUser, lidUser }, 'LID mapping already exists, skipping')
|
|
60
|
+
continue
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
pairMap[pnUser] = lidUser
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
logger.trace({ pairMap }, `Storing ${Object.keys(pairMap).length} pn mappings`)
|
|
67
|
+
|
|
68
|
+
await this.keys.transaction(async () => {
|
|
69
|
+
for (const [pnUser, lidUser] of Object.entries(pairMap)) {
|
|
70
|
+
await this.keys.set({
|
|
71
|
+
'lid-mapping': {
|
|
72
|
+
[pnUser]: lidUser, // "554396160286" -> "102765716062358"
|
|
73
|
+
[`${lidUser}_reverse`]: pnUser // "102765716062358_reverse" -> "554396160286"
|
|
74
|
+
}
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
// Update cache with both directions
|
|
78
|
+
this.mappingCache.set(`pn:${pnUser}`, lidUser)
|
|
79
|
+
this.mappingCache.set(`lid:${lidUser}`, pnUser)
|
|
80
|
+
}
|
|
81
|
+
}, 'lid-mapping')
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get LID for PN - Returns device-specific LID based on user mapping
|
|
85
|
+
*/
|
|
86
|
+
async getLIDForPN(pn) {
|
|
87
|
+
if (!WABinary_1.isJidUser(pn)) return null
|
|
88
|
+
|
|
89
|
+
const logger = this.logger
|
|
90
|
+
const decoded = WABinary_1.jidDecode(pn)
|
|
91
|
+
|
|
92
|
+
if (!decoded) return null
|
|
93
|
+
|
|
94
|
+
// Check cache first for PN → LID mapping
|
|
95
|
+
const pnUser = decoded.user
|
|
96
|
+
|
|
97
|
+
let lidUser = this.mappingCache.get(`pn:${pnUser}`)
|
|
98
|
+
|
|
99
|
+
if (!lidUser) {
|
|
100
|
+
// Cache miss - check database
|
|
101
|
+
const stored = await this.keys.get('lid-mapping', [pnUser])
|
|
102
|
+
|
|
103
|
+
lidUser = stored[pnUser]
|
|
104
|
+
|
|
105
|
+
if (lidUser) {
|
|
106
|
+
// Cache the database result
|
|
107
|
+
this.mappingCache.set(`pn:${pnUser}`, lidUser)
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
else {
|
|
111
|
+
// Not in database - try USync
|
|
112
|
+
logger.trace(`No LID mapping found for PN user ${pnUser}; getting from USync`)
|
|
113
|
+
|
|
114
|
+
const { exists, lid } = (await this.onWhatsAppFunc?.(pn))?.[0] // this function already adds LIDs to mapping
|
|
115
|
+
|
|
116
|
+
if (exists && lid) {
|
|
117
|
+
lidUser = WABinary_1.jidDecode(lid)?.user
|
|
118
|
+
|
|
119
|
+
if (lidUser) {
|
|
120
|
+
// Cache the USync result
|
|
121
|
+
this.mappingCache.set(`pn:${pnUser}`, lidUser)
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
else {
|
|
126
|
+
return null
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if (typeof lidUser !== 'string' || !lidUser) {
|
|
132
|
+
logger.warn(`Invalid or empty LID user for PN ${pn}: lidUser = "${lidUser}"`)
|
|
133
|
+
return null
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Push the PN device ID to the LID to maintain device separation
|
|
137
|
+
const pnDevice = decoded.device !== undefined ? decoded.device : 0
|
|
138
|
+
const deviceSpecificLid = `${lidUser}:${pnDevice}@lid`
|
|
139
|
+
|
|
140
|
+
logger.trace(`getLIDForPN: ${pn} → ${deviceSpecificLid} (user mapping with device ${pnDevice})`)
|
|
141
|
+
|
|
142
|
+
return deviceSpecificLid
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get PN for LID - USER LEVEL with device construction
|
|
146
|
+
*/
|
|
147
|
+
async getPNForLID(lid) {
|
|
148
|
+
if (!WABinary_1.isLidUser(lid)) return null
|
|
149
|
+
|
|
150
|
+
const logger = this.logger
|
|
151
|
+
const decoded = WABinary_1.jidDecode(lid)
|
|
152
|
+
|
|
153
|
+
if (!decoded) return null
|
|
154
|
+
|
|
155
|
+
// Check cache first for LID → PN mapping
|
|
156
|
+
const lidUser = decoded.user
|
|
157
|
+
|
|
158
|
+
let pnUser = this.mappingCache.get(`lid:${lidUser}`)
|
|
159
|
+
|
|
160
|
+
if (!pnUser || typeof pnUser !== 'string') {
|
|
161
|
+
// Cache miss - check database
|
|
162
|
+
const stored = await this.keys.get('lid-mapping', [`${lidUser}_reverse`]);
|
|
163
|
+
pnUser = stored[`${lidUser}_reverse`]
|
|
164
|
+
|
|
165
|
+
if (!pnUser || typeof pnUser !== 'string') {
|
|
166
|
+
logger.trace(`No reverse mapping found for LID user: ${lidUser}`)
|
|
167
|
+
return null
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
this.mappingCache.set(`lid:${lidUser}`, pnUser)
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// Construct device-specific PN JID
|
|
174
|
+
const lidDevice = decoded.device !== undefined ? decoded.device : 0
|
|
175
|
+
const pnJid = `${pnUser}:${lidDevice}@s.whatsapp.net`
|
|
176
|
+
logger.trace(`Found reverse mapping: ${lid} → ${pnJid}`)
|
|
177
|
+
|
|
178
|
+
return pnJid
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
module.exports = {
|
|
183
|
+
LIDMappingStore
|
|
184
|
+
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { EventEmitter } from 'events';
|
|
2
|
-
import { URL } from 'url';
|
|
3
|
-
import { SocketConfig } from '../../Types';
|
|
4
|
-
export declare abstract class AbstractSocketClient extends EventEmitter {
|
|
5
|
-
url: URL;
|
|
6
|
-
config: SocketConfig;
|
|
7
|
-
abstract get isOpen(): boolean;
|
|
8
|
-
abstract get isClosed(): boolean;
|
|
9
|
-
abstract get isClosing(): boolean;
|
|
10
|
-
abstract get isConnecting(): boolean;
|
|
11
|
-
constructor(url: URL, config: SocketConfig);
|
|
12
|
-
abstract connect(): Promise<void>;
|
|
13
|
-
abstract close(): Promise<void>;
|
|
14
|
-
abstract send(str: Uint8Array | string, cb?: (err?: Error) => void): boolean;
|
|
15
|
-
}
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { URL } from 'url';
|
|
3
|
+
import { SocketConfig } from '../../Types';
|
|
4
|
+
export declare abstract class AbstractSocketClient extends EventEmitter {
|
|
5
|
+
url: URL;
|
|
6
|
+
config: SocketConfig;
|
|
7
|
+
abstract get isOpen(): boolean;
|
|
8
|
+
abstract get isClosed(): boolean;
|
|
9
|
+
abstract get isClosing(): boolean;
|
|
10
|
+
abstract get isConnecting(): boolean;
|
|
11
|
+
constructor(url: URL, config: SocketConfig);
|
|
12
|
+
abstract connect(): Promise<void>;
|
|
13
|
+
abstract close(): Promise<void>;
|
|
14
|
+
abstract send(str: Uint8Array | string, cb?: (err?: Error) => void): boolean;
|
|
15
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AbstractSocketClient = void 0;
|
|
4
|
-
const events_1 = require("events");
|
|
5
|
-
class AbstractSocketClient extends events_1.EventEmitter {
|
|
6
|
-
constructor(url, config) {
|
|
7
|
-
super();
|
|
8
|
-
this.url = url;
|
|
9
|
-
this.config = config;
|
|
10
|
-
this.setMaxListeners(0);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
exports.AbstractSocketClient = AbstractSocketClient;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbstractSocketClient = void 0;
|
|
4
|
+
const events_1 = require("events");
|
|
5
|
+
class AbstractSocketClient extends events_1.EventEmitter {
|
|
6
|
+
constructor(url, config) {
|
|
7
|
+
super();
|
|
8
|
+
this.url = url;
|
|
9
|
+
this.config = config;
|
|
10
|
+
this.setMaxListeners(0);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.AbstractSocketClient = AbstractSocketClient;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from '
|
|
2
|
-
export * from '
|
|
1
|
+
export * from '@neelegirl/baileys/lib/Socket/Client/types'
|
|
2
|
+
export * from '@neelegirl/baileys/lib/Socket/Client/websocket'
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Socket } from 'net';
|
|
2
|
-
import { AbstractSocketClient } from './abstract-socket-client';
|
|
3
|
-
export declare class MobileSocketClient extends AbstractSocketClient {
|
|
4
|
-
protected socket: Socket | null;
|
|
5
|
-
get isOpen(): boolean;
|
|
6
|
-
get isClosed(): boolean;
|
|
7
|
-
get isClosing(): boolean;
|
|
8
|
-
get isConnecting(): boolean;
|
|
9
|
-
connect(): Promise<void>;
|
|
10
|
-
close(): Promise<void>;
|
|
11
|
-
send(str: string | Uint8Array, cb?: (err?: Error) => void): boolean;
|
|
12
|
-
}
|
|
1
|
+
import { Socket } from 'net';
|
|
2
|
+
import { AbstractSocketClient } from './abstract-socket-client';
|
|
3
|
+
export declare class MobileSocketClient extends AbstractSocketClient {
|
|
4
|
+
protected socket: Socket | null;
|
|
5
|
+
get isOpen(): boolean;
|
|
6
|
+
get isClosed(): boolean;
|
|
7
|
+
get isClosing(): boolean;
|
|
8
|
+
get isConnecting(): boolean;
|
|
9
|
+
connect(): Promise<void>;
|
|
10
|
+
close(): Promise<void>;
|
|
11
|
+
send(str: string | Uint8Array, cb?: (err?: Error) => void): boolean;
|
|
12
|
+
}
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MobileSocketClient = void 0;
|
|
4
|
-
const net_1 = require("net");
|
|
5
|
-
const abstract_socket_client_1 = require("./abstract-socket-client");
|
|
6
|
-
class MobileSocketClient extends abstract_socket_client_1.AbstractSocketClient {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.socket = null;
|
|
10
|
-
}
|
|
11
|
-
get isOpen() {
|
|
12
|
-
var _a;
|
|
13
|
-
return ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === 'open';
|
|
14
|
-
}
|
|
15
|
-
get isClosed() {
|
|
16
|
-
var _a;
|
|
17
|
-
return this.socket === null || ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === 'closed';
|
|
18
|
-
}
|
|
19
|
-
get isClosing() {
|
|
20
|
-
var _a;
|
|
21
|
-
return this.socket === null || ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === 'closed';
|
|
22
|
-
}
|
|
23
|
-
get isConnecting() {
|
|
24
|
-
var _a;
|
|
25
|
-
return ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === 'opening';
|
|
26
|
-
}
|
|
27
|
-
async connect() {
|
|
28
|
-
var _a;
|
|
29
|
-
if (this.socket) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
if (this.config.agent) {
|
|
33
|
-
throw new Error('There are not support for proxy agent for mobile connection');
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
this.socket = (0, net_1.connect)({
|
|
37
|
-
host: this.url.hostname,
|
|
38
|
-
port: Number(this.url.port) || 443
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
this.socket.setMaxListeners(0);
|
|
42
|
-
const events = ['close', 'connect', 'data', 'drain', 'end', 'error', 'lookup', 'ready', 'timeout'];
|
|
43
|
-
for (const event of events) {
|
|
44
|
-
(_a = this.socket) === null || _a === void 0 ? void 0 : _a.on(event, (...args) => this.emit(event, ...args));
|
|
45
|
-
}
|
|
46
|
-
this.socket.on('data', (...args) => this.emit('message', ...args));
|
|
47
|
-
this.socket.on('ready', (...args) => this.emit('open', ...args));
|
|
48
|
-
}
|
|
49
|
-
async close() {
|
|
50
|
-
if (!this.socket) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
return new Promise(resolve => {
|
|
54
|
-
this.socket.end(resolve);
|
|
55
|
-
this.socket = null;
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
send(str, cb) {
|
|
59
|
-
if (this.socket === null) {
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
return this.socket.write(str, undefined, cb);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
exports.MobileSocketClient = MobileSocketClient;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MobileSocketClient = void 0;
|
|
4
|
+
const net_1 = require("net");
|
|
5
|
+
const abstract_socket_client_1 = require("./abstract-socket-client");
|
|
6
|
+
class MobileSocketClient extends abstract_socket_client_1.AbstractSocketClient {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.socket = null;
|
|
10
|
+
}
|
|
11
|
+
get isOpen() {
|
|
12
|
+
var _a;
|
|
13
|
+
return ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === 'open';
|
|
14
|
+
}
|
|
15
|
+
get isClosed() {
|
|
16
|
+
var _a;
|
|
17
|
+
return this.socket === null || ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === 'closed';
|
|
18
|
+
}
|
|
19
|
+
get isClosing() {
|
|
20
|
+
var _a;
|
|
21
|
+
return this.socket === null || ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === 'closed';
|
|
22
|
+
}
|
|
23
|
+
get isConnecting() {
|
|
24
|
+
var _a;
|
|
25
|
+
return ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === 'opening';
|
|
26
|
+
}
|
|
27
|
+
async connect() {
|
|
28
|
+
var _a;
|
|
29
|
+
if (this.socket) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (this.config.agent) {
|
|
33
|
+
throw new Error('There are not support for proxy agent for mobile connection');
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this.socket = (0, net_1.connect)({
|
|
37
|
+
host: this.url.hostname,
|
|
38
|
+
port: Number(this.url.port) || 443
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
this.socket.setMaxListeners(0);
|
|
42
|
+
const events = ['close', 'connect', 'data', 'drain', 'end', 'error', 'lookup', 'ready', 'timeout'];
|
|
43
|
+
for (const event of events) {
|
|
44
|
+
(_a = this.socket) === null || _a === void 0 ? void 0 : _a.on(event, (...args) => this.emit(event, ...args));
|
|
45
|
+
}
|
|
46
|
+
this.socket.on('data', (...args) => this.emit('message', ...args));
|
|
47
|
+
this.socket.on('ready', (...args) => this.emit('open', ...args));
|
|
48
|
+
}
|
|
49
|
+
async close() {
|
|
50
|
+
if (!this.socket) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
return new Promise(resolve => {
|
|
54
|
+
this.socket.end(resolve);
|
|
55
|
+
this.socket = null;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
send(str, cb) {
|
|
59
|
+
if (this.socket === null) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
return this.socket.write(str, undefined, cb);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.MobileSocketClient = MobileSocketClient;
|
package/lib/Socket/business.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GetCatalogOptions, ProductCreate, ProductUpdate, SocketConfig } from '../Types'
|
|
1
|
+
import { GetCatalogOptions, ProductCreate, ProductUpdate, SocketConfig, UpdateBussinesProfileProps } from '../Types'
|
|
2
2
|
import { BinaryNode } from '../WABinary'
|
|
3
3
|
|
|
4
4
|
export declare const makeBusinessSocket: (config: SocketConfig) => {
|
|
@@ -16,13 +16,15 @@ export declare const makeBusinessSocket: (config: SocketConfig) => {
|
|
|
16
16
|
deleted: number
|
|
17
17
|
}>
|
|
18
18
|
productUpdate: (productId: string, update: ProductUpdate) => Promise<import("../Types").Product>
|
|
19
|
+
updateBussinesProfile: (args: UpdateBussinesProfileProps) => Promise<any>
|
|
20
|
+
updateCoverPhoto: (photo: import("../Types").WAMediaUpload) => Promise<number>
|
|
21
|
+
removeCoverPhoto: (id: string) => Promise<any>
|
|
19
22
|
sendMessageAck: ({ tag, attrs, content }: BinaryNode, errorCode?: number | undefined) => Promise<void>
|
|
20
23
|
sendRetryRequest: (node: BinaryNode, forceIncludeKeys?: boolean) => Promise<void>
|
|
21
24
|
offerCall: (toJid: string, isVideo?: boolean) => Promise<{
|
|
22
25
|
id: any
|
|
23
26
|
to: string
|
|
24
27
|
}>
|
|
25
|
-
nodelogger: (node: BinaryNode) => Promise<void>
|
|
26
28
|
rejectCall: (callId: string, callFrom: string) => Promise<void>
|
|
27
29
|
fetchMessageHistory: (count: number, oldestMsgKey: import("../Types").WAProto.IMessageKey, oldestMsgTimestamp: number | import("long").Long) => Promise<string>
|
|
28
30
|
requestPlaceholderResend: (messageKey: import("../Types").WAProto.IMessageKey) => Promise<string | undefined>
|
|
@@ -119,10 +121,6 @@ export declare const makeBusinessSocket: (config: SocketConfig) => {
|
|
|
119
121
|
lid: string
|
|
120
122
|
id: string
|
|
121
123
|
}[] | undefined>
|
|
122
|
-
onWhatsApp: (...jids: string[]) => Promise<{
|
|
123
|
-
jid: string
|
|
124
|
-
exists: unknown
|
|
125
|
-
}[] | undefined>
|
|
126
124
|
fetchBlocklist: () => Promise<string[]>
|
|
127
125
|
fetchStatus: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>
|
|
128
126
|
fetchDisappearingDuration: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>
|
|
@@ -154,6 +152,8 @@ export declare const makeBusinessSocket: (config: SocketConfig) => {
|
|
|
154
152
|
id: string
|
|
155
153
|
fromMe?: boolean | undefined
|
|
156
154
|
}[], star: boolean) => Promise<void>
|
|
155
|
+
addOrEditQuickReply: (quickReply: import("../Types/Bussines").QuickReplyAction) => Promise<void>
|
|
156
|
+
removeQuickReply: (timestamp: string) => Promise<void>
|
|
157
157
|
executeUSyncQuery: (usyncQuery: import("..").USyncQuery) => Promise<import("..").USyncQueryResult | undefined>
|
|
158
158
|
type: "md"
|
|
159
159
|
ws: import("./Client").WebSocketClient
|