@realvare/based 2.5.2 → 2.5.6
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 +1288 -829
- package/lib/Defaults/index.js +1 -1
- package/lib/Socket/messages-send.js +1406 -901
- package/lib/Socket/socket.js +51 -3
- package/lib/Utils/cache-manager.js +73 -0
- package/lib/Utils/messages.js +1338 -1290
- package/lib/Utils/performance-config.d.ts +64 -60
- package/lib/Utils/performance-config.js +154 -150
- package/lib/Utils/retry.js +66 -66
- package/lib/WABinary/decode.js +24 -10
- package/lib/WABinary/encode.js +15 -1
- package/lib/WABinary/jid-utils.js +217 -140
- package/lib/index.js +3 -4
- package/package.json +111 -111
- package/lib/WABinary/jid-utils.js.bak +0 -83
|
@@ -1,140 +1,217 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.lidToJid = exports.getBotJid = exports.jidNormalizedUser = exports.isJidBot = exports.isJidStatusBroadcast = exports.isJidGroup = exports.isJidNewsletter = exports.isJidBroadcast = exports.isLidUser = exports.isJidUser = exports.isJidMetaAi = exports.areJidsSameUser = exports.jidDecode = exports.jidEncode = exports.META_AI_JID = exports.STORIES_JID = exports.PSA_WID = exports.SERVER_JID = exports.OFFICIAL_BIZ_JID = exports.S_WHATSAPP_NET = void 0;
|
|
4
|
-
exports.S_WHATSAPP_NET = '@s.whatsapp.net';
|
|
5
|
-
exports.OFFICIAL_BIZ_JID = '16505361212@c.us';
|
|
6
|
-
exports.SERVER_JID = 'server@c.us';
|
|
7
|
-
exports.PSA_WID = '0@c.us';
|
|
8
|
-
exports.STORIES_JID = 'status@broadcast';
|
|
9
|
-
exports.META_AI_JID = '13135550002@c.us';
|
|
10
|
-
const jidEncode = (user, server, device, agent) => {
|
|
11
|
-
return `${user || ''}${!!agent ? `_${agent}` : ''}${!!device ? `:${device}` : ''}@${server}`;
|
|
12
|
-
};
|
|
13
|
-
exports.jidEncode = jidEncode;
|
|
14
|
-
const jidDecode = (jid) => {
|
|
15
|
-
const sepIdx = typeof jid === 'string' ? jid.indexOf('@') : -1;
|
|
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
|
-
exports.jidDecode = jidDecode;
|
|
31
|
-
/** is the jid a user */
|
|
32
|
-
const areJidsSameUser = (jid1, jid2) => {
|
|
33
|
-
var _a, _b;
|
|
34
|
-
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));
|
|
35
|
-
};
|
|
36
|
-
exports.areJidsSameUser = areJidsSameUser;
|
|
37
|
-
/** is the jid Meta IA */
|
|
38
|
-
const isJidMetaAi = (jid) => (jid === null || jid === void 0 ? void 0 : jid.endsWith('@bot'));
|
|
39
|
-
exports.isJidMetaAi = isJidMetaAi;
|
|
40
|
-
/** is the jid a user */
|
|
41
|
-
const isJidUser = (jid) => (jid === null || jid === void 0 ? void 0 : jid.endsWith('@s.whatsapp.net'));
|
|
42
|
-
exports.isJidUser = isJidUser;
|
|
43
|
-
/** is the jid a group */
|
|
44
|
-
const isLidUser = (jid) => (jid === null || jid === void 0 ? void 0 : jid.endsWith('@lid'));
|
|
45
|
-
exports.isLidUser = isLidUser;
|
|
46
|
-
/** is the jid a broadcast */
|
|
47
|
-
const isJidBroadcast = (jid) => (jid === null || jid === void 0 ? void 0 : jid.endsWith('@broadcast'));
|
|
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;
|
|
58
|
-
const botRegexp = /^1313555\d{4}$|^131655500\d{2}$/;
|
|
59
|
-
const isJidBot = (jid) => (jid && botRegexp.test(jid.split('@')[0]) && jid.endsWith('@c.us'));
|
|
60
|
-
exports.isJidBot = isJidBot;
|
|
61
|
-
const jidNormalizedUser = (jid) => {
|
|
62
|
-
const result = (0, exports.jidDecode)(jid);
|
|
63
|
-
if (!result) {
|
|
64
|
-
return '';
|
|
65
|
-
}
|
|
66
|
-
const { user, server } = result;
|
|
67
|
-
return (0, exports.jidEncode)(user, server === 'c.us' ? 's.whatsapp.net' : server);
|
|
68
|
-
};
|
|
69
|
-
exports.jidNormalizedUser = jidNormalizedUser;
|
|
70
|
-
//
|
|
71
|
-
const
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
if (
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
const
|
|
102
|
-
if (
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
return jid;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lidToJid = exports.getBotJid = exports.jidNormalizedUser = exports.isJidBot = exports.isJidStatusBroadcast = exports.isJidGroup = exports.isJidNewsletter = exports.isJidBroadcast = exports.isLidUser = exports.isJidUser = exports.isJidMetaAi = exports.areJidsSameUser = exports.jidDecode = exports.jidEncode = exports.META_AI_JID = exports.STORIES_JID = exports.PSA_WID = exports.SERVER_JID = exports.OFFICIAL_BIZ_JID = exports.S_WHATSAPP_NET = void 0;
|
|
4
|
+
exports.S_WHATSAPP_NET = '@s.whatsapp.net';
|
|
5
|
+
exports.OFFICIAL_BIZ_JID = '16505361212@c.us';
|
|
6
|
+
exports.SERVER_JID = 'server@c.us';
|
|
7
|
+
exports.PSA_WID = '0@c.us';
|
|
8
|
+
exports.STORIES_JID = 'status@broadcast';
|
|
9
|
+
exports.META_AI_JID = '13135550002@c.us';
|
|
10
|
+
const jidEncode = (user, server, device, agent) => {
|
|
11
|
+
return `${user || ''}${!!agent ? `_${agent}` : ''}${!!device ? `:${device}` : ''}@${server}`;
|
|
12
|
+
};
|
|
13
|
+
exports.jidEncode = jidEncode;
|
|
14
|
+
const jidDecode = (jid) => {
|
|
15
|
+
const sepIdx = typeof jid === 'string' ? jid.indexOf('@') : -1;
|
|
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
|
+
exports.jidDecode = jidDecode;
|
|
31
|
+
/** is the jid a user */
|
|
32
|
+
const areJidsSameUser = (jid1, jid2) => {
|
|
33
|
+
var _a, _b;
|
|
34
|
+
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));
|
|
35
|
+
};
|
|
36
|
+
exports.areJidsSameUser = areJidsSameUser;
|
|
37
|
+
/** is the jid Meta IA */
|
|
38
|
+
const isJidMetaAi = (jid) => (jid === null || jid === void 0 ? void 0 : jid.endsWith('@bot'));
|
|
39
|
+
exports.isJidMetaAi = isJidMetaAi;
|
|
40
|
+
/** is the jid a user */
|
|
41
|
+
const isJidUser = (jid) => (jid === null || jid === void 0 ? void 0 : jid.endsWith('@s.whatsapp.net'));
|
|
42
|
+
exports.isJidUser = isJidUser;
|
|
43
|
+
/** is the jid a group */
|
|
44
|
+
const isLidUser = (jid) => (jid === null || jid === void 0 ? void 0 : jid.endsWith('@lid'));
|
|
45
|
+
exports.isLidUser = isLidUser;
|
|
46
|
+
/** is the jid a broadcast */
|
|
47
|
+
const isJidBroadcast = (jid) => (jid === null || jid === void 0 ? void 0 : jid.endsWith('@broadcast'));
|
|
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;
|
|
58
|
+
const botRegexp = /^1313555\d{4}$|^131655500\d{2}$/;
|
|
59
|
+
const isJidBot = (jid) => (jid && botRegexp.test(jid.split('@')[0]) && jid.endsWith('@c.us'));
|
|
60
|
+
exports.isJidBot = isJidBot;
|
|
61
|
+
const jidNormalizedUser = (jid) => {
|
|
62
|
+
const result = (0, exports.jidDecode)(jid);
|
|
63
|
+
if (!result) {
|
|
64
|
+
return '';
|
|
65
|
+
}
|
|
66
|
+
const { user, server } = result;
|
|
67
|
+
return (0, exports.jidEncode)(user, server === 'c.us' ? 's.whatsapp.net' : server);
|
|
68
|
+
};
|
|
69
|
+
exports.jidNormalizedUser = jidNormalizedUser;
|
|
70
|
+
// Node.js helpers for optional dynamic bot map loading
|
|
71
|
+
const fs = require('fs');
|
|
72
|
+
const path = require('path');
|
|
73
|
+
|
|
74
|
+
// LRU cache semplice per lidToJid (leggero, senza dipendenze)
|
|
75
|
+
class SimpleLRU {
|
|
76
|
+
constructor(maxSize = 5000, ttl = 5 * 60 * 1000) {
|
|
77
|
+
this.maxSize = maxSize;
|
|
78
|
+
this.ttl = ttl;
|
|
79
|
+
this.map = new Map(); // mantiene l'ordine di inserimento
|
|
80
|
+
}
|
|
81
|
+
get(key) {
|
|
82
|
+
const entry = this.map.get(key);
|
|
83
|
+
if (!entry)
|
|
84
|
+
return undefined;
|
|
85
|
+
if (Date.now() - entry.ts > this.ttl) {
|
|
86
|
+
this.map.delete(key);
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
// promuovi a MRU
|
|
90
|
+
this.map.delete(key);
|
|
91
|
+
this.map.set(key, entry);
|
|
92
|
+
return entry.value;
|
|
93
|
+
}
|
|
94
|
+
set(key, value) {
|
|
95
|
+
if (this.map.has(key))
|
|
96
|
+
this.map.delete(key);
|
|
97
|
+
this.map.set(key, { value, ts: Date.now() });
|
|
98
|
+
if (this.map.size > this.maxSize) {
|
|
99
|
+
// rimuovi LRU (primo elemento)
|
|
100
|
+
const it = this.map.keys();
|
|
101
|
+
const lru = it.next().value;
|
|
102
|
+
if (lru)
|
|
103
|
+
this.map.delete(lru);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const DEFAULT_LID_CACHE_TTL = 5 * 60 * 1000; // 5 minuti
|
|
109
|
+
const DEFAULT_LID_CACHE_MAX = 5000;
|
|
110
|
+
const lidToJidCache = new SimpleLRU(DEFAULT_LID_CACHE_MAX, DEFAULT_LID_CACHE_TTL);
|
|
111
|
+
|
|
112
|
+
const lidToJid = (jid) => {
|
|
113
|
+
try {
|
|
114
|
+
if (!jid || typeof jid !== 'string') {
|
|
115
|
+
return jid;
|
|
116
|
+
}
|
|
117
|
+
const cached = lidToJidCache.get(jid);
|
|
118
|
+
if (cached)
|
|
119
|
+
return cached;
|
|
120
|
+
|
|
121
|
+
let result = jid;
|
|
122
|
+
if (jid.endsWith('@lid')) {
|
|
123
|
+
result = jid.replace('@lid', '@s.whatsapp.net');
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
lidToJidCache.set(jid, result);
|
|
127
|
+
return result;
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
try { console.error('Error in lidToJid:', error && error.message ? error.message : error, 'Input:', jid); } catch (_) { }
|
|
131
|
+
return jid;
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
exports.lidToJid = lidToJid;
|
|
135
|
+
// Static BOT map kept for fallback. Created once to avoid recreating Map on each call.
|
|
136
|
+
const BOT_MAP_STATIC = new Map([["867051314767696", "13135550002"], ["1061492271844689", "13135550005"], ["245886058483988", "13135550009"], ["3509905702656130", "13135550012"], ["1059680132034576", "13135550013"], ["715681030623646", "13135550014"], ["1644971366323052", "13135550015"], ["582497970646566", "13135550019"], ["645459357769306", "13135550022"], ["294997126699143", "13135550023"], ["1522631578502677", "13135550027"], ["719421926276396", "13135550030"], ["1788488635002167", "13135550031"], ["24232338603080193", "13135550033"], ["689289903143209", "13135550035"], ["871626054177096", "13135550039"], ["362351902849370", "13135550042"], ["1744617646041527", "13135550043"], ["893887762270570", "13135550046"], ["1155032702135830", "13135550047"], ["333931965993883", "13135550048"], ["853748013058752", "13135550049"], ["1559068611564819", "13135550053"], ["890487432705716", "13135550054"], ["240254602395494", "13135550055"], ["1578420349663261", "13135550062"], ["322908887140421", "13135550065"], ["3713961535514771", "13135550067"], ["997884654811738", "13135550070"], ["403157239387035", "13135550081"], ["535242369074963", "13135550082"], ["946293427247659", "13135550083"], ["3664707673802291", "13135550084"], ["1821827464894892", "13135550085"], ["1760312477828757", "13135550086"], ["439480398712216", "13135550087"], ["1876735582800984", "13135550088"], ["984025089825661", "13135550089"], ["1001336351558186", "13135550090"], ["3739346336347061", "13135550091"], ["3632749426974980", "13135550092"], ["427864203481615", "13135550093"], ["1434734570493055", "13135550094"], ["992873449225921", "13135550095"], ["813087747426445", "13135550096"], ["806369104931434", "13135550098"], ["1220982902403148", "13135550099"], ["1365893374104393", "13135550100"], ["686482033622048", "13135550200"], ["1454999838411253", "13135550201"], ["718584497008509", "13135550202"], ["743520384213443", "13135550301"], ["1147715789823789", "13135550302"], ["1173034540372201", "13135550303"], ["974785541030953", "13135550304"], ["1122200255531507", "13135550305"], ["899669714813162", "13135550306"], ["631880108970650", "13135550307"], ["435816149330026", "13135550308"], ["1368717161184556", "13135550309"], ["7849963461784891", "13135550310"], ["3609617065968984", "13135550312"], ["356273980574602", "13135550313"], ["1043447920539760", "13135550314"], ["1052764336525346", "13135550315"], ["2631118843732685", "13135550316"], ["510505411332176", "13135550317"], ["1945664239227513", "13135550318"], ["1518594378764656", "13135550319"], ["1378821579456138", "13135550320"], ["490214716896013", "13135550321"], ["1028577858870699", "13135550322"], ["308915665545959", "13135550323"], ["845884253678900", "13135550324"], ["995031308616442", "13135550325"], ["2787365464763437", "13135550326"], ["1532790990671645", "13135550327"], ["302617036180485", "13135550328"], ["723376723197227", "13135550329"], ["8393570407377966", "13135550330"], ["1931159970680725", "13135550331"], ["401073885688605", "13135550332"], ["2234478453565422", "13135550334"], ["814748673882312", "13135550335"], ["26133635056281592", "13135550336"], ["1439804456676119", "13135550337"], ["889851503172161", "13135550338"], ["1018283232836879", "13135550339"], ["1012781386779537", "13135559000"], ["823280953239532", "13135559001"], ["1597090934573334", "13135559002"], ["485965054020343", "13135559003"], ["1033381648363446", "13135559004"], ["491802010206446", "13135559005"], ["1017139033184870", "13135559006"], ["499638325922174", "13135559008"], ["468946335863664", "13135559009"], ["1570389776875816", "13135559010"], ["1004342694328995", "13135559011"], ["1012240323971229", "13135559012"], ["392171787222419", "13135559013"], ["952081212945019", "13135559016"], ["444507875070178", "13135559017"], ["1274819440594668", "13135559018"], ["1397041101147050", "13135559019"], ["425657699872640", "13135559020"], ["532292852562549", "13135559021"], ["705863241720292", "13135559022"], ["476449815183959", "13135559023"], ["488071553854222", "13135559024"], ["468693832665397", "13135559025"], ["517422564037340", "13135559026"], ["819805466613825", "13135559027"], ["1847708235641382", "13135559028"], ["716282970644228", "13135559029"], ["521655380527741", "13135559030"], ["476193631941905", "13135559031"], ["485600497445562", "13135559032"], ["440217235683910", "13135559033"], ["523342446758478", "13135559034"], ["514784864360240", "13135559035"], ["505790121814530", "13135559036"], ["420008964419580", "13135559037"], ["492141680204555", "13135559038"], ["388462787271952", "13135559039"], ["423473920752072", "13135559040"], ["489574180468229", "13135559041"], ["432360635854105", "13135559042"], ["477878201669248", "13135559043"], ["351656951234045", "13135559044"], ["430178036732582", "13135559045"], ["434537312944552", "13135559046"], ["1240614300631808", "13135559047"], ["473135945605128", "13135559048"], ["423669800729310", "13135559049"], ["3685666705015792", "13135559050"], ["504196509016638", "13135559051"], ["346844785189449", "13135559052"], ["504823088911074", "13135559053"], ["402669415797083", "13135559054"], ["490939640234431", "13135559055"], ["875124128063715", "13135559056"], ["468788962654605", "13135559057"], ["562386196354570", "13135559058"], ["372159285928791", "13135559059"], ["531017479591050", "13135559060"], ["1328873881401826", "13135559061"], ["1608363646390484", "13135559062"], ["1229628561554232", "13135559063"], ["348802211530364", "13135559064"], ["3708535859420184", "13135559065"], ["415517767742187", "13135559066"], ["479330341612638", "13135559067"], ["480785414723083", "13135559068"], ["387299107507991", "13135559069"], ["333389813188944", "13135559070"], ["391794130316996", "13135559071"], ["457893470576314", "13135559072"], ["435550496166469", "13135559073"], ["1620162702100689", "13135559074"], ["867491058616043", "13135559075"], ["816224117357759", "13135559076"], ["334065176362830", "13135559077"], ["489973170554709", "13135559078"], ["473060669049665", "13135559079"], ["1221505815643060", "13135559080"], ["889000703096359", "13135559081"], ["475235961979883", "13135559082"], ["3434445653519934", "13135559084"], ["524503026827421", "13135559085"], ["1179639046403856", "13135559086"], ["471563305859144", "13135559087"], ["533896609192881", "13135559088"], ["365443583168041", "13135559089"], ["836082305329393", "13135559090"], ["1056787705969916", "13135559091"], ["503312598958357", "13135559092"], ["3718606738453460", "13135559093"], ["826066052850902", "13135559094"], ["1033611345091888", "13135559095"], ["3868390816783240", "13135559096"], ["7462677740498860", "13135559097"], ["436288576108573", "13135559098"], ["1047559746718900", "13135559099"], ["1099299455255491", "13135559100"], ["1202037301040633", "13135559101"], ["1720619402074074", "13135559102"], ["1030422235101467", "13135559103"], ["827238979523502", "13135559104"], ["1516443722284921", "13135559105"], ["1174442747196709", "13135559106"], ["1653165225503842", "13135559107"], ["1037648777635013", "13135559108"], ["551617757299900", "13135559109"], ["1158813558718726", "13135559110"], ["2463236450542262", "13135559111"], ["1550393252501466", "13135559112"], ["2057065188042796", "13135559113"], ["506163028760735", "13135559114"], ["2065249100538481", "13135559115"], ["1041382867195858", "13135559116"], ["886500209499603", "13135559117"], ["1491615624892655", "13135559118"], ["486563697299617", "13135559119"], ["1175736513679463", "13135559120"], ["491811473512352", "13165550064"]]);
|
|
137
|
+
|
|
138
|
+
// Current effective BOT map. May be replaced at runtime via `setBotMap` or `loadBotMapFromFile`.
|
|
139
|
+
let BOT_MAP = BOT_MAP_STATIC;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Attempt to load a bot map JSON from disk. The JSON should be an object mapping
|
|
143
|
+
* userId -> phoneNumber (both strings). Tries first the provided filePath, then
|
|
144
|
+
* looks in process.cwd() and module directory.
|
|
145
|
+
*/
|
|
146
|
+
const loadBotMapFromFile = async (filePath) => {
|
|
147
|
+
const candidates = [];
|
|
148
|
+
if (filePath) candidates.push(filePath);
|
|
149
|
+
candidates.push(path.join(process.cwd(), 'bot-map.json'));
|
|
150
|
+
candidates.push(path.join(__dirname, 'bot-map.json'));
|
|
151
|
+
|
|
152
|
+
for (const p of candidates) {
|
|
153
|
+
try {
|
|
154
|
+
if (!p) continue;
|
|
155
|
+
const stat = await fs.promises.stat(p).catch(() => null);
|
|
156
|
+
if (!stat || !stat.isFile()) continue;
|
|
157
|
+
const data = await fs.promises.readFile(p, 'utf8');
|
|
158
|
+
const obj = JSON.parse(data);
|
|
159
|
+
if (obj && typeof obj === 'object') {
|
|
160
|
+
BOT_MAP = new Map(Object.entries(obj));
|
|
161
|
+
return BOT_MAP;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch (err) {
|
|
165
|
+
// continue to next candidate
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// If no dynamic map found, keep existing BOT_MAP
|
|
169
|
+
return BOT_MAP;
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Replace current BOT map with a provided object or Map.
|
|
174
|
+
*/
|
|
175
|
+
const setBotMap = (mapLike) => {
|
|
176
|
+
if (!mapLike)
|
|
177
|
+
return;
|
|
178
|
+
if (mapLike instanceof Map) {
|
|
179
|
+
BOT_MAP = mapLike;
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
if (typeof mapLike === 'object') {
|
|
183
|
+
BOT_MAP = new Map(Object.entries(mapLike));
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Get the mapped bot JID for a given jid (e.g. "123@bot"). Uses a runtime
|
|
190
|
+
* configurable map with a static fallback. Returns the input jid if no mapping.
|
|
191
|
+
*/
|
|
192
|
+
const getBotJid = (jid) => {
|
|
193
|
+
try {
|
|
194
|
+
const sepIdx = typeof jid === 'string' ? jid.indexOf('@') : -1;
|
|
195
|
+
if (sepIdx < 0) {
|
|
196
|
+
return jid;
|
|
197
|
+
}
|
|
198
|
+
const server = jid.slice(sepIdx + 1);
|
|
199
|
+
if (server !== 'bot')
|
|
200
|
+
return jid;
|
|
201
|
+
const user = jid.slice(0, sepIdx);
|
|
202
|
+
const mappedNumber = BOT_MAP.get(user);
|
|
203
|
+
return mappedNumber ? `${mappedNumber}@s.whatsapp.net` : jid;
|
|
204
|
+
}
|
|
205
|
+
catch (err) {
|
|
206
|
+
// In case of unexpected errors, log and return original jid as safe fallback
|
|
207
|
+
try {
|
|
208
|
+
console.error('getBotJid error:', err && err.message ? err.message : err);
|
|
209
|
+
}
|
|
210
|
+
catch (_) { }
|
|
211
|
+
return jid;
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
exports.getBotJid = getBotJid;
|
|
216
|
+
exports.loadBotMapFromFile = loadBotMapFromFile;
|
|
217
|
+
exports.setBotMap = setBotMap;
|
package/lib/index.js
CHANGED
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
const chalk = require("chalk");
|
|
4
4
|
const gradient = require("gradient-string");
|
|
5
5
|
|
|
6
|
-
const samakavare = 'baileys by
|
|
7
|
-
console.log('\n' + gradient(['#
|
|
8
|
-
//crediti a yupra per la base del progetto
|
|
6
|
+
const samakavare = 'baileys by sam aka vare - https://github.com/realvare • https://www.npmjs.com/~realvare';
|
|
7
|
+
console.log('\n' + gradient(['#520f8dff', '#431888ff'])(samakavare) + '\n');
|
|
9
8
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
9
|
if (k2 === undefined) k2 = k;
|
|
11
10
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -39,7 +38,7 @@ Object.defineProperty(exports, "proto", {
|
|
|
39
38
|
|
|
40
39
|
const Socket_1 = __importDefault(require("./Socket"));
|
|
41
40
|
exports.makeWASocket = Socket_1.default;
|
|
42
|
-
|
|
41
|
+
//crediti a yupra per la base del progetto
|
|
43
42
|
__exportStar(require("../WAProto"), exports);
|
|
44
43
|
__exportStar(require("./Utils"), exports);
|
|
45
44
|
__exportStar(require("./Types"), exports);
|