@faouzkk/baileys
Version:
A WebSockets library for interacting with WhatsApp Web
98 lines • 4.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.transferDevice = exports.jidNormalizedUser = exports.isJidBot = exports.isJidHostedLidUser = exports.isJidHostedPnUser = exports.isJidNewsletter = exports.isJidStatusBroadcast = exports.isJidGroup = exports.isJidBroadcast = exports.isLidUser = exports.isPnUser = exports.isJidMetaAI = exports.areJidsSameUser = exports.jidDecode = exports.jidEncode = exports.WAJIDDomains = exports.META_AI_JID = exports.STORIES_JID = exports.PSA_WID = exports.SERVER_JID = exports.OFFICIAL_BIZ_JID = exports.S_WHATSAPP_NET = void 0;
exports.S_WHATSAPP_NET = '@s.whatsapp.net';
exports.OFFICIAL_BIZ_JID = '16505361212@c.us';
exports.SERVER_JID = 'server@c.us';
exports.PSA_WID = '0@c.us';
exports.STORIES_JID = 'status@broadcast';
exports.META_AI_JID = '13135550002@c.us';
var WAJIDDomains;
(function (WAJIDDomains) {
WAJIDDomains[WAJIDDomains["WHATSAPP"] = 0] = "WHATSAPP";
WAJIDDomains[WAJIDDomains["LID"] = 1] = "LID";
WAJIDDomains[WAJIDDomains["HOSTED"] = 128] = "HOSTED";
WAJIDDomains[WAJIDDomains["HOSTED_LID"] = 129] = "HOSTED_LID";
})(WAJIDDomains || (exports.WAJIDDomains = WAJIDDomains = {}));
const jidEncode = (user, server, device, agent) => {
return `${user || ''}${!!agent ? `_${agent}` : ''}${!!device ? `:${device}` : ''}@${server}`;
};
exports.jidEncode = jidEncode;
const jidDecode = (jid) => {
// todo: investigate how to implement hosted ids in this case
const sepIdx = typeof jid === 'string' ? jid.indexOf('@') : -1;
if (sepIdx < 0) {
return undefined;
}
const server = jid.slice(sepIdx + 1);
const userCombined = jid.slice(0, sepIdx);
const [userAgent, device] = userCombined.split(':');
const user = userAgent.split('_')[0];
let domainType = WAJIDDomains.WHATSAPP;
if (server === 'lid') {
domainType = WAJIDDomains.LID;
}
else if (server === 'hosted') {
domainType = WAJIDDomains.HOSTED;
}
else if (server === 'hosted.lid') {
domainType = WAJIDDomains.HOSTED_LID;
}
return {
server: server,
user,
domainType,
device: device ? +device : undefined
};
};
exports.jidDecode = jidDecode;
/** is the jid a user */
const areJidsSameUser = (jid1, jid2) => (0, exports.jidDecode)(jid1)?.user === (0, exports.jidDecode)(jid2)?.user;
exports.areJidsSameUser = areJidsSameUser;
/** is the jid Meta AI */
const isJidMetaAI = (jid) => jid?.endsWith('@bot');
exports.isJidMetaAI = isJidMetaAI;
/** is the jid a PN user */
const isPnUser = (jid) => jid?.endsWith('@s.whatsapp.net');
exports.isPnUser = isPnUser;
/** is the jid a LID */
const isLidUser = (jid) => jid?.endsWith('@lid');
exports.isLidUser = isLidUser;
/** is the jid a broadcast */
const isJidBroadcast = (jid) => jid?.endsWith('@broadcast');
exports.isJidBroadcast = isJidBroadcast;
/** is the jid a group */
const isJidGroup = (jid) => jid?.endsWith('@g.us');
exports.isJidGroup = isJidGroup;
/** is the jid the status broadcast */
const isJidStatusBroadcast = (jid) => jid === 'status@broadcast';
exports.isJidStatusBroadcast = isJidStatusBroadcast;
/** is the jid a newsletter */
const isJidNewsletter = (jid) => jid?.endsWith('@newsletter');
exports.isJidNewsletter = isJidNewsletter;
/** is the jid a hosted PN */
const isJidHostedPnUser = (jid) => jid?.endsWith('@hosted');
exports.isJidHostedPnUser = isJidHostedPnUser;
/** is the jid a hosted LID */
const isJidHostedLidUser = (jid) => jid?.endsWith('@hosted.lid');
exports.isJidHostedLidUser = isJidHostedLidUser;
const botRegexp = /^1313555\d{4}$|^131655500\d{2}$/;
const isJidBot = (jid) => jid && botRegexp.test(jid.split('@')[0]) && jid.endsWith('@c.us');
exports.isJidBot = isJidBot;
const jidNormalizedUser = (jid) => {
const result = (0, exports.jidDecode)(jid);
if (!result) {
return '';
}
const { user, server } = result;
return (0, exports.jidEncode)(user, server === 'c.us' ? 's.whatsapp.net' : server);
};
exports.jidNormalizedUser = jidNormalizedUser;
const transferDevice = (fromJid, toJid) => {
const fromDecoded = (0, exports.jidDecode)(fromJid);
const deviceId = fromDecoded?.device || 0;
const { server, user } = (0, exports.jidDecode)(toJid);
return (0, exports.jidEncode)(user, server, deviceId);
};
exports.transferDevice = transferDevice;
//# sourceMappingURL=jid-utils.js.map