@lzif/zaileys 1.0.0 → 1.1.1

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/dist/index.d.mts CHANGED
@@ -726,6 +726,7 @@ declare const ClientBaseType: z$1.ZodObject<{
726
726
  ignoreMe: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
727
727
  showLogs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
728
728
  fancyLogs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
729
+ showSpinner: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
729
730
  syncFullHistory: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
730
731
  disableFFmpeg: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
731
732
  autoMarkAI: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
@@ -784,6 +785,7 @@ declare const ClientOptionsType: z$1.ZodUnion<readonly [z$1.ZodObject<{
784
785
  ignoreMe: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
785
786
  showLogs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
786
787
  fancyLogs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
788
+ showSpinner: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
787
789
  syncFullHistory: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
788
790
  disableFFmpeg: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
789
791
  autoMarkAI: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
@@ -833,6 +835,7 @@ declare const ClientOptionsType: z$1.ZodUnion<readonly [z$1.ZodObject<{
833
835
  ignoreMe: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
834
836
  showLogs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
835
837
  fancyLogs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
838
+ showSpinner: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
836
839
  syncFullHistory: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
837
840
  disableFFmpeg: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
838
841
  autoMarkAI: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
package/dist/index.d.ts CHANGED
@@ -726,6 +726,7 @@ declare const ClientBaseType: z$1.ZodObject<{
726
726
  ignoreMe: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
727
727
  showLogs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
728
728
  fancyLogs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
729
+ showSpinner: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
729
730
  syncFullHistory: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
730
731
  disableFFmpeg: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
731
732
  autoMarkAI: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
@@ -784,6 +785,7 @@ declare const ClientOptionsType: z$1.ZodUnion<readonly [z$1.ZodObject<{
784
785
  ignoreMe: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
785
786
  showLogs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
786
787
  fancyLogs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
788
+ showSpinner: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
787
789
  syncFullHistory: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
788
790
  disableFFmpeg: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
789
791
  autoMarkAI: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
@@ -833,6 +835,7 @@ declare const ClientOptionsType: z$1.ZodUnion<readonly [z$1.ZodObject<{
833
835
  ignoreMe: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
834
836
  showLogs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
835
837
  fancyLogs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
838
+ showSpinner: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
836
839
  syncFullHistory: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
837
840
  disableFFmpeg: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
838
841
  autoMarkAI: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
package/dist/index.js CHANGED
@@ -1,26 +1,28 @@
1
- 'use strict';var ke=require('fluent-ffmpeg'),le=require('fs/promises'),os=require('os'),J=require('path'),tn=require('baileys'),jetdb=require('jetdb'),pe=require('node-cache'),Ht=require('pino'),events=require('events'),asyncMutex=require('async-mutex'),fileType=require('file-type'),jimp=require('jimp'),dn=require('node-webpmux'),E=require('lodash'),Ct=require('unorm'),zodValidationError=require('zod-validation-error'),At=require('gradient-string');require('figlet');var kn=require('qrcode-terminal'),rateLimiterFlexible=require('rate-limiter-flexible'),m=require('zod'),Qn=require('stream'),X=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 ke__default=/*#__PURE__*/_interopDefault(ke);var le__default=/*#__PURE__*/_interopDefault(le);var J__namespace=/*#__PURE__*/_interopNamespace(J);var tn__default=/*#__PURE__*/_interopDefault(tn);var pe__default=/*#__PURE__*/_interopDefault(pe);var Ht__default=/*#__PURE__*/_interopDefault(Ht);var dn__default=/*#__PURE__*/_interopDefault(dn);var E__default=/*#__PURE__*/_interopDefault(E);var Ct__default=/*#__PURE__*/_interopDefault(Ct);var At__default=/*#__PURE__*/_interopDefault(At);var kn__default=/*#__PURE__*/_interopDefault(kn);var m__default=/*#__PURE__*/_interopDefault(m);var Qn__default=/*#__PURE__*/_interopDefault(Qn);var X__namespace=/*#__PURE__*/_interopNamespace(X);var qt=Object.defineProperty;var Vt=(o=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(o,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):o)(function(o){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var pt=(o,e)=>()=>(o&&(e=o(o=0)),e);var Gt=(o,e)=>{for(var t in e)qt(o,t,{get:e[t],enumerable:true});};var c=pt(()=>{});var bt={};Gt(bt,{BufferConverter:()=>C,FFMPEG_CONSTANTS:()=>b,FFmpegProcessor:()=>j,FileManager:()=>h,MimeValidator:()=>R,initializeFFmpeg:()=>qe});var b,qe,h,C,R,j,G=pt(()=>{c();b={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"}},qe=async(o=false)=>{if(!o)try{let e=(await import('@ffmpeg-installer/ffmpeg')).default,t=(await import('@ffprobe-installer/ffprobe')).default;ke__default.default.setFfmpegPath(e.path),ke__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 J__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}`)}}},C=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){if(e.startsWith("http://")||e.startsWith("https://"))return this.fromUrl(e);try{if(await le__default.default.stat(e).then(t=>t.isFile()).catch(()=>!1))return await le__default.default.readFile(e)}catch{}return 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}`)}}static async getExtension(e){let{fileTypeFromBuffer:t}=await import('file-type'),n=await t(e);if(!n)return "tmp";let i=n.ext.toLowerCase();return ["wav","ogg","mp4","gif","jpg","webp","tmp","mp3","png"].includes(i)?i:"tmp"}},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(b.MIME.IMAGE)||e.startsWith(b.MIME.VIDEO)}static isAnimated(e){return e===b.MIME.GIF||e.startsWith(b.MIME.VIDEO)}},j=class{static async process(e){return new Promise((t,n)=>{let i=ke__default.default(e.input).output(e.output);for(let r=0;r<e.options.length;r++){let s=e.options[r];s.startsWith("-")&&r+1<e.options.length&&!e.options[r+1].startsWith("-")?(i.outputOptions(s,e.options[r+1]),r++):i.outputOptions(s);}i.on("end",async()=>{try{await e.onEnd(),t();}catch(r){n(r);}}).on("error",async r=>{try{await e.onError(r);}finally{n(r);}}).run();})}static async getDuration(e){return new Promise((t,n)=>{ke__default.default.ffprobe(e,(i,r)=>{if(i)return n(i);t(r.format.duration||0);});})}};});c();c();c();c();var lt=o=>jetdb.createJetDB(`${o}/auth/creds.json`,{BufferJSON:tn.BufferJSON,cacheSize:100,flushMode:"sync",compression:"none",enableIndexing:false}),he=o=>jetdb.createJetDB(`${o}/auth/keys.json`,{BufferJSON:tn.BufferJSON,size:1024*1024,cacheSize:2e3,flushMode:"sync",compression:"none",enableIndexing:false,hotThreshold:5}),ut=(o,e)=>jetdb.createJetDB(`.session/${o}/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 mt=new pe__default.default({stdTTL:600,checkperiod:120,useClones:false}),D=new pe__default.default({stdTTL:300,useClones:false}),dt=new pe__default.default({stdTTL:300}),ft=new pe__default.default({stdTTL:600,checkperiod:120,useClones:false,deleteOnExpire:true,maxKeys:100}),gt=new pe__default.default;c();var re=class{classInjection(e,t){let n=t.length;return new Proxy(e,{get(i,r,s){if(r in i){let l=Reflect.get(i,r,s);return typeof l=="function"?l.bind(i):l}for(let l=0;l<n;l++){let p=t[l];if(r in p){let u=Reflect.get(p,r,p);return typeof u=="function"?u.bind(p):u}}},set(i,r,s,l){if(r in i)return Reflect.set(i,r,s,l);for(let p=0;p<n;p++){let u=t[p];if(r in u)return Reflect.set(u,r,s,l)}return Reflect.set(i,r,s,l)},has(i,r){if(r in e)return true;for(let s=0;s<n;s++)if(r in t[s])return true;return false},ownKeys(){let i=[];for(let r of Reflect.ownKeys(e))i.push(r);for(let r=0;r<n;r++)for(let s of Reflect.ownKeys(t[r]))i.includes(s)||i.push(s);return i},getOwnPropertyDescriptor(i,r){let s=Object.getOwnPropertyDescriptor(e,r);if(s)return s;for(let l=0;l<n;l++)if(s=Object.getOwnPropertyDescriptor(t[l],r),s)return s}})}};var Qt=(o="",e={})=>{let t={text:o,color:e.color||"white",...e},n=(i,r)=>{typeof r=="string"?t.text=r:r?.text&&(t.text=r.text);let s=r?.mark||i;console.log(`${s} ${t.text}`);};return {start(i){return typeof i=="string"&&(t.text=i),console.log(`[-] ${t.text} (started)`),this},stop(i){return n("[\u25A0]",i),this},success(i){return n("[\u221A]",i),this},warn(i){return n("[!]",i),this},error(i){return n("[\xD7]",i),this},info(i){return n("[i]",i),this},update(i){return typeof i=="string"?t.text=i:Object.assign(t,i),console.log(`[update] ${t.text}`),this},spin(){return this},reset(){return console.log("[reset]"),this},clear(){return this}}},Le=class extends pe__default.default{constructor(){return super({useClones:false}),new re().classInjection(this,[mt])}spinner=Qt("",{color:"green"});logger=Ht__default.default({level:"silent",enabled:false});events=new events.EventEmitter},a=new Le;var yt=async o=>{a.spinner.start(" Initializing auth state...");let e=lt(o),t=he(o),n=await e.get("creds"),i=n||tn.initAuthCreds();return n?a.spinner.success(" Auth credentials loaded successfully"):a.spinner.success(" Initialized new auth session"),{state:{creds:i,keys:{get:async(r,s)=>{let l={};return await Promise.all(s.map(async p=>{let u=`${r}:${p}`,k=await t.get(u);r==="app-state-sync-key"&&k&&(k=tn.proto.Message.AppStateSyncKeyData.fromObject(k)),l[p]=k;})),l},set:async r=>{let s=[],l=[];for(let p in r)for(let u in r[p]){let k=r[p][u],T=`${p}:${u}`;k?s.push({key:T,value:k}):l.push(T);}s.length&&await t.batchSet(s),l.length&&await t.batchDelete(l),await t.flush();}}},saveCreds:async()=>{await e.set("creds",i),await e.flush();}}};c();c();var wt=(o,e)=>({logger:o.health.logger,printQRInTerminal:false,enableRecentMessageCache:true,emitOwnEvents:true,keepAliveIntervalMs:3e4,browser:tn.Browsers.ubuntu("Chrome"),markOnlineOnConnect:o.options.autoOnline,syncFullHistory:o.options.syncFullHistory,msgRetryCounterCache:gt,mediaCache:dt,auth:{creds:e.creds,keys:tn.makeCacheableSignalKeyStore(e.keys,a.logger)},cachedGroupMetadata:async t=>D.get(t),shouldIgnoreJid:()=>false,shouldSyncHistoryMessage:()=>o.options.syncFullHistory,patchMessageBeforeSending:t=>t,getMessage:async t=>{if(!t?.remoteJid)return tn.proto.Message.fromObject({});let n=await o.db("messages").getByIndex("messages","key.id",t.id);return tn.proto.Message.fromObject(n[0])}});var kt=async o=>{let e=`.session/${o.options.session}`;console.info=()=>{},console.warn=()=>{};let{state:t,saveCreds:n}=await yt(e),i=wt(o,t),r=tn__default.default(i);r.ev.on("creds.update",n),a.set("socket",r);};c();c();c();var we=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 n of e.scopes)try{let i=this.client.db(n),r=await i.query(n).where("timestamp","<",t).get();if(r.length>0){let s=r.map(l=>l.key?.id||l.id);await i.batchDelete(s),a.spinner.info(` [CleanUpManager] Cleaned up ${r.length} items from ${n}`);}}catch{}}};c();var ze=class{store=ft;mutex=new asyncMutex.Mutex;async inject(e,t){let n=await this.mutex.acquire();try{this.store.set(e,t);}finally{n();}}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()}},te=new ze;c();G();c();G();var ie=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 n=await C.toBuffer(e),i=await fileType.fileTypeFromBuffer(n);R.validate(i,b.MIME.AUDIO);let r=await C.getExtension(n),s=h.createTempPath("audio_in",r),l=t==="opus"?"ogg":"mp3",p=h.createTempPath("audio_out",l);await h.safeWriteFile(s,n);let u;try{let k=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:s,output:p,options:k,onEnd:async()=>{u=await h.safeReadFile(p);},onError:async()=>{await h.cleanup([s,p]);}}),await h.cleanup([s,p]),u}catch(k){throw await h.cleanup([s,p]),new Error(`${t.toUpperCase()} conversion failed: ${k.message}`)}}};c();G();var U=class{static async toMp4(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);R.validate(n,b.MIME.VIDEO);let i=await C.getExtension(t),r=h.createTempPath("video_in",i),s=h.createTempPath("video_out","mp4");await h.safeWriteFile(r,t);let l;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:r,output:s,options:p,onEnd:async()=>{l=await h.safeReadFile(s);},onError:async()=>{await h.cleanup([r,s]);}}),await h.cleanup([r,s]),l}catch(p){throw await h.cleanup([r,s]),new Error(`Video re-encoding failed: ${p.message}`)}}static async thumbnail(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);R.validate(n,b.MIME.VIDEO);let i=await C.getExtension(t),r=h.createTempPath("video",i),s=h.createTempPath("thumb","jpg");await h.safeWriteFile(r,t);let l;try{return await new Promise((p,u)=>{ke__default.default(r).screenshots({timestamps:[b.THUMBNAIL.TIMESTAMP],filename:J__namespace.default.basename(s),folder:J__namespace.default.dirname(s),size:`${b.THUMBNAIL.SIZE}x${b.THUMBNAIL.SIZE}`}).on("end",async()=>{try{l=(await h.safeReadFile(s)).toString("base64"),p();}catch(k){u(k);}}).on("error",u);}),await h.cleanup([r,s]),l}catch(p){throw await h.cleanup([r,s]),new Error(`Thumbnail generation failed: ${p.message}`)}}static async duration(e){return j.getDuration(e)}};c();G();var L;try{L=Vt("sharp");}catch{L=null;}var N=class{static async thumbnail(e){let t=await fileType.fileTypeFromBuffer(e),n=b.THUMBNAIL.SIZE;if(L){let s=L(e).resize(n,n,{fit:"cover"});return t?.mime===b.MIME.GIF&&s.resize(n,n),(await s.jpeg({quality:b.THUMBNAIL.QUALITY}).toBuffer()).toString("base64")}let i=await jimp.Jimp.read(e);return i.cover({w:n,h:n}),t?.mime===b.MIME.GIF&&i.resize({w:n,h:n}),(await i.getBuffer("image/jpeg",{quality:b.THUMBNAIL.QUALITY})).toString("base64")}static async resize(e,t,n){if(L)return await L(e).resize(t,n,{fit:"cover"}).png().toBuffer();let i=await jimp.Jimp.read(e);return i.cover({w:t,h:n}),await i.getBuffer("image/png")}static async toJpeg(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);if(!n||!n.mime.startsWith(b.MIME.IMAGE))throw new Error("Invalid image type");return n.mime==="image/webp"?L?await L(t).jpeg().toBuffer():await(await jimp.Jimp.read(t)).getBuffer("image/jpeg"):t}static async resizeForSticker(e,t,n="default"){let i=b.STICKER.SIZE;if(L&&n==="default")return await L(e).resize(i,i,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).webp({quality:t}).toBuffer();let r=await jimp.Jimp.read(e);if(r.contain({w:i,h:i}),n!=="default"){let T=new jimp.Jimp({width:i,height:i,color:0});for(let x=0;x<i;x++)for(let A=0;A<i;A++){let W=false,H=i/2,K=i/2;switch(n){case "circle":{let v=A-H,F=x-K;W=v*v+F*F<=H*H;break}case "rounded":{let v=i/10,F=A>=v&&A<i-v&&x>=0&&x<i,V=A>=0&&A<i&&x>=v&&x<i-v,S=false,$=[[v,v],[i-v,v],[v,i-v],[i-v,i-v]];for(let[oe,ae]of $){let ee=A-oe,Q=x-ae;if(ee*ee+Q*Q<=v*v){S=true;break}}W=F||V||S;break}case "oval":{let v=i/2,F=i/3,V=(A-H)/v,S=(x-K)/F;W=V*V+S*S<=1;break}}W&&T.setPixelColor(4294967295,A,x);}r.mask(T);}let s=h.createTempPath("sticker_img","png"),l=h.createTempPath("sticker_out","webp"),p=await r.getBuffer("image/png");await h.safeWriteFile(s,p);let{FFmpegProcessor:u}=await Promise.resolve().then(()=>(G(),bt)),k;try{return await u.process({input:s,output:l,options:["-vf",`scale=${i}:${i}`,"-quality",String(t),"-f","webp"],onEnd:async()=>{k=await h.safeReadFile(l);},onError:async()=>{await h.cleanup([s,l]);}}),await h.cleanup([s,l]),k}catch(T){throw await h.cleanup([s,l]),new Error(`Sticker resize failed: ${T.message}`)}}};c();c();var ne=o=>{let e;Array.isArray(o)?e=o.join("|"):typeof o=="string"?e=o:e=String(o);let t=2166136261,n=e.length;for(let i=0;i<n;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()},Tt=(o="")=>{if(!o)return [];let e=new Set;for(let t of o.matchAll(/@(\d+)/g))e.add(t[1]);return E__default.default.toArray(e)},Ve=(o="")=>{if(!o)return [];let e=new Set;for(let t of o.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`])},ki=o=>E__default.default.isEmpty(o)?[]:E__default.default.map([...o],e=>`${e}@s.whatsapp.net`),St=o=>E__default.default.omit(o,["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"]),be=o=>{if(!o)return {leaf:void 0,chain:[]};let e=tn.extractMessageContent(o)||o,t=[];for(;e&&typeof e=="object";){let n=tn.getContentType(e);if(!n)break;t.push(n);let i=e[n];if(!i||typeof i!="object"){e=i;break}e=i;}return {leaf:e,chain:t}},z=o=>Number(o?.split("@")[0]);c();var M=o=>o,un=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(o){throw o}},It=async o=>{try{let e=`.session/${o}/auth/creds.json`;await le__default.default.unlink(e);}catch(e){throw a.spinner.error(`Failed to remove auth creds for session "${o}"!`),e}},Y=(o="")=>{if(!o?.length)return null;let e=o.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=>Ct__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=>Ct__default.default.nfkc(t)).join("").normalize("NFC").replace(/\s+/g," ").trim();return e.length?e:null};G();var xe=class{static async create(e,t){try{let n=await C.toBuffer(e),i=await fileType.fileTypeFromBuffer(n);if(!i)throw new Error("Unable to detect file type");let r=t?.quality||b.STICKER.DEFAULT_QUALITY,s=R.isAnimated(i.mime),l=t?.shape||"default",p=s?await this.processAnimated(n,i.mime,r):await N.resizeForSticker(n,r,l),u=this.createExifMetadata(t),k=new dn__default.default.Image;await k.load(p),k.exif=u;let T=await k.save(null);return Buffer.isBuffer(T)?T:Buffer.from(T)}catch(n){throw new Error(`Sticker creation failed: ${n.message||n}`)}}static createExifMetadata(e){let t={"sticker-pack-id":ne(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]),i=Buffer.from(JSON.stringify(t),"utf8"),r=Buffer.concat([n,i]);return r.writeUIntLE(i.length,14,4),r}static async processAnimated(e,t,n){let i=this.getExtension(t),r=h.createTempPath("sticker_in",i),s=h.createTempPath("sticker_out","webp");await h.safeWriteFile(r,e);let l=b.STICKER.MAX_DURATION;try{let A=await U.duration(r);l=M(Math.min(A,b.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",b.STICKER.MAX_DURATION);}let p=b.STICKER.SIZE,u=b.STICKER.FPS,k=`scale=${p}:${p}:force_original_aspect_ratio=increase,crop=${p}:${p},fps=${u},format=rgba`,T=Math.max(1,Math.min(100,100-n)),x;try{return await j.process({input:r,output:s,options:["-vcodec libwebp",`-vf ${k}`,`-q:v ${T}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${l}`,`-compression_level ${b.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{x=await h.safeReadFile(s);},onError:async()=>{await h.cleanup([r,s]);}}),await h.cleanup([r,s]),x}catch(A){throw await h.cleanup([r,s]),new Error(`Animated sticker processing failed: ${A.message}`)}}static getExtension(e){return e===b.MIME.GIF?"gif":e.startsWith(b.MIME.VIDEO)?"mp4":"tmp"}};c();G();G();var Me=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");let i;return n.mime.startsWith(b.MIME.VIDEO)?i=await U.thumbnail(t):R.isMedia(n.mime)?i=await N.thumbnail(t):i="",{document:t,mimetype:n.mime,fileName:ne(Date.now().toString()),jpegThumbnail:i}}catch(t){throw new Error(`Document creation failed: ${t.message||t}`)}}};c();var ve=class{constructor(e){this.client=e;this.keysDb=he(e.options.session),this.setupLogFilters();}keysDb;setupLogFilters(){let e=console.error,t=console.log,n=i=>{let r=i.join(" ");return ["Bad MAC","Session error:","Closing open session in favor of incoming prekey bundle","Error: Bad MAC"].some(l=>r.includes(l))};console.error=(...i)=>{n(i)||e.apply(console,i);},console.log=(...i)=>{n(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 n=t.jid||t.remoteJid;n&&this.repair(n);}}catch{}}})}};c();var de=(o,e)=>{try{return o.parse(e)}catch(t){let n=zodValidationError.fromError(t);throw new Error(n.toString())}};c();c();var Ge=class{concurrency;timeout;onError;queue;running;completed;failed;isClosing;closeResolve;constructor(e){this.concurrency=e?.concurrency||20,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 n={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(r=>r.priority<n.priority);return i===-1?this.queue.push(n):this.queue.splice(i,0,n),this._process(),n.id}addBulk(e){return e.map(({fn:t,options:n})=>this.add(t,n))}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((n,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(n=>{this.closeResolve=n;});if(e>0){let n=new Promise(i=>setTimeout(i,e));await Promise.race([t,n]);}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){}_generateId(){return `${Date.now()}-${Math.random().toString(36).substr(2,9)}`}},P=new Ge;process.on("SIGTERM",()=>P.close());c();c();c();var y=(o,e="lime")=>Array.isArray(e)?At__default.default(e)(o):At__default.default([e,e])(o),Je=o=>{try{return JSON.parse(o)}catch{return E__default.default.attempt(()=>JSON.parse(JSON.stringify(o)||"{}"))}},fe=o=>{try{return JSON.stringify(o)}catch{let e=E__default.default.attempt(()=>JSON.stringify(Je(o)||"{}"));return E__default.default.isError(e)?"{}":e}},us=(o="")=>E__default.default.shuffle(o).join(""),ge=(o="",e="")=>o?E__default.default.includes(o.toLowerCase(),e.toLowerCase()):null,Pt=(o="")=>o?E__default.default.castArray(o.match(tn.URL_REGEX)||[]):[],ms=o=>o[Math.floor(Math.random()*o.length)],He=(o,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),n=(i,r)=>{if(!i||typeof i!="object")return;let s=i,l=r.split(".");for(let p of l){let u=p.match(/^(.+?)\[(\d+)\]$/);if(u){let[,k,T]=u;s=s?.[k]?.[parseInt(T,10)];}else s=s?.[p];if(t(s))return}return s};if(!(!Array.isArray(o)||o.length===0)&&!(!Array.isArray(e)||e.length===0)){for(let i of o)if(!(!i||typeof i!="object"))for(let r of e){let s=n(i,r);if(!t(s))return s}}},ds=(o,e)=>{let t=E__default.default.castArray(e),n=(s,l)=>E__default.default.every(l,(p,u)=>s?.[u]===p),i=(s,l)=>E__default.default.some(l,(p,u)=>s?.[u]===p),r=s=>E__default.default.isArray(s)?E__default.default.find(s,r)??s:E__default.default.isObject(s)?E__default.default.find(t,u=>n(s,u))||E__default.default.find(t,u=>i(s,u))?s:E__default.default.find(E__default.default.values(s),r)??s:null;return r(o)},fs=(o,e,t)=>new Proxy(o,{apply(n,i,r){e?.(r);let s=Reflect.apply(n,i,r);return t?t(s,r):s}});c();var Ke=class{input;constructor(e){this.input=e;}async toOpus(){return ie.toOpus(this.input)}async toMp3(){return ie.toMp3(this.input)}async convert(e="opus"){return ie.convert(this.input,e)}},Qe=class{input;constructor(e){this.input=e;}async toMp4(){return U.toMp4(this.input)}async thumbnail(){return U.thumbnail(this.input)}},Ye=class{input;constructor(e){this.input=e;}async toJpeg(){return N.toJpeg(this.input)}async thumbnail(){let e=await C.toBuffer(this.input);return N.thumbnail(e)}async resize(e,t){let n=await C.toBuffer(this.input);return N.resize(n,e,t)}},Ze=class{input;metadata;constructor(e,t){this.input=e,this.metadata=t;}async create(){return xe.create(this.input,this.metadata)}},Xe=class{input;constructor(e){this.input=e;}async create(){return Me.create(this.input)}},et=class{input;constructor(e){this.input=e;}async get(){let e=await C.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(b.MIME.VIDEO)?U.thumbnail(this.input):N.thumbnail(e)}},tt=class{audio(e){return new Ke(e)}video(e){return new Qe(e)}image(e){return new Ye(e)}sticker(e,t){return new Ze(e,t)}document(e){return new Xe(e)}thumbnail(e){return new et(e)}async toBuffer(e){return C.toBuffer(e)}},O=new tt;var Te=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=a.get("socket");e.ev.on("call",async t=>{for(let n of t){let i=await this.parse(n);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"),n={};return n.callId=e.id,n.callerId=tn.jidNormalizedUser(e.from),n.roomId=tn.jidNormalizedUser(e.chatId),n.roomName=Y(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}};c();c();var Rt=o=>{kn__default.default.generate(o,{small:true},e=>{console.log(e);});};var Ce=class{constructor(e){this.client=e;this.initialize();}async initialize(){a.spinner.start(" Initializing connection...");let e=a.get("socket"),t={},n=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 n();};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 r=new Date(t.authTimeout).toLocaleTimeString(),s=await e.requestPairingCode(this.client.options.phoneNumber.toString());a.spinner.warn(` Pairing expired at ${At.cristal(r)}`),a.spinner.warn(` Pairing code: ${s}`),t.code=s;}catch{await i();}}e.ev.on("connection.update",async r=>{let{connection:s,lastDisconnect:l,qr:p}=r;if(t.status=s||"connecting",t.authType=this.client.options.authType,a.spinner.update(" Connection status: "+At.cristal(t.status)),this.client.options.authType==="qr"&&p){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(p),t.qr=p;return}if(s==="close"){let u=M(l?.error)?.output?.statusCode,k=l?.error?.message||"",T=typeof u=="number"&&u!==tn.DisconnectReason.loggedOut;if(a.spinner.error(` [${u} - Closed] ${k}`),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.
2
- `);return}if(u===500){a.spinner.error(" Server error occurred, attempting reconnect..."),await n();return}T&&await n();}if(s==="open")if(e.user?.id){let u=tn.jidNormalizedUser(e.user.id).split("@")[0],k=e.user.name||e.user.verifiedName;a.spinner.success(` Connected as ${At.cristal(k||u)}`);}else a.spinner.success(" Connected!");a.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:r})=>{t.status="syncing",t.syncProgress=r,a.spinner.start(" Syncing messages history..."),r&&a.spinner.update(` Syncing messages history ${r+"%"}`),r==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"},rt={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 Ie=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 Pe=class{constructor(e){this.client=e;this.limiter=new Ie(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:n})=>{try{if(n!=="notify"&&n!=="append")return;for(let i of t)try{let r=await this.parse(i);r&&(P.add(async()=>this.client.middleware.run({messages:r})),P.add(async()=>this.client.plugins.execute(this.client,{messages:r})),a.set("message",r),a.events.emit("messages",r),this.client.options.autoRead&&P.add(async()=>e.readMessages([r.message().key])));}catch{}}catch{}});}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,i=a.get("socket"),r={},s=be(e.message),l=s.chain.at(-1),p=s.leaf;if(p?.message&&(s=be(p.message),l=s.chain.at(-1),p=s.leaf),r.uniqueId=null,r.channelId=null,r.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,r.chatType=Bt[l],!r.chatType)return;r.receiverLid=tn.jidNormalizedUser(i?.user?.lid||""),r.receiverId=tn.jidNormalizedUser(i?.user?.id||""),r.receiverName=Y(i?.user?.name||i?.user?.verifiedName),r.roomId=tn.jidNormalizedUser(e?.key?.remoteJid);let u=p?.type===0,k=p?.type===1,T=p?.type===2,x=r.roomId?.includes("@newsletter"),A=!!e?.message?.questionMessage,W=e?.key?.fromMe||false;if(W&&this.client.options.ignoreMe&&t!=="replied")return;let H=p?.key?.id;if(u||k||T){let S=await this.client.db("messages").query(r.roomId).where("key.id","=",H).first();if(!S)return;e=S,s=be(e.message),l=s.chain.at(-1),p=s.leaf;}if(r.roomName=await this.client.getRoomName(r.roomId),r.senderLid=tn.jidNormalizedUser(e?.key?.participant||e?.key?.remoteJid)||null,r.senderId=tn.jidNormalizedUser(e?.key?.participantAlt||e?.key?.remoteJidAlt)||null,r.senderName=Y(e?.pushName||e?.verifiedBizName),r.senderDevice=tn.getDevice(r.chatId||""),r.channelId=ne([r.roomId,r.senderId]),r.uniqueId=ne([r.channelId,r.chatId]),r.timestamp=Number(e?.messageTimestamp)*1e3,x){let S=await i.newsletterMetadata("jid",r.roomId);r.roomName=M(S.thread_metadata.name)?.text,r.senderId=null,r.senderLid=null;}W&&(r.senderLid=tn.jidNormalizedUser(i.user.lid),r.senderId=r.receiverId,r.senderName=r.receiverName),r.text=p?.text||p?.caption||p?.name||p?.displayName||p?.conversation||p?.contentText||p?.selectedDisplayText||p||null,p?.name=="menu_options"&&(r.text=Je(p?.paramsJson)?.id),r.text=Y(r.text),r.mentions=Tt(r.text),r.links=Pt(r.text||""),r.isBot=r.chatId.startsWith("BAE5")||r.chatId.startsWith("3EB0")||r.chatId.startsWith("Z4D3FC"),r.isFromMe=W;let K=E__default.default.castArray(this.client.options?.prefix);if(r.isPrefix=!!K.find(S=>r.text?.startsWith(S)),r.isTagMe=r.mentions?.includes(r.receiverId.split("@")[0])||r.mentions?.includes(r.receiverLid.split("@")[0]),r.isStatusMention=!!e?.message?.statusMentionMessage,r.isGroupStatusMention=!!e?.message?.groupStatusMentionMessage,r.isHideTags=false,E__default.default.isEmpty(r.text)&&p?.contextInfo?.mentionedJid?.length&&(r.isHideTags=true),r.isSpam=await this.limiter.isSpam(r.channelId),r.isPrefix&&(r.text=r.text.replace(new RegExp(`^${E__default.default.escapeRegExp(K.find(S=>r.text?.startsWith(S))||"")}`),"")),r.isGroup=r.roomId?.includes("@g.us"),r.isNewsletter=x,r.isQuestion=A,r.isStory=r.roomId?.includes("@broadcast"),!r.isGroup&&!r.roomName&&(r.roomName=r.senderName),!r.isGroup){let S=r.senderId,$=r.senderLid;r.senderId=$,r.senderLid=S;}if(r.isViewOnce=false,r.isEdited=!!ge(fe(s),"editedMessage"),r.isDeleted=u,r.isPinned=k,r.isUnPinned=T,r.isBroadcast=!!e?.broadcast,r.isEphemeral=!!ge(fe(p?.contextInfo),"ephemeralSettingTimestamp"),r.isForwarded=!!ge(fe(p?.contextInfo),"forwardingScore"),r.citation=null,this.client.options.citation){r.citation=r.citation||{};let S=this.client.options.citation;for(let $ of Object.keys(S)){let oe=S[$];r.citation[$]=async()=>{let ae=await oe(),ee=[z(r.roomId),z(r.senderLid),z(r.senderId)];return !!E__default.default.intersection(ee,ae).length};}}r.chatType!=="text"&&(r.media={...St(p),buffer:()=>tn.downloadMediaMessage(e,"buffer",{}),stream:()=>tn.downloadMediaMessage(e,"stream",{})}),r.isStatusMention&&(r.chatType="statusMention"),r.isGroupStatusMention&&(r.chatType="groupStatusMention"),r.message=()=>n,r.replied=null;let v=p?.contextInfo?.quotedMessage,F=ge(fe(v),"viewOnce"),V=p?.contextInfo?.stanzaId;if(v&&this.maxReplies){this.maxReplies--;let S=await this.client.db("messages").getByIndex("messages","key.id",V),$;F?$={...S[0],message:v}:$=S[0],r.replied=await this.parse($,"replied"),r.replied&&(r.replied.isViewOnce=true),this.maxReplies=3;}return t!="replied"&&this.client.logs.message(r),r.injection=te.getAll(),r}};var Ee=class{constructor(e){this.client=e;this.connection=new Ce(e),this.messages=new Pe(e),this.calls=new Te(e),this.initialize();}connection;messages;calls;async initialize(){let e=a.get("socket");e.ev.on("groups.update",async([t])=>{P.add(async()=>{let n=await e.groupMetadata(t.id);D.set(t.id,n);});}),e.ev.on("group-participants.update",async t=>{P.add(async()=>{let n=await e.groupMetadata(t.id);D.set(t.id,n);});}),e?.ev.on("messaging-history.set",async t=>{let{chats:n,contacts:i,messages:r}=t;P.add(async()=>{await this.client.db("chats").batchUpsert("chats",n,"id");}),P.add(async()=>{await this.client.db("contacts").batchUpsert("contacts",i,"id");}),P.add(async()=>{await this.client.db("messages").batchUpsert("messages",r,"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()}),$t=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(),Bn=m.z.record(m.z.string(),m.z.function({output:m.z.promise(m.z.array(m.z.number()))})).optional(),Fn=m.z.object({provider:m.z.enum(["whatsapp","meta","chatgpt","copilot","instagram","tiktok"]).or(m.z.number())}).optional(),it=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:it.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(),Ot=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(),pluginsDir:m.z.string().default("plugins").optional(),pluginsHmr:m.z.boolean().default(true).optional(),autoCleanUp:On,limiter:Rn,citation:Bn,fakeReply:Fn,sticker:$n}),Dn=m.z.object({authType:m.z.literal("pairing"),phoneNumber:m.z.number()}),Nn=m.z.object({authType:m.z.literal("qr")}),Dt=m.z.union([Dn.extend(Ot.shape),Nn.extend(Ot.shape)]),Eo=m.z.enum(["connection","messages","calls"]);var ye=m__default.default.url().or(m__default.default.base64()).or(m__default.default.instanceof(Buffer)),Nt=m__default.default.object({text:m__default.default.string()}).passthrough(),Wn=m__default.default.object({image:ye,caption:m__default.default.string().optional()}).passthrough(),_n=m__default.default.object({audio:ye,caption:m__default.default.string().optional(),ptt:m__default.default.boolean().optional()}).passthrough(),jn=m__default.default.object({video:ye,caption:m__default.default.string().optional(),ptv:m__default.default.boolean().optional()}).passthrough(),Un=m__default.default.object({sticker:ye,shape:it.optional(),caption:m__default.default.string().optional()}).passthrough(),Ln=m__default.default.object({document:ye,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()})}),Wt=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:$t.optional()});m__default.default.enum(["forward","button","edit","delete"]);var Gn=m__default.default.union([Nt,Wn,_n,jn,Un,Ln,zn,qn,Vn]),_t=m__default.default.string().or(m__default.default.intersection(Gn,Wt.omit({buttons:true}))),jt=m__default.default.intersection(Nt,Wt.omit({banner:true}));c();var Re=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=M(e).buttons,n=t?.data||[],r=t?.type=="simple"?this.toNativeSimple(n):this.toNativeInteractive(n);return {body:{text:M(e).text},footer:t.footer?{text:t.footer}:void 0,nativeFlowMessage:{buttons:r}}}async send(e,t,n){let i=a.get("socket"),r=i?.authState?.creds?.me?.id||i?.user?.id,s=this.build(t),l=tn.generateWAMessageFromContent(e,{interactiveMessage:s},{userJid:r,messageId:tn.generateMessageIDV2(r),...n});return await i.relayMessage(e,l.message,{messageId:l.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"}}]}]}]}),i.config?.emitOwnEvents&&!tn.isJidGroup(e)&&process.nextTick(()=>i.upsertMessage?.(l,"append")),l}};var Be=class{constructor(e){this.client=e;}async signal(e,t,n,i){n!="delete"&&(n=="button"?t=de(jt,t):t=de(_t,t));let r=a.get("socket"),s={},l={},p=E__default.default.isString(t),u=this.client.options?.fakeReply?.provider,k=this.client.options?.autoMentions,T=this.client.options?.autoPresence,x=E__default.default.has(t,"replied"),A=E__default.default.has(t,"banner"),W=E__default.default.has(t,"isViewOnce"),H=n=="button",K=E__default.default.has(t,"image"),v=E__default.default.has(t,"video"),F=E__default.default.has(t,"audio"),V=E__default.default.has(t,"sticker"),S=E__default.default.has(t,"document"),$=E__default.default.has(t,"location"),oe=E__default.default.has(t,"contacts"),ae=E__default.default.has(t,"poll"),ee=K||v||F||V||S,Q=p?t:He([t],["text","caption"]);if(T&&(F?await r.sendPresenceUpdate("recording",e):await r.sendPresenceUpdate("composing",e)),k&&(s={...s,mentions:Ve(Q),contextInfo:{mentionedJid:Ve(Q)}}),x&&(l.quoted=M(t).replied,u&&(l.quoted.key.remoteJid=rt[u],l.quoted.key.participant=rt[u])),A&&(s={...s,contextInfo:{externalAdReply:M(t).banner}},s.contextInfo.externalAdReply.mediaType=1),W&&(s={...s,viewOnce:M(t)?.isViewOnce}),Q&&(s={...s,text:Q,caption:Q},ee&&delete M(s).text),ee){let I=He([t],["image","video","audio","sticker","document"]);if(K&&(s={...s,image:await O.image(I).toJpeg(),jpegThumbnail:await O.thumbnail(I).get()}),v){let _=M(t)?.ptv;s={...s,video:await O.video(I).toMp4(),ptv:_,jpegThumbnail:await O.thumbnail(I).get()};}if(F){let _=M(t)?.ptt;s={...s,audio:await O.audio(I).toOpus(),ptt:_,mimetype:_?"audio/ogg; codecs=opus":"audio/mpeg"};}if(V){let _=M(t)?.shape;s={...s,sticker:await O.sticker(I,{...this.client.options?.sticker,shape:_}).create()};}if(S){let _=await O.document(I).create();s={...s,fileName:M(t).fileName,..._};}}if($){let I=M(t).location;s={...s,location:{degreesLatitude:I.latitude,degreesLongitude:I.longitude,url:I.url,address:I.footer,name:I.title}};}if(oe){let I=M(t)?.contacts,_=I?.contacts.map(ce=>{let zt=["BEGIN:VCARD","VERSION:3.0",`FN:${ce.fullname}`,`ORG:${ce.organization||""}`,`TEL;type=CELL;type=VOICE;waid=${ce.phoneNumber}:${ce.phoneNumber}`,"END:VCARD"].join(`
3
- `);return {displayName:ce.fullname,vcard:zt}});s={...s,contacts:{displayName:I?.title,contacts:_}};}if(ae){let I=M(t)?.poll;s={...s,poll:{name:I.name,values:I.answers,selectableCount:I.isMultiple?1:0,toAnnouncementGroup:true}};}return n=="forward"&&(s={...s,contextInfo:{...M(s).contextInfo,isForwarded:true,forwardingScore:M(t).isForwardedMany?9999:1}}),n=="edit"&&(s={...s,edit:i?.key},await r.sendPresenceUpdate("paused",e)),n=="delete"&&(s={...s,delete:i?.key},await r.sendPresenceUpdate("paused",e)),H?await new Re().send(e,t,l):await r.sendMessage(e,M(s),l)}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 n=a.get("socket"),i={typing:"composing",recording:"recording",online:"available",offline:"unavailable",paused:"paused"};return await n.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 st=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").communityCreate(e,t)}async createGroup(e,t,n){return await a.get("socket").communityCreateGroup(e,t,n)}async leave(e){return await a.get("socket").communityLeave(e)}async metadata(e){return await a.get("socket").communityMetadata(e)}async update(e,t,n){let i=a.get("socket");switch(t){case "subject":return await i.communityUpdateSubject(e,n);case "description":return await i.communityUpdateDescription(e,n)}}async group(e,t,n){let i=a.get("socket");switch(t){case "link":if(!n)throw "Group JID is required for linking";return await i.communityLinkGroup(e,n);case "unlink":if(!n)throw "Group JID is required for unlinking";return await i.communityUnlinkGroup(e,n);case "linked":return await i.communityFetchLinkedGroups(e)}}async participants(e,t,n,i){let r=a.get("socket");switch(t){case "list":return await r.communityRequestParticipantsList(e);case "request-update":return await r.communityRequestParticipantsUpdate(e,i,M(n));case "update":if(!n||!i)throw "Action and participants are required for update";return await r.communityParticipantsUpdate(e,i,M(n));case "all":return await r.communityFetchAllParticipating()}}async invite(e,t,...n){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,n[0]);case "acceptV4":return await i.communityAcceptInviteV4(e,n[0])}}async settings(e,t,n){let i=a.get("socket");switch(t){case "ephemeral":return await i.communityToggleEphemeral(e,n);case "update":return await i.communitySettingUpdate(e,n);case "memberAdd":return await i.communityMemberAddMode(e,n);case "approval":return await i.communityJoinApprovalMode(e,n)}}},Fe=class{constructor(e){this.mlient=e;this.community=new st(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,n){return await a.get("socket").groupParticipantsUpdate(e,t,n)}async profile(e,t,n){let i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "subject":if(!r)return await i.groupUpdateSubject(e,t);case "description":if(!r)return await i.groupUpdateDescription(e,t);case "picture":return await i.updateProfilePicture(e,await O.toBuffer(t))}}async setting(e,t){let n=a.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 a.get("socket").groupLeave(e)}async inviteCode(e,t){let n=a.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=a.get("socket"),n=D.get(e);if(n)return n;let i=await t.groupMetadata(e);return i&&D.set(e,i),i}async requestJoin(e,t,n){let i=a.get("socket");switch(n){case "approve":return await i.groupRequestParticipantsUpdate(e,t,n);case "reject":return await i.groupRequestParticipantsUpdate(e,t,n)}}async requestJoinList(e){return await a.get("socket").groupRequestParticipantsList(e)}async fetchAllGroups(){return await a.get("socket").groupFetchAllParticipating()}async ephemeral(e,t){let n=a.get("socket"),i={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await n.groupToggleEphemeral(e,i[t])}},$e=class{constructor(e){this.glient=e;this.group=new ot(e);}group};c();var at=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").newsletterCreate(e,t)}async action(e,t){let n=a.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 i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "name":if(!r)return await i.newsletterUpdateName(e,t);case "description":if(!r)return await i.newsletterUpdateDescription(e,t);case "picture":return await i.newsletterUpdatePicture(e,await O.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,n){return await a.get("socket").newsletterReactMessage(e,t,n)}async fetchMessages(e,t,n,i){let r=a.get("socket"),s=n.getTime()/1e3,l=i.getTime()/1e3;return await r.newsletterFetchMessages(e,t,s,l)}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)}},Oe=class{constructor(e){this.nlient=e;this.newsletter=new at(e);}newsletter};c();var ct=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"),n={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await t.updateDefaultDisappearingMode(n[e])}async blocklist(){return await a.get("socket").fetchBlocklist()}async getSettings(){return await a.get("socket").fetchPrivacySettings(true)}},De=class{constructor(e){this.plient=e;this.privacy=new ct(e);}privacy};c();c();var xa=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 Yn=m__default.default.enum(["unknown","android","ios","desktop","web"]),Zn=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"]),Ut=m__default.default.object({channelId:m__default.default.string(),uniqueId:m__default.default.string(),chatId:m__default.default.string(),chatType:Zn,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:Yn,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()})}),Ca=Ut.extend({replied:Ut.nullable()});c();var Ea=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 Ne=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)),n=e?.text?.toLowerCase()?.match("zaileys"),i=this.client.options?.fancyLogs,r=y(`[${new Date(e?.timestamp).toTimeString().split(" ")[0]}]`,"dimgray"),s=y(`${e?.roomName}`,t),l=e?.text?.slice(0,300)||"",p=l?.length>=300?"...":"";if(i){let u=y("\u2501".repeat(50),"dimgray"),k=y("\u2192","dimgray"),T=y("\u2022",t),x=`
1
+ 'use strict';var be=require('fluent-ffmpeg'),ue=require('fs/promises'),os=require('os'),J=require('path'),sn=require('baileys'),jetdb=require('jetdb'),le=require('node-cache'),Zt=require('pino'),events=require('events'),nanospinner=require('nanospinner'),asyncMutex=require('async-mutex'),fileType=require('file-type'),jimp=require('jimp'),gn=require('node-webpmux'),P=require('lodash'),It=require('unorm'),zodValidationError=require('zod-validation-error'),Pt=require('gradient-string'),Mn=require('figlet'),vn=require('qrcode-terminal'),rateLimiterFlexible=require('rate-limiter-flexible'),m=require('zod'),er=require('stream'),X=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 be__default=/*#__PURE__*/_interopDefault(be);var ue__default=/*#__PURE__*/_interopDefault(ue);var J__namespace=/*#__PURE__*/_interopNamespace(J);var sn__default=/*#__PURE__*/_interopDefault(sn);var le__default=/*#__PURE__*/_interopDefault(le);var Zt__default=/*#__PURE__*/_interopDefault(Zt);var gn__default=/*#__PURE__*/_interopDefault(gn);var P__default=/*#__PURE__*/_interopDefault(P);var It__default=/*#__PURE__*/_interopDefault(It);var Pt__default=/*#__PURE__*/_interopDefault(Pt);var Mn__default=/*#__PURE__*/_interopDefault(Mn);var vn__default=/*#__PURE__*/_interopDefault(vn);var m__default=/*#__PURE__*/_interopDefault(m);var er__default=/*#__PURE__*/_interopDefault(er);var X__namespace=/*#__PURE__*/_interopNamespace(X);var Jt=Object.defineProperty;var Ht=(o=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(o,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):o)(function(o){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var lt=(o,e)=>()=>(o&&(e=o(o=0)),e);var Kt=(o,e)=>{for(var t in e)Jt(o,t,{get:e[t],enumerable:true});};var c=lt(()=>{});var Mt={};Kt(Mt,{BufferConverter:()=>C,FFMPEG_CONSTANTS:()=>b,FFmpegProcessor:()=>j,FileManager:()=>h,MimeValidator:()=>R,initializeFFmpeg:()=>Ve});var b,Ve,h,C,R,j,G=lt(()=>{c();b={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"}},Ve=async(o=false)=>{if(!o)try{let e=(await import('@ffmpeg-installer/ffmpeg')).default,t=(await import('@ffprobe-installer/ffprobe')).default;be__default.default.setFfmpegPath(e.path),be__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 J__namespace.default.join(os.tmpdir(),`${e}_${this.generateUniqueId()}.${t}`)}static async cleanup(e){await Promise.allSettled(e.map(t=>ue__default.default.unlink(t)));}static async safeReadFile(e){try{return await ue__default.default.readFile(e)}catch{throw new Error(`Failed to read file: ${e}`)}}static async safeWriteFile(e,t){try{await ue__default.default.writeFile(e,t);}catch{throw new Error(`Failed to write file: ${e}`)}}},C=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){if(e.startsWith("http://")||e.startsWith("https://"))return this.fromUrl(e);try{if(await ue__default.default.stat(e).then(t=>t.isFile()).catch(()=>!1))return await ue__default.default.readFile(e)}catch{}return 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}`)}}static async getExtension(e){let{fileTypeFromBuffer:t}=await import('file-type'),n=await t(e);if(!n)return "tmp";let i=n.ext.toLowerCase();return ["wav","ogg","mp4","gif","jpg","webp","tmp","mp3","png"].includes(i)?i:"tmp"}},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(b.MIME.IMAGE)||e.startsWith(b.MIME.VIDEO)}static isAnimated(e){return e===b.MIME.GIF||e.startsWith(b.MIME.VIDEO)}},j=class{static async process(e){return new Promise((t,n)=>{let i=be__default.default(e.input).output(e.output);for(let r=0;r<e.options.length;r++){let s=e.options[r];s.startsWith("-")&&r+1<e.options.length&&!e.options[r+1].startsWith("-")?(i.outputOptions(s,e.options[r+1]),r++):i.outputOptions(s);}i.on("end",async()=>{try{await e.onEnd(),t();}catch(r){n(r);}}).on("error",async r=>{try{await e.onError(r);}finally{n(r);}}).run();})}static async getDuration(e){return new Promise((t,n)=>{be__default.default.ffprobe(e,(i,r)=>{if(i)return n(i);t(r.format.duration||0);});})}};});c();c();c();c();var ut=o=>jetdb.createJetDB(`${o}/auth/creds.json`,{BufferJSON:sn.BufferJSON,cacheSize:100,flushMode:"sync",compression:"none",enableIndexing:false}),we=o=>jetdb.createJetDB(`${o}/auth/keys.json`,{BufferJSON:sn.BufferJSON,size:1024*1024,cacheSize:2e3,flushMode:"sync",compression:"none",enableIndexing:false,hotThreshold:5}),mt=(o,e)=>jetdb.createJetDB(`.session/${o}/store/${e}.json`,{BufferJSON:sn.BufferJSON,cacheSize:2e4,debounceMs:1e3,flushMode:"debounce",compression:"deflate",serialization:"json",enableIndexing:true,hotThreshold:2,size:5*1024*1024});c();c();var dt=new le__default.default({stdTTL:600,checkperiod:120,useClones:false}),D=new le__default.default({stdTTL:300,useClones:false}),ft=new le__default.default({stdTTL:300}),gt=new le__default.default({stdTTL:600,checkperiod:120,useClones:false,deleteOnExpire:true,maxKeys:100}),yt=new le__default.default;c();var re=class{classInjection(e,t){let n=t.length;return new Proxy(e,{get(i,r,s){if(r in i){let l=Reflect.get(i,r,s);return typeof l=="function"?l.bind(i):l}for(let l=0;l<n;l++){let p=t[l];if(r in p){let u=Reflect.get(p,r,p);return typeof u=="function"?u.bind(p):u}}},set(i,r,s,l){if(r in i)return Reflect.set(i,r,s,l);for(let p=0;p<n;p++){let u=t[p];if(r in u)return Reflect.set(u,r,s,l)}return Reflect.set(i,r,s,l)},has(i,r){if(r in e)return true;for(let s=0;s<n;s++)if(r in t[s])return true;return false},ownKeys(){let i=[];for(let r of Reflect.ownKeys(e))i.push(r);for(let r=0;r<n;r++)for(let s of Reflect.ownKeys(t[r]))i.includes(s)||i.push(s);return i},getOwnPropertyDescriptor(i,r){let s=Object.getOwnPropertyDescriptor(e,r);if(s)return s;for(let l=0;l<n;l++)if(s=Object.getOwnPropertyDescriptor(t[l],r),s)return s}})}};c();var ie=class{spinnerEnabled=true;spinner;constructor(e=true){this.spinnerEnabled=e,this.spinner=nanospinner.createSpinner("",{color:"green"});}toggle(){this.spinnerEnabled=!this.spinnerEnabled;}enable(){this.spinnerEnabled=true;}disable(){this.spinnerEnabled=false;}isEnabled(){return this.spinnerEnabled}start(e){this.spinnerEnabled&&this.spinner.start(e);}stop(){this.spinnerEnabled&&this.spinner.stop();}success(e){this.spinnerEnabled&&this.spinner.success(e);}error(e){this.spinnerEnabled&&this.spinner.error(e);}warn(e){this.spinnerEnabled&&this.spinner.warn(e);}info(e){this.spinnerEnabled&&this.spinner.info(e);}update(e){this.spinnerEnabled&&this.spinner.update(e);}reset(){this.spinnerEnabled&&this.spinner.reset();}clear(){this.spinnerEnabled&&this.spinner.clear();}spin(){this.spinnerEnabled&&this.spinner.spin();}loop(){this.spinnerEnabled&&this.spinner.loop();}write(e){this.spinnerEnabled&&this.spinner.write(e);}render(){this.spinnerEnabled&&this.spinner.render();}isSpinning(){return this.spinnerEnabled?this.spinner.isSpinning():false}};var ze=class extends le__default.default{constructor(){return super({useClones:false}),new re().classInjection(this,[dt])}spinner=new ie(true);logger=Zt__default.default({level:"silent",enabled:false});events=new events.EventEmitter},a=new ze;var ht=async o=>{a.spinner.start(" Initializing auth state...");let e=ut(o),t=we(o),n=await e.get("creds"),i=n||sn.initAuthCreds();return n?a.spinner.success(" Auth credentials loaded successfully"):a.spinner.success(" Initialized new auth session"),{state:{creds:i,keys:{get:async(r,s)=>{let l={};return await Promise.all(s.map(async p=>{let u=`${r}:${p}`,w=await t.get(u);r==="app-state-sync-key"&&w&&(w=sn.proto.Message.AppStateSyncKeyData.fromObject(w)),l[p]=w;})),l},set:async r=>{let s=[],l=[];for(let p in r)for(let u in r[p]){let w=r[p][u],T=`${p}:${u}`;w?s.push({key:T,value:w}):l.push(T);}s.length&&await t.batchSet(s),l.length&&await t.batchDelete(l),await t.flush();}}},saveCreds:async()=>{await e.set("creds",i),await e.flush();}}};c();c();var kt=(o,e)=>({logger:o.health.logger,printQRInTerminal:false,enableRecentMessageCache:true,emitOwnEvents:true,keepAliveIntervalMs:3e4,browser:sn.Browsers.ubuntu("Chrome"),markOnlineOnConnect:o.options.autoOnline,syncFullHistory:o.options.syncFullHistory,msgRetryCounterCache:yt,mediaCache:ft,auth:{creds:e.creds,keys:sn.makeCacheableSignalKeyStore(e.keys,a.logger)},cachedGroupMetadata:async t=>D.get(t),shouldIgnoreJid:()=>false,shouldSyncHistoryMessage:()=>o.options.syncFullHistory,patchMessageBeforeSending:t=>t,getMessage:async t=>{if(!t?.remoteJid)return sn.proto.Message.fromObject({});let n=await o.db("messages").getByIndex("messages","key.id",t.id);return sn.proto.Message.fromObject(n[0])}});var bt=async o=>{let e=`.session/${o.options.session}`;console.info=()=>{},console.warn=()=>{};let{state:t,saveCreds:n}=await ht(e),i=kt(o,t),r=sn__default.default(i);r.ev.on("creds.update",n),a.set("socket",r);};c();c();c();var ke=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 n of e.scopes)try{let i=this.client.db(n),r=await i.query(n).where("timestamp","<",t).get();if(r.length>0){let s=r.map(l=>l.key?.id||l.id);await i.batchDelete(s),a.spinner.info(` [CleanUpManager] Cleaned up ${r.length} items from ${n}`);}}catch{}}};c();var qe=class{store=gt;mutex=new asyncMutex.Mutex;async inject(e,t){let n=await this.mutex.acquire();try{this.store.set(e,t);}finally{n();}}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()}},te=new qe;c();G();c();G();var se=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 n=await C.toBuffer(e),i=await fileType.fileTypeFromBuffer(n);R.validate(i,b.MIME.AUDIO);let r=await C.getExtension(n),s=h.createTempPath("audio_in",r),l=t==="opus"?"ogg":"mp3",p=h.createTempPath("audio_out",l);await h.safeWriteFile(s,n);let u;try{let w=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:s,output:p,options:w,onEnd:async()=>{u=await h.safeReadFile(p);},onError:async()=>{await h.cleanup([s,p]);}}),await h.cleanup([s,p]),u}catch(w){throw await h.cleanup([s,p]),new Error(`${t.toUpperCase()} conversion failed: ${w.message}`)}}};c();G();var U=class{static async toMp4(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);R.validate(n,b.MIME.VIDEO);let i=await C.getExtension(t),r=h.createTempPath("video_in",i),s=h.createTempPath("video_out","mp4");await h.safeWriteFile(r,t);let l;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:r,output:s,options:p,onEnd:async()=>{l=await h.safeReadFile(s);},onError:async()=>{await h.cleanup([r,s]);}}),await h.cleanup([r,s]),l}catch(p){throw await h.cleanup([r,s]),new Error(`Video re-encoding failed: ${p.message}`)}}static async thumbnail(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);R.validate(n,b.MIME.VIDEO);let i=await C.getExtension(t),r=h.createTempPath("video",i),s=h.createTempPath("thumb","jpg");await h.safeWriteFile(r,t);let l;try{return await new Promise((p,u)=>{be__default.default(r).screenshots({timestamps:[b.THUMBNAIL.TIMESTAMP],filename:J__namespace.default.basename(s),folder:J__namespace.default.dirname(s),size:`${b.THUMBNAIL.SIZE}x${b.THUMBNAIL.SIZE}`}).on("end",async()=>{try{l=(await h.safeReadFile(s)).toString("base64"),p();}catch(w){u(w);}}).on("error",u);}),await h.cleanup([r,s]),l}catch(p){throw await h.cleanup([r,s]),new Error(`Thumbnail generation failed: ${p.message}`)}}static async duration(e){return j.getDuration(e)}};c();G();var L;try{L=Ht("sharp");}catch{L=null;}var N=class{static async thumbnail(e){let t=await fileType.fileTypeFromBuffer(e),n=b.THUMBNAIL.SIZE;if(L){let s=L(e).resize(n,n,{fit:"cover"});return t?.mime===b.MIME.GIF&&s.resize(n,n),(await s.jpeg({quality:b.THUMBNAIL.QUALITY}).toBuffer()).toString("base64")}let i=await jimp.Jimp.read(e);return i.cover({w:n,h:n}),t?.mime===b.MIME.GIF&&i.resize({w:n,h:n}),(await i.getBuffer("image/jpeg",{quality:b.THUMBNAIL.QUALITY})).toString("base64")}static async resize(e,t,n){if(L)return await L(e).resize(t,n,{fit:"cover"}).png().toBuffer();let i=await jimp.Jimp.read(e);return i.cover({w:t,h:n}),await i.getBuffer("image/png")}static async toJpeg(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);if(!n||!n.mime.startsWith(b.MIME.IMAGE))throw new Error("Invalid image type");return n.mime==="image/webp"?L?await L(t).jpeg().toBuffer():await(await jimp.Jimp.read(t)).getBuffer("image/jpeg"):t}static async resizeForSticker(e,t,n="default"){let i=b.STICKER.SIZE;if(L&&n==="default")return await L(e).resize(i,i,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).webp({quality:t}).toBuffer();let r=await jimp.Jimp.read(e);if(r.contain({w:i,h:i}),n!=="default"){let T=new jimp.Jimp({width:i,height:i,color:0});for(let M=0;M<i;M++)for(let A=0;A<i;A++){let W=false,H=i/2,K=i/2;switch(n){case "circle":{let v=A-H,F=M-K;W=v*v+F*F<=H*H;break}case "rounded":{let v=i/10,F=A>=v&&A<i-v&&M>=0&&M<i,V=A>=0&&A<i&&M>=v&&M<i-v,S=false,$=[[v,v],[i-v,v],[v,i-v],[i-v,i-v]];for(let[ae,ce]of $){let ee=A-ae,Q=M-ce;if(ee*ee+Q*Q<=v*v){S=true;break}}W=F||V||S;break}case "oval":{let v=i/2,F=i/3,V=(A-H)/v,S=(M-K)/F;W=V*V+S*S<=1;break}}W&&T.setPixelColor(4294967295,A,M);}r.mask(T);}let s=h.createTempPath("sticker_img","png"),l=h.createTempPath("sticker_out","webp"),p=await r.getBuffer("image/png");await h.safeWriteFile(s,p);let{FFmpegProcessor:u}=await Promise.resolve().then(()=>(G(),Mt)),w;try{return await u.process({input:s,output:l,options:["-vf",`scale=${i}:${i}`,"-quality",String(t),"-f","webp"],onEnd:async()=>{w=await h.safeReadFile(l);},onError:async()=>{await h.cleanup([s,l]);}}),await h.cleanup([s,l]),w}catch(T){throw await h.cleanup([s,l]),new Error(`Sticker resize failed: ${T.message}`)}}};c();c();var ne=o=>{let e;Array.isArray(o)?e=o.join("|"):typeof o=="string"?e=o:e=String(o);let t=2166136261,n=e.length;for(let i=0;i<n;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()},St=(o="")=>{if(!o)return [];let e=new Set;for(let t of o.matchAll(/@(\d+)/g))e.add(t[1]);return P__default.default.toArray(e)},Ge=(o="")=>{if(!o)return [];let e=new Set;for(let t of o.matchAll(/@(\d+)/g))t[1].length<=15&&e.add(t[1]);return P__default.default.flatMap([...e],t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},Ii=o=>P__default.default.isEmpty(o)?[]:P__default.default.map([...o],e=>`${e}@s.whatsapp.net`),Ct=o=>P__default.default.omit(o,["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"]),Me=o=>{if(!o)return {leaf:void 0,chain:[]};let e=sn.extractMessageContent(o)||o,t=[];for(;e&&typeof e=="object";){let n=sn.getContentType(e);if(!n)break;t.push(n);let i=e[n];if(!i||typeof i!="object"){e=i;break}e=i;}return {leaf:e,chain:t}},z=o=>Number(o?.split("@")[0]);c();var x=o=>o,At=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(o){throw o}},Et=async o=>{try{let e=`.session/${o}/auth/creds.json`;await ue__default.default.unlink(e);}catch(e){throw a.spinner.error(`Failed to remove auth creds for session "${o}"!`),e}},Y=(o="")=>{if(!o?.length)return null;let e=o.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=>It__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=>It__default.default.nfkc(t)).join("").normalize("NFC").replace(/\s+/g," ").trim();return e.length?e:null};G();var xe=class{static async create(e,t){try{let n=await C.toBuffer(e),i=await fileType.fileTypeFromBuffer(n);if(!i)throw new Error("Unable to detect file type");let r=t?.quality||b.STICKER.DEFAULT_QUALITY,s=R.isAnimated(i.mime),l=t?.shape||"default",p=s?await this.processAnimated(n,i.mime,r):await N.resizeForSticker(n,r,l),u=this.createExifMetadata(t),w=new gn__default.default.Image;await w.load(p),w.exif=u;let T=await w.save(null);return Buffer.isBuffer(T)?T:Buffer.from(T)}catch(n){throw new Error(`Sticker creation failed: ${n.message||n}`)}}static createExifMetadata(e){let t={"sticker-pack-id":ne(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]),i=Buffer.from(JSON.stringify(t),"utf8"),r=Buffer.concat([n,i]);return r.writeUIntLE(i.length,14,4),r}static async processAnimated(e,t,n){let i=this.getExtension(t),r=h.createTempPath("sticker_in",i),s=h.createTempPath("sticker_out","webp");await h.safeWriteFile(r,e);let l=b.STICKER.MAX_DURATION;try{let A=await U.duration(r);l=x(Math.min(A,b.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",b.STICKER.MAX_DURATION);}let p=b.STICKER.SIZE,u=b.STICKER.FPS,w=`scale=${p}:${p}:force_original_aspect_ratio=increase,crop=${p}:${p},fps=${u},format=rgba`,T=Math.max(1,Math.min(100,100-n)),M;try{return await j.process({input:r,output:s,options:["-vcodec libwebp",`-vf ${w}`,`-q:v ${T}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${l}`,`-compression_level ${b.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{M=await h.safeReadFile(s);},onError:async()=>{await h.cleanup([r,s]);}}),await h.cleanup([r,s]),M}catch(A){throw await h.cleanup([r,s]),new Error(`Animated sticker processing failed: ${A.message}`)}}static getExtension(e){return e===b.MIME.GIF?"gif":e.startsWith(b.MIME.VIDEO)?"mp4":"tmp"}};c();G();G();var ve=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");let i;return n.mime.startsWith(b.MIME.VIDEO)?i=await U.thumbnail(t):R.isMedia(n.mime)?i=await N.thumbnail(t):i="",{document:t,mimetype:n.mime,fileName:ne(Date.now().toString()),jpegThumbnail:i}}catch(t){throw new Error(`Document creation failed: ${t.message||t}`)}}};c();var Te=class{constructor(e){this.client=e;this.keysDb=we(e.options.session),this.setupLogFilters();}keysDb;setupLogFilters(){let e=console.error,t=console.log,n=i=>{let r=i.join(" ");return ["Bad MAC","Session error:","Closing open session in favor of incoming prekey bundle","Error: Bad MAC"].some(l=>r.includes(l))};console.error=(...i)=>{n(i)||e.apply(console,i);},console.log=(...i)=>{n(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 Zt__default.default({level:"debug"},{write:e=>{try{let t=JSON.parse(e);if(t.msg?.includes("Bad MAC")){let n=t.jid||t.remoteJid;n&&this.repair(n);}}catch{}}})}};c();var fe=(o,e)=>{try{return o.parse(e)}catch(t){let n=zodValidationError.fromError(t);throw new Error(n.toString())}};c();c();var Je=class{concurrency;timeout;onError;queue;running;completed;failed;isClosing;closeResolve;constructor(e){this.concurrency=e?.concurrency||20,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 n={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(r=>r.priority<n.priority);return i===-1?this.queue.push(n):this.queue.splice(i,0,n),this._process(),n.id}addBulk(e){return e.map(({fn:t,options:n})=>this.add(t,n))}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((n,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(n=>{this.closeResolve=n;});if(e>0){let n=new Promise(i=>setTimeout(i,e));await Promise.race([t,n]);}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){}_generateId(){return `${Date.now()}-${Math.random().toString(36).substr(2,9)}`}},E=new Je;process.on("SIGTERM",()=>E.close());c();c();c();var y=(o,e="lime")=>Array.isArray(e)?Pt__default.default(e)(o):Pt__default.default([e,e])(o),He=o=>{try{return JSON.parse(o)}catch{return P__default.default.attempt(()=>JSON.parse(JSON.stringify(o)||"{}"))}},ge=o=>{try{return JSON.stringify(o)}catch{let e=P__default.default.attempt(()=>JSON.stringify(He(o)||"{}"));return P__default.default.isError(e)?"{}":e}},ks=(o="")=>P__default.default.shuffle(o).join(""),ye=(o="",e="")=>o?P__default.default.includes(o.toLowerCase(),e.toLowerCase()):null,Rt=(o="")=>o?P__default.default.castArray(o.match(sn.URL_REGEX)||[]):[],bs=o=>o[Math.floor(Math.random()*o.length)],Ke=(o,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),n=(i,r)=>{if(!i||typeof i!="object")return;let s=i,l=r.split(".");for(let p of l){let u=p.match(/^(.+?)\[(\d+)\]$/);if(u){let[,w,T]=u;s=s?.[w]?.[parseInt(T,10)];}else s=s?.[p];if(t(s))return}return s};if(!(!Array.isArray(o)||o.length===0)&&!(!Array.isArray(e)||e.length===0)){for(let i of o)if(!(!i||typeof i!="object"))for(let r of e){let s=n(i,r);if(!t(s))return s}}},Ms=(o,e)=>{let t=P__default.default.castArray(e),n=(s,l)=>P__default.default.every(l,(p,u)=>s?.[u]===p),i=(s,l)=>P__default.default.some(l,(p,u)=>s?.[u]===p),r=s=>P__default.default.isArray(s)?P__default.default.find(s,r)??s:P__default.default.isObject(s)?P__default.default.find(t,u=>n(s,u))||P__default.default.find(t,u=>i(s,u))?s:P__default.default.find(P__default.default.values(s),r)??s:null;return r(o)},xs=(o,e,t)=>new Proxy(o,{apply(n,i,r){e?.(r);let s=Reflect.apply(n,i,r);return t?t(s,r):s}});c();var Qe=class{input;constructor(e){this.input=e;}async toOpus(){return se.toOpus(this.input)}async toMp3(){return se.toMp3(this.input)}async convert(e="opus"){return se.convert(this.input,e)}},Ye=class{input;constructor(e){this.input=e;}async toMp4(){return U.toMp4(this.input)}async thumbnail(){return U.thumbnail(this.input)}},Ze=class{input;constructor(e){this.input=e;}async toJpeg(){return N.toJpeg(this.input)}async thumbnail(){let e=await C.toBuffer(this.input);return N.thumbnail(e)}async resize(e,t){let n=await C.toBuffer(this.input);return N.resize(n,e,t)}},Xe=class{input;metadata;constructor(e,t){this.input=e,this.metadata=t;}async create(){return xe.create(this.input,this.metadata)}},et=class{input;constructor(e){this.input=e;}async create(){return ve.create(this.input)}},tt=class{input;constructor(e){this.input=e;}async get(){let e=await C.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(b.MIME.VIDEO)?U.thumbnail(this.input):N.thumbnail(e)}},nt=class{audio(e){return new Qe(e)}video(e){return new Ye(e)}image(e){return new Ze(e)}sticker(e,t){return new Xe(e,t)}document(e){return new et(e)}thumbnail(e){return new tt(e)}async toBuffer(e){return C.toBuffer(e)}},O=new nt;var Se=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=a.get("socket");e.ev.on("call",async t=>{for(let n of t){let i=await this.parse(n);i&&(E.add(async()=>this.client.middleware.run({calls:i})),E.add(async()=>this.client.plugins.execute(this.client,{messages:i})),a.events.emit("calls",i),this.client.options?.autoRejectCall&&E.add(async()=>e.rejectCall(i.callId,i.callerId)));}});}async parse(e){let t=a.get("socket"),n={};return n.callId=e.id,n.callerId=sn.jidNormalizedUser(e.from),n.roomId=sn.jidNormalizedUser(e.chatId),n.roomName=Y(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}};c();c();var Ft=o=>{vn__default.default.generate(o,{small:true},e=>{console.log(e);});},$t=async()=>{console.clear(),a.spinner.start(" Checking for updates...");let o="2.2.7",e="zaadevofc",t=await At(),n=o===t;a.spinner.stop();let i="Zaileys",r=`
2
+ by ${e} \xB7 v${o}`,s="\u2014 discord.gg/KBHhTTVUc5",l=`${n?"\u2014 Already using latest version!":`\u2014 Update available! (v${t})`}
3
+ `,p=n?"lime":"orange",u=await Mn__default.default.text(i),w=Pt.cristal(u);console.log(w),console.log(y(r,"dimgray")),console.log(y(s,"purple")),console.log(y(l,p));};var Ie=class{constructor(e){this.client=e;this.initialize();}async initialize(){a.spinner.start(" Initializing connection...");let e=a.get("socket"),t={},n=async()=>{t.status="reload",a.spinner.warn(" Connection lost. Attempting auto-reload..."),await this.client.initialize(this.client);},i=async()=>{await sn.delay(3e3),a.spinner.warn(" Invalid session. Attempting auto cleaning creds..."),await sn.delay(3e3),await Et(this.client.options.session),await n();};if(this.client.options.authType==="pairing"&&this.client.options.phoneNumber&&!e.authState.creds.registered){a.spinner.update(" Generating pairing code..."),await sn.delay(3500);try{t.authTimeout=Date.now()+6e4;let r=new Date(t.authTimeout).toLocaleTimeString(),s=await e.requestPairingCode(this.client.options.phoneNumber.toString());a.spinner.warn(` Pairing expired at ${Pt.cristal(r)}`),a.spinner.warn(` Pairing code: ${s}`),t.code=s;}catch{await i();}}e.ev.on("connection.update",async r=>{let{connection:s,lastDisconnect:l,qr:p}=r;if(t.status=s||"connecting",t.authType=this.client.options.authType,a.spinner.update(" Connection status: "+Pt.cristal(t.status)),this.client.options.authType==="qr"&&p){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 ${Pt.cristal(u)}`),Ft(p),t.qr=p;return}if(s==="close"){let u=x(l?.error)?.output?.statusCode,w=l?.error?.message||"",T=typeof u=="number"&&u!==sn.DisconnectReason.loggedOut;if(a.spinner.error(` [${u} - Closed] ${w}`),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 n();return}T&&await n();}if(s==="open")if(e.user?.id){let u=sn.jidNormalizedUser(e.user.id).split("@")[0],w=e.user.name||e.user.verifiedName;a.spinner.success(` Connected as ${Pt.cristal(w||u)}`);}else a.spinner.success(" Connected!");a.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:r})=>{t.status="syncing",t.syncProgress=r,a.spinner.start(" Syncing messages history..."),r&&a.spinner.update(` Syncing messages history ${r+"%"}`),r==100&&(a.spinner.success(" Syncing messages history completed!"),t.syncCompleted=true),a.events.emit("connection",t);});}};c();c();var Ot={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"},it={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 Ae=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 Pe=class{constructor(e){this.client=e;this.limiter=new Ae(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:n})=>{try{if(n!=="notify"&&n!=="append")return;for(let i of t)try{let r=await this.parse(i);r&&(E.add(async()=>this.client.middleware.run({messages:r})),E.add(async()=>this.client.plugins.execute(this.client,{messages:r})),a.set("message",r),a.events.emit("messages",r),this.client.options.autoRead&&E.add(async()=>e.readMessages([r.message().key])));}catch{}}catch{}});}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,i=a.get("socket"),r={},s=Me(e.message),l=s.chain.at(-1),p=s.leaf;if(p?.message&&(s=Me(p.message),l=s.chain.at(-1),p=s.leaf),r.uniqueId=null,r.channelId=null,r.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,r.chatType=Ot[l],!r.chatType)return;r.receiverLid=sn.jidNormalizedUser(i?.user?.lid||""),r.receiverId=sn.jidNormalizedUser(i?.user?.id||""),r.receiverName=Y(i?.user?.name||i?.user?.verifiedName),r.roomId=sn.jidNormalizedUser(e?.key?.remoteJid);let u=p?.type===0,w=p?.type===1,T=p?.type===2,M=r.roomId?.includes("@newsletter"),A=!!e?.message?.questionMessage,W=e?.key?.fromMe||false;if(W&&this.client.options.ignoreMe&&t!=="replied")return;let H=p?.key?.id;if(u||w||T){let S=await this.client.db("messages").query(r.roomId).where("key.id","=",H).first();if(!S)return;e=S,s=Me(e.message),l=s.chain.at(-1),p=s.leaf;}if(r.roomName=await this.client.getRoomName(r.roomId),r.senderLid=sn.jidNormalizedUser(e?.key?.participant||e?.key?.remoteJid)||null,r.senderId=sn.jidNormalizedUser(e?.key?.participantAlt||e?.key?.remoteJidAlt)||null,r.senderName=Y(e?.pushName||e?.verifiedBizName),r.senderDevice=sn.getDevice(r.chatId||""),r.channelId=ne([r.roomId,r.senderId]),r.uniqueId=ne([r.channelId,r.chatId]),r.timestamp=Number(e?.messageTimestamp)*1e3,M){let S=await i.newsletterMetadata("jid",r.roomId);r.roomName=x(S.thread_metadata.name)?.text,r.senderId=null,r.senderLid=null;}W&&(r.senderLid=sn.jidNormalizedUser(i.user.lid),r.senderId=r.receiverId,r.senderName=r.receiverName),r.text=p?.text||p?.caption||p?.name||p?.displayName||p?.conversation||p?.contentText||p?.selectedDisplayText||p||null,p?.name=="menu_options"&&(r.text=He(p?.paramsJson)?.id),r.text=Y(r.text),r.mentions=St(r.text),r.links=Rt(r.text||""),r.isBot=r.chatId.startsWith("BAE5")||r.chatId.startsWith("3EB0")||r.chatId.startsWith("Z4D3FC"),r.isFromMe=W;let K=P__default.default.castArray(this.client.options?.prefix);if(r.isPrefix=!!K.find(S=>r.text?.startsWith(S)),r.isTagMe=r.mentions?.includes(r.receiverId.split("@")[0])||r.mentions?.includes(r.receiverLid.split("@")[0]),r.isStatusMention=!!e?.message?.statusMentionMessage,r.isGroupStatusMention=!!e?.message?.groupStatusMentionMessage,r.isHideTags=false,P__default.default.isEmpty(r.text)&&p?.contextInfo?.mentionedJid?.length&&(r.isHideTags=true),r.isSpam=await this.limiter.isSpam(r.channelId),r.isPrefix&&(r.text=r.text.replace(new RegExp(`^${P__default.default.escapeRegExp(K.find(S=>r.text?.startsWith(S))||"")}`),"")),r.isGroup=r.roomId?.includes("@g.us"),r.isNewsletter=M,r.isQuestion=A,r.isStory=r.roomId?.includes("@broadcast"),!r.isGroup&&!r.roomName&&(r.roomName=r.senderName),!r.isGroup){let S=r.senderId,$=r.senderLid;r.senderId=$,r.senderLid=S;}if(r.isViewOnce=false,r.isEdited=!!ye(ge(s),"editedMessage"),r.isDeleted=u,r.isPinned=w,r.isUnPinned=T,r.isBroadcast=!!e?.broadcast,r.isEphemeral=!!ye(ge(p?.contextInfo),"ephemeralSettingTimestamp"),r.isForwarded=!!ye(ge(p?.contextInfo),"forwardingScore"),r.citation=null,this.client.options.citation){r.citation=r.citation||{};let S=this.client.options.citation;for(let $ of Object.keys(S)){let ae=S[$];r.citation[$]=async()=>{let ce=await ae(),ee=[z(r.roomId),z(r.senderLid),z(r.senderId)];return !!P__default.default.intersection(ee,ce).length};}}r.chatType!=="text"&&(r.media={...Ct(p),buffer:()=>sn.downloadMediaMessage(e,"buffer",{}),stream:()=>sn.downloadMediaMessage(e,"stream",{})}),r.isStatusMention&&(r.chatType="statusMention"),r.isGroupStatusMention&&(r.chatType="groupStatusMention"),r.message=()=>n,r.replied=null;let v=p?.contextInfo?.quotedMessage,F=ye(ge(v),"viewOnce"),V=p?.contextInfo?.stanzaId;if(v&&this.maxReplies){this.maxReplies--;let S=await this.client.db("messages").getByIndex("messages","key.id",V),$;F?$={...S[0],message:v}:$=S[0],r.replied=await this.parse($,"replied"),r.replied&&(r.replied.isViewOnce=true),this.maxReplies=3;}return t!="replied"&&this.client.logs.message(r),r.injection=te.getAll(),r}};var Re=class{constructor(e){this.client=e;this.connection=new Ie(e),this.messages=new Pe(e),this.calls=new Se(e),this.initialize();}connection;messages;calls;async initialize(){let e=a.get("socket");e.ev.on("groups.update",async([t])=>{E.add(async()=>{let n=await e.groupMetadata(t.id);D.set(t.id,n);});}),e.ev.on("group-participants.update",async t=>{E.add(async()=>{let n=await e.groupMetadata(t.id);D.set(t.id,n);});}),e?.ev.on("messaging-history.set",async t=>{let{chats:n,contacts:i,messages:r}=t;E.add(async()=>{await this.client.db("chats").batchUpsert("chats",n,"id");}),E.add(async()=>{await this.client.db("contacts").batchUpsert("contacts",i,"id");}),E.add(async()=>{await this.client.db("messages").batchUpsert("messages",r,"key.id");});}),e?.ev.on("messages.upsert",async({messages:t})=>{E.add(async()=>{await this.client.db("messages").batchUpsert("messages",t,"key.id");});}),e?.ev.on("chats.upsert",async t=>{E.add(async()=>{await this.client.db("chats").batchUpsert("chats",t,"id");});}),e?.ev.on("contacts.upsert",async t=>{E.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 An=m__default.default.object({type:m__default.default.literal("quick_reply"),text:m__default.default.string()}),En=m__default.default.object({type:m__default.default.literal("cta_url"),url:m__default.default.url(),text:m__default.default.string()}),Pn=m__default.default.object({type:m__default.default.literal("cta_copy"),copy:m__default.default.string(),text:m__default.default.string()}),Rn=m__default.default.object({type:m__default.default.literal("cta_call"),text:m__default.default.string(),phoneNumber:m__default.default.string()}),Bn=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()}),Fn=m__default.default.object({type:m__default.default.literal("interactive"),footer:m__default.default.string().optional(),data:m__default.default.union([An,En,Pn,Rn,Bn]).array()}),$n=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()}),Nt=m__default.default.union([$n,Fn]);c();var On=m.z.object({maxMessages:m.z.number().default(20),durationMs:m.z.number().default(1e4)}).optional(),Dn=m.z.record(m.z.string(),m.z.function({output:m.z.promise(m.z.array(m.z.number()))})).optional(),Nn=m.z.object({provider:m.z.enum(["whatsapp","meta","chatgpt","copilot","instagram","tiktok"]).or(m.z.number())}).optional(),st=m.z.enum(["default","rounded","circle","oval"]).default("default"),Wn=m.z.object({packageName:m.z.string().optional(),authorName:m.z.string().optional(),quality:m.z.number().optional(),shape:st.optional()}).optional(),_n=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(),Wt=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(),showSpinner:m.z.boolean().default(true).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(),pluginsDir:m.z.string().default("plugins").optional(),pluginsHmr:m.z.boolean().default(true).optional(),autoCleanUp:_n,limiter:On,citation:Dn,fakeReply:Nn,sticker:Wn}),jn=m.z.object({authType:m.z.literal("pairing"),phoneNumber:m.z.number()}),Un=m.z.object({authType:m.z.literal("qr")}),_t=m.z.union([jn.extend(Wt.shape),Un.extend(Wt.shape)]),Do=m.z.enum(["connection","messages","calls"]);var he=m__default.default.url().or(m__default.default.base64()).or(m__default.default.instanceof(Buffer)),jt=m__default.default.object({text:m__default.default.string()}).passthrough(),Ln=m__default.default.object({image:he,caption:m__default.default.string().optional()}).passthrough(),zn=m__default.default.object({audio:he,caption:m__default.default.string().optional(),ptt:m__default.default.boolean().optional()}).passthrough(),qn=m__default.default.object({video:he,caption:m__default.default.string().optional(),ptv:m__default.default.boolean().optional()}).passthrough(),Vn=m__default.default.object({sticker:he,shape:st.optional(),caption:m__default.default.string().optional()}).passthrough(),Gn=m__default.default.object({document:he,caption:m__default.default.string().optional(),fileName:m__default.default.string().optional()}).passthrough(),Jn=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(),Hn=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(),Kn=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()})}),Ut=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:Nt.optional()});m__default.default.enum(["forward","button","edit","delete"]);var Qn=m__default.default.union([jt,Ln,zn,qn,Vn,Gn,Jn,Hn,Kn]),Lt=m__default.default.string().or(m__default.default.intersection(Qn,Ut.omit({buttons:true}))),zt=m__default.default.intersection(jt,Ut.omit({banner:true}));c();var Be=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=x(e).buttons,n=t?.data||[],r=t?.type=="simple"?this.toNativeSimple(n):this.toNativeInteractive(n);return {body:{text:x(e).text},footer:t.footer?{text:t.footer}:void 0,nativeFlowMessage:{buttons:r}}}async send(e,t,n){let i=a.get("socket"),r=i?.authState?.creds?.me?.id||i?.user?.id,s=this.build(t),l=sn.generateWAMessageFromContent(e,{interactiveMessage:s},{userJid:r,messageId:sn.generateMessageIDV2(r),...n});return await i.relayMessage(e,l.message,{messageId:l.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"}}]}]}]}),i.config?.emitOwnEvents&&!sn.isJidGroup(e)&&process.nextTick(()=>i.upsertMessage?.(l,"append")),l}};var Fe=class{constructor(e){this.client=e;}async signal(e,t,n,i){n!="delete"&&(n=="button"?t=fe(zt,t):t=fe(Lt,t));let r=a.get("socket"),s={},l={},p=P__default.default.isString(t),u=this.client.options?.fakeReply?.provider,w=this.client.options?.autoMentions,T=this.client.options?.autoPresence,M=P__default.default.has(t,"replied"),A=P__default.default.has(t,"banner"),W=P__default.default.has(t,"isViewOnce"),H=n=="button",K=P__default.default.has(t,"image"),v=P__default.default.has(t,"video"),F=P__default.default.has(t,"audio"),V=P__default.default.has(t,"sticker"),S=P__default.default.has(t,"document"),$=P__default.default.has(t,"location"),ae=P__default.default.has(t,"contacts"),ce=P__default.default.has(t,"poll"),ee=K||v||F||V||S,Q=p?t:Ke([t],["text","caption"]);if(T&&(F?await r.sendPresenceUpdate("recording",e):await r.sendPresenceUpdate("composing",e)),w&&(s={...s,mentions:Ge(Q),contextInfo:{mentionedJid:Ge(Q)}}),M&&(l.quoted=x(t).replied,u&&(l.quoted.key.remoteJid=it[u],l.quoted.key.participant=it[u])),A&&(s={...s,contextInfo:{externalAdReply:x(t).banner}},s.contextInfo.externalAdReply.mediaType=1),W&&(s={...s,viewOnce:x(t)?.isViewOnce}),Q&&(s={...s,text:Q,caption:Q},ee&&delete x(s).text),ee){let I=Ke([t],["image","video","audio","sticker","document"]);if(K&&(s={...s,image:await O.image(I).toJpeg(),jpegThumbnail:await O.thumbnail(I).get()}),v){let _=x(t)?.ptv;s={...s,video:await O.video(I).toMp4(),ptv:_,jpegThumbnail:await O.thumbnail(I).get()};}if(F){let _=x(t)?.ptt;s={...s,audio:await O.audio(I).toOpus(),ptt:_,mimetype:_?"audio/ogg; codecs=opus":"audio/mpeg"};}if(V){let _=x(t)?.shape;s={...s,sticker:await O.sticker(I,{...this.client.options?.sticker,shape:_}).create()};}if(S){let _=await O.document(I).create();s={...s,fileName:x(t).fileName,..._};}}if($){let I=x(t).location;s={...s,location:{degreesLatitude:I.latitude,degreesLongitude:I.longitude,url:I.url,address:I.footer,name:I.title}};}if(ae){let I=x(t)?.contacts,_=I?.contacts.map(pe=>{let Gt=["BEGIN:VCARD","VERSION:3.0",`FN:${pe.fullname}`,`ORG:${pe.organization||""}`,`TEL;type=CELL;type=VOICE;waid=${pe.phoneNumber}:${pe.phoneNumber}`,"END:VCARD"].join(`
5
+ `);return {displayName:pe.fullname,vcard:Gt}});s={...s,contacts:{displayName:I?.title,contacts:_}};}if(ce){let I=x(t)?.poll;s={...s,poll:{name:I.name,values:I.answers,selectableCount:I.isMultiple?1:0,toAnnouncementGroup:true}};}return n=="forward"&&(s={...s,contextInfo:{...x(s).contextInfo,isForwarded:true,forwardingScore:x(t).isForwardedMany?9999:1}}),n=="edit"&&(s={...s,edit:i?.key},await r.sendPresenceUpdate("paused",e)),n=="delete"&&(s={...s,delete:i?.key},await r.sendPresenceUpdate("paused",e)),H?await new Be().send(e,t,l):await r.sendMessage(e,x(s),l)}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 P__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=a.get("socket"),i={typing:"composing",recording:"recording",online:"available",offline:"unavailable",paused:"paused"};return await n.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 ot=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").communityCreate(e,t)}async createGroup(e,t,n){return await a.get("socket").communityCreateGroup(e,t,n)}async leave(e){return await a.get("socket").communityLeave(e)}async metadata(e){return await a.get("socket").communityMetadata(e)}async update(e,t,n){let i=a.get("socket");switch(t){case "subject":return await i.communityUpdateSubject(e,n);case "description":return await i.communityUpdateDescription(e,n)}}async group(e,t,n){let i=a.get("socket");switch(t){case "link":if(!n)throw "Group JID is required for linking";return await i.communityLinkGroup(e,n);case "unlink":if(!n)throw "Group JID is required for unlinking";return await i.communityUnlinkGroup(e,n);case "linked":return await i.communityFetchLinkedGroups(e)}}async participants(e,t,n,i){let r=a.get("socket");switch(t){case "list":return await r.communityRequestParticipantsList(e);case "request-update":return await r.communityRequestParticipantsUpdate(e,i,x(n));case "update":if(!n||!i)throw "Action and participants are required for update";return await r.communityParticipantsUpdate(e,i,x(n));case "all":return await r.communityFetchAllParticipating()}}async invite(e,t,...n){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,n[0]);case "acceptV4":return await i.communityAcceptInviteV4(e,n[0])}}async settings(e,t,n){let i=a.get("socket");switch(t){case "ephemeral":return await i.communityToggleEphemeral(e,n);case "update":return await i.communitySettingUpdate(e,n);case "memberAdd":return await i.communityMemberAddMode(e,n);case "approval":return await i.communityJoinApprovalMode(e,n)}}},$e=class{constructor(e){this.mlient=e;this.community=new ot(e);}community};c();var at=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").groupCreate(e,t)}async participant(e,t,n){return await a.get("socket").groupParticipantsUpdate(e,t,n)}async profile(e,t,n){let i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "subject":if(!r)return await i.groupUpdateSubject(e,t);case "description":if(!r)return await i.groupUpdateDescription(e,t);case "picture":return await i.updateProfilePicture(e,await O.toBuffer(t))}}async setting(e,t){let n=a.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 a.get("socket").groupLeave(e)}async inviteCode(e,t){let n=a.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=a.get("socket"),n=D.get(e);if(n)return n;let i=await t.groupMetadata(e);return i&&D.set(e,i),i}async requestJoin(e,t,n){let i=a.get("socket");switch(n){case "approve":return await i.groupRequestParticipantsUpdate(e,t,n);case "reject":return await i.groupRequestParticipantsUpdate(e,t,n)}}async requestJoinList(e){return await a.get("socket").groupRequestParticipantsList(e)}async fetchAllGroups(){return await a.get("socket").groupFetchAllParticipating()}async ephemeral(e,t){let n=a.get("socket"),i={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await n.groupToggleEphemeral(e,i[t])}},Oe=class{constructor(e){this.glient=e;this.group=new at(e);}group};c();var ct=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").newsletterCreate(e,t)}async action(e,t){let n=a.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 i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "name":if(!r)return await i.newsletterUpdateName(e,t);case "description":if(!r)return await i.newsletterUpdateDescription(e,t);case "picture":return await i.newsletterUpdatePicture(e,await O.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,n){return await a.get("socket").newsletterReactMessage(e,t,n)}async fetchMessages(e,t,n,i){let r=a.get("socket"),s=n.getTime()/1e3,l=i.getTime()/1e3;return await r.newsletterFetchMessages(e,t,s,l)}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)}},De=class{constructor(e){this.nlient=e;this.newsletter=new ct(e);}newsletter};c();var pt=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"),n={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await t.updateDefaultDisappearingMode(n[e])}async blocklist(){return await a.get("socket").fetchBlocklist()}async getSettings(){return await a.get("socket").fetchPrivacySettings(true)}},Ne=class{constructor(e){this.plient=e;this.privacy=new pt(e);}privacy};c();c();var Ia=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 tr=m__default.default.enum(["unknown","android","ios","desktop","web"]),nr=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"]),qt=m__default.default.object({channelId:m__default.default.string(),uniqueId:m__default.default.string(),chatId:m__default.default.string(),chatType:nr,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:tr,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(er__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()})}),Ba=qt.extend({replied:qt.nullable()});c();var Da=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 We=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=x(this.getRoomColor(e)),n=e?.text?.toLowerCase()?.match("zaileys"),i=this.client.options?.fancyLogs,r=y(`[${new Date(e?.timestamp).toTimeString().split(" ")[0]}]`,"dimgray"),s=y(`${e?.roomName}`,t),l=e?.text?.slice(0,300)||"",p=l?.length>=300?"...":"";if(i){let u=y("\u2501".repeat(50),"dimgray"),w=y("\u2192","dimgray"),T=y("\u2022",t),M=`
4
6
  ${u}
5
- `;x+=`${T} ${r} ${k} ${s}
6
- `,e?.isNewsletter?(x+=` ${y("\u{1F4E2} Room:","dimgray")} ${y(`${e?.roomName}`,t)}
7
- `,x+=` ${y("\u{1F194} ID:","dimgray")} ${y(`${z(e?.roomId)}`,"gray")}
8
- `):(x+=` ${y("\u{1F464} Sender:","dimgray")} ${y(`${e?.senderName}`,t)}
9
- `,x+=` ${y("\u{1F194} ID:","dimgray")} ${y(`${z(e?.senderId)}`,"gray")}
10
- `,e?.isGroup&&(x+=` ${y("\u{1F3E0} Group:","dimgray")} ${y(`${e?.roomName}`,"lime")}
11
- `)),x+=` ${y("\u{1F4DD} Type:","dimgray")} ${y(`${e?.chatType||"text"}`,"cyan")}
12
- `,x+=` ${y("\u{1F4AC} Text:","dimgray")} ${y(l+p,n?["#ff5f6d","#ffc371"]:"brown")}
13
- `,e?.isSpam&&(x+=` ${y("\u26A0\uFE0F Spam:","dimgray")} ${y("Yes","red")}
14
- `),e?.isForwarded&&(x+=` ${y("\u21AA\uFE0F Forwarded:","dimgray")} ${y("Yes","yellow")}
15
- `),e?.isEdited&&(x+=` ${y("\u270F\uFE0F Edited:","dimgray")} ${y("Yes","yellow")}
16
- `),x+=`${u}`,console.log(x);}else {let u=`${r} \u2192 ${s}
7
+ `;M+=`${T} ${r} ${w} ${s}
8
+ `,e?.isNewsletter?(M+=` ${y("\u{1F4E2} Room:","dimgray")} ${y(`${e?.roomName}`,t)}
9
+ `,M+=` ${y("\u{1F194} ID:","dimgray")} ${y(`${z(e?.roomId)}`,"gray")}
10
+ `):(M+=` ${y("\u{1F464} Sender:","dimgray")} ${y(`${e?.senderName}`,t)}
11
+ `,M+=` ${y("\u{1F194} ID:","dimgray")} ${y(`${z(e?.senderId)}`,"gray")}
12
+ `,e?.isGroup&&(M+=` ${y("\u{1F3E0} Group:","dimgray")} ${y(`${e?.roomName}`,"lime")}
13
+ `)),M+=` ${y("\u{1F4DD} Type:","dimgray")} ${y(`${e?.chatType||"text"}`,"cyan")}
14
+ `,M+=` ${y("\u{1F4AC} Text:","dimgray")} ${y(l+p,n?["#ff5f6d","#ffc371"]:"brown")}
15
+ `,e?.isSpam&&(M+=` ${y("\u26A0\uFE0F Spam:","dimgray")} ${y("Yes","red")}
16
+ `),e?.isForwarded&&(M+=` ${y("\u21AA\uFE0F Forwarded:","dimgray")} ${y("Yes","yellow")}
17
+ `),e?.isEdited&&(M+=` ${y("\u270F\uFE0F Edited:","dimgray")} ${y("Yes","yellow")}
18
+ `),M+=`${u}`,console.log(M);}else {let u=`${r} \u2192 ${s}
17
19
  `;e?.isNewsletter?u+=`${y("[room]","dimgray")} \u2192 ${y(`${e?.roomName} (${z(e?.roomId)})`,t)}
18
20
  `:u+=`${y("[sender]","dimgray")} \u2192 ${y(`${e?.senderName} (${z(e?.senderId)})`,t)}
19
21
  `,u+=`${y(`[${e?.chatType||"unknown"}]`,"dimgray")} \u2192 ${y(l+p,n?["#ff5f6d","#ffc371"]:"brown")}
20
- `,u+="\u2014",console.log(u);}}call(e){if(!this.isReady)return;let t=M(this.getRoomColor(e)),n=y(`[${new Date(e?.date).toTimeString().split(" ")[0]}]`,"dimgray"),i=y(`${e?.roomName}`,t),r=`${n} \u2192 ${i}
22
+ `,u+="\u2014",console.log(u);}}call(e){if(!this.isReady)return;let t=x(this.getRoomColor(e)),n=y(`[${new Date(e?.date).toTimeString().split(" ")[0]}]`,"dimgray"),i=y(`${e?.roomName}`,t),r=`${n} \u2192 ${i}
21
23
  `;r+=`${y("[caller]","dimgray")} \u2192 ${y(`${e?.callerId} (${z(e?.callerId)})`,t)}
22
24
  `,r+=`${y(`[${e?.status}]`,"dimgray")} \u2192 ${y(e?.isVideo?"Video Call":"Voice Call","brown")}
23
- `,r+="\u2014",console.log(r);}};c();var We=class{stack=[];use(e){return this.stack.push(e),this}async run(e){let t=-1,n=async i=>{if(i<=t)throw "next() called multiple times";t=i;let r=this.stack[i];if(r)try{await r(e,()=>n(i+1));}catch(s){throw console.error("Middleware error:",s),s}};await n(0);}};c();var _e=class{plugins=[];pluginsDir;globalEnabled=true;disabledPlugins=new Set;hmr=false;watcher=null;constructor(e="plugins",t=false){this.pluginsDir=J__namespace.isAbsolute(e)?e:J__namespace.join(process.cwd(),e),this.hmr=t;}async getAllFiles(e,t=e){try{await X__namespace.promises.access(e);}catch{return []}let n=await X__namespace.promises.readdir(e,{withFileTypes:true});return (await Promise.all(n.map(async r=>{let s=J__namespace.join(e,r.name);if(r.isDirectory())return this.getAllFiles(s,t);if((r.name.endsWith(".ts")||r.name.endsWith(".js"))&&!r.name.endsWith(".d.ts")){let p=J__namespace.relative(t,e),u=p===""?null:p.split(J__namespace.sep)[0];return [{filePath:s,parent:u}]}return []}))).flat()}async load(){try{await X__namespace.promises.access(this.pluginsDir);}catch{return}let e=await this.getAllFiles(this.pluginsDir),t=await Promise.all(e.map(async({filePath:n,parent:i})=>{try{let r=url.pathToFileURL(n).href,p=(await import(this.hmr?`${r}?t=${Date.now()}`:r)).default;if(p?.default&&(p=p.default),p?.handler&&p?.config){let u=this.getPluginId(p.config.matcher);return {...p,parent:i,enabled:!this.disabledPlugins.has(u)}}}catch(r){console.error(`[Plugins] Failed to load plugin ${n}:`,r);}return null}));this.plugins=t.filter(n=>n!==null);}setupHmr(){if(!(!this.hmr||this.watcher))try{if(!X__namespace.existsSync(this.pluginsDir))return;this.watcher=X__namespace.watch(this.pluginsDir,{recursive:!0},async(e,t)=>{t&&(t.endsWith(".ts")||t.endsWith(".js"))&&await this.reload();});}catch(e){console.error("[Plugins] Failed to setup HMR:",e);}}getPluginId(e){return e.map(t=>t.toString()).join("|")}async execute(e,t){if(!this.globalEnabled)return;let n=t.messages?.text||"";for(let i of this.plugins)if(i.enabled)try{this.match(n,i.config.matcher)&&await i.handler(e,t);}catch(r){console.error("[Plugins] Error executing plugin:",r);}}match(e,t){return t.some(n=>n instanceof RegExp?n.test(e):e===n||e.startsWith(n+" "))}enableAll(){this.globalEnabled=true,this.plugins.forEach(e=>e.enabled=true),this.disabledPlugins.clear();}disableAll(){this.globalEnabled=false;}enable(e){let t=e.toString(),n=this.plugins.find(i=>i.config.matcher.some(r=>r.toString()===t));return n?(n.enabled=true,this.disabledPlugins.delete(this.getPluginId(n.config.matcher)),true):false}disable(e){let t=e.toString(),n=this.plugins.find(i=>i.config.matcher.some(r=>r.toString()===t));return n?(n.enabled=false,this.disabledPlugins.add(this.getPluginId(n.config.matcher)),true):false}enableByParent(e){let t=0;return this.plugins.forEach(n=>{n.parent===e&&(n.enabled=true,this.disabledPlugins.delete(this.getPluginId(n.config.matcher)),t++);}),t}disableByParent(e){let t=0;return this.plugins.forEach(n=>{n.parent===e&&(n.enabled=false,this.disabledPlugins.add(this.getPluginId(n.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(),console.log(`[Plugins] Successfully reloaded ${this.plugins.length} plugins.`);}stopHmr(){this.watcher&&(this.watcher.close(),this.watcher=null);}},Ja=(o,e)=>({handler:o,config:e});var Lt=class{constructor(e){this.options=e;this.options=de(Dt,e);let t=new re().classInjection(this,[new Be(this),new $e(this),new De(this),new Oe(this),new Fe(this)]);return this.plugins=new _e(this.options.pluginsDir,this.options.pluginsHmr),this._ready=this.initialize(t),t}_ready;logs;middleware=new We;plugins;health;cleanup;async initialize(e){await qe(this.options.disableFFmpeg),this.health=new ve(this),this.cleanup=new we(this),this.options.autoCleanUp?.enabled&&this.cleanup.start(),await kt(this),await this.plugins.load(),this.plugins.setupHmr(),new Ee(e||this),this.logs||(this.logs=new Ne(this));}ready(){return this._ready}db(e){return ut(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"),n=e.endsWith("@g.us"),i=null;if(n){let r=D.get(e);if(r)i=r.subject;else {let s=await t.groupMetadata(e);s&&(D.set(e,s),i=s.subject);}}return Y(i)}inject(e,t){te.inject(e,t);}getInjection(e){return te.getSync(e)}removeInjection(e){te.remove(e);}clearInjections(){te.clear();}};
25
+ `,r+="\u2014",console.log(r);}};c();var _e=class{stack=[];use(e){return this.stack.push(e),this}async run(e){let t=-1,n=async i=>{if(i<=t)throw "next() called multiple times";t=i;let r=this.stack[i];if(r)try{await r(e,()=>n(i+1));}catch(s){throw console.error("Middleware error:",s),s}};await n(0);}};c();var je=class{plugins=[];pluginsDir;globalEnabled=true;disabledPlugins=new Set;hmr=false;watcher=null;constructor(e="plugins",t=false){this.pluginsDir=J__namespace.isAbsolute(e)?e:J__namespace.join(process.cwd(),e),this.hmr=t;}async getAllFiles(e,t=e){try{await X__namespace.promises.access(e);}catch{return []}let n=await X__namespace.promises.readdir(e,{withFileTypes:true});return (await Promise.all(n.map(async r=>{let s=J__namespace.join(e,r.name);if(r.isDirectory())return this.getAllFiles(s,t);if((r.name.endsWith(".ts")||r.name.endsWith(".js"))&&!r.name.endsWith(".d.ts")){let p=J__namespace.relative(t,e),u=p===""?null:p.split(J__namespace.sep)[0];return [{filePath:s,parent:u}]}return []}))).flat()}async load(){try{await X__namespace.promises.access(this.pluginsDir);}catch{return}let e=await this.getAllFiles(this.pluginsDir),t=await Promise.all(e.map(async({filePath:n,parent:i})=>{try{let r=url.pathToFileURL(n).href,p=(await import(this.hmr?`${r}?t=${Date.now()}`:r)).default;if(p?.default&&(p=p.default),p?.handler&&p?.config){let u=this.getPluginId(p.config.matcher);return {...p,parent:i,enabled:!this.disabledPlugins.has(u)}}}catch(r){console.error(`[Plugins] Failed to load plugin ${n}:`,r);}return null}));this.plugins=t.filter(n=>n!==null);}setupHmr(){if(!(!this.hmr||this.watcher))try{if(!X__namespace.existsSync(this.pluginsDir))return;this.watcher=X__namespace.watch(this.pluginsDir,{recursive:!0},async(e,t)=>{t&&(t.endsWith(".ts")||t.endsWith(".js"))&&await this.reload();});}catch(e){console.error("[Plugins] Failed to setup HMR:",e);}}getPluginId(e){return e.map(t=>t.toString()).join("|")}async execute(e,t){if(!this.globalEnabled)return;let n=t.messages?.text||"";for(let i of this.plugins)if(i.enabled)try{this.match(n,i.config.matcher)&&await i.handler(e,t);}catch(r){console.error("[Plugins] Error executing plugin:",r);}}match(e,t){return t.some(n=>n instanceof RegExp?n.test(e):e===n||e.startsWith(n+" "))}enableAll(){this.globalEnabled=true,this.plugins.forEach(e=>e.enabled=true),this.disabledPlugins.clear();}disableAll(){this.globalEnabled=false;}enable(e){let t=e.toString(),n=this.plugins.find(i=>i.config.matcher.some(r=>r.toString()===t));return n?(n.enabled=true,this.disabledPlugins.delete(this.getPluginId(n.config.matcher)),true):false}disable(e){let t=e.toString(),n=this.plugins.find(i=>i.config.matcher.some(r=>r.toString()===t));return n?(n.enabled=false,this.disabledPlugins.add(this.getPluginId(n.config.matcher)),true):false}enableByParent(e){let t=0;return this.plugins.forEach(n=>{n.parent===e&&(n.enabled=true,this.disabledPlugins.delete(this.getPluginId(n.config.matcher)),t++);}),t}disableByParent(e){let t=0;return this.plugins.forEach(n=>{n.parent===e&&(n.enabled=false,this.disabledPlugins.add(this.getPluginId(n.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(),console.log(`[Plugins] Successfully reloaded ${this.plugins.length} plugins.`);}stopHmr(){this.watcher&&(this.watcher.close(),this.watcher=null);}},Xa=(o,e)=>({handler:o,config:e});var Vt=class{constructor(e){this.options=e;this.options=fe(_t,e);let t=new re().classInjection(this,[new Fe(this),new Oe(this),new Ne(this),new De(this),new $e(this)]);return this.plugins=new je(this.options.pluginsDir,this.options.pluginsHmr),this._ready=this.initialize(t),t}_ready;logs;middleware=new _e;plugins;health;cleanup;async initialize(e){await $t(),a.spinner=new ie(this.options.showSpinner!==false),await Ve(this.options.disableFFmpeg),this.health=new Te(this),this.cleanup=new ke(this),this.options.autoCleanUp?.enabled&&this.cleanup.start(),await bt(this),await this.plugins.load(),this.plugins.setupHmr(),new Re(e||this),this.logs||(this.logs=new We(this));}ready(){return this._ready}db(e){return mt(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"),n=e.endsWith("@g.us"),i=null;if(n){let r=D.get(e);if(r)i=r.subject;else {let s=await t.groupMetadata(e);s&&(D.set(e,s),i=s.subject);}}return Y(i)}inject(e,t){te.inject(e,t);}getInjection(e){return te.getSync(e)}removeInjection(e){te.remove(e);}clearInjections(){te.clear();}};
24
26
  /*
25
27
  * Copyright (c) 2025 zaadevofc.
26
28
  * All rights reserved.
@@ -28,7 +30,7 @@ ${u}
28
30
  * See LICENSE file for details.
29
31
 
30
32
  * Author: zaadevofc
31
- * Last build time: 12/23/2025 11:32:43 AM
33
+ * Last build time: 12/25/2025 5:51:56 AM
32
34
  *
33
35
  * Repository: git+https://github.com/zeative/zaileys.git
34
- */exports.BaseMessagesType=Ut;exports.ButtonInteractiveCallType=In;exports.ButtonInteractiveCopyType=Cn;exports.ButtonInteractiveReplyType=Tn;exports.ButtonInteractiveSingleSelectType=An;exports.ButtonInteractiveType=Pn;exports.ButtonInteractiveUrlType=Sn;exports.ButtonSimpleType=En;exports.ButtonType=$t;exports.CitationType=Bn;exports.Client=Lt;exports.ClientAuthPairingType=Dn;exports.ClientAuthQRType=Nn;exports.ClientBaseType=Ot;exports.ClientOptionsType=Dt;exports.DEVICE_ENUM_TYPES=Yn;exports.EventEnumType=Eo;exports.FakeReplyType=Fn;exports.LimiterType=Rn;exports.ListenerCallsType=Ea;exports.ListenerConnectionType=xa;exports.ListenerMessagesType=Ca;exports.MESSAGE_ENUM_TYPES=Zn;exports.MediaModifier=tt;exports.Plugins=_e;exports.StickerMetadataType=$n;exports.StickerShapeType=it;exports.autoCleanUp=On;exports.cleanJid=z;exports.cleanMediaObject=St;exports.definePlugins=Ja;exports.extractJids=Ve;exports.extractUrls=Pt;exports.findGlobalWord=ge;exports.findNestedByKeys=ds;exports.generateId=ne;exports.getDeepContent=be;exports.getLatestLibVersion=un;exports.getUsersMentions=Tt;exports.ignoreLint=M;exports.logColor=y;exports.mediaModifier=O;exports.modifyFn=fs;exports.normalizeText=Y;exports.numbersToJids=ki;exports.pickKeysFromArray=He;exports.randomize=ms;exports.registerAuthCreds=kt;exports.removeAuthCreds=It;exports.shuffleString=us;exports.toJson=Je;exports.toString=fe;exports.useAuthState=yt;
36
+ */exports.BaseMessagesType=qt;exports.ButtonInteractiveCallType=Rn;exports.ButtonInteractiveCopyType=Pn;exports.ButtonInteractiveReplyType=An;exports.ButtonInteractiveSingleSelectType=Bn;exports.ButtonInteractiveType=Fn;exports.ButtonInteractiveUrlType=En;exports.ButtonSimpleType=$n;exports.ButtonType=Nt;exports.CitationType=Dn;exports.Client=Vt;exports.ClientAuthPairingType=jn;exports.ClientAuthQRType=Un;exports.ClientBaseType=Wt;exports.ClientOptionsType=_t;exports.DEVICE_ENUM_TYPES=tr;exports.EventEnumType=Do;exports.FakeReplyType=Nn;exports.LimiterType=On;exports.ListenerCallsType=Da;exports.ListenerConnectionType=Ia;exports.ListenerMessagesType=Ba;exports.MESSAGE_ENUM_TYPES=nr;exports.MediaModifier=nt;exports.Plugins=je;exports.StickerMetadataType=Wn;exports.StickerShapeType=st;exports.autoCleanUp=_n;exports.cleanJid=z;exports.cleanMediaObject=Ct;exports.definePlugins=Xa;exports.extractJids=Ge;exports.extractUrls=Rt;exports.findGlobalWord=ye;exports.findNestedByKeys=Ms;exports.generateId=ne;exports.getDeepContent=Me;exports.getLatestLibVersion=At;exports.getUsersMentions=St;exports.ignoreLint=x;exports.logColor=y;exports.mediaModifier=O;exports.modifyFn=xs;exports.normalizeText=Y;exports.numbersToJids=Ii;exports.pickKeysFromArray=Ke;exports.randomize=bs;exports.registerAuthCreds=bt;exports.removeAuthCreds=Et;exports.shuffleString=ks;exports.toJson=He;exports.toString=ge;exports.useAuthState=ht;
package/dist/index.mjs CHANGED
@@ -1,26 +1,28 @@
1
- import*as H from'path';import H__default from'path';import {pathToFileURL}from'url';import be from'fluent-ffmpeg';import ue from'fs/promises';import {tmpdir}from'os';import nn,{initAuthCreds,proto,makeCacheableSignalKeyStore,Browsers,extractMessageContent,getContentType,URL_REGEX,BufferJSON,generateWAMessageFromContent,generateMessageIDV2,isJidGroup,delay,DisconnectReason,jidNormalizedUser,getDevice,downloadMediaMessage}from'baileys';import {createJetDB}from'jetdb';import le from'node-cache';import Kt from'pino';import {EventEmitter}from'events';import {Mutex}from'async-mutex';import {fileTypeFromBuffer}from'file-type';import {Jimp}from'jimp';import fn from'node-webpmux';import R from'lodash';import It from'unorm';import {fromError}from'zod-validation-error';import Pt,{cristal}from'gradient-string';import'figlet';import bn from'qrcode-terminal';import {RateLimiterMemory}from'rate-limiter-flexible';import m,{z as z$1}from'zod';import Yn from'stream';import*as ee from'fs';var Vt=Object.defineProperty;var Gt=(o=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(o,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):o)(function(o){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var lt=(o,e)=>()=>(o&&(e=o(o=0)),e);var Jt=(o,e)=>{for(var t in e)Vt(o,t,{get:e[t],enumerable:true});};var c=lt(()=>{});var xt={};Jt(xt,{BufferConverter:()=>I,FFMPEG_CONSTANTS:()=>x,FFmpegProcessor:()=>L,FileManager:()=>w,MimeValidator:()=>B,initializeFFmpeg:()=>Ve});var x,Ve,w,I,B,L,J=lt(()=>{c();x={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"}},Ve=async(o=false)=>{if(!o)try{let e=(await import('@ffmpeg-installer/ffmpeg')).default,t=(await import('@ffprobe-installer/ffprobe')).default;be.setFfmpegPath(e.path),be.setFfprobePath(t.path);}catch{}},w=class{static generateUniqueId(){return `${Date.now()}_${Math.random().toString(36).slice(2,11)}`}static createTempPath(e,t){return H__default.join(tmpdir(),`${e}_${this.generateUniqueId()}.${t}`)}static async cleanup(e){await Promise.allSettled(e.map(t=>ue.unlink(t)));}static async safeReadFile(e){try{return await ue.readFile(e)}catch{throw new Error(`Failed to read file: ${e}`)}}static async safeWriteFile(e,t){try{await ue.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){if(e.startsWith("http://")||e.startsWith("https://"))return this.fromUrl(e);try{if(await ue.stat(e).then(t=>t.isFile()).catch(()=>!1))return await ue.readFile(e)}catch{}return 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}`)}}static async getExtension(e){let{fileTypeFromBuffer:t}=await import('file-type'),n=await t(e);if(!n)return "tmp";let i=n.ext.toLowerCase();return ["wav","ogg","mp4","gif","jpg","webp","tmp","mp3","png"].includes(i)?i:"tmp"}},B=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(x.MIME.IMAGE)||e.startsWith(x.MIME.VIDEO)}static isAnimated(e){return e===x.MIME.GIF||e.startsWith(x.MIME.VIDEO)}},L=class{static async process(e){return new Promise((t,n)=>{let i=be(e.input).output(e.output);for(let r=0;r<e.options.length;r++){let s=e.options[r];s.startsWith("-")&&r+1<e.options.length&&!e.options[r+1].startsWith("-")?(i.outputOptions(s,e.options[r+1]),r++):i.outputOptions(s);}i.on("end",async()=>{try{await e.onEnd(),t();}catch(r){n(r);}}).on("error",async r=>{try{await e.onError(r);}finally{n(r);}}).run();})}static async getDuration(e){return new Promise((t,n)=>{be.ffprobe(e,(i,r)=>{if(i)return n(i);t(r.format.duration||0);});})}};});c();c();c();c();var ut=o=>createJetDB(`${o}/auth/creds.json`,{BufferJSON:BufferJSON,cacheSize:100,flushMode:"sync",compression:"none",enableIndexing:false}),we=o=>createJetDB(`${o}/auth/keys.json`,{BufferJSON:BufferJSON,size:1024*1024,cacheSize:2e3,flushMode:"sync",compression:"none",enableIndexing:false,hotThreshold:5}),mt=(o,e)=>createJetDB(`.session/${o}/store/${e}.json`,{BufferJSON:BufferJSON,cacheSize:2e4,debounceMs:1e3,flushMode:"debounce",compression:"deflate",serialization:"json",enableIndexing:true,hotThreshold:2,size:5*1024*1024});c();c();var dt=new le({stdTTL:600,checkperiod:120,useClones:false}),N=new le({stdTTL:300,useClones:false}),ft=new le({stdTTL:300}),gt=new le({stdTTL:600,checkperiod:120,useClones:false,deleteOnExpire:true,maxKeys:100}),yt=new le;c();var ie=class{classInjection(e,t){let n=t.length;return new Proxy(e,{get(i,r,s){if(r in i){let l=Reflect.get(i,r,s);return typeof l=="function"?l.bind(i):l}for(let l=0;l<n;l++){let p=t[l];if(r in p){let u=Reflect.get(p,r,p);return typeof u=="function"?u.bind(p):u}}},set(i,r,s,l){if(r in i)return Reflect.set(i,r,s,l);for(let p=0;p<n;p++){let u=t[p];if(r in u)return Reflect.set(u,r,s,l)}return Reflect.set(i,r,s,l)},has(i,r){if(r in e)return true;for(let s=0;s<n;s++)if(r in t[s])return true;return false},ownKeys(){let i=[];for(let r of Reflect.ownKeys(e))i.push(r);for(let r=0;r<n;r++)for(let s of Reflect.ownKeys(t[r]))i.includes(s)||i.push(s);return i},getOwnPropertyDescriptor(i,r){let s=Object.getOwnPropertyDescriptor(e,r);if(s)return s;for(let l=0;l<n;l++)if(s=Object.getOwnPropertyDescriptor(t[l],r),s)return s}})}};var Yt=(o="",e={})=>{let t={text:o,color:e.color||"white",...e},n=(i,r)=>{typeof r=="string"?t.text=r:r?.text&&(t.text=r.text);let s=r?.mark||i;console.log(`${s} ${t.text}`);};return {start(i){return typeof i=="string"&&(t.text=i),console.log(`[-] ${t.text} (started)`),this},stop(i){return n("[\u25A0]",i),this},success(i){return n("[\u221A]",i),this},warn(i){return n("[!]",i),this},error(i){return n("[\xD7]",i),this},info(i){return n("[i]",i),this},update(i){return typeof i=="string"?t.text=i:Object.assign(t,i),console.log(`[update] ${t.text}`),this},spin(){return this},reset(){return console.log("[reset]"),this},clear(){return this}}},ze=class extends le{constructor(){return super({useClones:false}),new ie().classInjection(this,[dt])}spinner=Yt("",{color:"green"});logger=Kt({level:"silent",enabled:false});events=new EventEmitter},a=new ze;var ht=async o=>{a.spinner.start(" Initializing auth state...");let e=ut(o),t=we(o),n=await e.get("creds"),i=n||initAuthCreds();return n?a.spinner.success(" Auth credentials loaded successfully"):a.spinner.success(" Initialized new auth session"),{state:{creds:i,keys:{get:async(r,s)=>{let l={};return await Promise.all(s.map(async p=>{let u=`${r}:${p}`,b=await t.get(u);r==="app-state-sync-key"&&b&&(b=proto.Message.AppStateSyncKeyData.fromObject(b)),l[p]=b;})),l},set:async r=>{let s=[],l=[];for(let p in r)for(let u in r[p]){let b=r[p][u],S=`${p}:${u}`;b?s.push({key:S,value:b}):l.push(S);}s.length&&await t.batchSet(s),l.length&&await t.batchDelete(l),await t.flush();}}},saveCreds:async()=>{await e.set("creds",i),await e.flush();}}};c();c();var kt=(o,e)=>({logger:o.health.logger,printQRInTerminal:false,enableRecentMessageCache:true,emitOwnEvents:true,keepAliveIntervalMs:3e4,browser:Browsers.ubuntu("Chrome"),markOnlineOnConnect:o.options.autoOnline,syncFullHistory:o.options.syncFullHistory,msgRetryCounterCache:yt,mediaCache:ft,auth:{creds:e.creds,keys:makeCacheableSignalKeyStore(e.keys,a.logger)},cachedGroupMetadata:async t=>N.get(t),shouldIgnoreJid:()=>false,shouldSyncHistoryMessage:()=>o.options.syncFullHistory,patchMessageBeforeSending:t=>t,getMessage:async t=>{if(!t?.remoteJid)return proto.Message.fromObject({});let n=await o.db("messages").getByIndex("messages","key.id",t.id);return proto.Message.fromObject(n[0])}});var bt=async o=>{let e=`.session/${o.options.session}`;console.info=()=>{},console.warn=()=>{};let{state:t,saveCreds:n}=await ht(e),i=kt(o,t),r=nn(i);r.ev.on("creds.update",n),a.set("socket",r);};c();c();c();var ke=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 n of e.scopes)try{let i=this.client.db(n),r=await i.query(n).where("timestamp","<",t).get();if(r.length>0){let s=r.map(l=>l.key?.id||l.id);await i.batchDelete(s),a.spinner.info(` [CleanUpManager] Cleaned up ${r.length} items from ${n}`);}}catch{}}};c();var qe=class{store=gt;mutex=new Mutex;async inject(e,t){let n=await this.mutex.acquire();try{this.store.set(e,t);}finally{n();}}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()}},ne=new qe;c();J();c();J();var se=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 n=await I.toBuffer(e),i=await fileTypeFromBuffer(n);B.validate(i,x.MIME.AUDIO);let r=await I.getExtension(n),s=w.createTempPath("audio_in",r),l=t==="opus"?"ogg":"mp3",p=w.createTempPath("audio_out",l);await w.safeWriteFile(s,n);let u;try{let b=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 L.process({input:s,output:p,options:b,onEnd:async()=>{u=await w.safeReadFile(p);},onError:async()=>{await w.cleanup([s,p]);}}),await w.cleanup([s,p]),u}catch(b){throw await w.cleanup([s,p]),new Error(`${t.toUpperCase()} conversion failed: ${b.message}`)}}};c();J();var U=class{static async toMp4(e){let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);B.validate(n,x.MIME.VIDEO);let i=await I.getExtension(t),r=w.createTempPath("video_in",i),s=w.createTempPath("video_out","mp4");await w.safeWriteFile(r,t);let l;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 L.process({input:r,output:s,options:p,onEnd:async()=>{l=await w.safeReadFile(s);},onError:async()=>{await w.cleanup([r,s]);}}),await w.cleanup([r,s]),l}catch(p){throw await w.cleanup([r,s]),new Error(`Video re-encoding failed: ${p.message}`)}}static async thumbnail(e){let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);B.validate(n,x.MIME.VIDEO);let i=await I.getExtension(t),r=w.createTempPath("video",i),s=w.createTempPath("thumb","jpg");await w.safeWriteFile(r,t);let l;try{return await new Promise((p,u)=>{be(r).screenshots({timestamps:[x.THUMBNAIL.TIMESTAMP],filename:H__default.basename(s),folder:H__default.dirname(s),size:`${x.THUMBNAIL.SIZE}x${x.THUMBNAIL.SIZE}`}).on("end",async()=>{try{l=(await w.safeReadFile(s)).toString("base64"),p();}catch(b){u(b);}}).on("error",u);}),await w.cleanup([r,s]),l}catch(p){throw await w.cleanup([r,s]),new Error(`Thumbnail generation failed: ${p.message}`)}}static async duration(e){return L.getDuration(e)}};c();J();var z;try{z=Gt("sharp");}catch{z=null;}var W=class{static async thumbnail(e){let t=await fileTypeFromBuffer(e),n=x.THUMBNAIL.SIZE;if(z){let s=z(e).resize(n,n,{fit:"cover"});return t?.mime===x.MIME.GIF&&s.resize(n,n),(await s.jpeg({quality:x.THUMBNAIL.QUALITY}).toBuffer()).toString("base64")}let i=await Jimp.read(e);return i.cover({w:n,h:n}),t?.mime===x.MIME.GIF&&i.resize({w:n,h:n}),(await i.getBuffer("image/jpeg",{quality:x.THUMBNAIL.QUALITY})).toString("base64")}static async resize(e,t,n){if(z)return await z(e).resize(t,n,{fit:"cover"}).png().toBuffer();let i=await Jimp.read(e);return i.cover({w:t,h:n}),await i.getBuffer("image/png")}static async toJpeg(e){let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);if(!n||!n.mime.startsWith(x.MIME.IMAGE))throw new Error("Invalid image type");return n.mime==="image/webp"?z?await z(t).jpeg().toBuffer():await(await Jimp.read(t)).getBuffer("image/jpeg"):t}static async resizeForSticker(e,t,n="default"){let i=x.STICKER.SIZE;if(z&&n==="default")return await z(e).resize(i,i,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).webp({quality:t}).toBuffer();let r=await Jimp.read(e);if(r.contain({w:i,h:i}),n!=="default"){let S=new Jimp({width:i,height:i,color:0});for(let M=0;M<i;M++)for(let P=0;P<i;P++){let _=false,K=i/2,Q=i/2;switch(n){case "circle":{let T=P-K,$=M-Q;_=T*T+$*$<=K*K;break}case "rounded":{let T=i/10,$=P>=T&&P<i-T&&M>=0&&M<i,G=P>=0&&P<i&&M>=T&&M<i-T,C=false,O=[[T,T],[i-T,T],[T,i-T],[i-T,i-T]];for(let[ae,ce]of O){let te=P-ae,Y=M-ce;if(te*te+Y*Y<=T*T){C=true;break}}_=$||G||C;break}case "oval":{let T=i/2,$=i/3,G=(P-K)/T,C=(M-Q)/$;_=G*G+C*C<=1;break}}_&&S.setPixelColor(4294967295,P,M);}r.mask(S);}let s=w.createTempPath("sticker_img","png"),l=w.createTempPath("sticker_out","webp"),p=await r.getBuffer("image/png");await w.safeWriteFile(s,p);let{FFmpegProcessor:u}=await Promise.resolve().then(()=>(J(),xt)),b;try{return await u.process({input:s,output:l,options:["-vf",`scale=${i}:${i}`,"-quality",String(t),"-f","webp"],onEnd:async()=>{b=await w.safeReadFile(l);},onError:async()=>{await w.cleanup([s,l]);}}),await w.cleanup([s,l]),b}catch(S){throw await w.cleanup([s,l]),new Error(`Sticker resize failed: ${S.message}`)}}};c();c();var re=o=>{let e;Array.isArray(o)?e=o.join("|"):typeof o=="string"?e=o:e=String(o);let t=2166136261,n=e.length;for(let i=0;i<n;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()},St=(o="")=>{if(!o)return [];let e=new Set;for(let t of o.matchAll(/@(\d+)/g))e.add(t[1]);return R.toArray(e)},Ge=(o="")=>{if(!o)return [];let e=new Set;for(let t of o.matchAll(/@(\d+)/g))t[1].length<=15&&e.add(t[1]);return R.flatMap([...e],t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},Ti=o=>R.isEmpty(o)?[]:R.map([...o],e=>`${e}@s.whatsapp.net`),Ct=o=>R.omit(o,["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"]),xe=o=>{if(!o)return {leaf:void 0,chain:[]};let e=extractMessageContent(o)||o,t=[];for(;e&&typeof e=="object";){let n=getContentType(e);if(!n)break;t.push(n);let i=e[n];if(!i||typeof i!="object"){e=i;break}e=i;}return {leaf:e,chain:t}},q=o=>Number(o?.split("@")[0]);c();var v=o=>o,mn=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(o){throw o}},At=async o=>{try{let e=`.session/${o}/auth/creds.json`;await ue.unlink(e);}catch(e){throw a.spinner.error(`Failed to remove auth creds for session "${o}"!`),e}},Z=(o="")=>{if(!o?.length)return null;let e=o.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=>It.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=>It.nfkc(t)).join("").normalize("NFC").replace(/\s+/g," ").trim();return e.length?e:null};J();var Me=class{static async create(e,t){try{let n=await I.toBuffer(e),i=await fileTypeFromBuffer(n);if(!i)throw new Error("Unable to detect file type");let r=t?.quality||x.STICKER.DEFAULT_QUALITY,s=B.isAnimated(i.mime),l=t?.shape||"default",p=s?await this.processAnimated(n,i.mime,r):await W.resizeForSticker(n,r,l),u=this.createExifMetadata(t),b=new fn.Image;await b.load(p),b.exif=u;let S=await b.save(null);return Buffer.isBuffer(S)?S:Buffer.from(S)}catch(n){throw new Error(`Sticker creation failed: ${n.message||n}`)}}static createExifMetadata(e){let t={"sticker-pack-id":re(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]),i=Buffer.from(JSON.stringify(t),"utf8"),r=Buffer.concat([n,i]);return r.writeUIntLE(i.length,14,4),r}static async processAnimated(e,t,n){let i=this.getExtension(t),r=w.createTempPath("sticker_in",i),s=w.createTempPath("sticker_out","webp");await w.safeWriteFile(r,e);let l=x.STICKER.MAX_DURATION;try{let P=await U.duration(r);l=v(Math.min(P,x.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",x.STICKER.MAX_DURATION);}let p=x.STICKER.SIZE,u=x.STICKER.FPS,b=`scale=${p}:${p}:force_original_aspect_ratio=increase,crop=${p}:${p},fps=${u},format=rgba`,S=Math.max(1,Math.min(100,100-n)),M;try{return await L.process({input:r,output:s,options:["-vcodec libwebp",`-vf ${b}`,`-q:v ${S}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${l}`,`-compression_level ${x.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{M=await w.safeReadFile(s);},onError:async()=>{await w.cleanup([r,s]);}}),await w.cleanup([r,s]),M}catch(P){throw await w.cleanup([r,s]),new Error(`Animated sticker processing failed: ${P.message}`)}}static getExtension(e){return e===x.MIME.GIF?"gif":e.startsWith(x.MIME.VIDEO)?"mp4":"tmp"}};c();J();J();var ve=class{static async create(e){try{let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);if(!n)throw new Error("Unable to detect file type");let i;return n.mime.startsWith(x.MIME.VIDEO)?i=await U.thumbnail(t):B.isMedia(n.mime)?i=await W.thumbnail(t):i="",{document:t,mimetype:n.mime,fileName:re(Date.now().toString()),jpegThumbnail:i}}catch(t){throw new Error(`Document creation failed: ${t.message||t}`)}}};c();var Te=class{constructor(e){this.client=e;this.keysDb=we(e.options.session),this.setupLogFilters();}keysDb;setupLogFilters(){let e=console.error,t=console.log,n=i=>{let r=i.join(" ");return ["Bad MAC","Session error:","Closing open session in favor of incoming prekey bundle","Error: Bad MAC"].some(l=>r.includes(l))};console.error=(...i)=>{n(i)||e.apply(console,i);},console.log=(...i)=>{n(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 Kt({level:"debug"},{write:e=>{try{let t=JSON.parse(e);if(t.msg?.includes("Bad MAC")){let n=t.jid||t.remoteJid;n&&this.repair(n);}}catch{}}})}};c();var fe=(o,e)=>{try{return o.parse(e)}catch(t){let n=fromError(t);throw new Error(n.toString())}};c();c();var Je=class{concurrency;timeout;onError;queue;running;completed;failed;isClosing;closeResolve;constructor(e){this.concurrency=e?.concurrency||20,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 n={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(r=>r.priority<n.priority);return i===-1?this.queue.push(n):this.queue.splice(i,0,n),this._process(),n.id}addBulk(e){return e.map(({fn:t,options:n})=>this.add(t,n))}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((n,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(n=>{this.closeResolve=n;});if(e>0){let n=new Promise(i=>setTimeout(i,e));await Promise.race([t,n]);}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){}_generateId(){return `${Date.now()}-${Math.random().toString(36).substr(2,9)}`}},E=new Je;process.on("SIGTERM",()=>E.close());c();c();c();var h=(o,e="lime")=>Array.isArray(e)?Pt(e)(o):Pt([e,e])(o),He=o=>{try{return JSON.parse(o)}catch{return R.attempt(()=>JSON.parse(JSON.stringify(o)||"{}"))}},ge=o=>{try{return JSON.stringify(o)}catch{let e=R.attempt(()=>JSON.stringify(He(o)||"{}"));return R.isError(e)?"{}":e}},ys=(o="")=>R.shuffle(o).join(""),ye=(o="",e="")=>o?R.includes(o.toLowerCase(),e.toLowerCase()):null,Et=(o="")=>o?R.castArray(o.match(URL_REGEX)||[]):[],hs=o=>o[Math.floor(Math.random()*o.length)],Ke=(o,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),n=(i,r)=>{if(!i||typeof i!="object")return;let s=i,l=r.split(".");for(let p of l){let u=p.match(/^(.+?)\[(\d+)\]$/);if(u){let[,b,S]=u;s=s?.[b]?.[parseInt(S,10)];}else s=s?.[p];if(t(s))return}return s};if(!(!Array.isArray(o)||o.length===0)&&!(!Array.isArray(e)||e.length===0)){for(let i of o)if(!(!i||typeof i!="object"))for(let r of e){let s=n(i,r);if(!t(s))return s}}},ws=(o,e)=>{let t=R.castArray(e),n=(s,l)=>R.every(l,(p,u)=>s?.[u]===p),i=(s,l)=>R.some(l,(p,u)=>s?.[u]===p),r=s=>R.isArray(s)?R.find(s,r)??s:R.isObject(s)?R.find(t,u=>n(s,u))||R.find(t,u=>i(s,u))?s:R.find(R.values(s),r)??s:null;return r(o)},ks=(o,e,t)=>new Proxy(o,{apply(n,i,r){e?.(r);let s=Reflect.apply(n,i,r);return t?t(s,r):s}});c();var Qe=class{input;constructor(e){this.input=e;}async toOpus(){return se.toOpus(this.input)}async toMp3(){return se.toMp3(this.input)}async convert(e="opus"){return se.convert(this.input,e)}},Ye=class{input;constructor(e){this.input=e;}async toMp4(){return U.toMp4(this.input)}async thumbnail(){return U.thumbnail(this.input)}},Ze=class{input;constructor(e){this.input=e;}async toJpeg(){return W.toJpeg(this.input)}async thumbnail(){let e=await I.toBuffer(this.input);return W.thumbnail(e)}async resize(e,t){let n=await I.toBuffer(this.input);return W.resize(n,e,t)}},Xe=class{input;metadata;constructor(e,t){this.input=e,this.metadata=t;}async create(){return Me.create(this.input,this.metadata)}},et=class{input;constructor(e){this.input=e;}async create(){return ve.create(this.input)}},tt=class{input;constructor(e){this.input=e;}async get(){let e=await I.toBuffer(this.input),t=await fileTypeFromBuffer(e);if(!t||!B.isMedia(t.mime))throw new Error("Invalid media type: expected image or video");return t.mime.startsWith(x.MIME.VIDEO)?U.thumbnail(this.input):W.thumbnail(e)}},nt=class{audio(e){return new Qe(e)}video(e){return new Ye(e)}image(e){return new Ze(e)}sticker(e,t){return new Xe(e,t)}document(e){return new et(e)}thumbnail(e){return new tt(e)}async toBuffer(e){return I.toBuffer(e)}},D=new nt;var Se=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=a.get("socket");e.ev.on("call",async t=>{for(let n of t){let i=await this.parse(n);i&&(E.add(async()=>this.client.middleware.run({calls:i})),E.add(async()=>this.client.plugins.execute(this.client,{messages:i})),a.events.emit("calls",i),this.client.options?.autoRejectCall&&E.add(async()=>e.rejectCall(i.callId,i.callerId)));}});}async parse(e){let t=a.get("socket"),n={};return n.callId=e.id,n.callerId=jidNormalizedUser(e.from),n.roomId=jidNormalizedUser(e.chatId),n.roomName=Z(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}};c();c();var Bt=o=>{bn.generate(o,{small:true},e=>{console.log(e);});};var Ie=class{constructor(e){this.client=e;this.initialize();}async initialize(){a.spinner.start(" Initializing connection...");let e=a.get("socket"),t={},n=async()=>{t.status="reload",a.spinner.warn(" Connection lost. Attempting auto-reload..."),await this.client.initialize();},i=async()=>{await delay(3e3),a.spinner.warn(" Invalid session. Attempting auto cleaning creds..."),await delay(3e3),await At(this.client.options.session),await n();};if(this.client.options.authType==="pairing"&&this.client.options.phoneNumber&&!e.authState.creds.registered){a.spinner.update(" Generating pairing code..."),await delay(3500);try{t.authTimeout=Date.now()+6e4;let r=new Date(t.authTimeout).toLocaleTimeString(),s=await e.requestPairingCode(this.client.options.phoneNumber.toString());a.spinner.warn(` Pairing expired at ${cristal(r)}`),a.spinner.warn(` Pairing code: ${s}`),t.code=s;}catch{await i();}}e.ev.on("connection.update",async r=>{let{connection:s,lastDisconnect:l,qr:p}=r;if(t.status=s||"connecting",t.authType=this.client.options.authType,a.spinner.update(" Connection status: "+cristal(t.status)),this.client.options.authType==="qr"&&p){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 ${cristal(u)}`),Bt(p),t.qr=p;return}if(s==="close"){let u=v(l?.error)?.output?.statusCode,b=l?.error?.message||"",S=typeof u=="number"&&u!==DisconnectReason.loggedOut;if(a.spinner.error(` [${u} - Closed] ${b}`),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.
2
- `);return}if(u===500){a.spinner.error(" Server error occurred, attempting reconnect..."),await n();return}S&&await n();}if(s==="open")if(e.user?.id){let u=jidNormalizedUser(e.user.id).split("@")[0],b=e.user.name||e.user.verifiedName;a.spinner.success(` Connected as ${cristal(b||u)}`);}else a.spinner.success(" Connected!");a.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:r})=>{t.status="syncing",t.syncProgress=r,a.spinner.start(" Syncing messages history..."),r&&a.spinner.update(` Syncing messages history ${r+"%"}`),r==100&&(a.spinner.success(" Syncing messages history completed!"),t.syncCompleted=true),a.events.emit("connection",t);});}};c();c();var Ft={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"},it={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 Ae=class{constructor(e){this.client=e;this.limiter=new 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 Ee=class{constructor(e){this.client=e;this.limiter=new Ae(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:n})=>{try{if(n!=="notify"&&n!=="append")return;for(let i of t)try{let r=await this.parse(i);r&&(E.add(async()=>this.client.middleware.run({messages:r})),E.add(async()=>this.client.plugins.execute(this.client,{messages:r})),a.set("message",r),a.events.emit("messages",r),this.client.options.autoRead&&E.add(async()=>e.readMessages([r.message().key])));}catch{}}catch{}});}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,i=a.get("socket"),r={},s=xe(e.message),l=s.chain.at(-1),p=s.leaf;if(p?.message&&(s=xe(p.message),l=s.chain.at(-1),p=s.leaf),r.uniqueId=null,r.channelId=null,r.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,r.chatType=Ft[l],!r.chatType)return;r.receiverLid=jidNormalizedUser(i?.user?.lid||""),r.receiverId=jidNormalizedUser(i?.user?.id||""),r.receiverName=Z(i?.user?.name||i?.user?.verifiedName),r.roomId=jidNormalizedUser(e?.key?.remoteJid);let u=p?.type===0,b=p?.type===1,S=p?.type===2,M=r.roomId?.includes("@newsletter"),P=!!e?.message?.questionMessage,_=e?.key?.fromMe||false;if(_&&this.client.options.ignoreMe&&t!=="replied")return;let K=p?.key?.id;if(u||b||S){let C=await this.client.db("messages").query(r.roomId).where("key.id","=",K).first();if(!C)return;e=C,s=xe(e.message),l=s.chain.at(-1),p=s.leaf;}if(r.roomName=await this.client.getRoomName(r.roomId),r.senderLid=jidNormalizedUser(e?.key?.participant||e?.key?.remoteJid)||null,r.senderId=jidNormalizedUser(e?.key?.participantAlt||e?.key?.remoteJidAlt)||null,r.senderName=Z(e?.pushName||e?.verifiedBizName),r.senderDevice=getDevice(r.chatId||""),r.channelId=re([r.roomId,r.senderId]),r.uniqueId=re([r.channelId,r.chatId]),r.timestamp=Number(e?.messageTimestamp)*1e3,M){let C=await i.newsletterMetadata("jid",r.roomId);r.roomName=v(C.thread_metadata.name)?.text,r.senderId=null,r.senderLid=null;}_&&(r.senderLid=jidNormalizedUser(i.user.lid),r.senderId=r.receiverId,r.senderName=r.receiverName),r.text=p?.text||p?.caption||p?.name||p?.displayName||p?.conversation||p?.contentText||p?.selectedDisplayText||p||null,p?.name=="menu_options"&&(r.text=He(p?.paramsJson)?.id),r.text=Z(r.text),r.mentions=St(r.text),r.links=Et(r.text||""),r.isBot=r.chatId.startsWith("BAE5")||r.chatId.startsWith("3EB0")||r.chatId.startsWith("Z4D3FC"),r.isFromMe=_;let Q=R.castArray(this.client.options?.prefix);if(r.isPrefix=!!Q.find(C=>r.text?.startsWith(C)),r.isTagMe=r.mentions?.includes(r.receiverId.split("@")[0])||r.mentions?.includes(r.receiverLid.split("@")[0]),r.isStatusMention=!!e?.message?.statusMentionMessage,r.isGroupStatusMention=!!e?.message?.groupStatusMentionMessage,r.isHideTags=false,R.isEmpty(r.text)&&p?.contextInfo?.mentionedJid?.length&&(r.isHideTags=true),r.isSpam=await this.limiter.isSpam(r.channelId),r.isPrefix&&(r.text=r.text.replace(new RegExp(`^${R.escapeRegExp(Q.find(C=>r.text?.startsWith(C))||"")}`),"")),r.isGroup=r.roomId?.includes("@g.us"),r.isNewsletter=M,r.isQuestion=P,r.isStory=r.roomId?.includes("@broadcast"),!r.isGroup&&!r.roomName&&(r.roomName=r.senderName),!r.isGroup){let C=r.senderId,O=r.senderLid;r.senderId=O,r.senderLid=C;}if(r.isViewOnce=false,r.isEdited=!!ye(ge(s),"editedMessage"),r.isDeleted=u,r.isPinned=b,r.isUnPinned=S,r.isBroadcast=!!e?.broadcast,r.isEphemeral=!!ye(ge(p?.contextInfo),"ephemeralSettingTimestamp"),r.isForwarded=!!ye(ge(p?.contextInfo),"forwardingScore"),r.citation=null,this.client.options.citation){r.citation=r.citation||{};let C=this.client.options.citation;for(let O of Object.keys(C)){let ae=C[O];r.citation[O]=async()=>{let ce=await ae(),te=[q(r.roomId),q(r.senderLid),q(r.senderId)];return !!R.intersection(te,ce).length};}}r.chatType!=="text"&&(r.media={...Ct(p),buffer:()=>downloadMediaMessage(e,"buffer",{}),stream:()=>downloadMediaMessage(e,"stream",{})}),r.isStatusMention&&(r.chatType="statusMention"),r.isGroupStatusMention&&(r.chatType="groupStatusMention"),r.message=()=>n,r.replied=null;let T=p?.contextInfo?.quotedMessage,$=ye(ge(T),"viewOnce"),G=p?.contextInfo?.stanzaId;if(T&&this.maxReplies){this.maxReplies--;let C=await this.client.db("messages").getByIndex("messages","key.id",G),O;$?O={...C[0],message:T}:O=C[0],r.replied=await this.parse(O,"replied"),r.replied&&(r.replied.isViewOnce=true),this.maxReplies=3;}return t!="replied"&&this.client.logs.message(r),r.injection=ne.getAll(),r}};var Re=class{constructor(e){this.client=e;this.connection=new Ie(e),this.messages=new Ee(e),this.calls=new Se(e),this.initialize();}connection;messages;calls;async initialize(){let e=a.get("socket");e.ev.on("groups.update",async([t])=>{E.add(async()=>{let n=await e.groupMetadata(t.id);N.set(t.id,n);});}),e.ev.on("group-participants.update",async t=>{E.add(async()=>{let n=await e.groupMetadata(t.id);N.set(t.id,n);});}),e?.ev.on("messaging-history.set",async t=>{let{chats:n,contacts:i,messages:r}=t;E.add(async()=>{await this.client.db("chats").batchUpsert("chats",n,"id");}),E.add(async()=>{await this.client.db("contacts").batchUpsert("contacts",i,"id");}),E.add(async()=>{await this.client.db("messages").batchUpsert("messages",r,"key.id");});}),e?.ev.on("messages.upsert",async({messages:t})=>{E.add(async()=>{await this.client.db("messages").batchUpsert("messages",t,"key.id");});}),e?.ev.on("chats.upsert",async t=>{E.add(async()=>{await this.client.db("chats").batchUpsert("chats",t,"id");});}),e?.ev.on("contacts.upsert",async t=>{E.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 Sn=m.object({type:m.literal("quick_reply"),text:m.string()}),Cn=m.object({type:m.literal("cta_url"),url:m.url(),text:m.string()}),In=m.object({type:m.literal("cta_copy"),copy:m.string(),text:m.string()}),An=m.object({type:m.literal("cta_call"),text:m.string(),phoneNumber:m.string()}),Pn=m.object({type:m.literal("single_select"),text:m.string(),section:m.object({title:m.string(),highlight_label:m.string().optional(),rows:m.object({id:m.string(),title:m.string(),header:m.string().optional(),description:m.string().optional()}).array()}).array()}),En=m.object({type:m.literal("interactive"),footer:m.string().optional(),data:m.union([Sn,Cn,In,An,Pn]).array()}),Rn=m.object({type:m.literal("simple"),footer:m.string().optional(),data:m.object({id:m.string(),text:m.string()}).array()}),Ot=m.union([Rn,En]);c();var Bn=z$1.object({maxMessages:z$1.number().default(20),durationMs:z$1.number().default(1e4)}).optional(),Fn=z$1.record(z$1.string(),z$1.function({output:z$1.promise(z$1.array(z$1.number()))})).optional(),$n=z$1.object({provider:z$1.enum(["whatsapp","meta","chatgpt","copilot","instagram","tiktok"]).or(z$1.number())}).optional(),st=z$1.enum(["default","rounded","circle","oval"]).default("default"),On=z$1.object({packageName:z$1.string().optional(),authorName:z$1.string().optional(),quality:z$1.number().optional(),shape:st.optional()}).optional(),Dn=z$1.object({enabled:z$1.boolean().default(false).optional(),intervalMs:z$1.number().default(3600*1e3).optional(),maxAgeMs:z$1.number().default(1440*60*1e3).optional(),scopes:z$1.array(z$1.string()).default(["messages"]).optional()}).optional(),Dt=z$1.object({session:z$1.string().default("zaileys").optional(),prefix:z$1.union([z$1.string(),z$1.array(z$1.string())]).optional(),ignoreMe:z$1.boolean().default(true).optional(),showLogs:z$1.boolean().default(true).optional(),fancyLogs:z$1.boolean().default(false).optional(),syncFullHistory:z$1.boolean().default(true).optional(),disableFFmpeg:z$1.boolean().default(false).optional(),autoMarkAI:z$1.boolean().default(true).optional(),autoMentions:z$1.boolean().default(true).optional(),autoOnline:z$1.boolean().default(true).optional(),autoRead:z$1.boolean().default(true).optional(),autoPresence:z$1.boolean().default(true).optional(),autoRejectCall:z$1.boolean().default(true).optional(),pluginsDir:z$1.string().default("plugins").optional(),pluginsHmr:z$1.boolean().default(true).optional(),autoCleanUp:Dn,limiter:Bn,citation:Fn,fakeReply:$n,sticker:On}),Nn=z$1.object({authType:z$1.literal("pairing"),phoneNumber:z$1.number()}),Wn=z$1.object({authType:z$1.literal("qr")}),Nt=z$1.union([Nn.extend(Dt.shape),Wn.extend(Dt.shape)]),Oo=z$1.enum(["connection","messages","calls"]);var he=m.url().or(m.base64()).or(m.instanceof(Buffer)),Wt=m.object({text:m.string()}).passthrough(),_n=m.object({image:he,caption:m.string().optional()}).passthrough(),jn=m.object({audio:he,caption:m.string().optional(),ptt:m.boolean().optional()}).passthrough(),Ln=m.object({video:he,caption:m.string().optional(),ptv:m.boolean().optional()}).passthrough(),Un=m.object({sticker:he,shape:st.optional(),caption:m.string().optional()}).passthrough(),zn=m.object({document:he,caption:m.string().optional(),fileName:m.string().optional()}).passthrough(),qn=m.object({location:m.object({latitude:m.number(),longitude:m.number(),url:m.url().optional(),title:m.string().optional(),footer:m.string().optional()}).optional()}).passthrough(),Vn=m.object({contacts:m.object({title:m.string().optional(),contacts:m.object({fullname:m.string(),phoneNumber:m.number(),organization:m.string().optional()}).array()})}).passthrough(),Gn=m.object({poll:m.object({name:m.string(),answers:m.string().array(),isMultiple:m.boolean().default(false).optional()})}),_t=m.object({replied:m.custom().optional(),isForwardedMany:m.boolean().optional(),isViewOnce:m.boolean().optional(),banner:m.custom().optional(),buttons:Ot.optional()});m.enum(["forward","button","edit","delete"]);var Jn=m.union([Wt,_n,jn,Ln,Un,zn,qn,Vn,Gn]),jt=m.string().or(m.intersection(Jn,_t.omit({buttons:true}))),Lt=m.intersection(Wt,_t.omit({banner:true}));c();var Be=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=v(e).buttons,n=t?.data||[],r=t?.type=="simple"?this.toNativeSimple(n):this.toNativeInteractive(n);return {body:{text:v(e).text},footer:t.footer?{text:t.footer}:void 0,nativeFlowMessage:{buttons:r}}}async send(e,t,n){let i=a.get("socket"),r=i?.authState?.creds?.me?.id||i?.user?.id,s=this.build(t),l=generateWAMessageFromContent(e,{interactiveMessage:s},{userJid:r,messageId:generateMessageIDV2(r),...n});return await i.relayMessage(e,l.message,{messageId:l.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"}}]}]}]}),i.config?.emitOwnEvents&&!isJidGroup(e)&&process.nextTick(()=>i.upsertMessage?.(l,"append")),l}};var Fe=class{constructor(e){this.client=e;}async signal(e,t,n,i){n!="delete"&&(n=="button"?t=fe(Lt,t):t=fe(jt,t));let r=a.get("socket"),s={},l={},p=R.isString(t),u=this.client.options?.fakeReply?.provider,b=this.client.options?.autoMentions,S=this.client.options?.autoPresence,M=R.has(t,"replied"),P=R.has(t,"banner"),_=R.has(t,"isViewOnce"),K=n=="button",Q=R.has(t,"image"),T=R.has(t,"video"),$=R.has(t,"audio"),G=R.has(t,"sticker"),C=R.has(t,"document"),O=R.has(t,"location"),ae=R.has(t,"contacts"),ce=R.has(t,"poll"),te=Q||T||$||G||C,Y=p?t:Ke([t],["text","caption"]);if(S&&($?await r.sendPresenceUpdate("recording",e):await r.sendPresenceUpdate("composing",e)),b&&(s={...s,mentions:Ge(Y),contextInfo:{mentionedJid:Ge(Y)}}),M&&(l.quoted=v(t).replied,u&&(l.quoted.key.remoteJid=it[u],l.quoted.key.participant=it[u])),P&&(s={...s,contextInfo:{externalAdReply:v(t).banner}},s.contextInfo.externalAdReply.mediaType=1),_&&(s={...s,viewOnce:v(t)?.isViewOnce}),Y&&(s={...s,text:Y,caption:Y},te&&delete v(s).text),te){let A=Ke([t],["image","video","audio","sticker","document"]);if(Q&&(s={...s,image:await D.image(A).toJpeg(),jpegThumbnail:await D.thumbnail(A).get()}),T){let j=v(t)?.ptv;s={...s,video:await D.video(A).toMp4(),ptv:j,jpegThumbnail:await D.thumbnail(A).get()};}if($){let j=v(t)?.ptt;s={...s,audio:await D.audio(A).toOpus(),ptt:j,mimetype:j?"audio/ogg; codecs=opus":"audio/mpeg"};}if(G){let j=v(t)?.shape;s={...s,sticker:await D.sticker(A,{...this.client.options?.sticker,shape:j}).create()};}if(C){let j=await D.document(A).create();s={...s,fileName:v(t).fileName,...j};}}if(O){let A=v(t).location;s={...s,location:{degreesLatitude:A.latitude,degreesLongitude:A.longitude,url:A.url,address:A.footer,name:A.title}};}if(ae){let A=v(t)?.contacts,j=A?.contacts.map(pe=>{let qt=["BEGIN:VCARD","VERSION:3.0",`FN:${pe.fullname}`,`ORG:${pe.organization||""}`,`TEL;type=CELL;type=VOICE;waid=${pe.phoneNumber}:${pe.phoneNumber}`,"END:VCARD"].join(`
3
- `);return {displayName:pe.fullname,vcard:qt}});s={...s,contacts:{displayName:A?.title,contacts:j}};}if(ce){let A=v(t)?.poll;s={...s,poll:{name:A.name,values:A.answers,selectableCount:A.isMultiple?1:0,toAnnouncementGroup:true}};}return n=="forward"&&(s={...s,contextInfo:{...v(s).contextInfo,isForwarded:true,forwardingScore:v(t).isForwardedMany?9999:1}}),n=="edit"&&(s={...s,edit:i?.key},await r.sendPresenceUpdate("paused",e)),n=="delete"&&(s={...s,delete:i?.key},await r.sendPresenceUpdate("paused",e)),K?await new Be().send(e,t,l):await r.sendMessage(e,v(s),l)}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 R.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=a.get("socket"),i={typing:"composing",recording:"recording",online:"available",offline:"unavailable",paused:"paused"};return await n.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 ot=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").communityCreate(e,t)}async createGroup(e,t,n){return await a.get("socket").communityCreateGroup(e,t,n)}async leave(e){return await a.get("socket").communityLeave(e)}async metadata(e){return await a.get("socket").communityMetadata(e)}async update(e,t,n){let i=a.get("socket");switch(t){case "subject":return await i.communityUpdateSubject(e,n);case "description":return await i.communityUpdateDescription(e,n)}}async group(e,t,n){let i=a.get("socket");switch(t){case "link":if(!n)throw "Group JID is required for linking";return await i.communityLinkGroup(e,n);case "unlink":if(!n)throw "Group JID is required for unlinking";return await i.communityUnlinkGroup(e,n);case "linked":return await i.communityFetchLinkedGroups(e)}}async participants(e,t,n,i){let r=a.get("socket");switch(t){case "list":return await r.communityRequestParticipantsList(e);case "request-update":return await r.communityRequestParticipantsUpdate(e,i,v(n));case "update":if(!n||!i)throw "Action and participants are required for update";return await r.communityParticipantsUpdate(e,i,v(n));case "all":return await r.communityFetchAllParticipating()}}async invite(e,t,...n){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,n[0]);case "acceptV4":return await i.communityAcceptInviteV4(e,n[0])}}async settings(e,t,n){let i=a.get("socket");switch(t){case "ephemeral":return await i.communityToggleEphemeral(e,n);case "update":return await i.communitySettingUpdate(e,n);case "memberAdd":return await i.communityMemberAddMode(e,n);case "approval":return await i.communityJoinApprovalMode(e,n)}}},$e=class{constructor(e){this.mlient=e;this.community=new ot(e);}community};c();var at=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").groupCreate(e,t)}async participant(e,t,n){return await a.get("socket").groupParticipantsUpdate(e,t,n)}async profile(e,t,n){let i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "subject":if(!r)return await i.groupUpdateSubject(e,t);case "description":if(!r)return await i.groupUpdateDescription(e,t);case "picture":return await i.updateProfilePicture(e,await D.toBuffer(t))}}async setting(e,t){let n=a.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 a.get("socket").groupLeave(e)}async inviteCode(e,t){let n=a.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=a.get("socket"),n=N.get(e);if(n)return n;let i=await t.groupMetadata(e);return i&&N.set(e,i),i}async requestJoin(e,t,n){let i=a.get("socket");switch(n){case "approve":return await i.groupRequestParticipantsUpdate(e,t,n);case "reject":return await i.groupRequestParticipantsUpdate(e,t,n)}}async requestJoinList(e){return await a.get("socket").groupRequestParticipantsList(e)}async fetchAllGroups(){return await a.get("socket").groupFetchAllParticipating()}async ephemeral(e,t){let n=a.get("socket"),i={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await n.groupToggleEphemeral(e,i[t])}},Oe=class{constructor(e){this.glient=e;this.group=new at(e);}group};c();var ct=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").newsletterCreate(e,t)}async action(e,t){let n=a.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 i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "name":if(!r)return await i.newsletterUpdateName(e,t);case "description":if(!r)return await i.newsletterUpdateDescription(e,t);case "picture":return await i.newsletterUpdatePicture(e,await D.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,n){return await a.get("socket").newsletterReactMessage(e,t,n)}async fetchMessages(e,t,n,i){let r=a.get("socket"),s=n.getTime()/1e3,l=i.getTime()/1e3;return await r.newsletterFetchMessages(e,t,s,l)}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)}},De=class{constructor(e){this.nlient=e;this.newsletter=new ct(e);}newsletter};c();var pt=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"),n={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await t.updateDefaultDisappearingMode(n[e])}async blocklist(){return await a.get("socket").fetchBlocklist()}async getSettings(){return await a.get("socket").fetchPrivacySettings(true)}},Ne=class{constructor(e){this.plient=e;this.privacy=new pt(e);}privacy};c();c();var Ca=m.object({status:m.enum(["connecting","open","close","reload","syncing"]),authType:m.enum(["pairing","qr"]),authTimeout:m.number().optional(),syncProgress:m.number().optional(),syncCompleted:m.boolean().default(false).optional(),qr:m.string().optional(),code:m.string().optional()});c();var Zn=m.enum(["unknown","android","ios","desktop","web"]),Xn=m.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"]),Ut=m.object({channelId:m.string(),uniqueId:m.string(),chatId:m.string(),chatType:Xn,receiverLid:m.string(),receiverId:m.string(),receiverName:m.string(),roomId:m.string(),roomName:m.string(),senderLid:m.string(),senderId:m.string(),senderName:m.string(),senderDevice:Zn,timestamp:m.number(),text:m.string().nullable(),mentions:m.string().array(),links:m.string().array(),isBot:m.boolean(),isFromMe:m.boolean(),isPrefix:m.boolean(),isSpam:m.boolean(),isTagMe:m.boolean(),isStatusMention:m.boolean(),isGroupStatusMention:m.boolean(),isHideTags:m.boolean(),isGroup:m.boolean(),isNewsletter:m.boolean(),isQuestion:m.boolean(),isStory:m.boolean(),isViewOnce:m.boolean(),isEdited:m.boolean(),isDeleted:m.boolean(),isPinned:m.boolean(),isUnPinned:m.boolean(),isBroadcast:m.boolean(),isEphemeral:m.boolean(),isForwarded:m.boolean(),citation:m.record(m.string(),m.function({output:m.promise(m.boolean())})).nullable(),media:m.object({buffer:m.function({output:m.promise(m.instanceof(Buffer))}),stream:m.function({output:m.promise(m.instanceof(Yn))})}).loose().nullable(),injection:m.record(m.string(),m.any()).default({}),message:m.function({input:[],output:m.custom()})}),Ra=Ut.extend({replied:Ut.nullable()});c();var Oa=m.object({callId:m.string(),callerId:m.string(),roomId:m.string(),roomName:m.string(),date:m.date(),offline:m.boolean(),status:m.enum(["accept","offer","reject","ringing","terminate","timeout"]),isVideo:m.boolean(),isGroup:m.boolean()});c();var We=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(h(" \u2022","orange")+" Private Chat"),console.log(h(" \u2022","lime")+" Group Chat"),console.log(h(" \u2022","blue")+" Newsletter Chat"),console.log());}message(e){if(!this.isReady)return;let t=v(this.getRoomColor(e)),n=e?.text?.toLowerCase()?.match("zaileys"),i=this.client.options?.fancyLogs,r=h(`[${new Date(e?.timestamp).toTimeString().split(" ")[0]}]`,"dimgray"),s=h(`${e?.roomName}`,t),l=e?.text?.slice(0,300)||"",p=l?.length>=300?"...":"";if(i){let u=h("\u2501".repeat(50),"dimgray"),b=h("\u2192","dimgray"),S=h("\u2022",t),M=`
1
+ import*as H from'path';import H__default from'path';import {pathToFileURL}from'url';import Me from'fluent-ffmpeg';import me from'fs/promises';import {tmpdir}from'os';import on,{initAuthCreds,proto,makeCacheableSignalKeyStore,Browsers,extractMessageContent,getContentType,URL_REGEX,BufferJSON,generateWAMessageFromContent,generateMessageIDV2,isJidGroup,delay,DisconnectReason,jidNormalizedUser,getDevice,downloadMediaMessage}from'baileys';import {createJetDB}from'jetdb';import ue from'node-cache';import Xt from'pino';import {EventEmitter}from'events';import {createSpinner}from'nanospinner';import {Mutex}from'async-mutex';import {fileTypeFromBuffer}from'file-type';import {Jimp}from'jimp';import yn from'node-webpmux';import R from'lodash';import At from'unorm';import {fromError}from'zod-validation-error';import Rt,{cristal}from'gradient-string';import xn from'figlet';import Tn from'qrcode-terminal';import {RateLimiterMemory}from'rate-limiter-flexible';import m,{z as z$1}from'zod';import tr from'stream';import*as ee from'fs';var Ht=Object.defineProperty;var Kt=(o=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(o,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):o)(function(o){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var ut=(o,e)=>()=>(o&&(e=o(o=0)),e);var Qt=(o,e)=>{for(var t in e)Ht(o,t,{get:e[t],enumerable:true});};var c=ut(()=>{});var xt={};Qt(xt,{BufferConverter:()=>I,FFMPEG_CONSTANTS:()=>M,FFmpegProcessor:()=>L,FileManager:()=>w,MimeValidator:()=>B,initializeFFmpeg:()=>Ge});var M,Ge,w,I,B,L,J=ut(()=>{c();M={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"}},Ge=async(o=false)=>{if(!o)try{let e=(await import('@ffmpeg-installer/ffmpeg')).default,t=(await import('@ffprobe-installer/ffprobe')).default;Me.setFfmpegPath(e.path),Me.setFfprobePath(t.path);}catch{}},w=class{static generateUniqueId(){return `${Date.now()}_${Math.random().toString(36).slice(2,11)}`}static createTempPath(e,t){return H__default.join(tmpdir(),`${e}_${this.generateUniqueId()}.${t}`)}static async cleanup(e){await Promise.allSettled(e.map(t=>me.unlink(t)));}static async safeReadFile(e){try{return await me.readFile(e)}catch{throw new Error(`Failed to read file: ${e}`)}}static async safeWriteFile(e,t){try{await me.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){if(e.startsWith("http://")||e.startsWith("https://"))return this.fromUrl(e);try{if(await me.stat(e).then(t=>t.isFile()).catch(()=>!1))return await me.readFile(e)}catch{}return 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}`)}}static async getExtension(e){let{fileTypeFromBuffer:t}=await import('file-type'),n=await t(e);if(!n)return "tmp";let i=n.ext.toLowerCase();return ["wav","ogg","mp4","gif","jpg","webp","tmp","mp3","png"].includes(i)?i:"tmp"}},B=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(M.MIME.IMAGE)||e.startsWith(M.MIME.VIDEO)}static isAnimated(e){return e===M.MIME.GIF||e.startsWith(M.MIME.VIDEO)}},L=class{static async process(e){return new Promise((t,n)=>{let i=Me(e.input).output(e.output);for(let r=0;r<e.options.length;r++){let s=e.options[r];s.startsWith("-")&&r+1<e.options.length&&!e.options[r+1].startsWith("-")?(i.outputOptions(s,e.options[r+1]),r++):i.outputOptions(s);}i.on("end",async()=>{try{await e.onEnd(),t();}catch(r){n(r);}}).on("error",async r=>{try{await e.onError(r);}finally{n(r);}}).run();})}static async getDuration(e){return new Promise((t,n)=>{Me.ffprobe(e,(i,r)=>{if(i)return n(i);t(r.format.duration||0);});})}};});c();c();c();c();var mt=o=>createJetDB(`${o}/auth/creds.json`,{BufferJSON:BufferJSON,cacheSize:100,flushMode:"sync",compression:"none",enableIndexing:false}),ke=o=>createJetDB(`${o}/auth/keys.json`,{BufferJSON:BufferJSON,size:1024*1024,cacheSize:2e3,flushMode:"sync",compression:"none",enableIndexing:false,hotThreshold:5}),dt=(o,e)=>createJetDB(`.session/${o}/store/${e}.json`,{BufferJSON:BufferJSON,cacheSize:2e4,debounceMs:1e3,flushMode:"debounce",compression:"deflate",serialization:"json",enableIndexing:true,hotThreshold:2,size:5*1024*1024});c();c();var ft=new ue({stdTTL:600,checkperiod:120,useClones:false}),N=new ue({stdTTL:300,useClones:false}),gt=new ue({stdTTL:300}),yt=new ue({stdTTL:600,checkperiod:120,useClones:false,deleteOnExpire:true,maxKeys:100}),ht=new ue;c();var ie=class{classInjection(e,t){let n=t.length;return new Proxy(e,{get(i,r,s){if(r in i){let l=Reflect.get(i,r,s);return typeof l=="function"?l.bind(i):l}for(let l=0;l<n;l++){let p=t[l];if(r in p){let u=Reflect.get(p,r,p);return typeof u=="function"?u.bind(p):u}}},set(i,r,s,l){if(r in i)return Reflect.set(i,r,s,l);for(let p=0;p<n;p++){let u=t[p];if(r in u)return Reflect.set(u,r,s,l)}return Reflect.set(i,r,s,l)},has(i,r){if(r in e)return true;for(let s=0;s<n;s++)if(r in t[s])return true;return false},ownKeys(){let i=[];for(let r of Reflect.ownKeys(e))i.push(r);for(let r=0;r<n;r++)for(let s of Reflect.ownKeys(t[r]))i.includes(s)||i.push(s);return i},getOwnPropertyDescriptor(i,r){let s=Object.getOwnPropertyDescriptor(e,r);if(s)return s;for(let l=0;l<n;l++)if(s=Object.getOwnPropertyDescriptor(t[l],r),s)return s}})}};c();var se=class{spinnerEnabled=true;spinner;constructor(e=true){this.spinnerEnabled=e,this.spinner=createSpinner("",{color:"green"});}toggle(){this.spinnerEnabled=!this.spinnerEnabled;}enable(){this.spinnerEnabled=true;}disable(){this.spinnerEnabled=false;}isEnabled(){return this.spinnerEnabled}start(e){this.spinnerEnabled&&this.spinner.start(e);}stop(){this.spinnerEnabled&&this.spinner.stop();}success(e){this.spinnerEnabled&&this.spinner.success(e);}error(e){this.spinnerEnabled&&this.spinner.error(e);}warn(e){this.spinnerEnabled&&this.spinner.warn(e);}info(e){this.spinnerEnabled&&this.spinner.info(e);}update(e){this.spinnerEnabled&&this.spinner.update(e);}reset(){this.spinnerEnabled&&this.spinner.reset();}clear(){this.spinnerEnabled&&this.spinner.clear();}spin(){this.spinnerEnabled&&this.spinner.spin();}loop(){this.spinnerEnabled&&this.spinner.loop();}write(e){this.spinnerEnabled&&this.spinner.write(e);}render(){this.spinnerEnabled&&this.spinner.render();}isSpinning(){return this.spinnerEnabled?this.spinner.isSpinning():false}};var qe=class extends ue{constructor(){return super({useClones:false}),new ie().classInjection(this,[ft])}spinner=new se(true);logger=Xt({level:"silent",enabled:false});events=new EventEmitter},a=new qe;var wt=async o=>{a.spinner.start(" Initializing auth state...");let e=mt(o),t=ke(o),n=await e.get("creds"),i=n||initAuthCreds();return n?a.spinner.success(" Auth credentials loaded successfully"):a.spinner.success(" Initialized new auth session"),{state:{creds:i,keys:{get:async(r,s)=>{let l={};return await Promise.all(s.map(async p=>{let u=`${r}:${p}`,k=await t.get(u);r==="app-state-sync-key"&&k&&(k=proto.Message.AppStateSyncKeyData.fromObject(k)),l[p]=k;})),l},set:async r=>{let s=[],l=[];for(let p in r)for(let u in r[p]){let k=r[p][u],S=`${p}:${u}`;k?s.push({key:S,value:k}):l.push(S);}s.length&&await t.batchSet(s),l.length&&await t.batchDelete(l),await t.flush();}}},saveCreds:async()=>{await e.set("creds",i),await e.flush();}}};c();c();var bt=(o,e)=>({logger:o.health.logger,printQRInTerminal:false,enableRecentMessageCache:true,emitOwnEvents:true,keepAliveIntervalMs:3e4,browser:Browsers.ubuntu("Chrome"),markOnlineOnConnect:o.options.autoOnline,syncFullHistory:o.options.syncFullHistory,msgRetryCounterCache:ht,mediaCache:gt,auth:{creds:e.creds,keys:makeCacheableSignalKeyStore(e.keys,a.logger)},cachedGroupMetadata:async t=>N.get(t),shouldIgnoreJid:()=>false,shouldSyncHistoryMessage:()=>o.options.syncFullHistory,patchMessageBeforeSending:t=>t,getMessage:async t=>{if(!t?.remoteJid)return proto.Message.fromObject({});let n=await o.db("messages").getByIndex("messages","key.id",t.id);return proto.Message.fromObject(n[0])}});var Mt=async o=>{let e=`.session/${o.options.session}`;console.info=()=>{},console.warn=()=>{};let{state:t,saveCreds:n}=await wt(e),i=bt(o,t),r=on(i);r.ev.on("creds.update",n),a.set("socket",r);};c();c();c();var be=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 n of e.scopes)try{let i=this.client.db(n),r=await i.query(n).where("timestamp","<",t).get();if(r.length>0){let s=r.map(l=>l.key?.id||l.id);await i.batchDelete(s),a.spinner.info(` [CleanUpManager] Cleaned up ${r.length} items from ${n}`);}}catch{}}};c();var Ve=class{store=yt;mutex=new Mutex;async inject(e,t){let n=await this.mutex.acquire();try{this.store.set(e,t);}finally{n();}}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()}},ne=new Ve;c();J();c();J();var oe=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 n=await I.toBuffer(e),i=await fileTypeFromBuffer(n);B.validate(i,M.MIME.AUDIO);let r=await I.getExtension(n),s=w.createTempPath("audio_in",r),l=t==="opus"?"ogg":"mp3",p=w.createTempPath("audio_out",l);await w.safeWriteFile(s,n);let u;try{let k=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 L.process({input:s,output:p,options:k,onEnd:async()=>{u=await w.safeReadFile(p);},onError:async()=>{await w.cleanup([s,p]);}}),await w.cleanup([s,p]),u}catch(k){throw await w.cleanup([s,p]),new Error(`${t.toUpperCase()} conversion failed: ${k.message}`)}}};c();J();var U=class{static async toMp4(e){let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);B.validate(n,M.MIME.VIDEO);let i=await I.getExtension(t),r=w.createTempPath("video_in",i),s=w.createTempPath("video_out","mp4");await w.safeWriteFile(r,t);let l;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 L.process({input:r,output:s,options:p,onEnd:async()=>{l=await w.safeReadFile(s);},onError:async()=>{await w.cleanup([r,s]);}}),await w.cleanup([r,s]),l}catch(p){throw await w.cleanup([r,s]),new Error(`Video re-encoding failed: ${p.message}`)}}static async thumbnail(e){let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);B.validate(n,M.MIME.VIDEO);let i=await I.getExtension(t),r=w.createTempPath("video",i),s=w.createTempPath("thumb","jpg");await w.safeWriteFile(r,t);let l;try{return await new Promise((p,u)=>{Me(r).screenshots({timestamps:[M.THUMBNAIL.TIMESTAMP],filename:H__default.basename(s),folder:H__default.dirname(s),size:`${M.THUMBNAIL.SIZE}x${M.THUMBNAIL.SIZE}`}).on("end",async()=>{try{l=(await w.safeReadFile(s)).toString("base64"),p();}catch(k){u(k);}}).on("error",u);}),await w.cleanup([r,s]),l}catch(p){throw await w.cleanup([r,s]),new Error(`Thumbnail generation failed: ${p.message}`)}}static async duration(e){return L.getDuration(e)}};c();J();var z;try{z=Kt("sharp");}catch{z=null;}var W=class{static async thumbnail(e){let t=await fileTypeFromBuffer(e),n=M.THUMBNAIL.SIZE;if(z){let s=z(e).resize(n,n,{fit:"cover"});return t?.mime===M.MIME.GIF&&s.resize(n,n),(await s.jpeg({quality:M.THUMBNAIL.QUALITY}).toBuffer()).toString("base64")}let i=await Jimp.read(e);return i.cover({w:n,h:n}),t?.mime===M.MIME.GIF&&i.resize({w:n,h:n}),(await i.getBuffer("image/jpeg",{quality:M.THUMBNAIL.QUALITY})).toString("base64")}static async resize(e,t,n){if(z)return await z(e).resize(t,n,{fit:"cover"}).png().toBuffer();let i=await Jimp.read(e);return i.cover({w:t,h:n}),await i.getBuffer("image/png")}static async toJpeg(e){let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);if(!n||!n.mime.startsWith(M.MIME.IMAGE))throw new Error("Invalid image type");return n.mime==="image/webp"?z?await z(t).jpeg().toBuffer():await(await Jimp.read(t)).getBuffer("image/jpeg"):t}static async resizeForSticker(e,t,n="default"){let i=M.STICKER.SIZE;if(z&&n==="default")return await z(e).resize(i,i,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).webp({quality:t}).toBuffer();let r=await Jimp.read(e);if(r.contain({w:i,h:i}),n!=="default"){let S=new Jimp({width:i,height:i,color:0});for(let x=0;x<i;x++)for(let E=0;E<i;E++){let _=false,K=i/2,Q=i/2;switch(n){case "circle":{let T=E-K,$=x-Q;_=T*T+$*$<=K*K;break}case "rounded":{let T=i/10,$=E>=T&&E<i-T&&x>=0&&x<i,G=E>=0&&E<i&&x>=T&&x<i-T,C=false,O=[[T,T],[i-T,T],[T,i-T],[i-T,i-T]];for(let[ce,pe]of O){let te=E-ce,Y=x-pe;if(te*te+Y*Y<=T*T){C=true;break}}_=$||G||C;break}case "oval":{let T=i/2,$=i/3,G=(E-K)/T,C=(x-Q)/$;_=G*G+C*C<=1;break}}_&&S.setPixelColor(4294967295,E,x);}r.mask(S);}let s=w.createTempPath("sticker_img","png"),l=w.createTempPath("sticker_out","webp"),p=await r.getBuffer("image/png");await w.safeWriteFile(s,p);let{FFmpegProcessor:u}=await Promise.resolve().then(()=>(J(),xt)),k;try{return await u.process({input:s,output:l,options:["-vf",`scale=${i}:${i}`,"-quality",String(t),"-f","webp"],onEnd:async()=>{k=await w.safeReadFile(l);},onError:async()=>{await w.cleanup([s,l]);}}),await w.cleanup([s,l]),k}catch(S){throw await w.cleanup([s,l]),new Error(`Sticker resize failed: ${S.message}`)}}};c();c();var re=o=>{let e;Array.isArray(o)?e=o.join("|"):typeof o=="string"?e=o:e=String(o);let t=2166136261,n=e.length;for(let i=0;i<n;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()},Ct=(o="")=>{if(!o)return [];let e=new Set;for(let t of o.matchAll(/@(\d+)/g))e.add(t[1]);return R.toArray(e)},Je=(o="")=>{if(!o)return [];let e=new Set;for(let t of o.matchAll(/@(\d+)/g))t[1].length<=15&&e.add(t[1]);return R.flatMap([...e],t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},Bi=o=>R.isEmpty(o)?[]:R.map([...o],e=>`${e}@s.whatsapp.net`),It=o=>R.omit(o,["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"]),xe=o=>{if(!o)return {leaf:void 0,chain:[]};let e=extractMessageContent(o)||o,t=[];for(;e&&typeof e=="object";){let n=getContentType(e);if(!n)break;t.push(n);let i=e[n];if(!i||typeof i!="object"){e=i;break}e=i;}return {leaf:e,chain:t}},q=o=>Number(o?.split("@")[0]);c();var v=o=>o,Et=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(o){throw o}},Pt=async o=>{try{let e=`.session/${o}/auth/creds.json`;await me.unlink(e);}catch(e){throw a.spinner.error(`Failed to remove auth creds for session "${o}"!`),e}},Z=(o="")=>{if(!o?.length)return null;let e=o.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=>At.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=>At.nfkc(t)).join("").normalize("NFC").replace(/\s+/g," ").trim();return e.length?e:null};J();var ve=class{static async create(e,t){try{let n=await I.toBuffer(e),i=await fileTypeFromBuffer(n);if(!i)throw new Error("Unable to detect file type");let r=t?.quality||M.STICKER.DEFAULT_QUALITY,s=B.isAnimated(i.mime),l=t?.shape||"default",p=s?await this.processAnimated(n,i.mime,r):await W.resizeForSticker(n,r,l),u=this.createExifMetadata(t),k=new yn.Image;await k.load(p),k.exif=u;let S=await k.save(null);return Buffer.isBuffer(S)?S:Buffer.from(S)}catch(n){throw new Error(`Sticker creation failed: ${n.message||n}`)}}static createExifMetadata(e){let t={"sticker-pack-id":re(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]),i=Buffer.from(JSON.stringify(t),"utf8"),r=Buffer.concat([n,i]);return r.writeUIntLE(i.length,14,4),r}static async processAnimated(e,t,n){let i=this.getExtension(t),r=w.createTempPath("sticker_in",i),s=w.createTempPath("sticker_out","webp");await w.safeWriteFile(r,e);let l=M.STICKER.MAX_DURATION;try{let E=await U.duration(r);l=v(Math.min(E,M.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",M.STICKER.MAX_DURATION);}let p=M.STICKER.SIZE,u=M.STICKER.FPS,k=`scale=${p}:${p}:force_original_aspect_ratio=increase,crop=${p}:${p},fps=${u},format=rgba`,S=Math.max(1,Math.min(100,100-n)),x;try{return await L.process({input:r,output:s,options:["-vcodec libwebp",`-vf ${k}`,`-q:v ${S}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${l}`,`-compression_level ${M.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{x=await w.safeReadFile(s);},onError:async()=>{await w.cleanup([r,s]);}}),await w.cleanup([r,s]),x}catch(E){throw await w.cleanup([r,s]),new Error(`Animated sticker processing failed: ${E.message}`)}}static getExtension(e){return e===M.MIME.GIF?"gif":e.startsWith(M.MIME.VIDEO)?"mp4":"tmp"}};c();J();J();var Te=class{static async create(e){try{let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);if(!n)throw new Error("Unable to detect file type");let i;return n.mime.startsWith(M.MIME.VIDEO)?i=await U.thumbnail(t):B.isMedia(n.mime)?i=await W.thumbnail(t):i="",{document:t,mimetype:n.mime,fileName:re(Date.now().toString()),jpegThumbnail:i}}catch(t){throw new Error(`Document creation failed: ${t.message||t}`)}}};c();var Se=class{constructor(e){this.client=e;this.keysDb=ke(e.options.session),this.setupLogFilters();}keysDb;setupLogFilters(){let e=console.error,t=console.log,n=i=>{let r=i.join(" ");return ["Bad MAC","Session error:","Closing open session in favor of incoming prekey bundle","Error: Bad MAC"].some(l=>r.includes(l))};console.error=(...i)=>{n(i)||e.apply(console,i);},console.log=(...i)=>{n(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 Xt({level:"debug"},{write:e=>{try{let t=JSON.parse(e);if(t.msg?.includes("Bad MAC")){let n=t.jid||t.remoteJid;n&&this.repair(n);}}catch{}}})}};c();var ge=(o,e)=>{try{return o.parse(e)}catch(t){let n=fromError(t);throw new Error(n.toString())}};c();c();var He=class{concurrency;timeout;onError;queue;running;completed;failed;isClosing;closeResolve;constructor(e){this.concurrency=e?.concurrency||20,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 n={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(r=>r.priority<n.priority);return i===-1?this.queue.push(n):this.queue.splice(i,0,n),this._process(),n.id}addBulk(e){return e.map(({fn:t,options:n})=>this.add(t,n))}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((n,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(n=>{this.closeResolve=n;});if(e>0){let n=new Promise(i=>setTimeout(i,e));await Promise.race([t,n]);}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){}_generateId(){return `${Date.now()}-${Math.random().toString(36).substr(2,9)}`}},P=new He;process.on("SIGTERM",()=>P.close());c();c();c();var h=(o,e="lime")=>Array.isArray(e)?Rt(e)(o):Rt([e,e])(o),Ke=o=>{try{return JSON.parse(o)}catch{return R.attempt(()=>JSON.parse(JSON.stringify(o)||"{}"))}},ye=o=>{try{return JSON.stringify(o)}catch{let e=R.attempt(()=>JSON.stringify(Ke(o)||"{}"));return R.isError(e)?"{}":e}},Ts=(o="")=>R.shuffle(o).join(""),he=(o="",e="")=>o?R.includes(o.toLowerCase(),e.toLowerCase()):null,Bt=(o="")=>o?R.castArray(o.match(URL_REGEX)||[]):[],Ss=o=>o[Math.floor(Math.random()*o.length)],Qe=(o,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),n=(i,r)=>{if(!i||typeof i!="object")return;let s=i,l=r.split(".");for(let p of l){let u=p.match(/^(.+?)\[(\d+)\]$/);if(u){let[,k,S]=u;s=s?.[k]?.[parseInt(S,10)];}else s=s?.[p];if(t(s))return}return s};if(!(!Array.isArray(o)||o.length===0)&&!(!Array.isArray(e)||e.length===0)){for(let i of o)if(!(!i||typeof i!="object"))for(let r of e){let s=n(i,r);if(!t(s))return s}}},Cs=(o,e)=>{let t=R.castArray(e),n=(s,l)=>R.every(l,(p,u)=>s?.[u]===p),i=(s,l)=>R.some(l,(p,u)=>s?.[u]===p),r=s=>R.isArray(s)?R.find(s,r)??s:R.isObject(s)?R.find(t,u=>n(s,u))||R.find(t,u=>i(s,u))?s:R.find(R.values(s),r)??s:null;return r(o)},Is=(o,e,t)=>new Proxy(o,{apply(n,i,r){e?.(r);let s=Reflect.apply(n,i,r);return t?t(s,r):s}});c();var Ye=class{input;constructor(e){this.input=e;}async toOpus(){return oe.toOpus(this.input)}async toMp3(){return oe.toMp3(this.input)}async convert(e="opus"){return oe.convert(this.input,e)}},Ze=class{input;constructor(e){this.input=e;}async toMp4(){return U.toMp4(this.input)}async thumbnail(){return U.thumbnail(this.input)}},Xe=class{input;constructor(e){this.input=e;}async toJpeg(){return W.toJpeg(this.input)}async thumbnail(){let e=await I.toBuffer(this.input);return W.thumbnail(e)}async resize(e,t){let n=await I.toBuffer(this.input);return W.resize(n,e,t)}},et=class{input;metadata;constructor(e,t){this.input=e,this.metadata=t;}async create(){return ve.create(this.input,this.metadata)}},tt=class{input;constructor(e){this.input=e;}async create(){return Te.create(this.input)}},nt=class{input;constructor(e){this.input=e;}async get(){let e=await I.toBuffer(this.input),t=await fileTypeFromBuffer(e);if(!t||!B.isMedia(t.mime))throw new Error("Invalid media type: expected image or video");return t.mime.startsWith(M.MIME.VIDEO)?U.thumbnail(this.input):W.thumbnail(e)}},rt=class{audio(e){return new Ye(e)}video(e){return new Ze(e)}image(e){return new Xe(e)}sticker(e,t){return new et(e,t)}document(e){return new tt(e)}thumbnail(e){return new nt(e)}async toBuffer(e){return I.toBuffer(e)}},D=new rt;var Ce=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=a.get("socket");e.ev.on("call",async t=>{for(let n of t){let i=await this.parse(n);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"),n={};return n.callId=e.id,n.callerId=jidNormalizedUser(e.from),n.roomId=jidNormalizedUser(e.chatId),n.roomName=Z(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}};c();c();var $t=o=>{Tn.generate(o,{small:true},e=>{console.log(e);});},Ot=async()=>{console.clear(),a.spinner.start(" Checking for updates...");let o="2.2.7",e="zaadevofc",t=await Et(),n=o===t;a.spinner.stop();let i="Zaileys",r=`
2
+ by ${e} \xB7 v${o}`,s="\u2014 discord.gg/KBHhTTVUc5",l=`${n?"\u2014 Already using latest version!":`\u2014 Update available! (v${t})`}
3
+ `,p=n?"lime":"orange",u=await xn.text(i),k=cristal(u);console.log(k),console.log(h(r,"dimgray")),console.log(h(s,"purple")),console.log(h(l,p));};var Ae=class{constructor(e){this.client=e;this.initialize();}async initialize(){a.spinner.start(" Initializing connection...");let e=a.get("socket"),t={},n=async()=>{t.status="reload",a.spinner.warn(" Connection lost. Attempting auto-reload..."),await this.client.initialize(this.client);},i=async()=>{await delay(3e3),a.spinner.warn(" Invalid session. Attempting auto cleaning creds..."),await delay(3e3),await Pt(this.client.options.session),await n();};if(this.client.options.authType==="pairing"&&this.client.options.phoneNumber&&!e.authState.creds.registered){a.spinner.update(" Generating pairing code..."),await delay(3500);try{t.authTimeout=Date.now()+6e4;let r=new Date(t.authTimeout).toLocaleTimeString(),s=await e.requestPairingCode(this.client.options.phoneNumber.toString());a.spinner.warn(` Pairing expired at ${cristal(r)}`),a.spinner.warn(` Pairing code: ${s}`),t.code=s;}catch{await i();}}e.ev.on("connection.update",async r=>{let{connection:s,lastDisconnect:l,qr:p}=r;if(t.status=s||"connecting",t.authType=this.client.options.authType,a.spinner.update(" Connection status: "+cristal(t.status)),this.client.options.authType==="qr"&&p){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 ${cristal(u)}`),$t(p),t.qr=p;return}if(s==="close"){let u=v(l?.error)?.output?.statusCode,k=l?.error?.message||"",S=typeof u=="number"&&u!==DisconnectReason.loggedOut;if(a.spinner.error(` [${u} - Closed] ${k}`),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 n();return}S&&await n();}if(s==="open")if(e.user?.id){let u=jidNormalizedUser(e.user.id).split("@")[0],k=e.user.name||e.user.verifiedName;a.spinner.success(` Connected as ${cristal(k||u)}`);}else a.spinner.success(" Connected!");a.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:r})=>{t.status="syncing",t.syncProgress=r,a.spinner.start(" Syncing messages history..."),r&&a.spinner.update(` Syncing messages history ${r+"%"}`),r==100&&(a.spinner.success(" Syncing messages history completed!"),t.syncCompleted=true),a.events.emit("connection",t);});}};c();c();var Dt={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"},st={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 Ee=class{constructor(e){this.client=e;this.limiter=new 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 Re=class{constructor(e){this.client=e;this.limiter=new Ee(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:n})=>{try{if(n!=="notify"&&n!=="append")return;for(let i of t)try{let r=await this.parse(i);r&&(P.add(async()=>this.client.middleware.run({messages:r})),P.add(async()=>this.client.plugins.execute(this.client,{messages:r})),a.set("message",r),a.events.emit("messages",r),this.client.options.autoRead&&P.add(async()=>e.readMessages([r.message().key])));}catch{}}catch{}});}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,i=a.get("socket"),r={},s=xe(e.message),l=s.chain.at(-1),p=s.leaf;if(p?.message&&(s=xe(p.message),l=s.chain.at(-1),p=s.leaf),r.uniqueId=null,r.channelId=null,r.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,r.chatType=Dt[l],!r.chatType)return;r.receiverLid=jidNormalizedUser(i?.user?.lid||""),r.receiverId=jidNormalizedUser(i?.user?.id||""),r.receiverName=Z(i?.user?.name||i?.user?.verifiedName),r.roomId=jidNormalizedUser(e?.key?.remoteJid);let u=p?.type===0,k=p?.type===1,S=p?.type===2,x=r.roomId?.includes("@newsletter"),E=!!e?.message?.questionMessage,_=e?.key?.fromMe||false;if(_&&this.client.options.ignoreMe&&t!=="replied")return;let K=p?.key?.id;if(u||k||S){let C=await this.client.db("messages").query(r.roomId).where("key.id","=",K).first();if(!C)return;e=C,s=xe(e.message),l=s.chain.at(-1),p=s.leaf;}if(r.roomName=await this.client.getRoomName(r.roomId),r.senderLid=jidNormalizedUser(e?.key?.participant||e?.key?.remoteJid)||null,r.senderId=jidNormalizedUser(e?.key?.participantAlt||e?.key?.remoteJidAlt)||null,r.senderName=Z(e?.pushName||e?.verifiedBizName),r.senderDevice=getDevice(r.chatId||""),r.channelId=re([r.roomId,r.senderId]),r.uniqueId=re([r.channelId,r.chatId]),r.timestamp=Number(e?.messageTimestamp)*1e3,x){let C=await i.newsletterMetadata("jid",r.roomId);r.roomName=v(C.thread_metadata.name)?.text,r.senderId=null,r.senderLid=null;}_&&(r.senderLid=jidNormalizedUser(i.user.lid),r.senderId=r.receiverId,r.senderName=r.receiverName),r.text=p?.text||p?.caption||p?.name||p?.displayName||p?.conversation||p?.contentText||p?.selectedDisplayText||p||null,p?.name=="menu_options"&&(r.text=Ke(p?.paramsJson)?.id),r.text=Z(r.text),r.mentions=Ct(r.text),r.links=Bt(r.text||""),r.isBot=r.chatId.startsWith("BAE5")||r.chatId.startsWith("3EB0")||r.chatId.startsWith("Z4D3FC"),r.isFromMe=_;let Q=R.castArray(this.client.options?.prefix);if(r.isPrefix=!!Q.find(C=>r.text?.startsWith(C)),r.isTagMe=r.mentions?.includes(r.receiverId.split("@")[0])||r.mentions?.includes(r.receiverLid.split("@")[0]),r.isStatusMention=!!e?.message?.statusMentionMessage,r.isGroupStatusMention=!!e?.message?.groupStatusMentionMessage,r.isHideTags=false,R.isEmpty(r.text)&&p?.contextInfo?.mentionedJid?.length&&(r.isHideTags=true),r.isSpam=await this.limiter.isSpam(r.channelId),r.isPrefix&&(r.text=r.text.replace(new RegExp(`^${R.escapeRegExp(Q.find(C=>r.text?.startsWith(C))||"")}`),"")),r.isGroup=r.roomId?.includes("@g.us"),r.isNewsletter=x,r.isQuestion=E,r.isStory=r.roomId?.includes("@broadcast"),!r.isGroup&&!r.roomName&&(r.roomName=r.senderName),!r.isGroup){let C=r.senderId,O=r.senderLid;r.senderId=O,r.senderLid=C;}if(r.isViewOnce=false,r.isEdited=!!he(ye(s),"editedMessage"),r.isDeleted=u,r.isPinned=k,r.isUnPinned=S,r.isBroadcast=!!e?.broadcast,r.isEphemeral=!!he(ye(p?.contextInfo),"ephemeralSettingTimestamp"),r.isForwarded=!!he(ye(p?.contextInfo),"forwardingScore"),r.citation=null,this.client.options.citation){r.citation=r.citation||{};let C=this.client.options.citation;for(let O of Object.keys(C)){let ce=C[O];r.citation[O]=async()=>{let pe=await ce(),te=[q(r.roomId),q(r.senderLid),q(r.senderId)];return !!R.intersection(te,pe).length};}}r.chatType!=="text"&&(r.media={...It(p),buffer:()=>downloadMediaMessage(e,"buffer",{}),stream:()=>downloadMediaMessage(e,"stream",{})}),r.isStatusMention&&(r.chatType="statusMention"),r.isGroupStatusMention&&(r.chatType="groupStatusMention"),r.message=()=>n,r.replied=null;let T=p?.contextInfo?.quotedMessage,$=he(ye(T),"viewOnce"),G=p?.contextInfo?.stanzaId;if(T&&this.maxReplies){this.maxReplies--;let C=await this.client.db("messages").getByIndex("messages","key.id",G),O;$?O={...C[0],message:T}:O=C[0],r.replied=await this.parse(O,"replied"),r.replied&&(r.replied.isViewOnce=true),this.maxReplies=3;}return t!="replied"&&this.client.logs.message(r),r.injection=ne.getAll(),r}};var Be=class{constructor(e){this.client=e;this.connection=new Ae(e),this.messages=new Re(e),this.calls=new Ce(e),this.initialize();}connection;messages;calls;async initialize(){let e=a.get("socket");e.ev.on("groups.update",async([t])=>{P.add(async()=>{let n=await e.groupMetadata(t.id);N.set(t.id,n);});}),e.ev.on("group-participants.update",async t=>{P.add(async()=>{let n=await e.groupMetadata(t.id);N.set(t.id,n);});}),e?.ev.on("messaging-history.set",async t=>{let{chats:n,contacts:i,messages:r}=t;P.add(async()=>{await this.client.db("chats").batchUpsert("chats",n,"id");}),P.add(async()=>{await this.client.db("contacts").batchUpsert("contacts",i,"id");}),P.add(async()=>{await this.client.db("messages").batchUpsert("messages",r,"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 En=m.object({type:m.literal("quick_reply"),text:m.string()}),Pn=m.object({type:m.literal("cta_url"),url:m.url(),text:m.string()}),Rn=m.object({type:m.literal("cta_copy"),copy:m.string(),text:m.string()}),Bn=m.object({type:m.literal("cta_call"),text:m.string(),phoneNumber:m.string()}),Fn=m.object({type:m.literal("single_select"),text:m.string(),section:m.object({title:m.string(),highlight_label:m.string().optional(),rows:m.object({id:m.string(),title:m.string(),header:m.string().optional(),description:m.string().optional()}).array()}).array()}),$n=m.object({type:m.literal("interactive"),footer:m.string().optional(),data:m.union([En,Pn,Rn,Bn,Fn]).array()}),On=m.object({type:m.literal("simple"),footer:m.string().optional(),data:m.object({id:m.string(),text:m.string()}).array()}),Wt=m.union([On,$n]);c();var Dn=z$1.object({maxMessages:z$1.number().default(20),durationMs:z$1.number().default(1e4)}).optional(),Nn=z$1.record(z$1.string(),z$1.function({output:z$1.promise(z$1.array(z$1.number()))})).optional(),Wn=z$1.object({provider:z$1.enum(["whatsapp","meta","chatgpt","copilot","instagram","tiktok"]).or(z$1.number())}).optional(),ot=z$1.enum(["default","rounded","circle","oval"]).default("default"),_n=z$1.object({packageName:z$1.string().optional(),authorName:z$1.string().optional(),quality:z$1.number().optional(),shape:ot.optional()}).optional(),jn=z$1.object({enabled:z$1.boolean().default(false).optional(),intervalMs:z$1.number().default(3600*1e3).optional(),maxAgeMs:z$1.number().default(1440*60*1e3).optional(),scopes:z$1.array(z$1.string()).default(["messages"]).optional()}).optional(),_t=z$1.object({session:z$1.string().default("zaileys").optional(),prefix:z$1.union([z$1.string(),z$1.array(z$1.string())]).optional(),ignoreMe:z$1.boolean().default(true).optional(),showLogs:z$1.boolean().default(true).optional(),fancyLogs:z$1.boolean().default(false).optional(),showSpinner:z$1.boolean().default(true).optional(),syncFullHistory:z$1.boolean().default(true).optional(),disableFFmpeg:z$1.boolean().default(false).optional(),autoMarkAI:z$1.boolean().default(true).optional(),autoMentions:z$1.boolean().default(true).optional(),autoOnline:z$1.boolean().default(true).optional(),autoRead:z$1.boolean().default(true).optional(),autoPresence:z$1.boolean().default(true).optional(),autoRejectCall:z$1.boolean().default(true).optional(),pluginsDir:z$1.string().default("plugins").optional(),pluginsHmr:z$1.boolean().default(true).optional(),autoCleanUp:jn,limiter:Dn,citation:Nn,fakeReply:Wn,sticker:_n}),Ln=z$1.object({authType:z$1.literal("pairing"),phoneNumber:z$1.number()}),Un=z$1.object({authType:z$1.literal("qr")}),jt=z$1.union([Ln.extend(_t.shape),Un.extend(_t.shape)]),Lo=z$1.enum(["connection","messages","calls"]);var we=m.url().or(m.base64()).or(m.instanceof(Buffer)),Lt=m.object({text:m.string()}).passthrough(),zn=m.object({image:we,caption:m.string().optional()}).passthrough(),qn=m.object({audio:we,caption:m.string().optional(),ptt:m.boolean().optional()}).passthrough(),Vn=m.object({video:we,caption:m.string().optional(),ptv:m.boolean().optional()}).passthrough(),Gn=m.object({sticker:we,shape:ot.optional(),caption:m.string().optional()}).passthrough(),Jn=m.object({document:we,caption:m.string().optional(),fileName:m.string().optional()}).passthrough(),Hn=m.object({location:m.object({latitude:m.number(),longitude:m.number(),url:m.url().optional(),title:m.string().optional(),footer:m.string().optional()}).optional()}).passthrough(),Kn=m.object({contacts:m.object({title:m.string().optional(),contacts:m.object({fullname:m.string(),phoneNumber:m.number(),organization:m.string().optional()}).array()})}).passthrough(),Qn=m.object({poll:m.object({name:m.string(),answers:m.string().array(),isMultiple:m.boolean().default(false).optional()})}),Ut=m.object({replied:m.custom().optional(),isForwardedMany:m.boolean().optional(),isViewOnce:m.boolean().optional(),banner:m.custom().optional(),buttons:Wt.optional()});m.enum(["forward","button","edit","delete"]);var Yn=m.union([Lt,zn,qn,Vn,Gn,Jn,Hn,Kn,Qn]),zt=m.string().or(m.intersection(Yn,Ut.omit({buttons:true}))),qt=m.intersection(Lt,Ut.omit({banner:true}));c();var Fe=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=v(e).buttons,n=t?.data||[],r=t?.type=="simple"?this.toNativeSimple(n):this.toNativeInteractive(n);return {body:{text:v(e).text},footer:t.footer?{text:t.footer}:void 0,nativeFlowMessage:{buttons:r}}}async send(e,t,n){let i=a.get("socket"),r=i?.authState?.creds?.me?.id||i?.user?.id,s=this.build(t),l=generateWAMessageFromContent(e,{interactiveMessage:s},{userJid:r,messageId:generateMessageIDV2(r),...n});return await i.relayMessage(e,l.message,{messageId:l.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"}}]}]}]}),i.config?.emitOwnEvents&&!isJidGroup(e)&&process.nextTick(()=>i.upsertMessage?.(l,"append")),l}};var $e=class{constructor(e){this.client=e;}async signal(e,t,n,i){n!="delete"&&(n=="button"?t=ge(qt,t):t=ge(zt,t));let r=a.get("socket"),s={},l={},p=R.isString(t),u=this.client.options?.fakeReply?.provider,k=this.client.options?.autoMentions,S=this.client.options?.autoPresence,x=R.has(t,"replied"),E=R.has(t,"banner"),_=R.has(t,"isViewOnce"),K=n=="button",Q=R.has(t,"image"),T=R.has(t,"video"),$=R.has(t,"audio"),G=R.has(t,"sticker"),C=R.has(t,"document"),O=R.has(t,"location"),ce=R.has(t,"contacts"),pe=R.has(t,"poll"),te=Q||T||$||G||C,Y=p?t:Qe([t],["text","caption"]);if(S&&($?await r.sendPresenceUpdate("recording",e):await r.sendPresenceUpdate("composing",e)),k&&(s={...s,mentions:Je(Y),contextInfo:{mentionedJid:Je(Y)}}),x&&(l.quoted=v(t).replied,u&&(l.quoted.key.remoteJid=st[u],l.quoted.key.participant=st[u])),E&&(s={...s,contextInfo:{externalAdReply:v(t).banner}},s.contextInfo.externalAdReply.mediaType=1),_&&(s={...s,viewOnce:v(t)?.isViewOnce}),Y&&(s={...s,text:Y,caption:Y},te&&delete v(s).text),te){let A=Qe([t],["image","video","audio","sticker","document"]);if(Q&&(s={...s,image:await D.image(A).toJpeg(),jpegThumbnail:await D.thumbnail(A).get()}),T){let j=v(t)?.ptv;s={...s,video:await D.video(A).toMp4(),ptv:j,jpegThumbnail:await D.thumbnail(A).get()};}if($){let j=v(t)?.ptt;s={...s,audio:await D.audio(A).toOpus(),ptt:j,mimetype:j?"audio/ogg; codecs=opus":"audio/mpeg"};}if(G){let j=v(t)?.shape;s={...s,sticker:await D.sticker(A,{...this.client.options?.sticker,shape:j}).create()};}if(C){let j=await D.document(A).create();s={...s,fileName:v(t).fileName,...j};}}if(O){let A=v(t).location;s={...s,location:{degreesLatitude:A.latitude,degreesLongitude:A.longitude,url:A.url,address:A.footer,name:A.title}};}if(ce){let A=v(t)?.contacts,j=A?.contacts.map(le=>{let Jt=["BEGIN:VCARD","VERSION:3.0",`FN:${le.fullname}`,`ORG:${le.organization||""}`,`TEL;type=CELL;type=VOICE;waid=${le.phoneNumber}:${le.phoneNumber}`,"END:VCARD"].join(`
5
+ `);return {displayName:le.fullname,vcard:Jt}});s={...s,contacts:{displayName:A?.title,contacts:j}};}if(pe){let A=v(t)?.poll;s={...s,poll:{name:A.name,values:A.answers,selectableCount:A.isMultiple?1:0,toAnnouncementGroup:true}};}return n=="forward"&&(s={...s,contextInfo:{...v(s).contextInfo,isForwarded:true,forwardingScore:v(t).isForwardedMany?9999:1}}),n=="edit"&&(s={...s,edit:i?.key},await r.sendPresenceUpdate("paused",e)),n=="delete"&&(s={...s,delete:i?.key},await r.sendPresenceUpdate("paused",e)),K?await new Fe().send(e,t,l):await r.sendMessage(e,v(s),l)}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 R.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=a.get("socket"),i={typing:"composing",recording:"recording",online:"available",offline:"unavailable",paused:"paused"};return await n.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 at=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").communityCreate(e,t)}async createGroup(e,t,n){return await a.get("socket").communityCreateGroup(e,t,n)}async leave(e){return await a.get("socket").communityLeave(e)}async metadata(e){return await a.get("socket").communityMetadata(e)}async update(e,t,n){let i=a.get("socket");switch(t){case "subject":return await i.communityUpdateSubject(e,n);case "description":return await i.communityUpdateDescription(e,n)}}async group(e,t,n){let i=a.get("socket");switch(t){case "link":if(!n)throw "Group JID is required for linking";return await i.communityLinkGroup(e,n);case "unlink":if(!n)throw "Group JID is required for unlinking";return await i.communityUnlinkGroup(e,n);case "linked":return await i.communityFetchLinkedGroups(e)}}async participants(e,t,n,i){let r=a.get("socket");switch(t){case "list":return await r.communityRequestParticipantsList(e);case "request-update":return await r.communityRequestParticipantsUpdate(e,i,v(n));case "update":if(!n||!i)throw "Action and participants are required for update";return await r.communityParticipantsUpdate(e,i,v(n));case "all":return await r.communityFetchAllParticipating()}}async invite(e,t,...n){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,n[0]);case "acceptV4":return await i.communityAcceptInviteV4(e,n[0])}}async settings(e,t,n){let i=a.get("socket");switch(t){case "ephemeral":return await i.communityToggleEphemeral(e,n);case "update":return await i.communitySettingUpdate(e,n);case "memberAdd":return await i.communityMemberAddMode(e,n);case "approval":return await i.communityJoinApprovalMode(e,n)}}},Oe=class{constructor(e){this.mlient=e;this.community=new at(e);}community};c();var ct=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").groupCreate(e,t)}async participant(e,t,n){return await a.get("socket").groupParticipantsUpdate(e,t,n)}async profile(e,t,n){let i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "subject":if(!r)return await i.groupUpdateSubject(e,t);case "description":if(!r)return await i.groupUpdateDescription(e,t);case "picture":return await i.updateProfilePicture(e,await D.toBuffer(t))}}async setting(e,t){let n=a.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 a.get("socket").groupLeave(e)}async inviteCode(e,t){let n=a.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=a.get("socket"),n=N.get(e);if(n)return n;let i=await t.groupMetadata(e);return i&&N.set(e,i),i}async requestJoin(e,t,n){let i=a.get("socket");switch(n){case "approve":return await i.groupRequestParticipantsUpdate(e,t,n);case "reject":return await i.groupRequestParticipantsUpdate(e,t,n)}}async requestJoinList(e){return await a.get("socket").groupRequestParticipantsList(e)}async fetchAllGroups(){return await a.get("socket").groupFetchAllParticipating()}async ephemeral(e,t){let n=a.get("socket"),i={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await n.groupToggleEphemeral(e,i[t])}},De=class{constructor(e){this.glient=e;this.group=new ct(e);}group};c();var pt=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").newsletterCreate(e,t)}async action(e,t){let n=a.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 i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "name":if(!r)return await i.newsletterUpdateName(e,t);case "description":if(!r)return await i.newsletterUpdateDescription(e,t);case "picture":return await i.newsletterUpdatePicture(e,await D.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,n){return await a.get("socket").newsletterReactMessage(e,t,n)}async fetchMessages(e,t,n,i){let r=a.get("socket"),s=n.getTime()/1e3,l=i.getTime()/1e3;return await r.newsletterFetchMessages(e,t,s,l)}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)}},Ne=class{constructor(e){this.nlient=e;this.newsletter=new pt(e);}newsletter};c();var lt=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"),n={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await t.updateDefaultDisappearingMode(n[e])}async blocklist(){return await a.get("socket").fetchBlocklist()}async getSettings(){return await a.get("socket").fetchPrivacySettings(true)}},We=class{constructor(e){this.plient=e;this.privacy=new lt(e);}privacy};c();c();var Ba=m.object({status:m.enum(["connecting","open","close","reload","syncing"]),authType:m.enum(["pairing","qr"]),authTimeout:m.number().optional(),syncProgress:m.number().optional(),syncCompleted:m.boolean().default(false).optional(),qr:m.string().optional(),code:m.string().optional()});c();var nr=m.enum(["unknown","android","ios","desktop","web"]),rr=m.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"]),Vt=m.object({channelId:m.string(),uniqueId:m.string(),chatId:m.string(),chatType:rr,receiverLid:m.string(),receiverId:m.string(),receiverName:m.string(),roomId:m.string(),roomName:m.string(),senderLid:m.string(),senderId:m.string(),senderName:m.string(),senderDevice:nr,timestamp:m.number(),text:m.string().nullable(),mentions:m.string().array(),links:m.string().array(),isBot:m.boolean(),isFromMe:m.boolean(),isPrefix:m.boolean(),isSpam:m.boolean(),isTagMe:m.boolean(),isStatusMention:m.boolean(),isGroupStatusMention:m.boolean(),isHideTags:m.boolean(),isGroup:m.boolean(),isNewsletter:m.boolean(),isQuestion:m.boolean(),isStory:m.boolean(),isViewOnce:m.boolean(),isEdited:m.boolean(),isDeleted:m.boolean(),isPinned:m.boolean(),isUnPinned:m.boolean(),isBroadcast:m.boolean(),isEphemeral:m.boolean(),isForwarded:m.boolean(),citation:m.record(m.string(),m.function({output:m.promise(m.boolean())})).nullable(),media:m.object({buffer:m.function({output:m.promise(m.instanceof(Buffer))}),stream:m.function({output:m.promise(m.instanceof(tr))})}).loose().nullable(),injection:m.record(m.string(),m.any()).default({}),message:m.function({input:[],output:m.custom()})}),Na=Vt.extend({replied:Vt.nullable()});c();var La=m.object({callId:m.string(),callerId:m.string(),roomId:m.string(),roomName:m.string(),date:m.date(),offline:m.boolean(),status:m.enum(["accept","offer","reject","ringing","terminate","timeout"]),isVideo:m.boolean(),isGroup:m.boolean()});c();var _e=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(h(" \u2022","orange")+" Private Chat"),console.log(h(" \u2022","lime")+" Group Chat"),console.log(h(" \u2022","blue")+" Newsletter Chat"),console.log());}message(e){if(!this.isReady)return;let t=v(this.getRoomColor(e)),n=e?.text?.toLowerCase()?.match("zaileys"),i=this.client.options?.fancyLogs,r=h(`[${new Date(e?.timestamp).toTimeString().split(" ")[0]}]`,"dimgray"),s=h(`${e?.roomName}`,t),l=e?.text?.slice(0,300)||"",p=l?.length>=300?"...":"";if(i){let u=h("\u2501".repeat(50),"dimgray"),k=h("\u2192","dimgray"),S=h("\u2022",t),x=`
4
6
  ${u}
5
- `;M+=`${S} ${r} ${b} ${s}
6
- `,e?.isNewsletter?(M+=` ${h("\u{1F4E2} Room:","dimgray")} ${h(`${e?.roomName}`,t)}
7
- `,M+=` ${h("\u{1F194} ID:","dimgray")} ${h(`${q(e?.roomId)}`,"gray")}
8
- `):(M+=` ${h("\u{1F464} Sender:","dimgray")} ${h(`${e?.senderName}`,t)}
9
- `,M+=` ${h("\u{1F194} ID:","dimgray")} ${h(`${q(e?.senderId)}`,"gray")}
10
- `,e?.isGroup&&(M+=` ${h("\u{1F3E0} Group:","dimgray")} ${h(`${e?.roomName}`,"lime")}
11
- `)),M+=` ${h("\u{1F4DD} Type:","dimgray")} ${h(`${e?.chatType||"text"}`,"cyan")}
12
- `,M+=` ${h("\u{1F4AC} Text:","dimgray")} ${h(l+p,n?["#ff5f6d","#ffc371"]:"brown")}
13
- `,e?.isSpam&&(M+=` ${h("\u26A0\uFE0F Spam:","dimgray")} ${h("Yes","red")}
14
- `),e?.isForwarded&&(M+=` ${h("\u21AA\uFE0F Forwarded:","dimgray")} ${h("Yes","yellow")}
15
- `),e?.isEdited&&(M+=` ${h("\u270F\uFE0F Edited:","dimgray")} ${h("Yes","yellow")}
16
- `),M+=`${u}`,console.log(M);}else {let u=`${r} \u2192 ${s}
7
+ `;x+=`${S} ${r} ${k} ${s}
8
+ `,e?.isNewsletter?(x+=` ${h("\u{1F4E2} Room:","dimgray")} ${h(`${e?.roomName}`,t)}
9
+ `,x+=` ${h("\u{1F194} ID:","dimgray")} ${h(`${q(e?.roomId)}`,"gray")}
10
+ `):(x+=` ${h("\u{1F464} Sender:","dimgray")} ${h(`${e?.senderName}`,t)}
11
+ `,x+=` ${h("\u{1F194} ID:","dimgray")} ${h(`${q(e?.senderId)}`,"gray")}
12
+ `,e?.isGroup&&(x+=` ${h("\u{1F3E0} Group:","dimgray")} ${h(`${e?.roomName}`,"lime")}
13
+ `)),x+=` ${h("\u{1F4DD} Type:","dimgray")} ${h(`${e?.chatType||"text"}`,"cyan")}
14
+ `,x+=` ${h("\u{1F4AC} Text:","dimgray")} ${h(l+p,n?["#ff5f6d","#ffc371"]:"brown")}
15
+ `,e?.isSpam&&(x+=` ${h("\u26A0\uFE0F Spam:","dimgray")} ${h("Yes","red")}
16
+ `),e?.isForwarded&&(x+=` ${h("\u21AA\uFE0F Forwarded:","dimgray")} ${h("Yes","yellow")}
17
+ `),e?.isEdited&&(x+=` ${h("\u270F\uFE0F Edited:","dimgray")} ${h("Yes","yellow")}
18
+ `),x+=`${u}`,console.log(x);}else {let u=`${r} \u2192 ${s}
17
19
  `;e?.isNewsletter?u+=`${h("[room]","dimgray")} \u2192 ${h(`${e?.roomName} (${q(e?.roomId)})`,t)}
18
20
  `:u+=`${h("[sender]","dimgray")} \u2192 ${h(`${e?.senderName} (${q(e?.senderId)})`,t)}
19
21
  `,u+=`${h(`[${e?.chatType||"unknown"}]`,"dimgray")} \u2192 ${h(l+p,n?["#ff5f6d","#ffc371"]:"brown")}
20
22
  `,u+="\u2014",console.log(u);}}call(e){if(!this.isReady)return;let t=v(this.getRoomColor(e)),n=h(`[${new Date(e?.date).toTimeString().split(" ")[0]}]`,"dimgray"),i=h(`${e?.roomName}`,t),r=`${n} \u2192 ${i}
21
23
  `;r+=`${h("[caller]","dimgray")} \u2192 ${h(`${e?.callerId} (${q(e?.callerId)})`,t)}
22
24
  `,r+=`${h(`[${e?.status}]`,"dimgray")} \u2192 ${h(e?.isVideo?"Video Call":"Voice Call","brown")}
23
- `,r+="\u2014",console.log(r);}};c();var _e=class{stack=[];use(e){return this.stack.push(e),this}async run(e){let t=-1,n=async i=>{if(i<=t)throw "next() called multiple times";t=i;let r=this.stack[i];if(r)try{await r(e,()=>n(i+1));}catch(s){throw console.error("Middleware error:",s),s}};await n(0);}};c();var je=class{plugins=[];pluginsDir;globalEnabled=true;disabledPlugins=new Set;hmr=false;watcher=null;constructor(e="plugins",t=false){this.pluginsDir=H.isAbsolute(e)?e:H.join(process.cwd(),e),this.hmr=t;}async getAllFiles(e,t=e){try{await ee.promises.access(e);}catch{return []}let n=await ee.promises.readdir(e,{withFileTypes:true});return (await Promise.all(n.map(async r=>{let s=H.join(e,r.name);if(r.isDirectory())return this.getAllFiles(s,t);if((r.name.endsWith(".ts")||r.name.endsWith(".js"))&&!r.name.endsWith(".d.ts")){let p=H.relative(t,e),u=p===""?null:p.split(H.sep)[0];return [{filePath:s,parent:u}]}return []}))).flat()}async load(){try{await ee.promises.access(this.pluginsDir);}catch{return}let e=await this.getAllFiles(this.pluginsDir),t=await Promise.all(e.map(async({filePath:n,parent:i})=>{try{let r=pathToFileURL(n).href,p=(await import(this.hmr?`${r}?t=${Date.now()}`:r)).default;if(p?.default&&(p=p.default),p?.handler&&p?.config){let u=this.getPluginId(p.config.matcher);return {...p,parent:i,enabled:!this.disabledPlugins.has(u)}}}catch(r){console.error(`[Plugins] Failed to load plugin ${n}:`,r);}return null}));this.plugins=t.filter(n=>n!==null);}setupHmr(){if(!(!this.hmr||this.watcher))try{if(!ee.existsSync(this.pluginsDir))return;this.watcher=ee.watch(this.pluginsDir,{recursive:!0},async(e,t)=>{t&&(t.endsWith(".ts")||t.endsWith(".js"))&&await this.reload();});}catch(e){console.error("[Plugins] Failed to setup HMR:",e);}}getPluginId(e){return e.map(t=>t.toString()).join("|")}async execute(e,t){if(!this.globalEnabled)return;let n=t.messages?.text||"";for(let i of this.plugins)if(i.enabled)try{this.match(n,i.config.matcher)&&await i.handler(e,t);}catch(r){console.error("[Plugins] Error executing plugin:",r);}}match(e,t){return t.some(n=>n instanceof RegExp?n.test(e):e===n||e.startsWith(n+" "))}enableAll(){this.globalEnabled=true,this.plugins.forEach(e=>e.enabled=true),this.disabledPlugins.clear();}disableAll(){this.globalEnabled=false;}enable(e){let t=e.toString(),n=this.plugins.find(i=>i.config.matcher.some(r=>r.toString()===t));return n?(n.enabled=true,this.disabledPlugins.delete(this.getPluginId(n.config.matcher)),true):false}disable(e){let t=e.toString(),n=this.plugins.find(i=>i.config.matcher.some(r=>r.toString()===t));return n?(n.enabled=false,this.disabledPlugins.add(this.getPluginId(n.config.matcher)),true):false}enableByParent(e){let t=0;return this.plugins.forEach(n=>{n.parent===e&&(n.enabled=true,this.disabledPlugins.delete(this.getPluginId(n.config.matcher)),t++);}),t}disableByParent(e){let t=0;return this.plugins.forEach(n=>{n.parent===e&&(n.enabled=false,this.disabledPlugins.add(this.getPluginId(n.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(),console.log(`[Plugins] Successfully reloaded ${this.plugins.length} plugins.`);}stopHmr(){this.watcher&&(this.watcher.close(),this.watcher=null);}},Za=(o,e)=>({handler:o,config:e});var zt=class{constructor(e){this.options=e;this.options=fe(Nt,e);let t=new ie().classInjection(this,[new Fe(this),new Oe(this),new Ne(this),new De(this),new $e(this)]);return this.plugins=new je(this.options.pluginsDir,this.options.pluginsHmr),this._ready=this.initialize(t),t}_ready;logs;middleware=new _e;plugins;health;cleanup;async initialize(e){await Ve(this.options.disableFFmpeg),this.health=new Te(this),this.cleanup=new ke(this),this.options.autoCleanUp?.enabled&&this.cleanup.start(),await bt(this),await this.plugins.load(),this.plugins.setupHmr(),new Re(e||this),this.logs||(this.logs=new We(this));}ready(){return this._ready}db(e){return mt(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"),n=e.endsWith("@g.us"),i=null;if(n){let r=N.get(e);if(r)i=r.subject;else {let s=await t.groupMetadata(e);s&&(N.set(e,s),i=s.subject);}}return Z(i)}inject(e,t){ne.inject(e,t);}getInjection(e){return ne.getSync(e)}removeInjection(e){ne.remove(e);}clearInjections(){ne.clear();}};
25
+ `,r+="\u2014",console.log(r);}};c();var je=class{stack=[];use(e){return this.stack.push(e),this}async run(e){let t=-1,n=async i=>{if(i<=t)throw "next() called multiple times";t=i;let r=this.stack[i];if(r)try{await r(e,()=>n(i+1));}catch(s){throw console.error("Middleware error:",s),s}};await n(0);}};c();var Le=class{plugins=[];pluginsDir;globalEnabled=true;disabledPlugins=new Set;hmr=false;watcher=null;constructor(e="plugins",t=false){this.pluginsDir=H.isAbsolute(e)?e:H.join(process.cwd(),e),this.hmr=t;}async getAllFiles(e,t=e){try{await ee.promises.access(e);}catch{return []}let n=await ee.promises.readdir(e,{withFileTypes:true});return (await Promise.all(n.map(async r=>{let s=H.join(e,r.name);if(r.isDirectory())return this.getAllFiles(s,t);if((r.name.endsWith(".ts")||r.name.endsWith(".js"))&&!r.name.endsWith(".d.ts")){let p=H.relative(t,e),u=p===""?null:p.split(H.sep)[0];return [{filePath:s,parent:u}]}return []}))).flat()}async load(){try{await ee.promises.access(this.pluginsDir);}catch{return}let e=await this.getAllFiles(this.pluginsDir),t=await Promise.all(e.map(async({filePath:n,parent:i})=>{try{let r=pathToFileURL(n).href,p=(await import(this.hmr?`${r}?t=${Date.now()}`:r)).default;if(p?.default&&(p=p.default),p?.handler&&p?.config){let u=this.getPluginId(p.config.matcher);return {...p,parent:i,enabled:!this.disabledPlugins.has(u)}}}catch(r){console.error(`[Plugins] Failed to load plugin ${n}:`,r);}return null}));this.plugins=t.filter(n=>n!==null);}setupHmr(){if(!(!this.hmr||this.watcher))try{if(!ee.existsSync(this.pluginsDir))return;this.watcher=ee.watch(this.pluginsDir,{recursive:!0},async(e,t)=>{t&&(t.endsWith(".ts")||t.endsWith(".js"))&&await this.reload();});}catch(e){console.error("[Plugins] Failed to setup HMR:",e);}}getPluginId(e){return e.map(t=>t.toString()).join("|")}async execute(e,t){if(!this.globalEnabled)return;let n=t.messages?.text||"";for(let i of this.plugins)if(i.enabled)try{this.match(n,i.config.matcher)&&await i.handler(e,t);}catch(r){console.error("[Plugins] Error executing plugin:",r);}}match(e,t){return t.some(n=>n instanceof RegExp?n.test(e):e===n||e.startsWith(n+" "))}enableAll(){this.globalEnabled=true,this.plugins.forEach(e=>e.enabled=true),this.disabledPlugins.clear();}disableAll(){this.globalEnabled=false;}enable(e){let t=e.toString(),n=this.plugins.find(i=>i.config.matcher.some(r=>r.toString()===t));return n?(n.enabled=true,this.disabledPlugins.delete(this.getPluginId(n.config.matcher)),true):false}disable(e){let t=e.toString(),n=this.plugins.find(i=>i.config.matcher.some(r=>r.toString()===t));return n?(n.enabled=false,this.disabledPlugins.add(this.getPluginId(n.config.matcher)),true):false}enableByParent(e){let t=0;return this.plugins.forEach(n=>{n.parent===e&&(n.enabled=true,this.disabledPlugins.delete(this.getPluginId(n.config.matcher)),t++);}),t}disableByParent(e){let t=0;return this.plugins.forEach(n=>{n.parent===e&&(n.enabled=false,this.disabledPlugins.add(this.getPluginId(n.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(),console.log(`[Plugins] Successfully reloaded ${this.plugins.length} plugins.`);}stopHmr(){this.watcher&&(this.watcher.close(),this.watcher=null);}},ic=(o,e)=>({handler:o,config:e});var Gt=class{constructor(e){this.options=e;this.options=ge(jt,e);let t=new ie().classInjection(this,[new $e(this),new De(this),new We(this),new Ne(this),new Oe(this)]);return this.plugins=new Le(this.options.pluginsDir,this.options.pluginsHmr),this._ready=this.initialize(t),t}_ready;logs;middleware=new je;plugins;health;cleanup;async initialize(e){await Ot(),a.spinner=new se(this.options.showSpinner!==false),await Ge(this.options.disableFFmpeg),this.health=new Se(this),this.cleanup=new be(this),this.options.autoCleanUp?.enabled&&this.cleanup.start(),await Mt(this),await this.plugins.load(),this.plugins.setupHmr(),new Be(e||this),this.logs||(this.logs=new _e(this));}ready(){return this._ready}db(e){return dt(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"),n=e.endsWith("@g.us"),i=null;if(n){let r=N.get(e);if(r)i=r.subject;else {let s=await t.groupMetadata(e);s&&(N.set(e,s),i=s.subject);}}return Z(i)}inject(e,t){ne.inject(e,t);}getInjection(e){return ne.getSync(e)}removeInjection(e){ne.remove(e);}clearInjections(){ne.clear();}};
24
26
  /*
25
27
  * Copyright (c) 2025 zaadevofc.
26
28
  * All rights reserved.
@@ -28,7 +30,7 @@ ${u}
28
30
  * See LICENSE file for details.
29
31
 
30
32
  * Author: zaadevofc
31
- * Last build time: 12/23/2025 11:32:43 AM
33
+ * Last build time: 12/25/2025 5:51:56 AM
32
34
  *
33
35
  * Repository: git+https://github.com/zeative/zaileys.git
34
- */export{Ut as BaseMessagesType,An as ButtonInteractiveCallType,In as ButtonInteractiveCopyType,Sn as ButtonInteractiveReplyType,Pn as ButtonInteractiveSingleSelectType,En as ButtonInteractiveType,Cn as ButtonInteractiveUrlType,Rn as ButtonSimpleType,Ot as ButtonType,Fn as CitationType,zt as Client,Nn as ClientAuthPairingType,Wn as ClientAuthQRType,Dt as ClientBaseType,Nt as ClientOptionsType,Zn as DEVICE_ENUM_TYPES,Oo as EventEnumType,$n as FakeReplyType,Bn as LimiterType,Oa as ListenerCallsType,Ca as ListenerConnectionType,Ra as ListenerMessagesType,Xn as MESSAGE_ENUM_TYPES,nt as MediaModifier,je as Plugins,On as StickerMetadataType,st as StickerShapeType,Dn as autoCleanUp,q as cleanJid,Ct as cleanMediaObject,Za as definePlugins,Ge as extractJids,Et as extractUrls,ye as findGlobalWord,ws as findNestedByKeys,re as generateId,xe as getDeepContent,mn as getLatestLibVersion,St as getUsersMentions,v as ignoreLint,h as logColor,D as mediaModifier,ks as modifyFn,Z as normalizeText,Ti as numbersToJids,Ke as pickKeysFromArray,hs as randomize,bt as registerAuthCreds,At as removeAuthCreds,ys as shuffleString,He as toJson,ge as toString,ht as useAuthState};
36
+ */export{Vt as BaseMessagesType,Bn as ButtonInteractiveCallType,Rn as ButtonInteractiveCopyType,En as ButtonInteractiveReplyType,Fn as ButtonInteractiveSingleSelectType,$n as ButtonInteractiveType,Pn as ButtonInteractiveUrlType,On as ButtonSimpleType,Wt as ButtonType,Nn as CitationType,Gt as Client,Ln as ClientAuthPairingType,Un as ClientAuthQRType,_t as ClientBaseType,jt as ClientOptionsType,nr as DEVICE_ENUM_TYPES,Lo as EventEnumType,Wn as FakeReplyType,Dn as LimiterType,La as ListenerCallsType,Ba as ListenerConnectionType,Na as ListenerMessagesType,rr as MESSAGE_ENUM_TYPES,rt as MediaModifier,Le as Plugins,_n as StickerMetadataType,ot as StickerShapeType,jn as autoCleanUp,q as cleanJid,It as cleanMediaObject,ic as definePlugins,Je as extractJids,Bt as extractUrls,he as findGlobalWord,Cs as findNestedByKeys,re as generateId,xe as getDeepContent,Et as getLatestLibVersion,Ct as getUsersMentions,v as ignoreLint,h as logColor,D as mediaModifier,Is as modifyFn,Z as normalizeText,Bi as numbersToJids,Qe as pickKeysFromArray,Ss as randomize,Mt as registerAuthCreds,Pt as removeAuthCreds,Ts as shuffleString,Ke as toJson,ye as toString,wt as useAuthState};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lzif/zaileys",
3
3
  "description": "Zaileys - Simplified WhatsApp Node.js TypeScript/JavaScript API",
4
- "version": "1.0.0",
4
+ "version": "1.1.1",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.mjs",
@@ -13,7 +13,10 @@
13
13
  "import": "./dist/index.mjs"
14
14
  }
15
15
  },
16
- "author": "lzif",
16
+ "author": "zaadevofc",
17
+ "repository": {
18
+ "url": "git+https://github.com/zeative/zaileys.git"
19
+ },
17
20
  "keywords": [
18
21
  "baileys",
19
22
  "zaileys",
@@ -28,13 +31,6 @@
28
31
  "nodejs",
29
32
  "javascript-typescript"
30
33
  ],
31
- "scripts": {
32
- "dev": "tsx --watch examples/test.ts",
33
- "build": "tsup",
34
- "r:patch": "npm version patch && npm run build && npm publish",
35
- "r:minor": "npm version minor && npm run build && npm publish",
36
- "r:major": "npm version major && npm run build && npm publish"
37
- },
38
34
  "devDependencies": {
39
35
  "@types/lodash": "^4.17.21",
40
36
  "@types/lz4": "^0.6.4",
@@ -69,7 +65,6 @@
69
65
  "zod": "^4.1.13",
70
66
  "zod-validation-error": "^5.0.0"
71
67
  },
72
- "packageManager": "pnpm@10.24.0",
73
68
  "engines": {
74
69
  "node": ">=20.0.0"
75
70
  },
@@ -80,5 +75,12 @@
80
75
  "sharp": {
81
76
  "optional": true
82
77
  }
78
+ },
79
+ "scripts": {
80
+ "dev": "tsx --watch examples/test.ts",
81
+ "build": "tsup",
82
+ "r:patch": "npm version patch && npm run build && npm publish",
83
+ "r:minor": "npm version minor && npm run build && npm publish",
84
+ "r:major": "npm version major && npm run build && npm publish"
83
85
  }
84
- }
86
+ }
package/QWEN.md DELETED
@@ -1,135 +0,0 @@
1
- # Zaileys - WhatsApp Node.js TypeScript/JavaScript API
2
-
3
- ## Project Overview
4
-
5
- Zaileys is a powerful, type-safe wrapper around Baileys, designed to simplify the development of WhatsApp bots. It provides a robust architecture with built-in state management, middleware support, and easy-to-use event handlers, making it perfect for building scalable and maintainable WhatsApp applications.
6
-
7
- This library targets Node.js and TypeScript developers, providing an opinionated API that handles the complexity of managing raw WhatsApp socket connections. It includes essential features like rate limiting, session management, and input validation out of the box.
8
-
9
- ### Key Features
10
- - ✅ **Auto-Cleanup** - Automatically delete old messages to keep database light
11
- - ✅ **Intelligent Health Manager** - Auto-recovery and connection monitoring
12
- - ✅ **History Filtering** - Smart filtering of old history sync messages
13
- - ✅ **Type-Safe** - Full TypeScript + Zod validation with autocomplete
14
- - ✅ **Middleware** - Intercept and process events globally
15
- - ✅ **Plugin System** - Drop-in file-based plugins
16
- - ✅ **State Management** - Built-in `JetDB` for data persistence with **auto chunking**
17
- - ✅ **Event-Driven** - Clean listeners for `connection`, `messages`, `calls`
18
- - ✅ **Rate Limiting** - Anti-spam protection out of the box
19
- - ✅ **Auto-Everything** - Auto-read, auto-reject calls, auto-mentions
20
- - ✅ **Multi-Device** - QR code or Pairing Code authentication
21
- - ✅ **Built-in FFmpeg** - No external dependencies for media processing
22
- - ✅ **Interactive Buttons** - Simple buttons, URL, copy code, call buttons, and lists
23
-
24
- ## Architecture
25
-
26
- ### Core Concepts
27
- - **Client** - Your bot's brain. Manages connections, events, and the entire lifecycle.
28
- - **Context** - Rich event objects with all the data and helpers you need.
29
- - **Middleware** - Pre-process events for logging, auth, spam filtering, or custom logic.
30
- - **Plugins** - Drop files in `plugins/` directory. Auto-loaded, zero config.
31
- - **Store** - JSON database (`JetDB`) that auto-syncs chats, contacts, and messages.
32
-
33
- ### Project Structure
34
- ```
35
- src/
36
- ├── Auth/ # Authentication related modules
37
- ├── Classes/ # Core class implementations (Client, Middleware, etc.)
38
- ├── Config/ # Configuration modules
39
- ├── Listener/ # Event listeners
40
- ├── Modules/ # Core functionality modules (store, limiter, zod)
41
- ├── Signal/ # Signal handling for different features (groups, privacy, etc.)
42
- ├── Types/ # Type definitions
43
- └── Utils/ # Utility functions
44
- ```
45
-
46
- ## Building and Running
47
-
48
- ### Prerequisites
49
- - Node.js v20+
50
- - TypeScript (for best experience)
51
-
52
- ### Installation
53
- ```bash
54
- npm install zaileys
55
- ```
56
-
57
- ### Build Commands
58
- From the `package.json`:
59
- - `npm run build` - Build the project using tsup
60
- - `npm run test` - Run tests with tsx
61
- - `npm run r:patch` - Build and publish a patch version
62
- - `npm run r:minor` - Build and publish a minor version
63
- - `npm run r:major` - Build and publish a major version
64
-
65
- ### Quick Start Example
66
- ```typescript
67
- import { Client } from 'zaileys';
68
-
69
- const wa = new Client({
70
- // dynamic session you can change
71
- session: 'zaileys', // default
72
-
73
- // qr code
74
- authType: 'qr',
75
-
76
- // pairing code
77
- authType: 'pairing',
78
- phoneNumber: 6280000000,
79
-
80
- // if you want to disable built-in ffmpeg
81
- // disableFFmpeg: true,
82
-
83
- sticker: {
84
- authorName: 'your name',
85
- packageName: 'package name',
86
- quality: 80,
87
- shape: 'circle', // output sticker must be circle
88
- },
89
- });
90
-
91
- wa.on('messages', async (ctx) => {
92
- if (ctx.text == 'ping') {
93
- await wa.send(ctx.roomId, 'Pong! 🏓');
94
- }
95
- });
96
- ```
97
-
98
- ## Development Conventions
99
-
100
- ### TypeScript Configuration
101
- - Target: ES2022
102
- - Module: ESNext
103
- - Strict mode: disabled (for compatibility)
104
- - Module resolution: bundler
105
-
106
- ### Dependencies
107
- - **Core**: `baileys` (WhatsApp Web API), `jetdb` (JSON database)
108
- - **Validation**: `zod` (type validation)
109
- - **Media**: `@ffmpeg-installer/ffmpeg`, `@ffprobe-installer/ffprobe`, `sharp`
110
- - **Utilities**: `lodash`, `pino` (logger), `nanospinner`, `rate-limiter-flexible`
111
-
112
- ### Architecture Patterns
113
- - Event-driven architecture with EventEmitter
114
- - Proxy-based class injection for modular functionality
115
- - Plugin system with auto-loading capabilities
116
- - Middleware pattern for request processing
117
- - Health management with auto-recovery
118
-
119
- ### Code Structure
120
- - Main client class combines functionality through interface merging
121
- - Signal classes handle specific WhatsApp features (groups, privacy, etc.)
122
- - Store module manages data persistence and caching
123
- - Utility functions provide common operations
124
- - Type definitions ensure type safety throughout the codebase
125
-
126
- ## Testing
127
- The project uses a test script that can be run with `npm run test`, which executes examples/test.ts with tsx in watch mode.
128
-
129
- ## Contributing
130
- Based on the README, contributions are welcome following the standard GitHub workflow:
131
- 1. Fork the repository
132
- 2. Create a new branch for your feature
133
- 3. Commit your changes
134
- 4. Push to your branch
135
- 5. Open a Pull Request