{"_id":"@artesa/vue-advanced-chat","_rev":"16-5861bb86486982a9669002896a3afb60","name":"@artesa/vue-advanced-chat","dist-tags":{"latest":"3.0.2"},"versions":{"2.0.7":{"name":"@artesa/vue-advanced-chat","version":"2.0.7","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","_id":"@artesa/vue-advanced-chat@2.0.7","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"f.ashidian@gmail.com"}],"homepage":"https://github.com/antoine92190/vue-advanced-chat#readme","bugs":{"url":"https://github.com/antoine92190/vue-advanced-chat/issues"},"dist":{"shasum":"b46f6205161aa8de38cd42f80807f3d7fecb0005","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-2.0.7.tgz","fileCount":6,"integrity":"sha512-/HkqchP9+csVyEtICn8QcZgHmFcRXSTLmZp1DnKXi/WAvy7OIHVqeAKwzf7nrj3DPZJrUEiPvgOvL1ARbi8HNw==","signatures":[{"sig":"MEYCIQDsQl7syeIK3tit9o9PdFU6IOA5ZmimqrFyI9re407irwIhAOM4PfZATw8Rw6v91R2p2pUfugLBXokW7LWnCdRAeflx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1438925,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4NWyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq3UQ//eHM4FlYf4pz0Q3fZRV1QmSej9+iQE4yXupQuzG9XzTKo75LY\r\nC6zqAkJSRB4Xg6aO21YZW/W99+ISaBpM/QNPcKnf4mSnRmL4hy4gYpQrouDq\r\nOpV+0vcRmDGi0YeLWA+a1Vzmwx4ZOmSQhdqnRNDCYZJPGZgljuWQ6Fxgecok\r\ndjHRC0obGvPD/HEdhqF4aiW1wDKuR/m5k5zmeDix0S7Fdg20a3oP69tKnmVt\r\n1wVZMV7dT6SXjbvnBb/Q8XtbVIZe8K2nrXsnAReQ5BtlLjROlyODNZyIC6Cd\r\nItqOARozX7k6c+zp4KtqEvq91IsQVWqwA9gTKTTNc6o7Lo50qPTxA4UTXhXK\r\nPk8sWH0GG8vevOcs8ky4tWO795vNrJ6HWrLZprlCPEwe9KNfQ0JWQ7wTdU+/\r\nS1Ujbu2+0BfvUiD6+5CoruwG9sYbnS63sU6+LStIN1kbGa/+dlOZOGIUrIpd\r\nkWsEipJ6eeZJfrCr90VPnWP9IhF0229Ms9RrDcm//zjxa8XgLzVKpKnoOINu\r\n1iKgOYFcMdUKw2RYQQZAOzx16IW9mKUgPzO8oxBBWVtu5Hm36B6NhM3UJEYR\r\nWQDEAQYQemSU6ZZ6+/J1deFj0aPlsefZ5CetBnoY3MQ+IwAl4dIZ2KLIQp2C\r\nJraZLxEKmsJpfpw5SjOkWwopasBNhbAK8VY=\r\n=aVfR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/vue-advanced-chat.umd.js","_from":"file:artesa-vue-advanced-chat-2.0.7.tgz","types":"./types/vue-advanced-chat.common.d.ts","unpkg":"./dist/vue-advanced-chat.umd.js","module":"./dist/vue-advanced-chat.es.js","scripts":{"dev":"vite","lint":"eslint --ext .js,.vue --ignore-path .gitignore --fix src","build":"vite build","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","serve":"vite preview","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html","reset-all":"cd demo && npm run reset-all","prepublish":"npm run lint && npm run build","pull-master":"git pull origin master --no-edit --no-ff"},"typings":"types/index.d.ts","_npmUser":{"name":"thenoim","email":"nilsbergmann@noim.io"},"jsdelivr":"./dist/vue-advanced-chat.umd.js","_resolved":"/private/var/folders/25/0p81lyv54hg8ljfh48v1rtfr0000gn/T/7c065d585e8a1fa0c044b7dfda6febf0/artesa-vue-advanced-chat-2.0.7.tgz","_integrity":"sha512-/HkqchP9+csVyEtICn8QcZgHmFcRXSTLmZp1DnKXi/WAvy7OIHVqeAKwzf7nrj3DPZJrUEiPvgOvL1ARbi8HNw==","repository":{"url":"git+https://github.com/antoine92190/vue-advanced-chat.git","type":"git"},"_npmVersion":"8.19.2","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","directories":{},"_nodeVersion":"18.12.1","dependencies":{"linkifyjs":"2.1.9","emoji-picker-element":"1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"3.2.37","sass":"1.56.1","vite":"2.9.14","eslint":"7.32.0","node-sass":"8.0.0","typescript":"4.6.x","vue-loader":"^16.8.3","@babel/core":"7.12.16","babel-eslint":"10.0.3","@vue/compiler-sfc":"3.2.22","eslint-plugin-vue":"8.0.3","@vitejs/plugin-vue":"1.10.2","@typescript-eslint/parser":"5.4.0","@vue/eslint-config-standard":"4.0.0","@vue/eslint-config-typescript":"9.1.0","@typescript-eslint/eslint-plugin":"5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-advanced-chat_2.0.7_1675679153783_0.32415262400031697","host":"s3://npm-registry-packages"}},"2.0.8":{"name":"@artesa/vue-advanced-chat","version":"2.0.8","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","_id":"@artesa/vue-advanced-chat@2.0.8","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"f.ashidian@gmail.com"}],"homepage":"https://github.com/antoine92190/vue-advanced-chat#readme","bugs":{"url":"https://github.com/antoine92190/vue-advanced-chat/issues"},"dist":{"shasum":"04e4b095a418e61e0ba8d0397f6936941ca36e9e","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-2.0.8.tgz","fileCount":6,"integrity":"sha512-+1X0RtayBJxMmJrHoTD7QJTSiWBsAXD9WxDUXeliNcce+/AdpBRMEMqtMQdfV+WmrcorSpj0WIeqdD88TZR8mQ==","signatures":[{"sig":"MEUCIH5Mu2y73Ns34p1f/J+1mldQqI26gGNWmKevY6Rv7hn0AiEA6z2pCPVZ6c495ofxl2CMqplkj8sUnCtNFN5JZybYSXM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1438937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4OpqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmohnA/+LPTIuDCElaOYa8Zy96wik4cgWG93BWULKVIqR00YxkCJp5XM\r\nerhjNgKtWcumuT4ggGC1CgLHcv7qvirjzYGW6oJZ0DKTgNbfzwkJFEJCZzkZ\r\nMfkeBlIZDwWcKlvxZZ25nKXt5NKd6hVAPyotBvg7uGSO1YyTTtLYhrUB4s1Q\r\nkHUR6ImGrDYwXXR27xojEKJLp2ySlwFhFkk+YBdIsM8ni3X8EVPD8XNrFHjf\r\nXKXkbpRL8/UReQ8fdqk4pnNlgit+RjBUiu1Oio28vYpHNAIxKrrjPhUj8MM2\r\ne39gTQMEbwbbBgcjT0SF26v6Ca1IjpQjzkuMtHR6KlqJDpIHVXy+Jfg8zTQL\r\n0heQdURBn6hFgDQ7d8QehF+NhBVskv45MuAToX2M2c0ktoAFqWAQzxwOv6Yu\r\nJ72hMB136lrwfz+xdaWNwY3AZCCer9IFFwAu+Jk1JCHxSbFd00yM2baXZVUu\r\nyL0qxOv/Yb1xnCWa0ic73c7R8GJ+zBvU/oPmRY+4/JrJP4NgyvDJHeutjHpt\r\npyMH4SmQhzP7KfDPuk1SvsWeFL5qP0AC0mztreh4+5v7vBKr8okpkRwWP3zi\r\n8nFg8Gg+XtnsFG2KDf0NOysLRio4mPAeSh1t7fcPyxXUNKCTj5eCjCUnPUIa\r\na5RC0+1dNW3hZl74Ih9wQGenP8PIJAldvuI=\r\n=dvZ3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/vue-advanced-chat.umd.js","_from":"file:artesa-vue-advanced-chat-2.0.8.tgz","types":"./types/vue-advanced-chat.common.d.ts","unpkg":"./dist/vue-advanced-chat.umd.js","module":"./dist/vue-advanced-chat.es.js","scripts":{"dev":"vite","lint":"eslint --ext .js,.vue --ignore-path .gitignore --fix src","build":"vite build","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","serve":"vite preview","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html","reset-all":"cd demo && npm run reset-all","prepublish":"npm run lint && npm run build","pull-master":"git pull origin master --no-edit --no-ff"},"typings":"types/index.d.ts","_npmUser":{"name":"thenoim","email":"nilsbergmann@noim.io"},"jsdelivr":"./dist/vue-advanced-chat.umd.js","_resolved":"/private/var/folders/25/0p81lyv54hg8ljfh48v1rtfr0000gn/T/11e895e8310d87cf2fa5b2f5a5f6c2d5/artesa-vue-advanced-chat-2.0.8.tgz","_integrity":"sha512-+1X0RtayBJxMmJrHoTD7QJTSiWBsAXD9WxDUXeliNcce+/AdpBRMEMqtMQdfV+WmrcorSpj0WIeqdD88TZR8mQ==","repository":{"url":"git+https://github.com/antoine92190/vue-advanced-chat.git","type":"git"},"_npmVersion":"8.19.2","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","directories":{},"_nodeVersion":"18.12.1","dependencies":{"linkifyjs":"2.1.9","emoji-picker-element":"1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"3.2.37","sass":"1.56.1","vite":"2.9.14","eslint":"7.32.0","node-sass":"8.0.0","typescript":"4.6.x","vue-loader":"^16.8.3","@babel/core":"7.12.16","babel-eslint":"10.0.3","@vue/compiler-sfc":"3.2.22","eslint-plugin-vue":"8.0.3","@vitejs/plugin-vue":"1.10.2","@typescript-eslint/parser":"5.4.0","@vue/eslint-config-standard":"4.0.0","@vue/eslint-config-typescript":"9.1.0","@typescript-eslint/eslint-plugin":"5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-advanced-chat_2.0.8_1675684458630_0.41146847842620327","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"@artesa/vue-advanced-chat","version":"2.1.0","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","_id":"@artesa/vue-advanced-chat@2.1.0","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"f.ashidian@gmail.com"}],"homepage":"https://github.com/antoine92190/vue-advanced-chat#readme","bugs":{"url":"https://github.com/antoine92190/vue-advanced-chat/issues"},"dist":{"shasum":"1f7cec041d9758b6941f70ebcc9fd6f021a07d67","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-2.1.0.tgz","fileCount":6,"integrity":"sha512-b0Hf3ndgYCH7RlKdSHxzlvYDXY43OzEtiBgRRdp+x+ScDSu9NDWe3LW6bKlWuE5RToL/N2ZVG5+thOjVcnycRQ==","signatures":[{"sig":"MEQCIH8+l9iQ0Qe1Zq1wDbST9yW6/yoFrJD3/nvPD32lyTHXAiA8Ser0nuBuV6x8ZrOK6OP5fGZg0+xVGbfI/xKO9w2yvA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1439335,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5OHvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqftw/9EXccsaCWmbxJFbGc85NEbQh7BvW+mUT8SnbaBslu3NqtA4e7\r\nuqmSF61MVEAJeFuweyMCknedSMXymIEJ4SXyIvw3atYNRKdm17x5yCcKaIl4\r\ntdNeQyoAbvvVWB/qYHIs/G/C48FcRhFCAn4yTizR9/tNhhzuodihmkk0tDot\r\nYaeeUaH7nNK0dMawkkuRLwNQ1gzPPcnm0hiv4UYQ5cmLh6Z8JoSA6YSHNowt\r\nznzA4W2OKUzoUrx2I1Lu7dVjxSfYYZYOTjLJaJ5DN+1jIzub8/+D4SOPEw6b\r\n9a3YvHezReRUFUs30u5N6yxdWTappW/yqqzCbvCF1exqqMH+Pl0zWRU/bnhm\r\n1yBjBVtSmcdDtNlqrnRseXV8kcx8AVylQdhKe9ftR890oriHQPAlMk9390G4\r\nQItYH8VfyiONgTO5i41ZOKyF/GF5xhxqSCl16oIOH0c+k/Tl3CQjes2O4emy\r\noiJX2RrcOd5RubSQLeMdAfyres0drVMh4m5RVpx9fsOeoP1EPwd9KUFyh2si\r\nWALqinqbkd1kP4mRfmPEjnd24bLUMBNC/E+ybUdznpchOdwRD/yF7eynYApG\r\n2eXyzkSBLOgKag1+x6vGyalNW0JOiwBCSrmryJtU8i7ea9NDYZ+M6OgnRkax\r\nEbxh9PdfIWzwhYYtDRID4BlF+3l96reiHks=\r\n=a0BX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/vue-advanced-chat.umd.js","_from":"file:artesa-vue-advanced-chat-2.1.0.tgz","types":"./types/vue-advanced-chat.common.d.ts","unpkg":"./dist/vue-advanced-chat.umd.js","module":"./dist/vue-advanced-chat.es.js","scripts":{"dev":"vite","lint":"eslint --ext .js,.vue --ignore-path .gitignore --fix src","build":"vite build","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","serve":"vite preview","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html","reset-all":"cd demo && npm run reset-all","prepublish":"npm run lint && npm run build","pull-master":"git pull origin master --no-edit --no-ff"},"typings":"types/index.d.ts","_npmUser":{"name":"thenoim","email":"nilsbergmann@noim.io"},"jsdelivr":"./dist/vue-advanced-chat.umd.js","_resolved":"/private/var/folders/25/0p81lyv54hg8ljfh48v1rtfr0000gn/T/81620ca1cec2920c0c0473d2b9f2176b/artesa-vue-advanced-chat-2.1.0.tgz","_integrity":"sha512-b0Hf3ndgYCH7RlKdSHxzlvYDXY43OzEtiBgRRdp+x+ScDSu9NDWe3LW6bKlWuE5RToL/N2ZVG5+thOjVcnycRQ==","repository":{"url":"git+https://github.com/antoine92190/vue-advanced-chat.git","type":"git"},"_npmVersion":"8.19.2","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","directories":{},"_nodeVersion":"18.12.1","dependencies":{"linkifyjs":"2.1.9","emoji-picker-element":"1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"3.2.37","sass":"1.56.1","vite":"2.9.14","eslint":"7.32.0","node-sass":"8.0.0","typescript":"4.6.x","vue-loader":"^16.8.3","@babel/core":"7.12.16","babel-eslint":"10.0.3","@vue/compiler-sfc":"3.2.22","eslint-plugin-vue":"8.0.3","@vitejs/plugin-vue":"1.10.2","@typescript-eslint/parser":"5.4.0","@vue/eslint-config-standard":"4.0.0","@vue/eslint-config-typescript":"9.1.0","@typescript-eslint/eslint-plugin":"5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-advanced-chat_2.1.0_1675944431253_0.14681077515224095","host":"s3://npm-registry-packages"}},"2.1.1":{"name":"@artesa/vue-advanced-chat","version":"2.1.1","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","_id":"@artesa/vue-advanced-chat@2.1.1","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"f.ashidian@gmail.com"}],"homepage":"https://github.com/antoine92190/vue-advanced-chat#readme","bugs":{"url":"https://github.com/antoine92190/vue-advanced-chat/issues"},"dist":{"shasum":"d5a04562c28cce95cf5c87f31b040e4a4330832d","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-2.1.1.tgz","fileCount":6,"integrity":"sha512-mKV88ykwloIjmHiTwPwrwYDe+EuS7n9bvFOPALkjr5RxkBOL9GQePHkhqjBIvhAqbYd4BznO0LeHmITNSVcjtQ==","signatures":[{"sig":"MEYCIQC65hraZnX6/J5mS8Hw39jAUt0PT8EEeO+IZr4zzMJ6OQIhAPgQgP7+HvI3jeW5YULpsgKAJ5CuO/JstkVSPUgZXKea","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1439592,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5OMhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvOBAAklJYt7f4Qh6lLI0ZjJUbuF44WnxjUamj21bpcMprtTLh0bGt\r\nNOVhlIThCt1javx+5N069NJyrUCtKV7UzwiCkPHCOhq+t6vTg08rbUQFF0uC\r\nFtmmEozhLuv19fcouWGm+1MC9iJKgXGgaH/fC8+nAOMvy70nDjzFJuQrSjTr\r\n44keM/qC/WQg/i3wnRVLqNeNyoM7epuoQNLs628R575utiF5mIirq/j6r93Q\r\nzIAJ/u6db+FHQis3IkqR6lJMrGbhfQOckGbHfaTReJvwCZixdsyKm+nwbFLq\r\n+QUKkEN4Qfb92QbDRGlK42ixzDoY5K8ip2/zl4f++9O7bHvQOtUexu9nCbyb\r\n4fjPx58wGxAgKTbc3YNcC54GpxH5UAiKIyyIsuKgo7dKOwF2tvsiZDupNI5q\r\nk4jAX1Hm8qVYJ48e3SWzuTl490CbMkQw08jEiBkkXQ/58F/auNsAuN4yRmdL\r\nDynVzY31QEGEUXJv+0LhFLbvJh+uo0O6WDS3rY5EjFttFGrgADM5P++7W1PN\r\nzQnRmQjb9Ixl0YrhorRgjyn1Jm+FiJNQ0QSRegWmA1Ayz2/o57ZiSIFgbQGU\r\nEaNi1RC1c3MdEtH7GeFLBdWD6Bvyq+iT12jbfDCRNjL6sYzGcdoS9MYttcRw\r\nDrvIj++IqNkm+5Mup2HFOUixwgnXT7tNEFQ=\r\n=92rG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/vue-advanced-chat.umd.js","_from":"file:artesa-vue-advanced-chat-2.1.1.tgz","types":"./types/vue-advanced-chat.common.d.ts","unpkg":"./dist/vue-advanced-chat.umd.js","module":"./dist/vue-advanced-chat.es.js","scripts":{"dev":"vite","lint":"eslint --ext .js,.vue --ignore-path .gitignore --fix src","build":"vite build","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","serve":"vite preview","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html","reset-all":"cd demo && npm run reset-all","prepublish":"npm run lint && npm run build","pull-master":"git pull origin master --no-edit --no-ff"},"typings":"types/index.d.ts","_npmUser":{"name":"thenoim","email":"nilsbergmann@noim.io"},"jsdelivr":"./dist/vue-advanced-chat.umd.js","_resolved":"/private/var/folders/25/0p81lyv54hg8ljfh48v1rtfr0000gn/T/be4146596afef0a122cdc1175a3d9371/artesa-vue-advanced-chat-2.1.1.tgz","_integrity":"sha512-mKV88ykwloIjmHiTwPwrwYDe+EuS7n9bvFOPALkjr5RxkBOL9GQePHkhqjBIvhAqbYd4BznO0LeHmITNSVcjtQ==","repository":{"url":"git+https://github.com/antoine92190/vue-advanced-chat.git","type":"git"},"_npmVersion":"8.19.2","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","directories":{},"_nodeVersion":"18.12.1","dependencies":{"linkifyjs":"2.1.9","emoji-picker-element":"1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"3.2.37","sass":"1.56.1","vite":"2.9.14","eslint":"7.32.0","node-sass":"8.0.0","typescript":"4.6.x","vue-loader":"^16.8.3","@babel/core":"7.12.16","babel-eslint":"10.0.3","@vue/compiler-sfc":"3.2.22","eslint-plugin-vue":"8.0.3","@vitejs/plugin-vue":"1.10.2","@typescript-eslint/parser":"5.4.0","@vue/eslint-config-standard":"4.0.0","@vue/eslint-config-typescript":"9.1.0","@typescript-eslint/eslint-plugin":"5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-advanced-chat_2.1.1_1675944737697_0.19193139977720874","host":"s3://npm-registry-packages"}},"2.1.2":{"name":"@artesa/vue-advanced-chat","version":"2.1.2","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","_id":"@artesa/vue-advanced-chat@2.1.2","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"f.ashidian@gmail.com"}],"homepage":"https://github.com/antoine92190/vue-advanced-chat#readme","bugs":{"url":"https://github.com/antoine92190/vue-advanced-chat/issues"},"dist":{"shasum":"88613b6712bea289c917bb672da1a8840821992c","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-2.1.2.tgz","fileCount":6,"integrity":"sha512-gugM6uM1+Lo9e3csXMUfyD+xFKCNUxHPMa+ffOJ9cYgzmoOulVIj2pZ0IamlNOeZJEehY84dMg7a5xy1t6HXbQ==","signatures":[{"sig":"MEYCIQCCvLrE/dOjiGCiDDMQkNhtFDWW75SnSAtT/b9FkFWLnwIhAIOKZpYSbaBUlhsf8yKSN0WsBH84jjN+HVfnEyTGEEBC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1439766,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5RimACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoGDg//ZvdM7ZmzDYCEhtsrccIFjZ/ap1CZDucbbP2v/oSIMW2Ovjud\r\nMKsCasj5PHA5pz9dAemYy2MIN1hqFb+yUzbPSXForKXbwvWbxqsHaEY97qd9\r\nHYdE8LIrufwltU1LCgcHtu39LtW4vQR9rXNjaeXDraHsWLgP+ho0ib3g8fxE\r\najwsMqtaexzu6xvseRI3SZRWy09amlij3NplR5Ev2db+jHLK895mYpoLJEYi\r\nr1lC90fgvBE335fGdggDndTYZ2CZLEd+kX4CdO+ptdRzeu3G976eKNPxtSBS\r\nXLXsX1HZU/LcnKgCTwffVyEy9X6Je/qpbJEaBguNORI9PZTKjiRf57UX/x17\r\n27cJekcpqqO6QMqLMihOmgV5X61nliem94rzYpSNejVNhebw/Z2IntEUD+3M\r\nOnDWRLlOuoW5cKUi062jgsGOOkdewCJH8DCOnQvhdL4EvoQdAXtlIAkBSNgb\r\nGF2np4Ski7CcpuRojKB2Wez+Sz5NBxPoKwSZxKhrEffAZQ65ZhlT5h1sl9mr\r\nKZFFqpsKxIPHhbaU9uRyXO8EYEqVt2r+fE4d3Z+tzj69x/aCk9AkLE73N8Fg\r\n4lCx85M2da2PYOhpKBBlLxbU2u8UvF4ECPcMh77np4N/b5FdVwJDw/MhlwKp\r\neO2Zs5TfniuRmX9vtyJNqHPnqKxrvCs5+JQ=\r\n=Y6fA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/vue-advanced-chat.umd.js","_from":"file:artesa-vue-advanced-chat-2.1.2.tgz","types":"./types/vue-advanced-chat.common.d.ts","unpkg":"./dist/vue-advanced-chat.umd.js","module":"./dist/vue-advanced-chat.es.js","scripts":{"dev":"vite","lint":"eslint --ext .js,.vue --ignore-path .gitignore --fix src","build":"vite build","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","serve":"vite preview","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html","reset-all":"cd demo && npm run reset-all","prepublish":"npm run lint && npm run build","pull-master":"git pull origin master --no-edit --no-ff"},"typings":"types/index.d.ts","_npmUser":{"name":"thenoim","email":"nilsbergmann@noim.io"},"jsdelivr":"./dist/vue-advanced-chat.umd.js","_resolved":"/private/var/folders/25/0p81lyv54hg8ljfh48v1rtfr0000gn/T/d788f6b70d1714e61c08422c26f5a326/artesa-vue-advanced-chat-2.1.2.tgz","_integrity":"sha512-gugM6uM1+Lo9e3csXMUfyD+xFKCNUxHPMa+ffOJ9cYgzmoOulVIj2pZ0IamlNOeZJEehY84dMg7a5xy1t6HXbQ==","repository":{"url":"git+https://github.com/antoine92190/vue-advanced-chat.git","type":"git"},"_npmVersion":"8.19.2","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","directories":{},"_nodeVersion":"18.12.1","dependencies":{"linkifyjs":"2.1.9","emoji-picker-element":"1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"3.2.37","sass":"1.56.1","vite":"2.9.14","eslint":"7.32.0","node-sass":"8.0.0","typescript":"4.6.x","vue-loader":"^16.8.3","@babel/core":"7.12.16","babel-eslint":"10.0.3","@vue/compiler-sfc":"3.2.22","eslint-plugin-vue":"8.0.3","@vitejs/plugin-vue":"1.10.2","@typescript-eslint/parser":"5.4.0","@vue/eslint-config-standard":"4.0.0","@vue/eslint-config-typescript":"9.1.0","@typescript-eslint/eslint-plugin":"5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-advanced-chat_2.1.2_1675958437920_0.7071200697661699","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"@artesa/vue-advanced-chat","version":"2.2.0","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","_id":"@artesa/vue-advanced-chat@2.2.0","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"f.ashidian@gmail.com"}],"homepage":"https://github.com/antoine92190/vue-advanced-chat#readme","bugs":{"url":"https://github.com/antoine92190/vue-advanced-chat/issues"},"dist":{"shasum":"f5536301eb3a64a579708cb83f443ed6c2ad25e0","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-2.2.0.tgz","fileCount":7,"integrity":"sha512-8YudOjeYrOFZuqTr0W5K2vOIJARYUimbQBeScwNsa82S5GJldUZtXbvzlQxCDx1VNYG0tBP4XG6QdYRgv17B/A==","signatures":[{"sig":"MEUCIQCGON+Kh3VD+JspaldW2CECtUz5ibJdPjYryih3LdJcUAIgSDfbr6UdRAQwm6OlnLo76kp/+zbsqT0G6aB/APKF1D0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1913916,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7fyRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqCvxAAl13t1UbmcpLdSv6eOCTW/qPZGMN5K69eFDylqoLpgUDnZTEQ\r\n6doXPMIsQ2qCoyEo8Ro0yaePSFnO8k90AqRvF651GzDvc2AsLJNhd2lDMkSk\r\n2lUbqxo46vnqOQeTOHBuuMn9U9oO661FNRk7GauwvUI32TcHJxlgzxiHBnSo\r\nxPWl3SYGX0sXKoDg3dybXbIgKlh90rTK1y8zOEToTCGR7DrmofuA4Lg+4RN5\r\nNe97zsAzDTp3KF4MSXScG5k374Rcv60JH34KjU2iJ0g2rycucafmYHdqX02z\r\n6Hf5jQRfrumIvosfEgX/JY490dK0CSnx2h/1PRPiYOK4GPXCzBc5s7Ucs6/o\r\nHsorWVFnHszEgbVqpD2cXznI4lX13NnBaAtazQG+BerKGJezUJxrS3mHW3K9\r\npWpjMyLTA5RtpywbDH3+i42lUKgeauU6dxshYcgzGfxcTa9fYNZdgESJC241\r\nvb4yJeNDk92l5J0qcTy1JZzGq4r8J9l8hWyep6AATP56vv+jfh/RGf/d4WcS\r\nS1GRzgYp9DCRgFRMMwC+mCbMOO1y4Tz+SCc0qHqxBFdlRhytFN2CUDu4Cgdt\r\nygDGSYJEtRdc7jfXUbUb9jsa/Zit3cgIgWuxTk5htJiSKNkWBGm0ki4/+lpf\r\nD0RHh0rnyybvZoVk8iC4qv9m7JmxQHRwfZo=\r\n=Mdtt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/vue-advanced-chat.umd.js","_from":"file:artesa-vue-advanced-chat-2.2.0.tgz","types":"./types/vue-advanced-chat.common.d.ts","unpkg":"./dist/vue-advanced-chat.umd.js","module":"./dist/vue-advanced-chat.es.js","scripts":{"dev":"vite","lint":"eslint --ext .js,.vue --ignore-path .gitignore --fix src","build":"vite build","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","serve":"vite preview","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html","reset-all":"cd demo && npm run reset-all","prepublish":"npm run lint && npm run build","pull-master":"git pull origin master --no-edit --no-ff"},"typings":"types/index.d.ts","_npmUser":{"name":"thenoim","email":"nilsbergmann@noim.io"},"jsdelivr":"./dist/vue-advanced-chat.umd.js","_resolved":"/private/var/folders/38/h_n6mssn5nngpdw6xpx5wd680000gn/T/dbf46b26859d0274b798f24e0ce87beb/artesa-vue-advanced-chat-2.2.0.tgz","_integrity":"sha512-8YudOjeYrOFZuqTr0W5K2vOIJARYUimbQBeScwNsa82S5GJldUZtXbvzlQxCDx1VNYG0tBP4XG6QdYRgv17B/A==","repository":{"url":"git+https://github.com/antoine92190/vue-advanced-chat.git","type":"git"},"_npmVersion":"9.4.0","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","directories":{},"_nodeVersion":"19.6.0","dependencies":{"linkifyjs":"2.1.9","emoji-picker-element":"1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"3.2.37","sass":"1.56.1","vite":"2.9.14","eslint":"7.32.0","node-sass":"8.0.0","typescript":"4.6.x","vue-loader":"^16.8.3","@babel/core":"7.12.16","babel-eslint":"10.0.3","@vue/compiler-sfc":"3.2.22","eslint-plugin-vue":"8.0.3","@vitejs/plugin-vue":"1.10.2","@typescript-eslint/parser":"5.4.0","@vue/eslint-config-standard":"4.0.0","@vue/eslint-config-typescript":"9.1.0","@typescript-eslint/eslint-plugin":"5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-advanced-chat_2.2.0_1676541072927_0.19925271614332707","host":"s3://npm-registry-packages"}},"2.3.0":{"name":"@artesa/vue-advanced-chat","version":"2.3.0","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","_id":"@artesa/vue-advanced-chat@2.3.0","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"f.ashidian@gmail.com"}],"homepage":"https://github.com/antoine92190/vue-advanced-chat#readme","bugs":{"url":"https://github.com/antoine92190/vue-advanced-chat/issues"},"dist":{"shasum":"47bdc40fc234fd05b49cd9693272175f50077ba3","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-2.3.0.tgz","fileCount":7,"integrity":"sha512-APo8asBeu4zXuBOvN6p/gEYf89CSpVaMtbpQ1LpjegDgM7291yVcCzw+fM4b/UYMFIqj1JfgwxKgD55cZHxM2g==","signatures":[{"sig":"MEUCIQCPHe39vxLMIIMsl+jcoVZG2skJp+/WaMeRty+sdSwkewIgfPJwoFNBhTRA06gTLrWs2dn1m9ReBLAmFMEmJ5cX3FM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1903976,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7gRLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq8/Q/7BVlIRvzZsRrAEfbyLeRXURHEELhiBJt7hSl6EdOLPUeoI28Z\r\nXOCa9jv7LOlecL2jY9eDrSvKYP3D/CiPW1c51iD2RYMUSVS2tbikvCCKMibv\r\nuT21EJ5rfR+lxBdADUqyXbwtxRjR59LjaH9JCQfH1aHNae1nVi5byl/RBuwL\r\ncPwwJgBYTr3RFlTiM8VAX0uOlIjj/EbTGkqHpZM8QmzVs1vYZ7a+50fV/vwp\r\n4kE+wzKCxkExK/eZZhHHovQTw/BhVEdWTtqzBer0R7p/FZqAvzdkPbt1OZOW\r\nVcz4D0TReowjaIxgVnbxdYDfhLOF/Fb40oZxGyvm68ATm2fbIgeBeFW7Y0jx\r\nzhSontR6QVbJCPq8yxBFLdHe2/jBuITK29b5o5eE3BgRzWBDTmEPUzdnI4J2\r\nn6KfPtQAxx6PgufV853iYSWbN4mMxEch6CWRFa3gFg+W8BHX0Xzaov/u3Uis\r\nOCzBWbs26i6yxC52s3ghISXvApy4rYO98LMQymbZCNooiprxitkPQgIqYme+\r\nkxvWqoeJJvatf9ferapUAUAcbRdacJzm5yfgYxvLV0/MJ9mCH6D2iqfdxrob\r\na37nLWqq8sUTWpJLu3DhLm9W5w+ufKs9svbpzwIPwhLo4gv137VcudFRVhDC\r\ncumVtKqMTvbvRx/npQ2Y8Ku7zaid7p4U6hU=\r\n=oomq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/vue-advanced-chat.umd.js","_from":"file:artesa-vue-advanced-chat-2.3.0.tgz","types":"./types/vue-advanced-chat.common.d.ts","unpkg":"./dist/vue-advanced-chat.umd.js","module":"./dist/vue-advanced-chat.es.js","scripts":{"dev":"vite","lint":"eslint --ext .js,.vue --ignore-path .gitignore --fix src","build":"vite build","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","serve":"vite preview","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html","reset-all":"cd demo && npm run reset-all","prepublish":"npm run lint && npm run build","pull-master":"git pull origin master --no-edit --no-ff"},"typings":"types/index.d.ts","_npmUser":{"name":"thenoim","email":"nilsbergmann@noim.io"},"jsdelivr":"./dist/vue-advanced-chat.umd.js","_resolved":"/private/var/folders/38/h_n6mssn5nngpdw6xpx5wd680000gn/T/65e71c3e40dbb4f7ab702e2c32d131a9/artesa-vue-advanced-chat-2.3.0.tgz","_integrity":"sha512-APo8asBeu4zXuBOvN6p/gEYf89CSpVaMtbpQ1LpjegDgM7291yVcCzw+fM4b/UYMFIqj1JfgwxKgD55cZHxM2g==","repository":{"url":"git+https://github.com/antoine92190/vue-advanced-chat.git","type":"git"},"_npmVersion":"9.4.0","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","directories":{},"_nodeVersion":"19.6.0","dependencies":{"linkifyjs":"2.1.9","emoji-picker-element":"1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"3.2.37","sass":"1.56.1","vite":"2.9.14","eslint":"7.32.0","node-sass":"8.0.0","typescript":"4.6.x","vue-loader":"^16.8.3","@babel/core":"7.12.16","babel-eslint":"10.0.3","@vue/compiler-sfc":"3.2.22","eslint-plugin-vue":"8.0.3","@vitejs/plugin-vue":"1.10.2","@typescript-eslint/parser":"5.4.0","@vue/eslint-config-standard":"4.0.0","@vue/eslint-config-typescript":"9.1.0","@typescript-eslint/eslint-plugin":"5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-advanced-chat_2.3.0_1676543051644_0.22536927552697783","host":"s3://npm-registry-packages"}},"2.4.0":{"name":"@artesa/vue-advanced-chat","version":"2.4.0","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","_id":"@artesa/vue-advanced-chat@2.4.0","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"f.ashidian@gmail.com"}],"homepage":"https://github.com/antoine92190/vue-advanced-chat#readme","bugs":{"url":"https://github.com/antoine92190/vue-advanced-chat/issues"},"dist":{"shasum":"a6e9cd12427be813656147ac20eeeb6cacf037a3","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-2.4.0.tgz","fileCount":7,"integrity":"sha512-zCTyWbCfdgz2Wl2LrrjR9Ha24AKhFWsiwuGPO3wJSvZRmP9hXJWNw/sB+PWgns8CWlGPmGaVwOURuHs/JiIm4w==","signatures":[{"sig":"MEUCICkiq5Eyru4K5GH+dK6L0ALVxSgEd7GfS3EIcLC9hNAlAiEA1hTF7+9R4bGceti48mL9toasN4Nyi88xe8JTqqhDgsQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1904638,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj92S3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpZARAAo7xjYB5ydZsLtdKCyyxEulsUs3gs4rsC/8PeX8sj5NPtfESq\r\naG9fHetig8WFa0ClCVQmHrc0+FAljl15iTvNzA4L4ovaAxaGl9Q2Qx57eiiC\r\nXGBqBgFpYDlxnFKXtewko0gLVbCwEV/GXfZD6k44OnLSfjfVaZG/O3Dl4lNf\r\n0omTAcks86cRL9k8mqGjfHiyk2KzR2HDPqCZg5lwyCpiO15yZri6J2/ohUJ6\r\nJS8tLvaHUHl94i/wAMexXHqXVZogrqvumJ9zPIxUUc2wPP/vZwZ9KdFT4iPP\r\n0JWzVLq6tOCysYrLl5sEb8PQ01fgbO497GTYezDz7hgmA4JYWsg5B6VmN1Nm\r\nvqZzb0gji5BIB5MOeCFBM+cbxfN3eUj/dRRp/wLi4ASb6UBnzXhzbaeQ9QxD\r\n9aPZp3Ut5yo2lA1Gz6kNeBZ0HNuVlzuUGESen/k4QFTFYByE0BYPwIPDUQLx\r\nnZ0ncpJV3D7YvzcuAl5LD6/hvIUIcEINg3+3vUiqDZ+6CRKRvom2Gq/uGWK0\r\nqk16ZgEHjYIKlv4+5hSZMx5uGYr2LZZcTao40XnXPzi6qPRvPob7z14pjYut\r\nDJ2EEbWLA+rvuRMjn/YglNW7oZpGh4NSCUCW6wlb7LYLw6VwZvRzp208JHiZ\r\n5nrbVd4rys0NIG21+l2o1gw4y6l1w0lWiTQ=\r\n=NY/D\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/vue-advanced-chat.umd.js","_from":"file:artesa-vue-advanced-chat-2.4.0.tgz","types":"./types/vue-advanced-chat.common.d.ts","unpkg":"./dist/vue-advanced-chat.umd.js","module":"./dist/vue-advanced-chat.es.js","scripts":{"dev":"vite","lint":"eslint --ext .js,.vue --ignore-path .gitignore --fix src","build":"vite build","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","serve":"vite preview","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html","reset-all":"cd demo && npm run reset-all","prepublish":"npm run lint && npm run build","pull-master":"git pull origin master --no-edit --no-ff"},"typings":"types/index.d.ts","_npmUser":{"name":"thenoim","email":"nilsbergmann@noim.io"},"jsdelivr":"./dist/vue-advanced-chat.umd.js","_resolved":"/private/var/folders/38/h_n6mssn5nngpdw6xpx5wd680000gn/T/ed66ed2ff0d3a9c55869d12f4448acc9/artesa-vue-advanced-chat-2.4.0.tgz","_integrity":"sha512-zCTyWbCfdgz2Wl2LrrjR9Ha24AKhFWsiwuGPO3wJSvZRmP9hXJWNw/sB+PWgns8CWlGPmGaVwOURuHs/JiIm4w==","repository":{"url":"git+https://github.com/antoine92190/vue-advanced-chat.git","type":"git"},"_npmVersion":"9.4.0","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","directories":{},"_nodeVersion":"19.6.1","dependencies":{"linkifyjs":"2.1.9","emoji-picker-element":"1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"3.2.37","sass":"1.56.1","vite":"2.9.14","eslint":"7.32.0","node-sass":"8.0.0","typescript":"4.6.x","vue-loader":"^16.8.3","@babel/core":"7.12.16","babel-eslint":"10.0.3","@vue/compiler-sfc":"3.2.22","eslint-plugin-vue":"8.0.3","@vitejs/plugin-vue":"1.10.2","@typescript-eslint/parser":"5.4.0","@vue/eslint-config-standard":"4.0.0","@vue/eslint-config-typescript":"9.1.0","@typescript-eslint/eslint-plugin":"5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-advanced-chat_2.4.0_1677157558984_0.9749670372429173","host":"s3://npm-registry-packages"}},"2.4.1":{"name":"@artesa/vue-advanced-chat","version":"2.4.1","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","_id":"@artesa/vue-advanced-chat@2.4.1","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"f.ashidian@gmail.com"}],"homepage":"https://github.com/antoine92190/vue-advanced-chat#readme","bugs":{"url":"https://github.com/antoine92190/vue-advanced-chat/issues"},"dist":{"shasum":"dce2644ae07771c190f948399dd07362a2a685ee","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-2.4.1.tgz","fileCount":7,"integrity":"sha512-6h7tbaEOdLM8NpvEAav+j0PAIxiLCxh265f0/zWHRO0ICZlt0L577F2aiWOMARnEIJbCRT4qRWoy9427s0uvkw==","signatures":[{"sig":"MEQCIDTtC7smwMnfKWNYPnTN2NoB06yRkWuKHkNlRvU2FipgAiByZw4H5UPpgjVaYmTV+hKehu+KQWvXJWCqcba67nCzrw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1980859,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj934nACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoDchAAnJ1fVTylSNKRoeguxzaOFJopFMeMnA3elBoB23QOlzGmlXpu\r\nHoE8ZfI9EscVgGIG2cdYGW0f/kMVOl28o2/SpiRTgFoiTpr2vPHj/tzQvLbN\r\nZjqI890YI4QczFM8CtC6/Ej533csI5/zLFVhK8jQp8KbW2+Im6LN/MGhRxYx\r\n46OZteNFyePVzLiUWBs9OiJmh04mO5WU+5WMeMDYj3RAcQCk5Cq65qhJzfHQ\r\nk1OngGYAsJsRTGs+885OBfdjdJ9e0cfhCjCq56rVF1ESTqkpTosHkXqKewg+\r\n0hsdJmOqok2QLDC+cgpECZF1wH2t6d3lF/lwegkDNVNwG4/gWLjD6SbAInbw\r\nIQe2YdRKnyRtMvoMJAVUfG28zVQHUY8TaR9PD1Ra7tx7s+EMzLT7kD3BT4Ex\r\n5Jnn+V7MqKnxw5rsm0A2GIFk+lhyC9YsmOZrRaAsHoHvP5YuVJ0A08Z90r/r\r\nbGfh1gak3F8ByH3tni+b9NN9Lyoa5nz5Y3f7ZcEBre8gWJN/nhZPFzbne+1W\r\nFFggdUyPBeb4ENhVg9fSbNjWk2aFUNiYnFK8+x0cdWoub/BvXELX4+QUvfiP\r\nEjfAe9kO0IcIqS6K5OLMIHYX6AMekVxQDeHgIN4W4wmBfbkKk8MyYY9DgGtE\r\nv6kPihAU4lewKL4fW2ogCpJIpLP7IPeFZYA=\r\n=FZTq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/vue-advanced-chat.umd.js","_from":"file:artesa-vue-advanced-chat-2.4.1.tgz","types":"./types/vue-advanced-chat.common.d.ts","unpkg":"./dist/vue-advanced-chat.umd.js","module":"./dist/vue-advanced-chat.es.js","scripts":{"dev":"vite","lint":"eslint --ext .js,.vue --ignore-path .gitignore --fix src","build":"vite build","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","serve":"vite preview","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html","reset-all":"cd demo && npm run reset-all","prepublish":"npm run lint && npm run build","pull-master":"git pull origin master --no-edit --no-ff"},"typings":"types/index.d.ts","_npmUser":{"name":"thenoim","email":"nilsbergmann@noim.io"},"jsdelivr":"./dist/vue-advanced-chat.umd.js","_resolved":"/private/var/folders/38/h_n6mssn5nngpdw6xpx5wd680000gn/T/a6698d9c6c6577e22f899495187585fc/artesa-vue-advanced-chat-2.4.1.tgz","_integrity":"sha512-6h7tbaEOdLM8NpvEAav+j0PAIxiLCxh265f0/zWHRO0ICZlt0L577F2aiWOMARnEIJbCRT4qRWoy9427s0uvkw==","repository":{"url":"git+https://github.com/antoine92190/vue-advanced-chat.git","type":"git"},"_npmVersion":"9.4.0","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","directories":{},"_nodeVersion":"19.6.1","dependencies":{"linkifyjs":"2.1.9","@vueuse/core":"^9.13.0","@vueuse/components":"^9.13.0","emoji-picker-element":"1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"3.2.37","sass":"1.56.1","vite":"2.9.14","eslint":"7.32.0","node-sass":"8.0.0","typescript":"4.6.x","vue-loader":"^16.8.3","@babel/core":"7.12.16","babel-eslint":"10.0.3","@vue/compiler-sfc":"3.2.22","eslint-plugin-vue":"8.0.3","@vitejs/plugin-vue":"1.10.2","@typescript-eslint/parser":"5.4.0","@vue/eslint-config-standard":"4.0.0","@vue/eslint-config-typescript":"9.1.0","@typescript-eslint/eslint-plugin":"5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-advanced-chat_2.4.1_1677164071088_0.8602027605300748","host":"s3://npm-registry-packages"}},"2.4.2":{"name":"@artesa/vue-advanced-chat","version":"2.4.2","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","_id":"@artesa/vue-advanced-chat@2.4.2","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"f.ashidian@gmail.com"}],"homepage":"https://github.com/antoine92190/vue-advanced-chat#readme","bugs":{"url":"https://github.com/antoine92190/vue-advanced-chat/issues"},"dist":{"shasum":"742f5d8bf604470e1ce818368f9fd614a3f68da8","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-2.4.2.tgz","fileCount":7,"integrity":"sha512-W6GsIIt7JzMkFGqWemfUNaAwLwuaVSy8nrKxFYabFX3ZSQigq1LyAoSDIDq6qASL1D7y3mrIE+pmOHrXhVfzXw==","signatures":[{"sig":"MEUCIHBYesT9mMoPfuKhHMMCLWUkJO1PQ/XP0yJHxcOWW0v7AiEAkGpuOtgxIqfo8Rwk/C/+n96FOxqQ+hXobt1iWug2Qy0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1980871},"main":"./dist/vue-advanced-chat.umd.js","_from":"file:artesa-vue-advanced-chat-2.4.2.tgz","types":"./types/vue-advanced-chat.common.d.ts","unpkg":"./dist/vue-advanced-chat.umd.js","module":"./dist/vue-advanced-chat.es.js","scripts":{"dev":"vite","lint":"eslint --ext .js,.vue --ignore-path .gitignore --fix src","build":"vite build","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","serve":"vite preview","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html","reset-all":"cd demo && npm run reset-all","prepublish":"npm run lint && npm run build","pull-master":"git pull origin master --no-edit --no-ff"},"typings":"types/index.d.ts","_npmUser":{"name":"fratzinger","email":"f.ashidian@gmail.com"},"jsdelivr":"./dist/vue-advanced-chat.umd.js","_resolved":"/private/var/folders/p3/xprx4gnj0zl_5csd5czz4bw80000gn/T/d744e1685f402164968d8e760f93581d/artesa-vue-advanced-chat-2.4.2.tgz","_integrity":"sha512-W6GsIIt7JzMkFGqWemfUNaAwLwuaVSy8nrKxFYabFX3ZSQigq1LyAoSDIDq6qASL1D7y3mrIE+pmOHrXhVfzXw==","repository":{"url":"git+https://github.com/antoine92190/vue-advanced-chat.git","type":"git"},"_npmVersion":"10.8.0","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","directories":{},"_nodeVersion":"20.8.0","dependencies":{"linkifyjs":"2.1.9","@vueuse/core":"^9.13.0","@vueuse/components":"^9.13.0","emoji-picker-element":"1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"3.2.37","sass":"1.56.1","vite":"2.9.14","eslint":"7.32.0","node-sass":"8.0.0","typescript":"4.6.x","vue-loader":"^16.8.3","@babel/core":"7.12.16","babel-eslint":"10.0.3","@vue/compiler-sfc":"3.2.22","eslint-plugin-vue":"8.0.3","@vitejs/plugin-vue":"1.10.2","@typescript-eslint/parser":"5.4.0","@vue/eslint-config-standard":"4.0.0","@vue/eslint-config-typescript":"9.1.0","@typescript-eslint/eslint-plugin":"5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-advanced-chat_2.4.2_1716455633280_0.7178837404621752","host":"s3://npm-registry-packages"}},"2.5.0":{"name":"@artesa/vue-advanced-chat","version":"2.5.0","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","_id":"@artesa/vue-advanced-chat@2.5.0","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"f.ashidian@gmail.com"}],"homepage":"https://github.com/advanced-chat/vue-advanced-chat#readme","bugs":{"url":"https://github.com/advanced-chat/vue-advanced-chat/issues"},"dist":{"shasum":"1824372b7eb94d93138864c29e7fcbf4b35ee8de","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-2.5.0.tgz","fileCount":6,"integrity":"sha512-vULSzYRdxSrEwjnAycOwMz0eNh46NZjd6tUB5uN4IrJamVolPgsliUuyPKI3f0SGVrVH4+On1e5U4xFcaVfcWQ==","signatures":[{"sig":"MEUCIQDLCaOFPCQILs+imQU2ZchxCgoVHkjwqRj25dceFLxxWAIgY9iIYisHgWuq5bwjj4ArFCHD2dr5W2XvysBMn/jXKHg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1458489},"main":"./dist/vue-advanced-chat.umd.js","_from":"file:artesa-vue-advanced-chat-2.5.0.tgz","types":"./types/vue-advanced-chat.common.d.ts","unpkg":"./dist/vue-advanced-chat.umd.js","module":"./dist/vue-advanced-chat.es.js","scripts":{"dev":"vite","lint":"eslint --ext .js,.vue --ignore-path .gitignore --fix src","build":"vite build","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","serve":"vite preview","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html","reset-all":"cd demo && npm run reset-all","prepublish":"npm run lint && npm run build","pull-master":"git pull origin master --no-edit --no-ff"},"typings":"types/index.d.ts","_npmUser":{"name":"fratzinger","email":"f.ashidian@gmail.com"},"jsdelivr":"./dist/vue-advanced-chat.umd.js","_resolved":"/private/var/folders/p3/xprx4gnj0zl_5csd5czz4bw80000gn/T/c876dbce37a1341ef728de506bcc7c14/artesa-vue-advanced-chat-2.5.0.tgz","_integrity":"sha512-vULSzYRdxSrEwjnAycOwMz0eNh46NZjd6tUB5uN4IrJamVolPgsliUuyPKI3f0SGVrVH4+On1e5U4xFcaVfcWQ==","repository":{"url":"git+https://github.com/advanced-chat/vue-advanced-chat.git","type":"git"},"_npmVersion":"10.8.1","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","directories":{},"_nodeVersion":"20.8.0","dependencies":{"micromark":"^3.1.0","@vueuse/core":"^12.8.2","@vueuse/components":"^12.8.2","emoji-picker-element":"1.12.1","micromark-extension-gfm":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"3.5.13","sass":"1.85.1","vite":"6.2.0","eslint":"7.32.0","node-sass":"8.0.0","typescript":"5.8.x","vue-loader":"^17.4.2","@babel/core":"7.12.16","babel-eslint":"10.0.3","semantic-release":"^22.0.5","@vue/compiler-sfc":"3.2.22","eslint-plugin-vue":"8.0.3","@vitejs/plugin-vue":"1.10.2","@semantic-release/git":"^10.0.1","@semantic-release/github":"^9.2.1","@typescript-eslint/parser":"5.4.0","@semantic-release/changelog":"^6.0.3","@vue/eslint-config-standard":"4.0.0","@vue/eslint-config-typescript":"9.1.0","@typescript-eslint/eslint-plugin":"5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-advanced-chat_2.5.0_1741254189139_0.9636390548190739","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"@artesa/vue-advanced-chat","version":"2.5.1","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","_id":"@artesa/vue-advanced-chat@2.5.1","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"f.ashidian@gmail.com"}],"homepage":"https://github.com/advanced-chat/vue-advanced-chat#readme","bugs":{"url":"https://github.com/advanced-chat/vue-advanced-chat/issues"},"dist":{"shasum":"aabeda9659a9e1213d6656fd095ad97e021c1e63","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-2.5.1.tgz","fileCount":6,"integrity":"sha512-rz7jcl7nkx6CFNwfElcF9RXSfMN5k8JDLWYrvaboKlEf1JnCwgKGfmZs0+oknjTT7FNKWTAU6Ui8TC7I8Y7qJw==","signatures":[{"sig":"MEUCIFO46DoAF+OaC5NeV6I2ZXNkvcWiYItMCtDwDX+sZrgcAiEA76FSjQqH7J/Kf8WR3E8EL7Ai00Y/yAT0ujqZM6eSHkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1458519},"main":"./dist/vue-advanced-chat.umd.js","_from":"file:artesa-vue-advanced-chat-2.5.1.tgz","types":"./types/vue-advanced-chat.common.d.ts","unpkg":"./dist/vue-advanced-chat.umd.js","module":"./dist/vue-advanced-chat.mjs","scripts":{"dev":"vite","lint":"eslint --ext .js,.vue --ignore-path .gitignore --fix src","build":"vite build","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","serve":"vite preview","version":"npm run build","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html","reset-all":"cd demo && npm run reset-all","prepublish":"npm run lint && npm run build","pull-master":"git pull origin master --no-edit --no-ff"},"typings":"types/index.d.ts","_npmUser":{"name":"fratzinger","email":"f.ashidian@gmail.com"},"jsdelivr":"./dist/vue-advanced-chat.umd.js","_resolved":"/private/var/folders/p3/xprx4gnj0zl_5csd5czz4bw80000gn/T/24c5168b7b4efa8b6f1b6784a186edfc/artesa-vue-advanced-chat-2.5.1.tgz","_integrity":"sha512-rz7jcl7nkx6CFNwfElcF9RXSfMN5k8JDLWYrvaboKlEf1JnCwgKGfmZs0+oknjTT7FNKWTAU6Ui8TC7I8Y7qJw==","repository":{"url":"git+https://github.com/advanced-chat/vue-advanced-chat.git","type":"git"},"_npmVersion":"10.8.1","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","directories":{},"_nodeVersion":"20.8.0","dependencies":{"micromark":"^3.1.0","@vueuse/core":"^12.8.2","@vueuse/components":"^12.8.2","emoji-picker-element":"1.12.1","micromark-extension-gfm":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"3.5.13","sass":"1.85.1","vite":"6.2.0","eslint":"7.32.0","node-sass":"8.0.0","typescript":"5.8.x","vue-loader":"^17.4.2","@babel/core":"7.12.16","babel-eslint":"10.0.3","semantic-release":"^22.0.5","@vue/compiler-sfc":"3.2.22","eslint-plugin-vue":"8.0.3","@vitejs/plugin-vue":"1.10.2","@semantic-release/git":"^10.0.1","@semantic-release/github":"^9.2.1","@typescript-eslint/parser":"5.4.0","@semantic-release/changelog":"^6.0.3","@vue/eslint-config-standard":"4.0.0","@vue/eslint-config-typescript":"9.1.0","@typescript-eslint/eslint-plugin":"5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-advanced-chat_2.5.1_1741295831581_0.2264914283150714","host":"s3://npm-registry-packages-npm-production"}},"2.5.2":{"name":"@artesa/vue-advanced-chat","version":"2.5.2","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","_id":"@artesa/vue-advanced-chat@2.5.2","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"f.ashidian@gmail.com"}],"homepage":"https://github.com/advanced-chat/vue-advanced-chat#readme","bugs":{"url":"https://github.com/advanced-chat/vue-advanced-chat/issues"},"dist":{"shasum":"e8f66a6828ec23e59e9b18f71f07f03b9f754ce6","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-2.5.2.tgz","fileCount":6,"integrity":"sha512-w9IncqZL0pU+BoEPkyJo0aHXqcaqRXkWjxl/AcFcg5i5jTLPQque7/nB22Y2cFE6krujZejKxCp9qJCRqJ89zg==","signatures":[{"sig":"MEQCIGaf1Lg2YbzuxpUmFU+XVR0kMl+ijbzeEkIJPyTUpveGAiB4Wfe9ZWGAnICAlBDSktAfiCwEad2RmipG58JrkO9BGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1458501},"main":"./dist/vue-advanced-chat.umd.js","_from":"file:artesa-vue-advanced-chat-2.5.2.tgz","types":"./types/vue-advanced-chat.common.d.ts","unpkg":"./dist/vue-advanced-chat.umd.js","module":"./dist/vue-advanced-chat.mjs","scripts":{"dev":"vite","lint":"eslint --ext .js,.vue --ignore-path .gitignore --fix src","build":"vite build","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","serve":"vite preview","version":"npm run build","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html","reset-all":"cd demo && npm run reset-all","prepublish":"npm run lint && npm run build","pull-master":"git pull origin master --no-edit --no-ff"},"typings":"types/index.d.ts","_npmUser":{"name":"fratzinger","email":"f.ashidian@gmail.com"},"jsdelivr":"./dist/vue-advanced-chat.umd.js","_resolved":"/private/var/folders/p3/xprx4gnj0zl_5csd5czz4bw80000gn/T/1b7ba7d075b8b39803f24ab02d0825fa/artesa-vue-advanced-chat-2.5.2.tgz","_integrity":"sha512-w9IncqZL0pU+BoEPkyJo0aHXqcaqRXkWjxl/AcFcg5i5jTLPQque7/nB22Y2cFE6krujZejKxCp9qJCRqJ89zg==","repository":{"url":"git+https://github.com/advanced-chat/vue-advanced-chat.git","type":"git"},"_npmVersion":"10.9.2","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","directories":{},"_nodeVersion":"22.14.0","dependencies":{"micromark":"^3.1.0","@vueuse/core":"^12.8.2","@vueuse/components":"^12.8.2","emoji-picker-element":"1.12.1","micromark-extension-gfm":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"3.5.13","sass":"1.85.1","vite":"6.2.0","eslint":"7.32.0","typescript":"5.8.x","vue-loader":"^17.4.2","@babel/core":"7.12.16","babel-eslint":"10.0.3","semantic-release":"^22.0.5","@vue/compiler-sfc":"3.2.22","eslint-plugin-vue":"8.0.3","@vitejs/plugin-vue":"1.10.2","@semantic-release/git":"^10.0.1","@semantic-release/github":"^9.2.1","@typescript-eslint/parser":"5.4.0","@semantic-release/changelog":"^6.0.3","@vue/eslint-config-standard":"4.0.0","@vue/eslint-config-typescript":"9.1.0","@typescript-eslint/eslint-plugin":"5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-advanced-chat_2.5.2_1742476626615_0.8555158800459552","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@artesa/vue-advanced-chat","version":"3.0.0","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","_id":"@artesa/vue-advanced-chat@3.0.0","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"frederik.schmatz@gmail.com"}],"homepage":"https://github.com/artesa/vue-advanced-chat#readme","bugs":{"url":"https://github.com/artesa/vue-advanced-chat/issues"},"dist":{"shasum":"c2e78121e3ebd817d88f2df97a48b2af01b1421e","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-3.0.0.tgz","fileCount":100,"integrity":"sha512-nRwJHQO5PvzB8Ll4ijiuwC/NL2pM1BKc0BYo0x2oxevrPYzDbntYFBwgK9oYLMeeaJalP3DzbvhlY4kk9VptUg==","signatures":[{"sig":"MEYCIQDfaOoIAAgdINMNApTFMIKElNqm890wbCo4UJPMxU1UpQIhAOIry0dWbNZTh52fe1iJUb8CK9tzjbxxlfAd0Kx6MmOv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":584713},"main":"./dist/vue-advanced-chat.js","type":"module","_from":"file:artesa-vue-advanced-chat-3.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/vue-advanced-chat.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-advanced-chat.js"},"./ce":{"types":"./dist/ce/index.ce.d.ts","import":"./dist/ce/vue-advanced-chat.js"},"./style.css":"./dist/style.css"},"scripts":{"dev":"vite","lint":"eslint","test":"vitest run","build":"vite build && vite build --config vite.config.ce.js","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","serve":"vite preview","version":"npm run build","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html && rm -rf dist/ce","reset-all":"cd demo && npm run reset-all","typecheck":"vue-tsc --noEmit","pull-master":"git pull origin master --no-edit --no-ff","test:update":"vitest run --update"},"_npmUser":{"name":"fratzinger","email":"frederik.schmatz@gmail.com"},"_resolved":"/private/var/folders/p3/xprx4gnj0zl_5csd5czz4bw80000gn/T/d62ca008c4566062aa5c7e88ac609994/artesa-vue-advanced-chat-3.0.0.tgz","_integrity":"sha512-nRwJHQO5PvzB8Ll4ijiuwC/NL2pM1BKc0BYo0x2oxevrPYzDbntYFBwgK9oYLMeeaJalP3DzbvhlY4kk9VptUg==","repository":{"url":"git+https://github.com/artesa/vue-advanced-chat.git","type":"git"},"_npmVersion":"10.9.2","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","directories":{},"_nodeVersion":"22.14.0","dependencies":{"micromark":"^3.1.0","@vueuse/core":"^14.2.1","@vueuse/components":"^14.2.1","emoji-picker-element":"1.29.1","micromark-extension-gfm":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.29","sass":"1.97.3","vite":"^7.3.1","eslint":"^9.22.0","vitest":"^4.0.18","vue-tsc":"^3.2.5","playwright":"^1.58.2","typescript":"5.9.3","@vitest/browser":"^4.0.18","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"6.0.4","vitest-browser-vue":"^2.0.2","@antfu/eslint-config":"^4.13.2","@vitest/browser-playwright":"^4.0.18"},"peerDependencies":{"vue":"^3.5.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-advanced-chat_3.0.0_1772482882520_0.718260383263174","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@artesa/vue-advanced-chat","version":"3.0.1","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","_id":"@artesa/vue-advanced-chat@3.0.1","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"frederik.schmatz@gmail.com"}],"homepage":"https://github.com/artesa/vue-advanced-chat#readme","bugs":{"url":"https://github.com/artesa/vue-advanced-chat/issues"},"dist":{"shasum":"e5a3e8664c1d1faf407f137514a9cd389b0ad753","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-3.0.1.tgz","fileCount":100,"integrity":"sha512-8oAqhgjCZp0pKATDXOO7/8A+VNTfDacgVab/cGqZPattBkAew7XEMDi8TY+eHVHFMcqMPsZJnn7JqG/K6v+cFA==","signatures":[{"sig":"MEYCIQDP/jgeB41qosrs6w/E434LQ8BhTUDp2EC6DtZEYbBjOgIhAOMlBNdHmihU9fg8064g97vsq/qOCUARum8pPWbJlj1V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":584719},"main":"./dist/vue-advanced-chat.js","type":"module","_from":"file:artesa-vue-advanced-chat-3.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/vue-advanced-chat.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-advanced-chat.js"},"./ce":{"types":"./dist/ce/index.ce.d.ts","import":"./dist/ce/vue-advanced-chat.js"},"./style.css":"./dist/style.css"},"scripts":{"dev":"vite","lint":"eslint","test":"vitest run","build":"vite build && vite build --config vite.config.ce.js","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","serve":"vite preview","version":"npm run build","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html && rm -rf dist/ce","reset-all":"cd demo && npm run reset-all","typecheck":"vue-tsc --noEmit","pull-master":"git pull origin master --no-edit --no-ff","test:update":"vitest run --update"},"_npmUser":{"name":"fratzinger","email":"frederik.schmatz@gmail.com"},"_resolved":"/private/var/folders/p3/xprx4gnj0zl_5csd5czz4bw80000gn/T/cf9d94b38c7922622e874c8208ef2185/artesa-vue-advanced-chat-3.0.1.tgz","_integrity":"sha512-8oAqhgjCZp0pKATDXOO7/8A+VNTfDacgVab/cGqZPattBkAew7XEMDi8TY+eHVHFMcqMPsZJnn7JqG/K6v+cFA==","repository":{"url":"git+https://github.com/artesa/vue-advanced-chat.git","type":"git"},"_npmVersion":"10.9.2","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","directories":{},"_nodeVersion":"22.14.0","dependencies":{"micromark":"^3.1.0","@vueuse/core":"^14.2.1","@vueuse/components":"^14.2.1","emoji-picker-element":"1.29.1","micromark-extension-gfm":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.29","sass":"1.97.3","vite":"^7.3.1","eslint":"^9.22.0","vitest":"^4.0.18","vue-tsc":"^3.2.5","playwright":"^1.58.2","typescript":"5.9.3","@vitest/browser":"^4.0.18","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"6.0.4","vitest-browser-vue":"^2.0.2","@antfu/eslint-config":"^4.13.2","@vitest/browser-playwright":"^4.0.18"},"peerDependencies":{"vue":"^3.5.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-advanced-chat_3.0.1_1772491465692_0.8919502469270386","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@artesa/vue-advanced-chat","version":"3.0.2","license":"MIT","description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"types":"./dist/index.d.ts","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"repository":{"type":"git","url":"git+https://github.com/artesa/vue-advanced-chat.git"},"bugs":{"url":"https://github.com/artesa/vue-advanced-chat/issues"},"homepage":"https://github.com/artesa/vue-advanced-chat#readme","type":"module","main":"./dist/vue-advanced-chat.js","module":"./dist/vue-advanced-chat.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue-advanced-chat.js"},"./ce":{"types":"./dist/ce/index.ce.d.ts","import":"./dist/ce/vue-advanced-chat.js"},"./style.css":"./dist/style.css"},"devDependencies":{"@antfu/eslint-config":"^4.13.2","@vitejs/plugin-vue":"6.0.4","@vitest/browser":"^4.0.18","@vitest/browser-playwright":"^4.0.18","eslint":"^9.22.0","playwright":"^1.58.2","sass":"1.97.3","typescript":"5.9.3","vite":"^7.3.1","vite-plugin-dts":"^4.5.4","vitest":"^4.0.18","vitest-browser-vue":"^2.0.2","vue":"^3.5.29","vue-tsc":"^3.2.5"},"peerDependencies":{"vue":"^3.5.0"},"dependencies":{"@vueuse/components":"^14.2.1","@vueuse/core":"^14.2.1","emoji-picker-element":"1.29.1","micromark":"^3.1.0","micromark-extension-gfm":"^2.0.1"},"scripts":{"dev":"vite","build":"vite build && vite build --config vite.config.ce.js","serve":"vite preview","clean:lib":"rm -rf dist/*.js && rm -rf dist/*.map && rm -rf dist/*.css && rm -rf dist/*.html && rm -rf dist/ce","version":"npm run build","typecheck":"vue-tsc --noEmit","lint":"eslint","reset":"rm -rf node_modules && rm -rf package-lock.json && npm i","reset-all":"cd demo && npm run reset-all","pull-master":"git pull origin master --no-edit --no-ff","test":"vitest run","test:update":"vitest run --update"},"_id":"@artesa/vue-advanced-chat@3.0.2","_integrity":"sha512-qWS8V2mR0sVkDjHHtpSm4SE0chy80ittTIw8q2UB/T/aIhyUmK7yfFg4KTPQOXHdBpWwj3DgiaW2Zvc3nleZLA==","_resolved":"/private/var/folders/p3/xprx4gnj0zl_5csd5czz4bw80000gn/T/a655668fe97c9117434e910ff0dad3fb/artesa-vue-advanced-chat-3.0.2.tgz","_from":"file:artesa-vue-advanced-chat-3.0.2.tgz","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-qWS8V2mR0sVkDjHHtpSm4SE0chy80ittTIw8q2UB/T/aIhyUmK7yfFg4KTPQOXHdBpWwj3DgiaW2Zvc3nleZLA==","shasum":"e62ff6625d34b880ac01b926f737efd82f1222f4","tarball":"https://registry.npmjs.org/@artesa/vue-advanced-chat/-/vue-advanced-chat-3.0.2.tgz","fileCount":100,"unpackedSize":584739,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCaKlKbOKfEeimYu0zoSeNWvcnwKuleCDGnoji8E041tQIgXvawXyqcrjotFfF5VkAt/NHs98hMgt6SAqGGPFJaKe0="}]},"_npmUser":{"name":"fratzinger","email":"frederik.schmatz@gmail.com"},"directories":{},"maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"frederik.schmatz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vue-advanced-chat_3.0.2_1773051075018_0.4843328003304397"},"_hasShrinkwrap":false}},"time":{"created":"2023-02-06T10:25:53.716Z","modified":"2026-03-09T10:11:15.314Z","2.0.7":"2023-02-06T10:25:54.072Z","2.0.8":"2023-02-06T11:54:18.814Z","2.1.0":"2023-02-09T12:07:11.507Z","2.1.1":"2023-02-09T12:12:17.964Z","2.1.2":"2023-02-09T16:00:38.232Z","2.2.0":"2023-02-16T09:51:13.122Z","2.3.0":"2023-02-16T10:24:11.910Z","2.4.0":"2023-02-23T13:05:59.243Z","2.4.1":"2023-02-23T14:54:31.468Z","2.4.2":"2024-05-23T09:13:53.567Z","2.5.0":"2025-03-06T09:43:09.398Z","2.5.1":"2025-03-06T21:17:11.825Z","2.5.2":"2025-03-20T13:17:06.941Z","3.0.0":"2026-03-02T20:21:22.735Z","3.0.1":"2026-03-02T22:44:25.867Z","3.0.2":"2026-03-09T10:11:15.175Z"},"bugs":{"url":"https://github.com/artesa/vue-advanced-chat/issues"},"author":{"name":"Antoine Dupont","email":"antoindupontdev@gmail.com"},"license":"MIT","homepage":"https://github.com/artesa/vue-advanced-chat#readme","keywords":["vue","vuejs","chat","vue-js-chat","multiple","group","rooms","realtime"],"repository":{"type":"git","url":"git+https://github.com/artesa/vue-advanced-chat.git"},"description":"A beautiful chat rooms component made with Vue.js - compatible with Vue, React & Angular","maintainers":[{"name":"thenoim","email":"nilsbergmann@noim.io"},{"name":"fratzinger","email":"frederik.schmatz@gmail.com"}],"readme":"<p align=\"center\">\n  <a href=\"https://github.com/advanced-chat/vue-advanced-chat/actions/workflows/release.yml\"><img src=\"https://img.shields.io/github/actions/workflow/status/advanced-chat/vue-advanced-chat/release.yml?branch=main\"></a>\n  <a href=\"https://www.npmjs.com/package/vue-advanced-chat\"><img src=\"https://img.shields.io/npm/dm/vue-advanced-chat.svg\"></a>\n  <a href=\"https://www.npmjs.com/package/vue-advanced-chat\"><img src=\"https://img.shields.io/bundlephobia/minzip/vue-advanced-chat\"></a>\n  <a href=\"https://www.npmjs.com/package/vue-advanced-chat\"><img src=\"https://img.shields.io/npm/v/vue-advanced-chat.svg\"></a>\n  <a href=\"https://www.npmjs.com/package/vue-advanced-chat\"><img src=\"https://img.shields.io/npm/l/vue-advanced-chat.svg\"></a>\n</p>\n\n# vue-advanced-chat\n\n![Demo Image](demo/src/assets/web_mobile.png)\n\n## Sponsors\n\n<div align=\"center\">\n  <a target=\"_blank\" href=\"https://chatkitty.com\">\n    <img alt=\"ChatKitty sponsor\" src=\"demo/src/assets/sponsors/chatkitty.png\" width=\"220\">\n  </a>\n  <div>Easy to use <a target=\"_blank\" href=\"https://chatkitty.com\">chat API/Server</a> with scalable infrastructure</div>\n</div>\n\n## Features\n\n- Compatible with all Javascript frameworks (Vue, Angular, React, etc.) or no framework at all\n- Customizeable realtime chat messaging\n- Backend agnostic\n- Images, videos, files, voice messages & emojis\n- Edit messages & reply to other messages\n- Tag users & emojis shortcut suggestions\n- UI elements for seen, new, deleted, typing and system messages\n- Text formatting - bold, italic, strikethrough, underline, code, multiline\n- Online / Offline users status\n- Flexible options and slots\n- Light and dark theme modes\n- Firestore example\n- Typescript, PWA, Web Component support\n\n## [Demo](https://advanced-chat.github.io/vue-advanced-chat)\n\nEnjoy :smile:\n\n## [Real World Example](https://vue-advanced-chat-app.netlify.app/)\n\nA Progressive Web Application showcasing all the features of `vue-advanced-chat` component.<br>\nBuilt with Firestore, Vuetify, and Push Notifications.\n\nIf you wish to get premium access to the real world example source code, please contact me by email.\n\nYou will get a fully working chat application for web and mobile:\n\n- UI and backend integration\n- Email, Facebook and Google authentication\n- Real-time messaging, browser push notifications, images optimization (Firebase Cloud Functions to compress avatars)\n- UI/UX components for alerts (errors, information), dialogs, etc.\n- Add existing users to a room using their email\n- Send email invitations to non-existing users\n- Edition of profile and rooms\n- Addition and deletion of room users\n- Optimised firestore implementation to reduce bandwidth and costs as much as possible\n- State management using vuex\n- Internationalisation (i18n)\n- Google Analytics\n- Support to help you get the chat up and running\n\n<br>\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#example)\n- [Props API](#props-api)\n- [Props data structure](#props-data-structure)\n- [Events API](#events-api)\n- [Named Slots](#named-slots)\n- [Using with Firestore](#using-with-firestore)\n\n<br>\n\n## Installation\n\n```bash\n# Using npm\nnpm install --save vue-advanced-chat\n\n# Using yarn\nyarn add vue-advanced-chat\n\n# Using CDN\n<script src=\"https://cdn.jsdelivr.net/npm/vue-advanced-chat@2.0.4/dist/vue-advanced-chat.umd.js\"></script>\n```\n\n### Vue\n\nRegister `vue-advanced-chat` and `emoji-picker` as web components in your [config file](https://vuejs.org/guide/extras/web-components.html#example-vite-config):\n\n```javascript\ncompilerOptions: {\n  isCustomElement: tagName => {\n    return tagName === 'vue-advanced-chat' || tagName === 'emoji-picker'\n  }\n}\n```\n\nDemo: https://github.com/advanced-chat/vue-advanced-chat-sandbox/tree/main\n\n### React\n\nDemo: https://github.com/advanced-chat/vue-advanced-chat-sandbox/tree/react\n\n### Angular / Ionic\n\nDemo: https://github.com/advanced-chat/vue-advanced-chat-sandbox/tree/angular\n\n<br>\n\n## Usage\n\n#### You can import it as a custom component:\n\n```javascript\n<template>\n  <vue-advanced-chat\n    :current-user-id=\"currentUserId\"\n    :rooms=\"JSON.stringify(rooms)\"\n    :messages=\"JSON.stringify(messages)\"\n    :room-actions=\"JSON.stringify(roomActions)\"\n  />\n</template>\n\n<script>\n  import { register } from 'vue-advanced-chat'\n  register()\n\n  // Or if you used CDN import\n  // window['vue-advanced-chat'].register()\n\n  export default {\n    data() {\n      return {\n        currentUserId: '1234',\n        rooms: [],\n        messages: [],\n        roomActions: [\n          { name: 'inviteUser', title: 'Invite User' },\n          { name: 'removeUser', title: 'Remove User' },\n          { name: 'deleteRoom', title: 'Delete Room' }\n        ]\n      }\n    }\n  }\n</script>\n```\n\n### Important notes\n\n`vue-advanced-chat` component is performance oriented, hence you have to follow specific rules to make it work properly.\n\n- Use array assignement instead of `push` method\n\n```javascript\n// DO THIS\nconst rooms = []\nfor (let i = 0; i < res.length; i++) {\n  rooms.push(res)\n}\nthis.rooms = rooms\n\n// DON'T DO THIS\nfor (let i = 0; i < res.length; i++) {\n  this.rooms.push(res)\n}\n```\n\n```javascript\n// DO THIS\nthis.rooms[i].typingUsers = [...this.rooms[i].typingUsers, typingUserId]\n\n// DON'T DO THIS\nthis.rooms[i].typingUsers.push(typingUserId)\n```\n\n- To add or replace an item inside an array, use spread operator\n\n```javascript\n// DO THIS\nthis.rooms[roomIndex] = room\nthis.rooms = [...this.rooms]\n\n// DON'T DO THIS\nthis.rooms[roomIndex] = room\n\n// AND DON'T DO THIS\nthis.rooms.push(room)\n```\n\n- Follow the UI loading pattern by updating `messagesLoaded` prop every time a new room is fetched\n\n```javascript\nfetchMessages({ room, options }) {\n  this.messagesLoaded = false\n\n  // use timeout to imitate async server fetched data\n  setTimeout(() => {\n    this.messages = []\n    this.messagesLoaded = true\n  })\n}\n```\n\n<br>\n\n## Props API\n\n### Important notes\n\nIf you are using Vue 3, you can pass Array and Object props normally: [Passing DOM Properties in Vue 3](https://vuejs.org/guide/extras/web-components.html#passing-dom-properties)\n<br>\nOtherwise, you need to pass those props as strings. For example: `[messages]=\"JSON.stringify(messages)\"`\n\n| <div style=\"width:230px\">Prop</div> | Type             | Required | Default                                                                                                           |\n| ----------------------------------- | ---------------- | -------- | ----------------------------------------------------------------------------------------------------------------- |\n| `height`                            | String           | -        | `600px`                                                                                                           |\n| `current-user-id`(1)                | String           | `true`   | -                                                                                                                 |\n| `rooms`                             | [String, Array]  | -        | `[]`                                                                                                              |\n| `rooms-order`                       | `desc` / `asc`   | -        | `desc`                                                                                                            |\n| `loading-rooms`(2)                  | Boolean          | -        | `false`                                                                                                           |\n| `rooms-loaded`(3)                   | Boolean          | -        | `false`                                                                                                           |\n| `room-id`(4)                        | String           | -        | `null`                                                                                                            |\n| `load-first-room`(5)                | Boolean          | -        | `true`                                                                                                            |\n| `rooms-list-opened`                 | Boolean          | -        | `true`                                                                                                            |\n| `custom-search-room-enabled` (6)    | Boolean          | -        | `false`                                                                                                           |\n| `messages`                          | [String, Array]  | -        | `[]`                                                                                                              |\n| `room-message`(7)                   | String           | -        | `null`                                                                                                            |\n| `username-options` (8)              | [String, Object] | -        | `{minUsers: 3, currentUser: false}`                                                                               |\n| `messages-loaded`(9)                | Boolean          | -        | `false`                                                                                                           |\n| `room-actions`(10)                  | [String, Array]  | -        | `[]`                                                                                                              |\n| `menu-actions`(11)                  | [String, Array]  | -        | `[]`                                                                                                              |\n| `message-actions`(12)               | [String, Array]  | -        | (11)                                                                                                              |\n| `message-selection-actions`(13)     | [String, Array]  | -        | (13)                                                                                                              |\n| `templates-text`(14)                | [String, Array]  | -        | `null`                                                                                                            |\n| `auto-scroll`(15)                   | [String, Object] | -        | `{ send: { new: true, newAfterScrollUp: true }, receive: { new: true, newAfterScrollUp: false } }`                |\n| `show-search`                       | Boolean          | -        | `true`                                                                                                            |\n| `show-add-room`                     | Boolean          | -        | `true`                                                                                                            |\n| `show-send-icon`                    | Boolean          | -        | `true`                                                                                                            |\n| `show-files`                        | Boolean          | -        | `true`                                                                                                            |\n| `show-audio`                        | Boolean          | -        | `true`                                                                                                            |\n| `audio-bit-rate`                    | Number           | -        | `128`                                                                                                             |\n| `audio-sample-rate`                 | Number           | -        | `44100`                                                                                                           |\n| `show-emojis`                       | Boolean          | -        | `true`                                                                                                            |\n| `show-reaction-emojis`              | Boolean          | -        | `true`                                                                                                            |\n| `show-new-messages-divider`(16)     | Boolean          | -        | `true`                                                                                                            |\n| `show-footer`(17)                   | Boolean          | -        | `true`                                                                                                            |\n| `text-messages`(18)                 | [String, Object] | -        | `null`                                                                                                            |\n| `text-formatting`(19)               | [String, Object] | -        | ` {disabled: false, italic: '_', bold: '*', strike: '~', underline: '°', multilineCode: '```', inlineCode: ' `'}` |\n| `link-options`(20)                  | [String, Object] | -        | `{ disabled: false, target: '_blank', rel: null }`                                                                |\n| `room-info-enabled` (21)            | Boolean          | -        | `false`                                                                                                           |\n| `textarea-action-enabled`(22)       | Boolean          | -        | `false`                                                                                                           |\n| `textarea-auto-focus`               | Boolean          | -        | `true`                                                                                                            |\n| `user-tags-enabled`                 | Boolean          | -        | `true`                                                                                                            |\n| `emojis-suggestion-enabled`         | Boolean          | -        | `true`                                                                                                            |\n| `media-preview-enabled`             | Boolean          | -        | `true`                                                                                                            |\n| `responsive-breakpoint`(23)         | Number           | -        | `900`                                                                                                             |\n| `single-room`(24)                   | Boolean          | -        | `false`                                                                                                           |\n| `scroll-distance`(25)               | Number           | -        | `60`                                                                                                              |\n| `theme`(26)                         | `light` / `dark` | -        | `light`                                                                                                           |\n| `accepted-files`(27)                | String           | -        | `*`                                                                                                               |\n| `capture-files`(28)                 | String           | -        | `''`                                                                                                              |\n| `multiple-files`(29)                 | Boolean           | -        | `true`                                                                                                              |\n| `styles`(30)                        | [String, Object] | -        | (26)                                                                                                              |\n| `show-audio`(31)                        | Boolean | -        | `true`                                                                                                              |\n| `emoji-data-source`                 | String           | -        | `https://cdn.jsdelivr.net/npm/emoji-picker-element-data@%5E1/en/emojibase/data.json`                              |\n\n**(1)** `current-user-id` is required to display UI and trigger actions according to the user using the chat (ex: messages position on the right, etc.)\n\n**(2)** `loading-rooms` can be used to show/hide a spinner icon while rooms are loading\n\n**(3)** `rooms-loaded` must be set to `true` when all rooms have been loaded. Meaning the user cannot scroll to load more paginated rooms\n\n**(4)** `room-id` can be used to load a specific room at any time\n\n**(5)** `load-first-room` can be used to remove the default behaviour of opening the first room at initialization\n\n**(6)** `custom-search-room-enabled` can be used to use the [search-room](#events-api) event to call your own method to filter out rooms\n\n**(7)** `room-message` can be used to add a default textarea value\n\n**(8)** `username-options` can be used to show/hide room messages username according to the minimum number of users `minUsers` inside a room, and if the message user is the current user `currentUser`\n\n**(9)** `messages-loaded` must be set to `true` when all messages of a conversation have been loaded. Meaning the user cannot scroll on top to load more paginated messages\n\n**(10)** `room-actions` can be used to display your own buttons when clicking the dropdown icon of each room inside the rooms list.<br>\nYou can then use the [room-action-handler](#events-api) event to call your own action after clicking a button. Ex:\n\n```javascript\nroom-actions=\"[\n  {\n    name: 'archiveRoom',\n    title: 'Archive Room'\n  }\n]\"\n```\n\n**(11)** `menu-actions` can be used to display your own buttons when clicking the vertical dots icon inside a room.<br>\nYou can then use the [menu-action-handler](#events-api) event to call your own action after clicking a button. Ex:\n\n```javascript\nmenu-actions=\"[\n  {\n    name: 'inviteUser',\n    title: 'Invite User'\n  },\n  {\n    name: 'removeUser',\n    title: 'Remove User'\n  },\n  {\n    name: 'deleteRoom',\n    title: 'Delete Room'\n  }\n]\"\n```\n\n**(12)** `message-actions` can be used to display your own buttons when clicking the dropdown icon inside a message.<br>\nYou can then use the [message-action-handler](#events-api) event to call your own action after clicking a button. Ex:\n\n```javascript\nmessage-actions=\"[\n  {\n    name: 'addMessageToFavorite',\n    title: 'Add To Favorite'\n  },\n  {\n    name: 'shareMessage',\n    title: 'Share Message'\n  }\n]\"\n```\n\nYou can use built-in `message-actions` names to trigger specific UI modifications when clicked.<br>\nCurrently, `replyMessage`, `editMessage` and `deleteMessage` action names are available.<br>\nIf `messageActions` is not set, it will use the default values below.<br>\nIf you don't want to display this `messageActions` menu, you can pass it an empty array.\n\n```javascript\nmessageActions=\"[\n  {\n    name: 'replyMessage',\n    title: 'Reply'\n  },\n  {\n    name: 'editMessage',\n    title: 'Edit Message',\n    onlyMe: true\n  },\n  {\n    name: 'deleteMessage',\n    title: 'Delete Message',\n    onlyMe: true\n  },\n  {\n    name: 'selectMessages',\n    title: 'Select'\n  }\n]\"\n```\n\n**(13)** `message-selection-actions` is related to the above `selectMessages` message action. You can use it to display custom action buttons in the room header when selecting a message. Ex:\n\n```\nmessageActions=\"[\n  {\n    name: 'deleteMessages',\n    title: 'Delete'\n  },\n  {\n    name: 'forwardMessages',\n    title: 'Forward'\n  }\n]\"\n```\n\n**(14)** `templates-text` can be used to add autocomplete templates text when typing `/` in the room textarea. Ex:\n\n```javascript\ntemplatesText=\"[\n  {\n    tag: 'help',\n    text: 'This is the help'\n  },\n  {\n    tag: 'action',\n    text: 'This is the action'\n  }\n]\"\n```\n\n**(15)** `auto-scroll` can be used to change the auto scroll behaviour when sending/receiving a message. Ex:\n\n```javascript\nauto-scroll=\"{\n  send: {\n    new: true, // will scroll down after sending a message\n    newAfterScrollUp: false // will not scroll down after sending a message when scrolled up\n  },\n  receive: {\n    new: false, // will not scroll down when receiving a message\n    newAfterScrollUp: true // will scroll down when receiving a message when scrolled up\n  }\n}\"\n```\n\n**(16)** `show-new-messages-divider` can be used to show/hide the blue line divider between seen and unseen messages.\n\n**(17)** `show-footer` can be used to hide the room footer. For example to prevent users to send any message or media.\n\n**(18)** `text-messages` can be used to replace default i18n texts. Ex:\n\n```javascript\ntext-messages=\"{\n  ROOMS_EMPTY: 'Aucune conversation',\n  ROOM_EMPTY: 'Aucune conversation sélectionnée',\n  NEW_MESSAGES: 'Nouveaux messages',\n  MESSAGE_DELETED: 'Ce message a été supprimé',\n  MESSAGES_EMPTY: 'Aucun message',\n  CONVERSATION_STARTED: 'La conversation a commencée le :',\n  TYPE_MESSAGE: 'Tapez votre message',\n  SEARCH: 'Rechercher',\n  IS_ONLINE: 'est en ligne',\n  LAST_SEEN: 'dernière connexion ',\n  IS_TYPING: 'est en train de taper...',\n  CANCEL_SELECT_MESSAGE: 'Annuler Sélection'\n}\"\n```\n\n**(19)** `text-formatting` can be used to add text formatting. Bold, italic, strikethrough, underline, inline code and multiline code formatting are currently available and can be used in conjonction.\n\n- You can disable text formatting by passing the prop `:text-formatting=\"{disabled: true}\"`.\n- You can change markdown characters, for example: `:text-formatting=\"{italic: '^'}\"`\n- You can disable a specific markdown character, for example: `:text-formatting=\"{bold: null}\"`\n\n| Style             | Syntax          | Example                                | Output                                 |\n| ----------------- | --------------- | -------------------------------------- | -------------------------------------- |\n| Bold              | `* *`           | `*This is bold text*`                  | **This is bold text**                  |\n| Italic            | `_ _`           | `_This text is italicized_`            | _This text is italicized_              |\n| Strikethrough     | `~ ~`           | `~This was mistaken text~`             | ~~This was mistaken text~~             |\n| Underline         | `° °`           | `°This text is underlined°`            | <ins>This text is underlined</ins>     |\n| Nested formatting | `* *` and `_ _` | `*This text is _extremely_ important*` | **This text is _extremely_ important** |\n\n**Inline Code**\n\nExample: \\`This is inline code\\`\n\nOutput: `This is inline code`\n\n**Multiline Code**\n\nExample: \\```This is multiline code\\```\n\nOutput:\n\n```bash\nThis is\nmultiline code\n```\n\n**(20)** `link-options` can be used to disable url links in messages, or change urls target. Ex:\n\n```javascript\n:link-options=\"{ disabled: true, target: '_self', rel: null }\"\n```\n\n**(21)** `room-info-enabled` can be used to trigger an event after clicking the room header component.<br>\nYou can then use the [room-info](#events-api) event to call your own action after clicking the header.\n\n**(22)** `textarea-action-enabled` can be used to add an extra icon on the right of the textarea<br>\nYou can then use the [textarea-action-handler](#events-api) event to call your own action after clicking the icon.\n\n**(23)** `responsive-breakpoint` can be used to collapse the rooms list on the left when then viewport size goes below the specified width.\n\n**(24)** `single-room` can be used if you never want to show the rooms list on the left. You still need to pass the `rooms` prop as an array with a single element.\n\n**(25)** `scroll-distance` can be used to change the number of pixels before `fetchMessages` event is triggered when scrolling up to load more messages, or `fetchMoreRooms` event is triggered when scrolling down to load more rooms.\n\n**(26)** `theme` can be used to change the chat theme. Currently, only `light` and `dark` are available.\n\n**(27)** `accepted-files` can be used to set specifics file types allowed in chat. By default, all file types are allowed: `\"*\"`.\n\nExample: set `accepted-files=\"image/png, image/jpeg, application/pdf\"` to allow `JPG` `PNG` and `PDF` files only\n\n**(28)** `capture-files` can be used to enable direct capturing of photos and videos on mobile browsers, as opposed to just uploading existing photos and videos which are already on the device. See [here](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/capture) for more information and recognized values. By default, the attribute is omitted and mobile browsers will only offer the gallery to choose photos and videos. Note: this only affects file attachments. Audio messages are always recorded using the device's microphone.\n\n**(29)** `multiple-files` can be used to define whether multiple file selections will be accepted. By default this is true.\n\n**(30)** `styles` can be used to customize your own theme. You can find the full list [here](src/themes/index.js)\n\n**(31)** `show-audio` can be used to enable or disable audio icon \n\n```javascript\nstyles=\"{\n  general: {\n    color: '#0a0a0a',\n    colorSpinner: '#333',\n    borderStyle: '1px solid #e1e4e8'\n  },\n\n  footer: {\n    background: '#f8f9fa',\n    backgroundReply: 'rgba(0, 0, 0, 0.08)'\n  },\n\n  icons: {\n    search: '#9ca6af'\n  }\n}\"\n```\n\n## Props data structure\n\nYour props must follow a specific structure to display rooms and messages correctly:\n\n### Rooms prop\n\n```javascript\nrooms=\"[\n  {\n    roomId: '1',\n    roomName: 'Room 1',\n    avatar: 'assets/imgs/people.png',\n    unreadCount: 4,\n    index: 3,\n    lastMessage: {\n      _id: 'xyz',\n      content: 'Last message received',\n      senderId: '1234',\n      username: 'John Doe',\n      timestamp: '10:20',\n      saved: true,\n      distributed: false,\n      seen: false,\n      new: true\n    },\n    users: [\n      {\n        _id: '1234',\n        username: 'John Doe',\n        avatar: 'assets/imgs/doe.png',\n        status: {\n          state: 'online',\n          lastChanged: 'today, 14:30'\n        }\n      },\n      {\n        _id: '4321',\n        username: 'John Snow',\n        avatar: 'assets/imgs/snow.png',\n        status: {\n          state: 'offline',\n          lastChanged: '14 July, 20:00'\n        }\n      }\n    ],\n    typingUsers: [ 4321 ]\n  }\n]\"\n```\n\n- If you add the `index` property, your rooms will be ordered using this value.\n  `index` can be any sortable value, like a `string`, `datetime`, `timestamp`, etc.\n\n- For each room user, you can add the `status` property, which can hold the `state` and `lastChanged` properties:\n\n  - `state` can be `'online'` or `'offline'`\n  - `lastChanged` is the date when `state` was last modified.\n\n- `typingUsers` is an array of all the users who are currently writing a message\n\n### Messages prop\n\nMessage objects are rendered differently depending on their type. Text, emoji, image, video and file types are supported.<br><br>\nEach message object has a `senderId` field which holds the id of the corresponding agent. If `senderId` matches the `currentUserId` prop, specific UI and actions will be implemented.<br><br>\nNotes:\n\n- `username` will be displayed on each message of corresponding agents if at least 3 users are in the room\n- `system` is used to show messages with a specific centered display\n- `indexId` can be used if you need to change a message ID that is already displayed in a room, this preventing an animation glitch. For example, when you don't know in advance the message ID your backend will create.\n\nMessage states:\n\n- `saved: true` one checkmark\n- `distributed: true` two checkmarks\n- `seen: true` two blue checkmarks\n- `deleted: true` grey background with deleted message text\n- `failure: true` red clickable failure icon\n\n```javascript\nmessages=\"[\n  {\n    _id: '7890',\n    indexId: 12092,\n    content: 'Message 1',\n    senderId: '1234',\n    username: 'John Doe',\n    avatar: 'assets/imgs/doe.png',\n    date: '13 November',\n    timestamp: '10:20',\n    system: false,\n    saved: true,\n    distributed: true,\n    seen: true,\n    deleted: false,\n    failure: true,\n    disableActions: false,\n    disableReactions: false,\n    files: [\n      {\n        name: 'My File',\n        size: 67351,\n        type: 'png',\n        audio: true,\n        duration: 14.4,\n        url: 'https://firebasestorage.googleapis.com/...',\n        preview: 'data:image/png;base64,iVBORw0KGgoAA...',\n        progress: 88\n      }\n    ],\n    reactions: {\n      😁: [\n        '1234', // USER_ID\n        '4321'\n      ],\n      🥰: [\n        '1234'\n      ]\n    },\n    replyMessage: {\n      content: 'Reply Message',\n      senderId: '4321',\n      files: [\n        {\n          name: 'My Replied File',\n          size: 67351,\n          type: 'png',\n          audio: true,\n          duration: 14.4,\n          url: 'https://firebasestorage.googleapis.com/...',\n          preview: 'data:image/png;base64,iVBORw0KGgoAA...'\n        }\n      ]\n    },\n  }\n]\"\n```\n\n<br>\n\n## Events API\n\n| <div style=\"width:230px\">Event</div>  | Params                                                                     | Fires when a user                               |\n| ------------------------------------- | -------------------------------------------------------------------------- | ----------------------------------------------- |\n| `fetch-messages`(1)                   | `{ room, options }`                                                        | Scrolled on top to load more messages           |\n| `fetch-more-rooms`(2)                 | -                                                                          | Scrolled to load more rooms                     |\n| `send-message`                        | `{ roomId, content, files(11), replyMessage(12), usersTag }`               | Sent a message                                  |\n| `edit-message`                        | `{ roomId, messageId, newContent, files(11), replyMessage(12) ,usersTag }` | Edited a message                                |\n| `delete-message`                      | `{ roomId, message }`                                                      | Deleted a message                               |\n| `open-file`                           | `{ message, file }`                                                        | Clicked to view or download a file              |\n| `open-user-tag`(3)                    | `{ user }`                                                                 | Clicked on a user tag inside a message          |\n| `open-failed-message`                 | `{ roomId, message }`                                                      | Clicked on the failure icon next to a message   |\n| `add-room`                            | -                                                                          | Clicked on the plus icon next to searchbar      |\n| `search-room`(4)                      | `{ roomId, value }`                                                        | Typed a character in the room search input      |\n| `room-action-handler`(5)              | `{ roomId, action }`                                                       | Clicked on the vertical dots icon inside a room |\n| `menu-action-handler`(6)              | `{ roomId, action }`                                                       | Clicked on the vertical dots icon inside a room |\n| `message-action-handler`(7)           | `{ roomId, action, message }`                                              | Clicked on the dropdown icon inside a message   |\n| `message-selection-action-handler`(8) | `{ roomId, action, messages }`                                             | Clicked on the select button inside a message   |\n| `send-message-reaction`               | `{ roomId, messageId, reaction, remove }`                                  | Clicked on the emoji icon inside a message      |\n| `room-info` (9)                       | `room`                                                                     | Clicked the room header bar                     |\n| `toggle-rooms-list`                   | `{ opened }`                                                               | Clicked on the toggle icon inside a room header |\n| `textarea-action-handler`(10)         | `{ roomId, message }`                                                      | Clicked on custom icon inside the footer        |\n| `typing-message`                      | `{ roomId, message }`                                                      | Started typing a message                        |\n\n**(1)** `fetch-messages` is triggered every time a room is opened. If the room is opened for the first time, the `options` param will hold `reset: true`.<br>\n**(1)** `fetch-messages` should be a method implementing a pagination system. Its purpose is to load older messages of a conversation when the user scroll on top.\n\n**(2)** `fetch-more-rooms` is triggered when scrolling down the rooms list, and should be a method implementing a pagination system.\n\n**(3)** `open-user-tag` is triggered when clicking a user tag inside a message. When creating a user tag by typing `@` in the footer textarea and sending the message, the tag will be identified with the below pattern:\n\n```javascript\n<usertag>TAGGED_USER_ID</usertag>\n```\n\nThis will make the tag clickable inside a message. Ex: [message tag content](#messages-collection-inside-a-room-document)<br>\n`send-message` and `edit-message` events will handle that pattern for you and pass it in the `content` param.\n\n**(4)** `room-action-handler` is the result of the [`room-actions`](#props-api) prop.<br>\nWhen clicking a button from your `room-actions` array, `room-action-handler` will give you the name of the button that was click.\nThen you can do anything you want with it. Ex:\n\n```javascript\nmenuActionHandler({ roomId, action }) {\n  switch (action.name) {\n    case 'archiveRoom':\n      // call a method to archive the room\n  }\n}\n```\n\n**(5)** `menu-action-handler` is the result of the [`menu-actions`](#props-api) prop.<br>\nWhen clicking a button from your `menu-actions` array, `menu-action-handler` will give you the name of the button that was click.\nThen you can do anything you want with it. Ex:\n\n```javascript\nmenuActionHandler({ roomId, action }) {\n  switch (action.name) {\n    case 'inviteUser':\n      // call a method to invite a user to the room\n    case 'removeUser':\n      // call a method to remove a user from the room\n    case 'deleteRoom':\n      // call a method to delete the room\n  }\n}\n```\n\n**(6)** `search-room` can be enabled by using [`custom-search-room-enabled`](#props-api) prop. This will allow you to call your own method to filter out searched rooms.\n\n**(7)** `message-action-handler` is the result of the [`message-actions`](#props-api) prop.<br>\nWhen clicking a button from your `message-actions` array, `message-action-handler` will give you the name of the button that was click and the corresponding message data.\nThen you can do anything you want with it. Ex:\n\n```javascript\nmessageActionHandler({ roomId, action, message }) {\n  switch (action.name) {\n    case 'addMessageToFavorite':\n      // call a method to add a message to the favorite list\n    case 'shareMessage':\n      // call a method to share the message with another user\n  }\n}\n```\n\n**(8)** `message-selection-action-handler` is the result of the [`message-selection-actions`](#props-api) prop.<br>\nWhen clicking a button from your `message-selection-actions` array, `message-selection-action-handler` will give you the name of the button that was click and the corresponding selected messages data.\nThen you can do anything you want with it. Ex:\n\n```javascript\nmessageSelectionActionHandler({ roomId, action, message }) {\n  switch (action.name) {\n    case 'deleteMessages':\n      // call a method to delete selected messaged\n    case 'shareMessage':\n      // call a method to share selected messaged with another user\n  }\n}\n```\n\n**(9)** `room-info` is the result of the [`room-info-enabled`](#props-api) prop.<br>\n\n**(10)** `textarea-action-handler` is the result of the [`textarea-action-enabled`](#props-api) prop.<br>\n\n**(11)** Array of files where each file contain: `{ blob, localUrl, name, size, type, extension }`\n\n**(12)** `replyMessage` object is available when the user replied to another message by clicking the corresponding icon, and contains the message information that was clicked.\n\n<br>\n\n## Named Slots\n\nExample:\n\n```javascript\n<vue-advanced-chat>\n  <div slot=\"room-header\">\n    This is a new room header\n  </div>\n\n  <div v-for=\"message in messages\" :slot=\"'message_' + message._id\">\n    <div v-if=\"message.system\">\n      System message: {{ message.content }}\n    </div>\n    <div v-else>\n      Normal message: {{ message.content }}\n    </div>\n  </div>\n\n  <div v-for=\"message in messages\" :slot=\"'message-avatar_' + message._id\">\n    New Avatar\n  </div>\n</vue-advanced-chat>\n```\n\n| <div style=\"width:230px\">Slot</div>         | Action                                                            |\n| ------------------------------------------- | ----------------------------------------------------------------- |\n| `custom-action-icon`                        | Add a custom icon inside the footer                               |\n| `rooms-header`                              | Add a template on top of rooms list (above the search bar)        |\n| `room-list-item_{{ROOM_ID}}`                | Replace the template of the room list items                       |\n| `room-list-info_{{ROOM_ID}}`                | Replace the info of room list items                               |\n| `room-list-avatar_{{ROOM_ID}}`              | Replace the avatar of room list items                             |\n| `room-list-options_{{ROOM_ID}}`             | Replace the template of the list room options                     |\n| `room-list-options-icon_{{ROOM_ID}}`        | Replace the room list options dropdown icon                       |\n| `rooms-header`                              | Replace the content above the search bar                          |\n| `rooms-list-search`                         | Replace the search bar                                            |\n| `room-header`                               | Replace the template of the room header                           |\n| `room-header-avatar`                        | Replace the template of the room header avatar                    |\n| `room-header-info`                          | Replace the template of the room header text                      |\n| `room-options`                              | Replace the template of the room options                          |\n| `message_{{MESSAGE_ID}}`                    | Replace the template of the message (and system message) box      |\n| `message-avatar_{{MESSAGE_ID}}`             | Replace the template of the message avatar                        |\n| `message-failure_{{MESSAGE_ID}}`            | Replace the message failure icon                                  |\n| `messages-empty`                            | Replace the empty message template                                |\n| `rooms-empty`                               | Replace the empty rooms template                                  |\n| `no-room-selected`                          | Replace the no room selected template                             |\n| `menu-icon`                                 | Replace the room menu icon                                        |\n| `toggle-icon`                               | Replace the toggle room list icon                                 |\n| `spinner-icon-rooms`                        | Replace the loading spinner icon in the rooms list                |\n| `spinner-icon-infinite-rooms`               | Replace the loading spinner icon to load more rooms               |\n| `spinner-icon-messages`                     | Replace the loading spinner icon in a room                        |\n| `spinner-icon-infinite-messages`            | Replace the loading spinner icon to load more messages            |\n| `spinner-icon-room-file`                    | Replace the loading spinner icon to load heavy files              |\n| `spinner-icon-message-file_{{MESSAGE_ID}}`  | Replace the loading spinner icon in a message containing an image |\n| `scroll-icon`                               | Replace the scroll to newest message icon                         |\n| `reply-close-icon`                          | Replace the reply close icon                                      |\n| `image-close-icon`                          | Replace the image close icon                                      |\n| `file-icon`                                 | Replace the file icon                                             |\n| `files-close-icon`                          | Replace the file close icon                                       |\n| `edit-close-icon`                           | Replace the edit close icon                                       |\n| `preview-close-icon`                        | Replace the media preview close icon                              |\n| `emoji-picker-icon`                         | Replace the emoji picker icon                                     |\n| `emoji-picker-reaction-icon_{{MESSAGE_ID}}` | Replace the emoji picker reaction icon (in the message box)       |\n| `paperclip-icon`                            | Replace the paperclip icon                                        |\n| `send-icon`                                 | Replace the message send icon                                     |\n| `eye-icon_{{MESSAGE_ID}}`                   | Replace the eye icon (image message)                              |\n| `document-icon_{{MESSAGE_ID}}`              | Replace the document icon                                         |\n| `pencil-icon_{{MESSAGE_ID}}`                | Replace the pencil icon                                           |\n| `checkmark-icon_{{MESSAGE_ID}}`             | Replace the checkmark icon of a message                           |\n| `checkmark-icon_{{ROOM_ID}}`                | Replace the checkmark icon of a message from the rooms list       |\n| `deleted-icon_{{MESSAGE_ID}}`               | Replace the deleted icon of a message                             |\n| `deleted-icon_{{ROOM_ID}}`                  | Replace the deleted icon of a message from the rooms list         |\n| `microphone-icon_{{ROOM_ID}}`               | Replace the microphone icon                                       |\n| `dropdown-icon_{{MESSAGE_ID}}`              | Replace the dropdown icon                                         |\n| `search-icon`                               | Replace the search icon                                           |\n| `add-icon`                                  | Replace the add room icon                                         |\n| `audio-stop-icon`                           | Replace the audio recorder stop icon                              |\n| `audio-check-icon`                          | Replace the audio recorder confirm icon                           |\n| `audio-pause-icon_{{MESSAGE_ID}}`           | Replace the message audio pause icon                              |\n| `audio-play-icon_{{MESSAGE_ID}}`            | Replace the message audio play icon                               |\n\n<br>\n\n## Using with Firestore\n\n### Source code\n\nYou can find the source code to implement a full featured chat app using Firebase/Firestore inside the `demo` folder.\n<br>\nTo test it using your own Firebase project:\n\n- Setup Cloud Firestore (to store users and rooms) and Realtime Database (to store users online status)\n- Clone this repository: `git clone https://github.com/advanced-chat/vue-advanced-chat.git`\n- Inside `demo/src/database/index.js` file, replace the line `const config = ...` by your own Firebase config\n- Go inside `demo` folder and run `npm run serve`\n\n### Data structure\n\nIf you decide to use the same code as in the `demo` folder to create your chat app, you need to have a specific Firestore data structure.<br>\nTo help you get started, I added in `demo/src/App.vue` a method `addData` to initialize some data on your Firestore database.\n\n#### Users collection\n\n```javascript\nusers: {\n  USER_ID_1: {\n    _id: '1',\n    username: 'User 1'\n  },\n  USER_ID_2: {\n    _id: '2',\n    username: 'User 2'\n  },\n  USER_ID_3: {\n    _id: '3',\n    username: 'User 2'\n  }\n}\n```\n\n#### Rooms collection\n\n```javascript\nchatRooms: {\n  ROOM_ID_1: {\n    users: ['1', '3']\n  },\n  ROOM_ID_2: {\n    users: ['1', '2', '3']\n  }\n}\n```\n\n#### Messages collection inside a room document\n\n```javascript\nmessages: {\n  MESSAGE_ID_1: {\n    content: 'My first message to <usertag>John</usertag>',\n    senderId: '2',\n    timestamp: 'December 11, 2019 at 4:00:00 PM',\n    seen: true\n  }\n}\n```\n\n#### Notes\n\n- You need to create a composite index to order rooms by last message received.\n  The easiest way to do it is to create a room, then click the error message url in the browser debugging console.\n\n<br>\n\n## [Contributing](https://github.com/advanced-chat/vue-advanced-chat/blob/master/.github/CONTRIBUTING.md)\n\nYour help is always appreciated :rocket:\n\n## License\n\nThis project is licensed under [MIT License](http://en.wikipedia.org/wiki/MIT_License)\n","readmeFilename":"README.md"}