403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/v2/provider/service/sending/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/v2/provider/service/sending/dist/sending.bundle.js.map
{"version":3,"file":"sending.bundle.js","sources":["../src/sending.js"],"sourcesContent":["import { Type } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\n\nimport { Utils } from 'im.v2.lib.utils';\nimport { Logger } from 'im.v2.lib.logger';\nimport { runAction, type RunActionError } from 'im.v2.lib.rest';\nimport { Core } from 'im.v2.application.core';\nimport { EventType, RestMethod, DialogScrollThreshold, ChatType } from 'im.v2.const';\nimport { MessageService } from 'im.v2.provider.service.message';\n\nimport type { Store } from 'ui.vue3.vuex';\nimport type { ImModelChat, ImModelMessage } from 'im.v2.model';\nimport type { PlainMessageParams, CopilotMessageParams, FileMessageParams, PreparedMessage } from './types/sending';\n\nexport type { ForwardedEntityConfig, PanelContext, PanelContextWithMultipleIds } from './types/sending';\n\nexport class SendingService\n{\n\t#store: Store;\n\n\tstatic instance: SendingService = null;\n\n\tstatic getInstance(): SendingService\n\t{\n\t\tif (!this.instance)\n\t\t{\n\t\t\tthis.instance = new this();\n\t\t}\n\n\t\treturn this.instance;\n\t}\n\n\tconstructor()\n\t{\n\t\tthis.#store = Core.getStore();\n\t}\n\n\tasync sendMessage(params: PlainMessageParams): void\n\t{\n\t\tconst { text = '' } = params;\n\t\tif (!Type.isStringFilled(text))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tLogger.warn('SendingService: sendMessage', params);\n\t\tconst message = this.#prepareMessage(params);\n\n\t\tvoid this.#processMessageSending(message);\n\t}\n\n\tasync sendMessageWithFiles(params: FileMessageParams): Promise\n\t{\n\t\tconst { text = '', fileIds = [] } = params;\n\t\tif (!Type.isStringFilled(text) && !Type.isArrayFilled(fileIds))\n\t\t{\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tLogger.warn('SendingService: sendMessage with files', params);\n\t\tconst message: PreparedMessage = this.#prepareMessageWithFiles(params);\n\n\t\tawait this.#handlePagination(message.dialogId);\n\t\tawait this.#addLoadingMessage(message);\n\t\tawait this.#addMessageToRecent(message);\n\t\tawait this.#clearLastMessageViews(message.dialogId);\n\n\t\tthis.#sendScrollEvent({\n\t\t\tforce: true,\n\t\t\tdialogId: message.dialogId,\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\tasync forwardMessages(params: PlainMessageParams): Promise\n\t{\n\t\tconst { forwardIds, dialogId, text } = params;\n\t\tif (!Type.isArrayFilled(forwardIds))\n\t\t{\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\tLogger.warn('SendingService: forwardMessages', params);\n\n\t\tawait this.#handlePagination(dialogId);\n\n\t\tlet commentMessage = null;\n\t\tif (Type.isStringFilled(text))\n\t\t{\n\t\t\tcommentMessage = this.#prepareMessage(params);\n\t\t\tawait this.#addMessageToModels(commentMessage);\n\t\t}\n\n\t\tconst sortForwardIds = [...forwardIds].sort();\n\t\tconst forwardUuidMap = this.#getForwardUuidMap(sortForwardIds);\n\t\tconst forwardedMessages = this.#prepareForwardMessages(params, forwardUuidMap);\n\n\t\tawait this.#addForwardsToModels(forwardedMessages);\n\n\t\tthis.#sendScrollEvent({ force: true, dialogId });\n\n\t\treturn this.#sendForwardRequest({ forwardUuidMap, commentMessage, dialogId });\n\t}\n\n\tasync retrySendMessage(params: { tempMessageId: string, dialogId: string }): Promise\n\t{\n\t\tconst { tempMessageId, dialogId } = params;\n\t\tconst unsentMessage: ImModelMessage = this.#store.getters['messages/getById'](tempMessageId);\n\t\tif (!unsentMessage)\n\t\t{\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tthis.#removeMessageError(tempMessageId);\n\t\tconst message = this.#prepareMessage({\n\t\t\ttext: unsentMessage.text,\n\t\t\tdialogId,\n\t\t\ttempMessageId: unsentMessage.id,\n\t\t\treplyId: unsentMessage.replyId,\n\t\t});\n\n\t\tif (Type.isStringFilled(unsentMessage.forward.id))\n\t\t{\n\t\t\tconst [, forwardId] = unsentMessage.forward.id.split('/');\n\t\t\tconst forwardUuidMap = { [unsentMessage.id]: forwardId };\n\n\t\t\treturn this.#sendForwardRequest({ forwardUuidMap, dialogId });\n\t\t}\n\n\t\treturn this.#sendAndProcessMessage(message);\n\t}\n\n\tasync sendCopilotPrompt(params: CopilotMessageParams): Promise\n\t{\n\t\tconst { text = '' } = params;\n\t\tif (!Type.isStringFilled(text))\n\t\t{\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tLogger.warn('SendingService: sendCopilotPrompt', params);\n\t\tconst message = this.#preparePrompt(params);\n\n\t\treturn this.#processMessageSending(message);\n\t}\n\n\tasync #addLoadingMessage(message: PreparedMessage): Promise<void>\n\t{\n\t\treturn this.#store.dispatch('messages/addLoadingMessage', { message });\n\t}\n\n\tasync #processMessageSending(message: PreparedMessage): Promise\n\t{\n\t\tawait this.#handleAddingMessageToModels(message);\n\n\t\treturn this.#sendAndProcessMessage(message);\n\t}\n\n\tasync #handleAddingMessageToModels(message)\n\t{\n\t\tawait this.#handlePagination(message.dialogId);\n\t\tawait this.#addMessageToModels(message);\n\n\t\tthis.#sendScrollEvent({ force: true, dialogId: message.dialogId });\n\t}\n\n\tasync #sendAndProcessMessage(message: PreparedMessage): Promise\n\t{\n\t\tconst sendResult = await this.#sendMessageToServer(message)\n\t\t\t.catch((errors) => {\n\t\t\t\tthis.#updateMessageError(message.temporaryId);\n\t\t\t\tthis.#logSendErrors(errors, 'sendAndProcessMessage');\n\t\t\t});\n\n\t\tLogger.warn('SendingService: sendAndProcessMessage result -', sendResult);\n\t\tconst { id } = sendResult;\n\t\tif (!id)\n\t\t{\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tthis.#updateModels({\n\t\t\toldId: message.temporaryId,\n\t\t\tnewId: id,\n\t\t\tdialogId: message.dialogId,\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\t#prepareMessage(params: PlainMessageParams): PreparedMessage\n\t{\n\t\tconst { text, tempMessageId, dialogId, replyId, forwardIds } = params;\n\n\t\tconst defaultFields = {\n\t\t\tauthorId: Core.getUserId(),\n\t\t\tunread: false,\n\t\t\tsending: true,\n\t\t};\n\n\t\treturn {\n\t\t\ttext,\n\t\t\tdialogId,\n\t\t\tchatId: this.#getDialog(dialogId).chatId,\n\t\t\ttemporaryId: tempMessageId ?? Utils.text.getUuidV4(),\n\t\t\treplyId,\n\t\t\tforwardIds,\n\t\t\tviewedByOthers: this.#needToSetAsViewed(dialogId),\n\t\t\t...defaultFields,\n\t\t};\n\t}\n\n\t#prepareMessageWithFiles(params: FileMessageParams): PreparedMessage\n\t{\n\t\tconst { fileIds } = params;\n\t\tif (!Type.isArrayFilled(fileIds))\n\t\t{\n\t\t\tthrow new Error('SendingService: sendMessageWithFile: no fileId provided');\n\t\t}\n\n\t\treturn {\n\t\t\t...this.#prepareMessage(params),\n\t\t\tparams: { FILE_ID: fileIds },\n\t\t};\n\t}\n\n\t#preparePrompt(params: CopilotMessageParams): PreparedMessage\n\t{\n\t\tconst { copilot } = params;\n\t\tif (!copilot || !copilot.promptCode)\n\t\t{\n\t\t\tthrow new Error('SendingService: preparePrompt: no code provided');\n\t\t}\n\n\t\treturn {\n\t\t\t...this.#prepareMessage(params),\n\t\t\tcopilot,\n\t\t};\n\t}\n\n\tasync #handlePagination(dialogId: string): Promise\n\t{\n\t\tif (!this.#getDialog(dialogId).hasNextPage)\n\t\t{\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tLogger.warn('SendingService: sendMessage: there are unread pages, move to chat end');\n\t\tconst messageService = new MessageService({ chatId: this.#getDialog(dialogId).chatId });\n\n\t\tawait messageService.loadContext(this.#getDialog(dialogId).lastMessageId);\n\t\tthis.#sendScrollEvent({ dialogId });\n\n\t\treturn Promise.resolve();\n\t}\n\n\t#addMessageToModels(message: PreparedMessage): Promise\n\t{\n\t\tthis.#addMessageToRecent(message);\n\n\t\tvoid this.#clearLastMessageViews(message.dialogId);\n\n\t\treturn this.#store.dispatch('messages/add', message);\n\t}\n\n\t#addMessageToRecent(message: PreparedMessage)\n\t{\n\t\tconst hasMessageText: boolean = Type.isStringFilled(message.text);\n\t\tconst hasMessageFile: boolean = Type.isArrayFilled(message.params?.FILE_ID);\n\n\t\tif (hasMessageText || hasMessageFile)\n\t\t{\n\t\t\tvoid this.#store.dispatch('recent/update', {\n\t\t\t\tid: message.dialogId,\n\t\t\t\tfields: { messageId: message.temporaryId },\n\t\t\t});\n\t\t}\n\t}\n\n\t#sendMessageToServer(message: PreparedMessage): Promise\n\t{\n\t\tconst fields = {};\n\n\t\tif (message.replyId)\n\t\t{\n\t\t\tfields.replyId = message.replyId;\n\t\t}\n\n\t\tif (message.forwardIds)\n\t\t{\n\t\t\tfields.forwardIds = message.forwardIds;\n\t\t}\n\n\t\tif (message.text)\n\t\t{\n\t\t\tfields.message = message.text;\n\t\t\tfields.templateId = message.temporaryId;\n\t\t}\n\n\t\tif (message.copilot)\n\t\t{\n\t\t\tfields.copilot = message.copilot;\n\t\t}\n\n\t\tconst queryData = {\n\t\t\tdialogId: message.dialogId.toString(),\n\t\t\tfields,\n\t\t};\n\n\t\treturn runAction(RestMethod.imV2ChatMessageSend, { data: queryData });\n\t}\n\n\t#updateModels(params: { oldId: string, newId: number, dialogId: string })\n\t{\n\t\tconst { oldId, newId, dialogId } = params;\n\t\tvoid this.#store.dispatch('messages/updateWithId', {\n\t\t\tid: oldId,\n\t\t\tfields: { id: newId },\n\t\t});\n\t\tvoid this.#store.dispatch('chats/update', {\n\t\t\tdialogId,\n\t\t\tfields: {\n\t\t\t\tlastId: newId,\n\t\t\t\tlastMessageId: newId,\n\t\t\t},\n\t\t});\n\t\tvoid this.#store.dispatch('recent/update', {\n\t\t\tid: dialogId,\n\t\t\tfields: { messageId: newId },\n\t\t});\n\t}\n\n\t#updateMessageError(messageId: string)\n\t{\n\t\tvoid this.#store.dispatch('messages/update', {\n\t\t\tid: messageId,\n\t\t\tfields: { error: true },\n\t\t});\n\t}\n\n\t#removeMessageError(messageId: string)\n\t{\n\t\tvoid this.#store.dispatch('messages/update', {\n\t\t\tid: messageId,\n\t\t\tfields: {\n\t\t\t\tsending: true,\n\t\t\t\terror: false,\n\t\t\t},\n\t\t});\n\t}\n\n\t#sendScrollEvent(params: {force: boolean, dialogId: string} = {})\n\t{\n\t\tconst { force = false, dialogId } = params;\n\t\tEventEmitter.emit(EventType.dialog.scrollToBottom, {\n\t\t\tchatId: this.#getDialog(dialogId).chatId,\n\t\t\tthreshold: force ? DialogScrollThreshold.none : DialogScrollThreshold.halfScreenUp,\n\t\t});\n\t}\n\n\t#getDialog(dialogId: string): ImModelChat\n\t{\n\t\treturn this.#store.getters['chats/get'](dialogId, true);\n\t}\n\n\t#getDialogByChatId(chatId: number): ImModelChat\n\t{\n\t\treturn this.#store.getters['chats/getByChatId'](chatId, true);\n\t}\n\n\t#needToSetAsViewed(dialogId: string): boolean\n\t{\n\t\treturn this.#store.getters['users/bots/isNetwork'](dialogId);\n\t}\n\n\t#handleForwardMessageResponse(params: { response: Object, dialogId: string, commentMessage: PreparedMessage })\n\t{\n\t\tconst { response, dialogId, commentMessage } = params;\n\t\tconst { id, uuidMap } = response;\n\n\t\tif (id)\n\t\t{\n\t\t\tthis.#updateModels({\n\t\t\t\toldId: commentMessage.temporaryId,\n\t\t\t\tnewId: id,\n\t\t\t\tdialogId,\n\t\t\t});\n\t\t}\n\t\tObject.entries(uuidMap).forEach(([uuid: string, messageId: number]) => {\n\t\t\tthis.#updateModels({\n\t\t\t\toldId: uuid,\n\t\t\t\tnewId: messageId,\n\t\t\t\tdialogId,\n\t\t\t});\n\t\t});\n\t}\n\n\t#handleForwardMessageError({ commentMessage, forwardUuidMap })\n\t{\n\t\tif (commentMessage)\n\t\t{\n\t\t\tvoid this.#store.dispatch('messages/update', {\n\t\t\t\tid: commentMessage.temporaryId,\n\t\t\t\tfields: { error: true },\n\t\t\t});\n\t\t}\n\n\t\tObject.keys(forwardUuidMap).forEach((uuid: string) => {\n\t\t\tvoid this.#store.dispatch('messages/update', {\n\t\t\t\tid: uuid,\n\t\t\t\tfields: { error: true },\n\t\t\t});\n\t\t});\n\t}\n\n\t#prepareForwardMessages(params: PlainMessageParams, forwardUuidMap: {[string]: number}): PreparedMessage[]\n\t{\n\t\tconst { forwardIds, dialogId } = params;\n\t\tif (forwardIds.length === 0)\n\t\t{\n\t\t\treturn [];\n\t\t}\n\n\t\tconst preparedMessages = [];\n\t\tObject.entries(forwardUuidMap).forEach(([uuid: string, messageId: number]) => {\n\t\t\tconst message: ImModelMessage = this.#store.getters['messages/getById'](messageId);\n\t\t\tif (!message)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tpreparedMessages.push({\n\t\t\t\t...this.#prepareMessage({ dialogId, text: message.text, tempMessageId: uuid, replyId: message.replyId }),\n\t\t\t\tforward: this.#prepareForwardParams(messageId),\n\t\t\t\tattach: message.attach,\n\t\t\t\tisDeleted: message.isDeleted,\n\t\t\t\tfiles: message.files,\n\t\t\t});\n\t\t});\n\n\t\treturn preparedMessages;\n\t}\n\n\t#prepareForwardParams(messageId: number): { id: string, userId: number, chatType: string, chatTitle: string }\n\t{\n\t\tconst message: ImModelMessage = this.#store.getters['messages/getById'](messageId);\n\t\tconst chat = this.#getDialogByChatId(message.chatId);\n\n\t\tconst isForward = this.#store.getters['messages/isForward'](messageId);\n\n\t\tconst userId = isForward ? message.forward.userId : message.authorId;\n\t\tconst chatType = isForward ? message.forward.chatType : chat.type;\n\t\tlet chatTitle = isForward ? message.forward.chatTitle : chat.name;\n\t\tif (chatType === ChatType.channel)\n\t\t{\n\t\t\tchatTitle = null;\n\t\t}\n\n\t\treturn {\n\t\t\tid: this.#buildForwardContextId(message.chatId, messageId),\n\t\t\tuserId,\n\t\t\tchatType,\n\t\t\tchatTitle,\n\t\t};\n\t}\n\n\t#prepareSendForwardRequest(params: {\n\t\tforwardUuidMap: { [string]: number },\n\t\tcommentMessage: ?PreparedMessage,\n\t\tdialogId: string\n\t}): { dialogId: string, forwardIds: { [string]: number }, text?: string, temporaryId?: string }\n\t{\n\t\tconst { dialogId, forwardUuidMap, commentMessage } = params;\n\n\t\tconst requestPrams = {\n\t\t\tdialogId,\n\t\t\tforwardIds: forwardUuidMap,\n\t\t};\n\n\t\tif (commentMessage)\n\t\t{\n\t\t\trequestPrams.text = commentMessage.text;\n\t\t\trequestPrams.temporaryId = commentMessage.temporaryId;\n\t\t}\n\n\t\treturn requestPrams;\n\t}\n\n\t#addForwardsToModels(forwardedMessages: PreparedMessage[]): Promise\n\t{\n\t\tconst addPromises = [];\n\t\tforwardedMessages.forEach((message) => {\n\t\t\taddPromises.push(this.#addMessageToModels(message));\n\t\t});\n\n\t\treturn Promise.all(addPromises);\n\t}\n\n\t#getForwardUuidMap(forwardIds: number[]): { [string]: number }\n\t{\n\t\tconst uuidMap = {};\n\t\tforwardIds.forEach((id) => {\n\t\t\tuuidMap[Utils.text.getUuidV4()] = id;\n\t\t});\n\n\t\treturn uuidMap;\n\t}\n\n\t#buildForwardContextId(chatId: number, messageId: number): string\n\t{\n\t\tconst dialogId = this.#getDialogByChatId(chatId).dialogId;\n\t\tif (dialogId.startsWith('chat'))\n\t\t{\n\t\t\treturn `${dialogId}/${messageId}`;\n\t\t}\n\n\t\tconst currentUser = Core.getUserId();\n\n\t\treturn `${dialogId}:${currentUser}/${messageId}`;\n\t}\n\n\t#logSendErrors(errors: RunActionError[], methodName: string)\n\t{\n\t\terrors.forEach((error) => {\n\t\t\tconsole.error(`SendingService: ${methodName} error: code: ${error.code} message: ${error.message}`);\n\t\t});\n\t}\n\n\t#clearLastMessageViews(dialogId: string): Promise<any>\n\t{\n\t\treturn this.#store.dispatch('chats/clearLastMessageViews', {\n\t\t\tdialogId,\n\t\t});\n\t}\n\n\tasync #sendForwardRequest({ forwardUuidMap, commentMessage, dialogId }): Promise<void>\n\t{\n\t\ttry\n\t\t{\n\t\t\tconst requestParams = this.#prepareSendForwardRequest({ forwardUuidMap, commentMessage, dialogId });\n\t\t\tconst response = await this.#sendMessageToServer(requestParams);\n\t\t\tLogger.warn('SendingService: forwardMessage result -', response);\n\t\t\tthis.#handleForwardMessageResponse({ response, dialogId, commentMessage });\n\t\t}\n\t\tcatch (errors)\n\t\t{\n\t\t\tthis.#handleForwardMessageError({ commentMessage, forwardUuidMap });\n\t\t\tthis.#logSendErrors(errors, 'forwardMessage');\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n}\n"],"names":["SendingService","getInstance","instance","constructor","Core","getStore","sendMessage","params","text","Type","isStringFilled","Logger","warn","message","sendMessageWithFiles","fileIds","isArrayFilled","Promise","resolve","dialogId","force","forwardMessages","forwardIds","commentMessage","sortForwardIds","sort","forwardUuidMap","forwardedMessages","retrySendMessage","tempMessageId","unsentMessage","getters","id","replyId","forward","forwardId","split","sendCopilotPrompt","dispatch","sendResult","catch","errors","temporaryId","oldId","newId","defaultFields","authorId","getUserId","unread","sending","chatId","Utils","getUuidV4","viewedByOthers","Error","FILE_ID","copilot","promptCode","hasNextPage","messageService","MessageService","loadContext","lastMessageId","hasMessageText","hasMessageFile","fields","messageId","templateId","queryData","toString","runAction","RestMethod","imV2ChatMessageSend","data","lastId","error","EventEmitter","emit","EventType","dialog","scrollToBottom","threshold","DialogScrollThreshold","none","halfScreenUp","response","uuidMap","Object","entries","forEach","uuid","keys","length","preparedMessages","push","attach","isDeleted","files","chat","isForward","userId","chatType","type","chatTitle","name","ChatType","channel","requestPrams","addPromises","all","startsWith","currentUser","methodName","console","code","requestParams"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit