diff --git a/chatbot/package-lock.json b/chatbot/package-lock.json index a0cfb68..e0162ac 100644 --- a/chatbot/package-lock.json +++ b/chatbot/package-lock.json @@ -12,7 +12,7 @@ "@adiwajshing/keyed-db": "^0.2.4", "@google-cloud/vision": "^3.0.1", "@prisma/client": "^5.4.2", - "@whiskeysockets/baileys": "^6.2.1", + "@whiskeysockets/baileys": "^6.5.0", "axios": "^1.2.0", "date-fns": "^2.29.3", "date-fns-tz": "^1.3.7", @@ -86,6 +86,11 @@ "kuler": "^2.0.0" } }, + "node_modules/@eshaz/web-worker": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eshaz/web-worker/-/web-worker-1.2.1.tgz", + "integrity": "sha512-v5AKAVtM0toVD2rDCGjzhySWlXG/sG5HVialdzrxFKTAnFZNCjQelX0n2tPK0tE86jf4s3hpWlpRtOh8OObktg==" + }, "node_modules/@eslint/eslintrc": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", @@ -401,6 +406,45 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, + "node_modules/@thi.ng/bitstream": { + "version": "2.2.28", + "resolved": "https://registry.npmjs.org/@thi.ng/bitstream/-/bitstream-2.2.28.tgz", + "integrity": "sha512-aW7cSEaf680nfCIW42C/Hur12Toy8ST3XLRM8OxHXHZySq9cPrJ5stm+uilHlp+L00yBvgAoKk6ZWkDQ8mtYbA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/postspectacular" + }, + { + "type": "patreon", + "url": "https://patreon.com/thing_umbrella" + } + ], + "dependencies": { + "@thi.ng/errors": "^2.3.5" + }, + "engines": { + "node": ">=12.7" + } + }, + "node_modules/@thi.ng/errors": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@thi.ng/errors/-/errors-2.3.5.tgz", + "integrity": "sha512-WH2p02goxTCF11p8H/4VIl8RmPZ7rJ00ogFOrQX7mO3zxi1/vTqygR7sVuJszlx5a5eOrMglNivyqNZwr912cg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/postspectacular" + }, + { + "type": "patreon", + "url": "https://patreon.com/thing_umbrella" + } + ], + "engines": { + "node": ">=12.7" + } + }, "node_modules/@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -787,34 +831,67 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@wasm-audio-decoders/common": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@wasm-audio-decoders/common/-/common-9.0.1.tgz", + "integrity": "sha512-s4KxPsxhD6e+EtjmHPzTmKJSJTEXHGYlBzUGGLN/plV01x3RecybW73nIMtdLLXL8k/zQ8HYFcA6d9lqCJcDjQ==", + "dependencies": { + "@eshaz/web-worker": "1.2.1" + } + }, + "node_modules/@wasm-audio-decoders/flac": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/@wasm-audio-decoders/flac/-/flac-0.1.14.tgz", + "integrity": "sha512-+ZVIXEDS4gZZn2pd7rnbiUAbHYz+ZeT0IFn2OZU5VODTg17/fjZcQGyGT4QNWY5DUQRLl+GCsIoas0UbXPV3HA==", + "dependencies": { + "@wasm-audio-decoders/common": "9.0.1", + "codec-parser": "2.4.3" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/eshaz" + } + }, + "node_modules/@wasm-audio-decoders/ogg-vorbis": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@wasm-audio-decoders/ogg-vorbis/-/ogg-vorbis-0.1.11.tgz", + "integrity": "sha512-LbsJCWxJfHKNmsmJuOiLI5gFOa/mYQsipmQZgxtXQj10/0iWW33+3APkriO/ERVl5FaH/par3mZ+5X286DBO/Q==", + "dependencies": { + "@wasm-audio-decoders/common": "9.0.1", + "codec-parser": "2.4.3" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/eshaz" + } + }, "node_modules/@whiskeysockets/baileys": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@whiskeysockets/baileys/-/baileys-6.2.1.tgz", - "integrity": "sha512-YI3dyxsod30nwWkldMhjFC+8qAgFe8QcKC6vZUSAV7tqrnbCCxnb0qJdBMkZ2LF2dNDPy3clFRvMR5dVGZOTxw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@whiskeysockets/baileys/-/baileys-6.5.0.tgz", + "integrity": "sha512-ary0RNivsrl56wnn0ta37LwVGpCDabthERCV5lHHsbhJJFfp04g6+reiQAKvxo61oYxwxKjqq33kvID+AOr++A==", "dependencies": { + "@adiwajshing/keyed-db": "^0.2.4", "@hapi/boom": "^9.1.3", + "audio-decode": "^2.1.3", "axios": "^1.3.3", + "cache-manager": "^5.2.2", "futoin-hkdf": "^1.5.1", "libphonenumber-js": "^1.10.20", - "libsignal": "git+https://github.com/adiwajshing/libsignal-node.git", + "libsignal": "github:adiwajshing/libsignal-node", "music-metadata": "^7.12.3", "node-cache": "^5.1.2", "pino": "^7.0.0", "protobufjs": "^6.11.3", "uuid": "^9.0.0", - "ws": "^8.0.0" + "ws": "^8.13.0" }, "peerDependencies": { - "@adiwajshing/keyed-db": "^0.2.4", "jimp": "^0.16.1", "link-preview-js": "^3.0.0", "qrcode-terminal": "^0.12.0", "sharp": "^0.30.5" }, "peerDependenciesMeta": { - "@adiwajshing/keyed-db": { - "optional": true - }, "jimp": { "optional": true }, @@ -1030,6 +1107,34 @@ "node": ">=8.0.0" } }, + "node_modules/audio-buffer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/audio-buffer/-/audio-buffer-5.0.0.tgz", + "integrity": "sha512-gsDyj1wwUp8u7NBB+eW6yhLb9ICf+0eBmDX8NGaAS00w8/fLqFdxUlL5Ge/U8kB64DlQhdonxYC59dXy1J7H/w==" + }, + "node_modules/audio-decode": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/audio-decode/-/audio-decode-2.1.5.tgz", + "integrity": "sha512-+dnOsHalaEwYRDOyr+A89cp9Ms7WBaFaPcFuLI1/CJO7lVPUJQyTJWEnZktfh9Aw6zCbdD48jHMg8m33pIt3NQ==", + "dependencies": { + "@wasm-audio-decoders/flac": "^0.1.12", + "@wasm-audio-decoders/ogg-vorbis": "^0.1.7", + "audio-buffer": "^5.0.0", + "audio-type": "^2.2.0", + "mpg123-decoder": "^0.4.8", + "node-wav": "^0.0.2", + "ogg-opus-decoder": "^1.6.4", + "qoa-format": "^1.0.0" + } + }, + "node_modules/audio-type": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/audio-type/-/audio-type-2.2.1.tgz", + "integrity": "sha512-En9AY6EG1qYqEy5L/quryzbA4akBpJrnBZNxeKTqGHC2xT9Qc4aZ8b7CcbOMFTTc/MGdoNyp+SN4zInZNKxMYA==", + "engines": { + "node": ">=14" + } + }, "node_modules/axios": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", @@ -1208,6 +1313,23 @@ "node": ">= 0.8" } }, + "node_modules/cache-manager": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-5.2.4.tgz", + "integrity": "sha512-gkuCjug16NdGvKm/sydxGVx17uffrSWcEe2xraBtwRCgdYcFxwJAla4OYpASAZT2yhSoxgDiWL9XH6IAChcZJA==", + "dependencies": { + "lodash.clonedeep": "^4.5.0", + "lru-cache": "^10.0.1" + } + }, + "node_modules/cache-manager/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -1315,6 +1437,11 @@ "node": ">=0.10.0" } }, + "node_modules/codec-parser": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/codec-parser/-/codec-parser-2.4.3.tgz", + "integrity": "sha512-3dAvFtdpxn4YLstqsB2ZiJXXNg7n1j7R5ONeDuk+2kBkb39PwrCRytOFHlSWA8q5jCjW3PumeMv9q37bFHsijg==" + }, "node_modules/color": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", @@ -3684,6 +3811,11 @@ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, "node_modules/lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", @@ -3903,6 +4035,18 @@ "optional": true, "peer": true }, + "node_modules/mpg123-decoder": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/mpg123-decoder/-/mpg123-decoder-0.4.9.tgz", + "integrity": "sha512-l9e9BJ2/lAXjFuBB+JI+7PAPsEemHuN/LOoiFYAo/9Hu4S8hu5n+4nJMgndgiRcJ/W1CgSZ/AzXOPVdiMfxKBw==", + "dependencies": { + "@wasm-audio-decoders/common": "9.0.1" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/eshaz" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -4008,6 +4152,14 @@ "node": ">= 6.13.0" } }, + "node_modules/node-wav": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/node-wav/-/node-wav-0.0.2.tgz", + "integrity": "sha512-M6Rm/bbG6De/gKGxOpeOobx/dnGuP0dz40adqx38boqHhlWssBJZgLCPBNtb9NkrmnKYiV04xELq+R6PFOnoLA==", + "engines": { + "node": ">=4.4.0" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -4077,6 +4229,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/ogg-opus-decoder": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/ogg-opus-decoder/-/ogg-opus-decoder-1.6.6.tgz", + "integrity": "sha512-u0SVmB0RDXlWSlrFc5IqMDqYexKpxc4qUoY/ZwZLX3JJc/MXMqAL+bGnIZcGSl9213LQYK5uy1i4qbExFTIR1w==", + "dependencies": { + "@wasm-audio-decoders/common": "9.0.1", + "codec-parser": "2.4.3", + "opus-decoder": "0.7.2" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/eshaz" + } + }, "node_modules/on-exit-leak-free": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz", @@ -4126,6 +4292,18 @@ "node": ">= 0.8.0" } }, + "node_modules/opus-decoder": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/opus-decoder/-/opus-decoder-0.7.2.tgz", + "integrity": "sha512-d0gDTCeZfMStYDRyDhfcSq3RxF0znA78P7AsJwaEdM/UjWbGfvdiE0+azTE8+4kTC4B+lenFb1js4NoOxscb5g==", + "dependencies": { + "@wasm-audio-decoders/common": "9.0.1" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/eshaz" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -4447,6 +4625,14 @@ "node": ">=6" } }, + "node_modules/qoa-format": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/qoa-format/-/qoa-format-1.0.1.tgz", + "integrity": "sha512-dMB0Z6XQjdpz/Cw4Rf6RiBpQvUSPCfYlQMWvmuWlWkAT7nDQD29cVZ1SwDUB6DYJSitHENwbt90lqfI+7bvMcw==", + "dependencies": { + "@thi.ng/bitstream": "^2.2.12" + } + }, "node_modules/qrcode-terminal": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", @@ -5692,15 +5878,15 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -5820,6 +6006,11 @@ "kuler": "^2.0.0" } }, + "@eshaz/web-worker": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eshaz/web-worker/-/web-worker-1.2.1.tgz", + "integrity": "sha512-v5AKAVtM0toVD2rDCGjzhySWlXG/sG5HVialdzrxFKTAnFZNCjQelX0n2tPK0tE86jf4s3hpWlpRtOh8OObktg==" + }, "@eslint/eslintrc": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", @@ -6072,6 +6263,19 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, + "@thi.ng/bitstream": { + "version": "2.2.28", + "resolved": "https://registry.npmjs.org/@thi.ng/bitstream/-/bitstream-2.2.28.tgz", + "integrity": "sha512-aW7cSEaf680nfCIW42C/Hur12Toy8ST3XLRM8OxHXHZySq9cPrJ5stm+uilHlp+L00yBvgAoKk6ZWkDQ8mtYbA==", + "requires": { + "@thi.ng/errors": "^2.3.5" + } + }, + "@thi.ng/errors": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@thi.ng/errors/-/errors-2.3.5.tgz", + "integrity": "sha512-WH2p02goxTCF11p8H/4VIl8RmPZ7rJ00ogFOrQX7mO3zxi1/vTqygR7sVuJszlx5a5eOrMglNivyqNZwr912cg==" + }, "@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -6365,22 +6569,51 @@ "eslint-visitor-keys": "^3.3.0" } }, + "@wasm-audio-decoders/common": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@wasm-audio-decoders/common/-/common-9.0.1.tgz", + "integrity": "sha512-s4KxPsxhD6e+EtjmHPzTmKJSJTEXHGYlBzUGGLN/plV01x3RecybW73nIMtdLLXL8k/zQ8HYFcA6d9lqCJcDjQ==", + "requires": { + "@eshaz/web-worker": "1.2.1" + } + }, + "@wasm-audio-decoders/flac": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/@wasm-audio-decoders/flac/-/flac-0.1.14.tgz", + "integrity": "sha512-+ZVIXEDS4gZZn2pd7rnbiUAbHYz+ZeT0IFn2OZU5VODTg17/fjZcQGyGT4QNWY5DUQRLl+GCsIoas0UbXPV3HA==", + "requires": { + "@wasm-audio-decoders/common": "9.0.1", + "codec-parser": "2.4.3" + } + }, + "@wasm-audio-decoders/ogg-vorbis": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@wasm-audio-decoders/ogg-vorbis/-/ogg-vorbis-0.1.11.tgz", + "integrity": "sha512-LbsJCWxJfHKNmsmJuOiLI5gFOa/mYQsipmQZgxtXQj10/0iWW33+3APkriO/ERVl5FaH/par3mZ+5X286DBO/Q==", + "requires": { + "@wasm-audio-decoders/common": "9.0.1", + "codec-parser": "2.4.3" + } + }, "@whiskeysockets/baileys": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@whiskeysockets/baileys/-/baileys-6.2.1.tgz", - "integrity": "sha512-YI3dyxsod30nwWkldMhjFC+8qAgFe8QcKC6vZUSAV7tqrnbCCxnb0qJdBMkZ2LF2dNDPy3clFRvMR5dVGZOTxw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@whiskeysockets/baileys/-/baileys-6.5.0.tgz", + "integrity": "sha512-ary0RNivsrl56wnn0ta37LwVGpCDabthERCV5lHHsbhJJFfp04g6+reiQAKvxo61oYxwxKjqq33kvID+AOr++A==", "requires": { + "@adiwajshing/keyed-db": "^0.2.4", "@hapi/boom": "^9.1.3", + "audio-decode": "^2.1.3", "axios": "^1.3.3", + "cache-manager": "^5.2.2", "futoin-hkdf": "^1.5.1", "libphonenumber-js": "^1.10.20", - "libsignal": "git+https://github.com/adiwajshing/libsignal-node.git", + "libsignal": "github:adiwajshing/libsignal-node", "music-metadata": "^7.12.3", "node-cache": "^5.1.2", "pino": "^7.0.0", "protobufjs": "^6.11.3", "uuid": "^9.0.0", - "ws": "^8.0.0" + "ws": "^8.13.0" } }, "abort-controller": { @@ -6527,6 +6760,31 @@ "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" }, + "audio-buffer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/audio-buffer/-/audio-buffer-5.0.0.tgz", + "integrity": "sha512-gsDyj1wwUp8u7NBB+eW6yhLb9ICf+0eBmDX8NGaAS00w8/fLqFdxUlL5Ge/U8kB64DlQhdonxYC59dXy1J7H/w==" + }, + "audio-decode": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/audio-decode/-/audio-decode-2.1.5.tgz", + "integrity": "sha512-+dnOsHalaEwYRDOyr+A89cp9Ms7WBaFaPcFuLI1/CJO7lVPUJQyTJWEnZktfh9Aw6zCbdD48jHMg8m33pIt3NQ==", + "requires": { + "@wasm-audio-decoders/flac": "^0.1.12", + "@wasm-audio-decoders/ogg-vorbis": "^0.1.7", + "audio-buffer": "^5.0.0", + "audio-type": "^2.2.0", + "mpg123-decoder": "^0.4.8", + "node-wav": "^0.0.2", + "ogg-opus-decoder": "^1.6.4", + "qoa-format": "^1.0.0" + } + }, + "audio-type": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/audio-type/-/audio-type-2.2.1.tgz", + "integrity": "sha512-En9AY6EG1qYqEy5L/quryzbA4akBpJrnBZNxeKTqGHC2xT9Qc4aZ8b7CcbOMFTTc/MGdoNyp+SN4zInZNKxMYA==" + }, "axios": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", @@ -6663,6 +6921,22 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, + "cache-manager": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-5.2.4.tgz", + "integrity": "sha512-gkuCjug16NdGvKm/sydxGVx17uffrSWcEe2xraBtwRCgdYcFxwJAla4OYpASAZT2yhSoxgDiWL9XH6IAChcZJA==", + "requires": { + "lodash.clonedeep": "^4.5.0", + "lru-cache": "^10.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + } + } + }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -6738,6 +7012,11 @@ "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.1.tgz", "integrity": "sha512-rwHwUfXL40Chm1r08yrhU3qpUvdVlgkKNeyeGPOxnW8/SyVDvgRaed/Uz54AqWNaTCAThlj6QAs3TZcKI0xDEw==" }, + "codec-parser": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/codec-parser/-/codec-parser-2.4.3.tgz", + "integrity": "sha512-3dAvFtdpxn4YLstqsB2ZiJXXNg7n1j7R5ONeDuk+2kBkb39PwrCRytOFHlSWA8q5jCjW3PumeMv9q37bFHsijg==" + }, "color": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", @@ -8440,7 +8719,7 @@ }, "libsignal": { "version": "git+ssh://git@github.com/adiwajshing/libsignal-node.git#11dbd962ea108187c79a7c46fe4d6f790e23da97", - "from": "libsignal@git+https://github.com/adiwajshing/libsignal-node.git", + "from": "libsignal@github:adiwajshing/libsignal-node", "requires": { "curve25519-js": "^0.0.4", "protobufjs": "6.8.8" @@ -8500,6 +8779,11 @@ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, "lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", @@ -8662,6 +8946,14 @@ "optional": true, "peer": true }, + "mpg123-decoder": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/mpg123-decoder/-/mpg123-decoder-0.4.9.tgz", + "integrity": "sha512-l9e9BJ2/lAXjFuBB+JI+7PAPsEemHuN/LOoiFYAo/9Hu4S8hu5n+4nJMgndgiRcJ/W1CgSZ/AzXOPVdiMfxKBw==", + "requires": { + "@wasm-audio-decoders/common": "9.0.1" + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -8737,6 +9029,11 @@ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" }, + "node-wav": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/node-wav/-/node-wav-0.0.2.tgz", + "integrity": "sha512-M6Rm/bbG6De/gKGxOpeOobx/dnGuP0dz40adqx38boqHhlWssBJZgLCPBNtb9NkrmnKYiV04xELq+R6PFOnoLA==" + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -8782,6 +9079,16 @@ "es-abstract": "^1.19.1" } }, + "ogg-opus-decoder": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/ogg-opus-decoder/-/ogg-opus-decoder-1.6.6.tgz", + "integrity": "sha512-u0SVmB0RDXlWSlrFc5IqMDqYexKpxc4qUoY/ZwZLX3JJc/MXMqAL+bGnIZcGSl9213LQYK5uy1i4qbExFTIR1w==", + "requires": { + "@wasm-audio-decoders/common": "9.0.1", + "codec-parser": "2.4.3", + "opus-decoder": "0.7.2" + } + }, "on-exit-leak-free": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz", @@ -8825,6 +9132,14 @@ "word-wrap": "^1.2.3" } }, + "opus-decoder": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/opus-decoder/-/opus-decoder-0.7.2.tgz", + "integrity": "sha512-d0gDTCeZfMStYDRyDhfcSq3RxF0znA78P7AsJwaEdM/UjWbGfvdiE0+azTE8+4kTC4B+lenFb1js4NoOxscb5g==", + "requires": { + "@wasm-audio-decoders/common": "9.0.1" + } + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -9065,6 +9380,14 @@ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, + "qoa-format": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/qoa-format/-/qoa-format-1.0.1.tgz", + "integrity": "sha512-dMB0Z6XQjdpz/Cw4Rf6RiBpQvUSPCfYlQMWvmuWlWkAT7nDQD29cVZ1SwDUB6DYJSitHENwbt90lqfI+7bvMcw==", + "requires": { + "@thi.ng/bitstream": "^2.2.12" + } + }, "qrcode-terminal": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", @@ -9945,9 +10268,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", "requires": {} }, "xmlcreate": { diff --git a/chatbot/package.json b/chatbot/package.json index 06166a6..9628f40 100644 --- a/chatbot/package.json +++ b/chatbot/package.json @@ -28,7 +28,7 @@ "@adiwajshing/keyed-db": "^0.2.4", "@google-cloud/vision": "^3.0.1", "@prisma/client": "^5.4.2", - "@whiskeysockets/baileys": "^6.2.1", + "@whiskeysockets/baileys": "^6.5.0", "axios": "^1.2.0", "date-fns": "^2.29.3", "date-fns-tz": "^1.3.7", diff --git a/chatbot/src/api/messages.ts b/chatbot/src/api/messages.ts index 058c130..25d7b18 100644 --- a/chatbot/src/api/messages.ts +++ b/chatbot/src/api/messages.ts @@ -2,8 +2,12 @@ import { Request, Response } from 'express'; import { loadContext } from '../context'; import { Messenger } from '../messaging/messenger'; +enum SendMessageErrors { + NO_ACCOUNT = 'NO_ACCOUNT', +} + export async function handleMessageRequest(req: Request, res: Response, messenger: Messenger) { - const { phone, message } = req.body as { phone: string, message: string }; + const { phone, message } = req.body as { phone: string; message: string }; if (!phone || !message) { return res.status(400).json({ error: 'phone and message are required' }); } @@ -11,7 +15,7 @@ export async function handleMessageRequest(req: Request, res: Response, messenge const jid = `55${phone}@s.whatsapp.net`; const hasAccount = await messenger.phoneHasAccount(jid); if (!hasAccount) { - return res.status(400).json({ error: 'phone does not have an account' }); + return res.status(422).json({ error: SendMessageErrors.NO_ACCOUNT }); } await messenger.sendMessage(jid, message); diff --git a/chatbot/src/messaging/messenger.ts b/chatbot/src/messaging/messenger.ts index 3e7c40a..6310b65 100644 --- a/chatbot/src/messaging/messenger.ts +++ b/chatbot/src/messaging/messenger.ts @@ -97,10 +97,10 @@ export class Messenger { async init(): Promise { const { state, saveCreds } = await useMultiFileAuthState(settings.authenticationPath); - const { version } = await fetchLatestBaileysVersion(); - + const baileysData = await fetchLatestBaileysVersion(); + logger.info(`Baileys version: ${baileysData.version.toString()}`, baileysData); this.socket = makeWASocket({ - version, + version: baileysData.version, auth: state, printQRInTerminal: true, msgRetryCounterCache: new MessengerCache(), @@ -143,6 +143,9 @@ export class Messenger { async phoneHasAccount(jid: string): Promise { const status = await this.socket.onWhatsApp(jid); + if (status.length === 0) { + return false; + } return status[0].exists; }