@sanzoffc/baileys 3.0.1 → 3.0.2
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/WAProto/WAProto.proto +769 -233
- package/WAProto/index.js +65801 -141371
- package/lib/Defaults/index.js +117 -114
- package/lib/Defaults/index.js.bak +123 -0
- package/lib/KeyDB/BinarySearch.js +20 -0
- package/lib/KeyDB/KeyedDB.js +167 -0
- package/lib/KeyDB/index.js +4 -0
- package/lib/Signal/Group/ciphertext-message.js +12 -14
- package/lib/Signal/Group/group-session-builder.js +10 -42
- package/lib/Signal/Group/group_cipher.js +75 -87
- package/lib/Signal/Group/index.js +13 -57
- package/lib/Signal/Group/keyhelper.js +17 -52
- package/lib/Signal/Group/sender-chain-key.js +27 -33
- package/lib/Signal/Group/sender-key-distribution-message.js +62 -63
- package/lib/Signal/Group/sender-key-message.js +65 -66
- package/lib/Signal/Group/sender-key-name.js +45 -44
- package/lib/Signal/Group/sender-key-record.js +39 -49
- package/lib/Signal/Group/sender-key-state.js +80 -93
- package/lib/Signal/Group/sender-message-key.js +27 -28
- package/lib/Signal/libsignal.js +313 -163
- package/lib/Signal/lid-mapping.js +155 -0
- package/lib/Socket/Client/index.js +4 -18
- package/lib/Socket/Client/types.js +12 -12
- package/lib/Socket/Client/websocket.js +51 -71
- package/lib/Socket/Client/websocket.js.bak +53 -0
- package/lib/Socket/business.js +359 -242
- package/lib/Socket/chats.js +858 -945
- package/lib/Socket/communities.js +413 -0
- package/lib/Socket/groups.js +304 -324
- package/lib/Socket/index.js +15 -9
- package/lib/Socket/messages-recv.js +1105 -1046
- package/lib/Socket/messages-send.js +615 -389
- package/lib/Socket/mex.js +45 -0
- package/lib/Socket/newsletter.js +224 -227
- package/lib/Socket/socket.js +795 -621
- package/lib/Store/index.js +6 -8
- package/lib/Store/make-cache-manager-store.js +75 -0
- package/lib/Store/make-in-memory-store.js +286 -435
- package/lib/Store/make-ordered-dictionary.js +77 -79
- package/lib/Store/object-repository.js +24 -26
- package/lib/Types/Auth.js +3 -2
- package/lib/Types/Bussines.js +3 -0
- package/lib/Types/Call.js +3 -2
- package/lib/Types/Chat.js +9 -4
- package/lib/Types/Contact.js +3 -2
- package/lib/Types/Events.js +3 -2
- package/lib/Types/GroupMetadata.js +3 -2
- package/lib/Types/Label.js +24 -26
- package/lib/Types/LabelAssociation.js +6 -8
- package/lib/Types/Message.js +12 -7
- package/lib/Types/Newsletter.js +32 -17
- package/lib/Types/Newsletter.js.bak +33 -0
- package/lib/Types/Product.js +3 -2
- package/lib/Types/Signal.js +3 -2
- package/lib/Types/Socket.js +4 -2
- package/lib/Types/State.js +11 -2
- package/lib/Types/USync.js +3 -2
- package/lib/Types/index.js +27 -41
- package/lib/Utils/auth-utils.js +211 -191
- package/lib/Utils/baileys-event-stream.js +44 -0
- package/lib/Utils/browser-utils.js +21 -31
- package/lib/Utils/business.js +213 -214
- package/lib/Utils/chat-utils.js +711 -689
- package/lib/Utils/crypto.js +112 -175
- package/lib/Utils/decode-wa-message.js +254 -194
- package/lib/Utils/event-buffer.js +510 -500
- package/lib/Utils/generics.js +318 -430
- package/lib/Utils/history.js +83 -90
- package/lib/Utils/index.js +21 -35
- package/lib/Utils/link-preview.js +71 -116
- package/lib/Utils/logger.js +5 -7
- package/lib/Utils/lt-hash.js +40 -46
- package/lib/Utils/make-mutex.js +34 -41
- package/lib/Utils/message-retry-manager.js +33 -48
- package/lib/Utils/messages-media.js +573 -825
- package/lib/Utils/messages.js +349 -489
- package/lib/Utils/noise-handler.js +138 -144
- package/lib/Utils/pre-key-manager.js +85 -0
- package/lib/Utils/process-message.js +321 -384
- package/lib/Utils/signal.js +147 -139
- package/lib/Utils/use-multi-file-auth-state.js +95 -109
- package/lib/Utils/validate-connection.js +183 -212
- package/lib/WABinary/constants.js +1298 -1298
- package/lib/WABinary/decode.js +231 -256
- package/lib/WABinary/encode.js +207 -239
- package/lib/WABinary/generic-utils.js +119 -40
- package/lib/WABinary/index.js +7 -21
- package/lib/WABinary/jid-utils.js +87 -79
- package/lib/WABinary/types.js +3 -2
- package/lib/WAM/BinaryInfo.js +10 -12
- package/lib/WAM/constants.js +22851 -15348
- package/lib/WAM/encode.js +135 -136
- package/lib/WAM/index.js +5 -19
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +28 -30
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +49 -53
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +27 -28
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js +36 -39
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +50 -50
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +26 -20
- package/lib/WAUSync/Protocols/index.js +6 -20
- package/lib/WAUSync/USyncQuery.js +86 -85
- package/lib/WAUSync/USyncUser.js +23 -25
- package/lib/WAUSync/index.js +5 -19
- package/lib/index.js +18 -49
- package/package.json +65 -78
- package/README.MD +0 -1295
- package/WAProto/GenerateStatics.sh +0 -4
- package/WAProto/p.html +0 -1
- package/engine-requirements.js +0 -10
- package/lib/Defaults/wileys-version.json +0 -3
- package/lib/Signal/Group/queue-job.js +0 -57
- package/lib/Socket/usync.js +0 -70
- package/lib/Utils/wileys-event-stream.js +0 -63
|
@@ -1,41 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
const getBinaryNodeChildren = (node, childTag) => {
|
|
9
|
-
if (Array.isArray(node === null || node === void 0 ? void 0 : node.content)) {
|
|
1
|
+
import { Boom } from '@hapi/boom';
|
|
2
|
+
import { proto } from '../../WAProto/index.js';
|
|
3
|
+
import {} from './types.js';
|
|
4
|
+
import { unixTimestampSeconds } from '../Utils/index.js';
|
|
5
|
+
|
|
6
|
+
export const getBinaryNodeChildren = (node, childTag) => {
|
|
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
|
+
export const getAllBinaryNodeChildren = ({ content }) => {
|
|
16
13
|
if (Array.isArray(content)) {
|
|
17
14
|
return content;
|
|
18
15
|
}
|
|
19
16
|
return [];
|
|
20
17
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return node === null || node === void 0 ? void 0 : node.content.find(item => item.tag === childTag);
|
|
18
|
+
export const getBinaryNodeChild = (node, childTag) => {
|
|
19
|
+
if (Array.isArray(node?.content)) {
|
|
20
|
+
return node?.content.find(item => item.tag === childTag);
|
|
25
21
|
}
|
|
26
22
|
};
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
var _a;
|
|
30
|
-
const child = (_a = (0, exports.getBinaryNodeChild)(node, childTag)) === null || _a === void 0 ? void 0 : _a.content;
|
|
23
|
+
export const getBinaryNodeChildBuffer = (node, childTag) => {
|
|
24
|
+
const child = getBinaryNodeChild(node, childTag)?.content;
|
|
31
25
|
if (Buffer.isBuffer(child) || child instanceof Uint8Array) {
|
|
32
26
|
return child;
|
|
33
27
|
}
|
|
34
28
|
};
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
var _a;
|
|
38
|
-
const child = (_a = (0, exports.getBinaryNodeChild)(node, childTag)) === null || _a === void 0 ? void 0 : _a.content;
|
|
29
|
+
export const getBinaryNodeChildString = (node, childTag) => {
|
|
30
|
+
const child = getBinaryNodeChild(node, childTag)?.content;
|
|
39
31
|
if (Buffer.isBuffer(child) || child instanceof Uint8Array) {
|
|
40
32
|
return Buffer.from(child).toString('utf-8');
|
|
41
33
|
}
|
|
@@ -43,42 +35,42 @@ const getBinaryNodeChildString = (node, childTag) => {
|
|
|
43
35
|
return child;
|
|
44
36
|
}
|
|
45
37
|
};
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
-
const buff = (0, exports.getBinaryNodeChildBuffer)(node, childTag);
|
|
38
|
+
export const getBinaryNodeChildUInt = (node, childTag, length) => {
|
|
39
|
+
const buff = getBinaryNodeChildBuffer(node, childTag);
|
|
49
40
|
if (buff) {
|
|
50
41
|
return bufferToUInt(buff, length);
|
|
51
42
|
}
|
|
52
43
|
};
|
|
53
|
-
|
|
54
|
-
const
|
|
55
|
-
const errNode = (0, exports.getBinaryNodeChild)(node, 'error');
|
|
44
|
+
export const assertNodeErrorFree = (node) => {
|
|
45
|
+
const errNode = getBinaryNodeChild(node, 'error');
|
|
56
46
|
if (errNode) {
|
|
57
|
-
throw new
|
|
47
|
+
throw new Boom(errNode.attrs.text || 'Unknown error', { data: +errNode.attrs.code });
|
|
58
48
|
}
|
|
59
49
|
};
|
|
60
|
-
|
|
61
|
-
const
|
|
62
|
-
const nodes = (0, exports.getBinaryNodeChildren)(node, tag);
|
|
50
|
+
export const reduceBinaryNodeToDictionary = (node, tag) => {
|
|
51
|
+
const nodes = getBinaryNodeChildren(node, tag);
|
|
63
52
|
const dict = nodes.reduce((dict, { attrs }) => {
|
|
64
|
-
|
|
53
|
+
if (typeof attrs.name === 'string') {
|
|
54
|
+
dict[attrs.name] = attrs.value || attrs.config_value;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
dict[attrs.config_code] = attrs.value || attrs.config_value;
|
|
58
|
+
}
|
|
65
59
|
return dict;
|
|
66
60
|
}, {});
|
|
67
61
|
return dict;
|
|
68
62
|
};
|
|
69
|
-
|
|
70
|
-
const getBinaryNodeMessages = ({ content }) => {
|
|
63
|
+
export const getBinaryNodeMessages = ({ content }) => {
|
|
71
64
|
const msgs = [];
|
|
72
65
|
if (Array.isArray(content)) {
|
|
73
66
|
for (const item of content) {
|
|
74
67
|
if (item.tag === 'message') {
|
|
75
|
-
msgs.push(
|
|
68
|
+
msgs.push(proto.WebMessageInfo.decode(item.content));
|
|
76
69
|
}
|
|
77
70
|
}
|
|
78
71
|
}
|
|
79
72
|
return msgs;
|
|
80
73
|
};
|
|
81
|
-
exports.getBinaryNodeMessages = getBinaryNodeMessages;
|
|
82
74
|
function bufferToUInt(e, t) {
|
|
83
75
|
let a = 0;
|
|
84
76
|
for (let i = 0; i < t; i++) {
|
|
@@ -87,7 +79,7 @@ function bufferToUInt(e, t) {
|
|
|
87
79
|
return a;
|
|
88
80
|
}
|
|
89
81
|
const tabs = (n) => '\t'.repeat(n);
|
|
90
|
-
function binaryNodeToString(node, i = 0) {
|
|
82
|
+
export function binaryNodeToString(node, i = 0) {
|
|
91
83
|
if (!node) {
|
|
92
84
|
return node;
|
|
93
85
|
}
|
|
@@ -98,7 +90,7 @@ function binaryNodeToString(node, i = 0) {
|
|
|
98
90
|
return tabs(i) + Buffer.from(node).toString('hex');
|
|
99
91
|
}
|
|
100
92
|
if (Array.isArray(node)) {
|
|
101
|
-
return node.map(
|
|
93
|
+
return node.map(x => tabs(i + 1) + binaryNodeToString(x, i + 1)).join('\n');
|
|
102
94
|
}
|
|
103
95
|
const children = binaryNodeToString(node.content, i + 1);
|
|
104
96
|
const tag = `<${node.tag} ${Object.entries(node.attrs || {})
|
|
@@ -108,3 +100,90 @@ function binaryNodeToString(node, i = 0) {
|
|
|
108
100
|
const content = children ? `>\n${children}\n${tabs(i)}</${node.tag}>` : '/>';
|
|
109
101
|
return tag + content;
|
|
110
102
|
}
|
|
103
|
+
export const getBinaryNodeFilter = (node) => {
|
|
104
|
+
if (!Array.isArray(node)) return false
|
|
105
|
+
|
|
106
|
+
return node.some(item =>
|
|
107
|
+
['native_flow'].includes(item?.content?.[0]?.content?.[0]?.tag) ||
|
|
108
|
+
['interactive', 'buttons', 'list'].includes(item?.content?.[0]?.tag) ||
|
|
109
|
+
['hsm', 'biz'].includes(item?.tag) ||
|
|
110
|
+
['bot'].includes(item?.tag) && item?.attrs?.biz_bot === '1'
|
|
111
|
+
)
|
|
112
|
+
}
|
|
113
|
+
export const getAdditionalNode = (name) => {
|
|
114
|
+
if (name) name = name.toLowerCase()
|
|
115
|
+
const ts = unixTimestampSeconds(new Date()) - 77980457
|
|
116
|
+
|
|
117
|
+
const order_response_name = {
|
|
118
|
+
review_and_pay: 'order_details',
|
|
119
|
+
review_order: 'order_status',
|
|
120
|
+
payment_info: 'payment_info',
|
|
121
|
+
payment_status: 'payment_status',
|
|
122
|
+
payment_method: 'payment_method'
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const flow_name = {
|
|
126
|
+
cta_catalog: 'cta_catalog',
|
|
127
|
+
mpm: 'mpm',
|
|
128
|
+
call_request: 'call_permission_request',
|
|
129
|
+
view_catalog: 'automated_greeting_message_view_catalog',
|
|
130
|
+
wa_pay_detail: 'wa_payment_transaction_details',
|
|
131
|
+
send_location: 'send_location',
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if(order_response_name[name]) {
|
|
135
|
+
return [{
|
|
136
|
+
tag: 'biz',
|
|
137
|
+
attrs: {
|
|
138
|
+
native_flow_name: order_response_name[name]
|
|
139
|
+
},
|
|
140
|
+
content: []
|
|
141
|
+
}]
|
|
142
|
+
} else if (flow_name[name] || name === 'interactive' || name === 'buttons') {
|
|
143
|
+
return [{
|
|
144
|
+
tag: 'biz',
|
|
145
|
+
attrs: {
|
|
146
|
+
actual_actors: '2',
|
|
147
|
+
host_storage: '2',
|
|
148
|
+
privacy_mode_ts: `${ts}`
|
|
149
|
+
},
|
|
150
|
+
content: [{
|
|
151
|
+
tag: 'engagement',
|
|
152
|
+
attrs: {
|
|
153
|
+
customer_service_state: 'open',
|
|
154
|
+
conversation_state: 'open'
|
|
155
|
+
}
|
|
156
|
+
}, {
|
|
157
|
+
tag: 'interactive',
|
|
158
|
+
attrs: {
|
|
159
|
+
type: 'native_flow',
|
|
160
|
+
v: '1'
|
|
161
|
+
},
|
|
162
|
+
content: [{
|
|
163
|
+
tag: 'native_flow',
|
|
164
|
+
attrs: {
|
|
165
|
+
v: '9',
|
|
166
|
+
name: flow_name[name] ?? 'mixed',
|
|
167
|
+
},
|
|
168
|
+
content: []
|
|
169
|
+
}]
|
|
170
|
+
}]
|
|
171
|
+
}]
|
|
172
|
+
} else {
|
|
173
|
+
return [{
|
|
174
|
+
tag: 'biz',
|
|
175
|
+
attrs: {
|
|
176
|
+
actual_actors: '2',
|
|
177
|
+
host_storage: '2',
|
|
178
|
+
privacy_mode_ts: `${ts}`
|
|
179
|
+
},
|
|
180
|
+
content: [{
|
|
181
|
+
tag: 'engagement',
|
|
182
|
+
attrs: {
|
|
183
|
+
customer_service_state: 'open',
|
|
184
|
+
conversation_state: 'open'
|
|
185
|
+
}
|
|
186
|
+
}]
|
|
187
|
+
}]
|
|
188
|
+
}
|
|
189
|
+
}
|
package/lib/WABinary/index.js
CHANGED
|
@@ -1,21 +1,7 @@
|
|
|
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
|
+
//=======================================================//
|
|
2
|
+
export * from "./generic-utils.js";
|
|
3
|
+
export * from "./jid-utils.js";
|
|
4
|
+
export * from "./encode.js";
|
|
5
|
+
export * from "./decode.js";
|
|
6
|
+
export * from "./types.js";
|
|
7
|
+
//=======================================================//
|
|
@@ -1,85 +1,93 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
//=======================================================//
|
|
2
|
+
export const OFFICIAL_BIZ_JID = "16505361212@c.us";
|
|
3
|
+
export const S_WHATSAPP_NET = "@s.whatsapp.net";
|
|
4
|
+
export const STORIES_JID = "status@broadcast";
|
|
5
|
+
export const META_AI_JID = "13135550002@c.us";
|
|
6
|
+
export const SERVER_JID = "server@c.us";
|
|
7
|
+
export const PSA_WID = "0@c.us";
|
|
8
|
+
//=======================================================//
|
|
9
|
+
export var WAJIDDomains;
|
|
10
|
+
(function (WAJIDDomains) {
|
|
11
|
+
WAJIDDomains[WAJIDDomains["WHATSAPP"] = 0] = "WHATSAPP";
|
|
12
|
+
WAJIDDomains[WAJIDDomains["LID"] = 1] = "LID";
|
|
13
|
+
WAJIDDomains[WAJIDDomains["HOSTED"] = 128] = "HOSTED";
|
|
14
|
+
WAJIDDomains[WAJIDDomains["HOSTED_LID"] = 129] = "HOSTED_LID";
|
|
15
|
+
})(WAJIDDomains || (WAJIDDomains = {}));
|
|
16
|
+
export const getServerFromDomainType = (initialServer, domainType) => {
|
|
17
|
+
switch (domainType) {
|
|
18
|
+
case WAJIDDomains.LID:
|
|
19
|
+
return "lid";
|
|
20
|
+
case WAJIDDomains.HOSTED:
|
|
21
|
+
return "hosted";
|
|
22
|
+
case WAJIDDomains.HOSTED_LID:
|
|
23
|
+
return "hosted.lid";
|
|
24
|
+
case WAJIDDomains.WHATSAPP:
|
|
25
|
+
default:
|
|
26
|
+
return initialServer;
|
|
27
|
+
}
|
|
12
28
|
};
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
if (sepIdx < 0) {
|
|
17
|
-
return undefined;
|
|
18
|
-
}
|
|
19
|
-
const server = jid.slice(sepIdx + 1);
|
|
20
|
-
const userCombined = jid.slice(0, sepIdx);
|
|
21
|
-
const [userAgent, device] = userCombined.split(':');
|
|
22
|
-
const user = userAgent.split('_')[0];
|
|
23
|
-
return {
|
|
24
|
-
server: server,
|
|
25
|
-
user,
|
|
26
|
-
domainType: server === 'lid' ? 1 : 0,
|
|
27
|
-
device: device ? +device : undefined
|
|
28
|
-
};
|
|
29
|
+
//=======================================================//
|
|
30
|
+
export const jidEncode = (user, server, device, agent) => {
|
|
31
|
+
return `${user || ""}${!!agent ? `_${agent}` : ""}${!!device ? `:${device}` : ""}@${server}`;
|
|
29
32
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
return
|
|
33
|
+
//=======================================================//
|
|
34
|
+
export const jidDecode = (jid) => {
|
|
35
|
+
const sepIdx = typeof jid === "string" ? jid.indexOf("@") : -1;
|
|
36
|
+
if (sepIdx < 0) {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
const server = jid.slice(sepIdx + 1);
|
|
40
|
+
const userCombined = jid.slice(0, sepIdx);
|
|
41
|
+
const [userAgent, device] = userCombined.split(":");
|
|
42
|
+
const [user, agent] = userAgent.split("_");
|
|
43
|
+
let domainType = WAJIDDomains.WHATSAPP;
|
|
44
|
+
if (server === "lid") {
|
|
45
|
+
domainType = WAJIDDomains.LID;
|
|
46
|
+
}
|
|
47
|
+
else if (server === "hosted") {
|
|
48
|
+
domainType = WAJIDDomains.HOSTED;
|
|
49
|
+
}
|
|
50
|
+
else if (server === "hosted.lid") {
|
|
51
|
+
domainType = WAJIDDomains.HOSTED_LID;
|
|
52
|
+
}
|
|
53
|
+
else if (agent) {
|
|
54
|
+
domainType = parseInt(agent);
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
server: server,
|
|
58
|
+
user: user,
|
|
59
|
+
domainType,
|
|
60
|
+
device: device ? +device : undefined
|
|
61
|
+
};
|
|
35
62
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
exports.isJidBroadcast = isJidBroadcast;
|
|
49
|
-
/** is the jid a newsletter */
|
|
50
|
-
const isJidNewsletter = (jid) => (jid === null || jid === void 0 ? void 0 : jid.endsWith('@newsletter'));
|
|
51
|
-
exports.isJidNewsletter = isJidNewsletter;
|
|
52
|
-
/** is the jid a group */
|
|
53
|
-
const isJidGroup = (jid) => (jid === null || jid === void 0 ? void 0 : jid.endsWith('@g.us'));
|
|
54
|
-
exports.isJidGroup = isJidGroup;
|
|
55
|
-
/** is the jid the status broadcast */
|
|
56
|
-
const isJidStatusBroadcast = (jid) => jid === 'status@broadcast';
|
|
57
|
-
exports.isJidStatusBroadcast = isJidStatusBroadcast;
|
|
63
|
+
//=======================================================//
|
|
64
|
+
export const areJidsSameUser = (jid1, jid2) => jidDecode(jid1)?.user === jidDecode(jid2)?.user;
|
|
65
|
+
export const isJidMetaAI = (jid) => jid?.endsWith("@bot");
|
|
66
|
+
export const isPnUser = (jid) => jid?.endsWith("@s.whatsapp.net");
|
|
67
|
+
export const isLidUser = (jid) => jid?.endsWith("@lid");
|
|
68
|
+
export const isJidBroadcast = (jid) => jid?.endsWith("@broadcast");
|
|
69
|
+
export const isJidGroup = (jid) => jid?.endsWith("@g.us");
|
|
70
|
+
export const isJidStatusBroadcast = (jid) => jid === "status@broadcast";
|
|
71
|
+
export const isJidNewsletter = (jid) => jid?.endsWith("@newsletter");
|
|
72
|
+
export const isHostedPnUser = (jid) => jid?.endsWith("@hosted");
|
|
73
|
+
export const isHostedLidUser = (jid) => jid?.endsWith("@hosted.lid");
|
|
74
|
+
//=======================================================//
|
|
58
75
|
const botRegexp = /^1313555\d{4}$|^131655500\d{2}$/;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const jidNormalizedUser = (jid) => {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
76
|
+
//=======================================================//
|
|
77
|
+
export const isJidBot = (jid) => jid && botRegexp.test(jid.split("@")[0]) && jid.endsWith("@c.us");
|
|
78
|
+
export const jidNormalizedUser = (jid) => {
|
|
79
|
+
const result = jidDecode(jid);
|
|
80
|
+
if (!result) {
|
|
81
|
+
return "";
|
|
82
|
+
}
|
|
83
|
+
const { user, server } = result;
|
|
84
|
+
return jidEncode(user, server === "c.us" ? "s.whatsapp.net" : server);
|
|
68
85
|
};
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (sepIdx < 0) {
|
|
76
|
-
return jid;
|
|
77
|
-
}
|
|
78
|
-
const server = jid.slice(sepIdx + 1);
|
|
79
|
-
if (server !== 'bot')
|
|
80
|
-
return jid;
|
|
81
|
-
const user = jid.slice(0, sepIdx);
|
|
82
|
-
const mappedNumber = BOT_MAP.get(user);
|
|
83
|
-
return mappedNumber ? `${mappedNumber}@s.whatsapp.net` : jid;
|
|
86
|
+
//=======================================================//
|
|
87
|
+
export const transferDevice = (fromJid, toJid) => {
|
|
88
|
+
const fromDecoded = jidDecode(fromJid);
|
|
89
|
+
const deviceId = fromDecoded?.device || 0;
|
|
90
|
+
const { server, user } = jidDecode(toJid);
|
|
91
|
+
return jidEncode(user, server, deviceId);
|
|
84
92
|
};
|
|
85
|
-
|
|
93
|
+
//=======================================================//
|
package/lib/WABinary/types.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
//=======================================================//
|
|
2
|
+
import * as constants from "./constants.js";
|
|
3
|
+
//=======================================================//
|
package/lib/WAM/BinaryInfo.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
Object.assign(this, options);
|
|
11
|
-
}
|
|
1
|
+
//=======================================================//
|
|
2
|
+
export class BinaryInfo {
|
|
3
|
+
constructor(options = {}) {
|
|
4
|
+
this.protocolVersion = 5;
|
|
5
|
+
this.sequence = 0;
|
|
6
|
+
this.events = [];
|
|
7
|
+
this.buffer = [];
|
|
8
|
+
Object.assign(this, options);
|
|
9
|
+
}
|
|
12
10
|
}
|
|
13
|
-
|
|
11
|
+
//=======================================================//
|