zaileys 2.1.8 → 2.1.9
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 +102 -19
- package/dist/index.d.mts +146 -127
- package/dist/index.d.ts +146 -127
- package/dist/index.js +27 -15
- package/dist/index.mjs +27 -15
- package/package.json +6 -5
- package/tsconfig.json +1 -0
package/dist/index.js
CHANGED
|
@@ -1,16 +1,28 @@
|
|
|
1
|
-
'use strict';var zt=require('baileys'),$e=require('fs/promises'),jetdb=require('jetdb'),nanospinner=require('nanospinner'),Oe=require('node-cache'),events=require('events'),Ot=require('pino'),F=require('fs'),ot=require('unorm'),at=require('gradient-string'),x=require('lodash'),fileType=require('file-type'),Y=require('fluent-ffmpeg'),Kt=require('node-webpmux'),os$1=require('os'),Le=require('path'),ie=require('sharp'),Zt=require('figlet'),Yt=require('qrcode-terminal'),rateLimiterFlexible=require('rate-limiter-flexible'),u=require('zod'),Is=require('stream'),url=require('url');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var zt__default=/*#__PURE__*/_interopDefault(zt);var $e__default=/*#__PURE__*/_interopDefault($e);var Oe__default=/*#__PURE__*/_interopDefault(Oe);var Ot__default=/*#__PURE__*/_interopDefault(Ot);var F__namespace=/*#__PURE__*/_interopNamespace(F);var ot__default=/*#__PURE__*/_interopDefault(ot);var at__default=/*#__PURE__*/_interopDefault(at);var x__default=/*#__PURE__*/_interopDefault(x);var Y__default=/*#__PURE__*/_interopDefault(Y);var Kt__default=/*#__PURE__*/_interopDefault(Kt);var Le__namespace=/*#__PURE__*/_interopNamespace(Le);var ie__default=/*#__PURE__*/_interopDefault(ie);var Zt__default=/*#__PURE__*/_interopDefault(Zt);var Yt__default=/*#__PURE__*/_interopDefault(Yt);var u__default=/*#__PURE__*/_interopDefault(u);var Is__default=/*#__PURE__*/_interopDefault(Is);var Be=class{data=new Map;set(e,t){let n=s=>s&&typeof s=="object"&&s.constructor===Object,o=this.data.get(e);n(t)&&n(o)?this.data.set(e,{...o,...t}):this.data.set(e,t);}get(e){return this.data.get(e)||{}}update(e,t){let n=this.get(e);this.set(e,t(n));}delete(e){this.data.delete(e);}has(e){return this.data.has(e)}db(e,t){let n=`.session/${e}/store/${t}.json`;return jetdb.createJetDB(n,{cacheSize:5e3,flushMode:"debounce",debounceMs:300,compression:"deflate",serialization:"json",enableIndexing:true,hotThreshold:5})}spinner=nanospinner.createSpinner("",{color:"green"});logger=Ot__default.default({level:"silent",enabled:false});events=new events.EventEmitter;groupCache=new Oe__default.default({stdTTL:300,useClones:false});collectors=new Map},i=new Be;var Ye=async a=>{i.spinner.start(" Initializing auth state...");let e=await $e.stat(a).catch(()=>{});if(e){if(!e.isDirectory())throw i.spinner.error(` Failed to open credentials
|
|
2
|
-
`),`found something that is not a directory at ${a}, either delete it or specify a different location`}else await $e.mkdir(a,{recursive:true});let t=jetdb.createJetDB(`${a}/auth/creds.json`,{BufferJSON:zt.BufferJSON,cacheSize:100,flushMode:"sync",compression:"none",enableIndexing:false}),n=jetdb.createJetDB(`${a}/auth/keys.json`,{BufferJSON:zt.BufferJSON,size:512*1024,cacheSize:1e3,flushMode:"debounce",debounceMs:500,compression:"deflate",enableIndexing:false,hotThreshold:3});await Promise.all([t.read(),n.read()]);let o=await t.get("creds")||zt.initAuthCreds();return i.spinner.success(" Generate auth successfully"),{state:{creds:o,keys:{get:async(s,r)=>{let c={};return await Promise.all(r.map(async l=>{let p=`${s}:${l}`,k=await n.get(p);s==="app-state-sync-key"&&k&&(k=zt.proto.Message.AppStateSyncKeyData.fromObject(k)),c[l]=k;})),c},set:async s=>{let r=[],c=[];for(let l in s)for(let p in s[l]){let k=s[l][p],M=`${l}:${p}`;k?r.push({key:M,value:k}):c.push(M);}r.length&&await n.batchSet(r),c.length&&await n.batchDelete(c),await n.flush();}}},saveCreds:async()=>{await t.set("creds",o),await t.write();}}};var Ut=new Oe__default.default,Xe=(a,e)=>({logger:i.logger,printQRInTerminal:false,markOnlineOnConnect:a.options.autoOnline,syncFullHistory:a.options.syncFullHistory,msgRetryCounterCache:new Oe__default.default,mediaCache:new Oe__default.default({stdTTL:60}),cachedGroupMetadata:async t=>Ut.get(t),auth:{creds:e.creds,keys:zt.makeCacheableSignalKeyStore(e.keys,i.logger)},shouldIgnoreJid:()=>false,patchMessageBeforeSending:t=>t,getMessage:async t=>t?.remoteJid?await a.db("messages").query(t.remoteJid).where("key.id","=",t.id).first():void 0});var tt=a=>{if(a)try{a.ev?.removeAllListeners(),a.end?.(new Error("Cleanup"));}catch{}},oe=async a=>{let e=`.session/${a}/auth/keys.json`;try{let t=await F.promises.readFile(e,"utf-8"),n=JSON.parse(t),o=["sender-key:","session:"],s={},r=!1;for(let[c,l]of Object.entries(n))o.some(k=>c.startsWith(k))?r=!0:s[c]=l;r&&(await F.promises.writeFile(e,JSON.stringify(s,null,2)),i.spinner.success(" Session keys repaired successfully"));}catch{i.spinner.warn(" Could not repair session keys, will re-negotiate");}},st=()=>{let a=i.get("socket");return a?.end?a:null};var nt=async a=>{let e=st();e&&tt(e);let t=`.session/${a.options.session}`;console.info=()=>{};let{state:n,saveCreds:o}=await Ye(t),s=Xe(a,n),r=zt__default.default(s);r.ev.on("creds.update",o),i.set("socket",r);};var h=a=>a,rt=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(a){throw a}},it=async a=>{try{let e=`.session/${a}/auth/creds.json`;await $e__default.default.unlink(e);}catch(e){throw i.spinner.error(`Failed to remove auth creds for session "${a}"!`),e}},E=(a="")=>{if(!a?.length)return null;let e=a.replace(/\u202E(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/\u202D(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/[\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/gu,"").replace(/[\u200B\u200C\u200D\uFEFF]/gu,"").replace(/[\u00AD\u034F\u115F\u1160\u17B4\u17B5\u180B-\u180E]/gu,"").replace(/[\u2060-\u2064\u206A-\u206F]/gu,"").replace(/[\u2800\uFFFC\uFFFD]/gu,"").replace(/[\uFE00-\uFE0F]/gu,"").split("").map(t=>ot__default.default.nfkd(t)).join("").replace(/[\u0300-\u036F]/gu,"").replace(/[\u1AB0-\u1AFF]/gu,"").replace(/[\u1DC0-\u1DFF]/gu,"").replace(/[\u20D0-\u20FF]/gu,"").replace(/[\uFE20-\uFE2F]/gu,"").replace(/[\p{Cc}]/gu,"").replace(/[\p{Cf}]/gu,"").replace(/[\p{Co}]/gu,"").replace(/[\p{Cn}]/gu,"").replace(/[\p{Cs}]/gu,"").replace(/[\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]/gu," ").replace(/[\u2028\u2029]/gu," ").replace(/[\t\r\n\f\v]/g," ").split("").map(t=>ot__default.default.nfkc(t)).join("").normalize("NFC").replace(/\s+/g," ").trim();return e.length?e:null};var v=(a,e="lime")=>Array.isArray(e)?at__default.default(e)(a):at__default.default([e,e])(a),Ne=a=>{try{return JSON.parse(a)}catch{return x__default.default.attempt(()=>JSON.parse(JSON.stringify(a)||"{}"))}},H=a=>{try{return JSON.stringify(a)}catch{let e=x__default.default.attempt(()=>JSON.stringify(Ne(a)||"{}"));return x__default.default.isError(e)?"{}":e}},An=(a="")=>x__default.default.shuffle(a).join(""),Z=(a="",e="")=>a?x__default.default.includes(a.toLowerCase(),e.toLowerCase()):null,ct=(a="")=>a?x__default.default.castArray(a.match(zt.URL_REGEX)||[]):[],In=a=>a[Math.floor(Math.random()*a.length)],O=(a,e)=>{let t=o=>!!(o==null||typeof o=="string"&&o.trim()===""||Array.isArray(o)&&o.length===0||typeof o=="object"&&Object.keys(o).length===0),n=(o,s)=>{if(!o||typeof o!="object")return;let r=o,c=s.split(".");for(let l of c){let p=l.match(/^(.+?)\[(\d+)\]$/);if(p){let[,k,M]=p;r=r?.[k]?.[parseInt(M,10)];}else r=r?.[l];if(t(r))return}return r};if(!(!Array.isArray(a)||a.length===0)&&!(!Array.isArray(e)||e.length===0)){for(let o of a)if(!(!o||typeof o!="object"))for(let s of e){let r=n(o,s);if(!t(r))return r}}},Rn=(a,e)=>{let t=x__default.default.castArray(e),n=(r,c)=>x__default.default.every(c,(l,p)=>r?.[p]===l),o=(r,c)=>x__default.default.some(c,(l,p)=>r?.[p]===l),s=r=>x__default.default.isArray(r)?x__default.default.find(r,s)??r:x__default.default.isObject(r)?x__default.default.find(t,p=>n(r,p))||x__default.default.find(t,p=>o(r,p))?r:x__default.default.find(x__default.default.values(r),s)??r:null;return s(a)},En=(a,e,t)=>new Proxy(a,{apply(n,o,s){e?.(s);let r=Reflect.apply(n,o,s);return t?t(r,s):r}});var j=a=>{let e;Array.isArray(a)?e=a.join("|"):typeof a=="string"?e=a:e=String(a);let t=2166136261,n=e.length;for(let o=0;o<n;o++)t^=e.charCodeAt(o),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return "Z4D3FC"+(t>>>0).toString(16).padStart(8,"0").toUpperCase()},lt=(a="")=>{if(!a)return [];let e=new Set;for(let t of a.matchAll(/@(\d+)/g))e.add(t[1]);return x__default.default.toArray(e)},Fe=(a="")=>{if(!a)return [];let e=new Set;for(let t of a.matchAll(/@(\d+)/g))t[1].length<=15&&e.add(t[1]);return x__default.default.flatMap([...e],t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},Nn=a=>x__default.default.isEmpty(a)?[]:x__default.default.map([...a],e=>`${e}@s.whatsapp.net`),pt=a=>x__default.default.omit(a,["url","contextInfo","fileSha256","fileEncSha256","mediaKey","directPath","waveform","thumbnail","jpegThumbnail","thumbnailEncSha256","thumbnailSha256","thumbnailDirectPath","firstFrameSidecar","streamingSidecar","scansSidecar","callKey","message","key","midQualityFileSha256","historySyncNotification","appStateSyncKeyShare","appStateSyncKeyRequest","initialSecurityNotificationSettingSync","appStateFatalExceptionNotification","disappearingMode","peerDataOperationRequestMessage","peerDataOperationRequestResponseMessage","botFeedbackMessage"]),re=a=>{if(!a)return {leaf:void 0,chain:[]};let e=zt.extractMessageContent(a)||a,t=[];for(;e&&typeof e=="object";){let n=zt.getContentType(e);if(!n)break;t.push(n);let o=e[n];if(!o||typeof o!="object"){e=o;break}e=o;}return {leaf:e,chain:t}},W=a=>Number(a?.split("@")[0]);var ut=async(a=false)=>{if(!a)try{let e=(await import('@ffmpeg-installer/ffmpeg')).default,t=(await import('@ffprobe-installer/ffprobe')).default;Y__default.default.setFfmpegPath(e.path),Y__default.default.setFfprobePath(t.path);}catch{}},y={OPUS:{CODEC:"libopus",CHANNELS:1,FREQUENCY:48e3,BITRATE:"48k",FORMAT:"ogg"},THUMBNAIL:{SIZE:100,QUALITY:50,TIMESTAMP:"10%"},STICKER:{SIZE:512,MAX_DURATION:10,FPS:15,DEFAULT_QUALITY:80,COMPRESSION_LEVEL:6},MIME:{AUDIO:"audio/",VIDEO:"video/",IMAGE:"image/",GIF:"image/gif",MP4:"video/mp4"}},w=class{static generateUniqueId(){return `${Date.now()}_${Math.random().toString(36).slice(2,11)}`}static createTempPath(e,t){return Le__namespace.default.join(os$1.tmpdir(),`${e}_${this.generateUniqueId()}.${t}`)}static async cleanup(e){await Promise.allSettled(e.map(t=>$e__default.default.unlink(t)));}static async safeReadFile(e){try{return await $e__default.default.readFile(e)}catch{throw new Error(`Failed to read file: ${e}`)}}static async safeWriteFile(e,t){try{await $e__default.default.writeFile(e,t);}catch{throw new Error(`Failed to write file: ${e}`)}}},C=class{static async toBuffer(e){if(x__default.default.isBuffer(e))return e;if(x__default.default.isArrayBuffer(e))return Buffer.from(e);if(x__default.default.isString(e))return this.fromString(e);throw new Error("Invalid input type: expected string, Buffer, or ArrayBuffer")}static async fromString(e){return e.startsWith("http://")||e.startsWith("https://")?this.fromUrl(e):Buffer.from(e,"base64")}static async fromUrl(e){try{let t=await fetch(e);if(!t.ok)throw new Error(`HTTP ${t.status}: ${t.statusText}`);let n=await t.arrayBuffer();return Buffer.from(n)}catch(t){throw new Error(`Failed to fetch URL: ${t.message}`)}}},N=class{static validate(e,t){if(!e?.mime?.startsWith(t))throw new Error(`Invalid file type: expected ${t}*, got ${e?.mime||"unknown"}`)}static isMedia(e){return e.startsWith(y.MIME.IMAGE)||e.startsWith(y.MIME.VIDEO)}static isAnimated(e){return e===y.MIME.GIF||e.startsWith(y.MIME.VIDEO)}},U=class{static async process(e){return new Promise((t,n)=>{let o=Y__default.default(e.input).output(e.output);for(let s=0;s<e.options.length;s++){let r=e.options[s];r.startsWith("-")&&s+1<e.options.length&&!e.options[s+1].startsWith("-")?(o.outputOptions(r,e.options[s+1]),s++):o.outputOptions(r);}o.on("end",async()=>{try{await e.onEnd(),t();}catch(s){n(s);}}).on("error",async s=>{try{await e.onError(s);}finally{n(s);}}).run();})}static async getDuration(e){return new Promise((t,n)=>{Y__default.default.ffprobe(e,(o,s)=>{if(o)return n(o);t(s.format.duration||0);});})}},ae=class{static async getWaAudio(e,t="opus"){let n=await C.toBuffer(e),o=await fileType.fileTypeFromBuffer(n);N.validate(o,y.MIME.AUDIO);let s=w.createTempPath("audio_in","wav"),r=t==="opus"?"ogg":"mp3",c=w.createTempPath("audio_out",r);await w.safeWriteFile(s,n);let l;try{let p=t==="opus"?["-vn","-c:a","libopus","-b:a","48k","-ac","1","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","opus"]:["-vn","-c:a","libmp3lame","-b:a","128k","-ac","2","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","mp3"];return await U.process({input:s,output:c,options:p,onEnd:async()=>{l=await w.safeReadFile(c);},onError:async()=>{await w.cleanup([s,c]);}}),await w.cleanup([s,c]),l}catch(p){throw await w.cleanup([s,c]),new Error(`${t.toUpperCase()} conversion failed: ${p.message}`)}}},R=class{static async getThumbnail(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);N.validate(n,y.MIME.VIDEO);let o=w.createTempPath("video","mp4"),s=w.createTempPath("thumb","jpg");await w.safeWriteFile(o,t);let r;try{return await new Promise((c,l)=>{Y__default.default(o).screenshots({timestamps:[y.THUMBNAIL.TIMESTAMP],filename:Le__namespace.default.basename(s),folder:Le__namespace.default.dirname(s),size:`${y.THUMBNAIL.SIZE}x${y.THUMBNAIL.SIZE}`,quality:y.THUMBNAIL.QUALITY}).on("end",async()=>{try{r=(await w.safeReadFile(s)).toString("base64"),c();}catch(p){l(p);}}).on("error",l);}),await w.cleanup([o,s]),r}catch(c){throw await w.cleanup([o,s]),new Error(`Thumbnail generation failed: ${c.message}`)}}static async getDuration(e){return U.getDuration(e)}static async getWaVideo(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);N.validate(n,y.MIME.VIDEO);let o=w.createTempPath("video_in","mp4"),s=w.createTempPath("video_out","mp4");await w.safeWriteFile(o,t);let r;try{let c=["-c:v","libx264","-preset","ultrafast","-crf","28","-c:a","aac","-b:a","128k","-movflags","+faststart","-pix_fmt","yuv420p","-f","mp4"];return await U.process({input:o,output:s,options:c,onEnd:async()=>{r=await w.safeReadFile(s);},onError:async()=>{await w.cleanup([o,s]);}}),await w.cleanup([o,s]),r}catch(c){throw await w.cleanup([o,s]),new Error(`Video re-encoding failed: ${c.message}`)}}},z=class{static async getThumbnail(e){return (await((await fileType.fileTypeFromBuffer(e)).mime===y.MIME.GIF?ie__default.default(e,{animated:false}):ie__default.default(e)).resize(y.THUMBNAIL.SIZE,y.THUMBNAIL.SIZE,{fit:"cover"}).jpeg({quality:y.THUMBNAIL.QUALITY}).toBuffer()).toString("base64")}static async resizeForSticker(e,t,n="default"){let o=ie__default.default(e).resize(y.STICKER.SIZE,y.STICKER.SIZE,{fit:"cover",background:{r:0,g:0,b:0,alpha:0}});if(n!=="default"){let s=y.STICKER.SIZE,r;switch(n){case "rounded":r=`<svg width="${s}" height="${s}"><rect x="0" y="0" width="${s}" height="${s}" rx="${s/10}" ry="${s/10}" fill="white"/></svg>`;break;case "circle":r=`<svg width="${s}" height="${s}"><circle cx="${s/2}" cy="${s/2}" r="${s/2}" fill="white"/></svg>`;break;case "oval":r=`<svg width="${s}" height="${s}"><ellipse cx="${s/2}" cy="${s/2}" rx="${s/2}" ry="${s/3}" fill="white"/></svg>`;break;default:r="";}r&&(o=o.composite([{input:Buffer.from(r),blend:"dest-in"}]));}return o.webp({quality:t}).toBuffer()}static async getWaImage(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);if(!n||!n.mime.startsWith(y.MIME.IMAGE))throw new Error("Invalid image type");return n.mime==="image/webp"?await ie__default.default(t).jpeg().toBuffer():t}},X=class{static async getThumbnail(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);if(!n||!N.isMedia(n.mime))throw new Error("Invalid media type: expected image or video");return n.mime.startsWith(y.MIME.VIDEO)?R.getThumbnail(e):z.getThumbnail(t)}},ce=class{static createExifMetadata(e){let t={"sticker-pack-id":j(Date.now().toString()),"sticker-pack-name":e?.packageName||"Zaileys Library","sticker-pack-publisher":e?.authorName||"https://github.com/zeative/zaileys",emojis:["\u{1F913}"],"android-app-store-link":"https://play.google.com/store/apps/details?id=com.marsvard.stickermakerforwhatsapp","ios-app-store-link":"https://itunes.apple.com/app/sticker-maker-studio/id1443326857"},n=Buffer.from([73,73,42,0,8,0,0,0,1,0,65,87,7,0,0,0,0,0,22,0,0,0]),o=Buffer.from(JSON.stringify(t),"utf8"),s=Buffer.concat([n,o]);return s.writeUIntLE(o.length,14,4),s}static async processAnimated(e,t,n){let o=this.getExtension(t),s=w.createTempPath("sticker_in",o),r=w.createTempPath("sticker_out","webp");await w.safeWriteFile(s,e);let c=y.STICKER.MAX_DURATION;try{let M=await R.getDuration(s);c=h(Math.min(M,y.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",y.STICKER.MAX_DURATION);}let l=`scale=${y.STICKER.SIZE}:${y.STICKER.SIZE}:force_original_aspect_ratio=increase,crop=${y.STICKER.SIZE}:${y.STICKER.SIZE},fps=${y.STICKER.FPS},format=rgba`,p=Math.max(1,Math.min(100,100-n)),k;try{return await U.process({input:s,output:r,options:["-vcodec libwebp",`-vf ${l}`,`-q:v ${p}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${c}`,`-compression_level ${y.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{k=await w.safeReadFile(r);},onError:async()=>{await w.cleanup([s,r]);}}),await w.cleanup([s,r]),k}catch(M){throw await w.cleanup([s,r]),new Error(`Animated sticker processing failed: ${M.message}`)}}static getExtension(e){return e===y.MIME.GIF?"gif":e.startsWith(y.MIME.VIDEO)?"mp4":"tmp"}static async create(e,t){try{let n=await C.toBuffer(e),o=await fileType.fileTypeFromBuffer(n);if(!o)throw new Error("Unable to detect file type");let s=t?.quality||y.STICKER.DEFAULT_QUALITY,r=N.isAnimated(o.mime),c=t?.shape||"default",l=r?await this.processAnimated(n,o.mime,s):await z.resizeForSticker(n,s,c),p=this.createExifMetadata(t),k=new Kt__default.default.Image;await k.load(l),k.exif=p;let M=await k.save(null);return Buffer.isBuffer(M)?M:Buffer.from(M)}catch(n){throw new Error(`Sticker creation failed: ${n.message||n}`)}}},le=class{static async create(e){try{let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);if(!n)throw new Error("Unable to detect file type");return {document:t,mimetype:n.mime,fileName:j(Date.now().toString()),jpegThumbnail:await X.getThumbnail(t)}}catch(t){throw new Error(`Document creation failed: ${t.message||t}`)}}},pe=C.toBuffer.bind(C),mt=ae.getWaAudio.bind(ae),dt=z.getWaImage.bind(z),ft=R.getWaVideo.bind(R),Hn=R.getThumbnail.bind(R),Zn=R.getDuration.bind(R),je=X.getThumbnail.bind(X),gt=ce.create.bind(ce),yt=le.create.bind(le);var ue=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=i.get("socket");e.ev.on("call",async t=>{for(let n of t){let o=await this.parse(n);o&&(await this.client.middleware.run({calls:o}),await this.client.plugins.execute(this.client,{messages:o}),i.events.emit("calls",o),this.client.options?.autoRejectCall&&await e.rejectCall(o.callId,o.callerId));}});}async parse(e){let t=i.get("socket"),n={};return n.callId=e.id,n.callerId=zt.jidNormalizedUser(e.from),n.callerName=await this.client.getRoomName(n.callerId),n.roomId=zt.jidNormalizedUser(e.chatId),n.roomName=E(t?.user?.name||t?.user?.verifiedName),n.date=e.date,n.offline=e.offline,n.status=e.status,n.isVideo=!!e.isVideo,n.isGroup=!!e.isGroup,this.client.logs.call(n),n}};var wt=a=>{Yt__default.default.generate(a,{small:true},e=>{console.log(e);});},kt=async()=>{console.clear(),i.spinner.start(" Checking for updates...");let a="2.1.7",e="zaadevofc",t=await rt(),n=a===t;i.spinner.stop();let o="Zaileys",s=`
|
|
3
|
-
|
|
4
|
-
`,c=n?"lime":"orange",l=await Zt__default.default.text(o),p=at.cristal(l);console.log(p),console.log(v(s,"dimgray")),console.log(v(r,c));};var fe=class{constructor(e){this.client=e;this.initialize();}async initialize(){i.spinner.start(" Initializing connection...");let e=i.get("socket"),t={},n=async()=>{t.status="reload",i.spinner.warn(" Connection lost. Attempting auto-reload..."),await this.client.initialize();},o=async()=>{await zt.delay(3e3),i.spinner.warn(" Invalid session. Attempting auto cleaning creds..."),await zt.delay(3e3),await it(this.client.options.session),await n();};if(this.client.options.authType==="pairing"&&this.client.options.phoneNumber&&!e.authState.creds.registered){i.spinner.update(" Generating pairing code..."),await zt.delay(3500);try{t.authTimeout=Date.now()+6e4;let s=new Date(t.authTimeout).toLocaleTimeString(),r=await e.requestPairingCode(this.client.options.phoneNumber.toString());i.spinner.warn(` Pairing expired at ${at.cristal(s)}`),i.spinner.warn(` Pairing code: ${r}`),t.code=r;}catch{await o();}}e.ev.on("connection.update",async s=>{let{connection:r,lastDisconnect:c,qr:l}=s;if(t.status=r||"connecting",t.authType=this.client.options.authType,i.spinner.update(" Connection status: "+at.cristal(t.status)),this.client.options.authType==="qr"&&l){t.authTimeout=Date.now()+6e4;let p=new Date(t.authTimeout).toLocaleTimeString();i.spinner.warn(" Please scan the QR code..."),i.spinner.warn(` Qr code expired at ${at.cristal(p)}`),wt(l),t.qr=l;return}if(r==="close"){let p=h(c?.error)?.output?.statusCode,k=c?.error?.message||"",M=typeof p=="number"&&p!==zt.DisconnectReason.loggedOut,$=p===515||k.toLowerCase().includes("prekey");if(i.spinner.error(` [${p} - Closed] ${k}`),$){i.spinner.warn(" Session key mismatch detected, attempting repair..."),await oe(this.client.options.session),await zt.delay(1e3),await n();return}if(p===401||p===405){i.spinner.warn(" Session may be used by another device/instance."),i.spinner.warn(" If you want to connect here, close the other connection first."),i.spinner.warn(` Or use a different session name in your Client options.
|
|
5
|
-
`);return}if(p===500){i.spinner.error(" Server error occurred, attempting reconnect..."),await n();return}M&&await n();}if(r==="open")if(e.user?.id){let p=zt.jidNormalizedUser(e.user.id).split("@")[0],k=e.user.name||e.user.verifiedName;i.spinner.success(` Connected as ${at.cristal(k||p)}`);}else i.spinner.success(" Connected!");i.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:s})=>{t.status="syncing",t.syncProgress=s,i.spinner.start(" Syncing messages history..."),s&&i.spinner.update(` Syncing messages history ${s+"%"}`),s==100&&(i.spinner.success(" Syncing messages history completed!"),t.syncCompleted=true),i.events.emit("connection",t);});}};var bt={text:"text",conversation:"text",imageMessage:"image",contactMessage:"contact",locationMessage:"location",documentMessage:"document",audioMessage:"audio",videoMessage:"video",protocolMessage:"protocol",contactsArrayMessage:"contacts",highlyStructuredMessage:"highlyStructured",sendPaymentMessage:"sendPayment",liveLocationMessage:"location",requestPaymentMessage:"requestPayment",groupStatusMentionMessage:"groupStatusMention",statusMentionMessage:"statusMention",albumMessage:"album",declinePaymentRequestMessage:"declinePaymentRequest",cancelPaymentRequestMessage:"cancelPaymentRequest",templateMessage:"template",stickerMessage:"sticker",groupInviteMessage:"groupInvite",templateButtonReplyMessage:"buttons",productMessage:"product",deviceSentMessage:"deviceSent",listMessage:"lists",viewOnceMessage:"viewOnce",orderMessage:"order",listResponseMessage:"lists",ephemeralMessage:"ephemeral",invoiceMessage:"invoice",buttonsMessage:"buttons",buttonsResponseMessage:"buttons",paymentInviteMessage:"paymentInvite",interactiveMessage:"interactive",reactionMessage:"reaction",stickerSyncRmrMessage:"sticker",questionMessage:"question",nativeFlowResponseMessage:"lists",interactiveResponseMessage:"interactiveResponse",pollCreationMessage:"pollCreation",pollCreationMessageKey:"pollUpdate",pollUpdateMessage:"pollUpdate",keepInChatMessage:"keepInChat",documentWithCaptionMessage:"document",requestPhoneNumberMessage:"requestPhoneNumber",viewOnceMessageV2:"viewOnce",encReactionMessage:"reaction",editedMessage:"text",viewOnceMessageV2Extension:"viewOnce",pollCreationMessageV2:"pollCreation",scheduledCallCreationMessage:"scheduledCallCreation",groupMentionedMessage:"groupMentioned",pinInChatMessage:"pinInChat",pollCreationMessageV3:"pollCreation",scheduledCallEditMessage:"scheduledCallEdit",ptvMessage:"ptv",botInvokeMessage:"botInvoke",callLogMesssage:"callLog",encCommentMessage:"encComment",bcallMessage:"bcall",lottieStickerMessage:"lottieSticker",eventMessage:"event",commentMessage:"comment",newsletterAdminInviteMessage:"text",extendedTextMessageWithParentKey:"text",extendedTextMessage:"text",placeholderMessage:"placeholder",encEventUpdateMessage:"encEventUpdate"},Ue={whatsapp:"0@s.whatsapp.net",meta:"13135550002@s.whatsapp.net",chatgpt:"18002428478@s.whatsapp.net",copilot:"18772241042@s.whatsapp.net",instagram:"447723442971@s.whatsapp.net",tiktok:"6285574670498@s.whatsapp.net"};var ge=class{constructor(e){this.client=e;this.limiter=new rateLimiterFlexible.RateLimiterMemory({points:this.client.options.limiter?.maxMessages,duration:this.client.options.limiter?.durationMs/1e3});}limiter;async isSpam(e){try{return await this.limiter.consume(e),!1}catch{return true}}};var ye=class{constructor(e){this.client=e;this.limiter=new ge(e),this.initialize();}limiter;maxReplies=3;async initialize(){let e=i.get("socket");if(!e?.ev){console.warn("\u26A0\uFE0F [Messages] Socket or socket.ev is not available during initialization");return}e.ev.on("messages.upsert",async({messages:t,type:n})=>{try{if(n!=="notify"&&n!=="append")return;for(let o of t)try{let s=await this.parse(o);s&&(this.client.collector.push(s)||(await this.client.middleware.run({messages:s}),await this.client.plugins.execute(this.client,{messages:s}),i.set("message",s),i.events.emit("messages",s)),this.client.options.autoRead&&await e.readMessages([s.message().key]));}catch(s){console.error(`\u274C [Messages] Error processing message ${o.key?.id}:`,s);}}catch(o){console.error("\u274C [Messages] Critical error in upsert listener:",o);}});}async parse(e,t){if(e?.category==="peer"||!e?.message||!e?.key?.id||e?.messageStubType||e?.messageStubParameters?.length||e.message?.protocolMessage?.peerDataOperationRequestResponseMessage)return;let n=e,o=i.get("socket"),s={},r=re(e.message),c=r.chain.at(-1),l=r.leaf;if(l?.message&&(r=re(l.message),c=r.chain.at(-1),l=r.leaf),s.uniqueId=null,s.channelId=null,s.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,s.chatType=bt[c],!s.chatType)return;s.receiverLid=zt.jidNormalizedUser(o?.user?.lid||""),s.receiverId=zt.jidNormalizedUser(o?.user?.id||""),s.receiverName=E(o?.user?.name||o?.user?.verifiedName),s.roomId=zt.jidNormalizedUser(e?.key?.remoteJid);let p=l?.type===0,k=l?.type===1,M=l?.type===2,$=s.roomId?.includes("@newsletter"),Ee=!!e?.message?.questionMessage,q=e?.key?.fromMe||false;if(q&&this.client.options.ignoreMe&&t!=="replied")return;let Pe=l?.key?.id;if(p||k||M){let T=await this.client.db("messages").query(s.roomId).where("key.id","=",Pe).first();if(!T)return;e=T,r=re(e.message),c=r.chain.at(-1),l=r.leaf;}if(s.roomName=await this.client.getRoomName(s.roomId),s.senderLid=zt.jidNormalizedUser(e?.key?.participant||e?.key?.remoteJid)||null,s.senderId=zt.jidNormalizedUser(e?.key?.participantAlt||e?.key?.remoteJidAlt)||null,s.senderName=E(e?.pushName||e?.verifiedBizName),s.senderDevice=zt.getDevice(s.chatId||""),s.channelId=j([s.roomId,s.senderId]),s.uniqueId=j([s.channelId,s.chatId]),s.timestamp=Number(e?.messageTimestamp)*1e3,$){let T=await o.newsletterMetadata("jid",s.roomId);s.roomName=h(T.thread_metadata.name)?.text,s.senderId=null,s.senderLid=null;}if(q&&(s.senderLid=zt.jidNormalizedUser(o.user.lid),s.senderId=s.receiverId,s.senderName=s.receiverName),s.text=l?.text||l?.caption||l?.name||l?.displayName||l?.conversation||l?.contentText||l?.selectedDisplayText||l||null,l?.name=="menu_options"&&(s.text=Ne(l?.paramsJson)?.id),s.text=E(s.text),s.mentions=lt(s.text),s.links=ct(s.text||""),s.isBot=s.chatId.startsWith("BAE5")||s.chatId.startsWith("3EB0")||s.chatId.startsWith("Z4D3FC"),s.isFromMe=q,s.isPrefix=s.text?.startsWith(this.client.options?.prefix)||false,s.isTagMe=s.mentions?.includes(s.receiverId.split("@")[0])||s.mentions?.includes(s.receiverLid.split("@")[0]),s.isStatusMention=!!e?.message?.statusMentionMessage,s.isGroupStatusMention=!!e?.message?.groupStatusMentionMessage,s.isHideTags=false,x__default.default.isEmpty(s.text)&&l?.contextInfo?.mentionedJid?.length&&(s.isHideTags=true),s.isSpam=await this.limiter.isSpam(s.channelId),s.isPrefix&&(s.text=s.text.replace(new RegExp(`^${this.client.options?.prefix}`),"")),s.isGroup=s.roomId?.includes("@g.us"),s.isNewsletter=$,s.isQuestion=Ee,s.isStory=s.roomId?.includes("@broadcast"),!s.isGroup&&!s.roomName&&(s.roomName=s.senderName),s.isViewOnce=false,s.isEdited=!!Z(H(r),"editedMessage"),s.isDeleted=p,s.isPinned=k,s.isUnPinned=M,s.isBroadcast=!!e?.broadcast,s.isEphemeral=!!Z(H(l?.contextInfo),"ephemeralSettingTimestamp"),s.isForwarded=!!Z(H(l?.contextInfo),"forwardingScore"),s.citation=null,this.client.options.citation){s.citation=s.citation||{};let T=this.client.options.citation;for(let P of Object.keys(T)){let We=T[P];s.citation[P]=async()=>{let De=await We(),ne=[W(s.roomId),W(s.senderLid),W(s.senderId)];return !!x__default.default.intersection(ne,De).length};}}s.chatType!=="text"&&(s.media={...pt(l),buffer:()=>zt.downloadMediaMessage(e,"buffer",{}),stream:()=>zt.downloadMediaMessage(e,"stream",{})}),s.isStatusMention&&(s.chatType="statusMention"),s.isGroupStatusMention&&(s.chatType="groupStatusMention"),s.message=()=>n,s.replied=null;let _=l?.contextInfo?.quotedMessage,G=Z(H(_),"viewOnce"),J=l?.contextInfo?.stanzaId,se=l?.contextInfo?.participant;if(_&&this.maxReplies){this.maxReplies--;let T=await this.client.db("messages").query(G?se:s.roomId).where("key.id","=",J).first(),P;G?P={...T,message:_}:P=T,s.replied=await this.parse(P,"replied"),s.replied&&(s.replied.isViewOnce=true),this.maxReplies=3;}return t!="replied"&&this.client.logs.message(s),s}};var he=class{constructor(e){this.client=e;this.connection=new fe(e),this.messages=new ye(e),this.calls=new ue(e),this.initialize();}connection;messages;calls;async initialize(){let e=i.get("socket");e.ev.on("groups.update",async([t])=>{let n=await e.groupMetadata(t.id);i.groupCache.set(t.id,n);}),e.ev.on("group-participants.update",async t=>{let n=await e.groupMetadata(t.id);i.groupCache.set(t.id,n);}),e?.ev.on("messaging-history.set",async t=>{let{chats:n,contacts:o,messages:s}=t;for(let r of n)await this.client.db("chats").set(r.id,r);for(let r of o)await this.client.db("contacts").set(r.id,r);for(let r of s){if(r?.category==="peer"||!r.message&&!r.key.isViewOnce&&(!r.message?.groupStatusMentionMessage||!r.message?.statusMentionMessage)||r.message?.protocolMessage&&!r.message?.protocolMessage?.memberLabel)continue;let c=Number(r.messageTimestamp)*1e3;Date.now()-c>1440*60*1e3||await this.client.db("messages").upsert(r.key.remoteJid,r,"key.id");}}),e?.ev.on("messages.upsert",async({messages:t})=>{for(let n of t){if(n?.category==="peer"||!n.message&&!n.key.isViewOnce||n.message?.protocolMessage&&!n.message?.protocolMessage?.memberLabel)continue;let o=Number(n.messageTimestamp)*1e3;if(Date.now()-o>1440*60*1e3)continue;O([n?.key],["participant","remoteJid"])||null;await this.client.db("messages").upsert(n.key.remoteJid,n,"key.id");}}),e?.ev.on("chats.upsert",async t=>{for(let n of t)await this.client.db("chats").upsert(n.id,n,"id");}),e?.ev.on("contacts.upsert",async t=>{for(let n of t)await this.client.db("contacts").upsert(n.id,n,"id");});}};var ee=(a,e)=>{let t=a.safeParse(e);if(t.success)return t.data;throw console.error(t.error),"Invalid data"};var ns=u__default.default.object({type:u__default.default.literal("quick_reply"),text:u__default.default.string()}),os=u__default.default.object({type:u__default.default.literal("cta_url"),url:u__default.default.url(),text:u__default.default.string()}),rs=u__default.default.object({type:u__default.default.literal("cta_copy"),copy:u__default.default.string(),text:u__default.default.string()}),is=u__default.default.object({type:u__default.default.literal("cta_call"),text:u__default.default.string(),phoneNumber:u__default.default.string()}),as=u__default.default.object({type:u__default.default.literal("single_select"),text:u__default.default.string(),section:u__default.default.object({title:u__default.default.string(),highlight_label:u__default.default.string().optional(),rows:u__default.default.object({id:u__default.default.string(),title:u__default.default.string(),header:u__default.default.string().optional(),description:u__default.default.string().optional()}).array()}).array()}),cs=u__default.default.object({type:u__default.default.literal("interactive"),footer:u__default.default.string().optional(),data:u__default.default.union([ns,os,rs,is,as]).array()}),ls=u__default.default.object({type:u__default.default.literal("simple"),footer:u__default.default.string().optional(),data:u__default.default.object({id:u__default.default.string(),text:u__default.default.string()}).array()}),xt=u__default.default.union([ls,cs]);var ps=u.z.object({maxMessages:u.z.number().default(20),durationMs:u.z.number().default(1e4)}).optional(),us=u.z.record(u.z.string(),u.z.function({output:u.z.promise(u.z.array(u.z.number()))})).optional(),ms=u.z.object({provider:u.z.enum(["whatsapp","meta","chatgpt","copilot","instagram","tiktok"]).or(u.z.number())}).optional(),ze=u.z.enum(["default","rounded","circle","oval"]).default("default"),ds=u.z.object({packageName:u.z.string().optional(),authorName:u.z.string().optional(),quality:u.z.number().optional(),shape:ze.optional()}).optional(),St=u.z.object({session:u.z.string().default("zaileys").optional(),prefix:u.z.string().optional(),ignoreMe:u.z.boolean().default(true).optional(),showLogs:u.z.boolean().default(true).optional(),syncFullHistory:u.z.boolean().default(true).optional(),disableFFmpeg:u.z.boolean().default(false).optional(),cleanupDays:u.z.number().default(7).optional(),autoMarkAI:u.z.boolean().default(true).optional(),autoMentions:u.z.boolean().default(true).optional(),autoOnline:u.z.boolean().default(true).optional(),autoRead:u.z.boolean().default(true).optional(),autoPresence:u.z.boolean().default(true).optional(),autoRejectCall:u.z.boolean().default(true).optional(),limiter:ps,citation:us,fakeReply:ms,sticker:ds}),fs=u.z.object({authType:u.z.literal("pairing"),phoneNumber:u.z.number()}),gs=u.z.object({authType:u.z.literal("qr")}),Tt=u.z.union([fs.extend(St.shape),gs.extend(St.shape)]),ar=u.z.enum(["connection","messages","calls"]);var te=u__default.default.url().or(u__default.default.base64()).or(u__default.default.instanceof(Buffer)),Ct=u__default.default.object({text:u__default.default.string()}).passthrough(),ys=u__default.default.object({image:te,caption:u__default.default.string().optional()}).passthrough(),hs=u__default.default.object({audio:te,caption:u__default.default.string().optional(),ptt:u__default.default.boolean().optional()}).passthrough(),ws=u__default.default.object({video:te,caption:u__default.default.string().optional(),ptv:u__default.default.boolean().optional()}).passthrough(),ks=u__default.default.object({sticker:te,shape:ze.optional(),caption:u__default.default.string().optional()}).passthrough(),bs=u__default.default.object({document:te,caption:u__default.default.string().optional(),fileName:u__default.default.string().optional()}).passthrough(),vs=u__default.default.object({location:u__default.default.object({latitude:u__default.default.number(),longitude:u__default.default.number(),url:u__default.default.url().optional(),title:u__default.default.string().optional(),footer:u__default.default.string().optional()}).optional()}).passthrough(),Ms=u__default.default.object({contacts:u__default.default.object({title:u__default.default.string().optional(),contacts:u__default.default.object({fullname:u__default.default.string(),phoneNumber:u__default.default.number(),organization:u__default.default.string().optional()}).array()})}).passthrough(),xs=u__default.default.object({poll:u__default.default.object({name:u__default.default.string(),answers:u__default.default.string().array(),isMultiple:u__default.default.boolean().default(false).optional()})}),At=u__default.default.object({replied:u__default.default.custom().optional(),isForwardedMany:u__default.default.boolean().optional(),isViewOnce:u__default.default.boolean().optional(),banner:u__default.default.custom().optional(),buttons:xt.optional()});u__default.default.enum(["forward","button","edit","delete"]);var Ss=u__default.default.union([Ct,ys,hs,ws,ks,bs,vs,Ms,xs]),It=u__default.default.string().or(u__default.default.intersection(Ss,At.omit({buttons:true}))),Rt=u__default.default.intersection(Ct,At.omit({banner:true}));var we=class{toNativeSimple(e){return e.map(({id:t,text:n})=>({name:"quick_reply",buttonParamsJson:JSON.stringify({display_text:n,id:t})}))}toNativeInteractive(e){let t={quick_reply:n=>({display_text:n.text,id:n.id}),cta_url:n=>({display_text:n.text,url:n.url,merchant_url:n.url}),cta_copy:n=>({display_text:n.text,id:n.id,copy_code:n.copy}),cta_call:n=>({display_text:n.text,phone_number:n.phoneNumber}),single_select:n=>({title:n.text,sections:n.section})};return e.map(n=>({name:n.type,buttonParamsJson:JSON.stringify(t[n.type](n))}))}build(e){let t=h(e).buttons,n=t?.data||[],s=t?.type=="simple"?this.toNativeSimple(n):this.toNativeInteractive(n);return {body:{text:h(e).text},footer:t.footer?{text:t.footer}:void 0,nativeFlowMessage:{buttons:s}}}async send(e,t,n){let o=i.get("socket"),s=o.authState?.creds?.me?.id||o.user?.id,r=this.build(t),c=zt.generateWAMessageFromContent(e,{interactiveMessage:r},{userJid:s,messageId:zt.generateMessageIDV2(s),...n});return await o.relayMessage(e,c.message,{messageId:c.key.id,...n,additionalNodes:[{tag:"biz",attrs:{},content:[{tag:"interactive",attrs:{type:"native_flow",v:"1"},content:[{tag:"native_flow",attrs:{v:"9",name:"mixed"}}]}]}]}),o.config?.emitOwnEvents&&!zt.isJidGroup(e)&&process.nextTick(()=>o.upsertMessage?.(c,"append")),c}};var ke=class{constructor(e){this.client=e;}async signal(e,t,n,o){n!="delete"&&(n=="button"?t=ee(Rt,t):t=ee(It,t));let s=i.get("socket"),r={},c={},l=x__default.default.isString(t),p=this.client.options?.fakeReply?.provider,k=this.client.options?.autoMentions,M=this.client.options?.autoPresence,$=x__default.default.has(t,"replied"),Ee=x__default.default.has(t,"banner"),q=x__default.default.has(t,"isViewOnce"),Pe=n=="button",_=x__default.default.has(t,"image"),G=x__default.default.has(t,"video"),J=x__default.default.has(t,"audio"),se=x__default.default.has(t,"sticker"),T=x__default.default.has(t,"document"),P=x__default.default.has(t,"location"),We=x__default.default.has(t,"contacts"),De=x__default.default.has(t,"poll"),ne=_||G||J||se||T,K=l?t:O([t],["text","caption"]);if(M&&(J?await s.sendPresenceUpdate("recording",e):await s.sendPresenceUpdate("composing",e)),k&&(r={...r,mentions:Fe(K),contextInfo:{mentionedJid:Fe(K)}}),$&&(c.quoted=h(t).replied,p&&(c.quoted.key.remoteJid=Ue[p],c.quoted.key.participant=Ue[p])),Ee&&(r={...r,contextInfo:{externalAdReply:h(t).banner}},r.contextInfo.externalAdReply.mediaType=1),q&&(r={...r,viewOnce:h(t)?.isViewOnce}),K&&(r={...r,text:K,caption:K},ne&&delete h(r).text),ne){let b=O([t],["image","video","audio","sticker","document"]);x__default.default.isString(b)?{}:b;if(_&&(r={...r,image:await dt(b),jpegThumbnail:await je(b)}),G){let I=h(t)?.ptv;r={...r,video:await ft(b),ptv:I,jpegThumbnail:await je(b)};}if(J){let I=h(t)?.ptt;r={...r,audio:await mt(b),ptt:I,mimetype:I?"audio/ogg; codecs=opus":"audio/mpeg"};}if(se){let I=h(t)?.shape;r={...r,sticker:await gt(b,{...this.client.options?.sticker,shape:I})};}if(T){let I=await yt(b);r={...r,fileName:h(t).fileName,...I};}}if(P){let b=h(t).location;r={...r,location:{degreesLatitude:b.latitude,degreesLongitude:b.longitude,url:b.url,address:b.footer,name:b.title}};}if(We){let b=h(t)?.contacts,He=b?.contacts.map(L=>{let I=["BEGIN:VCARD","VERSION:3.0",`FN:${L.fullname}`,`ORG:${L.organization||""}`,`TEL;type=CELL;type=VOICE;waid=${L.phoneNumber}:${L.phoneNumber}`,"END:VCARD"].join(`
|
|
6
|
-
`);return {displayName:L.fullname,vcard:I}});r={...r,contacts:{displayName:b?.title,contacts:He}};}if(De){let b=h(t)?.poll;r={...r,poll:{name:b.name,values:b.answers,selectableCount:b.isMultiple?1:0,toAnnouncementGroup:true}};}return n=="forward"&&(r={...r,contextInfo:{...h(r).contextInfo,isForwarded:true,forwardingScore:h(t).isForwardedMany?9999:1}}),n=="edit"&&(r={...r,edit:o?.key},await s.sendPresenceUpdate("paused",e)),n=="delete"&&(r={...r,delete:o?.key},await s.sendPresenceUpdate("paused",e)),Pe?await new we().send(e,t,c):await s.sendMessage(e,h(r),c)}async send(e,t){return await this.signal(e,t)}async forward(e,t){return await this.signal(e,t,"forward")}async button(e,t){return await this.signal(e,t,"button")}async edit(e,t){return await this.signal(e.key.remoteJid,t,"edit",e)}async delete(e){return x__default.default.isArray(e)?Promise.all(e.map(t=>this.signal(t.key.remoteJid,{},"delete",t))):await this.signal(e.key.remoteJid,{},"delete",e)}async presence(e,t){let n=i.get("socket"),o={typing:"composing",recording:"recording",online:"available",offline:"unavailable",paused:"paused"};return await n.sendPresenceUpdate(o[t],e)}async reaction(e,t){return await i.get("socket").sendMessage(e.key.remoteJid,{react:{text:t,key:e?.key}})}async memberLabel(e,t){return await i.get("socket").relayMessage(e,{protocolMessage:{type:30,memberLabel:{label:t,labelTimestamp:Date.now()}}},{})}};var Ve=class{constructor(e){this.client=e;}async create(e,t){return await i.get("socket").communityCreate(e,t)}async createGroup(e,t,n){return await i.get("socket").communityCreateGroup(e,t,n)}async leave(e){return await i.get("socket").communityLeave(e)}async metadata(e){return await i.get("socket").communityMetadata(e)}async update(e,t,n){let o=i.get("socket");switch(t){case "subject":return await o.communityUpdateSubject(e,n);case "description":return await o.communityUpdateDescription(e,n)}}async group(e,t,n){let o=i.get("socket");switch(t){case "link":if(!n)throw "Group JID is required for linking";return await o.communityLinkGroup(e,n);case "unlink":if(!n)throw "Group JID is required for unlinking";return await o.communityUnlinkGroup(e,n);case "linked":return await o.communityFetchLinkedGroups(e)}}async participants(e,t,n,o){let s=i.get("socket");switch(t){case "list":return await s.communityRequestParticipantsList(e);case "request-update":return await s.communityRequestParticipantsUpdate(e,o,h(n));case "update":if(!n||!o)throw "Action and participants are required for update";return await s.communityParticipantsUpdate(e,o,h(n));case "all":return await s.communityFetchAllParticipating()}}async invite(e,t,...n){let o=i.get("socket");switch(t){case "code":return await o.communityInviteCode(e);case "revoke":return await o.communityRevokeInvite(e);case "accept":return await o.communityAcceptInvite(e);case "info":return await o.communityGetInviteInfo(e);case "revokeV4":return await o.communityRevokeInviteV4(e,n[0]);case "acceptV4":return await o.communityAcceptInviteV4(e,n[0])}}async settings(e,t,n){let o=i.get("socket");switch(t){case "ephemeral":return await o.communityToggleEphemeral(e,n);case "update":return await o.communitySettingUpdate(e,n);case "memberAdd":return await o.communityMemberAddMode(e,n);case "approval":return await o.communityJoinApprovalMode(e,n)}}},be=class{constructor(e){this.mlient=e;this.community=new Ve(e);}community};var qe=class{constructor(e){this.client=e;}async create(e,t){return await i.get("socket").groupCreate(e,t)}async participant(e,t,n){return await i.get("socket").groupParticipantsUpdate(e,t,n)}async profile(e,t,n){let o=i.get("socket"),s=Buffer.isBuffer(t);switch(n){case "subject":if(!s)return await o.groupUpdateSubject(e,t);case "description":if(!s)return await o.groupUpdateDescription(e,t);case "picture":return await o.updateProfilePicture(e,pe(t))}}async setting(e,t){let n=i.get("socket");switch(t){case "open":return await n.groupSettingUpdate(e,"not_announcement");case "close":return await n.groupSettingUpdate(e,"announcement");case "locked":return await n.groupSettingUpdate(e,t);case "unlocked":return await n.groupSettingUpdate(e,t);case "all_member_add":return await n.groupMemberAddMode(e,t);case "admin_add":return await n.groupMemberAddMode(e,t)}}async leave(e){return await i.get("socket").groupLeave(e)}async inviteCode(e,t){let n=i.get("socket");switch(t){case "code":return await n.groupInviteCode(e);case "revoke":return await n.groupRevokeInvite(e);case "accept":return await n.groupAcceptInvite(e);case "info":return await n.groupGetInviteInfo(e)}}async metadata(e){let t=i.get("socket"),n=i.groupCache.get(e);if(n)return n;let o=await t.groupMetadata(e);return o&&i.groupCache.set(e,o),o}async requestJoin(e,t,n){let o=i.get("socket");switch(n){case "approve":return await o.groupRequestParticipantsUpdate(e,t,n);case "reject":return await o.groupRequestParticipantsUpdate(e,t,n)}}async requestJoinList(e){return await i.get("socket").groupRequestParticipantsList(e)}async fetchAllGroups(){return await i.get("socket").groupFetchAllParticipating()}async ephemeral(e,t){let n=i.get("socket"),o={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await n.groupToggleEphemeral(e,o[t])}},ve=class{constructor(e){this.glient=e;this.group=new qe(e);}group};var Ge=class{constructor(e){this.client=e;}async create(e,t){return await i.get("socket").newsletterCreate(e,t)}async action(e,t){let n=i.get("socket");switch(t){case "follow":return await n.newsletterFollow(e);case "unfollow":return await n.newsletterUnfollow(e);case "mute":return await n.newsletterMute(e);case "unmute":return await n.newsletterUnmute(e);}}async update(e,t,n){let o=i.get("socket"),s=Buffer.isBuffer(t);switch(n){case "name":if(!s)return await o.newsletterUpdateName(e,t);case "description":if(!s)return await o.newsletterUpdateDescription(e,t);case "picture":return await o.newsletterUpdatePicture(e,pe(t))}}async metadata(e,t){return await i.get("socket").newsletterMetadata(t,e)}async subscribers(e){return await i.get("socket").newsletterSubscribers(e)}async reaction(e,t,n){return await i.get("socket").newsletterReactMessage(e,t,n)}async fetchMessages(e,t,n,o){let s=i.get("socket"),r=n.getTime()/1e3,c=o.getTime()/1e3;return await s.newsletterFetchMessages(e,t,r,c)}async adminCount(e){return await i.get("socket").newsletterAdminCount(e)}async changeOwner(e,t){return await i.get("socket").newsletterChangeOwner(e,t)}async demote(e,t){return await i.get("socket").newsletterDemote(e,t)}async delete(e){return await i.get("socket").newsletterDelete(e)}async removePicture(e){return await i.get("socket").newsletterRemovePicture(e)}},Me=class{constructor(e){this.nlient=e;this.newsletter=new Ge(e);}newsletter};var Je=class{constructor(e){this.client=e;}async block(e){return await i.get("socket").updateBlockStatus(e,"block")}async unblock(e){return await i.get("socket").updateBlockStatus(e,"unblock")}async lastSeen(e){return await i.get("socket").updateLastSeenPrivacy(e)}async online(e){return await i.get("socket").updateOnlinePrivacy(e)}async picture(e){return await i.get("socket").updateProfilePicturePrivacy(e)}async status(e){return await i.get("socket").updateStatusPrivacy(e)}async readReceipt(e){return await i.get("socket").updateReadReceiptsPrivacy(e)}async groupsAdd(e){return await i.get("socket").updateGroupsAddPrivacy(e)}async ephemeral(e){let t=i.get("socket"),n={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await t.updateDefaultDisappearingMode(n[e])}async blocklist(){return await i.get("socket").fetchBlocklist()}async getSettings(){return await i.get("socket").fetchPrivacySettings(true)}},xe=class{constructor(e){this.plient=e;this.privacy=new Je(e);}privacy};var Hr=u__default.default.object({status:u__default.default.enum(["connecting","open","close","reload","syncing"]),authType:u__default.default.enum(["pairing","qr"]),authTimeout:u__default.default.number().optional(),syncProgress:u__default.default.number().optional(),syncCompleted:u__default.default.boolean().default(false).optional(),qr:u__default.default.string().optional(),code:u__default.default.string().optional()});var Rs=u__default.default.enum(["unknown","android","ios","desktop","web"]),Es=u__default.default.enum(["text","album","image","contact","location","document","audio","video","protocol","contacts","highlyStructured","sendPayment","requestPayment","groupStatusMention","statusMention","declinePaymentRequest","cancelPaymentRequest","template","sticker","groupInvite","product","deviceSent","lists","viewOnce","order","ephemeral","invoice","buttons","paymentInvite","interactive","reaction","sticker","interactiveResponse","pollCreation","pollUpdate","keepInChat","document","requestPhoneNumber","viewOnce","reaction","text","viewOnce","pollCreation","scheduledCallCreation","groupMentioned","pinInChat","pollCreation","scheduledCallEdit","ptv","botInvoke","callLog","encComment","bcall","lottieSticker","event","comment","placeholder","encEventUpdate"]),Et=u__default.default.object({channelId:u__default.default.string(),uniqueId:u__default.default.string(),chatId:u__default.default.string(),chatType:Es,receiverLid:u__default.default.string(),receiverId:u__default.default.string(),receiverName:u__default.default.string(),roomId:u__default.default.string(),roomName:u__default.default.string(),senderLid:u__default.default.string(),senderId:u__default.default.string(),senderName:u__default.default.string(),senderDevice:Rs,timestamp:u__default.default.number(),text:u__default.default.string().nullable(),mentions:u__default.default.string().array(),links:u__default.default.string().array(),isBot:u__default.default.boolean(),isFromMe:u__default.default.boolean(),isPrefix:u__default.default.boolean(),isSpam:u__default.default.boolean(),isTagMe:u__default.default.boolean(),isStatusMention:u__default.default.boolean(),isGroupStatusMention:u__default.default.boolean(),isHideTags:u__default.default.boolean(),isGroup:u__default.default.boolean(),isNewsletter:u__default.default.boolean(),isQuestion:u__default.default.boolean(),isStory:u__default.default.boolean(),isViewOnce:u__default.default.boolean(),isEdited:u__default.default.boolean(),isDeleted:u__default.default.boolean(),isPinned:u__default.default.boolean(),isUnPinned:u__default.default.boolean(),isBroadcast:u__default.default.boolean(),isEphemeral:u__default.default.boolean(),isForwarded:u__default.default.boolean(),citation:u__default.default.record(u__default.default.string(),u__default.default.function({output:u__default.default.promise(u__default.default.boolean())})).nullable(),media:u__default.default.object({buffer:u__default.default.function({output:u__default.default.promise(u__default.default.instanceof(Buffer))}),stream:u__default.default.function({output:u__default.default.promise(u__default.default.instanceof(Is__default.default))})}).loose().nullable(),message:u__default.default.function({input:[],output:u__default.default.custom()})}),ei=Et.extend({replied:Et.nullable()});var oi=u__default.default.object({callId:u__default.default.string(),callerId:u__default.default.string(),callerName:u__default.default.string(),roomId:u__default.default.string(),roomName:u__default.default.string(),date:u__default.default.date(),offline:u__default.default.boolean(),status:u__default.default.enum(["accept","offer","reject","ringing","terminate","timeout"]),isVideo:u__default.default.boolean(),isGroup:u__default.default.boolean()});var Se=class{collect(e,t,n){let o=t.max??1/0;if(o<=0){n([]);return}let s=i.collectors.get(e);s&&(clearTimeout(s.timeoutId),s.callback(s.messages),i.collectors.delete(e));let r=setTimeout(()=>{let c=i.collectors.get(e);c&&(c.callback(c.messages),i.collectors.delete(e));},t.timeout);i.collectors.set(e,{messages:[],max:o,filter:t.filter,callback:n,timeoutId:r});}push(e){let t=i.collectors.get(e.channelId);return !t||t.filter&&!t.filter(e)?false:(t.messages.push(e),t.messages.length>=t.max&&(clearTimeout(t.timeoutId),t.callback(t.messages),i.collectors.delete(e.channelId)),true)}has(e){return i.collectors.has(e)}cancel(e){let t=i.collectors.get(e);return t?(clearTimeout(t.timeoutId),t.callback(t.messages),i.collectors.delete(e),t.messages):[]}};var Ps={checkIntervalMs:6e4,staleThresholdMs:12e4,cooldownMs:6e4,maxRetries:3},Te=class{constructor(e,t={}){this.client=e;this.options={...Ps,...t};}lastActivityTime=Date.now();lastRecoveryTime=0;checkInterval=null;cleanupInterval=null;isRecovering=false;retryCount=0;options;start(){this.stop(),this.lastActivityTime=Date.now(),this.setupActivityListeners(),this.checkInterval=setInterval(()=>this.check(),this.options.checkIntervalMs),this.cleanupInterval=setInterval(()=>this.client.cleanupMessages(this.client.options.cleanupDays),3600*1e3),this.client.cleanupMessages(this.client.options.cleanupDays),i.spinner.success(" Health manager monitoring started");}stop(){this.checkInterval&&(clearInterval(this.checkInterval),this.checkInterval=null),this.cleanupInterval&&(clearInterval(this.cleanupInterval),this.cleanupInterval=null);}touch(){this.lastActivityTime=Date.now(),this.retryCount=0;}setupActivityListeners(){let e=this.client.socket;if(!e?.ev)return;let t=["messages.upsert","message-receipt.update","presence.update","chats.update","connection.update"];for(let n of t)e.ev.on(n,()=>this.touch());}async check(){if(this.isRecovering)return;let t=Date.now()-this.lastActivityTime;t>this.options.staleThresholdMs&&(i.spinner.warn(` Connection stale for ${Math.round(t/1e3)}s. Triggering recovery...`),await this.recover());}isInCooldown(){return Date.now()-this.lastRecoveryTime<this.options.cooldownMs}async recover(){if(!this.isRecovering){if(this.isInCooldown()){i.spinner.warn(" Recovery in cooldown, skipping...");return}if(this.retryCount>=this.options.maxRetries){i.spinner.error(` Max health recovery retries (${this.options.maxRetries}) reached.`);return}this.isRecovering=true,this.lastRecoveryTime=Date.now(),this.retryCount++;try{i.spinner.warn(` Health recovery attempt ${this.retryCount}/${this.options.maxRetries}...`);let e=this.client.socket;if(e?.ws?.readyState===1)try{await e.fetchStatus(e.user?.id||""),this.touch(),i.spinner.success(" Health check passed, session is alive");return}catch{i.spinner.warn(" Health check failed, session unresponsive");}await oe(this.client.options.session),i.spinner.warn(" Re-initializing client connection..."),await this.client.initialize(),this.touch(),i.spinner.success(" Health recovery successful");}catch(e){i.spinner.error(` Health recovery failed: ${e instanceof Error?e.message:String(e)}`);}finally{this.isRecovering=false;}}}};var Ce=class{constructor(e){this.client=e;this.initialize();}logsInitialized=false;logsDisplayed=false;isReady=false;getRoomColor(e){return e?.isNewsletter?"blue":e?.isGroup?e?.isGroup?"lime":"dimgray":"orange"}initialize(){if(!this.client.options.showLogs||this.logsInitialized)return;this.logsInitialized=true;let e=async({status:t})=>{t==="open"&&(this.isReady=true,this.logsDisplayed||setTimeout(()=>{this.displayIndicator();},500));};i.events.on("connection",e);}displayIndicator(){this.logsDisplayed||(this.logsDisplayed=true,console.log(),i.spinner.info("Logs Indicator:"),console.log(v(" \u2022","orange")+" Private Chat"),console.log(v(" \u2022","lime")+" Group Chat"),console.log(v(" \u2022","blue")+" Newsletter Chat"),console.log());}message(e){if(!this.isReady)return;let t=h(this.getRoomColor(e)),n=e?.text?.toLowerCase()?.match("zaileys"),o=v(`[${new Date(e?.timestamp).toTimeString().split(" ")[0]}]`,"dimgray"),s=v(`${e?.roomName}`,t),r=e?.text?.slice(0,300)||"",c=r?.length>=300?"...":"",l=`${o} \u2192 ${s}
|
|
7
|
-
`;
|
|
8
|
-
|
|
9
|
-
`,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
`,
|
|
13
|
-
|
|
1
|
+
'use strict';var ge=require('fluent-ffmpeg'),Le=require('fs/promises'),os=require('os'),ee=require('path'),tn=require('baileys'),jetdb=require('jetdb'),nanospinner=require('nanospinner'),ae=require('node-cache'),Ht=require('pino'),Qn=require('stream'),asyncMutex=require('async-mutex'),fileType=require('file-type'),jimp=require('jimp'),mn=require('node-webpmux'),E=require('lodash'),St=require('unorm'),zodValidationError=require('zod-validation-error'),At=require('gradient-string'),hn=require('figlet'),kn=require('qrcode-terminal'),rateLimiterFlexible=require('rate-limiter-flexible'),m=require('zod'),Ne=require('fs'),url=require('url');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var ge__default=/*#__PURE__*/_interopDefault(ge);var Le__default=/*#__PURE__*/_interopDefault(Le);var ee__namespace=/*#__PURE__*/_interopNamespace(ee);var tn__default=/*#__PURE__*/_interopDefault(tn);var ae__default=/*#__PURE__*/_interopDefault(ae);var Ht__default=/*#__PURE__*/_interopDefault(Ht);var Qn__default=/*#__PURE__*/_interopDefault(Qn);var mn__default=/*#__PURE__*/_interopDefault(mn);var E__default=/*#__PURE__*/_interopDefault(E);var St__default=/*#__PURE__*/_interopDefault(St);var At__default=/*#__PURE__*/_interopDefault(At);var hn__default=/*#__PURE__*/_interopDefault(hn);var kn__default=/*#__PURE__*/_interopDefault(kn);var m__default=/*#__PURE__*/_interopDefault(m);var Ne__namespace=/*#__PURE__*/_interopNamespace(Ne);var Vt=Object.defineProperty;var ct=(s,e)=>()=>(s&&(e=s(s=0)),e);var Gt=(s,e)=>{for(var t in e)Vt(s,t,{get:e[t],enumerable:true});};var c=ct(()=>{});var kt={};Gt(kt,{BufferConverter:()=>I,FFMPEG_CONSTANTS:()=>k,FFmpegProcessor:()=>j,FileManager:()=>h,MimeValidator:()=>R,initializeFFmpeg:()=>ze});var k,ze,h,I,R,j,V=ct(()=>{c();k={OPUS:{CODEC:"libopus",CHANNELS:1,FREQUENCY:48e3,BITRATE:"48k",FORMAT:"ogg"},THUMBNAIL:{SIZE:100,QUALITY:50,TIMESTAMP:"10%"},STICKER:{SIZE:512,MAX_DURATION:10,FPS:15,DEFAULT_QUALITY:80,COMPRESSION_LEVEL:6},MIME:{AUDIO:"audio/",VIDEO:"video/",IMAGE:"image/",GIF:"image/gif",MP4:"video/mp4"}},ze=async(s=false)=>{if(!s)try{let e=(await import('@ffmpeg-installer/ffmpeg')).default,t=(await import('@ffprobe-installer/ffprobe')).default;ge__default.default.setFfmpegPath(e.path),ge__default.default.setFfprobePath(t.path);}catch{}},h=class{static generateUniqueId(){return `${Date.now()}_${Math.random().toString(36).slice(2,11)}`}static createTempPath(e,t){return ee__namespace.default.join(os.tmpdir(),`${e}_${this.generateUniqueId()}.${t}`)}static async cleanup(e){await Promise.allSettled(e.map(t=>Le__default.default.unlink(t)));}static async safeReadFile(e){try{return await Le__default.default.readFile(e)}catch{throw new Error(`Failed to read file: ${e}`)}}static async safeWriteFile(e,t){try{await Le__default.default.writeFile(e,t);}catch{throw new Error(`Failed to write file: ${e}`)}}},I=class{static async toBuffer(e){if(Buffer.isBuffer(e))return e;if(e instanceof ArrayBuffer)return Buffer.from(e);if(typeof e=="string")return this.fromString(e);throw new Error("Invalid input type: expected string, Buffer, or ArrayBuffer")}static async fromString(e){return e.startsWith("http://")||e.startsWith("https://")?this.fromUrl(e):Buffer.from(e,"base64")}static async fromUrl(e){try{let t=await fetch(e);if(!t.ok)throw new Error(`HTTP ${t.status}: ${t.statusText}`);let r=await t.arrayBuffer();return Buffer.from(r)}catch(t){throw new Error(`Failed to fetch URL: ${t.message}`)}}},R=class{static validate(e,t){if(!e?.mime?.startsWith(t))throw new Error(`Invalid file type: expected ${t}*, got ${e?.mime||"unknown"}`)}static isMedia(e){return e.startsWith(k.MIME.IMAGE)||e.startsWith(k.MIME.VIDEO)}static isAnimated(e){return e===k.MIME.GIF||e.startsWith(k.MIME.VIDEO)}},j=class{static async process(e){return new Promise((t,r)=>{let i=ge__default.default(e.input).output(e.output);for(let n=0;n<e.options.length;n++){let o=e.options[n];o.startsWith("-")&&n+1<e.options.length&&!e.options[n+1].startsWith("-")?(i.outputOptions(o,e.options[n+1]),n++):i.outputOptions(o);}i.on("end",async()=>{try{await e.onEnd(),t();}catch(n){r(n);}}).on("error",async n=>{try{await e.onError(n);}finally{r(n);}}).run();})}static async getDuration(e){return new Promise((t,r)=>{ge__default.default.ffprobe(e,(i,n)=>{if(i)return r(i);t(n.format.duration||0);});})}};});c();c();c();c();var pt=s=>jetdb.createJetDB(`${s}/auth/creds.json`,{BufferJSON:tn.BufferJSON,cacheSize:100,flushMode:"sync",compression:"none",enableIndexing:false}),fe=s=>jetdb.createJetDB(`${s}/auth/keys.json`,{BufferJSON:tn.BufferJSON,size:1024*1024,cacheSize:2e3,flushMode:"sync",compression:"deflate",enableIndexing:false,hotThreshold:5}),lt=(s,e)=>jetdb.createJetDB(`.session/${s}/store/${e}.json`,{BufferJSON:tn.BufferJSON,cacheSize:2e4,debounceMs:1e3,flushMode:"debounce",compression:"deflate",serialization:"json",enableIndexing:true,hotThreshold:2,size:5*1024*1024});c();c();var ut=new ae__default.default({stdTTL:600,checkperiod:120,useClones:false}),O=new ae__default.default({stdTTL:300,useClones:false}),mt=new ae__default.default({stdTTL:300}),dt=new ae__default.default({stdTTL:600,checkperiod:120,useClones:false,deleteOnExpire:true,maxKeys:100}),ft=new ae__default.default;c();var te=class{classInjection(e,t){let r=t.length;return new Proxy(e,{get(i,n,o){if(n in i){let p=Reflect.get(i,n,o);return typeof p=="function"?p.bind(i):p}for(let p=0;p<r;p++){let l=t[p];if(n in l){let u=Reflect.get(l,n,o);return typeof u=="function"?u.bind(l):u}}},set(i,n,o,p){if(n in i)return Reflect.set(i,n,o,p);for(let l=0;l<r;l++){let u=t[l];if(n in u)return Reflect.set(u,n,o,p)}return Reflect.set(i,n,o,p)},has(i,n){if(n in e)return true;for(let o=0;o<r;o++)if(n in t[o])return true;return false},ownKeys(){let i=[];for(let n of Reflect.ownKeys(e))i.push(n);for(let n=0;n<r;n++)for(let o of Reflect.ownKeys(t[n]))i.includes(o)||i.push(o);return i},getOwnPropertyDescriptor(i,n){let o=Object.getOwnPropertyDescriptor(e,n);if(o)return o;for(let p=0;p<r;p++)if(o=Object.getOwnPropertyDescriptor(t[p],n),o)return o}})}};var je=class extends ae__default.default{constructor(){return super({useClones:false}),new te().classInjection(this,[ut])}spinner=nanospinner.createSpinner("",{color:"green"});logger=Ht__default.default({level:"silent",enabled:false});events=new Qn.EventEmitter},a=new je;var gt=async s=>{a.spinner.start(" Initializing auth state...");let e=pt(s),t=fe(s),r=await e.get("creds")||tn.initAuthCreds();return a.spinner.success(" Generate auth successfully"),{state:{creds:r,keys:{get:async(i,n)=>{let o={};return await Promise.all(n.map(async p=>{let l=`${i}:${p}`,u=await t.get(l);i==="app-state-sync-key"&&u&&(u=tn.proto.Message.AppStateSyncKeyData.fromObject(u)),o[p]=u;})),o},set:async i=>{let n=[],o=[];for(let p in i)for(let l in i[p]){let u=i[p][l],v=`${p}:${l}`;u?n.push({key:v,value:u}):o.push(v);}n.length&&await t.batchSet(n),o.length&&await t.batchDelete(o),await t.flush();}}},saveCreds:async()=>{await e.set("creds",r);}}};c();c();var ht=(s,e)=>({logger:s.health.logger,printQRInTerminal:false,enableRecentMessageCache:true,emitOwnEvents:true,keepAliveIntervalMs:3e4,browser:tn.Browsers.ubuntu("Chrome"),markOnlineOnConnect:s.options.autoOnline,syncFullHistory:s.options.syncFullHistory,msgRetryCounterCache:ft,mediaCache:mt,auth:{creds:e.creds,keys:tn.makeCacheableSignalKeyStore(e.keys,a.logger)},cachedGroupMetadata:async t=>O.get(t),shouldIgnoreJid:()=>false,shouldSyncHistoryMessage:()=>s.options.syncFullHistory,patchMessageBeforeSending:t=>t,getMessage:async t=>{if(!t?.remoteJid)return tn.proto.Message.fromObject({});let r=await s.db("messages").getByIndex("messages","key.id",t.id);return tn.proto.Message.fromObject(r[0])}});var wt=async s=>{let e=`.session/${s.options.session}`;console.info=()=>{};let{state:t,saveCreds:r}=await gt(e),i=ht(s,t),n=tn__default.default(i);n.ev.on("creds.update",r),a.set("socket",n);};c();c();c();var Ue=class{store=dt;mutex=new asyncMutex.Mutex;async inject(e,t){let r=await this.mutex.acquire();try{this.store.set(e,t);}finally{r();}}async get(e){let t=await this.mutex.acquire();try{return this.store.get(e)}finally{t();}}getSync(e){return this.store.get(e)}getAll(){let e=this.store.keys();return this.store.mget(e)}async remove(e){let t=await this.mutex.acquire();try{return this.store.del(e)>0}finally{t();}}async clear(){let e=await this.mutex.acquire();try{this.store.flushAll();}finally{e();}}has(e){return this.store.has(e)}get size(){return this.store.getStats().keys}keys(){return this.store.keys()}},Y=new Ue;c();V();c();V();var ne=class{static async toOpus(e){return this.convert(e,"opus")}static async toMp3(e){return this.convert(e,"mp3")}static async convert(e,t="opus"){let r=await I.toBuffer(e),i=await fileType.fileTypeFromBuffer(r);R.validate(i,k.MIME.AUDIO);let n=h.createTempPath("audio_in","wav"),o=t==="opus"?"ogg":"mp3",p=h.createTempPath("audio_out",o);await h.safeWriteFile(n,r);let l;try{let u=t==="opus"?["-vn","-c:a","libopus","-b:a","48k","-ac","1","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","opus"]:["-vn","-c:a","libmp3lame","-b:a","128k","-ac","2","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","mp3"];return await j.process({input:n,output:p,options:u,onEnd:async()=>{l=await h.safeReadFile(p);},onError:async()=>{await h.cleanup([n,p]);}}),await h.cleanup([n,p]),l}catch(u){throw await h.cleanup([n,p]),new Error(`${t.toUpperCase()} conversion failed: ${u.message}`)}}};c();V();var U=class{static async toMp4(e){let t=await I.toBuffer(e),r=await fileType.fileTypeFromBuffer(t);R.validate(r,k.MIME.VIDEO);let i=h.createTempPath("video_in","mp4"),n=h.createTempPath("video_out","mp4");await h.safeWriteFile(i,t);let o;try{let p=["-c:v","libx264","-preset","ultrafast","-crf","28","-c:a","aac","-b:a","128k","-movflags","+faststart","-pix_fmt","yuv420p","-f","mp4"];return await j.process({input:i,output:n,options:p,onEnd:async()=>{o=await h.safeReadFile(n);},onError:async()=>{await h.cleanup([i,n]);}}),await h.cleanup([i,n]),o}catch(p){throw await h.cleanup([i,n]),new Error(`Video re-encoding failed: ${p.message}`)}}static async thumbnail(e){let t=await I.toBuffer(e),r=await fileType.fileTypeFromBuffer(t);R.validate(r,k.MIME.VIDEO);let i=h.createTempPath("video","mp4"),n=h.createTempPath("thumb","jpg");await h.safeWriteFile(i,t);let o;try{return await new Promise((p,l)=>{ge__default.default(i).screenshots({timestamps:[k.THUMBNAIL.TIMESTAMP],filename:ee__namespace.default.basename(n),folder:ee__namespace.default.dirname(n),size:`${k.THUMBNAIL.SIZE}x${k.THUMBNAIL.SIZE}`}).on("end",async()=>{try{o=(await h.safeReadFile(n)).toString("base64"),p();}catch(u){l(u);}}).on("error",l);}),await h.cleanup([i,n]),o}catch(p){throw await h.cleanup([i,n]),new Error(`Thumbnail generation failed: ${p.message}`)}}static async duration(e){return j.getDuration(e)}};c();V();var N=class{static async thumbnail(e){let t=await fileType.fileTypeFromBuffer(e),r=k.THUMBNAIL.SIZE,i=await jimp.Jimp.read(e);return i.cover({w:r,h:r}),t?.mime===k.MIME.GIF&&i.resize({w:r,h:r}),(await i.getBuffer("image/jpeg",{quality:k.THUMBNAIL.QUALITY})).toString("base64")}static async resize(e,t,r){let i=await jimp.Jimp.read(e);return i.cover({w:t,h:r}),await i.getBuffer("image/png")}static async toJpeg(e){let t=await I.toBuffer(e),r=await fileType.fileTypeFromBuffer(t);if(!r||!r.mime.startsWith(k.MIME.IMAGE))throw new Error("Invalid image type");return r.mime==="image/webp"?await(await jimp.Jimp.read(t)).getBuffer("image/jpeg"):t}static async resizeForSticker(e,t,r="default"){let i=k.STICKER.SIZE,n=await jimp.Jimp.read(e);if(n.contain({w:i,h:i}),r!=="default"){let S=new jimp.Jimp({width:i,height:i,color:0});for(let b=0;b<i;b++)for(let A=0;A<i;A++){let D=false,G=i/2,J=i/2;switch(r){case "circle":{let x=A-G,B=b-J;D=x*x+B*B<=G*G;break}case "rounded":{let x=i/10,B=A>=x&&A<i-x&&b>=0&&b<i,q=A>=0&&A<i&&b>=x&&b<i-x,T=false,W=[[x,x],[i-x,x],[x,i-x],[i-x,i-x]];for(let[ie,oe]of W){let Z=A-ie,K=b-oe;if(Z*Z+K*K<=x*x){T=true;break}}D=B||q||T;break}case "oval":{let x=i/2,B=i/3,q=(A-G)/x,T=(b-J)/B;D=q*q+T*T<=1;break}}D&&S.setPixelColor(4294967295,A,b);}n.mask(S);}let o=h.createTempPath("sticker_img","png"),p=h.createTempPath("sticker_out","webp"),l=await n.getBuffer("image/png");await h.safeWriteFile(o,l);let{FFmpegProcessor:u}=await Promise.resolve().then(()=>(V(),kt)),v;try{return await u.process({input:o,output:p,options:["-vf",`scale=${i}:${i}`,"-quality",String(t),"-f","webp"],onEnd:async()=>{v=await h.safeReadFile(p);},onError:async()=>{await h.cleanup([o,p]);}}),await h.cleanup([o,p]),v}catch(S){throw await h.cleanup([o,p]),new Error(`Sticker resize failed: ${S.message}`)}}};c();c();var X=s=>{let e;Array.isArray(s)?e=s.join("|"):typeof s=="string"?e=s:e=String(s);let t=2166136261,r=e.length;for(let i=0;i<r;i++)t^=e.charCodeAt(i),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return "Z4D3FC"+(t>>>0).toString(16).padStart(8,"0").toUpperCase()},vt=(s="")=>{if(!s)return [];let e=new Set;for(let t of s.matchAll(/@(\d+)/g))e.add(t[1]);return E__default.default.toArray(e)},qe=(s="")=>{if(!s)return [];let e=new Set;for(let t of s.matchAll(/@(\d+)/g))t[1].length<=15&&e.add(t[1]);return E__default.default.flatMap([...e],t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},wi=s=>E__default.default.isEmpty(s)?[]:E__default.default.map([...s],e=>`${e}@s.whatsapp.net`),Tt=s=>E__default.default.omit(s,["url","contextInfo","fileSha256","fileEncSha256","mediaKey","directPath","waveform","thumbnail","jpegThumbnail","thumbnailEncSha256","thumbnailSha256","thumbnailDirectPath","firstFrameSidecar","streamingSidecar","scansSidecar","callKey","message","key","midQualityFileSha256","historySyncNotification","appStateSyncKeyShare","appStateSyncKeyRequest","initialSecurityNotificationSettingSync","appStateFatalExceptionNotification","disappearingMode","peerDataOperationRequestMessage","peerDataOperationRequestResponseMessage","botFeedbackMessage"]),ye=s=>{if(!s)return {leaf:void 0,chain:[]};let e=tn.extractMessageContent(s)||s,t=[];for(;e&&typeof e=="object";){let r=tn.getContentType(e);if(!r)break;t.push(r);let i=e[r];if(!i||typeof i!="object"){e=i;break}e=i;}return {leaf:e,chain:t}},L=s=>Number(s?.split("@")[0]);c();var M=s=>s,Ct=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(s){throw s}},It=async s=>{try{let e=`.session/${s}/auth/creds.json`;await Le__default.default.unlink(e);}catch(e){throw a.spinner.error(`Failed to remove auth creds for session "${s}"!`),e}},H=(s="")=>{if(!s?.length)return null;let e=s.replace(/\u202E(.*?)(\u202C|$)/gu,(t,r)=>[...r].reverse().join("")).replace(/\u202D(.*?)(\u202C|$)/gu,(t,r)=>[...r].reverse().join("")).replace(/[\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/gu,"").replace(/[\u200B\u200C\u200D\uFEFF]/gu,"").replace(/[\u00AD\u034F\u115F\u1160\u17B4\u17B5\u180B-\u180E]/gu,"").replace(/[\u2060-\u2064\u206A-\u206F]/gu,"").replace(/[\u2800\uFFFC\uFFFD]/gu,"").replace(/[\uFE00-\uFE0F]/gu,"").split("").map(t=>St__default.default.nfkd(t)).join("").replace(/[\u0300-\u036F]/gu,"").replace(/[\u1AB0-\u1AFF]/gu,"").replace(/[\u1DC0-\u1DFF]/gu,"").replace(/[\u20D0-\u20FF]/gu,"").replace(/[\uFE20-\uFE2F]/gu,"").replace(/[\p{Cc}]/gu,"").replace(/[\p{Cf}]/gu,"").replace(/[\p{Co}]/gu,"").replace(/[\p{Cn}]/gu,"").replace(/[\p{Cs}]/gu,"").replace(/[\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]/gu," ").replace(/[\u2028\u2029]/gu," ").replace(/[\t\r\n\f\v]/g," ").split("").map(t=>St__default.default.nfkc(t)).join("").normalize("NFC").replace(/\s+/g," ").trim();return e.length?e:null};V();var he=class{static async create(e,t){try{let r=await I.toBuffer(e),i=await fileType.fileTypeFromBuffer(r);if(!i)throw new Error("Unable to detect file type");let n=t?.quality||k.STICKER.DEFAULT_QUALITY,o=R.isAnimated(i.mime),p=t?.shape||"default",l=o?await this.processAnimated(r,i.mime,n):await N.resizeForSticker(r,n,p),u=this.createExifMetadata(t),v=new mn__default.default.Image;await v.load(l),v.exif=u;let S=await v.save(null);return Buffer.isBuffer(S)?S:Buffer.from(S)}catch(r){throw new Error(`Sticker creation failed: ${r.message||r}`)}}static createExifMetadata(e){let t={"sticker-pack-id":X(Date.now().toString()),"sticker-pack-name":e?.packageName||"Zaileys Library","sticker-pack-publisher":e?.authorName||"https://github.com/zeative/zaileys",emojis:["\u{1F913}"],"android-app-store-link":"https://play.google.com/store/apps/details?id=com.marsvard.stickermakerforwhatsapp","ios-app-store-link":"https://itunes.apple.com/app/sticker-maker-studio/id1443326857"},r=Buffer.from([73,73,42,0,8,0,0,0,1,0,65,87,7,0,0,0,0,0,22,0,0,0]),i=Buffer.from(JSON.stringify(t),"utf8"),n=Buffer.concat([r,i]);return n.writeUIntLE(i.length,14,4),n}static async processAnimated(e,t,r){let i=this.getExtension(t),n=h.createTempPath("sticker_in",i),o=h.createTempPath("sticker_out","webp");await h.safeWriteFile(n,e);let p=k.STICKER.MAX_DURATION;try{let A=await U.duration(n);p=M(Math.min(A,k.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",k.STICKER.MAX_DURATION);}let l=k.STICKER.SIZE,u=k.STICKER.FPS,v=`scale=${l}:${l}:force_original_aspect_ratio=increase,crop=${l}:${l},fps=${u},format=rgba`,S=Math.max(1,Math.min(100,100-r)),b;try{return await j.process({input:n,output:o,options:["-vcodec libwebp",`-vf ${v}`,`-q:v ${S}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${p}`,`-compression_level ${k.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{b=await h.safeReadFile(o);},onError:async()=>{await h.cleanup([n,o]);}}),await h.cleanup([n,o]),b}catch(A){throw await h.cleanup([n,o]),new Error(`Animated sticker processing failed: ${A.message}`)}}static getExtension(e){return e===k.MIME.GIF?"gif":e.startsWith(k.MIME.VIDEO)?"mp4":"tmp"}};c();V();V();var we=class{static async create(e){try{let t=await I.toBuffer(e),r=await fileType.fileTypeFromBuffer(t);if(!r)throw new Error("Unable to detect file type");let i;return r.mime.startsWith(k.MIME.VIDEO)?i=await U.thumbnail(t):R.isMedia(r.mime)?i=await N.thumbnail(t):i="",{document:t,mimetype:r.mime,fileName:X(Date.now().toString()),jpegThumbnail:i}}catch(t){throw new Error(`Document creation failed: ${t.message||t}`)}}};c();var le=(s,e)=>{try{return s.parse(e)}catch(t){let r=zodValidationError.fromError(t);throw new Error(r.toString())}};c();c();var Ve=class{concurrency;timeout;onError;queue;running;completed;failed;isClosing;closeResolve;constructor(e){this.concurrency=e?.concurrency||10,this.timeout=e?.timeout||3e4,this.onError=e?.onError||this._defaultErrorHandler,this.queue=[],this.running=new Set,this.completed=0,this.failed=0,this.isClosing=false,this.closeResolve=null;}add(e,t){if(this.isClosing)throw new Error("Queue is closing, cannot add new tasks");let r={id:this._generateId(),fn:e,priority:t?.priority||0,timeout:t?.timeout||this.timeout,retries:t?.retries||0,maxRetries:t?.maxRetries||0,createdAt:Date.now()},i=this.queue.findIndex(n=>n.priority<r.priority);return i===-1?this.queue.push(r):this.queue.splice(i,0,r),this._process(),r.id}addBulk(e){return e.map(({fn:t,options:r})=>this.add(t,r))}async _process(){for(;this.running.size<this.concurrency&&this.queue.length>0;){let e=this.queue.shift();this.running.add(e),this._executeTask(e);}this.isClosing&&this.running.size===0&&this.queue.length===0&&this.closeResolve?.();}async _executeTask(e){try{await this._withTimeout(e.fn(),e.timeout),this.completed++;}catch(t){e.retries<e.maxRetries?(e.retries++,this.queue.unshift(e)):(this.failed++,this.onError(t,e));}finally{this.running.delete(e),this._process();}}_withTimeout(e,t){return Promise.race([e,new Promise((r,i)=>setTimeout(()=>i(new Error("Task timeout")),t))])}async close(e=0){if(this.isClosing=true,this.running.size===0&&this.queue.length===0)return;let t=new Promise(r=>{this.closeResolve=r;});if(e>0){let r=new Promise(i=>setTimeout(i,e));await Promise.race([t,r]);}else await t;}forceClose(){this.queue=[],this.running.clear(),this.isClosing=true,this.closeResolve?.();}getStats(){return {queued:this.queue.length,running:this.running.size,completed:this.completed,failed:this.failed,total:this.completed+this.failed}}isIdle(){return this.queue.length===0&&this.running.size===0}async waitUntilIdle(e=100){for(;!this.isIdle();)await new Promise(t=>setTimeout(t,e));}_defaultErrorHandler(e,t){console.error(`[FireAndForget] Task ${t.id} failed:`,e);}_generateId(){return `${Date.now()}-${Math.random().toString(36).substr(2,9)}`}},P=new Ve;process.on("SIGTERM",()=>P.close());c();c();c();var y=(s,e="lime")=>Array.isArray(e)?At__default.default(e)(s):At__default.default([e,e])(s),Ge=s=>{try{return JSON.parse(s)}catch{return E__default.default.attempt(()=>JSON.parse(JSON.stringify(s)||"{}"))}},ue=s=>{try{return JSON.stringify(s)}catch{let e=E__default.default.attempt(()=>JSON.stringify(Ge(s)||"{}"));return E__default.default.isError(e)?"{}":e}},oo=(s="")=>E__default.default.shuffle(s).join(""),me=(s="",e="")=>s?E__default.default.includes(s.toLowerCase(),e.toLowerCase()):null,Pt=(s="")=>s?E__default.default.castArray(s.match(tn.URL_REGEX)||[]):[],so=s=>s[Math.floor(Math.random()*s.length)],Je=(s,e)=>{let t=i=>!!(i==null||typeof i=="string"&&i.trim()===""||Array.isArray(i)&&i.length===0||typeof i=="object"&&Object.keys(i).length===0),r=(i,n)=>{if(!i||typeof i!="object")return;let o=i,p=n.split(".");for(let l of p){let u=l.match(/^(.+?)\[(\d+)\]$/);if(u){let[,v,S]=u;o=o?.[v]?.[parseInt(S,10)];}else o=o?.[l];if(t(o))return}return o};if(!(!Array.isArray(s)||s.length===0)&&!(!Array.isArray(e)||e.length===0)){for(let i of s)if(!(!i||typeof i!="object"))for(let n of e){let o=r(i,n);if(!t(o))return o}}},ao=(s,e)=>{let t=E__default.default.castArray(e),r=(o,p)=>E__default.default.every(p,(l,u)=>o?.[u]===l),i=(o,p)=>E__default.default.some(p,(l,u)=>o?.[u]===l),n=o=>E__default.default.isArray(o)?E__default.default.find(o,n)??o:E__default.default.isObject(o)?E__default.default.find(t,u=>r(o,u))||E__default.default.find(t,u=>i(o,u))?o:E__default.default.find(E__default.default.values(o),n)??o:null;return n(s)},co=(s,e,t)=>new Proxy(s,{apply(r,i,n){e?.(n);let o=Reflect.apply(r,i,n);return t?t(o,n):o}});c();var Ke=class{input;constructor(e){this.input=e;}async toOpus(){return ne.toOpus(this.input)}async toMp3(){return ne.toMp3(this.input)}async convert(e="opus"){return ne.convert(this.input,e)}},He=class{input;constructor(e){this.input=e;}async toMp4(){return U.toMp4(this.input)}async thumbnail(){return U.thumbnail(this.input)}},Qe=class{input;constructor(e){this.input=e;}async toJpeg(){return N.toJpeg(this.input)}async thumbnail(){let e=await I.toBuffer(this.input);return N.thumbnail(e)}async resize(e,t){let r=await I.toBuffer(this.input);return N.resize(r,e,t)}},Ze=class{input;metadata;constructor(e,t){this.input=e,this.metadata=t;}async create(){return he.create(this.input,this.metadata)}},Ye=class{input;constructor(e){this.input=e;}async create(){return we.create(this.input)}},Xe=class{input;constructor(e){this.input=e;}async get(){let e=await I.toBuffer(this.input),t=await fileType.fileTypeFromBuffer(e);if(!t||!R.isMedia(t.mime))throw new Error("Invalid media type: expected image or video");return t.mime.startsWith(k.MIME.VIDEO)?U.thumbnail(this.input):N.thumbnail(e)}},et=class{audio(e){return new Ke(e)}video(e){return new He(e)}image(e){return new Qe(e)}sticker(e,t){return new Ze(e,t)}document(e){return new Ye(e)}thumbnail(e){return new Xe(e)}async toBuffer(e){return I.toBuffer(e)}},$=new et;var ke=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=a.get("socket");e.ev.on("call",async t=>{for(let r of t){let i=await this.parse(r);i&&(P.add(async()=>this.client.middleware.run({calls:i})),P.add(async()=>this.client.plugins.execute(this.client,{messages:i})),a.events.emit("calls",i),this.client.options?.autoRejectCall&&P.add(async()=>e.rejectCall(i.callId,i.callerId)));}});}async parse(e){let t=a.get("socket"),r={};return r.callId=e.id,r.callerId=tn.jidNormalizedUser(e.from),r.roomId=tn.jidNormalizedUser(e.chatId),r.roomName=H(t?.user?.name||t?.user?.verifiedName),r.date=e.date,r.offline=e.offline,r.status=e.status,r.isVideo=!!e.isVideo,r.isGroup=!!e.isGroup,this.client.logs.call(r),r}};c();c();var Rt=s=>{kn__default.default.generate(s,{small:true},e=>{console.log(e);});},Ft=async()=>{console.clear(),a.spinner.start(" Checking for updates...");let s="2.1.8",e="zaadevofc",t=await Ct(),r=s===t;a.spinner.stop();let i="Zaileys",n=`
|
|
2
|
+
by ${e} \xB7 v${s}`,o=`${r?"Already using latest version!":`Update available! (v${t})`}
|
|
3
|
+
`,p=r?"lime":"orange",l=await hn__default.default.text(i),u=At.cristal(l);console.log(u),console.log(y(n,"dimgray")),console.log(y(o,p));};var Me=class{constructor(e){this.client=e;this.initialize();}async initialize(){a.spinner.start(" Initializing connection...");let e=a.get("socket"),t={},r=async()=>{t.status="reload",a.spinner.warn(" Connection lost. Attempting auto-reload..."),await this.client.initialize();},i=async()=>{await tn.delay(3e3),a.spinner.warn(" Invalid session. Attempting auto cleaning creds..."),await tn.delay(3e3),await It(this.client.options.session),await r();};if(this.client.options.authType==="pairing"&&this.client.options.phoneNumber&&!e.authState.creds.registered){a.spinner.update(" Generating pairing code..."),await tn.delay(3500);try{t.authTimeout=Date.now()+6e4;let n=new Date(t.authTimeout).toLocaleTimeString(),o=await e.requestPairingCode(this.client.options.phoneNumber.toString());a.spinner.warn(` Pairing expired at ${At.cristal(n)}`),a.spinner.warn(` Pairing code: ${o}`),t.code=o;}catch{await i();}}e.ev.on("connection.update",async n=>{let{connection:o,lastDisconnect:p,qr:l}=n;if(t.status=o||"connecting",t.authType=this.client.options.authType,a.spinner.update(" Connection status: "+At.cristal(t.status)),this.client.options.authType==="qr"&&l){t.authTimeout=Date.now()+6e4;let u=new Date(t.authTimeout).toLocaleTimeString();a.spinner.warn(" Please scan the QR code..."),a.spinner.warn(` Qr code expired at ${At.cristal(u)}`),Rt(l),t.qr=l;return}if(o==="close"){let u=M(p?.error)?.output?.statusCode,v=p?.error?.message||"",S=typeof u=="number"&&u!==tn.DisconnectReason.loggedOut;if(a.spinner.error(` [${u} - Closed] ${v}`),u===401||u===405){a.spinner.warn(" Session may be used by another device/instance."),a.spinner.warn(" If you want to connect here, close the other connection first."),a.spinner.warn(` Or use a different session name in your Client options.
|
|
4
|
+
`);return}if(u===500){a.spinner.error(" Server error occurred, attempting reconnect..."),await r();return}S&&await r();}if(o==="open")if(e.user?.id){let u=tn.jidNormalizedUser(e.user.id).split("@")[0],v=e.user.name||e.user.verifiedName;a.spinner.success(` Connected as ${At.cristal(v||u)}`);}else a.spinner.success(" Connected!");a.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:n})=>{t.status="syncing",t.syncProgress=n,a.spinner.start(" Syncing messages history..."),n&&a.spinner.update(` Syncing messages history ${n+"%"}`),n==100&&(a.spinner.success(" Syncing messages history completed!"),t.syncCompleted=true),a.events.emit("connection",t);});}};c();c();var Bt={text:"text",conversation:"text",imageMessage:"image",contactMessage:"contact",locationMessage:"location",documentMessage:"document",audioMessage:"audio",videoMessage:"video",protocolMessage:"protocol",contactsArrayMessage:"contacts",highlyStructuredMessage:"highlyStructured",sendPaymentMessage:"sendPayment",liveLocationMessage:"location",requestPaymentMessage:"requestPayment",groupStatusMentionMessage:"groupStatusMention",statusMentionMessage:"statusMention",albumMessage:"album",declinePaymentRequestMessage:"declinePaymentRequest",cancelPaymentRequestMessage:"cancelPaymentRequest",templateMessage:"template",stickerMessage:"sticker",groupInviteMessage:"groupInvite",templateButtonReplyMessage:"buttons",productMessage:"product",deviceSentMessage:"deviceSent",listMessage:"lists",viewOnceMessage:"viewOnce",orderMessage:"order",listResponseMessage:"lists",ephemeralMessage:"ephemeral",invoiceMessage:"invoice",buttonsMessage:"buttons",buttonsResponseMessage:"buttons",paymentInviteMessage:"paymentInvite",interactiveMessage:"interactive",reactionMessage:"reaction",stickerSyncRmrMessage:"sticker",questionMessage:"question",nativeFlowResponseMessage:"lists",interactiveResponseMessage:"interactiveResponse",pollCreationMessage:"pollCreation",pollCreationMessageKey:"pollUpdate",pollUpdateMessage:"pollUpdate",keepInChatMessage:"keepInChat",documentWithCaptionMessage:"document",requestPhoneNumberMessage:"requestPhoneNumber",viewOnceMessageV2:"viewOnce",encReactionMessage:"reaction",editedMessage:"text",viewOnceMessageV2Extension:"viewOnce",pollCreationMessageV2:"pollCreation",scheduledCallCreationMessage:"scheduledCallCreation",groupMentionedMessage:"groupMentioned",pinInChatMessage:"pinInChat",pollCreationMessageV3:"pollCreation",scheduledCallEditMessage:"scheduledCallEdit",ptvMessage:"ptv",botInvokeMessage:"botInvoke",callLogMesssage:"callLog",encCommentMessage:"encComment",bcallMessage:"bcall",lottieStickerMessage:"lottieSticker",eventMessage:"event",commentMessage:"comment",newsletterAdminInviteMessage:"text",extendedTextMessageWithParentKey:"text",extendedTextMessage:"text",placeholderMessage:"placeholder",encEventUpdateMessage:"encEventUpdate"},nt={whatsapp:"0@s.whatsapp.net",meta:"13135550002@s.whatsapp.net",chatgpt:"18002428478@s.whatsapp.net",copilot:"18772241042@s.whatsapp.net",instagram:"447723442971@s.whatsapp.net",tiktok:"6285574670498@s.whatsapp.net"};c();var xe=class{constructor(e){this.client=e;this.limiter=new rateLimiterFlexible.RateLimiterMemory({points:this.client.options.limiter?.maxMessages,duration:this.client.options.limiter?.durationMs/1e3});}limiter;async isSpam(e){try{return await this.limiter.consume(e),!1}catch{return true}}};var Te=class{constructor(e){this.client=e;this.limiter=new xe(e),this.initialize();}limiter;maxReplies=3;async initialize(){let e=a.get("socket");if(!e?.ev){console.warn("\u26A0\uFE0F [Messages] Socket or socket.ev is not available during initialization");return}e.ev.on("messages.upsert",async({messages:t,type:r})=>{try{if(r!=="notify"&&r!=="append")return;for(let i of t)try{let n=await this.parse(i);n&&(P.add(async()=>this.client.middleware.run({messages:n})),P.add(async()=>this.client.plugins.execute(this.client,{messages:n})),a.set("message",n),a.events.emit("messages",n),this.client.options.autoRead&&P.add(async()=>e.readMessages([n.message().key])));}catch(n){console.error(`\u274C [Messages] Error processing message ${i.key?.id}:`,n);}}catch(i){console.error("\u274C [Messages] Critical error in upsert listener:",i);}});}async parse(e,t){if(e?.category==="peer"||!e?.message||!e?.key?.id||e?.messageStubType||e?.messageStubParameters?.length||e.message?.protocolMessage?.peerDataOperationRequestResponseMessage)return;let r=e,i=a.get("socket"),n={},o=ye(e.message),p=o.chain.at(-1),l=o.leaf;if(l?.message&&(o=ye(l.message),p=o.chain.at(-1),l=o.leaf),n.uniqueId=null,n.channelId=null,n.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,n.chatType=Bt[p],!n.chatType)return;n.receiverLid=tn.jidNormalizedUser(i?.user?.lid||""),n.receiverId=tn.jidNormalizedUser(i?.user?.id||""),n.receiverName=H(i?.user?.name||i?.user?.verifiedName),n.roomId=tn.jidNormalizedUser(e?.key?.remoteJid);let u=l?.type===0,v=l?.type===1,S=l?.type===2,b=n.roomId?.includes("@newsletter"),A=!!e?.message?.questionMessage,D=e?.key?.fromMe||false;if(D&&this.client.options.ignoreMe&&t!=="replied")return;let G=l?.key?.id;if(u||v||S){let T=await this.client.db("messages").query(n.roomId).where("key.id","=",G).first();if(!T)return;e=T,o=ye(e.message),p=o.chain.at(-1),l=o.leaf;}if(n.roomName=await this.client.getRoomName(n.roomId),n.senderLid=tn.jidNormalizedUser(e?.key?.participant||e?.key?.remoteJid)||null,n.senderId=tn.jidNormalizedUser(e?.key?.participantAlt||e?.key?.remoteJidAlt)||null,n.senderName=H(e?.pushName||e?.verifiedBizName),n.senderDevice=tn.getDevice(n.chatId||""),n.channelId=X([n.roomId,n.senderId]),n.uniqueId=X([n.channelId,n.chatId]),n.timestamp=Number(e?.messageTimestamp)*1e3,b){let T=await i.newsletterMetadata("jid",n.roomId);n.roomName=M(T.thread_metadata.name)?.text,n.senderId=null,n.senderLid=null;}D&&(n.senderLid=tn.jidNormalizedUser(i.user.lid),n.senderId=n.receiverId,n.senderName=n.receiverName),n.text=l?.text||l?.caption||l?.name||l?.displayName||l?.conversation||l?.contentText||l?.selectedDisplayText||l||null,l?.name=="menu_options"&&(n.text=Ge(l?.paramsJson)?.id),n.text=H(n.text),n.mentions=vt(n.text),n.links=Pt(n.text||""),n.isBot=n.chatId.startsWith("BAE5")||n.chatId.startsWith("3EB0")||n.chatId.startsWith("Z4D3FC"),n.isFromMe=D;let J=E__default.default.castArray(this.client.options?.prefix);if(n.isPrefix=!!J.find(T=>n.text?.startsWith(T)),n.isTagMe=n.mentions?.includes(n.receiverId.split("@")[0])||n.mentions?.includes(n.receiverLid.split("@")[0]),n.isStatusMention=!!e?.message?.statusMentionMessage,n.isGroupStatusMention=!!e?.message?.groupStatusMentionMessage,n.isHideTags=false,E__default.default.isEmpty(n.text)&&l?.contextInfo?.mentionedJid?.length&&(n.isHideTags=true),n.isSpam=await this.limiter.isSpam(n.channelId),n.isPrefix&&(n.text=n.text.replace(new RegExp(`^${E__default.default.escapeRegExp(J.find(T=>n.text?.startsWith(T))||"")}`),"")),n.isGroup=n.roomId?.includes("@g.us"),n.isNewsletter=b,n.isQuestion=A,n.isStory=n.roomId?.includes("@broadcast"),!n.isGroup&&!n.roomName&&(n.roomName=n.senderName),n.isViewOnce=false,n.isEdited=!!me(ue(o),"editedMessage"),n.isDeleted=u,n.isPinned=v,n.isUnPinned=S,n.isBroadcast=!!e?.broadcast,n.isEphemeral=!!me(ue(l?.contextInfo),"ephemeralSettingTimestamp"),n.isForwarded=!!me(ue(l?.contextInfo),"forwardingScore"),n.citation=null,this.client.options.citation){n.citation=n.citation||{};let T=this.client.options.citation;for(let W of Object.keys(T)){let ie=T[W];n.citation[W]=async()=>{let oe=await ie(),Z=[L(n.roomId),L(n.senderLid),L(n.senderId)];return !!E__default.default.intersection(Z,oe).length};}}n.chatType!=="text"&&(n.media={...Tt(l),buffer:()=>tn.downloadMediaMessage(e,"buffer",{}),stream:()=>tn.downloadMediaMessage(e,"stream",{})}),n.isStatusMention&&(n.chatType="statusMention"),n.isGroupStatusMention&&(n.chatType="groupStatusMention"),n.message=()=>r,n.replied=null;let x=l?.contextInfo?.quotedMessage,B=me(ue(x),"viewOnce"),q=l?.contextInfo?.stanzaId;if(x&&this.maxReplies){this.maxReplies--;let T=await this.client.db("messages").getByIndex("messages","key.id",q),W;B?W={...T[0],message:x}:W=T[0],n.replied=await this.parse(W,"replied"),n.replied&&(n.replied.isViewOnce=true),this.maxReplies=3;}return t!="replied"&&this.client.logs.message(n),n.injection=Y.getAll(),n}};var Se=class{constructor(e){this.client=e;this.connection=new Me(e),this.messages=new Te(e),this.calls=new ke(e),this.initialize();}connection;messages;calls;async initialize(){let e=a.get("socket");e.ev.on("groups.update",async([t])=>{P.add(async()=>{let r=await e.groupMetadata(t.id);O.set(t.id,r);});}),e.ev.on("group-participants.update",async t=>{P.add(async()=>{let r=await e.groupMetadata(t.id);O.set(t.id,r);});}),e?.ev.on("messaging-history.set",async t=>{let{chats:r,contacts:i,messages:n}=t;P.add(async()=>{await this.client.db("chats").batchUpsert("chats",r,"id");}),P.add(async()=>{await this.client.db("contacts").batchUpsert("contacts",i,"id");}),P.add(async()=>{await this.client.db("messages").batchUpsert("messages",n,"key.id");});}),e?.ev.on("messages.upsert",async({messages:t})=>{P.add(async()=>{await this.client.db("messages").batchUpsert("messages",t,"key.id");});}),e?.ev.on("chats.upsert",async t=>{P.add(async()=>{await this.client.db("chats").batchUpsert("chats",t,"id");});}),e?.ev.on("contacts.upsert",async t=>{P.add(async()=>{await this.client.db("contacts").batchUpsert("contacts",t,"id");});}),await this.client.db("messages").createIndex("messages","key.remoteJid"),await this.client.db("messages").createIndex("messages","key.id"),await this.client.db("chats").createIndex("chats","id"),await this.client.db("contacts").createIndex("contacts","id");}};c();c();c();var Tn=m__default.default.object({type:m__default.default.literal("quick_reply"),text:m__default.default.string()}),Sn=m__default.default.object({type:m__default.default.literal("cta_url"),url:m__default.default.url(),text:m__default.default.string()}),Cn=m__default.default.object({type:m__default.default.literal("cta_copy"),copy:m__default.default.string(),text:m__default.default.string()}),In=m__default.default.object({type:m__default.default.literal("cta_call"),text:m__default.default.string(),phoneNumber:m__default.default.string()}),An=m__default.default.object({type:m__default.default.literal("single_select"),text:m__default.default.string(),section:m__default.default.object({title:m__default.default.string(),highlight_label:m__default.default.string().optional(),rows:m__default.default.object({id:m__default.default.string(),title:m__default.default.string(),header:m__default.default.string().optional(),description:m__default.default.string().optional()}).array()}).array()}),Pn=m__default.default.object({type:m__default.default.literal("interactive"),footer:m__default.default.string().optional(),data:m__default.default.union([Tn,Sn,Cn,In,An]).array()}),En=m__default.default.object({type:m__default.default.literal("simple"),footer:m__default.default.string().optional(),data:m__default.default.object({id:m__default.default.string(),text:m__default.default.string()}).array()}),Ot=m__default.default.union([En,Pn]);c();var Rn=m.z.object({maxMessages:m.z.number().default(20),durationMs:m.z.number().default(1e4)}).optional(),Fn=m.z.record(m.z.string(),m.z.function({output:m.z.promise(m.z.array(m.z.number()))})).optional(),Bn=m.z.object({provider:m.z.enum(["whatsapp","meta","chatgpt","copilot","instagram","tiktok"]).or(m.z.number())}).optional(),rt=m.z.enum(["default","rounded","circle","oval"]).default("default"),$n=m.z.object({packageName:m.z.string().optional(),authorName:m.z.string().optional(),quality:m.z.number().optional(),shape:rt.optional()}).optional(),On=m.z.object({enabled:m.z.boolean().default(false).optional(),intervalMs:m.z.number().default(3600*1e3).optional(),maxAgeMs:m.z.number().default(1440*60*1e3).optional(),scopes:m.z.array(m.z.string()).default(["messages"]).optional()}).optional(),Nt=m.z.object({session:m.z.string().default("zaileys").optional(),prefix:m.z.union([m.z.string(),m.z.array(m.z.string())]).optional(),ignoreMe:m.z.boolean().default(true).optional(),showLogs:m.z.boolean().default(true).optional(),fancyLogs:m.z.boolean().default(false).optional(),syncFullHistory:m.z.boolean().default(true).optional(),disableFFmpeg:m.z.boolean().default(false).optional(),autoMarkAI:m.z.boolean().default(true).optional(),autoMentions:m.z.boolean().default(true).optional(),autoOnline:m.z.boolean().default(true).optional(),autoRead:m.z.boolean().default(true).optional(),autoPresence:m.z.boolean().default(true).optional(),autoRejectCall:m.z.boolean().default(true).optional(),autoCleanUp:On,limiter:Rn,citation:Fn,fakeReply:Bn,sticker:$n}),Nn=m.z.object({authType:m.z.literal("pairing"),phoneNumber:m.z.number()}),Dn=m.z.object({authType:m.z.literal("qr")}),Dt=m.z.union([Nn.extend(Nt.shape),Dn.extend(Nt.shape)]),xs=m.z.enum(["connection","messages","calls"]);var de=m__default.default.url().or(m__default.default.base64()).or(m__default.default.instanceof(Buffer)),Wt=m__default.default.object({text:m__default.default.string()}).passthrough(),Wn=m__default.default.object({image:de,caption:m__default.default.string().optional()}).passthrough(),_n=m__default.default.object({audio:de,caption:m__default.default.string().optional(),ptt:m__default.default.boolean().optional()}).passthrough(),jn=m__default.default.object({video:de,caption:m__default.default.string().optional(),ptv:m__default.default.boolean().optional()}).passthrough(),Un=m__default.default.object({sticker:de,shape:rt.optional(),caption:m__default.default.string().optional()}).passthrough(),Ln=m__default.default.object({document:de,caption:m__default.default.string().optional(),fileName:m__default.default.string().optional()}).passthrough(),zn=m__default.default.object({location:m__default.default.object({latitude:m__default.default.number(),longitude:m__default.default.number(),url:m__default.default.url().optional(),title:m__default.default.string().optional(),footer:m__default.default.string().optional()}).optional()}).passthrough(),qn=m__default.default.object({contacts:m__default.default.object({title:m__default.default.string().optional(),contacts:m__default.default.object({fullname:m__default.default.string(),phoneNumber:m__default.default.number(),organization:m__default.default.string().optional()}).array()})}).passthrough(),Vn=m__default.default.object({poll:m__default.default.object({name:m__default.default.string(),answers:m__default.default.string().array(),isMultiple:m__default.default.boolean().default(false).optional()})}),_t=m__default.default.object({replied:m__default.default.custom().optional(),isForwardedMany:m__default.default.boolean().optional(),isViewOnce:m__default.default.boolean().optional(),banner:m__default.default.custom().optional(),buttons:Ot.optional()});m__default.default.enum(["forward","button","edit","delete"]);var Gn=m__default.default.union([Wt,Wn,_n,jn,Un,Ln,zn,qn,Vn]),jt=m__default.default.string().or(m__default.default.intersection(Gn,_t.omit({buttons:true}))),Ut=m__default.default.intersection(Wt,_t.omit({banner:true}));c();var Ce=class{toNativeSimple(e){return e.map(({id:t,text:r})=>({name:"quick_reply",buttonParamsJson:JSON.stringify({display_text:r,id:t})}))}toNativeInteractive(e){let t={quick_reply:r=>({display_text:r.text,id:r.id}),cta_url:r=>({display_text:r.text,url:r.url,merchant_url:r.url}),cta_copy:r=>({display_text:r.text,id:r.id,copy_code:r.copy}),cta_call:r=>({display_text:r.text,phone_number:r.phoneNumber}),single_select:r=>({title:r.text,sections:r.section})};return e.map(r=>({name:r.type,buttonParamsJson:JSON.stringify(t[r.type](r))}))}build(e){let t=M(e).buttons,r=t?.data||[],n=t?.type=="simple"?this.toNativeSimple(r):this.toNativeInteractive(r);return {body:{text:M(e).text},footer:t.footer?{text:t.footer}:void 0,nativeFlowMessage:{buttons:n}}}async send(e,t,r){let i=a.get("socket"),n=i?.authState?.creds?.me?.id||i?.user?.id,o=this.build(t),p=tn.generateWAMessageFromContent(e,{interactiveMessage:o},{userJid:n,messageId:tn.generateMessageIDV2(n),...r});return await i.relayMessage(e,p.message,{messageId:p.key.id,...r,additionalNodes:[{tag:"biz",attrs:{},content:[{tag:"interactive",attrs:{type:"native_flow",v:"1"},content:[{tag:"native_flow",attrs:{v:"9",name:"mixed"}}]}]}]}),i.config?.emitOwnEvents&&!tn.isJidGroup(e)&&process.nextTick(()=>i.upsertMessage?.(p,"append")),p}};var Ie=class{constructor(e){this.client=e;}async signal(e,t,r,i){r!="delete"&&(r=="button"?t=le(Ut,t):t=le(jt,t));let n=a.get("socket"),o={},p={},l=E__default.default.isString(t),u=this.client.options?.fakeReply?.provider,v=this.client.options?.autoMentions,S=this.client.options?.autoPresence,b=E__default.default.has(t,"replied"),A=E__default.default.has(t,"banner"),D=E__default.default.has(t,"isViewOnce"),G=r=="button",J=E__default.default.has(t,"image"),x=E__default.default.has(t,"video"),B=E__default.default.has(t,"audio"),q=E__default.default.has(t,"sticker"),T=E__default.default.has(t,"document"),W=E__default.default.has(t,"location"),ie=E__default.default.has(t,"contacts"),oe=E__default.default.has(t,"poll"),Z=J||x||B||q||T,K=l?t:Je([t],["text","caption"]);if(S&&(B?await n.sendPresenceUpdate("recording",e):await n.sendPresenceUpdate("composing",e)),v&&(o={...o,mentions:qe(K),contextInfo:{mentionedJid:qe(K)}}),b&&(p.quoted=M(t).replied,u&&(p.quoted.key.remoteJid=nt[u],p.quoted.key.participant=nt[u])),A&&(o={...o,contextInfo:{externalAdReply:M(t).banner}},o.contextInfo.externalAdReply.mediaType=1),D&&(o={...o,viewOnce:M(t)?.isViewOnce}),K&&(o={...o,text:K,caption:K},Z&&delete M(o).text),Z){let C=Je([t],["image","video","audio","sticker","document"]);if(J&&(o={...o,image:await $.image(C).toJpeg(),jpegThumbnail:await $.thumbnail(C).get()}),x){let _=M(t)?.ptv;o={...o,video:await $.video(C).toMp4(),ptv:_,jpegThumbnail:await $.thumbnail(C).get()};}if(B){let _=M(t)?.ptt;o={...o,audio:await $.audio(C).toOpus(),ptt:_,mimetype:_?"audio/ogg; codecs=opus":"audio/mpeg"};}if(q){let _=M(t)?.shape;o={...o,sticker:await $.sticker(C,{...this.client.options?.sticker,shape:_}).create()};}if(T){let _=await $.document(C).create();o={...o,fileName:M(t).fileName,..._};}}if(W){let C=M(t).location;o={...o,location:{degreesLatitude:C.latitude,degreesLongitude:C.longitude,url:C.url,address:C.footer,name:C.title}};}if(ie){let C=M(t)?.contacts,_=C?.contacts.map(se=>{let qt=["BEGIN:VCARD","VERSION:3.0",`FN:${se.fullname}`,`ORG:${se.organization||""}`,`TEL;type=CELL;type=VOICE;waid=${se.phoneNumber}:${se.phoneNumber}`,"END:VCARD"].join(`
|
|
5
|
+
`);return {displayName:se.fullname,vcard:qt}});o={...o,contacts:{displayName:C?.title,contacts:_}};}if(oe){let C=M(t)?.poll;o={...o,poll:{name:C.name,values:C.answers,selectableCount:C.isMultiple?1:0,toAnnouncementGroup:true}};}return r=="forward"&&(o={...o,contextInfo:{...M(o).contextInfo,isForwarded:true,forwardingScore:M(t).isForwardedMany?9999:1}}),r=="edit"&&(o={...o,edit:i?.key},await n.sendPresenceUpdate("paused",e)),r=="delete"&&(o={...o,delete:i?.key},await n.sendPresenceUpdate("paused",e)),G?await new Ce().send(e,t,p):await n.sendMessage(e,M(o),p)}async send(e,t){return await this.signal(e,t)}async forward(e,t){return await this.signal(e,t,"forward")}async button(e,t){return await this.signal(e,t,"button")}async edit(e,t){return await this.signal(e.key.remoteJid,t,"edit",e)}async delete(e){return E__default.default.isArray(e)?Promise.all(e.map(t=>this.signal(t.key.remoteJid,{},"delete",t))):await this.signal(e.key.remoteJid,{},"delete",e)}async presence(e,t){let r=a.get("socket"),i={typing:"composing",recording:"recording",online:"available",offline:"unavailable",paused:"paused"};return await r.sendPresenceUpdate(i[t],e)}async reaction(e,t){return await a.get("socket").sendMessage(e.key.remoteJid,{react:{text:t,key:e?.key}})}async memberLabel(e,t){return await a.get("socket").relayMessage(e,{protocolMessage:{type:30,memberLabel:{label:t,labelTimestamp:Date.now()}}},{})}};c();var it=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").communityCreate(e,t)}async createGroup(e,t,r){return await a.get("socket").communityCreateGroup(e,t,r)}async leave(e){return await a.get("socket").communityLeave(e)}async metadata(e){return await a.get("socket").communityMetadata(e)}async update(e,t,r){let i=a.get("socket");switch(t){case "subject":return await i.communityUpdateSubject(e,r);case "description":return await i.communityUpdateDescription(e,r)}}async group(e,t,r){let i=a.get("socket");switch(t){case "link":if(!r)throw "Group JID is required for linking";return await i.communityLinkGroup(e,r);case "unlink":if(!r)throw "Group JID is required for unlinking";return await i.communityUnlinkGroup(e,r);case "linked":return await i.communityFetchLinkedGroups(e)}}async participants(e,t,r,i){let n=a.get("socket");switch(t){case "list":return await n.communityRequestParticipantsList(e);case "request-update":return await n.communityRequestParticipantsUpdate(e,i,M(r));case "update":if(!r||!i)throw "Action and participants are required for update";return await n.communityParticipantsUpdate(e,i,M(r));case "all":return await n.communityFetchAllParticipating()}}async invite(e,t,...r){let i=a.get("socket");switch(t){case "code":return await i.communityInviteCode(e);case "revoke":return await i.communityRevokeInvite(e);case "accept":return await i.communityAcceptInvite(e);case "info":return await i.communityGetInviteInfo(e);case "revokeV4":return await i.communityRevokeInviteV4(e,r[0]);case "acceptV4":return await i.communityAcceptInviteV4(e,r[0])}}async settings(e,t,r){let i=a.get("socket");switch(t){case "ephemeral":return await i.communityToggleEphemeral(e,r);case "update":return await i.communitySettingUpdate(e,r);case "memberAdd":return await i.communityMemberAddMode(e,r);case "approval":return await i.communityJoinApprovalMode(e,r)}}},Ae=class{constructor(e){this.mlient=e;this.community=new it(e);}community};c();var ot=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").groupCreate(e,t)}async participant(e,t,r){return await a.get("socket").groupParticipantsUpdate(e,t,r)}async profile(e,t,r){let i=a.get("socket"),n=Buffer.isBuffer(t);switch(r){case "subject":if(!n)return await i.groupUpdateSubject(e,t);case "description":if(!n)return await i.groupUpdateDescription(e,t);case "picture":return await i.updateProfilePicture(e,await $.toBuffer(t))}}async setting(e,t){let r=a.get("socket");switch(t){case "open":return await r.groupSettingUpdate(e,"not_announcement");case "close":return await r.groupSettingUpdate(e,"announcement");case "locked":return await r.groupSettingUpdate(e,t);case "unlocked":return await r.groupSettingUpdate(e,t);case "all_member_add":return await r.groupMemberAddMode(e,t);case "admin_add":return await r.groupMemberAddMode(e,t)}}async leave(e){return await a.get("socket").groupLeave(e)}async inviteCode(e,t){let r=a.get("socket");switch(t){case "code":return await r.groupInviteCode(e);case "revoke":return await r.groupRevokeInvite(e);case "accept":return await r.groupAcceptInvite(e);case "info":return await r.groupGetInviteInfo(e)}}async metadata(e){let t=a.get("socket"),r=O.get(e);if(r)return r;let i=await t.groupMetadata(e);return i&&O.set(e,i),i}async requestJoin(e,t,r){let i=a.get("socket");switch(r){case "approve":return await i.groupRequestParticipantsUpdate(e,t,r);case "reject":return await i.groupRequestParticipantsUpdate(e,t,r)}}async requestJoinList(e){return await a.get("socket").groupRequestParticipantsList(e)}async fetchAllGroups(){return await a.get("socket").groupFetchAllParticipating()}async ephemeral(e,t){let r=a.get("socket"),i={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await r.groupToggleEphemeral(e,i[t])}},Pe=class{constructor(e){this.glient=e;this.group=new ot(e);}group};c();var st=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").newsletterCreate(e,t)}async action(e,t){let r=a.get("socket");switch(t){case "follow":return await r.newsletterFollow(e);case "unfollow":return await r.newsletterUnfollow(e);case "mute":return await r.newsletterMute(e);case "unmute":return await r.newsletterUnmute(e);}}async update(e,t,r){let i=a.get("socket"),n=Buffer.isBuffer(t);switch(r){case "name":if(!n)return await i.newsletterUpdateName(e,t);case "description":if(!n)return await i.newsletterUpdateDescription(e,t);case "picture":return await i.newsletterUpdatePicture(e,await $.toBuffer(t))}}async metadata(e,t){return await a.get("socket").newsletterMetadata(t,e)}async subscribers(e){return await a.get("socket").newsletterSubscribers(e)}async reaction(e,t,r){return await a.get("socket").newsletterReactMessage(e,t,r)}async fetchMessages(e,t,r,i){let n=a.get("socket"),o=r.getTime()/1e3,p=i.getTime()/1e3;return await n.newsletterFetchMessages(e,t,o,p)}async adminCount(e){return await a.get("socket").newsletterAdminCount(e)}async changeOwner(e,t){return await a.get("socket").newsletterChangeOwner(e,t)}async demote(e,t){return await a.get("socket").newsletterDemote(e,t)}async delete(e){return await a.get("socket").newsletterDelete(e)}async removePicture(e){return await a.get("socket").newsletterRemovePicture(e)}},Ee=class{constructor(e){this.nlient=e;this.newsletter=new st(e);}newsletter};c();var at=class{constructor(e){this.client=e;}async block(e){return await a.get("socket").updateBlockStatus(e,"block")}async unblock(e){return await a.get("socket").updateBlockStatus(e,"unblock")}async lastSeen(e){return await a.get("socket").updateLastSeenPrivacy(e)}async online(e){return await a.get("socket").updateOnlinePrivacy(e)}async picture(e){return await a.get("socket").updateProfilePicturePrivacy(e)}async status(e){return await a.get("socket").updateStatusPrivacy(e)}async readReceipt(e){return await a.get("socket").updateReadReceiptsPrivacy(e)}async groupsAdd(e){return await a.get("socket").updateGroupsAddPrivacy(e)}async ephemeral(e){let t=a.get("socket"),r={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await t.updateDefaultDisappearingMode(r[e])}async blocklist(){return await a.get("socket").fetchBlocklist()}async getSettings(){return await a.get("socket").fetchPrivacySettings(true)}},Re=class{constructor(e){this.plient=e;this.privacy=new at(e);}privacy};c();c();var da=m__default.default.object({status:m__default.default.enum(["connecting","open","close","reload","syncing"]),authType:m__default.default.enum(["pairing","qr"]),authTimeout:m__default.default.number().optional(),syncProgress:m__default.default.number().optional(),syncCompleted:m__default.default.boolean().default(false).optional(),qr:m__default.default.string().optional(),code:m__default.default.string().optional()});c();var Zn=m__default.default.enum(["unknown","android","ios","desktop","web"]),Yn=m__default.default.enum(["text","album","image","contact","location","document","audio","video","protocol","contacts","highlyStructured","sendPayment","requestPayment","groupStatusMention","statusMention","declinePaymentRequest","cancelPaymentRequest","template","sticker","groupInvite","product","deviceSent","lists","viewOnce","order","ephemeral","invoice","buttons","paymentInvite","interactive","reaction","sticker","interactiveResponse","pollCreation","pollUpdate","keepInChat","document","requestPhoneNumber","viewOnce","reaction","text","viewOnce","pollCreation","scheduledCallCreation","groupMentioned","pinInChat","pollCreation","scheduledCallEdit","ptv","botInvoke","callLog","encComment","bcall","lottieSticker","event","comment","placeholder","encEventUpdate"]),Lt=m__default.default.object({channelId:m__default.default.string(),uniqueId:m__default.default.string(),chatId:m__default.default.string(),chatType:Yn,receiverLid:m__default.default.string(),receiverId:m__default.default.string(),receiverName:m__default.default.string(),roomId:m__default.default.string(),roomName:m__default.default.string(),senderLid:m__default.default.string(),senderId:m__default.default.string(),senderName:m__default.default.string(),senderDevice:Zn,timestamp:m__default.default.number(),text:m__default.default.string().nullable(),mentions:m__default.default.string().array(),links:m__default.default.string().array(),isBot:m__default.default.boolean(),isFromMe:m__default.default.boolean(),isPrefix:m__default.default.boolean(),isSpam:m__default.default.boolean(),isTagMe:m__default.default.boolean(),isStatusMention:m__default.default.boolean(),isGroupStatusMention:m__default.default.boolean(),isHideTags:m__default.default.boolean(),isGroup:m__default.default.boolean(),isNewsletter:m__default.default.boolean(),isQuestion:m__default.default.boolean(),isStory:m__default.default.boolean(),isViewOnce:m__default.default.boolean(),isEdited:m__default.default.boolean(),isDeleted:m__default.default.boolean(),isPinned:m__default.default.boolean(),isUnPinned:m__default.default.boolean(),isBroadcast:m__default.default.boolean(),isEphemeral:m__default.default.boolean(),isForwarded:m__default.default.boolean(),citation:m__default.default.record(m__default.default.string(),m__default.default.function({output:m__default.default.promise(m__default.default.boolean())})).nullable(),media:m__default.default.object({buffer:m__default.default.function({output:m__default.default.promise(m__default.default.instanceof(Buffer))}),stream:m__default.default.function({output:m__default.default.promise(m__default.default.instanceof(Qn__default.default))})}).loose().nullable(),injection:m__default.default.record(m__default.default.string(),m__default.default.any()).default({}),message:m__default.default.function({input:[],output:m__default.default.custom()})}),wa=Lt.extend({replied:Lt.nullable()});c();var xa=m__default.default.object({callId:m__default.default.string(),callerId:m__default.default.string(),roomId:m__default.default.string(),roomName:m__default.default.string(),date:m__default.default.date(),offline:m__default.default.boolean(),status:m__default.default.enum(["accept","offer","reject","ringing","terminate","timeout"]),isVideo:m__default.default.boolean(),isGroup:m__default.default.boolean()});c();var Fe=class{constructor(e){this.client=e;this.initialize();}logsInitialized=false;logsDisplayed=false;isReady=false;getRoomColor(e){return e?.isNewsletter?"blue":e?.isGroup?e?.isGroup?"lime":"dimgray":"orange"}initialize(){if(!this.client.options.showLogs||this.logsInitialized)return;this.logsInitialized=true;let e=async({status:t})=>{t==="open"&&(this.isReady=true,this.logsDisplayed||setTimeout(()=>{this.displayIndicator();},500));};a.events.on("connection",e);}displayIndicator(){this.logsDisplayed||(this.logsDisplayed=true,console.log(),a.spinner.info("Logs Indicator:"),console.log(y(" \u2022","orange")+" Private Chat"),console.log(y(" \u2022","lime")+" Group Chat"),console.log(y(" \u2022","blue")+" Newsletter Chat"),console.log());}message(e){if(!this.isReady)return;let t=M(this.getRoomColor(e)),r=e?.text?.toLowerCase()?.match("zaileys"),i=this.client.options?.fancyLogs,n=y(`[${new Date(e?.timestamp).toTimeString().split(" ")[0]}]`,"dimgray"),o=y(`${e?.roomName}`,t),p=e?.text?.slice(0,300)||"",l=p?.length>=300?"...":"";if(i){let u=y("\u2501".repeat(50),"dimgray"),v=y("\u2192","dimgray"),S=y("\u2022",t),b=`
|
|
6
|
+
${u}
|
|
7
|
+
`;b+=`${S} ${n} ${v} ${o}
|
|
8
|
+
`,e?.isNewsletter?(b+=` ${y("\u{1F4E2} Room:","dimgray")} ${y(`${e?.roomName}`,t)}
|
|
9
|
+
`,b+=` ${y("\u{1F194} ID:","dimgray")} ${y(`${L(e?.roomId)}`,"gray")}
|
|
10
|
+
`):(b+=` ${y("\u{1F464} Sender:","dimgray")} ${y(`${e?.senderName}`,t)}
|
|
11
|
+
`,b+=` ${y("\u{1F194} ID:","dimgray")} ${y(`${L(e?.senderId)}`,"gray")}
|
|
12
|
+
`,e?.isGroup&&(b+=` ${y("\u{1F3E0} Group:","dimgray")} ${y(`${e?.roomName}`,"lime")}
|
|
13
|
+
`)),b+=` ${y("\u{1F4DD} Type:","dimgray")} ${y(`${e?.chatType||"text"}`,"cyan")}
|
|
14
|
+
`,b+=` ${y("\u{1F4AC} Text:","dimgray")} ${y(p+l,r?["#ff5f6d","#ffc371"]:"brown")}
|
|
15
|
+
`,e?.isSpam&&(b+=` ${y("\u26A0\uFE0F Spam:","dimgray")} ${y("Yes","red")}
|
|
16
|
+
`),e?.isForwarded&&(b+=` ${y("\u21AA\uFE0F Forwarded:","dimgray")} ${y("Yes","yellow")}
|
|
17
|
+
`),e?.isEdited&&(b+=` ${y("\u270F\uFE0F Edited:","dimgray")} ${y("Yes","yellow")}
|
|
18
|
+
`),b+=`${u}`,console.log(b);}else {let u=`${n} \u2192 ${o}
|
|
19
|
+
`;e?.isNewsletter?u+=`${y("[room]","dimgray")} \u2192 ${y(`${e?.roomName} (${L(e?.roomId)})`,t)}
|
|
20
|
+
`:u+=`${y("[sender]","dimgray")} \u2192 ${y(`${e?.senderName} (${L(e?.senderId)})`,t)}
|
|
21
|
+
`,u+=`${y(`[${e?.chatType||"unknown"}]`,"dimgray")} \u2192 ${y(p+l,r?["#ff5f6d","#ffc371"]:"brown")}
|
|
22
|
+
`,u+="\u2014",console.log(u);}}call(e){if(!this.isReady)return;let t=M(this.getRoomColor(e)),r=y(`[${new Date(e?.date).toTimeString().split(" ")[0]}]`,"dimgray"),i=y(`${e?.roomName}`,t),n=`${r} \u2192 ${i}
|
|
23
|
+
`;n+=`${y("[caller]","dimgray")} \u2192 ${y(`${e?.callerId} (${L(e?.callerId)})`,t)}
|
|
24
|
+
`,n+=`${y(`[${e?.status}]`,"dimgray")} \u2192 ${y(e?.isVideo?"Video Call":"Voice Call","brown")}
|
|
25
|
+
`,n+="\u2014",console.log(n);}};c();var Be=class{stack=[];use(e){return this.stack.push(e),this}async run(e){let t=-1,r=async i=>{if(i<=t)throw "next() called multiple times";t=i;let n=this.stack[i];if(n)try{await n(e,()=>r(i+1));}catch(o){throw console.error("Middleware error:",o),o}};await r(0);}};c();var $e=class{constructor(e){this.client=e;}interval=null;start(){let e=this.client.options.autoCleanUp;e?.enabled&&(this.interval=setInterval(()=>{this.run();},e.intervalMs),this.run());}stop(){this.interval&&(clearInterval(this.interval),this.interval=null);}async run(){let e=this.client.options.autoCleanUp;if(!e?.enabled)return;let t=Date.now()-e.maxAgeMs;for(let r of e.scopes)try{let i=this.client.db(r),n=await i.query(r).where("timestamp","<",t).get();if(n.length>0){let o=n.map(p=>p.key?.id||p.id);await i.batchDelete(o),a.spinner.info(` [CleanUpManager] Cleaned up ${n.length} items from ${r}`);}}catch{}}};c();var Oe=class{constructor(e){this.client=e;this.keysDb=fe(e.options.session),this.setupLogFilters();}keysDb;setupLogFilters(){let e=console.error,t=console.log,r=i=>{let n=i.join(" ");return ["Bad MAC","Session error:","Closing open session in favor of incoming prekey bundle","Error: Bad MAC"].some(p=>n.includes(p))};console.error=(...i)=>{r(i)||e.apply(console,i);},console.log=(...i)=>{r(i)||t.apply(console,i);};}async repair(e){if(!e)return;let t=[`session:${e}`,`sender-key:${e}`];try{await this.keysDb.batchDelete(t),await this.keysDb.flush(),a.spinner.warn(` [HealthManager] Repaired session for ${e} due to Bad MAC`);}catch{}}get logger(){return Ht__default.default({level:"debug"},{write:e=>{try{let t=JSON.parse(e);if(t.msg?.includes("Bad MAC")){let r=t.jid||t.remoteJid;r&&this.repair(r);}}catch{}}})}};c();var De=class{plugins=[];pluginsDir;globalEnabled=true;disabledPlugins=new Set;constructor(e=ee__namespace.join(process.cwd(),"plugins")){this.pluginsDir=e;}async getAllFiles(e,t=e){try{await Ne__namespace.promises.access(e);}catch{return []}let r=await Ne__namespace.promises.readdir(e,{withFileTypes:true});return (await Promise.all(r.map(async n=>{let o=ee__namespace.join(e,n.name);if(n.isDirectory())return this.getAllFiles(o,t);if((n.name.endsWith(".ts")||n.name.endsWith(".js"))&&!n.name.endsWith(".d.ts")){let l=ee__namespace.relative(t,e),u=l===""?null:l.split(ee__namespace.sep)[0];return [{filePath:o,parent:u}]}return []}))).flat()}async load(){try{await Ne__namespace.promises.access(this.pluginsDir);}catch{return}let e=await this.getAllFiles(this.pluginsDir),t=await Promise.all(e.map(async({filePath:r,parent:i})=>{try{let o=(await import(url.pathToFileURL(r).href)).default;if(o?.default&&(o=o.default),o?.handler&&o?.config){let p=this.getPluginId(o.config.matcher);return {...o,parent:i,enabled:!this.disabledPlugins.has(p)}}}catch{}return null}));this.plugins=t.filter(r=>r!==null);}getPluginId(e){return e.map(t=>t.toString()).join("|")}async execute(e,t){if(!this.globalEnabled)return;let r=t.messages.text||"";for(let i of this.plugins)if(i.enabled)try{this.match(r,i.config.matcher)&&await i.handler(e,t);}catch{}}match(e,t){return t.some(r=>r instanceof RegExp?r.test(e):e===r||e.startsWith(r+" "))}enableAll(){this.globalEnabled=true,this.plugins.forEach(e=>e.enabled=true),this.disabledPlugins.clear();}disableAll(){this.globalEnabled=false;}enable(e){let t=e.toString(),r=this.plugins.find(i=>i.config.matcher.some(n=>n.toString()===t));return r?(r.enabled=true,this.disabledPlugins.delete(this.getPluginId(r.config.matcher)),true):false}disable(e){let t=e.toString(),r=this.plugins.find(i=>i.config.matcher.some(n=>n.toString()===t));return r?(r.enabled=false,this.disabledPlugins.add(this.getPluginId(r.config.matcher)),true):false}enableByParent(e){let t=0;return this.plugins.forEach(r=>{r.parent===e&&(r.enabled=true,this.disabledPlugins.delete(this.getPluginId(r.config.matcher)),t++);}),t}disableByParent(e){let t=0;return this.plugins.forEach(r=>{r.parent===e&&(r.enabled=false,this.disabledPlugins.add(this.getPluginId(r.config.matcher)),t++);}),t}isEnabled(){return this.globalEnabled}getLoadedPlugins(){return this.plugins}getPluginsInfo(){return this.plugins.map(e=>({matcher:e.config.matcher,metadata:e.config.metadata,parent:e.parent,enabled:e.enabled}))}async reload(){this.plugins=[],await this.load();}},Ja=(s,e)=>({handler:s,config:e});var zt=class{constructor(e){this.options=e;this.options=le(Dt,e);let t=new te().classInjection(this,[new Ie(this),new Pe(this),new Re(this),new Ee(this),new Ae(this)]);return this._ready=this.initialize(t),t}_ready;logs;middleware=new Be;plugins=new De;health;cleanup;async initialize(e){await Ft(),await ze(this.options.disableFFmpeg),this.health=new Oe(this),this.cleanup=new $e(this),this.options.autoCleanUp?.enabled&&this.cleanup.start(),await wt(this),await this.plugins.load(),new Se(e||this),this.logs||(this.logs=new Fe(this));}ready(){return this._ready}db(e){return lt(this.options.session,e)}on(e,t){a.events.on(e,t);}use(e){return this.middleware.use(e),this}get socket(){return a.get("socket")}async getRoomName(e){let t=a.get("socket"),r=e.endsWith("@g.us"),i=null;if(r){let n=O.get(e);if(n)i=n.subject;else {let o=await t.groupMetadata(e);o&&(O.set(e,o),i=o.subject);}}return H(i)}inject(e,t){Y.inject(e,t);}getInjection(e){return Y.getSync(e)}removeInjection(e){Y.remove(e);}clearInjections(){Y.clear();}};
|
|
14
26
|
/*
|
|
15
27
|
* Copyright (c) 2025 zaadevofc.
|
|
16
28
|
* All rights reserved.
|
|
@@ -18,7 +30,7 @@ by ${e} \xB7 v${a}`,r=`${n?"Already using latest version!":`Update available! (v
|
|
|
18
30
|
* See LICENSE file for details.
|
|
19
31
|
|
|
20
32
|
* Author: zaadevofc
|
|
21
|
-
* Last build time: 12/
|
|
33
|
+
* Last build time: 12/23/2025 9:25:08 AM
|
|
22
34
|
*
|
|
23
35
|
* Repository: git+https://github.com/zeative/zaileys.git
|
|
24
|
-
*/
|
|
36
|
+
*/exports.BaseMessagesType=Lt;exports.ButtonInteractiveCallType=In;exports.ButtonInteractiveCopyType=Cn;exports.ButtonInteractiveReplyType=Tn;exports.ButtonInteractiveSingleSelectType=An;exports.ButtonInteractiveType=Pn;exports.ButtonInteractiveUrlType=Sn;exports.ButtonSimpleType=En;exports.ButtonType=Ot;exports.CitationType=Fn;exports.Client=zt;exports.ClientAuthPairingType=Nn;exports.ClientAuthQRType=Dn;exports.ClientBaseType=Nt;exports.ClientOptionsType=Dt;exports.DEVICE_ENUM_TYPES=Zn;exports.EventEnumType=xs;exports.FakeReplyType=Bn;exports.LimiterType=Rn;exports.ListenerCallsType=xa;exports.ListenerConnectionType=da;exports.ListenerMessagesType=wa;exports.MESSAGE_ENUM_TYPES=Yn;exports.MediaModifier=et;exports.Plugins=De;exports.StickerMetadataType=$n;exports.StickerShapeType=rt;exports.autoCleanUp=On;exports.cleanJid=L;exports.cleanMediaObject=Tt;exports.definePlugins=Ja;exports.extractJids=qe;exports.extractUrls=Pt;exports.findGlobalWord=me;exports.findNestedByKeys=ao;exports.generateId=X;exports.getDeepContent=ye;exports.getLatestLibVersion=Ct;exports.getUsersMentions=vt;exports.ignoreLint=M;exports.logColor=y;exports.mediaModifier=$;exports.modifyFn=co;exports.normalizeText=H;exports.numbersToJids=wi;exports.pickKeysFromArray=Je;exports.randomize=so;exports.registerAuthCreds=wt;exports.removeAuthCreds=It;exports.shuffleString=oo;exports.toJson=Ge;exports.toString=ue;exports.useAuthState=gt;
|