zaileys 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +1 -1
- package/.agent/skills/codebase-mapper/SKILL.md +0 -226
- package/.agent/skills/context-compressor/SKILL.md +0 -201
- package/.agent/skills/context-fetch/SKILL.md +0 -184
- package/.agent/skills/context-health-monitor/SKILL.md +0 -105
- package/.agent/skills/debugger/SKILL.md +0 -273
- package/.agent/skills/empirical-validation/SKILL.md +0 -97
- package/.agent/skills/executor/SKILL.md +0 -465
- package/.agent/skills/plan-checker/SKILL.md +0 -283
- package/.agent/skills/planner/SKILL.md +0 -485
- package/.agent/skills/token-budget/SKILL.md +0 -166
- package/.agent/skills/verifier/SKILL.md +0 -421
- package/.agent/workflows/add-phase.md +0 -96
- package/.agent/workflows/add-todo.md +0 -69
- package/.agent/workflows/audit-milestone.md +0 -107
- package/.agent/workflows/check-todos.md +0 -80
- package/.agent/workflows/complete-milestone.md +0 -135
- package/.agent/workflows/debug.md +0 -235
- package/.agent/workflows/discuss-phase.md +0 -103
- package/.agent/workflows/execute.md +0 -325
- package/.agent/workflows/health.md +0 -122
- package/.agent/workflows/help.md +0 -96
- package/.agent/workflows/insert-phase.md +0 -109
- package/.agent/workflows/install.md +0 -152
- package/.agent/workflows/list-phase-assumptions.md +0 -82
- package/.agent/workflows/map.md +0 -394
- package/.agent/workflows/new-milestone.md +0 -126
- package/.agent/workflows/new-project.md +0 -368
- package/.agent/workflows/pause.md +0 -176
- package/.agent/workflows/plan-milestone-gaps.md +0 -116
- package/.agent/workflows/plan.md +0 -380
- package/.agent/workflows/progress.md +0 -90
- package/.agent/workflows/quick.md +0 -128
- package/.agent/workflows/remove-phase.md +0 -139
- package/.agent/workflows/research-phase.md +0 -160
- package/.agent/workflows/resume.md +0 -131
- package/.agent/workflows/update.md +0 -203
- package/.agent/workflows/verify.md +0 -263
- package/.agent/workflows/web-search.md +0 -121
- package/.agent/workflows/whats-new.md +0 -80
- package/.gemini/GEMINI.md +0 -67
- package/.gsd/DEBUG.md +0 -26
- package/.gsd/GSD-STYLE.md +0 -272
- package/.gsd/PROJECT_RULES.md +0 -256
- package/.gsd/ROADMAP.md +0 -38
- package/.gsd/SPEC.md +0 -16
- package/.gsd/STATE.md +0 -10
- package/.gsd/adapters/CLAUDE.md +0 -77
- package/.gsd/adapters/GEMINI.md +0 -92
- package/.gsd/adapters/GPT_OSS.md +0 -130
- package/.gsd/docs/model-selection-playbook.md +0 -128
- package/.gsd/docs/runbook.md +0 -296
- package/.gsd/docs/token-optimization-guide.md +0 -207
- package/.gsd/model_capabilities.yaml +0 -108
- package/.gsd/phases/1/1-PLAN.md +0 -44
- package/.gsd/phases/1/2-PLAN.md +0 -54
- package/.gsd/phases/1/3-PLAN.md +0 -46
- package/.gsd/phases/1/4-PLAN.md +0 -39
- package/.gsd/phases/2/2-1-SUMMARY.md +0 -8
- package/.gsd/phases/2/2-PLAN.md +0 -47
- package/.gsd/phases/3/3-1-SUMMARY.md +0 -8
- package/.gsd/phases/3/3-PLAN.md +0 -43
- package/.gsd/phases/4/4-1-PLAN.md +0 -44
- package/.gsd/phases/4/4-1-SUMMARY.md +0 -8
- package/.gsd/phases/4/4-2-PLAN.md +0 -59
- package/.gsd/phases/4/4-2-SUMMARY.md +0 -8
- package/.gsd/phases/4/4-3-PLAN.md +0 -42
- package/.gsd/phases/4/4-3-SUMMARY.md +0 -8
- package/.gsd/phases/4/VERIFICATION.md +0 -8
- package/.gsd/phases/5/1-SUMMARY.md +0 -5
- package/.gsd/phases/5/5-PLAN.md +0 -47
- package/.gsd/phases/5/RESEARCH.md +0 -24
- package/.gsd/phases/5/VERIFICATION.md +0 -8
- package/.gsd/phases/6/1-SUMMARY.md +0 -6
- package/.gsd/phases/6/6-PLAN.md +0 -46
- package/.gsd/phases/6/RESEARCH.md +0 -33
- package/.gsd/phases/6/VERIFICATION.md +0 -7
- package/.gsd/phases/7/1-SUMMARY.md +0 -12
- package/.gsd/phases/7/7-PLAN.md +0 -78
- package/.gsd/phases/7/VERIFICATION.md +0 -7
- package/.gsd/templates/DEBUG.md +0 -123
- package/.gsd/templates/PLAN.md +0 -90
- package/.gsd/templates/RESEARCH.md +0 -75
- package/.gsd/templates/SUMMARY.md +0 -103
- package/.gsd/templates/UAT.md +0 -168
- package/.gsd/templates/VERIFICATION.md +0 -70
- package/.gsd/templates/architecture.md +0 -67
- package/.gsd/templates/context.md +0 -91
- package/.gsd/templates/decisions.md +0 -37
- package/.gsd/templates/discovery.md +0 -122
- package/.gsd/templates/journal.md +0 -46
- package/.gsd/templates/milestone.md +0 -91
- package/.gsd/templates/phase-summary.md +0 -52
- package/.gsd/templates/project.md +0 -124
- package/.gsd/templates/requirements.md +0 -92
- package/.gsd/templates/roadmap.md +0 -103
- package/.gsd/templates/spec.md +0 -51
- package/.gsd/templates/sprint.md +0 -57
- package/.gsd/templates/stack.md +0 -62
- package/.gsd/templates/state.md +0 -92
- package/.gsd/templates/state_snapshot.md +0 -132
- package/.gsd/templates/todo.md +0 -32
- package/.gsd/templates/token_report.md +0 -79
- package/.gsd/templates/user-setup.md +0 -116
- package/.husky/commit-msg +0 -1
- package/.husky/pre-commit +0 -1
- package/commitlint.config.js +0 -3
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';var _t=require('baileys'),I=require('radashi'),lmdb=require('lmdb'),lruCache=require('lru-cache'),asyncMutex=require('async-mutex'),nanospinner=require('nanospinner'),Ot=require('pino'),events=require('events'),mediaProcess=require('@zaadevofc/media-process'),Ft=require('crypto'),a=require('valibot'),nt=require('gradient-string'),Vt=require('fs/promises'),zt=require('figlet'),Ht=require('qrcode-terminal'),U=require('fs'),W=require('path'),url=require('url');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var _t__default=/*#__PURE__*/_interopDefault(_t);var I__namespace=/*#__PURE__*/_interopNamespace(I);var Ot__default=/*#__PURE__*/_interopDefault(Ot);var Ft__default=/*#__PURE__*/_interopDefault(Ft);var a__namespace=/*#__PURE__*/_interopNamespace(a);var nt__default=/*#__PURE__*/_interopDefault(nt);var Vt__default=/*#__PURE__*/_interopDefault(Vt);var zt__default=/*#__PURE__*/_interopDefault(zt);var Ht__default=/*#__PURE__*/_interopDefault(Ht);var U__namespace=/*#__PURE__*/_interopNamespace(U);var W__namespace=/*#__PURE__*/_interopNamespace(W);var Te={encode:i=>JSON.stringify(i,_t.BufferJSON.replacer),decode:i=>JSON.parse(i,_t.BufferJSON.reviver)},Me=new Map,Ce=(i,e)=>(Me.has(i)||Me.set(i,lmdb.open({path:i,...e})),Me.get(i)),Ge=i=>Ce(`.session/${i}/auth/creds`,{compression:false,encoder:Te}),ne=i=>Ce(`.session/${i}/auth/keys`,{compression:false,encoder:Te}),Ve=(i,e)=>Ce(`.session/${i}/store/${e}`,{compression:true,encoder:Te});var Ae=class{cache;mutex=new asyncMutex.Mutex;namespace;constructor(e,t){this.namespace=e,this.cache=new lruCache.LRUCache({max:t?.max??500,ttl:t?.ttl});}key(e){return `${this.namespace}:${e}`}set(e,t){this.cache.set(this.key(e),t);}get(e){return this.cache.get(this.key(e))}has(e){return this.cache.has(this.key(e))}delete(e){return this.cache.delete(this.key(e))}getOrSet(e,t){if(this.has(e))return this.get(e);let n=t();return this.set(e,n),n}async getOrCreate(e,t){if(this.has(e))return this.get(e);let n=await this.mutex.acquire();try{if(this.has(e))return this.get(e);let o=await t();return this.set(e,o),o}finally{n();}}clear(){this.cache.clear();}keys(){return Array.from(this.cache.keys()).filter(e=>e.startsWith(`${this.namespace}:`)).map(e=>e.slice(this.namespace.length+1))}getAll(){let e={};for(let t of this.keys())e[t]=this.get(t);return e}get size(){return this.keys().length}},Re=class{namespaces=new Map;spinner=nanospinner.createSpinner("",{color:"green"});logger=Ot__default.default({level:"silent",enabled:false});events=new events.EventEmitter;ns(e,t){return this.namespaces.has(e)||this.namespaces.set(e,new Ae(e,t)),this.namespaces.get(e)}drop(e){let t=this.namespaces.get(e);return t?(t.clear(),this.namespaces.delete(e),true):false}snapshot(){let e={};for(let[t,n]of this.namespaces)e[t]=n.getAll();return e}get namespaceNames(){return Array.from(this.namespaces.keys())}},f=new Re;var j=f.ns("context",{max:500,ttl:1e3*60*10}),ze=f.ns("cache",{max:2e3,ttl:1e3*60*5}),d=f.ns("center",{max:500,ttl:1e3*60*10}),Pe=f.ns("rate",{max:5e3,ttl:1e3*10}),P=f.ns("group",{max:500,ttl:1e3*60*5}),Je=f.ns("msg",{max:1e3});var Ke=async i=>{f.spinner.start(" Initializing auth state...");let e=Ge(i),t=ne(i),n=await e.get("creds"),o=n||_t.initAuthCreds();return n?f.spinner.success(" Auth credentials loaded successfully"):f.spinner.success(" Initialized new auth session"),{state:{creds:o,keys:{get:async(s,r)=>{let u={};return await Promise.all(r.map(async l=>{let g=`${s}:${l}`,w=await t.get(g);s==="app-state-sync-key"&&w&&(w=_t.proto.Message.AppStateSyncKeyData.fromObject(w)),u[l]=w;})),u},set:async s=>{let r=[];for(let u in s)for(let l in s[u]){let g=s[u][l],w=`${u}:${l}`;r.push({key:w,value:g});}for(let u of I__namespace.cluster(r,500))await Promise.all(u.map(({key:l,value:g})=>g?t.put(l,g):t.remove(l)));}}},saveCreds:async()=>{await e.put("creds",o);}}};var J=class{constructor(e){this.cache=e;}get(e){return this.cache.get(e)}set(e,t){this.cache.set(e,t);}del(e){this.cache.delete(e);}flushAll(){this.cache.clear();}};var Ye=(i,e)=>({logger:i.health.logger,printQRInTerminal:false,enableRecentMessageCache:true,emitOwnEvents:true,keepAliveIntervalMs:3e4,browser:_t.Browsers.macOS("Desktop"),markOnlineOnConnect:i.options.autoOnline,syncFullHistory:i.options.syncFullHistory,msgRetryCounterCache:new J(Je),mediaCache:new J(ze),auth:{creds:e.creds,keys:_t.makeCacheableSignalKeyStore(e.keys,f.logger)},cachedGroupMetadata:async t=>P.get(t),shouldIgnoreJid:()=>false,shouldSyncHistoryMessage:()=>i.options.syncFullHistory,patchMessageBeforeSending:t=>t,getMessage:async t=>{if(!t?.remoteJid||!t?.id)return _t.proto.Message.fromObject({});let n=await i.db("messages").get(t.id);return _t.proto.Message.fromObject(n||{})}});var Ze=async i=>{let e=i.options.session||"zaileys",{state:t,saveCreds:n}=await Ke(e),{version:o}=await _t.fetchLatestBaileysVersion(),s=Ye(i,t),r=_t__default.default({...s,version:o});r.ev.on("creds.update",n),d.set("socket",r);};function Xe(i,e){let t=e.length;return new Proxy(i,{get(n,o,s){if(o in n){let r=Reflect.get(n,o,s);return typeof r=="function"?r.bind(s):r}for(let r=0;r<t;r++){let u=e[r];if(o in u){let l=Reflect.get(u,o,u);return typeof l=="function"?l.bind(u):l}}},set(n,o,s,r){if(o in n)return Reflect.set(n,o,s,r);for(let u=0;u<t;u++){let l=e[u];if(o in l)return Reflect.set(l,o,s,l)}return Reflect.set(n,o,s,r)},has(n,o){if(o in i)return true;for(let s=0;s<t;s++)if(o in e[s])return true;return false},ownKeys(){let n=new Set(Reflect.ownKeys(i)),o=[...n];for(let s=0;s<t;s++)for(let r of Reflect.ownKeys(e[s]))n.has(r)||(n.add(r),o.push(r));return o},getOwnPropertyDescriptor(n,o){let s=Object.getOwnPropertyDescriptor(i,o);if(s)return s;for(let r=0;r<t;r++)if(s=Object.getOwnPropertyDescriptor(e[r],o),s)return {...s,configurable:true}}})}var se=class{constructor(e){this.client=e;}interval=null;start(){let e=this.client.options.autoCleanUp;e?.enabled&&(this.interval=setInterval(()=>{this.run();},e.intervalMs),this.run());}stop(){this.interval&&(clearInterval(this.interval),this.interval=null);}async run(){let e=this.client.options.autoCleanUp;if(!e?.enabled)return;let t=Date.now()-e.maxAgeMs;for(let n of e.scopes)try{let o=this.client.db(n),s=[];for(let{value:r}of o.getRange())r&&r.timestamp!==void 0&&r.timestamp<t&&s.push(r);if(s.length>0){let r=s.map(u=>u.key?.id||u.id);for(let u of I__namespace.cluster(r,500))await Promise.all(u.map(l=>o.remove(l)));f.spinner.info(` [CleanUpManager] Cleaned up ${s.length} items from ${n}`);}}catch{}}};var C={CRITICAL:20,HIGH:10,NORMAL:0,LOW:-10},Ie=class{concurrency;timeout;onError;queue;running;completed;failed;isClosing;closeResolve;_idleResolvers=[];constructor(e){this.concurrency=e?.concurrency||20,this.timeout=e?.timeout||3e4,this.onError=e?.onError||this._defaultErrorHandler,this.queue=[],this.running=new Set,this.completed=0,this.failed=0,this.isClosing=false,this.closeResolve=null;}add(e,t){if(this.isClosing)throw new Error("Queue is closing, cannot add new tasks");let n={id:this._generateId(),fn:e,priority:t?.priority||0,timeout:t?.timeout||this.timeout,retries:0,maxRetries:t?.maxRetries||0,createdAt:Date.now()},o=this.queue.findIndex(s=>s.priority<n.priority);return o===-1?this.queue.push(n):this.queue.splice(o,0,n),this._process(),n.id}addBulk(e){return e.map(({fn:t,options:n})=>this.add(t,n))}async _process(){for(;this.running.size<this.concurrency&&this.queue.length>0;){let e=this.queue.shift();this.running.add(e),this._executeTask(e);}this.isClosing&&this.running.size===0&&this.queue.length===0&&this.closeResolve?.(),this.isIdle()&&(this._idleResolvers.forEach(e=>e()),this._idleResolvers=[]);}async _executeTask(e){try{await this._withTimeout(e.fn(),e.timeout),this.completed++;}catch(t){if(e.retries<e.maxRetries){e.retries++;let n=Math.min(500*2**e.retries,3e4);setTimeout(()=>{this.isClosing||(this.queue.unshift(e),this._process());},n);}else this.failed++,this.onError(t,e);}finally{this.running.delete(e),this._process();}}_withTimeout(e,t){let n,o=new Promise((s,r)=>{n=setTimeout(()=>r(new Error("Task timeout")),t);});return Promise.race([e,o]).finally(()=>clearTimeout(n))}async close(e=0){if(this.isClosing=true,this.running.size===0&&this.queue.length===0)return;let t=new Promise(n=>{this.closeResolve=n;});if(e>0){let n=new Promise(o=>setTimeout(o,e));await Promise.race([t,n]);}else await t;}forceClose(){this.queue=[],this.running.clear(),this.isClosing=true,this.closeResolve?.();}getStats(){return {queued:this.queue.length,running:this.running.size,completed:this.completed,failed:this.failed,total:this.completed+this.failed}}isIdle(){return this.queue.length===0&&this.running.size===0}async waitUntilIdle(){if(!this.isIdle())return new Promise(e=>{this._idleResolvers.push(e);})}_defaultErrorHandler(e,t){console.error(`[FireForget] Task ${t.id} failed:`,e.message);}_generateId(){return Ft__default.default.randomUUID()}},S=new Ie;var oe=class{constructor(e){this.client=e;this.keysDb=ne(e.options.session);}keysDb;async repair(e){if(e)try{let t=this.client.socket;t&&t.authState&&(await t.authState.keys.set({session:{[e]:null},"sender-key":{[e]:null}}),f.spinner.warn(` [HealthManager] Repaired session for ${e} due to Bad MAC by clearing auth cache`));}catch(t){this.logger.error({err:t},"Failed to repair session");}}get logger(){return Ot__default.default({level:"silent"},{write:e=>{try{let t=JSON.parse(e),n=t.msg||"",o=["Bad MAC","Session error:","Closing open session in favor of incoming prekey bundle","Error: Bad MAC"];if(n.includes("Bad MAC")){let s=t.jid||t.remoteJid;s&&this.repair(s);}o.some(s=>n.includes(s))||t.level>=50&&t.err&&console.error(t.err);}catch{}}})}};var H=(i,e)=>{let t=a__namespace.safeParse(i,e);if(t.issues){let n=[],o=r=>{for(let u of r)if(u.issues&&u.issues.length>0)o(u.issues);else {let l=u.path?.map(g=>g.key).join(".")||"root";n.push(`${l}: ${u.message}`);}};o(t.issues);let s=Array.from(new Set(n));throw new Error(`Validation Error:
|
|
2
2
|
- ${s.join(`
|
|
3
|
-
- `)}`)}return t.output};var y=(i,e="lime")=>Array.isArray(e)?nt__default.default(e)(i):nt__default.default([e,e])(i),Oe=i=>{try{return JSON.parse(i)}catch{return I__namespace.tryit(()=>JSON.parse(JSON.stringify(i)||"{}"))()[1]}},K=i=>{try{return JSON.stringify(i)}catch{let e=I__namespace.tryit(()=>JSON.stringify(Oe(i)||"{}"))();return e[0]?"{}":e[1]}},_s=(i="")=>I__namespace.shuffle(i.split("")).join(""),Q=(i="",e="")=>i?i.toLowerCase().includes(e.toLowerCase()):null,st=(i="")=>{if(!i)return [];let e=i.match(_t.URL_REGEX)||[];return Array.isArray(e)?e:[e]},js=i=>i[Math.floor(Math.random()*i.length)],Ee=(i,e)=>{if(!(!Array.isArray(i)||i.length===0)&&!(!Array.isArray(e)||e.length===0)){for(let t of i)if(!(!t||typeof t!="object"))for(let n of e){let o=I__namespace.get(t,n);if(!I__namespace.isEmpty(o)||typeof o=="number"||typeof o=="boolean"){if(typeof o=="string"&&o.trim()==="")continue;return o}}}},Fs=(i,e)=>{let t=Array.isArray(e)?e:[e],n=(r,u)=>Object.entries(u).every(([l,g])=>r?.[l]===g),o=(r,u)=>Object.entries(u).some(([l,g])=>r?.[l]===g),s=r=>Array.isArray(r)?r.find(s)??r:I__namespace.isObject(r)?t.find(g=>n(r,g))||t.find(g=>o(r,g))?r:Object.values(r).find(s)??r:null;return s(i)},Ls=(i,e,t)=>new Proxy(i,{apply(n,o,s){e?.(s);let r=Reflect.apply(n,o,s);return t?t(r,s):r}}),ot=i=>i.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");var We=i=>{let e;Array.isArray(i)?e=i.join("|"):typeof i=="string"?e=i:e=String(i);let t=2166136261,n=e.length;for(let o=0;o<n;o++)t^=e.charCodeAt(o),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return "Z4D3FC"+(t>>>0).toString(16).padStart(8,"0").toUpperCase()},rt=(i="")=>{if(!i)return [];let e=new Set;for(let t of i.matchAll(/@(\d+)/g))e.add(t[1]);return Array.from(e)},Ne=(i="")=>{if(!i)return [];let e=new Set;for(let t of i.matchAll(/@(\d+)/g))t[1].length<=15&&e.add(t[1]);return [...e].flatMap(t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},ie=i=>{let e=i.filter(Boolean).map(o=>_t.jidNormalizedUser(o)),t=e.find(o=>!o.includes("@lid")),n=e.find(o=>o.includes("@lid"));return {id:t||n||null,lid:n||null}},Vs=i=>i?.length?[...i].map(e=>`${e}@s.whatsapp.net`):[],at=i=>I__namespace.omit(i,["url","contextInfo","fileSha256","fileEncSha256","mediaKey","directPath","waveform","thumbnail","jpegThumbnail","thumbnailEncSha256","thumbnailSha256","thumbnailDirectPath","firstFrameSidecar","streamingSidecar","scansSidecar","callKey","message","key","midQualityFileSha256","historySyncNotification","appStateSyncKeyShare","appStateSyncKeyRequest","initialSecurityNotificationSettingSync","appStateFatalExceptionNotification","disappearingMode","peerDataOperationRequestMessage","peerDataOperationRequestResponseMessage","botFeedbackMessage"]),re=i=>{if(!i)return {leaf:void 0,chain:[]};let e=_t.extractMessageContent(i)||i,t=[];for(;e&&typeof e=="object";){let n=_t.getContentType(e);if(!n)break;t.push(n);let o=e[n];if(!o||typeof o!="object"){e=o;break}e=o;}return {leaf:e,chain:t}},E=i=>Number(i?.split("@")[0]);var v=i=>i,ct=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(i){throw i}},$e=async i=>{try{let e=`.session/${i}`;await Vt__default.default.rm(e,{recursive:!0,force:!0});}catch{f.spinner.error(`Failed to remove auth creds for session "${i}"!`);}},$=(i="")=>{if(!i?.length)return null;let e=i.replace(/\u202E(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/\u202D(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/[\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/gu,"").replace(/[\u200B\u200C\u200D\uFEFF]/gu,"").replace(/[\u00AD\u034F\u115F\u1160\u17B4\u17B5\u180B-\u180E]/gu,"").replace(/[\u2060-\u2064\u206A-\u206F]/gu,"").replace(/[\u2800\uFFFC\uFFFD]/gu,"").replace(/[\uFE00-\uFE0F]/gu,"").normalize("NFKD").replace(/[\u0300-\u036F]/gu,"").replace(/[\u1AB0-\u1AFF]/gu,"").replace(/[\u1DC0-\u1DFF]/gu,"").replace(/[\u20D0-\u20FF]/gu,"").replace(/[\uFE20-\uFE2F]/gu,"").replace(/[\p{Cc}]/gu,"").replace(/[\p{Cf}]/gu,"").replace(/[\p{Co}]/gu,"").replace(/[\p{Cn}]/gu,"").replace(/[\p{Cs}]/gu,"").replace(/[\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]/gu," ").replace(/[\u2028\u2029]/gu," ").replace(/[\t\r\n\f\v]/g," ").normalize("NFKC").normalize("NFC").replace(/\s+/g," ").trim();return e.length?e:null};var ae=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=d.get("socket");e.ev.on("call",async t=>{for(let n of t){let o=await this.parse(n);o&&(S.add(async()=>{await Promise.all([this.client.middleware.run({calls:o}),this.client.plugins.execute(this.client,{messages:o})]);},{priority:C.NORMAL,timeout:5e3}),f.events.emit("calls",o),this.client.options?.autoRejectCall&&S.add(async()=>e.rejectCall(o.callId,o.callerId),{priority:C.CRITICAL,timeout:3e3}));}});}async parse(e){let t=d.get("socket"),n={};return n.callId=e.id,n.callerId=_t.jidNormalizedUser(e.from),n.roomId=_t.jidNormalizedUser(e.chatId),n.roomName=$(t?.user?.name||t?.user?.verifiedName),n.date=e.date,n.offline=e.offline,n.status=e.status,n.isVideo=!!e.isVideo,n.isGroup=!!e.isGroup,this.client.logs.call(n),n}};var pt=i=>{Ht__default.default.generate(i,{small:true},e=>{console.log(e);});},ut=async()=>{console.clear(),f.spinner.start(" Checking for updates...");let i="3.0.
|
|
3
|
+
- `)}`)}return t.output};var y=(i,e="lime")=>Array.isArray(e)?nt__default.default(e)(i):nt__default.default([e,e])(i),Oe=i=>{try{return JSON.parse(i)}catch{return I__namespace.tryit(()=>JSON.parse(JSON.stringify(i)||"{}"))()[1]}},K=i=>{try{return JSON.stringify(i)}catch{let e=I__namespace.tryit(()=>JSON.stringify(Oe(i)||"{}"))();return e[0]?"{}":e[1]}},_s=(i="")=>I__namespace.shuffle(i.split("")).join(""),Q=(i="",e="")=>i?i.toLowerCase().includes(e.toLowerCase()):null,st=(i="")=>{if(!i)return [];let e=i.match(_t.URL_REGEX)||[];return Array.isArray(e)?e:[e]},js=i=>i[Math.floor(Math.random()*i.length)],Ee=(i,e)=>{if(!(!Array.isArray(i)||i.length===0)&&!(!Array.isArray(e)||e.length===0)){for(let t of i)if(!(!t||typeof t!="object"))for(let n of e){let o=I__namespace.get(t,n);if(!I__namespace.isEmpty(o)||typeof o=="number"||typeof o=="boolean"){if(typeof o=="string"&&o.trim()==="")continue;return o}}}},Fs=(i,e)=>{let t=Array.isArray(e)?e:[e],n=(r,u)=>Object.entries(u).every(([l,g])=>r?.[l]===g),o=(r,u)=>Object.entries(u).some(([l,g])=>r?.[l]===g),s=r=>Array.isArray(r)?r.find(s)??r:I__namespace.isObject(r)?t.find(g=>n(r,g))||t.find(g=>o(r,g))?r:Object.values(r).find(s)??r:null;return s(i)},Ls=(i,e,t)=>new Proxy(i,{apply(n,o,s){e?.(s);let r=Reflect.apply(n,o,s);return t?t(r,s):r}}),ot=i=>i.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");var We=i=>{let e;Array.isArray(i)?e=i.join("|"):typeof i=="string"?e=i:e=String(i);let t=2166136261,n=e.length;for(let o=0;o<n;o++)t^=e.charCodeAt(o),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return "Z4D3FC"+(t>>>0).toString(16).padStart(8,"0").toUpperCase()},rt=(i="")=>{if(!i)return [];let e=new Set;for(let t of i.matchAll(/@(\d+)/g))e.add(t[1]);return Array.from(e)},Ne=(i="")=>{if(!i)return [];let e=new Set;for(let t of i.matchAll(/@(\d+)/g))t[1].length<=15&&e.add(t[1]);return [...e].flatMap(t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},ie=i=>{let e=i.filter(Boolean).map(o=>_t.jidNormalizedUser(o)),t=e.find(o=>!o.includes("@lid")),n=e.find(o=>o.includes("@lid"));return {id:t||n||null,lid:n||null}},Vs=i=>i?.length?[...i].map(e=>`${e}@s.whatsapp.net`):[],at=i=>I__namespace.omit(i,["url","contextInfo","fileSha256","fileEncSha256","mediaKey","directPath","waveform","thumbnail","jpegThumbnail","thumbnailEncSha256","thumbnailSha256","thumbnailDirectPath","firstFrameSidecar","streamingSidecar","scansSidecar","callKey","message","key","midQualityFileSha256","historySyncNotification","appStateSyncKeyShare","appStateSyncKeyRequest","initialSecurityNotificationSettingSync","appStateFatalExceptionNotification","disappearingMode","peerDataOperationRequestMessage","peerDataOperationRequestResponseMessage","botFeedbackMessage"]),re=i=>{if(!i)return {leaf:void 0,chain:[]};let e=_t.extractMessageContent(i)||i,t=[];for(;e&&typeof e=="object";){let n=_t.getContentType(e);if(!n)break;t.push(n);let o=e[n];if(!o||typeof o!="object"){e=o;break}e=o;}return {leaf:e,chain:t}},E=i=>Number(i?.split("@")[0]);var v=i=>i,ct=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(i){throw i}},$e=async i=>{try{let e=`.session/${i}`;await Vt__default.default.rm(e,{recursive:!0,force:!0});}catch{f.spinner.error(`Failed to remove auth creds for session "${i}"!`);}},$=(i="")=>{if(!i?.length)return null;let e=i.replace(/\u202E(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/\u202D(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/[\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/gu,"").replace(/[\u200B\u200C\u200D\uFEFF]/gu,"").replace(/[\u00AD\u034F\u115F\u1160\u17B4\u17B5\u180B-\u180E]/gu,"").replace(/[\u2060-\u2064\u206A-\u206F]/gu,"").replace(/[\u2800\uFFFC\uFFFD]/gu,"").replace(/[\uFE00-\uFE0F]/gu,"").normalize("NFKD").replace(/[\u0300-\u036F]/gu,"").replace(/[\u1AB0-\u1AFF]/gu,"").replace(/[\u1DC0-\u1DFF]/gu,"").replace(/[\u20D0-\u20FF]/gu,"").replace(/[\uFE20-\uFE2F]/gu,"").replace(/[\p{Cc}]/gu,"").replace(/[\p{Cf}]/gu,"").replace(/[\p{Co}]/gu,"").replace(/[\p{Cn}]/gu,"").replace(/[\p{Cs}]/gu,"").replace(/[\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]/gu," ").replace(/[\u2028\u2029]/gu," ").replace(/[\t\r\n\f\v]/g," ").normalize("NFKC").normalize("NFC").replace(/\s+/g," ").trim();return e.length?e:null};var ae=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=d.get("socket");e.ev.on("call",async t=>{for(let n of t){let o=await this.parse(n);o&&(S.add(async()=>{await Promise.all([this.client.middleware.run({calls:o}),this.client.plugins.execute(this.client,{messages:o})]);},{priority:C.NORMAL,timeout:5e3}),f.events.emit("calls",o),this.client.options?.autoRejectCall&&S.add(async()=>e.rejectCall(o.callId,o.callerId),{priority:C.CRITICAL,timeout:3e3}));}});}async parse(e){let t=d.get("socket"),n={};return n.callId=e.id,n.callerId=_t.jidNormalizedUser(e.from),n.roomId=_t.jidNormalizedUser(e.chatId),n.roomName=$(t?.user?.name||t?.user?.verifiedName),n.date=e.date,n.offline=e.offline,n.status=e.status,n.isVideo=!!e.isVideo,n.isGroup=!!e.isGroup,this.client.logs.call(n),n}};var pt=i=>{Ht__default.default.generate(i,{small:true},e=>{console.log(e);});},ut=async()=>{console.clear(),f.spinner.start(" Checking for updates...");let i="3.0.1",e="zaadevofc",t=await ct(),n=i===t;f.spinner.stop();let o="Zaileys",s=`
|
|
4
4
|
by ${e} \xB7 v${i}`,r="\u2014 discord.gg/KBHhTTVUc5",u="\u2014 chat.whatsapp.com/GlQfvc83mSH3F6ov06vuCt",l=`${n?"\u2714 Already using latest version!":`\u2714 Update available! (v${t})`}
|
|
5
5
|
`,g=n?"blue":"orange",w=await zt__default.default.text(o),O=nt.cristal(w);console.log(O),console.log(y(s,"dimgray")),console.log(y(r,"purple")),console.log(y(u,"green")),console.log(y(l,g));};var le=class{constructor(e){this.client=e;this.initialize();}async initialize(){f.spinner.start(" Initializing connection...");let e=d.get("socket"),t={},n=async()=>{t.status="reload",f.spinner.warn(" Connection lost. Attempting auto-reload..."),await this.client.initialize();},o=async()=>{await _t.delay(3e3),f.spinner.warn(" Invalid session. Attempting auto cleaning creds..."),await _t.delay(3e3),await $e(this.client.options.session),await n();};if(this.client.options.authType==="pairing"&&this.client.options.phoneNumber&&!e.authState.creds.registered){f.spinner.update(" Generating pairing code..."),await _t.delay(3500);try{t.authTimeout=Date.now()+6e4;let s=new Date(t.authTimeout).toLocaleTimeString(),r=await e.requestPairingCode(this.client.options.phoneNumber.toString());f.spinner.warn(` Pairing expired at ${nt.cristal(s)}`),f.spinner.warn(` Pairing code: ${r}`),t.code=r;}catch{await o();}}e.ev.on("connection.update",async s=>{let{connection:r,lastDisconnect:u,qr:l}=s;if(t.status=r||"connecting",t.authType=this.client.options.authType,f.spinner.update(" Connection status: "+nt.cristal(t.status)),this.client.options.authType==="qr"&&l){t.authTimeout=Date.now()+6e4;let g=new Date(t.authTimeout).toLocaleTimeString();f.spinner.warn(" Please scan the QR code..."),f.spinner.warn(` Qr code expired at ${nt.cristal(g)}`),pt(l),t.qr=l;return}if(r==="close"){let g=v(u?.error)?.output?.statusCode,w=u?.error?.message||"Unknown Error",O=g??"Internal";if(f.spinner.error(` [${O} - Closed] ${w}`),g===_t.DisconnectReason.loggedOut){this.client.options.deleteSessionOnLogout?(f.spinner.warn(" Session logged out or invalidated. Self-healing..."),await $e(this.client.options.session),setTimeout(()=>n(),3e3)):f.spinner.warn(" Session logged out or invalidated. Automatic session deletion is disabled.");return}if(g===405){f.spinner.warn(" Session invalid/stale or used by another device (405)."),f.spinner.warn(" Automatic reconnecting..."),setTimeout(()=>n(),3e3);return}if(g===500){f.spinner.error(" Server error occurred, attempting reconnect..."),setTimeout(()=>n(),3e3);return}typeof g=="number"&&(f.spinner.warn(` Connection marked for reconnect (${g}). Wait a moment...`),setTimeout(()=>n(),3e3));}if(r==="open")if(e.user?.id){let g=_t.jidNormalizedUser(e.user.id).split("@")[0],w=e.user.name||e.user.verifiedName;f.spinner.success(` Connected as ${nt.cristal(w||g)}`);}else f.spinner.success(" Connected!");f.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:s})=>{t.status="syncing",t.syncProgress=s,f.spinner.start(" Syncing messages history..."),s&&f.spinner.update(` Syncing messages history ${s+"%"}`),s==100&&(f.spinner.success(" Syncing messages history completed!"),t.syncCompleted=true),f.events.emit("connection",t);});}};var mt={text:"text",conversation:"text",imageMessage:"image",contactMessage:"contact",locationMessage:"location",documentMessage:"document",audioMessage:"audio",videoMessage:"video",protocolMessage:"protocol",contactsArrayMessage:"contacts",highlyStructuredMessage:"highlyStructured",sendPaymentMessage:"sendPayment",liveLocationMessage:"location",requestPaymentMessage:"requestPayment",groupStatusMentionMessage:"groupStatusMention",statusMentionMessage:"statusMention",albumMessage:"album",declinePaymentRequestMessage:"declinePaymentRequest",cancelPaymentRequestMessage:"cancelPaymentRequest",templateMessage:"template",stickerMessage:"sticker",groupInviteMessage:"groupInvite",templateButtonReplyMessage:"buttons",productMessage:"product",deviceSentMessage:"deviceSent",listMessage:"lists",viewOnceMessage:"viewOnce",orderMessage:"order",listResponseMessage:"lists",ephemeralMessage:"ephemeral",invoiceMessage:"invoice",buttonsMessage:"buttons",buttonsResponseMessage:"buttons",paymentInviteMessage:"paymentInvite",interactiveMessage:"interactive",reactionMessage:"reaction",stickerSyncRmrMessage:"sticker",questionMessage:"question",nativeFlowResponseMessage:"lists",interactiveResponseMessage:"interactiveResponse",pollCreationMessage:"pollCreation",pollCreationMessageKey:"pollUpdate",pollUpdateMessage:"pollUpdate",keepInChatMessage:"keepInChat",documentWithCaptionMessage:"document",requestPhoneNumberMessage:"requestPhoneNumber",viewOnceMessageV2:"viewOnce",encReactionMessage:"reaction",editedMessage:"text",viewOnceMessageV2Extension:"viewOnce",pollCreationMessageV2:"pollCreation",scheduledCallCreationMessage:"scheduledCallCreation",groupMentionedMessage:"groupMentioned",pinInChatMessage:"pinInChat",pollCreationMessageV3:"pollCreation",scheduledCallEditMessage:"scheduledCallEdit",ptvMessage:"ptv",botInvokeMessage:"botInvoke",callLogMesssage:"callLog",encCommentMessage:"encComment",bcallMessage:"bcall",lottieStickerMessage:"lottieSticker",eventMessage:"event",commentMessage:"comment",newsletterAdminInviteMessage:"text",extendedTextMessageWithParentKey:"text",extendedTextMessage:"text",placeholderMessage:"placeholder",encEventUpdateMessage:"encEventUpdate"},_e={whatsapp:"0@s.whatsapp.net",meta:"13135550002@s.whatsapp.net",chatgpt:"18002428478@s.whatsapp.net",copilot:"18772241042@s.whatsapp.net",instagram:"447723442971@s.whatsapp.net",tiktok:"6285574670498@s.whatsapp.net"};var pe=class{constructor(e){this.client=e;this.maxMessages=this.client.options.limiter?.maxMessages||20;}maxMessages;async isSpam(e){let t=Pe.get(e)||0;return t>=this.maxMessages?true:(Pe.set(e,t+1),false)}};var ue=class{constructor(e){this.client=e;this.limiter=new pe(e),this.maxReplies=this.client.options?.maxReplies??3,this.initialize();}limiter;maxReplies;async initialize(){let e=d.get("socket");if(!e?.ev){console.warn("\u26A0\uFE0F [Messages] Socket or socket.ev is not available during initialization");return}e.ev.on("messages.upsert",async({messages:t,type:n})=>{try{if(n!=="notify"&&n!=="append")return;for(let o of t)try{let s=await this.parse(o);s&&(S.add(async()=>{await Promise.all([this.client.middleware.run({messages:s}),this.client.plugins.execute(this.client,{messages:s})]);},{priority:C.NORMAL,timeout:5e3}),d.set("message",s),f.events.emit("messages",s),this.client.options.autoRead&&S.add(async()=>e.readMessages([s.message().key]),{priority:C.NORMAL,timeout:5e3}));}catch{}}catch{}});}async parse(e,t){if(e?.category==="peer"||!e?.message||!e?.key?.id||e?.messageStubType||e?.messageStubParameters?.length||e.message?.protocolMessage?.peerDataOperationRequestResponseMessage)return;let n=e,o=d.get("socket"),s={},r=re(e.message),u=r.chain.at(-1),l=r.leaf;if(l?.message&&(r=re(l.message),u=r.chain.at(-1),l=r.leaf),s.uniqueId=null,s.channelId=null,s.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,s.chatType=mt[u],!s.chatType)return;let g=ie([o?.user?.id,o?.user?.lid]);s.receiverId=g.id||g.lid||"",s.receiverLid=g.lid||g.id||"",s.receiverName=$(o?.user?.name||o?.user?.verifiedName);let w=ie([e?.key?.remoteJid]);s.roomId=w.id,s.roomLid=w.lid;let O=l?.type===0,b=l?.type===1,X=l?.type===2,ee=s.roomId?.includes("@newsletter"),be=!!e?.message?.questionMessage,q=e?.key?.fromMe||false;if(q&&this.client.options.ignoreMe&&t!=="replied")return;let G=l?.key?.id;if(O||b||X){if(!G)return;let M=await this.client.db("messages").get(G);if(!M)return;e=M,r=re(e.message),u=r.chain.at(-1),l=r.leaf;}s.roomName=await this.client.getRoomName(s.roomId);let V=ie([e?.key?.participant,e?.key?.remoteJid,e?.key?.participantAlt,e?.key?.remoteJidAlt]);if(s.senderId=V.id,s.senderLid=V.lid,s.senderName=$(e?.pushName||e?.verifiedBizName),s.senderDevice=_t.getDevice(s.chatId||""),s.channelId=We([s.roomId,s.senderId]),s.uniqueId=We([s.channelId,s.chatId]),s.timestamp=Number(e?.messageTimestamp)*1e3,ee){let M=await o.newsletterMetadata("jid",s.roomId);s.roomName=v(M.thread_metadata.name)?.text,s.senderId=null,s.senderLid=null;}q&&(s.senderLid=s.receiverLid,s.senderId=s.receiverId,s.senderName=s.receiverName),s.text=l?.text||l?.caption||l?.name||l?.displayName||l?.conversation||l?.contentText||l?.selectedDisplayText||l||null,l?.name=="menu_options"&&(s.text=Oe(l?.paramsJson)?.id),s.text=$(s.text),s.mentions=rt(s.text),s.links=st(s.text||""),s.isBot=s.chatId.startsWith("BAE5")||s.chatId.startsWith("3EB0"),s.isFromMe=q;let D=this.client.options?.prefix,z=Array.isArray(D)?D:[D];if(s.isPrefix=!!z.find(M=>s.text?.startsWith(M)),s.isTagMe=s.mentions?.includes(s.receiverId.split("@")[0])||s.mentions?.includes(s.receiverLid.split("@")[0]),s.isStatusMention=!!e?.message?.statusMentionMessage,s.isGroupStatusMention=!!e?.message?.groupStatusMentionMessage,s.isHideTags=false,!s.text?.trim()&&l?.contextInfo?.mentionedJid?.length&&(s.isHideTags=true),s.isSpam=await this.limiter.isSpam(s.channelId),s.isPrefix&&(s.text=s.text.replace(new RegExp(`^${ot(z.find(M=>s.text?.startsWith(M))||"")}`),"")),s.isGroup=s.roomId?.includes("@g.us"),s.isNewsletter=ee,s.isQuestion=be,s.isStory=s.roomId?.includes("@broadcast"),!s.isGroup&&!s.roomName&&(s.roomName=s.senderName),s.isViewOnce=false,s.isEdited=!!Q(K(r),"editedMessage"),s.isDeleted=O,s.isPinned=b,s.isUnPinned=X,s.isBroadcast=!!e?.broadcast,s.isEphemeral=!!Q(K(l?.contextInfo),"ephemeralSettingTimestamp"),s.isForwarded=!!Q(K(l?.contextInfo),"forwardingScore"),s.citation=null,this.client.options.citation){s.citation=s.citation||{};let M=this.client.options.citation;for(let N of Object.keys(M)){let _=M[N];s.citation[N]=async()=>{let k=await _();return !![E(s.roomId),E(s.senderLid),E(s.senderId)].some(R=>k.includes(R))};}}s.chatType!=="text"&&(s.media={...at(l),buffer:()=>_t.downloadMediaMessage(e,"buffer",{}),stream:()=>_t.downloadMediaMessage(e,"stream",{})}),s.isStatusMention&&(s.chatType="statusMention"),s.isGroupStatusMention&&(s.chatType="groupStatusMention"),s.message=()=>n,s.replied=null;let B=l?.contextInfo?.quotedMessage,xe=Q(K(B),"viewOnce"),te=l?.contextInfo?.stanzaId;if(B&&this.maxReplies){if(this.maxReplies--,!te)return s;let M=await this.client.db("messages").get(te),N;xe?N={...M,message:B}:N=M,s.replied=await this.parse(N,"replied"),s.replied&&(s.replied.isViewOnce=true),this.maxReplies=this.client.options?.maxReplies??3;}return t!="replied"&&this.client.logs.message(s),s.injection=j.getAll(),s}};var me=class{constructor(e){this.client=e;this.connection=new le(e),this.messages=new ue(e),this.calls=new ae(e),this.initialize();}connection;messages;calls;async initialize(){let e=d.get("socket");e.ev.on("groups.update",async([n])=>{S.add(async()=>{let o=await e.groupMetadata(n.id);P.set(n.id,o);},{priority:C.LOW,timeout:1e4});}),e.ev.on("group-participants.update",async n=>{S.add(async()=>{let o=await e.groupMetadata(n.id);P.set(n.id,o);},{priority:C.LOW,timeout:1e4});});let t=async(n,o)=>{for(let r=0;r<n.length;r+=500){let u=n.slice(r,r+500);await Promise.all(u.map(o));}};e?.ev.on("messaging-history.set",async n=>{let{chats:o,contacts:s,messages:r}=n;S.add(async()=>{await t(o,u=>this.client.db("chats").put(u.id,u));},{priority:C.LOW,timeout:3e4}),S.add(async()=>{await t(s,u=>this.client.db("contacts").put(u.id,u));},{priority:C.LOW,timeout:3e4}),S.add(async()=>{await t(r,u=>this.client.db("messages").put(u.key.id,u));},{priority:C.LOW,timeout:3e4});}),e?.ev.on("messages.upsert",async({messages:n})=>{S.add(async()=>{await t(n,o=>this.client.db("messages").put(o.key.id,o));},{priority:C.LOW,timeout:3e4});}),e?.ev.on("chats.upsert",async n=>{S.add(async()=>{await t(n,o=>this.client.db("chats").put(o.id,o));},{priority:C.LOW,timeout:3e4});}),e?.ev.on("contacts.upsert",async n=>{S.add(async()=>{await t(n,o=>this.client.db("contacts").put(o.id,o));},{priority:C.LOW,timeout:3e4});});}};var gt=a__namespace.object({type:a__namespace.literal("quick_reply"),id:a__namespace.string(),text:a__namespace.string()}),ft=a__namespace.object({type:a__namespace.literal("cta_url"),url:a__namespace.pipe(a__namespace.string(),a__namespace.url()),text:a__namespace.string()}),yt=a__namespace.object({type:a__namespace.literal("cta_copy"),id:a__namespace.string(),copy:a__namespace.string(),text:a__namespace.string()}),ht=a__namespace.object({type:a__namespace.literal("cta_call"),text:a__namespace.string(),phoneNumber:a__namespace.string()}),Zt=a__namespace.object({type:a__namespace.literal("single_select"),text:a__namespace.string(),section:a__namespace.array(a__namespace.object({title:a__namespace.string(),highlight_label:a__namespace.optional(a__namespace.string()),rows:a__namespace.array(a__namespace.object({id:a__namespace.string(),title:a__namespace.string(),header:a__namespace.optional(a__namespace.string()),description:a__namespace.optional(a__namespace.string())}))}))}),Xt=a__namespace.object({type:a__namespace.literal("interactive"),footer:a__namespace.optional(a__namespace.string()),data:a__namespace.array(a__namespace.union([gt,ft,yt,ht,Zt]))}),en=a__namespace.object({type:a__namespace.literal("simple"),footer:a__namespace.optional(a__namespace.string()),data:a__namespace.array(a__namespace.object({id:a__namespace.string(),text:a__namespace.string()}))}),tn=a__namespace.object({body:a__namespace.string(),footer:a__namespace.optional(a__namespace.string()),header:a__namespace.optional(a__namespace.object({title:a__namespace.optional(a__namespace.string()),subtitle:a__namespace.optional(a__namespace.string()),hasMediaAttachment:a__namespace.optional(a__namespace.boolean()),image:a__namespace.optional(a__namespace.string()),video:a__namespace.optional(a__namespace.string())})),nativeFlow:a__namespace.array(a__namespace.union([gt,ft,yt,ht]))}),nn=a__namespace.object({type:a__namespace.literal("carousel"),data:a__namespace.array(tn)}),vt=a__namespace.union([en,Xt,nn]);var sn=a__namespace.optional(a__namespace.object({maxMessages:a__namespace.optional(a__namespace.number(),20),durationMs:a__namespace.optional(a__namespace.number(),1e4)})),on=a__namespace.optional(a__namespace.record(a__namespace.string(),a__namespace.custom(i=>typeof i=="function"))),rn=a__namespace.optional(a__namespace.object({provider:a__namespace.union([a__namespace.picklist(["whatsapp","meta","chatgpt","copilot","instagram","tiktok"]),a__namespace.number()])})),je=a__namespace.optional(a__namespace.picklist(["default","rounded","circle","oval"]),"default"),an=a__namespace.optional(a__namespace.object({packageName:a__namespace.optional(a__namespace.string()),authorName:a__namespace.optional(a__namespace.string()),quality:a__namespace.optional(a__namespace.number()),shape:a__namespace.optional(je)})),cn=a__namespace.optional(a__namespace.object({enabled:a__namespace.optional(a__namespace.boolean(),false),intervalMs:a__namespace.optional(a__namespace.number(),3600*1e3),maxAgeMs:a__namespace.optional(a__namespace.number(),1440*60*1e3),scopes:a__namespace.optional(a__namespace.array(a__namespace.string()),["messages"])})),kt=a__namespace.object({session:a__namespace.optional(a__namespace.string(),"zaileys"),prefix:a__namespace.optional(a__namespace.union([a__namespace.string(),a__namespace.array(a__namespace.string())])),ignoreMe:a__namespace.optional(a__namespace.boolean(),true),showLogs:a__namespace.optional(a__namespace.boolean(),true),fancyLogs:a__namespace.optional(a__namespace.boolean(),false),syncFullHistory:a__namespace.optional(a__namespace.boolean(),true),disableFFmpeg:a__namespace.optional(a__namespace.boolean(),false),autoMarkAI:a__namespace.optional(a__namespace.boolean(),true),autoMentions:a__namespace.optional(a__namespace.boolean(),true),autoOnline:a__namespace.optional(a__namespace.boolean(),true),autoRead:a__namespace.optional(a__namespace.boolean(),true),autoPresence:a__namespace.optional(a__namespace.boolean(),true),autoRejectCall:a__namespace.optional(a__namespace.boolean(),true),showSpinner:a__namespace.optional(a__namespace.boolean(),true),maxReplies:a__namespace.optional(a__namespace.number(),3),deleteSessionOnLogout:a__namespace.optional(a__namespace.boolean(),false),pluginsDir:a__namespace.optional(a__namespace.string(),"plugins"),pluginsHmr:a__namespace.optional(a__namespace.boolean(),true),autoCleanUp:cn,limiter:sn,citation:on,fakeReply:rn,sticker:an}),ln=a__namespace.object({authType:a__namespace.literal("pairing"),phoneNumber:a__namespace.number()}),pn=a__namespace.object({authType:a__namespace.literal("qr")}),wt=a__namespace.union([a__namespace.object({...ln.entries,...kt.entries}),a__namespace.object({...pn.entries,...kt.entries})]),si=a__namespace.picklist(["connection","messages","calls"]);var Y=a__namespace.union([a__namespace.pipe(a__namespace.string(),a__namespace.url()),a__namespace.pipe(a__namespace.string(),a__namespace.base64()),a__namespace.custom(i=>i instanceof Buffer)]),bt=a__namespace.looseObject({text:a__namespace.string()}),un=a__namespace.looseObject({image:Y,caption:a__namespace.optional(a__namespace.string())}),mn=a__namespace.looseObject({audio:Y,caption:a__namespace.optional(a__namespace.string()),ptt:a__namespace.optional(a__namespace.boolean())}),dn=a__namespace.looseObject({video:Y,caption:a__namespace.optional(a__namespace.string()),ptv:a__namespace.optional(a__namespace.boolean())}),gn=a__namespace.looseObject({sticker:Y,shape:a__namespace.optional(je),caption:a__namespace.optional(a__namespace.string())}),fn=a__namespace.looseObject({document:Y,caption:a__namespace.optional(a__namespace.string()),fileName:a__namespace.optional(a__namespace.string())}),yn=a__namespace.looseObject({location:a__namespace.optional(a__namespace.object({latitude:a__namespace.number(),longitude:a__namespace.number(),url:a__namespace.optional(a__namespace.pipe(a__namespace.string(),a__namespace.url())),title:a__namespace.optional(a__namespace.string()),footer:a__namespace.optional(a__namespace.string())}))}),hn=a__namespace.looseObject({contacts:a__namespace.object({title:a__namespace.optional(a__namespace.string()),contacts:a__namespace.array(a__namespace.object({fullname:a__namespace.string(),phoneNumber:a__namespace.number(),organization:a__namespace.optional(a__namespace.string())}))})}),vn=a__namespace.object({poll:a__namespace.object({name:a__namespace.string(),answers:a__namespace.array(a__namespace.string()),isMultiple:a__namespace.optional(a__namespace.boolean(),false)})}),xt=a__namespace.object({replied:a__namespace.optional(a__namespace.custom(i=>typeof i=="object"&&i!==null)),isForwardedMany:a__namespace.optional(a__namespace.boolean()),isViewOnce:a__namespace.optional(a__namespace.boolean()),banner:a__namespace.optional(a__namespace.custom(i=>typeof i=="object"&&i!==null)),buttons:a__namespace.optional(vt)});a__namespace.picklist(["forward","button","edit","delete"]);var kn=a__namespace.union([bt,un,mn,dn,gn,fn,yn,hn,vn]),St=a__namespace.union([a__namespace.string(),a__namespace.intersect([kn,a__namespace.omit(xt,["buttons"])])]),Mt=a__namespace.intersect([bt,a__namespace.omit(xt,["banner"])]);var de=class{toNativeSimple(e){return e.map(({id:t,text:n})=>({name:"quick_reply",buttonParamsJson:JSON.stringify({display_text:n,id:t})}))}toNativeInteractive(e){let t={quick_reply:n=>({display_text:n.text,id:n.id}),cta_url:n=>({display_text:n.text,url:n.url,merchant_url:n.url}),cta_copy:n=>({display_text:n.text,id:n.id,copy_code:n.copy}),cta_call:n=>({display_text:n.text,phone_number:n.phoneNumber}),single_select:n=>({title:n.text,sections:n.section})};return e.map(n=>({name:n.type,buttonParamsJson:JSON.stringify(t[n.type](n))}))}async build(e,t){let n=v(e).buttons,o=n?.data||[],s=n?.type;if(s==="carousel"){let u=[];for(let l of o){let g={};(l.header?.image||l.header?.video)&&(g=await _t.prepareWAMessageMedia(l.header.image?{image:{url:l.header.image}}:{video:{url:l.header.video}},{upload:t.waUploadToServer})),u.push({body:_t.proto.Message.InteractiveMessage.Body.fromObject({text:l.body}),footer:l.footer?_t.proto.Message.InteractiveMessage.Footer.fromObject({text:l.footer}):void 0,header:_t.proto.Message.InteractiveMessage.Header.fromObject({title:l.header?.title||"",subtitle:l.header?.subtitle||"",hasMediaAttachment:!!(l.header?.image||l.header?.video||l.header?.hasMediaAttachment),...g}),nativeFlowMessage:_t.proto.Message.InteractiveMessage.NativeFlowMessage.fromObject({buttons:this.toNativeInteractive(l.nativeFlow)})});}return {body:_t.proto.Message.InteractiveMessage.Body.fromObject({text:v(e).text}),footer:n.footer?_t.proto.Message.InteractiveMessage.Footer.fromObject({text:n.footer}):void 0,carouselMessage:_t.proto.Message.InteractiveMessage.CarouselMessage.fromObject({cards:u})}}let r=s=="simple"?this.toNativeSimple(o):this.toNativeInteractive(o);return {body:{text:v(e).text},footer:n.footer?{text:n.footer}:void 0,nativeFlowMessage:{buttons:r}}}async send(e,t,n){let o=d.get("socket"),s=o?.authState?.creds?.me?.id||o?.user?.id,r=await this.build(t,o),u=v(t).buttons?.type==="carousel",l=_t.generateWAMessageFromContent(e,u?{viewOnceMessage:{message:{messageContextInfo:{deviceListMetadata:{},deviceListMetadataVersion:2},interactiveMessage:r}}}:{interactiveMessage:r},{userJid:s,messageId:_t.generateMessageIDV2(s),...n});return await o.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"}}]}]}]}),o.config?.emitOwnEvents&&!_t.isJidGroup(e)&&process.nextTick(()=>o.upsertMessage?.(l,"append")),l}};var ge=class{constructor(e){this.client=e;}async signal(e,t,n,o){n!="delete"&&(n=="button"?t=H(Mt,t):t=H(St,t));let s=d.get("socket"),r={},u={},l=typeof t=="string",g=(k,T)=>typeof k=="object"&&k!==null&&T in k,w=this.client.options?.fakeReply?.provider,O=this.client.options?.autoMentions,b=this.client.options?.autoPresence,X=g(t,"replied"),ee=g(t,"banner"),be=g(t,"isViewOnce"),q=n=="button",G=g(t,"image"),V=g(t,"video"),D=g(t,"audio"),z=g(t,"sticker"),B=g(t,"document"),xe=g(t,"location"),te=g(t,"contacts"),M=g(t,"poll"),N=G||V||D||z||B,_=l?t:Ee([t],["text","caption"]);if(b&&(D?await s.sendPresenceUpdate("recording",e):await s.sendPresenceUpdate("composing",e)),O&&(r={...r,mentions:Ne(_),contextInfo:{mentionedJid:Ne(_)}}),X&&(u.quoted=v(t).replied,w&&(u.quoted.key.remoteJid=_e[w],u.quoted.key.participant=_e[w])),ee&&(r={...r,contextInfo:{externalAdReply:v(t).banner}},r.contextInfo.externalAdReply.mediaType=1),be&&(r={...r,viewOnce:v(t)?.isViewOnce}),_&&(r={...r,text:_,caption:_},N&&delete v(r).text),N){let k=Ee([t],["image","video","audio","sticker","document"]);if(G&&(r={...r,image:await new mediaProcess.Media(k).image.toJpeg(),jpegThumbnail:await new mediaProcess.Media(k).thumbnail.get()}),V){let T=v(t)?.ptv;r={...r,video:await new mediaProcess.Media(k).video.toMp4(),ptv:T,jpegThumbnail:await new mediaProcess.Media(k).thumbnail.get()};}if(D){let T=v(t)?.ptt;r={...r,audio:await new mediaProcess.Media(k).audio.toOpus(),ptt:T,mimetype:T?"audio/ogg; codecs=opus":"audio/mpeg"};}if(z){let T=v(t)?.shape;r={...r,sticker:await new mediaProcess.Media(k).sticker.create({...this.client.options?.sticker,shape:T})};}if(B){let T=await new mediaProcess.Media(k).document.create(),R=v(t).fileName||`Document_${T.fileName.slice(-6)}`,Se=R.includes(".")?R.substring(0,R.lastIndexOf(".")):R;r={...r,...T,fileName:`${Se}.${T.ext} - Zaileys`};}}if(xe){let k=v(t).location;r={...r,location:{degreesLatitude:k.latitude,degreesLongitude:k.longitude,url:k.url,address:k.footer,name:k.title}};}if(te){let k=v(t)?.contacts,T=k?.contacts.map(R=>{let Se=["BEGIN:VCARD","VERSION:3.0",`FN:${R.fullname}`,`ORG:${R.organization||""}`,`TEL;type=CELL;type=VOICE;waid=${R.phoneNumber}:${R.phoneNumber}`,"END:VCARD"].join(`
|
|
6
6
|
`);return {displayName:R.fullname,vcard:Se}});r={...r,contacts:{displayName:k?.title,contacts:T}};}if(M){let k=v(t)?.poll;r={...r,poll:{name:k.name,values:k.answers,selectableCount:k.isMultiple?1:0,toAnnouncementGroup:true}};}return n=="forward"&&(r={...r,contextInfo:{...v(r).contextInfo,isForwarded:true,forwardingScore:v(t).isForwardedMany?9999:1}}),n=="edit"&&(r={...r,edit:o?.key},await s.sendPresenceUpdate("paused",e)),n=="delete"&&(r={...r,delete:o?.key},await s.sendPresenceUpdate("paused",e)),q?await new de().send(e,t,u):await s.sendMessage(e,v(r),u)}async send(e,t){return await this.signal(e,t)}async forward(e,t){return await this.signal(e,t,"forward")}async button(e,t){return await this.signal(e,t,"button")}async edit(e,t){return await this.signal(e.key.remoteJid,t,"edit",e)}async delete(e){return Array.isArray(e)?Promise.all(e.map(t=>this.signal(t.key.remoteJid,{},"delete",t))):await this.signal(e.key.remoteJid,{},"delete",e)}async presence(e,t){let n=d.get("socket"),o={typing:"composing",recording:"recording",online:"available",offline:"unavailable",paused:"paused"};return await n.sendPresenceUpdate(o[t],e)}async reaction(e,t){return await d.get("socket").sendMessage(e.key.remoteJid,{react:{text:t,key:e?.key}})}async memberLabel(e,t){return await d.get("socket").relayMessage(e,{protocolMessage:{type:30,memberLabel:{label:t,labelTimestamp:Date.now()}}},{})}};var Fe=class{constructor(e){this.client=e;}async create(e,t){return await d.get("socket").communityCreate(e,t)}async createGroup(e,t,n){return await d.get("socket").communityCreateGroup(e,t,n)}async leave(e){return await d.get("socket").communityLeave(e)}async metadata(e){return await d.get("socket").communityMetadata(e)}async update(e,t,n){let o=d.get("socket");switch(t){case "subject":return await o.communityUpdateSubject(e,n);case "description":return await o.communityUpdateDescription(e,n)}}async group(e,t,n){let o=d.get("socket");switch(t){case "link":if(!n)throw "Group JID is required for linking";return await o.communityLinkGroup(e,n);case "unlink":if(!n)throw "Group JID is required for unlinking";return await o.communityUnlinkGroup(e,n);case "linked":return await o.communityFetchLinkedGroups(e)}}async participants(e,t,n,o){let s=d.get("socket");switch(t){case "list":return await s.communityRequestParticipantsList(e);case "request-update":return await s.communityRequestParticipantsUpdate(e,o,v(n));case "update":if(!n||!o)throw "Action and participants are required for update";return await s.communityParticipantsUpdate(e,o,v(n));case "all":return await s.communityFetchAllParticipating()}}async invite(e,t,...n){let o=d.get("socket");switch(t){case "code":return await o.communityInviteCode(e);case "revoke":return await o.communityRevokeInvite(e);case "accept":return await o.communityAcceptInvite(e);case "info":return await o.communityGetInviteInfo(e);case "revokeV4":return await o.communityRevokeInviteV4(e,n[0]);case "acceptV4":return await o.communityAcceptInviteV4(e,n[0])}}async settings(e,t,n){let o=d.get("socket");switch(t){case "ephemeral":return await o.communityToggleEphemeral(e,n);case "update":return await o.communitySettingUpdate(e,n);case "memberAdd":return await o.communityMemberAddMode(e,n);case "approval":return await o.communityJoinApprovalMode(e,n)}}},fe=class{constructor(e){this.mlient=e;this.community=new Fe(e);}community};var Le=class{constructor(e){this.client=e;}async create(e,t){return await d.get("socket").groupCreate(e,t)}async participant(e,t,n){return await d.get("socket").groupParticipantsUpdate(e,t,n)}async profile(e,t,n){let o=d.get("socket"),s=Buffer.isBuffer(t);switch(n){case "subject":if(!s)return await o.groupUpdateSubject(e,t);case "description":if(!s)return await o.groupUpdateDescription(e,t);case "picture":return await o.updateProfilePicture(e,await new mediaProcess.Media(t).toBuffer())}}async setting(e,t){let n=d.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 d.get("socket").groupLeave(e)}async inviteCode(e,t){let n=d.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=d.get("socket"),n=P.get(e);if(n)return n;let o=await t.groupMetadata(e);return o&&P.set(e,o),o}async requestJoin(e,t,n){let o=d.get("socket");switch(n){case "approve":return await o.groupRequestParticipantsUpdate(e,t,n);case "reject":return await o.groupRequestParticipantsUpdate(e,t,n)}}async requestJoinList(e){return await d.get("socket").groupRequestParticipantsList(e)}async fetchAllGroups(){return await d.get("socket").groupFetchAllParticipating()}async ephemeral(e,t){let n=d.get("socket"),o={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await n.groupToggleEphemeral(e,o[t])}},ye=class{constructor(e){this.glient=e;this.group=new Le(e);}group};var Ue=class{constructor(e){this.client=e;}async create(e,t){return await d.get("socket").newsletterCreate(e,t)}async action(e,t){let n=d.get("socket");switch(t){case "follow":return await n.newsletterFollow(e);case "unfollow":return await n.newsletterUnfollow(e);case "mute":return await n.newsletterMute(e);case "unmute":return await n.newsletterUnmute(e);}}async update(e,t,n){let o=d.get("socket"),s=Buffer.isBuffer(t);switch(n){case "name":if(!s)return await o.newsletterUpdateName(e,t);case "description":if(!s)return await o.newsletterUpdateDescription(e,t);case "picture":return await o.newsletterUpdatePicture(e,await new mediaProcess.Media(t).toBuffer())}}async metadata(e,t){return await d.get("socket").newsletterMetadata(t,e)}async subscribers(e){return await d.get("socket").newsletterSubscribers(e)}async reaction(e,t,n){return await d.get("socket").newsletterReactMessage(e,t,n)}async fetchMessages(e,t,n,o){let s=d.get("socket"),r=n.getTime()/1e3,u=o.getTime()/1e3;return await s.newsletterFetchMessages(e,t,r,u)}async adminCount(e){return await d.get("socket").newsletterAdminCount(e)}async changeOwner(e,t){return await d.get("socket").newsletterChangeOwner(e,t)}async demote(e,t){return await d.get("socket").newsletterDemote(e,t)}async delete(e){return await d.get("socket").newsletterDelete(e)}async removePicture(e){return await d.get("socket").newsletterRemovePicture(e)}},he=class{constructor(e){this.nlient=e;this.newsletter=new Ue(e);}newsletter};var Be=class{constructor(e){this.client=e;}async block(e){return await d.get("socket").updateBlockStatus(e,"block")}async unblock(e){return await d.get("socket").updateBlockStatus(e,"unblock")}async lastSeen(e){return await d.get("socket").updateLastSeenPrivacy(e)}async online(e){return await d.get("socket").updateOnlinePrivacy(e)}async picture(e){return await d.get("socket").updateProfilePicturePrivacy(e)}async status(e){return await d.get("socket").updateStatusPrivacy(e)}async readReceipt(e){return await d.get("socket").updateReadReceiptsPrivacy(e)}async groupsAdd(e){return await d.get("socket").updateGroupsAddPrivacy(e)}async ephemeral(e){let t=d.get("socket"),n={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await t.updateDefaultDisappearingMode(n[e])}async blocklist(){return await d.get("socket").fetchBlocklist()}async getSettings(){return await d.get("socket").fetchPrivacySettings(true)}},ve=class{constructor(e){this.plient=e;this.privacy=new Be(e);}privacy};var Gi=a__namespace.object({status:a__namespace.picklist(["connecting","open","close","reload","syncing"]),authType:a__namespace.picklist(["pairing","qr"]),authTimeout:a__namespace.optional(a__namespace.number()),syncProgress:a__namespace.optional(a__namespace.number()),syncCompleted:a__namespace.optional(a__namespace.boolean(),false),qr:a__namespace.optional(a__namespace.string()),code:a__namespace.optional(a__namespace.string())});var Cn=a__namespace.picklist(["unknown","android","ios","desktop","web"]),An=a__namespace.picklist(["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","interactiveResponse","pollCreation","pollUpdate","keepInChat","requestPhoneNumber","scheduledCallCreation","groupMentioned","pinInChat","scheduledCallEdit","ptv","botInvoke","callLog","encComment","bcall","lottieSticker","event","comment","placeholder","encEventUpdate"]),Tt=a__namespace.object({channelId:a__namespace.string(),uniqueId:a__namespace.string(),chatId:a__namespace.string(),chatType:An,receiverLid:a__namespace.string(),receiverId:a__namespace.string(),receiverName:a__namespace.string(),roomId:a__namespace.string(),roomLid:a__namespace.nullable(a__namespace.string()),roomName:a__namespace.nullable(a__namespace.string()),senderLid:a__namespace.string(),senderId:a__namespace.string(),senderName:a__namespace.string(),senderDevice:Cn,timestamp:a__namespace.number(),text:a__namespace.nullable(a__namespace.string()),mentions:a__namespace.array(a__namespace.string()),links:a__namespace.array(a__namespace.string()),isBot:a__namespace.boolean(),isFromMe:a__namespace.boolean(),isPrefix:a__namespace.boolean(),isSpam:a__namespace.boolean(),isTagMe:a__namespace.boolean(),isStatusMention:a__namespace.boolean(),isGroupStatusMention:a__namespace.boolean(),isHideTags:a__namespace.boolean(),isGroup:a__namespace.boolean(),isNewsletter:a__namespace.boolean(),isQuestion:a__namespace.boolean(),isStory:a__namespace.boolean(),isViewOnce:a__namespace.boolean(),isEdited:a__namespace.boolean(),isDeleted:a__namespace.boolean(),isPinned:a__namespace.boolean(),isUnPinned:a__namespace.boolean(),isBroadcast:a__namespace.boolean(),isEphemeral:a__namespace.boolean(),isForwarded:a__namespace.boolean(),citation:a__namespace.nullable(a__namespace.record(a__namespace.string(),a__namespace.custom(i=>typeof i=="function"))),media:a__namespace.nullable(a__namespace.looseObject({buffer:a__namespace.custom(i=>typeof i=="function"),stream:a__namespace.custom(i=>typeof i=="function")})),injection:a__namespace.optional(a__namespace.record(a__namespace.string(),a__namespace.any()),{}),message:a__namespace.custom(i=>typeof i=="function")}),Ji=a__namespace.object({...Tt.entries,replied:a__namespace.nullable(Tt)});var Qi=a__namespace.object({callId:a__namespace.string(),callerId:a__namespace.string(),roomId:a__namespace.string(),roomName:a__namespace.string(),date:a__namespace.date(),offline:a__namespace.boolean(),status:a__namespace.picklist(["accept","offer","reject","ringing","terminate","timeout"]),isVideo:a__namespace.boolean(),isGroup:a__namespace.boolean()});var ke=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));};f.events.on("connection",e);}displayIndicator(){this.logsDisplayed||(this.logsDisplayed=true,console.log(),f.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=v(this.getRoomColor(e)),n=e?.text?.toLowerCase()?.match("zaileys"),o=this.client.options?.fancyLogs,s=y(`[${new Date(e?.timestamp).toTimeString().split(" ")[0]}]`,"dimgray"),r=y(`${e?.roomName}`,t),u=e?.text?.slice(0,300)||"",l=u?.length>=300?"...":"";if(o){let g=y("\u2501".repeat(50),"dimgray"),w=y("\u2192","dimgray"),O=y("\u2022",t),b=`
|
|
@@ -31,7 +31,7 @@ ${g}
|
|
|
31
31
|
* See LICENSE file for details.
|
|
32
32
|
|
|
33
33
|
* Author: zaadevofc
|
|
34
|
-
* Last build time: 3/17/2026 11:
|
|
34
|
+
* Last build time: 3/17/2026 11:58:22 AM
|
|
35
35
|
*
|
|
36
36
|
* Repository: git+https://github.com/zeative/zaileys.git
|
|
37
37
|
*/exports.BaseMessagesType=Tt;exports.ButtonCarouselCardType=tn;exports.ButtonCarouselType=nn;exports.ButtonInteractiveCallType=ht;exports.ButtonInteractiveCopyType=yt;exports.ButtonInteractiveReplyType=gt;exports.ButtonInteractiveSingleSelectType=Zt;exports.ButtonInteractiveType=Xt;exports.ButtonInteractiveUrlType=ft;exports.ButtonSimpleType=en;exports.ButtonType=vt;exports.CitationType=on;exports.Client=Ct;exports.ClientAuthPairingType=ln;exports.ClientAuthQRType=pn;exports.ClientBaseType=kt;exports.ClientOptionsType=wt;exports.ClientStickerOptionsType=an;exports.ClientStickerShapeType=je;exports.DEVICE_ENUM_TYPES=Cn;exports.EventEnumType=si;exports.FakeReplyType=rn;exports.LimiterType=sn;exports.ListenerCallsType=Qi;exports.ListenerConnectionType=Gi;exports.ListenerMessagesType=Ji;exports.MESSAGE_ENUM_TYPES=An;exports.Plugins=Z;exports.autoCleanUp=cn;exports.cleanJid=E;exports.cleanMediaObject=at;exports.definePlugins=gr;exports.escapeRegExp=ot;exports.extractJids=Ne;exports.extractUrls=st;exports.findGlobalWord=Q;exports.findNestedByKeys=Fs;exports.generateId=We;exports.getDeepContent=re;exports.getLatestLibVersion=ct;exports.getUsersMentions=rt;exports.ignoreLint=v;exports.logColor=y;exports.modifyFn=Ls;exports.normalizeText=$;exports.numbersToJids=Vs;exports.pickKeysFromArray=Ee;exports.randomize=js;exports.registerAuthCreds=Ze;exports.removeAuthCreds=$e;exports.resolveJids=ie;exports.shuffleString=_s;exports.toJson=Oe;exports.toString=K;exports.useAuthState=Ke;Object.keys(mediaProcess).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return mediaProcess[k]}})});
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import jt,{initAuthCreds,proto,fetchLatestBaileysVersion,URL_REGEX,jidNormalizedUser,extractMessageContent,getContentType,makeCacheableSignalKeyStore,Browsers,delay,DisconnectReason,getDevice,downloadMediaMessage,prepareWAMessageMedia,generateWAMessageFromContent,generateMessageIDV2,isJidGroup,BufferJSON}from'baileys';import*as O from'radashi';import {open}from'lmdb';import {LRUCache}from'lru-cache';import {Mutex}from'async-mutex';import {createSpinner}from'nanospinner';import Et from'pino';import {EventEmitter}from'events';import {initializeFFmpeg,Media}from'@zaadevofc/media-process';export*from'@zaadevofc/media-process';import Lt from'crypto';import*as a from'valibot';import st,{cristal}from'gradient-string';import zt from'fs/promises';import Jt from'figlet';import Kt from'qrcode-terminal';import*as B from'fs';import*as N from'path';import {pathToFileURL}from'url';var Ce={encode:i=>JSON.stringify(i,BufferJSON.replacer),decode:i=>JSON.parse(i,BufferJSON.reviver)},Te=new Map,Ae=(i,e)=>(Te.has(i)||Te.set(i,open({path:i,...e})),Te.get(i)),Ve=i=>Ae(`.session/${i}/auth/creds`,{compression:false,encoder:Ce}),se=i=>Ae(`.session/${i}/auth/keys`,{compression:false,encoder:Ce}),ze=(i,e)=>Ae(`.session/${i}/store/${e}`,{compression:true,encoder:Ce});var Re=class{cache;mutex=new Mutex;namespace;constructor(e,t){this.namespace=e,this.cache=new LRUCache({max:t?.max??500,ttl:t?.ttl});}key(e){return `${this.namespace}:${e}`}set(e,t){this.cache.set(this.key(e),t);}get(e){return this.cache.get(this.key(e))}has(e){return this.cache.has(this.key(e))}delete(e){return this.cache.delete(this.key(e))}getOrSet(e,t){if(this.has(e))return this.get(e);let n=t();return this.set(e,n),n}async getOrCreate(e,t){if(this.has(e))return this.get(e);let n=await this.mutex.acquire();try{if(this.has(e))return this.get(e);let o=await t();return this.set(e,o),o}finally{n();}}clear(){this.cache.clear();}keys(){return Array.from(this.cache.keys()).filter(e=>e.startsWith(`${this.namespace}:`)).map(e=>e.slice(this.namespace.length+1))}getAll(){let e={};for(let t of this.keys())e[t]=this.get(t);return e}get size(){return this.keys().length}},Pe=class{namespaces=new Map;spinner=createSpinner("",{color:"green"});logger=Et({level:"silent",enabled:false});events=new EventEmitter;ns(e,t){return this.namespaces.has(e)||this.namespaces.set(e,new Re(e,t)),this.namespaces.get(e)}drop(e){let t=this.namespaces.get(e);return t?(t.clear(),this.namespaces.delete(e),true):false}snapshot(){let e={};for(let[t,n]of this.namespaces)e[t]=n.getAll();return e}get namespaceNames(){return Array.from(this.namespaces.keys())}},f=new Pe;var F=f.ns("context",{max:500,ttl:1e3*60*10}),Je=f.ns("cache",{max:2e3,ttl:1e3*60*5}),d=f.ns("center",{max:500,ttl:1e3*60*10}),Ie=f.ns("rate",{max:5e3,ttl:1e3*10}),I=f.ns("group",{max:500,ttl:1e3*60*5}),He=f.ns("msg",{max:1e3});var Qe=async i=>{f.spinner.start(" Initializing auth state...");let e=Ve(i),t=se(i),n=await e.get("creds"),o=n||initAuthCreds();return n?f.spinner.success(" Auth credentials loaded successfully"):f.spinner.success(" Initialized new auth session"),{state:{creds:o,keys:{get:async(s,r)=>{let u={};return await Promise.all(r.map(async l=>{let g=`${s}:${l}`,b=await t.get(g);s==="app-state-sync-key"&&b&&(b=proto.Message.AppStateSyncKeyData.fromObject(b)),u[l]=b;})),u},set:async s=>{let r=[];for(let u in s)for(let l in s[u]){let g=s[u][l],b=`${u}:${l}`;r.push({key:b,value:g});}for(let u of O.cluster(r,500))await Promise.all(u.map(({key:l,value:g})=>g?t.put(l,g):t.remove(l)));}}},saveCreds:async()=>{await e.put("creds",o);}}};var H=class{constructor(e){this.cache=e;}get(e){return this.cache.get(e)}set(e,t){this.cache.set(e,t);}del(e){this.cache.delete(e);}flushAll(){this.cache.clear();}};var Ze=(i,e)=>({logger:i.health.logger,printQRInTerminal:false,enableRecentMessageCache:true,emitOwnEvents:true,keepAliveIntervalMs:3e4,browser:Browsers.macOS("Desktop"),markOnlineOnConnect:i.options.autoOnline,syncFullHistory:i.options.syncFullHistory,msgRetryCounterCache:new H(He),mediaCache:new H(Je),auth:{creds:e.creds,keys:makeCacheableSignalKeyStore(e.keys,f.logger)},cachedGroupMetadata:async t=>I.get(t),shouldIgnoreJid:()=>false,shouldSyncHistoryMessage:()=>i.options.syncFullHistory,patchMessageBeforeSending:t=>t,getMessage:async t=>{if(!t?.remoteJid||!t?.id)return proto.Message.fromObject({});let n=await i.db("messages").get(t.id);return proto.Message.fromObject(n||{})}});var Xe=async i=>{let e=i.options.session||"zaileys",{state:t,saveCreds:n}=await Qe(e),{version:o}=await fetchLatestBaileysVersion(),s=Ze(i,t),r=jt({...s,version:o});r.ev.on("creds.update",n),d.set("socket",r);};function et(i,e){let t=e.length;return new Proxy(i,{get(n,o,s){if(o in n){let r=Reflect.get(n,o,s);return typeof r=="function"?r.bind(s):r}for(let r=0;r<t;r++){let u=e[r];if(o in u){let l=Reflect.get(u,o,u);return typeof l=="function"?l.bind(u):l}}},set(n,o,s,r){if(o in n)return Reflect.set(n,o,s,r);for(let u=0;u<t;u++){let l=e[u];if(o in l)return Reflect.set(l,o,s,l)}return Reflect.set(n,o,s,r)},has(n,o){if(o in i)return true;for(let s=0;s<t;s++)if(o in e[s])return true;return false},ownKeys(){let n=new Set(Reflect.ownKeys(i)),o=[...n];for(let s=0;s<t;s++)for(let r of Reflect.ownKeys(e[s]))n.has(r)||(n.add(r),o.push(r));return o},getOwnPropertyDescriptor(n,o){let s=Object.getOwnPropertyDescriptor(i,o);if(s)return s;for(let r=0;r<t;r++)if(s=Object.getOwnPropertyDescriptor(e[r],o),s)return {...s,configurable:true}}})}var oe=class{constructor(e){this.client=e;}interval=null;start(){let e=this.client.options.autoCleanUp;e?.enabled&&(this.interval=setInterval(()=>{this.run();},e.intervalMs),this.run());}stop(){this.interval&&(clearInterval(this.interval),this.interval=null);}async run(){let e=this.client.options.autoCleanUp;if(!e?.enabled)return;let t=Date.now()-e.maxAgeMs;for(let n of e.scopes)try{let o=this.client.db(n),s=[];for(let{value:r}of o.getRange())r&&r.timestamp!==void 0&&r.timestamp<t&&s.push(r);if(s.length>0){let r=s.map(u=>u.key?.id||u.id);for(let u of O.cluster(r,500))await Promise.all(u.map(l=>o.remove(l)));f.spinner.info(` [CleanUpManager] Cleaned up ${s.length} items from ${n}`);}}catch{}}};var A={CRITICAL:20,HIGH:10,NORMAL:0,LOW:-10},Oe=class{concurrency;timeout;onError;queue;running;completed;failed;isClosing;closeResolve;_idleResolvers=[];constructor(e){this.concurrency=e?.concurrency||20,this.timeout=e?.timeout||3e4,this.onError=e?.onError||this._defaultErrorHandler,this.queue=[],this.running=new Set,this.completed=0,this.failed=0,this.isClosing=false,this.closeResolve=null;}add(e,t){if(this.isClosing)throw new Error("Queue is closing, cannot add new tasks");let n={id:this._generateId(),fn:e,priority:t?.priority||0,timeout:t?.timeout||this.timeout,retries:0,maxRetries:t?.maxRetries||0,createdAt:Date.now()},o=this.queue.findIndex(s=>s.priority<n.priority);return o===-1?this.queue.push(n):this.queue.splice(o,0,n),this._process(),n.id}addBulk(e){return e.map(({fn:t,options:n})=>this.add(t,n))}async _process(){for(;this.running.size<this.concurrency&&this.queue.length>0;){let e=this.queue.shift();this.running.add(e),this._executeTask(e);}this.isClosing&&this.running.size===0&&this.queue.length===0&&this.closeResolve?.(),this.isIdle()&&(this._idleResolvers.forEach(e=>e()),this._idleResolvers=[]);}async _executeTask(e){try{await this._withTimeout(e.fn(),e.timeout),this.completed++;}catch(t){if(e.retries<e.maxRetries){e.retries++;let n=Math.min(500*2**e.retries,3e4);setTimeout(()=>{this.isClosing||(this.queue.unshift(e),this._process());},n);}else this.failed++,this.onError(t,e);}finally{this.running.delete(e),this._process();}}_withTimeout(e,t){let n,o=new Promise((s,r)=>{n=setTimeout(()=>r(new Error("Task timeout")),t);});return Promise.race([e,o]).finally(()=>clearTimeout(n))}async close(e=0){if(this.isClosing=true,this.running.size===0&&this.queue.length===0)return;let t=new Promise(n=>{this.closeResolve=n;});if(e>0){let n=new Promise(o=>setTimeout(o,e));await Promise.race([t,n]);}else await t;}forceClose(){this.queue=[],this.running.clear(),this.isClosing=true,this.closeResolve?.();}getStats(){return {queued:this.queue.length,running:this.running.size,completed:this.completed,failed:this.failed,total:this.completed+this.failed}}isIdle(){return this.queue.length===0&&this.running.size===0}async waitUntilIdle(){if(!this.isIdle())return new Promise(e=>{this._idleResolvers.push(e);})}_defaultErrorHandler(e,t){console.error(`[FireForget] Task ${t.id} failed:`,e.message);}_generateId(){return Lt.randomUUID()}},M=new Oe;var ie=class{constructor(e){this.client=e;this.keysDb=se(e.options.session);}keysDb;async repair(e){if(e)try{let t=this.client.socket;t&&t.authState&&(await t.authState.keys.set({session:{[e]:null},"sender-key":{[e]:null}}),f.spinner.warn(` [HealthManager] Repaired session for ${e} due to Bad MAC by clearing auth cache`));}catch(t){this.logger.error({err:t},"Failed to repair session");}}get logger(){return Et({level:"silent"},{write:e=>{try{let t=JSON.parse(e),n=t.msg||"",o=["Bad MAC","Session error:","Closing open session in favor of incoming prekey bundle","Error: Bad MAC"];if(n.includes("Bad MAC")){let s=t.jid||t.remoteJid;s&&this.repair(s);}o.some(s=>n.includes(s))||t.level>=50&&t.err&&console.error(t.err);}catch{}}})}};var K=(i,e)=>{let t=a.safeParse(i,e);if(t.issues){let n=[],o=r=>{for(let u of r)if(u.issues&&u.issues.length>0)o(u.issues);else {let l=u.path?.map(g=>g.key).join(".")||"root";n.push(`${l}: ${u.message}`);}};o(t.issues);let s=Array.from(new Set(n));throw new Error(`Validation Error:
|
|
2
2
|
- ${s.join(`
|
|
3
|
-
- `)}`)}return t.output};var y=(i,e="lime")=>Array.isArray(e)?st(e)(i):st([e,e])(i),Ee=i=>{try{return JSON.parse(i)}catch{return O.tryit(()=>JSON.parse(JSON.stringify(i)||"{}"))()[1]}},Q=i=>{try{return JSON.stringify(i)}catch{let e=O.tryit(()=>JSON.stringify(Ee(i)||"{}"))();return e[0]?"{}":e[1]}},js=(i="")=>O.shuffle(i.split("")).join(""),Y=(i="",e="")=>i?i.toLowerCase().includes(e.toLowerCase()):null,ot=(i="")=>{if(!i)return [];let e=i.match(URL_REGEX)||[];return Array.isArray(e)?e:[e]},Fs=i=>i[Math.floor(Math.random()*i.length)],We=(i,e)=>{if(!(!Array.isArray(i)||i.length===0)&&!(!Array.isArray(e)||e.length===0)){for(let t of i)if(!(!t||typeof t!="object"))for(let n of e){let o=O.get(t,n);if(!O.isEmpty(o)||typeof o=="number"||typeof o=="boolean"){if(typeof o=="string"&&o.trim()==="")continue;return o}}}},Ls=(i,e)=>{let t=Array.isArray(e)?e:[e],n=(r,u)=>Object.entries(u).every(([l,g])=>r?.[l]===g),o=(r,u)=>Object.entries(u).some(([l,g])=>r?.[l]===g),s=r=>Array.isArray(r)?r.find(s)??r:O.isObject(r)?t.find(g=>n(r,g))||t.find(g=>o(r,g))?r:Object.values(r).find(s)??r:null;return s(i)},Us=(i,e,t)=>new Proxy(i,{apply(n,o,s){e?.(s);let r=Reflect.apply(n,o,s);return t?t(r,s):r}}),it=i=>i.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");var Ne=i=>{let e;Array.isArray(i)?e=i.join("|"):typeof i=="string"?e=i:e=String(i);let t=2166136261,n=e.length;for(let o=0;o<n;o++)t^=e.charCodeAt(o),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return "Z4D3FC"+(t>>>0).toString(16).padStart(8,"0").toUpperCase()},at=(i="")=>{if(!i)return [];let e=new Set;for(let t of i.matchAll(/@(\d+)/g))e.add(t[1]);return Array.from(e)},$e=(i="")=>{if(!i)return [];let e=new Set;for(let t of i.matchAll(/@(\d+)/g))t[1].length<=15&&e.add(t[1]);return [...e].flatMap(t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},re=i=>{let e=i.filter(Boolean).map(o=>jidNormalizedUser(o)),t=e.find(o=>!o.includes("@lid")),n=e.find(o=>o.includes("@lid"));return {id:t||n||null,lid:n||null}},zs=i=>i?.length?[...i].map(e=>`${e}@s.whatsapp.net`):[],ct=i=>O.omit(i,["url","contextInfo","fileSha256","fileEncSha256","mediaKey","directPath","waveform","thumbnail","jpegThumbnail","thumbnailEncSha256","thumbnailSha256","thumbnailDirectPath","firstFrameSidecar","streamingSidecar","scansSidecar","callKey","message","key","midQualityFileSha256","historySyncNotification","appStateSyncKeyShare","appStateSyncKeyRequest","initialSecurityNotificationSettingSync","appStateFatalExceptionNotification","disappearingMode","peerDataOperationRequestMessage","peerDataOperationRequestResponseMessage","botFeedbackMessage"]),ae=i=>{if(!i)return {leaf:void 0,chain:[]};let e=extractMessageContent(i)||i,t=[];for(;e&&typeof e=="object";){let n=getContentType(e);if(!n)break;t.push(n);let o=e[n];if(!o||typeof o!="object"){e=o;break}e=o;}return {leaf:e,chain:t}},W=i=>Number(i?.split("@")[0]);var k=i=>i,lt=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(i){throw i}},De=async i=>{try{let e=`.session/${i}`;await zt.rm(e,{recursive:!0,force:!0});}catch{f.spinner.error(`Failed to remove auth creds for session "${i}"!`);}},D=(i="")=>{if(!i?.length)return null;let e=i.replace(/\u202E(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/\u202D(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/[\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/gu,"").replace(/[\u200B\u200C\u200D\uFEFF]/gu,"").replace(/[\u00AD\u034F\u115F\u1160\u17B4\u17B5\u180B-\u180E]/gu,"").replace(/[\u2060-\u2064\u206A-\u206F]/gu,"").replace(/[\u2800\uFFFC\uFFFD]/gu,"").replace(/[\uFE00-\uFE0F]/gu,"").normalize("NFKD").replace(/[\u0300-\u036F]/gu,"").replace(/[\u1AB0-\u1AFF]/gu,"").replace(/[\u1DC0-\u1DFF]/gu,"").replace(/[\u20D0-\u20FF]/gu,"").replace(/[\uFE20-\uFE2F]/gu,"").replace(/[\p{Cc}]/gu,"").replace(/[\p{Cf}]/gu,"").replace(/[\p{Co}]/gu,"").replace(/[\p{Cn}]/gu,"").replace(/[\p{Cs}]/gu,"").replace(/[\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]/gu," ").replace(/[\u2028\u2029]/gu," ").replace(/[\t\r\n\f\v]/g," ").normalize("NFKC").normalize("NFC").replace(/\s+/g," ").trim();return e.length?e:null};var ce=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=d.get("socket");e.ev.on("call",async t=>{for(let n of t){let o=await this.parse(n);o&&(M.add(async()=>{await Promise.all([this.client.middleware.run({calls:o}),this.client.plugins.execute(this.client,{messages:o})]);},{priority:A.NORMAL,timeout:5e3}),f.events.emit("calls",o),this.client.options?.autoRejectCall&&M.add(async()=>e.rejectCall(o.callId,o.callerId),{priority:A.CRITICAL,timeout:3e3}));}});}async parse(e){let t=d.get("socket"),n={};return n.callId=e.id,n.callerId=jidNormalizedUser(e.from),n.roomId=jidNormalizedUser(e.chatId),n.roomName=D(t?.user?.name||t?.user?.verifiedName),n.date=e.date,n.offline=e.offline,n.status=e.status,n.isVideo=!!e.isVideo,n.isGroup=!!e.isGroup,this.client.logs.call(n),n}};var ut=i=>{Kt.generate(i,{small:true},e=>{console.log(e);});},mt=async()=>{console.clear(),f.spinner.start(" Checking for updates...");let i="3.0.
|
|
3
|
+
- `)}`)}return t.output};var y=(i,e="lime")=>Array.isArray(e)?st(e)(i):st([e,e])(i),Ee=i=>{try{return JSON.parse(i)}catch{return O.tryit(()=>JSON.parse(JSON.stringify(i)||"{}"))()[1]}},Q=i=>{try{return JSON.stringify(i)}catch{let e=O.tryit(()=>JSON.stringify(Ee(i)||"{}"))();return e[0]?"{}":e[1]}},js=(i="")=>O.shuffle(i.split("")).join(""),Y=(i="",e="")=>i?i.toLowerCase().includes(e.toLowerCase()):null,ot=(i="")=>{if(!i)return [];let e=i.match(URL_REGEX)||[];return Array.isArray(e)?e:[e]},Fs=i=>i[Math.floor(Math.random()*i.length)],We=(i,e)=>{if(!(!Array.isArray(i)||i.length===0)&&!(!Array.isArray(e)||e.length===0)){for(let t of i)if(!(!t||typeof t!="object"))for(let n of e){let o=O.get(t,n);if(!O.isEmpty(o)||typeof o=="number"||typeof o=="boolean"){if(typeof o=="string"&&o.trim()==="")continue;return o}}}},Ls=(i,e)=>{let t=Array.isArray(e)?e:[e],n=(r,u)=>Object.entries(u).every(([l,g])=>r?.[l]===g),o=(r,u)=>Object.entries(u).some(([l,g])=>r?.[l]===g),s=r=>Array.isArray(r)?r.find(s)??r:O.isObject(r)?t.find(g=>n(r,g))||t.find(g=>o(r,g))?r:Object.values(r).find(s)??r:null;return s(i)},Us=(i,e,t)=>new Proxy(i,{apply(n,o,s){e?.(s);let r=Reflect.apply(n,o,s);return t?t(r,s):r}}),it=i=>i.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");var Ne=i=>{let e;Array.isArray(i)?e=i.join("|"):typeof i=="string"?e=i:e=String(i);let t=2166136261,n=e.length;for(let o=0;o<n;o++)t^=e.charCodeAt(o),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return "Z4D3FC"+(t>>>0).toString(16).padStart(8,"0").toUpperCase()},at=(i="")=>{if(!i)return [];let e=new Set;for(let t of i.matchAll(/@(\d+)/g))e.add(t[1]);return Array.from(e)},$e=(i="")=>{if(!i)return [];let e=new Set;for(let t of i.matchAll(/@(\d+)/g))t[1].length<=15&&e.add(t[1]);return [...e].flatMap(t=>[`${t}@s.whatsapp.net`,`${t}@g.us`,`${t}@lid`])},re=i=>{let e=i.filter(Boolean).map(o=>jidNormalizedUser(o)),t=e.find(o=>!o.includes("@lid")),n=e.find(o=>o.includes("@lid"));return {id:t||n||null,lid:n||null}},zs=i=>i?.length?[...i].map(e=>`${e}@s.whatsapp.net`):[],ct=i=>O.omit(i,["url","contextInfo","fileSha256","fileEncSha256","mediaKey","directPath","waveform","thumbnail","jpegThumbnail","thumbnailEncSha256","thumbnailSha256","thumbnailDirectPath","firstFrameSidecar","streamingSidecar","scansSidecar","callKey","message","key","midQualityFileSha256","historySyncNotification","appStateSyncKeyShare","appStateSyncKeyRequest","initialSecurityNotificationSettingSync","appStateFatalExceptionNotification","disappearingMode","peerDataOperationRequestMessage","peerDataOperationRequestResponseMessage","botFeedbackMessage"]),ae=i=>{if(!i)return {leaf:void 0,chain:[]};let e=extractMessageContent(i)||i,t=[];for(;e&&typeof e=="object";){let n=getContentType(e);if(!n)break;t.push(n);let o=e[n];if(!o||typeof o!="object"){e=o;break}e=o;}return {leaf:e,chain:t}},W=i=>Number(i?.split("@")[0]);var k=i=>i,lt=async()=>{try{return (await(await fetch("https://registry.npmjs.org/zaileys")).json())["dist-tags"].latest}catch(i){throw i}},De=async i=>{try{let e=`.session/${i}`;await zt.rm(e,{recursive:!0,force:!0});}catch{f.spinner.error(`Failed to remove auth creds for session "${i}"!`);}},D=(i="")=>{if(!i?.length)return null;let e=i.replace(/\u202E(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/\u202D(.*?)(\u202C|$)/gu,(t,n)=>[...n].reverse().join("")).replace(/[\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/gu,"").replace(/[\u200B\u200C\u200D\uFEFF]/gu,"").replace(/[\u00AD\u034F\u115F\u1160\u17B4\u17B5\u180B-\u180E]/gu,"").replace(/[\u2060-\u2064\u206A-\u206F]/gu,"").replace(/[\u2800\uFFFC\uFFFD]/gu,"").replace(/[\uFE00-\uFE0F]/gu,"").normalize("NFKD").replace(/[\u0300-\u036F]/gu,"").replace(/[\u1AB0-\u1AFF]/gu,"").replace(/[\u1DC0-\u1DFF]/gu,"").replace(/[\u20D0-\u20FF]/gu,"").replace(/[\uFE20-\uFE2F]/gu,"").replace(/[\p{Cc}]/gu,"").replace(/[\p{Cf}]/gu,"").replace(/[\p{Co}]/gu,"").replace(/[\p{Cn}]/gu,"").replace(/[\p{Cs}]/gu,"").replace(/[\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]/gu," ").replace(/[\u2028\u2029]/gu," ").replace(/[\t\r\n\f\v]/g," ").normalize("NFKC").normalize("NFC").replace(/\s+/g," ").trim();return e.length?e:null};var ce=class{constructor(e){this.client=e;this.initialize();}async initialize(){let e=d.get("socket");e.ev.on("call",async t=>{for(let n of t){let o=await this.parse(n);o&&(M.add(async()=>{await Promise.all([this.client.middleware.run({calls:o}),this.client.plugins.execute(this.client,{messages:o})]);},{priority:A.NORMAL,timeout:5e3}),f.events.emit("calls",o),this.client.options?.autoRejectCall&&M.add(async()=>e.rejectCall(o.callId,o.callerId),{priority:A.CRITICAL,timeout:3e3}));}});}async parse(e){let t=d.get("socket"),n={};return n.callId=e.id,n.callerId=jidNormalizedUser(e.from),n.roomId=jidNormalizedUser(e.chatId),n.roomName=D(t?.user?.name||t?.user?.verifiedName),n.date=e.date,n.offline=e.offline,n.status=e.status,n.isVideo=!!e.isVideo,n.isGroup=!!e.isGroup,this.client.logs.call(n),n}};var ut=i=>{Kt.generate(i,{small:true},e=>{console.log(e);});},mt=async()=>{console.clear(),f.spinner.start(" Checking for updates...");let i="3.0.1",e="zaadevofc",t=await lt(),n=i===t;f.spinner.stop();let o="Zaileys",s=`
|
|
4
4
|
by ${e} \xB7 v${i}`,r="\u2014 discord.gg/KBHhTTVUc5",u="\u2014 chat.whatsapp.com/GlQfvc83mSH3F6ov06vuCt",l=`${n?"\u2714 Already using latest version!":`\u2714 Update available! (v${t})`}
|
|
5
5
|
`,g=n?"blue":"orange",b=await Jt.text(o),E=cristal(b);console.log(E),console.log(y(s,"dimgray")),console.log(y(r,"purple")),console.log(y(u,"green")),console.log(y(l,g));};var pe=class{constructor(e){this.client=e;this.initialize();}async initialize(){f.spinner.start(" Initializing connection...");let e=d.get("socket"),t={},n=async()=>{t.status="reload",f.spinner.warn(" Connection lost. Attempting auto-reload..."),await this.client.initialize();},o=async()=>{await delay(3e3),f.spinner.warn(" Invalid session. Attempting auto cleaning creds..."),await delay(3e3),await De(this.client.options.session),await n();};if(this.client.options.authType==="pairing"&&this.client.options.phoneNumber&&!e.authState.creds.registered){f.spinner.update(" Generating pairing code..."),await delay(3500);try{t.authTimeout=Date.now()+6e4;let s=new Date(t.authTimeout).toLocaleTimeString(),r=await e.requestPairingCode(this.client.options.phoneNumber.toString());f.spinner.warn(` Pairing expired at ${cristal(s)}`),f.spinner.warn(` Pairing code: ${r}`),t.code=r;}catch{await o();}}e.ev.on("connection.update",async s=>{let{connection:r,lastDisconnect:u,qr:l}=s;if(t.status=r||"connecting",t.authType=this.client.options.authType,f.spinner.update(" Connection status: "+cristal(t.status)),this.client.options.authType==="qr"&&l){t.authTimeout=Date.now()+6e4;let g=new Date(t.authTimeout).toLocaleTimeString();f.spinner.warn(" Please scan the QR code..."),f.spinner.warn(` Qr code expired at ${cristal(g)}`),ut(l),t.qr=l;return}if(r==="close"){let g=k(u?.error)?.output?.statusCode,b=u?.error?.message||"Unknown Error",E=g??"Internal";if(f.spinner.error(` [${E} - Closed] ${b}`),g===DisconnectReason.loggedOut){this.client.options.deleteSessionOnLogout?(f.spinner.warn(" Session logged out or invalidated. Self-healing..."),await De(this.client.options.session),setTimeout(()=>n(),3e3)):f.spinner.warn(" Session logged out or invalidated. Automatic session deletion is disabled.");return}if(g===405){f.spinner.warn(" Session invalid/stale or used by another device (405)."),f.spinner.warn(" Automatic reconnecting..."),setTimeout(()=>n(),3e3);return}if(g===500){f.spinner.error(" Server error occurred, attempting reconnect..."),setTimeout(()=>n(),3e3);return}typeof g=="number"&&(f.spinner.warn(` Connection marked for reconnect (${g}). Wait a moment...`),setTimeout(()=>n(),3e3));}if(r==="open")if(e.user?.id){let g=jidNormalizedUser(e.user.id).split("@")[0],b=e.user.name||e.user.verifiedName;f.spinner.success(` Connected as ${cristal(b||g)}`);}else f.spinner.success(" Connected!");f.events.emit("connection",t);}),e.ev.on("messaging-history.set",({progress:s})=>{t.status="syncing",t.syncProgress=s,f.spinner.start(" Syncing messages history..."),s&&f.spinner.update(` Syncing messages history ${s+"%"}`),s==100&&(f.spinner.success(" Syncing messages history completed!"),t.syncCompleted=true),f.events.emit("connection",t);});}};var dt={text:"text",conversation:"text",imageMessage:"image",contactMessage:"contact",locationMessage:"location",documentMessage:"document",audioMessage:"audio",videoMessage:"video",protocolMessage:"protocol",contactsArrayMessage:"contacts",highlyStructuredMessage:"highlyStructured",sendPaymentMessage:"sendPayment",liveLocationMessage:"location",requestPaymentMessage:"requestPayment",groupStatusMentionMessage:"groupStatusMention",statusMentionMessage:"statusMention",albumMessage:"album",declinePaymentRequestMessage:"declinePaymentRequest",cancelPaymentRequestMessage:"cancelPaymentRequest",templateMessage:"template",stickerMessage:"sticker",groupInviteMessage:"groupInvite",templateButtonReplyMessage:"buttons",productMessage:"product",deviceSentMessage:"deviceSent",listMessage:"lists",viewOnceMessage:"viewOnce",orderMessage:"order",listResponseMessage:"lists",ephemeralMessage:"ephemeral",invoiceMessage:"invoice",buttonsMessage:"buttons",buttonsResponseMessage:"buttons",paymentInviteMessage:"paymentInvite",interactiveMessage:"interactive",reactionMessage:"reaction",stickerSyncRmrMessage:"sticker",questionMessage:"question",nativeFlowResponseMessage:"lists",interactiveResponseMessage:"interactiveResponse",pollCreationMessage:"pollCreation",pollCreationMessageKey:"pollUpdate",pollUpdateMessage:"pollUpdate",keepInChatMessage:"keepInChat",documentWithCaptionMessage:"document",requestPhoneNumberMessage:"requestPhoneNumber",viewOnceMessageV2:"viewOnce",encReactionMessage:"reaction",editedMessage:"text",viewOnceMessageV2Extension:"viewOnce",pollCreationMessageV2:"pollCreation",scheduledCallCreationMessage:"scheduledCallCreation",groupMentionedMessage:"groupMentioned",pinInChatMessage:"pinInChat",pollCreationMessageV3:"pollCreation",scheduledCallEditMessage:"scheduledCallEdit",ptvMessage:"ptv",botInvokeMessage:"botInvoke",callLogMesssage:"callLog",encCommentMessage:"encComment",bcallMessage:"bcall",lottieStickerMessage:"lottieSticker",eventMessage:"event",commentMessage:"comment",newsletterAdminInviteMessage:"text",extendedTextMessageWithParentKey:"text",extendedTextMessage:"text",placeholderMessage:"placeholder",encEventUpdateMessage:"encEventUpdate"},je={whatsapp:"0@s.whatsapp.net",meta:"13135550002@s.whatsapp.net",chatgpt:"18002428478@s.whatsapp.net",copilot:"18772241042@s.whatsapp.net",instagram:"447723442971@s.whatsapp.net",tiktok:"6285574670498@s.whatsapp.net"};var ue=class{constructor(e){this.client=e;this.maxMessages=this.client.options.limiter?.maxMessages||20;}maxMessages;async isSpam(e){let t=Ie.get(e)||0;return t>=this.maxMessages?true:(Ie.set(e,t+1),false)}};var me=class{constructor(e){this.client=e;this.limiter=new ue(e),this.maxReplies=this.client.options?.maxReplies??3,this.initialize();}limiter;maxReplies;async initialize(){let e=d.get("socket");if(!e?.ev){console.warn("\u26A0\uFE0F [Messages] Socket or socket.ev is not available during initialization");return}e.ev.on("messages.upsert",async({messages:t,type:n})=>{try{if(n!=="notify"&&n!=="append")return;for(let o of t)try{let s=await this.parse(o);s&&(M.add(async()=>{await Promise.all([this.client.middleware.run({messages:s}),this.client.plugins.execute(this.client,{messages:s})]);},{priority:A.NORMAL,timeout:5e3}),d.set("message",s),f.events.emit("messages",s),this.client.options.autoRead&&M.add(async()=>e.readMessages([s.message().key]),{priority:A.NORMAL,timeout:5e3}));}catch{}}catch{}});}async parse(e,t){if(e?.category==="peer"||!e?.message||!e?.key?.id||e?.messageStubType||e?.messageStubParameters?.length||e.message?.protocolMessage?.peerDataOperationRequestResponseMessage)return;let n=e,o=d.get("socket"),s={},r=ae(e.message),u=r.chain.at(-1),l=r.leaf;if(l?.message&&(r=ae(l.message),u=r.chain.at(-1),l=r.leaf),s.uniqueId=null,s.channelId=null,s.chatId=e?.message?.protocolMessage?.key?.id||e?.key?.id||null,s.chatType=dt[u],!s.chatType)return;let g=re([o?.user?.id,o?.user?.lid]);s.receiverId=g.id||g.lid||"",s.receiverLid=g.lid||g.id||"",s.receiverName=D(o?.user?.name||o?.user?.verifiedName);let b=re([e?.key?.remoteJid]);s.roomId=b.id,s.roomLid=b.lid;let E=l?.type===0,x=l?.type===1,ee=l?.type===2,te=s.roomId?.includes("@newsletter"),xe=!!e?.message?.questionMessage,G=e?.key?.fromMe||false;if(G&&this.client.options.ignoreMe&&t!=="replied")return;let V=l?.key?.id;if(E||x||ee){if(!V)return;let T=await this.client.db("messages").get(V);if(!T)return;e=T,r=ae(e.message),u=r.chain.at(-1),l=r.leaf;}s.roomName=await this.client.getRoomName(s.roomId);let z=re([e?.key?.participant,e?.key?.remoteJid,e?.key?.participantAlt,e?.key?.remoteJidAlt]);if(s.senderId=z.id,s.senderLid=z.lid,s.senderName=D(e?.pushName||e?.verifiedBizName),s.senderDevice=getDevice(s.chatId||""),s.channelId=Ne([s.roomId,s.senderId]),s.uniqueId=Ne([s.channelId,s.chatId]),s.timestamp=Number(e?.messageTimestamp)*1e3,te){let T=await o.newsletterMetadata("jid",s.roomId);s.roomName=k(T.thread_metadata.name)?.text,s.senderId=null,s.senderLid=null;}G&&(s.senderLid=s.receiverLid,s.senderId=s.receiverId,s.senderName=s.receiverName),s.text=l?.text||l?.caption||l?.name||l?.displayName||l?.conversation||l?.contentText||l?.selectedDisplayText||l||null,l?.name=="menu_options"&&(s.text=Ee(l?.paramsJson)?.id),s.text=D(s.text),s.mentions=at(s.text),s.links=ot(s.text||""),s.isBot=s.chatId.startsWith("BAE5")||s.chatId.startsWith("3EB0"),s.isFromMe=G;let _=this.client.options?.prefix,J=Array.isArray(_)?_:[_];if(s.isPrefix=!!J.find(T=>s.text?.startsWith(T)),s.isTagMe=s.mentions?.includes(s.receiverId.split("@")[0])||s.mentions?.includes(s.receiverLid.split("@")[0]),s.isStatusMention=!!e?.message?.statusMentionMessage,s.isGroupStatusMention=!!e?.message?.groupStatusMentionMessage,s.isHideTags=false,!s.text?.trim()&&l?.contextInfo?.mentionedJid?.length&&(s.isHideTags=true),s.isSpam=await this.limiter.isSpam(s.channelId),s.isPrefix&&(s.text=s.text.replace(new RegExp(`^${it(J.find(T=>s.text?.startsWith(T))||"")}`),"")),s.isGroup=s.roomId?.includes("@g.us"),s.isNewsletter=te,s.isQuestion=xe,s.isStory=s.roomId?.includes("@broadcast"),!s.isGroup&&!s.roomName&&(s.roomName=s.senderName),s.isViewOnce=false,s.isEdited=!!Y(Q(r),"editedMessage"),s.isDeleted=E,s.isPinned=x,s.isUnPinned=ee,s.isBroadcast=!!e?.broadcast,s.isEphemeral=!!Y(Q(l?.contextInfo),"ephemeralSettingTimestamp"),s.isForwarded=!!Y(Q(l?.contextInfo),"forwardingScore"),s.citation=null,this.client.options.citation){s.citation=s.citation||{};let T=this.client.options.citation;for(let $ of Object.keys(T)){let j=T[$];s.citation[$]=async()=>{let w=await j();return !![W(s.roomId),W(s.senderLid),W(s.senderId)].some(P=>w.includes(P))};}}s.chatType!=="text"&&(s.media={...ct(l),buffer:()=>downloadMediaMessage(e,"buffer",{}),stream:()=>downloadMediaMessage(e,"stream",{})}),s.isStatusMention&&(s.chatType="statusMention"),s.isGroupStatusMention&&(s.chatType="groupStatusMention"),s.message=()=>n,s.replied=null;let q=l?.contextInfo?.quotedMessage,Se=Y(Q(q),"viewOnce"),ne=l?.contextInfo?.stanzaId;if(q&&this.maxReplies){if(this.maxReplies--,!ne)return s;let T=await this.client.db("messages").get(ne),$;Se?$={...T,message:q}:$=T,s.replied=await this.parse($,"replied"),s.replied&&(s.replied.isViewOnce=true),this.maxReplies=this.client.options?.maxReplies??3;}return t!="replied"&&this.client.logs.message(s),s.injection=F.getAll(),s}};var de=class{constructor(e){this.client=e;this.connection=new pe(e),this.messages=new me(e),this.calls=new ce(e),this.initialize();}connection;messages;calls;async initialize(){let e=d.get("socket");e.ev.on("groups.update",async([n])=>{M.add(async()=>{let o=await e.groupMetadata(n.id);I.set(n.id,o);},{priority:A.LOW,timeout:1e4});}),e.ev.on("group-participants.update",async n=>{M.add(async()=>{let o=await e.groupMetadata(n.id);I.set(n.id,o);},{priority:A.LOW,timeout:1e4});});let t=async(n,o)=>{for(let r=0;r<n.length;r+=500){let u=n.slice(r,r+500);await Promise.all(u.map(o));}};e?.ev.on("messaging-history.set",async n=>{let{chats:o,contacts:s,messages:r}=n;M.add(async()=>{await t(o,u=>this.client.db("chats").put(u.id,u));},{priority:A.LOW,timeout:3e4}),M.add(async()=>{await t(s,u=>this.client.db("contacts").put(u.id,u));},{priority:A.LOW,timeout:3e4}),M.add(async()=>{await t(r,u=>this.client.db("messages").put(u.key.id,u));},{priority:A.LOW,timeout:3e4});}),e?.ev.on("messages.upsert",async({messages:n})=>{M.add(async()=>{await t(n,o=>this.client.db("messages").put(o.key.id,o));},{priority:A.LOW,timeout:3e4});}),e?.ev.on("chats.upsert",async n=>{M.add(async()=>{await t(n,o=>this.client.db("chats").put(o.id,o));},{priority:A.LOW,timeout:3e4});}),e?.ev.on("contacts.upsert",async n=>{M.add(async()=>{await t(n,o=>this.client.db("contacts").put(o.id,o));},{priority:A.LOW,timeout:3e4});});}};var ft=a.object({type:a.literal("quick_reply"),id:a.string(),text:a.string()}),yt=a.object({type:a.literal("cta_url"),url:a.pipe(a.string(),a.url()),text:a.string()}),ht=a.object({type:a.literal("cta_copy"),id:a.string(),copy:a.string(),text:a.string()}),vt=a.object({type:a.literal("cta_call"),text:a.string(),phoneNumber:a.string()}),Xt=a.object({type:a.literal("single_select"),text:a.string(),section:a.array(a.object({title:a.string(),highlight_label:a.optional(a.string()),rows:a.array(a.object({id:a.string(),title:a.string(),header:a.optional(a.string()),description:a.optional(a.string())}))}))}),en=a.object({type:a.literal("interactive"),footer:a.optional(a.string()),data:a.array(a.union([ft,yt,ht,vt,Xt]))}),tn=a.object({type:a.literal("simple"),footer:a.optional(a.string()),data:a.array(a.object({id:a.string(),text:a.string()}))}),nn=a.object({body:a.string(),footer:a.optional(a.string()),header:a.optional(a.object({title:a.optional(a.string()),subtitle:a.optional(a.string()),hasMediaAttachment:a.optional(a.boolean()),image:a.optional(a.string()),video:a.optional(a.string())})),nativeFlow:a.array(a.union([ft,yt,ht,vt]))}),sn=a.object({type:a.literal("carousel"),data:a.array(nn)}),kt=a.union([tn,en,sn]);var on=a.optional(a.object({maxMessages:a.optional(a.number(),20),durationMs:a.optional(a.number(),1e4)})),rn=a.optional(a.record(a.string(),a.custom(i=>typeof i=="function"))),an=a.optional(a.object({provider:a.union([a.picklist(["whatsapp","meta","chatgpt","copilot","instagram","tiktok"]),a.number()])})),Fe=a.optional(a.picklist(["default","rounded","circle","oval"]),"default"),cn=a.optional(a.object({packageName:a.optional(a.string()),authorName:a.optional(a.string()),quality:a.optional(a.number()),shape:a.optional(Fe)})),ln=a.optional(a.object({enabled:a.optional(a.boolean(),false),intervalMs:a.optional(a.number(),3600*1e3),maxAgeMs:a.optional(a.number(),1440*60*1e3),scopes:a.optional(a.array(a.string()),["messages"])})),wt=a.object({session:a.optional(a.string(),"zaileys"),prefix:a.optional(a.union([a.string(),a.array(a.string())])),ignoreMe:a.optional(a.boolean(),true),showLogs:a.optional(a.boolean(),true),fancyLogs:a.optional(a.boolean(),false),syncFullHistory:a.optional(a.boolean(),true),disableFFmpeg:a.optional(a.boolean(),false),autoMarkAI:a.optional(a.boolean(),true),autoMentions:a.optional(a.boolean(),true),autoOnline:a.optional(a.boolean(),true),autoRead:a.optional(a.boolean(),true),autoPresence:a.optional(a.boolean(),true),autoRejectCall:a.optional(a.boolean(),true),showSpinner:a.optional(a.boolean(),true),maxReplies:a.optional(a.number(),3),deleteSessionOnLogout:a.optional(a.boolean(),false),pluginsDir:a.optional(a.string(),"plugins"),pluginsHmr:a.optional(a.boolean(),true),autoCleanUp:ln,limiter:on,citation:rn,fakeReply:an,sticker:cn}),pn=a.object({authType:a.literal("pairing"),phoneNumber:a.number()}),un=a.object({authType:a.literal("qr")}),bt=a.union([a.object({...pn.entries,...wt.entries}),a.object({...un.entries,...wt.entries})]),oi=a.picklist(["connection","messages","calls"]);var Z=a.union([a.pipe(a.string(),a.url()),a.pipe(a.string(),a.base64()),a.custom(i=>i instanceof Buffer)]),xt=a.looseObject({text:a.string()}),mn=a.looseObject({image:Z,caption:a.optional(a.string())}),dn=a.looseObject({audio:Z,caption:a.optional(a.string()),ptt:a.optional(a.boolean())}),gn=a.looseObject({video:Z,caption:a.optional(a.string()),ptv:a.optional(a.boolean())}),fn=a.looseObject({sticker:Z,shape:a.optional(Fe),caption:a.optional(a.string())}),yn=a.looseObject({document:Z,caption:a.optional(a.string()),fileName:a.optional(a.string())}),hn=a.looseObject({location:a.optional(a.object({latitude:a.number(),longitude:a.number(),url:a.optional(a.pipe(a.string(),a.url())),title:a.optional(a.string()),footer:a.optional(a.string())}))}),vn=a.looseObject({contacts:a.object({title:a.optional(a.string()),contacts:a.array(a.object({fullname:a.string(),phoneNumber:a.number(),organization:a.optional(a.string())}))})}),kn=a.object({poll:a.object({name:a.string(),answers:a.array(a.string()),isMultiple:a.optional(a.boolean(),false)})}),St=a.object({replied:a.optional(a.custom(i=>typeof i=="object"&&i!==null)),isForwardedMany:a.optional(a.boolean()),isViewOnce:a.optional(a.boolean()),banner:a.optional(a.custom(i=>typeof i=="object"&&i!==null)),buttons:a.optional(kt)});a.picklist(["forward","button","edit","delete"]);var wn=a.union([xt,mn,dn,gn,fn,yn,hn,vn,kn]),Mt=a.union([a.string(),a.intersect([wn,a.omit(St,["buttons"])])]),Tt=a.intersect([xt,a.omit(St,["banner"])]);var ge=class{toNativeSimple(e){return e.map(({id:t,text:n})=>({name:"quick_reply",buttonParamsJson:JSON.stringify({display_text:n,id:t})}))}toNativeInteractive(e){let t={quick_reply:n=>({display_text:n.text,id:n.id}),cta_url:n=>({display_text:n.text,url:n.url,merchant_url:n.url}),cta_copy:n=>({display_text:n.text,id:n.id,copy_code:n.copy}),cta_call:n=>({display_text:n.text,phone_number:n.phoneNumber}),single_select:n=>({title:n.text,sections:n.section})};return e.map(n=>({name:n.type,buttonParamsJson:JSON.stringify(t[n.type](n))}))}async build(e,t){let n=k(e).buttons,o=n?.data||[],s=n?.type;if(s==="carousel"){let u=[];for(let l of o){let g={};(l.header?.image||l.header?.video)&&(g=await prepareWAMessageMedia(l.header.image?{image:{url:l.header.image}}:{video:{url:l.header.video}},{upload:t.waUploadToServer})),u.push({body:proto.Message.InteractiveMessage.Body.fromObject({text:l.body}),footer:l.footer?proto.Message.InteractiveMessage.Footer.fromObject({text:l.footer}):void 0,header:proto.Message.InteractiveMessage.Header.fromObject({title:l.header?.title||"",subtitle:l.header?.subtitle||"",hasMediaAttachment:!!(l.header?.image||l.header?.video||l.header?.hasMediaAttachment),...g}),nativeFlowMessage:proto.Message.InteractiveMessage.NativeFlowMessage.fromObject({buttons:this.toNativeInteractive(l.nativeFlow)})});}return {body:proto.Message.InteractiveMessage.Body.fromObject({text:k(e).text}),footer:n.footer?proto.Message.InteractiveMessage.Footer.fromObject({text:n.footer}):void 0,carouselMessage:proto.Message.InteractiveMessage.CarouselMessage.fromObject({cards:u})}}let r=s=="simple"?this.toNativeSimple(o):this.toNativeInteractive(o);return {body:{text:k(e).text},footer:n.footer?{text:n.footer}:void 0,nativeFlowMessage:{buttons:r}}}async send(e,t,n){let o=d.get("socket"),s=o?.authState?.creds?.me?.id||o?.user?.id,r=await this.build(t,o),u=k(t).buttons?.type==="carousel",l=generateWAMessageFromContent(e,u?{viewOnceMessage:{message:{messageContextInfo:{deviceListMetadata:{},deviceListMetadataVersion:2},interactiveMessage:r}}}:{interactiveMessage:r},{userJid:s,messageId:generateMessageIDV2(s),...n});return await o.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"}}]}]}]}),o.config?.emitOwnEvents&&!isJidGroup(e)&&process.nextTick(()=>o.upsertMessage?.(l,"append")),l}};var fe=class{constructor(e){this.client=e;}async signal(e,t,n,o){n!="delete"&&(n=="button"?t=K(Tt,t):t=K(Mt,t));let s=d.get("socket"),r={},u={},l=typeof t=="string",g=(w,C)=>typeof w=="object"&&w!==null&&C in w,b=this.client.options?.fakeReply?.provider,E=this.client.options?.autoMentions,x=this.client.options?.autoPresence,ee=g(t,"replied"),te=g(t,"banner"),xe=g(t,"isViewOnce"),G=n=="button",V=g(t,"image"),z=g(t,"video"),_=g(t,"audio"),J=g(t,"sticker"),q=g(t,"document"),Se=g(t,"location"),ne=g(t,"contacts"),T=g(t,"poll"),$=V||z||_||J||q,j=l?t:We([t],["text","caption"]);if(x&&(_?await s.sendPresenceUpdate("recording",e):await s.sendPresenceUpdate("composing",e)),E&&(r={...r,mentions:$e(j),contextInfo:{mentionedJid:$e(j)}}),ee&&(u.quoted=k(t).replied,b&&(u.quoted.key.remoteJid=je[b],u.quoted.key.participant=je[b])),te&&(r={...r,contextInfo:{externalAdReply:k(t).banner}},r.contextInfo.externalAdReply.mediaType=1),xe&&(r={...r,viewOnce:k(t)?.isViewOnce}),j&&(r={...r,text:j,caption:j},$&&delete k(r).text),$){let w=We([t],["image","video","audio","sticker","document"]);if(V&&(r={...r,image:await new Media(w).image.toJpeg(),jpegThumbnail:await new Media(w).thumbnail.get()}),z){let C=k(t)?.ptv;r={...r,video:await new Media(w).video.toMp4(),ptv:C,jpegThumbnail:await new Media(w).thumbnail.get()};}if(_){let C=k(t)?.ptt;r={...r,audio:await new Media(w).audio.toOpus(),ptt:C,mimetype:C?"audio/ogg; codecs=opus":"audio/mpeg"};}if(J){let C=k(t)?.shape;r={...r,sticker:await new Media(w).sticker.create({...this.client.options?.sticker,shape:C})};}if(q){let C=await new Media(w).document.create(),P=k(t).fileName||`Document_${C.fileName.slice(-6)}`,Me=P.includes(".")?P.substring(0,P.lastIndexOf(".")):P;r={...r,...C,fileName:`${Me}.${C.ext} - Zaileys`};}}if(Se){let w=k(t).location;r={...r,location:{degreesLatitude:w.latitude,degreesLongitude:w.longitude,url:w.url,address:w.footer,name:w.title}};}if(ne){let w=k(t)?.contacts,C=w?.contacts.map(P=>{let Me=["BEGIN:VCARD","VERSION:3.0",`FN:${P.fullname}`,`ORG:${P.organization||""}`,`TEL;type=CELL;type=VOICE;waid=${P.phoneNumber}:${P.phoneNumber}`,"END:VCARD"].join(`
|
|
6
6
|
`);return {displayName:P.fullname,vcard:Me}});r={...r,contacts:{displayName:w?.title,contacts:C}};}if(T){let w=k(t)?.poll;r={...r,poll:{name:w.name,values:w.answers,selectableCount:w.isMultiple?1:0,toAnnouncementGroup:true}};}return n=="forward"&&(r={...r,contextInfo:{...k(r).contextInfo,isForwarded:true,forwardingScore:k(t).isForwardedMany?9999:1}}),n=="edit"&&(r={...r,edit:o?.key},await s.sendPresenceUpdate("paused",e)),n=="delete"&&(r={...r,delete:o?.key},await s.sendPresenceUpdate("paused",e)),G?await new ge().send(e,t,u):await s.sendMessage(e,k(r),u)}async send(e,t){return await this.signal(e,t)}async forward(e,t){return await this.signal(e,t,"forward")}async button(e,t){return await this.signal(e,t,"button")}async edit(e,t){return await this.signal(e.key.remoteJid,t,"edit",e)}async delete(e){return Array.isArray(e)?Promise.all(e.map(t=>this.signal(t.key.remoteJid,{},"delete",t))):await this.signal(e.key.remoteJid,{},"delete",e)}async presence(e,t){let n=d.get("socket"),o={typing:"composing",recording:"recording",online:"available",offline:"unavailable",paused:"paused"};return await n.sendPresenceUpdate(o[t],e)}async reaction(e,t){return await d.get("socket").sendMessage(e.key.remoteJid,{react:{text:t,key:e?.key}})}async memberLabel(e,t){return await d.get("socket").relayMessage(e,{protocolMessage:{type:30,memberLabel:{label:t,labelTimestamp:Date.now()}}},{})}};var Le=class{constructor(e){this.client=e;}async create(e,t){return await d.get("socket").communityCreate(e,t)}async createGroup(e,t,n){return await d.get("socket").communityCreateGroup(e,t,n)}async leave(e){return await d.get("socket").communityLeave(e)}async metadata(e){return await d.get("socket").communityMetadata(e)}async update(e,t,n){let o=d.get("socket");switch(t){case "subject":return await o.communityUpdateSubject(e,n);case "description":return await o.communityUpdateDescription(e,n)}}async group(e,t,n){let o=d.get("socket");switch(t){case "link":if(!n)throw "Group JID is required for linking";return await o.communityLinkGroup(e,n);case "unlink":if(!n)throw "Group JID is required for unlinking";return await o.communityUnlinkGroup(e,n);case "linked":return await o.communityFetchLinkedGroups(e)}}async participants(e,t,n,o){let s=d.get("socket");switch(t){case "list":return await s.communityRequestParticipantsList(e);case "request-update":return await s.communityRequestParticipantsUpdate(e,o,k(n));case "update":if(!n||!o)throw "Action and participants are required for update";return await s.communityParticipantsUpdate(e,o,k(n));case "all":return await s.communityFetchAllParticipating()}}async invite(e,t,...n){let o=d.get("socket");switch(t){case "code":return await o.communityInviteCode(e);case "revoke":return await o.communityRevokeInvite(e);case "accept":return await o.communityAcceptInvite(e);case "info":return await o.communityGetInviteInfo(e);case "revokeV4":return await o.communityRevokeInviteV4(e,n[0]);case "acceptV4":return await o.communityAcceptInviteV4(e,n[0])}}async settings(e,t,n){let o=d.get("socket");switch(t){case "ephemeral":return await o.communityToggleEphemeral(e,n);case "update":return await o.communitySettingUpdate(e,n);case "memberAdd":return await o.communityMemberAddMode(e,n);case "approval":return await o.communityJoinApprovalMode(e,n)}}},ye=class{constructor(e){this.mlient=e;this.community=new Le(e);}community};var Ue=class{constructor(e){this.client=e;}async create(e,t){return await d.get("socket").groupCreate(e,t)}async participant(e,t,n){return await d.get("socket").groupParticipantsUpdate(e,t,n)}async profile(e,t,n){let o=d.get("socket"),s=Buffer.isBuffer(t);switch(n){case "subject":if(!s)return await o.groupUpdateSubject(e,t);case "description":if(!s)return await o.groupUpdateDescription(e,t);case "picture":return await o.updateProfilePicture(e,await new Media(t).toBuffer())}}async setting(e,t){let n=d.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 d.get("socket").groupLeave(e)}async inviteCode(e,t){let n=d.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=d.get("socket"),n=I.get(e);if(n)return n;let o=await t.groupMetadata(e);return o&&I.set(e,o),o}async requestJoin(e,t,n){let o=d.get("socket");switch(n){case "approve":return await o.groupRequestParticipantsUpdate(e,t,n);case "reject":return await o.groupRequestParticipantsUpdate(e,t,n)}}async requestJoinList(e){return await d.get("socket").groupRequestParticipantsList(e)}async fetchAllGroups(){return await d.get("socket").groupFetchAllParticipating()}async ephemeral(e,t){let n=d.get("socket"),o={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await n.groupToggleEphemeral(e,o[t])}},he=class{constructor(e){this.glient=e;this.group=new Ue(e);}group};var Be=class{constructor(e){this.client=e;}async create(e,t){return await d.get("socket").newsletterCreate(e,t)}async action(e,t){let n=d.get("socket");switch(t){case "follow":return await n.newsletterFollow(e);case "unfollow":return await n.newsletterUnfollow(e);case "mute":return await n.newsletterMute(e);case "unmute":return await n.newsletterUnmute(e);}}async update(e,t,n){let o=d.get("socket"),s=Buffer.isBuffer(t);switch(n){case "name":if(!s)return await o.newsletterUpdateName(e,t);case "description":if(!s)return await o.newsletterUpdateDescription(e,t);case "picture":return await o.newsletterUpdatePicture(e,await new Media(t).toBuffer())}}async metadata(e,t){return await d.get("socket").newsletterMetadata(t,e)}async subscribers(e){return await d.get("socket").newsletterSubscribers(e)}async reaction(e,t,n){return await d.get("socket").newsletterReactMessage(e,t,n)}async fetchMessages(e,t,n,o){let s=d.get("socket"),r=n.getTime()/1e3,u=o.getTime()/1e3;return await s.newsletterFetchMessages(e,t,r,u)}async adminCount(e){return await d.get("socket").newsletterAdminCount(e)}async changeOwner(e,t){return await d.get("socket").newsletterChangeOwner(e,t)}async demote(e,t){return await d.get("socket").newsletterDemote(e,t)}async delete(e){return await d.get("socket").newsletterDelete(e)}async removePicture(e){return await d.get("socket").newsletterRemovePicture(e)}},ve=class{constructor(e){this.nlient=e;this.newsletter=new Be(e);}newsletter};var qe=class{constructor(e){this.client=e;}async block(e){return await d.get("socket").updateBlockStatus(e,"block")}async unblock(e){return await d.get("socket").updateBlockStatus(e,"unblock")}async lastSeen(e){return await d.get("socket").updateLastSeenPrivacy(e)}async online(e){return await d.get("socket").updateOnlinePrivacy(e)}async picture(e){return await d.get("socket").updateProfilePicturePrivacy(e)}async status(e){return await d.get("socket").updateStatusPrivacy(e)}async readReceipt(e){return await d.get("socket").updateReadReceiptsPrivacy(e)}async groupsAdd(e){return await d.get("socket").updateGroupsAddPrivacy(e)}async ephemeral(e){let t=d.get("socket"),n={off:0,"24h":86400,"7d":604800,"90d":7776e3};return await t.updateDefaultDisappearingMode(n[e])}async blocklist(){return await d.get("socket").fetchBlocklist()}async getSettings(){return await d.get("socket").fetchPrivacySettings(true)}},ke=class{constructor(e){this.plient=e;this.privacy=new qe(e);}privacy};var Vi=a.object({status:a.picklist(["connecting","open","close","reload","syncing"]),authType:a.picklist(["pairing","qr"]),authTimeout:a.optional(a.number()),syncProgress:a.optional(a.number()),syncCompleted:a.optional(a.boolean(),false),qr:a.optional(a.string()),code:a.optional(a.string())});var An=a.picklist(["unknown","android","ios","desktop","web"]),Rn=a.picklist(["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","interactiveResponse","pollCreation","pollUpdate","keepInChat","requestPhoneNumber","scheduledCallCreation","groupMentioned","pinInChat","scheduledCallEdit","ptv","botInvoke","callLog","encComment","bcall","lottieSticker","event","comment","placeholder","encEventUpdate"]),Ct=a.object({channelId:a.string(),uniqueId:a.string(),chatId:a.string(),chatType:Rn,receiverLid:a.string(),receiverId:a.string(),receiverName:a.string(),roomId:a.string(),roomLid:a.nullable(a.string()),roomName:a.nullable(a.string()),senderLid:a.string(),senderId:a.string(),senderName:a.string(),senderDevice:An,timestamp:a.number(),text:a.nullable(a.string()),mentions:a.array(a.string()),links:a.array(a.string()),isBot:a.boolean(),isFromMe:a.boolean(),isPrefix:a.boolean(),isSpam:a.boolean(),isTagMe:a.boolean(),isStatusMention:a.boolean(),isGroupStatusMention:a.boolean(),isHideTags:a.boolean(),isGroup:a.boolean(),isNewsletter:a.boolean(),isQuestion:a.boolean(),isStory:a.boolean(),isViewOnce:a.boolean(),isEdited:a.boolean(),isDeleted:a.boolean(),isPinned:a.boolean(),isUnPinned:a.boolean(),isBroadcast:a.boolean(),isEphemeral:a.boolean(),isForwarded:a.boolean(),citation:a.nullable(a.record(a.string(),a.custom(i=>typeof i=="function"))),media:a.nullable(a.looseObject({buffer:a.custom(i=>typeof i=="function"),stream:a.custom(i=>typeof i=="function")})),injection:a.optional(a.record(a.string(),a.any()),{}),message:a.custom(i=>typeof i=="function")}),Hi=a.object({...Ct.entries,replied:a.nullable(Ct)});var Yi=a.object({callId:a.string(),callerId:a.string(),roomId:a.string(),roomName:a.string(),date:a.date(),offline:a.boolean(),status:a.picklist(["accept","offer","reject","ringing","terminate","timeout"]),isVideo:a.boolean(),isGroup:a.boolean()});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));};f.events.on("connection",e);}displayIndicator(){this.logsDisplayed||(this.logsDisplayed=true,console.log(),f.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=k(this.getRoomColor(e)),n=e?.text?.toLowerCase()?.match("zaileys"),o=this.client.options?.fancyLogs,s=y(`[${new Date(e?.timestamp).toTimeString().split(" ")[0]}]`,"dimgray"),r=y(`${e?.roomName}`,t),u=e?.text?.slice(0,300)||"",l=u?.length>=300?"...":"";if(o){let g=y("\u2501".repeat(50),"dimgray"),b=y("\u2192","dimgray"),E=y("\u2022",t),x=`
|
|
@@ -31,7 +31,7 @@ ${g}
|
|
|
31
31
|
* See LICENSE file for details.
|
|
32
32
|
|
|
33
33
|
* Author: zaadevofc
|
|
34
|
-
* Last build time: 3/17/2026 11:
|
|
34
|
+
* Last build time: 3/17/2026 11:58:22 AM
|
|
35
35
|
*
|
|
36
36
|
* Repository: git+https://github.com/zeative/zaileys.git
|
|
37
37
|
*/export{Ct as BaseMessagesType,nn as ButtonCarouselCardType,sn as ButtonCarouselType,vt as ButtonInteractiveCallType,ht as ButtonInteractiveCopyType,ft as ButtonInteractiveReplyType,Xt as ButtonInteractiveSingleSelectType,en as ButtonInteractiveType,yt as ButtonInteractiveUrlType,tn as ButtonSimpleType,kt as ButtonType,rn as CitationType,At as Client,pn as ClientAuthPairingType,un as ClientAuthQRType,wt as ClientBaseType,bt as ClientOptionsType,cn as ClientStickerOptionsType,Fe as ClientStickerShapeType,An as DEVICE_ENUM_TYPES,oi as EventEnumType,an as FakeReplyType,on as LimiterType,Yi as ListenerCallsType,Vi as ListenerConnectionType,Hi as ListenerMessagesType,Rn as MESSAGE_ENUM_TYPES,X as Plugins,ln as autoCleanUp,W as cleanJid,ct as cleanMediaObject,fr as definePlugins,it as escapeRegExp,$e as extractJids,ot as extractUrls,Y as findGlobalWord,Ls as findNestedByKeys,Ne as generateId,ae as getDeepContent,lt as getLatestLibVersion,at as getUsersMentions,k as ignoreLint,y as logColor,Us as modifyFn,D as normalizeText,zs as numbersToJids,We as pickKeysFromArray,Fs as randomize,Xe as registerAuthCreds,De as removeAuthCreds,re as resolveJids,js as shuffleString,Ee as toJson,Q as toString,Qe as useAuthState};
|
package/package.json
CHANGED
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: GSD Codebase Mapper
|
|
3
|
-
description: Analyzes existing codebases to understand structure, patterns, and technical debt
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# GSD Codebase Mapper Agent
|
|
7
|
-
|
|
8
|
-
<role>
|
|
9
|
-
You are a GSD codebase mapper. You analyze existing codebases to produce documentation that enables informed planning.
|
|
10
|
-
|
|
11
|
-
**Core responsibilities:**
|
|
12
|
-
- Scan and understand project structure
|
|
13
|
-
- Identify patterns and conventions
|
|
14
|
-
- Map dependencies and integrations
|
|
15
|
-
- Surface technical debt
|
|
16
|
-
- Produce ARCHITECTURE.md and STACK.md
|
|
17
|
-
</role>
|
|
18
|
-
|
|
19
|
-
## Analysis Domains
|
|
20
|
-
|
|
21
|
-
### 1. Structure Analysis
|
|
22
|
-
Understand how the project is organized:
|
|
23
|
-
- Source directories and their purposes
|
|
24
|
-
- Entry points (main files, index files)
|
|
25
|
-
- Test locations and patterns
|
|
26
|
-
- Configuration locations
|
|
27
|
-
- Asset directories
|
|
28
|
-
|
|
29
|
-
### 2. Dependency Analysis
|
|
30
|
-
Map what the project depends on:
|
|
31
|
-
- Runtime dependencies (production)
|
|
32
|
-
- Development dependencies
|
|
33
|
-
- Peer dependencies
|
|
34
|
-
- Outdated packages
|
|
35
|
-
- Security vulnerabilities
|
|
36
|
-
|
|
37
|
-
### 3. Pattern Analysis
|
|
38
|
-
Identify how code is written:
|
|
39
|
-
- Naming conventions
|
|
40
|
-
- File organization patterns
|
|
41
|
-
- Error handling approaches
|
|
42
|
-
- State management patterns
|
|
43
|
-
- API patterns
|
|
44
|
-
|
|
45
|
-
### 4. Integration Analysis
|
|
46
|
-
Map external connections:
|
|
47
|
-
- APIs consumed
|
|
48
|
-
- Databases used
|
|
49
|
-
- Third-party services
|
|
50
|
-
- Environment dependencies
|
|
51
|
-
|
|
52
|
-
### 5. Technical Debt Analysis
|
|
53
|
-
Surface issues to address:
|
|
54
|
-
- TODOs and FIXMEs
|
|
55
|
-
- Deprecated code
|
|
56
|
-
- Missing tests
|
|
57
|
-
- Inconsistent patterns
|
|
58
|
-
- Known vulnerabilities
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## Scanning Process
|
|
63
|
-
|
|
64
|
-
### Phase 1: Project Type Detection
|
|
65
|
-
|
|
66
|
-
Identify project type from markers:
|
|
67
|
-
```powershell
|
|
68
|
-
# Node.js/JavaScript
|
|
69
|
-
Test-Path "package.json"
|
|
70
|
-
|
|
71
|
-
# Python
|
|
72
|
-
Test-Path "requirements.txt" -or Test-Path "pyproject.toml"
|
|
73
|
-
|
|
74
|
-
# Rust
|
|
75
|
-
Test-Path "Cargo.toml"
|
|
76
|
-
|
|
77
|
-
# Go
|
|
78
|
-
Test-Path "go.mod"
|
|
79
|
-
|
|
80
|
-
# .NET
|
|
81
|
-
Get-ChildItem "*.csproj"
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
### Phase 2: Structure Scan
|
|
85
|
-
|
|
86
|
-
```powershell
|
|
87
|
-
# Get directory structure
|
|
88
|
-
Get-ChildItem -Recurse -Directory |
|
|
89
|
-
Where-Object { $_.Name -notmatch "node_modules|\.git|__pycache__|dist|build|\.next" } |
|
|
90
|
-
Select-Object FullName
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### Phase 3: Dependency Extraction
|
|
94
|
-
|
|
95
|
-
For each ecosystem:
|
|
96
|
-
|
|
97
|
-
**Node.js:**
|
|
98
|
-
```powershell
|
|
99
|
-
$pkg = Get-Content "package.json" | ConvertFrom-Json
|
|
100
|
-
$pkg.dependencies
|
|
101
|
-
$pkg.devDependencies
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
**Python:**
|
|
105
|
-
```powershell
|
|
106
|
-
Get-Content "requirements.txt"
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### Phase 4: Pattern Discovery
|
|
110
|
-
|
|
111
|
-
Search for common patterns:
|
|
112
|
-
```powershell
|
|
113
|
-
# Components
|
|
114
|
-
Get-ChildItem -Recurse -Include "*.tsx","*.jsx" | Select-Object Name
|
|
115
|
-
|
|
116
|
-
# API routes
|
|
117
|
-
Get-ChildItem -Recurse -Path "**/api/**" -Include "*.ts","*.js"
|
|
118
|
-
|
|
119
|
-
# Models/schemas
|
|
120
|
-
Select-String -Path "**/*.ts" -Pattern "interface|type|schema"
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### Phase 5: Debt Discovery
|
|
124
|
-
|
|
125
|
-
```powershell
|
|
126
|
-
# TODOs
|
|
127
|
-
Select-String -Path "src/**/*" -Pattern "TODO|FIXME|HACK|XXX"
|
|
128
|
-
|
|
129
|
-
# Deprecated
|
|
130
|
-
Select-String -Path "**/*" -Pattern "@deprecated|DEPRECATED"
|
|
131
|
-
|
|
132
|
-
# Console statements (often debug leftovers)
|
|
133
|
-
Select-String -Path "src/**/*" -Pattern "console\.(log|debug|warn)"
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
## Output Format
|
|
139
|
-
|
|
140
|
-
### ARCHITECTURE.md
|
|
141
|
-
|
|
142
|
-
```markdown
|
|
143
|
-
# Architecture
|
|
144
|
-
|
|
145
|
-
> Generated by /map on {date}
|
|
146
|
-
|
|
147
|
-
## Overview
|
|
148
|
-
{High-level system description}
|
|
149
|
-
|
|
150
|
-
## System Diagram
|
|
151
|
-
```
|
|
152
|
-
{ASCII or description of component relationships}
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
## Components
|
|
156
|
-
|
|
157
|
-
### {Component Name}
|
|
158
|
-
- **Purpose:** {what it does}
|
|
159
|
-
- **Location:** `{path}`
|
|
160
|
-
- **Dependencies:** {what it imports}
|
|
161
|
-
- **Dependents:** {what imports it}
|
|
162
|
-
|
|
163
|
-
## Data Flow
|
|
164
|
-
{How data moves through the system}
|
|
165
|
-
|
|
166
|
-
## Integration Points
|
|
167
|
-
| External Service | Type | Purpose |
|
|
168
|
-
|------------------|------|---------|
|
|
169
|
-
| {service} | {API/DB/etc} | {purpose} |
|
|
170
|
-
|
|
171
|
-
## Conventions
|
|
172
|
-
- **Naming:** {patterns}
|
|
173
|
-
- **Structure:** {organization}
|
|
174
|
-
- **Testing:** {approach}
|
|
175
|
-
|
|
176
|
-
## Technical Debt
|
|
177
|
-
- [ ] {Debt item with location}
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
### STACK.md
|
|
181
|
-
|
|
182
|
-
```markdown
|
|
183
|
-
# Technology Stack
|
|
184
|
-
|
|
185
|
-
> Generated by /map on {date}
|
|
186
|
-
|
|
187
|
-
## Runtime
|
|
188
|
-
| Technology | Version | Purpose |
|
|
189
|
-
|------------|---------|---------|
|
|
190
|
-
| {tech} | {version} | {purpose} |
|
|
191
|
-
|
|
192
|
-
## Production Dependencies
|
|
193
|
-
| Package | Version | Purpose |
|
|
194
|
-
|---------|---------|---------|
|
|
195
|
-
| {pkg} | {version} | {purpose} |
|
|
196
|
-
|
|
197
|
-
## Development Dependencies
|
|
198
|
-
| Package | Version | Purpose |
|
|
199
|
-
|---------|---------|---------|
|
|
200
|
-
| {pkg} | {version} | {purpose} |
|
|
201
|
-
|
|
202
|
-
## Infrastructure
|
|
203
|
-
| Service | Provider | Purpose |
|
|
204
|
-
|---------|----------|---------|
|
|
205
|
-
| {svc} | {provider} | {purpose} |
|
|
206
|
-
|
|
207
|
-
## Configuration
|
|
208
|
-
| Variable | Purpose | Required |
|
|
209
|
-
|----------|---------|----------|
|
|
210
|
-
| {var} | {purpose} | {yes/no} |
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
---
|
|
214
|
-
|
|
215
|
-
## Checklist
|
|
216
|
-
|
|
217
|
-
Before Completing Map:
|
|
218
|
-
- [ ] Project type identified
|
|
219
|
-
- [ ] All source directories documented
|
|
220
|
-
- [ ] Entry points found
|
|
221
|
-
- [ ] Dependencies extracted and categorized
|
|
222
|
-
- [ ] Key patterns identified
|
|
223
|
-
- [ ] Integrations mapped
|
|
224
|
-
- [ ] Technical debt surfaced
|
|
225
|
-
- [ ] ARCHITECTURE.md created
|
|
226
|
-
- [ ] STACK.md created
|