a9dfbb298ec042f123160713197958a0ebd736260c3da5c6518901752802f48c.json 17 KB

1
  1. {"ast":null,"code":"\"use strict\";\n\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WebsocketMessageFormatter = void 0;\nconst Exports_js_1 = require(\"../common/Exports.js\");\nconst CRLF = \"\\r\\n\";\nclass WebsocketMessageFormatter {\n toConnectionMessage(message) {\n const deferral = new Exports_js_1.Deferred();\n try {\n if (message.messageType === Exports_js_1.MessageType.Text) {\n const textMessage = message.textContent;\n let headers = {};\n let body = null;\n if (textMessage) {\n const headerBodySplit = textMessage.split(\"\\r\\n\\r\\n\");\n if (headerBodySplit && headerBodySplit.length > 0) {\n headers = this.parseHeaders(headerBodySplit[0]);\n if (headerBodySplit.length > 1) {\n body = headerBodySplit[1];\n }\n }\n }\n deferral.resolve(new Exports_js_1.ConnectionMessage(message.messageType, body, headers, message.id));\n } else if (message.messageType === Exports_js_1.MessageType.Binary) {\n const binaryMessage = message.binaryContent;\n let headers = {};\n let body = null;\n if (!binaryMessage || binaryMessage.byteLength < 2) {\n throw new Error(\"Invalid binary message format. Header length missing.\");\n }\n const dataView = new DataView(binaryMessage);\n const headerLength = dataView.getInt16(0);\n if (binaryMessage.byteLength < headerLength + 2) {\n throw new Error(\"Invalid binary message format. Header content missing.\");\n }\n let headersString = \"\";\n for (let i = 0; i < headerLength; i++) {\n headersString += String.fromCharCode(dataView.getInt8(i + 2));\n }\n headers = this.parseHeaders(headersString);\n if (binaryMessage.byteLength > headerLength + 2) {\n body = binaryMessage.slice(2 + headerLength);\n }\n deferral.resolve(new Exports_js_1.ConnectionMessage(message.messageType, body, headers, message.id));\n }\n } catch (e) {\n deferral.reject(`Error formatting the message. Error: ${e}`);\n }\n return deferral.promise;\n }\n fromConnectionMessage(message) {\n const deferral = new Exports_js_1.Deferred();\n try {\n if (message.messageType === Exports_js_1.MessageType.Text) {\n const payload = `${this.makeHeaders(message)}${CRLF}${message.textBody ? message.textBody : \"\"}`;\n deferral.resolve(new Exports_js_1.RawWebsocketMessage(Exports_js_1.MessageType.Text, payload, message.id));\n } else if (message.messageType === Exports_js_1.MessageType.Binary) {\n const headersString = this.makeHeaders(message);\n const content = message.binaryBody;\n const headerBuffer = this.stringToArrayBuffer(headersString);\n const headerInt8Array = new Int8Array(headerBuffer);\n const headerLength = headerInt8Array.byteLength;\n const payloadInt8Array = new Int8Array(2 + headerLength + (content ? content.byteLength : 0));\n payloadInt8Array[0] = headerLength >> 8 & 0xff;\n payloadInt8Array[1] = headerLength & 0xff;\n payloadInt8Array.set(headerInt8Array, 2);\n if (content) {\n const bodyInt8Array = new Int8Array(content);\n payloadInt8Array.set(bodyInt8Array, 2 + headerLength);\n }\n const payload = payloadInt8Array.buffer;\n deferral.resolve(new Exports_js_1.RawWebsocketMessage(Exports_js_1.MessageType.Binary, payload, message.id));\n }\n } catch (e) {\n deferral.reject(`Error formatting the message. ${e}`);\n }\n return deferral.promise;\n }\n makeHeaders(message) {\n let headersString = \"\";\n if (message.headers) {\n for (const header in message.headers) {\n if (header) {\n headersString += `${header}: ${message.headers[header]}${CRLF}`;\n }\n }\n }\n return headersString;\n }\n parseHeaders(headersString) {\n const headers = {};\n if (headersString) {\n const headerMatches = headersString.match(/[^\\r\\n]+/g);\n if (headers) {\n for (const header of headerMatches) {\n if (header) {\n const separatorIndex = header.indexOf(\":\");\n const headerName = separatorIndex > 0 ? header.substr(0, separatorIndex).trim().toLowerCase() : header;\n const headerValue = separatorIndex > 0 && header.length > separatorIndex + 1 ? header.substr(separatorIndex + 1).trim() : \"\";\n headers[headerName] = headerValue;\n }\n }\n }\n }\n return headers;\n }\n stringToArrayBuffer(str) {\n const buffer = new ArrayBuffer(str.length);\n const view = new DataView(buffer);\n for (let i = 0; i < str.length; i++) {\n view.setUint8(i, str.charCodeAt(i));\n }\n return buffer;\n }\n}\nexports.WebsocketMessageFormatter = WebsocketMessageFormatter;","map":{"version":3,"names":["Object","defineProperty","exports","value","WebsocketMessageFormatter","Exports_js_1","require","CRLF","toConnectionMessage","message","deferral","Deferred","messageType","MessageType","Text","textMessage","textContent","headers","body","headerBodySplit","split","length","parseHeaders","resolve","ConnectionMessage","id","Binary","binaryMessage","binaryContent","byteLength","Error","dataView","DataView","headerLength","getInt16","headersString","i","String","fromCharCode","getInt8","slice","e","reject","promise","fromConnectionMessage","payload","makeHeaders","textBody","RawWebsocketMessage","content","binaryBody","headerBuffer","stringToArrayBuffer","headerInt8Array","Int8Array","payloadInt8Array","set","bodyInt8Array","buffer","header","headerMatches","match","separatorIndex","indexOf","headerName","substr","trim","toLowerCase","headerValue","str","ArrayBuffer","view","setUint8","charCodeAt"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/microsoft-cognitiveservices-speech-sdk/distrib/lib/src/common.speech/WebsocketMessageFormatter.js"],"sourcesContent":["\"use strict\";\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebsocketMessageFormatter = void 0;\nconst Exports_js_1 = require(\"../common/Exports.js\");\nconst CRLF = \"\\r\\n\";\nclass WebsocketMessageFormatter {\n toConnectionMessage(message) {\n const deferral = new Exports_js_1.Deferred();\n try {\n if (message.messageType === Exports_js_1.MessageType.Text) {\n const textMessage = message.textContent;\n let headers = {};\n let body = null;\n if (textMessage) {\n const headerBodySplit = textMessage.split(\"\\r\\n\\r\\n\");\n if (headerBodySplit && headerBodySplit.length > 0) {\n headers = this.parseHeaders(headerBodySplit[0]);\n if (headerBodySplit.length > 1) {\n body = headerBodySplit[1];\n }\n }\n }\n deferral.resolve(new Exports_js_1.ConnectionMessage(message.messageType, body, headers, message.id));\n }\n else if (message.messageType === Exports_js_1.MessageType.Binary) {\n const binaryMessage = message.binaryContent;\n let headers = {};\n let body = null;\n if (!binaryMessage || binaryMessage.byteLength < 2) {\n throw new Error(\"Invalid binary message format. Header length missing.\");\n }\n const dataView = new DataView(binaryMessage);\n const headerLength = dataView.getInt16(0);\n if (binaryMessage.byteLength < headerLength + 2) {\n throw new Error(\"Invalid binary message format. Header content missing.\");\n }\n let headersString = \"\";\n for (let i = 0; i < headerLength; i++) {\n headersString += String.fromCharCode((dataView).getInt8(i + 2));\n }\n headers = this.parseHeaders(headersString);\n if (binaryMessage.byteLength > headerLength + 2) {\n body = binaryMessage.slice(2 + headerLength);\n }\n deferral.resolve(new Exports_js_1.ConnectionMessage(message.messageType, body, headers, message.id));\n }\n }\n catch (e) {\n deferral.reject(`Error formatting the message. Error: ${e}`);\n }\n return deferral.promise;\n }\n fromConnectionMessage(message) {\n const deferral = new Exports_js_1.Deferred();\n try {\n if (message.messageType === Exports_js_1.MessageType.Text) {\n const payload = `${this.makeHeaders(message)}${CRLF}${message.textBody ? message.textBody : \"\"}`;\n deferral.resolve(new Exports_js_1.RawWebsocketMessage(Exports_js_1.MessageType.Text, payload, message.id));\n }\n else if (message.messageType === Exports_js_1.MessageType.Binary) {\n const headersString = this.makeHeaders(message);\n const content = message.binaryBody;\n const headerBuffer = this.stringToArrayBuffer(headersString);\n const headerInt8Array = new Int8Array(headerBuffer);\n const headerLength = headerInt8Array.byteLength;\n const payloadInt8Array = new Int8Array(2 + headerLength + (content ? content.byteLength : 0));\n payloadInt8Array[0] = ((headerLength >> 8) & 0xff);\n payloadInt8Array[1] = headerLength & 0xff;\n payloadInt8Array.set(headerInt8Array, 2);\n if (content) {\n const bodyInt8Array = new Int8Array(content);\n payloadInt8Array.set(bodyInt8Array, 2 + headerLength);\n }\n const payload = payloadInt8Array.buffer;\n deferral.resolve(new Exports_js_1.RawWebsocketMessage(Exports_js_1.MessageType.Binary, payload, message.id));\n }\n }\n catch (e) {\n deferral.reject(`Error formatting the message. ${e}`);\n }\n return deferral.promise;\n }\n makeHeaders(message) {\n let headersString = \"\";\n if (message.headers) {\n for (const header in message.headers) {\n if (header) {\n headersString += `${header}: ${message.headers[header]}${CRLF}`;\n }\n }\n }\n return headersString;\n }\n parseHeaders(headersString) {\n const headers = {};\n if (headersString) {\n const headerMatches = headersString.match(/[^\\r\\n]+/g);\n if (headers) {\n for (const header of headerMatches) {\n if (header) {\n const separatorIndex = header.indexOf(\":\");\n const headerName = separatorIndex > 0 ? header.substr(0, separatorIndex).trim().toLowerCase() : header;\n const headerValue = separatorIndex > 0 && header.length > (separatorIndex + 1) ?\n header.substr(separatorIndex + 1).trim() :\n \"\";\n headers[headerName] = headerValue;\n }\n }\n }\n }\n return headers;\n }\n stringToArrayBuffer(str) {\n const buffer = new ArrayBuffer(str.length);\n const view = new DataView(buffer);\n for (let i = 0; i < str.length; i++) {\n view.setUint8(i, str.charCodeAt(i));\n }\n return buffer;\n }\n}\nexports.WebsocketMessageFormatter = WebsocketMessageFormatter;\n\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}