UNPKG

lotusbail

Version:

WhatsApp API x Button by PL

23 lines (22 loc) 8.93 kB
var __importDefault=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{"default":a}};Object.defineProperty(exports,"__esModule",{value:!0}); exports.isWABusinessPlatform=exports.getCodeFromWSError=exports.getCallStatusFromNode=exports.getErrorCodeFromStreamError=exports.getStatusFromReceiptType=exports.generateMdTagPrefix=exports.fetchLatestWaWebVersion=exports.fetchLatestBaileysVersion=exports.bindWaitForConnectionUpdate=exports.generateMessageID=exports.generateMessageIDV2=exports.delayCancellable=exports.delay=exports.debouncedTimeout=exports.unixTimestampSeconds=exports.toNumber=exports.encodeBigEndian=exports.generateRegistrationId= exports.encodeWAMessage=exports.unpadRandomMax16=exports.writeRandomPadMax16=exports.getKeyAuthor=exports.BufferJSON=exports.getPlatformId=exports.Browsers=void 0;exports.promiseTimeout=promiseTimeout;exports.bindWaitForEvent=bindWaitForEvent;exports.trimUndefined=trimUndefined;exports.bytesToCrockford=bytesToCrockford;exports.encodeNewsletterMessage=encodeNewsletterMessage; const boom_1=require("@hapi/boom"),axios_1=__importDefault(require("axios")),crypto_1=require("crypto"),os_1=require("os"),WAProto_1=require("../../WAProto"),baileys_version_json_1=require("../Defaults/baileys-version.json"),Types_1=require("../Types"),WABinary_1=require("../WABinary"),PLATFORM_MAP={aix:"AIX",darwin:"Mac OS",win32:"Windows",android:"Android",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"Solaris"}; exports.Browsers={ubuntu:a=>["Ubuntu",a,"22.04.4"],macOS:a=>["Mac OS",a,"14.4.1"],baileys:a=>["Baileys",a,"6.5.0"],windows:a=>["Windows",a,"10.0.22631"],appropriate:a=>[PLATFORM_MAP[(0,os_1.platform)()]||"Ubuntu",a,(0,os_1.release)()]};const getPlatformId=a=>(a=WAProto_1.proto.DeviceProps.PlatformType[a.toUpperCase()])?a.toString():"1";exports.getPlatformId=getPlatformId; exports.BufferJSON={replacer:(a,b)=>Buffer.isBuffer(b)||b instanceof Uint8Array||"Buffer"===(null===b||void 0===b?void 0:b.type)?{type:"Buffer",data:Buffer.from((null===b||void 0===b?void 0:b.data)||b).toString("base64")}:b,reviver:(a,b)=>"object"!==typeof b||!b||!0!==b.buffer&&"Buffer"!==b.type?b:(a=b.data||b.value,"string"===typeof a?Buffer.from(a,"base64"):Buffer.from(a||[]))}; const getKeyAuthor=(a,b="me")=>((null===a||void 0===a?0:a.fromMe)?b:(null===a||void 0===a?void 0:a.participant)||(null===a||void 0===a?void 0:a.remoteJid))||"";exports.getKeyAuthor=getKeyAuthor;const writeRandomPadMax16=a=>{const b=(0,crypto_1.randomBytes)(1);b[0]&=15;b[0]||(b[0]=15);return Buffer.concat([a,Buffer.alloc(b[0],b[0])])};exports.writeRandomPadMax16=writeRandomPadMax16; const unpadRandomMax16=a=>{a=new Uint8Array(a);if(0===a.length)throw Error("unpadPkcs7 given empty bytes");var b=a[a.length-1];if(b>a.length)throw Error(`unpad given ${a.length} bytes, but pad is ${b}`);return new Uint8Array(a.buffer,a.byteOffset,a.length-b)};exports.unpadRandomMax16=unpadRandomMax16;const encodeWAMessage=a=>(0,exports.writeRandomPadMax16)(WAProto_1.proto.Message.encode(a).finish());exports.encodeWAMessage=encodeWAMessage; const generateRegistrationId=()=>Uint16Array.from((0,crypto_1.randomBytes)(2))[0]&16383;exports.generateRegistrationId=generateRegistrationId;const encodeBigEndian=(a,b=4)=>{const c=new Uint8Array(b);for(--b;0<=b;b--)c[b]=255&a,a>>>=8;return c};exports.encodeBigEndian=encodeBigEndian;const toNumber=a=>"object"===typeof a&&a?"toNumber"in a?a.toNumber():a.low:a||0;exports.toNumber=toNumber;const unixTimestampSeconds=(a=new Date)=>Math.floor(a.getTime()/1E3);exports.unixTimestampSeconds=unixTimestampSeconds; const debouncedTimeout=(a=1E3,b)=>{let c;return{start:(d,e)=>{b=e||b;a=d||a;c&&clearTimeout(c);c=setTimeout(()=>null===b||void 0===b?void 0:b(),a)},cancel:()=>{c&&clearTimeout(c);c=void 0},setTask:d=>b=d,setInterval:d=>a=d}};exports.debouncedTimeout=debouncedTimeout;const delay=a=>(0,exports.delayCancellable)(a).delay;exports.delay=delay; const delayCancellable=a=>{const b=Error().stack;let c,d;return{delay:new Promise((e,f)=>{c=setTimeout(e,a);d=f}),cancel:()=>{clearTimeout(c);d(new boom_1.Boom("Cancelled",{statusCode:500,data:{stack:b}}))}}};exports.delayCancellable=delayCancellable; async function promiseTimeout(a,b){if(!a)return new Promise(b);const c=Error().stack,{delay:d,cancel:e}=(0,exports.delayCancellable)(a);return(new Promise((f,g)=>{d.then(()=>g(new boom_1.Boom("Timed Out",{statusCode:Types_1.DisconnectReason.timedOut,data:{stack:c}}))).catch(h=>g(h));b(f,g)})).finally(e)} const generateMessageIDV2=a=>{const b=Buffer.alloc(44);b.writeBigUInt64BE(BigInt(Math.floor(Date.now()/1E3)));a&&(a=(0,WABinary_1.jidDecode)(a),null===a||void 0===a?0:a.user)&&(b.write(a.user,8),b.write("@c.us",8+a.user.length));(0,crypto_1.randomBytes)(16).copy(b,28);return"3EB0"+(0,crypto_1.createHash)("sha256").update(b).digest().toString("hex").toUpperCase().substring(0,18)};exports.generateMessageIDV2=generateMessageIDV2;const generateMessageID=()=>"3EB0"+(0,crypto_1.randomBytes)(18).toString("hex").toUpperCase(); exports.generateMessageID=generateMessageID;function bindWaitForEvent(a,b){return async(c,d)=>{let e,f;await promiseTimeout(d,(g,h)=>{f=({connection:k,lastDisconnect:l})=>{"close"===k&&h((null===l||void 0===l?void 0:l.error)||new boom_1.Boom("Connection Closed",{statusCode:Types_1.DisconnectReason.connectionClosed}))};a.on("connection.update",f);e=async k=>{await c(k)&&g()};a.on(b,e)}).finally(()=>{a.off(b,e);a.off("connection.update",f)})}} const bindWaitForConnectionUpdate=a=>bindWaitForEvent(a,"connection.update");exports.bindWaitForConnectionUpdate=bindWaitForConnectionUpdate;const fetchLatestBaileysVersion=async(a={})=>{try{return{version:(await axios_1.default.get("https://raw.githubusercontent.com/WhiskeySockets/Baileys/master/src/Defaults/baileys-version.json",{...a,responseType:"json"})).data.version,isLatest:!0}}catch(b){return{version:baileys_version_json_1.version,isLatest:!1,error:b}}};exports.fetchLatestBaileysVersion=fetchLatestBaileysVersion; const fetchLatestWaWebVersion=async a=>{try{const {data:b}=await axios_1.default.get("https://web.whatsapp.com/sw.js",{...a,responseType:"json"}),c=b.match(/\\?"client_revision\\?":\s*(\d+)/);return null!==c&&void 0!==c&&c[1]?{version:[2,3E3,+c[1]],isLatest:!0}:{version:baileys_version_json_1.version,isLatest:!1,error:{message:"Could not find client revision in the fetched content"}}}catch(b){return{version:baileys_version_json_1.version,isLatest:!1,error:b}}};exports.fetchLatestWaWebVersion=fetchLatestWaWebVersion; const generateMdTagPrefix=()=>{const a=(0,crypto_1.randomBytes)(4);return`${a.readUInt16BE()}.${a.readUInt16BE(2)}-`};exports.generateMdTagPrefix=generateMdTagPrefix;const STATUS_MAP={sender:WAProto_1.proto.WebMessageInfo.Status.SERVER_ACK,played:WAProto_1.proto.WebMessageInfo.Status.PLAYED,read:WAProto_1.proto.WebMessageInfo.Status.READ,"read-self":WAProto_1.proto.WebMessageInfo.Status.READ},getStatusFromReceiptType=a=>"undefined"===typeof a?WAProto_1.proto.WebMessageInfo.Status.DELIVERY_ACK:STATUS_MAP[a]; exports.getStatusFromReceiptType=getStatusFromReceiptType;const CODE_MAP={conflict:Types_1.DisconnectReason.connectionReplaced},getErrorCodeFromStreamError=a=>{var [b]=(0,WABinary_1.getAllBinaryNodeChildren)(a);b=(null===b||void 0===b?void 0:b.tag)||"unknown";a=+(a.attrs.code||CODE_MAP[b]||Types_1.DisconnectReason.badSession);a===Types_1.DisconnectReason.restartRequired&&(b="restart required");return{reason:b,statusCode:a}};exports.getErrorCodeFromStreamError=getErrorCodeFromStreamError; const getCallStatusFromNode=({tag:a,attrs:b})=>{switch(a){case "offer":case "offer_notice":a="offer";break;case "terminate":a="timeout"===b.reason?"timeout":"terminate";break;case "reject":a="reject";break;case "accept":a="accept";break;default:a="ringing"}return a};exports.getCallStatusFromNode=getCallStatusFromNode; const UNEXPECTED_SERVER_CODE_TEXT="Unexpected server response: ",getCodeFromWSError=a=>{var b,c,d;let e=500;if(null===(b=null===a||void 0===a?void 0:a.message)||void 0===b?0:b.includes(UNEXPECTED_SERVER_CODE_TEXT))a=+(null===a||void 0===a?NaN:a.message.slice(UNEXPECTED_SERVER_CODE_TEXT.length)),!Number.isNaN(a)&&400<=a&&(e=a);else if((null===(c=null===a||void 0===a?void 0:a.code)||void 0===c?0:c.startsWith("E"))||(null===(d=null===a||void 0===a?void 0:a.message)||void 0===d?0:d.includes("timed out")))e= 408;return e};exports.getCodeFromWSError=getCodeFromWSError;const isWABusinessPlatform=a=>"smbi"===a||"smba"===a;exports.isWABusinessPlatform=isWABusinessPlatform;function trimUndefined(a){for(const b in a)"undefined"===typeof a[b]&&delete a[b];return a}const CROCKFORD_CHARACTERS="123456789ABCDEFGHJKLMNPQRSTVWXYZ"; function bytesToCrockford(a){let b=0,c=0;const d=[];for(const e of a)for(b=b<<8|e&255,c+=8;5<=c;)d.push(CROCKFORD_CHARACTERS.charAt(b>>>c-5&31)),c-=5;0<c&&d.push(CROCKFORD_CHARACTERS.charAt(b<<5-c&31));return d.join("")}function encodeNewsletterMessage(a){return WAProto_1.proto.Message.encode(a).finish()};