@arcaelas/whatsapp 1.0.18 → 1.0.19

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/build/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Noop } from '@arcaelas/utils';
2
- import { Mutex } from 'async-mutex';
2
+ import { Mutex, type MutexInterface } from 'async-mutex';
3
3
  import * as Baileys from 'baileys';
4
4
  import EventEmitter from 'node:events';
5
5
  import Chat from './model/chat';
@@ -53,7 +53,7 @@ declare class WhatsApp extends EventEmitter<EventMap> {
53
53
  * @description
54
54
  * Socket for WhatsApp Web.
55
55
  */
56
- protected socket: Baileys.WASocket;
56
+ protected socket: Baileys.WASocket | null;
57
57
  /**
58
58
  * @description
59
59
  * Mutex, used to prevent concurrent access to the socket.
@@ -66,7 +66,7 @@ declare class WhatsApp extends EventEmitter<EventMap> {
66
66
  * @param func Function to execute.
67
67
  * @returns Result of the function.
68
68
  */
69
- tick<T extends Noop<[socket: Baileys.WASocket, store: Store], any>>(func: T): Promise<Awaited<ReturnType<T>>>;
69
+ tick<T extends Noop<[release: MutexInterface.Releaser, socket: Baileys.WASocket, store: Store], any>>(func: T): Promise<Awaited<ReturnType<T>>>;
70
70
  /**
71
71
  * @description
72
72
  * Process events from the socket.
package/build/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var q=Object.create;var f=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var _=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var D=(a,i)=>{for(var e in i)f(a,e,{get:i[e],enumerable:!0})},y=(a,i,e,o)=>{if(i&&typeof i=="object"||typeof i=="function")for(let r of I(i))!b.call(a,r)&&r!==e&&f(a,r,{get:()=>i[r],enumerable:!(o=T(i,r))||o.enumerable});return a},m=(a,i,e)=>(y(a,i,"default"),e&&y(e,i,"default")),n=(a,i,e)=>(e=a!=null?q(_(a)):{},y(i||!a||!a.__esModule?f(e,"default",{value:a,enumerable:!0}):e,a)),N=a=>y(f({},"__esModule",{value:!0}),a);var c={};D(c,{Chat:()=>R.default,Message:()=>E.default,Store:()=>A.default,default:()=>H,useCache:()=>W.default});module.exports=N(c);var l=require("@arcaelas/utils"),S=require("async-mutex"),g=n(require("baileys")),v=n(require("node-cache")),M=n(require("node:events")),B=n(require("pino")),w=n(require("./model/chat")),k=n(require("./model/message")),P=n(require("./static/Store")),x=n(require("./static/useCache"));m(c,require("./static/Store"),module.exports);var A=n(require("./static/Store")),W=n(require("./static/useCache"));m(c,require("./model/chat"),module.exports);var R=n(require("./model/chat"));m(c,require("./model/message"),module.exports);var E=n(require("./model/message"));const C=(0,B.default)({level:"fatal"}),O=new v.default;class j extends M.default{constructor(e){super({captureRejections:!0});this.options=e;this.mutex=new S.Mutex;this.store=new P.default(this.options.store),this.connect()}async tick(e){return this.mutex.acquire().then(()=>e(this.socket,this.store))}process(e){return this.on("process",o=>{e(o,this.socket,this.store)})}async documents(){return await this.tick(async(e,o)=>{const r={};for await(const h of o.document.values())r[h.key]=h.value;return r})}async chats(){return await this.tick(async(e,o)=>{const r=[];for await(const h of o.chat.values())r.push(new w.default(this,h));return r})}async messages(){return await this.tick(async(e,o)=>{const r=[];for await(const h of o.message.values())r.push(new k.default(this,h));return r})}async connect(){const e=(0,l.promify)();try{const{state:o,save:r}=await(0,x.default)(this.store),{version:h}=await g.fetchLatestBaileysVersion(),p=g.makeWASocket({version:h,logger:C,maxMsgRetryCount:4,msgRetryCounterCache:O,syncFullHistory:!1,printQRInTerminal:!1,connectTimeoutMs:2e4,retryRequestDelayMs:350,markOnlineOnConnect:!1,keepAliveIntervalMs:3e4,generateHighQualityLinkPreview:!0,browser:g.Browsers.windows("Chrome"),auth:{creds:o.creds,keys:g.makeCacheableSignalKeyStore(o.keys,C)},getMessage:async s=>{const t=await this.store.message.get(s.id);return t?t.message:void 0}});if(!p.authState.creds.registered){await(0,l.sleep)(2e3),await this.store.document.unset("creds.json");const s=await p.requestPairingCode(this.options.phone);await this.options.onCode(s)}p.ev.process(s=>{this.emit("process",s,p,this.store)}),p.ev.on("connection.update",async({connection:s,lastDisconnect:t,qr:u})=>{const d=t?.error?.output?.statusCode;s==="open"?e.resolve(p):s==="close"&&(d!==g.DisconnectReason.loggedOut?e.resolve(await this.connect()):d===g.DisconnectReason.loggedOut&&e.resolve(await this.connect()))}),p.ev.process(async s=>{s["creds.update"]&&await r(),await Promise.allSettled([...s["messaging-history.set"]?.chats||[],...s["chats.upsert"]||[]].map(async t=>{await this.store.chat.set(t),this.emit("chat:created",new w.default(this,t))})),await Promise.allSettled([...s["messaging-history.set"]?.messages||[],...s["messages.upsert"]?.messages||[]].map(async t=>{await this.store.message.set(t),this.emit("message:created",new k.default(this,t))})),await Promise.allSettled((s["chats.update"]||[]).map(async t=>{const u=await this.store.chat.get(t.id);if(u){const d=(0,l.merge)(u,t);await this.store.chat.set(d),this.emit("chat:updated",new w.default(this,d))}})),await Promise.allSettled((s["messages.update"]||[]).map(async t=>{const u=await this.store.message.get(t.key.id);if(u){const d=(0,l.merge)(u,t);await this.store.message.set(d),this.emit("message:updated",new k.default(this,d))}}));for(const{id:t}of s["messages.delete"]?.keys||[])await this.store.message.unset(t);for(const t of s["chats.delete"]||[])await this.store.chat.unset(t)})}catch(o){e.reject(o)}return e.then(o=>this.socket=o)}}var H=j;0&&(module.exports={Chat,Message,Store,useCache,...require("./static/Store"),...require("./model/chat"),...require("./model/message")});
1
+ "use strict";var E=Object.create;var u=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var q=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty;var b=(a,r)=>{for(var e in r)u(a,e,{get:r[e],enumerable:!0})},p=(a,r,e,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let d of I(r))!D.call(a,d)&&d!==e&&u(a,d,{get:()=>r[d],enumerable:!(t=T(r,d))||t.enumerable});return a},m=(a,r,e)=>(p(a,r,"default"),e&&p(e,r,"default")),n=(a,r,e)=>(e=a!=null?E(q(a)):{},p(r||!a||!a.__esModule?u(e,"default",{value:a,enumerable:!0}):e,a)),N=a=>p(u({},"__esModule",{value:!0}),a);var c={};b(c,{Chat:()=>A.default,Message:()=>W.default,Store:()=>v.default,default:()=>j,useCache:()=>B.default});module.exports=N(c);var g=require("@arcaelas/utils"),M=require("async-mutex"),f=n(require("baileys")),k=n(require("node-cache")),C=n(require("node:events")),x=n(require("pino")),y=n(require("./model/chat")),w=n(require("./model/message")),S=n(require("./static/Store")),P=n(require("./static/useCache"));m(c,require("./static/Store"),module.exports);var v=n(require("./static/Store")),B=n(require("./static/useCache"));m(c,require("./model/chat"),module.exports);var A=n(require("./model/chat"));m(c,require("./model/message"),module.exports);var W=n(require("./model/message"));class O extends C.default{constructor(e){super({captureRejections:!0});this.options=e;this.socket=null;this.mutex=new M.Mutex;this.store=new S.default(this.options.store),this.connect()}async tick(e){return this.mutex.acquire(5).then(t=>e(t,this.socket,this.store))}process(e){return this.on("process",t=>{e(t,this.socket,this.store)})}async documents(){const e={};for await(const t of this.store.document.values())e[t.key]=t.value;return e}async chats(){const e=[];for await(const t of this.store.chat.values())e.push(new y.default(this,t));return e}async messages(){const e=[];for await(const t of this.store.message.values())e.push(new w.default(this,t));return e}async connect(){const e=(0,g.promify)();try{const t=(0,x.default)({level:"fatal"}),{state:d,save:R}=await(0,P.default)(this.store),l=f.makeWASocket({logger:t,maxMsgRetryCount:4,syncFullHistory:!1,printQRInTerminal:!1,connectTimeoutMs:2e4,retryRequestDelayMs:350,markOnlineOnConnect:!1,keepAliveIntervalMs:3e4,version:[2,3e3,1023223821],generateHighQualityLinkPreview:!0,msgRetryCounterCache:new k.default,browser:["Windows","Chrome","Chrome 114.0.5735.198"],auth:{creds:d.creds,keys:f.makeCacheableSignalKeyStore(d.keys,t)},getMessage:async o=>{const s=await this.store.message.get(o.id);return s?s.message:void 0}});if(l.ev.process(async o=>{if(this.emit("process",o,l,this.store),o["creds.update"]&&await R(),o["connection.update"]){const{connection:s,lastDisconnect:h}=o["connection.update"],i=h?.error?.output?.statusCode;s==="open"?e.resolve(l):s==="close"&&(i!==f.DisconnectReason.loggedOut?e.resolve(await this.connect()):i===f.DisconnectReason.loggedOut&&e.resolve(await this.connect()))}await Promise.allSettled([...o["messaging-history.set"]?.chats||[],...o["chats.upsert"]||[]].map(async s=>{await this.store.chat.set(s),this.emit("chat:created",new y.default(this,s))})),await Promise.allSettled([...o["messaging-history.set"]?.messages||[],...o["messages.upsert"]?.messages||[]].map(async s=>{await this.store.message.set(s),(s.message?.extendedTextMessage||s.message?.imageMessage||s.message?.videoMessage||s.message?.audioMessage||s.message?.locationMessage)&&this.emit("message:created",new w.default(this,s))})),await Promise.allSettled((o["chats.update"]||[]).map(async s=>{const h=await this.store.chat.get(s.id);if(h){const i=(0,g.merge)(h,s);await this.store.chat.set(i),this.emit("chat:updated",new y.default(this,i))}})),await Promise.allSettled((o["messages.update"]||[]).map(async s=>{const h=await this.store.message.get(s.key.id);if(h){const i=(0,g.merge)(h,s);await this.store.message.set(i),(i.message?.extendedTextMessage||i.message?.imageMessage||i.message?.videoMessage||i.message?.audioMessage||i.message?.locationMessage)&&this.emit("message:updated",new w.default(this,i))}}));for(const{id:s}of o["messages.delete"]?.keys||[])await this.store.message.unset(s);for(const s of o["chats.delete"]||[])await this.store.chat.unset(s)}),!l.authState.creds.registered){await(0,g.sleep)(2e3),await this.store.document.unset("creds.json");const o=await l.requestPairingCode(this.options.phone);await this.options.onCode(o)}}catch(t){e.reject(t)}return e.then(t=>this.socket=t)}}var j=O;0&&(module.exports={Chat,Message,Store,useCache,...require("./static/Store"),...require("./model/chat"),...require("./model/message")});
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "sourcesContent": ["import { merge, Noop, promify, sleep } from '@arcaelas/utils';\nimport { Mutex } from 'async-mutex';\nimport * as Baileys from 'baileys';\nimport NodeCache from 'node-cache';\nimport EventEmitter from 'node:events';\nimport P from 'pino';\nimport Chat from './model/chat';\nimport Message from './model/message';\nimport Store, { Engine } from './static/Store';\nimport useCache from './static/useCache';\nconst logger = P({ level: 'fatal' });\nconst msgRetryCounterCache = new NodeCache();\n\n/**\n * @description Estructura de configuraci\u00F3n para iniciar sesi\u00F3n con WhatsApp.\n */\ninterface IWhatsApp {\n phone: string;\n store: Engine;\n onCode(code: string): void | Promise<void>;\n browser?: Baileys.WABrowserDescription | undefined;\n}\n\n/**\n * @description\n * Event map for WhatsApp.\n */\ninterface EventMap {\n error: [error: Error];\n open: [];\n close: [];\n qr: [qr: string];\n code: [code: string];\n 'chat:created': [chat: Chat];\n 'chat:updated': [chat: Chat];\n 'chat:deleted': [id: string];\n 'message:created': [message: Message];\n 'message:updated': [message: Message];\n 'message:deleted': [id: string];\n process: [event: Partial<Baileys.BaileysEventMap>, socket: Baileys.WASocket, store: Store];\n}\n\n/**\n * @description\n * Client for WhatsApp Web.\n * @example\n * const client = new WhatsApp({\n * phone: '1234567890',\n * loginType: 'qr',\n * qr: (code) => console.log(code),\n * });\n */\nclass WhatsApp extends EventEmitter<EventMap> {\n /**\n * @description\n * Store for WhatsApp Web.\n */\n protected store: Store;\n /**\n * @description\n * Socket for WhatsApp Web.\n */\n protected socket: Baileys.WASocket;\n /**\n * @description\n * Mutex, used to prevent concurrent access to the socket.\n */\n protected readonly mutex = new Mutex();\n\n constructor(protected readonly options: IWhatsApp) {\n super({ captureRejections: true });\n this.store = new Store(this.options.store);\n this.connect();\n }\n\n /**\n * @description\n * Execute a function with the socket and store, means that the function will be executed only when the socket is ready.\n * @param func Function to execute.\n * @returns Result of the function.\n */\n async tick<T extends Noop<[socket: Baileys.WASocket, store: Store], any>>(func: T): Promise<Awaited<ReturnType<T>>> {\n return this.mutex.acquire().then(() => func(this.socket, this.store));\n }\n\n /**\n * @description\n * Process events from the socket.\n * @param func Function to execute.\n * @returns Handler to remove the event listener.\n */\n process(func: Noop<[event: Partial<Baileys.BaileysEventMap>, socket: Baileys.WASocket, store: Store]>) {\n return this.on('process', (event) => {\n func(event, this.socket, this.store);\n });\n }\n\n /**\n * @description\n * Returns all documents in the store.\n * @returns Promise that resolves to an object containing all documents.\n */\n async documents(): Promise<Record<string, any>> {\n return await this.tick(async (_, store) => {\n const documents: Record<string, any> = {};\n for await (const document of store.document.values()) {\n documents[document.key] = document.value;\n }\n return documents;\n });\n }\n\n /**\n * @description\n * Returns all chats in the store.\n * @returns Promise that resolves to an array of chats.\n */\n async chats(): Promise<Chat[]> {\n return await this.tick(async (_, store) => {\n const chats: Chat[] = [];\n for await (const chat of store.chat.values()) {\n chats.push(new Chat(this, chat));\n }\n return chats;\n });\n }\n\n /**\n * @description\n * Returns all messages in the store.\n * @returns Promise that resolves to an array of messages.\n */\n async messages(): Promise<Message[]> {\n return await this.tick(async (_, store) => {\n const messages: Message[] = [];\n for await (const message of store.message.values()) {\n messages.push(new Message(this, message));\n }\n return messages;\n });\n }\n\n /**\n * @description\n * Connect to WhatsApp Web.\n * @returns Promise that resolves to the socket.\n */\n protected async connect() {\n const promise = promify();\n try {\n const { state, save } = await useCache(this.store);\n const { version } = await Baileys.fetchLatestBaileysVersion();\n const socket = Baileys.makeWASocket({\n version,\n logger: logger,\n maxMsgRetryCount: 4,\n msgRetryCounterCache,\n syncFullHistory: false,\n printQRInTerminal: false,\n connectTimeoutMs: 20_000,\n retryRequestDelayMs: 350,\n markOnlineOnConnect: false,\n keepAliveIntervalMs: 30_000,\n generateHighQualityLinkPreview: true,\n browser: Baileys.Browsers.windows('Chrome'),\n auth: {\n creds: state.creds,\n keys: Baileys.makeCacheableSignalKeyStore(state.keys, logger),\n },\n getMessage: async (key) => {\n const message = await this.store.message.get(key.id!);\n return message ? message.message! : undefined;\n },\n });\n if (!socket.authState.creds.registered) {\n await sleep(2000);\n await this.store.document.unset('creds.json');\n const code = await socket.requestPairingCode(this.options.phone);\n await this.options.onCode(code);\n }\n socket.ev.process((ev) => {\n this.emit('process', ev, socket, this.store);\n });\n socket.ev.on('connection.update', async ({ connection, lastDisconnect, qr }) => {\n const statusCode = lastDisconnect?.error?.['output']?.statusCode;\n if (connection === 'open') {\n promise.resolve(socket);\n } else if (connection === 'close') {\n if (statusCode !== Baileys.DisconnectReason.loggedOut) {\n promise.resolve(await this.connect());\n } else if (statusCode === Baileys.DisconnectReason.loggedOut) {\n promise.resolve(await this.connect());\n }\n }\n });\n socket.ev.process(async (event) => {\n if (event['creds.update']) {\n await save();\n }\n // prettier-ignore\n await Promise.allSettled(\n [...event['messaging-history.set']?.chats || [], ...event['chats.upsert'] || []]\n .map(async chat => {\n await this.store.chat.set(chat);\n this.emit('chat:created', new Chat(this, chat));\n })\n );\n // prettier-ignore\n await Promise.allSettled(\n [...event['messaging-history.set']?.messages || [], ...event['messages.upsert']?.messages || []]\n .map(async message=> {\n await this.store.message.set(message);\n this.emit('message:created', new Message(this, message));\n })\n )\n // prettier-ignore\n await Promise.allSettled(\n (event['chats.update'] || [])\n .map(async update => {\n const payload = await this.store.chat.get(update.id!);\n if (payload) {\n const chat = merge(payload, update) as Baileys.Chat;\n await this.store.chat.set(chat);\n this.emit('chat:updated', new Chat(this, chat));\n }\n })\n );\n // prettier-ignore\n await Promise.allSettled(\n (event['messages.update'] || [])\n .map(async update => {\n const payload = await this.store.message.get(update.key.id!);\n if (payload) {\n const message = merge(payload, update) as Baileys.WAProto.WebMessageInfo;\n await this.store.message.set(message);\n this.emit('message:updated', new Message(this, message));\n }\n })\n );\n for (const { id } of event['messages.delete']?.['keys'] || []) {\n await this.store.message.unset(id);\n }\n for (const key of event['chats.delete'] || []) {\n await this.store.chat.unset(key);\n }\n });\n } catch (error) {\n promise.reject(error);\n }\n // prettier-ignore\n return promise\n .then((socket) => (this.socket = socket));\n }\n}\n\nexport default WhatsApp;\nexport * from './static/Store';\nexport { default as Store } from './static/Store';\nexport { default as useCache } from './static/useCache';\n\nexport * from './model/chat';\nexport { default as Chat } from './model/chat';\n\nexport * from './model/message';\nexport { default as Message } from './model/message';\n"],
5
- "mappings": "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",
6
- "names": ["src_exports", "__export", "src_default", "__toCommonJS", "import_utils", "import_async_mutex", "Baileys", "import_node_cache", "import_node_events", "import_pino", "import_chat", "import_message", "import_Store", "import_useCache", "__reExport", "logger", "P", "msgRetryCounterCache", "NodeCache", "WhatsApp", "EventEmitter", "options", "Store", "func", "event", "_", "store", "documents", "document", "chats", "chat", "Chat", "messages", "message", "Message", "promise", "state", "save", "useCache", "version", "socket", "key", "code", "ev", "connection", "lastDisconnect", "qr", "statusCode", "update", "payload", "id", "error"]
4
+ "sourcesContent": ["import { merge, Noop, promify, sleep } from '@arcaelas/utils';\nimport { Mutex, type MutexInterface } from 'async-mutex';\nimport * as Baileys from 'baileys';\nimport NodeCache from 'node-cache';\nimport EventEmitter from 'node:events';\nimport P from 'pino';\nimport Chat from './model/chat';\nimport Message from './model/message';\nimport Store, { Engine } from './static/Store';\nimport useCache from './static/useCache';\n\n/**\n * @description Estructura de configuraci\u00F3n para iniciar sesi\u00F3n con WhatsApp.\n */\ninterface IWhatsApp {\n phone: string;\n store: Engine;\n onCode(code: string): void | Promise<void>;\n browser?: Baileys.WABrowserDescription | undefined;\n}\n\n/**\n * @description\n * Event map for WhatsApp.\n */\ninterface EventMap {\n error: [error: Error];\n open: [];\n close: [];\n qr: [qr: string];\n code: [code: string];\n 'chat:created': [chat: Chat];\n 'chat:updated': [chat: Chat];\n 'chat:deleted': [id: string];\n 'message:created': [message: Message];\n 'message:updated': [message: Message];\n 'message:deleted': [id: string];\n process: [event: Partial<Baileys.BaileysEventMap>, socket: Baileys.WASocket, store: Store];\n}\n\n/**\n * @description\n * Client for WhatsApp Web.\n * @example\n * const client = new WhatsApp({\n * phone: '1234567890',\n * loginType: 'qr',\n * qr: (code) => console.log(code),\n * });\n */\nclass WhatsApp extends EventEmitter<EventMap> {\n /**\n * @description\n * Store for WhatsApp Web.\n */\n protected store: Store;\n /**\n * @description\n * Socket for WhatsApp Web.\n */\n protected socket: Baileys.WASocket | null = null;\n /**\n * @description\n * Mutex, used to prevent concurrent access to the socket.\n */\n protected readonly mutex = new Mutex();\n\n constructor(protected readonly options: IWhatsApp) {\n super({ captureRejections: true });\n this.store = new Store(this.options.store);\n this.connect();\n }\n\n /**\n * @description\n * Execute a function with the socket and store, means that the function will be executed only when the socket is ready.\n * @param func Function to execute.\n * @returns Result of the function.\n */\n async tick<T extends Noop<[release: MutexInterface.Releaser, socket: Baileys.WASocket, store: Store], any>>(func: T): Promise<Awaited<ReturnType<T>>> {\n return this.mutex.acquire(5).then((release) => func(release, this.socket!, this.store));\n }\n\n /**\n * @description\n * Process events from the socket.\n * @param func Function to execute.\n * @returns Handler to remove the event listener.\n */\n process(func: Noop<[event: Partial<Baileys.BaileysEventMap>, socket: Baileys.WASocket, store: Store]>) {\n return this.on('process', (event) => {\n func(event, this.socket!, this.store);\n });\n }\n\n /**\n * @description\n * Returns all documents in the store.\n * @returns Promise that resolves to an object containing all documents.\n */\n async documents(): Promise<Record<string, any>> {\n const documents: Record<string, any> = {};\n for await (const document of this.store.document.values()) {\n documents[document.key] = document.value;\n }\n return documents;\n }\n\n /**\n * @description\n * Returns all chats in the store.\n * @returns Promise that resolves to an array of chats.\n */\n async chats(): Promise<Chat[]> {\n const chats: Chat[] = [];\n for await (const chat of this.store.chat.values()) {\n chats.push(new Chat(this, chat));\n }\n return chats;\n }\n\n /**\n * @description\n * Returns all messages in the store.\n * @returns Promise that resolves to an array of messages.\n */\n async messages(): Promise<Message[]> {\n const messages: Message[] = [];\n for await (const message of this.store.message.values()) {\n messages.push(new Message(this, message));\n }\n return messages;\n }\n\n /**\n * @description\n * Connect to WhatsApp Web.\n * @returns Promise that resolves to the socket.\n */\n protected async connect() {\n const promise = promify();\n try {\n const logger = P({ level: 'fatal' });\n const { state, save } = await useCache(this.store);\n const socket = Baileys.makeWASocket({\n logger: logger,\n maxMsgRetryCount: 4,\n syncFullHistory: false,\n printQRInTerminal: false,\n connectTimeoutMs: 20_000,\n retryRequestDelayMs: 350,\n markOnlineOnConnect: false,\n keepAliveIntervalMs: 30_000,\n version: [2, 3000, 1023223821],\n generateHighQualityLinkPreview: true,\n msgRetryCounterCache: new NodeCache(),\n browser: ['Windows', 'Chrome', 'Chrome 114.0.5735.198'],\n auth: {\n creds: state.creds,\n keys: Baileys.makeCacheableSignalKeyStore(state.keys, logger),\n },\n getMessage: async (key) => {\n const message = await this.store.message.get(key.id!);\n return message ? message.message! : undefined;\n },\n });\n socket.ev.process(async (event) => {\n this.emit('process', event, socket, this.store);\n if (event['creds.update']) {\n await save();\n }\n if (event['connection.update']) {\n const { connection, lastDisconnect } = event['connection.update'];\n const statusCode = lastDisconnect?.error?.['output']?.statusCode;\n if (connection === 'open') {\n promise.resolve(socket);\n } else if (connection === 'close') {\n if (statusCode !== Baileys.DisconnectReason.loggedOut) {\n promise.resolve(await this.connect());\n } else if (statusCode === Baileys.DisconnectReason.loggedOut) {\n promise.resolve(await this.connect());\n }\n }\n }\n // prettier-ignore\n await Promise.allSettled(\n [...event['messaging-history.set']?.chats || [], ...event['chats.upsert'] || []]\n .map(async chat => {\n await this.store.chat.set(chat);\n this.emit('chat:created', new Chat(this, chat));\n })\n );\n // prettier-ignore\n await Promise.allSettled(\n [...event['messaging-history.set']?.messages || [], ...event['messages.upsert']?.messages || []]\n .map(async message=> {\n await this.store.message.set(message);\n if(message.message?.extendedTextMessage || message.message?.imageMessage || message.message?.videoMessage || message.message?.audioMessage || message.message?.locationMessage){\n this.emit('message:created', new Message(this, message));\n }\n })\n );\n // prettier-ignore\n await Promise.allSettled(\n (event['chats.update'] || [])\n .map(async update => {\n const payload = await this.store.chat.get(update.id!);\n if (payload) {\n const chat = merge(payload, update) as Baileys.Chat;\n await this.store.chat.set(chat);\n this.emit('chat:updated', new Chat(this, chat));\n }\n })\n );\n // prettier-ignore\n await Promise.allSettled(\n (event['messages.update'] || [])\n .map(async update => {\n const payload = await this.store.message.get(update.key.id!);\n if (payload) {\n const message = merge(payload, update) as Baileys.WAProto.WebMessageInfo;\n await this.store.message.set(message);\n if(message.message?.extendedTextMessage || message.message?.imageMessage || message.message?.videoMessage || message.message?.audioMessage || message.message?.locationMessage)\n this.emit('message:updated', new Message(this, message));\n }\n })\n );\n for (const { id } of event['messages.delete']?.['keys'] || []) {\n await this.store.message.unset(id);\n }\n for (const key of event['chats.delete'] || []) {\n await this.store.chat.unset(key);\n }\n });\n if (!socket.authState.creds.registered) {\n await sleep(2000);\n await this.store.document.unset('creds.json');\n const code = await socket.requestPairingCode(this.options.phone);\n await this.options.onCode(code);\n }\n } catch (error) {\n promise.reject(error);\n }\n // prettier-ignore\n return promise\n .then((socket) => (this.socket = socket));\n }\n}\n\nexport default WhatsApp;\nexport * from './static/Store';\nexport { default as Store } from './static/Store';\nexport { default as useCache } from './static/useCache';\n\nexport * from './model/chat';\nexport { default as Chat } from './model/chat';\n\nexport * from './model/message';\nexport { default as Message } from './model/message';\n"],
5
+ "mappings": "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",
6
+ "names": ["src_exports", "__export", "src_default", "__toCommonJS", "import_utils", "import_async_mutex", "Baileys", "import_node_cache", "import_node_events", "import_pino", "import_chat", "import_message", "import_Store", "import_useCache", "__reExport", "WhatsApp", "EventEmitter", "options", "Store", "func", "release", "event", "documents", "document", "chats", "chat", "Chat", "messages", "message", "Message", "promise", "logger", "P", "state", "save", "useCache", "socket", "NodeCache", "key", "connection", "lastDisconnect", "statusCode", "update", "payload", "id", "code", "error"]
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import { Noop } from '@arcaelas/utils';
2
- import WhatsApp from 'src';
2
+ import WhatsApp from '..';
3
3
  type Serialize<T> = {
4
4
  [K in keyof T as T[K] extends Noop ? never : K]: T[K];
5
5
  };
@@ -17,7 +17,7 @@ export default class Base<T> {
17
17
  * Returns a JSON representation of this entity.
18
18
  * @returns A JSON representation of this entity.
19
19
  */
20
- toJSON(): any;
20
+ toJSON(): Serialize<T>;
21
21
  /**
22
22
  * @description
23
23
  * Returns a string representation of this entity.
@@ -50,13 +50,7 @@ class Base {
50
50
  * @returns A JSON representation of this entity.
51
51
  */
52
52
  toJSON() {
53
- const o = {};
54
- for (const k in this) {
55
- if (typeof this[k] === 'function')
56
- continue;
57
- o[k] = this[k];
58
- }
59
- return o;
53
+ return this._;
60
54
  }
61
55
  /**
62
56
  * @description
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/model/base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iDAAmC;AAKnC;;;;GAIG;AACH,MAAqB,IAAI;IACrB,YAA+B,CAAW,EAAqB,CAAe;QAA/C,MAAC,GAAD,CAAC,CAAU;QAAqB,MAAC,GAAD,CAAC,CAAc;IAAG,CAAC;IAClF;;;;OAIG;IACH,MAAM;QACF,MAAM,CAAC,GAAQ,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU;gBAAE,SAAS;YAC5C,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IACD;;;;OAIG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC;CACJ;AAvBD,uBAuBC"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/model/base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iDAAmC;AAKnC;;;;GAIG;AACH,MAAqB,IAAI;IACrB,YAA+B,CAAW,EAAqB,CAAe;QAA/C,MAAC,GAAD,CAAC,CAAU;QAAqB,MAAC,GAAD,CAAC,CAAc;IAAG,CAAC;IAClF;;;;OAIG;IACH,MAAM;QACF,OAAO,IAAI,CAAC,CAAC,CAAC;IAClB,CAAC;IACD;;;;OAIG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC;CACJ;AAlBD,uBAkBC"}
@@ -38,12 +38,14 @@ export default class Chat extends Base<Baileys.Chat> {
38
38
  */
39
39
  pin(): Promise<boolean>;
40
40
  /**
41
+ * @deprecated
41
42
  * @description
42
43
  * Marks this chat as seen.
43
44
  * @returns Promise that resolves to a boolean indicating success.
44
45
  */
45
46
  seen(): Promise<boolean>;
46
47
  /**
48
+ * @deprecated
47
49
  * @description
48
50
  * Mutes this chat.
49
51
  * @param time The time to mute for.
@@ -12,7 +12,7 @@ const message_1 = __importDefault(require("./message"));
12
12
  */
13
13
  class Chat extends base_1.default {
14
14
  async send(content, options) {
15
- return this.$.tick(async (socket) => {
15
+ return this.$.tick(async (release, socket) => {
16
16
  try {
17
17
  const _options = { type: 'text', ...options };
18
18
  if (typeof content === 'string') {
@@ -34,7 +34,9 @@ class Chat extends base_1.default {
34
34
  return true;
35
35
  }
36
36
  }
37
- catch { }
37
+ finally {
38
+ release();
39
+ }
38
40
  return false;
39
41
  });
40
42
  }
@@ -44,13 +46,14 @@ class Chat extends base_1.default {
44
46
  * @returns Promise that resolves to an array of messages.
45
47
  */
46
48
  async messages() {
47
- return await this.$.tick(async (_, store) => {
49
+ return await this.$.tick(async (release, _, store) => {
48
50
  const messages = [];
49
51
  const keys = await store.engine.match(`chat/${this._.id}/message/*/index`);
50
52
  for (const key of keys) {
51
53
  const [, , id] = key.match(/chat\/[^/]+\/message\/([^/]+)/);
52
54
  messages.push(new message_1.default(this.$, (await store.message.get(id))));
53
55
  }
56
+ release();
54
57
  return messages;
55
58
  });
56
59
  }
@@ -60,43 +63,45 @@ class Chat extends base_1.default {
60
63
  * @returns Promise that resolves to a boolean indicating success.
61
64
  */
62
65
  async pin() {
63
- return await this.$.tick(async (socket) => {
66
+ return await this.$.tick(async (release, socket) => {
64
67
  // prettier-ignore
65
68
  await socket.chatModify({
66
69
  pin: true,
67
70
  lastMessages: [this._.messages[this._.messages.length - 1].message],
68
- }, this._.id);
71
+ }, this._.id).finally(() => release());
69
72
  return true;
70
73
  });
71
74
  }
72
75
  /**
76
+ * @deprecated
73
77
  * @description
74
78
  * Marks this chat as seen.
75
79
  * @returns Promise that resolves to a boolean indicating success.
76
80
  */
77
81
  async seen() {
78
- return await this.$.tick(async (socket) => {
82
+ return await this.$.tick(async (release, socket) => {
79
83
  // prettier-ignore
80
84
  await socket.chatModify({
81
85
  markRead: true,
82
86
  lastMessages: [this._.messages[this._.messages.length - 1].message],
83
- }, this._.id);
87
+ }, this._.id).finally(() => release());
84
88
  return true;
85
89
  });
86
90
  }
87
91
  /**
92
+ * @deprecated
88
93
  * @description
89
94
  * Mutes this chat.
90
95
  * @param time The time to mute for.
91
96
  * @returns Promise that resolves to a boolean indicating success.
92
97
  */
93
98
  async mute(time = 0) {
94
- return await this.$.tick(async (socket) => {
99
+ return await this.$.tick(async (release, socket) => {
95
100
  // prettier-ignore
96
101
  await socket.chatModify({
97
102
  mute: time || null,
98
103
  lastMessages: [this._.messages[this._.messages.length - 1].message],
99
- }, this._.id);
104
+ }, this._.id).finally(() => release());
100
105
  return true;
101
106
  });
102
107
  }
@@ -107,8 +112,9 @@ class Chat extends base_1.default {
107
112
  * @returns Promise that resolves to a boolean indicating success.
108
113
  */
109
114
  async presence(status) {
110
- return await this.$.tick(async (socket) => {
115
+ return await this.$.tick(async (release, socket) => {
111
116
  await socket.sendPresenceUpdate(status, this._.id);
117
+ release();
112
118
  return true;
113
119
  });
114
120
  }
@@ -118,11 +124,13 @@ class Chat extends base_1.default {
118
124
  * @returns Promise that resolves to a boolean indicating success.
119
125
  */
120
126
  async delete() {
121
- return this.$.tick(async (socket) => {
122
- await socket.chatModify({
127
+ return this.$.tick(async (release, socket) => {
128
+ await socket
129
+ .chatModify({
123
130
  delete: true,
124
131
  lastMessages: [this._.messages[this._.messages.length - 1].message],
125
- }, this._.id);
132
+ }, this._.id)
133
+ .finally(() => release());
126
134
  return true;
127
135
  });
128
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/model/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/model/chat.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import * as Baileys from 'baileys';
2
2
  import Base from './base';
3
3
  import Chat from './chat';
4
+ type LikeEmoji = '👍' | '❤️' | '😂' | '😮' | '😢' | '👎' | '👌' | '🙏' | '👏' | '👏';
4
5
  export interface MessageOptions {
5
6
  /**
6
7
  * @description
@@ -35,8 +36,77 @@ export interface MessageOptions {
35
36
  * Represents a message in WhatsApp.
36
37
  */
37
38
  export default class Message extends Base<Baileys.WAProto.IWebMessageInfo> {
39
+ get raw(): {
40
+ key: Baileys.WAProto.IMessageKey;
41
+ message?: (Baileys.WAProto.IMessage | null) | undefined;
42
+ messageTimestamp?: (number | Long | null) | undefined;
43
+ status?: (Baileys.WAProto.WebMessageInfo.Status | null) | undefined;
44
+ participant?: (string | null) | undefined;
45
+ messageC2STimestamp?: (number | Long | null) | undefined;
46
+ ignore?: (boolean | null) | undefined;
47
+ starred?: (boolean | null) | undefined;
48
+ broadcast?: (boolean | null) | undefined;
49
+ pushName?: (string | null) | undefined;
50
+ mediaCiphertextSha256?: (Uint8Array | null) | undefined;
51
+ multicast?: (boolean | null) | undefined;
52
+ urlText?: (boolean | null) | undefined;
53
+ urlNumber?: (boolean | null) | undefined;
54
+ messageStubType?: (Baileys.WAProto.WebMessageInfo.StubType | null) | undefined;
55
+ clearMedia?: (boolean | null) | undefined;
56
+ messageStubParameters?: (string[] | null) | undefined;
57
+ duration?: (number | null) | undefined;
58
+ labels?: (string[] | null) | undefined;
59
+ paymentInfo?: (Baileys.WAProto.IPaymentInfo | null) | undefined;
60
+ finalLiveLocation?: (Baileys.WAProto.Message.ILiveLocationMessage | null) | undefined;
61
+ quotedPaymentInfo?: (Baileys.WAProto.IPaymentInfo | null) | undefined;
62
+ ephemeralStartTimestamp?: (number | Long | null) | undefined;
63
+ ephemeralDuration?: (number | null) | undefined;
64
+ ephemeralOffToOn?: (boolean | null) | undefined;
65
+ ephemeralOutOfSync?: (boolean | null) | undefined;
66
+ bizPrivacyStatus?: (Baileys.WAProto.WebMessageInfo.BizPrivacyStatus | null) | undefined;
67
+ verifiedBizName?: (string | null) | undefined;
68
+ mediaData?: (Baileys.WAProto.IMediaData | null) | undefined;
69
+ photoChange?: (Baileys.WAProto.IPhotoChange | null) | undefined;
70
+ userReceipt?: (Baileys.WAProto.IUserReceipt[] | null) | undefined;
71
+ reactions?: (Baileys.WAProto.IReaction[] | null) | undefined;
72
+ quotedStickerData?: (Baileys.WAProto.IMediaData | null) | undefined;
73
+ futureproofData?: (Uint8Array | null) | undefined;
74
+ statusPsa?: (Baileys.WAProto.IStatusPSA | null) | undefined;
75
+ pollUpdates?: (Baileys.WAProto.IPollUpdate[] | null) | undefined;
76
+ pollAdditionalMetadata?: (Baileys.WAProto.IPollAdditionalMetadata | null) | undefined;
77
+ agentId?: (string | null) | undefined;
78
+ statusAlreadyViewed?: (boolean | null) | undefined;
79
+ messageSecret?: (Uint8Array | null) | undefined;
80
+ keepInChat?: (Baileys.WAProto.IKeepInChat | null) | undefined;
81
+ originalSelfAuthorUserJidString?: (string | null) | undefined;
82
+ revokeMessageTimestamp?: (number | Long | null) | undefined;
83
+ pinInChat?: (Baileys.WAProto.IPinInChat | null) | undefined;
84
+ premiumMessageInfo?: (Baileys.WAProto.IPremiumMessageInfo | null) | undefined;
85
+ is1PBizBotMessage?: (boolean | null) | undefined;
86
+ isGroupHistoryMessage?: (boolean | null) | undefined;
87
+ botMessageInvokerJid?: (string | null) | undefined;
88
+ commentMetadata?: (Baileys.WAProto.ICommentMetadata | null) | undefined;
89
+ eventResponses?: (Baileys.WAProto.IEventResponse[] | null) | undefined;
90
+ reportingTokenInfo?: (Baileys.WAProto.IReportingTokenInfo | null) | undefined;
91
+ newsletterServerId?: (number | Long | null) | undefined;
92
+ eventAdditionalMetadata?: (Baileys.WAProto.IEventAdditionalMetadata | null) | undefined;
93
+ isMentionedInStatus?: (boolean | null) | undefined;
94
+ statusMentions?: (string[] | null) | undefined;
95
+ targetMessageId?: (Baileys.WAProto.IMessageKey | null) | undefined;
96
+ messageAddOns?: (Baileys.WAProto.IMessageAddOn[] | null) | undefined;
97
+ statusMentionMessageInfo?: (Baileys.WAProto.IStatusMentionMessage | null) | undefined;
98
+ isSupportAiMessage?: (boolean | null) | undefined;
99
+ statusMentionSources?: (string[] | null) | undefined;
100
+ supportAiCitations?: (Baileys.WAProto.ICitation[] | null) | undefined;
101
+ botTargetId?: (string | null) | undefined;
102
+ };
38
103
  get isMe(): boolean;
39
104
  get role(): "assistant" | "user";
105
+ get author(): {
106
+ id: string;
107
+ name: string | null;
108
+ phone: string | null;
109
+ };
40
110
  get type(): "audio" | "video" | "image" | "location" | "text" | "unknown";
41
111
  content(): Promise<string | Buffer>;
42
112
  /**
@@ -75,7 +145,7 @@ export default class Message extends Base<Baileys.WAProto.IWebMessageInfo> {
75
145
  * @param emoji The emoji to use for the like.
76
146
  * @returns Promise that resolves to a boolean indicating success.
77
147
  */
78
- like(emoji: string): Promise<boolean>;
148
+ like(emoji: LikeEmoji): Promise<boolean>;
79
149
  /**
80
150
  * @description
81
151
  * Forwards this message to another chat.
@@ -84,3 +154,4 @@ export default class Message extends Base<Baileys.WAProto.IWebMessageInfo> {
84
154
  */
85
155
  forward(chat_id: string): Promise<boolean>;
86
156
  }
157
+ export {};
@@ -45,14 +45,25 @@ const chat_1 = __importDefault(require("./chat"));
45
45
  * Represents a message in WhatsApp.
46
46
  */
47
47
  class Message extends base_1.default {
48
+ get raw() {
49
+ return this._;
50
+ }
48
51
  get isMe() {
49
- return !!this._.key.fromMe;
52
+ return !!this.raw.key.fromMe;
50
53
  }
51
54
  get role() {
52
55
  return this.isMe ? 'assistant' : 'user';
53
56
  }
57
+ get author() {
58
+ const phone = this.raw.key.remoteJid?.split('@')[0] ?? null;
59
+ return {
60
+ id: this.raw.key.remoteJid,
61
+ name: this.raw.key.fromMe ? 'me' : this.raw.key.participant || this.raw.pushName || phone,
62
+ phone,
63
+ };
64
+ }
54
65
  get type() {
55
- switch (Baileys.getContentType(this._.message)) {
66
+ switch (Baileys.getContentType(this.raw.message)) {
56
67
  case 'extendedTextMessage':
57
68
  return 'text';
58
69
  case 'imageMessage':
@@ -69,11 +80,11 @@ class Message extends base_1.default {
69
80
  }
70
81
  async content() {
71
82
  // prettier-ignore
72
- return this.type === 'text' ? this._.message.extendedTextMessage.text : this.$.tick(async (socket) => {
73
- return await Baileys.downloadMediaMessage(this._, 'buffer', {}, {
83
+ return this.type === 'text' ? this.raw.message.extendedTextMessage.text : this.$.tick(async (release, socket) => {
84
+ return await Baileys.downloadMediaMessage(this.raw, 'buffer', {}, {
74
85
  logger: socket.logger,
75
86
  reuploadRequest: socket.updateMediaMessage,
76
- });
87
+ }).finally(() => release());
77
88
  });
78
89
  }
79
90
  /**
@@ -83,32 +94,35 @@ class Message extends base_1.default {
83
94
  */
84
95
  async chat() {
85
96
  // prettier-ignore
86
- return this.$.tick(async (_, store) => {
87
- return new chat_1.default(this.$, (await store.chat.get(this._.key.remoteJid)));
97
+ return this.$.tick(async (release, _, store) => {
98
+ return new chat_1.default(this.$, (await store.chat.get(this.raw.key.remoteJid).finally(() => release())));
88
99
  });
89
100
  }
90
101
  async reply(content, options) {
91
- return this.$.tick(async (socket) => {
102
+ return this.$.tick(async (release, socket) => {
92
103
  // prettier-ignore
93
104
  const _options = { type: 'text', ...options };
94
105
  if (typeof content === 'string') {
95
- await socket.sendMessage(this._.key.remoteJid, {
106
+ await socket.sendMessage(this.raw.key.remoteJid, {
96
107
  text: content,
97
108
  viewOnce: _options.once || false,
98
- }, { quoted: this._ });
109
+ }, { quoted: this.raw });
110
+ release();
99
111
  return true;
100
112
  }
101
113
  else if (Buffer.isBuffer(content)) {
102
- await socket.sendMessage(this._.key.remoteJid, {
114
+ await socket.sendMessage(this.raw.key.remoteJid, {
103
115
  viewOnce: _options.once || false,
104
116
  ptv: !!(_options.type === 'video' && _options.ptv),
105
117
  ptt: !!(_options.type === 'audio' && _options.ptt),
106
118
  image: _options.type === 'image' ? content : undefined,
107
119
  audio: _options.type === 'audio' ? content : undefined,
108
120
  video: _options.type === 'video' ? content : undefined,
109
- }, { quoted: this._ });
121
+ }, { quoted: this.raw });
122
+ release();
110
123
  return true;
111
124
  }
125
+ release();
112
126
  return false;
113
127
  });
114
128
  }
@@ -118,12 +132,12 @@ class Message extends base_1.default {
118
132
  * @returns Promise that resolves to a boolean indicating success.
119
133
  */
120
134
  async seen() {
121
- return this.$.tick(async (socket) => {
135
+ return this.$.tick(async (release, socket) => {
122
136
  // prettier-ignore
123
137
  await socket.chatModify({
124
138
  markRead: true,
125
- lastMessages: [this._],
126
- }, this._.key.remoteJid);
139
+ lastMessages: [this.raw],
140
+ }, this.raw.key.remoteJid).finally(() => release());
127
141
  return true;
128
142
  });
129
143
  }
@@ -134,22 +148,23 @@ class Message extends base_1.default {
134
148
  * @returns Promise that resolves to a boolean indicating success.
135
149
  */
136
150
  async delete(forall = false) {
137
- return this.$.tick(async (socket) => {
151
+ return this.$.tick(async (release, socket) => {
138
152
  if (forall) {
139
- await socket.sendMessage(this._.key.remoteJid, {
140
- delete: this._.key,
153
+ await socket.sendMessage(this.raw.key.remoteJid, {
154
+ delete: this.raw.key,
141
155
  });
142
156
  }
143
157
  else {
144
158
  // prettier-ignore
145
159
  await socket.chatModify({
146
160
  deleteForMe: {
147
- key: this._.key,
161
+ key: this.raw.key,
148
162
  deleteMedia: true,
149
- timestamp: this._.messageTimestamp,
163
+ timestamp: this.raw.messageTimestamp,
150
164
  },
151
- }, this._.key.remoteJid);
165
+ }, this.raw.key.remoteJid);
152
166
  }
167
+ release();
153
168
  return true;
154
169
  });
155
170
  }
@@ -160,10 +175,11 @@ class Message extends base_1.default {
160
175
  * @returns Promise that resolves to a boolean indicating success.
161
176
  */
162
177
  async like(emoji) {
163
- return this.$.tick(async (socket) => {
164
- await socket.sendMessage(this._.key.remoteJid, {
165
- react: { text: emoji, key: this._.key },
178
+ return this.$.tick(async (release, socket) => {
179
+ await socket.sendMessage(this.raw.key.remoteJid, {
180
+ react: { text: emoji, key: this.raw.key },
166
181
  });
182
+ release();
167
183
  return true;
168
184
  });
169
185
  }
@@ -174,10 +190,11 @@ class Message extends base_1.default {
174
190
  * @returns Promise that resolves to a boolean indicating success.
175
191
  */
176
192
  async forward(chat_id) {
177
- return this.$.tick(async (socket) => {
193
+ return this.$.tick(async (release, socket) => {
178
194
  await socket.sendMessage(chat_id, {
179
- forward: { key: this._.key },
195
+ forward: { key: this.raw.key },
180
196
  });
197
+ release();
181
198
  return true;
182
199
  });
183
200
  }
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/model/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/model/message.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "license": "ISC",
3
- "version": "1.0.18",
3
+ "version": "1.0.19",
4
4
  "name": "@arcaelas/whatsapp",
5
5
  "homepage": "https://github.com/arcaelas/whatsapp",
6
6
  "description": "A small box of tools, which are implemented in different factions of the library.",