{"version":3,"sources":["src/common.speech/IntentConnectionFactory.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,WAAW,EAEd,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EACH,qBAAqB,EACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACH,QAAQ,EAER,gBAAgB,EAEnB,MAAM,WAAW,CAAC;AAKnB,qBAAa,uBAAwB,SAAQ,qBAAqB;IAEvD,MAAM,uFAwBZ;IAED,OAAO,CAAC,+BAA+B;CAsD1C","file":"IntentConnectionFactory.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n\nimport {\n    ProxyInfo,\n    WebsocketConnection,\n} from \"../common.browser/Exports\";\nimport {\n    IConnection,\n    IStringDictionary\n} from \"../common/Exports\";\nimport {\n    PropertyId\n} from \"../sdk/Exports\";\nimport {\n    ConnectionFactoryBase\n} from \"./ConnectionFactoryBase\";\nimport {\n    AuthInfo,\n    IConnectionFactory,\n    RecognizerConfig,\n    WebsocketMessageFormatter,\n} from \"./Exports\";\n\nconst TestHooksParamName: string = \"testhooks\";\nconst ConnectionIdHeader: string = \"X-ConnectionId\";\n\nexport class IntentConnectionFactory extends ConnectionFactoryBase {\n\n    public create = (\n        config: RecognizerConfig,\n        authInfo: AuthInfo,\n        connectionId?: string): IConnection => {\n\n        let endpoint: string = config.parameters.getProperty(PropertyId.SpeechServiceConnection_Endpoint);\n        if (!endpoint) {\n            const region: string = config.parameters.getProperty(PropertyId.SpeechServiceConnection_IntentRegion);\n\n            endpoint = \"wss://speech.platform.bing.com/speech/\" + this.getSpeechRegionFromIntentRegion(region) + \"/recognition/interactive/cognitiveservices/v1\";\n        }\n\n        const queryParams: IStringDictionary<string> = {\n            format: \"simple\",\n            language: config.parameters.getProperty(PropertyId.SpeechServiceConnection_RecoLanguage),\n        };\n\n        this.setCommonUrlParams(config, queryParams, endpoint);\n\n        const headers: IStringDictionary<string> = {};\n        headers[authInfo.headerName] = authInfo.token;\n        headers[ConnectionIdHeader] = connectionId;\n\n        return new WebsocketConnection(endpoint, queryParams, headers, new WebsocketMessageFormatter(), ProxyInfo.fromRecognizerConfig(config), connectionId);\n    }\n\n    private getSpeechRegionFromIntentRegion(intentRegion: string): string {\n        switch (intentRegion) {\n            case \"West US\":\n            case \"US West\":\n            case \"westus\":\n                return \"uswest\";\n            case \"West US 2\":\n            case \"US West 2\":\n            case \"westus2\":\n                return \"uswest2\";\n            case \"South Central US\":\n            case \"US South Central\":\n            case \"southcentralus\":\n                return \"ussouthcentral\";\n            case \"West Central US\":\n            case \"US West Central\":\n            case \"westcentralus\":\n                return \"uswestcentral\";\n            case \"East US\":\n            case \"US East\":\n            case \"eastus\":\n                return \"useast\";\n            case \"East US 2\":\n            case \"US East 2\":\n            case \"eastus2\":\n                return \"useast2\";\n            case \"West Europe\":\n            case \"Europe West\":\n            case \"westeurope\":\n                return \"europewest\";\n            case \"North Europe\":\n            case \"Europe North\":\n            case \"northeurope\":\n                return \"europenorth\";\n            case \"Brazil South\":\n            case \"South Brazil\":\n            case \"southbrazil\":\n                return \"brazilsouth\";\n            case \"Australia East\":\n            case \"East Australia\":\n            case \"eastaustralia\":\n                return \"australiaeast\";\n            case \"Southeast Asia\":\n            case \"Asia Southeast\":\n            case \"southeastasia\":\n                return \"asiasoutheast\";\n            case \"East Asia\":\n            case \"Asia East\":\n            case \"eastasia\":\n                return \"asiaeast\";\n            default:\n                return intentRegion;\n        }\n    }\n}\n"]}