@wppconnect/server 1.8.0 → 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"deviceController.js","names":["returnSucess","res","session","phone","data","status","json","response","message","contact","returnError","req","error","logger","log","setProfileName","name","body","result","client","showAllContacts","contacts","getAllContacts","getAllChats","mapper","e","getAllChatsWithMessages","getAllMessagesInChat","params","isGroup","includeMe","includeNotifications","query","contato","contactToArray","getAllNewMessages","getAllUnreadMessages","getChatById","allMessages","dir","fs","existsSync","mkdirSync","map","type","download","serverOptions","host","port","t","mime","extension","mimetype","getMessageById","messageId","chatId","user","getBatteryLevel","getHostDevice","phoneNumber","getWid","getPhoneNumber","getBlockList","blocked","split","deleteChat","results","deleteAllChats","chats","chat","clearChat","clearAllChats","archiveChat","value","archiveAllChats","deleteMessage","reactMessage","msgId","reaction","sendReactionToMessage","reply","text","messageid","forwardMessages","markUnseenMessage","blockContact","unblockContact","pinChat","state","setProfilePic","file","path","pathFile","unlinkAsync","getUnreadMessages","getChatIsOnline","getLastSeen","getListMutes","loadAndGetAllMessagesInChat","getMessages","count","direction","id","parseInt","toString","sendContactVcard","contactsId","sendMute","time","sendSeen","push","setChatState","chatstate","setTemporaryMessages","setTyping","startTyping","stopTyping","setRecording","duration","startRecording","stopRecoring","checkNumberStatus","getContact","getNumberProfile","getProfilePicFromServer","getStatus","setProfileStatus","rejectCall","callId","starMessage","star","getReactions","getVotes","chatWoot","clientsArray","isConnected","event","private","message_type","conversation","meta","sender","phone_number","replace","messages","attachments","base_url","config","baseURL","data_url","substring","indexOf","sendFile","content","sendText","console"],"sources":["../../src/controller/deviceController.js"],"sourcesContent":["/*\n * Copyright 2021 WPPConnect Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport fs from 'fs';\nimport { download } from './sessionController';\nimport { contactToArray, unlinkAsync } from '../util/functions';\nimport mime from 'mime-types';\nimport { clientsArray } from '../util/sessionUtil';\n\nfunction returnSucess(res, session, phone, data) {\n res.status(201).json({\n status: 'Success',\n response: {\n message: 'Information retrieved successfully.',\n contact: phone,\n session: session,\n data: data,\n },\n });\n}\n\nfunction returnError(req, res, session, error) {\n req.logger.error(error);\n res.status(400).json({\n status: 'Error',\n response: {\n message: 'Error retrieving information',\n session: session,\n log: error,\n },\n });\n}\n\nexport async function setProfileName(req, res) {\n const { name } = req.body;\n\n if (!name) return res.status(400).json({ status: 'error', message: 'Parameter name is required!' });\n\n try {\n const result = await req.client.setProfileName(name);\n return res.status(200).json({ status: 'success', response: result });\n } catch (error) {\n req.logger.error(error);\n res.status(500).json({ status: 'error', message: 'Error on set profile name.' });\n }\n}\n\nexport async function showAllContacts(req, res) {\n try {\n const contacts = await req.client.getAllContacts();\n res.status(200).json({ status: 'success', response: contacts });\n } catch (error) {\n req.logger.error(error);\n res.status(500).json({ status: 'error', message: 'Error fetching contacts' });\n }\n}\n\nexport async function getAllChats(req, res) {\n try {\n const response = await req.client.getAllChats();\n return res.status(200).json({ status: 'success', response: response, mapper: 'chat' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all chats' });\n }\n}\n\nexport async function getAllChatsWithMessages(req, res) {\n try {\n const response = await req.client.getAllChatsWithMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all chats whit messages' });\n }\n}\n/**\n * Depreciado em favor de getMessages\n */\nexport async function getAllMessagesInChat(req, res) {\n try {\n let { phone } = req.params;\n const { isGroup = false, includeMe = true, includeNotifications = true } = req.query;\n\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.getAllMessagesInChat(contato, includeMe, includeNotifications);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat' });\n }\n}\n\nexport async function getAllNewMessages(req, res) {\n try {\n const response = await req.client.getAllNewMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat' });\n }\n}\n\nexport async function getAllUnreadMessages(req, res) {\n try {\n const response = await req.client.getAllUnreadMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat' });\n }\n}\n\nexport async function getChatById(req, res) {\n const { phone } = req.params;\n const { isGroup } = req.query;\n\n try {\n let allMessages = {};\n\n if (isGroup) {\n allMessages = await req.client.getAllMessagesInChat(`${phone}@g.us`, true, true);\n } else {\n allMessages = await req.client.getAllMessagesInChat(`${phone}@c.us`, true, true);\n }\n\n let dir = './WhatsAppImages';\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir);\n }\n\n allMessages.map((message) => {\n if (message.type === 'sticker') {\n download(message, req.client, req.logger);\n message.body = `${req.serverOptions.host}:${req.serverOptions.port}/files/file${message.t}.${mime.extension(\n message.mimetype\n )}`;\n }\n });\n\n return res.status(200).json({ status: 'success', response: allMessages });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error changing chat by Id' });\n }\n}\n\nexport async function getMessageById(req, res) {\n const session = req.session;\n const { messageId } = req.params;\n\n try {\n let result;\n\n result = await req.client.getMessageById(messageId);\n\n returnSucess(res, session, result.chatId.user, result);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\n\nexport async function getBatteryLevel(req, res) {\n try {\n let response = await req.client.getBatteryLevel();\n return res.status(200).json({ status: 'Success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving battery status' });\n }\n}\n\nexport async function getHostDevice(req, res) {\n try {\n const response = await req.client.getHostDevice();\n const phoneNumber = await req.client.getWid();\n return res.status(200).json({ status: 'success', response: { ...response, phoneNumber }, mapper: 'device' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Erro ao recuperar dados do telefone' });\n }\n}\n\nexport async function getPhoneNumber(req, res) {\n try {\n const phoneNumber = await req.client.getWid();\n return res.status(200).json({ status: 'success', response: phoneNumber, mapper: 'device' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving phone number' });\n }\n}\n\nexport async function getBlockList(req, res) {\n let response = await req.client.getBlockList();\n\n try {\n const blocked = response.map((contato) => {\n return { phone: contato ? contato.split('@')[0] : '' };\n });\n\n return res.status(200).json({ status: 'success', response: blocked });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving blocked contact list' });\n }\n}\n\nexport async function deleteChat(req, res) {\n const { phone } = req.body;\n const session = req.session;\n\n try {\n let results = {};\n for (const contato of phone) {\n results[contato] = await req.client.deleteChat(contato);\n }\n returnSucess(res, session, phone, results);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\nexport async function deleteAllChats(req, res) {\n try {\n const chats = await req.client.getAllChats();\n for (const chat of chats) {\n await req.client.deleteChat(chat.chatId);\n }\n return res.status(200).json({ status: 'success' });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on delete all chats' });\n }\n}\n\nexport async function clearChat(req, res) {\n const { phone } = req.body;\n const session = req.session;\n\n try {\n let results = {};\n for (const contato of phone) {\n results[contato] = await req.client.clearChat(contato);\n }\n returnSucess(res, session, phone, results);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\n\nexport async function clearAllChats(req, res) {\n try {\n const chats = await req.client.getAllChats();\n for (const chat of chats) {\n await req.client.clearChat(`${chat.chatId}`);\n }\n return res.status(201).json({ status: 'success' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on clear all chats' });\n }\n}\n\nexport async function archiveChat(req, res) {\n const { phone, value = true } = req.body;\n\n try {\n let response;\n response = await req.client.archiveChat(`${phone}`, value);\n return res.status(201).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on archive chat' });\n }\n}\n\nexport async function archiveAllChats(req, res) {\n try {\n const chats = await req.client.getAllChats();\n for (const chat of chats) {\n await req.client.archiveChat(`${chat.chatId}`, true);\n }\n return res.status(201).json({ status: 'success' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on archive all chats' });\n }\n}\n\nexport async function deleteMessage(req, res) {\n const { phone, messageId } = req.body;\n\n try {\n await req.client.deleteMessage(`${phone}`, [messageId]);\n\n return res.status(200).json({ status: 'success', response: { message: 'Message deleted' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on delete message' });\n }\n}\nexport async function reactMessage(req, res) {\n const { msgId, reaction } = req.body;\n\n try {\n await req.client.sendReactionToMessage(msgId, reaction);\n\n return res.status(200).json({ status: 'success', response: { message: 'Reaction sended' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on send reaction to message' });\n }\n}\n\nexport async function reply(req, res) {\n const { phone, text, messageid } = req.body;\n\n try {\n let response = await req.client.reply(`${phone}@c.us`, text, messageid);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error replying message' });\n }\n}\n\nexport async function forwardMessages(req, res) {\n const { phone, messageId, isGroup = false } = req.body;\n\n try {\n let response;\n\n if (!isGroup) {\n response = await req.client.forwardMessages(`${phone}`, [messageId], false);\n } else {\n response = await req.client.forwardMessages(`${phone}`, [messageId], false);\n }\n\n return res.status(201).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error forwarding message' });\n }\n}\n\nexport async function markUnseenMessage(req, res) {\n const { phone } = req.body;\n\n try {\n await req.client.markUnseenMessage(`${phone}`);\n return res.status(200).json({ status: 'success', response: { message: 'unseen checked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on mark unseen' });\n }\n}\n\nexport async function blockContact(req, res) {\n const { phone } = req.body;\n\n try {\n await req.client.blockContact(`${phone}`);\n return res.status(200).json({ status: 'success', response: { message: 'Contact blocked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on block contact' });\n }\n}\n\nexport async function unblockContact(req, res) {\n const { phone } = req.body;\n\n try {\n await req.client.unblockContact(`${phone}`);\n return res.status(200).json({ status: 'success', response: { message: 'Contact UnBlocked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on unlock contact' });\n }\n}\n\nexport async function pinChat(req, res) {\n const { phone, state } = req.body;\n\n try {\n for (const contato of phone) {\n await req.client.pinChat(contato, state === 'true', false);\n }\n\n return res.status(200).json({ status: 'success', response: { message: 'Chat fixed' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: e.text || 'Error on pin chat' });\n }\n}\n\nexport async function setProfilePic(req, res) {\n if (!req.file) return res.status(400).json({ status: 'Error', message: 'File parameter is required!' });\n\n try {\n const { path: pathFile } = req.file;\n\n await req.client.setProfilePic(pathFile);\n await unlinkAsync(pathFile);\n\n return res.status(200).json({ status: 'success', response: { message: 'Profile photo successfully changed' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error changing profile photo' });\n }\n}\n\nexport async function getUnreadMessages(req, res) {\n try {\n const response = await req.client.getUnreadMessages(false, false, true);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', response: 'Error on open list' });\n }\n}\n\nexport async function getChatIsOnline(req, res) {\n const { phone } = req.params;\n try {\n const response = await req.client.getChatIsOnline(`${phone}@c.us`);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', response: 'Error on get chat is online' });\n }\n}\n\nexport async function getLastSeen(req, res) {\n const { phone } = req.params;\n try {\n const response = await req.client.getLastSeen(`${phone}@c.us`);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on get chat last seen' });\n }\n}\n\nexport async function getListMutes(req, res) {\n const { type = 'all' } = req.params;\n try {\n const response = await req.client.getListMutes(type);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on get list mutes' });\n }\n}\n\nexport async function loadAndGetAllMessagesInChat(req, res) {\n const { phone, includeMe = true, includeNotifications = false } = req.params;\n try {\n const response = await req.client.loadAndGetAllMessagesInChat(`${phone}@c.us`, includeMe, includeNotifications);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on open list' });\n }\n}\nexport async function getMessages(req, res) {\n const { phone } = req.params;\n const { count = 20, direction = 'before', id = null } = req.query;\n try {\n const response = await req.client.getMessages(`${phone}`, {\n count: parseInt(count),\n direction: direction.toString(),\n id: id,\n });\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(401).json({ status: 'error', response: 'Error on open list' });\n }\n}\n\nexport async function sendContactVcard(req, res) {\n const { phone, contactsId, name = null, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.sendContactVcard(`${contato}`, contactsId, name);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send contact vcard' });\n }\n}\n\nexport async function sendMute(req, res) {\n const { phone, time, type = 'hours', isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.sendMute(`${contato}`, time, type);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send mute' });\n }\n}\n\nexport async function sendSeen(req, res) {\n const { phone } = req.body;\n const session = req.session;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendSeen(contato));\n }\n returnSucess(res, session, phone, results);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\n\nexport async function setChatState(req, res) {\n const { phone, chatstate, isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.setChatState(`${contato}`, chatstate);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send chat state' });\n }\n}\n\nexport async function setTemporaryMessages(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.setTemporaryMessages(`${contato}`, value);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on set temporary messages' });\n }\n}\n\nexport async function setTyping(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n if (value) response = await req.client.startTyping(contato);\n else response = await req.client.stopTyping(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on set typing' });\n }\n}\n\nexport async function setRecording(req, res) {\n const { phone, value = true, duration, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n if (value) response = await req.client.startRecording(contato, duration);\n else response = await req.client.stopRecoring(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on set recording' });\n }\n}\n\nexport async function checkNumberStatus(req, res) {\n const { phone } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.checkNumberStatus(`${contato}`);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on check number status' });\n }\n}\n\nexport async function getContact(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getContact(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get contact' });\n }\n}\n\nexport async function getAllContacts(req, res) {\n try {\n const response = await req.client.getAllContacts();\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get all constacts' });\n }\n}\n\nexport async function getNumberProfile(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getNumberProfile(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get number profile' });\n }\n}\n\nexport async function getProfilePicFromServer(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getProfilePicFromServer(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get profile pic' });\n }\n}\n\nexport async function getStatus(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getStatus(contato);\n }\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get status' });\n }\n}\n\nexport async function setProfileStatus(req, res) {\n const { status } = req.body;\n try {\n let response = await req.client.setProfileStatus(status);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on set profile status' });\n }\n}\nexport async function rejectCall(req, res) {\n const { callId } = req.body;\n try {\n let response = await req.client.rejectCall(callId);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on rejectCall' });\n }\n}\n\nexport async function starMessage(req, res) {\n const { messageId, star = true } = req.body;\n try {\n let response = await req.client.starMessage(messageId, star);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on start message' });\n }\n}\n\nexport async function getReactions(req, res) {\n const messageId = req.params.id;\n try {\n let response = await req.client.getReactions(messageId);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get reactions' });\n }\n}\n\nexport async function getVotes(req, res) {\n const messageId = req.params.id;\n try {\n let response = await req.client.getVotes(messageId);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get votes' });\n }\n}\nexport async function chatWoot(req, res) {\n const { session } = req.params;\n const client = clientsArray[session];\n if (client == null || client.status !== 'CONNECTED') return;\n try {\n if (await client.isConnected()) {\n const event = req.body.event;\n\n if (event == 'conversation_status_changed' || event == 'conversation_resolved' || req.body.private) {\n return res.status(200).json({ status: 'success', message: 'Success on receive chatwoot' });\n }\n\n const {\n message_type,\n phone = req.body.conversation.meta.sender.phone_number.replace('+', ''),\n message = req.body.conversation.messages[0],\n } = req.body;\n\n if (event != 'message_created' && message_type != 'outgoing') return res.status(200);\n for (const contato of contactToArray(phone, false)) {\n if (message_type == 'outgoing') {\n if (message.attachments) {\n let base_url = `${client.config.chatWoot.baseURL}/${message.attachments[0].data_url.substring(\n message.attachments[0].data_url.indexOf('/rails/') + 1\n )}`;\n await client.sendFile(`${contato}`, base_url, 'file', message.content);\n } else {\n await client.sendText(contato, message.content);\n }\n }\n }\n return res.status(200).json({ status: 'success', message: 'Success on receive chatwoot' });\n }\n } catch (e) {\n console.log(e);\n return res.status(400).json({ status: 'error', message: 'Error on receive chatwoot' });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAeA;AACA;AACA;AACA;AACA,kDAAmD,CAnBnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAOA,SAASA,YAAY,CAACC,GAAG,EAAEC,OAAO,EAAEC,KAAK,EAAEC,IAAI,EAAE,CAC/CH,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EACnBD,MAAM,EAAE,SAAS,EACjBE,QAAQ,EAAE,EACRC,OAAO,EAAE,qCAAqC,EAC9CC,OAAO,EAAEN,KAAK,EACdD,OAAO,EAAEA,OAAO,EAChBE,IAAI,EAAEA,IAAI,CACZ,CAAC,CACH,CAAC,CAAC,CACJ,CAEA,SAASM,WAAW,CAACC,GAAG,EAAEV,GAAG,EAAEC,OAAO,EAAEU,KAAK,EAAE;EAC7CD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;EACvBX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC;IACnBD,MAAM,EAAE,OAAO;IACfE,QAAQ,EAAE;MACRC,OAAO,EAAE,8BAA8B;MACvCN,OAAO,EAAEA,OAAO;MAChBY,GAAG,EAAEF;IACP;EACF,CAAC,CAAC;AACJ;;AAEO,eAAeG,cAAc,CAACJ,GAAG,EAAEV,GAAG,EAAE;EAC7C,MAAM,EAAEe,IAAI,CAAC,CAAC,GAAGL,GAAG,CAACM,IAAI;;EAEzB,IAAI,CAACD,IAAI,EAAE,OAAOf,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,6BAA6B,CAAC,CAAC,CAAC;;EAEnG,IAAI;IACF,MAAMU,MAAM,GAAG,MAAMP,GAAG,CAACQ,MAAM,CAACJ,cAAc,CAACC,IAAI,CAAC;IACpD,OAAOf,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEW,MAAM,CAAC,CAAC,CAAC;EACtE,CAAC,CAAC,OAAON,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvBX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC;EAClF;AACF;;AAEO,eAAeY,eAAe,CAACT,GAAG,EAAEV,GAAG,EAAE;EAC9C,IAAI;IACF,MAAMoB,QAAQ,GAAG,MAAMV,GAAG,CAACQ,MAAM,CAACG,cAAc,EAAE;IAClDrB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEc,QAAQ,CAAC,CAAC,CAAC;EACjE,CAAC,CAAC,OAAOT,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvBX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC;EAC/E;AACF;;AAEO,eAAee,WAAW,CAACZ,GAAG,EAAEV,GAAG,EAAE;EAC1C,IAAI;IACF,MAAMM,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACI,WAAW,EAAE;IAC/C,OAAOtB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,EAAEiB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;EACxF,CAAC,CAAC,OAAOC,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC;EACrF;AACF;;AAEO,eAAekB,uBAAuB,CAACf,GAAG,EAAEV,GAAG,EAAE;EACtD,IAAI;IACF,MAAMM,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACO,uBAAuB,EAAE;IAC3D,OAAOzB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOkB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,sCAAsC,CAAC,CAAC,CAAC;EACnG;AACF;AACA;AACA;AACA;AACO,eAAemB,oBAAoB,CAAChB,GAAG,EAAEV,GAAG,EAAE;EACnD,IAAI;IACF,IAAI,EAAEE,KAAK,CAAC,CAAC,GAAGQ,GAAG,CAACiB,MAAM;IAC1B,MAAM,EAAEC,OAAO,GAAG,KAAK,EAAEC,SAAS,GAAG,IAAI,EAAEC,oBAAoB,GAAG,IAAI,CAAC,CAAC,GAAGpB,GAAG,CAACqB,KAAK;;IAEpF,IAAIzB,QAAQ;IACZ,KAAK,MAAM0B,OAAO,IAAI,IAAAC,yBAAc,EAAC/B,KAAK,EAAE0B,OAAO,CAAC,EAAE;MACpDtB,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACQ,oBAAoB,CAACM,OAAO,EAAEH,SAAS,EAAEC,oBAAoB,CAAC;IAC5F;;IAEA,OAAO9B,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOkB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,mCAAmC,CAAC,CAAC,CAAC;EAChG;AACF;;AAEO,eAAe2B,iBAAiB,CAACxB,GAAG,EAAEV,GAAG,EAAE;EAChD,IAAI;IACF,MAAMM,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACgB,iBAAiB,EAAE;IACrD,OAAOlC,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOkB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,mCAAmC,CAAC,CAAC,CAAC;EAChG;AACF;;AAEO,eAAe4B,oBAAoB,CAACzB,GAAG,EAAEV,GAAG,EAAE;EACnD,IAAI;IACF,MAAMM,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACiB,oBAAoB,EAAE;IACxD,OAAOnC,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOkB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,mCAAmC,CAAC,CAAC,CAAC;EAChG;AACF;;AAEO,eAAe6B,WAAW,CAAC1B,GAAG,EAAEV,GAAG,EAAE;EAC1C,MAAM,EAAEE,KAAK,CAAC,CAAC,GAAGQ,GAAG,CAACiB,MAAM;EAC5B,MAAM,EAAEC,OAAO,CAAC,CAAC,GAAGlB,GAAG,CAACqB,KAAK;;EAE7B,IAAI;IACF,IAAIM,WAAW,GAAG,CAAC,CAAC;;IAEpB,IAAIT,OAAO,EAAE;MACXS,WAAW,GAAG,MAAM3B,GAAG,CAACQ,MAAM,CAACQ,oBAAoB,CAAE,GAAExB,KAAM,OAAM,EAAE,IAAI,EAAE,IAAI,CAAC;IAClF,CAAC,MAAM;MACLmC,WAAW,GAAG,MAAM3B,GAAG,CAACQ,MAAM,CAACQ,oBAAoB,CAAE,GAAExB,KAAM,OAAM,EAAE,IAAI,EAAE,IAAI,CAAC;IAClF;;IAEA,IAAIoC,GAAG,GAAG,kBAAkB;IAC5B,IAAI,CAACC,WAAE,CAACC,UAAU,CAACF,GAAG,CAAC,EAAE;MACvBC,WAAE,CAACE,SAAS,CAACH,GAAG,CAAC;IACnB;;IAEAD,WAAW,CAACK,GAAG,CAAC,CAACnC,OAAO,KAAK;MAC3B,IAAIA,OAAO,CAACoC,IAAI,KAAK,SAAS,EAAE;QAC9B,IAAAC,2BAAQ,EAACrC,OAAO,EAAEG,GAAG,CAACQ,MAAM,EAAER,GAAG,CAACE,MAAM,CAAC;QACzCL,OAAO,CAACS,IAAI,GAAI,GAAEN,GAAG,CAACmC,aAAa,CAACC,IAAK,IAAGpC,GAAG,CAACmC,aAAa,CAACE,IAAK,cAAaxC,OAAO,CAACyC,CAAE,IAAGC,kBAAI,CAACC,SAAS;QACzG3C,OAAO,CAAC4C,QAAQ;QAChB,EAAC;MACL;IACF,CAAC,CAAC;;IAEF,OAAOnD,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAE+B,WAAW,CAAC,CAAC,CAAC;EAC3E,CAAC,CAAC,OAAOb,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,2BAA2B,CAAC,CAAC,CAAC;EACxF;AACF;;AAEO,eAAe6C,cAAc,CAAC1C,GAAG,EAAEV,GAAG,EAAE;EAC7C,MAAMC,OAAO,GAAGS,GAAG,CAACT,OAAO;EAC3B,MAAM,EAAEoD,SAAS,CAAC,CAAC,GAAG3C,GAAG,CAACiB,MAAM;;EAEhC,IAAI;IACF,IAAIV,MAAM;;IAEVA,MAAM,GAAG,MAAMP,GAAG,CAACQ,MAAM,CAACkC,cAAc,CAACC,SAAS,CAAC;;IAEnDtD,YAAY,CAACC,GAAG,EAAEC,OAAO,EAAEgB,MAAM,CAACqC,MAAM,CAACC,IAAI,EAAEtC,MAAM,CAAC;EACxD,CAAC,CAAC,OAAON,KAAK,EAAE;IACdF,WAAW,CAACC,GAAG,EAAEV,GAAG,EAAEC,OAAO,EAAEU,KAAK,CAAC;EACvC;AACF;;AAEO,eAAe6C,eAAe,CAAC9C,GAAG,EAAEV,GAAG,EAAE;EAC9C,IAAI;IACF,IAAIM,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACsC,eAAe,EAAE;IACjD,OAAOxD,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOkB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,iCAAiC,CAAC,CAAC,CAAC;EAC9F;AACF;;AAEO,eAAekD,aAAa,CAAC/C,GAAG,EAAEV,GAAG,EAAE;EAC5C,IAAI;IACF,MAAMM,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACuC,aAAa,EAAE;IACjD,MAAMC,WAAW,GAAG,MAAMhD,GAAG,CAACQ,MAAM,CAACyC,MAAM,EAAE;IAC7C,OAAO3D,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAE,EAAE,GAAGA,QAAQ,EAAEoD,WAAW,CAAC,CAAC,EAAEnC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;EAC9G,CAAC,CAAC,OAAOC,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,qCAAqC,CAAC,CAAC,CAAC;EAClG;AACF;;AAEO,eAAeqD,cAAc,CAAClD,GAAG,EAAEV,GAAG,EAAE;EAC7C,IAAI;IACF,MAAM0D,WAAW,GAAG,MAAMhD,GAAG,CAACQ,MAAM,CAACyC,MAAM,EAAE;IAC7C,OAAO3D,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEoD,WAAW,EAAEnC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;EAC7F,CAAC,CAAC,OAAOC,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,+BAA+B,CAAC,CAAC,CAAC;EAC5F;AACF;;AAEO,eAAesD,YAAY,CAACnD,GAAG,EAAEV,GAAG,EAAE;EAC3C,IAAIM,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAAC2C,YAAY,EAAE;;EAE9C,IAAI;IACF,MAAMC,OAAO,GAAGxD,QAAQ,CAACoC,GAAG,CAAC,CAACV,OAAO,KAAK;MACxC,OAAO,EAAE9B,KAAK,EAAE8B,OAAO,GAAGA,OAAO,CAAC+B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC;;IAEF,OAAO/D,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEwD,OAAO,CAAC,CAAC,CAAC;EACvE,CAAC,CAAC,OAAOtC,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,uCAAuC,CAAC,CAAC,CAAC;EACpG;AACF;;AAEO,eAAeyD,UAAU,CAACtD,GAAG,EAAEV,GAAG,EAAE;EACzC,MAAM,EAAEE,KAAK,CAAC,CAAC,GAAGQ,GAAG,CAACM,IAAI;EAC1B,MAAMf,OAAO,GAAGS,GAAG,CAACT,OAAO;;EAE3B,IAAI;IACF,IAAIgE,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAMjC,OAAO,IAAI9B,KAAK,EAAE;MAC3B+D,OAAO,CAACjC,OAAO,CAAC,GAAG,MAAMtB,GAAG,CAACQ,MAAM,CAAC8C,UAAU,CAAChC,OAAO,CAAC;IACzD;IACAjC,YAAY,CAACC,GAAG,EAAEC,OAAO,EAAEC,KAAK,EAAE+D,OAAO,CAAC;EAC5C,CAAC,CAAC,OAAOtD,KAAK,EAAE;IACdF,WAAW,CAACC,GAAG,EAAEV,GAAG,EAAEC,OAAO,EAAEU,KAAK,CAAC;EACvC;AACF;AACO,eAAeuD,cAAc,CAACxD,GAAG,EAAEV,GAAG,EAAE;EAC7C,IAAI;IACF,MAAMmE,KAAK,GAAG,MAAMzD,GAAG,CAACQ,MAAM,CAACI,WAAW,EAAE;IAC5C,KAAK,MAAM8C,IAAI,IAAID,KAAK,EAAE;MACxB,MAAMzD,GAAG,CAACQ,MAAM,CAAC8C,UAAU,CAACI,IAAI,CAACd,MAAM,CAAC;IAC1C;IACA,OAAOtD,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;EACpD,CAAC,CAAC,OAAOO,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,2BAA2B,CAAC,CAAC,CAAC;EACxF;AACF;;AAEO,eAAe8D,SAAS,CAAC3D,GAAG,EAAEV,GAAG,EAAE;EACxC,MAAM,EAAEE,KAAK,CAAC,CAAC,GAAGQ,GAAG,CAACM,IAAI;EAC1B,MAAMf,OAAO,GAAGS,GAAG,CAACT,OAAO;;EAE3B,IAAI;IACF,IAAIgE,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAMjC,OAAO,IAAI9B,KAAK,EAAE;MAC3B+D,OAAO,CAACjC,OAAO,CAAC,GAAG,MAAMtB,GAAG,CAACQ,MAAM,CAACmD,SAAS,CAACrC,OAAO,CAAC;IACxD;IACAjC,YAAY,CAACC,GAAG,EAAEC,OAAO,EAAEC,KAAK,EAAE+D,OAAO,CAAC;EAC5C,CAAC,CAAC,OAAOtD,KAAK,EAAE;IACdF,WAAW,CAACC,GAAG,EAAEV,GAAG,EAAEC,OAAO,EAAEU,KAAK,CAAC;EACvC;AACF;;AAEO,eAAe2D,aAAa,CAAC5D,GAAG,EAAEV,GAAG,EAAE;EAC5C,IAAI;IACF,MAAMmE,KAAK,GAAG,MAAMzD,GAAG,CAACQ,MAAM,CAACI,WAAW,EAAE;IAC5C,KAAK,MAAM8C,IAAI,IAAID,KAAK,EAAE;MACxB,MAAMzD,GAAG,CAACQ,MAAM,CAACmD,SAAS,CAAE,GAAED,IAAI,CAACd,MAAO,EAAC,CAAC;IAC9C;IACA,OAAOtD,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;EACpD,CAAC,CAAC,OAAOoB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,0BAA0B,CAAC,CAAC,CAAC;EACvF;AACF;;AAEO,eAAegE,WAAW,CAAC7D,GAAG,EAAEV,GAAG,EAAE;EAC1C,MAAM,EAAEE,KAAK,EAAEsE,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG9D,GAAG,CAACM,IAAI;;EAExC,IAAI;IACF,IAAIV,QAAQ;IACZA,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACqD,WAAW,CAAE,GAAErE,KAAM,EAAC,EAAEsE,KAAK,CAAC;IAC1D,OAAOxE,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOkB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC;EACpF;AACF;;AAEO,eAAekE,eAAe,CAAC/D,GAAG,EAAEV,GAAG,EAAE;EAC9C,IAAI;IACF,MAAMmE,KAAK,GAAG,MAAMzD,GAAG,CAACQ,MAAM,CAACI,WAAW,EAAE;IAC5C,KAAK,MAAM8C,IAAI,IAAID,KAAK,EAAE;MACxB,MAAMzD,GAAG,CAACQ,MAAM,CAACqD,WAAW,CAAE,GAAEH,IAAI,CAACd,MAAO,EAAC,EAAE,IAAI,CAAC;IACtD;IACA,OAAOtD,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;EACpD,CAAC,CAAC,OAAOoB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC;EACzF;AACF;;AAEO,eAAemE,aAAa,CAAChE,GAAG,EAAEV,GAAG,EAAE;EAC5C,MAAM,EAAEE,KAAK,EAAEmD,SAAS,CAAC,CAAC,GAAG3C,GAAG,CAACM,IAAI;;EAErC,IAAI;IACF,MAAMN,GAAG,CAACQ,MAAM,CAACwD,aAAa,CAAE,GAAExE,KAAM,EAAC,EAAE,CAACmD,SAAS,CAAC,CAAC;;IAEvD,OAAOrD,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAE,EAAEC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9F,CAAC,CAAC,OAAOiB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC;EACtF;AACF;AACO,eAAeoE,YAAY,CAACjE,GAAG,EAAEV,GAAG,EAAE;EAC3C,MAAM,EAAE4E,KAAK,EAAEC,QAAQ,CAAC,CAAC,GAAGnE,GAAG,CAACM,IAAI;;EAEpC,IAAI;IACF,MAAMN,GAAG,CAACQ,MAAM,CAAC4D,qBAAqB,CAACF,KAAK,EAAEC,QAAQ,CAAC;;IAEvD,OAAO7E,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAE,EAAEC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9F,CAAC,CAAC,OAAOiB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,mCAAmC,CAAC,CAAC,CAAC;EAChG;AACF;;AAEO,eAAewE,KAAK,CAACrE,GAAG,EAAEV,GAAG,EAAE;EACpC,MAAM,EAAEE,KAAK,EAAE8E,IAAI,EAAEC,SAAS,CAAC,CAAC,GAAGvE,GAAG,CAACM,IAAI;;EAE3C,IAAI;IACF,IAAIV,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAAC6D,KAAK,CAAE,GAAE7E,KAAM,OAAM,EAAE8E,IAAI,EAAEC,SAAS,CAAC;IACvE,OAAOjF,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOkB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC;EACrF;AACF;;AAEO,eAAe2E,eAAe,CAACxE,GAAG,EAAEV,GAAG,EAAE;EAC9C,MAAM,EAAEE,KAAK,EAAEmD,SAAS,EAAEzB,OAAO,GAAG,KAAK,CAAC,CAAC,GAAGlB,GAAG,CAACM,IAAI;;EAEtD,IAAI;IACF,IAAIV,QAAQ;;IAEZ,IAAI,CAACsB,OAAO,EAAE;MACZtB,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACgE,eAAe,CAAE,GAAEhF,KAAM,EAAC,EAAE,CAACmD,SAAS,CAAC,EAAE,KAAK,CAAC;IAC7E,CAAC,MAAM;MACL/C,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACgE,eAAe,CAAE,GAAEhF,KAAM,EAAC,EAAE,CAACmD,SAAS,CAAC,EAAE,KAAK,CAAC;IAC7E;;IAEA,OAAOrD,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOkB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,0BAA0B,CAAC,CAAC,CAAC;EACvF;AACF;;AAEO,eAAe4E,iBAAiB,CAACzE,GAAG,EAAEV,GAAG,EAAE;EAChD,MAAM,EAAEE,KAAK,CAAC,CAAC,GAAGQ,GAAG,CAACM,IAAI;;EAE1B,IAAI;IACF,MAAMN,GAAG,CAACQ,MAAM,CAACiE,iBAAiB,CAAE,GAAEjF,KAAM,EAAC,CAAC;IAC9C,OAAOF,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAE,EAAEC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;EAC7F,CAAC,CAAC,OAAOiB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;EACnF;AACF;;AAEO,eAAe6E,YAAY,CAAC1E,GAAG,EAAEV,GAAG,EAAE;EAC3C,MAAM,EAAEE,KAAK,CAAC,CAAC,GAAGQ,GAAG,CAACM,IAAI;;EAE1B,IAAI;IACF,MAAMN,GAAG,CAACQ,MAAM,CAACkE,YAAY,CAAE,GAAElF,KAAM,EAAC,CAAC;IACzC,OAAOF,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAE,EAAEC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9F,CAAC,CAAC,OAAOiB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC;EACrF;AACF;;AAEO,eAAe8E,cAAc,CAAC3E,GAAG,EAAEV,GAAG,EAAE;EAC7C,MAAM,EAAEE,KAAK,CAAC,CAAC,GAAGQ,GAAG,CAACM,IAAI;;EAE1B,IAAI;IACF,MAAMN,GAAG,CAACQ,MAAM,CAACmE,cAAc,CAAE,GAAEnF,KAAM,EAAC,CAAC;IAC3C,OAAOF,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAE,EAAEC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;EAChG,CAAC,CAAC,OAAOiB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC;EACtF;AACF;;AAEO,eAAe+E,OAAO,CAAC5E,GAAG,EAAEV,GAAG,EAAE;EACtC,MAAM,EAAEE,KAAK,EAAEqF,KAAK,CAAC,CAAC,GAAG7E,GAAG,CAACM,IAAI;;EAEjC,IAAI;IACF,KAAK,MAAMgB,OAAO,IAAI9B,KAAK,EAAE;MAC3B,MAAMQ,GAAG,CAACQ,MAAM,CAACoE,OAAO,CAACtD,OAAO,EAAEuD,KAAK,KAAK,MAAM,EAAE,KAAK,CAAC;IAC5D;;IAEA,OAAOvF,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAE,EAAEC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;EACzF,CAAC,CAAC,OAAOiB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAEiB,CAAC,CAACwD,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC;EAC1F;AACF;;AAEO,eAAeQ,aAAa,CAAC9E,GAAG,EAAEV,GAAG,EAAE;EAC5C,IAAI,CAACU,GAAG,CAAC+E,IAAI,EAAE,OAAOzF,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,6BAA6B,CAAC,CAAC,CAAC;;EAEvG,IAAI;IACF,MAAM,EAAEmF,IAAI,EAAEC,QAAQ,CAAC,CAAC,GAAGjF,GAAG,CAAC+E,IAAI;;IAEnC,MAAM/E,GAAG,CAACQ,MAAM,CAACsE,aAAa,CAACG,QAAQ,CAAC;IACxC,MAAM,IAAAC,sBAAW,EAACD,QAAQ,CAAC;;IAE3B,OAAO3F,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAE,EAAEC,OAAO,EAAE,oCAAoC,CAAC,CAAC,CAAC,CAAC,CAAC;EACjH,CAAC,CAAC,OAAOiB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,8BAA8B,CAAC,CAAC,CAAC;EAC3F;AACF;;AAEO,eAAesF,iBAAiB,CAACnF,GAAG,EAAEV,GAAG,EAAE;EAChD,IAAI;IACF,MAAMM,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAAC2E,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;IACvE,OAAO7F,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOkB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC;EAClF;AACF;;AAEO,eAAewF,eAAe,CAACpF,GAAG,EAAEV,GAAG,EAAE;EAC9C,MAAM,EAAEE,KAAK,CAAC,CAAC,GAAGQ,GAAG,CAACiB,MAAM;EAC5B,IAAI;IACF,MAAMrB,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAAC4E,eAAe,CAAE,GAAE5F,KAAM,OAAM,CAAC;IAClE,OAAOF,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOkB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEE,QAAQ,EAAE,6BAA6B,CAAC,CAAC,CAAC;EAC3F;AACF;;AAEO,eAAeyF,WAAW,CAACrF,GAAG,EAAEV,GAAG,EAAE;EAC1C,MAAM,EAAEE,KAAK,CAAC,CAAC,GAAGQ,GAAG,CAACiB,MAAM;EAC5B,IAAI;IACF,MAAMrB,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAAC6E,WAAW,CAAE,GAAE7F,KAAM,OAAM,CAAC;;IAE9D,OAAOF,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEE,QAAQ,EAAE,6BAA6B,CAAC,CAAC,CAAC;EAC3F;AACF;;AAEO,eAAe0F,YAAY,CAACtF,GAAG,EAAEV,GAAG,EAAE;EAC3C,MAAM,EAAE2C,IAAI,GAAG,KAAK,CAAC,CAAC,GAAGjC,GAAG,CAACiB,MAAM;EACnC,IAAI;IACF,MAAMrB,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAAC8E,YAAY,CAACrD,IAAI,CAAC;;IAEpD,OAAO3C,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEE,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAC;EACvF;AACF;;AAEO,eAAe2F,2BAA2B,CAACvF,GAAG,EAAEV,GAAG,EAAE;EAC1D,MAAM,EAAEE,KAAK,EAAE2B,SAAS,GAAG,IAAI,EAAEC,oBAAoB,GAAG,KAAK,CAAC,CAAC,GAAGpB,GAAG,CAACiB,MAAM;EAC5E,IAAI;IACF,MAAMrB,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAAC+E,2BAA2B,CAAE,GAAE/F,KAAM,OAAM,EAAE2B,SAAS,EAAEC,oBAAoB,CAAC;;IAE/G,OAAO9B,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC;EAClF;AACF;AACO,eAAe4F,WAAW,CAACxF,GAAG,EAAEV,GAAG,EAAE;EAC1C,MAAM,EAAEE,KAAK,CAAC,CAAC,GAAGQ,GAAG,CAACiB,MAAM;EAC5B,MAAM,EAAEwE,KAAK,GAAG,EAAE,EAAEC,SAAS,GAAG,QAAQ,EAAEC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG3F,GAAG,CAACqB,KAAK;EACjE,IAAI;IACF,MAAMzB,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACgF,WAAW,CAAE,GAAEhG,KAAM,EAAC,EAAE;MACxDiG,KAAK,EAAEG,QAAQ,CAACH,KAAK,CAAC;MACtBC,SAAS,EAAEA,SAAS,CAACG,QAAQ,EAAE;MAC/BF,EAAE,EAAEA;IACN,CAAC,CAAC;IACF,OAAOrG,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOkB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC;EAClF;AACF;;AAEO,eAAekG,gBAAgB,CAAC9F,GAAG,EAAEV,GAAG,EAAE;EAC/C,MAAM,EAAEE,KAAK,EAAEuG,UAAU,EAAE1F,IAAI,GAAG,IAAI,EAAEa,OAAO,GAAG,KAAK,CAAC,CAAC,GAAGlB,GAAG,CAACM,IAAI;EACpE,IAAI;IACF,IAAIV,QAAQ;IACZ,KAAK,MAAM0B,OAAO,IAAI,IAAAC,yBAAc,EAAC/B,KAAK,EAAE0B,OAAO,CAAC,EAAE;MACpDtB,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACsF,gBAAgB,CAAE,GAAExE,OAAQ,EAAC,EAAEyE,UAAU,EAAE1F,IAAI,CAAC;IAC9E;;IAEA,OAAOf,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,6BAA6B,CAAC,CAAC,CAAC;EAC1F;AACF;;AAEO,eAAemG,QAAQ,CAAChG,GAAG,EAAEV,GAAG,EAAE;EACvC,MAAM,EAAEE,KAAK,EAAEyG,IAAI,EAAEhE,IAAI,GAAG,OAAO,EAAEf,OAAO,GAAG,KAAK,CAAC,CAAC,GAAGlB,GAAG,CAACM,IAAI;;EAEjE,IAAI;IACF,IAAIV,QAAQ;IACZ,KAAK,MAAM0B,OAAO,IAAI,IAAAC,yBAAc,EAAC/B,KAAK,EAAE0B,OAAO,CAAC,EAAE;MACpDtB,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACwF,QAAQ,CAAE,GAAE1E,OAAQ,EAAC,EAAE2E,IAAI,EAAEhE,IAAI,CAAC;IAChE;;IAEA,OAAO3C,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC;EACjF;AACF;;AAEO,eAAeqG,QAAQ,CAAClG,GAAG,EAAEV,GAAG,EAAE;EACvC,MAAM,EAAEE,KAAK,CAAC,CAAC,GAAGQ,GAAG,CAACM,IAAI;EAC1B,MAAMf,OAAO,GAAGS,GAAG,CAACT,OAAO;;EAE3B,IAAI;IACF,IAAIgE,OAAO,GAAG,EAAE;IAChB,KAAK,MAAMjC,OAAO,IAAI9B,KAAK,EAAE;MAC3B+D,OAAO,CAAC4C,IAAI,CAAC,MAAMnG,GAAG,CAACQ,MAAM,CAAC0F,QAAQ,CAAC5E,OAAO,CAAC,CAAC;IAClD;IACAjC,YAAY,CAACC,GAAG,EAAEC,OAAO,EAAEC,KAAK,EAAE+D,OAAO,CAAC;EAC5C,CAAC,CAAC,OAAOtD,KAAK,EAAE;IACdF,WAAW,CAACC,GAAG,EAAEV,GAAG,EAAEC,OAAO,EAAEU,KAAK,CAAC;EACvC;AACF;;AAEO,eAAemG,YAAY,CAACpG,GAAG,EAAEV,GAAG,EAAE;EAC3C,MAAM,EAAEE,KAAK,EAAE6G,SAAS,EAAEnF,OAAO,GAAG,KAAK,CAAC,CAAC,GAAGlB,GAAG,CAACM,IAAI;;EAEtD,IAAI;IACF,IAAIV,QAAQ;IACZ,KAAK,MAAM0B,OAAO,IAAI,IAAAC,yBAAc,EAAC/B,KAAK,EAAE0B,OAAO,CAAC,EAAE;MACpDtB,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAAC4F,YAAY,CAAE,GAAE9E,OAAQ,EAAC,EAAE+E,SAAS,CAAC;IACnE;;IAEA,OAAO/G,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,0BAA0B,CAAC,CAAC,CAAC;EACvF;AACF;;AAEO,eAAeyG,oBAAoB,CAACtG,GAAG,EAAEV,GAAG,EAAE;EACnD,MAAM,EAAEE,KAAK,EAAEsE,KAAK,GAAG,IAAI,EAAE5C,OAAO,GAAG,KAAK,CAAC,CAAC,GAAGlB,GAAG,CAACM,IAAI;;EAEzD,IAAI;IACF,IAAIV,QAAQ;IACZ,KAAK,MAAM0B,OAAO,IAAI,IAAAC,yBAAc,EAAC/B,KAAK,EAAE0B,OAAO,CAAC,EAAE;MACpDtB,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAAC8F,oBAAoB,CAAE,GAAEhF,OAAQ,EAAC,EAAEwC,KAAK,CAAC;IACvE;;IAEA,OAAOxE,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,iCAAiC,CAAC,CAAC,CAAC;EAC9F;AACF;;AAEO,eAAe0G,SAAS,CAACvG,GAAG,EAAEV,GAAG,EAAE;EACxC,MAAM,EAAEE,KAAK,EAAEsE,KAAK,GAAG,IAAI,EAAE5C,OAAO,GAAG,KAAK,CAAC,CAAC,GAAGlB,GAAG,CAACM,IAAI;EACzD,IAAI;IACF,IAAIV,QAAQ;IACZ,KAAK,MAAM0B,OAAO,IAAI,IAAAC,yBAAc,EAAC/B,KAAK,EAAE0B,OAAO,CAAC,EAAE;MACpD,IAAI4C,KAAK,EAAElE,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACgG,WAAW,CAAClF,OAAO,CAAC,CAAC;MACvD1B,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACiG,UAAU,CAACnF,OAAO,CAAC;IACtD;;IAEA,OAAOhC,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC;EAClF;AACF;;AAEO,eAAe6G,YAAY,CAAC1G,GAAG,EAAEV,GAAG,EAAE;EAC3C,MAAM,EAAEE,KAAK,EAAEsE,KAAK,GAAG,IAAI,EAAE6C,QAAQ,EAAEzF,OAAO,GAAG,KAAK,CAAC,CAAC,GAAGlB,GAAG,CAACM,IAAI;EACnE,IAAI;IACF,IAAIV,QAAQ;IACZ,KAAK,MAAM0B,OAAO,IAAI,IAAAC,yBAAc,EAAC/B,KAAK,EAAE0B,OAAO,CAAC,EAAE;MACpD,IAAI4C,KAAK,EAAElE,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACoG,cAAc,CAACtF,OAAO,EAAEqF,QAAQ,CAAC,CAAC;MACpE/G,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACqG,YAAY,CAACvF,OAAO,CAAC;IACxD;;IAEA,OAAOhC,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC;EACrF;AACF;;AAEO,eAAeiH,iBAAiB,CAAC9G,GAAG,EAAEV,GAAG,EAAE;EAChD,MAAM,EAAEE,KAAK,CAAC,CAAC,GAAGQ,GAAG,CAACiB,MAAM;EAC5B,IAAI;IACF,IAAIrB,QAAQ;IACZ,KAAK,MAAM0B,OAAO,IAAI,IAAAC,yBAAc,EAAC/B,KAAK,EAAE,KAAK,CAAC,EAAE;MAClDI,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACsG,iBAAiB,CAAE,GAAExF,OAAQ,EAAC,CAAC;IAC7D;;IAEA,OAAOhC,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,8BAA8B,CAAC,CAAC,CAAC;EAC3F;AACF;;AAEO,eAAekH,UAAU,CAAC/G,GAAG,EAAEV,GAAG,EAAE;EACzC,MAAM,EAAEE,KAAK,GAAG,IAAI,CAAC,CAAC,GAAGQ,GAAG,CAACiB,MAAM;EACnC,IAAI;IACF,IAAIrB,QAAQ;IACZ,KAAK,MAAM0B,OAAO,IAAI,IAAAC,yBAAc,EAAC/B,KAAK,EAAE,KAAK,CAAC,EAAE;MAClDI,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACuG,UAAU,CAACzF,OAAO,CAAC;IACjD;;IAEA,OAAOhC,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;EACnF;AACF;;AAEO,eAAec,cAAc,CAACX,GAAG,EAAEV,GAAG,EAAE;EAC7C,IAAI;IACF,MAAMM,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACG,cAAc,EAAE;;IAElD,OAAOrB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC;EACzF;AACF;;AAEO,eAAemH,gBAAgB,CAAChH,GAAG,EAAEV,GAAG,EAAE;EAC/C,MAAM,EAAEE,KAAK,GAAG,IAAI,CAAC,CAAC,GAAGQ,GAAG,CAACiB,MAAM;EACnC,IAAI;IACF,IAAIrB,QAAQ;IACZ,KAAK,MAAM0B,OAAO,IAAI,IAAAC,yBAAc,EAAC/B,KAAK,EAAE,KAAK,CAAC,EAAE;MAClDI,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACwG,gBAAgB,CAAC1F,OAAO,CAAC;IACvD;;IAEA,OAAOhC,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,6BAA6B,CAAC,CAAC,CAAC;EAC1F;AACF;;AAEO,eAAeoH,uBAAuB,CAACjH,GAAG,EAAEV,GAAG,EAAE;EACtD,MAAM,EAAEE,KAAK,GAAG,IAAI,CAAC,CAAC,GAAGQ,GAAG,CAACiB,MAAM;EACnC,IAAI;IACF,IAAIrB,QAAQ;IACZ,KAAK,MAAM0B,OAAO,IAAI,IAAAC,yBAAc,EAAC/B,KAAK,EAAE,KAAK,CAAC,EAAE;MAClDI,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACyG,uBAAuB,CAAC3F,OAAO,CAAC;IAC9D;;IAEA,OAAOhC,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,2BAA2B,CAAC,CAAC,CAAC;EACxF;AACF;;AAEO,eAAeqH,SAAS,CAAClH,GAAG,EAAEV,GAAG,EAAE;EACxC,MAAM,EAAEE,KAAK,GAAG,IAAI,CAAC,CAAC,GAAGQ,GAAG,CAACiB,MAAM;EACnC,IAAI;IACF,IAAIrB,QAAQ;IACZ,KAAK,MAAM0B,OAAO,IAAI,IAAAC,yBAAc,EAAC/B,KAAK,EAAE,KAAK,CAAC,EAAE;MAClDI,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAAC0G,SAAS,CAAC5F,OAAO,CAAC;IAChD;IACA,OAAOhC,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;EACnF;AACF;;AAEO,eAAesH,gBAAgB,CAACnH,GAAG,EAAEV,GAAG,EAAE;EAC/C,MAAM,EAAEI,MAAM,CAAC,CAAC,GAAGM,GAAG,CAACM,IAAI;EAC3B,IAAI;IACF,IAAIV,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAAC2G,gBAAgB,CAACzH,MAAM,CAAC;;IAExD,OAAOJ,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOkB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,6BAA6B,CAAC,CAAC,CAAC;EAC1F;AACF;AACO,eAAeuH,UAAU,CAACpH,GAAG,EAAEV,GAAG,EAAE;EACzC,MAAM,EAAE+H,MAAM,CAAC,CAAC,GAAGrH,GAAG,CAACM,IAAI;EAC3B,IAAI;IACF,IAAIV,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAAC4G,UAAU,CAACC,MAAM,CAAC;;IAElD,OAAO/H,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOkB,CAAC,EAAE;IACVd,GAAG,CAACE,MAAM,CAACD,KAAK,CAACa,CAAC,CAAC;IACnB,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC;EAClF;AACF;;AAEO,eAAeyH,WAAW,CAACtH,GAAG,EAAEV,GAAG,EAAE;EAC1C,MAAM,EAAEqD,SAAS,EAAE4E,IAAI,GAAG,IAAI,CAAC,CAAC,GAAGvH,GAAG,CAACM,IAAI;EAC3C,IAAI;IACF,IAAIV,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAAC8G,WAAW,CAAC3E,SAAS,EAAE4E,IAAI,CAAC;;IAE5D,OAAOjI,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC;EACtF;AACF;;AAEO,eAAe2H,YAAY,CAACxH,GAAG,EAAEV,GAAG,EAAE;EAC3C,MAAMqD,SAAS,GAAG3C,GAAG,CAACiB,MAAM,CAAC0E,EAAE;EAC/B,IAAI;IACF,IAAI/F,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACgH,YAAY,CAAC7E,SAAS,CAAC;;IAEvD,OAAOrD,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC;EACrF;AACF;;AAEO,eAAe4H,QAAQ,CAACzH,GAAG,EAAEV,GAAG,EAAE;EACvC,MAAMqD,SAAS,GAAG3C,GAAG,CAACiB,MAAM,CAAC0E,EAAE;EAC/B,IAAI;IACF,IAAI/F,QAAQ,GAAG,MAAMI,GAAG,CAACQ,MAAM,CAACiH,QAAQ,CAAC9E,SAAS,CAAC;;IAEnD,OAAOrD,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEE,QAAQ,EAAEA,QAAQ,CAAC,CAAC,CAAC;EACxE,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdD,GAAG,CAACE,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IACvB,OAAOX,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC;EACjF;AACF;AACO,eAAe6H,QAAQ,CAAC1H,GAAG,EAAEV,GAAG,EAAE;EACvC,MAAM,EAAEC,OAAO,CAAC,CAAC,GAAGS,GAAG,CAACiB,MAAM;EAC9B,MAAMT,MAAM,GAAGmH,yBAAY,CAACpI,OAAO,CAAC;EACpC,IAAIiB,MAAM,IAAI,IAAI,IAAIA,MAAM,CAACd,MAAM,KAAK,WAAW,EAAE;EACrD,IAAI;IACF,IAAI,MAAMc,MAAM,CAACoH,WAAW,EAAE,EAAE;MAC9B,MAAMC,KAAK,GAAG7H,GAAG,CAACM,IAAI,CAACuH,KAAK;;MAE5B,IAAIA,KAAK,IAAI,6BAA6B,IAAIA,KAAK,IAAI,uBAAuB,IAAI7H,GAAG,CAACM,IAAI,CAACwH,OAAO,EAAE;QAClG,OAAOxI,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEG,OAAO,EAAE,6BAA6B,CAAC,CAAC,CAAC;MAC5F;;MAEA,MAAM;QACJkI,YAAY;QACZvI,KAAK,GAAGQ,GAAG,CAACM,IAAI,CAAC0H,YAAY,CAACC,IAAI,CAACC,MAAM,CAACC,YAAY,CAACC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QACvEvI,OAAO,GAAGG,GAAG,CAACM,IAAI,CAAC0H,YAAY,CAACK,QAAQ,CAAC,CAAC;MAC5C,CAAC,GAAGrI,GAAG,CAACM,IAAI;;MAEZ,IAAIuH,KAAK,IAAI,iBAAiB,IAAIE,YAAY,IAAI,UAAU,EAAE,OAAOzI,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC;MACpF,KAAK,MAAM4B,OAAO,IAAI,IAAAC,yBAAc,EAAC/B,KAAK,EAAE,KAAK,CAAC,EAAE;QAClD,IAAIuI,YAAY,IAAI,UAAU,EAAE;UAC9B,IAAIlI,OAAO,CAACyI,WAAW,EAAE;YACvB,IAAIC,QAAQ,GAAI,GAAE/H,MAAM,CAACgI,MAAM,CAACd,QAAQ,CAACe,OAAQ,IAAG5I,OAAO,CAACyI,WAAW,CAAC,CAAC,CAAC,CAACI,QAAQ,CAACC,SAAS;YAC3F9I,OAAO,CAACyI,WAAW,CAAC,CAAC,CAAC,CAACI,QAAQ,CAACE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;YACtD,EAAC;YACH,MAAMpI,MAAM,CAACqI,QAAQ,CAAE,GAAEvH,OAAQ,EAAC,EAAEiH,QAAQ,EAAE,MAAM,EAAE1I,OAAO,CAACiJ,OAAO,CAAC;UACxE,CAAC,MAAM;YACL,MAAMtI,MAAM,CAACuI,QAAQ,CAACzH,OAAO,EAAEzB,OAAO,CAACiJ,OAAO,CAAC;UACjD;QACF;MACF;MACA,OAAOxJ,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,SAAS,EAAEG,OAAO,EAAE,8BAA8B,CAAC,CAAC,CAAC;IAC7F;EACF,CAAC,CAAC,OAAOiB,CAAC,EAAE;IACVkI,OAAO,CAAC7I,GAAG,CAACW,CAAC,CAAC;IACd,OAAOxB,GAAG,CAACI,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,EAAED,MAAM,EAAE,OAAO,EAAEG,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC;EACzF;AACF"}
1
+ {"version":3,"file":"deviceController.js","names":["returnSucess","res","session","phone","data","status","json","response","message","contact","returnError","req","error","logger","log","setProfileName","name","body","result","client","showAllContacts","contacts","getAllContacts","getAllChats","mapper","e","getAllChatsWithMessages","getAllMessagesInChat","params","isGroup","includeMe","includeNotifications","query","contato","contactToArray","getAllNewMessages","getAllUnreadMessages","getChatById","allMessages","dir","fs","existsSync","mkdirSync","map","type","download","serverOptions","host","port","t","mime","extension","mimetype","getMessageById","messageId","chatId","user","getBatteryLevel","getHostDevice","phoneNumber","getWid","getPhoneNumber","getBlockList","blocked","split","deleteChat","results","deleteAllChats","chats","chat","clearChat","clearAllChats","archiveChat","value","archiveAllChats","deleteMessage","reactMessage","msgId","reaction","sendReactionToMessage","reply","text","messageid","forwardMessages","markUnseenMessage","blockContact","unblockContact","pinChat","state","setProfilePic","file","path","pathFile","unlinkAsync","getUnreadMessages","getChatIsOnline","getLastSeen","getListMutes","loadAndGetAllMessagesInChat","getMessages","count","direction","id","parseInt","toString","sendContactVcard","contactsId","sendMute","time","sendSeen","push","setChatState","chatstate","setTemporaryMessages","setTyping","startTyping","stopTyping","setRecording","duration","startRecording","stopRecoring","checkNumberStatus","getContact","getNumberProfile","getProfilePicFromServer","getStatus","setProfileStatus","rejectCall","callId","starMessage","star","getReactions","getVotes","chatWoot","clientsArray","isConnected","event","private","message_type","conversation","meta","sender","phone_number","replace","messages","attachments","base_url","config","baseURL","data_url","substring","indexOf","sendFile","content","sendText","console"],"sources":["../../src/controller/deviceController.js"],"sourcesContent":["/*\n * Copyright 2021 WPPConnect Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport fs from 'fs';\nimport { download } from './sessionController';\nimport { contactToArray, unlinkAsync } from '../util/functions';\nimport mime from 'mime-types';\nimport { clientsArray } from '../util/sessionUtil';\n\nfunction returnSucess(res, session, phone, data) {\n res.status(201).json({\n status: 'Success',\n response: {\n message: 'Information retrieved successfully.',\n contact: phone,\n session: session,\n data: data,\n },\n });\n}\n\nfunction returnError(req, res, session, error) {\n req.logger.error(error);\n res.status(400).json({\n status: 'Error',\n response: {\n message: 'Error retrieving information',\n session: session,\n log: error,\n },\n });\n}\n\nexport async function setProfileName(req, res) {\n const { name } = req.body;\n\n if (!name) return res.status(400).json({ status: 'error', message: 'Parameter name is required!' });\n\n try {\n const result = await req.client.setProfileName(name);\n return res.status(200).json({ status: 'success', response: result });\n } catch (error) {\n req.logger.error(error);\n res.status(500).json({ status: 'error', message: 'Error on set profile name.', error: error });\n }\n}\n\nexport async function showAllContacts(req, res) {\n try {\n const contacts = await req.client.getAllContacts();\n res.status(200).json({ status: 'success', response: contacts });\n } catch (error) {\n req.logger.error(error);\n res.status(500).json({ status: 'error', message: 'Error fetching contacts', error: error });\n }\n}\n\nexport async function getAllChats(req, res) {\n try {\n const response = await req.client.getAllChats();\n return res.status(200).json({ status: 'success', response: response, mapper: 'chat' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all chats' });\n }\n}\n\nexport async function getAllChatsWithMessages(req, res) {\n try {\n const response = await req.client.getAllChatsWithMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all chats whit messages', error: e });\n }\n}\n/**\n * Depreciado em favor de getMessages\n */\nexport async function getAllMessagesInChat(req, res) {\n try {\n let { phone } = req.params;\n const { isGroup = false, includeMe = true, includeNotifications = true } = req.query;\n\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.getAllMessagesInChat(contato, includeMe, includeNotifications);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat', error: e });\n }\n}\n\nexport async function getAllNewMessages(req, res) {\n try {\n const response = await req.client.getAllNewMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat', error: e });\n }\n}\n\nexport async function getAllUnreadMessages(req, res) {\n try {\n const response = await req.client.getAllUnreadMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat', error: e });\n }\n}\n\nexport async function getChatById(req, res) {\n const { phone } = req.params;\n const { isGroup } = req.query;\n\n try {\n let allMessages = {};\n\n if (isGroup) {\n allMessages = await req.client.getAllMessagesInChat(`${phone}@g.us`, true, true);\n } else {\n allMessages = await req.client.getAllMessagesInChat(`${phone}@c.us`, true, true);\n }\n\n let dir = './WhatsAppImages';\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir);\n }\n\n allMessages.map((message) => {\n if (message.type === 'sticker') {\n download(message, req.client, req.logger);\n message.body = `${req.serverOptions.host}:${req.serverOptions.port}/files/file${message.t}.${mime.extension(\n message.mimetype\n )}`;\n }\n });\n\n return res.status(200).json({ status: 'success', response: allMessages });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error changing chat by Id', error: e });\n }\n}\n\nexport async function getMessageById(req, res) {\n const session = req.session;\n const { messageId } = req.params;\n\n try {\n let result;\n\n result = await req.client.getMessageById(messageId);\n\n returnSucess(res, session, result.chatId.user, result);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\n\nexport async function getBatteryLevel(req, res) {\n try {\n let response = await req.client.getBatteryLevel();\n return res.status(200).json({ status: 'Success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving battery status', error: e });\n }\n}\n\nexport async function getHostDevice(req, res) {\n try {\n const response = await req.client.getHostDevice();\n const phoneNumber = await req.client.getWid();\n return res.status(200).json({ status: 'success', response: { ...response, phoneNumber }, mapper: 'device' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Erro ao recuperar dados do telefone', error: e });\n }\n}\n\nexport async function getPhoneNumber(req, res) {\n try {\n const phoneNumber = await req.client.getWid();\n return res.status(200).json({ status: 'success', response: phoneNumber, mapper: 'device' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving phone number', error: e });\n }\n}\n\nexport async function getBlockList(req, res) {\n let response = await req.client.getBlockList();\n\n try {\n const blocked = response.map((contato) => {\n return { phone: contato ? contato.split('@')[0] : '' };\n });\n\n return res.status(200).json({ status: 'success', response: blocked });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving blocked contact list', error: e });\n }\n}\n\nexport async function deleteChat(req, res) {\n const { phone } = req.body;\n const session = req.session;\n\n try {\n let results = {};\n for (const contato of phone) {\n results[contato] = await req.client.deleteChat(contato);\n }\n returnSucess(res, session, phone, results);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\nexport async function deleteAllChats(req, res) {\n try {\n const chats = await req.client.getAllChats();\n for (const chat of chats) {\n await req.client.deleteChat(chat.chatId);\n }\n return res.status(200).json({ status: 'success' });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on delete all chats', error: error });\n }\n}\n\nexport async function clearChat(req, res) {\n const { phone } = req.body;\n const session = req.session;\n\n try {\n let results = {};\n for (const contato of phone) {\n results[contato] = await req.client.clearChat(contato);\n }\n returnSucess(res, session, phone, results);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\n\nexport async function clearAllChats(req, res) {\n try {\n const chats = await req.client.getAllChats();\n for (const chat of chats) {\n await req.client.clearChat(`${chat.chatId}`);\n }\n return res.status(201).json({ status: 'success' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on clear all chats', error: e });\n }\n}\n\nexport async function archiveChat(req, res) {\n const { phone, value = true } = req.body;\n\n try {\n let response;\n response = await req.client.archiveChat(`${phone}`, value);\n return res.status(201).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on archive chat', error: e });\n }\n}\n\nexport async function archiveAllChats(req, res) {\n try {\n const chats = await req.client.getAllChats();\n for (const chat of chats) {\n await req.client.archiveChat(`${chat.chatId}`, true);\n }\n return res.status(201).json({ status: 'success' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on archive all chats', error: e });\n }\n}\n\nexport async function deleteMessage(req, res) {\n const { phone, messageId } = req.body;\n\n try {\n await req.client.deleteMessage(`${phone}`, [messageId]);\n\n return res.status(200).json({ status: 'success', response: { message: 'Message deleted' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on delete message', error: e });\n }\n}\nexport async function reactMessage(req, res) {\n const { msgId, reaction } = req.body;\n\n try {\n await req.client.sendReactionToMessage(msgId, reaction);\n\n return res.status(200).json({ status: 'success', response: { message: 'Reaction sended' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on send reaction to message', error: e });\n }\n}\n\nexport async function reply(req, res) {\n const { phone, text, messageid } = req.body;\n\n try {\n let response = await req.client.reply(`${phone}@c.us`, text, messageid);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error replying message', error: e });\n }\n}\n\nexport async function forwardMessages(req, res) {\n const { phone, messageId, isGroup = false } = req.body;\n\n try {\n let response;\n\n if (!isGroup) {\n response = await req.client.forwardMessages(`${phone}`, [messageId], false);\n } else {\n response = await req.client.forwardMessages(`${phone}`, [messageId], false);\n }\n\n return res.status(201).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error forwarding message', error: e });\n }\n}\n\nexport async function markUnseenMessage(req, res) {\n const { phone } = req.body;\n\n try {\n await req.client.markUnseenMessage(`${phone}`);\n return res.status(200).json({ status: 'success', response: { message: 'unseen checked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on mark unseen', error: e });\n }\n}\n\nexport async function blockContact(req, res) {\n const { phone } = req.body;\n\n try {\n await req.client.blockContact(`${phone}`);\n return res.status(200).json({ status: 'success', response: { message: 'Contact blocked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on block contact', error: e });\n }\n}\n\nexport async function unblockContact(req, res) {\n const { phone } = req.body;\n\n try {\n await req.client.unblockContact(`${phone}`);\n return res.status(200).json({ status: 'success', response: { message: 'Contact UnBlocked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on unlock contact', error: e });\n }\n}\n\nexport async function pinChat(req, res) {\n const { phone, state } = req.body;\n\n try {\n for (const contato of phone) {\n await req.client.pinChat(contato, state === 'true', false);\n }\n\n return res.status(200).json({ status: 'success', response: { message: 'Chat fixed' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: e.text || 'Error on pin chat', error: e });\n }\n}\n\nexport async function setProfilePic(req, res) {\n if (!req.file) return res.status(400).json({ status: 'Error', message: 'File parameter is required!' });\n\n try {\n const { path: pathFile } = req.file;\n\n await req.client.setProfilePic(pathFile);\n await unlinkAsync(pathFile);\n\n return res.status(200).json({ status: 'success', response: { message: 'Profile photo successfully changed' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error changing profile photo', error: e });\n }\n}\n\nexport async function getUnreadMessages(req, res) {\n try {\n const response = await req.client.getUnreadMessages(false, false, true);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', response: 'Error on open list', error: e });\n }\n}\n\nexport async function getChatIsOnline(req, res) {\n const { phone } = req.params;\n try {\n const response = await req.client.getChatIsOnline(`${phone}@c.us`);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', response: 'Error on get chat is online', error: e });\n }\n}\n\nexport async function getLastSeen(req, res) {\n const { phone } = req.params;\n try {\n const response = await req.client.getLastSeen(`${phone}@c.us`);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on get chat last seen', error: error });\n }\n}\n\nexport async function getListMutes(req, res) {\n const { type = 'all' } = req.params;\n try {\n const response = await req.client.getListMutes(type);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on get list mutes', error: error });\n }\n}\n\nexport async function loadAndGetAllMessagesInChat(req, res) {\n const { phone, includeMe = true, includeNotifications = false } = req.params;\n try {\n const response = await req.client.loadAndGetAllMessagesInChat(`${phone}@c.us`, includeMe, includeNotifications);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on open list', error: error });\n }\n}\nexport async function getMessages(req, res) {\n const { phone } = req.params;\n const { count = 20, direction = 'before', id = null } = req.query;\n try {\n const response = await req.client.getMessages(`${phone}`, {\n count: parseInt(count),\n direction: direction.toString(),\n id: id,\n });\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(401).json({ status: 'error', response: 'Error on open list', error: e });\n }\n}\n\nexport async function sendContactVcard(req, res) {\n const { phone, contactsId, name = null, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.sendContactVcard(`${contato}`, contactsId, name);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send contact vcard', error: error });\n }\n}\n\nexport async function sendMute(req, res) {\n const { phone, time, type = 'hours', isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.sendMute(`${contato}`, time, type);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send mute', error: error });\n }\n}\n\nexport async function sendSeen(req, res) {\n const { phone } = req.body;\n const session = req.session;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendSeen(contato));\n }\n returnSucess(res, session, phone, results);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\n\nexport async function setChatState(req, res) {\n const { phone, chatstate, isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.setChatState(`${contato}`, chatstate);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send chat state', error: error });\n }\n}\n\nexport async function setTemporaryMessages(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.setTemporaryMessages(`${contato}`, value);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on set temporary messages', error: error });\n }\n}\n\nexport async function setTyping(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n if (value) response = await req.client.startTyping(contato);\n else response = await req.client.stopTyping(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on set typing', error: error });\n }\n}\n\nexport async function setRecording(req, res) {\n const { phone, value = true, duration, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n if (value) response = await req.client.startRecording(contato, duration);\n else response = await req.client.stopRecoring(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on set recording', error: error });\n }\n}\n\nexport async function checkNumberStatus(req, res) {\n const { phone } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.checkNumberStatus(`${contato}`);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on check number status', error: error });\n }\n}\n\nexport async function getContact(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getContact(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get contact', error: error });\n }\n}\n\nexport async function getAllContacts(req, res) {\n try {\n const response = await req.client.getAllContacts();\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get all constacts', error: error });\n }\n}\n\nexport async function getNumberProfile(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getNumberProfile(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get number profile', error: error });\n }\n}\n\nexport async function getProfilePicFromServer(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getProfilePicFromServer(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get profile pic', error: error });\n }\n}\n\nexport async function getStatus(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getStatus(contato);\n }\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get status', error: error });\n }\n}\n\nexport async function setProfileStatus(req, res) {\n const { status } = req.body;\n try {\n let response = await req.client.setProfileStatus(status);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on set profile status' });\n }\n}\nexport async function rejectCall(req, res) {\n const { callId } = req.body;\n try {\n let response = await req.client.rejectCall(callId);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on rejectCall', error: e });\n }\n}\n\nexport async function starMessage(req, res) {\n const { messageId, star = true } = req.body;\n try {\n let response = await req.client.starMessage(messageId, star);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on start message', error: error });\n }\n}\n\nexport async function getReactions(req, res) {\n const messageId = req.params.id;\n try {\n let response = await req.client.getReactions(messageId);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get reactions', error: error });\n }\n}\n\nexport async function getVotes(req, res) {\n const messageId = req.params.id;\n try {\n let response = await req.client.getVotes(messageId);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get votes', error: error });\n }\n}\nexport async function chatWoot(req, res) {\n const { session } = req.params;\n const client = clientsArray[session];\n if (client == null || client.status !== 'CONNECTED') return;\n try {\n if (await client.isConnected()) {\n const event = req.body.event;\n\n if (event == 'conversation_status_changed' || event == 'conversation_resolved' || req.body.private) {\n return res.status(200).json({ status: 'success', message: 'Success on receive chatwoot' });\n }\n\n const {\n message_type,\n phone = req.body.conversation.meta.sender.phone_number.replace('+', ''),\n message = req.body.conversation.messages[0],\n } = req.body;\n\n if (event != 'message_created' && message_type != 'outgoing') return res.status(200);\n for (const contato of contactToArray(phone, false)) {\n if (message_type == 'outgoing') {\n if (message.attachments) {\n let base_url = `${client.config.chatWoot.baseURL}/${message.attachments[0].data_url.substring(\n message.attachments[0].data_url.indexOf('/rails/') + 1\n )}`;\n await client.sendFile(`${contato}`, base_url, 'file', message.content);\n } else {\n await client.sendText(contato, message.content);\n }\n }\n }\n return res.status(200).json({ status: 'success', message: 'Success on receive chatwoot' });\n }\n } catch (e) {\n console.log(e);\n return res.status(400).json({ status: 'error', message: 'Error on receive chatwoot', error: e });\n }\n}\n"],"mappings":"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"}
@@ -27,7 +27,7 @@ var _functions = require("../util/functions"); /*
27
27
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
28
28
  * See the License for the specific language governing permissions and
29
29
  * limitations under the License.
30
- */async function getAllGroups(req, res) {try {const response = await req.client.getAllGroups();return res.status(200).json({ status: 'success', response: response });} catch (e) {req.logger.error(e);res.status(500).json({ status: 'error', message: 'Error fetching groups' });}}async function joinGroupByCode(req, res) {const { inviteCode } = req.body;
30
+ */async function getAllGroups(req, res) {try {const response = await req.client.getAllGroups();return res.status(200).json({ status: 'success', response: response });} catch (e) {req.logger.error(e);res.status(500).json({ status: 'error', message: 'Error fetching groups', error: e });}}async function joinGroupByCode(req, res) {const { inviteCode } = req.body;
31
31
 
32
32
  if (!inviteCode) return res.status(400).send({ message: 'Invitation Code is required' });
33
33
 
@@ -39,7 +39,9 @@ var _functions = require("../util/functions"); /*
39
39
  });
40
40
  } catch (error) {
41
41
  req.logger.error(error);
42
- res.status(500).json({ status: 'error', message: 'The informed contact(s) did not join the group successfully' });
42
+ res.
43
+ status(500).
44
+ json({ status: 'error', message: 'The informed contact(s) did not join the group successfully', error: error });
43
45
  }
44
46
  }
45
47
 
@@ -52,13 +54,10 @@ async function createGroup(req, res) {
52
54
 
53
55
  for (const group of (0, _functions.groupNameToArray)(name)) {
54
56
  response = await req.client.createGroup(group, (0, _functions.contactToArray)(participants));
55
-
56
57
  infoGroup.push({
57
58
  name: group,
58
59
  id: response.gid.user,
59
- participants: response.participants.map((user) => {
60
- return { user: Object.keys(user)[0] };
61
- })
60
+ participants: response.participants
62
61
  });
63
62
  }
64
63
 
@@ -68,7 +67,7 @@ async function createGroup(req, res) {
68
67
  });
69
68
  } catch (e) {
70
69
  req.logger.error(e);
71
- return res.status(500).json({ status: 'error', message: 'Error creating group(s)' });
70
+ return res.status(500).json({ status: 'error', message: 'Error creating group(s)', error: e });
72
71
  }
73
72
  }
74
73
 
@@ -86,7 +85,7 @@ async function leaveGroup(req, res) {
86
85
  });
87
86
  } catch (e) {
88
87
  req.logger.error(e);
89
- return res.status(500).json({ status: 'error', message: 'Erro ao sair do(s) grupo(s)' });
88
+ return res.status(500).json({ status: 'error', message: 'Erro ao sair do(s) grupo(s)', error: e });
90
89
  }
91
90
  }
92
91
 
@@ -101,7 +100,7 @@ async function getGroupMembers(req, res) {
101
100
  return res.status(200).json({ status: 'success', response: response });
102
101
  } catch (e) {
103
102
  req.logger.error(e);
104
- return res.status(500).json({ status: 'error', message: 'Error on get group members' });
103
+ return res.status(500).json({ status: 'error', message: 'Error on get group members', error: e });
105
104
  }
106
105
  }
107
106
 
@@ -128,7 +127,7 @@ async function addParticipant(req, res) {
128
127
  });
129
128
  } catch (e) {
130
129
  req.logger.error(e);
131
- return res.status(500).json({ status: 'error', message: 'Error adding participant(s)' });
130
+ return res.status(500).json({ status: 'error', message: 'Error adding participant(s)', error: e });
132
131
  }
133
132
  }
134
133
 
@@ -150,7 +149,7 @@ async function removeParticipant(req, res) {
150
149
  });
151
150
  } catch (e) {
152
151
  req.logger.error(e);
153
- return res.status(500).json({ status: 'error', message: 'Error removing participant(s)' });
152
+ return res.status(500).json({ status: 'error', message: 'Error removing participant(s)', error: e });
154
153
  }
155
154
  }
156
155
 
@@ -170,7 +169,7 @@ async function promoteParticipant(req, res) {
170
169
  });
171
170
  } catch (e) {
172
171
  req.logger.error(e);
173
- return res.status(500).json({ status: 'error', message: 'Error promoting participant(s)' });
172
+ return res.status(500).json({ status: 'error', message: 'Error promoting participant(s)', error: e });
174
173
  }
175
174
  }
176
175
 
@@ -190,7 +189,7 @@ async function demoteParticipant(req, res) {
190
189
  });
191
190
  } catch (e) {
192
191
  req.logger.error(e);
193
- return res.status(500).json({ status: 'error', message: "Error revoking participant's admin(s)" });
192
+ return res.status(500).json({ status: 'error', message: "Error revoking participant's admin(s)", error: e });
194
193
  }
195
194
  }
196
195
 
@@ -209,7 +208,7 @@ async function getGroupAdmins(req, res) {
209
208
  return res.status(200).json({ status: 'success', response: arrayGroups });
210
209
  } catch (e) {
211
210
  req.logger.error(e);
212
- return res.status(500).json({ status: 'error', message: 'Error retrieving group admin(s)' });
211
+ return res.status(500).json({ status: 'error', message: 'Error retrieving group admin(s)', error: e });
213
212
  }
214
213
  }
215
214
 
@@ -224,7 +223,7 @@ async function getGroupInviteLink(req, res) {
224
223
  return res.status(200).json({ status: 'success', response: response });
225
224
  } catch (e) {
226
225
  req.logger.error(e);
227
- return res.status(500).json({ status: 'error', message: 'Error on get group invite link' });
226
+ return res.status(500).json({ status: 'error', message: 'Error on get group invite link', error: e });
228
227
  }
229
228
  }
230
229
 
@@ -244,7 +243,7 @@ async function revokeGroupInviteLink(req, res) {
244
243
  });
245
244
  } catch (e) {
246
245
  req.logger.error(e);
247
- return res.status(400).json('Error on revoke group invite link');
246
+ return res.status(400).json({ status: 'error', message: 'Error on revoke group invite link', error: e });
248
247
  }
249
248
  }
250
249
 
@@ -254,7 +253,7 @@ async function getAllBroadcastList(req, res) {
254
253
  return res.status(200).json({ status: 'success', response: response });
255
254
  } catch (e) {
256
255
  req.logger.error(e);
257
- return res.status(500).json({ status: 'error', message: 'Error on get all broad cast list' });
256
+ return res.status(500).json({ status: 'error', message: 'Error on get all broad cast list', error: e });
258
257
  }
259
258
  }
260
259
 
@@ -265,7 +264,7 @@ async function getGroupInfoFromInviteLink(req, res) {
265
264
  return res.status(200).json({ status: 'success', response: response });
266
265
  } catch (e) {
267
266
  req.logger.error(e);
268
- return res.status(500).json({ status: 'error', message: 'Error on get group info from invite link' });
267
+ return res.status(500).json({ status: 'error', message: 'Error on get group info from invite link', error: e });
269
268
  }
270
269
  }
271
270
 
@@ -279,7 +278,7 @@ async function getGroupMembersIds(req, res) {
279
278
  return res.status(200).json({ status: 'success', response: response });
280
279
  } catch (e) {
281
280
  req.logger.error(e);
282
- return res.status(500).json({ status: 'error', message: 'Error on get group members ids' });
281
+ return res.status(500).json({ status: 'error', message: 'Error on get group members ids', error: e });
283
282
  }
284
283
  }
285
284
 
@@ -296,7 +295,7 @@ async function setGroupDescription(req, res) {
296
295
  return res.status(200).json({ status: 'success', response: response });
297
296
  } catch (e) {
298
297
  req.logger.error(e);
299
- return res.status(500).json({ status: 'error', message: 'Error on set group description' });
298
+ return res.status(500).json({ status: 'error', message: 'Error on set group description', error: e });
300
299
  }
301
300
  }
302
301
 
@@ -313,7 +312,7 @@ async function setGroupProperty(req, res) {
313
312
  return res.status(200).json({ status: 'success', response: response });
314
313
  } catch (e) {
315
314
  req.logger.error(e);
316
- return res.status(500).json({ status: 'error', message: 'Error on set group property' });
315
+ return res.status(500).json({ status: 'error', message: 'Error on set group property', error: e });
317
316
  }
318
317
  }
319
318
 
@@ -330,7 +329,7 @@ async function setGroupSubject(req, res) {
330
329
  return res.status(200).json({ status: 'success', response: response });
331
330
  } catch (e) {
332
331
  req.logger.error(e);
333
- return res.status(500).json({ status: 'error', message: 'Error on set group subject' });
332
+ return res.status(500).json({ status: 'error', message: 'Error on set group subject', error: e });
334
333
  }
335
334
  }
336
335
 
@@ -347,7 +346,7 @@ async function setMessagesAdminsOnly(req, res) {
347
346
  return res.status(200).json({ status: 'success', response: response });
348
347
  } catch (e) {
349
348
  req.logger.error(e);
350
- return res.status(500).json({ status: 'error', message: 'Error on set messages admins only' });
349
+ return res.status(500).json({ status: 'error', message: 'Error on set messages admins only', error: e });
351
350
  }
352
351
  }
353
352
 
@@ -362,7 +361,7 @@ async function changePrivacyGroup(req, res) {
362
361
  return res.status(200).json({ status: 'success', response: { message: 'Group privacy changed successfully' } });
363
362
  } catch (e) {
364
363
  req.logger.error(e);
365
- return res.status(500).json({ status: 'error', message: 'Error changing group privacy' });
364
+ return res.status(500).json({ status: 'error', message: 'Error changing group privacy', error: e });
366
365
  }
367
366
  }
368
367
 
@@ -386,7 +385,7 @@ async function setGroupProfilePic(req, res) {
386
385
  json({ status: 'success', response: { message: 'Group profile photo successfully changed' } });
387
386
  } catch (e) {
388
387
  req.logger.error(e);
389
- return res.status(500).json({ status: 'error', message: 'Error changing group photo' });
388
+ return res.status(500).json({ status: 'error', message: 'Error changing group photo', error: e });
390
389
  }
391
390
  }
392
391
  //# sourceMappingURL=groupController.js.map