@alannxd/baileys 6.0.6 → 6.0.9
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 +1 -1
- package/README.md +341 -286
- package/WAProto/GenerateStatics.sh +3 -0
- package/WAProto/WAProto.proto +6902 -0
- package/WAProto/fix-imports.js +85 -0
- package/WAProto/index.d.ts +79257 -0
- package/WAProto/index.js +205861 -60565
- package/engine-requirements.js +1 -1
- package/lib/Defaults/index.js +119 -136
- package/lib/Signal/Group/ciphertext-message.js +2 -5
- package/lib/Signal/Group/group-session-builder.js +7 -41
- package/lib/Signal/Group/group_cipher.js +37 -51
- package/lib/Signal/Group/index.js +12 -57
- package/lib/Signal/Group/keyhelper.js +7 -44
- package/lib/Signal/Group/sender-chain-key.js +7 -15
- package/lib/Signal/Group/sender-key-distribution-message.js +8 -11
- package/lib/Signal/Group/sender-key-message.js +9 -12
- package/lib/Signal/Group/sender-key-name.js +2 -5
- package/lib/Signal/Group/sender-key-record.js +9 -21
- package/lib/Signal/Group/sender-key-state.js +27 -42
- package/lib/Signal/Group/sender-message-key.js +4 -7
- package/lib/Signal/libsignal.js +347 -90
- package/lib/Signal/lid-mapping.js +277 -0
- package/lib/Socket/Client/index.js +3 -19
- package/lib/Socket/Client/types.js +11 -0
- package/lib/Socket/Client/websocket.js +54 -0
- package/lib/Socket/business.js +162 -43
- package/lib/Socket/chats.js +627 -427
- package/lib/Socket/communities.js +90 -80
- package/lib/Socket/groups.js +154 -161
- package/lib/Socket/index.js +11 -10
- package/lib/Socket/luxu.js +315 -469
- package/lib/Socket/messages-recv.js +1421 -615
- package/lib/Socket/messages-send.js +1150 -799
- package/lib/Socket/mex.js +42 -0
- package/lib/Socket/newsletter.js +152 -204
- package/lib/Socket/socket.js +544 -313
- package/lib/Store/index.js +10 -10
- package/lib/Store/keyed-db.js +108 -0
- package/lib/Store/make-cache-manager-store.js +43 -41
- package/lib/Store/make-in-memory-store.js +112 -341
- package/lib/Store/make-ordered-dictionary.js +14 -20
- package/lib/Store/object-repository.js +11 -6
- package/lib/Types/Auth.js +2 -2
- package/lib/Types/Bussines.js +2 -0
- package/lib/Types/Call.js +2 -2
- package/lib/Types/Chat.js +8 -4
- package/lib/Types/Contact.js +2 -2
- package/lib/Types/Events.js +2 -2
- package/lib/Types/GroupMetadata.js +2 -2
- package/lib/Types/Label.js +3 -5
- package/lib/Types/LabelAssociation.js +3 -5
- package/lib/Types/Message.js +11 -9
- package/lib/Types/Mex.js +37 -0
- package/lib/Types/Product.js +2 -2
- package/lib/Types/Signal.js +2 -2
- package/lib/Types/Socket.js +3 -2
- package/lib/Types/State.js +56 -2
- package/lib/Types/USync.js +2 -2
- package/lib/Types/index.js +15 -31
- package/lib/Utils/auth-utils.js +239 -143
- package/lib/Utils/browser-utils.js +48 -0
- package/lib/Utils/business.js +66 -69
- package/lib/Utils/chat-utils.js +396 -253
- package/lib/Utils/companion-reg-client-utils.js +35 -0
- package/lib/Utils/crypto.js +57 -90
- package/lib/Utils/decode-wa-message.js +236 -84
- package/lib/Utils/event-buffer.js +185 -77
- package/lib/Utils/generics.js +189 -209
- package/lib/Utils/history.js +93 -55
- package/lib/Utils/identity-change-handler.js +50 -0
- package/lib/Utils/index.js +23 -33
- package/lib/Utils/link-preview.js +16 -24
- package/lib/Utils/logger.js +3 -7
- package/lib/Utils/lt-hash.js +3 -46
- package/lib/Utils/make-mutex.js +24 -34
- package/lib/Utils/message-composer.js +273 -0
- package/lib/Utils/message-retry-manager.js +265 -0
- package/lib/Utils/messages-media.js +451 -482
- package/lib/Utils/messages.js +795 -369
- package/lib/Utils/noise-handler.js +145 -99
- package/lib/Utils/offline-node-processor.js +40 -0
- package/lib/Utils/pre-key-manager.js +106 -0
- package/lib/Utils/process-message.js +459 -150
- package/lib/Utils/reporting-utils.js +258 -0
- package/lib/Utils/signal.js +120 -72
- package/lib/Utils/stanza-ack.js +38 -0
- package/lib/Utils/sync-action-utils.js +49 -0
- package/lib/Utils/tc-token-utils.js +163 -0
- package/lib/Utils/use-multi-file-auth-state.js +29 -27
- package/lib/Utils/validate-connection.js +73 -99
- package/lib/WABinary/constants.js +1281 -20
- package/lib/WABinary/decode.js +52 -42
- package/lib/WABinary/encode.js +110 -155
- package/lib/WABinary/generic-utils.js +55 -49
- package/lib/WABinary/index.js +6 -21
- package/lib/WABinary/jid-utils.js +76 -40
- package/lib/WABinary/types.js +2 -2
- package/lib/WAM/BinaryInfo.js +2 -5
- package/lib/WAM/constants.js +19071 -11568
- package/lib/WAM/encode.js +17 -22
- package/lib/WAM/index.js +4 -19
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +33 -13
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +11 -14
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +9 -12
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js +9 -13
- package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +20 -22
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +13 -8
- package/lib/WAUSync/Protocols/index.js +6 -20
- package/lib/WAUSync/USyncQuery.js +44 -35
- package/lib/WAUSync/USyncUser.js +10 -5
- package/lib/WAUSync/index.js +4 -19
- package/lib/index.js +13 -36
- package/package.json +85 -51
- package/WAProto/fix-import.js +0 -29
- package/lib/Defaults/baileys-version.json +0 -3
- package/lib/Defaults/index.d.ts +0 -53
- package/lib/Defaults/phonenumber-mcc.json +0 -223
- package/lib/Signal/Group/ciphertext-message.d.ts +0 -9
- package/lib/Signal/Group/group-session-builder.d.ts +0 -14
- package/lib/Signal/Group/group_cipher.d.ts +0 -17
- package/lib/Signal/Group/index.d.ts +0 -11
- package/lib/Signal/Group/keyhelper.d.ts +0 -10
- package/lib/Signal/Group/queue-job.d.ts +0 -1
- package/lib/Signal/Group/queue-job.js +0 -57
- package/lib/Signal/Group/sender-chain-key.d.ts +0 -13
- package/lib/Signal/Group/sender-key-distribution-message.d.ts +0 -16
- package/lib/Signal/Group/sender-key-message.d.ts +0 -18
- package/lib/Signal/Group/sender-key-name.d.ts +0 -17
- package/lib/Signal/Group/sender-key-record.d.ts +0 -30
- package/lib/Signal/Group/sender-key-state.d.ts +0 -38
- package/lib/Signal/Group/sender-message-key.d.ts +0 -11
- package/lib/Signal/libsignal.d.ts +0 -3
- package/lib/Socket/Client/abstract-socket-client.d.ts +0 -17
- package/lib/Socket/Client/abstract-socket-client.js +0 -13
- package/lib/Socket/Client/index.d.ts +0 -3
- package/lib/Socket/Client/mobile-socket-client.d.ts +0 -13
- package/lib/Socket/Client/mobile-socket-client.js +0 -65
- package/lib/Socket/Client/web-socket-client.d.ts +0 -12
- package/lib/Socket/Client/web-socket-client.js +0 -62
- package/lib/Socket/business.d.ts +0 -171
- package/lib/Socket/chats.d.ts +0 -267
- package/lib/Socket/communities.d.ts +0 -180
- package/lib/Socket/groups.d.ts +0 -115
- package/lib/Socket/index.d.ts +0 -173
- package/lib/Socket/luxu.d.ts +0 -266
- package/lib/Socket/messages-recv.d.ts +0 -161
- package/lib/Socket/messages-send.d.ts +0 -183
- package/lib/Socket/newsletter.d.ts +0 -134
- package/lib/Socket/registration.d.ts +0 -267
- package/lib/Socket/registration.js +0 -166
- package/lib/Socket/socket.d.ts +0 -44
- package/lib/Socket/usync.d.ts +0 -36
- package/lib/Socket/usync.js +0 -70
- package/lib/Store/index.d.ts +0 -3
- package/lib/Store/make-cache-manager-store.d.ts +0 -13
- package/lib/Store/make-in-memory-store.d.ts +0 -118
- package/lib/Store/make-ordered-dictionary.d.ts +0 -13
- package/lib/Store/object-repository.d.ts +0 -10
- package/lib/Types/Auth.d.ts +0 -110
- package/lib/Types/Call.d.ts +0 -13
- package/lib/Types/Chat.d.ts +0 -102
- package/lib/Types/Contact.d.ts +0 -19
- package/lib/Types/Events.d.ts +0 -157
- package/lib/Types/GroupMetadata.d.ts +0 -55
- package/lib/Types/Label.d.ts +0 -35
- package/lib/Types/LabelAssociation.d.ts +0 -29
- package/lib/Types/Message.d.ts +0 -273
- package/lib/Types/Newsletter.d.ts +0 -103
- package/lib/Types/Newsletter.js +0 -38
- package/lib/Types/Product.d.ts +0 -78
- package/lib/Types/Signal.d.ts +0 -57
- package/lib/Types/Socket.d.ts +0 -111
- package/lib/Types/State.d.ts +0 -27
- package/lib/Types/USync.d.ts +0 -25
- package/lib/Types/index.d.ts +0 -57
- package/lib/Utils/auth-utils.d.ts +0 -18
- package/lib/Utils/baileys-event-stream.d.ts +0 -16
- package/lib/Utils/baileys-event-stream.js +0 -63
- package/lib/Utils/business.d.ts +0 -22
- package/lib/Utils/chat-utils.d.ts +0 -71
- package/lib/Utils/crypto.d.ts +0 -41
- package/lib/Utils/decode-wa-message.d.ts +0 -19
- package/lib/Utils/event-buffer.d.ts +0 -35
- package/lib/Utils/generics.d.ts +0 -92
- package/lib/Utils/history.d.ts +0 -15
- package/lib/Utils/index.d.ts +0 -17
- package/lib/Utils/link-preview.d.ts +0 -21
- package/lib/Utils/logger.d.ts +0 -4
- package/lib/Utils/lt-hash.d.ts +0 -12
- package/lib/Utils/make-mutex.d.ts +0 -7
- package/lib/Utils/messages-media.d.ts +0 -116
- package/lib/Utils/messages.d.ts +0 -77
- package/lib/Utils/noise-handler.d.ts +0 -21
- package/lib/Utils/process-message.d.ts +0 -41
- package/lib/Utils/signal.d.ts +0 -32
- package/lib/Utils/use-multi-file-auth-state.d.ts +0 -13
- package/lib/Utils/validate-connection.d.ts +0 -11
- package/lib/WABinary/constants.d.ts +0 -30
- package/lib/WABinary/decode.d.ts +0 -7
- package/lib/WABinary/encode.d.ts +0 -3
- package/lib/WABinary/generic-utils.d.ts +0 -17
- package/lib/WABinary/index.d.ts +0 -5
- package/lib/WABinary/jid-utils.d.ts +0 -31
- package/lib/WABinary/types.d.ts +0 -18
- package/lib/WAM/BinaryInfo.d.ts +0 -17
- package/lib/WAM/constants.d.ts +0 -38
- package/lib/WAM/encode.d.ts +0 -3
- package/lib/WAM/index.d.ts +0 -3
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -9
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -22
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -12
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -12
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +0 -25
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +0 -8
- package/lib/WAUSync/Protocols/index.d.ts +0 -4
- package/lib/WAUSync/USyncQuery.d.ts +0 -28
- package/lib/WAUSync/USyncUser.d.ts +0 -12
- package/lib/index.d.ts +0 -12
|
@@ -1,38 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const WAProto_1 = require("../../WAProto");
|
|
6
|
-
const Utils_1 = require("../Utils")
|
|
1
|
+
import { Boom } from '@hapi/boom'
|
|
2
|
+
import { proto } from '../../WAProto/index.js'
|
|
3
|
+
import { unixTimestampSeconds } from '../Utils/generics.js'
|
|
4
|
+
|
|
7
5
|
// some extra useful utilities
|
|
8
|
-
const getBinaryNodeChildren = (node, childTag) => {
|
|
6
|
+
export const getBinaryNodeChildren = (node, childTag) => {
|
|
9
7
|
if (Array.isArray(node?.content)) {
|
|
10
8
|
return node.content.filter(item => item.tag === childTag)
|
|
11
9
|
}
|
|
12
10
|
return []
|
|
13
11
|
}
|
|
14
|
-
|
|
15
|
-
const getAllBinaryNodeChildren = ({ content }) => {
|
|
12
|
+
|
|
13
|
+
export const getAllBinaryNodeChildren = ({ content }) => {
|
|
16
14
|
if (Array.isArray(content)) {
|
|
17
15
|
return content
|
|
18
16
|
}
|
|
19
17
|
return []
|
|
20
18
|
}
|
|
21
|
-
|
|
22
|
-
const getBinaryNodeChild = (node, childTag) => {
|
|
19
|
+
|
|
20
|
+
export const getBinaryNodeChild = (node, childTag) => {
|
|
23
21
|
if (Array.isArray(node?.content)) {
|
|
24
22
|
return node?.content.find(item => item.tag === childTag)
|
|
25
23
|
}
|
|
26
24
|
}
|
|
27
|
-
|
|
28
|
-
const getBinaryNodeChildBuffer = (node, childTag) => {
|
|
25
|
+
|
|
26
|
+
export const getBinaryNodeChildBuffer = (node, childTag) => {
|
|
29
27
|
const child = getBinaryNodeChild(node, childTag)?.content
|
|
30
28
|
if (Buffer.isBuffer(child) || child instanceof Uint8Array) {
|
|
31
29
|
return child
|
|
32
30
|
}
|
|
33
31
|
}
|
|
34
|
-
|
|
35
|
-
const getBinaryNodeChildString = (node, childTag) => {
|
|
32
|
+
|
|
33
|
+
export const getBinaryNodeChildString = (node, childTag) => {
|
|
36
34
|
const child = getBinaryNodeChild(node, childTag)?.content
|
|
37
35
|
if (Buffer.isBuffer(child) || child instanceof Uint8Array) {
|
|
38
36
|
return Buffer.from(child).toString('utf-8')
|
|
@@ -41,22 +39,22 @@ const getBinaryNodeChildString = (node, childTag) => {
|
|
|
41
39
|
return child
|
|
42
40
|
}
|
|
43
41
|
}
|
|
44
|
-
|
|
45
|
-
const getBinaryNodeChildUInt = (node, childTag, length) => {
|
|
42
|
+
|
|
43
|
+
export const getBinaryNodeChildUInt = (node, childTag, length) => {
|
|
46
44
|
const buff = getBinaryNodeChildBuffer(node, childTag)
|
|
47
45
|
if (buff) {
|
|
48
46
|
return bufferToUInt(buff, length)
|
|
49
47
|
}
|
|
50
48
|
}
|
|
51
|
-
|
|
52
|
-
const assertNodeErrorFree = (node) => {
|
|
49
|
+
|
|
50
|
+
export const assertNodeErrorFree = (node) => {
|
|
53
51
|
const errNode = getBinaryNodeChild(node, 'error')
|
|
54
52
|
if (errNode) {
|
|
55
|
-
throw new
|
|
53
|
+
throw new Boom(errNode.attrs.text || 'Unknown error', { data: +errNode.attrs.code })
|
|
56
54
|
}
|
|
57
55
|
}
|
|
58
|
-
|
|
59
|
-
const reduceBinaryNodeToDictionary = (node, tag) => {
|
|
56
|
+
|
|
57
|
+
export const reduceBinaryNodeToDictionary = (node, tag) => {
|
|
60
58
|
const nodes = getBinaryNodeChildren(node, tag)
|
|
61
59
|
const dict = nodes.reduce((dict, { attrs }) => {
|
|
62
60
|
dict[attrs.name || attrs.config_code] = attrs.value || attrs.config_value
|
|
@@ -64,19 +62,19 @@ const reduceBinaryNodeToDictionary = (node, tag) => {
|
|
|
64
62
|
}, {})
|
|
65
63
|
return dict
|
|
66
64
|
}
|
|
67
|
-
|
|
68
|
-
const getBinaryNodeMessages = ({ content }) => {
|
|
65
|
+
|
|
66
|
+
export const getBinaryNodeMessages = ({ content }) => {
|
|
69
67
|
const msgs = []
|
|
70
68
|
if (Array.isArray(content)) {
|
|
71
69
|
for (const item of content) {
|
|
72
70
|
if (item.tag === 'message') {
|
|
73
|
-
msgs.push(
|
|
71
|
+
msgs.push(proto.WebMessageInfo.decode(item.content))
|
|
74
72
|
}
|
|
75
73
|
}
|
|
76
74
|
}
|
|
77
75
|
return msgs
|
|
78
76
|
}
|
|
79
|
-
|
|
77
|
+
|
|
80
78
|
function bufferToUInt(e, t) {
|
|
81
79
|
let a = 0;
|
|
82
80
|
for (let i = 0; i < t; i++) {
|
|
@@ -84,8 +82,10 @@ function bufferToUInt(e, t) {
|
|
|
84
82
|
}
|
|
85
83
|
return a;
|
|
86
84
|
}
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
|
|
86
|
+
const tabs = (n) => '\t'.repeat(n)
|
|
87
|
+
|
|
88
|
+
export function binaryNodeToString(node, i = 0) {
|
|
89
89
|
if (!node) {
|
|
90
90
|
return node;
|
|
91
91
|
}
|
|
@@ -100,36 +100,38 @@ function binaryNodeToString(node, i = 0) {
|
|
|
100
100
|
}
|
|
101
101
|
const children = binaryNodeToString(node.content, i + 1);
|
|
102
102
|
const tag = `<${node.tag} ${Object.entries(node.attrs || {})
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
const content = children
|
|
103
|
+
.filter(([, v]) => v!== undefined)
|
|
104
|
+
.map(([k, v]) => `${k}='${v}'`)
|
|
105
|
+
.join(' ')}`;
|
|
106
|
+
const content = children? `>\n${children}\n${tabs(i)}</${node.tag}>` : '/>';
|
|
107
107
|
return tag + content;
|
|
108
108
|
}
|
|
109
|
-
|
|
110
|
-
const getBinaryNodeFilter = (node) => {
|
|
109
|
+
|
|
110
|
+
export const getBinaryNodeFilter = (node) => {
|
|
111
111
|
if (!Array.isArray(node)) return false
|
|
112
|
-
|
|
113
|
-
return node.some(item =>
|
|
112
|
+
|
|
113
|
+
return node.some(item =>
|
|
114
114
|
['native_flow'].includes(item?.content?.[0]?.content?.[0]?.tag) ||
|
|
115
115
|
['interactive', 'buttons', 'list'].includes(item?.content?.[0]?.tag) ||
|
|
116
116
|
['hsm', 'biz'].includes(item?.tag) ||
|
|
117
117
|
['bot'].includes(item?.tag) && item?.attrs?.biz_bot === '1'
|
|
118
118
|
)
|
|
119
119
|
}
|
|
120
|
-
|
|
121
|
-
const getAdditionalNode = (name) => {
|
|
120
|
+
|
|
121
|
+
export const getAdditionalNode = (name) => {
|
|
122
122
|
if (name) name = name.toLowerCase()
|
|
123
|
-
const ts =
|
|
124
|
-
|
|
123
|
+
const ts = unixTimestampSeconds(new Date()) - 77980457
|
|
124
|
+
|
|
125
125
|
const order_response_name = {
|
|
126
126
|
review_and_pay: 'order_details',
|
|
127
127
|
review_order: 'order_status',
|
|
128
|
+
order_status: 'order_status',
|
|
128
129
|
payment_info: 'payment_info',
|
|
129
130
|
payment_status: 'payment_status',
|
|
130
|
-
payment_method: 'payment_method'
|
|
131
|
+
payment_method: 'payment_method',
|
|
132
|
+
catalog_message: 'catalog_message',
|
|
131
133
|
}
|
|
132
|
-
|
|
134
|
+
|
|
133
135
|
const flow_name = {
|
|
134
136
|
cta_catalog: 'cta_catalog',
|
|
135
137
|
mpm: 'mpm',
|
|
@@ -137,20 +139,21 @@ const getAdditionalNode = (name) => {
|
|
|
137
139
|
view_catalog: 'automated_greeting_message_view_catalog',
|
|
138
140
|
wa_pay_detail: 'wa_payment_transaction_details',
|
|
139
141
|
send_location: 'send_location',
|
|
142
|
+
payment_key_info: 'payment_key_info'
|
|
140
143
|
}
|
|
141
|
-
|
|
144
|
+
|
|
142
145
|
if(order_response_name[name]) {
|
|
143
146
|
return [{
|
|
144
147
|
tag: 'biz',
|
|
145
|
-
attrs: {
|
|
146
|
-
native_flow_name: order_response_name[name]
|
|
148
|
+
attrs: {
|
|
149
|
+
native_flow_name: order_response_name[name]
|
|
147
150
|
},
|
|
148
151
|
content: []
|
|
149
152
|
}]
|
|
150
153
|
} else if (flow_name[name] || name === 'interactive' || name === 'buttons') {
|
|
151
154
|
return [{
|
|
152
155
|
tag: 'biz',
|
|
153
|
-
attrs: {
|
|
156
|
+
attrs: {
|
|
154
157
|
actual_actors: '2',
|
|
155
158
|
host_storage: '2',
|
|
156
159
|
privacy_mode_ts: `${ts}`
|
|
@@ -169,9 +172,9 @@ const getAdditionalNode = (name) => {
|
|
|
169
172
|
},
|
|
170
173
|
content: [{
|
|
171
174
|
tag: 'native_flow',
|
|
172
|
-
attrs: {
|
|
175
|
+
attrs: {
|
|
173
176
|
v: '9',
|
|
174
|
-
name: flow_name[name]
|
|
177
|
+
name: flow_name[name]?? 'mixed',
|
|
175
178
|
},
|
|
176
179
|
content: []
|
|
177
180
|
}]
|
|
@@ -195,4 +198,7 @@ const getAdditionalNode = (name) => {
|
|
|
195
198
|
}]
|
|
196
199
|
}
|
|
197
200
|
}
|
|
198
|
-
|
|
201
|
+
export const getBinaryFilteredBizBot = nodeContent => {
|
|
202
|
+
if (!Array.isArray(nodeContent)) return false
|
|
203
|
+
return nodeContent.some(b => ['bot'].includes(b?.tag) && b?.attrs?.biz_bot === '1')
|
|
204
|
+
}
|
package/lib/WABinary/index.js
CHANGED
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./encode"), exports);
|
|
18
|
-
__exportStar(require("./decode"), exports);
|
|
19
|
-
__exportStar(require("./generic-utils"), exports);
|
|
20
|
-
__exportStar(require("./jid-utils"), exports);
|
|
21
|
-
__exportStar(require("./types"), exports);
|
|
1
|
+
export * from './encode.js';
|
|
2
|
+
export * from './decode.js';
|
|
3
|
+
export * from './generic-utils.js';
|
|
4
|
+
export * from './jid-utils.js';
|
|
5
|
+
export * from './types.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1,16 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
export const S_WHATSAPP_NET = '@s.whatsapp.net';
|
|
2
|
+
export const OFFICIAL_BIZ_JID = '16505361212@c.us';
|
|
3
|
+
export const SERVER_JID = 'server@c.us';
|
|
4
|
+
export const PSA_WID = '0@c.us';
|
|
5
|
+
export const STORIES_JID = 'status@broadcast';
|
|
6
|
+
export const META_AI_JID = '13135550002@c.us';
|
|
7
|
+
export var WAJIDDomains;
|
|
8
|
+
(function (WAJIDDomains) {
|
|
9
|
+
WAJIDDomains[WAJIDDomains["WHATSAPP"] = 0] = "WHATSAPP";
|
|
10
|
+
WAJIDDomains[WAJIDDomains["LID"] = 1] = "LID";
|
|
11
|
+
WAJIDDomains[WAJIDDomains["HOSTED"] = 128] = "HOSTED";
|
|
12
|
+
WAJIDDomains[WAJIDDomains["HOSTED_LID"] = 129] = "HOSTED_LID";
|
|
13
|
+
})(WAJIDDomains || (WAJIDDomains = {}));
|
|
14
|
+
export const getServerFromDomainType = (initialServer, domainType) => {
|
|
15
|
+
switch (domainType) {
|
|
16
|
+
case WAJIDDomains.LID:
|
|
17
|
+
return 'lid';
|
|
18
|
+
case WAJIDDomains.HOSTED:
|
|
19
|
+
return 'hosted';
|
|
20
|
+
case WAJIDDomains.HOSTED_LID:
|
|
21
|
+
return 'hosted.lid';
|
|
22
|
+
case WAJIDDomains.WHATSAPP:
|
|
23
|
+
default:
|
|
24
|
+
return initialServer;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
export const jidEncode = (user, server, device, agent) => {
|
|
10
28
|
return `${user || ''}${!!agent ? `_${agent}` : ''}${!!device ? `:${device}` : ''}@${server}`;
|
|
11
29
|
};
|
|
12
|
-
|
|
13
|
-
|
|
30
|
+
export const jidDecode = (jid) => {
|
|
31
|
+
// todo: investigate how to implement hosted ids in this case
|
|
14
32
|
const sepIdx = typeof jid === 'string' ? jid.indexOf('@') : -1;
|
|
15
33
|
if (sepIdx < 0) {
|
|
16
34
|
return undefined;
|
|
@@ -18,45 +36,63 @@ const jidDecode = (jid) => {
|
|
|
18
36
|
const server = jid.slice(sepIdx + 1);
|
|
19
37
|
const userCombined = jid.slice(0, sepIdx);
|
|
20
38
|
const [userAgent, device] = userCombined.split(':');
|
|
21
|
-
const user = userAgent.split('_')
|
|
39
|
+
const [user, agent] = userAgent.split('_');
|
|
40
|
+
let domainType = WAJIDDomains.WHATSAPP;
|
|
41
|
+
if (server === 'lid') {
|
|
42
|
+
domainType = WAJIDDomains.LID;
|
|
43
|
+
}
|
|
44
|
+
else if (server === 'hosted') {
|
|
45
|
+
domainType = WAJIDDomains.HOSTED;
|
|
46
|
+
}
|
|
47
|
+
else if (server === 'hosted.lid') {
|
|
48
|
+
domainType = WAJIDDomains.HOSTED_LID;
|
|
49
|
+
}
|
|
50
|
+
else if (agent) {
|
|
51
|
+
domainType = parseInt(agent);
|
|
52
|
+
}
|
|
22
53
|
return {
|
|
23
|
-
server,
|
|
24
|
-
user,
|
|
25
|
-
domainType
|
|
54
|
+
server: server,
|
|
55
|
+
user: user,
|
|
56
|
+
domainType,
|
|
26
57
|
device: device ? +device : undefined
|
|
27
58
|
};
|
|
28
59
|
};
|
|
29
|
-
exports.jidDecode = jidDecode;
|
|
30
|
-
/** is the jid a user */
|
|
31
|
-
const areJidsSameUser = (jid1, jid2) => {
|
|
32
|
-
var _a, _b;
|
|
33
|
-
return (((_a = (0, exports.jidDecode)(jid1)) === null || _a === void 0 ? void 0 : _a.user) === ((_b = (0, exports.jidDecode)(jid2)) === null || _b === void 0 ? void 0 : _b.user));
|
|
34
|
-
};
|
|
35
|
-
exports.areJidsSameUser = areJidsSameUser;
|
|
36
60
|
/** is the jid a user */
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
61
|
+
export const areJidsSameUser = (jid1, jid2) => jidDecode(jid1)?.user === jidDecode(jid2)?.user;
|
|
62
|
+
/** is the jid Meta AI */
|
|
63
|
+
export const isJidMetaAI = (jid) => jid?.endsWith('@bot');
|
|
64
|
+
/** is the jid a PN user */
|
|
65
|
+
export const isPnUser = (jid) => jid?.endsWith('@s.whatsapp.net');
|
|
66
|
+
/** is the jid a LID */
|
|
67
|
+
export const isLidUser = (jid) => jid?.endsWith('@lid');
|
|
42
68
|
/** is the jid a broadcast */
|
|
43
|
-
const isJidBroadcast = (jid) =>
|
|
44
|
-
exports.isJidBroadcast = isJidBroadcast;
|
|
69
|
+
export const isJidBroadcast = (jid) => jid?.endsWith('@broadcast');
|
|
45
70
|
/** is the jid a group */
|
|
46
|
-
const isJidGroup = (jid) =>
|
|
47
|
-
exports.isJidGroup = isJidGroup;
|
|
71
|
+
export const isJidGroup = (jid) => jid?.endsWith('@g.us');
|
|
48
72
|
/** is the jid the status broadcast */
|
|
49
|
-
const isJidStatusBroadcast = (jid) => jid === 'status@broadcast';
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
73
|
+
export const isJidStatusBroadcast = (jid) => jid === 'status@broadcast';
|
|
74
|
+
/** is the jid a newsletter */
|
|
75
|
+
export const isJidNewsletter = (jid) => jid?.endsWith('@newsletter');
|
|
76
|
+
/** is the jid a hosted PN */
|
|
77
|
+
export const isHostedPnUser = (jid) => jid?.endsWith('@hosted');
|
|
78
|
+
/** is the jid a hosted LID */
|
|
79
|
+
export const isHostedLidUser = (jid) => jid?.endsWith('@hosted.lid');
|
|
80
|
+
/** is the jid a interop */
|
|
81
|
+
export const isInteropUser = (jid) => jid?.endsWith('@interop');
|
|
82
|
+
const botRegexp = /^1313555\d{4}$|^131655500\d{2}$/;
|
|
83
|
+
export const isJidBot = (jid) => jid && botRegexp.test(jid.split('@')[0]) && jid.endsWith('@c.us');
|
|
84
|
+
export const jidNormalizedUser = (jid) => {
|
|
85
|
+
const result = jidDecode(jid);
|
|
56
86
|
if (!result) {
|
|
57
87
|
return '';
|
|
58
88
|
}
|
|
59
89
|
const { user, server } = result;
|
|
60
|
-
return
|
|
90
|
+
return jidEncode(user, server === 'c.us' ? 's.whatsapp.net' : server);
|
|
91
|
+
};
|
|
92
|
+
export const transferDevice = (fromJid, toJid) => {
|
|
93
|
+
const fromDecoded = jidDecode(fromJid);
|
|
94
|
+
const deviceId = fromDecoded?.device || 0;
|
|
95
|
+
const { server, user } = jidDecode(toJid);
|
|
96
|
+
return jidEncode(user, server, deviceId);
|
|
61
97
|
};
|
|
62
|
-
|
|
98
|
+
//# sourceMappingURL=jid-utils.js.map
|
package/lib/WABinary/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import * as constants from './constants.js';
|
|
2
|
+
//# sourceMappingURL=types.js.map
|
package/lib/WAM/BinaryInfo.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BinaryInfo = void 0;
|
|
4
|
-
class BinaryInfo {
|
|
1
|
+
export class BinaryInfo {
|
|
5
2
|
constructor(options = {}) {
|
|
6
3
|
this.protocolVersion = 5;
|
|
7
4
|
this.sequence = 0;
|
|
@@ -10,4 +7,4 @@ class BinaryInfo {
|
|
|
10
7
|
Object.assign(this, options);
|
|
11
8
|
}
|
|
12
9
|
}
|
|
13
|
-
|
|
10
|
+
//# sourceMappingURL=BinaryInfo.js.map
|