UNPKG

@aws-amplify/interactions

Version:

Interactions category of aws-amplify

1 lines 8.27 kB
{"version":3,"file":"AWSLexProvider.mjs","sources":["../../../src/lex-v1/AWSLexProvider.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { DialogState, LexRuntimeServiceClient, PostContentCommand, PostTextCommand, } from '@aws-sdk/client-lex-runtime-service';\nimport { getAmplifyUserAgentObject } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger, fetchAuthSession } from '@aws-amplify/core';\nimport { convert } from '../utils';\nconst logger = new ConsoleLogger('AWSLexProvider');\nclass AWSLexProvider {\n constructor() {\n this._botsCompleteCallback = {};\n }\n /**\n * @deprecated\n * This is used internally by 'sendMessage' to call onComplete callback\n * for a bot if configured\n */\n reportBotStatus(data, { name }) {\n const callback = this._botsCompleteCallback[name];\n if (!callback) {\n return;\n }\n // Check if state is fulfilled to resolve onFullfilment promise\n logger.debug('postContent state', data.dialogState);\n switch (data.dialogState) {\n case DialogState.READY_FOR_FULFILLMENT:\n case DialogState.FULFILLED:\n callback(undefined, data);\n break;\n case DialogState.FAILED:\n callback(new Error('Bot conversation failed'));\n break;\n default:\n break;\n }\n }\n async sendMessage(botConfig, message) {\n // check if credentials are present\n let session;\n try {\n session = await fetchAuthSession();\n }\n catch (error) {\n return Promise.reject(new Error('No credentials'));\n }\n const { name, region, alias } = botConfig;\n const client = new LexRuntimeServiceClient({\n region,\n credentials: session.credentials,\n customUserAgent: getAmplifyUserAgentObject(),\n });\n let params;\n if (typeof message === 'string') {\n params = {\n botAlias: alias,\n botName: name,\n inputText: message,\n userId: session.identityId,\n };\n logger.debug('postText to lex', message);\n try {\n const postTextCommand = new PostTextCommand(params);\n const data = await client.send(postTextCommand);\n this.reportBotStatus(data, botConfig);\n return data;\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n else {\n const { content, options: { messageType }, } = message;\n if (messageType === 'voice') {\n if (typeof content !== 'object') {\n return Promise.reject(new Error('invalid content type'));\n }\n const inputStream = content instanceof Uint8Array ? content : await convert(content);\n params = {\n botAlias: alias,\n botName: name,\n contentType: 'audio/x-l16; sample-rate=16000; channel-count=1',\n userId: session.identityId,\n accept: 'audio/mpeg',\n inputStream,\n };\n }\n else {\n if (typeof content !== 'string')\n return Promise.reject(new Error('invalid content type'));\n params = {\n botAlias: alias,\n botName: name,\n contentType: 'text/plain; charset=utf-8',\n inputStream: content,\n userId: session.identityId,\n accept: 'audio/mpeg',\n };\n }\n logger.debug('postContent to lex', message);\n try {\n const postContentCommand = new PostContentCommand(params);\n const data = await client.send(postContentCommand);\n const audioArray = data.audioStream\n ? await convert(data.audioStream)\n : undefined;\n const response = { ...data, ...{ audioStream: audioArray } };\n this.reportBotStatus(response, botConfig);\n return response;\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n }\n onComplete({ name }, callback) {\n this._botsCompleteCallback[name] = callback;\n }\n}\nexport const lexProvider = new AWSLexProvider();\n"],"names":[],"mappings":"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"}