zaileys 1.1.40-tx.8 → 1.1.40-tx.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.MD +713 -0
- package/dist/index.d.mts +413 -17
- package/dist/index.d.ts +413 -17
- package/dist/index.js +24 -5
- package/dist/index.mjs +24 -5
- package/package.json +15 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
|
-
'use strict';var xe=require('baileys'),Pe=require('fs/promises'),asyncMutex=require('async-mutex'),path=require('path'),nanospinner=require('nanospinner'),I=require('node-cache'),events=require('events'),he=require('pino'),be=require('zod'),Ae=require('figlet'),Q=require('gradient-string'),Ee=require('qrcode-terminal'),f=require('lodash');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var xe__default=/*#__PURE__*/_interopDefault(xe);var Pe__default=/*#__PURE__*/_interopDefault(Pe);var I__default=/*#__PURE__*/_interopDefault(I);var he__default=/*#__PURE__*/_interopDefault(he);var be__default=/*#__PURE__*/_interopDefault(be);var Ae__default=/*#__PURE__*/_interopDefault(Ae);var Q__default=/*#__PURE__*/_interopDefault(Q);var Ee__default=/*#__PURE__*/_interopDefault(Ee);var f__default=/*#__PURE__*/_interopDefault(f);var z=class n{static inst;fLocks=new Map;kLocks=new Map;maxSize=100;static get(){return this.inst||(this.inst=new n)}getFile(e){let t=this.fLocks.get(e);if(!t){if(this.fLocks.size>=this.maxSize){let i=this.fLocks.keys().next().value;this.fLocks.delete(i);}t=new asyncMutex.Mutex,this.fLocks.set(e,t);}return t}getKey(e){let t=this.kLocks.get(e);if(!t){if(this.kLocks.size>=this.maxSize){let i=this.kLocks.keys().next().value;this.kLocks.delete(i);}t=new asyncMutex.Mutex,this.kLocks.set(e,t);}return t}},E=class{data;path;pool;size;chunkDir;replacer;reviver;loaded=false;flushMode;debounceMs;flushTimer=null;dirty=false;constructor(e,t,i=2*1024*1024,s="debounce",o=200){this.data=new Map,this.path=e,this.pool=z.get(),this.size=i,this.chunkDir=`${e}.c`,this.replacer=t?.replacer||null,this.reviver=t?.reviver||null,this.flushMode=s,this.debounceMs=o;}async ensureLoaded(){this.loaded||(await this.read(),this.loaded=true);}scheduleFlush(){if(this.flushMode!=="manual"){if(this.flushMode==="sync"){this.write();return}this.dirty=true,!this.flushTimer&&(this.flushTimer=setTimeout(()=>{this.flushTimer=null,this.dirty&&(this.dirty=false,this.write());},this.debounceMs));}}async read(){return this.pool.getFile(this.path).runExclusive(async()=>{try{let t=await Pe.readFile(this.path,"utf-8"),i=JSON.parse(t,this.reviver);this.data.clear();let s=[];for(let[o,a]of Object.entries(i))this.isMeta(a)?s.push(this.loadChunk(o,a)):this.data.set(o,a);return await Promise.all(s),this.loaded=!0,this.data}catch{return await Pe.mkdir(path.dirname(this.path),{recursive:true}),this.data.clear(),this.loaded=true,this.data}})}async write(){return this.pool.getFile(this.path).runExclusive(async()=>{let t={},i=[];for(let[o,a]of this.data){if(this.isMeta(a)){t[o]=a;continue}JSON.stringify(a,this.replacer).length>this.size?i.push(this.saveChunk(o,a).then(u=>{t[o]=u;})):t[o]=a;}await Promise.all(i);let s=JSON.stringify(t,this.replacer,2);await Pe.writeFile(this.path,s,"utf-8");})}async set(e,t){await this.ensureLoaded(),await this.pool.getKey(e).runExclusive(async()=>{this.data.set(e,t),this.scheduleFlush();});}async push(e,t){await this.ensureLoaded(),await this.pool.getKey(e).runExclusive(async()=>{let s=this.data.get(e),o;Array.isArray(s)?o=s:s===void 0?o=[]:o=[s],o.push(t),this.data.set(e,o),this.scheduleFlush();});}async get(e){return await this.ensureLoaded(),this.data.get(e)}async delete(e){return await this.ensureLoaded(),this.pool.getKey(e).runExclusive(async()=>{let i=this.data.get(e);this.isMeta(i)&&await this.delChunk(e,i);let s=this.data.delete(e);return this.scheduleFlush(),s})}async saveChunk(e,t){let i=JSON.stringify(t,this.replacer),s=Buffer.from(i,"utf-8"),o=Math.ceil(s.length/this.size);await Pe.mkdir(this.chunkDir,{recursive:true});let a={v:1,k:e,t:o,s:this.size,c:s.length,m:Date.now().toString(36)},c=[];for(let u=0;u<o;u++){let l=u*this.size,m=Math.min(l+this.size,s.length),g=s.subarray(l,m);c.push(Pe.writeFile(path.join(this.chunkDir,`${e}.${u}.json`),JSON.stringify({i:u,d:g.toString("base64")})));}return c.push(Pe.writeFile(path.join(this.chunkDir,`${e}.manifest.json`),JSON.stringify(a))),await Promise.all(c),{t:o,s:this.size,k:e}}async loadChunk(e,t){let i=path.join(this.chunkDir,`${e}.manifest.json`),s=JSON.parse(await Pe.readFile(i,"utf-8")),o=[];for(let l=0;l<s.t;l++)o.push(Pe.readFile(path.join(this.chunkDir,`${e}.${l}.json`),"utf-8").then(m=>Buffer.from(JSON.parse(m).d,"base64")));let a=await Promise.all(o),c=Buffer.concat(a),u=JSON.parse(c.toString("utf-8"),this.reviver);this.data.set(e,u);}async delChunk(e,t){let i=[];for(let s=0;s<t.t;s++)i.push(Pe.unlink(path.join(this.chunkDir,`${e}.${s}.json`)).catch(()=>{}));i.push(Pe.unlink(path.join(this.chunkDir,`${e}.manifest.json`)).catch(()=>{})),await Promise.all(i);try{(await Pe.readdir(this.chunkDir)).length===0&&await Pe.rmdir(this.chunkDir);}catch{}}isMeta(e){return e?.t&&e?.s&&e?.k}},y=(n,e)=>new E(n,e?.BufferJSON,e?.size,e?.flushMode,e?.debounceMs);var L=class{data=new Map;set(e,t){this.data.set(e,{...this.data.get(e),...t});}get(e){return this.data.get(e)||{}}update(e,t){let i=this.get(e);this.set(e,t(i));}delete(e){this.data.delete(e);}has(e){return this.data.has(e)}dbCache=new Map;lowdb(e,t){let i=`.session/${e}/${t}`;if(this.dbCache.has(i))return this.dbCache.get(i);let s=y(i);return this.dbCache.set(i,s),s}spinner=nanospinner.createSpinner("",{color:"green"});logger=he__default.default({level:"silent",enabled:false});events=new events.EventEmitter;groupCache=new I__default.default({stdTTL:300,useClones:false})},r=new L;var B=async n=>{r.spinner.start(" Initializing auth state...");let e=await Pe.stat(n).catch(()=>{});if(e){if(!e.isDirectory())throw r.spinner.error(` Failed to open credentials
|
|
2
|
-
`),`found something that is not a directory at ${
|
|
3
|
-
by ${
|
|
4
|
-
`,
|
|
5
|
-
`),await s()),g&&await i();}if(a==="open")if(e.user?.id){let l=xe.jidNormalizedUser(e.user.id).split("@")[0],m=e.user.name||e.user.verifiedName;r.spinner.success(` Connected as ${Q.cristal(m||l)}`);}else r.spinner.success(" Connected!");r.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:o})=>{t.status="syncing",t.syncProgress=o,r.spinner.start(" Syncing messages history..."),o&&r.spinner.update(` Syncing messages history ${o+"%"}`),o==100&&(r.spinner.success(" Syncing messages history completed!"),t.syncCompleted=true),r.set("connection",t),r.events.emit("connection",t);});}};var te={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",declinePaymentRequestMessage:"declinePaymentRequest",cancelPaymentRequestMessage:"cancelPaymentRequest",templateMessage:"template",stickerMessage:"sticker",groupInviteMessage:"groupInvite",templateButtonReplyMessage:"buttons",productMessage:"product",deviceSentMessage:"deviceSent",listMessage:"list",viewOnceMessage:"viewOnce",orderMessage:"order",listResponseMessage:"list",ephemeralMessage:"ephemeral",invoiceMessage:"invoice",buttonsMessage:"buttons",buttonsResponseMessage:"buttons",paymentInviteMessage:"paymentInvite",interactiveMessage:"interactive",reactionMessage:"reaction",stickerSyncRmrMessage:"sticker",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"};var O=n=>{let e;Array.isArray(n)?e=n.join("|"):typeof n=="string"?e=n:e=String(n);let t=2166136261,i=e.length;for(let s=0;s<i;s++)t^=e.charCodeAt(s),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return "Z4CD"+(t>>>0).toString(16).padStart(8,"0").toUpperCase()},ie=(n="")=>{if(!n)return [];let e=new Set;for(let t of n.matchAll(/@(\d+)/g))e.add(t[1]);return f__default.default.toArray(e)};var ne=n=>f__default.default.omit(n,["url","contextInfo","fileSha256","fileEncSha256","mediaKey","directPath","waveform","thumbnail","jpegThumbnail","thumbnailEncSha256","thumbnailSha256","thumbnailDirectPath","firstFrameSidecar","streamingSidecar","scansSidecar","callKey","message","key","midQualityFileSha256"]),oe=n=>{if(!n)return {leaf:void 0,chain:[]};let e=xe.extractMessageContent(n)||n,t=[];for(;e&&typeof e=="object";){let i=xe.getContentType(e);if(!i)break;t.push(i);let s=e[i];if(!s||typeof s!="object"){e=s;break}e=s;}return {leaf:e,chain:t}};var C=class{constructor(e){this.client=e;r.get("connection")?.status!="syncing"&&this.initialize();}async initialize(){r.get("socket").ev.on("messages.upsert",async({messages:t,type:i})=>{if(i==="notify")for(let s of t){let o=await this.parse(s);o&&(await this.client.middleware.run({messages:o}),r.events.emit("messages",o));}});}async parse(e){if(console.log(JSON.stringify(e,null,2)),e?.category==="peer"||!e.message||!e?.key?.id||e?.messageStubType||e?.messageStubParameters||e?.message?.botInvokeMessage||e.message?.protocolMessage?.peerDataOperationRequestResponseMessage)return;let t=e,i=r.get("socket"),s={},o=oe(e.message),a=o.chain.at(-1),c=o.leaf;s.uniqueId=null,s.channelId=null,s.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,s.chatAddress=e?.key?.addressingMode,s.chatType=te[a],s.receiverId=xe.jidNormalizedUser(i?.user?.id||""),s.receiverName=v(i?.user?.name||i?.user?.verifiedName),s.roomId=xe.jidNormalizedUser(e?.key?.remoteJid);let u=await this.client.db("chats").get(s.roomId),l=await this.client.db("contacts").get(s.roomId),m=k(u,["name","verifiedName"]),g=k(l,["notify","name"]);return s.roomName=m||g||null,s.senderLid=k([e?.key],["remoteJidAlt","participant"]),s.senderId=xe.jidNormalizedUser(e?.participant||e?.key?.participant||e?.key?.remoteJid),s.senderName=v(e?.pushName||e?.verifiedBizName),s.senderDevice=xe.getDevice(s.chatId),s.channelId=O([s.roomId,s.senderId]),s.uniqueId=O([s.channelId,s.chatId]),s.timestamp=Number(e?.messageTimestamp),s.text=c?.text||c?.caption||c?.name||c?.displayName||c?.conversation||c?.contentText||c?.selectedDisplayText||c||null,s.text=v(s.text),s.mentions=ie(s.text),s.links=ee(s.text||""),s.isFromMe=e?.key?.fromMe||false,s.isTagMe=s.mentions?.includes(s.receiverId.split("@")[0]),s.isPrefix=s.text?.startsWith(this.client.options?.prefix),s.isSpam=false,s.isGroup=s.roomId?.includes("@g.us"),s.isNewsletter=s.roomId?.includes("@newsletter"),s.isStory=s.roomId?.includes("@broadcast"),s.isViewOnce=false,s.isEdited=false,s.isDeleted=false,s.isPinned=false,s.isUnPinned=false,s.isBroadcast=!!e?.broadcast,s.isEphemeral=!!F(D(e.message),"ephemeralSettingTimestamp"),s.isForwarded=!!F(D(e.message),"forwardingScore"),s.citation={},s.chatType!=="text"&&(s.media={...ne(c),buffer:()=>xe.downloadMediaMessage(e,"buffer",{}),stream:()=>xe.downloadMediaMessage(e,"stream",{})}),s.message=()=>t,s.replied=null,s}};var S=class{constructor(e){this.client=e;new b(e),new C(e),new w(e),this.initialize();}async initialize(){let e=r.get("socket");e.ev.on("groups.update",async([t])=>{let i=await e.groupMetadata(t.id);r.groupCache.set(t.id,i);}),e.ev.on("group-participants.update",async t=>{let i=await e.groupMetadata(t.id);r.groupCache.set(t.id,i);}),e?.ev.on("messaging-history.set",async t=>{let{chats:i,contacts:s,messages:o}=t;for(let a of i)await this.client.db("chats").push(a.id,a);for(let a of s)await this.client.db("contacts").push(a.id,a);for(let a of o){if(!a.message||a?.category==="peer"||a.message?.protocolMessage)return;await this.client.db("messages").push(a.key.remoteJid,a);}}),e?.ev.on("messages.upsert",async({messages:t})=>{for(let i of t){if(!i.message||i?.category==="peer"||i.message?.protocolMessage)return;await this.client.db("messages").push(i.key.remoteJid,i);}}),e?.ev.on("chats.upsert",async t=>{for(let i of t)await this.client.db("chats").push(i.id,i);}),e?.ev.on("contacts.upsert",async t=>{for(let i of t)await this.client.db("contacts").push(i.id,i);}),e?.ev.on("messages.update",async t=>{console.log("\u{1F50D} ~ initialize ~ src/Listener/index.ts:72 ~ events:",t);for(let{key:i,update:s}of t){if(!s.pollUpdates)continue;let o=await this.client.db("messages").get(i.remoteJid);if(!o)continue;let a=xe.getAggregateVotesInPollMessage({message:o,pollUpdates:s.pollUpdates});console.log("poll aggregation:",a);}});}};var T=class{stack=[];use(e){return this.stack.push(e),this}async run(e){let t=-1,i=async s=>{if(s<=t)throw "next() called multiple times";t=s;let o=this.stack[s];if(o)try{await o(e,()=>i(s+1));}catch(a){throw console.error("Middleware error:",a),a}};await i(0);}};var ae=class{constructor(e){this.options=e;this.options=_(G,e),this.initialize();}middleware=new T;async initialize(){await Y(),await U(this),new S(this);}db(e){return r.lowdb(this.options.session,`stores/${e}.json`)}on(e,t){r.events.on(e,t);}use(e){return this.middleware.use(e),this}};exports.Client=ae;exports.Lowdb=E;exports.createLowdb=y;exports.extractUrls=ee;exports.findGlobalWord=F;exports.getLatestLibVersion=V;exports.ignoreLint=X;exports.normalizeText=v;exports.pickKeysFromArray=k;exports.randomize=ts;exports.registerAuthCreds=U;exports.removeAuthCreds=H;exports.shuffleString=es;exports.toJson=Ie;exports.toString=D;exports.useAuthState=B;
|
|
1
|
+
'use strict';var Kt=require('baileys'),Ee=require('fs/promises'),asyncMutex=require('async-mutex'),Re=require('path'),nanospinner=require('nanospinner'),De=require('node-cache'),events=require('events'),St=require('pino'),Ke=require('gradient-string'),v=require('lodash'),fileType=require('file-type'),G=require('fluent-ffmpeg'),Nt=require('node-webpmux'),os$1=require('os'),Pe=require('sharp'),Ht=require('figlet'),Qt=require('qrcode-terminal'),rateLimiterFlexible=require('rate-limiter-flexible'),u=require('zod'),ve=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 Kt__default=/*#__PURE__*/_interopDefault(Kt);var Ee__default=/*#__PURE__*/_interopDefault(Ee);var Re__namespace=/*#__PURE__*/_interopNamespace(Re);var De__default=/*#__PURE__*/_interopDefault(De);var St__default=/*#__PURE__*/_interopDefault(St);var Ke__default=/*#__PURE__*/_interopDefault(Ke);var v__default=/*#__PURE__*/_interopDefault(v);var G__default=/*#__PURE__*/_interopDefault(G);var Nt__default=/*#__PURE__*/_interopDefault(Nt);var Pe__default=/*#__PURE__*/_interopDefault(Pe);var Ht__default=/*#__PURE__*/_interopDefault(Ht);var Qt__default=/*#__PURE__*/_interopDefault(Qt);var u__default=/*#__PURE__*/_interopDefault(u);var ve__namespace=/*#__PURE__*/_interopNamespace(ve);var Je=(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 Ce=class{data=new Map;cache=new Map;set(e,t){this.data.set(e,{...this.data.get(e),...t});}get(e){return this.data.get(e)||{}}update(e,t){let i=this.get(e);this.set(e,t(i));}delete(e){this.data.delete(e);}has(e){return this.data.has(e)}lowdb(e,t){let i=`.session/${e}/${t}`;if(this.cache.has(i))return this.cache.get(i);let n=J(i);return this.cache.set(i,n),n}spinner=nanospinner.createSpinner("",{color:"green"});logger=St__default.default({level:"silent",enabled:false});events=new events.EventEmitter;groupCache=new De__default.default({stdTTL:300,useClones:false});collectors=new Map},a=new Ce;var y=o=>o,qe=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(o){throw o}},Ve=async o=>{try{let e=`.session/${o}/creds.json`;await Ee__default.default.unlink(e);}catch(e){throw a.spinner.error(`Failed to remove auth creds for session "${o}"!`),e}},P=(o="")=>o?.length?o.normalize("NFKD").replace(/[\u0000-\u001F\u007F-\u009F\u200B-\u200F\u2028-\u202F\u2060-\u206F\uFEFF\uFFF9-\uFFFB]/gu,"").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u20D0-\u20FF\uFE20-\uFE2F]/gu,"").replace(/[\u202A-\u202E\u2066-\u2069]/gu,"").replace(/\u202E([\s\S]*?)\u202C?/gu,(t,i)=>[...i].reverse().join("")):null;var k=(o,e="lime")=>Array.isArray(e)?Ke__default.default(e)(o):Ke__default.default([e,e])(o),Ie=o=>{try{return JSON.parse(o)}catch{return v__default.default.attempt(()=>JSON.parse(JSON.stringify(o)||"{}"))}},ee=o=>{try{return JSON.stringify(o)}catch{let e=v__default.default.attempt(()=>JSON.stringify(Ie(o)||"{}"));return v__default.default.isError(e)?"{}":e}},qs=(o="")=>v__default.default.shuffle(o).join(""),te=(o="",e="")=>o?v__default.default.includes(o.toLowerCase(),e.toLowerCase()):null,Ge=(o="")=>o?v__default.default.castArray(o.match(Kt.URL_REGEX)||[]):[],Vs=o=>o[Math.floor(Math.random()*o.length)],C=(o,e)=>{for(let t of o||[])if(t&&typeof t=="object"){for(let i of e)if(i in t&&t[i]!==void 0&&t[i]!==null)return t[i]}},He=(o,e)=>{let t=v__default.default.castArray(e),i=(r,c)=>v__default.default.every(c,(l,p)=>r?.[p]===l),n=(r,c)=>v__default.default.some(c,(l,p)=>r?.[p]===l),s=r=>v__default.default.isArray(r)?v__default.default.find(r,s)??r:v__default.default.isObject(r)?v__default.default.find(t,p=>i(r,p))||v__default.default.find(t,p=>n(r,p))?r:v__default.default.find(v__default.default.values(r),s)??r:null;return s(o)},Ks=(o,e,t)=>new Proxy(o,{apply(i,n,s){e?.(s);let r=Reflect.apply(i,n,s);return t?t(r,s):r}});var B=o=>{let e;Array.isArray(o)?e=o.join("|"):typeof o=="string"?e=o:e=String(o);let t=2166136261,i=e.length;for(let n=0;n<i;n++)t^=e.charCodeAt(n),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return "Z4D3FC"+(t>>>0).toString(16).padStart(8,"0").toUpperCase()},Ze=(o="")=>{if(!o)return [];let e=new Set;for(let t of o.matchAll(/@(\d+)/g))e.add(t[1]);return v__default.default.toArray(e)},Ae=(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 v__default.default.flatMap([...e],t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},V=o=>v__default.default.isEmpty(o)?[]:v__default.default.map([...o],e=>`${e}@s.whatsapp.net`),Qe=o=>v__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"]),K=o=>{if(!o)return {leaf:void 0,chain:[]};let e=Kt.extractMessageContent(o)||o,t=[];for(;e&&typeof e=="object";){let i=Kt.getContentType(e);if(!i)break;t.push(i);let n=e[i];if(!n||typeof n!="object"){e=n;break}e=n;}return {leaf:e,chain:t}},R=o=>Number(o?.split("@")[0]);var Ft=Je("@ffmpeg-installer/ffmpeg").path,Ot=Je("@ffprobe-installer/ffprobe").path;G__default.default.setFfmpegPath(Ft);G__default.default.setFfprobePath(Ot);var g={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"}},M=class{static generateUniqueId(){return `${Date.now()}_${Math.random().toString(36).slice(2,11)}`}static createTempPath(e,t){return Re__namespace.default.join(os$1.tmpdir(),`${e}_${this.generateUniqueId()}.${t}`)}static async cleanup(e){await Promise.allSettled(e.map(t=>Ee__default.default.unlink(t)));}static async safeReadFile(e){try{return await Ee__default.default.readFile(e)}catch{throw new Error(`Failed to read file: ${e}`)}}static async safeWriteFile(e,t){try{await Ee__default.default.writeFile(e,t);}catch{throw new Error(`Failed to write file: ${e}`)}}},I=class{static async toBuffer(e){if(v.isBuffer(e))return e;if(v.isArrayBuffer(e))return Buffer.from(e);if(v.isString(e))return this.fromString(e);throw new Error("Invalid input type: expected string, Buffer, or ArrayBuffer")}static async fromString(e){return e.startsWith("http://")||e.startsWith("https://")?this.fromUrl(e):Buffer.from(e,"base64")}static async fromUrl(e){try{let t=await fetch(e);if(!t.ok)throw new Error(`HTTP ${t.status}: ${t.statusText}`);let i=await t.arrayBuffer();return Buffer.from(i)}catch(t){throw new Error(`Failed to fetch URL: ${t.message}`)}}},F=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(g.MIME.IMAGE)||e.startsWith(g.MIME.VIDEO)}static isAnimated(e){return e===g.MIME.GIF||e.startsWith(g.MIME.VIDEO)}},H=class{static async process(e){return new Promise((t,i)=>{let n=G__default.default(e.input).output(e.output);for(let s=0;s<e.options.length;s++){let r=e.options[s];r.startsWith("-")&&s+1<e.options.length&&!e.options[s+1].startsWith("-")?(n.outputOptions(r,e.options[s+1]),s++):n.outputOptions(r);}n.on("end",async()=>{try{await e.onEnd(),t();}catch(s){i(s);}}).on("error",async s=>{try{await e.onError(s);}finally{i(s);}}).run();})}static async getDuration(e){return new Promise((t,i)=>{G__default.default.ffprobe(e,(n,s)=>{if(n)return i(n);t(s.format.duration||0);});})}},se=class{static async getWaAudio(e,t="opus"){let i=await I.toBuffer(e),n=await fileType.fileTypeFromBuffer(i);F.validate(n,g.MIME.AUDIO);let s=M.createTempPath("audio_in","wav"),r=t==="opus"?"ogg":"mp3",c=M.createTempPath("audio_out",r);await M.safeWriteFile(s,i);let l;try{let p=t==="opus"?["-vn","-c:a","libopus","-b:a","48k","-ac","1","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","opus"]:["-vn","-c:a","libmp3lame","-b:a","128k","-ac","2","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","mp3"];return await H.process({input:s,output:c,options:p,onEnd:async()=>{l=await M.safeReadFile(c);},onError:async()=>{await M.cleanup([s,c]);}}),await M.cleanup([s,c]),l}catch(p){throw await M.cleanup([s,c]),new Error(`${t.toUpperCase()} conversion failed: ${p.message}`)}}},L=class{static async getThumbnail(e){let t=await I.toBuffer(e),i=await fileType.fileTypeFromBuffer(t);F.validate(i,g.MIME.VIDEO);let n=M.createTempPath("video","mp4"),s=M.createTempPath("thumb","jpg");await M.safeWriteFile(n,t);let r;try{return await new Promise((c,l)=>{G__default.default(n).screenshots({timestamps:[g.THUMBNAIL.TIMESTAMP],filename:Re__namespace.default.basename(s),folder:Re__namespace.default.dirname(s),size:`${g.THUMBNAIL.SIZE}x${g.THUMBNAIL.SIZE}`,quality:g.THUMBNAIL.QUALITY}).on("end",async()=>{try{r=(await M.safeReadFile(s)).toString("base64"),c();}catch(p){l(p);}}).on("error",l);}),await M.cleanup([n,s]),r}catch(c){throw await M.cleanup([n,s]),new Error(`Thumbnail generation failed: ${c.message}`)}}static async getDuration(e){return H.getDuration(e)}},ie=class{static async getThumbnail(e){return (await((await fileType.fileTypeFromBuffer(e)).mime===g.MIME.GIF?Pe__default.default(e,{animated:false}):Pe__default.default(e)).resize(g.THUMBNAIL.SIZE,g.THUMBNAIL.SIZE,{fit:"cover"}).jpeg({quality:g.THUMBNAIL.QUALITY}).toBuffer()).toString("base64")}static async resizeForSticker(e,t){return Pe__default.default(e).resize(g.STICKER.SIZE,g.STICKER.SIZE,{fit:"cover",background:{r:0,g:0,b:0,alpha:0}}).webp({quality:t}).toBuffer()}},Z=class{static async getThumbnail(e){let t=await I.toBuffer(e),i=await fileType.fileTypeFromBuffer(t);if(!i||!F.isMedia(i.mime))throw new Error("Invalid media type: expected image or video");return i.mime.startsWith(g.MIME.VIDEO)?L.getThumbnail(e):ie.getThumbnail(t)}},re=class{static createExifMetadata(e){let t={"sticker-pack-id":B(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"},i=Buffer.from([73,73,42,0,8,0,0,0,1,0,65,87,7,0,0,0,0,0,22,0,0,0]),n=Buffer.from(JSON.stringify(t),"utf8"),s=Buffer.concat([i,n]);return s.writeUIntLE(n.length,14,4),s}static async processAnimated(e,t,i){let n=this.getExtension(t),s=M.createTempPath("sticker_in",n),r=M.createTempPath("sticker_out","webp");await M.safeWriteFile(s,e);let c=g.STICKER.MAX_DURATION;try{let x=await L.getDuration(s);c=y(Math.min(x,g.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",g.STICKER.MAX_DURATION);}let l=`scale=${g.STICKER.SIZE}:${g.STICKER.SIZE}:force_original_aspect_ratio=increase,crop=${g.STICKER.SIZE}:${g.STICKER.SIZE},fps=${g.STICKER.FPS},format=rgba`,p=Math.max(1,Math.min(100,100-i)),h;try{return await H.process({input:s,output:r,options:["-vcodec libwebp",`-vf ${l}`,`-q:v ${p}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${c}`,`-compression_level ${g.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{h=await M.safeReadFile(r);},onError:async()=>{await M.cleanup([s,r]);}}),await M.cleanup([s,r]),h}catch(x){throw await M.cleanup([s,r]),new Error(`Animated sticker processing failed: ${x.message}`)}}static getExtension(e){return e===g.MIME.GIF?"gif":e.startsWith(g.MIME.VIDEO)?"mp4":"tmp"}static async create(e,t){try{let i=await I.toBuffer(e),n=await fileType.fileTypeFromBuffer(i);if(!n)throw new Error("Unable to detect file type");let s=t?.quality||g.STICKER.DEFAULT_QUALITY,c=F.isAnimated(n.mime)?await this.processAnimated(i,n.mime,s):await ie.resizeForSticker(i,s),l=this.createExifMetadata(t),p=new Nt__default.default.Image;await p.load(c),p.exif=l;let h=await p.save(null);return Buffer.isBuffer(h)?h:Buffer.from(h)}catch(i){throw new Error(`Sticker creation failed: ${i.message||i}`)}}},ne=class{static async create(e){try{let t=await I.toBuffer(e),i=await fileType.fileTypeFromBuffer(t);if(!i)throw new Error("Unable to detect file type");return {document:t,mimetype:i.mime,fileName:B(Date.now().toString()),jpegThumbnail:await Z.getThumbnail(t)}}catch(t){throw new Error(`Document creation failed: ${t.message||t}`)}}},Ye=I.toBuffer.bind(I),Xe=se.getWaAudio.bind(se),ui=L.getThumbnail.bind(L),mi=L.getDuration.bind(L),Le=Z.getThumbnail.bind(Z),et=re.create.bind(re),tt=ne.create.bind(ne);var Fe=class o{static inst;fLocks=new Map;kLocks=new Map;maxSize=100;static get(){return this.inst||(this.inst=new o)}getFile(e){let t=this.fLocks.get(e);if(!t){if(this.fLocks.size>=this.maxSize){let i=this.fLocks.keys().next().value;this.fLocks.delete(i);}t=new asyncMutex.Mutex,this.fLocks.set(e,t);}return t}getKey(e){let t=this.kLocks.get(e);if(!t){if(this.kLocks.size>=this.maxSize){let i=this.kLocks.keys().next().value;this.kLocks.delete(i);}t=new asyncMutex.Mutex,this.kLocks.set(e,t);}return t}},Oe=class{data;path;pool;size;chunkDir;replacer;reviver;loaded=false;flushMode;debounceMs;flushTimer=null;dirty=false;constructor(e,t,i=2*1024*1024,n="debounce",s=200){this.data=new Map,this.path=e,this.pool=Fe.get(),this.size=i,this.chunkDir=`${e}.c`,this.replacer=t?.replacer||null,this.reviver=t?.reviver||null,this.flushMode=n,this.debounceMs=s;}async ensureLoaded(){this.loaded||(await this.read(),this.loaded=true);}scheduleFlush(){if(this.flushMode!=="manual"){if(this.flushMode==="sync"){this.write();return}this.dirty=true,!this.flushTimer&&(this.flushTimer=setTimeout(()=>{this.flushTimer=null,this.dirty&&(this.dirty=false,this.write());},this.debounceMs));}}async read(){return this.pool.getFile(this.path).runExclusive(async()=>{try{let t=await Ee.readFile(this.path,"utf-8"),i=JSON.parse(t,this.reviver);this.data.clear();let n=[];for(let[s,r]of Object.entries(i))this.isMeta(r)?n.push(this.loadChunk(s,r)):this.data.set(s,r);return await Promise.all(n),this.loaded=!0,this.data}catch{return await Ee.mkdir(Re.dirname(this.path),{recursive:true}),this.data.clear(),this.loaded=true,this.data}})}async write(){return this.pool.getFile(this.path).runExclusive(async()=>{let t={},i=[];for(let[s,r]of this.data){if(this.isMeta(r)){t[s]=r;continue}JSON.stringify(r,this.replacer).length>this.size?i.push(this.saveChunk(s,r).then(l=>{t[s]=l;})):t[s]=r;}await Promise.all(i);let n=JSON.stringify(t,this.replacer,2);await Ee.writeFile(this.path,n,"utf-8");})}async set(e,t){await this.ensureLoaded(),await this.pool.getKey(e).runExclusive(async()=>{this.data.set(e,t),this.scheduleFlush();});}async push(e,t){await this.ensureLoaded(),await this.pool.getKey(e).runExclusive(async()=>{let n=this.data.get(e),s;Array.isArray(n)?s=n:n===void 0?s=[]:s=[n],s.push(t),this.data.set(e,s),this.scheduleFlush();});}async get(e){if(await this.ensureLoaded(),typeof e=="string")return this.data.get(e);let t=Array.from(this.data.values()).flat();return He(t,e)}async all(){return await this.ensureLoaded(),Array.from(this.data.entries())}async delete(e){return await this.ensureLoaded(),this.pool.getKey(e).runExclusive(async()=>{let i=this.data.get(e);this.isMeta(i)&&await this.delChunk(e,i);let n=this.data.delete(e);return this.scheduleFlush(),n})}async saveChunk(e,t){let i=JSON.stringify(t,this.replacer),n=Buffer.from(i,"utf-8"),s=Math.ceil(n.length/this.size);await Ee.mkdir(this.chunkDir,{recursive:true});let r={v:1,k:e,t:s,s:this.size,c:n.length,m:Date.now().toString(36)},c=[];for(let l=0;l<s;l++){let p=l*this.size,h=Math.min(p+this.size,n.length),x=n.subarray(p,h);c.push(Ee.writeFile(Re.join(this.chunkDir,`${e}.${l}.json`),JSON.stringify({i:l,d:x.toString("base64")})));}return c.push(Ee.writeFile(Re.join(this.chunkDir,`${e}.manifest.json`),JSON.stringify(r))),await Promise.all(c),{t:s,s:this.size,k:e}}async loadChunk(e,t){let i=Re.join(this.chunkDir,`${e}.manifest.json`),n=JSON.parse(await Ee.readFile(i,"utf-8")),s=[];for(let p=0;p<n.t;p++)s.push(Ee.readFile(Re.join(this.chunkDir,`${e}.${p}.json`),"utf-8").then(h=>Buffer.from(JSON.parse(h).d,"base64")));let r=await Promise.all(s),c=Buffer.concat(r),l=JSON.parse(c.toString("utf-8"),this.reviver);this.data.set(e,l);}async delChunk(e,t){let i=[];for(let n=0;n<t.t;n++)i.push(Ee.unlink(Re.join(this.chunkDir,`${e}.${n}.json`)).catch(()=>{}));i.push(Ee.unlink(Re.join(this.chunkDir,`${e}.manifest.json`)).catch(()=>{})),await Promise.all(i);try{(await Ee.readdir(this.chunkDir)).length===0&&await Ee.rmdir(this.chunkDir);}catch{}}isMeta(e){return e?.t&&e?.s&&e?.k}},J=(o,e)=>new Oe(o,e?.BufferJSON,e?.size,e?.flushMode,e?.debounceMs);var ot=async o=>{a.spinner.start(" Initializing auth state...");let e=await Ee.stat(o).catch(()=>{});if(e){if(!e.isDirectory())throw a.spinner.error(` Failed to open credentials
|
|
2
|
+
`),`found something that is not a directory at ${o}, either delete it or specify a different location`}else await Ee.mkdir(o,{recursive:true});let t=J(`${o}/auth/creds.json`,{BufferJSON:Kt.BufferJSON}),i=J(`${o}/auth/keys.json`,{BufferJSON:Kt.BufferJSON,size:512*1024});await Promise.all([t.read(),i.read()]);let n=await t.get("creds")||Kt.initAuthCreds();return a.spinner.success(" Generate auth successfully"),{state:{creds:n,keys:{get:async(s,r)=>{let c={};return await Promise.all(r.map(async l=>{let p=`${s}:${l}`,h=await i.get(p);s==="app-state-sync-key"&&h&&(h=Kt.proto.Message.AppStateSyncKeyData.fromObject(h)),c[l]=h;})),c},set:async s=>{let r=[];for(let c in s)for(let l in s[c]){let p=s[c][l],h=`${c}:${l}`;p?r.push(i.set(h,p)):r.push(i.delete(h).then(()=>{}));}await Promise.all(r),await i.write();}}},saveCreds:async()=>{await t.set("creds",n),await t.write();}}};var Vt=new De__default.default,at=(o,e)=>({logger:a.logger,printQRInTerminal:false,defaultQueryTimeoutMs:void 0,markOnlineOnConnect:o.options.autoOnline,syncFullHistory:o.options.syncFullHistory,msgRetryCounterCache:new De__default.default,mediaCache:new De__default.default({stdTTL:60}),cachedGroupMetadata:async t=>Vt.get(t),shouldIgnoreJid:t=>Kt.isJidBroadcast(t),auth:{creds:e.creds,keys:Kt.makeCacheableSignalKeyStore(e.keys,a.logger)},getMessage:async t=>{if(t?.id)return await o.db("messages").get(t.id)}});var ct=async o=>{let e=`.session/${o.options.session}`;console.info=()=>{};let{state:t,saveCreds:i}=await ot(e),n=at(o,t),s=Kt__default.default(n);s.ev.on("creds.update",i),a.set("socket",s);};var oe=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=a.get("socket");e.ev.on("call",async t=>{for(let i of t){let n=await this.parse(i);n&&(await this.client.middleware.run({calls:n}),await this.client.plugins.execute(this.client,{messages:n}),a.events.emit("calls",n),this.client.options?.autoRejectCall&&await e.rejectCall(n.callId,n.callerId));}});}async parse(e){let t=a.get("socket"),i={};return i.callId=e.id,i.callerId=Kt.jidNormalizedUser(e.from),i.callerName=await this.client.getRoomName(i.callerId),i.roomId=Kt.jidNormalizedUser(e.chatId),i.roomName=P(t?.user?.name||t?.user?.verifiedName),i.date=e.date,i.offline=e.offline,i.status=e.status,i.isVideo=!!e.isVideo,i.isGroup=!!e.isGroup,this.client.logs.call(i),i}};var ae={version:"1.1.40",author:"zaadevofc"};var pt=o=>{Qt__default.default.generate(o,{small:true},e=>{console.log(e);});},ut=async()=>{console.clear(),a.spinner.start(" Checking for updates...");let o=await qe(),e=ae.version===o;a.spinner.stop();let t="Zaileys",i=`
|
|
3
|
+
by ${ae.author} \xB7 v${ae.version}`,n=`${e?"Already using latest version!":`Update available! (v${o})`}
|
|
4
|
+
`,s=e?"lime":"orange",r=await Ht__default.default.text(t),c=Ke.cristal(r);console.log(c),console.log(k(i,"#383838ff")),console.log(k(n,s));};var le=class{constructor(e){this.client=e;this.initialize();}async initialize(){a.spinner.start(" Initializing connection...");let e=a.get("socket"),t={},i=async()=>{t.status="reload",a.spinner.warn(" Connection lost. Attempting auto-reload..."),await this.client.initialize();},n=async()=>{await Kt.delay(3e3),a.spinner.warn(" Invalid session. Attempting auto cleaning creds..."),await Kt.delay(3e3),await Ve(this.client.options.session),await i();};if(this.client.options.authType==="pairing"&&this.client.options.phoneNumber&&!e.authState.creds.registered){a.spinner.update(" Generating pairing code..."),await Kt.delay(3500);try{t.authTimeout=Date.now()+6e4;let s=new Date(t.authTimeout).toLocaleTimeString(),r=await e.requestPairingCode(this.client.options.phoneNumber.toString());a.spinner.warn(` Pairing expired at ${Ke.cristal(s)}`),a.spinner.warn(` Pairing code: ${r}`),t.code=r;}catch{await n();}}e.ev.on("connection.update",async s=>{let{connection:r,lastDisconnect:c,qr:l}=s;if(t.status=r||"connecting",t.authType=this.client.options.authType,a.spinner.update(" Connection status: "+Ke.cristal(t.status)),this.client.options.authType==="qr"&&l){t.authTimeout=Date.now()+6e4;let p=new Date(t.authTimeout).toLocaleTimeString();a.spinner.warn(" Please scan the QR code..."),a.spinner.warn(` Qr code expired at ${Ke.cristal(p)}`),pt(l),t.qr=l;return}if(r==="close"){let p=y(c?.error)?.output?.statusCode,h=c?.error?.message||"",x=typeof p=="number"&&p!==Kt.DisconnectReason.loggedOut;a.spinner.error(`[${p} - Closed] ${h}`),(p===401||p===405||p===500)&&(a.spinner.error(" Invalid session, please delete manually!"),a.spinner.error(` Session "${this.client.options.session}" has not valid, please delete it!
|
|
5
|
+
`),await n()),x&&await i();}if(r==="open")if(e.user?.id){let p=Kt.jidNormalizedUser(e.user.id).split("@")[0],h=e.user.name||e.user.verifiedName;a.spinner.success(` Connected as ${Ke.cristal(h||p)}`);}else a.spinner.success(" Connected!");a.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:s})=>{t.status="syncing",t.syncProgress=s,a.spinner.start(" Syncing messages history..."),s&&a.spinner.update(` Syncing messages history ${s+"%"}`),s==100&&(a.spinner.success(" Syncing messages history completed!"),t.syncCompleted=true),a.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",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"},ze={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 pe=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 me=class{constructor(e){this.client=e;this.limiter=new pe(e),this.initialize();}limiter;maxReplies=3;async initialize(){let e=a.get("socket");e.ev.on("messages.upsert",async({messages:t,type:i})=>{if(i==="notify")for(let n of t){let s=await this.parse(n);s&&(this.client.collector.push(s)||(await this.client.middleware.run({messages:s}),await this.client.plugins.execute(this.client,{messages:s}),a.set("message",s),a.events.emit("messages",s)),this.client.options.autoRead&&await e.readMessages([s.message().key]));}});}async parse(e,t){if(e?.category==="peer"||!e?.message||!e?.key?.id||e?.messageStubType||e?.messageStubParameters?.length||e.message?.protocolMessage?.peerDataOperationRequestResponseMessage||e.message?.groupStatusMentionMessage)return;let i=e,n=a.get("socket"),s={},r=K(e.message),c=r.chain.at(-1),l=r.leaf;l?.message&&(r=K(l.message),c=r.chain.at(-1),l=r.leaf),s.uniqueId=null,s.channelId=null,s.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,s.chatType=mt[c],s.receiverId=Kt.jidNormalizedUser(n?.user?.id||""),s.receiverName=P(n?.user?.name||n?.user?.verifiedName),s.roomId=Kt.jidNormalizedUser(e?.key?.remoteJid);let p=l?.type===0,h=l?.type===1,x=l?.type===2,X=s.roomId?.includes("@newsletter"),xe=!!e?.message?.questionMessage,$=e?.key?.fromMe||false;if($&&this.client.options.ignoreMe&&t!=="replied")return;let Te=l?.key?.id;if(p||h||x){let T=(await this.client.db("messages").get(s.roomId))?.find(N=>N.key.id===Te);if(!T)return;e=T,r=K(e.message),c=r.chain.at(-1),l=r.leaf;}if(s.roomName=await this.client.getRoomName(s.roomId),s.senderLid=C([e?.key],["remoteJidAlt","participant"])||null,s.senderId=Kt.jidNormalizedUser(e?.participant||e?.key?.participant||e?.key?.remoteJid),s.senderName=P(e?.pushName||e?.verifiedBizName),s.senderDevice=Kt.getDevice(s.chatId),s.channelId=B([s.roomId,s.senderId]),s.uniqueId=B([s.channelId,s.chatId]),s.timestamp=Number(e?.messageTimestamp)*1e3,X){let S=await n.newsletterMetadata("jid",s.roomId);s.roomName=y(S.thread_metadata.name)?.text,s.senderId=null,s.senderLid=null;}if($&&(s.senderLid=Kt.jidNormalizedUser(n.user.lid),s.senderId=s.receiverId,s.senderName=s.receiverName),s.text=l?.text||l?.caption||l?.name||l?.displayName||l?.conversation||l?.contentText||l?.selectedDisplayText||l||null,l?.name=="menu_options"&&(s.text=Ie(l?.paramsJson)?.id),s.text=P(s.text),s.mentions=Ze(s.text),s.links=Ge(s.text||""),s.isBot=s.chatId.startsWith("BAE5")||s.chatId.startsWith("3EB0")||s.chatId.startsWith("Z4D3FC"),s.isFromMe=$,s.isTagMe=s.mentions?.includes(s.receiverId.split("@")[0]),s.isPrefix=s.text?.startsWith(this.client.options?.prefix)||false,s.isSpam=await this.limiter.isSpam(s.channelId),s.isGroup=s.roomId?.includes("@g.us"),s.isNewsletter=X,s.isQuestion=xe,s.isStory=s.roomId?.includes("@broadcast"),s.isViewOnce=false,s.isEdited=!!te(ee(r),"editedMessage"),s.isDeleted=p,s.isPinned=h,s.isUnPinned=x,s.isBroadcast=!!e?.broadcast,s.isEphemeral=!!te(ee(l?.contextInfo),"ephemeralSettingTimestamp"),s.isForwarded=!!te(ee(l?.contextInfo),"forwardingScore"),s.citation=null,this.client.options.citation){s.citation=s.citation||{};let S=this.client.options.citation;for(let T of Object.keys(S)){let N=S[T];s.citation[T]=async()=>{let W=await N(),Se=[R(s.roomId),R(s.senderLid),R(s.senderId)];return !!v__default.default.intersection(Se,W).length};}}s.chatType!=="text"&&(s.media={...Qe(l),buffer:()=>Kt.downloadMediaMessage(e,"buffer",{}),stream:()=>Kt.downloadMediaMessage(e,"stream",{})}),s.message=()=>i,s.replied=null;let z=l?.contextInfo?.quotedMessage,j=C([z],["viewOnceMessageV2Extension","viewOnceMessage"]),_=l?.contextInfo?.stanzaId;if(z&&!this.maxReplies){this.maxReplies--;let T=(await this.client.db("messages").get(s.roomId))?.find(W=>W.key.id===_),N={...T,...K(j).leaf};j?(s.replied=await this.parse(N,"replied"),s.replied.isViewOnce=true):s.replied=await this.parse(T,"replied"),this.maxReplies=3;}return this.client.logs.message(s),s}};var de=class{constructor(e){this.client=e;this.connection=new le(e),this.messages=new me(e),this.calls=new oe(e),this.initialize();}connection;messages;calls;async initialize(){let e=a.get("socket");e.ev.on("groups.update",async([t])=>{let i=await e.groupMetadata(t.id);a.groupCache.set(t.id,i);}),e.ev.on("group-participants.update",async t=>{let i=await e.groupMetadata(t.id);a.groupCache.set(t.id,i);}),e?.ev.on("messaging-history.set",async t=>{let{chats:i,contacts:n,messages:s}=t;for(let r of i)await this.client.db("chats").push(r.id,r);for(let r of n)await this.client.db("contacts").push(r.id,r);for(let r of s){if(!r.message&&!r.key.isViewOnce||r?.category==="peer"||r.message?.protocolMessage||r.message?.groupStatusMentionMessage)return;await this.client.db("messages").push(r.key.remoteJid,r);}}),e?.ev.on("messages.upsert",async({messages:t})=>{for(let i of t){if(!i.message&&!i.key.isViewOnce||i?.category==="peer"||i.message?.protocolMessage||i.message?.groupStatusMentionMessage)return;await this.client.db("messages").push(i.key.remoteJid,i);}}),e?.ev.on("chats.upsert",async t=>{for(let i of t)await this.client.db("chats").push(i.id,i);}),e?.ev.on("contacts.upsert",async t=>{for(let i of t)await this.client.db("contacts").push(i.id,i);});}};var Q=(o,e)=>{let t=o.safeParse(e);if(t.success)return t.data;throw console.error(t.error),"Invalid data"};var is=u__default.default.object({type:u__default.default.literal("quick_reply"),text:u__default.default.string()}),rs=u__default.default.object({type:u__default.default.literal("cta_url"),url:u__default.default.url(),text:u__default.default.string()}),ns=u__default.default.object({type:u__default.default.literal("cta_copy"),copy:u__default.default.string(),text:u__default.default.string()}),os=u__default.default.object({type:u__default.default.literal("cta_call"),text:u__default.default.string(),phoneNumber:u__default.default.string()}),as=u__default.default.object({type:u__default.default.literal("single_select"),text:u__default.default.string(),section:u__default.default.object({title:u__default.default.string(),rows:u__default.default.object({id:u__default.default.string(),title:u__default.default.string(),header:u__default.default.string().optional(),description:u__default.default.string().optional()}).array()}).array()}),cs=u__default.default.object({type:u__default.default.literal("interactive"),footer:u__default.default.string().optional(),data:u__default.default.union([is,rs,ns,os,as]).array()}),ls=u__default.default.object({type:u__default.default.literal("simple"),footer:u__default.default.string().optional(),data:u__default.default.object({id:u__default.default.string(),text:u__default.default.string()}).array()}),ft=u__default.default.union([ls,cs]);var Y=u__default.default.url().or(u__default.default.base64()).or(u__default.default.instanceof(Buffer)),gt=u__default.default.object({text:u__default.default.string()}).passthrough(),ps=u__default.default.object({image:Y,caption:u__default.default.string().optional()}).passthrough(),us=u__default.default.object({audio:Y,caption:u__default.default.string().optional(),ptt:u__default.default.boolean().optional()}).passthrough(),ms=u__default.default.object({video:Y,caption:u__default.default.string().optional(),ptv:u__default.default.boolean().optional()}).passthrough(),ds=u__default.default.object({sticker:Y,caption:u__default.default.string().optional()}).passthrough(),fs=u__default.default.object({document:Y,caption:u__default.default.string().optional(),fileName:u__default.default.string().optional()}).passthrough(),gs=u__default.default.object({location:u__default.default.object({latitude:u__default.default.number(),longitude:u__default.default.number(),url:u__default.default.url().optional(),title:u__default.default.string().optional(),footer:u__default.default.string().optional()}).optional()}).passthrough(),hs=u__default.default.object({title:u__default.default.string().optional(),contacts:u__default.default.object({fullname:u__default.default.string(),phoneNumber:u__default.default.number(),organization:u__default.default.string().optional()}).array()}),ys=u__default.default.object({poll:u__default.default.object({name:u__default.default.string(),answers:u__default.default.string().array(),isMultiple:u__default.default.boolean().default(false).optional()})}),ht=u__default.default.object({replied:u__default.default.custom().optional(),isForwardedMany:u__default.default.boolean().optional(),isViewOnce:u__default.default.boolean().optional(),banner:u__default.default.custom().optional(),buttons:ft.optional()});u__default.default.enum(["forward","button","edit","delete"]);var ws=u__default.default.union([gt,ps,us,ms,ds,fs,gs,hs,ys]),yt=u__default.default.string().or(u__default.default.intersection(ws,ht.omit({buttons:true}))),wt=u__default.default.intersection(gt,ht.omit({banner:true}));var fe=class{toNativeSimple(e){return e.map(({id:t,text:i})=>({name:"quick_reply",buttonParamsJson:JSON.stringify({display_text:i,id:t})}))}toNativeInteractive(e){let t={quick_reply:i=>({display_text:i.text,id:i.id}),cta_url:i=>({display_text:i.text,url:i.url,merchant_url:i.url}),cta_copy:i=>({display_text:i.text,id:i.id,copy_code:i.copy}),cta_call:i=>({display_text:i.text,phone_number:i.phoneNumber}),single_select:i=>({title:i.text,sections:i.section})};return e.map(i=>({name:i.type,buttonParamsJson:JSON.stringify(t[i.type](i))}))}build(e){let t=y(e).buttons,i=t?.data||[],s=t?.type=="simple"?this.toNativeSimple(i):this.toNativeInteractive(i);return {body:{text:y(e).text},footer:t.footer?{text:t.footer}:void 0,nativeFlowMessage:{buttons:s}}}async send(e,t,i){let n=a.get("socket"),s=n.authState?.creds?.me?.id||n.user?.id,r=this.build(t),c=Kt.generateWAMessageFromContent(e,{interactiveMessage:r},{userJid:s,messageId:Kt.generateMessageIDV2(s),...i});return await n.relayMessage(e,c.message,{messageId:c.key.id,...i,additionalNodes:[{tag:"biz",attrs:{},content:[{tag:"interactive",attrs:{type:"native_flow",v:"1"},content:[{tag:"native_flow",attrs:{v:"9",name:"mixed"}}]}]}]}),n.config?.emitOwnEvents&&!Kt.isJidGroup(e)&&process.nextTick(()=>n.upsertMessage?.(c,"append")),c}};var ge=class{constructor(e){this.client=e;}async signal(e,t,i,n){i!="delete"&&(i=="button"?t=Q(wt,t):t=Q(yt,t));let s=a.get("socket"),r={},c={},l=v__default.default.isString(t),p=this.client.options?.fakeReply?.provider,h=this.client.options?.autoMentions,x=this.client.options?.autoPresence,X=v__default.default.has(t,"replied"),xe=v__default.default.has(t,"banner"),$=v__default.default.has(t,"isViewOnce"),Te=i=="button",z=v__default.default.has(t,"image"),j=v__default.default.has(t,"video"),_=v__default.default.has(t,"audio"),S=v__default.default.has(t,"sticker"),T=v__default.default.has(t,"document"),N=v__default.default.has(t,"location"),W=v__default.default.has(t,"contacts"),Se=v__default.default.has(t,"poll"),We=z||j||_||S||T,U=l?t:C([t],["text","caption"]);if(x&&(_?await s.sendPresenceUpdate("recording",e):await s.sendPresenceUpdate("composing",e)),h&&(r={...r,mentions:Ae(U),contextInfo:{mentionedJid:Ae(U)}}),X&&(c.quoted=y(t).replied,p&&(c.quoted.key.remoteJid=ze[p],c.quoted.key.participant=ze[p])),xe&&(r={...r,contextInfo:{externalAdReply:y(t).banner}},r.contextInfo.externalAdReply.mediaType=1),$&&(r={...r,viewOnce:y(t)?.isViewOnce}),U&&(r={...r,text:U,caption:U},We&&delete y(r).text),We){let w=C([t],["image","video","audio","sticker","document"]),A=v__default.default.isString(w)?{url:w}:w;if(z&&(r={...r,image:A,jpegThumbnail:await Le(w)}),j){let E=y(t)?.ptv;r={...r,video:A,ptv:E,jpegThumbnail:await Le(w)};}if(_){let E=y(t)?.ptt;r={...r,audio:await Xe(w),ptt:E,mimetype:E?"audio/ogg; codecs=opus":"audio/mpeg"};}if(S&&(r={...r,sticker:await et(w,this.client.options?.sticker)}),T){let E=await tt(w);r={...r,fileName:y(t).fileName,...E};}}if(N){let w=y(t).location;r={...r,location:{degreesLatitude:w.latitude,degreesLongitude:w.longitude,url:w.url,address:w.footer,name:w.title}};}if(W){let w=y(t)?.contacts,Ue=w?.contacts.map(A=>{let E=["BEGIN:VCARD","VERSION:3.0",`FN:${A.fullname}`,`ORG:${A.organization||""}`,`TEL;type=CELL;type=VOICE;waid=${A.phoneNumber}:${A.phoneNumber}`,"END:VCARD"].join(`
|
|
6
|
+
`);return {displayName:A.fullname,vcard:E}});r={...r,contacts:{displayName:w?.title,contacts:Ue}};}if(Se){let w=y(t)?.poll;r={...r,poll:{name:w.name,values:w.answers,selectableCount:w.isMultiple?1:0,toAnnouncementGroup:true}};}return i=="forward"&&(r={...r,contextInfo:{...y(r).contextInfo,isForwarded:true,forwardingScore:y(t).isForwardedMany?9999:1}}),i=="edit"&&(r={...r,edit:n?.key},await s.sendPresenceUpdate("paused",e)),i=="delete"&&(r={...r,delete:n?.key},await s.sendPresenceUpdate("paused",e)),Te?await new fe().send(e,t,c):await s.sendMessage(e,y(r),c)}async send(e,t){return await this.signal(e,t)}async forward(e,t){return await this.signal(e,t,"forward")}async button(e,t){return await this.signal(e,t,"button")}async edit(e,t){return await this.signal(e.key.remoteJid,t,"edit",e)}async delete(e){return v__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 i=a.get("socket"),n={typing:"composing",recording:"recording",online:"available",offline:"unavailable",paused:"paused"};return await i.sendPresenceUpdate(n[t],e)}async reaction(e,t){return await a.get("socket").sendMessage(e.key.remoteJid,{react:{text:t,key:e?.key}})}};var je=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").groupCreate(e,V(t))}async participant(e,t,i){return await a.get("socket").groupParticipantsUpdate(e,V(t),i)}async profile(e,t,i){let n=a.get("socket"),s=Buffer.isBuffer(t);switch(i){case "subject":if(!s)return await n.groupUpdateSubject(e,t);case "description":if(!s)return await n.groupUpdateDescription(e,t);case "avatar":return await n.updateProfilePicture(e,Ye(t))}}async setting(e,t){let i=a.get("socket");switch(t){case "open":return await i.groupSettingUpdate(e,"not_announcement");case "close":return await i.groupSettingUpdate(e,"announcement");case "locked":return await i.groupSettingUpdate(e,t);case "unlocked":return await i.groupSettingUpdate(e,t);case "all_member_add":return await i.groupMemberAddMode(e,t);case "admin_add":return await i.groupMemberAddMode(e,t)}}async leave(e){return await a.get("socket").groupLeave(e)}async inviteCode(e,t){let i=a.get("socket");switch(t){case "code":return await i.groupInviteCode(e);case "revoke":return await i.groupRevokeInvite(e);case "accept":return await i.groupAcceptInvite(e);case "info":return await i.groupGetInviteInfo(e)}}async metadata(e){return await a.get("socket").groupMetadata(e)}async requestJoin(e,t,i){let n=a.get("socket");switch(i){case "approve":return await n.groupRequestParticipantsUpdate(e,V(t),i);case "reject":return await n.groupRequestParticipantsUpdate(e,V(t),i)}}async requestJoinList(e){return await a.get("socket").groupRequestParticipantsList(e)}async fetchAllGroups(){return await a.get("socket").groupFetchAllParticipating()}async ephemeral(e,t){let i=a.get("socket"),n={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await i.groupToggleEphemeral(e,n[t])}},he=class{constructor(e){this.glient=e;this.group=new je(e);}group};var bs=u.z.object({maxMessages:u.z.number().default(20),durationMs:u.z.number().default(1e4)}).optional(),xs=u.z.record(u.z.string(),u.z.function({output:u.z.promise(u.z.array(u.z.number()))})).optional(),Ts=u.z.object({provider:u.z.enum(["whatsapp","meta","chatgpt","copilot","instagram","tiktok"]).or(u.z.number())}).optional(),Ss=u.z.object({packageName:u.z.string(),authorName:u.z.string(),quality:u.z.number()}).optional(),Mt=u.z.object({session:u.z.string().default("zaileys").optional(),prefix:u.z.string().optional(),ignoreMe:u.z.boolean().default(true).optional(),showLogs:u.z.boolean().default(true).optional(),syncFullHistory:u.z.boolean().default(true).optional(),autoMarkAI:u.z.boolean().default(true).optional(),autoMentions:u.z.boolean().default(true).optional(),autoOnline:u.z.boolean().default(true).optional(),autoRead:u.z.boolean().default(true).optional(),autoPresence:u.z.boolean().default(true).optional(),autoRejectCall:u.z.boolean().default(true).optional(),limiter:bs,citation:xs,fakeReply:Ts,sticker:Ss}),Cs=u.z.object({authType:u.z.literal("pairing"),phoneNumber:u.z.number()}),Is=u.z.object({authType:u.z.literal("qr")}),kt=u.z.union([Cs.extend(Mt.shape),Is.extend(Mt.shape)]);u.z.enum(["connection","messages","calls"]);var ye=class{collect(e,t,i){let n=t.max??1/0;if(n<=0){i([]);return}let s=a.collectors.get(e);s&&(clearTimeout(s.timeoutId),s.callback(s.messages),a.collectors.delete(e));let r=setTimeout(()=>{let c=a.collectors.get(e);c&&(c.callback(c.messages),a.collectors.delete(e));},t.timeout);a.collectors.set(e,{messages:[],max:n,filter:t.filter,callback:i,timeoutId:r});}push(e){let t=a.collectors.get(e.channelId);return !t||t.filter&&!t.filter(e)?false:(t.messages.push(e),t.messages.length>=t.max&&(clearTimeout(t.timeoutId),t.callback(t.messages),a.collectors.delete(e.channelId)),true)}has(e){return a.collectors.has(e)}cancel(e){let t=a.collectors.get(e);return t?(clearTimeout(t.timeoutId),t.callback(t.messages),a.collectors.delete(e),t.messages):[]}};var we=class{constructor(e){this.client=e;this.initialize();}ready=false;getRoomColor(e){return e?.isNewsletter?"blue":e?.isGroup?e?.isGroup?"lime":"#383838ff":"orange"}initialize(){this.client.options.showLogs&&a.events.on("connection",e=>{e?.status==="open"&&(this.ready=true),this.ready&&(console.log(),a.spinner.info("Logs Indicator:"),console.log(k(" \u2022","orange")+" Private Chat"),console.log(k(" \u2022","lime")+" Group Chat"),console.log(k(" \u2022","blue")+" Newsletter Chat"),console.log());});}message(e){if(!this.ready)return;let t=y(this.getRoomColor(e)),i=e?.text?.toLowerCase()?.match("zaileys"),n=k(`[${new Date(e?.timestamp).toTimeString().split(" ")[0]}]`,"#383838ff"),s=k(`${e?.roomName}`,t),r=e?.text?.slice(0,300)||"",c=r?.length>=300?"...":"",l=`${n} \u2192 ${s}
|
|
7
|
+
`;e?.isNewsletter?l+=`${k("[room]","#383838ff")} \u2192 ${k(`${e?.roomName} (${R(e?.roomId)})`,t)}
|
|
8
|
+
`:l+=`${k("[sender]","#383838ff")} \u2192 ${k(`${e?.senderName} (${R(e?.senderId)})`,t)}
|
|
9
|
+
`,l+=`${k(`[${e?.chatType}]`,"#383838ff")} \u2192 ${k(r+c,i?["#ff5f6d","#ffc371"]:"brown")}
|
|
10
|
+
`,l+="\u2014",console.log(l);}call(e){if(!this.ready)return;let t=y(this.getRoomColor(e)),i=k(`[${new Date(e?.date).toTimeString().split(" ")[0]}]`,"#383838ff"),n=k(`${e?.roomName}`,t),s=`${i} \u2192 ${n}
|
|
11
|
+
`;s+=`${k("[caller]","#383838ff")} \u2192 ${k(`${e?.callerName} (${R(e?.callerId)})`,t)}
|
|
12
|
+
`,s+=`${k(`[${e?.status}]`,"#383838ff")} \u2192 ${k(e?.isVideo?"Video Call":"Voice Call","brown")}
|
|
13
|
+
`,s+="\u2014",console.log(s);}};var Me=class{stack=[];use(e){return this.stack.push(e),this}async run(e){let t=-1,i=async n=>{if(n<=t)throw "next() called multiple times";t=n;let s=this.stack[n];if(s)try{await s(e,()=>i(n+1));}catch(r){throw console.error("Middleware error:",r),r}};await i(0);}};var ke=class{plugins=[];pluginsDir;constructor(e=Re__namespace.join(process.cwd(),"plugins")){this.pluginsDir=e;}async load(){if(!ve__namespace.existsSync(this.pluginsDir))return;let e=ve__namespace.readdirSync(this.pluginsDir).filter(t=>(t.endsWith(".ts")||t.endsWith(".js"))&&!t.endsWith(".d.ts"));for(let t of e){let i=Re__namespace.join(this.pluginsDir,t);try{let s=(await import(url.pathToFileURL(i).href)).default;s?.handler&&s?.config&&this.plugins.push(s);}catch{}}}async execute(e,t){let i=t.messages.text||"";for(let n of this.plugins)try{this.match(i,n.config.matcher)&&await n.handler(e,t);}catch{}}match(e,t){return t.some(i=>e===i||e.startsWith(i+" "))}getLoadedPlugins(){return this.plugins}getPluginsInfo(){return this.plugins.map(e=>({matcher:e.config.matcher,metadata:e.config.metadata}))}async reload(){this.plugins=[],await this.load();}},qn=(o,e)=>({handler:o,config:e});var be=class{classInjection(e,t){let i=t.length;return new Proxy(e,{get(n,s,r){if(s in n){let c=Reflect.get(n,s,r);return typeof c=="function"?c.bind(n):c}for(let c=0;c<i;c++){let l=t[c];if(s in l){let p=Reflect.get(l,s,r);return typeof p=="function"?p.bind(l):p}}},set(n,s,r,c){if(s in n)return Reflect.set(n,s,r,c);for(let l=0;l<i;l++){let p=t[l];if(s in p)return Reflect.set(p,s,r,c)}return Reflect.set(n,s,r,c)},has(n,s){if(s in e)return true;for(let r=0;r<i;r++)if(s in t[r])return true;return false},ownKeys(){let n=[];for(let s of Reflect.ownKeys(e))n.push(s);for(let s=0;s<i;s++)for(let r of Reflect.ownKeys(t[s]))n.includes(r)||n.push(r);return n},getOwnPropertyDescriptor(n,s){let r=Object.getOwnPropertyDescriptor(e,s);if(r)return r;for(let c=0;c<i;c++)if(r=Object.getOwnPropertyDescriptor(t[c],s),r)return r}})}};var vt=class{constructor(e){this.options=e;return this.options=Q(kt,e),this._ready=this.initialize(),new be().classInjection(this,[new ge(this),new he(this)])}listener;_ready;logs;collector=new ye;middleware=new Me;plugins=new ke;async initialize(){await ut(),await ct(this),await this.plugins.load(),this.listener=new de(this),this.logs=new we(this);}ready(){return this._ready}db(e){return a.lowdb(this.options.session,`stores/${e}.json`)}on(e,t){a.events.on(e,t);}use(e){return this.middleware.use(e),this}async getMessageByChatId(e){let i=(await this.db("messages").all())?.flat()?.filter(n=>typeof n=="object")?.flat()?.find(n=>n?.key?.id===e);return await this.listener.messages.parse(i)}async getRoomName(e){let t=await this.db("chats").get(e),i=await this.db("contacts").get(e),n=C(t,["name","verifiedName"]),s=C(i,["notify","name"]);return P(n||s)||null}};
|
|
14
|
+
/*
|
|
15
|
+
* Copyright (c) 2025 zaadevofc.
|
|
16
|
+
* All rights reserved.
|
|
17
|
+
* Licensed under the MIT License.
|
|
18
|
+
* See LICENSE file for details.
|
|
19
|
+
|
|
20
|
+
* Author: zaadevofc
|
|
21
|
+
* Last build time: 12/9/2025 8:41:23 AM
|
|
22
|
+
*
|
|
23
|
+
* Repository: git+https://github.com/zeative/zaileys.git
|
|
24
|
+
*/exports.AudioProcessor=se;exports.Client=vt;exports.DocumentProcessor=ne;exports.ImageProcessor=ie;exports.Lowdb=Oe;exports.MediaProcessor=Z;exports.Plugins=ke;exports.StickerProcessor=re;exports.VideoProcessor=L;exports.cleanJid=R;exports.cleanMediaObject=Qe;exports.createLowdb=J;exports.definePlugins=qn;exports.extractJids=Ae;exports.extractUrls=Ge;exports.findGlobalWord=te;exports.findNestedByKeys=He;exports.generateId=B;exports.getDeepContent=K;exports.getLatestLibVersion=qe;exports.getMediaThumbnail=Le;exports.getUsersMentions=Ze;exports.getVideoDuration=mi;exports.getVideoThumbnail=ui;exports.getWaAudio=Xe;exports.getWaDocument=tt;exports.getWaSticker=et;exports.ignoreLint=y;exports.logColor=k;exports.modifyFn=Ks;exports.normalizeText=P;exports.numbersToJids=V;exports.pickKeysFromArray=C;exports.randomize=Vs;exports.registerAuthCreds=ct;exports.removeAuthCreds=Ve;exports.shuffleString=qs;exports.toBuffer=Ye;exports.toJson=Ie;exports.toString=ee;exports.useAuthState=ot;
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
|
-
import be,{BufferJSON,initAuthCreds,proto,makeCacheableSignalKeyStore,isJidBroadcast,URL_REGEX,getAggregateVotesInPollMessage,delay,DisconnectReason,jidNormalizedUser,getDevice,downloadMediaMessage,extractMessageContent,getContentType}from'baileys';import Ae,{readFile,mkdir,writeFile,unlink,readdir,rmdir,stat}from'fs/promises';import {Mutex}from'async-mutex';import {dirname,join}from'path';import {createSpinner}from'nanospinner';import D from'node-cache';import {EventEmitter}from'events';import fe from'pino';import Ce,{z}from'zod';import ze from'figlet';import Z,{cristal}from'gradient-string';import Le from'qrcode-terminal';import g from'lodash';var E=class n{static inst;fLocks=new Map;kLocks=new Map;maxSize=100;static get(){return this.inst||(this.inst=new n)}getFile(e){let t=this.fLocks.get(e);if(!t){if(this.fLocks.size>=this.maxSize){let i=this.fLocks.keys().next().value;this.fLocks.delete(i);}t=new Mutex,this.fLocks.set(e,t);}return t}getKey(e){let t=this.kLocks.get(e);if(!t){if(this.kLocks.size>=this.maxSize){let i=this.kLocks.keys().next().value;this.kLocks.delete(i);}t=new Mutex,this.kLocks.set(e,t);}return t}},L=class{data;path;pool;size;chunkDir;replacer;reviver;loaded=false;flushMode;debounceMs;flushTimer=null;dirty=false;constructor(e,t,i=2*1024*1024,s="debounce",o=200){this.data=new Map,this.path=e,this.pool=E.get(),this.size=i,this.chunkDir=`${e}.c`,this.replacer=t?.replacer||null,this.reviver=t?.reviver||null,this.flushMode=s,this.debounceMs=o;}async ensureLoaded(){this.loaded||(await this.read(),this.loaded=true);}scheduleFlush(){if(this.flushMode!=="manual"){if(this.flushMode==="sync"){this.write();return}this.dirty=true,!this.flushTimer&&(this.flushTimer=setTimeout(()=>{this.flushTimer=null,this.dirty&&(this.dirty=false,this.write());},this.debounceMs));}}async read(){return this.pool.getFile(this.path).runExclusive(async()=>{try{let t=await readFile(this.path,"utf-8"),i=JSON.parse(t,this.reviver);this.data.clear();let s=[];for(let[o,a]of Object.entries(i))this.isMeta(a)?s.push(this.loadChunk(o,a)):this.data.set(o,a);return await Promise.all(s),this.loaded=!0,this.data}catch{return await mkdir(dirname(this.path),{recursive:true}),this.data.clear(),this.loaded=true,this.data}})}async write(){return this.pool.getFile(this.path).runExclusive(async()=>{let t={},i=[];for(let[o,a]of this.data){if(this.isMeta(a)){t[o]=a;continue}JSON.stringify(a,this.replacer).length>this.size?i.push(this.saveChunk(o,a).then(d=>{t[o]=d;})):t[o]=a;}await Promise.all(i);let s=JSON.stringify(t,this.replacer,2);await writeFile(this.path,s,"utf-8");})}async set(e,t){await this.ensureLoaded(),await this.pool.getKey(e).runExclusive(async()=>{this.data.set(e,t),this.scheduleFlush();});}async push(e,t){await this.ensureLoaded(),await this.pool.getKey(e).runExclusive(async()=>{let s=this.data.get(e),o;Array.isArray(s)?o=s:s===void 0?o=[]:o=[s],o.push(t),this.data.set(e,o),this.scheduleFlush();});}async get(e){return await this.ensureLoaded(),this.data.get(e)}async delete(e){return await this.ensureLoaded(),this.pool.getKey(e).runExclusive(async()=>{let i=this.data.get(e);this.isMeta(i)&&await this.delChunk(e,i);let s=this.data.delete(e);return this.scheduleFlush(),s})}async saveChunk(e,t){let i=JSON.stringify(t,this.replacer),s=Buffer.from(i,"utf-8"),o=Math.ceil(s.length/this.size);await mkdir(this.chunkDir,{recursive:true});let a={v:1,k:e,t:o,s:this.size,c:s.length,m:Date.now().toString(36)},c=[];for(let d=0;d<o;d++){let l=d*this.size,h=Math.min(l+this.size,s.length),y=s.subarray(l,h);c.push(writeFile(join(this.chunkDir,`${e}.${d}.json`),JSON.stringify({i:d,d:y.toString("base64")})));}return c.push(writeFile(join(this.chunkDir,`${e}.manifest.json`),JSON.stringify(a))),await Promise.all(c),{t:o,s:this.size,k:e}}async loadChunk(e,t){let i=join(this.chunkDir,`${e}.manifest.json`),s=JSON.parse(await readFile(i,"utf-8")),o=[];for(let l=0;l<s.t;l++)o.push(readFile(join(this.chunkDir,`${e}.${l}.json`),"utf-8").then(h=>Buffer.from(JSON.parse(h).d,"base64")));let a=await Promise.all(o),c=Buffer.concat(a),d=JSON.parse(c.toString("utf-8"),this.reviver);this.data.set(e,d);}async delChunk(e,t){let i=[];for(let s=0;s<t.t;s++)i.push(unlink(join(this.chunkDir,`${e}.${s}.json`)).catch(()=>{}));i.push(unlink(join(this.chunkDir,`${e}.manifest.json`)).catch(()=>{})),await Promise.all(i);try{(await readdir(this.chunkDir)).length===0&&await rmdir(this.chunkDir);}catch{}}isMeta(e){return e?.t&&e?.s&&e?.k}},M=(n,e)=>new L(n,e?.BufferJSON,e?.size,e?.flushMode,e?.debounceMs);var I=class{data=new Map;set(e,t){this.data.set(e,{...this.data.get(e),...t});}get(e){return this.data.get(e)||{}}update(e,t){let i=this.get(e);this.set(e,t(i));}delete(e){this.data.delete(e);}has(e){return this.data.has(e)}dbCache=new Map;lowdb(e,t){let i=`.session/${e}/${t}`;if(this.dbCache.has(i))return this.dbCache.get(i);let s=M(i);return this.dbCache.set(i,s),s}spinner=createSpinner("",{color:"green"});logger=fe({level:"silent",enabled:false});events=new EventEmitter;groupCache=new D({stdTTL:300,useClones:false})},r=new I;var q=async n=>{r.spinner.start(" Initializing auth state...");let e=await stat(n).catch(()=>{});if(e){if(!e.isDirectory())throw r.spinner.error(` Failed to open credentials
|
|
2
|
-
`),`found something that is not a directory at ${
|
|
3
|
-
by ${
|
|
4
|
-
`,
|
|
5
|
-
`),await s()),y&&await i();}if(a==="open")if(e.user?.id){let l=jidNormalizedUser(e.user.id).split("@")[0],h=e.user.name||e.user.verifiedName;r.spinner.success(` Connected as ${cristal(h||l)}`);}else r.spinner.success(" Connected!");r.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:o})=>{t.status="syncing",t.syncProgress=o,r.spinner.start(" Syncing messages history..."),o&&r.spinner.update(` Syncing messages history ${o+"%"}`),o==100&&(r.spinner.success(" Syncing messages history completed!"),t.syncCompleted=true),r.set("connection",t),r.events.emit("connection",t);});}};var se={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",declinePaymentRequestMessage:"declinePaymentRequest",cancelPaymentRequestMessage:"cancelPaymentRequest",templateMessage:"template",stickerMessage:"sticker",groupInviteMessage:"groupInvite",templateButtonReplyMessage:"buttons",productMessage:"product",deviceSentMessage:"deviceSent",listMessage:"list",viewOnceMessage:"viewOnce",orderMessage:"order",listResponseMessage:"list",ephemeralMessage:"ephemeral",invoiceMessage:"invoice",buttonsMessage:"buttons",buttonsResponseMessage:"buttons",paymentInviteMessage:"paymentInvite",interactiveMessage:"interactive",reactionMessage:"reaction",stickerSyncRmrMessage:"sticker",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"};var j=n=>{let e;Array.isArray(n)?e=n.join("|"):typeof n=="string"?e=n:e=String(n);let t=2166136261,i=e.length;for(let s=0;s<i;s++)t^=e.charCodeAt(s),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return "Z4CD"+(t>>>0).toString(16).padStart(8,"0").toUpperCase()},ne=(n="")=>{if(!n)return [];let e=new Set;for(let t of n.matchAll(/@(\d+)/g))e.add(t[1]);return g.toArray(e)};var oe=n=>g.omit(n,["url","contextInfo","fileSha256","fileEncSha256","mediaKey","directPath","waveform","thumbnail","jpegThumbnail","thumbnailEncSha256","thumbnailSha256","thumbnailDirectPath","firstFrameSidecar","streamingSidecar","scansSidecar","callKey","message","key","midQualityFileSha256"]),re=n=>{if(!n)return {leaf:void 0,chain:[]};let e=extractMessageContent(n)||n,t=[];for(;e&&typeof e=="object";){let i=getContentType(e);if(!i)break;t.push(i);let s=e[i];if(!s||typeof s!="object"){e=s;break}e=s;}return {leaf:e,chain:t}};var S=class{constructor(e){this.client=e;r.get("connection")?.status!="syncing"&&this.initialize();}async initialize(){r.get("socket").ev.on("messages.upsert",async({messages:t,type:i})=>{if(i==="notify")for(let s of t){let o=await this.parse(s);o&&(await this.client.middleware.run({messages:o}),r.events.emit("messages",o));}});}async parse(e){if(console.log(JSON.stringify(e,null,2)),e?.category==="peer"||!e.message||!e?.key?.id||e?.messageStubType||e?.messageStubParameters||e?.message?.botInvokeMessage||e.message?.protocolMessage?.peerDataOperationRequestResponseMessage)return;let t=e,i=r.get("socket"),s={},o=re(e.message),a=o.chain.at(-1),c=o.leaf;s.uniqueId=null,s.channelId=null,s.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,s.chatAddress=e?.key?.addressingMode,s.chatType=se[a],s.receiverId=jidNormalizedUser(i?.user?.id||""),s.receiverName=w(i?.user?.name||i?.user?.verifiedName),s.roomId=jidNormalizedUser(e?.key?.remoteJid);let d=await this.client.db("chats").get(s.roomId),l=await this.client.db("contacts").get(s.roomId),h=x(d,["name","verifiedName"]),y=x(l,["notify","name"]);return s.roomName=h||y||null,s.senderLid=x([e?.key],["remoteJidAlt","participant"]),s.senderId=jidNormalizedUser(e?.participant||e?.key?.participant||e?.key?.remoteJid),s.senderName=w(e?.pushName||e?.verifiedBizName),s.senderDevice=getDevice(s.chatId),s.channelId=j([s.roomId,s.senderId]),s.uniqueId=j([s.channelId,s.chatId]),s.timestamp=Number(e?.messageTimestamp),s.text=c?.text||c?.caption||c?.name||c?.displayName||c?.conversation||c?.contentText||c?.selectedDisplayText||c||null,s.text=w(s.text),s.mentions=ne(s.text),s.links=te(s.text||""),s.isFromMe=e?.key?.fromMe||false,s.isTagMe=s.mentions?.includes(s.receiverId.split("@")[0]),s.isPrefix=s.text?.startsWith(this.client.options?.prefix),s.isSpam=false,s.isGroup=s.roomId?.includes("@g.us"),s.isNewsletter=s.roomId?.includes("@newsletter"),s.isStory=s.roomId?.includes("@broadcast"),s.isViewOnce=false,s.isEdited=false,s.isDeleted=false,s.isPinned=false,s.isUnPinned=false,s.isBroadcast=!!e?.broadcast,s.isEphemeral=!!N(F(e.message),"ephemeralSettingTimestamp"),s.isForwarded=!!N(F(e.message),"forwardingScore"),s.citation={},s.chatType!=="text"&&(s.media={...oe(c),buffer:()=>downloadMediaMessage(e,"buffer",{}),stream:()=>downloadMediaMessage(e,"stream",{})}),s.message=()=>t,s.replied=null,s}};var T=class{constructor(e){this.client=e;new C(e),new S(e),new k(e),this.initialize();}async initialize(){let e=r.get("socket");e.ev.on("groups.update",async([t])=>{let i=await e.groupMetadata(t.id);r.groupCache.set(t.id,i);}),e.ev.on("group-participants.update",async t=>{let i=await e.groupMetadata(t.id);r.groupCache.set(t.id,i);}),e?.ev.on("messaging-history.set",async t=>{let{chats:i,contacts:s,messages:o}=t;for(let a of i)await this.client.db("chats").push(a.id,a);for(let a of s)await this.client.db("contacts").push(a.id,a);for(let a of o){if(!a.message||a?.category==="peer"||a.message?.protocolMessage)return;await this.client.db("messages").push(a.key.remoteJid,a);}}),e?.ev.on("messages.upsert",async({messages:t})=>{for(let i of t){if(!i.message||i?.category==="peer"||i.message?.protocolMessage)return;await this.client.db("messages").push(i.key.remoteJid,i);}}),e?.ev.on("chats.upsert",async t=>{for(let i of t)await this.client.db("chats").push(i.id,i);}),e?.ev.on("contacts.upsert",async t=>{for(let i of t)await this.client.db("contacts").push(i.id,i);}),e?.ev.on("messages.update",async t=>{console.log("\u{1F50D} ~ initialize ~ src/Listener/index.ts:72 ~ events:",t);for(let{key:i,update:s}of t){if(!s.pollUpdates)continue;let o=await this.client.db("messages").get(i.remoteJid);if(!o)continue;let a=getAggregateVotesInPollMessage({message:o,pollUpdates:s.pollUpdates});console.log("poll aggregation:",a);}});}};var P=class{stack=[];use(e){return this.stack.push(e),this}async run(e){let t=-1,i=async s=>{if(s<=t)throw "next() called multiple times";t=s;let o=this.stack[s];if(o)try{await o(e,()=>i(s+1));}catch(a){throw console.error("Middleware error:",a),a}};await i(0);}};var ce=class{constructor(e){this.options=e;this.options=K(V,e),this.initialize();}middleware=new P;async initialize(){await X(),await _(this),new T(this);}db(e){return r.lowdb(this.options.session,`stores/${e}.json`)}on(e,t){r.events.on(e,t);}use(e){return this.middleware.use(e),this}};export{ce as Client,L as Lowdb,M as createLowdb,te as extractUrls,N as findGlobalWord,H as getLatestLibVersion,ee as ignoreLint,w as normalizeText,x as pickKeysFromArray,ss as randomize,_ as registerAuthCreds,Q as removeAuthCreds,ts as shuffleString,De as toJson,F as toString,q as useAuthState};
|
|
1
|
+
import Gt,{URL_REGEX,extractMessageContent,getContentType,BufferJSON,initAuthCreds,proto,makeCacheableSignalKeyStore,isJidBroadcast,generateWAMessageFromContent,generateMessageIDV2,isJidGroup,delay,DisconnectReason,jidNormalizedUser,getDevice,downloadMediaMessage}from'baileys';import Pe,{readFile,mkdir,writeFile,unlink,readdir,rmdir,stat}from'fs/promises';import {Mutex}from'async-mutex';import*as Le from'path';import Le__default,{dirname,join}from'path';import {createSpinner}from'nanospinner';import $e from'node-cache';import {EventEmitter}from'events';import Ct from'pino';import Ge,{cristal}from'gradient-string';import b,{isBuffer,isArrayBuffer,isString}from'lodash';import {fileTypeFromBuffer}from'file-type';import H from'fluent-ffmpeg';import Bt from'node-webpmux';import {tmpdir}from'os';import Re from'sharp';import Zt from'figlet';import Yt from'qrcode-terminal';import {RateLimiterMemory}from'rate-limiter-flexible';import u,{z}from'zod';import*as be from'fs';import {pathToFileURL}from'url';var qe=(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 Ie=class{data=new Map;cache=new Map;set(e,t){this.data.set(e,{...this.data.get(e),...t});}get(e){return this.data.get(e)||{}}update(e,t){let i=this.get(e);this.set(e,t(i));}delete(e){this.data.delete(e);}has(e){return this.data.has(e)}lowdb(e,t){let i=`.session/${e}/${t}`;if(this.cache.has(i))return this.cache.get(i);let n=q(i);return this.cache.set(i,n),n}spinner=createSpinner("",{color:"green"});logger=Ct({level:"silent",enabled:false});events=new EventEmitter;groupCache=new $e({stdTTL:300,useClones:false});collectors=new Map},a=new Ie;var w=o=>o,Ve=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(o){throw o}},Ke=async o=>{try{let e=`.session/${o}/creds.json`;await Pe.unlink(e);}catch(e){throw a.spinner.error(`Failed to remove auth creds for session "${o}"!`),e}},R=(o="")=>o?.length?o.normalize("NFKD").replace(/[\u0000-\u001F\u007F-\u009F\u200B-\u200F\u2028-\u202F\u2060-\u206F\uFEFF\uFFF9-\uFFFB]/gu,"").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u20D0-\u20FF\uFE20-\uFE2F]/gu,"").replace(/[\u202A-\u202E\u2066-\u2069]/gu,"").replace(/\u202E([\s\S]*?)\u202C?/gu,(t,i)=>[...i].reverse().join("")):null;var v=(o,e="lime")=>Array.isArray(e)?Ge(e)(o):Ge([e,e])(o),Ae=o=>{try{return JSON.parse(o)}catch{return b.attempt(()=>JSON.parse(JSON.stringify(o)||"{}"))}},te=o=>{try{return JSON.stringify(o)}catch{let e=b.attempt(()=>JSON.stringify(Ae(o)||"{}"));return b.isError(e)?"{}":e}},Vs=(o="")=>b.shuffle(o).join(""),se=(o="",e="")=>o?b.includes(o.toLowerCase(),e.toLowerCase()):null,He=(o="")=>o?b.castArray(o.match(URL_REGEX)||[]):[],Ks=o=>o[Math.floor(Math.random()*o.length)],I=(o,e)=>{for(let t of o||[])if(t&&typeof t=="object"){for(let i of e)if(i in t&&t[i]!==void 0&&t[i]!==null)return t[i]}},Ze=(o,e)=>{let t=b.castArray(e),i=(r,c)=>b.every(c,(l,p)=>r?.[p]===l),n=(r,c)=>b.some(c,(l,p)=>r?.[p]===l),s=r=>b.isArray(r)?b.find(r,s)??r:b.isObject(r)?b.find(t,p=>i(r,p))||b.find(t,p=>n(r,p))?r:b.find(b.values(r),s)??r:null;return s(o)},Gs=(o,e,t)=>new Proxy(o,{apply(i,n,s){e?.(s);let r=Reflect.apply(i,n,s);return t?t(r,s):r}});var F=o=>{let e;Array.isArray(o)?e=o.join("|"):typeof o=="string"?e=o:e=String(o);let t=2166136261,i=e.length;for(let n=0;n<i;n++)t^=e.charCodeAt(n),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return "Z4D3FC"+(t>>>0).toString(16).padStart(8,"0").toUpperCase()},Qe=(o="")=>{if(!o)return [];let e=new Set;for(let t of o.matchAll(/@(\d+)/g))e.add(t[1]);return b.toArray(e)},Ee=(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 b.flatMap([...e],t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},K=o=>b.isEmpty(o)?[]:b.map([...o],e=>`${e}@s.whatsapp.net`),Ye=o=>b.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"]),G=o=>{if(!o)return {leaf:void 0,chain:[]};let e=extractMessageContent(o)||o,t=[];for(;e&&typeof e=="object";){let i=getContentType(e);if(!i)break;t.push(i);let n=e[i];if(!n||typeof n!="object"){e=n;break}e=n;}return {leaf:e,chain:t}},L=o=>Number(o?.split("@")[0]);var Ot=qe("@ffmpeg-installer/ffmpeg").path,Dt=qe("@ffprobe-installer/ffprobe").path;H.setFfmpegPath(Ot);H.setFfprobePath(Dt);var h={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"}},k=class{static generateUniqueId(){return `${Date.now()}_${Math.random().toString(36).slice(2,11)}`}static createTempPath(e,t){return Le__default.join(tmpdir(),`${e}_${this.generateUniqueId()}.${t}`)}static async cleanup(e){await Promise.allSettled(e.map(t=>Pe.unlink(t)));}static async safeReadFile(e){try{return await Pe.readFile(e)}catch{throw new Error(`Failed to read file: ${e}`)}}static async safeWriteFile(e,t){try{await Pe.writeFile(e,t);}catch{throw new Error(`Failed to write file: ${e}`)}}},A=class{static async toBuffer(e){if(isBuffer(e))return e;if(isArrayBuffer(e))return Buffer.from(e);if(isString(e))return this.fromString(e);throw new Error("Invalid input type: expected string, Buffer, or ArrayBuffer")}static async fromString(e){return e.startsWith("http://")||e.startsWith("https://")?this.fromUrl(e):Buffer.from(e,"base64")}static async fromUrl(e){try{let t=await fetch(e);if(!t.ok)throw new Error(`HTTP ${t.status}: ${t.statusText}`);let i=await t.arrayBuffer();return Buffer.from(i)}catch(t){throw new Error(`Failed to fetch URL: ${t.message}`)}}},O=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(h.MIME.IMAGE)||e.startsWith(h.MIME.VIDEO)}static isAnimated(e){return e===h.MIME.GIF||e.startsWith(h.MIME.VIDEO)}},Z=class{static async process(e){return new Promise((t,i)=>{let n=H(e.input).output(e.output);for(let s=0;s<e.options.length;s++){let r=e.options[s];r.startsWith("-")&&s+1<e.options.length&&!e.options[s+1].startsWith("-")?(n.outputOptions(r,e.options[s+1]),s++):n.outputOptions(r);}n.on("end",async()=>{try{await e.onEnd(),t();}catch(s){i(s);}}).on("error",async s=>{try{await e.onError(s);}finally{i(s);}}).run();})}static async getDuration(e){return new Promise((t,i)=>{H.ffprobe(e,(n,s)=>{if(n)return i(n);t(s.format.duration||0);});})}},ie=class{static async getWaAudio(e,t="opus"){let i=await A.toBuffer(e),n=await fileTypeFromBuffer(i);O.validate(n,h.MIME.AUDIO);let s=k.createTempPath("audio_in","wav"),r=t==="opus"?"ogg":"mp3",c=k.createTempPath("audio_out",r);await k.safeWriteFile(s,i);let l;try{let p=t==="opus"?["-vn","-c:a","libopus","-b:a","48k","-ac","1","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","opus"]:["-vn","-c:a","libmp3lame","-b:a","128k","-ac","2","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","mp3"];return await Z.process({input:s,output:c,options:p,onEnd:async()=>{l=await k.safeReadFile(c);},onError:async()=>{await k.cleanup([s,c]);}}),await k.cleanup([s,c]),l}catch(p){throw await k.cleanup([s,c]),new Error(`${t.toUpperCase()} conversion failed: ${p.message}`)}}},N=class{static async getThumbnail(e){let t=await A.toBuffer(e),i=await fileTypeFromBuffer(t);O.validate(i,h.MIME.VIDEO);let n=k.createTempPath("video","mp4"),s=k.createTempPath("thumb","jpg");await k.safeWriteFile(n,t);let r;try{return await new Promise((c,l)=>{H(n).screenshots({timestamps:[h.THUMBNAIL.TIMESTAMP],filename:Le__default.basename(s),folder:Le__default.dirname(s),size:`${h.THUMBNAIL.SIZE}x${h.THUMBNAIL.SIZE}`,quality:h.THUMBNAIL.QUALITY}).on("end",async()=>{try{r=(await k.safeReadFile(s)).toString("base64"),c();}catch(p){l(p);}}).on("error",l);}),await k.cleanup([n,s]),r}catch(c){throw await k.cleanup([n,s]),new Error(`Thumbnail generation failed: ${c.message}`)}}static async getDuration(e){return Z.getDuration(e)}},re=class{static async getThumbnail(e){return (await((await fileTypeFromBuffer(e)).mime===h.MIME.GIF?Re(e,{animated:false}):Re(e)).resize(h.THUMBNAIL.SIZE,h.THUMBNAIL.SIZE,{fit:"cover"}).jpeg({quality:h.THUMBNAIL.QUALITY}).toBuffer()).toString("base64")}static async resizeForSticker(e,t){return Re(e).resize(h.STICKER.SIZE,h.STICKER.SIZE,{fit:"cover",background:{r:0,g:0,b:0,alpha:0}}).webp({quality:t}).toBuffer()}},Q=class{static async getThumbnail(e){let t=await A.toBuffer(e),i=await fileTypeFromBuffer(t);if(!i||!O.isMedia(i.mime))throw new Error("Invalid media type: expected image or video");return i.mime.startsWith(h.MIME.VIDEO)?N.getThumbnail(e):re.getThumbnail(t)}},ne=class{static createExifMetadata(e){let t={"sticker-pack-id":F(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"},i=Buffer.from([73,73,42,0,8,0,0,0,1,0,65,87,7,0,0,0,0,0,22,0,0,0]),n=Buffer.from(JSON.stringify(t),"utf8"),s=Buffer.concat([i,n]);return s.writeUIntLE(n.length,14,4),s}static async processAnimated(e,t,i){let n=this.getExtension(t),s=k.createTempPath("sticker_in",n),r=k.createTempPath("sticker_out","webp");await k.safeWriteFile(s,e);let c=h.STICKER.MAX_DURATION;try{let T=await N.getDuration(s);c=w(Math.min(T,h.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",h.STICKER.MAX_DURATION);}let l=`scale=${h.STICKER.SIZE}:${h.STICKER.SIZE}:force_original_aspect_ratio=increase,crop=${h.STICKER.SIZE}:${h.STICKER.SIZE},fps=${h.STICKER.FPS},format=rgba`,p=Math.max(1,Math.min(100,100-i)),y;try{return await Z.process({input:s,output:r,options:["-vcodec libwebp",`-vf ${l}`,`-q:v ${p}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${c}`,`-compression_level ${h.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{y=await k.safeReadFile(r);},onError:async()=>{await k.cleanup([s,r]);}}),await k.cleanup([s,r]),y}catch(T){throw await k.cleanup([s,r]),new Error(`Animated sticker processing failed: ${T.message}`)}}static getExtension(e){return e===h.MIME.GIF?"gif":e.startsWith(h.MIME.VIDEO)?"mp4":"tmp"}static async create(e,t){try{let i=await A.toBuffer(e),n=await fileTypeFromBuffer(i);if(!n)throw new Error("Unable to detect file type");let s=t?.quality||h.STICKER.DEFAULT_QUALITY,c=O.isAnimated(n.mime)?await this.processAnimated(i,n.mime,s):await re.resizeForSticker(i,s),l=this.createExifMetadata(t),p=new Bt.Image;await p.load(c),p.exif=l;let y=await p.save(null);return Buffer.isBuffer(y)?y:Buffer.from(y)}catch(i){throw new Error(`Sticker creation failed: ${i.message||i}`)}}},oe=class{static async create(e){try{let t=await A.toBuffer(e),i=await fileTypeFromBuffer(t);if(!i)throw new Error("Unable to detect file type");return {document:t,mimetype:i.mime,fileName:F(Date.now().toString()),jpegThumbnail:await Q.getThumbnail(t)}}catch(t){throw new Error(`Document creation failed: ${t.message||t}`)}}},Xe=A.toBuffer.bind(A),et=ie.getWaAudio.bind(ie),mi=N.getThumbnail.bind(N),di=N.getDuration.bind(N),Ne=Q.getThumbnail.bind(Q),tt=ne.create.bind(ne),st=oe.create.bind(oe);var Oe=class o{static inst;fLocks=new Map;kLocks=new Map;maxSize=100;static get(){return this.inst||(this.inst=new o)}getFile(e){let t=this.fLocks.get(e);if(!t){if(this.fLocks.size>=this.maxSize){let i=this.fLocks.keys().next().value;this.fLocks.delete(i);}t=new Mutex,this.fLocks.set(e,t);}return t}getKey(e){let t=this.kLocks.get(e);if(!t){if(this.kLocks.size>=this.maxSize){let i=this.kLocks.keys().next().value;this.kLocks.delete(i);}t=new Mutex,this.kLocks.set(e,t);}return t}},De=class{data;path;pool;size;chunkDir;replacer;reviver;loaded=false;flushMode;debounceMs;flushTimer=null;dirty=false;constructor(e,t,i=2*1024*1024,n="debounce",s=200){this.data=new Map,this.path=e,this.pool=Oe.get(),this.size=i,this.chunkDir=`${e}.c`,this.replacer=t?.replacer||null,this.reviver=t?.reviver||null,this.flushMode=n,this.debounceMs=s;}async ensureLoaded(){this.loaded||(await this.read(),this.loaded=true);}scheduleFlush(){if(this.flushMode!=="manual"){if(this.flushMode==="sync"){this.write();return}this.dirty=true,!this.flushTimer&&(this.flushTimer=setTimeout(()=>{this.flushTimer=null,this.dirty&&(this.dirty=false,this.write());},this.debounceMs));}}async read(){return this.pool.getFile(this.path).runExclusive(async()=>{try{let t=await readFile(this.path,"utf-8"),i=JSON.parse(t,this.reviver);this.data.clear();let n=[];for(let[s,r]of Object.entries(i))this.isMeta(r)?n.push(this.loadChunk(s,r)):this.data.set(s,r);return await Promise.all(n),this.loaded=!0,this.data}catch{return await mkdir(dirname(this.path),{recursive:true}),this.data.clear(),this.loaded=true,this.data}})}async write(){return this.pool.getFile(this.path).runExclusive(async()=>{let t={},i=[];for(let[s,r]of this.data){if(this.isMeta(r)){t[s]=r;continue}JSON.stringify(r,this.replacer).length>this.size?i.push(this.saveChunk(s,r).then(l=>{t[s]=l;})):t[s]=r;}await Promise.all(i);let n=JSON.stringify(t,this.replacer,2);await writeFile(this.path,n,"utf-8");})}async set(e,t){await this.ensureLoaded(),await this.pool.getKey(e).runExclusive(async()=>{this.data.set(e,t),this.scheduleFlush();});}async push(e,t){await this.ensureLoaded(),await this.pool.getKey(e).runExclusive(async()=>{let n=this.data.get(e),s;Array.isArray(n)?s=n:n===void 0?s=[]:s=[n],s.push(t),this.data.set(e,s),this.scheduleFlush();});}async get(e){if(await this.ensureLoaded(),typeof e=="string")return this.data.get(e);let t=Array.from(this.data.values()).flat();return Ze(t,e)}async all(){return await this.ensureLoaded(),Array.from(this.data.entries())}async delete(e){return await this.ensureLoaded(),this.pool.getKey(e).runExclusive(async()=>{let i=this.data.get(e);this.isMeta(i)&&await this.delChunk(e,i);let n=this.data.delete(e);return this.scheduleFlush(),n})}async saveChunk(e,t){let i=JSON.stringify(t,this.replacer),n=Buffer.from(i,"utf-8"),s=Math.ceil(n.length/this.size);await mkdir(this.chunkDir,{recursive:true});let r={v:1,k:e,t:s,s:this.size,c:n.length,m:Date.now().toString(36)},c=[];for(let l=0;l<s;l++){let p=l*this.size,y=Math.min(p+this.size,n.length),T=n.subarray(p,y);c.push(writeFile(join(this.chunkDir,`${e}.${l}.json`),JSON.stringify({i:l,d:T.toString("base64")})));}return c.push(writeFile(join(this.chunkDir,`${e}.manifest.json`),JSON.stringify(r))),await Promise.all(c),{t:s,s:this.size,k:e}}async loadChunk(e,t){let i=join(this.chunkDir,`${e}.manifest.json`),n=JSON.parse(await readFile(i,"utf-8")),s=[];for(let p=0;p<n.t;p++)s.push(readFile(join(this.chunkDir,`${e}.${p}.json`),"utf-8").then(y=>Buffer.from(JSON.parse(y).d,"base64")));let r=await Promise.all(s),c=Buffer.concat(r),l=JSON.parse(c.toString("utf-8"),this.reviver);this.data.set(e,l);}async delChunk(e,t){let i=[];for(let n=0;n<t.t;n++)i.push(unlink(join(this.chunkDir,`${e}.${n}.json`)).catch(()=>{}));i.push(unlink(join(this.chunkDir,`${e}.manifest.json`)).catch(()=>{})),await Promise.all(i);try{(await readdir(this.chunkDir)).length===0&&await rmdir(this.chunkDir);}catch{}}isMeta(e){return e?.t&&e?.s&&e?.k}},q=(o,e)=>new De(o,e?.BufferJSON,e?.size,e?.flushMode,e?.debounceMs);var at=async o=>{a.spinner.start(" Initializing auth state...");let e=await stat(o).catch(()=>{});if(e){if(!e.isDirectory())throw a.spinner.error(` Failed to open credentials
|
|
2
|
+
`),`found something that is not a directory at ${o}, either delete it or specify a different location`}else await mkdir(o,{recursive:true});let t=q(`${o}/auth/creds.json`,{BufferJSON:BufferJSON}),i=q(`${o}/auth/keys.json`,{BufferJSON:BufferJSON,size:512*1024});await Promise.all([t.read(),i.read()]);let n=await t.get("creds")||initAuthCreds();return a.spinner.success(" Generate auth successfully"),{state:{creds:n,keys:{get:async(s,r)=>{let c={};return await Promise.all(r.map(async l=>{let p=`${s}:${l}`,y=await i.get(p);s==="app-state-sync-key"&&y&&(y=proto.Message.AppStateSyncKeyData.fromObject(y)),c[l]=y;})),c},set:async s=>{let r=[];for(let c in s)for(let l in s[c]){let p=s[c][l],y=`${c}:${l}`;p?r.push(i.set(y,p)):r.push(i.delete(y).then(()=>{}));}await Promise.all(r),await i.write();}}},saveCreds:async()=>{await t.set("creds",n),await t.write();}}};var Kt=new $e,ct=(o,e)=>({logger:a.logger,printQRInTerminal:false,defaultQueryTimeoutMs:void 0,markOnlineOnConnect:o.options.autoOnline,syncFullHistory:o.options.syncFullHistory,msgRetryCounterCache:new $e,mediaCache:new $e({stdTTL:60}),cachedGroupMetadata:async t=>Kt.get(t),shouldIgnoreJid:t=>isJidBroadcast(t),auth:{creds:e.creds,keys:makeCacheableSignalKeyStore(e.keys,a.logger)},getMessage:async t=>{if(t?.id)return await o.db("messages").get(t.id)}});var lt=async o=>{let e=`.session/${o.options.session}`;console.info=()=>{};let{state:t,saveCreds:i}=await at(e),n=ct(o,t),s=Gt(n);s.ev.on("creds.update",i),a.set("socket",s);};var ae=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=a.get("socket");e.ev.on("call",async t=>{for(let i of t){let n=await this.parse(i);n&&(await this.client.middleware.run({calls:n}),await this.client.plugins.execute(this.client,{messages:n}),a.events.emit("calls",n),this.client.options?.autoRejectCall&&await e.rejectCall(n.callId,n.callerId));}});}async parse(e){let t=a.get("socket"),i={};return i.callId=e.id,i.callerId=jidNormalizedUser(e.from),i.callerName=await this.client.getRoomName(i.callerId),i.roomId=jidNormalizedUser(e.chatId),i.roomName=R(t?.user?.name||t?.user?.verifiedName),i.date=e.date,i.offline=e.offline,i.status=e.status,i.isVideo=!!e.isVideo,i.isGroup=!!e.isGroup,this.client.logs.call(i),i}};var ce={version:"1.1.40",author:"zaadevofc"};var ut=o=>{Yt.generate(o,{small:true},e=>{console.log(e);});},mt=async()=>{console.clear(),a.spinner.start(" Checking for updates...");let o=await Ve(),e=ce.version===o;a.spinner.stop();let t="Zaileys",i=`
|
|
3
|
+
by ${ce.author} \xB7 v${ce.version}`,n=`${e?"Already using latest version!":`Update available! (v${o})`}
|
|
4
|
+
`,s=e?"lime":"orange",r=await Zt.text(t),c=cristal(r);console.log(c),console.log(v(i,"#383838ff")),console.log(v(n,s));};var pe=class{constructor(e){this.client=e;this.initialize();}async initialize(){a.spinner.start(" Initializing connection...");let e=a.get("socket"),t={},i=async()=>{t.status="reload",a.spinner.warn(" Connection lost. Attempting auto-reload..."),await this.client.initialize();},n=async()=>{await delay(3e3),a.spinner.warn(" Invalid session. Attempting auto cleaning creds..."),await delay(3e3),await Ke(this.client.options.session),await i();};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 s=new Date(t.authTimeout).toLocaleTimeString(),r=await e.requestPairingCode(this.client.options.phoneNumber.toString());a.spinner.warn(` Pairing expired at ${cristal(s)}`),a.spinner.warn(` Pairing code: ${r}`),t.code=r;}catch{await n();}}e.ev.on("connection.update",async s=>{let{connection:r,lastDisconnect:c,qr:l}=s;if(t.status=r||"connecting",t.authType=this.client.options.authType,a.spinner.update(" Connection status: "+cristal(t.status)),this.client.options.authType==="qr"&&l){t.authTimeout=Date.now()+6e4;let p=new Date(t.authTimeout).toLocaleTimeString();a.spinner.warn(" Please scan the QR code..."),a.spinner.warn(` Qr code expired at ${cristal(p)}`),ut(l),t.qr=l;return}if(r==="close"){let p=w(c?.error)?.output?.statusCode,y=c?.error?.message||"",T=typeof p=="number"&&p!==DisconnectReason.loggedOut;a.spinner.error(`[${p} - Closed] ${y}`),(p===401||p===405||p===500)&&(a.spinner.error(" Invalid session, please delete manually!"),a.spinner.error(` Session "${this.client.options.session}" has not valid, please delete it!
|
|
5
|
+
`),await n()),T&&await i();}if(r==="open")if(e.user?.id){let p=jidNormalizedUser(e.user.id).split("@")[0],y=e.user.name||e.user.verifiedName;a.spinner.success(` Connected as ${cristal(y||p)}`);}else a.spinner.success(" Connected!");a.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:s})=>{t.status="syncing",t.syncProgress=s,a.spinner.start(" Syncing messages history..."),s&&a.spinner.update(` Syncing messages history ${s+"%"}`),s==100&&(a.spinner.success(" Syncing messages history completed!"),t.syncCompleted=true),a.events.emit("connection",t);});}};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",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 ue=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 de=class{constructor(e){this.client=e;this.limiter=new ue(e),this.initialize();}limiter;maxReplies=3;async initialize(){let e=a.get("socket");e.ev.on("messages.upsert",async({messages:t,type:i})=>{if(i==="notify")for(let n of t){let s=await this.parse(n);s&&(this.client.collector.push(s)||(await this.client.middleware.run({messages:s}),await this.client.plugins.execute(this.client,{messages:s}),a.set("message",s),a.events.emit("messages",s)),this.client.options.autoRead&&await e.readMessages([s.message().key]));}});}async parse(e,t){if(e?.category==="peer"||!e?.message||!e?.key?.id||e?.messageStubType||e?.messageStubParameters?.length||e.message?.protocolMessage?.peerDataOperationRequestResponseMessage||e.message?.groupStatusMentionMessage)return;let i=e,n=a.get("socket"),s={},r=G(e.message),c=r.chain.at(-1),l=r.leaf;l?.message&&(r=G(l.message),c=r.chain.at(-1),l=r.leaf),s.uniqueId=null,s.channelId=null,s.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,s.chatType=dt[c],s.receiverId=jidNormalizedUser(n?.user?.id||""),s.receiverName=R(n?.user?.name||n?.user?.verifiedName),s.roomId=jidNormalizedUser(e?.key?.remoteJid);let p=l?.type===0,y=l?.type===1,T=l?.type===2,ee=s.roomId?.includes("@newsletter"),Te=!!e?.message?.questionMessage,z=e?.key?.fromMe||false;if(z&&this.client.options.ignoreMe&&t!=="replied")return;let Se=l?.key?.id;if(p||y||T){let S=(await this.client.db("messages").get(s.roomId))?.find(B=>B.key.id===Se);if(!S)return;e=S,r=G(e.message),c=r.chain.at(-1),l=r.leaf;}if(s.roomName=await this.client.getRoomName(s.roomId),s.senderLid=I([e?.key],["remoteJidAlt","participant"])||null,s.senderId=jidNormalizedUser(e?.participant||e?.key?.participant||e?.key?.remoteJid),s.senderName=R(e?.pushName||e?.verifiedBizName),s.senderDevice=getDevice(s.chatId),s.channelId=F([s.roomId,s.senderId]),s.uniqueId=F([s.channelId,s.chatId]),s.timestamp=Number(e?.messageTimestamp)*1e3,ee){let C=await n.newsletterMetadata("jid",s.roomId);s.roomName=w(C.thread_metadata.name)?.text,s.senderId=null,s.senderLid=null;}if(z&&(s.senderLid=jidNormalizedUser(n.user.lid),s.senderId=s.receiverId,s.senderName=s.receiverName),s.text=l?.text||l?.caption||l?.name||l?.displayName||l?.conversation||l?.contentText||l?.selectedDisplayText||l||null,l?.name=="menu_options"&&(s.text=Ae(l?.paramsJson)?.id),s.text=R(s.text),s.mentions=Qe(s.text),s.links=He(s.text||""),s.isBot=s.chatId.startsWith("BAE5")||s.chatId.startsWith("3EB0")||s.chatId.startsWith("Z4D3FC"),s.isFromMe=z,s.isTagMe=s.mentions?.includes(s.receiverId.split("@")[0]),s.isPrefix=s.text?.startsWith(this.client.options?.prefix)||false,s.isSpam=await this.limiter.isSpam(s.channelId),s.isGroup=s.roomId?.includes("@g.us"),s.isNewsletter=ee,s.isQuestion=Te,s.isStory=s.roomId?.includes("@broadcast"),s.isViewOnce=false,s.isEdited=!!se(te(r),"editedMessage"),s.isDeleted=p,s.isPinned=y,s.isUnPinned=T,s.isBroadcast=!!e?.broadcast,s.isEphemeral=!!se(te(l?.contextInfo),"ephemeralSettingTimestamp"),s.isForwarded=!!se(te(l?.contextInfo),"forwardingScore"),s.citation=null,this.client.options.citation){s.citation=s.citation||{};let C=this.client.options.citation;for(let S of Object.keys(C)){let B=C[S];s.citation[S]=async()=>{let U=await B(),Ce=[L(s.roomId),L(s.senderLid),L(s.senderId)];return !!b.intersection(Ce,U).length};}}s.chatType!=="text"&&(s.media={...Ye(l),buffer:()=>downloadMediaMessage(e,"buffer",{}),stream:()=>downloadMediaMessage(e,"stream",{})}),s.message=()=>i,s.replied=null;let j=l?.contextInfo?.quotedMessage,_=I([j],["viewOnceMessageV2Extension","viewOnceMessage"]),W=l?.contextInfo?.stanzaId;if(j&&!this.maxReplies){this.maxReplies--;let S=(await this.client.db("messages").get(s.roomId))?.find(U=>U.key.id===W),B={...S,...G(_).leaf};_?(s.replied=await this.parse(B,"replied"),s.replied.isViewOnce=true):s.replied=await this.parse(S,"replied"),this.maxReplies=3;}return this.client.logs.message(s),s}};var fe=class{constructor(e){this.client=e;this.connection=new pe(e),this.messages=new de(e),this.calls=new ae(e),this.initialize();}connection;messages;calls;async initialize(){let e=a.get("socket");e.ev.on("groups.update",async([t])=>{let i=await e.groupMetadata(t.id);a.groupCache.set(t.id,i);}),e.ev.on("group-participants.update",async t=>{let i=await e.groupMetadata(t.id);a.groupCache.set(t.id,i);}),e?.ev.on("messaging-history.set",async t=>{let{chats:i,contacts:n,messages:s}=t;for(let r of i)await this.client.db("chats").push(r.id,r);for(let r of n)await this.client.db("contacts").push(r.id,r);for(let r of s){if(!r.message&&!r.key.isViewOnce||r?.category==="peer"||r.message?.protocolMessage||r.message?.groupStatusMentionMessage)return;await this.client.db("messages").push(r.key.remoteJid,r);}}),e?.ev.on("messages.upsert",async({messages:t})=>{for(let i of t){if(!i.message&&!i.key.isViewOnce||i?.category==="peer"||i.message?.protocolMessage||i.message?.groupStatusMentionMessage)return;await this.client.db("messages").push(i.key.remoteJid,i);}}),e?.ev.on("chats.upsert",async t=>{for(let i of t)await this.client.db("chats").push(i.id,i);}),e?.ev.on("contacts.upsert",async t=>{for(let i of t)await this.client.db("contacts").push(i.id,i);});}};var Y=(o,e)=>{let t=o.safeParse(e);if(t.success)return t.data;throw console.error(t.error),"Invalid data"};var rs=u.object({type:u.literal("quick_reply"),text:u.string()}),ns=u.object({type:u.literal("cta_url"),url:u.url(),text:u.string()}),os=u.object({type:u.literal("cta_copy"),copy:u.string(),text:u.string()}),as=u.object({type:u.literal("cta_call"),text:u.string(),phoneNumber:u.string()}),cs=u.object({type:u.literal("single_select"),text:u.string(),section:u.object({title:u.string(),rows:u.object({id:u.string(),title:u.string(),header:u.string().optional(),description:u.string().optional()}).array()}).array()}),ls=u.object({type:u.literal("interactive"),footer:u.string().optional(),data:u.union([rs,ns,os,as,cs]).array()}),ps=u.object({type:u.literal("simple"),footer:u.string().optional(),data:u.object({id:u.string(),text:u.string()}).array()}),gt=u.union([ps,ls]);var X=u.url().or(u.base64()).or(u.instanceof(Buffer)),ht=u.object({text:u.string()}).passthrough(),us=u.object({image:X,caption:u.string().optional()}).passthrough(),ms=u.object({audio:X,caption:u.string().optional(),ptt:u.boolean().optional()}).passthrough(),ds=u.object({video:X,caption:u.string().optional(),ptv:u.boolean().optional()}).passthrough(),fs=u.object({sticker:X,caption:u.string().optional()}).passthrough(),gs=u.object({document:X,caption:u.string().optional(),fileName:u.string().optional()}).passthrough(),hs=u.object({location:u.object({latitude:u.number(),longitude:u.number(),url:u.url().optional(),title:u.string().optional(),footer:u.string().optional()}).optional()}).passthrough(),ys=u.object({title:u.string().optional(),contacts:u.object({fullname:u.string(),phoneNumber:u.number(),organization:u.string().optional()}).array()}),ws=u.object({poll:u.object({name:u.string(),answers:u.string().array(),isMultiple:u.boolean().default(false).optional()})}),yt=u.object({replied:u.custom().optional(),isForwardedMany:u.boolean().optional(),isViewOnce:u.boolean().optional(),banner:u.custom().optional(),buttons:gt.optional()});u.enum(["forward","button","edit","delete"]);var Ms=u.union([ht,us,ms,ds,fs,gs,hs,ys,ws]),wt=u.string().or(u.intersection(Ms,yt.omit({buttons:true}))),Mt=u.intersection(ht,yt.omit({banner:true}));var ge=class{toNativeSimple(e){return e.map(({id:t,text:i})=>({name:"quick_reply",buttonParamsJson:JSON.stringify({display_text:i,id:t})}))}toNativeInteractive(e){let t={quick_reply:i=>({display_text:i.text,id:i.id}),cta_url:i=>({display_text:i.text,url:i.url,merchant_url:i.url}),cta_copy:i=>({display_text:i.text,id:i.id,copy_code:i.copy}),cta_call:i=>({display_text:i.text,phone_number:i.phoneNumber}),single_select:i=>({title:i.text,sections:i.section})};return e.map(i=>({name:i.type,buttonParamsJson:JSON.stringify(t[i.type](i))}))}build(e){let t=w(e).buttons,i=t?.data||[],s=t?.type=="simple"?this.toNativeSimple(i):this.toNativeInteractive(i);return {body:{text:w(e).text},footer:t.footer?{text:t.footer}:void 0,nativeFlowMessage:{buttons:s}}}async send(e,t,i){let n=a.get("socket"),s=n.authState?.creds?.me?.id||n.user?.id,r=this.build(t),c=generateWAMessageFromContent(e,{interactiveMessage:r},{userJid:s,messageId:generateMessageIDV2(s),...i});return await n.relayMessage(e,c.message,{messageId:c.key.id,...i,additionalNodes:[{tag:"biz",attrs:{},content:[{tag:"interactive",attrs:{type:"native_flow",v:"1"},content:[{tag:"native_flow",attrs:{v:"9",name:"mixed"}}]}]}]}),n.config?.emitOwnEvents&&!isJidGroup(e)&&process.nextTick(()=>n.upsertMessage?.(c,"append")),c}};var he=class{constructor(e){this.client=e;}async signal(e,t,i,n){i!="delete"&&(i=="button"?t=Y(Mt,t):t=Y(wt,t));let s=a.get("socket"),r={},c={},l=b.isString(t),p=this.client.options?.fakeReply?.provider,y=this.client.options?.autoMentions,T=this.client.options?.autoPresence,ee=b.has(t,"replied"),Te=b.has(t,"banner"),z=b.has(t,"isViewOnce"),Se=i=="button",j=b.has(t,"image"),_=b.has(t,"video"),W=b.has(t,"audio"),C=b.has(t,"sticker"),S=b.has(t,"document"),B=b.has(t,"location"),U=b.has(t,"contacts"),Ce=b.has(t,"poll"),Ue=j||_||W||C||S,J=l?t:I([t],["text","caption"]);if(T&&(W?await s.sendPresenceUpdate("recording",e):await s.sendPresenceUpdate("composing",e)),y&&(r={...r,mentions:Ee(J),contextInfo:{mentionedJid:Ee(J)}}),ee&&(c.quoted=w(t).replied,p&&(c.quoted.key.remoteJid=je[p],c.quoted.key.participant=je[p])),Te&&(r={...r,contextInfo:{externalAdReply:w(t).banner}},r.contextInfo.externalAdReply.mediaType=1),z&&(r={...r,viewOnce:w(t)?.isViewOnce}),J&&(r={...r,text:J,caption:J},Ue&&delete w(r).text),Ue){let M=I([t],["image","video","audio","sticker","document"]),E=b.isString(M)?{url:M}:M;if(j&&(r={...r,image:E,jpegThumbnail:await Ne(M)}),_){let P=w(t)?.ptv;r={...r,video:E,ptv:P,jpegThumbnail:await Ne(M)};}if(W){let P=w(t)?.ptt;r={...r,audio:await et(M),ptt:P,mimetype:P?"audio/ogg; codecs=opus":"audio/mpeg"};}if(C&&(r={...r,sticker:await tt(M,this.client.options?.sticker)}),S){let P=await st(M);r={...r,fileName:w(t).fileName,...P};}}if(B){let M=w(t).location;r={...r,location:{degreesLatitude:M.latitude,degreesLongitude:M.longitude,url:M.url,address:M.footer,name:M.title}};}if(U){let M=w(t)?.contacts,Je=M?.contacts.map(E=>{let P=["BEGIN:VCARD","VERSION:3.0",`FN:${E.fullname}`,`ORG:${E.organization||""}`,`TEL;type=CELL;type=VOICE;waid=${E.phoneNumber}:${E.phoneNumber}`,"END:VCARD"].join(`
|
|
6
|
+
`);return {displayName:E.fullname,vcard:P}});r={...r,contacts:{displayName:M?.title,contacts:Je}};}if(Ce){let M=w(t)?.poll;r={...r,poll:{name:M.name,values:M.answers,selectableCount:M.isMultiple?1:0,toAnnouncementGroup:true}};}return i=="forward"&&(r={...r,contextInfo:{...w(r).contextInfo,isForwarded:true,forwardingScore:w(t).isForwardedMany?9999:1}}),i=="edit"&&(r={...r,edit:n?.key},await s.sendPresenceUpdate("paused",e)),i=="delete"&&(r={...r,delete:n?.key},await s.sendPresenceUpdate("paused",e)),Se?await new ge().send(e,t,c):await s.sendMessage(e,w(r),c)}async send(e,t){return await this.signal(e,t)}async forward(e,t){return await this.signal(e,t,"forward")}async button(e,t){return await this.signal(e,t,"button")}async edit(e,t){return await this.signal(e.key.remoteJid,t,"edit",e)}async delete(e){return b.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 i=a.get("socket"),n={typing:"composing",recording:"recording",online:"available",offline:"unavailable",paused:"paused"};return await i.sendPresenceUpdate(n[t],e)}async reaction(e,t){return await a.get("socket").sendMessage(e.key.remoteJid,{react:{text:t,key:e?.key}})}};var _e=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").groupCreate(e,K(t))}async participant(e,t,i){return await a.get("socket").groupParticipantsUpdate(e,K(t),i)}async profile(e,t,i){let n=a.get("socket"),s=Buffer.isBuffer(t);switch(i){case "subject":if(!s)return await n.groupUpdateSubject(e,t);case "description":if(!s)return await n.groupUpdateDescription(e,t);case "avatar":return await n.updateProfilePicture(e,Xe(t))}}async setting(e,t){let i=a.get("socket");switch(t){case "open":return await i.groupSettingUpdate(e,"not_announcement");case "close":return await i.groupSettingUpdate(e,"announcement");case "locked":return await i.groupSettingUpdate(e,t);case "unlocked":return await i.groupSettingUpdate(e,t);case "all_member_add":return await i.groupMemberAddMode(e,t);case "admin_add":return await i.groupMemberAddMode(e,t)}}async leave(e){return await a.get("socket").groupLeave(e)}async inviteCode(e,t){let i=a.get("socket");switch(t){case "code":return await i.groupInviteCode(e);case "revoke":return await i.groupRevokeInvite(e);case "accept":return await i.groupAcceptInvite(e);case "info":return await i.groupGetInviteInfo(e)}}async metadata(e){return await a.get("socket").groupMetadata(e)}async requestJoin(e,t,i){let n=a.get("socket");switch(i){case "approve":return await n.groupRequestParticipantsUpdate(e,K(t),i);case "reject":return await n.groupRequestParticipantsUpdate(e,K(t),i)}}async requestJoinList(e){return await a.get("socket").groupRequestParticipantsList(e)}async fetchAllGroups(){return await a.get("socket").groupFetchAllParticipating()}async ephemeral(e,t){let i=a.get("socket"),n={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await i.groupToggleEphemeral(e,n[t])}},ye=class{constructor(e){this.glient=e;this.group=new _e(e);}group};var xs=z.object({maxMessages:z.number().default(20),durationMs:z.number().default(1e4)}).optional(),Ts=z.record(z.string(),z.function({output:z.promise(z.array(z.number()))})).optional(),Ss=z.object({provider:z.enum(["whatsapp","meta","chatgpt","copilot","instagram","tiktok"]).or(z.number())}).optional(),Cs=z.object({packageName:z.string(),authorName:z.string(),quality:z.number()}).optional(),kt=z.object({session:z.string().default("zaileys").optional(),prefix:z.string().optional(),ignoreMe:z.boolean().default(true).optional(),showLogs:z.boolean().default(true).optional(),syncFullHistory:z.boolean().default(true).optional(),autoMarkAI:z.boolean().default(true).optional(),autoMentions:z.boolean().default(true).optional(),autoOnline:z.boolean().default(true).optional(),autoRead:z.boolean().default(true).optional(),autoPresence:z.boolean().default(true).optional(),autoRejectCall:z.boolean().default(true).optional(),limiter:xs,citation:Ts,fakeReply:Ss,sticker:Cs}),Is=z.object({authType:z.literal("pairing"),phoneNumber:z.number()}),As=z.object({authType:z.literal("qr")}),vt=z.union([Is.extend(kt.shape),As.extend(kt.shape)]);z.enum(["connection","messages","calls"]);var we=class{collect(e,t,i){let n=t.max??1/0;if(n<=0){i([]);return}let s=a.collectors.get(e);s&&(clearTimeout(s.timeoutId),s.callback(s.messages),a.collectors.delete(e));let r=setTimeout(()=>{let c=a.collectors.get(e);c&&(c.callback(c.messages),a.collectors.delete(e));},t.timeout);a.collectors.set(e,{messages:[],max:n,filter:t.filter,callback:i,timeoutId:r});}push(e){let t=a.collectors.get(e.channelId);return !t||t.filter&&!t.filter(e)?false:(t.messages.push(e),t.messages.length>=t.max&&(clearTimeout(t.timeoutId),t.callback(t.messages),a.collectors.delete(e.channelId)),true)}has(e){return a.collectors.has(e)}cancel(e){let t=a.collectors.get(e);return t?(clearTimeout(t.timeoutId),t.callback(t.messages),a.collectors.delete(e),t.messages):[]}};var Me=class{constructor(e){this.client=e;this.initialize();}ready=false;getRoomColor(e){return e?.isNewsletter?"blue":e?.isGroup?e?.isGroup?"lime":"#383838ff":"orange"}initialize(){this.client.options.showLogs&&a.events.on("connection",e=>{e?.status==="open"&&(this.ready=true),this.ready&&(console.log(),a.spinner.info("Logs Indicator:"),console.log(v(" \u2022","orange")+" Private Chat"),console.log(v(" \u2022","lime")+" Group Chat"),console.log(v(" \u2022","blue")+" Newsletter Chat"),console.log());});}message(e){if(!this.ready)return;let t=w(this.getRoomColor(e)),i=e?.text?.toLowerCase()?.match("zaileys"),n=v(`[${new Date(e?.timestamp).toTimeString().split(" ")[0]}]`,"#383838ff"),s=v(`${e?.roomName}`,t),r=e?.text?.slice(0,300)||"",c=r?.length>=300?"...":"",l=`${n} \u2192 ${s}
|
|
7
|
+
`;e?.isNewsletter?l+=`${v("[room]","#383838ff")} \u2192 ${v(`${e?.roomName} (${L(e?.roomId)})`,t)}
|
|
8
|
+
`:l+=`${v("[sender]","#383838ff")} \u2192 ${v(`${e?.senderName} (${L(e?.senderId)})`,t)}
|
|
9
|
+
`,l+=`${v(`[${e?.chatType}]`,"#383838ff")} \u2192 ${v(r+c,i?["#ff5f6d","#ffc371"]:"brown")}
|
|
10
|
+
`,l+="\u2014",console.log(l);}call(e){if(!this.ready)return;let t=w(this.getRoomColor(e)),i=v(`[${new Date(e?.date).toTimeString().split(" ")[0]}]`,"#383838ff"),n=v(`${e?.roomName}`,t),s=`${i} \u2192 ${n}
|
|
11
|
+
`;s+=`${v("[caller]","#383838ff")} \u2192 ${v(`${e?.callerName} (${L(e?.callerId)})`,t)}
|
|
12
|
+
`,s+=`${v(`[${e?.status}]`,"#383838ff")} \u2192 ${v(e?.isVideo?"Video Call":"Voice Call","brown")}
|
|
13
|
+
`,s+="\u2014",console.log(s);}};var ke=class{stack=[];use(e){return this.stack.push(e),this}async run(e){let t=-1,i=async n=>{if(n<=t)throw "next() called multiple times";t=n;let s=this.stack[n];if(s)try{await s(e,()=>i(n+1));}catch(r){throw console.error("Middleware error:",r),r}};await i(0);}};var ve=class{plugins=[];pluginsDir;constructor(e=Le.join(process.cwd(),"plugins")){this.pluginsDir=e;}async load(){if(!be.existsSync(this.pluginsDir))return;let e=be.readdirSync(this.pluginsDir).filter(t=>(t.endsWith(".ts")||t.endsWith(".js"))&&!t.endsWith(".d.ts"));for(let t of e){let i=Le.join(this.pluginsDir,t);try{let s=(await import(pathToFileURL(i).href)).default;s?.handler&&s?.config&&this.plugins.push(s);}catch{}}}async execute(e,t){let i=t.messages.text||"";for(let n of this.plugins)try{this.match(i,n.config.matcher)&&await n.handler(e,t);}catch{}}match(e,t){return t.some(i=>e===i||e.startsWith(i+" "))}getLoadedPlugins(){return this.plugins}getPluginsInfo(){return this.plugins.map(e=>({matcher:e.config.matcher,metadata:e.config.metadata}))}async reload(){this.plugins=[],await this.load();}},Vn=(o,e)=>({handler:o,config:e});var xe=class{classInjection(e,t){let i=t.length;return new Proxy(e,{get(n,s,r){if(s in n){let c=Reflect.get(n,s,r);return typeof c=="function"?c.bind(n):c}for(let c=0;c<i;c++){let l=t[c];if(s in l){let p=Reflect.get(l,s,r);return typeof p=="function"?p.bind(l):p}}},set(n,s,r,c){if(s in n)return Reflect.set(n,s,r,c);for(let l=0;l<i;l++){let p=t[l];if(s in p)return Reflect.set(p,s,r,c)}return Reflect.set(n,s,r,c)},has(n,s){if(s in e)return true;for(let r=0;r<i;r++)if(s in t[r])return true;return false},ownKeys(){let n=[];for(let s of Reflect.ownKeys(e))n.push(s);for(let s=0;s<i;s++)for(let r of Reflect.ownKeys(t[s]))n.includes(r)||n.push(r);return n},getOwnPropertyDescriptor(n,s){let r=Object.getOwnPropertyDescriptor(e,s);if(r)return r;for(let c=0;c<i;c++)if(r=Object.getOwnPropertyDescriptor(t[c],s),r)return r}})}};var bt=class{constructor(e){this.options=e;return this.options=Y(vt,e),this._ready=this.initialize(),new xe().classInjection(this,[new he(this),new ye(this)])}listener;_ready;logs;collector=new we;middleware=new ke;plugins=new ve;async initialize(){await mt(),await lt(this),await this.plugins.load(),this.listener=new fe(this),this.logs=new Me(this);}ready(){return this._ready}db(e){return a.lowdb(this.options.session,`stores/${e}.json`)}on(e,t){a.events.on(e,t);}use(e){return this.middleware.use(e),this}async getMessageByChatId(e){let i=(await this.db("messages").all())?.flat()?.filter(n=>typeof n=="object")?.flat()?.find(n=>n?.key?.id===e);return await this.listener.messages.parse(i)}async getRoomName(e){let t=await this.db("chats").get(e),i=await this.db("contacts").get(e),n=I(t,["name","verifiedName"]),s=I(i,["notify","name"]);return R(n||s)||null}};
|
|
14
|
+
/*
|
|
15
|
+
* Copyright (c) 2025 zaadevofc.
|
|
16
|
+
* All rights reserved.
|
|
17
|
+
* Licensed under the MIT License.
|
|
18
|
+
* See LICENSE file for details.
|
|
19
|
+
|
|
20
|
+
* Author: zaadevofc
|
|
21
|
+
* Last build time: 12/9/2025 8:41:23 AM
|
|
22
|
+
*
|
|
23
|
+
* Repository: git+https://github.com/zeative/zaileys.git
|
|
24
|
+
*/export{ie as AudioProcessor,bt as Client,oe as DocumentProcessor,re as ImageProcessor,De as Lowdb,Q as MediaProcessor,ve as Plugins,ne as StickerProcessor,N as VideoProcessor,L as cleanJid,Ye as cleanMediaObject,q as createLowdb,Vn as definePlugins,Ee as extractJids,He as extractUrls,se as findGlobalWord,Ze as findNestedByKeys,F as generateId,G as getDeepContent,Ve as getLatestLibVersion,Ne as getMediaThumbnail,Qe as getUsersMentions,di as getVideoDuration,mi as getVideoThumbnail,et as getWaAudio,st as getWaDocument,tt as getWaSticker,w as ignoreLint,v as logColor,Gs as modifyFn,R as normalizeText,K as numbersToJids,I as pickKeysFromArray,Ks as randomize,lt as registerAuthCreds,Ke as removeAuthCreds,Vs as shuffleString,Xe as toBuffer,Ae as toJson,te as toString,at as useAuthState};
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zaileys",
|
|
3
|
-
"
|
|
3
|
+
"description": "Zaileys - Simplified WhatsApp Node.js TypeScript/JavaScript API",
|
|
4
|
+
"version": "1.1.40-tx.9",
|
|
4
5
|
"license": "MIT",
|
|
5
6
|
"main": "dist/index.js",
|
|
6
7
|
"module": "dist/index.mjs",
|
|
@@ -24,6 +25,7 @@
|
|
|
24
25
|
"r:major": "npm run build && npm version major && npm publish"
|
|
25
26
|
},
|
|
26
27
|
"devDependencies": {
|
|
28
|
+
"@types/lodash": "^4.17.21",
|
|
27
29
|
"@types/node": "^24.10.1",
|
|
28
30
|
"@types/qrcode-terminal": "^0.12.2",
|
|
29
31
|
"rolldown": "1.0.0-beta.52",
|
|
@@ -33,17 +35,29 @@
|
|
|
33
35
|
"typescript": "^5.9.3"
|
|
34
36
|
},
|
|
35
37
|
"dependencies": {
|
|
38
|
+
"@ffmpeg-installer/ffmpeg": "^1.1.0",
|
|
39
|
+
"@ffprobe-installer/ffprobe": "^2.1.2",
|
|
36
40
|
"async-mutex": "^0.5.0",
|
|
41
|
+
"audio-decode": "^2.2.3",
|
|
37
42
|
"baileys": "7.0.0-rc.9",
|
|
38
43
|
"figlet": "^1.9.4",
|
|
44
|
+
"file-type": "^21.1.1",
|
|
45
|
+
"fluent-ffmpeg": "^2.1.3",
|
|
39
46
|
"gradient-string": "^3.0.0",
|
|
40
47
|
"lodash": "^4.17.21",
|
|
41
48
|
"lowdb": "^7.0.1",
|
|
42
49
|
"nanospinner": "^1.2.2",
|
|
43
50
|
"node-cache": "^5.1.2",
|
|
51
|
+
"node-webpmux": "^3.2.1",
|
|
44
52
|
"pino": "^10.1.0",
|
|
45
53
|
"qrcode-terminal": "^0.12.0",
|
|
46
54
|
"rate-limiter-flexible": "^9.0.0",
|
|
55
|
+
"sharp": "^0.34.5",
|
|
56
|
+
"thumbsupply": "^0.4.0",
|
|
47
57
|
"zod": "^4.1.13"
|
|
58
|
+
},
|
|
59
|
+
"packageManager": "pnpm@10.24.0",
|
|
60
|
+
"engines": {
|
|
61
|
+
"node": ">=20.0.0"
|
|
48
62
|
}
|
|
49
63
|
}
|