zaileys 2.2.4 → 2.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.MD +17 -1
- package/dist/index.d.mts +11 -1
- package/dist/index.d.ts +11 -1
- package/dist/index.js +21 -21
- package/dist/index.mjs +21 -21
- package/package.json +1 -1
package/README.MD
CHANGED
|
@@ -140,6 +140,10 @@ const wa = new Client({
|
|
|
140
140
|
// if you want to disable built-in ffmpeg
|
|
141
141
|
// disableFFmpeg: true,
|
|
142
142
|
|
|
143
|
+
// plugin configuration
|
|
144
|
+
pluginsDir: 'plugins', // default
|
|
145
|
+
pluginsHmr: true, // default: true (auto reload plugins on change)
|
|
146
|
+
|
|
143
147
|
sticker: {
|
|
144
148
|
authorName: 'your name',
|
|
145
149
|
packageName: 'package name',
|
|
@@ -242,6 +246,8 @@ These options apply to both authentication methods:
|
|
|
242
246
|
| `fancyLogs` | `boolean` | `false` | Enable detailed, fancy log output. |
|
|
243
247
|
| `ignoreMe` | `boolean` | `true` | Ignore messages sent by the bot itself. |
|
|
244
248
|
| `syncFullHistory` | `boolean` | `true` | Sync full chat history on startup. |
|
|
249
|
+
| `pluginsDir` | `string` | `'plugins'` | Directory where plugins are located. |
|
|
250
|
+
| `pluginsHmr` | `boolean` | `true` | Enable Hot Module Replacement for plugins. |
|
|
245
251
|
| `cleanupDays` | `number` | `7` | Days to keep messages before auto-deletion. |
|
|
246
252
|
| `autoCleanUp` | `object` | `undefined` | Configuration for periodic database cleanup. |
|
|
247
253
|
| `disableFFmpeg` | `boolean` | `false` | Disable built-in FFmpeg installers. |
|
|
@@ -284,7 +290,17 @@ wa.use(async (ctx, next) => {
|
|
|
284
290
|
|
|
285
291
|
### 🧩 Plugins
|
|
286
292
|
|
|
287
|
-
Zaileys features a built-in file-based plugin system. By default, it looks for plugins in the `plugins` directory of your project root.
|
|
293
|
+
Zaileys features a built-in file-based plugin system with **Hot Module Replacement (HMR)** support. By default, it looks for plugins in the `plugins` directory of your project root and automatically reloads them when you make changes.
|
|
294
|
+
|
|
295
|
+
**0. Configuration:**
|
|
296
|
+
You can customize the plugin directory and HMR behavior in the `Client` constructor:
|
|
297
|
+
|
|
298
|
+
```typescript
|
|
299
|
+
const wa = new Client({
|
|
300
|
+
pluginsDir: 'my-plugins', // Custom plugins directory
|
|
301
|
+
pluginsHmr: true, // Enable/disable HMR (default: true)
|
|
302
|
+
});
|
|
303
|
+
```
|
|
288
304
|
|
|
289
305
|
**1. Create a plugin file** (e.g., `plugins/hello.ts`):
|
|
290
306
|
|
package/dist/index.d.mts
CHANGED
|
@@ -734,6 +734,8 @@ declare const ClientBaseType: z$1.ZodObject<{
|
|
|
734
734
|
autoRead: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
735
735
|
autoPresence: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
736
736
|
autoRejectCall: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
737
|
+
pluginsDir: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodString>>;
|
|
738
|
+
pluginsHmr: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
737
739
|
autoCleanUp: z$1.ZodOptional<z$1.ZodObject<{
|
|
738
740
|
enabled: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
739
741
|
intervalMs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodNumber>>;
|
|
@@ -790,6 +792,8 @@ declare const ClientOptionsType: z$1.ZodUnion<readonly [z$1.ZodObject<{
|
|
|
790
792
|
autoRead: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
791
793
|
autoPresence: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
792
794
|
autoRejectCall: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
795
|
+
pluginsDir: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodString>>;
|
|
796
|
+
pluginsHmr: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
793
797
|
autoCleanUp: z$1.ZodOptional<z$1.ZodObject<{
|
|
794
798
|
enabled: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
795
799
|
intervalMs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodNumber>>;
|
|
@@ -837,6 +841,8 @@ declare const ClientOptionsType: z$1.ZodUnion<readonly [z$1.ZodObject<{
|
|
|
837
841
|
autoRead: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
838
842
|
autoPresence: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
839
843
|
autoRejectCall: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
844
|
+
pluginsDir: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodString>>;
|
|
845
|
+
pluginsHmr: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
840
846
|
autoCleanUp: z$1.ZodOptional<z$1.ZodObject<{
|
|
841
847
|
enabled: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
842
848
|
intervalMs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodNumber>>;
|
|
@@ -1038,9 +1044,12 @@ declare class Plugins {
|
|
|
1038
1044
|
private pluginsDir;
|
|
1039
1045
|
private globalEnabled;
|
|
1040
1046
|
private disabledPlugins;
|
|
1041
|
-
|
|
1047
|
+
private hmr;
|
|
1048
|
+
private watcher;
|
|
1049
|
+
constructor(pluginsDir?: string, hmr?: boolean);
|
|
1042
1050
|
private getAllFiles;
|
|
1043
1051
|
load(): Promise<void>;
|
|
1052
|
+
setupHmr(): void;
|
|
1044
1053
|
private getPluginId;
|
|
1045
1054
|
execute(wa: Client, ctx: MiddlewareContextType): Promise<void>;
|
|
1046
1055
|
private match;
|
|
@@ -1059,6 +1068,7 @@ declare class Plugins {
|
|
|
1059
1068
|
enabled: boolean;
|
|
1060
1069
|
}[];
|
|
1061
1070
|
reload(): Promise<void>;
|
|
1071
|
+
stopHmr(): void;
|
|
1062
1072
|
}
|
|
1063
1073
|
declare const definePlugins: (handler: PluginsHandlerType, config: PluginsConfigType) => Omit<PluginDefinition, "parent" | "enabled">;
|
|
1064
1074
|
|
package/dist/index.d.ts
CHANGED
|
@@ -734,6 +734,8 @@ declare const ClientBaseType: z$1.ZodObject<{
|
|
|
734
734
|
autoRead: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
735
735
|
autoPresence: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
736
736
|
autoRejectCall: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
737
|
+
pluginsDir: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodString>>;
|
|
738
|
+
pluginsHmr: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
737
739
|
autoCleanUp: z$1.ZodOptional<z$1.ZodObject<{
|
|
738
740
|
enabled: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
739
741
|
intervalMs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodNumber>>;
|
|
@@ -790,6 +792,8 @@ declare const ClientOptionsType: z$1.ZodUnion<readonly [z$1.ZodObject<{
|
|
|
790
792
|
autoRead: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
791
793
|
autoPresence: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
792
794
|
autoRejectCall: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
795
|
+
pluginsDir: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodString>>;
|
|
796
|
+
pluginsHmr: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
793
797
|
autoCleanUp: z$1.ZodOptional<z$1.ZodObject<{
|
|
794
798
|
enabled: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
795
799
|
intervalMs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodNumber>>;
|
|
@@ -837,6 +841,8 @@ declare const ClientOptionsType: z$1.ZodUnion<readonly [z$1.ZodObject<{
|
|
|
837
841
|
autoRead: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
838
842
|
autoPresence: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
839
843
|
autoRejectCall: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
844
|
+
pluginsDir: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodString>>;
|
|
845
|
+
pluginsHmr: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
840
846
|
autoCleanUp: z$1.ZodOptional<z$1.ZodObject<{
|
|
841
847
|
enabled: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodBoolean>>;
|
|
842
848
|
intervalMs: z$1.ZodOptional<z$1.ZodDefault<z$1.ZodNumber>>;
|
|
@@ -1038,9 +1044,12 @@ declare class Plugins {
|
|
|
1038
1044
|
private pluginsDir;
|
|
1039
1045
|
private globalEnabled;
|
|
1040
1046
|
private disabledPlugins;
|
|
1041
|
-
|
|
1047
|
+
private hmr;
|
|
1048
|
+
private watcher;
|
|
1049
|
+
constructor(pluginsDir?: string, hmr?: boolean);
|
|
1042
1050
|
private getAllFiles;
|
|
1043
1051
|
load(): Promise<void>;
|
|
1052
|
+
setupHmr(): void;
|
|
1044
1053
|
private getPluginId;
|
|
1045
1054
|
execute(wa: Client, ctx: MiddlewareContextType): Promise<void>;
|
|
1046
1055
|
private match;
|
|
@@ -1059,6 +1068,7 @@ declare class Plugins {
|
|
|
1059
1068
|
enabled: boolean;
|
|
1060
1069
|
}[];
|
|
1061
1070
|
reload(): Promise<void>;
|
|
1071
|
+
stopHmr(): void;
|
|
1062
1072
|
}
|
|
1063
1073
|
declare const definePlugins: (handler: PluginsHandlerType, config: PluginsConfigType) => Omit<PluginDefinition, "parent" | "enabled">;
|
|
1064
1074
|
|
package/dist/index.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
'use strict';var we=require('fluent-ffmpeg'),pe=require('fs/promises'),os=require('os'),te=require('path'),rn=require('baileys'),jetdb=require('jetdb'),nanospinner=require('nanospinner'),ce=require('node-cache'),Yt=require('pino'),events=require('events'),asyncMutex=require('async-mutex'),fileType=require('file-type'),jimp=require('jimp'),fn=require('node-webpmux'),E=require('lodash'),Ct=require('unorm'),zodValidationError=require('zod-validation-error'),Pt=require('gradient-string'),bn=require('figlet'),xn=require('qrcode-terminal'),rateLimiterFlexible=require('rate-limiter-flexible'),m=require('zod'),Xn=require('stream'),We=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 we__default=/*#__PURE__*/_interopDefault(we);var pe__default=/*#__PURE__*/_interopDefault(pe);var te__namespace=/*#__PURE__*/_interopNamespace(te);var rn__default=/*#__PURE__*/_interopDefault(rn);var ce__default=/*#__PURE__*/_interopDefault(ce);var Yt__default=/*#__PURE__*/_interopDefault(Yt);var fn__default=/*#__PURE__*/_interopDefault(fn);var E__default=/*#__PURE__*/_interopDefault(E);var Ct__default=/*#__PURE__*/_interopDefault(Ct);var Pt__default=/*#__PURE__*/_interopDefault(Pt);var bn__default=/*#__PURE__*/_interopDefault(bn);var xn__default=/*#__PURE__*/_interopDefault(xn);var m__default=/*#__PURE__*/_interopDefault(m);var Xn__default=/*#__PURE__*/_interopDefault(Xn);var We__namespace=/*#__PURE__*/_interopNamespace(We);var Gt=Object.defineProperty;var Jt=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+s+'" is not supported')});var pt=(s,e)=>()=>(s&&(e=s(s=0)),e);var Kt=(s,e)=>{for(var t in e)Gt(s,t,{get:e[t],enumerable:true});};var c=pt(()=>{});var bt={};Kt(bt,{BufferConverter:()=>C,FFMPEG_CONSTANTS:()=>k,FFmpegProcessor:()=>j,FileManager:()=>h,MimeValidator:()=>R,initializeFFmpeg:()=>qe});var k,qe,h,C,R,j,G=pt(()=>{c();k={OPUS:{CODEC:"libopus",CHANNELS:1,FREQUENCY:48e3,BITRATE:"48k",FORMAT:"ogg"},THUMBNAIL:{SIZE:100,QUALITY:50,TIMESTAMP:"10%"},STICKER:{SIZE:512,MAX_DURATION:10,FPS:15,DEFAULT_QUALITY:80,COMPRESSION_LEVEL:6},MIME:{AUDIO:"audio/",VIDEO:"video/",IMAGE:"image/",GIF:"image/gif",MP4:"video/mp4"}},qe=async(s=false)=>{if(!s)try{let e=(await import('@ffmpeg-installer/ffmpeg')).default,t=(await import('@ffprobe-installer/ffprobe')).default;we__default.default.setFfmpegPath(e.path),we__default.default.setFfprobePath(t.path);}catch{}},h=class{static generateUniqueId(){return `${Date.now()}_${Math.random().toString(36).slice(2,11)}`}static createTempPath(e,t){return te__namespace.default.join(os.tmpdir(),`${e}_${this.generateUniqueId()}.${t}`)}static async cleanup(e){await Promise.allSettled(e.map(t=>pe__default.default.unlink(t)));}static async safeReadFile(e){try{return await pe__default.default.readFile(e)}catch{throw new Error(`Failed to read file: ${e}`)}}static async safeWriteFile(e,t){try{await pe__default.default.writeFile(e,t);}catch{throw new Error(`Failed to write file: ${e}`)}}},C=class{static async toBuffer(e){if(Buffer.isBuffer(e))return e;if(e instanceof ArrayBuffer)return Buffer.from(e);if(typeof e=="string")return this.fromString(e);throw new Error("Invalid input type: expected string, Buffer, or ArrayBuffer")}static async fromString(e){if(e.startsWith("http://")||e.startsWith("https://"))return this.fromUrl(e);try{if(await pe__default.default.stat(e).then(t=>t.isFile()).catch(()=>!1))return await pe__default.default.readFile(e)}catch{}return Buffer.from(e,"base64")}static async fromUrl(e){try{let t=await fetch(e);if(!t.ok)throw new Error(`HTTP ${t.status}: ${t.statusText}`);let n=await t.arrayBuffer();return Buffer.from(n)}catch(t){throw new Error(`Failed to fetch URL: ${t.message}`)}}static async getExtension(e){let{fileTypeFromBuffer:t}=await import('file-type'),n=await t(e);if(!n)return "tmp";let i=n.ext.toLowerCase();return ["wav","ogg","mp4","gif","jpg","webp","tmp","mp3","png"].includes(i)?i:"tmp"}},R=class{static validate(e,t){if(!e?.mime?.startsWith(t))throw new Error(`Invalid file type: expected ${t}*, got ${e?.mime||"unknown"}`)}static isMedia(e){return e.startsWith(k.MIME.IMAGE)||e.startsWith(k.MIME.VIDEO)}static isAnimated(e){return e===k.MIME.GIF||e.startsWith(k.MIME.VIDEO)}},j=class{static async process(e){return new Promise((t,n)=>{let i=we__default.default(e.input).output(e.output);for(let r=0;r<e.options.length;r++){let o=e.options[r];o.startsWith("-")&&r+1<e.options.length&&!e.options[r+1].startsWith("-")?(i.outputOptions(o,e.options[r+1]),r++):i.outputOptions(o);}i.on("end",async()=>{try{await e.onEnd(),t();}catch(r){n(r);}}).on("error",async r=>{try{await e.onError(r);}finally{n(r);}}).run();})}static async getDuration(e){return new Promise((t,n)=>{we__default.default.ffprobe(e,(i,r)=>{if(i)return n(i);t(r.format.duration||0);});})}};});c();c();c();c();var lt=s=>jetdb.createJetDB(`${s}/auth/creds.json`,{BufferJSON:rn.BufferJSON,cacheSize:100,flushMode:"sync",compression:"none",enableIndexing:false}),ye=s=>jetdb.createJetDB(`${s}/auth/keys.json`,{BufferJSON:rn.BufferJSON,size:1024*1024,cacheSize:2e3,flushMode:"sync",compression:"deflate",enableIndexing:false,hotThreshold:5}),ut=(s,e)=>jetdb.createJetDB(`.session/${s}/store/${e}.json`,{BufferJSON:rn.BufferJSON,cacheSize:2e4,debounceMs:1e3,flushMode:"debounce",compression:"deflate",serialization:"json",enableIndexing:true,hotThreshold:2,size:5*1024*1024});c();c();var mt=new ce__default.default({stdTTL:600,checkperiod:120,useClones:false}),$=new ce__default.default({stdTTL:300,useClones:false}),dt=new ce__default.default({stdTTL:300}),ft=new ce__default.default({stdTTL:600,checkperiod:120,useClones:false,deleteOnExpire:true,maxKeys:100}),gt=new ce__default.default;c();var ne=class{classInjection(e,t){let n=t.length;return new Proxy(e,{get(i,r,o){if(r in i){let p=Reflect.get(i,r,o);return typeof p=="function"?p.bind(i):p}for(let p=0;p<n;p++){let l=t[p];if(r in l){let u=Reflect.get(l,r,o);return typeof u=="function"?u.bind(l):u}}},set(i,r,o,p){if(r in i)return Reflect.set(i,r,o,p);for(let l=0;l<n;l++){let u=t[l];if(r in u)return Reflect.set(u,r,o,p)}return Reflect.set(i,r,o,p)},has(i,r){if(r in e)return true;for(let o=0;o<n;o++)if(r in t[o])return true;return false},ownKeys(){let i=[];for(let r of Reflect.ownKeys(e))i.push(r);for(let r=0;r<n;r++)for(let o of Reflect.ownKeys(t[r]))i.includes(o)||i.push(o);return i},getOwnPropertyDescriptor(i,r){let o=Object.getOwnPropertyDescriptor(e,r);if(o)return o;for(let p=0;p<n;p++)if(o=Object.getOwnPropertyDescriptor(t[p],r),o)return o}})}};var Ue=class extends ce__default.default{constructor(){return super({useClones:false}),new ne().classInjection(this,[mt])}spinner=nanospinner.createSpinner("",{color:"green"});logger=Yt__default.default({level:"silent",enabled:false});events=new events.EventEmitter},a=new Ue;var yt=async s=>{a.spinner.start(" Initializing auth state...");let e=lt(s),t=ye(s),n=await e.get("creds")||rn.initAuthCreds();return a.spinner.success(" Generate auth successfully"),{state:{creds:n,keys:{get:async(i,r)=>{let o={};return await Promise.all(r.map(async p=>{let l=`${i}:${p}`,u=await t.get(l);i==="app-state-sync-key"&&u&&(u=rn.proto.Message.AppStateSyncKeyData.fromObject(u)),o[p]=u;})),o},set:async i=>{let r=[],o=[];for(let p in i)for(let l in i[p]){let u=i[p][l],M=`${p}:${l}`;u?r.push({key:M,value:u}):o.push(M);}r.length&&await t.batchSet(r),o.length&&await t.batchDelete(o),await t.flush();}}},saveCreds:async()=>{await e.set("creds",n);}}};c();c();var wt=(s,e)=>({logger:s.health.logger,printQRInTerminal:false,enableRecentMessageCache:true,emitOwnEvents:true,keepAliveIntervalMs:3e4,browser:rn.Browsers.ubuntu("Chrome"),markOnlineOnConnect:s.options.autoOnline,syncFullHistory:s.options.syncFullHistory,msgRetryCounterCache:gt,mediaCache:dt,auth:{creds:e.creds,keys:rn.makeCacheableSignalKeyStore(e.keys,a.logger)},cachedGroupMetadata:async t=>$.get(t),shouldIgnoreJid:()=>false,shouldSyncHistoryMessage:()=>s.options.syncFullHistory,patchMessageBeforeSending:t=>t,getMessage:async t=>{if(!t?.remoteJid)return rn.proto.Message.fromObject({});let n=await s.db("messages").getByIndex("messages","key.id",t.id);return rn.proto.Message.fromObject(n[0])}});var kt=async s=>{let e=`.session/${s.options.session}`;console.info=()=>{},console.warn=()=>{};let{state:t,saveCreds:n}=await yt(e),i=wt(s,t),r=rn__default.default(i);r.ev.on("creds.update",n),a.set("socket",r);};c();c();c();var he=class{constructor(e){this.client=e;}interval=null;start(){let e=this.client.options.autoCleanUp;e?.enabled&&(this.interval=setInterval(()=>{this.run();},e.intervalMs),this.run());}stop(){this.interval&&(clearInterval(this.interval),this.interval=null);}async run(){let e=this.client.options.autoCleanUp;if(!e?.enabled)return;let t=Date.now()-e.maxAgeMs;for(let n of e.scopes)try{let i=this.client.db(n),r=await i.query(n).where("timestamp","<",t).get();if(r.length>0){let o=r.map(p=>p.key?.id||p.id);await i.batchDelete(o),a.spinner.info(` [CleanUpManager] Cleaned up ${r.length} items from ${n}`);}}catch{}}};c();var ze=class{store=ft;mutex=new asyncMutex.Mutex;async inject(e,t){let n=await this.mutex.acquire();try{this.store.set(e,t);}finally{n();}}async get(e){let t=await this.mutex.acquire();try{return this.store.get(e)}finally{t();}}getSync(e){return this.store.get(e)}getAll(){let e=this.store.keys();return this.store.mget(e)}async remove(e){let t=await this.mutex.acquire();try{return this.store.del(e)>0}finally{t();}}async clear(){let e=await this.mutex.acquire();try{this.store.flushAll();}finally{e();}}has(e){return this.store.has(e)}get size(){return this.store.getStats().keys}keys(){return this.store.keys()}},X=new ze;c();G();c();G();var re=class{static async toOpus(e){return this.convert(e,"opus")}static async toMp3(e){return this.convert(e,"mp3")}static async convert(e,t="opus"){let n=await C.toBuffer(e),i=await fileType.fileTypeFromBuffer(n);R.validate(i,k.MIME.AUDIO);let r=await C.getExtension(n),o=h.createTempPath("audio_in",r),p=t==="opus"?"ogg":"mp3",l=h.createTempPath("audio_out",p);await h.safeWriteFile(o,n);let u;try{let M=t==="opus"?["-vn","-c:a","libopus","-b:a","48k","-ac","1","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","opus"]:["-vn","-c:a","libmp3lame","-b:a","128k","-ac","2","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","mp3"];return await j.process({input:o,output:l,options:M,onEnd:async()=>{u=await h.safeReadFile(l);},onError:async()=>{await h.cleanup([o,l]);}}),await h.cleanup([o,l]),u}catch(M){throw await h.cleanup([o,l]),new Error(`${t.toUpperCase()} conversion failed: ${M.message}`)}}};c();G();var L=class{static async toMp4(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);R.validate(n,k.MIME.VIDEO);let i=await C.getExtension(t),r=h.createTempPath("video_in",i),o=h.createTempPath("video_out","mp4");await h.safeWriteFile(r,t);let p;try{let l=["-c:v","libx264","-preset","ultrafast","-crf","28","-c:a","aac","-b:a","128k","-movflags","+faststart","-pix_fmt","yuv420p","-f","mp4"];return await j.process({input:r,output:o,options:l,onEnd:async()=>{p=await h.safeReadFile(o);},onError:async()=>{await h.cleanup([r,o]);}}),await h.cleanup([r,o]),p}catch(l){throw await h.cleanup([r,o]),new Error(`Video re-encoding failed: ${l.message}`)}}static async thumbnail(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);R.validate(n,k.MIME.VIDEO);let i=await C.getExtension(t),r=h.createTempPath("video",i),o=h.createTempPath("thumb","jpg");await h.safeWriteFile(r,t);let p;try{return await new Promise((l,u)=>{we__default.default(r).screenshots({timestamps:[k.THUMBNAIL.TIMESTAMP],filename:te__namespace.default.basename(o),folder:te__namespace.default.dirname(o),size:`${k.THUMBNAIL.SIZE}x${k.THUMBNAIL.SIZE}`}).on("end",async()=>{try{p=(await h.safeReadFile(o)).toString("base64"),l();}catch(M){u(M);}}).on("error",u);}),await h.cleanup([r,o]),p}catch(l){throw await h.cleanup([r,o]),new Error(`Thumbnail generation failed: ${l.message}`)}}static async duration(e){return j.getDuration(e)}};c();G();var U;try{U=Jt("sharp");}catch{U=null;}var N=class{static async thumbnail(e){let t=await fileType.fileTypeFromBuffer(e),n=k.THUMBNAIL.SIZE;if(U){let o=U(e).resize(n,n,{fit:"cover"});return t?.mime===k.MIME.GIF&&o.resize(n,n),(await o.jpeg({quality:k.THUMBNAIL.QUALITY}).toBuffer()).toString("base64")}let i=await jimp.Jimp.read(e);return i.cover({w:n,h:n}),t?.mime===k.MIME.GIF&&i.resize({w:n,h:n}),(await i.getBuffer("image/jpeg",{quality:k.THUMBNAIL.QUALITY})).toString("base64")}static async resize(e,t,n){if(U)return await U(e).resize(t,n,{fit:"cover"}).png().toBuffer();let i=await jimp.Jimp.read(e);return i.cover({w:t,h:n}),await i.getBuffer("image/png")}static async toJpeg(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);if(!n||!n.mime.startsWith(k.MIME.IMAGE))throw new Error("Invalid image type");return n.mime==="image/webp"?U?await U(t).jpeg().toBuffer():await(await jimp.Jimp.read(t)).getBuffer("image/jpeg"):t}static async resizeForSticker(e,t,n="default"){let i=k.STICKER.SIZE;if(U&&n==="default")return await U(e).resize(i,i,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).webp({quality:t}).toBuffer();let r=await jimp.Jimp.read(e);if(r.contain({w:i,h:i}),n!=="default"){let S=new jimp.Jimp({width:i,height:i,color:0});for(let b=0;b<i;b++)for(let A=0;A<i;A++){let D=false,J=i/2,K=i/2;switch(n){case "circle":{let v=A-J,F=b-K;D=v*v+F*F<=J*J;break}case "rounded":{let v=i/10,F=A>=v&&A<i-v&&b>=0&&b<i,V=A>=0&&A<i&&b>=v&&b<i-v,T=false,W=[[v,v],[i-v,v],[v,i-v],[i-v,i-v]];for(let[oe,se]of W){let Z=A-oe,H=b-se;if(Z*Z+H*H<=v*v){T=true;break}}D=F||V||T;break}case "oval":{let v=i/2,F=i/3,V=(A-J)/v,T=(b-K)/F;D=V*V+T*T<=1;break}}D&&S.setPixelColor(4294967295,A,b);}r.mask(S);}let o=h.createTempPath("sticker_img","png"),p=h.createTempPath("sticker_out","webp"),l=await r.getBuffer("image/png");await h.safeWriteFile(o,l);let{FFmpegProcessor:u}=await Promise.resolve().then(()=>(G(),bt)),M;try{return await u.process({input:o,output:p,options:["-vf",`scale=${i}:${i}`,"-quality",String(t),"-f","webp"],onEnd:async()=>{M=await h.safeReadFile(p);},onError:async()=>{await h.cleanup([o,p]);}}),await h.cleanup([o,p]),M}catch(S){throw await h.cleanup([o,p]),new Error(`Sticker resize failed: ${S.message}`)}}};c();c();var ee=s=>{let e;Array.isArray(s)?e=s.join("|"):typeof s=="string"?e=s:e=String(s);let t=2166136261,n=e.length;for(let i=0;i<n;i++)t^=e.charCodeAt(i),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return "Z4D3FC"+(t>>>0).toString(16).padStart(8,"0").toUpperCase()},Tt=(s="")=>{if(!s)return [];let e=new Set;for(let t of s.matchAll(/@(\d+)/g))e.add(t[1]);return E__default.default.toArray(e)},Ve=(s="")=>{if(!s)return [];let e=new Set;for(let t of s.matchAll(/@(\d+)/g))t[1].length<=15&&e.add(t[1]);return E__default.default.flatMap([...e],t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},vi=s=>E__default.default.isEmpty(s)?[]:E__default.default.map([...s],e=>`${e}@s.whatsapp.net`),St=s=>E__default.default.omit(s,["url","contextInfo","fileSha256","fileEncSha256","mediaKey","directPath","waveform","thumbnail","jpegThumbnail","thumbnailEncSha256","thumbnailSha256","thumbnailDirectPath","firstFrameSidecar","streamingSidecar","scansSidecar","callKey","message","key","midQualityFileSha256","historySyncNotification","appStateSyncKeyShare","appStateSyncKeyRequest","initialSecurityNotificationSettingSync","appStateFatalExceptionNotification","disappearingMode","peerDataOperationRequestMessage","peerDataOperationRequestResponseMessage","botFeedbackMessage"]),ke=s=>{if(!s)return {leaf:void 0,chain:[]};let e=rn.extractMessageContent(s)||s,t=[];for(;e&&typeof e=="object";){let n=rn.getContentType(e);if(!n)break;t.push(n);let i=e[n];if(!i||typeof i!="object"){e=i;break}e=i;}return {leaf:e,chain:t}},z=s=>Number(s?.split("@")[0]);c();var x=s=>s,It=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(s){throw s}},At=async s=>{try{let e=`.session/${s}/auth/creds.json`;await pe__default.default.unlink(e);}catch(e){throw a.spinner.error(`Failed to remove auth creds for session "${s}"!`),e}},Q=(s="")=>{if(!s?.length)return null;let e=s.replace(/\u202E(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/\u202D(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/[\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/gu,"").replace(/[\u200B\u200C\u200D\uFEFF]/gu,"").replace(/[\u00AD\u034F\u115F\u1160\u17B4\u17B5\u180B-\u180E]/gu,"").replace(/[\u2060-\u2064\u206A-\u206F]/gu,"").replace(/[\u2800\uFFFC\uFFFD]/gu,"").replace(/[\uFE00-\uFE0F]/gu,"").split("").map(t=>Ct__default.default.nfkd(t)).join("").replace(/[\u0300-\u036F]/gu,"").replace(/[\u1AB0-\u1AFF]/gu,"").replace(/[\u1DC0-\u1DFF]/gu,"").replace(/[\u20D0-\u20FF]/gu,"").replace(/[\uFE20-\uFE2F]/gu,"").replace(/[\p{Cc}]/gu,"").replace(/[\p{Cf}]/gu,"").replace(/[\p{Co}]/gu,"").replace(/[\p{Cn}]/gu,"").replace(/[\p{Cs}]/gu,"").replace(/[\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]/gu," ").replace(/[\u2028\u2029]/gu," ").replace(/[\t\r\n\f\v]/g," ").split("").map(t=>Ct__default.default.nfkc(t)).join("").normalize("NFC").replace(/\s+/g," ").trim();return e.length?e:null};G();var be=class{static async create(e,t){try{let n=await C.toBuffer(e),i=await fileType.fileTypeFromBuffer(n);if(!i)throw new Error("Unable to detect file type");let r=t?.quality||k.STICKER.DEFAULT_QUALITY,o=R.isAnimated(i.mime),p=t?.shape||"default",l=o?await this.processAnimated(n,i.mime,r):await N.resizeForSticker(n,r,p),u=this.createExifMetadata(t),M=new fn__default.default.Image;await M.load(l),M.exif=u;let S=await M.save(null);return Buffer.isBuffer(S)?S:Buffer.from(S)}catch(n){throw new Error(`Sticker creation failed: ${n.message||n}`)}}static createExifMetadata(e){let t={"sticker-pack-id":ee(Date.now().toString()),"sticker-pack-name":e?.packageName||"Zaileys Library","sticker-pack-publisher":e?.authorName||"https://github.com/zeative/zaileys",emojis:["\u{1F913}"],"android-app-store-link":"https://play.google.com/store/apps/details?id=com.marsvard.stickermakerforwhatsapp","ios-app-store-link":"https://itunes.apple.com/app/sticker-maker-studio/id1443326857"},n=Buffer.from([73,73,42,0,8,0,0,0,1,0,65,87,7,0,0,0,0,0,22,0,0,0]),i=Buffer.from(JSON.stringify(t),"utf8"),r=Buffer.concat([n,i]);return r.writeUIntLE(i.length,14,4),r}static async processAnimated(e,t,n){let i=this.getExtension(t),r=h.createTempPath("sticker_in",i),o=h.createTempPath("sticker_out","webp");await h.safeWriteFile(r,e);let p=k.STICKER.MAX_DURATION;try{let A=await L.duration(r);p=x(Math.min(A,k.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",k.STICKER.MAX_DURATION);}let l=k.STICKER.SIZE,u=k.STICKER.FPS,M=`scale=${l}:${l}:force_original_aspect_ratio=increase,crop=${l}:${l},fps=${u},format=rgba`,S=Math.max(1,Math.min(100,100-n)),b;try{return await j.process({input:r,output:o,options:["-vcodec libwebp",`-vf ${M}`,`-q:v ${S}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${p}`,`-compression_level ${k.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{b=await h.safeReadFile(o);},onError:async()=>{await h.cleanup([r,o]);}}),await h.cleanup([r,o]),b}catch(A){throw await h.cleanup([r,o]),new Error(`Animated sticker processing failed: ${A.message}`)}}static getExtension(e){return e===k.MIME.GIF?"gif":e.startsWith(k.MIME.VIDEO)?"mp4":"tmp"}};c();G();G();var Me=class{static async create(e){try{let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);if(!n)throw new Error("Unable to detect file type");let i;return n.mime.startsWith(k.MIME.VIDEO)?i=await L.thumbnail(t):R.isMedia(n.mime)?i=await N.thumbnail(t):i="",{document:t,mimetype:n.mime,fileName:ee(Date.now().toString()),jpegThumbnail:i}}catch(t){throw new Error(`Document creation failed: ${t.message||t}`)}}};c();var xe=class{constructor(e){this.client=e;this.keysDb=ye(e.options.session),this.setupLogFilters();}keysDb;setupLogFilters(){let e=console.error,t=console.log,n=i=>{let r=i.join(" ");return ["Bad MAC","Session error:","Closing open session in favor of incoming prekey bundle","Error: Bad MAC"].some(p=>r.includes(p))};console.error=(...i)=>{n(i)||e.apply(console,i);},console.log=(...i)=>{n(i)||t.apply(console,i);};}async repair(e){if(!e)return;let t=[`session:${e}`,`sender-key:${e}`];try{await this.keysDb.batchDelete(t),await this.keysDb.flush(),a.spinner.warn(` [HealthManager] Repaired session for ${e} due to Bad MAC`);}catch{}}get logger(){return Yt__default.default({level:"debug"},{write:e=>{try{let t=JSON.parse(e);if(t.msg?.includes("Bad MAC")){let n=t.jid||t.remoteJid;n&&this.repair(n);}}catch{}}})}};c();var me=(s,e)=>{try{return s.parse(e)}catch(t){let n=zodValidationError.fromError(t);throw new Error(n.toString())}};c();c();var Ge=class{concurrency;timeout;onError;queue;running;completed;failed;isClosing;closeResolve;constructor(e){this.concurrency=e?.concurrency||30,this.timeout=e?.timeout||3e4,this.onError=e?.onError||this._defaultErrorHandler,this.queue=[],this.running=new Set,this.completed=0,this.failed=0,this.isClosing=false,this.closeResolve=null;}add(e,t){if(this.isClosing)throw new Error("Queue is closing, cannot add new tasks");let n={id:this._generateId(),fn:e,priority:t?.priority||0,timeout:t?.timeout||this.timeout,retries:t?.retries||0,maxRetries:t?.maxRetries||0,createdAt:Date.now()},i=this.queue.findIndex(r=>r.priority<n.priority);return i===-1?this.queue.push(n):this.queue.splice(i,0,n),this._process(),n.id}addBulk(e){return e.map(({fn:t,options:n})=>this.add(t,n))}async _process(){for(;this.running.size<this.concurrency&&this.queue.length>0;){let e=this.queue.shift();this.running.add(e),this._executeTask(e);}this.isClosing&&this.running.size===0&&this.queue.length===0&&this.closeResolve?.();}async _executeTask(e){try{await this._withTimeout(e.fn(),e.timeout),this.completed++;}catch(t){e.retries<e.maxRetries?(e.retries++,this.queue.unshift(e)):(this.failed++,this.onError(t,e));}finally{this.running.delete(e),this._process();}}_withTimeout(e,t){return Promise.race([e,new Promise((n,i)=>setTimeout(()=>i(new Error("Task timeout")),t))])}async close(e=0){if(this.isClosing=true,this.running.size===0&&this.queue.length===0)return;let t=new Promise(n=>{this.closeResolve=n;});if(e>0){let n=new Promise(i=>setTimeout(i,e));await Promise.race([t,n]);}else await t;}forceClose(){this.queue=[],this.running.clear(),this.isClosing=true,this.closeResolve?.();}getStats(){return {queued:this.queue.length,running:this.running.size,completed:this.completed,failed:this.failed,total:this.completed+this.failed}}isIdle(){return this.queue.length===0&&this.running.size===0}async waitUntilIdle(e=100){for(;!this.isIdle();)await new Promise(t=>setTimeout(t,e));}_defaultErrorHandler(e,t){console.error(`[FireAndForget] Task ${t.id} failed:`,e);}_generateId(){return `${Date.now()}-${Math.random().toString(36).substr(2,9)}`}},P=new Ge;process.on("SIGTERM",()=>P.close());c();c();c();var y=(s,e="lime")=>Array.isArray(e)?Pt__default.default(e)(s):Pt__default.default([e,e])(s),Je=s=>{try{return JSON.parse(s)}catch{return E__default.default.attempt(()=>JSON.parse(JSON.stringify(s)||"{}"))}},de=s=>{try{return JSON.stringify(s)}catch{let e=E__default.default.attempt(()=>JSON.stringify(Je(s)||"{}"));return E__default.default.isError(e)?"{}":e}},yo=(s="")=>E__default.default.shuffle(s).join(""),fe=(s="",e="")=>s?E__default.default.includes(s.toLowerCase(),e.toLowerCase()):null,Et=(s="")=>s?E__default.default.castArray(s.match(rn.URL_REGEX)||[]):[],ho=s=>s[Math.floor(Math.random()*s.length)],Ke=(s,e)=>{let t=i=>!!(i==null||typeof i=="string"&&i.trim()===""||Array.isArray(i)&&i.length===0||typeof i=="object"&&Object.keys(i).length===0),n=(i,r)=>{if(!i||typeof i!="object")return;let o=i,p=r.split(".");for(let l of p){let u=l.match(/^(.+?)\[(\d+)\]$/);if(u){let[,M,S]=u;o=o?.[M]?.[parseInt(S,10)];}else o=o?.[l];if(t(o))return}return o};if(!(!Array.isArray(s)||s.length===0)&&!(!Array.isArray(e)||e.length===0)){for(let i of s)if(!(!i||typeof i!="object"))for(let r of e){let o=n(i,r);if(!t(o))return o}}},wo=(s,e)=>{let t=E__default.default.castArray(e),n=(o,p)=>E__default.default.every(p,(l,u)=>o?.[u]===l),i=(o,p)=>E__default.default.some(p,(l,u)=>o?.[u]===l),r=o=>E__default.default.isArray(o)?E__default.default.find(o,r)??o:E__default.default.isObject(o)?E__default.default.find(t,u=>n(o,u))||E__default.default.find(t,u=>i(o,u))?o:E__default.default.find(E__default.default.values(o),r)??o:null;return r(s)},ko=(s,e,t)=>new Proxy(s,{apply(n,i,r){e?.(r);let o=Reflect.apply(n,i,r);return t?t(o,r):o}});c();var He=class{input;constructor(e){this.input=e;}async toOpus(){return re.toOpus(this.input)}async toMp3(){return re.toMp3(this.input)}async convert(e="opus"){return re.convert(this.input,e)}},Qe=class{input;constructor(e){this.input=e;}async toMp4(){return L.toMp4(this.input)}async thumbnail(){return L.thumbnail(this.input)}},Ye=class{input;constructor(e){this.input=e;}async toJpeg(){return N.toJpeg(this.input)}async thumbnail(){let e=await C.toBuffer(this.input);return N.thumbnail(e)}async resize(e,t){let n=await C.toBuffer(this.input);return N.resize(n,e,t)}},Ze=class{input;metadata;constructor(e,t){this.input=e,this.metadata=t;}async create(){return be.create(this.input,this.metadata)}},Xe=class{input;constructor(e){this.input=e;}async create(){return Me.create(this.input)}},et=class{input;constructor(e){this.input=e;}async get(){let e=await C.toBuffer(this.input),t=await fileType.fileTypeFromBuffer(e);if(!t||!R.isMedia(t.mime))throw new Error("Invalid media type: expected image or video");return t.mime.startsWith(k.MIME.VIDEO)?L.thumbnail(this.input):N.thumbnail(e)}},tt=class{audio(e){return new He(e)}video(e){return new Qe(e)}image(e){return new Ye(e)}sticker(e,t){return new Ze(e,t)}document(e){return new Xe(e)}thumbnail(e){return new et(e)}async toBuffer(e){return C.toBuffer(e)}},O=new tt;var ve=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=a.get("socket");e.ev.on("call",async t=>{for(let n of t){let i=await this.parse(n);i&&(P.add(async()=>this.client.middleware.run({calls:i})),P.add(async()=>this.client.plugins.execute(this.client,{messages:i})),a.events.emit("calls",i),this.client.options?.autoRejectCall&&P.add(async()=>e.rejectCall(i.callId,i.callerId)));}});}async parse(e){let t=a.get("socket"),n={};return n.callId=e.id,n.callerId=rn.jidNormalizedUser(e.from),n.roomId=rn.jidNormalizedUser(e.chatId),n.roomName=Q(t?.user?.name||t?.user?.verifiedName),n.date=e.date,n.offline=e.offline,n.status=e.status,n.isVideo=!!e.isVideo,n.isGroup=!!e.isGroup,this.client.logs.call(n),n}};c();c();var Bt=s=>{xn__default.default.generate(s,{small:true},e=>{console.log(e);});},Ft=async()=>{console.clear(),a.spinner.start(" Checking for updates...");let s="2.2.4",e="zaadevofc",t=await It(),n=s===t;a.spinner.stop();let i="Zaileys",r=`
|
|
2
|
-
by ${e} \xB7 v${s}`,o=`${n?"Already using latest version!":`Update available! (v${t})`}
|
|
3
|
-
`,p=n?"lime":"orange",
|
|
4
|
-
`);return}if(u===500){a.spinner.error(" Server error occurred, attempting reconnect..."),await n();return}S&&await n();}if(o==="open")if(e.user?.id){let u=rn.jidNormalizedUser(e.user.id).split("@")[0],M=e.user.name||e.user.verifiedName;a.spinner.success(` Connected as ${Pt.cristal(M||u)}`);}else a.spinner.success(" Connected!");a.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:r})=>{t.status="syncing",t.syncProgress=r,a.spinner.start(" Syncing messages history..."),r&&a.spinner.update(` Syncing messages history ${r+"%"}`),r==100&&(a.spinner.success(" Syncing messages history completed!"),t.syncCompleted=true),a.events.emit("connection",t);});}};c();c();var Ot={text:"text",conversation:"text",imageMessage:"image",contactMessage:"contact",locationMessage:"location",documentMessage:"document",audioMessage:"audio",videoMessage:"video",protocolMessage:"protocol",contactsArrayMessage:"contacts",highlyStructuredMessage:"highlyStructured",sendPaymentMessage:"sendPayment",liveLocationMessage:"location",requestPaymentMessage:"requestPayment",groupStatusMentionMessage:"groupStatusMention",statusMentionMessage:"statusMention",albumMessage:"album",declinePaymentRequestMessage:"declinePaymentRequest",cancelPaymentRequestMessage:"cancelPaymentRequest",templateMessage:"template",stickerMessage:"sticker",groupInviteMessage:"groupInvite",templateButtonReplyMessage:"buttons",productMessage:"product",deviceSentMessage:"deviceSent",listMessage:"lists",viewOnceMessage:"viewOnce",orderMessage:"order",listResponseMessage:"lists",ephemeralMessage:"ephemeral",invoiceMessage:"invoice",buttonsMessage:"buttons",buttonsResponseMessage:"buttons",paymentInviteMessage:"paymentInvite",interactiveMessage:"interactive",reactionMessage:"reaction",stickerSyncRmrMessage:"sticker",questionMessage:"question",nativeFlowResponseMessage:"lists",interactiveResponseMessage:"interactiveResponse",pollCreationMessage:"pollCreation",pollCreationMessageKey:"pollUpdate",pollUpdateMessage:"pollUpdate",keepInChatMessage:"keepInChat",documentWithCaptionMessage:"document",requestPhoneNumberMessage:"requestPhoneNumber",viewOnceMessageV2:"viewOnce",encReactionMessage:"reaction",editedMessage:"text",viewOnceMessageV2Extension:"viewOnce",pollCreationMessageV2:"pollCreation",scheduledCallCreationMessage:"scheduledCallCreation",groupMentionedMessage:"groupMentioned",pinInChatMessage:"pinInChat",pollCreationMessageV3:"pollCreation",scheduledCallEditMessage:"scheduledCallEdit",ptvMessage:"ptv",botInvokeMessage:"botInvoke",callLogMesssage:"callLog",encCommentMessage:"encComment",bcallMessage:"bcall",lottieStickerMessage:"lottieSticker",eventMessage:"event",commentMessage:"comment",newsletterAdminInviteMessage:"text",extendedTextMessageWithParentKey:"text",extendedTextMessage:"text",placeholderMessage:"placeholder",encEventUpdateMessage:"encEventUpdate"},rt={whatsapp:"0@s.whatsapp.net",meta:"13135550002@s.whatsapp.net",chatgpt:"18002428478@s.whatsapp.net",copilot:"18772241042@s.whatsapp.net",instagram:"447723442971@s.whatsapp.net",tiktok:"6285574670498@s.whatsapp.net"};c();var Ce=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 Ae=class{constructor(e){this.client=e;this.limiter=new Ce(e),this.initialize();}limiter;maxReplies=3;async initialize(){let e=a.get("socket");if(!e?.ev){console.warn("\u26A0\uFE0F [Messages] Socket or socket.ev is not available during initialization");return}e.ev.on("messages.upsert",async({messages:t,type:n})=>{try{if(n!=="notify"&&n!=="append")return;for(let i of t)try{let r=await this.parse(i);r&&(P.add(async()=>this.client.middleware.run({messages:r})),P.add(async()=>this.client.plugins.execute(this.client,{messages:r})),a.set("message",r),a.events.emit("messages",r),this.client.options.autoRead&&P.add(async()=>e.readMessages([r.message().key])));}catch{}}catch{}});}async parse(e,t){if(e?.category==="peer"||!e?.message||!e?.key?.id||e?.messageStubType||e?.messageStubParameters?.length||e.message?.protocolMessage?.peerDataOperationRequestResponseMessage)return;let n=e,i=a.get("socket"),r={},o=ke(e.message),p=o.chain.at(-1),l=o.leaf;if(l?.message&&(o=ke(l.message),p=o.chain.at(-1),l=o.leaf),r.uniqueId=null,r.channelId=null,r.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,r.chatType=Ot[p],!r.chatType)return;r.receiverLid=rn.jidNormalizedUser(i?.user?.lid||""),r.receiverId=rn.jidNormalizedUser(i?.user?.id||""),r.receiverName=Q(i?.user?.name||i?.user?.verifiedName),r.roomId=rn.jidNormalizedUser(e?.key?.remoteJid);let u=l?.type===0,M=l?.type===1,S=l?.type===2,b=r.roomId?.includes("@newsletter"),A=!!e?.message?.questionMessage,D=e?.key?.fromMe||false;if(D&&this.client.options.ignoreMe&&t!=="replied")return;let J=l?.key?.id;if(u||M||S){let T=await this.client.db("messages").query(r.roomId).where("key.id","=",J).first();if(!T)return;e=T,o=ke(e.message),p=o.chain.at(-1),l=o.leaf;}if(r.roomName=await this.client.getRoomName(r.roomId),r.senderLid=rn.jidNormalizedUser(e?.key?.participant||e?.key?.remoteJid)||null,r.senderId=rn.jidNormalizedUser(e?.key?.participantAlt||e?.key?.remoteJidAlt)||null,r.senderName=Q(e?.pushName||e?.verifiedBizName),r.senderDevice=rn.getDevice(r.chatId||""),r.channelId=ee([r.roomId,r.senderId]),r.uniqueId=ee([r.channelId,r.chatId]),r.timestamp=Number(e?.messageTimestamp)*1e3,b){let T=await i.newsletterMetadata("jid",r.roomId);r.roomName=x(T.thread_metadata.name)?.text,r.senderId=null,r.senderLid=null;}D&&(r.senderLid=rn.jidNormalizedUser(i.user.lid),r.senderId=r.receiverId,r.senderName=r.receiverName),r.text=l?.text||l?.caption||l?.name||l?.displayName||l?.conversation||l?.contentText||l?.selectedDisplayText||l||null,l?.name=="menu_options"&&(r.text=Je(l?.paramsJson)?.id),r.text=Q(r.text),r.mentions=Tt(r.text),r.links=Et(r.text||""),r.isBot=r.chatId.startsWith("BAE5")||r.chatId.startsWith("3EB0")||r.chatId.startsWith("Z4D3FC"),r.isFromMe=D;let K=E__default.default.castArray(this.client.options?.prefix);if(r.isPrefix=!!K.find(T=>r.text?.startsWith(T)),r.isTagMe=r.mentions?.includes(r.receiverId.split("@")[0])||r.mentions?.includes(r.receiverLid.split("@")[0]),r.isStatusMention=!!e?.message?.statusMentionMessage,r.isGroupStatusMention=!!e?.message?.groupStatusMentionMessage,r.isHideTags=false,E__default.default.isEmpty(r.text)&&l?.contextInfo?.mentionedJid?.length&&(r.isHideTags=true),r.isSpam=await this.limiter.isSpam(r.channelId),r.isPrefix&&(r.text=r.text.replace(new RegExp(`^${E__default.default.escapeRegExp(K.find(T=>r.text?.startsWith(T))||"")}`),"")),r.isGroup=r.roomId?.includes("@g.us"),r.isNewsletter=b,r.isQuestion=A,r.isStory=r.roomId?.includes("@broadcast"),!r.isGroup&&!r.roomName&&(r.roomName=r.senderName),r.isViewOnce=false,r.isEdited=!!fe(de(o),"editedMessage"),r.isDeleted=u,r.isPinned=M,r.isUnPinned=S,r.isBroadcast=!!e?.broadcast,r.isEphemeral=!!fe(de(l?.contextInfo),"ephemeralSettingTimestamp"),r.isForwarded=!!fe(de(l?.contextInfo),"forwardingScore"),r.citation=null,this.client.options.citation){r.citation=r.citation||{};let T=this.client.options.citation;for(let W of Object.keys(T)){let oe=T[W];r.citation[W]=async()=>{let se=await oe(),Z=[z(r.roomId),z(r.senderLid),z(r.senderId)];return !!E__default.default.intersection(Z,se).length};}}r.chatType!=="text"&&(r.media={...St(l),buffer:()=>rn.downloadMediaMessage(e,"buffer",{}),stream:()=>rn.downloadMediaMessage(e,"stream",{})}),r.isStatusMention&&(r.chatType="statusMention"),r.isGroupStatusMention&&(r.chatType="groupStatusMention"),r.message=()=>n,r.replied=null;let v=l?.contextInfo?.quotedMessage,F=fe(de(v),"viewOnce"),V=l?.contextInfo?.stanzaId;if(v&&this.maxReplies){this.maxReplies--;let T=await this.client.db("messages").getByIndex("messages","key.id",V),W;F?W={...T[0],message:v}:W=T[0],r.replied=await this.parse(W,"replied"),r.replied&&(r.replied.isViewOnce=true),this.maxReplies=3;}return t!="replied"&&this.client.logs.message(r),r.injection=X.getAll(),r}};var Pe=class{constructor(e){this.client=e;this.connection=new Se(e),this.messages=new Ae(e),this.calls=new ve(e),this.initialize();}connection;messages;calls;async initialize(){let e=a.get("socket");e.ev.on("groups.update",async([t])=>{P.add(async()=>{let n=await e.groupMetadata(t.id);$.set(t.id,n);});}),e.ev.on("group-participants.update",async t=>{P.add(async()=>{let n=await e.groupMetadata(t.id);$.set(t.id,n);});}),e?.ev.on("messaging-history.set",async t=>{let{chats:n,contacts:i,messages:r}=t;P.add(async()=>{await this.client.db("chats").batchUpsert("chats",n,"id");}),P.add(async()=>{await this.client.db("contacts").batchUpsert("contacts",i,"id");}),P.add(async()=>{await this.client.db("messages").batchUpsert("messages",r,"key.id");});}),e?.ev.on("messages.upsert",async({messages:t})=>{P.add(async()=>{await this.client.db("messages").batchUpsert("messages",t,"key.id");});}),e?.ev.on("chats.upsert",async t=>{P.add(async()=>{await this.client.db("chats").batchUpsert("chats",t,"id");});}),e?.ev.on("contacts.upsert",async t=>{P.add(async()=>{await this.client.db("contacts").batchUpsert("contacts",t,"id");});}),await this.client.db("messages").createIndex("messages","key.remoteJid"),await this.client.db("messages").createIndex("messages","key.id"),await this.client.db("chats").createIndex("chats","id"),await this.client.db("contacts").createIndex("contacts","id");}};c();c();c();var In=m__default.default.object({type:m__default.default.literal("quick_reply"),text:m__default.default.string()}),An=m__default.default.object({type:m__default.default.literal("cta_url"),url:m__default.default.url(),text:m__default.default.string()}),Pn=m__default.default.object({type:m__default.default.literal("cta_copy"),copy:m__default.default.string(),text:m__default.default.string()}),En=m__default.default.object({type:m__default.default.literal("cta_call"),text:m__default.default.string(),phoneNumber:m__default.default.string()}),Rn=m__default.default.object({type:m__default.default.literal("single_select"),text:m__default.default.string(),section:m__default.default.object({title:m__default.default.string(),highlight_label:m__default.default.string().optional(),rows:m__default.default.object({id:m__default.default.string(),title:m__default.default.string(),header:m__default.default.string().optional(),description:m__default.default.string().optional()}).array()}).array()}),Bn=m__default.default.object({type:m__default.default.literal("interactive"),footer:m__default.default.string().optional(),data:m__default.default.union([In,An,Pn,En,Rn]).array()}),Fn=m__default.default.object({type:m__default.default.literal("simple"),footer:m__default.default.string().optional(),data:m__default.default.object({id:m__default.default.string(),text:m__default.default.string()}).array()}),Nt=m__default.default.union([Fn,Bn]);c();var On=m.z.object({maxMessages:m.z.number().default(20),durationMs:m.z.number().default(1e4)}).optional(),$n=m.z.record(m.z.string(),m.z.function({output:m.z.promise(m.z.array(m.z.number()))})).optional(),Nn=m.z.object({provider:m.z.enum(["whatsapp","meta","chatgpt","copilot","instagram","tiktok"]).or(m.z.number())}).optional(),it=m.z.enum(["default","rounded","circle","oval"]).default("default"),Dn=m.z.object({packageName:m.z.string().optional(),authorName:m.z.string().optional(),quality:m.z.number().optional(),shape:it.optional()}).optional(),Wn=m.z.object({enabled:m.z.boolean().default(false).optional(),intervalMs:m.z.number().default(3600*1e3).optional(),maxAgeMs:m.z.number().default(1440*60*1e3).optional(),scopes:m.z.array(m.z.string()).default(["messages"]).optional()}).optional(),Dt=m.z.object({session:m.z.string().default("zaileys").optional(),prefix:m.z.union([m.z.string(),m.z.array(m.z.string())]).optional(),ignoreMe:m.z.boolean().default(true).optional(),showLogs:m.z.boolean().default(true).optional(),fancyLogs:m.z.boolean().default(false).optional(),syncFullHistory:m.z.boolean().default(true).optional(),disableFFmpeg:m.z.boolean().default(false).optional(),autoMarkAI:m.z.boolean().default(true).optional(),autoMentions:m.z.boolean().default(true).optional(),autoOnline:m.z.boolean().default(true).optional(),autoRead:m.z.boolean().default(true).optional(),autoPresence:m.z.boolean().default(true).optional(),autoRejectCall:m.z.boolean().default(true).optional(),autoCleanUp:Wn,limiter:On,citation:$n,fakeReply:Nn,sticker:Dn}),_n=m.z.object({authType:m.z.literal("pairing"),phoneNumber:m.z.number()}),jn=m.z.object({authType:m.z.literal("qr")}),Wt=m.z.union([_n.extend(Dt.shape),jn.extend(Dt.shape)]),Bs=m.z.enum(["connection","messages","calls"]);var ge=m__default.default.url().or(m__default.default.base64()).or(m__default.default.instanceof(Buffer)),_t=m__default.default.object({text:m__default.default.string()}).passthrough(),Ln=m__default.default.object({image:ge,caption:m__default.default.string().optional()}).passthrough(),Un=m__default.default.object({audio:ge,caption:m__default.default.string().optional(),ptt:m__default.default.boolean().optional()}).passthrough(),zn=m__default.default.object({video:ge,caption:m__default.default.string().optional(),ptv:m__default.default.boolean().optional()}).passthrough(),qn=m__default.default.object({sticker:ge,shape:it.optional(),caption:m__default.default.string().optional()}).passthrough(),Vn=m__default.default.object({document:ge,caption:m__default.default.string().optional(),fileName:m__default.default.string().optional()}).passthrough(),Gn=m__default.default.object({location:m__default.default.object({latitude:m__default.default.number(),longitude:m__default.default.number(),url:m__default.default.url().optional(),title:m__default.default.string().optional(),footer:m__default.default.string().optional()}).optional()}).passthrough(),Jn=m__default.default.object({contacts:m__default.default.object({title:m__default.default.string().optional(),contacts:m__default.default.object({fullname:m__default.default.string(),phoneNumber:m__default.default.number(),organization:m__default.default.string().optional()}).array()})}).passthrough(),Kn=m__default.default.object({poll:m__default.default.object({name:m__default.default.string(),answers:m__default.default.string().array(),isMultiple:m__default.default.boolean().default(false).optional()})}),jt=m__default.default.object({replied:m__default.default.custom().optional(),isForwardedMany:m__default.default.boolean().optional(),isViewOnce:m__default.default.boolean().optional(),banner:m__default.default.custom().optional(),buttons:Nt.optional()});m__default.default.enum(["forward","button","edit","delete"]);var Hn=m__default.default.union([_t,Ln,Un,zn,qn,Vn,Gn,Jn,Kn]),Lt=m__default.default.string().or(m__default.default.intersection(Hn,jt.omit({buttons:true}))),Ut=m__default.default.intersection(_t,jt.omit({banner:true}));c();var Ee=class{toNativeSimple(e){return e.map(({id:t,text:n})=>({name:"quick_reply",buttonParamsJson:JSON.stringify({display_text:n,id:t})}))}toNativeInteractive(e){let t={quick_reply:n=>({display_text:n.text,id:n.id}),cta_url:n=>({display_text:n.text,url:n.url,merchant_url:n.url}),cta_copy:n=>({display_text:n.text,id:n.id,copy_code:n.copy}),cta_call:n=>({display_text:n.text,phone_number:n.phoneNumber}),single_select:n=>({title:n.text,sections:n.section})};return e.map(n=>({name:n.type,buttonParamsJson:JSON.stringify(t[n.type](n))}))}build(e){let t=x(e).buttons,n=t?.data||[],r=t?.type=="simple"?this.toNativeSimple(n):this.toNativeInteractive(n);return {body:{text:x(e).text},footer:t.footer?{text:t.footer}:void 0,nativeFlowMessage:{buttons:r}}}async send(e,t,n){let i=a.get("socket"),r=i?.authState?.creds?.me?.id||i?.user?.id,o=this.build(t),p=rn.generateWAMessageFromContent(e,{interactiveMessage:o},{userJid:r,messageId:rn.generateMessageIDV2(r),...n});return await i.relayMessage(e,p.message,{messageId:p.key.id,...n,additionalNodes:[{tag:"biz",attrs:{},content:[{tag:"interactive",attrs:{type:"native_flow",v:"1"},content:[{tag:"native_flow",attrs:{v:"9",name:"mixed"}}]}]}]}),i.config?.emitOwnEvents&&!rn.isJidGroup(e)&&process.nextTick(()=>i.upsertMessage?.(p,"append")),p}};var Re=class{constructor(e){this.client=e;}async signal(e,t,n,i){n!="delete"&&(n=="button"?t=me(Ut,t):t=me(Lt,t));let r=a.get("socket"),o={},p={},l=E__default.default.isString(t),u=this.client.options?.fakeReply?.provider,M=this.client.options?.autoMentions,S=this.client.options?.autoPresence,b=E__default.default.has(t,"replied"),A=E__default.default.has(t,"banner"),D=E__default.default.has(t,"isViewOnce"),J=n=="button",K=E__default.default.has(t,"image"),v=E__default.default.has(t,"video"),F=E__default.default.has(t,"audio"),V=E__default.default.has(t,"sticker"),T=E__default.default.has(t,"document"),W=E__default.default.has(t,"location"),oe=E__default.default.has(t,"contacts"),se=E__default.default.has(t,"poll"),Z=K||v||F||V||T,H=l?t:Ke([t],["text","caption"]);if(S&&(F?await r.sendPresenceUpdate("recording",e):await r.sendPresenceUpdate("composing",e)),M&&(o={...o,mentions:Ve(H),contextInfo:{mentionedJid:Ve(H)}}),b&&(p.quoted=x(t).replied,u&&(p.quoted.key.remoteJid=rt[u],p.quoted.key.participant=rt[u])),A&&(o={...o,contextInfo:{externalAdReply:x(t).banner}},o.contextInfo.externalAdReply.mediaType=1),D&&(o={...o,viewOnce:x(t)?.isViewOnce}),H&&(o={...o,text:H,caption:H},Z&&delete x(o).text),Z){let I=Ke([t],["image","video","audio","sticker","document"]);if(K&&(o={...o,image:await O.image(I).toJpeg(),jpegThumbnail:await O.thumbnail(I).get()}),v){let _=x(t)?.ptv;o={...o,video:await O.video(I).toMp4(),ptv:_,jpegThumbnail:await O.thumbnail(I).get()};}if(F){let _=x(t)?.ptt;o={...o,audio:await O.audio(I).toOpus(),ptt:_,mimetype:_?"audio/ogg; codecs=opus":"audio/mpeg"};}if(V){let _=x(t)?.shape;o={...o,sticker:await O.sticker(I,{...this.client.options?.sticker,shape:_}).create()};}if(T){let _=await O.document(I).create();o={...o,fileName:x(t).fileName,..._};}}if(W){let I=x(t).location;o={...o,location:{degreesLatitude:I.latitude,degreesLongitude:I.longitude,url:I.url,address:I.footer,name:I.title}};}if(oe){let I=x(t)?.contacts,_=I?.contacts.map(ae=>{let Vt=["BEGIN:VCARD","VERSION:3.0",`FN:${ae.fullname}`,`ORG:${ae.organization||""}`,`TEL;type=CELL;type=VOICE;waid=${ae.phoneNumber}:${ae.phoneNumber}`,"END:VCARD"].join(`
|
|
5
|
-
`);return {displayName:ae.fullname,vcard:Vt}});o={...o,contacts:{displayName:I?.title,contacts:_}};}if(se){let I=x(t)?.poll;o={...o,poll:{name:I.name,values:I.answers,selectableCount:I.isMultiple?1:0,toAnnouncementGroup:true}};}return n=="forward"&&(o={...o,contextInfo:{...x(o).contextInfo,isForwarded:true,forwardingScore:x(t).isForwardedMany?9999:1}}),n=="edit"&&(o={...o,edit:i?.key},await r.sendPresenceUpdate("paused",e)),n=="delete"&&(o={...o,delete:i?.key},await r.sendPresenceUpdate("paused",e)),J?await new Ee().send(e,t,p):await r.sendMessage(e,x(o),p)}async send(e,t){return await this.signal(e,t)}async forward(e,t){return await this.signal(e,t,"forward")}async button(e,t){return await this.signal(e,t,"button")}async edit(e,t){return await this.signal(e.key.remoteJid,t,"edit",e)}async delete(e){return E__default.default.isArray(e)?Promise.all(e.map(t=>this.signal(t.key.remoteJid,{},"delete",t))):await this.signal(e.key.remoteJid,{},"delete",e)}async presence(e,t){let n=a.get("socket"),i={typing:"composing",recording:"recording",online:"available",offline:"unavailable",paused:"paused"};return await n.sendPresenceUpdate(i[t],e)}async reaction(e,t){return await a.get("socket").sendMessage(e.key.remoteJid,{react:{text:t,key:e?.key}})}async memberLabel(e,t){return await a.get("socket").relayMessage(e,{protocolMessage:{type:30,memberLabel:{label:t,labelTimestamp:Date.now()}}},{})}};c();var ot=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").communityCreate(e,t)}async createGroup(e,t,n){return await a.get("socket").communityCreateGroup(e,t,n)}async leave(e){return await a.get("socket").communityLeave(e)}async metadata(e){return await a.get("socket").communityMetadata(e)}async update(e,t,n){let i=a.get("socket");switch(t){case "subject":return await i.communityUpdateSubject(e,n);case "description":return await i.communityUpdateDescription(e,n)}}async group(e,t,n){let i=a.get("socket");switch(t){case "link":if(!n)throw "Group JID is required for linking";return await i.communityLinkGroup(e,n);case "unlink":if(!n)throw "Group JID is required for unlinking";return await i.communityUnlinkGroup(e,n);case "linked":return await i.communityFetchLinkedGroups(e)}}async participants(e,t,n,i){let r=a.get("socket");switch(t){case "list":return await r.communityRequestParticipantsList(e);case "request-update":return await r.communityRequestParticipantsUpdate(e,i,x(n));case "update":if(!n||!i)throw "Action and participants are required for update";return await r.communityParticipantsUpdate(e,i,x(n));case "all":return await r.communityFetchAllParticipating()}}async invite(e,t,...n){let i=a.get("socket");switch(t){case "code":return await i.communityInviteCode(e);case "revoke":return await i.communityRevokeInvite(e);case "accept":return await i.communityAcceptInvite(e);case "info":return await i.communityGetInviteInfo(e);case "revokeV4":return await i.communityRevokeInviteV4(e,n[0]);case "acceptV4":return await i.communityAcceptInviteV4(e,n[0])}}async settings(e,t,n){let i=a.get("socket");switch(t){case "ephemeral":return await i.communityToggleEphemeral(e,n);case "update":return await i.communitySettingUpdate(e,n);case "memberAdd":return await i.communityMemberAddMode(e,n);case "approval":return await i.communityJoinApprovalMode(e,n)}}},Be=class{constructor(e){this.mlient=e;this.community=new ot(e);}community};c();var st=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").groupCreate(e,t)}async participant(e,t,n){return await a.get("socket").groupParticipantsUpdate(e,t,n)}async profile(e,t,n){let i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "subject":if(!r)return await i.groupUpdateSubject(e,t);case "description":if(!r)return await i.groupUpdateDescription(e,t);case "picture":return await i.updateProfilePicture(e,await O.toBuffer(t))}}async setting(e,t){let n=a.get("socket");switch(t){case "open":return await n.groupSettingUpdate(e,"not_announcement");case "close":return await n.groupSettingUpdate(e,"announcement");case "locked":return await n.groupSettingUpdate(e,t);case "unlocked":return await n.groupSettingUpdate(e,t);case "all_member_add":return await n.groupMemberAddMode(e,t);case "admin_add":return await n.groupMemberAddMode(e,t)}}async leave(e){return await a.get("socket").groupLeave(e)}async inviteCode(e,t){let n=a.get("socket");switch(t){case "code":return await n.groupInviteCode(e);case "revoke":return await n.groupRevokeInvite(e);case "accept":return await n.groupAcceptInvite(e);case "info":return await n.groupGetInviteInfo(e)}}async metadata(e){let t=a.get("socket"),n=$.get(e);if(n)return n;let i=await t.groupMetadata(e);return i&&$.set(e,i),i}async requestJoin(e,t,n){let i=a.get("socket");switch(n){case "approve":return await i.groupRequestParticipantsUpdate(e,t,n);case "reject":return await i.groupRequestParticipantsUpdate(e,t,n)}}async requestJoinList(e){return await a.get("socket").groupRequestParticipantsList(e)}async fetchAllGroups(){return await a.get("socket").groupFetchAllParticipating()}async ephemeral(e,t){let n=a.get("socket"),i={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await n.groupToggleEphemeral(e,i[t])}},Fe=class{constructor(e){this.glient=e;this.group=new st(e);}group};c();var at=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").newsletterCreate(e,t)}async action(e,t){let n=a.get("socket");switch(t){case "follow":return await n.newsletterFollow(e);case "unfollow":return await n.newsletterUnfollow(e);case "mute":return await n.newsletterMute(e);case "unmute":return await n.newsletterUnmute(e);}}async update(e,t,n){let i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "name":if(!r)return await i.newsletterUpdateName(e,t);case "description":if(!r)return await i.newsletterUpdateDescription(e,t);case "picture":return await i.newsletterUpdatePicture(e,await O.toBuffer(t))}}async metadata(e,t){return await a.get("socket").newsletterMetadata(t,e)}async subscribers(e){return await a.get("socket").newsletterSubscribers(e)}async reaction(e,t,n){return await a.get("socket").newsletterReactMessage(e,t,n)}async fetchMessages(e,t,n,i){let r=a.get("socket"),o=n.getTime()/1e3,p=i.getTime()/1e3;return await r.newsletterFetchMessages(e,t,o,p)}async adminCount(e){return await a.get("socket").newsletterAdminCount(e)}async changeOwner(e,t){return await a.get("socket").newsletterChangeOwner(e,t)}async demote(e,t){return await a.get("socket").newsletterDemote(e,t)}async delete(e){return await a.get("socket").newsletterDelete(e)}async removePicture(e){return await a.get("socket").newsletterRemovePicture(e)}},Oe=class{constructor(e){this.nlient=e;this.newsletter=new at(e);}newsletter};c();var ct=class{constructor(e){this.client=e;}async block(e){return await a.get("socket").updateBlockStatus(e,"block")}async unblock(e){return await a.get("socket").updateBlockStatus(e,"unblock")}async lastSeen(e){return await a.get("socket").updateLastSeenPrivacy(e)}async online(e){return await a.get("socket").updateOnlinePrivacy(e)}async picture(e){return await a.get("socket").updateProfilePicturePrivacy(e)}async status(e){return await a.get("socket").updateStatusPrivacy(e)}async readReceipt(e){return await a.get("socket").updateReadReceiptsPrivacy(e)}async groupsAdd(e){return await a.get("socket").updateGroupsAddPrivacy(e)}async ephemeral(e){let t=a.get("socket"),n={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await t.updateDefaultDisappearingMode(n[e])}async blocklist(){return await a.get("socket").fetchBlocklist()}async getSettings(){return await a.get("socket").fetchPrivacySettings(true)}},$e=class{constructor(e){this.plient=e;this.privacy=new ct(e);}privacy};c();c();var va=m__default.default.object({status:m__default.default.enum(["connecting","open","close","reload","syncing"]),authType:m__default.default.enum(["pairing","qr"]),authTimeout:m__default.default.number().optional(),syncProgress:m__default.default.number().optional(),syncCompleted:m__default.default.boolean().default(false).optional(),qr:m__default.default.string().optional(),code:m__default.default.string().optional()});c();var er=m__default.default.enum(["unknown","android","ios","desktop","web"]),tr=m__default.default.enum(["text","album","image","contact","location","document","audio","video","protocol","contacts","highlyStructured","sendPayment","requestPayment","groupStatusMention","statusMention","declinePaymentRequest","cancelPaymentRequest","template","sticker","groupInvite","product","deviceSent","lists","viewOnce","order","ephemeral","invoice","buttons","paymentInvite","interactive","reaction","sticker","interactiveResponse","pollCreation","pollUpdate","keepInChat","document","requestPhoneNumber","viewOnce","reaction","text","viewOnce","pollCreation","scheduledCallCreation","groupMentioned","pinInChat","pollCreation","scheduledCallEdit","ptv","botInvoke","callLog","encComment","bcall","lottieSticker","event","comment","placeholder","encEventUpdate"]),zt=m__default.default.object({channelId:m__default.default.string(),uniqueId:m__default.default.string(),chatId:m__default.default.string(),chatType:tr,receiverLid:m__default.default.string(),receiverId:m__default.default.string(),receiverName:m__default.default.string(),roomId:m__default.default.string(),roomName:m__default.default.string(),senderLid:m__default.default.string(),senderId:m__default.default.string(),senderName:m__default.default.string(),senderDevice:er,timestamp:m__default.default.number(),text:m__default.default.string().nullable(),mentions:m__default.default.string().array(),links:m__default.default.string().array(),isBot:m__default.default.boolean(),isFromMe:m__default.default.boolean(),isPrefix:m__default.default.boolean(),isSpam:m__default.default.boolean(),isTagMe:m__default.default.boolean(),isStatusMention:m__default.default.boolean(),isGroupStatusMention:m__default.default.boolean(),isHideTags:m__default.default.boolean(),isGroup:m__default.default.boolean(),isNewsletter:m__default.default.boolean(),isQuestion:m__default.default.boolean(),isStory:m__default.default.boolean(),isViewOnce:m__default.default.boolean(),isEdited:m__default.default.boolean(),isDeleted:m__default.default.boolean(),isPinned:m__default.default.boolean(),isUnPinned:m__default.default.boolean(),isBroadcast:m__default.default.boolean(),isEphemeral:m__default.default.boolean(),isForwarded:m__default.default.boolean(),citation:m__default.default.record(m__default.default.string(),m__default.default.function({output:m__default.default.promise(m__default.default.boolean())})).nullable(),media:m__default.default.object({buffer:m__default.default.function({output:m__default.default.promise(m__default.default.instanceof(Buffer))}),stream:m__default.default.function({output:m__default.default.promise(m__default.default.instanceof(Xn__default.default))})}).loose().nullable(),injection:m__default.default.record(m__default.default.string(),m__default.default.any()).default({}),message:m__default.default.function({input:[],output:m__default.default.custom()})}),Aa=zt.extend({replied:zt.nullable()});c();var Ba=m__default.default.object({callId:m__default.default.string(),callerId:m__default.default.string(),roomId:m__default.default.string(),roomName:m__default.default.string(),date:m__default.default.date(),offline:m__default.default.boolean(),status:m__default.default.enum(["accept","offer","reject","ringing","terminate","timeout"]),isVideo:m__default.default.boolean(),isGroup:m__default.default.boolean()});c();var Ne=class{constructor(e){this.client=e;this.initialize();}logsInitialized=false;logsDisplayed=false;isReady=false;getRoomColor(e){return e?.isNewsletter?"blue":e?.isGroup?e?.isGroup?"lime":"dimgray":"orange"}initialize(){if(!this.client.options.showLogs||this.logsInitialized)return;this.logsInitialized=true;let e=async({status:t})=>{t==="open"&&(this.isReady=true,this.logsDisplayed||setTimeout(()=>{this.displayIndicator();},500));};a.events.on("connection",e);}displayIndicator(){this.logsDisplayed||(this.logsDisplayed=true,console.log(),a.spinner.info("Logs Indicator:"),console.log(y(" \u2022","orange")+" Private Chat"),console.log(y(" \u2022","lime")+" Group Chat"),console.log(y(" \u2022","blue")+" Newsletter Chat"),console.log());}message(e){if(!this.isReady)return;let t=x(this.getRoomColor(e)),n=e?.text?.toLowerCase()?.match("zaileys"),i=this.client.options?.fancyLogs,r=y(`[${new Date(e?.timestamp).toTimeString().split(" ")[0]}]`,"dimgray"),o=y(`${e?.roomName}`,t),p=e?.text?.slice(0,300)||"",l=p?.length>=300?"...":"";if(i){let u=y("\u2501".repeat(50),"dimgray"),M=y("\u2192","dimgray"),S=y("\u2022",t),b=`
|
|
1
|
+
'use strict';var ke=require('fluent-ffmpeg'),le=require('fs/promises'),os=require('os'),J=require('path'),rn=require('baileys'),jetdb=require('jetdb'),nanospinner=require('nanospinner'),pe=require('node-cache'),Yt=require('pino'),events=require('events'),asyncMutex=require('async-mutex'),fileType=require('file-type'),jimp=require('jimp'),fn=require('node-webpmux'),E=require('lodash'),Ct=require('unorm'),zodValidationError=require('zod-validation-error'),Pt=require('gradient-string'),bn=require('figlet'),xn=require('qrcode-terminal'),rateLimiterFlexible=require('rate-limiter-flexible'),m=require('zod'),Xn=require('stream'),X=require('fs'),url=require('url');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var ke__default=/*#__PURE__*/_interopDefault(ke);var le__default=/*#__PURE__*/_interopDefault(le);var J__namespace=/*#__PURE__*/_interopNamespace(J);var rn__default=/*#__PURE__*/_interopDefault(rn);var pe__default=/*#__PURE__*/_interopDefault(pe);var Yt__default=/*#__PURE__*/_interopDefault(Yt);var fn__default=/*#__PURE__*/_interopDefault(fn);var E__default=/*#__PURE__*/_interopDefault(E);var Ct__default=/*#__PURE__*/_interopDefault(Ct);var Pt__default=/*#__PURE__*/_interopDefault(Pt);var bn__default=/*#__PURE__*/_interopDefault(bn);var xn__default=/*#__PURE__*/_interopDefault(xn);var m__default=/*#__PURE__*/_interopDefault(m);var Xn__default=/*#__PURE__*/_interopDefault(Xn);var X__namespace=/*#__PURE__*/_interopNamespace(X);var Gt=Object.defineProperty;var Jt=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+s+'" is not supported')});var pt=(s,e)=>()=>(s&&(e=s(s=0)),e);var Ht=(s,e)=>{for(var t in e)Gt(s,t,{get:e[t],enumerable:true});};var c=pt(()=>{});var bt={};Ht(bt,{BufferConverter:()=>C,FFMPEG_CONSTANTS:()=>b,FFmpegProcessor:()=>j,FileManager:()=>h,MimeValidator:()=>R,initializeFFmpeg:()=>qe});var b,qe,h,C,R,j,G=pt(()=>{c();b={OPUS:{CODEC:"libopus",CHANNELS:1,FREQUENCY:48e3,BITRATE:"48k",FORMAT:"ogg"},THUMBNAIL:{SIZE:100,QUALITY:50,TIMESTAMP:"10%"},STICKER:{SIZE:512,MAX_DURATION:10,FPS:15,DEFAULT_QUALITY:80,COMPRESSION_LEVEL:6},MIME:{AUDIO:"audio/",VIDEO:"video/",IMAGE:"image/",GIF:"image/gif",MP4:"video/mp4"}},qe=async(s=false)=>{if(!s)try{let e=(await import('@ffmpeg-installer/ffmpeg')).default,t=(await import('@ffprobe-installer/ffprobe')).default;ke__default.default.setFfmpegPath(e.path),ke__default.default.setFfprobePath(t.path);}catch{}},h=class{static generateUniqueId(){return `${Date.now()}_${Math.random().toString(36).slice(2,11)}`}static createTempPath(e,t){return J__namespace.default.join(os.tmpdir(),`${e}_${this.generateUniqueId()}.${t}`)}static async cleanup(e){await Promise.allSettled(e.map(t=>le__default.default.unlink(t)));}static async safeReadFile(e){try{return await le__default.default.readFile(e)}catch{throw new Error(`Failed to read file: ${e}`)}}static async safeWriteFile(e,t){try{await le__default.default.writeFile(e,t);}catch{throw new Error(`Failed to write file: ${e}`)}}},C=class{static async toBuffer(e){if(Buffer.isBuffer(e))return e;if(e instanceof ArrayBuffer)return Buffer.from(e);if(typeof e=="string")return this.fromString(e);throw new Error("Invalid input type: expected string, Buffer, or ArrayBuffer")}static async fromString(e){if(e.startsWith("http://")||e.startsWith("https://"))return this.fromUrl(e);try{if(await le__default.default.stat(e).then(t=>t.isFile()).catch(()=>!1))return await le__default.default.readFile(e)}catch{}return Buffer.from(e,"base64")}static async fromUrl(e){try{let t=await fetch(e);if(!t.ok)throw new Error(`HTTP ${t.status}: ${t.statusText}`);let n=await t.arrayBuffer();return Buffer.from(n)}catch(t){throw new Error(`Failed to fetch URL: ${t.message}`)}}static async getExtension(e){let{fileTypeFromBuffer:t}=await import('file-type'),n=await t(e);if(!n)return "tmp";let i=n.ext.toLowerCase();return ["wav","ogg","mp4","gif","jpg","webp","tmp","mp3","png"].includes(i)?i:"tmp"}},R=class{static validate(e,t){if(!e?.mime?.startsWith(t))throw new Error(`Invalid file type: expected ${t}*, got ${e?.mime||"unknown"}`)}static isMedia(e){return e.startsWith(b.MIME.IMAGE)||e.startsWith(b.MIME.VIDEO)}static isAnimated(e){return e===b.MIME.GIF||e.startsWith(b.MIME.VIDEO)}},j=class{static async process(e){return new Promise((t,n)=>{let i=ke__default.default(e.input).output(e.output);for(let r=0;r<e.options.length;r++){let o=e.options[r];o.startsWith("-")&&r+1<e.options.length&&!e.options[r+1].startsWith("-")?(i.outputOptions(o,e.options[r+1]),r++):i.outputOptions(o);}i.on("end",async()=>{try{await e.onEnd(),t();}catch(r){n(r);}}).on("error",async r=>{try{await e.onError(r);}finally{n(r);}}).run();})}static async getDuration(e){return new Promise((t,n)=>{ke__default.default.ffprobe(e,(i,r)=>{if(i)return n(i);t(r.format.duration||0);});})}};});c();c();c();c();var lt=s=>jetdb.createJetDB(`${s}/auth/creds.json`,{BufferJSON:rn.BufferJSON,cacheSize:100,flushMode:"sync",compression:"none",enableIndexing:false}),he=s=>jetdb.createJetDB(`${s}/auth/keys.json`,{BufferJSON:rn.BufferJSON,size:1024*1024,cacheSize:2e3,flushMode:"sync",compression:"none",enableIndexing:false,hotThreshold:5}),ut=(s,e)=>jetdb.createJetDB(`.session/${s}/store/${e}.json`,{BufferJSON:rn.BufferJSON,cacheSize:2e4,debounceMs:1e3,flushMode:"debounce",compression:"deflate",serialization:"json",enableIndexing:true,hotThreshold:2,size:5*1024*1024});c();c();var mt=new pe__default.default({stdTTL:600,checkperiod:120,useClones:false}),D=new pe__default.default({stdTTL:300,useClones:false}),dt=new pe__default.default({stdTTL:300}),ft=new pe__default.default({stdTTL:600,checkperiod:120,useClones:false,deleteOnExpire:true,maxKeys:100}),gt=new pe__default.default;c();var re=class{classInjection(e,t){let n=t.length;return new Proxy(e,{get(i,r,o){if(r in i){let l=Reflect.get(i,r,o);return typeof l=="function"?l.bind(i):l}for(let l=0;l<n;l++){let p=t[l];if(r in p){let u=Reflect.get(p,r,o);return typeof u=="function"?u.bind(p):u}}},set(i,r,o,l){if(r in i)return Reflect.set(i,r,o,l);for(let p=0;p<n;p++){let u=t[p];if(r in u)return Reflect.set(u,r,o,l)}return Reflect.set(i,r,o,l)},has(i,r){if(r in e)return true;for(let o=0;o<n;o++)if(r in t[o])return true;return false},ownKeys(){let i=[];for(let r of Reflect.ownKeys(e))i.push(r);for(let r=0;r<n;r++)for(let o of Reflect.ownKeys(t[r]))i.includes(o)||i.push(o);return i},getOwnPropertyDescriptor(i,r){let o=Object.getOwnPropertyDescriptor(e,r);if(o)return o;for(let l=0;l<n;l++)if(o=Object.getOwnPropertyDescriptor(t[l],r),o)return o}})}};var Le=class extends pe__default.default{constructor(){return super({useClones:false}),new re().classInjection(this,[mt])}spinner=nanospinner.createSpinner("",{color:"green"});logger=Yt__default.default({level:"silent",enabled:false});events=new events.EventEmitter},a=new Le;var yt=async s=>{a.spinner.start(" Initializing auth state...");let e=lt(s),t=he(s),n=await e.get("creds"),i=n||rn.initAuthCreds();return n?a.spinner.success(" Auth credentials loaded successfully"):a.spinner.success(" Initialized new auth session"),{state:{creds:i,keys:{get:async(r,o)=>{let l={};return await Promise.all(o.map(async p=>{let u=`${r}:${p}`,w=await t.get(u);r==="app-state-sync-key"&&w&&(w=rn.proto.Message.AppStateSyncKeyData.fromObject(w)),l[p]=w;})),l},set:async r=>{let o=[],l=[];for(let p in r)for(let u in r[p]){let w=r[p][u],T=`${p}:${u}`;w?o.push({key:T,value:w}):l.push(T);}o.length&&await t.batchSet(o),l.length&&await t.batchDelete(l),await t.flush();}}},saveCreds:async()=>{await e.set("creds",i),await e.flush();}}};c();c();var wt=(s,e)=>({logger:s.health.logger,printQRInTerminal:false,enableRecentMessageCache:true,emitOwnEvents:true,keepAliveIntervalMs:3e4,browser:rn.Browsers.ubuntu("Chrome"),markOnlineOnConnect:s.options.autoOnline,syncFullHistory:s.options.syncFullHistory,msgRetryCounterCache:gt,mediaCache:dt,auth:{creds:e.creds,keys:rn.makeCacheableSignalKeyStore(e.keys,a.logger)},cachedGroupMetadata:async t=>D.get(t),shouldIgnoreJid:()=>false,shouldSyncHistoryMessage:()=>s.options.syncFullHistory,patchMessageBeforeSending:t=>t,getMessage:async t=>{if(!t?.remoteJid)return rn.proto.Message.fromObject({});let n=await s.db("messages").getByIndex("messages","key.id",t.id);return rn.proto.Message.fromObject(n[0])}});var kt=async s=>{let e=`.session/${s.options.session}`;console.info=()=>{},console.warn=()=>{};let{state:t,saveCreds:n}=await yt(e),i=wt(s,t),r=rn__default.default(i);r.ev.on("creds.update",n),a.set("socket",r);};c();c();c();var we=class{constructor(e){this.client=e;}interval=null;start(){let e=this.client.options.autoCleanUp;e?.enabled&&(this.interval=setInterval(()=>{this.run();},e.intervalMs),this.run());}stop(){this.interval&&(clearInterval(this.interval),this.interval=null);}async run(){let e=this.client.options.autoCleanUp;if(!e?.enabled)return;let t=Date.now()-e.maxAgeMs;for(let n of e.scopes)try{let i=this.client.db(n),r=await i.query(n).where("timestamp","<",t).get();if(r.length>0){let o=r.map(l=>l.key?.id||l.id);await i.batchDelete(o),a.spinner.info(` [CleanUpManager] Cleaned up ${r.length} items from ${n}`);}}catch{}}};c();var ze=class{store=ft;mutex=new asyncMutex.Mutex;async inject(e,t){let n=await this.mutex.acquire();try{this.store.set(e,t);}finally{n();}}async get(e){let t=await this.mutex.acquire();try{return this.store.get(e)}finally{t();}}getSync(e){return this.store.get(e)}getAll(){let e=this.store.keys();return this.store.mget(e)}async remove(e){let t=await this.mutex.acquire();try{return this.store.del(e)>0}finally{t();}}async clear(){let e=await this.mutex.acquire();try{this.store.flushAll();}finally{e();}}has(e){return this.store.has(e)}get size(){return this.store.getStats().keys}keys(){return this.store.keys()}},te=new ze;c();G();c();G();var ie=class{static async toOpus(e){return this.convert(e,"opus")}static async toMp3(e){return this.convert(e,"mp3")}static async convert(e,t="opus"){let n=await C.toBuffer(e),i=await fileType.fileTypeFromBuffer(n);R.validate(i,b.MIME.AUDIO);let r=await C.getExtension(n),o=h.createTempPath("audio_in",r),l=t==="opus"?"ogg":"mp3",p=h.createTempPath("audio_out",l);await h.safeWriteFile(o,n);let u;try{let w=t==="opus"?["-vn","-c:a","libopus","-b:a","48k","-ac","1","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","opus"]:["-vn","-c:a","libmp3lame","-b:a","128k","-ac","2","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","mp3"];return await j.process({input:o,output:p,options:w,onEnd:async()=>{u=await h.safeReadFile(p);},onError:async()=>{await h.cleanup([o,p]);}}),await h.cleanup([o,p]),u}catch(w){throw await h.cleanup([o,p]),new Error(`${t.toUpperCase()} conversion failed: ${w.message}`)}}};c();G();var U=class{static async toMp4(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);R.validate(n,b.MIME.VIDEO);let i=await C.getExtension(t),r=h.createTempPath("video_in",i),o=h.createTempPath("video_out","mp4");await h.safeWriteFile(r,t);let l;try{let p=["-c:v","libx264","-preset","ultrafast","-crf","28","-c:a","aac","-b:a","128k","-movflags","+faststart","-pix_fmt","yuv420p","-f","mp4"];return await j.process({input:r,output:o,options:p,onEnd:async()=>{l=await h.safeReadFile(o);},onError:async()=>{await h.cleanup([r,o]);}}),await h.cleanup([r,o]),l}catch(p){throw await h.cleanup([r,o]),new Error(`Video re-encoding failed: ${p.message}`)}}static async thumbnail(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);R.validate(n,b.MIME.VIDEO);let i=await C.getExtension(t),r=h.createTempPath("video",i),o=h.createTempPath("thumb","jpg");await h.safeWriteFile(r,t);let l;try{return await new Promise((p,u)=>{ke__default.default(r).screenshots({timestamps:[b.THUMBNAIL.TIMESTAMP],filename:J__namespace.default.basename(o),folder:J__namespace.default.dirname(o),size:`${b.THUMBNAIL.SIZE}x${b.THUMBNAIL.SIZE}`}).on("end",async()=>{try{l=(await h.safeReadFile(o)).toString("base64"),p();}catch(w){u(w);}}).on("error",u);}),await h.cleanup([r,o]),l}catch(p){throw await h.cleanup([r,o]),new Error(`Thumbnail generation failed: ${p.message}`)}}static async duration(e){return j.getDuration(e)}};c();G();var L;try{L=Jt("sharp");}catch{L=null;}var N=class{static async thumbnail(e){let t=await fileType.fileTypeFromBuffer(e),n=b.THUMBNAIL.SIZE;if(L){let o=L(e).resize(n,n,{fit:"cover"});return t?.mime===b.MIME.GIF&&o.resize(n,n),(await o.jpeg({quality:b.THUMBNAIL.QUALITY}).toBuffer()).toString("base64")}let i=await jimp.Jimp.read(e);return i.cover({w:n,h:n}),t?.mime===b.MIME.GIF&&i.resize({w:n,h:n}),(await i.getBuffer("image/jpeg",{quality:b.THUMBNAIL.QUALITY})).toString("base64")}static async resize(e,t,n){if(L)return await L(e).resize(t,n,{fit:"cover"}).png().toBuffer();let i=await jimp.Jimp.read(e);return i.cover({w:t,h:n}),await i.getBuffer("image/png")}static async toJpeg(e){let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);if(!n||!n.mime.startsWith(b.MIME.IMAGE))throw new Error("Invalid image type");return n.mime==="image/webp"?L?await L(t).jpeg().toBuffer():await(await jimp.Jimp.read(t)).getBuffer("image/jpeg"):t}static async resizeForSticker(e,t,n="default"){let i=b.STICKER.SIZE;if(L&&n==="default")return await L(e).resize(i,i,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).webp({quality:t}).toBuffer();let r=await jimp.Jimp.read(e);if(r.contain({w:i,h:i}),n!=="default"){let T=new jimp.Jimp({width:i,height:i,color:0});for(let M=0;M<i;M++)for(let A=0;A<i;A++){let W=false,H=i/2,K=i/2;switch(n){case "circle":{let v=A-H,F=M-K;W=v*v+F*F<=H*H;break}case "rounded":{let v=i/10,F=A>=v&&A<i-v&&M>=0&&M<i,V=A>=0&&A<i&&M>=v&&M<i-v,S=false,$=[[v,v],[i-v,v],[v,i-v],[i-v,i-v]];for(let[se,ae]of $){let ee=A-se,Q=M-ae;if(ee*ee+Q*Q<=v*v){S=true;break}}W=F||V||S;break}case "oval":{let v=i/2,F=i/3,V=(A-H)/v,S=(M-K)/F;W=V*V+S*S<=1;break}}W&&T.setPixelColor(4294967295,A,M);}r.mask(T);}let o=h.createTempPath("sticker_img","png"),l=h.createTempPath("sticker_out","webp"),p=await r.getBuffer("image/png");await h.safeWriteFile(o,p);let{FFmpegProcessor:u}=await Promise.resolve().then(()=>(G(),bt)),w;try{return await u.process({input:o,output:l,options:["-vf",`scale=${i}:${i}`,"-quality",String(t),"-f","webp"],onEnd:async()=>{w=await h.safeReadFile(l);},onError:async()=>{await h.cleanup([o,l]);}}),await h.cleanup([o,l]),w}catch(T){throw await h.cleanup([o,l]),new Error(`Sticker resize failed: ${T.message}`)}}};c();c();var ne=s=>{let e;Array.isArray(s)?e=s.join("|"):typeof s=="string"?e=s:e=String(s);let t=2166136261,n=e.length;for(let i=0;i<n;i++)t^=e.charCodeAt(i),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return "Z4D3FC"+(t>>>0).toString(16).padStart(8,"0").toUpperCase()},Tt=(s="")=>{if(!s)return [];let e=new Set;for(let t of s.matchAll(/@(\d+)/g))e.add(t[1]);return E__default.default.toArray(e)},Ve=(s="")=>{if(!s)return [];let e=new Set;for(let t of s.matchAll(/@(\d+)/g))t[1].length<=15&&e.add(t[1]);return E__default.default.flatMap([...e],t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},vi=s=>E__default.default.isEmpty(s)?[]:E__default.default.map([...s],e=>`${e}@s.whatsapp.net`),St=s=>E__default.default.omit(s,["url","contextInfo","fileSha256","fileEncSha256","mediaKey","directPath","waveform","thumbnail","jpegThumbnail","thumbnailEncSha256","thumbnailSha256","thumbnailDirectPath","firstFrameSidecar","streamingSidecar","scansSidecar","callKey","message","key","midQualityFileSha256","historySyncNotification","appStateSyncKeyShare","appStateSyncKeyRequest","initialSecurityNotificationSettingSync","appStateFatalExceptionNotification","disappearingMode","peerDataOperationRequestMessage","peerDataOperationRequestResponseMessage","botFeedbackMessage"]),be=s=>{if(!s)return {leaf:void 0,chain:[]};let e=rn.extractMessageContent(s)||s,t=[];for(;e&&typeof e=="object";){let n=rn.getContentType(e);if(!n)break;t.push(n);let i=e[n];if(!i||typeof i!="object"){e=i;break}e=i;}return {leaf:e,chain:t}},z=s=>Number(s?.split("@")[0]);c();var x=s=>s,It=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(s){throw s}},At=async s=>{try{let e=`.session/${s}/auth/creds.json`;await le__default.default.unlink(e);}catch(e){throw a.spinner.error(`Failed to remove auth creds for session "${s}"!`),e}},Y=(s="")=>{if(!s?.length)return null;let e=s.replace(/\u202E(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/\u202D(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/[\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/gu,"").replace(/[\u200B\u200C\u200D\uFEFF]/gu,"").replace(/[\u00AD\u034F\u115F\u1160\u17B4\u17B5\u180B-\u180E]/gu,"").replace(/[\u2060-\u2064\u206A-\u206F]/gu,"").replace(/[\u2800\uFFFC\uFFFD]/gu,"").replace(/[\uFE00-\uFE0F]/gu,"").split("").map(t=>Ct__default.default.nfkd(t)).join("").replace(/[\u0300-\u036F]/gu,"").replace(/[\u1AB0-\u1AFF]/gu,"").replace(/[\u1DC0-\u1DFF]/gu,"").replace(/[\u20D0-\u20FF]/gu,"").replace(/[\uFE20-\uFE2F]/gu,"").replace(/[\p{Cc}]/gu,"").replace(/[\p{Cf}]/gu,"").replace(/[\p{Co}]/gu,"").replace(/[\p{Cn}]/gu,"").replace(/[\p{Cs}]/gu,"").replace(/[\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]/gu," ").replace(/[\u2028\u2029]/gu," ").replace(/[\t\r\n\f\v]/g," ").split("").map(t=>Ct__default.default.nfkc(t)).join("").normalize("NFC").replace(/\s+/g," ").trim();return e.length?e:null};G();var Me=class{static async create(e,t){try{let n=await C.toBuffer(e),i=await fileType.fileTypeFromBuffer(n);if(!i)throw new Error("Unable to detect file type");let r=t?.quality||b.STICKER.DEFAULT_QUALITY,o=R.isAnimated(i.mime),l=t?.shape||"default",p=o?await this.processAnimated(n,i.mime,r):await N.resizeForSticker(n,r,l),u=this.createExifMetadata(t),w=new fn__default.default.Image;await w.load(p),w.exif=u;let T=await w.save(null);return Buffer.isBuffer(T)?T:Buffer.from(T)}catch(n){throw new Error(`Sticker creation failed: ${n.message||n}`)}}static createExifMetadata(e){let t={"sticker-pack-id":ne(Date.now().toString()),"sticker-pack-name":e?.packageName||"Zaileys Library","sticker-pack-publisher":e?.authorName||"https://github.com/zeative/zaileys",emojis:["\u{1F913}"],"android-app-store-link":"https://play.google.com/store/apps/details?id=com.marsvard.stickermakerforwhatsapp","ios-app-store-link":"https://itunes.apple.com/app/sticker-maker-studio/id1443326857"},n=Buffer.from([73,73,42,0,8,0,0,0,1,0,65,87,7,0,0,0,0,0,22,0,0,0]),i=Buffer.from(JSON.stringify(t),"utf8"),r=Buffer.concat([n,i]);return r.writeUIntLE(i.length,14,4),r}static async processAnimated(e,t,n){let i=this.getExtension(t),r=h.createTempPath("sticker_in",i),o=h.createTempPath("sticker_out","webp");await h.safeWriteFile(r,e);let l=b.STICKER.MAX_DURATION;try{let A=await U.duration(r);l=x(Math.min(A,b.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",b.STICKER.MAX_DURATION);}let p=b.STICKER.SIZE,u=b.STICKER.FPS,w=`scale=${p}:${p}:force_original_aspect_ratio=increase,crop=${p}:${p},fps=${u},format=rgba`,T=Math.max(1,Math.min(100,100-n)),M;try{return await j.process({input:r,output:o,options:["-vcodec libwebp",`-vf ${w}`,`-q:v ${T}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${l}`,`-compression_level ${b.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{M=await h.safeReadFile(o);},onError:async()=>{await h.cleanup([r,o]);}}),await h.cleanup([r,o]),M}catch(A){throw await h.cleanup([r,o]),new Error(`Animated sticker processing failed: ${A.message}`)}}static getExtension(e){return e===b.MIME.GIF?"gif":e.startsWith(b.MIME.VIDEO)?"mp4":"tmp"}};c();G();G();var xe=class{static async create(e){try{let t=await C.toBuffer(e),n=await fileType.fileTypeFromBuffer(t);if(!n)throw new Error("Unable to detect file type");let i;return n.mime.startsWith(b.MIME.VIDEO)?i=await U.thumbnail(t):R.isMedia(n.mime)?i=await N.thumbnail(t):i="",{document:t,mimetype:n.mime,fileName:ne(Date.now().toString()),jpegThumbnail:i}}catch(t){throw new Error(`Document creation failed: ${t.message||t}`)}}};c();var ve=class{constructor(e){this.client=e;this.keysDb=he(e.options.session),this.setupLogFilters();}keysDb;setupLogFilters(){let e=console.error,t=console.log,n=i=>{let r=i.join(" ");return ["Bad MAC","Session error:","Closing open session in favor of incoming prekey bundle","Error: Bad MAC"].some(l=>r.includes(l))};console.error=(...i)=>{n(i)||e.apply(console,i);},console.log=(...i)=>{n(i)||t.apply(console,i);};}async repair(e){if(!e)return;let t=[`session:${e}`,`sender-key:${e}`];try{await this.keysDb.batchDelete(t),await this.keysDb.flush(),a.spinner.warn(` [HealthManager] Repaired session for ${e} due to Bad MAC`);}catch{}}get logger(){return Yt__default.default({level:"debug"},{write:e=>{try{let t=JSON.parse(e);if(t.msg?.includes("Bad MAC")){let n=t.jid||t.remoteJid;n&&this.repair(n);}}catch{}}})}};c();var de=(s,e)=>{try{return s.parse(e)}catch(t){let n=zodValidationError.fromError(t);throw new Error(n.toString())}};c();c();var Ge=class{concurrency;timeout;onError;queue;running;completed;failed;isClosing;closeResolve;constructor(e){this.concurrency=e?.concurrency||20,this.timeout=e?.timeout||3e4,this.onError=e?.onError||this._defaultErrorHandler,this.queue=[],this.running=new Set,this.completed=0,this.failed=0,this.isClosing=false,this.closeResolve=null;}add(e,t){if(this.isClosing)throw new Error("Queue is closing, cannot add new tasks");let n={id:this._generateId(),fn:e,priority:t?.priority||0,timeout:t?.timeout||this.timeout,retries:t?.retries||0,maxRetries:t?.maxRetries||0,createdAt:Date.now()},i=this.queue.findIndex(r=>r.priority<n.priority);return i===-1?this.queue.push(n):this.queue.splice(i,0,n),this._process(),n.id}addBulk(e){return e.map(({fn:t,options:n})=>this.add(t,n))}async _process(){for(;this.running.size<this.concurrency&&this.queue.length>0;){let e=this.queue.shift();this.running.add(e),this._executeTask(e);}this.isClosing&&this.running.size===0&&this.queue.length===0&&this.closeResolve?.();}async _executeTask(e){try{await this._withTimeout(e.fn(),e.timeout),this.completed++;}catch(t){e.retries<e.maxRetries?(e.retries++,this.queue.unshift(e)):(this.failed++,this.onError(t,e));}finally{this.running.delete(e),this._process();}}_withTimeout(e,t){return Promise.race([e,new Promise((n,i)=>setTimeout(()=>i(new Error("Task timeout")),t))])}async close(e=0){if(this.isClosing=true,this.running.size===0&&this.queue.length===0)return;let t=new Promise(n=>{this.closeResolve=n;});if(e>0){let n=new Promise(i=>setTimeout(i,e));await Promise.race([t,n]);}else await t;}forceClose(){this.queue=[],this.running.clear(),this.isClosing=true,this.closeResolve?.();}getStats(){return {queued:this.queue.length,running:this.running.size,completed:this.completed,failed:this.failed,total:this.completed+this.failed}}isIdle(){return this.queue.length===0&&this.running.size===0}async waitUntilIdle(e=100){for(;!this.isIdle();)await new Promise(t=>setTimeout(t,e));}_defaultErrorHandler(e,t){}_generateId(){return `${Date.now()}-${Math.random().toString(36).substr(2,9)}`}},P=new Ge;process.on("SIGTERM",()=>P.close());c();c();c();var y=(s,e="lime")=>Array.isArray(e)?Pt__default.default(e)(s):Pt__default.default([e,e])(s),Je=s=>{try{return JSON.parse(s)}catch{return E__default.default.attempt(()=>JSON.parse(JSON.stringify(s)||"{}"))}},fe=s=>{try{return JSON.stringify(s)}catch{let e=E__default.default.attempt(()=>JSON.stringify(Je(s)||"{}"));return E__default.default.isError(e)?"{}":e}},yo=(s="")=>E__default.default.shuffle(s).join(""),ge=(s="",e="")=>s?E__default.default.includes(s.toLowerCase(),e.toLowerCase()):null,Et=(s="")=>s?E__default.default.castArray(s.match(rn.URL_REGEX)||[]):[],ho=s=>s[Math.floor(Math.random()*s.length)],He=(s,e)=>{let t=i=>!!(i==null||typeof i=="string"&&i.trim()===""||Array.isArray(i)&&i.length===0||typeof i=="object"&&Object.keys(i).length===0),n=(i,r)=>{if(!i||typeof i!="object")return;let o=i,l=r.split(".");for(let p of l){let u=p.match(/^(.+?)\[(\d+)\]$/);if(u){let[,w,T]=u;o=o?.[w]?.[parseInt(T,10)];}else o=o?.[p];if(t(o))return}return o};if(!(!Array.isArray(s)||s.length===0)&&!(!Array.isArray(e)||e.length===0)){for(let i of s)if(!(!i||typeof i!="object"))for(let r of e){let o=n(i,r);if(!t(o))return o}}},wo=(s,e)=>{let t=E__default.default.castArray(e),n=(o,l)=>E__default.default.every(l,(p,u)=>o?.[u]===p),i=(o,l)=>E__default.default.some(l,(p,u)=>o?.[u]===p),r=o=>E__default.default.isArray(o)?E__default.default.find(o,r)??o:E__default.default.isObject(o)?E__default.default.find(t,u=>n(o,u))||E__default.default.find(t,u=>i(o,u))?o:E__default.default.find(E__default.default.values(o),r)??o:null;return r(s)},ko=(s,e,t)=>new Proxy(s,{apply(n,i,r){e?.(r);let o=Reflect.apply(n,i,r);return t?t(o,r):o}});c();var Ke=class{input;constructor(e){this.input=e;}async toOpus(){return ie.toOpus(this.input)}async toMp3(){return ie.toMp3(this.input)}async convert(e="opus"){return ie.convert(this.input,e)}},Qe=class{input;constructor(e){this.input=e;}async toMp4(){return U.toMp4(this.input)}async thumbnail(){return U.thumbnail(this.input)}},Ye=class{input;constructor(e){this.input=e;}async toJpeg(){return N.toJpeg(this.input)}async thumbnail(){let e=await C.toBuffer(this.input);return N.thumbnail(e)}async resize(e,t){let n=await C.toBuffer(this.input);return N.resize(n,e,t)}},Ze=class{input;metadata;constructor(e,t){this.input=e,this.metadata=t;}async create(){return Me.create(this.input,this.metadata)}},Xe=class{input;constructor(e){this.input=e;}async create(){return xe.create(this.input)}},et=class{input;constructor(e){this.input=e;}async get(){let e=await C.toBuffer(this.input),t=await fileType.fileTypeFromBuffer(e);if(!t||!R.isMedia(t.mime))throw new Error("Invalid media type: expected image or video");return t.mime.startsWith(b.MIME.VIDEO)?U.thumbnail(this.input):N.thumbnail(e)}},tt=class{audio(e){return new Ke(e)}video(e){return new Qe(e)}image(e){return new Ye(e)}sticker(e,t){return new Ze(e,t)}document(e){return new Xe(e)}thumbnail(e){return new et(e)}async toBuffer(e){return C.toBuffer(e)}},O=new tt;var Te=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=a.get("socket");e.ev.on("call",async t=>{for(let n of t){let i=await this.parse(n);i&&(P.add(async()=>this.client.middleware.run({calls:i})),P.add(async()=>this.client.plugins.execute(this.client,{messages:i})),a.events.emit("calls",i),this.client.options?.autoRejectCall&&P.add(async()=>e.rejectCall(i.callId,i.callerId)));}});}async parse(e){let t=a.get("socket"),n={};return n.callId=e.id,n.callerId=rn.jidNormalizedUser(e.from),n.roomId=rn.jidNormalizedUser(e.chatId),n.roomName=Y(t?.user?.name||t?.user?.verifiedName),n.date=e.date,n.offline=e.offline,n.status=e.status,n.isVideo=!!e.isVideo,n.isGroup=!!e.isGroup,this.client.logs.call(n),n}};c();c();var Bt=s=>{xn__default.default.generate(s,{small:true},e=>{console.log(e);});},Ft=async()=>{console.clear(),a.spinner.start(" Checking for updates...");let s="2.2.6",e="zaadevofc",t=await It(),n=s===t;a.spinner.stop();let i="Zaileys",r=`
|
|
2
|
+
by ${e} \xB7 v${s}`,o="\u2014 discord.gg/KBHhTTVUc5",l=`${n?"Already using latest version!":`Update available! (v${t})`}
|
|
3
|
+
`,p=n?"lime":"orange",u=await bn__default.default.text(i),w=Pt.cristal(u);console.log(w),console.log(y(r,"dimgray")),console.log(y(o,"purple")),console.log(y(l,p));};var Ce=class{constructor(e){this.client=e;this.initialize();}async initialize(){a.spinner.start(" Initializing connection...");let e=a.get("socket"),t={},n=async()=>{t.status="reload",a.spinner.warn(" Connection lost. Attempting auto-reload..."),await this.client.initialize();},i=async()=>{await rn.delay(3e3),a.spinner.warn(" Invalid session. Attempting auto cleaning creds..."),await rn.delay(3e3),await At(this.client.options.session),await n();};if(this.client.options.authType==="pairing"&&this.client.options.phoneNumber&&!e.authState.creds.registered){a.spinner.update(" Generating pairing code..."),await rn.delay(3500);try{t.authTimeout=Date.now()+6e4;let r=new Date(t.authTimeout).toLocaleTimeString(),o=await e.requestPairingCode(this.client.options.phoneNumber.toString());a.spinner.warn(` Pairing expired at ${Pt.cristal(r)}`),a.spinner.warn(` Pairing code: ${o}`),t.code=o;}catch{await i();}}e.ev.on("connection.update",async r=>{let{connection:o,lastDisconnect:l,qr:p}=r;if(t.status=o||"connecting",t.authType=this.client.options.authType,a.spinner.update(" Connection status: "+Pt.cristal(t.status)),this.client.options.authType==="qr"&&p){t.authTimeout=Date.now()+6e4;let u=new Date(t.authTimeout).toLocaleTimeString();a.spinner.warn(" Please scan the QR code..."),a.spinner.warn(` Qr code expired at ${Pt.cristal(u)}`),Bt(p),t.qr=p;return}if(o==="close"){let u=x(l?.error)?.output?.statusCode,w=l?.error?.message||"",T=typeof u=="number"&&u!==rn.DisconnectReason.loggedOut;if(a.spinner.error(` [${u} - Closed] ${w}`),u===401||u===405){a.spinner.warn(" Session may be used by another device/instance."),a.spinner.warn(" If you want to connect here, close the other connection first."),a.spinner.warn(` Or use a different session name in your Client options.
|
|
4
|
+
`);return}if(u===500){a.spinner.error(" Server error occurred, attempting reconnect..."),await n();return}T&&await n();}if(o==="open")if(e.user?.id){let u=rn.jidNormalizedUser(e.user.id).split("@")[0],w=e.user.name||e.user.verifiedName;a.spinner.success(` Connected as ${Pt.cristal(w||u)}`);}else a.spinner.success(" Connected!");a.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:r})=>{t.status="syncing",t.syncProgress=r,a.spinner.start(" Syncing messages history..."),r&&a.spinner.update(` Syncing messages history ${r+"%"}`),r==100&&(a.spinner.success(" Syncing messages history completed!"),t.syncCompleted=true),a.events.emit("connection",t);});}};c();c();var $t={text:"text",conversation:"text",imageMessage:"image",contactMessage:"contact",locationMessage:"location",documentMessage:"document",audioMessage:"audio",videoMessage:"video",protocolMessage:"protocol",contactsArrayMessage:"contacts",highlyStructuredMessage:"highlyStructured",sendPaymentMessage:"sendPayment",liveLocationMessage:"location",requestPaymentMessage:"requestPayment",groupStatusMentionMessage:"groupStatusMention",statusMentionMessage:"statusMention",albumMessage:"album",declinePaymentRequestMessage:"declinePaymentRequest",cancelPaymentRequestMessage:"cancelPaymentRequest",templateMessage:"template",stickerMessage:"sticker",groupInviteMessage:"groupInvite",templateButtonReplyMessage:"buttons",productMessage:"product",deviceSentMessage:"deviceSent",listMessage:"lists",viewOnceMessage:"viewOnce",orderMessage:"order",listResponseMessage:"lists",ephemeralMessage:"ephemeral",invoiceMessage:"invoice",buttonsMessage:"buttons",buttonsResponseMessage:"buttons",paymentInviteMessage:"paymentInvite",interactiveMessage:"interactive",reactionMessage:"reaction",stickerSyncRmrMessage:"sticker",questionMessage:"question",nativeFlowResponseMessage:"lists",interactiveResponseMessage:"interactiveResponse",pollCreationMessage:"pollCreation",pollCreationMessageKey:"pollUpdate",pollUpdateMessage:"pollUpdate",keepInChatMessage:"keepInChat",documentWithCaptionMessage:"document",requestPhoneNumberMessage:"requestPhoneNumber",viewOnceMessageV2:"viewOnce",encReactionMessage:"reaction",editedMessage:"text",viewOnceMessageV2Extension:"viewOnce",pollCreationMessageV2:"pollCreation",scheduledCallCreationMessage:"scheduledCallCreation",groupMentionedMessage:"groupMentioned",pinInChatMessage:"pinInChat",pollCreationMessageV3:"pollCreation",scheduledCallEditMessage:"scheduledCallEdit",ptvMessage:"ptv",botInvokeMessage:"botInvoke",callLogMesssage:"callLog",encCommentMessage:"encComment",bcallMessage:"bcall",lottieStickerMessage:"lottieSticker",eventMessage:"event",commentMessage:"comment",newsletterAdminInviteMessage:"text",extendedTextMessageWithParentKey:"text",extendedTextMessage:"text",placeholderMessage:"placeholder",encEventUpdateMessage:"encEventUpdate"},rt={whatsapp:"0@s.whatsapp.net",meta:"13135550002@s.whatsapp.net",chatgpt:"18002428478@s.whatsapp.net",copilot:"18772241042@s.whatsapp.net",instagram:"447723442971@s.whatsapp.net",tiktok:"6285574670498@s.whatsapp.net"};c();var Ie=class{constructor(e){this.client=e;this.limiter=new rateLimiterFlexible.RateLimiterMemory({points:this.client.options.limiter?.maxMessages,duration:this.client.options.limiter?.durationMs/1e3});}limiter;async isSpam(e){try{return await this.limiter.consume(e),!1}catch{return true}}};var Pe=class{constructor(e){this.client=e;this.limiter=new Ie(e),this.initialize();}limiter;maxReplies=3;async initialize(){let e=a.get("socket");if(!e?.ev){console.warn("\u26A0\uFE0F [Messages] Socket or socket.ev is not available during initialization");return}e.ev.on("messages.upsert",async({messages:t,type:n})=>{try{if(n!=="notify"&&n!=="append")return;for(let i of t)try{let r=await this.parse(i);r&&(P.add(async()=>this.client.middleware.run({messages:r})),P.add(async()=>this.client.plugins.execute(this.client,{messages:r})),a.set("message",r),a.events.emit("messages",r),this.client.options.autoRead&&P.add(async()=>e.readMessages([r.message().key])));}catch{}}catch{}});}async parse(e,t){if(e?.category==="peer"||!e?.message||!e?.key?.id||e?.messageStubType||e?.messageStubParameters?.length||e.message?.protocolMessage?.peerDataOperationRequestResponseMessage)return;let n=e,i=a.get("socket"),r={},o=be(e.message),l=o.chain.at(-1),p=o.leaf;if(p?.message&&(o=be(p.message),l=o.chain.at(-1),p=o.leaf),r.uniqueId=null,r.channelId=null,r.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,r.chatType=$t[l],!r.chatType)return;r.receiverLid=rn.jidNormalizedUser(i?.user?.lid||""),r.receiverId=rn.jidNormalizedUser(i?.user?.id||""),r.receiverName=Y(i?.user?.name||i?.user?.verifiedName),r.roomId=rn.jidNormalizedUser(e?.key?.remoteJid);let u=p?.type===0,w=p?.type===1,T=p?.type===2,M=r.roomId?.includes("@newsletter"),A=!!e?.message?.questionMessage,W=e?.key?.fromMe||false;if(W&&this.client.options.ignoreMe&&t!=="replied")return;let H=p?.key?.id;if(u||w||T){let S=await this.client.db("messages").query(r.roomId).where("key.id","=",H).first();if(!S)return;e=S,o=be(e.message),l=o.chain.at(-1),p=o.leaf;}if(r.roomName=await this.client.getRoomName(r.roomId),r.senderLid=rn.jidNormalizedUser(e?.key?.participant||e?.key?.remoteJid)||null,r.senderId=rn.jidNormalizedUser(e?.key?.participantAlt||e?.key?.remoteJidAlt)||null,r.senderName=Y(e?.pushName||e?.verifiedBizName),r.senderDevice=rn.getDevice(r.chatId||""),r.channelId=ne([r.roomId,r.senderId]),r.uniqueId=ne([r.channelId,r.chatId]),r.timestamp=Number(e?.messageTimestamp)*1e3,M){let S=await i.newsletterMetadata("jid",r.roomId);r.roomName=x(S.thread_metadata.name)?.text,r.senderId=null,r.senderLid=null;}W&&(r.senderLid=rn.jidNormalizedUser(i.user.lid),r.senderId=r.receiverId,r.senderName=r.receiverName),r.text=p?.text||p?.caption||p?.name||p?.displayName||p?.conversation||p?.contentText||p?.selectedDisplayText||p||null,p?.name=="menu_options"&&(r.text=Je(p?.paramsJson)?.id),r.text=Y(r.text),r.mentions=Tt(r.text),r.links=Et(r.text||""),r.isBot=r.chatId.startsWith("BAE5")||r.chatId.startsWith("3EB0")||r.chatId.startsWith("Z4D3FC"),r.isFromMe=W;let K=E__default.default.castArray(this.client.options?.prefix);if(r.isPrefix=!!K.find(S=>r.text?.startsWith(S)),r.isTagMe=r.mentions?.includes(r.receiverId.split("@")[0])||r.mentions?.includes(r.receiverLid.split("@")[0]),r.isStatusMention=!!e?.message?.statusMentionMessage,r.isGroupStatusMention=!!e?.message?.groupStatusMentionMessage,r.isHideTags=false,E__default.default.isEmpty(r.text)&&p?.contextInfo?.mentionedJid?.length&&(r.isHideTags=true),r.isSpam=await this.limiter.isSpam(r.channelId),r.isPrefix&&(r.text=r.text.replace(new RegExp(`^${E__default.default.escapeRegExp(K.find(S=>r.text?.startsWith(S))||"")}`),"")),r.isGroup=r.roomId?.includes("@g.us"),r.isNewsletter=M,r.isQuestion=A,r.isStory=r.roomId?.includes("@broadcast"),!r.isGroup&&!r.roomName&&(r.roomName=r.senderName),!r.isGroup){let S=r.senderId,$=r.senderLid;r.senderId=$,r.senderLid=S;}if(r.isViewOnce=false,r.isEdited=!!ge(fe(o),"editedMessage"),r.isDeleted=u,r.isPinned=w,r.isUnPinned=T,r.isBroadcast=!!e?.broadcast,r.isEphemeral=!!ge(fe(p?.contextInfo),"ephemeralSettingTimestamp"),r.isForwarded=!!ge(fe(p?.contextInfo),"forwardingScore"),r.citation=null,this.client.options.citation){r.citation=r.citation||{};let S=this.client.options.citation;for(let $ of Object.keys(S)){let se=S[$];r.citation[$]=async()=>{let ae=await se(),ee=[z(r.roomId),z(r.senderLid),z(r.senderId)];return !!E__default.default.intersection(ee,ae).length};}}r.chatType!=="text"&&(r.media={...St(p),buffer:()=>rn.downloadMediaMessage(e,"buffer",{}),stream:()=>rn.downloadMediaMessage(e,"stream",{})}),r.isStatusMention&&(r.chatType="statusMention"),r.isGroupStatusMention&&(r.chatType="groupStatusMention"),r.message=()=>n,r.replied=null;let v=p?.contextInfo?.quotedMessage,F=ge(fe(v),"viewOnce"),V=p?.contextInfo?.stanzaId;if(v&&this.maxReplies){this.maxReplies--;let S=await this.client.db("messages").getByIndex("messages","key.id",V),$;F?$={...S[0],message:v}:$=S[0],r.replied=await this.parse($,"replied"),r.replied&&(r.replied.isViewOnce=true),this.maxReplies=3;}return t!="replied"&&this.client.logs.message(r),r.injection=te.getAll(),r}};var Ee=class{constructor(e){this.client=e;this.connection=new Ce(e),this.messages=new Pe(e),this.calls=new Te(e),this.initialize();}connection;messages;calls;async initialize(){let e=a.get("socket");e.ev.on("groups.update",async([t])=>{P.add(async()=>{let n=await e.groupMetadata(t.id);D.set(t.id,n);});}),e.ev.on("group-participants.update",async t=>{P.add(async()=>{let n=await e.groupMetadata(t.id);D.set(t.id,n);});}),e?.ev.on("messaging-history.set",async t=>{let{chats:n,contacts:i,messages:r}=t;P.add(async()=>{await this.client.db("chats").batchUpsert("chats",n,"id");}),P.add(async()=>{await this.client.db("contacts").batchUpsert("contacts",i,"id");}),P.add(async()=>{await this.client.db("messages").batchUpsert("messages",r,"key.id");});}),e?.ev.on("messages.upsert",async({messages:t})=>{P.add(async()=>{await this.client.db("messages").batchUpsert("messages",t,"key.id");});}),e?.ev.on("chats.upsert",async t=>{P.add(async()=>{await this.client.db("chats").batchUpsert("chats",t,"id");});}),e?.ev.on("contacts.upsert",async t=>{P.add(async()=>{await this.client.db("contacts").batchUpsert("contacts",t,"id");});}),await this.client.db("messages").createIndex("messages","key.remoteJid"),await this.client.db("messages").createIndex("messages","key.id"),await this.client.db("chats").createIndex("chats","id"),await this.client.db("contacts").createIndex("contacts","id");}};c();c();c();var In=m__default.default.object({type:m__default.default.literal("quick_reply"),text:m__default.default.string()}),An=m__default.default.object({type:m__default.default.literal("cta_url"),url:m__default.default.url(),text:m__default.default.string()}),Pn=m__default.default.object({type:m__default.default.literal("cta_copy"),copy:m__default.default.string(),text:m__default.default.string()}),En=m__default.default.object({type:m__default.default.literal("cta_call"),text:m__default.default.string(),phoneNumber:m__default.default.string()}),Rn=m__default.default.object({type:m__default.default.literal("single_select"),text:m__default.default.string(),section:m__default.default.object({title:m__default.default.string(),highlight_label:m__default.default.string().optional(),rows:m__default.default.object({id:m__default.default.string(),title:m__default.default.string(),header:m__default.default.string().optional(),description:m__default.default.string().optional()}).array()}).array()}),Bn=m__default.default.object({type:m__default.default.literal("interactive"),footer:m__default.default.string().optional(),data:m__default.default.union([In,An,Pn,En,Rn]).array()}),Fn=m__default.default.object({type:m__default.default.literal("simple"),footer:m__default.default.string().optional(),data:m__default.default.object({id:m__default.default.string(),text:m__default.default.string()}).array()}),Dt=m__default.default.union([Fn,Bn]);c();var $n=m.z.object({maxMessages:m.z.number().default(20),durationMs:m.z.number().default(1e4)}).optional(),On=m.z.record(m.z.string(),m.z.function({output:m.z.promise(m.z.array(m.z.number()))})).optional(),Dn=m.z.object({provider:m.z.enum(["whatsapp","meta","chatgpt","copilot","instagram","tiktok"]).or(m.z.number())}).optional(),it=m.z.enum(["default","rounded","circle","oval"]).default("default"),Nn=m.z.object({packageName:m.z.string().optional(),authorName:m.z.string().optional(),quality:m.z.number().optional(),shape:it.optional()}).optional(),Wn=m.z.object({enabled:m.z.boolean().default(false).optional(),intervalMs:m.z.number().default(3600*1e3).optional(),maxAgeMs:m.z.number().default(1440*60*1e3).optional(),scopes:m.z.array(m.z.string()).default(["messages"]).optional()}).optional(),Nt=m.z.object({session:m.z.string().default("zaileys").optional(),prefix:m.z.union([m.z.string(),m.z.array(m.z.string())]).optional(),ignoreMe:m.z.boolean().default(true).optional(),showLogs:m.z.boolean().default(true).optional(),fancyLogs:m.z.boolean().default(false).optional(),syncFullHistory:m.z.boolean().default(true).optional(),disableFFmpeg:m.z.boolean().default(false).optional(),autoMarkAI:m.z.boolean().default(true).optional(),autoMentions:m.z.boolean().default(true).optional(),autoOnline:m.z.boolean().default(true).optional(),autoRead:m.z.boolean().default(true).optional(),autoPresence:m.z.boolean().default(true).optional(),autoRejectCall:m.z.boolean().default(true).optional(),pluginsDir:m.z.string().default("plugins").optional(),pluginsHmr:m.z.boolean().default(true).optional(),autoCleanUp:Wn,limiter:$n,citation:On,fakeReply:Dn,sticker:Nn}),_n=m.z.object({authType:m.z.literal("pairing"),phoneNumber:m.z.number()}),jn=m.z.object({authType:m.z.literal("qr")}),Wt=m.z.union([_n.extend(Nt.shape),jn.extend(Nt.shape)]),Bs=m.z.enum(["connection","messages","calls"]);var ye=m__default.default.url().or(m__default.default.base64()).or(m__default.default.instanceof(Buffer)),_t=m__default.default.object({text:m__default.default.string()}).passthrough(),Un=m__default.default.object({image:ye,caption:m__default.default.string().optional()}).passthrough(),Ln=m__default.default.object({audio:ye,caption:m__default.default.string().optional(),ptt:m__default.default.boolean().optional()}).passthrough(),zn=m__default.default.object({video:ye,caption:m__default.default.string().optional(),ptv:m__default.default.boolean().optional()}).passthrough(),qn=m__default.default.object({sticker:ye,shape:it.optional(),caption:m__default.default.string().optional()}).passthrough(),Vn=m__default.default.object({document:ye,caption:m__default.default.string().optional(),fileName:m__default.default.string().optional()}).passthrough(),Gn=m__default.default.object({location:m__default.default.object({latitude:m__default.default.number(),longitude:m__default.default.number(),url:m__default.default.url().optional(),title:m__default.default.string().optional(),footer:m__default.default.string().optional()}).optional()}).passthrough(),Jn=m__default.default.object({contacts:m__default.default.object({title:m__default.default.string().optional(),contacts:m__default.default.object({fullname:m__default.default.string(),phoneNumber:m__default.default.number(),organization:m__default.default.string().optional()}).array()})}).passthrough(),Hn=m__default.default.object({poll:m__default.default.object({name:m__default.default.string(),answers:m__default.default.string().array(),isMultiple:m__default.default.boolean().default(false).optional()})}),jt=m__default.default.object({replied:m__default.default.custom().optional(),isForwardedMany:m__default.default.boolean().optional(),isViewOnce:m__default.default.boolean().optional(),banner:m__default.default.custom().optional(),buttons:Dt.optional()});m__default.default.enum(["forward","button","edit","delete"]);var Kn=m__default.default.union([_t,Un,Ln,zn,qn,Vn,Gn,Jn,Hn]),Ut=m__default.default.string().or(m__default.default.intersection(Kn,jt.omit({buttons:true}))),Lt=m__default.default.intersection(_t,jt.omit({banner:true}));c();var Re=class{toNativeSimple(e){return e.map(({id:t,text:n})=>({name:"quick_reply",buttonParamsJson:JSON.stringify({display_text:n,id:t})}))}toNativeInteractive(e){let t={quick_reply:n=>({display_text:n.text,id:n.id}),cta_url:n=>({display_text:n.text,url:n.url,merchant_url:n.url}),cta_copy:n=>({display_text:n.text,id:n.id,copy_code:n.copy}),cta_call:n=>({display_text:n.text,phone_number:n.phoneNumber}),single_select:n=>({title:n.text,sections:n.section})};return e.map(n=>({name:n.type,buttonParamsJson:JSON.stringify(t[n.type](n))}))}build(e){let t=x(e).buttons,n=t?.data||[],r=t?.type=="simple"?this.toNativeSimple(n):this.toNativeInteractive(n);return {body:{text:x(e).text},footer:t.footer?{text:t.footer}:void 0,nativeFlowMessage:{buttons:r}}}async send(e,t,n){let i=a.get("socket"),r=i?.authState?.creds?.me?.id||i?.user?.id,o=this.build(t),l=rn.generateWAMessageFromContent(e,{interactiveMessage:o},{userJid:r,messageId:rn.generateMessageIDV2(r),...n});return await i.relayMessage(e,l.message,{messageId:l.key.id,...n,additionalNodes:[{tag:"biz",attrs:{},content:[{tag:"interactive",attrs:{type:"native_flow",v:"1"},content:[{tag:"native_flow",attrs:{v:"9",name:"mixed"}}]}]}]}),i.config?.emitOwnEvents&&!rn.isJidGroup(e)&&process.nextTick(()=>i.upsertMessage?.(l,"append")),l}};var Be=class{constructor(e){this.client=e;}async signal(e,t,n,i){n!="delete"&&(n=="button"?t=de(Lt,t):t=de(Ut,t));let r=a.get("socket"),o={},l={},p=E__default.default.isString(t),u=this.client.options?.fakeReply?.provider,w=this.client.options?.autoMentions,T=this.client.options?.autoPresence,M=E__default.default.has(t,"replied"),A=E__default.default.has(t,"banner"),W=E__default.default.has(t,"isViewOnce"),H=n=="button",K=E__default.default.has(t,"image"),v=E__default.default.has(t,"video"),F=E__default.default.has(t,"audio"),V=E__default.default.has(t,"sticker"),S=E__default.default.has(t,"document"),$=E__default.default.has(t,"location"),se=E__default.default.has(t,"contacts"),ae=E__default.default.has(t,"poll"),ee=K||v||F||V||S,Q=p?t:He([t],["text","caption"]);if(T&&(F?await r.sendPresenceUpdate("recording",e):await r.sendPresenceUpdate("composing",e)),w&&(o={...o,mentions:Ve(Q),contextInfo:{mentionedJid:Ve(Q)}}),M&&(l.quoted=x(t).replied,u&&(l.quoted.key.remoteJid=rt[u],l.quoted.key.participant=rt[u])),A&&(o={...o,contextInfo:{externalAdReply:x(t).banner}},o.contextInfo.externalAdReply.mediaType=1),W&&(o={...o,viewOnce:x(t)?.isViewOnce}),Q&&(o={...o,text:Q,caption:Q},ee&&delete x(o).text),ee){let I=He([t],["image","video","audio","sticker","document"]);if(K&&(o={...o,image:await O.image(I).toJpeg(),jpegThumbnail:await O.thumbnail(I).get()}),v){let _=x(t)?.ptv;o={...o,video:await O.video(I).toMp4(),ptv:_,jpegThumbnail:await O.thumbnail(I).get()};}if(F){let _=x(t)?.ptt;o={...o,audio:await O.audio(I).toOpus(),ptt:_,mimetype:_?"audio/ogg; codecs=opus":"audio/mpeg"};}if(V){let _=x(t)?.shape;o={...o,sticker:await O.sticker(I,{...this.client.options?.sticker,shape:_}).create()};}if(S){let _=await O.document(I).create();o={...o,fileName:x(t).fileName,..._};}}if($){let I=x(t).location;o={...o,location:{degreesLatitude:I.latitude,degreesLongitude:I.longitude,url:I.url,address:I.footer,name:I.title}};}if(se){let I=x(t)?.contacts,_=I?.contacts.map(ce=>{let Vt=["BEGIN:VCARD","VERSION:3.0",`FN:${ce.fullname}`,`ORG:${ce.organization||""}`,`TEL;type=CELL;type=VOICE;waid=${ce.phoneNumber}:${ce.phoneNumber}`,"END:VCARD"].join(`
|
|
5
|
+
`);return {displayName:ce.fullname,vcard:Vt}});o={...o,contacts:{displayName:I?.title,contacts:_}};}if(ae){let I=x(t)?.poll;o={...o,poll:{name:I.name,values:I.answers,selectableCount:I.isMultiple?1:0,toAnnouncementGroup:true}};}return n=="forward"&&(o={...o,contextInfo:{...x(o).contextInfo,isForwarded:true,forwardingScore:x(t).isForwardedMany?9999:1}}),n=="edit"&&(o={...o,edit:i?.key},await r.sendPresenceUpdate("paused",e)),n=="delete"&&(o={...o,delete:i?.key},await r.sendPresenceUpdate("paused",e)),H?await new Re().send(e,t,l):await r.sendMessage(e,x(o),l)}async send(e,t){return await this.signal(e,t)}async forward(e,t){return await this.signal(e,t,"forward")}async button(e,t){return await this.signal(e,t,"button")}async edit(e,t){return await this.signal(e.key.remoteJid,t,"edit",e)}async delete(e){return E__default.default.isArray(e)?Promise.all(e.map(t=>this.signal(t.key.remoteJid,{},"delete",t))):await this.signal(e.key.remoteJid,{},"delete",e)}async presence(e,t){let n=a.get("socket"),i={typing:"composing",recording:"recording",online:"available",offline:"unavailable",paused:"paused"};return await n.sendPresenceUpdate(i[t],e)}async reaction(e,t){return await a.get("socket").sendMessage(e.key.remoteJid,{react:{text:t,key:e?.key}})}async memberLabel(e,t){return await a.get("socket").relayMessage(e,{protocolMessage:{type:30,memberLabel:{label:t,labelTimestamp:Date.now()}}},{})}};c();var ot=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").communityCreate(e,t)}async createGroup(e,t,n){return await a.get("socket").communityCreateGroup(e,t,n)}async leave(e){return await a.get("socket").communityLeave(e)}async metadata(e){return await a.get("socket").communityMetadata(e)}async update(e,t,n){let i=a.get("socket");switch(t){case "subject":return await i.communityUpdateSubject(e,n);case "description":return await i.communityUpdateDescription(e,n)}}async group(e,t,n){let i=a.get("socket");switch(t){case "link":if(!n)throw "Group JID is required for linking";return await i.communityLinkGroup(e,n);case "unlink":if(!n)throw "Group JID is required for unlinking";return await i.communityUnlinkGroup(e,n);case "linked":return await i.communityFetchLinkedGroups(e)}}async participants(e,t,n,i){let r=a.get("socket");switch(t){case "list":return await r.communityRequestParticipantsList(e);case "request-update":return await r.communityRequestParticipantsUpdate(e,i,x(n));case "update":if(!n||!i)throw "Action and participants are required for update";return await r.communityParticipantsUpdate(e,i,x(n));case "all":return await r.communityFetchAllParticipating()}}async invite(e,t,...n){let i=a.get("socket");switch(t){case "code":return await i.communityInviteCode(e);case "revoke":return await i.communityRevokeInvite(e);case "accept":return await i.communityAcceptInvite(e);case "info":return await i.communityGetInviteInfo(e);case "revokeV4":return await i.communityRevokeInviteV4(e,n[0]);case "acceptV4":return await i.communityAcceptInviteV4(e,n[0])}}async settings(e,t,n){let i=a.get("socket");switch(t){case "ephemeral":return await i.communityToggleEphemeral(e,n);case "update":return await i.communitySettingUpdate(e,n);case "memberAdd":return await i.communityMemberAddMode(e,n);case "approval":return await i.communityJoinApprovalMode(e,n)}}},Fe=class{constructor(e){this.mlient=e;this.community=new ot(e);}community};c();var st=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").groupCreate(e,t)}async participant(e,t,n){return await a.get("socket").groupParticipantsUpdate(e,t,n)}async profile(e,t,n){let i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "subject":if(!r)return await i.groupUpdateSubject(e,t);case "description":if(!r)return await i.groupUpdateDescription(e,t);case "picture":return await i.updateProfilePicture(e,await O.toBuffer(t))}}async setting(e,t){let n=a.get("socket");switch(t){case "open":return await n.groupSettingUpdate(e,"not_announcement");case "close":return await n.groupSettingUpdate(e,"announcement");case "locked":return await n.groupSettingUpdate(e,t);case "unlocked":return await n.groupSettingUpdate(e,t);case "all_member_add":return await n.groupMemberAddMode(e,t);case "admin_add":return await n.groupMemberAddMode(e,t)}}async leave(e){return await a.get("socket").groupLeave(e)}async inviteCode(e,t){let n=a.get("socket");switch(t){case "code":return await n.groupInviteCode(e);case "revoke":return await n.groupRevokeInvite(e);case "accept":return await n.groupAcceptInvite(e);case "info":return await n.groupGetInviteInfo(e)}}async metadata(e){let t=a.get("socket"),n=D.get(e);if(n)return n;let i=await t.groupMetadata(e);return i&&D.set(e,i),i}async requestJoin(e,t,n){let i=a.get("socket");switch(n){case "approve":return await i.groupRequestParticipantsUpdate(e,t,n);case "reject":return await i.groupRequestParticipantsUpdate(e,t,n)}}async requestJoinList(e){return await a.get("socket").groupRequestParticipantsList(e)}async fetchAllGroups(){return await a.get("socket").groupFetchAllParticipating()}async ephemeral(e,t){let n=a.get("socket"),i={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await n.groupToggleEphemeral(e,i[t])}},$e=class{constructor(e){this.glient=e;this.group=new st(e);}group};c();var at=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").newsletterCreate(e,t)}async action(e,t){let n=a.get("socket");switch(t){case "follow":return await n.newsletterFollow(e);case "unfollow":return await n.newsletterUnfollow(e);case "mute":return await n.newsletterMute(e);case "unmute":return await n.newsletterUnmute(e);}}async update(e,t,n){let i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "name":if(!r)return await i.newsletterUpdateName(e,t);case "description":if(!r)return await i.newsletterUpdateDescription(e,t);case "picture":return await i.newsletterUpdatePicture(e,await O.toBuffer(t))}}async metadata(e,t){return await a.get("socket").newsletterMetadata(t,e)}async subscribers(e){return await a.get("socket").newsletterSubscribers(e)}async reaction(e,t,n){return await a.get("socket").newsletterReactMessage(e,t,n)}async fetchMessages(e,t,n,i){let r=a.get("socket"),o=n.getTime()/1e3,l=i.getTime()/1e3;return await r.newsletterFetchMessages(e,t,o,l)}async adminCount(e){return await a.get("socket").newsletterAdminCount(e)}async changeOwner(e,t){return await a.get("socket").newsletterChangeOwner(e,t)}async demote(e,t){return await a.get("socket").newsletterDemote(e,t)}async delete(e){return await a.get("socket").newsletterDelete(e)}async removePicture(e){return await a.get("socket").newsletterRemovePicture(e)}},Oe=class{constructor(e){this.nlient=e;this.newsletter=new at(e);}newsletter};c();var ct=class{constructor(e){this.client=e;}async block(e){return await a.get("socket").updateBlockStatus(e,"block")}async unblock(e){return await a.get("socket").updateBlockStatus(e,"unblock")}async lastSeen(e){return await a.get("socket").updateLastSeenPrivacy(e)}async online(e){return await a.get("socket").updateOnlinePrivacy(e)}async picture(e){return await a.get("socket").updateProfilePicturePrivacy(e)}async status(e){return await a.get("socket").updateStatusPrivacy(e)}async readReceipt(e){return await a.get("socket").updateReadReceiptsPrivacy(e)}async groupsAdd(e){return await a.get("socket").updateGroupsAddPrivacy(e)}async ephemeral(e){let t=a.get("socket"),n={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await t.updateDefaultDisappearingMode(n[e])}async blocklist(){return await a.get("socket").fetchBlocklist()}async getSettings(){return await a.get("socket").fetchPrivacySettings(true)}},De=class{constructor(e){this.plient=e;this.privacy=new ct(e);}privacy};c();c();var va=m__default.default.object({status:m__default.default.enum(["connecting","open","close","reload","syncing"]),authType:m__default.default.enum(["pairing","qr"]),authTimeout:m__default.default.number().optional(),syncProgress:m__default.default.number().optional(),syncCompleted:m__default.default.boolean().default(false).optional(),qr:m__default.default.string().optional(),code:m__default.default.string().optional()});c();var er=m__default.default.enum(["unknown","android","ios","desktop","web"]),tr=m__default.default.enum(["text","album","image","contact","location","document","audio","video","protocol","contacts","highlyStructured","sendPayment","requestPayment","groupStatusMention","statusMention","declinePaymentRequest","cancelPaymentRequest","template","sticker","groupInvite","product","deviceSent","lists","viewOnce","order","ephemeral","invoice","buttons","paymentInvite","interactive","reaction","sticker","interactiveResponse","pollCreation","pollUpdate","keepInChat","document","requestPhoneNumber","viewOnce","reaction","text","viewOnce","pollCreation","scheduledCallCreation","groupMentioned","pinInChat","pollCreation","scheduledCallEdit","ptv","botInvoke","callLog","encComment","bcall","lottieSticker","event","comment","placeholder","encEventUpdate"]),zt=m__default.default.object({channelId:m__default.default.string(),uniqueId:m__default.default.string(),chatId:m__default.default.string(),chatType:tr,receiverLid:m__default.default.string(),receiverId:m__default.default.string(),receiverName:m__default.default.string(),roomId:m__default.default.string(),roomName:m__default.default.string(),senderLid:m__default.default.string(),senderId:m__default.default.string(),senderName:m__default.default.string(),senderDevice:er,timestamp:m__default.default.number(),text:m__default.default.string().nullable(),mentions:m__default.default.string().array(),links:m__default.default.string().array(),isBot:m__default.default.boolean(),isFromMe:m__default.default.boolean(),isPrefix:m__default.default.boolean(),isSpam:m__default.default.boolean(),isTagMe:m__default.default.boolean(),isStatusMention:m__default.default.boolean(),isGroupStatusMention:m__default.default.boolean(),isHideTags:m__default.default.boolean(),isGroup:m__default.default.boolean(),isNewsletter:m__default.default.boolean(),isQuestion:m__default.default.boolean(),isStory:m__default.default.boolean(),isViewOnce:m__default.default.boolean(),isEdited:m__default.default.boolean(),isDeleted:m__default.default.boolean(),isPinned:m__default.default.boolean(),isUnPinned:m__default.default.boolean(),isBroadcast:m__default.default.boolean(),isEphemeral:m__default.default.boolean(),isForwarded:m__default.default.boolean(),citation:m__default.default.record(m__default.default.string(),m__default.default.function({output:m__default.default.promise(m__default.default.boolean())})).nullable(),media:m__default.default.object({buffer:m__default.default.function({output:m__default.default.promise(m__default.default.instanceof(Buffer))}),stream:m__default.default.function({output:m__default.default.promise(m__default.default.instanceof(Xn__default.default))})}).loose().nullable(),injection:m__default.default.record(m__default.default.string(),m__default.default.any()).default({}),message:m__default.default.function({input:[],output:m__default.default.custom()})}),Aa=zt.extend({replied:zt.nullable()});c();var Ba=m__default.default.object({callId:m__default.default.string(),callerId:m__default.default.string(),roomId:m__default.default.string(),roomName:m__default.default.string(),date:m__default.default.date(),offline:m__default.default.boolean(),status:m__default.default.enum(["accept","offer","reject","ringing","terminate","timeout"]),isVideo:m__default.default.boolean(),isGroup:m__default.default.boolean()});c();var Ne=class{constructor(e){this.client=e;this.initialize();}logsInitialized=false;logsDisplayed=false;isReady=false;getRoomColor(e){return e?.isNewsletter?"blue":e?.isGroup?e?.isGroup?"lime":"dimgray":"orange"}initialize(){if(!this.client.options.showLogs||this.logsInitialized)return;this.logsInitialized=true;let e=async({status:t})=>{t==="open"&&(this.isReady=true,this.logsDisplayed||setTimeout(()=>{this.displayIndicator();},500));};a.events.on("connection",e);}displayIndicator(){this.logsDisplayed||(this.logsDisplayed=true,console.log(),a.spinner.info("Logs Indicator:"),console.log(y(" \u2022","orange")+" Private Chat"),console.log(y(" \u2022","lime")+" Group Chat"),console.log(y(" \u2022","blue")+" Newsletter Chat"),console.log());}message(e){if(!this.isReady)return;let t=x(this.getRoomColor(e)),n=e?.text?.toLowerCase()?.match("zaileys"),i=this.client.options?.fancyLogs,r=y(`[${new Date(e?.timestamp).toTimeString().split(" ")[0]}]`,"dimgray"),o=y(`${e?.roomName}`,t),l=e?.text?.slice(0,300)||"",p=l?.length>=300?"...":"";if(i){let u=y("\u2501".repeat(50),"dimgray"),w=y("\u2192","dimgray"),T=y("\u2022",t),M=`
|
|
6
6
|
${u}
|
|
7
|
-
`;
|
|
8
|
-
`,e?.isNewsletter?(
|
|
9
|
-
`,
|
|
10
|
-
`):(
|
|
11
|
-
`,
|
|
12
|
-
`,e?.isGroup&&(
|
|
13
|
-
`)),
|
|
14
|
-
`,
|
|
15
|
-
`,e?.isSpam&&(
|
|
16
|
-
`),e?.isForwarded&&(
|
|
17
|
-
`),e?.isEdited&&(
|
|
18
|
-
`),
|
|
7
|
+
`;M+=`${T} ${r} ${w} ${o}
|
|
8
|
+
`,e?.isNewsletter?(M+=` ${y("\u{1F4E2} Room:","dimgray")} ${y(`${e?.roomName}`,t)}
|
|
9
|
+
`,M+=` ${y("\u{1F194} ID:","dimgray")} ${y(`${z(e?.roomId)}`,"gray")}
|
|
10
|
+
`):(M+=` ${y("\u{1F464} Sender:","dimgray")} ${y(`${e?.senderName}`,t)}
|
|
11
|
+
`,M+=` ${y("\u{1F194} ID:","dimgray")} ${y(`${z(e?.senderId)}`,"gray")}
|
|
12
|
+
`,e?.isGroup&&(M+=` ${y("\u{1F3E0} Group:","dimgray")} ${y(`${e?.roomName}`,"lime")}
|
|
13
|
+
`)),M+=` ${y("\u{1F4DD} Type:","dimgray")} ${y(`${e?.chatType||"text"}`,"cyan")}
|
|
14
|
+
`,M+=` ${y("\u{1F4AC} Text:","dimgray")} ${y(l+p,n?["#ff5f6d","#ffc371"]:"brown")}
|
|
15
|
+
`,e?.isSpam&&(M+=` ${y("\u26A0\uFE0F Spam:","dimgray")} ${y("Yes","red")}
|
|
16
|
+
`),e?.isForwarded&&(M+=` ${y("\u21AA\uFE0F Forwarded:","dimgray")} ${y("Yes","yellow")}
|
|
17
|
+
`),e?.isEdited&&(M+=` ${y("\u270F\uFE0F Edited:","dimgray")} ${y("Yes","yellow")}
|
|
18
|
+
`),M+=`${u}`,console.log(M);}else {let u=`${r} \u2192 ${o}
|
|
19
19
|
`;e?.isNewsletter?u+=`${y("[room]","dimgray")} \u2192 ${y(`${e?.roomName} (${z(e?.roomId)})`,t)}
|
|
20
20
|
`:u+=`${y("[sender]","dimgray")} \u2192 ${y(`${e?.senderName} (${z(e?.senderId)})`,t)}
|
|
21
|
-
`,u+=`${y(`[${e?.chatType||"unknown"}]`,"dimgray")} \u2192 ${y(p
|
|
21
|
+
`,u+=`${y(`[${e?.chatType||"unknown"}]`,"dimgray")} \u2192 ${y(l+p,n?["#ff5f6d","#ffc371"]:"brown")}
|
|
22
22
|
`,u+="\u2014",console.log(u);}}call(e){if(!this.isReady)return;let t=x(this.getRoomColor(e)),n=y(`[${new Date(e?.date).toTimeString().split(" ")[0]}]`,"dimgray"),i=y(`${e?.roomName}`,t),r=`${n} \u2192 ${i}
|
|
23
23
|
`;r+=`${y("[caller]","dimgray")} \u2192 ${y(`${e?.callerId} (${z(e?.callerId)})`,t)}
|
|
24
24
|
`,r+=`${y(`[${e?.status}]`,"dimgray")} \u2192 ${y(e?.isVideo?"Video Call":"Voice Call","brown")}
|
|
25
|
-
`,r+="\u2014",console.log(r);}};c();var
|
|
25
|
+
`,r+="\u2014",console.log(r);}};c();var We=class{stack=[];use(e){return this.stack.push(e),this}async run(e){let t=-1,n=async i=>{if(i<=t)throw "next() called multiple times";t=i;let r=this.stack[i];if(r)try{await r(e,()=>n(i+1));}catch(o){throw console.error("Middleware error:",o),o}};await n(0);}};c();var _e=class{plugins=[];pluginsDir;globalEnabled=true;disabledPlugins=new Set;hmr=false;watcher=null;constructor(e="plugins",t=false){this.pluginsDir=J__namespace.isAbsolute(e)?e:J__namespace.join(process.cwd(),e),this.hmr=t;}async getAllFiles(e,t=e){try{await X__namespace.promises.access(e);}catch{return []}let n=await X__namespace.promises.readdir(e,{withFileTypes:true});return (await Promise.all(n.map(async r=>{let o=J__namespace.join(e,r.name);if(r.isDirectory())return this.getAllFiles(o,t);if((r.name.endsWith(".ts")||r.name.endsWith(".js"))&&!r.name.endsWith(".d.ts")){let p=J__namespace.relative(t,e),u=p===""?null:p.split(J__namespace.sep)[0];return [{filePath:o,parent:u}]}return []}))).flat()}async load(){try{await X__namespace.promises.access(this.pluginsDir);}catch{return}let e=await this.getAllFiles(this.pluginsDir),t=await Promise.all(e.map(async({filePath:n,parent:i})=>{try{let r=url.pathToFileURL(n).href,p=(await import(this.hmr?`${r}?t=${Date.now()}`:r)).default;if(p?.default&&(p=p.default),p?.handler&&p?.config){let u=this.getPluginId(p.config.matcher);return {...p,parent:i,enabled:!this.disabledPlugins.has(u)}}}catch(r){console.error(`[Plugins] Failed to load plugin ${n}:`,r);}return null}));this.plugins=t.filter(n=>n!==null);}setupHmr(){if(!(!this.hmr||this.watcher))try{if(!X__namespace.existsSync(this.pluginsDir))return;this.watcher=X__namespace.watch(this.pluginsDir,{recursive:!0},async(e,t)=>{t&&(t.endsWith(".ts")||t.endsWith(".js"))&&await this.reload();});}catch(e){console.error("[Plugins] Failed to setup HMR:",e);}}getPluginId(e){return e.map(t=>t.toString()).join("|")}async execute(e,t){if(!this.globalEnabled)return;let n=t.messages?.text||"";for(let i of this.plugins)if(i.enabled)try{this.match(n,i.config.matcher)&&await i.handler(e,t);}catch(r){console.error("[Plugins] Error executing plugin:",r);}}match(e,t){return t.some(n=>n instanceof RegExp?n.test(e):e===n||e.startsWith(n+" "))}enableAll(){this.globalEnabled=true,this.plugins.forEach(e=>e.enabled=true),this.disabledPlugins.clear();}disableAll(){this.globalEnabled=false;}enable(e){let t=e.toString(),n=this.plugins.find(i=>i.config.matcher.some(r=>r.toString()===t));return n?(n.enabled=true,this.disabledPlugins.delete(this.getPluginId(n.config.matcher)),true):false}disable(e){let t=e.toString(),n=this.plugins.find(i=>i.config.matcher.some(r=>r.toString()===t));return n?(n.enabled=false,this.disabledPlugins.add(this.getPluginId(n.config.matcher)),true):false}enableByParent(e){let t=0;return this.plugins.forEach(n=>{n.parent===e&&(n.enabled=true,this.disabledPlugins.delete(this.getPluginId(n.config.matcher)),t++);}),t}disableByParent(e){let t=0;return this.plugins.forEach(n=>{n.parent===e&&(n.enabled=false,this.disabledPlugins.add(this.getPluginId(n.config.matcher)),t++);}),t}isEnabled(){return this.globalEnabled}getLoadedPlugins(){return this.plugins}getPluginsInfo(){return this.plugins.map(e=>({matcher:e.config.matcher,metadata:e.config.metadata,parent:e.parent,enabled:e.enabled}))}async reload(){this.plugins=[],await this.load(),console.log(`[Plugins] Successfully reloaded ${this.plugins.length} plugins.`);}stopHmr(){this.watcher&&(this.watcher.close(),this.watcher=null);}},Ka=(s,e)=>({handler:s,config:e});var qt=class{constructor(e){this.options=e;this.options=de(Wt,e);let t=new re().classInjection(this,[new Be(this),new $e(this),new De(this),new Oe(this),new Fe(this)]);return this.plugins=new _e(this.options.pluginsDir,this.options.pluginsHmr),this._ready=this.initialize(t),t}_ready;logs;middleware=new We;plugins;health;cleanup;async initialize(e){await Ft(),await qe(this.options.disableFFmpeg),this.health=new ve(this),this.cleanup=new we(this),this.options.autoCleanUp?.enabled&&this.cleanup.start(),await kt(this),await this.plugins.load(),this.plugins.setupHmr(),new Ee(e||this),this.logs||(this.logs=new Ne(this));}ready(){return this._ready}db(e){return ut(this.options.session,e)}on(e,t){a.events.on(e,t);}use(e){return this.middleware.use(e),this}get socket(){return a.get("socket")}async getRoomName(e){let t=a.get("socket"),n=e.endsWith("@g.us"),i=null;if(n){let r=D.get(e);if(r)i=r.subject;else {let o=await t.groupMetadata(e);o&&(D.set(e,o),i=o.subject);}}return Y(i)}inject(e,t){te.inject(e,t);}getInjection(e){return te.getSync(e)}removeInjection(e){te.remove(e);}clearInjections(){te.clear();}};
|
|
26
26
|
/*
|
|
27
27
|
* Copyright (c) 2025 zaadevofc.
|
|
28
28
|
* All rights reserved.
|
|
@@ -30,7 +30,7 @@ ${u}
|
|
|
30
30
|
* See LICENSE file for details.
|
|
31
31
|
|
|
32
32
|
* Author: zaadevofc
|
|
33
|
-
* Last build time: 12/23/2025
|
|
33
|
+
* Last build time: 12/23/2025 3:04:42 PM
|
|
34
34
|
*
|
|
35
35
|
* Repository: git+https://github.com/zeative/zaileys.git
|
|
36
|
-
*/exports.BaseMessagesType=zt;exports.ButtonInteractiveCallType=En;exports.ButtonInteractiveCopyType=Pn;exports.ButtonInteractiveReplyType=In;exports.ButtonInteractiveSingleSelectType=Rn;exports.ButtonInteractiveType=Bn;exports.ButtonInteractiveUrlType=An;exports.ButtonSimpleType=Fn;exports.ButtonType=
|
|
36
|
+
*/exports.BaseMessagesType=zt;exports.ButtonInteractiveCallType=En;exports.ButtonInteractiveCopyType=Pn;exports.ButtonInteractiveReplyType=In;exports.ButtonInteractiveSingleSelectType=Rn;exports.ButtonInteractiveType=Bn;exports.ButtonInteractiveUrlType=An;exports.ButtonSimpleType=Fn;exports.ButtonType=Dt;exports.CitationType=On;exports.Client=qt;exports.ClientAuthPairingType=_n;exports.ClientAuthQRType=jn;exports.ClientBaseType=Nt;exports.ClientOptionsType=Wt;exports.DEVICE_ENUM_TYPES=er;exports.EventEnumType=Bs;exports.FakeReplyType=Dn;exports.LimiterType=$n;exports.ListenerCallsType=Ba;exports.ListenerConnectionType=va;exports.ListenerMessagesType=Aa;exports.MESSAGE_ENUM_TYPES=tr;exports.MediaModifier=tt;exports.Plugins=_e;exports.StickerMetadataType=Nn;exports.StickerShapeType=it;exports.autoCleanUp=Wn;exports.cleanJid=z;exports.cleanMediaObject=St;exports.definePlugins=Ka;exports.extractJids=Ve;exports.extractUrls=Et;exports.findGlobalWord=ge;exports.findNestedByKeys=wo;exports.generateId=ne;exports.getDeepContent=be;exports.getLatestLibVersion=It;exports.getUsersMentions=Tt;exports.ignoreLint=x;exports.logColor=y;exports.mediaModifier=O;exports.modifyFn=ko;exports.normalizeText=Y;exports.numbersToJids=vi;exports.pickKeysFromArray=He;exports.randomize=ho;exports.registerAuthCreds=kt;exports.removeAuthCreds=At;exports.shuffleString=yo;exports.toJson=Je;exports.toString=fe;exports.useAuthState=yt;
|
package/dist/index.mjs
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import*as ne from'path';import ne__default from'path';import {pathToFileURL}from'url';import ke from'fluent-ffmpeg';import le from'fs/promises';import {tmpdir}from'os';import on,{initAuthCreds,proto,makeCacheableSignalKeyStore,Browsers,extractMessageContent,getContentType,URL_REGEX,BufferJSON,generateWAMessageFromContent,generateMessageIDV2,isJidGroup,delay,DisconnectReason,jidNormalizedUser,getDevice,downloadMediaMessage}from'baileys';import {createJetDB}from'jetdb';import {createSpinner}from'nanospinner';import pe from'node-cache';import Zt from'pino';import {EventEmitter}from'events';import {Mutex}from'async-mutex';import {fileTypeFromBuffer}from'file-type';import {Jimp}from'jimp';import gn from'node-webpmux';import R from'lodash';import It from'unorm';import {fromError}from'zod-validation-error';import Et,{cristal}from'gradient-string';import Mn from'figlet';import vn from'qrcode-terminal';import {RateLimiterMemory}from'rate-limiter-flexible';import m,{z as z$1}from'zod';import er from'stream';import*as _e from'fs';var Jt=Object.defineProperty;var Kt=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+s+'" is not supported')});var lt=(s,e)=>()=>(s&&(e=s(s=0)),e);var Ht=(s,e)=>{for(var t in e)Jt(s,t,{get:e[t],enumerable:true});};var c=lt(()=>{});var Mt={};Ht(Mt,{BufferConverter:()=>I,FFMPEG_CONSTANTS:()=>b,FFmpegProcessor:()=>L,FileManager:()=>w,MimeValidator:()=>B,initializeFFmpeg:()=>Ve});var b,Ve,w,I,B,L,J=lt(()=>{c();b={OPUS:{CODEC:"libopus",CHANNELS:1,FREQUENCY:48e3,BITRATE:"48k",FORMAT:"ogg"},THUMBNAIL:{SIZE:100,QUALITY:50,TIMESTAMP:"10%"},STICKER:{SIZE:512,MAX_DURATION:10,FPS:15,DEFAULT_QUALITY:80,COMPRESSION_LEVEL:6},MIME:{AUDIO:"audio/",VIDEO:"video/",IMAGE:"image/",GIF:"image/gif",MP4:"video/mp4"}},Ve=async(s=false)=>{if(!s)try{let e=(await import('@ffmpeg-installer/ffmpeg')).default,t=(await import('@ffprobe-installer/ffprobe')).default;ke.setFfmpegPath(e.path),ke.setFfprobePath(t.path);}catch{}},w=class{static generateUniqueId(){return `${Date.now()}_${Math.random().toString(36).slice(2,11)}`}static createTempPath(e,t){return ne__default.join(tmpdir(),`${e}_${this.generateUniqueId()}.${t}`)}static async cleanup(e){await Promise.allSettled(e.map(t=>le.unlink(t)));}static async safeReadFile(e){try{return await le.readFile(e)}catch{throw new Error(`Failed to read file: ${e}`)}}static async safeWriteFile(e,t){try{await le.writeFile(e,t);}catch{throw new Error(`Failed to write file: ${e}`)}}},I=class{static async toBuffer(e){if(Buffer.isBuffer(e))return e;if(e instanceof ArrayBuffer)return Buffer.from(e);if(typeof e=="string")return this.fromString(e);throw new Error("Invalid input type: expected string, Buffer, or ArrayBuffer")}static async fromString(e){if(e.startsWith("http://")||e.startsWith("https://"))return this.fromUrl(e);try{if(await le.stat(e).then(t=>t.isFile()).catch(()=>!1))return await le.readFile(e)}catch{}return Buffer.from(e,"base64")}static async fromUrl(e){try{let t=await fetch(e);if(!t.ok)throw new Error(`HTTP ${t.status}: ${t.statusText}`);let n=await t.arrayBuffer();return Buffer.from(n)}catch(t){throw new Error(`Failed to fetch URL: ${t.message}`)}}static async getExtension(e){let{fileTypeFromBuffer:t}=await import('file-type'),n=await t(e);if(!n)return "tmp";let i=n.ext.toLowerCase();return ["wav","ogg","mp4","gif","jpg","webp","tmp","mp3","png"].includes(i)?i:"tmp"}},B=class{static validate(e,t){if(!e?.mime?.startsWith(t))throw new Error(`Invalid file type: expected ${t}*, got ${e?.mime||"unknown"}`)}static isMedia(e){return e.startsWith(b.MIME.IMAGE)||e.startsWith(b.MIME.VIDEO)}static isAnimated(e){return e===b.MIME.GIF||e.startsWith(b.MIME.VIDEO)}},L=class{static async process(e){return new Promise((t,n)=>{let i=ke(e.input).output(e.output);for(let r=0;r<e.options.length;r++){let o=e.options[r];o.startsWith("-")&&r+1<e.options.length&&!e.options[r+1].startsWith("-")?(i.outputOptions(o,e.options[r+1]),r++):i.outputOptions(o);}i.on("end",async()=>{try{await e.onEnd(),t();}catch(r){n(r);}}).on("error",async r=>{try{await e.onError(r);}finally{n(r);}}).run();})}static async getDuration(e){return new Promise((t,n)=>{ke.ffprobe(e,(i,r)=>{if(i)return n(i);t(r.format.duration||0);});})}};});c();c();c();c();var ut=s=>createJetDB(`${s}/auth/creds.json`,{BufferJSON:BufferJSON,cacheSize:100,flushMode:"sync",compression:"none",enableIndexing:false}),he=s=>createJetDB(`${s}/auth/keys.json`,{BufferJSON:BufferJSON,size:1024*1024,cacheSize:2e3,flushMode:"sync",compression:"deflate",enableIndexing:false,hotThreshold:5}),mt=(s,e)=>createJetDB(`.session/${s}/store/${e}.json`,{BufferJSON:BufferJSON,cacheSize:2e4,debounceMs:1e3,flushMode:"debounce",compression:"deflate",serialization:"json",enableIndexing:true,hotThreshold:2,size:5*1024*1024});c();c();var dt=new pe({stdTTL:600,checkperiod:120,useClones:false}),N=new pe({stdTTL:300,useClones:false}),ft=new pe({stdTTL:300}),gt=new pe({stdTTL:600,checkperiod:120,useClones:false,deleteOnExpire:true,maxKeys:100}),yt=new pe;c();var re=class{classInjection(e,t){let n=t.length;return new Proxy(e,{get(i,r,o){if(r in i){let p=Reflect.get(i,r,o);return typeof p=="function"?p.bind(i):p}for(let p=0;p<n;p++){let l=t[p];if(r in l){let u=Reflect.get(l,r,o);return typeof u=="function"?u.bind(l):u}}},set(i,r,o,p){if(r in i)return Reflect.set(i,r,o,p);for(let l=0;l<n;l++){let u=t[l];if(r in u)return Reflect.set(u,r,o,p)}return Reflect.set(i,r,o,p)},has(i,r){if(r in e)return true;for(let o=0;o<n;o++)if(r in t[o])return true;return false},ownKeys(){let i=[];for(let r of Reflect.ownKeys(e))i.push(r);for(let r=0;r<n;r++)for(let o of Reflect.ownKeys(t[r]))i.includes(o)||i.push(o);return i},getOwnPropertyDescriptor(i,r){let o=Object.getOwnPropertyDescriptor(e,r);if(o)return o;for(let p=0;p<n;p++)if(o=Object.getOwnPropertyDescriptor(t[p],r),o)return o}})}};var Ue=class extends pe{constructor(){return super({useClones:false}),new re().classInjection(this,[dt])}spinner=createSpinner("",{color:"green"});logger=Zt({level:"silent",enabled:false});events=new EventEmitter},a=new Ue;var ht=async s=>{a.spinner.start(" Initializing auth state...");let e=ut(s),t=he(s),n=await e.get("creds")||initAuthCreds();return a.spinner.success(" Generate auth successfully"),{state:{creds:n,keys:{get:async(i,r)=>{let o={};return await Promise.all(r.map(async p=>{let l=`${i}:${p}`,u=await t.get(l);i==="app-state-sync-key"&&u&&(u=proto.Message.AppStateSyncKeyData.fromObject(u)),o[p]=u;})),o},set:async i=>{let r=[],o=[];for(let p in i)for(let l in i[p]){let u=i[p][l],x=`${p}:${l}`;u?r.push({key:x,value:u}):o.push(x);}r.length&&await t.batchSet(r),o.length&&await t.batchDelete(o),await t.flush();}}},saveCreds:async()=>{await e.set("creds",n);}}};c();c();var kt=(s,e)=>({logger:s.health.logger,printQRInTerminal:false,enableRecentMessageCache:true,emitOwnEvents:true,keepAliveIntervalMs:3e4,browser:Browsers.ubuntu("Chrome"),markOnlineOnConnect:s.options.autoOnline,syncFullHistory:s.options.syncFullHistory,msgRetryCounterCache:yt,mediaCache:ft,auth:{creds:e.creds,keys:makeCacheableSignalKeyStore(e.keys,a.logger)},cachedGroupMetadata:async t=>N.get(t),shouldIgnoreJid:()=>false,shouldSyncHistoryMessage:()=>s.options.syncFullHistory,patchMessageBeforeSending:t=>t,getMessage:async t=>{if(!t?.remoteJid)return proto.Message.fromObject({});let n=await s.db("messages").getByIndex("messages","key.id",t.id);return proto.Message.fromObject(n[0])}});var bt=async s=>{let e=`.session/${s.options.session}`;console.info=()=>{},console.warn=()=>{};let{state:t,saveCreds:n}=await ht(e),i=kt(s,t),r=on(i);r.ev.on("creds.update",n),a.set("socket",r);};c();c();c();var we=class{constructor(e){this.client=e;}interval=null;start(){let e=this.client.options.autoCleanUp;e?.enabled&&(this.interval=setInterval(()=>{this.run();},e.intervalMs),this.run());}stop(){this.interval&&(clearInterval(this.interval),this.interval=null);}async run(){let e=this.client.options.autoCleanUp;if(!e?.enabled)return;let t=Date.now()-e.maxAgeMs;for(let n of e.scopes)try{let i=this.client.db(n),r=await i.query(n).where("timestamp","<",t).get();if(r.length>0){let o=r.map(p=>p.key?.id||p.id);await i.batchDelete(o),a.spinner.info(` [CleanUpManager] Cleaned up ${r.length} items from ${n}`);}}catch{}}};c();var qe=class{store=gt;mutex=new Mutex;async inject(e,t){let n=await this.mutex.acquire();try{this.store.set(e,t);}finally{n();}}async get(e){let t=await this.mutex.acquire();try{return this.store.get(e)}finally{t();}}getSync(e){return this.store.get(e)}getAll(){let e=this.store.keys();return this.store.mget(e)}async remove(e){let t=await this.mutex.acquire();try{return this.store.del(e)>0}finally{t();}}async clear(){let e=await this.mutex.acquire();try{this.store.flushAll();}finally{e();}}has(e){return this.store.has(e)}get size(){return this.store.getStats().keys}keys(){return this.store.keys()}},ee=new qe;c();J();c();J();var ie=class{static async toOpus(e){return this.convert(e,"opus")}static async toMp3(e){return this.convert(e,"mp3")}static async convert(e,t="opus"){let n=await I.toBuffer(e),i=await fileTypeFromBuffer(n);B.validate(i,b.MIME.AUDIO);let r=await I.getExtension(n),o=w.createTempPath("audio_in",r),p=t==="opus"?"ogg":"mp3",l=w.createTempPath("audio_out",p);await w.safeWriteFile(o,n);let u;try{let x=t==="opus"?["-vn","-c:a","libopus","-b:a","48k","-ac","1","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","opus"]:["-vn","-c:a","libmp3lame","-b:a","128k","-ac","2","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","mp3"];return await L.process({input:o,output:l,options:x,onEnd:async()=>{u=await w.safeReadFile(l);},onError:async()=>{await w.cleanup([o,l]);}}),await w.cleanup([o,l]),u}catch(x){throw await w.cleanup([o,l]),new Error(`${t.toUpperCase()} conversion failed: ${x.message}`)}}};c();J();var z=class{static async toMp4(e){let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);B.validate(n,b.MIME.VIDEO);let i=await I.getExtension(t),r=w.createTempPath("video_in",i),o=w.createTempPath("video_out","mp4");await w.safeWriteFile(r,t);let p;try{let l=["-c:v","libx264","-preset","ultrafast","-crf","28","-c:a","aac","-b:a","128k","-movflags","+faststart","-pix_fmt","yuv420p","-f","mp4"];return await L.process({input:r,output:o,options:l,onEnd:async()=>{p=await w.safeReadFile(o);},onError:async()=>{await w.cleanup([r,o]);}}),await w.cleanup([r,o]),p}catch(l){throw await w.cleanup([r,o]),new Error(`Video re-encoding failed: ${l.message}`)}}static async thumbnail(e){let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);B.validate(n,b.MIME.VIDEO);let i=await I.getExtension(t),r=w.createTempPath("video",i),o=w.createTempPath("thumb","jpg");await w.safeWriteFile(r,t);let p;try{return await new Promise((l,u)=>{ke(r).screenshots({timestamps:[b.THUMBNAIL.TIMESTAMP],filename:ne__default.basename(o),folder:ne__default.dirname(o),size:`${b.THUMBNAIL.SIZE}x${b.THUMBNAIL.SIZE}`}).on("end",async()=>{try{p=(await w.safeReadFile(o)).toString("base64"),l();}catch(x){u(x);}}).on("error",u);}),await w.cleanup([r,o]),p}catch(l){throw await w.cleanup([r,o]),new Error(`Thumbnail generation failed: ${l.message}`)}}static async duration(e){return L.getDuration(e)}};c();J();var U;try{U=Kt("sharp");}catch{U=null;}var D=class{static async thumbnail(e){let t=await fileTypeFromBuffer(e),n=b.THUMBNAIL.SIZE;if(U){let o=U(e).resize(n,n,{fit:"cover"});return t?.mime===b.MIME.GIF&&o.resize(n,n),(await o.jpeg({quality:b.THUMBNAIL.QUALITY}).toBuffer()).toString("base64")}let i=await Jimp.read(e);return i.cover({w:n,h:n}),t?.mime===b.MIME.GIF&&i.resize({w:n,h:n}),(await i.getBuffer("image/jpeg",{quality:b.THUMBNAIL.QUALITY})).toString("base64")}static async resize(e,t,n){if(U)return await U(e).resize(t,n,{fit:"cover"}).png().toBuffer();let i=await Jimp.read(e);return i.cover({w:t,h:n}),await i.getBuffer("image/png")}static async toJpeg(e){let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);if(!n||!n.mime.startsWith(b.MIME.IMAGE))throw new Error("Invalid image type");return n.mime==="image/webp"?U?await U(t).jpeg().toBuffer():await(await Jimp.read(t)).getBuffer("image/jpeg"):t}static async resizeForSticker(e,t,n="default"){let i=b.STICKER.SIZE;if(U&&n==="default")return await U(e).resize(i,i,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).webp({quality:t}).toBuffer();let r=await Jimp.read(e);if(r.contain({w:i,h:i}),n!=="default"){let C=new Jimp({width:i,height:i,color:0});for(let M=0;M<i;M++)for(let P=0;P<i;P++){let W=false,K=i/2,H=i/2;switch(n){case "circle":{let T=P-K,O=M-H;W=T*T+O*O<=K*K;break}case "rounded":{let T=i/10,O=P>=T&&P<i-T&&M>=0&&M<i,G=P>=0&&P<i&&M>=T&&M<i-T,S=false,_=[[T,T],[i-T,T],[T,i-T],[i-T,i-T]];for(let[se,ae]of _){let X=P-se,Q=M-ae;if(X*X+Q*Q<=T*T){S=true;break}}W=O||G||S;break}case "oval":{let T=i/2,O=i/3,G=(P-K)/T,S=(M-H)/O;W=G*G+S*S<=1;break}}W&&C.setPixelColor(4294967295,P,M);}r.mask(C);}let o=w.createTempPath("sticker_img","png"),p=w.createTempPath("sticker_out","webp"),l=await r.getBuffer("image/png");await w.safeWriteFile(o,l);let{FFmpegProcessor:u}=await Promise.resolve().then(()=>(J(),Mt)),x;try{return await u.process({input:o,output:p,options:["-vf",`scale=${i}:${i}`,"-quality",String(t),"-f","webp"],onEnd:async()=>{x=await w.safeReadFile(p);},onError:async()=>{await w.cleanup([o,p]);}}),await w.cleanup([o,p]),x}catch(C){throw await w.cleanup([o,p]),new Error(`Sticker resize failed: ${C.message}`)}}};c();c();var te=s=>{let e;Array.isArray(s)?e=s.join("|"):typeof s=="string"?e=s:e=String(s);let t=2166136261,n=e.length;for(let i=0;i<n;i++)t^=e.charCodeAt(i),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return "Z4D3FC"+(t>>>0).toString(16).padStart(8,"0").toUpperCase()},St=(s="")=>{if(!s)return [];let e=new Set;for(let t of s.matchAll(/@(\d+)/g))e.add(t[1]);return R.toArray(e)},Ge=(s="")=>{if(!s)return [];let e=new Set;for(let t of s.matchAll(/@(\d+)/g))t[1].length<=15&&e.add(t[1]);return R.flatMap([...e],t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},Ai=s=>R.isEmpty(s)?[]:R.map([...s],e=>`${e}@s.whatsapp.net`),Ct=s=>R.omit(s,["url","contextInfo","fileSha256","fileEncSha256","mediaKey","directPath","waveform","thumbnail","jpegThumbnail","thumbnailEncSha256","thumbnailSha256","thumbnailDirectPath","firstFrameSidecar","streamingSidecar","scansSidecar","callKey","message","key","midQualityFileSha256","historySyncNotification","appStateSyncKeyShare","appStateSyncKeyRequest","initialSecurityNotificationSettingSync","appStateFatalExceptionNotification","disappearingMode","peerDataOperationRequestMessage","peerDataOperationRequestResponseMessage","botFeedbackMessage"]),be=s=>{if(!s)return {leaf:void 0,chain:[]};let e=extractMessageContent(s)||s,t=[];for(;e&&typeof e=="object";){let n=getContentType(e);if(!n)break;t.push(n);let i=e[n];if(!i||typeof i!="object"){e=i;break}e=i;}return {leaf:e,chain:t}},q=s=>Number(s?.split("@")[0]);c();var v=s=>s,At=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(s){throw s}},Pt=async s=>{try{let e=`.session/${s}/auth/creds.json`;await le.unlink(e);}catch(e){throw a.spinner.error(`Failed to remove auth creds for session "${s}"!`),e}},Y=(s="")=>{if(!s?.length)return null;let e=s.replace(/\u202E(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/\u202D(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/[\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/gu,"").replace(/[\u200B\u200C\u200D\uFEFF]/gu,"").replace(/[\u00AD\u034F\u115F\u1160\u17B4\u17B5\u180B-\u180E]/gu,"").replace(/[\u2060-\u2064\u206A-\u206F]/gu,"").replace(/[\u2800\uFFFC\uFFFD]/gu,"").replace(/[\uFE00-\uFE0F]/gu,"").split("").map(t=>It.nfkd(t)).join("").replace(/[\u0300-\u036F]/gu,"").replace(/[\u1AB0-\u1AFF]/gu,"").replace(/[\u1DC0-\u1DFF]/gu,"").replace(/[\u20D0-\u20FF]/gu,"").replace(/[\uFE20-\uFE2F]/gu,"").replace(/[\p{Cc}]/gu,"").replace(/[\p{Cf}]/gu,"").replace(/[\p{Co}]/gu,"").replace(/[\p{Cn}]/gu,"").replace(/[\p{Cs}]/gu,"").replace(/[\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]/gu," ").replace(/[\u2028\u2029]/gu," ").replace(/[\t\r\n\f\v]/g," ").split("").map(t=>It.nfkc(t)).join("").normalize("NFC").replace(/\s+/g," ").trim();return e.length?e:null};J();var Me=class{static async create(e,t){try{let n=await I.toBuffer(e),i=await fileTypeFromBuffer(n);if(!i)throw new Error("Unable to detect file type");let r=t?.quality||b.STICKER.DEFAULT_QUALITY,o=B.isAnimated(i.mime),p=t?.shape||"default",l=o?await this.processAnimated(n,i.mime,r):await D.resizeForSticker(n,r,p),u=this.createExifMetadata(t),x=new gn.Image;await x.load(l),x.exif=u;let C=await x.save(null);return Buffer.isBuffer(C)?C:Buffer.from(C)}catch(n){throw new Error(`Sticker creation failed: ${n.message||n}`)}}static createExifMetadata(e){let t={"sticker-pack-id":te(Date.now().toString()),"sticker-pack-name":e?.packageName||"Zaileys Library","sticker-pack-publisher":e?.authorName||"https://github.com/zeative/zaileys",emojis:["\u{1F913}"],"android-app-store-link":"https://play.google.com/store/apps/details?id=com.marsvard.stickermakerforwhatsapp","ios-app-store-link":"https://itunes.apple.com/app/sticker-maker-studio/id1443326857"},n=Buffer.from([73,73,42,0,8,0,0,0,1,0,65,87,7,0,0,0,0,0,22,0,0,0]),i=Buffer.from(JSON.stringify(t),"utf8"),r=Buffer.concat([n,i]);return r.writeUIntLE(i.length,14,4),r}static async processAnimated(e,t,n){let i=this.getExtension(t),r=w.createTempPath("sticker_in",i),o=w.createTempPath("sticker_out","webp");await w.safeWriteFile(r,e);let p=b.STICKER.MAX_DURATION;try{let P=await z.duration(r);p=v(Math.min(P,b.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",b.STICKER.MAX_DURATION);}let l=b.STICKER.SIZE,u=b.STICKER.FPS,x=`scale=${l}:${l}:force_original_aspect_ratio=increase,crop=${l}:${l},fps=${u},format=rgba`,C=Math.max(1,Math.min(100,100-n)),M;try{return await L.process({input:r,output:o,options:["-vcodec libwebp",`-vf ${x}`,`-q:v ${C}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${p}`,`-compression_level ${b.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{M=await w.safeReadFile(o);},onError:async()=>{await w.cleanup([r,o]);}}),await w.cleanup([r,o]),M}catch(P){throw await w.cleanup([r,o]),new Error(`Animated sticker processing failed: ${P.message}`)}}static getExtension(e){return e===b.MIME.GIF?"gif":e.startsWith(b.MIME.VIDEO)?"mp4":"tmp"}};c();J();J();var xe=class{static async create(e){try{let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);if(!n)throw new Error("Unable to detect file type");let i;return n.mime.startsWith(b.MIME.VIDEO)?i=await z.thumbnail(t):B.isMedia(n.mime)?i=await D.thumbnail(t):i="",{document:t,mimetype:n.mime,fileName:te(Date.now().toString()),jpegThumbnail:i}}catch(t){throw new Error(`Document creation failed: ${t.message||t}`)}}};c();var ve=class{constructor(e){this.client=e;this.keysDb=he(e.options.session),this.setupLogFilters();}keysDb;setupLogFilters(){let e=console.error,t=console.log,n=i=>{let r=i.join(" ");return ["Bad MAC","Session error:","Closing open session in favor of incoming prekey bundle","Error: Bad MAC"].some(p=>r.includes(p))};console.error=(...i)=>{n(i)||e.apply(console,i);},console.log=(...i)=>{n(i)||t.apply(console,i);};}async repair(e){if(!e)return;let t=[`session:${e}`,`sender-key:${e}`];try{await this.keysDb.batchDelete(t),await this.keysDb.flush(),a.spinner.warn(` [HealthManager] Repaired session for ${e} due to Bad MAC`);}catch{}}get logger(){return Zt({level:"debug"},{write:e=>{try{let t=JSON.parse(e);if(t.msg?.includes("Bad MAC")){let n=t.jid||t.remoteJid;n&&this.repair(n);}}catch{}}})}};c();var de=(s,e)=>{try{return s.parse(e)}catch(t){let n=fromError(t);throw new Error(n.toString())}};c();c();var Je=class{concurrency;timeout;onError;queue;running;completed;failed;isClosing;closeResolve;constructor(e){this.concurrency=e?.concurrency||30,this.timeout=e?.timeout||3e4,this.onError=e?.onError||this._defaultErrorHandler,this.queue=[],this.running=new Set,this.completed=0,this.failed=0,this.isClosing=false,this.closeResolve=null;}add(e,t){if(this.isClosing)throw new Error("Queue is closing, cannot add new tasks");let n={id:this._generateId(),fn:e,priority:t?.priority||0,timeout:t?.timeout||this.timeout,retries:t?.retries||0,maxRetries:t?.maxRetries||0,createdAt:Date.now()},i=this.queue.findIndex(r=>r.priority<n.priority);return i===-1?this.queue.push(n):this.queue.splice(i,0,n),this._process(),n.id}addBulk(e){return e.map(({fn:t,options:n})=>this.add(t,n))}async _process(){for(;this.running.size<this.concurrency&&this.queue.length>0;){let e=this.queue.shift();this.running.add(e),this._executeTask(e);}this.isClosing&&this.running.size===0&&this.queue.length===0&&this.closeResolve?.();}async _executeTask(e){try{await this._withTimeout(e.fn(),e.timeout),this.completed++;}catch(t){e.retries<e.maxRetries?(e.retries++,this.queue.unshift(e)):(this.failed++,this.onError(t,e));}finally{this.running.delete(e),this._process();}}_withTimeout(e,t){return Promise.race([e,new Promise((n,i)=>setTimeout(()=>i(new Error("Task timeout")),t))])}async close(e=0){if(this.isClosing=true,this.running.size===0&&this.queue.length===0)return;let t=new Promise(n=>{this.closeResolve=n;});if(e>0){let n=new Promise(i=>setTimeout(i,e));await Promise.race([t,n]);}else await t;}forceClose(){this.queue=[],this.running.clear(),this.isClosing=true,this.closeResolve?.();}getStats(){return {queued:this.queue.length,running:this.running.size,completed:this.completed,failed:this.failed,total:this.completed+this.failed}}isIdle(){return this.queue.length===0&&this.running.size===0}async waitUntilIdle(e=100){for(;!this.isIdle();)await new Promise(t=>setTimeout(t,e));}_defaultErrorHandler(e,t){console.error(`[FireAndForget] Task ${t.id} failed:`,e);}_generateId(){return `${Date.now()}-${Math.random().toString(36).substr(2,9)}`}},E=new Je;process.on("SIGTERM",()=>E.close());c();c();c();var h=(s,e="lime")=>Array.isArray(e)?Et(e)(s):Et([e,e])(s),Ke=s=>{try{return JSON.parse(s)}catch{return R.attempt(()=>JSON.parse(JSON.stringify(s)||"{}"))}},fe=s=>{try{return JSON.stringify(s)}catch{let e=R.attempt(()=>JSON.stringify(Ke(s)||"{}"));return R.isError(e)?"{}":e}},Mo=(s="")=>R.shuffle(s).join(""),ge=(s="",e="")=>s?R.includes(s.toLowerCase(),e.toLowerCase()):null,Rt=(s="")=>s?R.castArray(s.match(URL_REGEX)||[]):[],xo=s=>s[Math.floor(Math.random()*s.length)],He=(s,e)=>{let t=i=>!!(i==null||typeof i=="string"&&i.trim()===""||Array.isArray(i)&&i.length===0||typeof i=="object"&&Object.keys(i).length===0),n=(i,r)=>{if(!i||typeof i!="object")return;let o=i,p=r.split(".");for(let l of p){let u=l.match(/^(.+?)\[(\d+)\]$/);if(u){let[,x,C]=u;o=o?.[x]?.[parseInt(C,10)];}else o=o?.[l];if(t(o))return}return o};if(!(!Array.isArray(s)||s.length===0)&&!(!Array.isArray(e)||e.length===0)){for(let i of s)if(!(!i||typeof i!="object"))for(let r of e){let o=n(i,r);if(!t(o))return o}}},vo=(s,e)=>{let t=R.castArray(e),n=(o,p)=>R.every(p,(l,u)=>o?.[u]===l),i=(o,p)=>R.some(p,(l,u)=>o?.[u]===l),r=o=>R.isArray(o)?R.find(o,r)??o:R.isObject(o)?R.find(t,u=>n(o,u))||R.find(t,u=>i(o,u))?o:R.find(R.values(o),r)??o:null;return r(s)},To=(s,e,t)=>new Proxy(s,{apply(n,i,r){e?.(r);let o=Reflect.apply(n,i,r);return t?t(o,r):o}});c();var Qe=class{input;constructor(e){this.input=e;}async toOpus(){return ie.toOpus(this.input)}async toMp3(){return ie.toMp3(this.input)}async convert(e="opus"){return ie.convert(this.input,e)}},Ye=class{input;constructor(e){this.input=e;}async toMp4(){return z.toMp4(this.input)}async thumbnail(){return z.thumbnail(this.input)}},Ze=class{input;constructor(e){this.input=e;}async toJpeg(){return D.toJpeg(this.input)}async thumbnail(){let e=await I.toBuffer(this.input);return D.thumbnail(e)}async resize(e,t){let n=await I.toBuffer(this.input);return D.resize(n,e,t)}},Xe=class{input;metadata;constructor(e,t){this.input=e,this.metadata=t;}async create(){return Me.create(this.input,this.metadata)}},et=class{input;constructor(e){this.input=e;}async create(){return xe.create(this.input)}},tt=class{input;constructor(e){this.input=e;}async get(){let e=await I.toBuffer(this.input),t=await fileTypeFromBuffer(e);if(!t||!B.isMedia(t.mime))throw new Error("Invalid media type: expected image or video");return t.mime.startsWith(b.MIME.VIDEO)?z.thumbnail(this.input):D.thumbnail(e)}},nt=class{audio(e){return new Qe(e)}video(e){return new Ye(e)}image(e){return new Ze(e)}sticker(e,t){return new Xe(e,t)}document(e){return new et(e)}thumbnail(e){return new tt(e)}async toBuffer(e){return I.toBuffer(e)}},$=new nt;var Te=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=a.get("socket");e.ev.on("call",async t=>{for(let n of t){let i=await this.parse(n);i&&(E.add(async()=>this.client.middleware.run({calls:i})),E.add(async()=>this.client.plugins.execute(this.client,{messages:i})),a.events.emit("calls",i),this.client.options?.autoRejectCall&&E.add(async()=>e.rejectCall(i.callId,i.callerId)));}});}async parse(e){let t=a.get("socket"),n={};return n.callId=e.id,n.callerId=jidNormalizedUser(e.from),n.roomId=jidNormalizedUser(e.chatId),n.roomName=Y(t?.user?.name||t?.user?.verifiedName),n.date=e.date,n.offline=e.offline,n.status=e.status,n.isVideo=!!e.isVideo,n.isGroup=!!e.isGroup,this.client.logs.call(n),n}};c();c();var Ft=s=>{vn.generate(s,{small:true},e=>{console.log(e);});},Ot=async()=>{console.clear(),a.spinner.start(" Checking for updates...");let s="2.2.4",e="zaadevofc",t=await At(),n=s===t;a.spinner.stop();let i="Zaileys",r=`
|
|
2
|
-
by ${e} \xB7 v${s}`,o=`${n?"Already using latest version!":`Update available! (v${t})`}
|
|
3
|
-
`,p=n?"lime":"orange",
|
|
4
|
-
`);return}if(u===500){a.spinner.error(" Server error occurred, attempting reconnect..."),await n();return}C&&await n();}if(o==="open")if(e.user?.id){let u=jidNormalizedUser(e.user.id).split("@")[0],x=e.user.name||e.user.verifiedName;a.spinner.success(` Connected as ${cristal(x||u)}`);}else a.spinner.success(" Connected!");a.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:r})=>{t.status="syncing",t.syncProgress=r,a.spinner.start(" Syncing messages history..."),r&&a.spinner.update(` Syncing messages history ${r+"%"}`),r==100&&(a.spinner.success(" Syncing messages history completed!"),t.syncCompleted=true),a.events.emit("connection",t);});}};c();c();var $t={text:"text",conversation:"text",imageMessage:"image",contactMessage:"contact",locationMessage:"location",documentMessage:"document",audioMessage:"audio",videoMessage:"video",protocolMessage:"protocol",contactsArrayMessage:"contacts",highlyStructuredMessage:"highlyStructured",sendPaymentMessage:"sendPayment",liveLocationMessage:"location",requestPaymentMessage:"requestPayment",groupStatusMentionMessage:"groupStatusMention",statusMentionMessage:"statusMention",albumMessage:"album",declinePaymentRequestMessage:"declinePaymentRequest",cancelPaymentRequestMessage:"cancelPaymentRequest",templateMessage:"template",stickerMessage:"sticker",groupInviteMessage:"groupInvite",templateButtonReplyMessage:"buttons",productMessage:"product",deviceSentMessage:"deviceSent",listMessage:"lists",viewOnceMessage:"viewOnce",orderMessage:"order",listResponseMessage:"lists",ephemeralMessage:"ephemeral",invoiceMessage:"invoice",buttonsMessage:"buttons",buttonsResponseMessage:"buttons",paymentInviteMessage:"paymentInvite",interactiveMessage:"interactive",reactionMessage:"reaction",stickerSyncRmrMessage:"sticker",questionMessage:"question",nativeFlowResponseMessage:"lists",interactiveResponseMessage:"interactiveResponse",pollCreationMessage:"pollCreation",pollCreationMessageKey:"pollUpdate",pollUpdateMessage:"pollUpdate",keepInChatMessage:"keepInChat",documentWithCaptionMessage:"document",requestPhoneNumberMessage:"requestPhoneNumber",viewOnceMessageV2:"viewOnce",encReactionMessage:"reaction",editedMessage:"text",viewOnceMessageV2Extension:"viewOnce",pollCreationMessageV2:"pollCreation",scheduledCallCreationMessage:"scheduledCallCreation",groupMentionedMessage:"groupMentioned",pinInChatMessage:"pinInChat",pollCreationMessageV3:"pollCreation",scheduledCallEditMessage:"scheduledCallEdit",ptvMessage:"ptv",botInvokeMessage:"botInvoke",callLogMesssage:"callLog",encCommentMessage:"encComment",bcallMessage:"bcall",lottieStickerMessage:"lottieSticker",eventMessage:"event",commentMessage:"comment",newsletterAdminInviteMessage:"text",extendedTextMessageWithParentKey:"text",extendedTextMessage:"text",placeholderMessage:"placeholder",encEventUpdateMessage:"encEventUpdate"},it={whatsapp:"0@s.whatsapp.net",meta:"13135550002@s.whatsapp.net",chatgpt:"18002428478@s.whatsapp.net",copilot:"18772241042@s.whatsapp.net",instagram:"447723442971@s.whatsapp.net",tiktok:"6285574670498@s.whatsapp.net"};c();var Ie=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 Pe=class{constructor(e){this.client=e;this.limiter=new Ie(e),this.initialize();}limiter;maxReplies=3;async initialize(){let e=a.get("socket");if(!e?.ev){console.warn("\u26A0\uFE0F [Messages] Socket or socket.ev is not available during initialization");return}e.ev.on("messages.upsert",async({messages:t,type:n})=>{try{if(n!=="notify"&&n!=="append")return;for(let i of t)try{let r=await this.parse(i);r&&(E.add(async()=>this.client.middleware.run({messages:r})),E.add(async()=>this.client.plugins.execute(this.client,{messages:r})),a.set("message",r),a.events.emit("messages",r),this.client.options.autoRead&&E.add(async()=>e.readMessages([r.message().key])));}catch{}}catch{}});}async parse(e,t){if(e?.category==="peer"||!e?.message||!e?.key?.id||e?.messageStubType||e?.messageStubParameters?.length||e.message?.protocolMessage?.peerDataOperationRequestResponseMessage)return;let n=e,i=a.get("socket"),r={},o=be(e.message),p=o.chain.at(-1),l=o.leaf;if(l?.message&&(o=be(l.message),p=o.chain.at(-1),l=o.leaf),r.uniqueId=null,r.channelId=null,r.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,r.chatType=$t[p],!r.chatType)return;r.receiverLid=jidNormalizedUser(i?.user?.lid||""),r.receiverId=jidNormalizedUser(i?.user?.id||""),r.receiverName=Y(i?.user?.name||i?.user?.verifiedName),r.roomId=jidNormalizedUser(e?.key?.remoteJid);let u=l?.type===0,x=l?.type===1,C=l?.type===2,M=r.roomId?.includes("@newsletter"),P=!!e?.message?.questionMessage,W=e?.key?.fromMe||false;if(W&&this.client.options.ignoreMe&&t!=="replied")return;let K=l?.key?.id;if(u||x||C){let S=await this.client.db("messages").query(r.roomId).where("key.id","=",K).first();if(!S)return;e=S,o=be(e.message),p=o.chain.at(-1),l=o.leaf;}if(r.roomName=await this.client.getRoomName(r.roomId),r.senderLid=jidNormalizedUser(e?.key?.participant||e?.key?.remoteJid)||null,r.senderId=jidNormalizedUser(e?.key?.participantAlt||e?.key?.remoteJidAlt)||null,r.senderName=Y(e?.pushName||e?.verifiedBizName),r.senderDevice=getDevice(r.chatId||""),r.channelId=te([r.roomId,r.senderId]),r.uniqueId=te([r.channelId,r.chatId]),r.timestamp=Number(e?.messageTimestamp)*1e3,M){let S=await i.newsletterMetadata("jid",r.roomId);r.roomName=v(S.thread_metadata.name)?.text,r.senderId=null,r.senderLid=null;}W&&(r.senderLid=jidNormalizedUser(i.user.lid),r.senderId=r.receiverId,r.senderName=r.receiverName),r.text=l?.text||l?.caption||l?.name||l?.displayName||l?.conversation||l?.contentText||l?.selectedDisplayText||l||null,l?.name=="menu_options"&&(r.text=Ke(l?.paramsJson)?.id),r.text=Y(r.text),r.mentions=St(r.text),r.links=Rt(r.text||""),r.isBot=r.chatId.startsWith("BAE5")||r.chatId.startsWith("3EB0")||r.chatId.startsWith("Z4D3FC"),r.isFromMe=W;let H=R.castArray(this.client.options?.prefix);if(r.isPrefix=!!H.find(S=>r.text?.startsWith(S)),r.isTagMe=r.mentions?.includes(r.receiverId.split("@")[0])||r.mentions?.includes(r.receiverLid.split("@")[0]),r.isStatusMention=!!e?.message?.statusMentionMessage,r.isGroupStatusMention=!!e?.message?.groupStatusMentionMessage,r.isHideTags=false,R.isEmpty(r.text)&&l?.contextInfo?.mentionedJid?.length&&(r.isHideTags=true),r.isSpam=await this.limiter.isSpam(r.channelId),r.isPrefix&&(r.text=r.text.replace(new RegExp(`^${R.escapeRegExp(H.find(S=>r.text?.startsWith(S))||"")}`),"")),r.isGroup=r.roomId?.includes("@g.us"),r.isNewsletter=M,r.isQuestion=P,r.isStory=r.roomId?.includes("@broadcast"),!r.isGroup&&!r.roomName&&(r.roomName=r.senderName),r.isViewOnce=false,r.isEdited=!!ge(fe(o),"editedMessage"),r.isDeleted=u,r.isPinned=x,r.isUnPinned=C,r.isBroadcast=!!e?.broadcast,r.isEphemeral=!!ge(fe(l?.contextInfo),"ephemeralSettingTimestamp"),r.isForwarded=!!ge(fe(l?.contextInfo),"forwardingScore"),r.citation=null,this.client.options.citation){r.citation=r.citation||{};let S=this.client.options.citation;for(let _ of Object.keys(S)){let se=S[_];r.citation[_]=async()=>{let ae=await se(),X=[q(r.roomId),q(r.senderLid),q(r.senderId)];return !!R.intersection(X,ae).length};}}r.chatType!=="text"&&(r.media={...Ct(l),buffer:()=>downloadMediaMessage(e,"buffer",{}),stream:()=>downloadMediaMessage(e,"stream",{})}),r.isStatusMention&&(r.chatType="statusMention"),r.isGroupStatusMention&&(r.chatType="groupStatusMention"),r.message=()=>n,r.replied=null;let T=l?.contextInfo?.quotedMessage,O=ge(fe(T),"viewOnce"),G=l?.contextInfo?.stanzaId;if(T&&this.maxReplies){this.maxReplies--;let S=await this.client.db("messages").getByIndex("messages","key.id",G),_;O?_={...S[0],message:T}:_=S[0],r.replied=await this.parse(_,"replied"),r.replied&&(r.replied.isViewOnce=true),this.maxReplies=3;}return t!="replied"&&this.client.logs.message(r),r.injection=ee.getAll(),r}};var Ee=class{constructor(e){this.client=e;this.connection=new Ce(e),this.messages=new Pe(e),this.calls=new Te(e),this.initialize();}connection;messages;calls;async initialize(){let e=a.get("socket");e.ev.on("groups.update",async([t])=>{E.add(async()=>{let n=await e.groupMetadata(t.id);N.set(t.id,n);});}),e.ev.on("group-participants.update",async t=>{E.add(async()=>{let n=await e.groupMetadata(t.id);N.set(t.id,n);});}),e?.ev.on("messaging-history.set",async t=>{let{chats:n,contacts:i,messages:r}=t;E.add(async()=>{await this.client.db("chats").batchUpsert("chats",n,"id");}),E.add(async()=>{await this.client.db("contacts").batchUpsert("contacts",i,"id");}),E.add(async()=>{await this.client.db("messages").batchUpsert("messages",r,"key.id");});}),e?.ev.on("messages.upsert",async({messages:t})=>{E.add(async()=>{await this.client.db("messages").batchUpsert("messages",t,"key.id");});}),e?.ev.on("chats.upsert",async t=>{E.add(async()=>{await this.client.db("chats").batchUpsert("chats",t,"id");});}),e?.ev.on("contacts.upsert",async t=>{E.add(async()=>{await this.client.db("contacts").batchUpsert("contacts",t,"id");});}),await this.client.db("messages").createIndex("messages","key.remoteJid"),await this.client.db("messages").createIndex("messages","key.id"),await this.client.db("chats").createIndex("chats","id"),await this.client.db("contacts").createIndex("contacts","id");}};c();c();c();var An=m.object({type:m.literal("quick_reply"),text:m.string()}),Pn=m.object({type:m.literal("cta_url"),url:m.url(),text:m.string()}),En=m.object({type:m.literal("cta_copy"),copy:m.string(),text:m.string()}),Rn=m.object({type:m.literal("cta_call"),text:m.string(),phoneNumber:m.string()}),Bn=m.object({type:m.literal("single_select"),text:m.string(),section:m.object({title:m.string(),highlight_label:m.string().optional(),rows:m.object({id:m.string(),title:m.string(),header:m.string().optional(),description:m.string().optional()}).array()}).array()}),Fn=m.object({type:m.literal("interactive"),footer:m.string().optional(),data:m.union([An,Pn,En,Rn,Bn]).array()}),On=m.object({type:m.literal("simple"),footer:m.string().optional(),data:m.object({id:m.string(),text:m.string()}).array()}),Dt=m.union([On,Fn]);c();var $n=z$1.object({maxMessages:z$1.number().default(20),durationMs:z$1.number().default(1e4)}).optional(),Nn=z$1.record(z$1.string(),z$1.function({output:z$1.promise(z$1.array(z$1.number()))})).optional(),Dn=z$1.object({provider:z$1.enum(["whatsapp","meta","chatgpt","copilot","instagram","tiktok"]).or(z$1.number())}).optional(),ot=z$1.enum(["default","rounded","circle","oval"]).default("default"),Wn=z$1.object({packageName:z$1.string().optional(),authorName:z$1.string().optional(),quality:z$1.number().optional(),shape:ot.optional()}).optional(),_n=z$1.object({enabled:z$1.boolean().default(false).optional(),intervalMs:z$1.number().default(3600*1e3).optional(),maxAgeMs:z$1.number().default(1440*60*1e3).optional(),scopes:z$1.array(z$1.string()).default(["messages"]).optional()}).optional(),Wt=z$1.object({session:z$1.string().default("zaileys").optional(),prefix:z$1.union([z$1.string(),z$1.array(z$1.string())]).optional(),ignoreMe:z$1.boolean().default(true).optional(),showLogs:z$1.boolean().default(true).optional(),fancyLogs:z$1.boolean().default(false).optional(),syncFullHistory:z$1.boolean().default(true).optional(),disableFFmpeg:z$1.boolean().default(false).optional(),autoMarkAI:z$1.boolean().default(true).optional(),autoMentions:z$1.boolean().default(true).optional(),autoOnline:z$1.boolean().default(true).optional(),autoRead:z$1.boolean().default(true).optional(),autoPresence:z$1.boolean().default(true).optional(),autoRejectCall:z$1.boolean().default(true).optional(),autoCleanUp:_n,limiter:$n,citation:Nn,fakeReply:Dn,sticker:Wn}),jn=z$1.object({authType:z$1.literal("pairing"),phoneNumber:z$1.number()}),Ln=z$1.object({authType:z$1.literal("qr")}),_t=z$1.union([jn.extend(Wt.shape),Ln.extend(Wt.shape)]),Ds=z$1.enum(["connection","messages","calls"]);var ye=m.url().or(m.base64()).or(m.instanceof(Buffer)),jt=m.object({text:m.string()}).passthrough(),zn=m.object({image:ye,caption:m.string().optional()}).passthrough(),Un=m.object({audio:ye,caption:m.string().optional(),ptt:m.boolean().optional()}).passthrough(),qn=m.object({video:ye,caption:m.string().optional(),ptv:m.boolean().optional()}).passthrough(),Vn=m.object({sticker:ye,shape:ot.optional(),caption:m.string().optional()}).passthrough(),Gn=m.object({document:ye,caption:m.string().optional(),fileName:m.string().optional()}).passthrough(),Jn=m.object({location:m.object({latitude:m.number(),longitude:m.number(),url:m.url().optional(),title:m.string().optional(),footer:m.string().optional()}).optional()}).passthrough(),Kn=m.object({contacts:m.object({title:m.string().optional(),contacts:m.object({fullname:m.string(),phoneNumber:m.number(),organization:m.string().optional()}).array()})}).passthrough(),Hn=m.object({poll:m.object({name:m.string(),answers:m.string().array(),isMultiple:m.boolean().default(false).optional()})}),Lt=m.object({replied:m.custom().optional(),isForwardedMany:m.boolean().optional(),isViewOnce:m.boolean().optional(),banner:m.custom().optional(),buttons:Dt.optional()});m.enum(["forward","button","edit","delete"]);var Qn=m.union([jt,zn,Un,qn,Vn,Gn,Jn,Kn,Hn]),zt=m.string().or(m.intersection(Qn,Lt.omit({buttons:true}))),Ut=m.intersection(jt,Lt.omit({banner:true}));c();var Re=class{toNativeSimple(e){return e.map(({id:t,text:n})=>({name:"quick_reply",buttonParamsJson:JSON.stringify({display_text:n,id:t})}))}toNativeInteractive(e){let t={quick_reply:n=>({display_text:n.text,id:n.id}),cta_url:n=>({display_text:n.text,url:n.url,merchant_url:n.url}),cta_copy:n=>({display_text:n.text,id:n.id,copy_code:n.copy}),cta_call:n=>({display_text:n.text,phone_number:n.phoneNumber}),single_select:n=>({title:n.text,sections:n.section})};return e.map(n=>({name:n.type,buttonParamsJson:JSON.stringify(t[n.type](n))}))}build(e){let t=v(e).buttons,n=t?.data||[],r=t?.type=="simple"?this.toNativeSimple(n):this.toNativeInteractive(n);return {body:{text:v(e).text},footer:t.footer?{text:t.footer}:void 0,nativeFlowMessage:{buttons:r}}}async send(e,t,n){let i=a.get("socket"),r=i?.authState?.creds?.me?.id||i?.user?.id,o=this.build(t),p=generateWAMessageFromContent(e,{interactiveMessage:o},{userJid:r,messageId:generateMessageIDV2(r),...n});return await i.relayMessage(e,p.message,{messageId:p.key.id,...n,additionalNodes:[{tag:"biz",attrs:{},content:[{tag:"interactive",attrs:{type:"native_flow",v:"1"},content:[{tag:"native_flow",attrs:{v:"9",name:"mixed"}}]}]}]}),i.config?.emitOwnEvents&&!isJidGroup(e)&&process.nextTick(()=>i.upsertMessage?.(p,"append")),p}};var Be=class{constructor(e){this.client=e;}async signal(e,t,n,i){n!="delete"&&(n=="button"?t=de(Ut,t):t=de(zt,t));let r=a.get("socket"),o={},p={},l=R.isString(t),u=this.client.options?.fakeReply?.provider,x=this.client.options?.autoMentions,C=this.client.options?.autoPresence,M=R.has(t,"replied"),P=R.has(t,"banner"),W=R.has(t,"isViewOnce"),K=n=="button",H=R.has(t,"image"),T=R.has(t,"video"),O=R.has(t,"audio"),G=R.has(t,"sticker"),S=R.has(t,"document"),_=R.has(t,"location"),se=R.has(t,"contacts"),ae=R.has(t,"poll"),X=H||T||O||G||S,Q=l?t:He([t],["text","caption"]);if(C&&(O?await r.sendPresenceUpdate("recording",e):await r.sendPresenceUpdate("composing",e)),x&&(o={...o,mentions:Ge(Q),contextInfo:{mentionedJid:Ge(Q)}}),M&&(p.quoted=v(t).replied,u&&(p.quoted.key.remoteJid=it[u],p.quoted.key.participant=it[u])),P&&(o={...o,contextInfo:{externalAdReply:v(t).banner}},o.contextInfo.externalAdReply.mediaType=1),W&&(o={...o,viewOnce:v(t)?.isViewOnce}),Q&&(o={...o,text:Q,caption:Q},X&&delete v(o).text),X){let A=He([t],["image","video","audio","sticker","document"]);if(H&&(o={...o,image:await $.image(A).toJpeg(),jpegThumbnail:await $.thumbnail(A).get()}),T){let j=v(t)?.ptv;o={...o,video:await $.video(A).toMp4(),ptv:j,jpegThumbnail:await $.thumbnail(A).get()};}if(O){let j=v(t)?.ptt;o={...o,audio:await $.audio(A).toOpus(),ptt:j,mimetype:j?"audio/ogg; codecs=opus":"audio/mpeg"};}if(G){let j=v(t)?.shape;o={...o,sticker:await $.sticker(A,{...this.client.options?.sticker,shape:j}).create()};}if(S){let j=await $.document(A).create();o={...o,fileName:v(t).fileName,...j};}}if(_){let A=v(t).location;o={...o,location:{degreesLatitude:A.latitude,degreesLongitude:A.longitude,url:A.url,address:A.footer,name:A.title}};}if(se){let A=v(t)?.contacts,j=A?.contacts.map(ce=>{let Gt=["BEGIN:VCARD","VERSION:3.0",`FN:${ce.fullname}`,`ORG:${ce.organization||""}`,`TEL;type=CELL;type=VOICE;waid=${ce.phoneNumber}:${ce.phoneNumber}`,"END:VCARD"].join(`
|
|
5
|
-
`);return {displayName:ce.fullname,vcard:Gt}});o={...o,contacts:{displayName:A?.title,contacts:j}};}if(ae){let A=v(t)?.poll;o={...o,poll:{name:A.name,values:A.answers,selectableCount:A.isMultiple?1:0,toAnnouncementGroup:true}};}return n=="forward"&&(o={...o,contextInfo:{...v(o).contextInfo,isForwarded:true,forwardingScore:v(t).isForwardedMany?9999:1}}),n=="edit"&&(o={...o,edit:i?.key},await r.sendPresenceUpdate("paused",e)),n=="delete"&&(o={...o,delete:i?.key},await r.sendPresenceUpdate("paused",e)),K?await new Re().send(e,t,p):await r.sendMessage(e,v(o),p)}async send(e,t){return await this.signal(e,t)}async forward(e,t){return await this.signal(e,t,"forward")}async button(e,t){return await this.signal(e,t,"button")}async edit(e,t){return await this.signal(e.key.remoteJid,t,"edit",e)}async delete(e){return R.isArray(e)?Promise.all(e.map(t=>this.signal(t.key.remoteJid,{},"delete",t))):await this.signal(e.key.remoteJid,{},"delete",e)}async presence(e,t){let n=a.get("socket"),i={typing:"composing",recording:"recording",online:"available",offline:"unavailable",paused:"paused"};return await n.sendPresenceUpdate(i[t],e)}async reaction(e,t){return await a.get("socket").sendMessage(e.key.remoteJid,{react:{text:t,key:e?.key}})}async memberLabel(e,t){return await a.get("socket").relayMessage(e,{protocolMessage:{type:30,memberLabel:{label:t,labelTimestamp:Date.now()}}},{})}};c();var st=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").communityCreate(e,t)}async createGroup(e,t,n){return await a.get("socket").communityCreateGroup(e,t,n)}async leave(e){return await a.get("socket").communityLeave(e)}async metadata(e){return await a.get("socket").communityMetadata(e)}async update(e,t,n){let i=a.get("socket");switch(t){case "subject":return await i.communityUpdateSubject(e,n);case "description":return await i.communityUpdateDescription(e,n)}}async group(e,t,n){let i=a.get("socket");switch(t){case "link":if(!n)throw "Group JID is required for linking";return await i.communityLinkGroup(e,n);case "unlink":if(!n)throw "Group JID is required for unlinking";return await i.communityUnlinkGroup(e,n);case "linked":return await i.communityFetchLinkedGroups(e)}}async participants(e,t,n,i){let r=a.get("socket");switch(t){case "list":return await r.communityRequestParticipantsList(e);case "request-update":return await r.communityRequestParticipantsUpdate(e,i,v(n));case "update":if(!n||!i)throw "Action and participants are required for update";return await r.communityParticipantsUpdate(e,i,v(n));case "all":return await r.communityFetchAllParticipating()}}async invite(e,t,...n){let i=a.get("socket");switch(t){case "code":return await i.communityInviteCode(e);case "revoke":return await i.communityRevokeInvite(e);case "accept":return await i.communityAcceptInvite(e);case "info":return await i.communityGetInviteInfo(e);case "revokeV4":return await i.communityRevokeInviteV4(e,n[0]);case "acceptV4":return await i.communityAcceptInviteV4(e,n[0])}}async settings(e,t,n){let i=a.get("socket");switch(t){case "ephemeral":return await i.communityToggleEphemeral(e,n);case "update":return await i.communitySettingUpdate(e,n);case "memberAdd":return await i.communityMemberAddMode(e,n);case "approval":return await i.communityJoinApprovalMode(e,n)}}},Fe=class{constructor(e){this.mlient=e;this.community=new st(e);}community};c();var at=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").groupCreate(e,t)}async participant(e,t,n){return await a.get("socket").groupParticipantsUpdate(e,t,n)}async profile(e,t,n){let i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "subject":if(!r)return await i.groupUpdateSubject(e,t);case "description":if(!r)return await i.groupUpdateDescription(e,t);case "picture":return await i.updateProfilePicture(e,await $.toBuffer(t))}}async setting(e,t){let n=a.get("socket");switch(t){case "open":return await n.groupSettingUpdate(e,"not_announcement");case "close":return await n.groupSettingUpdate(e,"announcement");case "locked":return await n.groupSettingUpdate(e,t);case "unlocked":return await n.groupSettingUpdate(e,t);case "all_member_add":return await n.groupMemberAddMode(e,t);case "admin_add":return await n.groupMemberAddMode(e,t)}}async leave(e){return await a.get("socket").groupLeave(e)}async inviteCode(e,t){let n=a.get("socket");switch(t){case "code":return await n.groupInviteCode(e);case "revoke":return await n.groupRevokeInvite(e);case "accept":return await n.groupAcceptInvite(e);case "info":return await n.groupGetInviteInfo(e)}}async metadata(e){let t=a.get("socket"),n=N.get(e);if(n)return n;let i=await t.groupMetadata(e);return i&&N.set(e,i),i}async requestJoin(e,t,n){let i=a.get("socket");switch(n){case "approve":return await i.groupRequestParticipantsUpdate(e,t,n);case "reject":return await i.groupRequestParticipantsUpdate(e,t,n)}}async requestJoinList(e){return await a.get("socket").groupRequestParticipantsList(e)}async fetchAllGroups(){return await a.get("socket").groupFetchAllParticipating()}async ephemeral(e,t){let n=a.get("socket"),i={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await n.groupToggleEphemeral(e,i[t])}},Oe=class{constructor(e){this.glient=e;this.group=new at(e);}group};c();var ct=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").newsletterCreate(e,t)}async action(e,t){let n=a.get("socket");switch(t){case "follow":return await n.newsletterFollow(e);case "unfollow":return await n.newsletterUnfollow(e);case "mute":return await n.newsletterMute(e);case "unmute":return await n.newsletterUnmute(e);}}async update(e,t,n){let i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "name":if(!r)return await i.newsletterUpdateName(e,t);case "description":if(!r)return await i.newsletterUpdateDescription(e,t);case "picture":return await i.newsletterUpdatePicture(e,await $.toBuffer(t))}}async metadata(e,t){return await a.get("socket").newsletterMetadata(t,e)}async subscribers(e){return await a.get("socket").newsletterSubscribers(e)}async reaction(e,t,n){return await a.get("socket").newsletterReactMessage(e,t,n)}async fetchMessages(e,t,n,i){let r=a.get("socket"),o=n.getTime()/1e3,p=i.getTime()/1e3;return await r.newsletterFetchMessages(e,t,o,p)}async adminCount(e){return await a.get("socket").newsletterAdminCount(e)}async changeOwner(e,t){return await a.get("socket").newsletterChangeOwner(e,t)}async demote(e,t){return await a.get("socket").newsletterDemote(e,t)}async delete(e){return await a.get("socket").newsletterDelete(e)}async removePicture(e){return await a.get("socket").newsletterRemovePicture(e)}},$e=class{constructor(e){this.nlient=e;this.newsletter=new ct(e);}newsletter};c();var pt=class{constructor(e){this.client=e;}async block(e){return await a.get("socket").updateBlockStatus(e,"block")}async unblock(e){return await a.get("socket").updateBlockStatus(e,"unblock")}async lastSeen(e){return await a.get("socket").updateLastSeenPrivacy(e)}async online(e){return await a.get("socket").updateOnlinePrivacy(e)}async picture(e){return await a.get("socket").updateProfilePicturePrivacy(e)}async status(e){return await a.get("socket").updateStatusPrivacy(e)}async readReceipt(e){return await a.get("socket").updateReadReceiptsPrivacy(e)}async groupsAdd(e){return await a.get("socket").updateGroupsAddPrivacy(e)}async ephemeral(e){let t=a.get("socket"),n={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await t.updateDefaultDisappearingMode(n[e])}async blocklist(){return await a.get("socket").fetchBlocklist()}async getSettings(){return await a.get("socket").fetchPrivacySettings(true)}},Ne=class{constructor(e){this.plient=e;this.privacy=new pt(e);}privacy};c();c();var Aa=m.object({status:m.enum(["connecting","open","close","reload","syncing"]),authType:m.enum(["pairing","qr"]),authTimeout:m.number().optional(),syncProgress:m.number().optional(),syncCompleted:m.boolean().default(false).optional(),qr:m.string().optional(),code:m.string().optional()});c();var tr=m.enum(["unknown","android","ios","desktop","web"]),nr=m.enum(["text","album","image","contact","location","document","audio","video","protocol","contacts","highlyStructured","sendPayment","requestPayment","groupStatusMention","statusMention","declinePaymentRequest","cancelPaymentRequest","template","sticker","groupInvite","product","deviceSent","lists","viewOnce","order","ephemeral","invoice","buttons","paymentInvite","interactive","reaction","sticker","interactiveResponse","pollCreation","pollUpdate","keepInChat","document","requestPhoneNumber","viewOnce","reaction","text","viewOnce","pollCreation","scheduledCallCreation","groupMentioned","pinInChat","pollCreation","scheduledCallEdit","ptv","botInvoke","callLog","encComment","bcall","lottieSticker","event","comment","placeholder","encEventUpdate"]),qt=m.object({channelId:m.string(),uniqueId:m.string(),chatId:m.string(),chatType:nr,receiverLid:m.string(),receiverId:m.string(),receiverName:m.string(),roomId:m.string(),roomName:m.string(),senderLid:m.string(),senderId:m.string(),senderName:m.string(),senderDevice:tr,timestamp:m.number(),text:m.string().nullable(),mentions:m.string().array(),links:m.string().array(),isBot:m.boolean(),isFromMe:m.boolean(),isPrefix:m.boolean(),isSpam:m.boolean(),isTagMe:m.boolean(),isStatusMention:m.boolean(),isGroupStatusMention:m.boolean(),isHideTags:m.boolean(),isGroup:m.boolean(),isNewsletter:m.boolean(),isQuestion:m.boolean(),isStory:m.boolean(),isViewOnce:m.boolean(),isEdited:m.boolean(),isDeleted:m.boolean(),isPinned:m.boolean(),isUnPinned:m.boolean(),isBroadcast:m.boolean(),isEphemeral:m.boolean(),isForwarded:m.boolean(),citation:m.record(m.string(),m.function({output:m.promise(m.boolean())})).nullable(),media:m.object({buffer:m.function({output:m.promise(m.instanceof(Buffer))}),stream:m.function({output:m.promise(m.instanceof(er))})}).loose().nullable(),injection:m.record(m.string(),m.any()).default({}),message:m.function({input:[],output:m.custom()})}),Fa=qt.extend({replied:qt.nullable()});c();var Da=m.object({callId:m.string(),callerId:m.string(),roomId:m.string(),roomName:m.string(),date:m.date(),offline:m.boolean(),status:m.enum(["accept","offer","reject","ringing","terminate","timeout"]),isVideo:m.boolean(),isGroup:m.boolean()});c();var De=class{constructor(e){this.client=e;this.initialize();}logsInitialized=false;logsDisplayed=false;isReady=false;getRoomColor(e){return e?.isNewsletter?"blue":e?.isGroup?e?.isGroup?"lime":"dimgray":"orange"}initialize(){if(!this.client.options.showLogs||this.logsInitialized)return;this.logsInitialized=true;let e=async({status:t})=>{t==="open"&&(this.isReady=true,this.logsDisplayed||setTimeout(()=>{this.displayIndicator();},500));};a.events.on("connection",e);}displayIndicator(){this.logsDisplayed||(this.logsDisplayed=true,console.log(),a.spinner.info("Logs Indicator:"),console.log(h(" \u2022","orange")+" Private Chat"),console.log(h(" \u2022","lime")+" Group Chat"),console.log(h(" \u2022","blue")+" Newsletter Chat"),console.log());}message(e){if(!this.isReady)return;let t=v(this.getRoomColor(e)),n=e?.text?.toLowerCase()?.match("zaileys"),i=this.client.options?.fancyLogs,r=h(`[${new Date(e?.timestamp).toTimeString().split(" ")[0]}]`,"dimgray"),o=h(`${e?.roomName}`,t),p=e?.text?.slice(0,300)||"",l=p?.length>=300?"...":"";if(i){let u=h("\u2501".repeat(50),"dimgray"),x=h("\u2192","dimgray"),C=h("\u2022",t),M=`
|
|
1
|
+
import*as H from'path';import H__default from'path';import {pathToFileURL}from'url';import be from'fluent-ffmpeg';import ue from'fs/promises';import {tmpdir}from'os';import on,{initAuthCreds,proto,makeCacheableSignalKeyStore,Browsers,extractMessageContent,getContentType,URL_REGEX,BufferJSON,generateWAMessageFromContent,generateMessageIDV2,isJidGroup,delay,DisconnectReason,jidNormalizedUser,getDevice,downloadMediaMessage}from'baileys';import {createJetDB}from'jetdb';import {createSpinner}from'nanospinner';import le from'node-cache';import Zt from'pino';import {EventEmitter}from'events';import {Mutex}from'async-mutex';import {fileTypeFromBuffer}from'file-type';import {Jimp}from'jimp';import gn from'node-webpmux';import R from'lodash';import It from'unorm';import {fromError}from'zod-validation-error';import Et,{cristal}from'gradient-string';import Mn from'figlet';import vn from'qrcode-terminal';import {RateLimiterMemory}from'rate-limiter-flexible';import m,{z as z$1}from'zod';import er from'stream';import*as ee from'fs';var Jt=Object.defineProperty;var Ht=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+s+'" is not supported')});var lt=(s,e)=>()=>(s&&(e=s(s=0)),e);var Kt=(s,e)=>{for(var t in e)Jt(s,t,{get:e[t],enumerable:true});};var c=lt(()=>{});var Mt={};Kt(Mt,{BufferConverter:()=>I,FFMPEG_CONSTANTS:()=>M,FFmpegProcessor:()=>L,FileManager:()=>w,MimeValidator:()=>B,initializeFFmpeg:()=>Ve});var M,Ve,w,I,B,L,J=lt(()=>{c();M={OPUS:{CODEC:"libopus",CHANNELS:1,FREQUENCY:48e3,BITRATE:"48k",FORMAT:"ogg"},THUMBNAIL:{SIZE:100,QUALITY:50,TIMESTAMP:"10%"},STICKER:{SIZE:512,MAX_DURATION:10,FPS:15,DEFAULT_QUALITY:80,COMPRESSION_LEVEL:6},MIME:{AUDIO:"audio/",VIDEO:"video/",IMAGE:"image/",GIF:"image/gif",MP4:"video/mp4"}},Ve=async(s=false)=>{if(!s)try{let e=(await import('@ffmpeg-installer/ffmpeg')).default,t=(await import('@ffprobe-installer/ffprobe')).default;be.setFfmpegPath(e.path),be.setFfprobePath(t.path);}catch{}},w=class{static generateUniqueId(){return `${Date.now()}_${Math.random().toString(36).slice(2,11)}`}static createTempPath(e,t){return H__default.join(tmpdir(),`${e}_${this.generateUniqueId()}.${t}`)}static async cleanup(e){await Promise.allSettled(e.map(t=>ue.unlink(t)));}static async safeReadFile(e){try{return await ue.readFile(e)}catch{throw new Error(`Failed to read file: ${e}`)}}static async safeWriteFile(e,t){try{await ue.writeFile(e,t);}catch{throw new Error(`Failed to write file: ${e}`)}}},I=class{static async toBuffer(e){if(Buffer.isBuffer(e))return e;if(e instanceof ArrayBuffer)return Buffer.from(e);if(typeof e=="string")return this.fromString(e);throw new Error("Invalid input type: expected string, Buffer, or ArrayBuffer")}static async fromString(e){if(e.startsWith("http://")||e.startsWith("https://"))return this.fromUrl(e);try{if(await ue.stat(e).then(t=>t.isFile()).catch(()=>!1))return await ue.readFile(e)}catch{}return Buffer.from(e,"base64")}static async fromUrl(e){try{let t=await fetch(e);if(!t.ok)throw new Error(`HTTP ${t.status}: ${t.statusText}`);let n=await t.arrayBuffer();return Buffer.from(n)}catch(t){throw new Error(`Failed to fetch URL: ${t.message}`)}}static async getExtension(e){let{fileTypeFromBuffer:t}=await import('file-type'),n=await t(e);if(!n)return "tmp";let i=n.ext.toLowerCase();return ["wav","ogg","mp4","gif","jpg","webp","tmp","mp3","png"].includes(i)?i:"tmp"}},B=class{static validate(e,t){if(!e?.mime?.startsWith(t))throw new Error(`Invalid file type: expected ${t}*, got ${e?.mime||"unknown"}`)}static isMedia(e){return e.startsWith(M.MIME.IMAGE)||e.startsWith(M.MIME.VIDEO)}static isAnimated(e){return e===M.MIME.GIF||e.startsWith(M.MIME.VIDEO)}},L=class{static async process(e){return new Promise((t,n)=>{let i=be(e.input).output(e.output);for(let r=0;r<e.options.length;r++){let o=e.options[r];o.startsWith("-")&&r+1<e.options.length&&!e.options[r+1].startsWith("-")?(i.outputOptions(o,e.options[r+1]),r++):i.outputOptions(o);}i.on("end",async()=>{try{await e.onEnd(),t();}catch(r){n(r);}}).on("error",async r=>{try{await e.onError(r);}finally{n(r);}}).run();})}static async getDuration(e){return new Promise((t,n)=>{be.ffprobe(e,(i,r)=>{if(i)return n(i);t(r.format.duration||0);});})}};});c();c();c();c();var ut=s=>createJetDB(`${s}/auth/creds.json`,{BufferJSON:BufferJSON,cacheSize:100,flushMode:"sync",compression:"none",enableIndexing:false}),we=s=>createJetDB(`${s}/auth/keys.json`,{BufferJSON:BufferJSON,size:1024*1024,cacheSize:2e3,flushMode:"sync",compression:"none",enableIndexing:false,hotThreshold:5}),mt=(s,e)=>createJetDB(`.session/${s}/store/${e}.json`,{BufferJSON:BufferJSON,cacheSize:2e4,debounceMs:1e3,flushMode:"debounce",compression:"deflate",serialization:"json",enableIndexing:true,hotThreshold:2,size:5*1024*1024});c();c();var dt=new le({stdTTL:600,checkperiod:120,useClones:false}),N=new le({stdTTL:300,useClones:false}),ft=new le({stdTTL:300}),gt=new le({stdTTL:600,checkperiod:120,useClones:false,deleteOnExpire:true,maxKeys:100}),yt=new le;c();var ie=class{classInjection(e,t){let n=t.length;return new Proxy(e,{get(i,r,o){if(r in i){let l=Reflect.get(i,r,o);return typeof l=="function"?l.bind(i):l}for(let l=0;l<n;l++){let p=t[l];if(r in p){let u=Reflect.get(p,r,o);return typeof u=="function"?u.bind(p):u}}},set(i,r,o,l){if(r in i)return Reflect.set(i,r,o,l);for(let p=0;p<n;p++){let u=t[p];if(r in u)return Reflect.set(u,r,o,l)}return Reflect.set(i,r,o,l)},has(i,r){if(r in e)return true;for(let o=0;o<n;o++)if(r in t[o])return true;return false},ownKeys(){let i=[];for(let r of Reflect.ownKeys(e))i.push(r);for(let r=0;r<n;r++)for(let o of Reflect.ownKeys(t[r]))i.includes(o)||i.push(o);return i},getOwnPropertyDescriptor(i,r){let o=Object.getOwnPropertyDescriptor(e,r);if(o)return o;for(let l=0;l<n;l++)if(o=Object.getOwnPropertyDescriptor(t[l],r),o)return o}})}};var ze=class extends le{constructor(){return super({useClones:false}),new ie().classInjection(this,[dt])}spinner=createSpinner("",{color:"green"});logger=Zt({level:"silent",enabled:false});events=new EventEmitter},a=new ze;var ht=async s=>{a.spinner.start(" Initializing auth state...");let e=ut(s),t=we(s),n=await e.get("creds"),i=n||initAuthCreds();return n?a.spinner.success(" Auth credentials loaded successfully"):a.spinner.success(" Initialized new auth session"),{state:{creds:i,keys:{get:async(r,o)=>{let l={};return await Promise.all(o.map(async p=>{let u=`${r}:${p}`,k=await t.get(u);r==="app-state-sync-key"&&k&&(k=proto.Message.AppStateSyncKeyData.fromObject(k)),l[p]=k;})),l},set:async r=>{let o=[],l=[];for(let p in r)for(let u in r[p]){let k=r[p][u],S=`${p}:${u}`;k?o.push({key:S,value:k}):l.push(S);}o.length&&await t.batchSet(o),l.length&&await t.batchDelete(l),await t.flush();}}},saveCreds:async()=>{await e.set("creds",i),await e.flush();}}};c();c();var kt=(s,e)=>({logger:s.health.logger,printQRInTerminal:false,enableRecentMessageCache:true,emitOwnEvents:true,keepAliveIntervalMs:3e4,browser:Browsers.ubuntu("Chrome"),markOnlineOnConnect:s.options.autoOnline,syncFullHistory:s.options.syncFullHistory,msgRetryCounterCache:yt,mediaCache:ft,auth:{creds:e.creds,keys:makeCacheableSignalKeyStore(e.keys,a.logger)},cachedGroupMetadata:async t=>N.get(t),shouldIgnoreJid:()=>false,shouldSyncHistoryMessage:()=>s.options.syncFullHistory,patchMessageBeforeSending:t=>t,getMessage:async t=>{if(!t?.remoteJid)return proto.Message.fromObject({});let n=await s.db("messages").getByIndex("messages","key.id",t.id);return proto.Message.fromObject(n[0])}});var bt=async s=>{let e=`.session/${s.options.session}`;console.info=()=>{},console.warn=()=>{};let{state:t,saveCreds:n}=await ht(e),i=kt(s,t),r=on(i);r.ev.on("creds.update",n),a.set("socket",r);};c();c();c();var ke=class{constructor(e){this.client=e;}interval=null;start(){let e=this.client.options.autoCleanUp;e?.enabled&&(this.interval=setInterval(()=>{this.run();},e.intervalMs),this.run());}stop(){this.interval&&(clearInterval(this.interval),this.interval=null);}async run(){let e=this.client.options.autoCleanUp;if(!e?.enabled)return;let t=Date.now()-e.maxAgeMs;for(let n of e.scopes)try{let i=this.client.db(n),r=await i.query(n).where("timestamp","<",t).get();if(r.length>0){let o=r.map(l=>l.key?.id||l.id);await i.batchDelete(o),a.spinner.info(` [CleanUpManager] Cleaned up ${r.length} items from ${n}`);}}catch{}}};c();var qe=class{store=gt;mutex=new Mutex;async inject(e,t){let n=await this.mutex.acquire();try{this.store.set(e,t);}finally{n();}}async get(e){let t=await this.mutex.acquire();try{return this.store.get(e)}finally{t();}}getSync(e){return this.store.get(e)}getAll(){let e=this.store.keys();return this.store.mget(e)}async remove(e){let t=await this.mutex.acquire();try{return this.store.del(e)>0}finally{t();}}async clear(){let e=await this.mutex.acquire();try{this.store.flushAll();}finally{e();}}has(e){return this.store.has(e)}get size(){return this.store.getStats().keys}keys(){return this.store.keys()}},ne=new qe;c();J();c();J();var oe=class{static async toOpus(e){return this.convert(e,"opus")}static async toMp3(e){return this.convert(e,"mp3")}static async convert(e,t="opus"){let n=await I.toBuffer(e),i=await fileTypeFromBuffer(n);B.validate(i,M.MIME.AUDIO);let r=await I.getExtension(n),o=w.createTempPath("audio_in",r),l=t==="opus"?"ogg":"mp3",p=w.createTempPath("audio_out",l);await w.safeWriteFile(o,n);let u;try{let k=t==="opus"?["-vn","-c:a","libopus","-b:a","48k","-ac","1","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","opus"]:["-vn","-c:a","libmp3lame","-b:a","128k","-ac","2","-avoid_negative_ts","make_zero","-map_metadata","-1","-f","mp3"];return await L.process({input:o,output:p,options:k,onEnd:async()=>{u=await w.safeReadFile(p);},onError:async()=>{await w.cleanup([o,p]);}}),await w.cleanup([o,p]),u}catch(k){throw await w.cleanup([o,p]),new Error(`${t.toUpperCase()} conversion failed: ${k.message}`)}}};c();J();var U=class{static async toMp4(e){let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);B.validate(n,M.MIME.VIDEO);let i=await I.getExtension(t),r=w.createTempPath("video_in",i),o=w.createTempPath("video_out","mp4");await w.safeWriteFile(r,t);let l;try{let p=["-c:v","libx264","-preset","ultrafast","-crf","28","-c:a","aac","-b:a","128k","-movflags","+faststart","-pix_fmt","yuv420p","-f","mp4"];return await L.process({input:r,output:o,options:p,onEnd:async()=>{l=await w.safeReadFile(o);},onError:async()=>{await w.cleanup([r,o]);}}),await w.cleanup([r,o]),l}catch(p){throw await w.cleanup([r,o]),new Error(`Video re-encoding failed: ${p.message}`)}}static async thumbnail(e){let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);B.validate(n,M.MIME.VIDEO);let i=await I.getExtension(t),r=w.createTempPath("video",i),o=w.createTempPath("thumb","jpg");await w.safeWriteFile(r,t);let l;try{return await new Promise((p,u)=>{be(r).screenshots({timestamps:[M.THUMBNAIL.TIMESTAMP],filename:H__default.basename(o),folder:H__default.dirname(o),size:`${M.THUMBNAIL.SIZE}x${M.THUMBNAIL.SIZE}`}).on("end",async()=>{try{l=(await w.safeReadFile(o)).toString("base64"),p();}catch(k){u(k);}}).on("error",u);}),await w.cleanup([r,o]),l}catch(p){throw await w.cleanup([r,o]),new Error(`Thumbnail generation failed: ${p.message}`)}}static async duration(e){return L.getDuration(e)}};c();J();var z;try{z=Ht("sharp");}catch{z=null;}var W=class{static async thumbnail(e){let t=await fileTypeFromBuffer(e),n=M.THUMBNAIL.SIZE;if(z){let o=z(e).resize(n,n,{fit:"cover"});return t?.mime===M.MIME.GIF&&o.resize(n,n),(await o.jpeg({quality:M.THUMBNAIL.QUALITY}).toBuffer()).toString("base64")}let i=await Jimp.read(e);return i.cover({w:n,h:n}),t?.mime===M.MIME.GIF&&i.resize({w:n,h:n}),(await i.getBuffer("image/jpeg",{quality:M.THUMBNAIL.QUALITY})).toString("base64")}static async resize(e,t,n){if(z)return await z(e).resize(t,n,{fit:"cover"}).png().toBuffer();let i=await Jimp.read(e);return i.cover({w:t,h:n}),await i.getBuffer("image/png")}static async toJpeg(e){let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);if(!n||!n.mime.startsWith(M.MIME.IMAGE))throw new Error("Invalid image type");return n.mime==="image/webp"?z?await z(t).jpeg().toBuffer():await(await Jimp.read(t)).getBuffer("image/jpeg"):t}static async resizeForSticker(e,t,n="default"){let i=M.STICKER.SIZE;if(z&&n==="default")return await z(e).resize(i,i,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).webp({quality:t}).toBuffer();let r=await Jimp.read(e);if(r.contain({w:i,h:i}),n!=="default"){let S=new Jimp({width:i,height:i,color:0});for(let x=0;x<i;x++)for(let P=0;P<i;P++){let _=false,K=i/2,Q=i/2;switch(n){case "circle":{let T=P-K,$=x-Q;_=T*T+$*$<=K*K;break}case "rounded":{let T=i/10,$=P>=T&&P<i-T&&x>=0&&x<i,G=P>=0&&P<i&&x>=T&&x<i-T,C=false,O=[[T,T],[i-T,T],[T,i-T],[i-T,i-T]];for(let[ae,ce]of O){let te=P-ae,Y=x-ce;if(te*te+Y*Y<=T*T){C=true;break}}_=$||G||C;break}case "oval":{let T=i/2,$=i/3,G=(P-K)/T,C=(x-Q)/$;_=G*G+C*C<=1;break}}_&&S.setPixelColor(4294967295,P,x);}r.mask(S);}let o=w.createTempPath("sticker_img","png"),l=w.createTempPath("sticker_out","webp"),p=await r.getBuffer("image/png");await w.safeWriteFile(o,p);let{FFmpegProcessor:u}=await Promise.resolve().then(()=>(J(),Mt)),k;try{return await u.process({input:o,output:l,options:["-vf",`scale=${i}:${i}`,"-quality",String(t),"-f","webp"],onEnd:async()=>{k=await w.safeReadFile(l);},onError:async()=>{await w.cleanup([o,l]);}}),await w.cleanup([o,l]),k}catch(S){throw await w.cleanup([o,l]),new Error(`Sticker resize failed: ${S.message}`)}}};c();c();var re=s=>{let e;Array.isArray(s)?e=s.join("|"):typeof s=="string"?e=s:e=String(s);let t=2166136261,n=e.length;for(let i=0;i<n;i++)t^=e.charCodeAt(i),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return "Z4D3FC"+(t>>>0).toString(16).padStart(8,"0").toUpperCase()},St=(s="")=>{if(!s)return [];let e=new Set;for(let t of s.matchAll(/@(\d+)/g))e.add(t[1]);return R.toArray(e)},Ge=(s="")=>{if(!s)return [];let e=new Set;for(let t of s.matchAll(/@(\d+)/g))t[1].length<=15&&e.add(t[1]);return R.flatMap([...e],t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},Ai=s=>R.isEmpty(s)?[]:R.map([...s],e=>`${e}@s.whatsapp.net`),Ct=s=>R.omit(s,["url","contextInfo","fileSha256","fileEncSha256","mediaKey","directPath","waveform","thumbnail","jpegThumbnail","thumbnailEncSha256","thumbnailSha256","thumbnailDirectPath","firstFrameSidecar","streamingSidecar","scansSidecar","callKey","message","key","midQualityFileSha256","historySyncNotification","appStateSyncKeyShare","appStateSyncKeyRequest","initialSecurityNotificationSettingSync","appStateFatalExceptionNotification","disappearingMode","peerDataOperationRequestMessage","peerDataOperationRequestResponseMessage","botFeedbackMessage"]),Me=s=>{if(!s)return {leaf:void 0,chain:[]};let e=extractMessageContent(s)||s,t=[];for(;e&&typeof e=="object";){let n=getContentType(e);if(!n)break;t.push(n);let i=e[n];if(!i||typeof i!="object"){e=i;break}e=i;}return {leaf:e,chain:t}},q=s=>Number(s?.split("@")[0]);c();var v=s=>s,At=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(s){throw s}},Pt=async s=>{try{let e=`.session/${s}/auth/creds.json`;await ue.unlink(e);}catch(e){throw a.spinner.error(`Failed to remove auth creds for session "${s}"!`),e}},Z=(s="")=>{if(!s?.length)return null;let e=s.replace(/\u202E(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/\u202D(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/[\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/gu,"").replace(/[\u200B\u200C\u200D\uFEFF]/gu,"").replace(/[\u00AD\u034F\u115F\u1160\u17B4\u17B5\u180B-\u180E]/gu,"").replace(/[\u2060-\u2064\u206A-\u206F]/gu,"").replace(/[\u2800\uFFFC\uFFFD]/gu,"").replace(/[\uFE00-\uFE0F]/gu,"").split("").map(t=>It.nfkd(t)).join("").replace(/[\u0300-\u036F]/gu,"").replace(/[\u1AB0-\u1AFF]/gu,"").replace(/[\u1DC0-\u1DFF]/gu,"").replace(/[\u20D0-\u20FF]/gu,"").replace(/[\uFE20-\uFE2F]/gu,"").replace(/[\p{Cc}]/gu,"").replace(/[\p{Cf}]/gu,"").replace(/[\p{Co}]/gu,"").replace(/[\p{Cn}]/gu,"").replace(/[\p{Cs}]/gu,"").replace(/[\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]/gu," ").replace(/[\u2028\u2029]/gu," ").replace(/[\t\r\n\f\v]/g," ").split("").map(t=>It.nfkc(t)).join("").normalize("NFC").replace(/\s+/g," ").trim();return e.length?e:null};J();var xe=class{static async create(e,t){try{let n=await I.toBuffer(e),i=await fileTypeFromBuffer(n);if(!i)throw new Error("Unable to detect file type");let r=t?.quality||M.STICKER.DEFAULT_QUALITY,o=B.isAnimated(i.mime),l=t?.shape||"default",p=o?await this.processAnimated(n,i.mime,r):await W.resizeForSticker(n,r,l),u=this.createExifMetadata(t),k=new gn.Image;await k.load(p),k.exif=u;let S=await k.save(null);return Buffer.isBuffer(S)?S:Buffer.from(S)}catch(n){throw new Error(`Sticker creation failed: ${n.message||n}`)}}static createExifMetadata(e){let t={"sticker-pack-id":re(Date.now().toString()),"sticker-pack-name":e?.packageName||"Zaileys Library","sticker-pack-publisher":e?.authorName||"https://github.com/zeative/zaileys",emojis:["\u{1F913}"],"android-app-store-link":"https://play.google.com/store/apps/details?id=com.marsvard.stickermakerforwhatsapp","ios-app-store-link":"https://itunes.apple.com/app/sticker-maker-studio/id1443326857"},n=Buffer.from([73,73,42,0,8,0,0,0,1,0,65,87,7,0,0,0,0,0,22,0,0,0]),i=Buffer.from(JSON.stringify(t),"utf8"),r=Buffer.concat([n,i]);return r.writeUIntLE(i.length,14,4),r}static async processAnimated(e,t,n){let i=this.getExtension(t),r=w.createTempPath("sticker_in",i),o=w.createTempPath("sticker_out","webp");await w.safeWriteFile(r,e);let l=M.STICKER.MAX_DURATION;try{let P=await U.duration(r);l=v(Math.min(P,M.STICKER.MAX_DURATION));}catch{console.warn("Using default duration:",M.STICKER.MAX_DURATION);}let p=M.STICKER.SIZE,u=M.STICKER.FPS,k=`scale=${p}:${p}:force_original_aspect_ratio=increase,crop=${p}:${p},fps=${u},format=rgba`,S=Math.max(1,Math.min(100,100-n)),x;try{return await L.process({input:r,output:o,options:["-vcodec libwebp",`-vf ${k}`,`-q:v ${S}`,"-loop 0","-preset default","-an","-vsync 0",`-t ${l}`,`-compression_level ${M.STICKER.COMPRESSION_LEVEL}`],onEnd:async()=>{x=await w.safeReadFile(o);},onError:async()=>{await w.cleanup([r,o]);}}),await w.cleanup([r,o]),x}catch(P){throw await w.cleanup([r,o]),new Error(`Animated sticker processing failed: ${P.message}`)}}static getExtension(e){return e===M.MIME.GIF?"gif":e.startsWith(M.MIME.VIDEO)?"mp4":"tmp"}};c();J();J();var ve=class{static async create(e){try{let t=await I.toBuffer(e),n=await fileTypeFromBuffer(t);if(!n)throw new Error("Unable to detect file type");let i;return n.mime.startsWith(M.MIME.VIDEO)?i=await U.thumbnail(t):B.isMedia(n.mime)?i=await W.thumbnail(t):i="",{document:t,mimetype:n.mime,fileName:re(Date.now().toString()),jpegThumbnail:i}}catch(t){throw new Error(`Document creation failed: ${t.message||t}`)}}};c();var Te=class{constructor(e){this.client=e;this.keysDb=we(e.options.session),this.setupLogFilters();}keysDb;setupLogFilters(){let e=console.error,t=console.log,n=i=>{let r=i.join(" ");return ["Bad MAC","Session error:","Closing open session in favor of incoming prekey bundle","Error: Bad MAC"].some(l=>r.includes(l))};console.error=(...i)=>{n(i)||e.apply(console,i);},console.log=(...i)=>{n(i)||t.apply(console,i);};}async repair(e){if(!e)return;let t=[`session:${e}`,`sender-key:${e}`];try{await this.keysDb.batchDelete(t),await this.keysDb.flush(),a.spinner.warn(` [HealthManager] Repaired session for ${e} due to Bad MAC`);}catch{}}get logger(){return Zt({level:"debug"},{write:e=>{try{let t=JSON.parse(e);if(t.msg?.includes("Bad MAC")){let n=t.jid||t.remoteJid;n&&this.repair(n);}}catch{}}})}};c();var fe=(s,e)=>{try{return s.parse(e)}catch(t){let n=fromError(t);throw new Error(n.toString())}};c();c();var Je=class{concurrency;timeout;onError;queue;running;completed;failed;isClosing;closeResolve;constructor(e){this.concurrency=e?.concurrency||20,this.timeout=e?.timeout||3e4,this.onError=e?.onError||this._defaultErrorHandler,this.queue=[],this.running=new Set,this.completed=0,this.failed=0,this.isClosing=false,this.closeResolve=null;}add(e,t){if(this.isClosing)throw new Error("Queue is closing, cannot add new tasks");let n={id:this._generateId(),fn:e,priority:t?.priority||0,timeout:t?.timeout||this.timeout,retries:t?.retries||0,maxRetries:t?.maxRetries||0,createdAt:Date.now()},i=this.queue.findIndex(r=>r.priority<n.priority);return i===-1?this.queue.push(n):this.queue.splice(i,0,n),this._process(),n.id}addBulk(e){return e.map(({fn:t,options:n})=>this.add(t,n))}async _process(){for(;this.running.size<this.concurrency&&this.queue.length>0;){let e=this.queue.shift();this.running.add(e),this._executeTask(e);}this.isClosing&&this.running.size===0&&this.queue.length===0&&this.closeResolve?.();}async _executeTask(e){try{await this._withTimeout(e.fn(),e.timeout),this.completed++;}catch(t){e.retries<e.maxRetries?(e.retries++,this.queue.unshift(e)):(this.failed++,this.onError(t,e));}finally{this.running.delete(e),this._process();}}_withTimeout(e,t){return Promise.race([e,new Promise((n,i)=>setTimeout(()=>i(new Error("Task timeout")),t))])}async close(e=0){if(this.isClosing=true,this.running.size===0&&this.queue.length===0)return;let t=new Promise(n=>{this.closeResolve=n;});if(e>0){let n=new Promise(i=>setTimeout(i,e));await Promise.race([t,n]);}else await t;}forceClose(){this.queue=[],this.running.clear(),this.isClosing=true,this.closeResolve?.();}getStats(){return {queued:this.queue.length,running:this.running.size,completed:this.completed,failed:this.failed,total:this.completed+this.failed}}isIdle(){return this.queue.length===0&&this.running.size===0}async waitUntilIdle(e=100){for(;!this.isIdle();)await new Promise(t=>setTimeout(t,e));}_defaultErrorHandler(e,t){}_generateId(){return `${Date.now()}-${Math.random().toString(36).substr(2,9)}`}},E=new Je;process.on("SIGTERM",()=>E.close());c();c();c();var h=(s,e="lime")=>Array.isArray(e)?Et(e)(s):Et([e,e])(s),He=s=>{try{return JSON.parse(s)}catch{return R.attempt(()=>JSON.parse(JSON.stringify(s)||"{}"))}},ge=s=>{try{return JSON.stringify(s)}catch{let e=R.attempt(()=>JSON.stringify(He(s)||"{}"));return R.isError(e)?"{}":e}},Mo=(s="")=>R.shuffle(s).join(""),ye=(s="",e="")=>s?R.includes(s.toLowerCase(),e.toLowerCase()):null,Rt=(s="")=>s?R.castArray(s.match(URL_REGEX)||[]):[],xo=s=>s[Math.floor(Math.random()*s.length)],Ke=(s,e)=>{let t=i=>!!(i==null||typeof i=="string"&&i.trim()===""||Array.isArray(i)&&i.length===0||typeof i=="object"&&Object.keys(i).length===0),n=(i,r)=>{if(!i||typeof i!="object")return;let o=i,l=r.split(".");for(let p of l){let u=p.match(/^(.+?)\[(\d+)\]$/);if(u){let[,k,S]=u;o=o?.[k]?.[parseInt(S,10)];}else o=o?.[p];if(t(o))return}return o};if(!(!Array.isArray(s)||s.length===0)&&!(!Array.isArray(e)||e.length===0)){for(let i of s)if(!(!i||typeof i!="object"))for(let r of e){let o=n(i,r);if(!t(o))return o}}},vo=(s,e)=>{let t=R.castArray(e),n=(o,l)=>R.every(l,(p,u)=>o?.[u]===p),i=(o,l)=>R.some(l,(p,u)=>o?.[u]===p),r=o=>R.isArray(o)?R.find(o,r)??o:R.isObject(o)?R.find(t,u=>n(o,u))||R.find(t,u=>i(o,u))?o:R.find(R.values(o),r)??o:null;return r(s)},To=(s,e,t)=>new Proxy(s,{apply(n,i,r){e?.(r);let o=Reflect.apply(n,i,r);return t?t(o,r):o}});c();var Qe=class{input;constructor(e){this.input=e;}async toOpus(){return oe.toOpus(this.input)}async toMp3(){return oe.toMp3(this.input)}async convert(e="opus"){return oe.convert(this.input,e)}},Ye=class{input;constructor(e){this.input=e;}async toMp4(){return U.toMp4(this.input)}async thumbnail(){return U.thumbnail(this.input)}},Ze=class{input;constructor(e){this.input=e;}async toJpeg(){return W.toJpeg(this.input)}async thumbnail(){let e=await I.toBuffer(this.input);return W.thumbnail(e)}async resize(e,t){let n=await I.toBuffer(this.input);return W.resize(n,e,t)}},Xe=class{input;metadata;constructor(e,t){this.input=e,this.metadata=t;}async create(){return xe.create(this.input,this.metadata)}},et=class{input;constructor(e){this.input=e;}async create(){return ve.create(this.input)}},tt=class{input;constructor(e){this.input=e;}async get(){let e=await I.toBuffer(this.input),t=await fileTypeFromBuffer(e);if(!t||!B.isMedia(t.mime))throw new Error("Invalid media type: expected image or video");return t.mime.startsWith(M.MIME.VIDEO)?U.thumbnail(this.input):W.thumbnail(e)}},nt=class{audio(e){return new Qe(e)}video(e){return new Ye(e)}image(e){return new Ze(e)}sticker(e,t){return new Xe(e,t)}document(e){return new et(e)}thumbnail(e){return new tt(e)}async toBuffer(e){return I.toBuffer(e)}},D=new nt;var Se=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=a.get("socket");e.ev.on("call",async t=>{for(let n of t){let i=await this.parse(n);i&&(E.add(async()=>this.client.middleware.run({calls:i})),E.add(async()=>this.client.plugins.execute(this.client,{messages:i})),a.events.emit("calls",i),this.client.options?.autoRejectCall&&E.add(async()=>e.rejectCall(i.callId,i.callerId)));}});}async parse(e){let t=a.get("socket"),n={};return n.callId=e.id,n.callerId=jidNormalizedUser(e.from),n.roomId=jidNormalizedUser(e.chatId),n.roomName=Z(t?.user?.name||t?.user?.verifiedName),n.date=e.date,n.offline=e.offline,n.status=e.status,n.isVideo=!!e.isVideo,n.isGroup=!!e.isGroup,this.client.logs.call(n),n}};c();c();var Ft=s=>{vn.generate(s,{small:true},e=>{console.log(e);});},$t=async()=>{console.clear(),a.spinner.start(" Checking for updates...");let s="2.2.6",e="zaadevofc",t=await At(),n=s===t;a.spinner.stop();let i="Zaileys",r=`
|
|
2
|
+
by ${e} \xB7 v${s}`,o="\u2014 discord.gg/KBHhTTVUc5",l=`${n?"Already using latest version!":`Update available! (v${t})`}
|
|
3
|
+
`,p=n?"lime":"orange",u=await Mn.text(i),k=cristal(u);console.log(k),console.log(h(r,"dimgray")),console.log(h(o,"purple")),console.log(h(l,p));};var Ie=class{constructor(e){this.client=e;this.initialize();}async initialize(){a.spinner.start(" Initializing connection...");let e=a.get("socket"),t={},n=async()=>{t.status="reload",a.spinner.warn(" Connection lost. Attempting auto-reload..."),await this.client.initialize();},i=async()=>{await delay(3e3),a.spinner.warn(" Invalid session. Attempting auto cleaning creds..."),await delay(3e3),await Pt(this.client.options.session),await n();};if(this.client.options.authType==="pairing"&&this.client.options.phoneNumber&&!e.authState.creds.registered){a.spinner.update(" Generating pairing code..."),await delay(3500);try{t.authTimeout=Date.now()+6e4;let r=new Date(t.authTimeout).toLocaleTimeString(),o=await e.requestPairingCode(this.client.options.phoneNumber.toString());a.spinner.warn(` Pairing expired at ${cristal(r)}`),a.spinner.warn(` Pairing code: ${o}`),t.code=o;}catch{await i();}}e.ev.on("connection.update",async r=>{let{connection:o,lastDisconnect:l,qr:p}=r;if(t.status=o||"connecting",t.authType=this.client.options.authType,a.spinner.update(" Connection status: "+cristal(t.status)),this.client.options.authType==="qr"&&p){t.authTimeout=Date.now()+6e4;let u=new Date(t.authTimeout).toLocaleTimeString();a.spinner.warn(" Please scan the QR code..."),a.spinner.warn(` Qr code expired at ${cristal(u)}`),Ft(p),t.qr=p;return}if(o==="close"){let u=v(l?.error)?.output?.statusCode,k=l?.error?.message||"",S=typeof u=="number"&&u!==DisconnectReason.loggedOut;if(a.spinner.error(` [${u} - Closed] ${k}`),u===401||u===405){a.spinner.warn(" Session may be used by another device/instance."),a.spinner.warn(" If you want to connect here, close the other connection first."),a.spinner.warn(` Or use a different session name in your Client options.
|
|
4
|
+
`);return}if(u===500){a.spinner.error(" Server error occurred, attempting reconnect..."),await n();return}S&&await n();}if(o==="open")if(e.user?.id){let u=jidNormalizedUser(e.user.id).split("@")[0],k=e.user.name||e.user.verifiedName;a.spinner.success(` Connected as ${cristal(k||u)}`);}else a.spinner.success(" Connected!");a.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:r})=>{t.status="syncing",t.syncProgress=r,a.spinner.start(" Syncing messages history..."),r&&a.spinner.update(` Syncing messages history ${r+"%"}`),r==100&&(a.spinner.success(" Syncing messages history completed!"),t.syncCompleted=true),a.events.emit("connection",t);});}};c();c();var Ot={text:"text",conversation:"text",imageMessage:"image",contactMessage:"contact",locationMessage:"location",documentMessage:"document",audioMessage:"audio",videoMessage:"video",protocolMessage:"protocol",contactsArrayMessage:"contacts",highlyStructuredMessage:"highlyStructured",sendPaymentMessage:"sendPayment",liveLocationMessage:"location",requestPaymentMessage:"requestPayment",groupStatusMentionMessage:"groupStatusMention",statusMentionMessage:"statusMention",albumMessage:"album",declinePaymentRequestMessage:"declinePaymentRequest",cancelPaymentRequestMessage:"cancelPaymentRequest",templateMessage:"template",stickerMessage:"sticker",groupInviteMessage:"groupInvite",templateButtonReplyMessage:"buttons",productMessage:"product",deviceSentMessage:"deviceSent",listMessage:"lists",viewOnceMessage:"viewOnce",orderMessage:"order",listResponseMessage:"lists",ephemeralMessage:"ephemeral",invoiceMessage:"invoice",buttonsMessage:"buttons",buttonsResponseMessage:"buttons",paymentInviteMessage:"paymentInvite",interactiveMessage:"interactive",reactionMessage:"reaction",stickerSyncRmrMessage:"sticker",questionMessage:"question",nativeFlowResponseMessage:"lists",interactiveResponseMessage:"interactiveResponse",pollCreationMessage:"pollCreation",pollCreationMessageKey:"pollUpdate",pollUpdateMessage:"pollUpdate",keepInChatMessage:"keepInChat",documentWithCaptionMessage:"document",requestPhoneNumberMessage:"requestPhoneNumber",viewOnceMessageV2:"viewOnce",encReactionMessage:"reaction",editedMessage:"text",viewOnceMessageV2Extension:"viewOnce",pollCreationMessageV2:"pollCreation",scheduledCallCreationMessage:"scheduledCallCreation",groupMentionedMessage:"groupMentioned",pinInChatMessage:"pinInChat",pollCreationMessageV3:"pollCreation",scheduledCallEditMessage:"scheduledCallEdit",ptvMessage:"ptv",botInvokeMessage:"botInvoke",callLogMesssage:"callLog",encCommentMessage:"encComment",bcallMessage:"bcall",lottieStickerMessage:"lottieSticker",eventMessage:"event",commentMessage:"comment",newsletterAdminInviteMessage:"text",extendedTextMessageWithParentKey:"text",extendedTextMessage:"text",placeholderMessage:"placeholder",encEventUpdateMessage:"encEventUpdate"},it={whatsapp:"0@s.whatsapp.net",meta:"13135550002@s.whatsapp.net",chatgpt:"18002428478@s.whatsapp.net",copilot:"18772241042@s.whatsapp.net",instagram:"447723442971@s.whatsapp.net",tiktok:"6285574670498@s.whatsapp.net"};c();var Ae=class{constructor(e){this.client=e;this.limiter=new RateLimiterMemory({points:this.client.options.limiter?.maxMessages,duration:this.client.options.limiter?.durationMs/1e3});}limiter;async isSpam(e){try{return await this.limiter.consume(e),!1}catch{return true}}};var Ee=class{constructor(e){this.client=e;this.limiter=new Ae(e),this.initialize();}limiter;maxReplies=3;async initialize(){let e=a.get("socket");if(!e?.ev){console.warn("\u26A0\uFE0F [Messages] Socket or socket.ev is not available during initialization");return}e.ev.on("messages.upsert",async({messages:t,type:n})=>{try{if(n!=="notify"&&n!=="append")return;for(let i of t)try{let r=await this.parse(i);r&&(E.add(async()=>this.client.middleware.run({messages:r})),E.add(async()=>this.client.plugins.execute(this.client,{messages:r})),a.set("message",r),a.events.emit("messages",r),this.client.options.autoRead&&E.add(async()=>e.readMessages([r.message().key])));}catch{}}catch{}});}async parse(e,t){if(e?.category==="peer"||!e?.message||!e?.key?.id||e?.messageStubType||e?.messageStubParameters?.length||e.message?.protocolMessage?.peerDataOperationRequestResponseMessage)return;let n=e,i=a.get("socket"),r={},o=Me(e.message),l=o.chain.at(-1),p=o.leaf;if(p?.message&&(o=Me(p.message),l=o.chain.at(-1),p=o.leaf),r.uniqueId=null,r.channelId=null,r.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,r.chatType=Ot[l],!r.chatType)return;r.receiverLid=jidNormalizedUser(i?.user?.lid||""),r.receiverId=jidNormalizedUser(i?.user?.id||""),r.receiverName=Z(i?.user?.name||i?.user?.verifiedName),r.roomId=jidNormalizedUser(e?.key?.remoteJid);let u=p?.type===0,k=p?.type===1,S=p?.type===2,x=r.roomId?.includes("@newsletter"),P=!!e?.message?.questionMessage,_=e?.key?.fromMe||false;if(_&&this.client.options.ignoreMe&&t!=="replied")return;let K=p?.key?.id;if(u||k||S){let C=await this.client.db("messages").query(r.roomId).where("key.id","=",K).first();if(!C)return;e=C,o=Me(e.message),l=o.chain.at(-1),p=o.leaf;}if(r.roomName=await this.client.getRoomName(r.roomId),r.senderLid=jidNormalizedUser(e?.key?.participant||e?.key?.remoteJid)||null,r.senderId=jidNormalizedUser(e?.key?.participantAlt||e?.key?.remoteJidAlt)||null,r.senderName=Z(e?.pushName||e?.verifiedBizName),r.senderDevice=getDevice(r.chatId||""),r.channelId=re([r.roomId,r.senderId]),r.uniqueId=re([r.channelId,r.chatId]),r.timestamp=Number(e?.messageTimestamp)*1e3,x){let C=await i.newsletterMetadata("jid",r.roomId);r.roomName=v(C.thread_metadata.name)?.text,r.senderId=null,r.senderLid=null;}_&&(r.senderLid=jidNormalizedUser(i.user.lid),r.senderId=r.receiverId,r.senderName=r.receiverName),r.text=p?.text||p?.caption||p?.name||p?.displayName||p?.conversation||p?.contentText||p?.selectedDisplayText||p||null,p?.name=="menu_options"&&(r.text=He(p?.paramsJson)?.id),r.text=Z(r.text),r.mentions=St(r.text),r.links=Rt(r.text||""),r.isBot=r.chatId.startsWith("BAE5")||r.chatId.startsWith("3EB0")||r.chatId.startsWith("Z4D3FC"),r.isFromMe=_;let Q=R.castArray(this.client.options?.prefix);if(r.isPrefix=!!Q.find(C=>r.text?.startsWith(C)),r.isTagMe=r.mentions?.includes(r.receiverId.split("@")[0])||r.mentions?.includes(r.receiverLid.split("@")[0]),r.isStatusMention=!!e?.message?.statusMentionMessage,r.isGroupStatusMention=!!e?.message?.groupStatusMentionMessage,r.isHideTags=false,R.isEmpty(r.text)&&p?.contextInfo?.mentionedJid?.length&&(r.isHideTags=true),r.isSpam=await this.limiter.isSpam(r.channelId),r.isPrefix&&(r.text=r.text.replace(new RegExp(`^${R.escapeRegExp(Q.find(C=>r.text?.startsWith(C))||"")}`),"")),r.isGroup=r.roomId?.includes("@g.us"),r.isNewsletter=x,r.isQuestion=P,r.isStory=r.roomId?.includes("@broadcast"),!r.isGroup&&!r.roomName&&(r.roomName=r.senderName),!r.isGroup){let C=r.senderId,O=r.senderLid;r.senderId=O,r.senderLid=C;}if(r.isViewOnce=false,r.isEdited=!!ye(ge(o),"editedMessage"),r.isDeleted=u,r.isPinned=k,r.isUnPinned=S,r.isBroadcast=!!e?.broadcast,r.isEphemeral=!!ye(ge(p?.contextInfo),"ephemeralSettingTimestamp"),r.isForwarded=!!ye(ge(p?.contextInfo),"forwardingScore"),r.citation=null,this.client.options.citation){r.citation=r.citation||{};let C=this.client.options.citation;for(let O of Object.keys(C)){let ae=C[O];r.citation[O]=async()=>{let ce=await ae(),te=[q(r.roomId),q(r.senderLid),q(r.senderId)];return !!R.intersection(te,ce).length};}}r.chatType!=="text"&&(r.media={...Ct(p),buffer:()=>downloadMediaMessage(e,"buffer",{}),stream:()=>downloadMediaMessage(e,"stream",{})}),r.isStatusMention&&(r.chatType="statusMention"),r.isGroupStatusMention&&(r.chatType="groupStatusMention"),r.message=()=>n,r.replied=null;let T=p?.contextInfo?.quotedMessage,$=ye(ge(T),"viewOnce"),G=p?.contextInfo?.stanzaId;if(T&&this.maxReplies){this.maxReplies--;let C=await this.client.db("messages").getByIndex("messages","key.id",G),O;$?O={...C[0],message:T}:O=C[0],r.replied=await this.parse(O,"replied"),r.replied&&(r.replied.isViewOnce=true),this.maxReplies=3;}return t!="replied"&&this.client.logs.message(r),r.injection=ne.getAll(),r}};var Re=class{constructor(e){this.client=e;this.connection=new Ie(e),this.messages=new Ee(e),this.calls=new Se(e),this.initialize();}connection;messages;calls;async initialize(){let e=a.get("socket");e.ev.on("groups.update",async([t])=>{E.add(async()=>{let n=await e.groupMetadata(t.id);N.set(t.id,n);});}),e.ev.on("group-participants.update",async t=>{E.add(async()=>{let n=await e.groupMetadata(t.id);N.set(t.id,n);});}),e?.ev.on("messaging-history.set",async t=>{let{chats:n,contacts:i,messages:r}=t;E.add(async()=>{await this.client.db("chats").batchUpsert("chats",n,"id");}),E.add(async()=>{await this.client.db("contacts").batchUpsert("contacts",i,"id");}),E.add(async()=>{await this.client.db("messages").batchUpsert("messages",r,"key.id");});}),e?.ev.on("messages.upsert",async({messages:t})=>{E.add(async()=>{await this.client.db("messages").batchUpsert("messages",t,"key.id");});}),e?.ev.on("chats.upsert",async t=>{E.add(async()=>{await this.client.db("chats").batchUpsert("chats",t,"id");});}),e?.ev.on("contacts.upsert",async t=>{E.add(async()=>{await this.client.db("contacts").batchUpsert("contacts",t,"id");});}),await this.client.db("messages").createIndex("messages","key.remoteJid"),await this.client.db("messages").createIndex("messages","key.id"),await this.client.db("chats").createIndex("chats","id"),await this.client.db("contacts").createIndex("contacts","id");}};c();c();c();var An=m.object({type:m.literal("quick_reply"),text:m.string()}),Pn=m.object({type:m.literal("cta_url"),url:m.url(),text:m.string()}),En=m.object({type:m.literal("cta_copy"),copy:m.string(),text:m.string()}),Rn=m.object({type:m.literal("cta_call"),text:m.string(),phoneNumber:m.string()}),Bn=m.object({type:m.literal("single_select"),text:m.string(),section:m.object({title:m.string(),highlight_label:m.string().optional(),rows:m.object({id:m.string(),title:m.string(),header:m.string().optional(),description:m.string().optional()}).array()}).array()}),Fn=m.object({type:m.literal("interactive"),footer:m.string().optional(),data:m.union([An,Pn,En,Rn,Bn]).array()}),$n=m.object({type:m.literal("simple"),footer:m.string().optional(),data:m.object({id:m.string(),text:m.string()}).array()}),Nt=m.union([$n,Fn]);c();var On=z$1.object({maxMessages:z$1.number().default(20),durationMs:z$1.number().default(1e4)}).optional(),Dn=z$1.record(z$1.string(),z$1.function({output:z$1.promise(z$1.array(z$1.number()))})).optional(),Nn=z$1.object({provider:z$1.enum(["whatsapp","meta","chatgpt","copilot","instagram","tiktok"]).or(z$1.number())}).optional(),ot=z$1.enum(["default","rounded","circle","oval"]).default("default"),Wn=z$1.object({packageName:z$1.string().optional(),authorName:z$1.string().optional(),quality:z$1.number().optional(),shape:ot.optional()}).optional(),_n=z$1.object({enabled:z$1.boolean().default(false).optional(),intervalMs:z$1.number().default(3600*1e3).optional(),maxAgeMs:z$1.number().default(1440*60*1e3).optional(),scopes:z$1.array(z$1.string()).default(["messages"]).optional()}).optional(),Wt=z$1.object({session:z$1.string().default("zaileys").optional(),prefix:z$1.union([z$1.string(),z$1.array(z$1.string())]).optional(),ignoreMe:z$1.boolean().default(true).optional(),showLogs:z$1.boolean().default(true).optional(),fancyLogs:z$1.boolean().default(false).optional(),syncFullHistory:z$1.boolean().default(true).optional(),disableFFmpeg:z$1.boolean().default(false).optional(),autoMarkAI:z$1.boolean().default(true).optional(),autoMentions:z$1.boolean().default(true).optional(),autoOnline:z$1.boolean().default(true).optional(),autoRead:z$1.boolean().default(true).optional(),autoPresence:z$1.boolean().default(true).optional(),autoRejectCall:z$1.boolean().default(true).optional(),pluginsDir:z$1.string().default("plugins").optional(),pluginsHmr:z$1.boolean().default(true).optional(),autoCleanUp:_n,limiter:On,citation:Dn,fakeReply:Nn,sticker:Wn}),jn=z$1.object({authType:z$1.literal("pairing"),phoneNumber:z$1.number()}),Ln=z$1.object({authType:z$1.literal("qr")}),_t=z$1.union([jn.extend(Wt.shape),Ln.extend(Wt.shape)]),Ns=z$1.enum(["connection","messages","calls"]);var he=m.url().or(m.base64()).or(m.instanceof(Buffer)),jt=m.object({text:m.string()}).passthrough(),Un=m.object({image:he,caption:m.string().optional()}).passthrough(),zn=m.object({audio:he,caption:m.string().optional(),ptt:m.boolean().optional()}).passthrough(),qn=m.object({video:he,caption:m.string().optional(),ptv:m.boolean().optional()}).passthrough(),Vn=m.object({sticker:he,shape:ot.optional(),caption:m.string().optional()}).passthrough(),Gn=m.object({document:he,caption:m.string().optional(),fileName:m.string().optional()}).passthrough(),Jn=m.object({location:m.object({latitude:m.number(),longitude:m.number(),url:m.url().optional(),title:m.string().optional(),footer:m.string().optional()}).optional()}).passthrough(),Hn=m.object({contacts:m.object({title:m.string().optional(),contacts:m.object({fullname:m.string(),phoneNumber:m.number(),organization:m.string().optional()}).array()})}).passthrough(),Kn=m.object({poll:m.object({name:m.string(),answers:m.string().array(),isMultiple:m.boolean().default(false).optional()})}),Lt=m.object({replied:m.custom().optional(),isForwardedMany:m.boolean().optional(),isViewOnce:m.boolean().optional(),banner:m.custom().optional(),buttons:Nt.optional()});m.enum(["forward","button","edit","delete"]);var Qn=m.union([jt,Un,zn,qn,Vn,Gn,Jn,Hn,Kn]),Ut=m.string().or(m.intersection(Qn,Lt.omit({buttons:true}))),zt=m.intersection(jt,Lt.omit({banner:true}));c();var Be=class{toNativeSimple(e){return e.map(({id:t,text:n})=>({name:"quick_reply",buttonParamsJson:JSON.stringify({display_text:n,id:t})}))}toNativeInteractive(e){let t={quick_reply:n=>({display_text:n.text,id:n.id}),cta_url:n=>({display_text:n.text,url:n.url,merchant_url:n.url}),cta_copy:n=>({display_text:n.text,id:n.id,copy_code:n.copy}),cta_call:n=>({display_text:n.text,phone_number:n.phoneNumber}),single_select:n=>({title:n.text,sections:n.section})};return e.map(n=>({name:n.type,buttonParamsJson:JSON.stringify(t[n.type](n))}))}build(e){let t=v(e).buttons,n=t?.data||[],r=t?.type=="simple"?this.toNativeSimple(n):this.toNativeInteractive(n);return {body:{text:v(e).text},footer:t.footer?{text:t.footer}:void 0,nativeFlowMessage:{buttons:r}}}async send(e,t,n){let i=a.get("socket"),r=i?.authState?.creds?.me?.id||i?.user?.id,o=this.build(t),l=generateWAMessageFromContent(e,{interactiveMessage:o},{userJid:r,messageId:generateMessageIDV2(r),...n});return await i.relayMessage(e,l.message,{messageId:l.key.id,...n,additionalNodes:[{tag:"biz",attrs:{},content:[{tag:"interactive",attrs:{type:"native_flow",v:"1"},content:[{tag:"native_flow",attrs:{v:"9",name:"mixed"}}]}]}]}),i.config?.emitOwnEvents&&!isJidGroup(e)&&process.nextTick(()=>i.upsertMessage?.(l,"append")),l}};var Fe=class{constructor(e){this.client=e;}async signal(e,t,n,i){n!="delete"&&(n=="button"?t=fe(zt,t):t=fe(Ut,t));let r=a.get("socket"),o={},l={},p=R.isString(t),u=this.client.options?.fakeReply?.provider,k=this.client.options?.autoMentions,S=this.client.options?.autoPresence,x=R.has(t,"replied"),P=R.has(t,"banner"),_=R.has(t,"isViewOnce"),K=n=="button",Q=R.has(t,"image"),T=R.has(t,"video"),$=R.has(t,"audio"),G=R.has(t,"sticker"),C=R.has(t,"document"),O=R.has(t,"location"),ae=R.has(t,"contacts"),ce=R.has(t,"poll"),te=Q||T||$||G||C,Y=p?t:Ke([t],["text","caption"]);if(S&&($?await r.sendPresenceUpdate("recording",e):await r.sendPresenceUpdate("composing",e)),k&&(o={...o,mentions:Ge(Y),contextInfo:{mentionedJid:Ge(Y)}}),x&&(l.quoted=v(t).replied,u&&(l.quoted.key.remoteJid=it[u],l.quoted.key.participant=it[u])),P&&(o={...o,contextInfo:{externalAdReply:v(t).banner}},o.contextInfo.externalAdReply.mediaType=1),_&&(o={...o,viewOnce:v(t)?.isViewOnce}),Y&&(o={...o,text:Y,caption:Y},te&&delete v(o).text),te){let A=Ke([t],["image","video","audio","sticker","document"]);if(Q&&(o={...o,image:await D.image(A).toJpeg(),jpegThumbnail:await D.thumbnail(A).get()}),T){let j=v(t)?.ptv;o={...o,video:await D.video(A).toMp4(),ptv:j,jpegThumbnail:await D.thumbnail(A).get()};}if($){let j=v(t)?.ptt;o={...o,audio:await D.audio(A).toOpus(),ptt:j,mimetype:j?"audio/ogg; codecs=opus":"audio/mpeg"};}if(G){let j=v(t)?.shape;o={...o,sticker:await D.sticker(A,{...this.client.options?.sticker,shape:j}).create()};}if(C){let j=await D.document(A).create();o={...o,fileName:v(t).fileName,...j};}}if(O){let A=v(t).location;o={...o,location:{degreesLatitude:A.latitude,degreesLongitude:A.longitude,url:A.url,address:A.footer,name:A.title}};}if(ae){let A=v(t)?.contacts,j=A?.contacts.map(pe=>{let Gt=["BEGIN:VCARD","VERSION:3.0",`FN:${pe.fullname}`,`ORG:${pe.organization||""}`,`TEL;type=CELL;type=VOICE;waid=${pe.phoneNumber}:${pe.phoneNumber}`,"END:VCARD"].join(`
|
|
5
|
+
`);return {displayName:pe.fullname,vcard:Gt}});o={...o,contacts:{displayName:A?.title,contacts:j}};}if(ce){let A=v(t)?.poll;o={...o,poll:{name:A.name,values:A.answers,selectableCount:A.isMultiple?1:0,toAnnouncementGroup:true}};}return n=="forward"&&(o={...o,contextInfo:{...v(o).contextInfo,isForwarded:true,forwardingScore:v(t).isForwardedMany?9999:1}}),n=="edit"&&(o={...o,edit:i?.key},await r.sendPresenceUpdate("paused",e)),n=="delete"&&(o={...o,delete:i?.key},await r.sendPresenceUpdate("paused",e)),K?await new Be().send(e,t,l):await r.sendMessage(e,v(o),l)}async send(e,t){return await this.signal(e,t)}async forward(e,t){return await this.signal(e,t,"forward")}async button(e,t){return await this.signal(e,t,"button")}async edit(e,t){return await this.signal(e.key.remoteJid,t,"edit",e)}async delete(e){return R.isArray(e)?Promise.all(e.map(t=>this.signal(t.key.remoteJid,{},"delete",t))):await this.signal(e.key.remoteJid,{},"delete",e)}async presence(e,t){let n=a.get("socket"),i={typing:"composing",recording:"recording",online:"available",offline:"unavailable",paused:"paused"};return await n.sendPresenceUpdate(i[t],e)}async reaction(e,t){return await a.get("socket").sendMessage(e.key.remoteJid,{react:{text:t,key:e?.key}})}async memberLabel(e,t){return await a.get("socket").relayMessage(e,{protocolMessage:{type:30,memberLabel:{label:t,labelTimestamp:Date.now()}}},{})}};c();var st=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").communityCreate(e,t)}async createGroup(e,t,n){return await a.get("socket").communityCreateGroup(e,t,n)}async leave(e){return await a.get("socket").communityLeave(e)}async metadata(e){return await a.get("socket").communityMetadata(e)}async update(e,t,n){let i=a.get("socket");switch(t){case "subject":return await i.communityUpdateSubject(e,n);case "description":return await i.communityUpdateDescription(e,n)}}async group(e,t,n){let i=a.get("socket");switch(t){case "link":if(!n)throw "Group JID is required for linking";return await i.communityLinkGroup(e,n);case "unlink":if(!n)throw "Group JID is required for unlinking";return await i.communityUnlinkGroup(e,n);case "linked":return await i.communityFetchLinkedGroups(e)}}async participants(e,t,n,i){let r=a.get("socket");switch(t){case "list":return await r.communityRequestParticipantsList(e);case "request-update":return await r.communityRequestParticipantsUpdate(e,i,v(n));case "update":if(!n||!i)throw "Action and participants are required for update";return await r.communityParticipantsUpdate(e,i,v(n));case "all":return await r.communityFetchAllParticipating()}}async invite(e,t,...n){let i=a.get("socket");switch(t){case "code":return await i.communityInviteCode(e);case "revoke":return await i.communityRevokeInvite(e);case "accept":return await i.communityAcceptInvite(e);case "info":return await i.communityGetInviteInfo(e);case "revokeV4":return await i.communityRevokeInviteV4(e,n[0]);case "acceptV4":return await i.communityAcceptInviteV4(e,n[0])}}async settings(e,t,n){let i=a.get("socket");switch(t){case "ephemeral":return await i.communityToggleEphemeral(e,n);case "update":return await i.communitySettingUpdate(e,n);case "memberAdd":return await i.communityMemberAddMode(e,n);case "approval":return await i.communityJoinApprovalMode(e,n)}}},$e=class{constructor(e){this.mlient=e;this.community=new st(e);}community};c();var at=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").groupCreate(e,t)}async participant(e,t,n){return await a.get("socket").groupParticipantsUpdate(e,t,n)}async profile(e,t,n){let i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "subject":if(!r)return await i.groupUpdateSubject(e,t);case "description":if(!r)return await i.groupUpdateDescription(e,t);case "picture":return await i.updateProfilePicture(e,await D.toBuffer(t))}}async setting(e,t){let n=a.get("socket");switch(t){case "open":return await n.groupSettingUpdate(e,"not_announcement");case "close":return await n.groupSettingUpdate(e,"announcement");case "locked":return await n.groupSettingUpdate(e,t);case "unlocked":return await n.groupSettingUpdate(e,t);case "all_member_add":return await n.groupMemberAddMode(e,t);case "admin_add":return await n.groupMemberAddMode(e,t)}}async leave(e){return await a.get("socket").groupLeave(e)}async inviteCode(e,t){let n=a.get("socket");switch(t){case "code":return await n.groupInviteCode(e);case "revoke":return await n.groupRevokeInvite(e);case "accept":return await n.groupAcceptInvite(e);case "info":return await n.groupGetInviteInfo(e)}}async metadata(e){let t=a.get("socket"),n=N.get(e);if(n)return n;let i=await t.groupMetadata(e);return i&&N.set(e,i),i}async requestJoin(e,t,n){let i=a.get("socket");switch(n){case "approve":return await i.groupRequestParticipantsUpdate(e,t,n);case "reject":return await i.groupRequestParticipantsUpdate(e,t,n)}}async requestJoinList(e){return await a.get("socket").groupRequestParticipantsList(e)}async fetchAllGroups(){return await a.get("socket").groupFetchAllParticipating()}async ephemeral(e,t){let n=a.get("socket"),i={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await n.groupToggleEphemeral(e,i[t])}},Oe=class{constructor(e){this.glient=e;this.group=new at(e);}group};c();var ct=class{constructor(e){this.client=e;}async create(e,t){return await a.get("socket").newsletterCreate(e,t)}async action(e,t){let n=a.get("socket");switch(t){case "follow":return await n.newsletterFollow(e);case "unfollow":return await n.newsletterUnfollow(e);case "mute":return await n.newsletterMute(e);case "unmute":return await n.newsletterUnmute(e);}}async update(e,t,n){let i=a.get("socket"),r=Buffer.isBuffer(t);switch(n){case "name":if(!r)return await i.newsletterUpdateName(e,t);case "description":if(!r)return await i.newsletterUpdateDescription(e,t);case "picture":return await i.newsletterUpdatePicture(e,await D.toBuffer(t))}}async metadata(e,t){return await a.get("socket").newsletterMetadata(t,e)}async subscribers(e){return await a.get("socket").newsletterSubscribers(e)}async reaction(e,t,n){return await a.get("socket").newsletterReactMessage(e,t,n)}async fetchMessages(e,t,n,i){let r=a.get("socket"),o=n.getTime()/1e3,l=i.getTime()/1e3;return await r.newsletterFetchMessages(e,t,o,l)}async adminCount(e){return await a.get("socket").newsletterAdminCount(e)}async changeOwner(e,t){return await a.get("socket").newsletterChangeOwner(e,t)}async demote(e,t){return await a.get("socket").newsletterDemote(e,t)}async delete(e){return await a.get("socket").newsletterDelete(e)}async removePicture(e){return await a.get("socket").newsletterRemovePicture(e)}},De=class{constructor(e){this.nlient=e;this.newsletter=new ct(e);}newsletter};c();var pt=class{constructor(e){this.client=e;}async block(e){return await a.get("socket").updateBlockStatus(e,"block")}async unblock(e){return await a.get("socket").updateBlockStatus(e,"unblock")}async lastSeen(e){return await a.get("socket").updateLastSeenPrivacy(e)}async online(e){return await a.get("socket").updateOnlinePrivacy(e)}async picture(e){return await a.get("socket").updateProfilePicturePrivacy(e)}async status(e){return await a.get("socket").updateStatusPrivacy(e)}async readReceipt(e){return await a.get("socket").updateReadReceiptsPrivacy(e)}async groupsAdd(e){return await a.get("socket").updateGroupsAddPrivacy(e)}async ephemeral(e){let t=a.get("socket"),n={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await t.updateDefaultDisappearingMode(n[e])}async blocklist(){return await a.get("socket").fetchBlocklist()}async getSettings(){return await a.get("socket").fetchPrivacySettings(true)}},Ne=class{constructor(e){this.plient=e;this.privacy=new pt(e);}privacy};c();c();var Aa=m.object({status:m.enum(["connecting","open","close","reload","syncing"]),authType:m.enum(["pairing","qr"]),authTimeout:m.number().optional(),syncProgress:m.number().optional(),syncCompleted:m.boolean().default(false).optional(),qr:m.string().optional(),code:m.string().optional()});c();var tr=m.enum(["unknown","android","ios","desktop","web"]),nr=m.enum(["text","album","image","contact","location","document","audio","video","protocol","contacts","highlyStructured","sendPayment","requestPayment","groupStatusMention","statusMention","declinePaymentRequest","cancelPaymentRequest","template","sticker","groupInvite","product","deviceSent","lists","viewOnce","order","ephemeral","invoice","buttons","paymentInvite","interactive","reaction","sticker","interactiveResponse","pollCreation","pollUpdate","keepInChat","document","requestPhoneNumber","viewOnce","reaction","text","viewOnce","pollCreation","scheduledCallCreation","groupMentioned","pinInChat","pollCreation","scheduledCallEdit","ptv","botInvoke","callLog","encComment","bcall","lottieSticker","event","comment","placeholder","encEventUpdate"]),qt=m.object({channelId:m.string(),uniqueId:m.string(),chatId:m.string(),chatType:nr,receiverLid:m.string(),receiverId:m.string(),receiverName:m.string(),roomId:m.string(),roomName:m.string(),senderLid:m.string(),senderId:m.string(),senderName:m.string(),senderDevice:tr,timestamp:m.number(),text:m.string().nullable(),mentions:m.string().array(),links:m.string().array(),isBot:m.boolean(),isFromMe:m.boolean(),isPrefix:m.boolean(),isSpam:m.boolean(),isTagMe:m.boolean(),isStatusMention:m.boolean(),isGroupStatusMention:m.boolean(),isHideTags:m.boolean(),isGroup:m.boolean(),isNewsletter:m.boolean(),isQuestion:m.boolean(),isStory:m.boolean(),isViewOnce:m.boolean(),isEdited:m.boolean(),isDeleted:m.boolean(),isPinned:m.boolean(),isUnPinned:m.boolean(),isBroadcast:m.boolean(),isEphemeral:m.boolean(),isForwarded:m.boolean(),citation:m.record(m.string(),m.function({output:m.promise(m.boolean())})).nullable(),media:m.object({buffer:m.function({output:m.promise(m.instanceof(Buffer))}),stream:m.function({output:m.promise(m.instanceof(er))})}).loose().nullable(),injection:m.record(m.string(),m.any()).default({}),message:m.function({input:[],output:m.custom()})}),Fa=qt.extend({replied:qt.nullable()});c();var Na=m.object({callId:m.string(),callerId:m.string(),roomId:m.string(),roomName:m.string(),date:m.date(),offline:m.boolean(),status:m.enum(["accept","offer","reject","ringing","terminate","timeout"]),isVideo:m.boolean(),isGroup:m.boolean()});c();var We=class{constructor(e){this.client=e;this.initialize();}logsInitialized=false;logsDisplayed=false;isReady=false;getRoomColor(e){return e?.isNewsletter?"blue":e?.isGroup?e?.isGroup?"lime":"dimgray":"orange"}initialize(){if(!this.client.options.showLogs||this.logsInitialized)return;this.logsInitialized=true;let e=async({status:t})=>{t==="open"&&(this.isReady=true,this.logsDisplayed||setTimeout(()=>{this.displayIndicator();},500));};a.events.on("connection",e);}displayIndicator(){this.logsDisplayed||(this.logsDisplayed=true,console.log(),a.spinner.info("Logs Indicator:"),console.log(h(" \u2022","orange")+" Private Chat"),console.log(h(" \u2022","lime")+" Group Chat"),console.log(h(" \u2022","blue")+" Newsletter Chat"),console.log());}message(e){if(!this.isReady)return;let t=v(this.getRoomColor(e)),n=e?.text?.toLowerCase()?.match("zaileys"),i=this.client.options?.fancyLogs,r=h(`[${new Date(e?.timestamp).toTimeString().split(" ")[0]}]`,"dimgray"),o=h(`${e?.roomName}`,t),l=e?.text?.slice(0,300)||"",p=l?.length>=300?"...":"";if(i){let u=h("\u2501".repeat(50),"dimgray"),k=h("\u2192","dimgray"),S=h("\u2022",t),x=`
|
|
6
6
|
${u}
|
|
7
|
-
`;
|
|
8
|
-
`,e?.isNewsletter?(
|
|
9
|
-
`,
|
|
10
|
-
`):(
|
|
11
|
-
`,
|
|
12
|
-
`,e?.isGroup&&(
|
|
13
|
-
`)),
|
|
14
|
-
`,
|
|
15
|
-
`,e?.isSpam&&(
|
|
16
|
-
`),e?.isForwarded&&(
|
|
17
|
-
`),e?.isEdited&&(
|
|
18
|
-
`),
|
|
7
|
+
`;x+=`${S} ${r} ${k} ${o}
|
|
8
|
+
`,e?.isNewsletter?(x+=` ${h("\u{1F4E2} Room:","dimgray")} ${h(`${e?.roomName}`,t)}
|
|
9
|
+
`,x+=` ${h("\u{1F194} ID:","dimgray")} ${h(`${q(e?.roomId)}`,"gray")}
|
|
10
|
+
`):(x+=` ${h("\u{1F464} Sender:","dimgray")} ${h(`${e?.senderName}`,t)}
|
|
11
|
+
`,x+=` ${h("\u{1F194} ID:","dimgray")} ${h(`${q(e?.senderId)}`,"gray")}
|
|
12
|
+
`,e?.isGroup&&(x+=` ${h("\u{1F3E0} Group:","dimgray")} ${h(`${e?.roomName}`,"lime")}
|
|
13
|
+
`)),x+=` ${h("\u{1F4DD} Type:","dimgray")} ${h(`${e?.chatType||"text"}`,"cyan")}
|
|
14
|
+
`,x+=` ${h("\u{1F4AC} Text:","dimgray")} ${h(l+p,n?["#ff5f6d","#ffc371"]:"brown")}
|
|
15
|
+
`,e?.isSpam&&(x+=` ${h("\u26A0\uFE0F Spam:","dimgray")} ${h("Yes","red")}
|
|
16
|
+
`),e?.isForwarded&&(x+=` ${h("\u21AA\uFE0F Forwarded:","dimgray")} ${h("Yes","yellow")}
|
|
17
|
+
`),e?.isEdited&&(x+=` ${h("\u270F\uFE0F Edited:","dimgray")} ${h("Yes","yellow")}
|
|
18
|
+
`),x+=`${u}`,console.log(x);}else {let u=`${r} \u2192 ${o}
|
|
19
19
|
`;e?.isNewsletter?u+=`${h("[room]","dimgray")} \u2192 ${h(`${e?.roomName} (${q(e?.roomId)})`,t)}
|
|
20
20
|
`:u+=`${h("[sender]","dimgray")} \u2192 ${h(`${e?.senderName} (${q(e?.senderId)})`,t)}
|
|
21
|
-
`,u+=`${h(`[${e?.chatType||"unknown"}]`,"dimgray")} \u2192 ${h(p
|
|
21
|
+
`,u+=`${h(`[${e?.chatType||"unknown"}]`,"dimgray")} \u2192 ${h(l+p,n?["#ff5f6d","#ffc371"]:"brown")}
|
|
22
22
|
`,u+="\u2014",console.log(u);}}call(e){if(!this.isReady)return;let t=v(this.getRoomColor(e)),n=h(`[${new Date(e?.date).toTimeString().split(" ")[0]}]`,"dimgray"),i=h(`${e?.roomName}`,t),r=`${n} \u2192 ${i}
|
|
23
23
|
`;r+=`${h("[caller]","dimgray")} \u2192 ${h(`${e?.callerId} (${q(e?.callerId)})`,t)}
|
|
24
24
|
`,r+=`${h(`[${e?.status}]`,"dimgray")} \u2192 ${h(e?.isVideo?"Video Call":"Voice Call","brown")}
|
|
25
|
-
`,r+="\u2014",console.log(r);}};c();var
|
|
25
|
+
`,r+="\u2014",console.log(r);}};c();var _e=class{stack=[];use(e){return this.stack.push(e),this}async run(e){let t=-1,n=async i=>{if(i<=t)throw "next() called multiple times";t=i;let r=this.stack[i];if(r)try{await r(e,()=>n(i+1));}catch(o){throw console.error("Middleware error:",o),o}};await n(0);}};c();var je=class{plugins=[];pluginsDir;globalEnabled=true;disabledPlugins=new Set;hmr=false;watcher=null;constructor(e="plugins",t=false){this.pluginsDir=H.isAbsolute(e)?e:H.join(process.cwd(),e),this.hmr=t;}async getAllFiles(e,t=e){try{await ee.promises.access(e);}catch{return []}let n=await ee.promises.readdir(e,{withFileTypes:true});return (await Promise.all(n.map(async r=>{let o=H.join(e,r.name);if(r.isDirectory())return this.getAllFiles(o,t);if((r.name.endsWith(".ts")||r.name.endsWith(".js"))&&!r.name.endsWith(".d.ts")){let p=H.relative(t,e),u=p===""?null:p.split(H.sep)[0];return [{filePath:o,parent:u}]}return []}))).flat()}async load(){try{await ee.promises.access(this.pluginsDir);}catch{return}let e=await this.getAllFiles(this.pluginsDir),t=await Promise.all(e.map(async({filePath:n,parent:i})=>{try{let r=pathToFileURL(n).href,p=(await import(this.hmr?`${r}?t=${Date.now()}`:r)).default;if(p?.default&&(p=p.default),p?.handler&&p?.config){let u=this.getPluginId(p.config.matcher);return {...p,parent:i,enabled:!this.disabledPlugins.has(u)}}}catch(r){console.error(`[Plugins] Failed to load plugin ${n}:`,r);}return null}));this.plugins=t.filter(n=>n!==null);}setupHmr(){if(!(!this.hmr||this.watcher))try{if(!ee.existsSync(this.pluginsDir))return;this.watcher=ee.watch(this.pluginsDir,{recursive:!0},async(e,t)=>{t&&(t.endsWith(".ts")||t.endsWith(".js"))&&await this.reload();});}catch(e){console.error("[Plugins] Failed to setup HMR:",e);}}getPluginId(e){return e.map(t=>t.toString()).join("|")}async execute(e,t){if(!this.globalEnabled)return;let n=t.messages?.text||"";for(let i of this.plugins)if(i.enabled)try{this.match(n,i.config.matcher)&&await i.handler(e,t);}catch(r){console.error("[Plugins] Error executing plugin:",r);}}match(e,t){return t.some(n=>n instanceof RegExp?n.test(e):e===n||e.startsWith(n+" "))}enableAll(){this.globalEnabled=true,this.plugins.forEach(e=>e.enabled=true),this.disabledPlugins.clear();}disableAll(){this.globalEnabled=false;}enable(e){let t=e.toString(),n=this.plugins.find(i=>i.config.matcher.some(r=>r.toString()===t));return n?(n.enabled=true,this.disabledPlugins.delete(this.getPluginId(n.config.matcher)),true):false}disable(e){let t=e.toString(),n=this.plugins.find(i=>i.config.matcher.some(r=>r.toString()===t));return n?(n.enabled=false,this.disabledPlugins.add(this.getPluginId(n.config.matcher)),true):false}enableByParent(e){let t=0;return this.plugins.forEach(n=>{n.parent===e&&(n.enabled=true,this.disabledPlugins.delete(this.getPluginId(n.config.matcher)),t++);}),t}disableByParent(e){let t=0;return this.plugins.forEach(n=>{n.parent===e&&(n.enabled=false,this.disabledPlugins.add(this.getPluginId(n.config.matcher)),t++);}),t}isEnabled(){return this.globalEnabled}getLoadedPlugins(){return this.plugins}getPluginsInfo(){return this.plugins.map(e=>({matcher:e.config.matcher,metadata:e.config.metadata,parent:e.parent,enabled:e.enabled}))}async reload(){this.plugins=[],await this.load(),console.log(`[Plugins] Successfully reloaded ${this.plugins.length} plugins.`);}stopHmr(){this.watcher&&(this.watcher.close(),this.watcher=null);}},ec=(s,e)=>({handler:s,config:e});var Vt=class{constructor(e){this.options=e;this.options=fe(_t,e);let t=new ie().classInjection(this,[new Fe(this),new Oe(this),new Ne(this),new De(this),new $e(this)]);return this.plugins=new je(this.options.pluginsDir,this.options.pluginsHmr),this._ready=this.initialize(t),t}_ready;logs;middleware=new _e;plugins;health;cleanup;async initialize(e){await $t(),await Ve(this.options.disableFFmpeg),this.health=new Te(this),this.cleanup=new ke(this),this.options.autoCleanUp?.enabled&&this.cleanup.start(),await bt(this),await this.plugins.load(),this.plugins.setupHmr(),new Re(e||this),this.logs||(this.logs=new We(this));}ready(){return this._ready}db(e){return mt(this.options.session,e)}on(e,t){a.events.on(e,t);}use(e){return this.middleware.use(e),this}get socket(){return a.get("socket")}async getRoomName(e){let t=a.get("socket"),n=e.endsWith("@g.us"),i=null;if(n){let r=N.get(e);if(r)i=r.subject;else {let o=await t.groupMetadata(e);o&&(N.set(e,o),i=o.subject);}}return Z(i)}inject(e,t){ne.inject(e,t);}getInjection(e){return ne.getSync(e)}removeInjection(e){ne.remove(e);}clearInjections(){ne.clear();}};
|
|
26
26
|
/*
|
|
27
27
|
* Copyright (c) 2025 zaadevofc.
|
|
28
28
|
* All rights reserved.
|
|
@@ -30,7 +30,7 @@ ${u}
|
|
|
30
30
|
* See LICENSE file for details.
|
|
31
31
|
|
|
32
32
|
* Author: zaadevofc
|
|
33
|
-
* Last build time: 12/23/2025
|
|
33
|
+
* Last build time: 12/23/2025 3:04:42 PM
|
|
34
34
|
*
|
|
35
35
|
* Repository: git+https://github.com/zeative/zaileys.git
|
|
36
|
-
*/export{qt as BaseMessagesType,Rn as ButtonInteractiveCallType,En as ButtonInteractiveCopyType,An as ButtonInteractiveReplyType,Bn as ButtonInteractiveSingleSelectType,Fn as ButtonInteractiveType,Pn as ButtonInteractiveUrlType
|
|
36
|
+
*/export{qt as BaseMessagesType,Rn as ButtonInteractiveCallType,En as ButtonInteractiveCopyType,An as ButtonInteractiveReplyType,Bn as ButtonInteractiveSingleSelectType,Fn as ButtonInteractiveType,Pn as ButtonInteractiveUrlType,$n as ButtonSimpleType,Nt as ButtonType,Dn as CitationType,Vt as Client,jn as ClientAuthPairingType,Ln as ClientAuthQRType,Wt as ClientBaseType,_t as ClientOptionsType,tr as DEVICE_ENUM_TYPES,Ns as EventEnumType,Nn as FakeReplyType,On as LimiterType,Na as ListenerCallsType,Aa as ListenerConnectionType,Fa as ListenerMessagesType,nr as MESSAGE_ENUM_TYPES,nt as MediaModifier,je as Plugins,Wn as StickerMetadataType,ot as StickerShapeType,_n as autoCleanUp,q as cleanJid,Ct as cleanMediaObject,ec as definePlugins,Ge as extractJids,Rt as extractUrls,ye as findGlobalWord,vo as findNestedByKeys,re as generateId,Me as getDeepContent,At as getLatestLibVersion,St as getUsersMentions,v as ignoreLint,h as logColor,D as mediaModifier,To as modifyFn,Z as normalizeText,Ai as numbersToJids,Ke as pickKeysFromArray,xo as randomize,bt as registerAuthCreds,Pt as removeAuthCreds,Mo as shuffleString,He as toJson,ge as toString,ht as useAuthState};
|