@arcaelas/whatsapp 1.0.18 → 1.0.20

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/CHANGELOG.md ADDED
@@ -0,0 +1,53 @@
1
+ # CHANGELOG
2
+
3
+ ## 2025-07-26
4
+
5
+ ### Features
6
+
7
+ - Implementar modelo de contactos y mejorar gestión de eventos de mensajería (07272cd)
8
+ - Modificar método reply() de mensajes para retornar instancia Message en lugar de boolean (07272cd)
9
+
10
+ ### Refactor
11
+
12
+ - Separar manejo de eventos de socket en handlers específicos para mejor organización (07272cd)
13
+ - Optimizar gestión de eliminación de mensajes con deleteMedia condicional según tipo (07272cd)
14
+ - Simplificar métodos de mensaje eliminando funcionalidad redundante (07272cd)
15
+
16
+ ---
17
+
18
+ ## Historial anterior
19
+
20
+ ### Features
21
+
22
+ - Permitir descripción personalizada del navegador en la inicialización del cliente WhatsApp (4ccad93)
23
+ - Emitir eventos de socket al middleware de proceso con contexto de store (9f8a033)
24
+ - Configurar agente de navegador macOS y agregar manejador de recuperación de mensajes (5f82eff)
25
+ - Agregar retraso de 5 segundos antes de solicitar código de emparejamiento (180dcb1)
26
+ - Implementar sistema de caché y reconexión automática para WhatsApp con node-cache (e458423)
27
+ - Agregar métodos de detección de rol, tipo y recuperación de contenido de mensajes (5273d4c)
28
+ - Agregar información de autor de mensaje y mejorar liberación de recursos en métodos de mensaje (b12da52)
29
+
30
+ ### Fixes
31
+
32
+ - Hacer condicional la opción de navegador en la configuración de WASocket (b7c7b48)
33
+ - Mejorar manejo de conexión de socket con verificación explícita de estado y timeout más largo (a08e55f)
34
+ - Esperar conexión de socket antes de solicitar código de emparejamiento (7bd91f4)
35
+ - Mover inicialización del store después de configurar las opciones (9ed0bd0)
36
+ - Deshabilitar solicitud de código de emparejamiento y devolver placeholder NO-CODE en su lugar (02b9c26)
37
+ - Agregar llamadas de liberación a operaciones de socket y mejorar detalles de autor de mensaje (7f8a2dc)
38
+
39
+ ### Refactor
40
+
41
+ - Optimizar manejo de eventos y agregar emisión de eventos de proceso en cliente WhatsApp (57a77ec)
42
+ - Simplificar login de WhatsApp para usar únicamente autenticación basada en código (c52fd97)
43
+ - Optimizar flujo de conexión de WhatsApp y eliminar emisiones de eventos redundantes (616a989)
44
+ - Simplificar manejo de conexión de WhatsApp y eliminar importaciones sin uso (ad6a158)
45
+ - Introducir getter raw para acceder a datos de mensaje y actualizar referencias (157490f)
46
+ - Agregar información de autor de mensaje y mejorar manejo de liberación de mutex (7fa54cc)
47
+ - Implementar patrón de liberación de recursos en métodos de chat y mensaje (15be77f)
48
+
49
+ ### Docs
50
+
51
+ - Agregar comentarios JSDoc a métodos y propiedades de la clase Chat (0bd5cb0)
52
+ - Agregar JSDoc a la clase Base y sus métodos de serialización (f51b081)
53
+ - Agregar comentarios JSDoc a métodos e interfaces de la clase WhatsApp (c538750)
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 q=Object.create;var f=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var N=(r,i)=>{for(var e in i)f(r,e,{get:i[e],enumerable:!0})},y=(r,i,e,a)=>{if(i&&typeof i=="object"||typeof i=="function")for(let h of T(i))!j.call(r,h)&&h!==e&&f(r,h,{get:()=>i[h],enumerable:!(a=I(i,h))||a.enumerable});return r},l=(r,i,e)=>(y(r,i,"default"),e&&y(e,i,"default")),c=(r,i,e)=>(e=r!=null?q(D(r)):{},y(i||!r||!r.__esModule?f(e,"default",{value:r,enumerable:!0}):e,r)),b=r=>y(f({},"__esModule",{value:!0}),r);var d={};N(d,{Chat:()=>B.default,Message:()=>W.default,Store:()=>R.default,default:()=>H,useCache:()=>A.default});module.exports=b(d);var p=require("@arcaelas/utils"),k=require("async-mutex"),w=c(require("baileys")),S=c(require("node-cache")),C=c(require("node:events")),P=c(require("pino")),u=c(require("./model/chat")),g=c(require("./model/message")),x=c(require("./static/Store")),M=c(require("./static/useCache"));l(d,require("./static/Store"),module.exports);var R=c(require("./static/Store")),A=c(require("./static/useCache"));l(d,require("./model/chat"),module.exports);var B=c(require("./model/chat"));l(d,require("./model/message"),module.exports);var W=c(require("./model/message"));class O extends C.default{constructor(e){super({captureRejections:!0});this.options=e;this.socket=null;this.mutex=new k.Mutex;this.store=new x.default(this.options.store),this.connect()}async tick(e){return this.mutex.acquire(5).then(a=>e(a,this.socket,this.store))}process(e){return this.on("process",a=>{e(a,this.socket,this.store)})}async documents(){const e={};for await(const a of this.store.document.values())e[a.key]=a.value;return e}async chats(){const e=[];for await(const a of this.store.chat.values())e.push(new u.default(this,a));return e}async messages(){const e=[];for await(const a of this.store.message.values())e.push(new g.default(this,a));return e}async connect(){const e=(0,p.promify)();try{const a=(0,P.default)({level:"fatal"}),{state:h,save:E}=await(0,M.default)(this.store),n=w.makeWASocket({logger:a,maxMsgRetryCount:4,syncFullHistory:!1,printQRInTerminal:!1,connectTimeoutMs:2e4,retryRequestDelayMs:350,markOnlineOnConnect:!1,keepAliveIntervalMs:3e4,version:[2,3e3,1023223821],generateHighQualityLinkPreview:!0,msgRetryCounterCache:new S.default,browser:["Windows","Chrome","Chrome 114.0.5735.198"],auth:{creds:h.creds,keys:w.makeCacheableSignalKeyStore(h.keys,a)},getMessage:async s=>{const t=await this.store.message.get(s.id);return t?t.message:void 0}});if(n.ev.process(async s=>{if(this.emit("process",s,n,this.store),s["creds.update"]&&await E(),s["connection.update"]){const{connection:t,lastDisconnect:m}=s["connection.update"],o=m?.error?.output?.statusCode;t==="open"?e.resolve(n):t==="close"&&(o===w.DisconnectReason.loggedOut?e.resolve(await this.connect()):o===w.DisconnectReason.restartRequired?e.resolve(await this.connect()):e.reject(m))}}),n.ev.on("messaging-history.set",({contacts:s=[],chats:t=[],messages:m=[]})=>{Promise.allSettled(s.map(async o=>{await this.store.contact.set(o)})),Promise.allSettled(t.map(async o=>{await this.store.chat.set(o),this.emit("chat:created",new u.default(this,o))})),Promise.allSettled(m.map(async o=>{await this.store.message.set(o);const v=new g.default(this,o);["text","image","audio","video","location"].includes(v.type)&&this.emit("message:created",v)}))}),n.ev.on("chats.upsert",s=>{Promise.allSettled(s.map(async t=>{await this.store.chat.set(t),this.emit("chat:created",new u.default(this,t))}))}),n.ev.on("chats.update",s=>{Promise.allSettled(s.map(async t=>{const m=await this.store.chat.get(t.id),o=(0,p.merge)({},m,t);await this.store.chat.set(o),this.emit("chat:updated",new u.default(this,o))}))}),n.ev.on("chats.delete",s=>{Promise.allSettled(s.map(async t=>{await this.store.chat.unset(t),this.emit("chat:deleted",t)}))}),n.ev.on("messages.upsert",({type:s,messages:t})=>{s==="notify"&&Promise.allSettled(t.map(async m=>{await this.store.message.set(m);const o=new g.default(this,m);["text","image","audio","video","location"].includes(o.type)&&this.emit("message:created",o)}))}),n.ev.on("messages.update",s=>{Promise.allSettled(s.map(async t=>{const m=await this.store.message.get(t.key.id),o=(0,p.merge)({},m,t);await this.store.message.set(o),this.emit("message:updated",new g.default(this,o))}))}),n.ev.on("messages.delete",s=>{s.keys&&Promise.allSettled(s.keys.map(async t=>{await this.store.message.unset(t.id),this.emit("message:deleted",t.id)}))}),!n.authState.creds.registered){await(0,p.sleep)(2e3),await this.store.document.unset("creds.json");const s=await n.requestPairingCode(this.options.phone);await this.options.onCode(s)}}catch(a){e.reject(a)}return e.then(a=>this.socket=a)}}var H=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.restartRequired) {\n promise.resolve(await this.connect());\n } else {\n promise.reject(lastDisconnect);\n }\n }\n }\n });\n socket.ev.on('messaging-history.set', ({ contacts = [], chats = [], messages = [] }) => {\n // prettier-ignore\n Promise.allSettled(\n contacts.map(async c=>{\n await this.store.contact.set(c);\n })\n );\n // prettier-ignore\n Promise.allSettled(\n chats.map(async c=>{\n await this.store.chat.set(c);\n this.emit('chat:created', new Chat(this, c));\n })\n );\n // prettier-ignore\n Promise.allSettled(\n messages.map(async m=>{\n await this.store.message.set(m);\n const message = new Message(this, m);\n if(['text', 'image', 'audio', 'video', 'location'].includes(message.type)){\n this.emit('message:created', message);\n }\n })\n );\n });\n socket.ev.on('chats.upsert', (chats) => {\n // prettier-ignore\n Promise.allSettled(\n chats.map(async c=>{\n await this.store.chat.set(c);\n this.emit('chat:created', new Chat(this, c));\n })\n )\n });\n socket.ev.on('chats.update', (chats) => {\n // prettier-ignore\n Promise.allSettled(\n chats.map(async c=>{\n const mem = await this.store.chat.get(c.id!)\n const payload = merge({}, mem, c);\n await this.store.chat.set(payload);\n this.emit('chat:updated', new Chat(this, payload));\n })\n )\n });\n socket.ev.on('chats.delete', (ids) => {\n // prettier-ignore\n Promise.allSettled(\n ids.map(async id=>{\n await this.store.chat.unset(id);\n this.emit('chat:deleted', id);\n })\n )\n });\n socket.ev.on('messages.upsert', ({ type, messages }) => {\n if (type === 'notify') {\n // prettier-ignore\n Promise.allSettled(\n messages.map(async m=>{\n await this.store.message.set(m);\n const message = new Message(this, m);\n if(['text', 'image', 'audio', 'video', 'location'].includes(message.type)){\n this.emit('message:created', message);\n }\n })\n )\n }\n });\n socket.ev.on('messages.update', (messages) => {\n // prettier-ignore\n Promise.allSettled(\n messages.map(async m=>{\n const mem = await this.store.message.get(m.key.id!);\n const payload = merge({}, mem, m);\n await this.store.message.set(payload);\n this.emit('message:updated', new Message(this, payload));\n })\n )\n });\n socket.ev.on('messages.delete', (e) => {\n if (e['keys']) {\n // prettier-ignore\n Promise.allSettled(\n e['keys'].map(async k=>{\n await this.store.message.unset(k.id!);\n this.emit('message:deleted', k.id!);\n })\n )\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": "wmBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0EAAAE,EAAA,wCAAAC,EAAAH,GAAA,IAAAI,EAA4C,2BAC5CC,EAA2C,uBAC3CC,EAAyB,sBACzBC,EAAsB,yBACtBC,EAAyB,0BACzBC,EAAc,mBACdC,EAAiB,2BACjBC,EAAoB,8BACpBC,EAA8B,6BAC9BC,EAAqB,gCA4RrBC,EAAAd,EAAc,0BArSd,gBAsSA,IAAAY,EAAiC,6BACjCC,EAAoC,gCAEpCC,EAAAd,EAAc,wBAzSd,gBA0SA,IAAAU,EAAgC,2BAEhCI,EAAAd,EAAc,2BA5Sd,gBA6SA,IAAAW,EAAmC,8BA3PnC,MAAMI,UAAiB,EAAAC,OAAuB,CAiB1C,YAA+BC,EAAoB,CAC/C,MAAM,CAAE,kBAAmB,EAAK,CAAC,EADN,aAAAA,EAP/B,KAAU,OAAkC,KAK5C,KAAmB,MAAQ,IAAI,QAI3B,KAAK,MAAQ,IAAI,EAAAC,QAAM,KAAK,QAAQ,KAAK,EACzC,KAAK,QAAQ,CACjB,CAQA,MAAM,KAAsGC,EAA0C,CAClJ,OAAO,KAAK,MAAM,QAAQ,CAAC,EAAE,KAAMC,GAAYD,EAAKC,EAAS,KAAK,OAAS,KAAK,KAAK,CAAC,CAC1F,CAQA,QAAQD,EAA+F,CACnG,OAAO,KAAK,GAAG,UAAYE,GAAU,CACjCF,EAAKE,EAAO,KAAK,OAAS,KAAK,KAAK,CACxC,CAAC,CACL,CAOA,MAAM,WAA0C,CAC5C,MAAMC,EAAiC,CAAC,EACxC,gBAAiBC,KAAY,KAAK,MAAM,SAAS,OAAO,EACpDD,EAAUC,EAAS,GAAG,EAAIA,EAAS,MAEvC,OAAOD,CACX,CAOA,MAAM,OAAyB,CAC3B,MAAME,EAAgB,CAAC,EACvB,gBAAiBC,KAAQ,KAAK,MAAM,KAAK,OAAO,EAC5CD,EAAM,KAAK,IAAI,EAAAE,QAAK,KAAMD,CAAI,CAAC,EAEnC,OAAOD,CACX,CAOA,MAAM,UAA+B,CACjC,MAAMG,EAAsB,CAAC,EAC7B,gBAAiBC,KAAW,KAAK,MAAM,QAAQ,OAAO,EAClDD,EAAS,KAAK,IAAI,EAAAE,QAAQ,KAAMD,CAAO,CAAC,EAE5C,OAAOD,CACX,CAOA,MAAgB,SAAU,CACtB,MAAMG,KAAU,WAAQ,EACxB,GAAI,CACA,MAAMC,KAAS,EAAAC,SAAE,CAAE,MAAO,OAAQ,CAAC,EAC7B,CAAE,MAAAC,EAAO,KAAAC,CAAK,EAAI,QAAM,EAAAC,SAAS,KAAK,KAAK,EAC3CC,EAAS9B,EAAQ,aAAa,CAChC,OAAQyB,EACR,iBAAkB,EAClB,gBAAiB,GACjB,kBAAmB,GACnB,iBAAkB,IAClB,oBAAqB,IACrB,oBAAqB,GACrB,oBAAqB,IACrB,QAAS,CAAC,EAAG,IAAM,UAAU,EAC7B,+BAAgC,GAChC,qBAAsB,IAAI,EAAAM,QAC1B,QAAS,CAAC,UAAW,SAAU,uBAAuB,EACtD,KAAM,CACF,MAAOJ,EAAM,MACb,KAAM3B,EAAQ,4BAA4B2B,EAAM,KAAMF,CAAM,CAChE,EACA,WAAY,MAAOO,GAAQ,CACvB,MAAMV,EAAU,MAAM,KAAK,MAAM,QAAQ,IAAIU,EAAI,EAAG,EACpD,OAAOV,EAAUA,EAAQ,QAAW,MACxC,CACJ,CAAC,EAgHD,GA/GAQ,EAAO,GAAG,QAAQ,MAAOf,GAAU,CAK/B,GAJA,KAAK,KAAK,UAAWA,EAAOe,EAAQ,KAAK,KAAK,EAC1Cf,EAAM,cAAc,GACpB,MAAMa,EAAK,EAEXb,EAAM,mBAAmB,EAAG,CAC5B,KAAM,CAAE,WAAAkB,EAAY,eAAAC,CAAe,EAAInB,EAAM,mBAAmB,EAC1DoB,EAAaD,GAAgB,OAAQ,QAAW,WAClDD,IAAe,OACfT,EAAQ,QAAQM,CAAM,EACfG,IAAe,UAClBE,IAAenC,EAAQ,iBAAiB,UACxCwB,EAAQ,QAAQ,MAAM,KAAK,QAAQ,CAAC,EAC7BW,IAAenC,EAAQ,iBAAiB,gBAC/CwB,EAAQ,QAAQ,MAAM,KAAK,QAAQ,CAAC,EAEpCA,EAAQ,OAAOU,CAAc,GAI7C,CAAC,EACDJ,EAAO,GAAG,GAAG,wBAAyB,CAAC,CAAE,SAAAM,EAAW,CAAC,EAAG,MAAAlB,EAAQ,CAAC,EAAG,SAAAG,EAAW,CAAC,CAAE,IAAM,CAEpF,QAAQ,WACJe,EAAS,IAAI,MAAMC,GAAG,CAClB,MAAM,KAAK,MAAM,QAAQ,IAAIA,CAAC,CAClC,CAAC,CACL,EAEA,QAAQ,WACJnB,EAAM,IAAI,MAAMmB,GAAG,CACf,MAAM,KAAK,MAAM,KAAK,IAAIA,CAAC,EAC3B,KAAK,KAAK,eAAgB,IAAI,EAAAjB,QAAK,KAAMiB,CAAC,CAAC,CAC/C,CAAC,CACL,EAEA,QAAQ,WACJhB,EAAS,IAAI,MAAMiB,GAAG,CAClB,MAAM,KAAK,MAAM,QAAQ,IAAIA,CAAC,EAC9B,MAAMhB,EAAU,IAAI,EAAAC,QAAQ,KAAMe,CAAC,EAChC,CAAC,OAAQ,QAAS,QAAS,QAAS,UAAU,EAAE,SAAShB,EAAQ,IAAI,GACpE,KAAK,KAAK,kBAAmBA,CAAO,CAE5C,CAAC,CACL,CACJ,CAAC,EACDQ,EAAO,GAAG,GAAG,eAAiBZ,GAAU,CAEpC,QAAQ,WACJA,EAAM,IAAI,MAAMmB,GAAG,CACf,MAAM,KAAK,MAAM,KAAK,IAAIA,CAAC,EAC3B,KAAK,KAAK,eAAgB,IAAI,EAAAjB,QAAK,KAAMiB,CAAC,CAAC,CAC/C,CAAC,CACL,CACJ,CAAC,EACDP,EAAO,GAAG,GAAG,eAAiBZ,GAAU,CAEpC,QAAQ,WACJA,EAAM,IAAI,MAAMmB,GAAG,CACf,MAAME,EAAM,MAAM,KAAK,MAAM,KAAK,IAAIF,EAAE,EAAG,EACrCG,KAAU,SAAM,CAAC,EAAGD,EAAKF,CAAC,EAChC,MAAM,KAAK,MAAM,KAAK,IAAIG,CAAO,EACjC,KAAK,KAAK,eAAgB,IAAI,EAAApB,QAAK,KAAMoB,CAAO,CAAC,CACrD,CAAC,CACL,CACJ,CAAC,EACDV,EAAO,GAAG,GAAG,eAAiBW,GAAQ,CAElC,QAAQ,WACJA,EAAI,IAAI,MAAMC,GAAI,CACd,MAAM,KAAK,MAAM,KAAK,MAAMA,CAAE,EAC9B,KAAK,KAAK,eAAgBA,CAAE,CAChC,CAAC,CACL,CACJ,CAAC,EACDZ,EAAO,GAAG,GAAG,kBAAmB,CAAC,CAAE,KAAAa,EAAM,SAAAtB,CAAS,IAAM,CAChDsB,IAAS,UAET,QAAQ,WACJtB,EAAS,IAAI,MAAM,GAAG,CAClB,MAAM,KAAK,MAAM,QAAQ,IAAI,CAAC,EAC9B,MAAMC,EAAU,IAAI,EAAAC,QAAQ,KAAM,CAAC,EAChC,CAAC,OAAQ,QAAS,QAAS,QAAS,UAAU,EAAE,SAASD,EAAQ,IAAI,GACpE,KAAK,KAAK,kBAAmBA,CAAO,CAE5C,CAAC,CACL,CAER,CAAC,EACDQ,EAAO,GAAG,GAAG,kBAAoBT,GAAa,CAE1C,QAAQ,WACJA,EAAS,IAAI,MAAMiB,GAAG,CAClB,MAAMC,EAAM,MAAM,KAAK,MAAM,QAAQ,IAAID,EAAE,IAAI,EAAG,EAC5CE,KAAU,SAAM,CAAC,EAAGD,EAAKD,CAAC,EAChC,MAAM,KAAK,MAAM,QAAQ,IAAIE,CAAO,EACpC,KAAK,KAAK,kBAAmB,IAAI,EAAAjB,QAAQ,KAAMiB,CAAO,CAAC,CAC3D,CAAC,CACL,CACJ,CAAC,EACDV,EAAO,GAAG,GAAG,kBAAoBc,GAAM,CAC/BA,EAAE,MAEF,QAAQ,WACJA,EAAE,KAAQ,IAAI,MAAMC,GAAG,CACnB,MAAM,KAAK,MAAM,QAAQ,MAAMA,EAAE,EAAG,EACpC,KAAK,KAAK,kBAAmBA,EAAE,EAAG,CACtC,CAAC,CACL,CAER,CAAC,EACG,CAACf,EAAO,UAAU,MAAM,WAAY,CACpC,QAAM,SAAM,GAAI,EAChB,MAAM,KAAK,MAAM,SAAS,MAAM,YAAY,EAC5C,MAAMgB,EAAO,MAAMhB,EAAO,mBAAmB,KAAK,QAAQ,KAAK,EAC/D,MAAM,KAAK,QAAQ,OAAOgB,CAAI,EAEtC,OAASC,EAAP,CACEvB,EAAQ,OAAOuB,CAAK,CACxB,CAEA,OAAOvB,EACF,KAAMM,GAAY,KAAK,OAASA,CAAO,CAChD,CACJ,CAEA,IAAOlC,EAAQa",
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", "contacts", "c", "m", "mem", "payload", "ids", "id", "type", "e", "k", "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"}
@@ -7,6 +7,69 @@ import Message, { MessageOptions } from './message';
7
7
  * Represents a chat in WhatsApp.
8
8
  */
9
9
  export default class Chat extends Base<Baileys.Chat> {
10
+ get raw(): {
11
+ id: string;
12
+ messages?: (Baileys.WAProto.IHistorySyncMsg[] | null) | undefined;
13
+ newJid?: (string | null) | undefined;
14
+ oldJid?: (string | null) | undefined;
15
+ lastMsgTimestamp?: (number | Long | null) | undefined;
16
+ unreadCount?: (number | null) | undefined;
17
+ readOnly?: (boolean | null) | undefined;
18
+ endOfHistoryTransfer?: (boolean | null) | undefined;
19
+ ephemeralExpiration?: (number | null) | undefined;
20
+ ephemeralSettingTimestamp?: (number | Long | null) | undefined;
21
+ endOfHistoryTransferType?: (Baileys.WAProto.Conversation.EndOfHistoryTransferType | null) | undefined;
22
+ conversationTimestamp?: (number | Long | null) | undefined;
23
+ name?: (string | null) | undefined;
24
+ pHash?: (string | null) | undefined;
25
+ notSpam?: (boolean | null) | undefined;
26
+ archived?: (boolean | null) | undefined;
27
+ disappearingMode?: (Baileys.WAProto.IDisappearingMode | null) | undefined;
28
+ unreadMentionCount?: (number | null) | undefined;
29
+ markedAsUnread?: (boolean | null) | undefined;
30
+ participant?: (Baileys.WAProto.IGroupParticipant[] | null) | undefined;
31
+ tcToken?: (Uint8Array | null) | undefined;
32
+ tcTokenTimestamp?: (number | Long | null) | undefined;
33
+ contactPrimaryIdentityKey?: (Uint8Array | null) | undefined;
34
+ pinned?: (number | null) | undefined;
35
+ muteEndTime?: (number | Long | null) | undefined;
36
+ wallpaper?: (Baileys.WAProto.IWallpaperSettings | null) | undefined;
37
+ mediaVisibility?: (Baileys.WAProto.MediaVisibility | null) | undefined;
38
+ tcTokenSenderTimestamp?: (number | Long | null) | undefined;
39
+ suspended?: (boolean | null) | undefined;
40
+ terminated?: (boolean | null) | undefined;
41
+ createdAt?: (number | Long | null) | undefined;
42
+ createdBy?: (string | null) | undefined;
43
+ description?: (string | null) | undefined;
44
+ support?: (boolean | null) | undefined;
45
+ isParentGroup?: (boolean | null) | undefined;
46
+ parentGroupId?: (string | null) | undefined;
47
+ isDefaultSubgroup?: (boolean | null) | undefined;
48
+ displayName?: (string | null) | undefined;
49
+ pnJid?: (string | null) | undefined;
50
+ shareOwnPn?: (boolean | null) | undefined;
51
+ pnhDuplicateLidThread?: (boolean | null) | undefined;
52
+ lidJid?: (string | null) | undefined;
53
+ username?: (string | null) | undefined;
54
+ lidOriginType?: (string | null) | undefined;
55
+ commentsCount?: (number | null) | undefined;
56
+ locked?: (boolean | null) | undefined;
57
+ systemMessageToInsert?: (Baileys.WAProto.PrivacySystemMessage | null) | undefined;
58
+ capiCreatedGroup?: (boolean | null) | undefined;
59
+ accountLid?: (string | null) | undefined;
60
+ limitSharing?: (boolean | null) | undefined;
61
+ limitSharingSettingTimestamp?: (number | Long | null) | undefined;
62
+ limitSharingTrigger?: (Baileys.WAProto.LimitSharing.TriggerType | null) | undefined;
63
+ limitSharingInitiatedByMe?: (boolean | null) | undefined;
64
+ lastMessageRecvTimestamp?: number | undefined;
65
+ };
66
+ get id(): string;
67
+ /**
68
+ * @description
69
+ * Returns the messages in this chat.
70
+ * @returns Promise that resolves to an array of messages.
71
+ */
72
+ messages(): Promise<Message[]>;
10
73
  /**
11
74
  * @description
12
75
  * Sends a text message to this chat.
@@ -16,7 +79,7 @@ export default class Chat extends Base<Baileys.Chat> {
16
79
  */
17
80
  send(text: string, options?: {
18
81
  once: boolean;
19
- }): Promise<boolean>;
82
+ }): Promise<Message | null>;
20
83
  /**
21
84
  * @description
22
85
  * Sends a media message to this chat.
@@ -24,43 +87,26 @@ export default class Chat extends Base<Baileys.Chat> {
24
87
  * @param options Additional options for the message.
25
88
  * @returns Promise that resolves to a boolean indicating success.
26
89
  */
27
- send(media: Baileys.WAMediaUpload, options: MessageOptions): Promise<boolean>;
28
- /**
29
- * @description
30
- * Returns the messages in this chat.
31
- * @returns Promise that resolves to an array of messages.
32
- */
33
- messages(): Promise<Message[]>;
34
- /**
35
- * @description
36
- * Pins this chat.
37
- * @returns Promise that resolves to a boolean indicating success.
38
- */
39
- pin(): Promise<boolean>;
40
- /**
41
- * @description
42
- * Marks this chat as seen.
43
- * @returns Promise that resolves to a boolean indicating success.
44
- */
45
- seen(): Promise<boolean>;
90
+ send(media: Baileys.WAMediaUpload, options: MessageOptions): Promise<Message | null>;
46
91
  /**
47
92
  * @description
48
- * Mutes this chat.
49
- * @param time The time to mute for.
93
+ * Updates the presence of this chat.
94
+ * @param status The status to update to.
50
95
  * @returns Promise that resolves to a boolean indicating success.
51
96
  */
52
- mute(time?: number): Promise<boolean>;
97
+ presence(status: Baileys.WAPresence): Promise<boolean>;
53
98
  /**
54
99
  * @description
55
- * Updates the presence of this chat.
56
- * @param status The status to update to.
100
+ * Updates the typing status of this chat.
101
+ * @param on Whether to start or stop typing.
57
102
  * @returns Promise that resolves to a boolean indicating success.
58
103
  */
59
- presence(status: Baileys.WAPresence): Promise<boolean>;
104
+ typing(on?: boolean): Promise<boolean>;
60
105
  /**
61
106
  * @description
62
- * Deletes this chat.
107
+ * Updates the recording status of this chat.
108
+ * @param on Whether to start or stop recording.
63
109
  * @returns Promise that resolves to a boolean indicating success.
64
110
  */
65
- delete(): Promise<boolean>;
111
+ recording(on?: boolean): Promise<boolean>;
66
112
  }
@@ -11,19 +11,42 @@ const message_1 = __importDefault(require("./message"));
11
11
  * Represents a chat in WhatsApp.
12
12
  */
13
13
  class Chat extends base_1.default {
14
+ get raw() {
15
+ return this._;
16
+ }
17
+ get id() {
18
+ return this.raw.id;
19
+ }
20
+ /**
21
+ * @description
22
+ * Returns the messages in this chat.
23
+ * @returns Promise that resolves to an array of messages.
24
+ */
25
+ async messages() {
26
+ return await this.$.tick(async (release, _, store) => {
27
+ const messages = [];
28
+ const keys = await store.engine.match(`chat/${this.id}/message/*/index`);
29
+ for (const key of keys) {
30
+ const [, , id] = key.match(/chat\/[^/]+\/message\/([^/]+)/);
31
+ messages.push(new message_1.default(this.$, (await store.message.get(id))));
32
+ }
33
+ release();
34
+ return messages;
35
+ });
36
+ }
14
37
  async send(content, options) {
15
- return this.$.tick(async (socket) => {
38
+ return this.$.tick(async (release, socket) => {
39
+ let m;
40
+ const _options = { type: 'text', ...options };
16
41
  try {
17
- const _options = { type: 'text', ...options };
18
42
  if (typeof content === 'string') {
19
- await socket.sendMessage(this._.id, {
43
+ m = await socket.sendMessage(this.id, {
20
44
  text: content,
21
45
  viewOnce: _options.once || false,
22
46
  });
23
- return true;
24
47
  }
25
48
  else if (Buffer.isBuffer(content)) {
26
- await socket.sendMessage(this._.id, {
49
+ m = await socket.sendMessage(this.id, {
27
50
  viewOnce: _options.once || false,
28
51
  ptv: !!(_options.type === 'video' && _options.ptv),
29
52
  ptt: !!(_options.type === 'audio' && _options.ptt),
@@ -31,100 +54,51 @@ class Chat extends base_1.default {
31
54
  audio: _options.type === 'audio' ? content : undefined,
32
55
  video: _options.type === 'video' ? content : undefined,
33
56
  });
34
- return true;
35
57
  }
36
58
  }
37
- catch { }
38
- return false;
39
- });
40
- }
41
- /**
42
- * @description
43
- * Returns the messages in this chat.
44
- * @returns Promise that resolves to an array of messages.
45
- */
46
- async messages() {
47
- return await this.$.tick(async (_, store) => {
48
- const messages = [];
49
- const keys = await store.engine.match(`chat/${this._.id}/message/*/index`);
50
- for (const key of keys) {
51
- const [, , id] = key.match(/chat\/[^/]+\/message\/([^/]+)/);
52
- messages.push(new message_1.default(this.$, (await store.message.get(id))));
59
+ finally {
60
+ release();
53
61
  }
54
- return messages;
55
- });
56
- }
57
- /**
58
- * @description
59
- * Pins this chat.
60
- * @returns Promise that resolves to a boolean indicating success.
61
- */
62
- async pin() {
63
- return await this.$.tick(async (socket) => {
64
- // prettier-ignore
65
- await socket.chatModify({
66
- pin: true,
67
- lastMessages: [this._.messages[this._.messages.length - 1].message],
68
- }, this._.id);
69
- return true;
70
- });
71
- }
72
- /**
73
- * @description
74
- * Marks this chat as seen.
75
- * @returns Promise that resolves to a boolean indicating success.
76
- */
77
- async seen() {
78
- return await this.$.tick(async (socket) => {
79
- // prettier-ignore
80
- await socket.chatModify({
81
- markRead: true,
82
- lastMessages: [this._.messages[this._.messages.length - 1].message],
83
- }, this._.id);
84
- return true;
62
+ return m ? new message_1.default(this.$, m) : null;
85
63
  });
86
64
  }
87
65
  /**
88
66
  * @description
89
- * Mutes this chat.
90
- * @param time The time to mute for.
67
+ * Updates the presence of this chat.
68
+ * @param status The status to update to.
91
69
  * @returns Promise that resolves to a boolean indicating success.
92
70
  */
93
- async mute(time = 0) {
94
- return await this.$.tick(async (socket) => {
95
- // prettier-ignore
96
- await socket.chatModify({
97
- mute: time || null,
98
- lastMessages: [this._.messages[this._.messages.length - 1].message],
99
- }, this._.id);
100
- return true;
71
+ async presence(status) {
72
+ return await this.$.tick(async (release, socket) => {
73
+ try {
74
+ await socket.sendPresenceUpdate(status, this.id);
75
+ return true;
76
+ }
77
+ catch {
78
+ return false;
79
+ }
80
+ finally {
81
+ release();
82
+ }
101
83
  });
102
84
  }
103
85
  /**
104
86
  * @description
105
- * Updates the presence of this chat.
106
- * @param status The status to update to.
87
+ * Updates the typing status of this chat.
88
+ * @param on Whether to start or stop typing.
107
89
  * @returns Promise that resolves to a boolean indicating success.
108
90
  */
109
- async presence(status) {
110
- return await this.$.tick(async (socket) => {
111
- await socket.sendPresenceUpdate(status, this._.id);
112
- return true;
113
- });
91
+ async typing(on = true) {
92
+ return await this.presence(on ? 'composing' : 'available');
114
93
  }
115
94
  /**
116
95
  * @description
117
- * Deletes this chat.
96
+ * Updates the recording status of this chat.
97
+ * @param on Whether to start or stop recording.
118
98
  * @returns Promise that resolves to a boolean indicating success.
119
99
  */
120
- async delete() {
121
- return this.$.tick(async (socket) => {
122
- await socket.chatModify({
123
- delete: true,
124
- lastMessages: [this._.messages[this._.messages.length - 1].message],
125
- }, this._.id);
126
- return true;
127
- });
100
+ async recording(on = true) {
101
+ return await this.presence(on ? 'recording' : 'available');
128
102
  }
129
103
  }
130
104
  exports.default = Chat;
@@ -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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"}
@@ -0,0 +1,16 @@
1
+ import * as Baileys from 'baileys';
2
+ import Base from './base';
3
+ export default class Contact extends Base<Baileys.Contact> {
4
+ get raw(): {
5
+ id: string;
6
+ lid?: string | undefined;
7
+ name?: string | undefined;
8
+ notify?: string | undefined;
9
+ verifiedName?: string | undefined;
10
+ imgUrl?: string | null | undefined;
11
+ status?: string | undefined;
12
+ };
13
+ get id(): string;
14
+ get name(): string;
15
+ get phone(): string;
16
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const base_1 = __importDefault(require("./base"));
7
+ class Contact extends base_1.default {
8
+ get raw() {
9
+ return this._;
10
+ }
11
+ get id() {
12
+ return this.raw.id;
13
+ }
14
+ get name() {
15
+ return this.raw.name || this.raw.verifiedName || this.raw.id.split('@')[0];
16
+ }
17
+ get phone() {
18
+ return this.raw.id.split('@')[0];
19
+ }
20
+ }
21
+ exports.default = Contact;
22
+ //# sourceMappingURL=contact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact.js","sourceRoot":"","sources":["../../src/model/contact.ts"],"names":[],"mappings":";;;;;AACA,kDAA0B;AAE1B,MAAqB,OAAQ,SAAQ,cAAqB;IACtD,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACvB,CAAC;IACD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;CACJ;AAbD,0BAaC"}
@@ -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
  /**
@@ -54,14 +124,8 @@ export default class Message extends Base<Baileys.WAProto.IWebMessageInfo> {
54
124
  */
55
125
  reply(text: string, options?: {
56
126
  once: boolean;
57
- }): Promise<boolean>;
58
- reply(media: Baileys.WAMediaUpload, options: MessageOptions): Promise<boolean>;
59
- /**
60
- * @description
61
- * Marks this message as seen.
62
- * @returns Promise that resolves to a boolean indicating success.
63
- */
64
- seen(): Promise<boolean>;
127
+ }): Promise<Message | null>;
128
+ reply(media: Baileys.WAMediaUpload, options: MessageOptions): Promise<Message | null>;
65
129
  /**
66
130
  * @description
67
131
  * Deletes this message.
@@ -75,7 +139,7 @@ export default class Message extends Base<Baileys.WAProto.IWebMessageInfo> {
75
139
  * @param emoji The emoji to use for the like.
76
140
  * @returns Promise that resolves to a boolean indicating success.
77
141
  */
78
- like(emoji: string): Promise<boolean>;
142
+ like(emoji: LikeEmoji): Promise<boolean>;
79
143
  /**
80
144
  * @description
81
145
  * Forwards this message to another chat.
@@ -84,3 +148,4 @@ export default class Message extends Base<Baileys.WAProto.IWebMessageInfo> {
84
148
  */
85
149
  forward(chat_id: string): Promise<boolean>;
86
150
  }
151
+ 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,48 +94,33 @@ 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) => {
92
- // prettier-ignore
102
+ return this.$.tick(async (release, socket) => {
103
+ let m;
93
104
  const _options = { type: 'text', ...options };
105
+ // prettier-ignore
94
106
  if (typeof content === 'string') {
95
- await socket.sendMessage(this._.key.remoteJid, {
107
+ m = await socket.sendMessage(this.raw.key.remoteJid, {
96
108
  text: content,
97
109
  viewOnce: _options.once || false,
98
- }, { quoted: this._ });
99
- return true;
110
+ }, { quoted: this.raw });
100
111
  }
101
112
  else if (Buffer.isBuffer(content)) {
102
- await socket.sendMessage(this._.key.remoteJid, {
113
+ m = await socket.sendMessage(this.raw.key.remoteJid, {
103
114
  viewOnce: _options.once || false,
104
115
  ptv: !!(_options.type === 'video' && _options.ptv),
105
116
  ptt: !!(_options.type === 'audio' && _options.ptt),
106
117
  image: _options.type === 'image' ? content : undefined,
107
118
  audio: _options.type === 'audio' ? content : undefined,
108
119
  video: _options.type === 'video' ? content : undefined,
109
- }, { quoted: this._ });
110
- return true;
120
+ }, { quoted: this.raw });
111
121
  }
112
- return false;
113
- });
114
- }
115
- /**
116
- * @description
117
- * Marks this message as seen.
118
- * @returns Promise that resolves to a boolean indicating success.
119
- */
120
- async seen() {
121
- return this.$.tick(async (socket) => {
122
- // prettier-ignore
123
- await socket.chatModify({
124
- markRead: true,
125
- lastMessages: [this._],
126
- }, this._.key.remoteJid);
127
- return true;
122
+ release();
123
+ return m ? new Message(this.$, m) : null;
128
124
  });
129
125
  }
130
126
  /**
@@ -134,22 +130,23 @@ class Message extends base_1.default {
134
130
  * @returns Promise that resolves to a boolean indicating success.
135
131
  */
136
132
  async delete(forall = false) {
137
- return this.$.tick(async (socket) => {
133
+ return this.$.tick(async (release, socket) => {
138
134
  if (forall) {
139
- await socket.sendMessage(this._.key.remoteJid, {
140
- delete: this._.key,
135
+ await socket.sendMessage(this.raw.key.remoteJid, {
136
+ delete: this.raw.key,
141
137
  });
142
138
  }
143
139
  else {
144
140
  // prettier-ignore
145
141
  await socket.chatModify({
146
142
  deleteForMe: {
147
- key: this._.key,
148
- deleteMedia: true,
149
- timestamp: this._.messageTimestamp,
143
+ key: this.raw.key,
144
+ deleteMedia: this.type !== 'text',
145
+ timestamp: this.raw.messageTimestamp,
150
146
  },
151
- }, this._.key.remoteJid);
147
+ }, this.raw.key.remoteJid);
152
148
  }
149
+ release();
153
150
  return true;
154
151
  });
155
152
  }
@@ -160,10 +157,11 @@ class Message extends base_1.default {
160
157
  * @returns Promise that resolves to a boolean indicating success.
161
158
  */
162
159
  async like(emoji) {
163
- return this.$.tick(async (socket) => {
164
- await socket.sendMessage(this._.key.remoteJid, {
165
- react: { text: emoji, key: this._.key },
160
+ return this.$.tick(async (release, socket) => {
161
+ await socket.sendMessage(this.raw.key.remoteJid, {
162
+ react: { text: emoji, key: this.raw.key },
166
163
  });
164
+ release();
167
165
  return true;
168
166
  });
169
167
  }
@@ -174,10 +172,11 @@ class Message extends base_1.default {
174
172
  * @returns Promise that resolves to a boolean indicating success.
175
173
  */
176
174
  async forward(chat_id) {
177
- return this.$.tick(async (socket) => {
175
+ return this.$.tick(async (release, socket) => {
178
176
  await socket.sendMessage(chat_id, {
179
- forward: { key: this._.key },
177
+ forward: { key: this.raw.key },
180
178
  });
179
+ release();
181
180
  return true;
182
181
  });
183
182
  }
@@ -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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"}
@@ -89,6 +89,21 @@ export default class Store {
89
89
  [Symbol.asyncIterator](): AsyncGenerator<readonly [string, any], void, unknown>;
90
90
  };
91
91
  };
92
+ contact: {
93
+ set: (contact: Baileys.Contact) => Promise<boolean>;
94
+ get: (id: Baileys.Contact["id"]) => Promise<Baileys.Contact | null>;
95
+ has: (id: Baileys.Contact["id"]) => Promise<boolean>;
96
+ unset: (id: Baileys.Contact["id"]) => Promise<boolean>;
97
+ keys: () => {
98
+ [Symbol.asyncIterator](): AsyncGenerator<string, void, unknown>;
99
+ };
100
+ values: () => {
101
+ [Symbol.asyncIterator](): AsyncGenerator<Baileys.Contact, void, unknown>;
102
+ };
103
+ entries: () => {
104
+ [Symbol.asyncIterator](): AsyncGenerator<readonly [string, Baileys.Contact], void, unknown>;
105
+ };
106
+ };
92
107
  chat: {
93
108
  set: (chat: Baileys.Chat) => Promise<boolean>;
94
109
  get: (id: Baileys.Chat["id"]) => Promise<Baileys.Chat | null>;
@@ -84,6 +84,53 @@ class Store {
84
84
  };
85
85
  },
86
86
  };
87
+ this.contact = {
88
+ set: async (contact) => {
89
+ // prettier-ignore
90
+ return this.engine.set(`contact/${contact.id}/index`, JSON.stringify(contact, Baileys.BufferJSON.replacer));
91
+ },
92
+ get: async (id) => {
93
+ // prettier-ignore
94
+ return JSON.parse(await this.engine.get(`contact/${id}/index`) ?? 'null', Baileys.BufferJSON.reviver);
95
+ },
96
+ has: async (id) => {
97
+ return await this.engine.has(`contact/${id}/index`);
98
+ },
99
+ unset: async (id) => {
100
+ return await this.engine.unset(`contact/${id}/index`);
101
+ },
102
+ keys: () => {
103
+ const _this = this;
104
+ return {
105
+ async *[Symbol.asyncIterator]() {
106
+ for await (const key of await _this.engine.match('contact/*/index')) {
107
+ const [, id] = key.match(/contact\/([^/]+)\/index/) ?? [];
108
+ yield id;
109
+ }
110
+ },
111
+ };
112
+ },
113
+ values: () => {
114
+ const _this = this;
115
+ return {
116
+ async *[Symbol.asyncIterator]() {
117
+ for await (const id of _this.contact.keys()) {
118
+ yield (await _this.contact.get(id));
119
+ }
120
+ },
121
+ };
122
+ },
123
+ entries: () => {
124
+ const _this = this;
125
+ return {
126
+ async *[Symbol.asyncIterator]() {
127
+ for await (const id of _this.contact.keys()) {
128
+ yield [id, (await _this.contact.get(id))];
129
+ }
130
+ },
131
+ };
132
+ },
133
+ };
87
134
  this.chat = {
88
135
  set: async (chat) => {
89
136
  // prettier-ignore
@@ -1 +1 @@
1
- {"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/static/Store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/static/Store.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.20",
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.",