{"_id":"wexa-chat","_rev":"39-174c61b4896659d26edf2596840840e3","name":"wexa-chat","dist-tags":{"latest":"0.3.4"},"versions":{"0.1.0":{"name":"wexa-chat","version":"0.1.0","keywords":[],"author":"","license":"ISC","_id":"wexa-chat@0.1.0","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"f3f8780c6c804a3e9e2ad3ad18fe6e0623ba7636","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.0.tgz","fileCount":34,"integrity":"sha512-ru1H6nP6rpNUMpfU7VK0bS5ftp8kZ4Y/vWBmp/FhVPyommuybKG5mkDPKnI9GUAozXaIbPfLNdhLozgwoGOgtQ==","signatures":[{"sig":"MEQCIDiT1aHbzNnqyYMlEz9eQzBhT7vwqrUEeqzLap6xP46YAiBDk9S4pYocqWJbBZMFJbUaX7R0uHY+UHNlqqLxVfxrLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264328},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"4062ec6e5df23eedc565d55114096a4298fda9f3","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","build":"tsup","clean":"rimraf dist","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Wexa Chat core library","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ioredis":"^5.3.2","mongoose":"^7.5.0","prettier":"^3.0.0","socket.io":"^4.7.2","ts-loader":"^9.5.4","typescript":"^5.9.2","@types/node":"^20.0.0","babel-loader":"^10.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@babel/preset-typescript":"^7.27.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"ioredis":"^5.0.0","mongoose":"^7.0.0","socket.io":"^4.7.2"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.0_1756114044744_0.3483585941660896","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"wexa-chat","version":"0.1.2","keywords":[],"author":"","license":"ISC","_id":"wexa-chat@0.1.2","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"b61ff2eca5bb0dd940fa55a89721b1058579fec6","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.2.tgz","fileCount":34,"integrity":"sha512-NBLwrAmzACg1RZf3uPlu4oa+vprjWRERQqjrlvmW1cDMLz+2yblNqOLnroODoWwM6POU7UjVbC4UWh2oVz4SNw==","signatures":[{"sig":"MEQCIEpiOI9MD0FS51QAx7K9qGz2qq2e2oDvvNfvwN1x2F0kAiBsG+/fP1jQfNzltGzCyBfim7NP6sr9WXOfJdnFCtPsFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":269466},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"89a7554f1da89a5e065a7ad26855886a3b9f7a0a","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","build":"tsup","clean":"rimraf dist","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Wexa Chat core library","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ioredis":"^5.3.2","mongoose":"^7.5.0","prettier":"^3.0.0","socket.io":"^4.7.2","ts-loader":"^9.5.4","typescript":"^5.9.2","@types/node":"^20.0.0","babel-loader":"^10.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@babel/preset-typescript":"^7.27.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"ioredis":"^5.0.0","mongoose":"^7.0.0","socket.io":"^4.7.2"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.2_1756115270601_0.3412405561481211","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"wexa-chat","version":"0.1.3","keywords":[],"author":"","license":"ISC","_id":"wexa-chat@0.1.3","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"bc3e5a4f0cbe0474a45dc691408aa0b2d8ff423d","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.3.tgz","fileCount":34,"integrity":"sha512-IK3HihX6s8ddG9bsvrxuS2AezsWGgiR7Mn8+TR6xuzZYPovvck1d+5u9bF+gIpYvRU1op3U4nnqeP7RSnr+UzQ==","signatures":[{"sig":"MEYCIQDc/kUoJmQMqlSJL5q/fOtdoGsnEPiT5VCJh/8cxiq0dgIhAJPSAzTMnvc819cZM4JOCtmAN+2W/0v3ZyYG6EgILjFs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":269603},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"ec0f15c335c8f435114022fba9e5c5402618301d","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","build":"tsup","clean":"rimraf dist","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Wexa Chat core library","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ioredis":"^5.3.2","mongoose":"^7.5.0","prettier":"^3.0.0","socket.io":"^4.7.2","ts-loader":"^9.5.4","typescript":"^5.9.2","@types/node":"^20.0.0","babel-loader":"^10.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@babel/preset-typescript":"^7.27.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"ioredis":"^5.0.0","mongoose":"^7.0.0","socket.io":"^4.7.2"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.3_1756115577622_0.2763268099035716","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"wexa-chat","version":"0.1.4","keywords":[],"author":"","license":"ISC","_id":"wexa-chat@0.1.4","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"45c91673e6e64c9ee90b43083d7df3c4e26f1763","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.4.tgz","fileCount":34,"integrity":"sha512-mkOPwsqEC3bD2n3OzneiKj01gn8tF/JwO5bDz8waWbJ35NWpB76NYzom1uvP+wG5/HQmMmFVzNlYy5qeiD+t+Q==","signatures":[{"sig":"MEUCIHLICaNmE6TZ4g23u5vcc6b0xNzFXMzGVaLW/neMaBLZAiEA7IXvKuYeheKjIC5kOBj613YrukyxD+US5MyQF2ykELI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":269652},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"2028f63bee8f568c542ba146cf47860d1a118917","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","build":"tsup","clean":"rimraf dist","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Wexa Chat core library","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ioredis":"^5.3.2","mongoose":"^7.5.0","prettier":"^3.0.0","socket.io":"^4.7.2","ts-loader":"^9.5.4","typescript":"^5.9.2","@types/node":"^20.0.0","babel-loader":"^10.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@babel/preset-typescript":"^7.27.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"ioredis":"^5.0.0","mongoose":"^7.0.0","socket.io":"^4.7.2"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.4_1756115847049_0.41525556554699916","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"wexa-chat","version":"0.1.5","keywords":[],"author":"","license":"ISC","_id":"wexa-chat@0.1.5","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"dac38acc3565b5f07efe6605f08e92b57a958e97","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.5.tgz","fileCount":34,"integrity":"sha512-Oq4My6p/gzKbMIgFJLQs50TBq1EHW05IN9hefvo7XgaU4oVOPH9rRYtGG7Fdj0pkAtV4ZIbdmunb6urvuUVCHQ==","signatures":[{"sig":"MEUCIQCCqycHJBPTSOTemz1oanrgQ1ciKFXq1HyRwOAwSiIiTAIgeI+Ojg0cbLF1IWBQ/Ykj1hP/Nh5uv+8HWbQiGNTetT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":269707},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"078924aabdec9169cff882ea7363e58beb35aaf9","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","build":"tsup","clean":"rimraf dist","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Wexa Chat core library","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ioredis":"^5.3.2","mongoose":"^7.5.0","prettier":"^3.0.0","socket.io":"^4.7.2","ts-loader":"^9.5.4","typescript":"^5.9.2","@types/node":"^20.0.0","babel-loader":"^10.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@babel/preset-typescript":"^7.27.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"ioredis":"^5.0.0","mongoose":"^7.0.0","socket.io":"^4.7.2"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.5_1756116088651_0.5503950628541636","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"wexa-chat","version":"0.1.6","keywords":[],"author":"","license":"ISC","_id":"wexa-chat@0.1.6","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"2a2918e36525358f358ded13018c604cff15dcce","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.6.tgz","fileCount":34,"integrity":"sha512-/KQB72huT8uvZVO0xuiK6Xoslgc2nAEbzJ+hdX+52wIV9CyFhAHkDZ4u4jlE0tIg8BB6WO4N2UYU4yMcO/Yw9w==","signatures":[{"sig":"MEUCIQDjJ4wiYgYEfF+NxO2HUQj6KYV26RrqRWcynVrbNztHcQIgA8yuZhZClcDXWstpPW2ScCoS9aPM148RGgnbLgH+0zY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":269768},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"6997ee0098224669a7a80240e1f0ff3233a28a6f","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","build":"tsup","clean":"rimraf dist","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Wexa Chat core library","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ioredis":"^5.3.2","mongoose":"^7.5.0","prettier":"^3.0.0","socket.io":"^4.7.2","ts-loader":"^9.5.4","typescript":"^5.9.2","@types/node":"^20.0.0","babel-loader":"^10.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@babel/preset-typescript":"^7.27.1","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"ioredis":"^5.0.0","mongoose":"^7.0.0","socket.io":"^4.7.2"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.6_1756118032872_0.9541357603703511","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"wexa-chat","version":"0.1.7","keywords":["chat","mongodb","redis","socket.io"],"author":"","license":"MIT","_id":"wexa-chat@0.1.7","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"7e0c3d89b8f53f78ba57a2e0f5630c4d66cb5af4","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.7.tgz","fileCount":8,"integrity":"sha512-bpuVrtOaUD9kUw7aIcuCuAN3yadWzeyUWZ3B0+THIAQzUZU0hA1+v4rfmOoIzJETlopn+ub4K54hQCZTdrHWVw==","signatures":[{"sig":"MEUCIQCNDM4Ih0vMwiLofChPzf1+/KHnPQL3t1ZrvsBVrIlaiAIgKhzAYKfoyF3VwKP6JiEZEDRPayLfe7WYXreKQLTUZXg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":250380},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"6997ee0098224669a7a80240e1f0ff3233a28a6f","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","typescript":"^5.3.3","@types/node":"^20.11.24","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ioredis":"^5.0.0","mongoose":"^7.0.0","socket.io":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.7_1756118694568_0.6592707703725456","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"wexa-chat","version":"0.1.8","keywords":["chat","mongodb","redis","socket.io"],"author":"","license":"MIT","_id":"wexa-chat@0.1.8","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"49f781df5da76f3df158916579e544dc05b203bc","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.8.tgz","fileCount":8,"integrity":"sha512-dmu8van3b6cTO1bH3jUBk6K5spe8AIc2wJ5eSu/05LoWlNEo/mIDJ1SA1KfPmhCu5KaSNyXKAbpNszYGD1ioGw==","signatures":[{"sig":"MEQCIBesgNUYe+h38lgd+usysIm1ZWsa3sSRCUNRKQijC3veAiA9h3agNt+8IN58fFr6A+oAXtU82zLoL0zSzOJdG3e51Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":250381},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"d1f11db44f647a8dc9f7424fb5b56a438e142962","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","typescript":"^5.3.3","@types/node":"^20.11.24","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ioredis":"^5.0.0","mongoose":"^7.0.0","socket.io":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.8_1756120702990_0.20584259189310017","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"wexa-chat","version":"0.1.9","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.9","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"e911e0e426fa55cf3e3a59b5b5cf509671094839","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.9.tgz","fileCount":8,"integrity":"sha512-Ae0gw5VTV1ZvXA3bKp5fGqSTnsGdoBE/AW2UVeY4JgfbJ46k0r8+jQasqOLOnz14Nzn9eGgCyjYdx0ZyE6gLCA==","signatures":[{"sig":"MEQCIES08KZRgSj2Hrl6ykCItEv5iSxxrSF8+LMcFNsV1dzSAiAMomOwlrRvJT5CgSS4zBjJyziGFBm4l65MTsIEOm37Kw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277376},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"08a9a6a54a5bd4599f50f4fdab2ada8527e632c5","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.9_1756122406794_0.8121975875301537","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"wexa-chat","version":"0.1.11","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.11","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"b7f6a270b87fb375b1257c6955998529c3aea4d3","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.11.tgz","fileCount":8,"integrity":"sha512-k0Q0tBnwuYA0yfBfLD9zpS+/ta/dLDbLhKMhZu0KkUImIxJB6QMOWOLMIBKDIJYn4TDfVbD5i9g5yev8sge5hw==","signatures":[{"sig":"MEYCIQCkdSo0KCcD64Cht4RICd2cz9UXrzHYcwuYbKqe+CGzBwIhAMbexcNAtIA6h7d8Yl4AjXRCkiYRzk8HkDa2iWBBXe0j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279357},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"dcf6450ad2e082854f0744a20f45384d8ef80f65","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.11_1756122879327_0.12569993943937896","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"wexa-chat","version":"0.1.12","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.12","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"1412e27a6e5b1efc28cbb20ee5d7137c99839dac","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.12.tgz","fileCount":8,"integrity":"sha512-a3yIi8taefykLAE/beamAXJ7CFqU43aROcgeO8c3F7ld5Dj7hwxslI8SSIlf5JDuA1KDR3xxDiCjVGlGf9B3Tg==","signatures":[{"sig":"MEQCIA/hJN5PUebjX8AuARBptL2fo7OoMlLciNV1skry25JuAiBvoVY1lLbaIW0lOpx8dkRtbvK4LREW2C1ta/PtIkyBhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287753},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"bf7ea981d58a8484abf5c62668ec04ef93ad5ced","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.12_1756183900308_0.8410094431699469","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"wexa-chat","version":"0.1.13","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.13","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"b99b8d5e1e228d00a596ee36dfe1b403ed3731ac","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.13.tgz","fileCount":8,"integrity":"sha512-8zl5tSnJmBOCE3fhYaPjX8wZ7x5nN7A9wSfjPqUr82AIadjDf/zZTnCQt7wovb/DBVHhILSKaPLm7skaDU/uWw==","signatures":[{"sig":"MEUCIQD589fLOXqFOZFnuvSVf125/Phr4zHfP/9PfXo11PV5IAIgNSlZh4rwHTY1JwDrvrr7YMgmHPGy/730oEr/lRODNhg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287753},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"de4435f22324754fe0f739ecab0a36514052d41d","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.13_1756195126976_0.32327587602123775","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"wexa-chat","version":"0.1.14","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.14","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"957e802d1304c4ea596da801d204115f33a35545","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.14.tgz","fileCount":8,"integrity":"sha512-zSIqWBlg7PvohgO2ughiZZilkJzMdhDhYOFc2ft54XBe66il1Kr02WZU4sWZEJ3AWw4PnwEHefLZLotANdLMHw==","signatures":[{"sig":"MEUCIG9Vz0M1hf5onQDbSjpHghk1ZnUqZrK+Ep2+MtNKS2wSAiEA/P3+cLeecfyUZqi7UDePKzUPR9Oc+qDvmUZTUkBbiE8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287693},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"c39b985e7d884aec67608e3ad4740a7f1e012eb8","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.14_1756195143894_0.4058265906773044","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"wexa-chat","version":"0.1.16","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.16","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"1a2a2a1c933d8d48797a58981e81c1719c901249","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.16.tgz","fileCount":8,"integrity":"sha512-5BwWV495uIx3K0a366rlEnupd7GmfkwZgHD27RMoOE+ZMl2cpVnQ8FqATZTCQdFZQSRCBu3zoh11FFwaj31Diw==","signatures":[{"sig":"MEUCIQC3KhvpbtJpKInsnzsSfhHtak01LITNPsoIPBZKmySXkAIgQiYVweZxK3I0wz7HrnWynakxfbSDDY9RuDqtVZPXCsY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":290143},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"c330cc4887a1a4fde627d24ce0f54c91123c2ef2","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.16_1756196756948_0.032903236639750366","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"wexa-chat","version":"0.1.19","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.19","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"5001f465b8ed2f2639a27674dec92148d6ec22ac","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.19.tgz","fileCount":11,"integrity":"sha512-aBWlmPkr2ILP4MYzyi09CwP3y1c05oESBawJ9dU1uJJxOij07P+0s2h8sIgi1gDnvXcd9v+ClfE8G5ESDPdmxw==","signatures":[{"sig":"MEUCICILmX7qHpbmIeoZnWiuuUnwECF+vTjOj8HsI4ANgqHNAiEAuyADVzO7Rsy4QyDIS5hFMkqTm+BkeCLJjWFHrMKSsNg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":310719},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"c60943d9d50e9c017a4df433ef40bc278ebfbbaa","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.19_1756216343936_0.7189138291277761","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"wexa-chat","version":"0.1.20","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.20","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"c113771a4cfc93ef4e1b0634cea1758ee6809014","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.20.tgz","fileCount":11,"integrity":"sha512-LQPj9XMzX61t00qt/G1ezktkb4Wq6KubP5qWZZsrReBUWc69DGSxQidGC3939S50eU9Im+Oc9ux+j1s4zHXlkw==","signatures":[{"sig":"MEYCIQDSf9w/yA9GPJ9F3SOOt8HyvZCXbaoobgPSWstN5bVs8AIhAJudDpAsKONSerxTqLrG/WKWBGFtoQq6a77wBtEFrzL3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":312081},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"8db88ed25669f893d7759a49b99e703c9888d802","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.20_1756276062402_0.07160222021729745","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"wexa-chat","version":"0.1.21","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.21","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"54a5aab1825b8630b135866259653ffacad6701c","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.21.tgz","fileCount":11,"integrity":"sha512-uJoz7s5gcnSjrdgwCRsQHKAHUFP2LVtpN7VkAV/2tvArhFPZMVLbKSUN0wpx4QTzl1YjQOB2XtdCcHtade+6EQ==","signatures":[{"sig":"MEYCIQDhHi6A8fKsvfP6AQiqZ0hxtCI3gJpZYv4VROkFg1DxYAIhAL6SMlupZXuvxqE/yh8QQd6Grfkb7WzU6EDMjxjC3zqs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":339537},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"032f243b02576b8d8b8c9d9860cfba739353b53e","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.21_1756278982349_0.232578752052089","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"wexa-chat","version":"0.1.22","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.22","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"2bc93427135601a94be546842a2250a7b7152444","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.22.tgz","fileCount":11,"integrity":"sha512-OwL1GNZta5nETs8RKmTQ/ncWdVEoG6NWds9nDh+t2oB5tYYuCfSTIh0e+3XSumiQV/2uIZnHRPWYokeDyKGgGw==","signatures":[{"sig":"MEQCIADbHGmT7X61y6tSbl9Y7UEGscVZwbIxbKR8IEo80BblAiBDc3q9G50ILCLNeHk8DFy3lwczmbittShQqWJznbm+SA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":367205},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"24ca56a78ea4ae53f3ebc6000f519f628c040fdd","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.22_1756354882835_0.1352709182175642","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"wexa-chat","version":"0.1.23","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.23","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"3c23f7a60a2a1bf4caa1a4fa6975ed4bb926699b","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.23.tgz","fileCount":11,"integrity":"sha512-1KOAXYYEYQkZH7X+mjhbjOMk0aprwkHPTFU9WejMv3Fw5dcYJe0+TGjRi5uFVcVu/4uwM5QTOh/9DLgP32qSFQ==","signatures":[{"sig":"MEQCIDSu2iq72ZCRt4NTDsYWJ+pRwnblSXnwZeqsXI3OQQRCAiBwE/UbPeL9qLVTcNk5zRymNssiS+2XO6MIfKgJzK/9sQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":372795},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"de2a98bc9db4808663fe5797edcce7cfd7d0ee61","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.23_1756358256425_0.41629005946890607","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"wexa-chat","version":"0.1.31","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.31","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"733a159f5041a673270daba8bddae69b041393d2","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.31.tgz","fileCount":11,"integrity":"sha512-TytYPatfVrz2pXBy6UxN797bBWV1HGu1jpIsP0qsd6GwxK1pu/TGdF3J/TVmNIAKOAPRvsIoYCEdlx6Fm0VDFg==","signatures":[{"sig":"MEUCIQCuiUmZoJZG/5ktuNFRoCxS+W7ygZZtiLkQaSo67W0JwwIgf584fmL2X/aQb2QBawlia66oQYI49+cG03sOqp11n+g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":372795},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"7fc1299562ff3a0d14d7d6de899725b8d0b080d2","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.31_1756362259837_0.7214664017267824","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"wexa-chat","version":"0.1.32","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.32","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"ea6e848eb536034f3badf8067d78421c1f7e34fd","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.32.tgz","fileCount":11,"integrity":"sha512-TcCXpbi+a1X7UXqnhwEl168aZ9J7rKUeqzYgFqzRd/n/0As+86KRv/2xm20g+i8dd6/JEWZxHRaX9Dhm88llIQ==","signatures":[{"sig":"MEUCIQCaGinDs/JdeW5LqUIGCq4obQnDy2jD11hvkbUpMoBwCQIgf7Ic9Vkw+ZY0Ux7xChyDnI/6u2OMizqSTesMr1fLVfw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":312837},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"bbaaa4de3e966c653bfb09bc36bf00abd5c4fad5","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.32_1756365443341_0.7620197452119797","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"wexa-chat","version":"0.1.33","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.33","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"7adcf59b594c84109e794a7bfb9084222b2016e5","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.33.tgz","fileCount":11,"integrity":"sha512-NOtQuEYf6xbz917ynutAuyQxtsexbxP7NEwt9AlPXn7pWCMz7LNsJtcEX6D8wVl244NZTFOWi4TGWvaZPxvHSQ==","signatures":[{"sig":"MEUCIGK7TjW/3EliNLdaOHzuutry1aE/4yLkHjLS2OGdyw5nAiEA47Uc3QNgKXKeWuQAgcv0AJZ1z+FNu5lVWMq7chIMLB4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":312837},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"873f5fdc22aa35143b042a9b677473040d5658f6","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.33_1756450608525_0.3759163478387162","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"wexa-chat","version":"0.1.34","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.34","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"585310dd1f7c6820efa2ef4a451508d71b768bd2","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.34.tgz","fileCount":11,"integrity":"sha512-sxZAcH4NcWwxMyJO9G054rMU1XD1gkdtU/E8MObAspJvgPSlOyLHuNHVgpGlXXTSWNFBUP5D0l+yxXsr6LQ7VA==","signatures":[{"sig":"MEYCIQDnVyNsj0sPK5uMyvY92VrKFmCjjF8rVJXGGtyCSdrjWQIhAPHBZO6s3Tmb5peUDbfJVXfSwosAxrRwdThB4fIIesrs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":339537},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"c6446f4a5b39ffcc325fbab7eee057c5dd9b28c6","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.34_1756451820227_0.6185570502797642","host":"s3://npm-registry-packages-npm-production"}},"0.1.35":{"name":"wexa-chat","version":"0.1.35","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.35","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"ec13d4a4ed04f2fbe475c6fed94393dff9acd93e","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.35.tgz","fileCount":11,"integrity":"sha512-E1LbLBNXVqDcZFfmM0MDP45oQylKE3Du43vvwXkw/u0bRPng6xe3mhUzRy7ZM4XAKYSucZDmlt2TzhEIDHiwkA==","signatures":[{"sig":"MEQCICVfMxrQReBtvv6QHzNLrkRuVqCfOo0yzeFLttQfIaqEAiAxyjsTA2ba6Sdm9hlkLbtcAgOuAzZX5+xp8mDQGLM3MA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338419},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"c674aa9396878f2509b166e8809f34df6c590461","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.35_1756465975847_0.15553327638328507","host":"s3://npm-registry-packages-npm-production"}},"0.1.36":{"name":"wexa-chat","version":"0.1.36","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.1.36","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"6c2c230eed8fb4898373ab54886db49d10d4e3e5","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.1.36.tgz","fileCount":11,"integrity":"sha512-yaQLe8M8BwU3r0Zr2TdUESiUXEiQTa0KqtgnSTL148A3711MpYlwfe+8u56SWgm5k0EWHPwu7zFIHv+ddiVhXg==","signatures":[{"sig":"MEUCIQDJSYg5FwtvAbF+JHMh8q08RmLdROE3zDbNIRkkscNp8gIgGVcu9pYpP/IyMeDJKQB5NVnkTsLi1lHs7G+bP1LrglQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338147},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"1a362f9f5468b42558582a6021bc7190b3dc43f8","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.1.36_1756466594368_0.09605930383389305","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"wexa-chat","version":"0.2.0","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.2.0","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"d8b65ca33cf3ac51a700322ef2a13bcf716ad1cc","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.2.0.tgz","fileCount":11,"integrity":"sha512-b40OAJKAvkcD089MkAuV7x8djzcZe05v5EFHrt1dPm9eU2OKUI5RS42qB2k15pMqH4HZTUWdiUDbMxIUZ1Jang==","signatures":[{"sig":"MEUCIQDwgNuiKZIvctrbxN6px+BXRwY0+M2VRbXMxGyQsb8sUgIgQdXrHNUIB/JhfijZnHOz9c+RNZLhPUyHSfnBnF8JE5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":365900},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"b24ce0902082fc6c8f4e8a59187d8a6844395f61","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","dependencies":{"axios":"^1.12.2"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.2.0_1758170040208_0.8981692612709404","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"wexa-chat","version":"0.2.1","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.2.1","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"3d026b688520f199e6093b38652db02a51395f4c","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.2.1.tgz","fileCount":11,"integrity":"sha512-F7mv1XbbolkXdtRMgFUs0NpkW2YvQsWxfUz1whjWIGm3cewJFlKmAhsnbBvllJFZL95wSSezbUKkKm6nLBYo8Q==","signatures":[{"sig":"MEUCIGjKxaSfsx1nNC8zmlVXDnU+FdC/cWzrOSHXzJboeODxAiEAoqtvEal9veqU71B9K5S5AgjNUEiWPP2kQe5DqDjWKt4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":368802},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"02c98f0ad9b327b383e29d2c690258dc0a52dd23","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","dependencies":{"axios":"^1.12.2"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.2.1_1758198814637_0.26265890022134686","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"wexa-chat","version":"0.2.2","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.2.2","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"d51a6c3ebb1f457a5b4aed08f35a67381dcd6089","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.2.2.tgz","fileCount":11,"integrity":"sha512-QxXO4XsLNsLHUwqU3Mnhrrv6Vv1CS6s/ZU/OZu9punBexvKQKPA7+A7iNFqUzFTiDfnXQo5dXCg8ArYn2s2b0Q==","signatures":[{"sig":"MEUCIQCfPW2LgvfIy48YRnQFCXEpSvJwNt0++ZMo+CzqFhdA0QIgQX1KX0/ibs/aNU8hXyPMBExcVzpxr2h9hX9uVBxYDKw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":373095},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"75e7974fead90245f08c9f1eb3e8decd8af50bd8","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","dependencies":{"axios":"^1.12.2"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.2.2_1758616185680_0.03856703864253097","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"wexa-chat","version":"0.2.3","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.2.3","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"acd4dae77abb0ec5edd9958edc047ff8517e5487","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.2.3.tgz","fileCount":11,"integrity":"sha512-vi0kDE4cb4n3Rb28+MzDnnEUkAk4K1Zkt5CFBLYzafvbMHCENzFpVmX7HHY6rGyhRnMRnRK27FhPnPezVjXFOw==","signatures":[{"sig":"MEUCIQCro3+VrX5m68xT+YYyhmxkOhoNqiATfaPT1uyUOmBa+wIgXnmRYJfekNs6M+hnBKJxEc3QxVER/yBoSaVkPmM10Vw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":374347},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"862edd7dbbc9c732f4e4f0844ca358da343d1616","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","dependencies":{"axios":"^1.12.2"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.2.3_1758622888744_0.8994220551981451","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"wexa-chat","version":"0.2.4","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.2.4","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"0f15f1c3b780da6a4fc73239134d00607c0e1e11","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.2.4.tgz","fileCount":11,"integrity":"sha512-tBr2OD17sIOor+1B4yKl/e/0fomHxAaFwSbchK8vumRo9/f54gLB0/kpilBhX+wxQDRGJw9Pm+8a2PnB3Tvupg==","signatures":[{"sig":"MEUCIQCpgOw8tasALe1IgzQM0X9ps87XAWMsvWrOdfhXbCtuYwIgLnVVX/PTfeeFqI121Aq4CgD3HzfR7JzjsJsQcmS3/Qs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":374347},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"9c6301f00cb7789dd3eb03c2dd64753bfbb9724e","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","dependencies":{"axios":"^1.12.2"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.2.4_1758623025373_0.3711420984823417","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"wexa-chat","version":"0.2.5","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.2.5","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"6c5673711f565cdfc5f10ada7f2faace1110a233","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.2.5.tgz","fileCount":11,"integrity":"sha512-1WN8jyigO9Tz0GJHQM7NwlZ/LDc6uoN4rbokk4F3+Tm+T3hPNFkBA/apu8291mLeYzNtA7Bv8dm7061RzzjUhA==","signatures":[{"sig":"MEQCICOJD9EoTUTaSePboIAeDb3nIuJMeROr7CY8et+sQxsxAiBambuCMTf+TOL/zCDU6gbom2N8/XV29eDSQisVEujPXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":374347},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"59e25728340b6f6d4afc2939a3e67b7cc142a4a9","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","dependencies":{"axios":"^1.12.2"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.2.5_1758623248784_0.7748444320214549","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"wexa-chat","version":"0.2.6","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.2.6","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"5614db3cbd1c0fd578aa1d2f0e080d2989ce7dc1","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.2.6.tgz","fileCount":11,"integrity":"sha512-L7037ObAc0MJ8ELckGC4TGqpeJlGN44++GF3OtPdJfFsTnGcmF7LSbcp2krFxknbVCn7K9Pw6Q7GwwaWP9JZ1Q==","signatures":[{"sig":"MEUCIG1O3TUvfjh/6lUL4P6oD7O1tl7Q9yAFOalEqSz9YncvAiEAyxI/shFh+m4oDBsRX3LCKCE5Tr3de4PQ17W16jj/T0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":374347},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"0c59f7a75d30cf3e4c3a0e3f4e0faa5e2f344a12","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","dependencies":{"axios":"^1.12.2"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.2.6_1758623928483_0.135434105513641","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"wexa-chat","version":"0.2.9","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.2.9","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"8b49e46c56c134d6d79acf780a2423664f18e575","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.2.9.tgz","fileCount":11,"integrity":"sha512-giOmL+WM89T2cnbAN/l3M9zfvc1fcrFDGROQBaNSsJPGK44szxBIjMBVxZ+cDip/2Xq4KZ2UFEvNEHl3s7jOvw==","signatures":[{"sig":"MEQCIECFXHJ7JjJ5kJmfogJtuo9W6+r0NtxMD8wINzaMlbHSAiAj/NJyrUQXADzEQWq3f3bXdw8vsbl4GFa8r0a1Sunb2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":381169},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"1f2096ef6602785c3b33bf5361de8e39fb17eed2","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","dependencies":{"axios":"^1.12.2"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.2.9_1758626928099_0.34041799493008096","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"wexa-chat","version":"0.2.10","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.2.10","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"fbd146ad4774ed383718920c0344f0d62c5cdef2","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.2.10.tgz","fileCount":10,"integrity":"sha512-xJr7BcYOpTSTwOkGFKW4dUOd1ho1AuKa3VbPZpgWtyyN7hauHY5BvfGchtoP3QJbjDOCe7t2WAnD1Fp91GOllQ==","signatures":[{"sig":"MEYCIQCwivNMXn4A70ylo1LJTLrartsX8yy4ewDHTvfP2KTpIAIhAMjEK5F+PsIcHVKXCX7e8W0THjoC286cZn16LTh4HqX+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":399387},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"ab4733c3c6015f1f690a4b2875d07fa452e43a25","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"10.1.0","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"20.9.0","dependencies":{"axios":"^1.12.2"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.2.10_1758973550114_0.8654935689844194","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"wexa-chat","version":"0.3.0","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.3.0","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"3dd2eb8904bfb98e7f37c2c98d59c28d0a842a9b","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.3.0.tgz","fileCount":11,"integrity":"sha512-H5gUeKomS5p5POc5vEs6JxO811ZBlqHO+Wkme4i+gEupNEx1CJubuDnU51PRzIPB9jlo4L6J0zkKsmyXRPR7fQ==","signatures":[{"sig":"MEYCIQDTjENozmttk+2WQR0c0d9q00gjTB8p0uBHu3NNoqeQIwIhANIitPpYAiIdral3jS63+arzCGruYa7OfDhRW4BDwT1d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":466397},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"3f4ab10d1219dec4a3cf679f82ed7481efbfb2fe","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"11.6.2","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"24.11.1","dependencies":{"axios":"^1.12.2"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.3.0_1769746912262_0.24884341587514003","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"wexa-chat","version":"0.3.1","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.3.1","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"c1a414963ecb484d5874e67fdf76f5136b1f0d68","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.3.1.tgz","fileCount":11,"integrity":"sha512-A+zJZt7lF4Fx7COZRXQyeuvOIMe9IgC/Nf7lWK4MeIDjSlewxvoRXyKRi8pramcv0MKyLCFrDJ7okSAfjyX6FQ==","signatures":[{"sig":"MEUCIQDcf2C770hsvpUw7JPZx0i67/WkH/GsFHQCG8kKUlDR+QIgU2nKoHYo3bAmXng9OUuaXafeBk/joi2n3WT6Htsulvk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":466735},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"f6085c82cccc914cea47ec3ac6781f8242599383","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"11.6.2","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"24.11.1","dependencies":{"axios":"^1.12.2"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.3.1_1770260060383_0.8481693252347904","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"wexa-chat","version":"0.3.2","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.3.2","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"b358c5aabc61ae513a668788cde6b4ecd1c9b5dc","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.3.2.tgz","fileCount":11,"integrity":"sha512-IXB/9iC+zioS0J5dzAQ0N4/tkBKKym8tiXw85rHEqTIWLNDqf4MxvxTXnfUJSbS76oGYgiThaVS5l20xmGi9Cw==","signatures":[{"sig":"MEYCIQDET4TB88uymLZKP8onLZSsZ4zYge0gGSIIZTEp4Xi6GAIhAJmcc0yxx1WAUwcz9LO1iSn3y/rAdHknd06bmd1aavd7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":469840},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"36dcbe3298c6e736c40e3b9f8ba3046068496784","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"11.6.2","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"24.11.1","dependencies":{"axios":"^1.12.2"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.3.2_1770706803642_0.12183717937684047","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"wexa-chat","version":"0.3.3","keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","_id":"wexa-chat@0.3.3","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"dist":{"shasum":"c81421b2a391455d52d1720dd9561e4980cb156c","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.3.3.tgz","fileCount":11,"integrity":"sha512-klfNFRNCQB6e1v7Ikim86Cuub1IHem3N09BeAMI/I+ZTiXdRCzyWK++Xm7LU6a5HhAUn5rLKrAk3weAWR94jmw==","signatures":[{"sig":"MEQCIF40vV+MZWEAyVu5K/6yUjKCATcXlnnKQth8s/aHTdy+AiA1eyRhPb/GArzaEVMqCOxxWP9fbDWMjocCWL38CJ6uiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":479151},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"}},"gitHead":"9f196a7d654af37e31a9a66c6686617f5da117df","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"_npmVersion":"11.6.2","description":"Chat core library with MongoDB and Redis support","directories":{},"_nodeVersion":"24.11.1","dependencies":{"axios":"^1.12.2"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","tsup":"^8.0.2","eslint":"^8.57.0","rimraf":"^5.0.5","prettier":"^3.2.5","@types/ws":"^8.5.12","typescript":"^5.3.3","@types/node":"^20.11.24","@types/react":"^18.2.66","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"peerDependencies":{"ws":"^8.0.0","react":">=17 <20","ioredis":"^5.0.0","mongoose":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wexa-chat_0.3.3_1770967578096_0.4298704068086743","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"wexa-chat","version":"0.3.4","description":"Chat core library with MongoDB and Redis support","type":"module","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"require":"./dist/index.js","import":"./dist/index.mjs","types":"./dist/index.d.ts"},"./client":{"import":"./dist/client/index.js","types":"./dist/client/index.d.ts"}},"scripts":{"build":"rimraf dist && tsup","dev":"tsup --watch","lint":"eslint src --ext .ts","format":"prettier --write \"src/**/*.ts\"","test":"echo \"Error: no test specified\" && exit 1"},"keywords":["chat","mongodb","redis","websocket","ws"],"author":"","license":"MIT","dependencies":{"axios":"^1.12.2"},"peerDependencies":{"ioredis":"^5.0.0","mongoose":"^7.0.0","react":">=17 <20","ws":"^8.0.0"},"devDependencies":{"@types/node":"^20.11.24","@types/react":"^18.2.66","@types/ws":"^8.5.12","@typescript-eslint/eslint-plugin":"^7.1.0","@typescript-eslint/parser":"^7.1.0","eslint":"^8.57.0","eslint-config-prettier":"^9.1.0","prettier":"^3.2.5","rimraf":"^5.0.5","tsup":"^8.0.2","typescript":"^5.3.3","ws":"^8.18.0"},"gitHead":"f831e6b04af2bfdcb48fff2ee542c2bd31926f9b","_id":"wexa-chat@0.3.4","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-MRhftk+k7oH+ZXU8kwebminpXqSvBwvO1r2/71fTAGk0mvFa+MDDikJEByIzZb1hVOlt3T34OpthpgWGojAATQ==","shasum":"37c92e76723608f5d7b723bb4d33d855a5446133","tarball":"https://registry.npmjs.org/wexa-chat/-/wexa-chat-0.3.4.tgz","fileCount":11,"unpackedSize":487648,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCh9KghtZn8F4nVT4ZF8cwPAgJQB9JqhNERJ21SyODH/QIgXsac9iCKNGWvMEin3DbZ4C5Q8UpNy0sen4NVeDt+qS0="}]},"_npmUser":{"name":"miranas11","email":"anasmir24@gmail.com"},"directories":{},"maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wexa-chat_0.3.4_1774334922136_0.7472458642644697"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-25T09:27:24.677Z","modified":"2026-03-24T06:48:42.452Z","0.1.0":"2025-08-25T09:27:24.959Z","0.1.2":"2025-08-25T09:47:50.796Z","0.1.3":"2025-08-25T09:52:57.799Z","0.1.4":"2025-08-25T09:57:27.222Z","0.1.5":"2025-08-25T10:01:28.855Z","0.1.6":"2025-08-25T10:33:53.057Z","0.1.7":"2025-08-25T10:44:54.740Z","0.1.8":"2025-08-25T11:18:23.173Z","0.1.9":"2025-08-25T11:46:46.973Z","0.1.11":"2025-08-25T11:54:39.524Z","0.1.12":"2025-08-26T04:51:40.482Z","0.1.13":"2025-08-26T07:58:47.146Z","0.1.14":"2025-08-26T07:59:04.077Z","0.1.16":"2025-08-26T08:25:57.166Z","0.1.19":"2025-08-26T13:52:24.133Z","0.1.20":"2025-08-27T06:27:42.568Z","0.1.21":"2025-08-27T07:16:22.546Z","0.1.22":"2025-08-28T04:21:23.005Z","0.1.23":"2025-08-28T05:17:36.613Z","0.1.31":"2025-08-28T06:24:20.068Z","0.1.32":"2025-08-28T07:17:23.534Z","0.1.33":"2025-08-29T06:56:48.708Z","0.1.34":"2025-08-29T07:17:00.429Z","0.1.35":"2025-08-29T11:12:56.031Z","0.1.36":"2025-08-29T11:23:14.547Z","0.2.0":"2025-09-18T04:34:00.391Z","0.2.1":"2025-09-18T12:33:34.874Z","0.2.2":"2025-09-23T08:29:45.895Z","0.2.3":"2025-09-23T10:21:28.933Z","0.2.4":"2025-09-23T10:23:45.579Z","0.2.5":"2025-09-23T10:27:28.998Z","0.2.6":"2025-09-23T10:38:48.662Z","0.2.9":"2025-09-23T11:28:48.298Z","0.2.10":"2025-09-27T11:45:50.357Z","0.3.0":"2026-01-30T04:21:52.440Z","0.3.1":"2026-02-05T02:54:20.593Z","0.3.2":"2026-02-10T07:00:03.799Z","0.3.3":"2026-02-13T07:26:18.244Z","0.3.4":"2026-03-24T06:48:42.321Z"},"license":"MIT","keywords":["chat","mongodb","redis","websocket","ws"],"description":"Chat core library with MongoDB and Redis support","maintainers":[{"name":"miranas11","email":"anasmir24@gmail.com"}],"readme":"# wexa-chat (Chat Core)\n\nTypeScript chat core for MongoDB with optional Redis and a built‑in WebSocket transport. Ships server APIs and a lightweight browser client bundle used by the demo app.\n\n- Server: `import { initChat } from 'wexa-chat'`\n- Client: `import { SocketProvider, useSocket, getSocketManager, type ChatEvent } from 'wexa-chat/client'`\n\nThis README mirrors the integration used in the Next.js demo app.\n\n## Installation\n\n```bash\nnpm install wexa-chat mongoose ioredis\n```\n\n## Server usage\n\nInitialize once with `initChat(mongoose, options, httpServer?)`. If your app starts before an HTTP server exists (e.g., SSR), you can re‑initialize later with the server to attach the WebSocket transport.\n\n```ts\nimport mongoose from 'mongoose';\nimport type { Server as HTTPServer } from 'http';\nimport { initChat } from 'wexa-chat';\n\nlet chatInstance: Awaited<ReturnType<typeof initChat>> | null = null;\n\nexport async function getChatInstance(httpServer?: HTTPServer) {\n  if (chatInstance) {\n    // Attach WS transport when server becomes available\n    if (httpServer && !(chatInstance.transport as any).socket) {\n      chatInstance = await initChat(mongoose, {\n        participantModels: ['User'],\n        memberRoles: ['member', 'admin'],\n        mongoUri: process.env.MONGODB_URI!,\n        // Optional Redis for cross‑instance fanout\n        redis: process.env.REDIS_URL || process.env.REDIS_HOST\n          ? { url: process.env.REDIS_URL, host: process.env.REDIS_HOST, port: Number(process.env.REDIS_PORT || 6379) }\n          : undefined,\n        // IMPORTANT: must match the client (recommended '/ws')\n        socket: { path: '/ws' },\n        enableTextSearch: true,\n      }, httpServer);\n    }\n    return chatInstance;\n  }\n\n  // First‑time init; only pass socket when server exists\n  chatInstance = await initChat(mongoose, {\n    participantModels: ['User'],\n    memberRoles: ['member', 'admin'],\n    mongoUri: process.env.MONGODB_URI!,\n    redis: process.env.REDIS_URL || process.env.REDIS_HOST\n      ? { url: process.env.REDIS_URL, host: process.env.REDIS_HOST, port: Number(process.env.REDIS_PORT || 6379) }\n      : undefined,\n    socket: httpServer ? { path: '/ws' } : undefined,\n    enableTextSearch: true,\n  }, httpServer);\n\n  return chatInstance;\n}\n```\n\n### WebSocket transport\n\n- Transport uses native `ws` and attaches an HTTP upgrade listener when `httpServer` is provided.\n- Set `socket.path` to the URL path for upgrades. The client bundle expects `/ws`; configure the same on the server.\n- Authentication: client connects to `ws(s)://host/ws?userId=...&userModel=User`. The server validates the handshake and associates the user.\n\n### Next.js warm‑up route\n\nWarm the server so the upgrade listener is attached before the browser connects:\n\n```ts\n// pages/api/socket.ts\nimport type { NextApiRequest, NextApiResponse } from 'next';\nimport type { Server as HTTPServer } from 'http';\nimport { getChatInstance } from '@/lib/chat';\n\nexport const config = { api: { bodyParser: false } };\n\nexport default async function handler(_req: NextApiRequest, res: NextApiResponse) {\n  const server = (res.socket as any).server as HTTPServer;\n  await getChatInstance(server);\n  res.status(200).end('OK');\n}\n```\n\nThe browser client performs a one‑time GET of `/api/socket` before opening the WebSocket.\n\n## Options overview (see `src/types/init.ts`)\n\n```ts\nexport type SocketConfig = {\n  path?: string;\n  cors?: { origin?: string | string[]; methods?: string[] };\n};\n\nexport type InitOptions = {\n  participantModels: string[];               // e.g. ['User']\n  memberRoles: string[];                     // e.g. ['member', 'admin']\n  mongoUri: string;                          // MongoDB connection\n  enableTextSearch?: boolean;\n  redis?: {                                  // optional\n    url?: string; host?: string; port?: number; password?: string; db?: number;\n    socketConnectTimeout?: number; keepAlive?: number;\n  };\n  socket?: SocketConfig;                     // WebSocket config\n  presence?: { enabled?: boolean; heartbeatSec?: number };\n  rateLimit?: { sendPerMin?: number; typingPerMin?: number };\n}\n```\n\n## Services API\n\n`chat.services` exposes conversations and messages services.\n\n- Conversations\n  - `createOrFindConversation({ organizationId, a:{model,id}, b:{model,id} })`\n  - `getConversation(organizationId, conversationId)`\n  - `searchConversations({ organizationId, participantModel?, participantId?, limit?, cursor? })`\n  - `searchByParticipantPair({ organizationId, a, b })`\n\n- Messages\n  - `sendMessage({ organizationId, conversationId, senderModel, senderId, text, source, kind?, parentMessageId?, rootThreadId?, connectorIds? })`\n  - `listMessages({ organizationId, conversationId, limit?, cursor? })`\n  - `listMessagesWithSenders({ organizationId, conversationId, limit?, cursor?, populateSenders: true, populateOptions? })`\n  - `markRead({ organizationId, conversationId, participantModel, participantId, messageId })`\n  - `receiveWhatsappMessage({ whatsappChatId, message })`\n  - `receiveLinkedinMessage({ linkedinChatId, message })`\n  - `receiveEmailMessage({ emailChatId, message })`\n\nDTO types live in `src/types/dto.ts`.\n\n### Populating Message Senders with Infinite Scroll Support\n\nThe `listMessagesWithSenders` method allows you to retrieve messages with populated sender details, optimized for infinite scroll in chat interfaces. The implementation uses efficient batched lookups:\n\n```ts\n// Basic usage\nconst messagesWithSenders = await chat.services.messages.listMessagesWithSenders({\n  organizationId: 'org-123',\n  conversationId: 'conv-456',\n  populateSenders: true // Required to enable population\n});\n\n// With customization\nconst messagesWithCustomSenders = await chat.services.messages.listMessagesWithSenders({\n  organizationId: 'org-123',\n  conversationId: 'conv-456',\n  populateSenders: true,\n  populateOptions: {\n    fields: '_id name email profilePicture', // Fields to select from sender model\n    modelMapping: {\n      'User': 'CustomUserModel', // If your senderModel doesn't match the actual Mongoose model name\n      'Bot': 'BotModel'\n    }\n  }\n});\n\n// Accessing populated data\nmessagesWithSenders.items.forEach(message => {\n  console.log(`Message from ${message.sender?.name}: ${message.text}`);\n});\n```\n\nThe populated sender data is available in the `sender` property of each message. The implementation uses a batched approach that:\n\n1. Fetches messages using MongoDB aggregation\n2. Groups messages by sender model type\n3. Loads all senders for each model type in a single query per model\n4. Attaches sender data to each message efficiently\n\nThis approach minimizes database queries and maximizes performance, even with multiple sender types.\n\n#### Infinite Scroll Implementation\n\nThe returned data structure supports infinite scroll with cursor-based pagination:\n\n```ts\n// First load\nconst firstPage = await chat.services.messages.listMessagesWithSenders({\n  organizationId: 'org-123',\n  conversationId: 'conv-456',\n  populateSenders: true,\n  limit: 20 // Number of messages per \"page\"\n});\n\n// Display messages in your UI\ndisplayMessages(firstPage.items);\n\n// When user scrolls and needs more messages\nif (firstPage.hasMore) {\n  // Load next batch using the cursor\n  const nextPage = await chat.services.messages.listMessagesWithSenders({\n    organizationId: 'org-123',\n    conversationId: 'conv-456', \n    populateSenders: true,\n    limit: 20,\n    cursor: firstPage.nextCursor // Pass the cursor from previous batch\n  });\n  \n  // Append these messages to your UI\n  displayMessages([...existingMessages, ...nextPage.items]);\n  \n  // Store the new cursor for further loading\n  nextCursor = nextPage.nextCursor;\n  hasMore = nextPage.hasMore;\n}\n```\n\nThe method returns messages sorted by creation time (newest first), making it ideal for chat interfaces where newer messages appear at the bottom. The cursor-based pagination ensures efficient loading of large conversation histories.\n\nThe type `MessageWithSender` is exported from the package for proper TypeScript support.\n\n### Sending messages and connectors\n\nMessages include a required `source` field (array) to indicate one or more origins for a message. Valid values are enforced by an enum of strings:\n\n```ts\nexport const sourceType = {\n  LINKEDIN: 'linkedin',\n  WHATSAPP: 'whatsapp',\n  EMAIL: 'email',\n  CORE: 'core',\n} as const;\n\nexport type SourceType = (typeof sourceType)[keyof typeof sourceType];\n```\n\nWhen sending a message via `sendMessage`, you must provide `source: SourceType[]`. For internal server‑generated messages, use `[sourceType.CORE]`.\n\nIf you include external connectors in the `source` (e.g., `linkedin`, `whatsapp`, `email`), you can optionally pass `connectorIds` to perform the external send and to persist identifiers for quick follow‑ups.\n\n#### Email with Rich Metadata\n\nEmail supports advanced features like subject lines, CC/BCC, attachments, and tracking:\n\n```ts\n// Simple email\nawait chat.services.messages.sendMessage({\n  organizationId: 'org-123',\n  conversationId: 'conv-456',\n  senderModel: 'User',\n  senderId: 'user-1',\n  text: 'Hi John,\\n\\nInterested in discussing a role?\\n\\nBest,\\nJane',\n  source: [sourceType.EMAIL],\n  connectorIds: {\n    email: { connectorId: 'em-connector-1', contactId: 'john@candidate.com' },\n  },\n  metadata: {\n    email: {\n      subject: 'Job Opportunity at TechCorp',\n      recipientName: 'John Doe',\n    }\n  }\n});\n\n// Full-featured email with all options\nawait chat.services.messages.sendMessage({\n  organizationId: 'org-123',\n  conversationId: 'conv-456',\n  senderModel: 'User',\n  senderId: 'user-1',\n  text: 'Dear John,\\n\\nWe are looking for a Senior Software Engineer...',\n  source: [sourceType.EMAIL],\n  connectorIds: {\n    email: { connectorId: 'em-connector-1', contactId: 'john@candidate.com' },\n  },\n  metadata: {\n    email: {\n      subject: 'Senior Software Engineer Position - TechCorp',\n      recipientName: 'John Doe',\n      cc: [\n        { display_name: 'HR Manager', identifier: 'hr@techcorp.com' }\n      ],\n      bcc: [\n        { display_name: 'Recruiting Lead', identifier: 'lead@techcorp.com' }\n      ],\n      attachments: [\n        'https://storage.company.com/job-description.pdf',\n        'https://storage.company.com/company-overview.pdf'\n      ],\n      tracking: {\n        opens: true,\n        links: true,\n        label: 'q1_2024_recruitment'\n      }\n    }\n  }\n});\n\n// Email reply (threading)\nawait chat.services.messages.sendMessage({\n  organizationId: 'org-123',\n  conversationId: 'conv-456',\n  senderModel: 'User',\n  senderId: 'user-1',\n  text: 'Hi John,\\n\\nThank you for your response!...',\n  source: [sourceType.EMAIL],\n  connectorIds: {\n    email: { connectorId: 'em-connector-1', contactId: 'john@candidate.com' },\n  },\n  metadata: {\n    email: {\n      subject: 'Re: Senior Software Engineer Position',\n      recipientName: 'John Doe',\n      replyTo: 'email_provider_id_abc123xyz'  // From previous email\n    }\n  },\n  parentMessageId: 'msg-previous-id',\n  rootThreadId: 'msg-root-id'\n});\n```\n\n##### Email Threading Explained\n\nEmail threading works by maintaining a stable `thread_id` across all messages in the same conversation:\n\n**How it works:**\n\n1. **First Email (New Thread)**\n   - Recruiter sends first email → Unipile returns `provider_id: \"A\"`\n   - Conversation stores `emailChatId = \"A\"` (the thread identifier)\n   - Message stores `metadata.email.providerId = \"A\"`\n\n2. **Candidate Replies**\n   - Webhook arrives with `thread_id: \"A\"` and new `provider_id: \"B\"`\n   - System finds conversation by `emailChatId = \"A\"`\n   - Message stores `metadata.email.providerId = \"B\"`\n\n3. **Recruiter Replies (Threading)**\n   - To continue the thread, pass `replyTo: \"B\"` (candidate's provider_id)\n   - Unipile returns new `provider_id: \"C\"`\n   - `emailChatId` remains `\"A\"` (NOT updated for replies)\n   - Message stores `metadata.email.providerId = \"C\"`\n\n**Key Points:**\n- `emailChatId` = Set ONCE on first email, used to find conversation\n- `replyTo` = Previous message's `provider_id`, maintains email thread\n- `providerId` = Current message's ID, stored for future replies\n\n**Example: Reply to candidate's email**\n\n```ts\n// 1. Get the last message from candidate\nconst messages = await chat.services.messages.listMessages({\n  organizationId: 'org-123',\n  conversationId: 'conv-456',\n  limit: 10,\n});\n\nconst lastCandidateMsg = messages.items\n  .find(m => m.senderModel === 'Application');\n\n// 2. Extract their providerId for threading\nconst replyToId = lastCandidateMsg?.metadata?.email?.providerId;\n\n// 3. Send reply with replyTo\nawait chat.services.messages.sendMessage({\n  organizationId: 'org-123',\n  conversationId: 'conv-456',\n  senderModel: 'User',\n  senderId: 'user-1',\n  text: 'Great to hear from you! Let me provide more details...',\n  source: [sourceType.EMAIL],\n  connectorIds: {\n    email: { connectorId: 'em-connector-1', contactId: 'john@candidate.com' },\n  },\n  metadata: {\n    email: {\n      subject: 'Re: Job Opportunity',\n      recipientName: 'John Doe',\n      replyTo: replyToId,  // ← This keeps emails in the same thread\n    }\n  }\n});\n```\n\n**Without `replyTo`:** Each email creates a new thread (separate email chains)  \n**With `replyTo`:** All emails stay in one thread (Gmail conversation view)\n\n#### Multi-Platform Messages\n\n```ts\nawait chat.services.messages.sendMessage({\n  organizationId: 'org-123',\n  conversationId: 'conv-456',\n  senderModel: 'User',\n  senderId: 'user-1',\n  text: 'Hello from Wexa',\n  source: [sourceType.CORE, sourceType.LINKEDIN, sourceType.WHATSAPP],\n  connectorIds: {\n    linkedin: { connectorId: 'ln-connector-1', contactId: 'https://linkedin.com/in/someone' },\n    whatsapp: { connectorId: 'wa-connector-1', contactId: '+1 234 567 8901' },\n  },\n});\n```\n\nUnder the hood (`src/services/messages.service.ts`):\n\n- **LinkedIn**: posts to the LinkedIn connector with `{ linkedin_url, text }`.\n- **WhatsApp**: posts to the WhatsApp connector with `{ phone_numbers, text }` (phone is sanitized to remove spaces and a leading `+`).\n- **Email**: posts to `/mail/send_email/:connectorId` with complete payload including `to` (array of recipients with display_name and identifier), `body`, `subject`, `cc`, `bcc`, `attachments` (URLs), `reply_to` (for threading), and `tracking_options`.\n- Each external task runs concurrently. A successful task's `source` remains in the stored message. Failures are collected into a `failed_source` array attached to the returned message instance at runtime: `message.failed_source: Array<{ source: string; message: string }>`.\n- The conversation document is updated with last message metadata and, when applicable, with connector identifiers:\n  - `lastLinkedInId: string` — set from `connectorIds.linkedin.contactId` when `source` includes `linkedin`.\n  - `lastWhatsAppId: string` — set from a sanitized `connectorIds.whatsapp.contactId` when `source` includes `whatsapp`.\n  - `lastEmailId: string` — set from `connectorIds.email.contactId` when `source` includes `email`.\n- Message metadata (subjects, CC/BCC, attachments, tracking info) is stored in the `metadata.email` field for reference and UI rendering.\n\nThis allows subsequent UI actions to prefill the last known contact handles for LinkedIn, WhatsApp, and Email.\n\n### Receiving inbound connector messages\n\nWhen an external connector delivers a new inbound message, you can persist it directly using the chat ID stored on the conversation.\n\n**Important: Deduplication** - All receive methods support automatic deduplication via `messageId`. If a message with the same `messageId` already exists in the conversation, the existing message is returned instead of creating a duplicate. This prevents duplicate messages from webhooks that retry or are delivered multiple times.\n\n#### WhatsApp Messages\n\n```ts\nawait chat.services.messages.receiveWhatsappMessage({\n  whatsappChatId: 'wa-chat-123',\n  message: 'Hello from WhatsApp',\n  messageId: 'wamid.HBgNMTIzNDU2Nzg5...',  // For deduplication\n  senderName: 'John Doe',  // Optional\n});\n```\n\n#### LinkedIn Messages\n\n```ts\nawait chat.services.messages.receiveLinkedinMessage({\n  linkedinChatId: 'li-chat-456',\n  message: 'Hello from LinkedIn',\n  messageId: 'msg-abc123',  // For deduplication\n  senderName: 'Jane Smith',  // Optional\n  senderProfileUrl: 'https://linkedin.com/in/janesmith',  // Optional\n});\n```\n\n#### Email with Full Metadata\n\nEmail receives support enhanced metadata including subject, sender info, and threading:\n\n```ts\n// Simple email reply\nawait chat.services.messages.receiveEmailMessage({\n  emailChatId: 'em-chat-789',\n  message: 'Hi! I\\'m interested in the role.',\n  subject: 'Re: Job Opportunity',\n  senderEmail: 'candidate@example.com',\n  senderName: 'John Doe',\n  messageId: '<CANn6MZN...@mail.gmail.com>',  // For deduplication\n});\n\n// Full email with threading and attachments\nawait chat.services.messages.receiveEmailMessage({\n  emailChatId: 'em-chat-789',\n  message: 'Hi Jane,\\n\\nThank you for reaching out...',\n  subject: 'Re: Senior Developer Position',\n  senderEmail: 'candidate@example.com',\n  senderName: 'John Doe',\n  providerId: '19bfed8cdc1d7148',  // For threading - important!\n  messageId: '<CANn6MZN...@mail.gmail.com>',  // For deduplication - important!\n  attachments: [\n    {\n      name: 'resume.pdf',\n      url: 'https://storage.example.com/resume.pdf',\n      size: 245000,\n      mimeType: 'application/pdf'\n    }\n  ]\n});\n```\n\nAll helpers will:\n\n1. **Check for duplicates** - If `messageId` is provided, check if a message with that ID already exists in the conversation and return it if found.\n2. Locate the conversation by the given chat ID.\n3. Use the `Application` participant from the conversation as the sender.\n4. Create a new message with `kind: 'text'` and `source` set to the respective connector.\n5. Store platform-specific metadata:\n   - **Email**: subject, sender info, attachments, threading data in `metadata.email`\n   - **LinkedIn**: sender name and profile URL in `metadata.linkedin`\n   - **WhatsApp**: sender name in `metadata.whatsapp`\n6. Update the conversation summary fields (`lastMessageAt`, `lastMessagePreview`, `lastMessageSenderId`, `lastMessageSenderModel`).\n\n## Models\n\nThe package exports the following model types which can be imported directly:\n\n```ts\nimport { \n  // Model interfaces (document structures)\n  type IConversation, \n  type IMessage,\n  \n  // Mongoose model types\n  type ConversationModel,\n  type MessageModel,\n  \n  // Extended types\n  type MessageWithSender // Message with populated sender data\n} from 'wexa-chat';\n```\n\nTo access the actual models:\n\n```ts\n// Initialize the chat system\nconst chat = await initChat(mongoose, options);\n\n// Access models\nconst { Conversation, Message } = chat.models;\n\n// Example usage\nconst conversations = await Conversation.find({ organizationId }).lean();\nconst messages = await Message.find({ conversationId }).sort({ createdAt: -1 }).lean();\n```\n\n## Browser client\n\nEntry: `wexa-chat/client` exports `SocketProvider`, `useSocket`, `getSocketManager`, and `type ChatEvent`.\n\nWrap your app:\n\n```tsx\nimport { SocketProvider } from 'wexa-chat/client';\n\nexport default function App({ children }: { children: React.ReactNode }) {\n  const getUserId = () => mySession?.user?.id as string | undefined;\n  return <SocketProvider getUserId={getUserId}>{children}</SocketProvider>;\n}\n```\n\nUse in components:\n\n```tsx\nimport { useEffect } from 'react';\nimport { useSocket, type ChatEvent } from 'wexa-chat/client';\n\nexport function ChatWindow({ conversationId }: { conversationId: string }) {\n  const { isConnected, send, onEvent } = useSocket();\n\n  useEffect(() => {\n    if (!conversationId) return;\n    if (isConnected) send({ type: 'join-conversation', conversationId });\n    const off = onEvent((e: ChatEvent) => {\n      if (e.type === 'message:created' && e.message?.conversationId === conversationId) {\n        // update UI\n      }\n    });\n    return off;\n  }, [conversationId, isConnected, send, onEvent]);\n\n  return null;\n}\n```\n\nYou can also send:\n\n```ts\nsend({ type: 'leave-conversation', conversationId });\nsend({ type: 'typing', conversationId, isTyping: true });\n```\n\n## Events (server → client)\n\n- `message:created` — `{ type: 'message:created', message }`\n- `conversation:read` — `{ type: 'conversation:read', conversationId, messageId, participantModel, participantId, at }`\n- `typing` — `{ type: 'typing', conversationId, participantModel, participantId, state: 'start' | 'stop' }`\n- `presence:join` / `presence:leave` — `{ type, organizationId, participantModel, participantId, at }`\n\nIf Redis is configured, events are pub/sub‑broadcast across instances.\n\n## Build\n\n```bash\nnpm run build\n```\n\nExports (from `package.json`):\n\n```json\n{\n  \"exports\": {\n    \".\": { \"import\": \"./dist/index.mjs\", \"require\": \"./dist/index.js\", \"types\": \"./dist/index.d.ts\" },\n    \"./client\": { \"import\": \"./dist/client/index.js\", \"types\": \"./dist/client/index.d.ts\" }\n  }\n}\n```\n\n## Environment\n\n- `MONGODB_URI`\n- `REDIS_URL` or `REDIS_HOST`/`REDIS_PORT`/`REDIS_PASSWORD`/`REDIS_DB`\n- Ensure `socket.path` matches the client (recommended `/ws`).\n\n## License\n\nMIT\n","readmeFilename":"README.md"}