diff --git a/sdk/cognitiveservices/cognitiveservices-luis-runtime/LICENSE.txt b/sdk/cognitiveservices/cognitiveservices-luis-runtime/LICENSE.txt index b73b4a1293c3..2d3163745319 100644 --- a/sdk/cognitiveservices/cognitiveservices-luis-runtime/LICENSE.txt +++ b/sdk/cognitiveservices/cognitiveservices-luis-runtime/LICENSE.txt @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2019 Microsoft +Copyright (c) 2021 Microsoft Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/sdk/cognitiveservices/cognitiveservices-luis-runtime/README.md b/sdk/cognitiveservices/cognitiveservices-luis-runtime/README.md index 9e49103ae3a1..c97770134fbf 100644 --- a/sdk/cognitiveservices/cognitiveservices-luis-runtime/README.md +++ b/sdk/cognitiveservices/cognitiveservices-luis-runtime/README.md @@ -1,90 +1,95 @@ ## An isomorphic javascript sdk for - LUISRuntimeClient -This package contains an isomorphic SDK for LUISRuntimeClient. +This package contains an isomorphic SDK (runs both in node.js and in browsers) for LUISRuntimeClient. ### Currently supported environments -- Node.js version 6.x.x or higher -- Browser JavaScript +- [LTS versions of Node.js](https://nodejs.org/about/releases/) +- Latest versions of Safari, Chrome, Edge and Firefox. -### How to Install +### Prerequisites +You must have an [Azure subscription](https://azure.microsoft.com/free/). + +### How to install + +To use this SDK in your project, you will need to install two packages. +- `@azure/cognitiveservices-luis-runtime` that contains the client. +- `@azure/identity` that provides different mechanisms for the client to authenticate your requests using Azure Active Directory. + +Install both packages using the below command: ```bash -npm install @azure/cognitiveservices-luis-runtime +npm install --save @azure/cognitiveservices-luis-runtime @azure/identity ``` +> **Note**: You may have used either `@azure/ms-rest-nodeauth` or `@azure/ms-rest-browserauth` in the past. These packages are in maintenance mode receiving critical bug fixes, but no new features. +If you are on a [Node.js that has LTS status](https://nodejs.org/about/releases/), or are writing a client side browser application, we strongly encourage you to upgrade to `@azure/identity` which uses the latest versions of Azure Active Directory and MSAL APIs and provides more authentication options. ### How to use -#### nodejs - Authentication, client creation and getVersionPrediction prediction as an example written in TypeScript. +- If you are writing a client side browser application, + - Follow the instructions in the section on Authenticating client side browser applications in [Azure Identity examples](https://aka.ms/azsdk/js/identity/examples) to register your application in the Microsoft identity platform and set the right permissions. + - Copy the client ID and tenant ID from the Overview section of your app registration in Azure portal and use it in the browser sample below. +- If you are writing a server side application, + - [Select a credential from `@azure/identity` based on the authentication method of your choice](https://aka.ms/azsdk/js/identity/examples) + - Complete the set up steps required by the credential if any. + - Use the credential you picked in the place of `DefaultAzureCredential` in the Node.js sample below. -##### Install @azure/ms-rest-azure-js - -```bash -npm install @azure/ms-rest-azure-js -``` +In the below samples, we pass the credential and the Azure subscription id to instantiate the client. +Once the client is created, explore the operations on it either in your favorite editor or in our [API reference documentation](https://docs.microsoft.com/javascript/api) to get started. +#### nodejs - Authentication, client creation, and getVersionPrediction prediction as an example written in JavaScript. ##### Sample code ```javascript -const { CognitiveServicesCredentials } = require("@azure/ms-rest-azure-js"); +const { DefaultAzureCredential } = require("@azure/identity"); const { LUISRuntimeClient } = require("@azure/cognitiveservices-luis-runtime"); - -let authoringKey = process.env["luis-authoring-key"]; -const creds = new CognitiveServicesCredentials(authoringKey); - -// check the following link to find your region -// https://docs.microsoft.com/azure/cognitive-services/luis/luis-reference-regions -const region = ""; -const client = new LUISRuntimeClient(creds, "https://" + region + ".api.cognitive.microsoft.com/"); - -const appId = ""; // replace this with your appId. -const versionId = "0.1"; // replace with version of your luis application. Initial value will be 0.1 - +const subscriptionId = process.env["AZURE_SUBSCRIPTION_ID"]; + +// Use `DefaultAzureCredential` or any other credential of your choice based on https://aka.ms/azsdk/js/identity/examples +// Please note that you can also use credentials from the `@azure/ms-rest-nodeauth` package instead. +const creds = new DefaultAzureCredential(); +const client = new LUISRuntimeClient(creds, subscriptionId); +const appId = ec7b1657-199d-4d8a-bbb2-89a11a42e02a; +const versionId = "testversionId"; const predictionRequest = { query: "testquery", options: { - datetimeReference: new Date(), + datetimeReference: new Date().toISOString(), preferExternalEntities: true }, - externalEntities: [ - { - entityName: "testentityName", - startIndex: 1, - entityLength: 1, - score: 0.86, - resolution: {} - } - ], - dynamicLists: [ - { - listEntityName: "testlistEntityName", - requestLists: [ - { - name: "testname", - canonicalForm: "testcanonicalForm", - synonyms: ["testsynonyms"] - } - ] - } - ] + externalEntities: [{ + entityName: "testentityName", + startIndex: 1, + entityLength: 1, + resolution: {}, + score: 1.01 + }], + dynamicLists: [{ + listEntityName: "testlistEntityName", + requestLists: [{ + name: "testname", + canonicalForm: "testcanonicalForm", + synonyms: ["testsynonyms"] + }] + }] }; const verbose = true; const showAllIntents = true; - -client.prediction - .getVersionPrediction(appId, versionId, predictionRequest, { verbose, showAllIntents }) - .then((result) => { - console.log("The result is:"); - console.log(result); - }) - .catch((err) => { - console.error(err); - }); +const log = true; +client.prediction.getVersionPrediction(appId, versionId, predictionRequest, verbose, showAllIntents, log).then((result) => { + console.log("The result is:"); + console.log(result); +}).catch((err) => { + console.log("An error occurred:"); + console.error(err); +}); ``` -#### browser - Authentication, client creation and getVersionPrediction prediction as an example written in JavaScript. - +#### browser - Authentication, client creation, and getVersionPrediction prediction as an example written in JavaScript. +In browser applications, we recommend using the `InteractiveBrowserCredential` that interactively authenticates using the default system browser. + - See [Single-page application: App registration guide](https://docs.microsoft.com/azure/active-directory/develop/scenario-spa-app-registration) to configure your app registration for the browser. + - Note down the client Id from the previous step and use it in the browser sample below. ##### Sample code @@ -95,64 +100,51 @@ client.prediction @azure/cognitiveservices-luis-runtime sample - @@ -163,4 +155,4 @@ client.prediction - [Microsoft Azure SDK for Javascript](https://github.com/Azure/azure-sdk-for-js) -![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-js%2Fsdk%2Fcognitiveservices%2Fcognitiveservices-luis-runtime%2FREADME.png) +![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-js/sdk/cognitiveservices/cognitiveservices-luis-runtime/README.png) diff --git a/sdk/cognitiveservices/cognitiveservices-luis-runtime/package.json b/sdk/cognitiveservices/cognitiveservices-luis-runtime/package.json index e4eb77017855..ec0f588ca554 100644 --- a/sdk/cognitiveservices/cognitiveservices-luis-runtime/package.json +++ b/sdk/cognitiveservices/cognitiveservices-luis-runtime/package.json @@ -4,7 +4,8 @@ "description": "LUISRuntimeClient Library with typescript type definitions for node.js and browser.", "version": "5.0.0", "dependencies": { - "@azure/ms-rest-js": "^2.0.3", + "@azure/ms-rest-js": "^2.2.0", + "@azure/core-auth": "^1.1.4", "tslib": "^1.10.0" }, "keywords": [ @@ -19,20 +20,15 @@ "module": "./esm/lUISRuntimeClient.js", "types": "./esm/lUISRuntimeClient.d.ts", "devDependencies": { - "@types/chai": "^4.2.0", - "@types/mocha": "^5.2.7", - "mocha": "^6.1.4", - "nock": "^10.0.0", - "rollup": "^0.66.2", - "@azure/ms-rest-azure-js": "^2.0.1", - "rollup-plugin-node-resolve": "^3.4.0", + "typescript": "^3.6.0", + "rollup": "^1.18.0", + "rollup-plugin-node-resolve": "^5.2.0", "rollup-plugin-sourcemaps": "^0.4.2", - "ts-node": "^8.3.0", - "typescript": "^3.1.1", - "uglify-js": "^3.4.9", - "ts-mocha": "^6.0.0" + "uglify-js": "^3.6.0", + "mocha": "^6.2.0", + "nock": "^10.0.0" }, - "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/cognitiveservices/cognitiveservices-luis-runtime", + "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/master/sdk/cognitiveservices/cognitiveservices-luis-runtime", "repository": { "type": "git", "url": "https://github.com/Azure/azure-sdk-for-js.git" @@ -57,8 +53,8 @@ "scripts": { "build": "tsc && rollup -c rollup.config.js && npm run minify", "minify": "uglifyjs -c -m --comments --source-map \"content='./dist/cognitiveservices-luis-runtime.js.map'\" -o ./dist/cognitiveservices-luis-runtime.min.js ./dist/cognitiveservices-luis-runtime.js", - "prepack": "npm install && npm run build", - "test": "ts-mocha -p tsconfig.test.json test/**/*.test.ts --timeout 100000" + "prepack": "npm install && npm run build && npm run test", + "test": "mocha" }, "sideEffects": false, "autoPublish": true diff --git a/sdk/cognitiveservices/cognitiveservices-luis-runtime/rollup.config.js b/sdk/cognitiveservices/cognitiveservices-luis-runtime/rollup.config.js index 66d9b68a2d59..a3c865019465 100644 --- a/sdk/cognitiveservices/cognitiveservices-luis-runtime/rollup.config.js +++ b/sdk/cognitiveservices/cognitiveservices-luis-runtime/rollup.config.js @@ -21,10 +21,8 @@ const config = { "@azure/ms-rest-azure-js": "msRestAzure" }, banner: `/* - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for - * license information. - * + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is regenerated. diff --git a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/lUISRuntimeClient.ts b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/lUISRuntimeClient.ts index b7c934c52d50..d43f55d9b0ce 100644 --- a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/lUISRuntimeClient.ts +++ b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/lUISRuntimeClient.ts @@ -1,7 +1,6 @@ /* - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for - * license information. + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is @@ -23,9 +22,14 @@ class LUISRuntimeClient extends LUISRuntimeClientContext { * @param endpoint Supported Cognitive Services endpoints (protocol and hostname, for example: * https://westus.api.cognitive.microsoft.com). * @param credentials Subscription credentials which uniquely identify client subscription. + * Credentials implementing the TokenCredential interface from the @azure/identity package are + * recommended. For more information about these credentials, see + * {@link https://www.npmjs.com/package/@azure/identity}. Credentials implementing the + * ServiceClientCredentials interface from the older packages @azure/ms-rest-nodeauth and + * @azure/ms-rest-browserauth are also supported. * @param [options] The parameter options */ - constructor(credentials: msRest.ServiceClientCredentials, endpoint: string, options?: msRest.ServiceClientOptions) { + constructor(credentials: msRest.ServiceClientCredentials | TokenCredential, endpoint: string, options?: msRest.ServiceClientOptions) { super(credentials, endpoint, options); this.prediction = new operations.PredictionOperations(this); } diff --git a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/lUISRuntimeClientContext.ts b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/lUISRuntimeClientContext.ts index 131f36a8d88c..06001fe222ec 100644 --- a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/lUISRuntimeClientContext.ts +++ b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/lUISRuntimeClientContext.ts @@ -1,7 +1,6 @@ /* - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for - * license information. + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is @@ -15,16 +14,21 @@ const packageVersion = "5.0.0"; export class LUISRuntimeClientContext extends msRest.ServiceClient { endpoint: string; - credentials: msRest.ServiceClientCredentials; + credentials: msRest.ServiceClientCredentials | TokenCredential; /** * Initializes a new instance of the LUISRuntimeClientContext class. * @param endpoint Supported Cognitive Services endpoints (protocol and hostname, for example: * https://westus.api.cognitive.microsoft.com). * @param credentials Subscription credentials which uniquely identify client subscription. + * Credentials implementing the TokenCredential interface from the @azure/identity package are + * recommended. For more information about these credentials, see + * {@link https://www.npmjs.com/package/@azure/identity}. Credentials implementing the + * ServiceClientCredentials interface from the older packages @azure/ms-rest-nodeauth and + * @azure/ms-rest-browserauth are also supported. * @param [options] The parameter options */ - constructor(credentials: msRest.ServiceClientCredentials, endpoint: string, options?: msRest.ServiceClientOptions) { + constructor(credentials: msRest.ServiceClientCredentials | TokenCredential, endpoint: string, options?: msRest.ServiceClientOptions) { if (endpoint == undefined) { throw new Error("'endpoint' cannot be null."); } diff --git a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/index.ts b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/index.ts index 8b33aea6ee5c..43536effb66c 100644 --- a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/index.ts +++ b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/index.ts @@ -1,8 +1,7 @@ /* - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for - * license information. - * + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ diff --git a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/mappers.ts b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/mappers.ts index ed731654516f..a0d6b034db06 100644 --- a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/mappers.ts +++ b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/mappers.ts @@ -1,7 +1,6 @@ /* - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for - * license information. + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is regenerated. diff --git a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/parameters.ts b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/parameters.ts index 09e658cfa885..32f716e79e34 100644 --- a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/parameters.ts +++ b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/parameters.ts @@ -1,7 +1,6 @@ /* - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for - * license information. + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is diff --git a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/predictionOperationsMappers.ts b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/predictionOperationsMappers.ts index d88b51a88652..6a93ce0f1ca0 100644 --- a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/predictionOperationsMappers.ts +++ b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/models/predictionOperationsMappers.ts @@ -1,7 +1,6 @@ /* - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for - * license information. + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is regenerated. diff --git a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/operations/index.ts b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/operations/index.ts index 8bb2f0a3a839..f80b19aadd3e 100644 --- a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/operations/index.ts +++ b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/operations/index.ts @@ -1,7 +1,6 @@ /* - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for - * license information. + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is diff --git a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/operations/predictionOperations.ts b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/operations/predictionOperations.ts index 1cd95d3ce7a9..769821142ac2 100644 --- a/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/operations/predictionOperations.ts +++ b/sdk/cognitiveservices/cognitiveservices-luis-runtime/src/operations/predictionOperations.ts @@ -1,7 +1,6 @@ /* - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for - * license information. + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is