UNPKG

zaileys

Version:

Zaileys - Simplified WhatsApp Node.js TypeScript/JavaScript API

6 lines 63.1 kB
'use strict';var Lt=require('baileys'),E=require('radashi'),Pt=require('@seald-io/nedb'),asyncMutex=require('async-mutex'),lruCache=require('lru-cache'),nanospinner=require('nanospinner'),Et=require('pino'),events=require('events'),mediaProcess=require('@zaileys/media-process'),$t=require('crypto'),a=require('valibot'),nt=require('gradient-string'),Vt=require('fs/promises'),Jt=require('figlet'),Kt=require('qrcode-terminal'),G=require('fs'),N=require('path'),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 Lt__default=/*#__PURE__*/_interopDefault(Lt);var E__namespace=/*#__PURE__*/_interopNamespace(E);var Pt__default=/*#__PURE__*/_interopDefault(Pt);var Et__default=/*#__PURE__*/_interopDefault(Et);var $t__default=/*#__PURE__*/_interopDefault($t);var a__namespace=/*#__PURE__*/_interopNamespace(a);var nt__default=/*#__PURE__*/_interopDefault(nt);var Vt__default=/*#__PURE__*/_interopDefault(Vt);var Jt__default=/*#__PURE__*/_interopDefault(Jt);var Kt__default=/*#__PURE__*/_interopDefault(Kt);var G__namespace=/*#__PURE__*/_interopNamespace(G);var N__namespace=/*#__PURE__*/_interopNamespace(N);var oe=class{db;mutex=new asyncMutex.Mutex;encoder;constructor(e,t){this.encoder=t?.encoder,this.db=new Pt__default.default({filename:e,autoload:true,corruptAlertThreshold:.2,...t});}decode(e){if(!this.encoder||e===void 0||e===null)return e;if(typeof e=="string")return this.encoder.decode(e);try{return this.encoder.decode(JSON.stringify(e))}catch{return e}}encode(e){return !this.encoder||e===void 0||e===null?e:this.encoder.encode(e)}async get(e){let t=await this.db.findOneAsync({_id:e});return t?this.decode(t.value):void 0}async set(e,t){let n=this.encode(t);await this.mutex.runExclusive(async()=>{await this.db.updateAsync({_id:e},{_id:e,value:n},{upsert:true});});}async del(e){await this.mutex.runExclusive(async()=>{await this.db.removeAsync({_id:e},{});});}async clear(){await this.mutex.runExclusive(async()=>{await this.db.removeAsync({},{multi:true});});}async keys(e){let t=e?{_id:new RegExp("^"+this.escapeRegExp(e))}:{};return (await this.db.findAsync(t)).map(o=>o._id)}async getMany(e){let t=await this.db.findAsync({_id:{$in:e}}),n={};for(let o of t)n[o._id]=this.decode(o.value);return n}async setMany(e){let t=Object.entries(e);await this.mutex.runExclusive(async()=>{await Promise.all(t.map(([n,o])=>this.db.updateAsync({_id:n},{_id:n,value:this.encode(o)},{upsert:true})));});}async compact(){await this.mutex.runExclusive(async()=>{await this.db.compactDatafileAsync();});}async close(){await this.mutex.runExclusive(async()=>{});}escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}};var Ce={encode:i=>JSON.stringify(i,Lt.BufferJSON.replacer),decode:i=>JSON.parse(i,Lt.BufferJSON.reviver)},Me=new Map,Ae=(i,e)=>(Me.has(i)||Me.set(i,new oe(i,e)),Me.get(i)),ze=i=>Ae(`.session/${i}/auth/creds`,{compression:false,encoder:Ce}),ie=i=>Ae(`.session/${i}/auth/keys`,{compression:false,encoder:Ce}),Ge=(i,e)=>Ae(`.session/${i}/store/${e}`,{compression:true,encoder:Ce});var Pe=class{cache;pendingPromises=new Map;namespace;constructor(e,t){this.namespace=e,this.cache=new lruCache.LRUCache({max:t?.max??500,ttl:t?.ttl});}key(e){return `${this.namespace}:${e}`}set(e,t){this.cache.set(this.key(e),t);}get(e){return this.cache.get(this.key(e))}has(e){return this.cache.has(this.key(e))}delete(e){return this.cache.delete(this.key(e))}getOrSet(e,t){if(this.has(e))return this.get(e);let n=t();return this.set(e,n),n}async getOrCreate(e,t){if(this.has(e))return this.get(e);let n=this.key(e);if(this.pendingPromises.has(n))return this.pendingPromises.get(n);let o=(async()=>{try{let s=await t();return this.set(e,s),s}finally{this.pendingPromises.delete(n);}})();return this.pendingPromises.set(n,o),o}clear(){this.cache.clear();}keys(){return Array.from(this.cache.keys()).filter(e=>e.startsWith(`${this.namespace}:`)).map(e=>e.slice(this.namespace.length+1))}getAll(){let e={};for(let t of this.keys())e[t]=this.get(t);return e}get size(){return this.keys().length}},Re=class{namespaces=new Map;spinner=nanospinner.createSpinner("",{color:"green"});logger=Et__default.default({level:"silent",enabled:false});events=new events.EventEmitter;ns(e,t){return this.namespaces.has(e)||this.namespaces.set(e,new Pe(e,t)),this.namespaces.get(e)}drop(e){let t=this.namespaces.get(e);return t?(t.clear(),this.namespaces.delete(e),true):false}snapshot(){let e={};for(let[t,n]of this.namespaces)e[t]=n.getAll();return e}get namespaceNames(){return Array.from(this.namespaces.keys())}},f=new Re;var U=f.ns("context",{max:500}),Ve=f.ns("cache",{max:2e3,ttl:1e3*60*5}),u=f.ns("center",{max:500}),Ie=f.ns("rate",{max:5e3,ttl:1e3*10}),O=f.ns("group",{max:500,ttl:1e3*60*5}),Je=f.ns("msg",{max:1e3});var Ke=async i=>{f.spinner.start(" Initializing auth state...");let e=ze(i),t=ie(i),n=await e.get("creds"),o=n||Lt.initAuthCreds();return n?f.spinner.success(" Auth credentials loaded successfully"):f.spinner.success(" Initialized new auth session"),{state:{creds:o,keys:{get:async(s,r)=>{let m={};return await Promise.all(r.map(async c=>{let g=`${s}:${c}`,w=await t.get(g);s==="app-state-sync-key"&&w&&(w=Lt.proto.Message.AppStateSyncKeyData.fromObject(w)),m[c]=w;})),m},set:async s=>{let r=[];for(let m in s)for(let c in s[m]){let g=s[m][c],w=`${m}:${c}`;r.push({key:w,value:g});}for(let m of E__namespace.cluster(r,500)){let c={},g=[];m.forEach(({key:w,value:R})=>{R?c[w]=R:g.push(w);}),Object.keys(c).length>0&&await t.setMany(c),g.length>0&&await Promise.all(g.map(w=>t.del(w)));}}}},saveCreds:async()=>{await e.set("creds",o);}}};var Z=class{constructor(e){this.cache=e;}get(e){return this.cache.get(e)}set(e,t){this.cache.set(e,t);}del(e){this.cache.delete(e);}flushAll(){this.cache.clear();}};var Ze=(i,e)=>({logger:i.health.logger,printQRInTerminal:false,enableRecentMessageCache:true,emitOwnEvents:true,keepAliveIntervalMs:3e4,browser:Lt.Browsers.macOS("Desktop"),markOnlineOnConnect:i.options.autoOnline,syncFullHistory:i.options.syncFullHistory,msgRetryCounterCache:new Z(Je),mediaCache:new Z(Ve),auth:{creds:e.creds,keys:Lt.makeCacheableSignalKeyStore(e.keys,f.logger)},cachedGroupMetadata:async t=>O.get(t),shouldIgnoreJid:()=>false,shouldSyncHistoryMessage:()=>i.options.syncFullHistory,patchMessageBeforeSending:t=>t,getMessage:async t=>{if(!t?.remoteJid||!t?.id)return Lt.proto.Message.fromObject({});let n=await i.db("messages").get(t.id);return Lt.proto.Message.fromObject(n||{})}});var Ye=async i=>{let e=i.options.session||"zaileys",{state:t,saveCreds:n}=await Ke(e),{version:o}=await Lt.fetchLatestBaileysVersion(),s=Ze(i,t),r=Lt__default.default({...s,version:o});r.ev.on("creds.update",n),u.set("socket",r);};function Xe(i,e){let t=e.length;return new Proxy(i,{get(n,o,s){if(o in n){let r=Reflect.get(n,o,s);return typeof r=="function"?r.bind(s):r}for(let r=0;r<t;r++){let m=e[r];if(o in m){let c=Reflect.get(m,o,m);return typeof c=="function"?c.bind(m):c}}},set(n,o,s,r){if(o in n)return Reflect.set(n,o,s,r);for(let m=0;m<t;m++){let c=e[m];if(o in c)return Reflect.set(c,o,s,c)}return Reflect.set(n,o,s,r)},has(n,o){if(o in i)return true;for(let s=0;s<t;s++)if(o in e[s])return true;return false},ownKeys(){let n=new Set(Reflect.ownKeys(i)),o=[...n];for(let s=0;s<t;s++)for(let r of Reflect.ownKeys(e[s]))n.has(r)||(n.add(r),o.push(r));return o},getOwnPropertyDescriptor(n,o){let s=Object.getOwnPropertyDescriptor(i,o);if(s)return s;for(let r=0;r<t;r++)if(s=Object.getOwnPropertyDescriptor(e[r],o),s)return {...s,configurable:true}}})}var re=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 o=this.client.db(n),s=await o.keys(),r=[];for(let m of s){let c=await o.get(m);c&&c.timestamp!==void 0&&c.timestamp<t&&r.push(m);}if(r.length>0){for(let m of E__namespace.cluster(r,500))await Promise.all(m.map(c=>o.del(c)));f.spinner.info(`[CleanUpManager] Cleaned up ${r.length} items from ${n}`);}}catch{}}};var M={CRITICAL:20,HIGH:10,NORMAL:0,LOW:-10},Oe=class{concurrency;timeout;onError;queue;running;completed;failed;isClosing;closeResolve;_idleResolvers=[];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:0,maxRetries:t?.maxRetries||0,createdAt:Date.now()},o=this.queue.findIndex(s=>s.priority<n.priority);return o===-1?this.queue.push(n):this.queue.splice(o,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?.(),this.isIdle()&&(this._idleResolvers.forEach(e=>e()),this._idleResolvers=[]);}async _executeTask(e){try{await this._withTimeout(e.fn(),e.timeout),this.completed++;}catch(t){if(e.retries<e.maxRetries){e.retries++;let n=Math.min(500*2**e.retries,3e4);setTimeout(()=>{this.isClosing||(this.queue.unshift(e),this._process());},n);}else this.failed++,this.onError(t,e);}finally{this.running.delete(e),this._process();}}_withTimeout(e,t){let n,o=new Promise((s,r)=>{n=setTimeout(()=>r(new Error("Task timeout")),t);});return Promise.race([e,o]).finally(()=>clearTimeout(n))}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(o=>setTimeout(o,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(){if(!this.isIdle())return new Promise(e=>{this._idleResolvers.push(e);})}_defaultErrorHandler(e,t){console.error(`[FireForget] Task ${t.id} failed:`,e.message);}_generateId(){return $t__default.default.randomUUID()}},x=new Oe;var ae=class{constructor(e){this.client=e;this.keysDb=ie(e.options.session);}keysDb;async repair(e){if(e)try{let t=this.client.socket;t&&t.authState&&(await t.authState.keys.set({session:{[e]:null},"sender-key":{[e]:null}}),f.spinner.warn(` [HealthManager] Repaired session for ${e} due to Bad MAC by clearing auth cache`));}catch(t){this.logger.error({err:t},"Failed to repair session");}}get logger(){return Et__default.default({level:"silent"},{write:e=>{try{let t=JSON.parse(e),n=t.msg||"",o=["Bad MAC","Session error:","Closing open session in favor of incoming prekey bundle","Error: Bad MAC"];if(n.includes("Bad MAC")){let s=t.jid||t.remoteJid;s&&this.repair(s);}o.some(s=>n.includes(s))||t.level>=50&&t.err&&console.error(t.err);}catch{}}})}};var Y=(i,e)=>{let t=a__namespace.safeParse(i,e);if(t.issues){let n=[],o=r=>{for(let m of r)if(m.issues&&m.issues.length>0)o(m.issues);else {let c=m.path?.map(g=>g.key).join(".")||"root";n.push(`${c}: ${m.message}`);}};o(t.issues);let s=Array.from(new Set(n));throw new Error(`Validation Error: - ${s.join(` - `)}`)}return t.output};var v=(i,e="lime")=>Array.isArray(e)?nt__default.default(e)(i):nt__default.default([e,e])(i),Ee=i=>{try{return JSON.parse(i)}catch{return E__namespace.tryit(()=>JSON.parse(JSON.stringify(i)||"{}"))()[1]}},X=i=>{try{return JSON.stringify(i)}catch{let e=E__namespace.tryit(()=>JSON.stringify(Ee(i)||"{}"))();return e[0]?"{}":e[1]}},Fs=(i="")=>E__namespace.shuffle(i.split("")).join(""),ee=(i="",e="")=>i?i.toLowerCase().includes(e.toLowerCase()):null,st=(i="")=>{if(!i)return [];let e=i.match(Lt.URL_REGEX)||[];return Array.isArray(e)?e:[e]},$s=i=>i[Math.floor(Math.random()*i.length)],ot=(i,e)=>{if(!(!Array.isArray(i)||i.length===0)&&!(!Array.isArray(e)||e.length===0)){for(let t of i)if(!(!t||typeof t!="object"))for(let n of e){let o=E__namespace.get(t,n);if(!E__namespace.isEmpty(o)||typeof o=="number"||typeof o=="boolean"){if(typeof o=="string"&&o.trim()==="")continue;return o}}}},Us=(i,e)=>{let t=Array.isArray(e)?e:[e],n=(r,m)=>Object.entries(m).every(([c,g])=>r?.[c]===g),o=(r,m)=>Object.entries(m).some(([c,g])=>r?.[c]===g),s=r=>Array.isArray(r)?r.find(s)??r:E__namespace.isObject(r)?t.find(g=>n(r,g))||t.find(g=>o(r,g))?r:Object.values(r).find(s)??r:null;return s(i)},Bs=(i,e,t)=>new Proxy(i,{apply(n,o,s){e?.(s);let r=Reflect.apply(n,o,s);return t?t(r,s):r}}),it=i=>i.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");var Ne=i=>{let e;Array.isArray(i)?e=i.join("|"):typeof i=="string"?e=i:e=String(i);let t=2166136261,n=e.length;for(let o=0;o<n;o++)t^=e.charCodeAt(o),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return "Z4D3FC"+(t>>>0).toString(16).padStart(8,"0").toUpperCase()},at=(i="")=>{if(!i)return [];let e=new Set;for(let t of i.matchAll(/@(\d+)/g))e.add(t[1]);return Array.from(e)},We=(i="")=>{if(!i)return [];let e=new Set;for(let t of i.matchAll(/@(\d+)/g))t[1].length<=15&&e.add(t[1]);return [...e].flatMap(t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},ce=i=>{let e=i.filter(Boolean).map(o=>Lt.jidNormalizedUser(o)),t=e.find(o=>!o.includes("@lid")),n=e.find(o=>o.includes("@lid"));return {id:t||n||null,lid:n||null}},Js=i=>i?.length?[...i].map(e=>`${e}@s.whatsapp.net`):[],ct=i=>E__namespace.omit(i,["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"]),le=i=>{if(!i)return {leaf:void 0,chain:[]};let e=Lt.extractMessageContent(i)||i,t=[];for(;e&&typeof e=="object";){let n=Lt.getContentType(e);if(!n)break;t.push(n);let o=e[n];if(!o||typeof o!="object"){e=o;break}e=o;}return {leaf:e,chain:t}},B=i=>Number(i?.split("@")[0]);var h=i=>i,lt=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(i){throw i}},_e=async i=>{try{let e=`.session/${i}`;await Vt__default.default.rm(e,{recursive:!0,force:!0});}catch{f.spinner.error(`Failed to remove auth creds for session "${i}"!`);}},_=(i="")=>{if(!i?.length)return null;let e=i.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,"").normalize("NFKD").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," ").normalize("NFKC").normalize("NFC").replace(/\s+/g," ").trim();return e.length?e:null};var pe=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=u.get("socket");e.ev.on("call",async t=>{for(let n of t){let o=await this.parse(n);o&&(x.add(async()=>{await Promise.all([this.client.middleware.run({calls:o}),this.client.plugins.execute(this.client,{messages:o})]);},{priority:M.NORMAL,timeout:5e3}),f.events.emit("calls",o),this.client.options?.autoRejectCall&&x.add(async()=>e.rejectCall(o.callId,o.callerId),{priority:M.CRITICAL,timeout:3e3}));}});}async parse(e){let t=u.get("socket"),n={};return n.callId=e.id,n.callerId=Lt.jidNormalizedUser(e.from),n.roomId=Lt.jidNormalizedUser(e.chatId),n.roomName=_(t?.user?.name||t?.user?.verifiedName),n.date=e.date,n.offline=e.offline,n.status=e.status,n.isVideo=!!e.isVideo,n.isGroup=!!e.isGroup,this.client.logs.call(n),n}};var ut=i=>{Kt__default.default.generate(i,{small:true},e=>{console.log(e);});},dt=async()=>{console.clear(),f.spinner.start(" Checking for updates...");let i="3.3.0",e="zaadevofc",t=await lt(),n=i===t;f.spinner.stop();let o="Zaileys",s=` by ${e} \xB7 v${i}`,r="\u2014 discord.gg/KBHhTTVUc5",m="\u2014 chat.whatsapp.com/GlQfvc83mSH3F6ov06vuCt",c=`${n?"\u2714 Already using latest version!":`\u2714 Update available! (v${t})`} `,g=n?"blue":"orange",w=await Jt__default.default.text(o),R=nt.cristal(w);console.log(R),console.log(v(s,"dimgray")),console.log(v(r,"purple")),console.log(v(m,"green")),console.log(v(c,g));};var de=class{constructor(e){this.client=e;this.initialize();}async initialize(){f.spinner.start(" Initializing connection...");let e=u.get("socket"),t={},n=async()=>{t.status="reload",f.spinner.warn(" Connection lost. Attempting auto-reload..."),await this.client.initialize();},o=async()=>{await Lt.delay(3e3),f.spinner.warn(" Invalid session. Attempting auto cleaning creds..."),await Lt.delay(3e3),await _e(this.client.options.session),await n();};if(this.client.options.authType==="pairing"&&this.client.options.phoneNumber&&!e.authState.creds.registered){f.spinner.update(" Generating pairing code..."),await Lt.delay(3500);try{t.authTimeout=Date.now()+6e4;let s=new Date(t.authTimeout).toLocaleTimeString(),r=await e.requestPairingCode(this.client.options.phoneNumber.toString());f.spinner.warn(` Pairing expired at ${nt.cristal(s)}`),f.spinner.warn(` Pairing code: ${r}`),t.code=r;}catch{await o();}}e.ev.on("connection.update",async s=>{let{connection:r,lastDisconnect:m,qr:c}=s;if(t.status=r||"connecting",t.authType=this.client.options.authType,f.spinner.update(" Connection status: "+nt.cristal(t.status)),this.client.options.authType==="qr"&&c){t.authTimeout=Date.now()+6e4;let g=new Date(t.authTimeout).toLocaleTimeString();f.spinner.warn(" Please scan the QR code..."),f.spinner.warn(` Qr code expired at ${nt.cristal(g)}`),ut(c),t.qr=c;return}if(r==="close"){let g=h(m?.error)?.output?.statusCode,w=m?.error?.message||"Unknown Error",R=g??"Internal";if(f.spinner.error(` [${R} - Closed] ${w}`),g===Lt.DisconnectReason.loggedOut){this.client.options.deleteSessionOnLogout?(f.spinner.warn(" Session logged out or invalidated. Self-healing..."),await _e(this.client.options.session),setTimeout(()=>n(),3e3)):f.spinner.warn(" Session logged out or invalidated. Automatic session deletion is disabled.");return}if(g===405){f.spinner.warn(" Session invalid/stale or used by another device (405)."),f.spinner.warn(" Automatic reconnecting..."),setTimeout(()=>n(),3e3);return}if(g===500){f.spinner.error(" Server error occurred, attempting reconnect..."),setTimeout(()=>n(),3e3);return}typeof g=="number"&&(f.spinner.warn(` Connection marked for reconnect (${g}). Wait a moment...`),setTimeout(()=>n(),3e3));}if(r==="open")if(e.user?.id){let g=Lt.jidNormalizedUser(e.user.id).split("@")[0],w=e.user.name||e.user.verifiedName;f.spinner.success(` Connected as ${nt.cristal(w||g)}`);}else f.spinner.success(" Connected!");f.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:s})=>{t.status="syncing",t.syncProgress=s,f.spinner.start(" Syncing messages history (bot is active and responding)..."),s&&f.spinner.update(` Syncing messages history ${s+"%"} (bot is active)`),s==100&&(f.spinner.success(" Syncing completed! All systems ready."),t.syncCompleted=true),f.events.emit("connection",t);});}};var mt={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"},je={whatsapp:"0@s.whatsapp.net",meta:"13135550002@s.whatsapp.net",chatgpt:"18002428478@s.whatsapp.net",copilot:"18772241042@s.whatsapp.net",instagram:"447723442971@s.whatsapp.net",tiktok:"6285574670498@s.whatsapp.net"};var me=class{constructor(e){this.client=e;this.maxMessages=this.client.options.limiter?.maxMessages||20;}maxMessages;async isSpam(e){let t=Ie.get(e)||0;return t>=this.maxMessages?true:(Ie.set(e,t+1),false)}};var ge=class{constructor(e){this.client=e;this.limiter=new me(e),this.maxReplies=this.client.options?.maxReplies??3,this.initialize();}limiter;maxReplies;async initialize(){let e=u.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;let o=u.get("bootTime");for(let s of t)try{if(n==="append"&&o&&Number(s?.messageTimestamp)*1e3<o)continue;let r=await this.parse(s);r&&(x.add(async()=>{await Promise.all([this.client.middleware.run({messages:r}),this.client.plugins.execute(this.client,{messages:r})]);},{priority:M.NORMAL,timeout:5e3}),u.set("message",r),f.events.emit("messages",r),this.client.options.autoRead&&x.add(async()=>e.readMessages([r.message().key]),{priority:M.NORMAL,timeout:5e3}));}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,o=u.get("socket"),s={},r=le(e.message),m=r.chain.at(-1),c=r.leaf;if(c?.message&&(r=le(c.message),m=r.chain.at(-1),c=r.leaf),s.uniqueId=null,s.channelId=null,s.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,s.chatType=mt[m],!s.chatType)return;let g=ce([o?.user?.id,o?.user?.lid]);s.receiverId=g.id||g.lid||"",s.receiverLid=g.lid||g.id||"",s.receiverName=_(o?.user?.name||o?.user?.verifiedName);let w=ce([e?.key?.remoteJid]);s.roomId=w.id,s.roomLid=w.lid;let R=c?.type===0,D=c?.type===1,j=c?.type===2,A=s.roomId?.includes("@newsletter"),I=!!e?.message?.questionMessage,L=e?.key?.fromMe||false;if(L&&this.client.options.ignoreMe&&t!=="replied")return;let J=c?.key?.id;if(R||D||j){if(!J)return;let S=await this.client.db("messages").get(J);if(!S)return;e=S,r=le(e.message),m=r.chain.at(-1),c=r.leaf;}s.roomName=await this.client.getRoomName(s.roomId);let H=ce([e?.key?.participant,e?.key?.remoteJid,e?.key?.participantAlt,e?.key?.remoteJidAlt]);if(s.senderId=H.id,s.senderLid=H.lid,s.senderName=_(e?.pushName||e?.verifiedBizName),s.senderDevice=Lt.getDevice(s.chatId||""),s.channelId=Ne([s.roomId,s.senderId]),s.uniqueId=Ne([s.channelId,s.chatId]),s.timestamp=Number(e?.messageTimestamp)*1e3,A){let S=await o.newsletterMetadata("jid",s.roomId);s.roomName=h(S.thread_metadata.name)?.text,s.senderId=null,s.senderLid=null;}L&&(s.senderLid=s.receiverLid,s.senderId=s.receiverId,s.senderName=s.receiverName),s.text=c?.text||c?.caption||c?.name||c?.displayName||c?.conversation||c?.contentText||c?.selectedDisplayText||c||null,c?.name=="menu_options"&&(s.text=Ee(c?.paramsJson)?.id),s.text=_(s.text),s.mentions=at(s.text),s.links=st(s.text||""),s.isBot=s.chatId.startsWith("BAE5")||s.chatId.startsWith("3EB0"),s.isFromMe=L;let F=this.client.options?.prefix,K=Array.isArray(F)?F:[F];if(s.isPrefix=!!K.find(S=>s.text?.startsWith(S)),s.isTagMe=s.mentions?.includes(s.receiverId.split("@")[0])||s.mentions?.includes(s.receiverLid.split("@")[0]),s.isStatusMention=!!e?.message?.statusMentionMessage,s.isGroupStatusMention=!!e?.message?.groupStatusMentionMessage,s.isHideTags=false,!s.text?.trim()&&c?.contextInfo?.mentionedJid?.length&&(s.isHideTags=true),s.isSpam=await this.limiter.isSpam(s.channelId),s.isPrefix&&(s.text=s.text.replace(new RegExp(`^${it(K.find(S=>s.text?.startsWith(S))||"")}`),"")),s.isGroup=s.roomId?.includes("@g.us"),s.isNewsletter=A,s.isQuestion=I,s.isStory=s.roomId?.includes("@broadcast"),!s.isGroup&&!s.roomName&&(s.roomName=s.senderName),s.isViewOnce=false,s.isEdited=!!ee(X(r),"editedMessage"),s.isDeleted=R,s.isPinned=D,s.isUnPinned=j,s.isBroadcast=!!e?.broadcast,s.isEphemeral=!!ee(X(c?.contextInfo),"ephemeralSettingTimestamp"),s.isForwarded=!!ee(X(c?.contextInfo),"forwardingScore"),s.citation=null,this.client.options.citation){s.citation=s.citation||{};let S=this.client.options.citation;for(let W of Object.keys(S)){let $=S[W];s.citation[W]=async()=>{let k=await $();return !![B(s.roomId),B(s.senderLid),B(s.senderId)].some(P=>k.includes(P))};}}s.chatType!=="text"&&(s.media={...ct(c),buffer:()=>Lt.downloadMediaMessage(e,"buffer",{}),stream:()=>Lt.downloadMediaMessage(e,"stream",{})}),s.isStatusMention&&(s.chatType="statusMention"),s.isGroupStatusMention&&(s.chatType="groupStatusMention"),s.message=()=>n,s.replied=null;let V=c?.contextInfo?.quotedMessage,Te=ee(X(V),"viewOnce"),se=c?.contextInfo?.stanzaId;if(V&&this.maxReplies){if(this.maxReplies--,!se)return s;let S=await this.client.db("messages").get(se),W;Te?W={...S,message:V}:W=S,s.replied=await this.parse(W,"replied"),s.replied&&(s.replied.isViewOnce=true),this.maxReplies=this.client.options?.maxReplies??3;}return t!="replied"&&this.client.logs.message(s),s.injection=U.getAll(),s}};var fe=class{constructor(e){this.client=e;this.connection=new de(e),this.messages=new ge(e),this.calls=new pe(e),this.initialize();}connection;messages;calls;async initialize(){let e=u.get("socket");e.ev.on("groups.update",async([n])=>{x.add(async()=>{let o=await e.groupMetadata(n.id);O.set(n.id,o);},{priority:M.LOW,timeout:1e4});}),e.ev.on("group-participants.update",async n=>{x.add(async()=>{let o=await e.groupMetadata(n.id);O.set(n.id,o);},{priority:M.LOW,timeout:1e4});});let t=async(n,o)=>{for(let r=0;r<n.length;r+=500){let m=n.slice(r,r+500);await Promise.all(m.map(o));}};e?.ev.on("messaging-history.set",async n=>{let{chats:o,contacts:s,messages:r,progress:m}=n;u.set("syncStatus",{isSyncing:(m??0)<100,progress:m??0}),x.add(async()=>{await t(o,c=>this.client.db("chats").set(c.id,c));},{priority:M.LOW,timeout:3e4}),x.add(async()=>{await t(s,c=>this.client.db("contacts").set(c.id,c));},{priority:M.LOW,timeout:3e4}),x.add(async()=>{await t(r,c=>this.client.db("messages").set(c.key.id,c));},{priority:M.LOW,timeout:3e4});}),e?.ev.on("messages.upsert",async({messages:n})=>{x.add(async()=>{await t(n,o=>this.client.db("messages").set(o.key.id,o));},{priority:M.LOW,timeout:3e4});}),e?.ev.on("chats.upsert",async n=>{x.add(async()=>{await t(n,o=>this.client.db("chats").set(o.id,o));},{priority:M.LOW,timeout:3e4});}),e?.ev.on("contacts.upsert",async n=>{x.add(async()=>{await t(n,o=>this.client.db("contacts").set(o.id,o));},{priority:M.LOW,timeout:3e4});});}};var ft=a__namespace.object({type:a__namespace.literal("quick_reply"),id:a__namespace.string(),text:a__namespace.string()}),yt=a__namespace.object({type:a__namespace.literal("cta_url"),url:a__namespace.pipe(a__namespace.string(),a__namespace.url()),text:a__namespace.string()}),ht=a__namespace.object({type:a__namespace.literal("cta_copy"),id:a__namespace.string(),copy:a__namespace.string(),text:a__namespace.string()}),vt=a__namespace.object({type:a__namespace.literal("cta_call"),text:a__namespace.string(),phoneNumber:a__namespace.string()}),Xt=a__namespace.object({type:a__namespace.literal("single_select"),text:a__namespace.string(),section:a__namespace.array(a__namespace.object({title:a__namespace.string(),highlight_label:a__namespace.optional(a__namespace.string()),rows:a__namespace.array(a__namespace.object({id:a__namespace.string(),title:a__namespace.string(),header:a__namespace.optional(a__namespace.string()),description:a__namespace.optional(a__namespace.string())}))}))}),en=a__namespace.object({type:a__namespace.literal("interactive"),footer:a__namespace.optional(a__namespace.string()),data:a__namespace.array(a__namespace.union([ft,yt,ht,vt,Xt]))}),tn=a__namespace.object({type:a__namespace.literal("simple"),footer:a__namespace.optional(a__namespace.string()),data:a__namespace.array(a__namespace.object({id:a__namespace.string(),text:a__namespace.string()}))}),nn=a__namespace.object({body:a__namespace.string(),footer:a__namespace.optional(a__namespace.string()),header:a__namespace.optional(a__namespace.object({title:a__namespace.optional(a__namespace.string()),subtitle:a__namespace.optional(a__namespace.string()),hasMediaAttachment:a__namespace.optional(a__namespace.boolean()),image:a__namespace.optional(a__namespace.string()),video:a__namespace.optional(a__namespace.string())})),nativeFlow:a__namespace.array(a__namespace.union([ft,yt,ht,vt]))}),sn=a__namespace.object({type:a__namespace.literal("carousel"),data:a__namespace.array(nn)}),kt=a__namespace.union([tn,en,sn]);var on=a__namespace.optional(a__namespace.object({maxMessages:a__namespace.optional(a__namespace.number(),20),durationMs:a__namespace.optional(a__namespace.number(),1e4)})),rn=a__namespace.optional(a__namespace.record(a__namespace.string(),a__namespace.custom(i=>typeof i=="function"))),an=a__namespace.optional(a__namespace.object({provider:a__namespace.union([a__namespace.picklist(["whatsapp","meta","chatgpt","copilot","instagram","tiktok"]),a__namespace.number()])})),Le=a__namespace.optional(a__namespace.picklist(["default","rounded","circle","oval"]),"default"),cn=a__namespace.optional(a__namespace.object({packageName:a__namespace.optional(a__namespace.string()),authorName:a__namespace.optional(a__namespace.string()),quality:a__namespace.optional(a__namespace.number()),shape:a__namespace.optional(Le)})),ln=a__namespace.optional(a__namespace.object({enabled:a__namespace.optional(a__namespace.boolean(),false),intervalMs:a__namespace.optional(a__namespace.number(),3600*1e3),maxAgeMs:a__namespace.optional(a__namespace.number(),1440*60*1e3),scopes:a__namespace.optional(a__namespace.array(a__namespace.string()),["messages"])})),wt=a__namespace.object({session:a__namespace.optional(a__namespace.string(),"zaileys"),prefix:a__namespace.optional(a__namespace.union([a__namespace.string(),a__namespace.array(a__namespace.string())])),ignoreMe:a__namespace.optional(a__namespace.boolean(),true),showLogs:a__namespace.optional(a__namespace.boolean(),true),fancyLogs:a__namespace.optional(a__namespace.boolean(),false),syncFullHistory:a__namespace.optional(a__namespace.boolean(),true),disableFFmpeg:a__namespace.optional(a__namespace.boolean(),false),autoMarkAI:a__namespace.optional(a__namespace.boolean(),true),autoMentions:a__namespace.optional(a__namespace.boolean(),true),autoOnline:a__namespace.optional(a__namespace.boolean(),true),autoRead:a__namespace.optional(a__namespace.boolean(),true),autoPresence:a__namespace.optional(a__namespace.boolean(),true),autoRejectCall:a__namespace.optional(a__namespace.boolean(),true),showSpinner:a__namespace.optional(a__namespace.boolean(),true),maxReplies:a__namespace.optional(a__namespace.number(),3),deleteSessionOnLogout:a__namespace.optional(a__namespace.boolean(),false),pluginsDir:a__namespace.optional(a__namespace.string(),"plugins"),pluginsHmr:a__namespace.optional(a__namespace.boolean(),true),autoCleanUp:ln,limiter:on,citation:rn,fakeReply:an,sticker:cn}),pn=a__namespace.object({authType:a__namespace.literal("pairing"),phoneNumber:a__namespace.number()}),un=a__namespace.object({authType:a__namespace.literal("qr")}),bt=a__namespace.union([a__namespace.object({...pn.entries,...wt.entries}),a__namespace.object({...un.entries,...wt.entries})]),ii=a__namespace.picklist(["connection","messages","calls"]);var te=a__namespace.union([a__namespace.pipe(a__namespace.string(),a__namespace.url()),a__namespace.pipe(a__namespace.string(),a__namespace.base64()),a__namespace.custom(i=>i instanceof Buffer)]),xt=a__namespace.looseObject({text:a__namespace.string()}),dn=a__namespace.looseObject({image:te,caption:a__namespace.optional(a__namespace.string())}),mn=a__namespace.looseObject({audio:te,caption:a__namespace.optional(a__namespace.string()),ptt:a__namespace.optional(a__namespace.boolean())}),gn=a__namespace.looseObject({video:te,caption:a__namespace.optional(a__namespace.string()),ptv:a__namespace.optional(a__namespace.boolean())}),fn=a__namespace.looseObject({sticker:te,shape:a__namespace.optional(Le),caption:a__namespace.optional(a__namespace.string())}),yn=a__namespace.looseObject({document:te,caption:a__namespace.optional(a__namespace.string()),fileName:a__namespace.optional(a__namespace.string())}),hn=a__namespace.looseObject({location:a__namespace.optional(a__namespace.object({latitude:a__namespace.number(),longitude:a__namespace.number(),url:a__namespace.optional(a__namespace.pipe(a__namespace.string(),a__namespace.url())),title:a__namespace.optional(a__namespace.string()),footer:a__namespace.optional(a__namespace.string())}))}),vn=a__namespace.looseObject({contacts:a__namespace.object({title:a__namespace.optional(a__namespace.string()),contacts:a__namespace.array(a__namespace.object({fullname:a__namespace.string(),phoneNumber:a__namespace.number(),organization:a__namespace.optional(a__namespace.string())}))})}),kn=a__namespace.object({poll:a__namespace.object({name:a__namespace.string(),answers:a__namespace.array(a__namespace.string()),isMultiple:a__namespace.optional(a__namespace.boolean(),false)})}),St=a__namespace.object({replied:a__namespace.optional(a__namespace.custom(i=>typeof i=="object"&&i!==null)),isForwardedMany:a__namespace.optional(a__namespace.boolean()),isViewOnce:a__namespace.optional(a__namespace.boolean()),banner:a__namespace.optional(a__namespace.custom(i=>typeof i=="object"&&i!==null)),buttons:a__namespace.optional(kt)});a__namespace.picklist(["forward","button","edit","delete"]);var wn=a__namespace.union([xt,dn,mn,gn,fn,yn,hn,vn,kn]),Tt=a__namespace.union([a__namespace.string(),a__namespace.intersect([wn,a__namespace.omit(St,["buttons"])])]),Mt=a__namespace.intersect([xt,a__namespace.omit(St,["banner"])]);var ye=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))}))}async build(e,t){let n=h(e).buttons,o=n?.data||[],s=n?.type;if(s==="carousel"){let m=[];for(let c of o){let g={};(c.header?.image||c.header?.video)&&(g=await Lt.prepareWAMessageMedia(c.header.image?{image:{url:c.header.image}}:{video:{url:c.header.video}},{upload:t.waUploadToServer})),m.push({body:Lt.proto.Message.InteractiveMessage.Body.fromObject({text:c.body}),footer:c.footer?Lt.proto.Message.InteractiveMessage.Footer.fromObject({text:c.footer}):void 0,header:Lt.proto.Message.InteractiveMessage.Header.fromObject({title:c.header?.title||"",subtitle:c.header?.subtitle||"",hasMediaAttachment:!!(c.header?.image||c.header?.video||c.header?.hasMediaAttachment),...g}),nativeFlowMessage:Lt.proto.Message.InteractiveMessage.NativeFlowMessage.fromObject({buttons:this.toNativeInteractive(c.nativeFlow)})});}return {body:Lt.proto.Message.InteractiveMessage.Body.fromObject({text:h(e).text}),footer:n.footer?Lt.proto.Message.InteractiveMessage.Footer.fromObject({text:n.footer}):void 0,carouselMessage:Lt.proto.Message.InteractiveMessage.CarouselMessage.fromObject({cards:m})}}let r=s=="simple"?this.toNativeSimple(o):this.toNativeInteractive(o);return {body:{text:h(e).text},footer:n.footer?{text:n.footer}:void 0,nativeFlowMessage:{buttons:r}}}async send(e,t,n){let o=u.get("socket"),s=o?.authState?.creds?.me?.id||o?.user?.id,r=await this.build(t,o),m=h(t).buttons?.type==="carousel",c=Lt.generateWAMessageFromContent(e,m?{viewOnceMessage:{message:{messageContextInfo:{deviceListMetadata:{},deviceListMetadataVersion:2},interactiveMessage:r}}}:{interactiveMessage:r},{userJid:s,messageId:Lt.generateMessageIDV2(s),...n});return await o.relayMessage(e,c.message,{messageId:c.key.id,...n,additionalNodes:[{tag:"biz",attrs:{},content:[{tag:"interactive",attrs:{type:"native_flow",v:"1"},content:[{tag:"native_flow",attrs:{v:"9",name:"mixed"}}]}]}]}),o.config?.emitOwnEvents&&!Lt.isJidGroup(e)&&process.nextTick(()=>o.upsertMessage?.(c,"append")),c}};var he=class{constructor(e){this.client=e;}async signal(e,t,n,o){n!="delete"&&(n=="button"?t=Y(Mt,t):t=Y(Tt,t));let s=u.get("socket");if(!s)throw new Error("[Zaileys] Socket is not initialized or has been lost from centerStore. Please ensure Client is properly initialized.");let r={},m={},c=typeof t=="string",g=(k,T)=>typeof k=="object"&&k!==null&&T in k,w=this.client.options?.fakeReply?.provider,R=this.client.options?.autoMentions,D=this.client.options?.autoPresence,j=g(t,"replied"),A=g(t,"banner"),I=g(t,"isViewOnce"),L=n=="button",J=g(t,"image"),H=g(t,"video"),F=g(t,"audio"),K=g(t,"sticker"),V=g(t,"document"),Te=g(t,"location"),se=g(t,"contacts"),S=g(t,"poll"),W=J||H||F||K||V,$=c?t:ot([t],["text","caption"]);if(D&&(F?await s.sendPresenceUpdate("recording",e):await s.sendPresenceUpdate("composing",e)),R&&(r={...r,mentions:We($),contextInfo:{mentionedJid:We($)}}),j&&(m.quoted=h(t).replied,w&&(m.quoted.key.remoteJid=je[w],m.quoted.key.participant=je[w])),A&&(r={...r,contextInfo:{externalAdReply:h(t).banner}},r.contextInfo.externalAdReply.mediaType=1),I&&(r={...r,viewOnce:h(t)?.isViewOnce}),$&&(r={...r,text:$,caption:$},W&&delete h(r).text),W){if(J){let k=h(t).image;r={...r,image:await new mediaProcess.Media(k).image.toJpeg(),jpegThumbnail:await new mediaProcess.Media(k).thumbnail.get()};}if(H){let k=h(t)?.ptv,T=h(t).video;r={...r,video:await new mediaProcess.Media(T).video.toMp4(),ptv:k,jpegThumbnail:await new mediaProcess.Media(T).thumbnail.get()};}if(F){let k=h(t)?.ptt,T=h(t).audio;r={...r,audio:await new mediaProcess.Media(T).audio.toOpus(),ptt:k,mimetype:k?"audio/ogg; codecs=opus":"audio/mpeg"};}if(K){let k=h(t)?.shape,T=h(t).sticker,P=k==="rounded"?"default":k,Q={...this.client.options?.sticker,shape:P};r={...r,sticker:await new mediaProcess.Media(T).sticker.create(Q)};}if(V){let k=h(t).document,T=await new mediaProcess.Media(k).document.create(),P=h(t).fileName||`Document_${T.fileName.slice(-6)}`,Q=P.includes(".")?P.substring(0,P.lastIndexOf(".")):P;r={...r,...T,fileName:`${Q}.${T.ext} - Zaileys`};}}if(Te){let k=h(t).location;r={...r,location:{degreesLatitude:k.latitude,degreesLongitude:k.longitude,url:k.url,address:k.footer,name:k.title}};}if(se){let k=h(t)?.contacts,T=k?.contacts.map(P=>{let Q=["BEGIN:VCARD","VERSION:3.0",`FN:${P.fullname}`,`ORG:${P.organization||""}`,`TEL;type=CELL;type=VOICE;waid=${P.phoneNumber}:${P.phoneNumber}`,"END:VCARD"].join(` `);return {displayName:P.fullname,vcard:Q}});r={...r,contacts:{displayName:k?.title,contacts:T}};}if(S){let k=h(t)?.poll;r={...r,poll:{name:k.name,values:k.answers,selectableCount:k.isMultiple?1:0,toAnnouncementGroup:true}};}return n=="forward"&&(r={...r,contextInfo:{...h(r).contextInfo,isForwarded:true,forwardingScore:h(t).isForwardedMany?9999:1}}),n=="edit"&&(r={...r,edit:o?.key},await s.sendPresenceUpdate("paused",e)),n=="delete"&&(r={...r,delete:o?.key},await s.sendPresenceUpdate("paused",e)),L?await new ye().send(e,t,m):await s.sendMessage(e,h(r),m)}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 Array.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=u.get("socket");if(!n)throw new Error("[Zaileys] Socket is not initialized or has been lost from centerStore. Please ensure Client is properly initialized.");let o={typing:"composing",recording:"recording",online:"available",offline:"unavailable",paused:"paused"};return await n.sendPresenceUpdate(o[t],e)}async reaction(e,t){let n=u.get("socket");if(!n)throw new Error("[Zaileys] Socket is not initialized or has been lost from centerStore. Please ensure Client is properly initialized.");return await n.sendMessage(e.key.remoteJid,{react:{text:t,key:e?.key}})}async memberLabel(e,t){let n=u.get("socket");if(!n)throw new Error("[Zaileys] Socket is not initialized or has been lost from centerStore. Please ensure Client is properly initialized.");return await n.relayMessage(e,{protocolMessage:{type:30,memberLabel:{label:t,labelTimestamp:Date.now()}}},{})}};var Fe=class{constructor(e){this.client=e;}async create(e,t){return await u.get("socket").communityCreate(e,t)}async createGroup(e,t,n){return await u.get("socket").communityCreateGroup(e,t,n)}async leave(e){return await u.get("socket").communityLeave(e)}async metadata(e){return await u.get("socket").communityMetadata(e)}async update(e,t,n){let o=u.get("socket");switch(t){case "subject":return await o.communityUpdateSubject(e,n);case "description":return await o.communityUpdateDescription(e,n)}}async group(e,t,n){let o=u.get("socket");switch(t){case "link":if(!n)throw "Group JID is required for linking";return await o.communityLinkGroup(e,n);case "unlink":if(!n)throw "Group JID is required for unlinking";return await o.communityUnlinkGroup(e,n);case "linked":return await o.communityFetchLinkedGroups(e)}}async participants(e,t,n,o){let s=u.get("socket");switch(t){case "list":return await s.communityRequestParticipantsList(e);case "request-update":return await s.communityRequestParticipantsUpdate(e,o,h(n));case "update":if(!n||!o)throw "Action and participants are required for update";return await s.communityParticipantsUpdate(e,o,h(n));case "all":return await s.communityFetchAllParticipating()}}async invite(e,t,...n){let o=u.get("socket");switch(t){case "code":return await o.communityInviteCode(e);case "revoke":return await o.communityRevokeInvite(e);case "accept":return await o.communityAcceptInvite(e);case "info":return await o.communityGetInviteInfo(e);case "revokeV4":return await o.communityRevokeInviteV4(e,n[0]);case "acceptV4":return await o.communityAcceptInviteV4(e,n[0])}}async settings(e,t,n){let o=u.get("socket");switch(t){case "ephemeral":return await o.communityToggleEphemeral(e,n);case "update":return await o.communitySettingUpdate(e,n);case "memberAdd":return await o.communityMemberAddMode(e,n);case "approval":return await o.communityJoinApprovalMode(e,n)}}},ve=class{constructor(e){this.mlient=e;this.community=new Fe(e);}community};var $e=class{constructor(e){this.client=e;}async create(e,t){return await u.get("socket").groupCreate(e,t)}async participant(e,t,n){return await u.get("socket").groupParticipantsUpdate(e,t,n)}async profile(e,t,n){let o=u.get("socket"),s=Buffer.isBuffer(t);switch(n){case "subject":if(!s)return await o.groupUpdateSubject(e,t);case "description":if(!s)return await o.groupUpdateDescription(e,t);case "picture":return await o.updateProfilePicture(e,await new mediaProcess.Media(t).toBuffer())}}async setting(e,t){let n=u.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 u.get("socket").groupLeave(e)}async inviteCode(e,t){let n=u.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=u.get("socket"),n=O.get(e);if(n)return n;let o=await t.groupMetadata(e);return o&&O.set(e,o),o}async requestJoin(e,t,n){let o=u.get("socket");switch(n){case "approve":return await o.groupRequestParticipantsUpdate(e,t,n);case "reject":return await o.groupRequestParticipantsUpdate(e,t,n)}}async requestJoinList(e){return await u.get("socket").groupRequestParticipantsList(e)}async fetchAllGroups(){return await u.get("socket").groupFetchAllParticipating()}async ephemeral(e,t){let n=u.get("socket"),o={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await n.groupToggleEphemeral(e,o[t])}},ke=class{constructor(e){this.glient=e;this.group=new $e(e);}group};var Ue=class{constructor(e){this.client=e;}async create(e,t){return await u.get("socket").newsletterCreate(e,t)}async action(e,t){let n=u.get("socket");switch(t){case "follow":return await n.newsletterFollow(e);case "unfollow":return await n.newsletterUnfollow(e);case "mute":return await n.newsletterMute(e);case "unmute":return await n.newsletterUnmute(e);}}async update(e,t,n){let o=u.get("socket"),s=Buffer.isBuffer(t);switch(n){case "name":if(!s)return await o.newsletterUpdateName(e,t);case "description":if(!s)return await o.newsletterUpdateDescription(e,t);case "picture":return await o.newsletterUpdatePicture(e,await new mediaProcess.Media(t).toBuffer())}}async metadata(e,t){return await u.get("socket").newsletterMetadata(t,e)}async subscribers(e){return await u.get("socket").newsletterSubscribers(e)}async reaction(e,t,n){return await u.get("socket").newsletterReactMessage(e,t,n)}async fetchMessages(e,t,n,o){let s=u.get("socket"),r=n.getTime()/1e3,m=o.getTime()/1e3;return await s.newsletterFetchMessages(e,t,r,m)}async adminCount(e){return await u.get("socket").newsletterAdminCount(e)}async changeOwner(e,t){return await u.get("socket").newsletterChangeOwner(e,t)}async demote(e,t){return await u.get("socket").newsletterDemote(e,t)}async delete(e){return await u.get("socket").newsletterDelete(e)}async removePicture(e){return await u.get("socket").newsletterRemovePicture(e)}},we=class{constructor(e){this.nlient=e;this.newsletter=new Ue(e);}newsletter};var Be=class{constructor(e){this.client=e;}async block(e){return await u.get("socket").updateBlockStatus(e,"block")}async unblock(e){return await u.get("socket").updateBlockStatus(e,"unblock")}async lastSeen(e){return await u.get("socket").updateLastSeenPrivacy(e)}async online(e){return await u.get("socket").updateOnlinePrivacy(e)}async picture(e){return await u.get("socket").updateProfilePicturePrivacy(e)}async status(e){return await u.get("socket").updateStatusPrivacy(e)}async readReceipt(e){return await u.get("socket").updateReadReceiptsPrivacy(e)}async groupsAdd(e){return await u.get("socket").updateGroupsAddPrivacy(e)}async ephemeral(e){let t=u.get("socket"),n={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await t.updateDefaultDisappearingMode(n[e])}async blocklist(){return await u.get("socket").fetchBlocklist()}async getSettings(){return await u.get("socket").fetchPrivacySettings(true)}},be=class{constructor(e){this.plient=e;this.privacy=new Be(e);}privacy};var Vi=a__namespace.object({status:a__namespace.picklist(["connecting","open","close","reload","syncing"]),authType:a__namespace.picklist(["pairing","qr"]),authTimeout:a__namespace.optional(a__namespace.number()),syncProgress:a__namespace.optional(a__namespace.number()),syncCompleted:a__namespace.optional(a__namespace.boolean(),false),qr:a__namespace.optional(a__namespace.string()),code:a__namespace.optional(a__namespace.string())});var An=a__namespace