@baileys-md/baileys
Version:
Baileys WhatsApp API
94 lines (85 loc) • 3.21 kB
JavaScript
//========================================//
export const OFFICIAL_BIZ_JID = "16505361212@c.us";
export const S_WHATSAPP_NET = "@s.whatsapp.net";
export const STORIES_JID = "status@broadcast";
export const META_AI_JID = "13135550002@c.us";
export const SERVER_JID = "server@c.us";
export const PSA_WID = "0@c.us";
export 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 || (WAJIDDomains = {}));
export const getServerFromDomainType = (initialServer, domainType) => {
switch (domainType) {
case WAJIDDomains.LID:
return "lid";
case WAJIDDomains.HOSTED:
return "hosted";
case WAJIDDomains.HOSTED_LID:
return "hosted.lid";
case WAJIDDomains.WHATSAPP:
default:
return initialServer;
}
};
export const jidEncode = (user, server, device, agent) => {
return `${user || ""}${!!agent ? `_${agent}` : ""}${!!device ? `:${device}` : ""}@${server}`;
};
export const jidDecode = (jid) => {
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, agent] = userAgent.split("_");
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;
}
else if (agent) {
domainType = parseInt(agent);
}
return {
server: server,
user: user,
domainType,
device: device ? +device : undefined
};
};
export const areJidsSameUser = (jid1, jid2) => jidDecode(jid1)?.user === jidDecode(jid2)?.user;
export const isJidMetaAI = (jid) => jid?.endsWith("@bot");
export const isPnUser = (jid) => jid?.endsWith("@s.whatsapp.net");
export const isLidUser = (jid) => jid?.endsWith("@lid");
export const isJidBroadcast = (jid) => jid?.endsWith("@broadcast");
export const isJidGroup = (jid) => jid?.endsWith("@g.us");
export const isJidStatusBroadcast = (jid) => jid === "status@broadcast";
export const isJidNewsletter = (jid) => jid?.endsWith("@newsletter");
export const isHostedPnUser = (jid) => jid?.endsWith("@hosted");
export const isHostedLidUser = (jid) => jid?.endsWith("@hosted.lid");
const botRegexp = /^1313555\d{4}$|^131655500\d{2}$/;
export const isJidBot = (jid) => jid && botRegexp.test(jid.split("@")[0]) && jid.endsWith("@c.us");
export const jidNormalizedUser = (jid) => {
const result = jidDecode(jid);
if (!result) {
return "";
}
const { user, server } = result;
return jidEncode(user, server === "c.us" ? "s.whatsapp.net" : server);
};
export const transferDevice = (fromJid, toJid) => {
const fromDecoded = jidDecode(fromJid);
const deviceId = fromDecoded?.device || 0;
const { server, user } = jidDecode(toJid);
return jidEncode(user, server, deviceId);
};