{"version":3,"sources":["src/common.speech/SpeechConnectionMessage.Internal.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOzG,qBAAa,uBAAwB,SAAQ,iBAAiB;IAE1D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,qBAAqB,CAA4B;gBAGrD,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,GAAG,EACT,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAC7C,EAAE,CAAC,EAAE,MAAM;aAuCJ,IAAI,EAAI,MAAM;aAId,SAAS,EAAI,MAAM;aAInB,WAAW,EAAI,MAAM;aAIrB,iBAAiB,EAAI,iBAAiB,CAAC,MAAM,CAAC;IAIzD,OAAc,qBAAqB,0DAiClC;CACJ","file":"SpeechConnectionMessage.Internal.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n\nimport { ArgumentNullError, ConnectionMessage, IStringDictionary, MessageType } from \"../common/Exports\";\n\nconst PathHeaderName: string = \"path\";\nconst ContentTypeHeaderName: string = \"content-type\";\nconst RequestIdHeaderName: string = \"x-requestid\";\nconst RequestTimestampHeaderName: string = \"x-timestamp\";\n\nexport class SpeechConnectionMessage extends ConnectionMessage {\n\n    private privPath: string;\n    private privRequestId: string;\n    private privContentType: string;\n    private privAdditionalHeaders: IStringDictionary<string>;\n\n    public constructor(\n        messageType: MessageType,\n        path: string,\n        requestId: string,\n        contentType: string,\n        body: any,\n        additionalHeaders?: IStringDictionary<string>,\n        id?: string) {\n\n        if (!path) {\n            throw new ArgumentNullError(\"path\");\n        }\n\n        if (!requestId) {\n            throw new ArgumentNullError(\"requestId\");\n        }\n\n        const headers: IStringDictionary<string> = {};\n        headers[PathHeaderName] = path;\n        headers[RequestIdHeaderName] = requestId;\n        headers[RequestTimestampHeaderName] = new Date().toISOString();\n        if (contentType) {\n            headers[ContentTypeHeaderName] = contentType;\n        }\n\n        if (additionalHeaders) {\n            for (const headerName in additionalHeaders) {\n                if (headerName) {\n                    headers[headerName] = additionalHeaders[headerName];\n                }\n\n            }\n        }\n\n        if (id) {\n            super(messageType, body, headers, id);\n        } else {\n            super(messageType, body, headers);\n        }\n\n        this.privPath = path;\n        this.privRequestId = requestId;\n        this.privContentType = contentType;\n        this.privAdditionalHeaders = additionalHeaders;\n    }\n\n    public get path(): string {\n        return this.privPath;\n    }\n\n    public get requestId(): string {\n        return this.privRequestId;\n    }\n\n    public get contentType(): string {\n        return this.privContentType;\n    }\n\n    public get additionalHeaders(): IStringDictionary<string> {\n        return this.privAdditionalHeaders;\n    }\n\n    public static fromConnectionMessage = (message: ConnectionMessage): SpeechConnectionMessage => {\n        let path = null;\n        let requestId = null;\n        let contentType = null;\n        let requestTimestamp = null;\n        const additionalHeaders: IStringDictionary<string> = {};\n\n        if (message.headers) {\n            for (const headerName in message.headers) {\n                if (headerName) {\n                    if (headerName.toLowerCase() === PathHeaderName.toLowerCase()) {\n                        path = message.headers[headerName];\n                    } else if (headerName.toLowerCase() === RequestIdHeaderName.toLowerCase()) {\n                        requestId = message.headers[headerName];\n                    } else if (headerName.toLowerCase() === RequestTimestampHeaderName.toLowerCase()) {\n                        requestTimestamp = message.headers[headerName];\n                    } else if (headerName.toLowerCase() === ContentTypeHeaderName.toLowerCase()) {\n                        contentType = message.headers[headerName];\n                    } else {\n                        additionalHeaders[headerName] = message.headers[headerName];\n                    }\n                }\n            }\n        }\n\n        return new SpeechConnectionMessage(\n            message.messageType,\n            path,\n            requestId,\n            contentType,\n            message.body,\n            additionalHeaders,\n            message.id);\n    }\n}\n"]}