@badzz88/baileys 8.4.9 → 8.5.0
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/WAProto/WAProto.proto +6 -347
- package/WAProto/fix-imports.js +85 -86
- package/WAProto/index.d.ts +25 -4913
- package/WAProto/index.js +93 -14069
- package/{src → lib}/Defaults/index.js +2 -13
- package/{src → lib}/Signal/Group/group_cipher.js +5 -5
- package/{src → lib}/Signal/Group/keyhelper.js +4 -4
- package/{src → lib}/Signal/Group/sender-chain-key.js +2 -2
- package/{src → lib}/Signal/Group/sender-key-distribution-message.js +1 -1
- package/{src → lib}/Signal/Group/sender-key-message.js +3 -3
- package/{src → lib}/Signal/Group/sender-key-record.js +1 -1
- package/{src → lib}/Signal/Group/sender-message-key.js +2 -2
- package/{src → lib}/Signal/libsignal.js +26 -6
- package/{src → lib}/Socket/chats.js +58 -616
- package/{src → lib}/Socket/communities.js +28 -59
- package/{src → lib}/Socket/graphql.js +103 -362
- package/{src → lib}/Socket/groups.js +29 -77
- package/{src → lib}/Socket/index.js +5 -3
- package/{src → lib}/Socket/interactive-handler.js +60 -117
- package/{src → lib}/Socket/interop.js +19 -36
- package/lib/Socket/luxu.js +387 -0
- package/{src → lib}/Socket/managed-account.js +27 -58
- package/{src → lib}/Socket/messages-recv.js +143 -715
- package/{src → lib}/Socket/messages-send.js +102 -412
- package/lib/Socket/mex.js +60 -0
- package/{src → lib}/Socket/newsletter.js +23 -266
- package/{src → lib}/Socket/privacy.js +38 -41
- package/{src → lib}/Socket/registration.js +106 -113
- package/{src → lib}/Socket/socket.js +101 -88
- package/{src → lib}/Socket/text-router.js +17 -1
- package/lib/Socket/username.js +243 -0
- package/lib/Store/keyed-db.js +108 -0
- package/{src → lib}/Store/make-in-memory-store.js +104 -6
- package/lib/Types/Mex.js +112 -0
- package/{src → lib}/Types/Newsletter.js +41 -72
- package/{src → lib}/Types/index.js +1 -0
- package/{src → lib}/Utils/chat-utils.js +9 -73
- package/lib/Utils/command-loader.d.ts +31 -0
- package/lib/Utils/command-loader.js +100 -0
- package/lib/Utils/companion-reg-client-utils.js +42 -0
- package/lib/Utils/crypto.js +155 -0
- package/lib/Utils/curve25519-js.js +275 -0
- package/{src → lib}/Utils/decode-wa-message.js +36 -284
- package/{src → lib}/Utils/event-buffer.js +27 -6
- package/{src → lib}/Utils/generics.js +37 -114
- package/{src → lib}/Utils/index.js +5 -1
- package/lib/Utils/lt-hash.js +39 -0
- package/{src → lib}/Utils/message-retry-manager.js +39 -0
- package/{src → lib}/Utils/messages-media.js +58 -105
- package/{src → lib}/Utils/messages.js +529 -115
- package/lib/Utils/meta-ai-msmsg.js +262 -0
- package/lib/Utils/native-bridge.js +82 -0
- package/{src → lib}/Utils/noise-handler.js +15 -13
- package/{src → lib}/Utils/process-message.js +55 -54
- package/{src → lib}/Utils/reporting-utils.js +2 -2
- package/lib/Utils/session-pool.d.ts +16 -0
- package/lib/Utils/session-pool.js +94 -0
- package/{src → lib}/Utils/signal.js +51 -19
- package/{src → lib}/Utils/stanza-ack.js +2 -36
- package/lib/Utils/sticker.d.ts +17 -0
- package/lib/Utils/sticker.js +145 -0
- package/{src → lib}/Utils/tc-token-utils.js +1 -1
- package/{src → lib}/Utils/validate-connection.js +11 -40
- package/lib/Utils/view-once-cache.d.ts +9 -0
- package/lib/Utils/view-once-cache.js +79 -0
- package/{src → lib}/WABinary/decode.js +4 -38
- package/lib/WABinary/encode.js +228 -0
- package/{src → lib}/WABinary/generic-utils.js +93 -1
- package/{src → lib}/WABinary/jid-utils.js +3 -16
- package/{src → lib}/WAM/encode.js +1 -1
- package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +43 -0
- package/{src → lib}/WAUSync/Protocols/USyncContactProtocol.js +1 -7
- package/{src → lib}/WAUSync/Protocols/USyncDeviceProtocol.js +5 -13
- package/{src → lib}/WAUSync/Protocols/USyncDisappearingModeProtocol.js +4 -1
- package/{src → lib}/WAUSync/Protocols/USyncFeatureProtocol.js +2 -17
- package/{src → lib}/WAUSync/Protocols/USyncStatusProtocol.js +2 -7
- package/{src → lib}/WAUSync/Protocols/USyncUsernameProtocol.js +1 -2
- package/{src → lib}/WAUSync/Protocols/index.js +0 -1
- package/{src → lib}/WAUSync/USyncQuery.js +6 -77
- package/{src → lib}/WAUSync/USyncUser.js +8 -16
- package/{src → lib}/WAUSync/index.js +0 -1
- package/{src → lib}/antiban.js +266 -355
- package/{src → lib}/index.js +2 -2
- package/package.json +18 -15
- package/WAProto/fix-import.js +0 -38
- package/src/Socket/mex.js +0 -47
- package/src/Socket/username.js +0 -234
- package/src/Utils/crypto.js +0 -125
- package/src/Utils/lt-hash.js +0 -10
- package/src/Utils/message-inspect.js +0 -400
- package/src/Utils/meta-ai-msmsg.js +0 -133
- package/src/WABinary/encode.js +0 -58
- package/src/WAUSync/Protocols/USyncBusinessProtocol.js +0 -100
- package/src/WAUSync/USyncBackoff.js +0 -31
- /package/{src → lib}/Defaults/phonenumber-mcc.json +0 -0
- /package/{src → lib}/Signal/Group/ciphertext-message.js +0 -0
- /package/{src → lib}/Signal/Group/group-session-builder.js +0 -0
- /package/{src → lib}/Signal/Group/index.js +0 -0
- /package/{src → lib}/Signal/Group/sender-key-name.js +0 -0
- /package/{src → lib}/Signal/Group/sender-key-state.js +0 -0
- /package/{src → lib}/Signal/lid-mapping.js +0 -0
- /package/{src → lib}/Socket/Client/index.js +0 -0
- /package/{src → lib}/Socket/Client/types.js +0 -0
- /package/{src → lib}/Socket/Client/websocket.js +0 -0
- /package/{src → lib}/Socket/aigroups.js +0 -0
- /package/{src → lib}/Socket/business.js +0 -0
- /package/{src → lib}/Store/index.js +0 -0
- /package/{src → lib}/Store/make-cache-manager-store.js +0 -0
- /package/{src → lib}/Store/make-ordered-dictionary.js +0 -0
- /package/{src → lib}/Store/object-repository.js +0 -0
- /package/{src → lib}/Types/Auth.js +0 -0
- /package/{src → lib}/Types/Bussines.js +0 -0
- /package/{src → lib}/Types/Call.js +0 -0
- /package/{src → lib}/Types/Chat.js +0 -0
- /package/{src → lib}/Types/Contact.js +0 -0
- /package/{src → lib}/Types/Events.js +0 -0
- /package/{src → lib}/Types/GroupMetadata.js +0 -0
- /package/{src → lib}/Types/Label.js +0 -0
- /package/{src → lib}/Types/LabelAssociation.js +0 -0
- /package/{src → lib}/Types/Message.js +0 -0
- /package/{src → lib}/Types/Product.js +0 -0
- /package/{src → lib}/Types/Signal.js +0 -0
- /package/{src → lib}/Types/Socket.js +0 -0
- /package/{src → lib}/Types/State.js +0 -0
- /package/{src → lib}/Types/USync.js +0 -0
- /package/{src → lib}/Utils/auth-utils.js +0 -0
- /package/{src → lib}/Utils/browser-utils.js +0 -0
- /package/{src → lib}/Utils/business.js +0 -0
- /package/{src → lib}/Utils/consumer-application.js +0 -0
- /package/{src → lib}/Utils/group-history.js +0 -0
- /package/{src → lib}/Utils/history.js +0 -0
- /package/{src → lib}/Utils/identity-change-handler.js +0 -0
- /package/{src → lib}/Utils/jid-display-normalization.js +0 -0
- /package/{src → lib}/Utils/link-preview.js +0 -0
- /package/{src → lib}/Utils/logger.js +0 -0
- /package/{src → lib}/Utils/make-mutex.js +0 -0
- /package/{src → lib}/Utils/message-composer.js +0 -0
- /package/{src → lib}/Utils/offline-node-processor.js +0 -0
- /package/{src → lib}/Utils/pre-key-manager.js +0 -0
- /package/{src → lib}/Utils/sync-action-utils.js +0 -0
- /package/{src → lib}/Utils/use-multi-file-auth-state.js +0 -0
- /package/{src → lib}/Utils/voip-rekey.js +0 -0
- /package/{src → lib}/WABinary/constants.js +0 -0
- /package/{src → lib}/WABinary/index.js +0 -0
- /package/{src → lib}/WABinary/types.js +0 -0
- /package/{src → lib}/WAM/BinaryInfo.js +0 -0
- /package/{src → lib}/WAM/constants.js +0 -0
- /package/{src → lib}/WAM/index.js +0 -0
- /package/{src → lib}/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -0
- /package/{src → lib}/WAUSync/Protocols/USyncLIDProtocol.js +0 -0
- /package/{src → lib}/WAUSync/Protocols/USyncPictureProtocol.js +0 -0
- /package/{src → lib}/WAUSync/Protocols/USyncSidelistProtocol.js +0 -0
- /package/{src → lib}/WAUSync/Protocols/USyncTextStatusProtocol.js +0 -0
|
@@ -5,10 +5,10 @@ const WABinary_1 = require('../WABinary')
|
|
|
5
5
|
const USyncBotProfileProtocol_1 = require('./Protocols/USyncBotProfileProtocol')
|
|
6
6
|
const USyncLIDProtocol_1 = require('./Protocols/USyncLIDProtocol')
|
|
7
7
|
const USyncBusinessProtocol_1 = require('./Protocols/USyncBusinessProtocol')
|
|
8
|
-
const USyncFeatureProtocol_1 = require('./Protocols/USyncFeatureProtocol')
|
|
9
8
|
const USyncPictureProtocol_1 = require('./Protocols/USyncPictureProtocol')
|
|
10
9
|
const USyncTextStatusProtocol_1 = require('./Protocols/USyncTextStatusProtocol')
|
|
11
10
|
const USyncSidelistProtocol_1 = require('./Protocols/USyncSidelistProtocol')
|
|
11
|
+
const USyncFeatureProtocol_1 = require('./Protocols/USyncFeatureProtocol')
|
|
12
12
|
const Protocols_1 = require('./Protocols')
|
|
13
13
|
class USyncQuery {
|
|
14
14
|
constructor() {
|
|
@@ -39,85 +39,26 @@ class USyncQuery {
|
|
|
39
39
|
})
|
|
40
40
|
)
|
|
41
41
|
const queryResult = {
|
|
42
|
-
|
|
43
|
-
refresh: {},
|
|
42
|
+
// TODO: implement errors etc.
|
|
44
43
|
list: [],
|
|
45
44
|
sideList: []
|
|
46
45
|
}
|
|
47
46
|
const usyncNode = (0, WABinary_1.getBinaryNodeChild)(result, 'usync')
|
|
48
|
-
//
|
|
49
|
-
//
|
|
50
|
-
//
|
|
51
|
-
// usyncParser.
|
|
52
|
-
const resultNode = usyncNode ? (0, WABinary_1.getBinaryNodeChild)(usyncNode, 'result') : undefined
|
|
53
|
-
if (resultNode) {
|
|
54
|
-
for (const protocol of this.protocols) {
|
|
55
|
-
const protocolNode = (0, WABinary_1.getBinaryNodeChild)(resultNode, protocol.name)
|
|
56
|
-
if (!protocolNode) continue
|
|
57
|
-
const errorNode = (0, WABinary_1.getBinaryNodeChild)(protocolNode, 'error')
|
|
58
|
-
if (errorNode) {
|
|
59
|
-
queryResult.errors[protocol.name] = {
|
|
60
|
-
errorCode: errorNode.attrs.code ? +errorNode.attrs.code : undefined,
|
|
61
|
-
errorText: errorNode.attrs.text,
|
|
62
|
-
errorBackoff: errorNode.attrs.backoff ? +errorNode.attrs.backoff : undefined
|
|
63
|
-
}
|
|
64
|
-
} else if (protocolNode.attrs.refresh !== undefined) {
|
|
65
|
-
queryResult.refresh[protocol.name] = +protocolNode.attrs.refresh
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
47
|
+
//TODO: implement error backoff, refresh etc.
|
|
48
|
+
//TODO: see if there are any errors in the result node
|
|
49
|
+
//const resultNode = getBinaryNodeChild(usyncNode, 'result')
|
|
69
50
|
const parseUserNodes = nodes => {
|
|
70
51
|
return nodes.reduce((acc, node) => {
|
|
71
52
|
const id = node?.attrs.jid
|
|
72
53
|
if (id) {
|
|
73
|
-
// G. Blocked-by tracking: a user-level error attribute signals the contact
|
|
74
|
-
// has blocked us (WA uses 401/403/405 on the <user> node in this case).
|
|
75
|
-
const userErrorCode = node?.attrs?.error ? parseInt(node.attrs.error, 10) : 0
|
|
76
|
-
const isBlockedByAttr = userErrorCode === 401 || userErrorCode === 403 || userErrorCode === 405
|
|
77
|
-
|
|
78
54
|
const data = Array.isArray(node?.content)
|
|
79
55
|
? Object.fromEntries(
|
|
80
56
|
node.content
|
|
81
57
|
.map(content => {
|
|
82
58
|
const protocol = content.tag
|
|
83
|
-
|
|
84
|
-
// B. Privacy Token: extract per-contact privacy_token and
|
|
85
|
-
// privacy_mode_ts from <privacy> child elements in usync responses.
|
|
86
|
-
if (protocol === 'privacy') {
|
|
87
|
-
const tokenNode = (0, WABinary_1.getBinaryNodeChild)(content, 'token')
|
|
88
|
-
const modeTsNode = (0, WABinary_1.getBinaryNodeChild)(content, 'mode_ts')
|
|
89
|
-
// Also accept inline attrs format
|
|
90
|
-
const tokenVal = tokenNode?.content || content.attrs?.token
|
|
91
|
-
const modeTsVal =
|
|
92
|
-
modeTsNode?.content?.toString?.() || modeTsNode?.attrs?.value || content.attrs?.mode_ts || null
|
|
93
|
-
if (tokenVal) {
|
|
94
|
-
return [
|
|
95
|
-
'privacy',
|
|
96
|
-
{
|
|
97
|
-
token:
|
|
98
|
-
Buffer.isBuffer(tokenVal) || tokenVal instanceof Uint8Array
|
|
99
|
-
? Buffer.from(tokenVal)
|
|
100
|
-
: tokenVal,
|
|
101
|
-
modeTs: modeTsVal
|
|
102
|
-
}
|
|
103
|
-
]
|
|
104
|
-
}
|
|
105
|
-
return ['privacy', null]
|
|
106
|
-
}
|
|
107
|
-
|
|
108
59
|
const parser = protocolMap[protocol]
|
|
109
60
|
if (parser) {
|
|
110
|
-
|
|
111
|
-
return [protocol, parser(content)]
|
|
112
|
-
} catch (err) {
|
|
113
|
-
// G. Blocked-by: sub-node parser errors with blocked codes
|
|
114
|
-
// should surface as isBlockedByContact rather than crashing.
|
|
115
|
-
const errCode = err?.data ?? err?.output?.payload?.data
|
|
116
|
-
if (errCode === 401 || errCode === 403 || errCode === 405) {
|
|
117
|
-
return ['isBlockedByContact', true]
|
|
118
|
-
}
|
|
119
|
-
throw err
|
|
120
|
-
}
|
|
61
|
+
return [protocol, parser(content)]
|
|
121
62
|
} else {
|
|
122
63
|
return [protocol, null]
|
|
123
64
|
}
|
|
@@ -125,18 +66,6 @@ class USyncQuery {
|
|
|
125
66
|
.filter(([, b]) => b !== null)
|
|
126
67
|
)
|
|
127
68
|
: {}
|
|
128
|
-
|
|
129
|
-
// Merge user-attr blocked flag with any parser-detected blocked flag.
|
|
130
|
-
if (isBlockedByAttr) {
|
|
131
|
-
data.isBlockedByContact = true
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
// Remap snake_case protocol keys to camelCase contact fields.
|
|
135
|
-
if ('disappearing_mode' in data) {
|
|
136
|
-
data.disappearingMode = data.disappearing_mode
|
|
137
|
-
delete data.disappearing_mode
|
|
138
|
-
}
|
|
139
|
-
|
|
140
69
|
acc.push({ ...data, id })
|
|
141
70
|
}
|
|
142
71
|
return acc
|
|
@@ -30,29 +30,21 @@ class USyncUser {
|
|
|
30
30
|
this.personaId = personaId
|
|
31
31
|
return this
|
|
32
32
|
}
|
|
33
|
-
|
|
34
|
-
this.
|
|
33
|
+
withPictureId(pictureId) {
|
|
34
|
+
this.pictureId = pictureId
|
|
35
35
|
return this
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
this.
|
|
37
|
+
withVerifiedNameSerial(serial) {
|
|
38
|
+
this.verifiedNameSerial = serial
|
|
39
39
|
return this
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
this.
|
|
41
|
+
withBusinessProfileTag(tag) {
|
|
42
|
+
this.businessProfileTag = tag
|
|
43
43
|
return this
|
|
44
44
|
}
|
|
45
|
-
|
|
46
|
-
this.
|
|
45
|
+
withSidelistDelete(del = true) {
|
|
46
|
+
this.sidelistDelete = del
|
|
47
47
|
return this
|
|
48
48
|
}
|
|
49
|
-
withExpectedTs(expectedTs) {
|
|
50
|
-
this.expectedTs = expectedTs
|
|
51
|
-
return this
|
|
52
|
-
}
|
|
53
|
-
/** Ported from WAWebUsyncUser's validate() — a usync user needs at least one addressable field. */
|
|
54
|
-
validate() {
|
|
55
|
-
return !!(this.id || this.phone || this.username || this.pnJid)
|
|
56
|
-
}
|
|
57
49
|
}
|
|
58
50
|
exports.USyncUser = USyncUser
|