{"version":3,"sources":["src/sdk/LanguageUnderstandingModel.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,qBAAa,0BAA0B;IACnC;;;OAGG;IACH,SAAS;IAGT;;;;;;;OAOG;WACW,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,0BAA0B;IAmChE;;;;;;;OAOG;WACW,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,0BAA0B;IAQlE;;;;;;;;;;;;;OAaG;WACW,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,0BAA0B;CAWrH;AAED;;;GAGG;AAEH,qBAAa,8BAA+B,SAAQ,0BAA0B;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;CAClC","file":"LanguageUnderstandingModel.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { Contracts } from \"./Contracts\";\r\n\r\n/**\r\n * Language understanding model\r\n * @class LanguageUnderstandingModel\r\n */\r\nexport class LanguageUnderstandingModel {\r\n    /**\r\n     * Creates and initializes a new instance\r\n     * @constructor\r\n     */\r\n    protected constructor() {\r\n    }\r\n\r\n    /**\r\n     * Creates an language understanding model using the specified endpoint.\r\n     * @member LanguageUnderstandingModel.fromEndpoint\r\n     * @function\r\n     * @public\r\n     * @param {URL} uri - A String that represents the endpoint of the language understanding model.\r\n     * @returns {LanguageUnderstandingModel} The language understanding model being created.\r\n     */\r\n    public static fromEndpoint(uri: URL): LanguageUnderstandingModel {\r\n        Contracts.throwIfNull(uri, \"uri\");\r\n        Contracts.throwIfNullOrWhitespace(uri.hostname, \"uri\");\r\n\r\n        const langModelImp: LanguageUnderstandingModelImpl = new LanguageUnderstandingModelImpl();\r\n        // Need to extract the app ID from the URL.\r\n        // URL is in the format: https://<region>.api.cognitive.microsoft.com/luis/v2.0/apps/<Guid>?subscription-key=<key>&timezoneOffset=-360\r\n\r\n        // Start tearing the string apart.\r\n\r\n        // region can be extracted from the host name.\r\n        const firstDot: number = uri.host.indexOf(\".\");\r\n        if (-1 === firstDot) {\r\n            throw new Error(\"Could not determine region from endpoint\");\r\n        }\r\n        langModelImp.region = uri.host.substr(0, firstDot);\r\n\r\n        // Now the app ID.\r\n\r\n        const lastSegment: number = uri.pathname.lastIndexOf(\"/\") + 1;\r\n        if (-1 === lastSegment) {\r\n            throw new Error(\"Could not determine appId from endpoint\");\r\n        }\r\n\r\n        langModelImp.appId = uri.pathname.substr(lastSegment);\r\n\r\n        // And finally the key.\r\n        langModelImp.subscriptionKey = uri.searchParams.get(\"subscription-key\");\r\n        if (undefined === langModelImp.subscriptionKey) {\r\n            throw new Error(\"Could not determine subscription key from endpoint\");\r\n        }\r\n\r\n        return langModelImp;\r\n    }\r\n\r\n    /**\r\n     * Creates an language understanding model using the application id of Language Understanding service.\r\n     * @member LanguageUnderstandingModel.fromAppId\r\n     * @function\r\n     * @public\r\n     * @param {string} appId - A String that represents the application id of Language Understanding service.\r\n     * @returns {LanguageUnderstandingModel} The language understanding model being created.\r\n     */\r\n    public static fromAppId(appId: string): LanguageUnderstandingModel {\r\n        Contracts.throwIfNullOrWhitespace(appId, \"appId\");\r\n\r\n        const langModelImp: LanguageUnderstandingModelImpl = new LanguageUnderstandingModelImpl();\r\n        langModelImp.appId = appId;\r\n        return langModelImp;\r\n    }\r\n\r\n    /**\r\n     * Creates a language understanding model using hostname, subscription key and application\r\n     * id of Language Understanding service.\r\n     * @member LanguageUnderstandingModel.fromSubscription\r\n     * @function\r\n     * @public\r\n     * @param {string} subscriptionKey - A String that represents the subscription key of\r\n     *        Language Understanding service.\r\n     * @param {string} appId - A String that represents the application id of Language\r\n     *        Understanding service.\r\n     * @param {LanguageUnderstandingModel} region - A String that represents the region\r\n     *        of the Language Understanding service (see the <a href=\"https://aka.ms/csspeech/region\">region page</a>).\r\n     * @returns {LanguageUnderstandingModel} The language understanding model being created.\r\n     */\r\n    public static fromSubscription(subscriptionKey: string, appId: string, region: string): LanguageUnderstandingModel {\r\n        Contracts.throwIfNullOrWhitespace(subscriptionKey, \"subscriptionKey\");\r\n        Contracts.throwIfNullOrWhitespace(appId, \"appId\");\r\n        Contracts.throwIfNullOrWhitespace(region, \"region\");\r\n\r\n        const langModelImp: LanguageUnderstandingModelImpl = new LanguageUnderstandingModelImpl();\r\n        langModelImp.appId = appId;\r\n        langModelImp.region = region;\r\n        langModelImp.subscriptionKey = subscriptionKey;\r\n        return langModelImp;\r\n    }\r\n}\r\n\r\n/**\r\n * @private\r\n * @class LanguageUnderstandingModelImpl\r\n */\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class LanguageUnderstandingModelImpl extends LanguageUnderstandingModel {\r\n    public appId: string;\r\n    public region: string;\r\n    public subscriptionKey: string;\r\n}\r\n"]}