{"version":3,"sources":["src/common.speech/Transcription/ConversationWebsocketMessageFormatter.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,iBAAiB,EAEjB,0BAA0B,EAE1B,mBAAmB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF;;GAEG;AACH,qBAAa,qCAAsC,YAAW,0BAA0B;IAEpF;;OAEG;IACI,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAiBhG;;OAEG;IACI,qBAAqB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAezF","file":"ConversationWebsocketMessageFormatter.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n\nimport {\n    ConnectionMessage,\n    Deferred,\n    IWebsocketMessageFormatter,\n    MessageType,\n    RawWebsocketMessage,\n} from \"../../common/Exports.js\";\nimport { ConversationConnectionMessage } from \"./ConversationConnectionMessage.js\";\n\n/**\n * Based off WebsocketMessageFormatter. The messages for Conversation Translator have some variations from the Speech messages.\n */\nexport class ConversationWebsocketMessageFormatter implements IWebsocketMessageFormatter {\n\n    /**\n     * Format incoming messages: text (speech partial/final, IM) or binary (tts)\n     */\n    public toConnectionMessage(message: RawWebsocketMessage): Promise<ConversationConnectionMessage> {\n        const deferral = new Deferred<ConversationConnectionMessage>();\n\n        try {\n            if (message.messageType === MessageType.Text) {\n                const incomingMessage: ConversationConnectionMessage = new ConversationConnectionMessage(message.messageType, message.textContent, {}, message.id);\n                deferral.resolve(incomingMessage);\n            } else if (message.messageType === MessageType.Binary) {\n                deferral.resolve(new ConversationConnectionMessage(message.messageType, message.binaryContent, undefined, message.id));\n            }\n        } catch (e) {\n            deferral.reject(`Error formatting the message. Error: ${e as string}`);\n        }\n\n        return deferral.promise;\n    }\n\n    /**\n     * Format outgoing messages: text (commands or IM)\n     */\n    public fromConnectionMessage(message: ConnectionMessage): Promise<RawWebsocketMessage> {\n\n        const deferral = new Deferred<RawWebsocketMessage>();\n\n        try {\n            if (message.messageType === MessageType.Text) {\n                const payload = `${message.textBody ? message.textBody : \"\"}`;\n                deferral.resolve(new RawWebsocketMessage(MessageType.Text, payload, message.id));\n            }\n        } catch (e) {\n            deferral.reject(`Error formatting the message. ${e as string}`);\n        }\n\n        return deferral.promise;\n    }\n}\n"]}