@aws-amplify/interactions 6.0.21 → 6.0.22-unstable.bd1fefd.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/lex-v1/AWSLexProvider.js +5 -3
- package/dist/cjs/lex-v1/AWSLexProvider.js.map +1 -1
- package/dist/cjs/lex-v2/AWSLexV2Provider.js +11 -9
- package/dist/cjs/lex-v2/AWSLexV2Provider.js.map +1 -1
- package/dist/cjs/utils/commonUtils.js +1 -1
- package/dist/cjs/utils/commonUtils.js.map +1 -1
- package/dist/cjs/utils/utils.js +2 -2
- package/dist/cjs/utils/utils.js.map +1 -1
- package/dist/cjs/utils/utils.native.js +4 -4
- package/dist/cjs/utils/utils.native.js.map +1 -1
- package/dist/esm/lex-v1/AWSLexProvider.d.ts +1 -1
- package/dist/esm/lex-v1/AWSLexProvider.mjs +5 -3
- package/dist/esm/lex-v1/AWSLexProvider.mjs.map +1 -1
- package/dist/esm/lex-v1/apis/onComplete.mjs.map +1 -1
- package/dist/esm/lex-v1/apis/send.mjs.map +1 -1
- package/dist/esm/lex-v1/index.mjs.map +1 -1
- package/dist/esm/lex-v1/types/AWSLexProviderOption.d.ts +1 -1
- package/dist/esm/lex-v1/types/inputs.d.ts +1 -1
- package/dist/esm/lex-v2/AWSLexV2Provider.d.ts +1 -1
- package/dist/esm/lex-v2/AWSLexV2Provider.mjs +11 -9
- package/dist/esm/lex-v2/AWSLexV2Provider.mjs.map +1 -1
- package/dist/esm/lex-v2/apis/onComplete.mjs.map +1 -1
- package/dist/esm/lex-v2/apis/send.mjs.map +1 -1
- package/dist/esm/lex-v2/index.mjs.map +1 -1
- package/dist/esm/lex-v2/types/AWSLexV2ProviderOption.d.ts +1 -1
- package/dist/esm/lex-v2/types/inputs.d.ts +1 -1
- package/dist/esm/types/Interactions.d.ts +5 -7
- package/dist/esm/types/inputs.d.ts +4 -4
- package/dist/esm/utils/commonUtils.mjs +1 -1
- package/dist/esm/utils/commonUtils.mjs.map +1 -1
- package/dist/esm/utils/utils.mjs +2 -2
- package/dist/esm/utils/utils.mjs.map +1 -1
- package/dist/esm/utils/utils.native.mjs +4 -4
- package/dist/esm/utils/utils.native.mjs.map +1 -1
- package/package.json +5 -4
- package/src/lex-v1/AWSLexProvider.ts +12 -8
- package/src/lex-v1/apis/onComplete.ts +1 -1
- package/src/lex-v1/apis/send.ts +2 -1
- package/src/lex-v1/index.ts +1 -1
- package/src/lex-v1/types/AWSLexProviderOption.ts +1 -1
- package/src/lex-v1/types/inputs.ts +1 -1
- package/src/lex-v1/utils/resolveBotConfig.ts +2 -1
- package/src/lex-v2/AWSLexV2Provider.ts +22 -16
- package/src/lex-v2/apis/onComplete.ts +1 -1
- package/src/lex-v2/apis/send.ts +2 -1
- package/src/lex-v2/index.ts +1 -1
- package/src/lex-v2/types/AWSLexV2ProviderOption.ts +1 -1
- package/src/lex-v2/types/inputs.ts +1 -1
- package/src/lex-v2/utils/resolveBotConfig.ts +2 -1
- package/src/types/Interactions.ts +5 -7
- package/src/types/inputs.ts +4 -4
- package/src/utils/commonUtils.ts +3 -1
- package/src/utils/utils.native.ts +5 -4
- package/src/utils/utils.ts +2 -2
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.lexProvider = void 0;
|
|
5
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
7
|
const client_lex_runtime_service_1 = require("@aws-sdk/client-lex-runtime-service");
|
|
6
8
|
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
7
9
|
const core_1 = require("@aws-amplify/core");
|
|
@@ -40,7 +42,7 @@ class AWSLexProvider {
|
|
|
40
42
|
session = await (0, core_1.fetchAuthSession)();
|
|
41
43
|
}
|
|
42
44
|
catch (error) {
|
|
43
|
-
return Promise.reject('No credentials');
|
|
45
|
+
return Promise.reject(new Error('No credentials'));
|
|
44
46
|
}
|
|
45
47
|
const { name, region, alias } = botConfig;
|
|
46
48
|
const client = new client_lex_runtime_service_1.LexRuntimeServiceClient({
|
|
@@ -71,7 +73,7 @@ class AWSLexProvider {
|
|
|
71
73
|
const { content, options: { messageType }, } = message;
|
|
72
74
|
if (messageType === 'voice') {
|
|
73
75
|
if (typeof content !== 'object') {
|
|
74
|
-
return Promise.reject('invalid content type');
|
|
76
|
+
return Promise.reject(new Error('invalid content type'));
|
|
75
77
|
}
|
|
76
78
|
const inputStream = content instanceof Uint8Array ? content : await (0, utils_2.convert)(content);
|
|
77
79
|
params = {
|
|
@@ -85,7 +87,7 @@ class AWSLexProvider {
|
|
|
85
87
|
}
|
|
86
88
|
else {
|
|
87
89
|
if (typeof content !== 'string')
|
|
88
|
-
return Promise.reject('invalid content type');
|
|
90
|
+
return Promise.reject(new Error('invalid content type'));
|
|
89
91
|
params = {
|
|
90
92
|
botAlias: alias,
|
|
91
93
|
botName: name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AWSLexProvider.js","sources":["../../../src/lex-v1/AWSLexProvider.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lexProvider = void 0;\nconst client_lex_runtime_service_1 = require(\"@aws-sdk/client-lex-runtime-service\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_2 = require(\"../utils\");\nconst logger = new core_1.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 client_lex_runtime_service_1.DialogState.READY_FOR_FULFILLMENT:\n case client_lex_runtime_service_1.DialogState.FULFILLED:\n callback(undefined, data);\n break;\n case client_lex_runtime_service_1.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 (0, core_1.fetchAuthSession)();\n }\n catch (error) {\n return Promise.reject('No credentials');\n }\n const { name, region, alias } = botConfig;\n const client = new client_lex_runtime_service_1.LexRuntimeServiceClient({\n region,\n credentials: session.credentials,\n customUserAgent: (0, utils_1.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 client_lex_runtime_service_1.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('invalid content type');\n }\n const inputStream = content instanceof Uint8Array ? content : await (0, utils_2.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('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 client_lex_runtime_service_1.PostContentCommand(params);\n const data = await client.send(postContentCommand);\n const audioArray = data.audioStream\n ? await (0, utils_2.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}\nexports.lexProvider = new AWSLexProvider();\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;AAC7B,MAAM,4BAA4B,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;AACpF,MAAM,OAAO,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC;AAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACpC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAC1D,MAAM,cAAc,CAAC;AACrB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;AACxC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE;AACpC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC1D,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,QAAQ,QAAQ,IAAI,CAAC,WAAW;AAChC,YAAY,KAAK,4BAA4B,CAAC,WAAW,CAAC,qBAAqB,CAAC;AAChF,YAAY,KAAK,4BAA4B,CAAC,WAAW,CAAC,SAAS;AACnE,gBAAgB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC1C,gBAAgB,MAAM;AACtB,YAAY,KAAK,4BAA4B,CAAC,WAAW,CAAC,MAAM;AAChE,gBAAgB,QAAQ,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;AAC/D,gBAAgB,MAAM;AAGtB,SAAS;AACT,KAAK;AACL,IAAI,MAAM,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE;AAC1C;AACA,QAAQ,IAAI,OAAO,CAAC;AACpB,QAAQ,IAAI;AACZ,YAAY,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,GAAG,CAAC;AAC3D,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"AWSLexProvider.js","sources":["../../../src/lex-v1/AWSLexProvider.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lexProvider = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst client_lex_runtime_service_1 = require(\"@aws-sdk/client-lex-runtime-service\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_2 = require(\"../utils\");\nconst logger = new core_1.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 client_lex_runtime_service_1.DialogState.READY_FOR_FULFILLMENT:\n case client_lex_runtime_service_1.DialogState.FULFILLED:\n callback(undefined, data);\n break;\n case client_lex_runtime_service_1.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 (0, core_1.fetchAuthSession)();\n }\n catch (error) {\n return Promise.reject(new Error('No credentials'));\n }\n const { name, region, alias } = botConfig;\n const client = new client_lex_runtime_service_1.LexRuntimeServiceClient({\n region,\n credentials: session.credentials,\n customUserAgent: (0, utils_1.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 client_lex_runtime_service_1.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 (0, utils_2.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 client_lex_runtime_service_1.PostContentCommand(params);\n const data = await client.send(postContentCommand);\n const audioArray = data.audioStream\n ? await (0, utils_2.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}\nexports.lexProvider = new AWSLexProvider();\n"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.lexProvider = void 0;
|
|
5
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
7
|
const client_lex_runtime_v2_1 = require("@aws-sdk/client-lex-runtime-v2");
|
|
6
8
|
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
7
9
|
const core_1 = require("@aws-amplify/core");
|
|
8
|
-
const utils_2 = require("../utils");
|
|
9
10
|
const uuid_1 = require("uuid");
|
|
11
|
+
const utils_2 = require("../utils");
|
|
10
12
|
const logger = new core_1.ConsoleLogger('AWSLexV2Provider');
|
|
11
13
|
class AWSLexV2Provider {
|
|
12
14
|
constructor() {
|
|
@@ -27,7 +29,7 @@ class AWSLexV2Provider {
|
|
|
27
29
|
session = await (0, core_1.fetchAuthSession)();
|
|
28
30
|
}
|
|
29
31
|
catch (error) {
|
|
30
|
-
return Promise.reject('No credentials');
|
|
32
|
+
return Promise.reject(new Error('No credentials'));
|
|
31
33
|
}
|
|
32
34
|
const { region, aliasId, localeId, botId } = botConfig;
|
|
33
35
|
const client = new client_lex_runtime_v2_1.LexRuntimeV2Client({
|
|
@@ -111,9 +113,9 @@ class AWSLexV2Provider {
|
|
|
111
113
|
};
|
|
112
114
|
try {
|
|
113
115
|
const recognizeTextCommand = new client_lex_runtime_v2_1.RecognizeTextCommand(params);
|
|
114
|
-
const
|
|
115
|
-
this._reportBotStatus(
|
|
116
|
-
return
|
|
116
|
+
const resultData = await client.send(recognizeTextCommand);
|
|
117
|
+
this._reportBotStatus(resultData, botConfig);
|
|
118
|
+
return resultData;
|
|
117
119
|
}
|
|
118
120
|
catch (err) {
|
|
119
121
|
return Promise.reject(err);
|
|
@@ -130,7 +132,7 @@ class AWSLexV2Provider {
|
|
|
130
132
|
// prepare params
|
|
131
133
|
if (messageType === 'voice') {
|
|
132
134
|
if (typeof content !== 'object') {
|
|
133
|
-
return Promise.reject('invalid content type');
|
|
135
|
+
return Promise.reject(new Error('invalid content type'));
|
|
134
136
|
}
|
|
135
137
|
const inputStream = content instanceof Uint8Array ? content : await (0, utils_2.convert)(content);
|
|
136
138
|
params = {
|
|
@@ -142,7 +144,7 @@ class AWSLexV2Provider {
|
|
|
142
144
|
else {
|
|
143
145
|
// text input
|
|
144
146
|
if (typeof content !== 'string')
|
|
145
|
-
return Promise.reject('invalid content type');
|
|
147
|
+
return Promise.reject(new Error('invalid content type'));
|
|
146
148
|
params = {
|
|
147
149
|
...baseParams,
|
|
148
150
|
requestContentType: 'text/plain; charset=utf-8',
|
|
@@ -152,8 +154,8 @@ class AWSLexV2Provider {
|
|
|
152
154
|
// make API call to lex
|
|
153
155
|
try {
|
|
154
156
|
const recognizeUtteranceCommand = new client_lex_runtime_v2_1.RecognizeUtteranceCommand(params);
|
|
155
|
-
const
|
|
156
|
-
const response = await this._formatUtteranceCommandOutput(
|
|
157
|
+
const resultData = await client.send(recognizeUtteranceCommand);
|
|
158
|
+
const response = await this._formatUtteranceCommandOutput(resultData);
|
|
157
159
|
this._reportBotStatus(response, botConfig);
|
|
158
160
|
return response;
|
|
159
161
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AWSLexV2Provider.js","sources":["../../../src/lex-v2/AWSLexV2Provider.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lexProvider = void 0;\nconst client_lex_runtime_v2_1 = require(\"@aws-sdk/client-lex-runtime-v2\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_2 = require(\"../utils\");\nconst uuid_1 = require(\"uuid\");\nconst logger = new core_1.ConsoleLogger('AWSLexV2Provider');\nclass AWSLexV2Provider {\n constructor() {\n this._botsCompleteCallback = {};\n this.defaultSessionId = (0, uuid_1.v4)();\n }\n /**\n * Send a message to a bot\n * @async\n * @param {AWSLexV2ProviderOption} botConfig - Bot configuration for sending the message\n * @param {string | InteractionsMessage} message - message to send to the bot\n * @return {Promise<InteractionsResponse>} A promise resolves to the response from the bot\n */\n async sendMessage(botConfig, message) {\n // check if credentials are present\n let session;\n try {\n session = await (0, core_1.fetchAuthSession)();\n }\n catch (error) {\n return Promise.reject('No credentials');\n }\n const { region, aliasId, localeId, botId } = botConfig;\n const client = new client_lex_runtime_v2_1.LexRuntimeV2Client({\n region,\n credentials: session.credentials,\n customUserAgent: (0, utils_1.getAmplifyUserAgentObject)(),\n });\n let response;\n // common base params for all requests\n const reqBaseParams = {\n botAliasId: aliasId,\n botId,\n localeId,\n sessionId: session.identityId ?? this.defaultSessionId,\n };\n if (typeof message === 'string') {\n response = await this._handleRecognizeTextCommand(botConfig, message, reqBaseParams, client);\n }\n else {\n response = await this._handleRecognizeUtteranceCommand(botConfig, message, reqBaseParams, client);\n }\n return response;\n }\n /**\n * Attach a onComplete callback function to a bot.\n * The callback is called once the bot's intent is fulfilled\n * @param {AWSLexV2ProviderOption} botConfig - Bot configuration to attach the onComplete callback\n * @param {InteractionsOnCompleteCallback} callback - called when Intent Fulfilled\n */\n onComplete({ name }, callback) {\n this._botsCompleteCallback[name] = callback;\n }\n /**\n * call onComplete callback for a bot if configured\n */\n _reportBotStatus(data, { name }) {\n const sessionState = data?.sessionState;\n // Check if state is fulfilled to resolve onFullfilment promise\n logger.debug('postContent state', sessionState?.intent?.state);\n const callback = this._botsCompleteCallback[name];\n if (!callback) {\n return;\n }\n switch (sessionState?.intent?.state) {\n case client_lex_runtime_v2_1.IntentState.READY_FOR_FULFILLMENT:\n case client_lex_runtime_v2_1.IntentState.FULFILLED:\n callback(undefined, data);\n break;\n case client_lex_runtime_v2_1.IntentState.FAILED:\n callback(new Error('Bot conversation failed'));\n break;\n default:\n break;\n }\n }\n /**\n * Format UtteranceCommandOutput's response\n * decompress attributes\n * update audioStream format\n */\n async _formatUtteranceCommandOutput(data) {\n return {\n ...data,\n messages: await (0, utils_2.unGzipBase64AsJson)(data.messages),\n sessionState: await (0, utils_2.unGzipBase64AsJson)(data.sessionState),\n interpretations: await (0, utils_2.unGzipBase64AsJson)(data.interpretations),\n requestAttributes: await (0, utils_2.unGzipBase64AsJson)(data.requestAttributes),\n inputTranscript: await (0, utils_2.unGzipBase64AsJson)(data.inputTranscript),\n audioStream: data.audioStream\n ? await (0, utils_2.convert)(data.audioStream)\n : undefined,\n };\n }\n /**\n * handle client's `RecognizeTextCommand`\n * used for sending simple text message\n */\n async _handleRecognizeTextCommand(botConfig, data, baseParams, client) {\n logger.debug('postText to lex2', data);\n const params = {\n ...baseParams,\n text: data,\n };\n try {\n const recognizeTextCommand = new client_lex_runtime_v2_1.RecognizeTextCommand(params);\n const data = await client.send(recognizeTextCommand);\n this._reportBotStatus(data, botConfig);\n return data;\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n /**\n * handle client's `RecognizeUtteranceCommand`\n * used for obj text or obj voice message\n */\n async _handleRecognizeUtteranceCommand(botConfig, data, baseParams, client) {\n const { content, options: { messageType }, } = data;\n logger.debug('postContent to lex2', data);\n let params;\n // prepare params\n if (messageType === 'voice') {\n if (typeof content !== 'object') {\n return Promise.reject('invalid content type');\n }\n const inputStream = content instanceof Uint8Array ? content : await (0, utils_2.convert)(content);\n params = {\n ...baseParams,\n requestContentType: 'audio/x-l16; sample-rate=16000; channel-count=1',\n inputStream,\n };\n }\n else {\n // text input\n if (typeof content !== 'string')\n return Promise.reject('invalid content type');\n params = {\n ...baseParams,\n requestContentType: 'text/plain; charset=utf-8',\n inputStream: content,\n };\n }\n // make API call to lex\n try {\n const recognizeUtteranceCommand = new client_lex_runtime_v2_1.RecognizeUtteranceCommand(params);\n const data = await client.send(recognizeUtteranceCommand);\n const response = await this._formatUtteranceCommandOutput(data);\n this._reportBotStatus(response, botConfig);\n return response;\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n}\nexports.lexProvider = new AWSLexV2Provider();\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AWSLexV2Provider.js","sources":["../../../src/lex-v2/AWSLexV2Provider.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lexProvider = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst client_lex_runtime_v2_1 = require(\"@aws-sdk/client-lex-runtime-v2\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst core_1 = require(\"@aws-amplify/core\");\nconst uuid_1 = require(\"uuid\");\nconst utils_2 = require(\"../utils\");\nconst logger = new core_1.ConsoleLogger('AWSLexV2Provider');\nclass AWSLexV2Provider {\n constructor() {\n this._botsCompleteCallback = {};\n this.defaultSessionId = (0, uuid_1.v4)();\n }\n /**\n * Send a message to a bot\n * @async\n * @param {AWSLexV2ProviderOption} botConfig - Bot configuration for sending the message\n * @param {string | InteractionsMessage} message - message to send to the bot\n * @return {Promise<InteractionsResponse>} A promise resolves to the response from the bot\n */\n async sendMessage(botConfig, message) {\n // check if credentials are present\n let session;\n try {\n session = await (0, core_1.fetchAuthSession)();\n }\n catch (error) {\n return Promise.reject(new Error('No credentials'));\n }\n const { region, aliasId, localeId, botId } = botConfig;\n const client = new client_lex_runtime_v2_1.LexRuntimeV2Client({\n region,\n credentials: session.credentials,\n customUserAgent: (0, utils_1.getAmplifyUserAgentObject)(),\n });\n let response;\n // common base params for all requests\n const reqBaseParams = {\n botAliasId: aliasId,\n botId,\n localeId,\n sessionId: session.identityId ?? this.defaultSessionId,\n };\n if (typeof message === 'string') {\n response = await this._handleRecognizeTextCommand(botConfig, message, reqBaseParams, client);\n }\n else {\n response = await this._handleRecognizeUtteranceCommand(botConfig, message, reqBaseParams, client);\n }\n return response;\n }\n /**\n * Attach a onComplete callback function to a bot.\n * The callback is called once the bot's intent is fulfilled\n * @param {AWSLexV2ProviderOption} botConfig - Bot configuration to attach the onComplete callback\n * @param {InteractionsOnCompleteCallback} callback - called when Intent Fulfilled\n */\n onComplete({ name }, callback) {\n this._botsCompleteCallback[name] = callback;\n }\n /**\n * call onComplete callback for a bot if configured\n */\n _reportBotStatus(data, { name }) {\n const sessionState = data?.sessionState;\n // Check if state is fulfilled to resolve onFullfilment promise\n logger.debug('postContent state', sessionState?.intent?.state);\n const callback = this._botsCompleteCallback[name];\n if (!callback) {\n return;\n }\n switch (sessionState?.intent?.state) {\n case client_lex_runtime_v2_1.IntentState.READY_FOR_FULFILLMENT:\n case client_lex_runtime_v2_1.IntentState.FULFILLED:\n callback(undefined, data);\n break;\n case client_lex_runtime_v2_1.IntentState.FAILED:\n callback(new Error('Bot conversation failed'));\n break;\n default:\n break;\n }\n }\n /**\n * Format UtteranceCommandOutput's response\n * decompress attributes\n * update audioStream format\n */\n async _formatUtteranceCommandOutput(data) {\n return {\n ...data,\n messages: await (0, utils_2.unGzipBase64AsJson)(data.messages),\n sessionState: await (0, utils_2.unGzipBase64AsJson)(data.sessionState),\n interpretations: await (0, utils_2.unGzipBase64AsJson)(data.interpretations),\n requestAttributes: await (0, utils_2.unGzipBase64AsJson)(data.requestAttributes),\n inputTranscript: await (0, utils_2.unGzipBase64AsJson)(data.inputTranscript),\n audioStream: data.audioStream\n ? await (0, utils_2.convert)(data.audioStream)\n : undefined,\n };\n }\n /**\n * handle client's `RecognizeTextCommand`\n * used for sending simple text message\n */\n async _handleRecognizeTextCommand(botConfig, data, baseParams, client) {\n logger.debug('postText to lex2', data);\n const params = {\n ...baseParams,\n text: data,\n };\n try {\n const recognizeTextCommand = new client_lex_runtime_v2_1.RecognizeTextCommand(params);\n const resultData = await client.send(recognizeTextCommand);\n this._reportBotStatus(resultData, botConfig);\n return resultData;\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n /**\n * handle client's `RecognizeUtteranceCommand`\n * used for obj text or obj voice message\n */\n async _handleRecognizeUtteranceCommand(botConfig, data, baseParams, client) {\n const { content, options: { messageType }, } = data;\n logger.debug('postContent to lex2', data);\n let params;\n // prepare params\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 (0, utils_2.convert)(content);\n params = {\n ...baseParams,\n requestContentType: 'audio/x-l16; sample-rate=16000; channel-count=1',\n inputStream,\n };\n }\n else {\n // text input\n if (typeof content !== 'string')\n return Promise.reject(new Error('invalid content type'));\n params = {\n ...baseParams,\n requestContentType: 'text/plain; charset=utf-8',\n inputStream: content,\n };\n }\n // make API call to lex\n try {\n const recognizeUtteranceCommand = new client_lex_runtime_v2_1.RecognizeUtteranceCommand(params);\n const resultData = await client.send(recognizeUtteranceCommand);\n const response = await this._formatUtteranceCommandOutput(resultData);\n this._reportBotStatus(response, botConfig);\n return response;\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n}\nexports.lexProvider = new AWSLexV2Provider();\n"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ const unGzipBase64AsJson = async (gzipBase64) => {
|
|
|
14
14
|
return JSON.parse(objString);
|
|
15
15
|
}
|
|
16
16
|
catch (error) {
|
|
17
|
-
return Promise.reject('unable to decode and decompress ' + error);
|
|
17
|
+
return Promise.reject(new Error('unable to decode and decompress ' + error));
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
20
|
exports.unGzipBase64AsJson = unGzipBase64AsJson;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commonUtils.js","sources":["../../../src/utils/commonUtils.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unGzipBase64AsJson = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst utils_1 = require(\"./utils\");\nconst unGzipBase64AsJson = async (gzipBase64) => {\n if (typeof gzipBase64 === 'undefined')\n return undefined;\n try {\n const decodedArrayBuffer = (0, utils_1.base64ToArrayBuffer)(gzipBase64);\n const objString = await (0, utils_1.gzipDecompressToString)(decodedArrayBuffer);\n return JSON.parse(objString);\n }\n catch (error) {\n return Promise.reject('unable to decode and decompress ' + error);\n }\n};\nexports.unGzipBase64AsJson = unGzipBase64AsJson;\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,kBAAkB,GAAG,KAAK,CAAC,CAAC;AACpC;AACA;AACA,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACnC,MAAM,kBAAkB,GAAG,OAAO,UAAU,KAAK;AACjD,IAAI,IAAI,OAAO,UAAU,KAAK,WAAW;AACzC,QAAQ,OAAO,SAAS,CAAC;AACzB,IAAI,IAAI;AACR,QAAQ,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;AAChF,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;AACxF,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACrC,KAAK;AACL,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,kCAAkC,GAAG,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"commonUtils.js","sources":["../../../src/utils/commonUtils.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unGzipBase64AsJson = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst utils_1 = require(\"./utils\");\nconst unGzipBase64AsJson = async (gzipBase64) => {\n if (typeof gzipBase64 === 'undefined')\n return undefined;\n try {\n const decodedArrayBuffer = (0, utils_1.base64ToArrayBuffer)(gzipBase64);\n const objString = await (0, utils_1.gzipDecompressToString)(decodedArrayBuffer);\n return JSON.parse(objString);\n }\n catch (error) {\n return Promise.reject(new Error('unable to decode and decompress ' + error));\n }\n};\nexports.unGzipBase64AsJson = unGzipBase64AsJson;\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,kBAAkB,GAAG,KAAK,CAAC,CAAC;AACpC;AACA;AACA,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACnC,MAAM,kBAAkB,GAAG,OAAO,UAAU,KAAK;AACjD,IAAI,IAAI,OAAO,UAAU,KAAK,WAAW;AACzC,QAAQ,OAAO,SAAS,CAAC;AACzB,IAAI,IAAI;AACR,QAAQ,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;AAChF,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;AACxF,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACrC,KAAK;AACL,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,GAAG,KAAK,CAAC,CAAC,CAAC;AACrF,KAAK;AACL,CAAC,CAAC;AACF,OAAO,CAAC,kBAAkB,GAAG,kBAAkB;;"}
|
package/dist/cjs/utils/utils.js
CHANGED
|
@@ -12,7 +12,7 @@ const convert = async (stream) => {
|
|
|
12
12
|
.then(buffer => new Uint8Array(buffer));
|
|
13
13
|
}
|
|
14
14
|
else {
|
|
15
|
-
return Promise.reject('Invalid content type');
|
|
15
|
+
return Promise.reject(new Error('Invalid content type'));
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
18
|
exports.convert = convert;
|
|
@@ -21,7 +21,7 @@ const base64ToArrayBuffer = (base64) => {
|
|
|
21
21
|
};
|
|
22
22
|
exports.base64ToArrayBuffer = base64ToArrayBuffer;
|
|
23
23
|
const gzipDecompressToString = async (data) => {
|
|
24
|
-
return
|
|
24
|
+
return new Promise((resolve, reject) => {
|
|
25
25
|
(0, fflate_1.gunzip)(data, (err, resp) => {
|
|
26
26
|
if (err)
|
|
27
27
|
reject(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../src/utils/utils.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.gzipDecompressToString = exports.base64ToArrayBuffer = exports.convert = void 0;\nconst fflate_1 = require(\"fflate\");\nconst convert = async (stream) => {\n if (stream instanceof Blob || stream instanceof ReadableStream) {\n return new Response(stream)\n .arrayBuffer()\n .then(buffer => new Uint8Array(buffer));\n }\n else {\n return Promise.reject('Invalid content type');\n }\n};\nexports.convert = convert;\nconst base64ToArrayBuffer = (base64) => {\n return Uint8Array.from(window.atob(base64), c => c.charCodeAt(0));\n};\nexports.base64ToArrayBuffer = base64ToArrayBuffer;\nconst gzipDecompressToString = async (data) => {\n return
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../src/utils/utils.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.gzipDecompressToString = exports.base64ToArrayBuffer = exports.convert = void 0;\nconst fflate_1 = require(\"fflate\");\nconst convert = async (stream) => {\n if (stream instanceof Blob || stream instanceof ReadableStream) {\n return new Response(stream)\n .arrayBuffer()\n .then(buffer => new Uint8Array(buffer));\n }\n else {\n return Promise.reject(new Error('Invalid content type'));\n }\n};\nexports.convert = convert;\nconst base64ToArrayBuffer = (base64) => {\n return Uint8Array.from(window.atob(base64), c => c.charCodeAt(0));\n};\nexports.base64ToArrayBuffer = base64ToArrayBuffer;\nconst gzipDecompressToString = async (data) => {\n return new Promise((resolve, reject) => {\n (0, fflate_1.gunzip)(data, (err, resp) => {\n if (err)\n reject(err);\n else\n resolve((0, fflate_1.strFromU8)(resp));\n });\n });\n};\nexports.gzipDecompressToString = gzipDecompressToString;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,sBAAsB,GAAG,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;AACxF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK;AAClC,IAAI,IAAI,MAAM,YAAY,IAAI,IAAI,MAAM,YAAY,cAAc,EAAE;AACpE,QAAQ,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC;AACnC,aAAa,WAAW,EAAE;AAC1B,aAAa,IAAI,CAAC,MAAM,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACpD,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACjE,KAAK;AACL,CAAC,CAAC;AACF,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;AAC1B,MAAM,mBAAmB,GAAG,CAAC,MAAM,KAAK;AACxC,IAAI,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC;AACF,OAAO,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AAClD,MAAM,sBAAsB,GAAG,OAAO,IAAI,KAAK;AAC/C,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC5C,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK;AAClD,YAAY,IAAI,GAAG;AACnB,gBAAgB,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5B;AACA,gBAAgB,OAAO,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;AACvD,SAAS,CAAC,CAAC;AACX,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,OAAO,CAAC,sBAAsB,GAAG,sBAAsB;;"}
|
|
@@ -8,9 +8,9 @@ const base_64_1 = require("base-64");
|
|
|
8
8
|
const pako_1 = require("pako");
|
|
9
9
|
const convert = async (stream) => {
|
|
10
10
|
if (!(stream instanceof Blob)) {
|
|
11
|
-
return Promise.reject('Invalid content type');
|
|
11
|
+
return Promise.reject(new Error('Invalid content type'));
|
|
12
12
|
}
|
|
13
|
-
return new Promise(
|
|
13
|
+
return new Promise((resolve, reject) => {
|
|
14
14
|
try {
|
|
15
15
|
const fileReaderInstance = new FileReader();
|
|
16
16
|
fileReaderInstance.readAsDataURL(stream);
|
|
@@ -22,7 +22,7 @@ const convert = async (stream) => {
|
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
catch (error) {
|
|
25
|
-
reject('unable to convert blob to arrayBuffer: ' + error);
|
|
25
|
+
reject(new Error('unable to convert blob to arrayBuffer: ' + error));
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
28
|
};
|
|
@@ -39,7 +39,7 @@ const gzipDecompressToString = async (data) => {
|
|
|
39
39
|
resolve(result);
|
|
40
40
|
}
|
|
41
41
|
catch (error) {
|
|
42
|
-
reject('unable to decompress' + error);
|
|
42
|
+
reject(new Error('unable to decompress' + error));
|
|
43
43
|
}
|
|
44
44
|
});
|
|
45
45
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.native.js","sources":["../../../src/utils/utils.native.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.gzipDecompressToString = exports.base64ToArrayBuffer = exports.convert = void 0;\nconst base_64_1 = require(\"base-64\");\nconst pako_1 = require(\"pako\");\nconst convert = async (stream) => {\n if (!(stream instanceof Blob)) {\n return Promise.reject('Invalid content type');\n }\n return new Promise(
|
|
1
|
+
{"version":3,"file":"utils.native.js","sources":["../../../src/utils/utils.native.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.gzipDecompressToString = exports.base64ToArrayBuffer = exports.convert = void 0;\nconst base_64_1 = require(\"base-64\");\nconst pako_1 = require(\"pako\");\nconst convert = async (stream) => {\n if (!(stream instanceof Blob)) {\n return Promise.reject(new Error('Invalid content type'));\n }\n return new Promise((resolve, reject) => {\n try {\n const fileReaderInstance = new FileReader();\n fileReaderInstance.readAsDataURL(stream);\n fileReaderInstance.onload = async () => {\n const blobURL = fileReaderInstance.result;\n const base64Blob = blobURL.split(/,(.*)/s)[1];\n const decodedArrayBuffer = (0, exports.base64ToArrayBuffer)(base64Blob);\n resolve(decodedArrayBuffer);\n };\n }\n catch (error) {\n reject(new Error('unable to convert blob to arrayBuffer: ' + error));\n }\n });\n};\nexports.convert = convert;\nconst base64ToArrayBuffer = (base64) => {\n const binaryString = (0, base_64_1.decode)(base64);\n return Uint8Array.from(binaryString, c => c.charCodeAt(0));\n};\nexports.base64ToArrayBuffer = base64ToArrayBuffer;\nconst gzipDecompressToString = async (data) => {\n return new Promise((resolve, reject) => {\n try {\n const result = (0, pako_1.ungzip)(data, { to: 'string' });\n resolve(result);\n }\n catch (error) {\n reject(new Error('unable to decompress' + error));\n }\n });\n};\nexports.gzipDecompressToString = gzipDecompressToString;\n"],"names":[],"mappings":";;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,sBAAsB,GAAG,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;AACxF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACrC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC/B,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK;AAClC,IAAI,IAAI,EAAE,MAAM,YAAY,IAAI,CAAC,EAAE;AACnC,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC5C,QAAQ,IAAI;AACZ,YAAY,MAAM,kBAAkB,GAAG,IAAI,UAAU,EAAE,CAAC;AACxD,YAAY,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACrD,YAAY,kBAAkB,CAAC,MAAM,GAAG,YAAY;AACpD,gBAAgB,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC;AAC1D,gBAAgB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,gBAAgB,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;AACxF,gBAAgB,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC5C,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,GAAG,KAAK,CAAC,CAAC,CAAC;AACjF,SAAS;AACT,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;AAC1B,MAAM,mBAAmB,GAAG,CAAC,MAAM,KAAK;AACxC,IAAI,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvD,IAAI,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC;AACF,OAAO,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AAClD,MAAM,sBAAsB,GAAG,OAAO,IAAI,KAAK;AAC/C,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC5C,QAAQ,IAAI;AACZ,YAAY,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACtE,YAAY,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5B,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,GAAG,KAAK,CAAC,CAAC,CAAC;AAC9D,SAAS;AACT,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,OAAO,CAAC,sBAAsB,GAAG,sBAAsB;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { InteractionsOnCompleteCallback, InteractionsMessage, InteractionsResponse } from '../types/Interactions';
|
|
2
1
|
import { PostContentCommandOutput, PostTextCommandOutput } from '@aws-sdk/client-lex-runtime-service';
|
|
2
|
+
import { InteractionsMessage, InteractionsOnCompleteCallback, InteractionsResponse } from '../types/Interactions';
|
|
3
3
|
import { AWSLexProviderOption } from './types';
|
|
4
4
|
interface PostContentCommandOutputFormatted extends Omit<PostContentCommandOutput, 'audioStream'> {
|
|
5
5
|
audioStream?: Uint8Array;
|
|
@@ -3,6 +3,8 @@ import { getAmplifyUserAgentObject } from '@aws-amplify/core/internals/utils';
|
|
|
3
3
|
import { ConsoleLogger, fetchAuthSession } from '@aws-amplify/core';
|
|
4
4
|
import { convert } from '../utils/utils.mjs';
|
|
5
5
|
|
|
6
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
6
8
|
const logger = new ConsoleLogger('AWSLexProvider');
|
|
7
9
|
class AWSLexProvider {
|
|
8
10
|
constructor() {
|
|
@@ -37,7 +39,7 @@ class AWSLexProvider {
|
|
|
37
39
|
session = await fetchAuthSession();
|
|
38
40
|
}
|
|
39
41
|
catch (error) {
|
|
40
|
-
return Promise.reject('No credentials');
|
|
42
|
+
return Promise.reject(new Error('No credentials'));
|
|
41
43
|
}
|
|
42
44
|
const { name, region, alias } = botConfig;
|
|
43
45
|
const client = new LexRuntimeServiceClient({
|
|
@@ -68,7 +70,7 @@ class AWSLexProvider {
|
|
|
68
70
|
const { content, options: { messageType }, } = message;
|
|
69
71
|
if (messageType === 'voice') {
|
|
70
72
|
if (typeof content !== 'object') {
|
|
71
|
-
return Promise.reject('invalid content type');
|
|
73
|
+
return Promise.reject(new Error('invalid content type'));
|
|
72
74
|
}
|
|
73
75
|
const inputStream = content instanceof Uint8Array ? content : await convert(content);
|
|
74
76
|
params = {
|
|
@@ -82,7 +84,7 @@ class AWSLexProvider {
|
|
|
82
84
|
}
|
|
83
85
|
else {
|
|
84
86
|
if (typeof content !== 'string')
|
|
85
|
-
return Promise.reject('invalid content type');
|
|
87
|
+
return Promise.reject(new Error('invalid content type'));
|
|
86
88
|
params = {
|
|
87
89
|
botAlias: alias,
|
|
88
90
|
botName: name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AWSLexProvider.mjs","sources":["../../../src/lex-v1/AWSLexProvider.ts"],"sourcesContent":["
|
|
1
|
+
{"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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onComplete.mjs","sources":["../../../../src/lex-v1/apis/onComplete.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { resolveBotConfig } from '../utils';\nimport { lexProvider } from '../AWSLexProvider';\nimport {
|
|
1
|
+
{"version":3,"file":"onComplete.mjs","sources":["../../../../src/lex-v1/apis/onComplete.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { resolveBotConfig } from '../utils';\nimport { lexProvider } from '../AWSLexProvider';\nimport { InteractionsValidationErrorCode, assertValidationError, } from '../../errors';\nexport const onComplete = (input) => {\n const { botName, callback } = input;\n const botConfig = resolveBotConfig(botName);\n assertValidationError(!!botConfig, InteractionsValidationErrorCode.NoBotConfig, `Bot ${botName} does not exist.`);\n lexProvider.onComplete(botConfig, callback);\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAIY,MAAC,UAAU,GAAG,CAAC,KAAK,KAAK;AACrC,IAAI,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;AACxC,IAAI,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAChD,IAAI,qBAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,+BAA+B,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACtH,IAAI,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.mjs","sources":["../../../../src/lex-v1/apis/send.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { resolveBotConfig } from '../utils';\nimport { lexProvider } from '../AWSLexProvider';\nimport {
|
|
1
|
+
{"version":3,"file":"send.mjs","sources":["../../../../src/lex-v1/apis/send.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { resolveBotConfig } from '../utils';\nimport { lexProvider } from '../AWSLexProvider';\nimport { InteractionsValidationErrorCode, assertValidationError, } from '../../errors';\nexport const send = async (input) => {\n const { botName, message } = input;\n const botConfig = resolveBotConfig(botName);\n assertValidationError(!!botConfig, InteractionsValidationErrorCode.NoBotConfig, `Bot ${botName} does not exist.`);\n return lexProvider.sendMessage(botConfig, message);\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAIY,MAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AACrC,IAAI,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;AACvC,IAAI,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAChD,IAAI,qBAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,+BAA+B,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACtH,IAAI,OAAO,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACvD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../src/lex-v1/index.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport {
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/lex-v1/index.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { onComplete, send } from './apis';\n/**\n * @deprecated recommend to migrate to AWS Lex V2 instead\n * */\nexport const Interactions = {\n send,\n onComplete,\n};\n"],"names":[],"mappings":";;;AAAA;AACA;AAEA;AACA;AACA;AACY,MAAC,YAAY,GAAG;AAC5B,IAAI,IAAI;AACR,IAAI,UAAU;AACd;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { InteractionsOnCompleteCallback, InteractionsMessage, InteractionsResponse } from '../types/Interactions';
|
|
2
1
|
import { RecognizeTextCommandOutput, RecognizeUtteranceCommandOutput } from '@aws-sdk/client-lex-runtime-v2';
|
|
2
|
+
import { InteractionsMessage, InteractionsOnCompleteCallback, InteractionsResponse } from '../types/Interactions';
|
|
3
3
|
import { AWSLexV2ProviderOption } from './types';
|
|
4
4
|
interface RecognizeUtteranceCommandOutputFormatted extends Omit<RecognizeUtteranceCommandOutput, 'messages' | 'interpretations' | 'sessionState' | 'requestAttributes' | 'audioStream'> {
|
|
5
5
|
messages?: RecognizeTextCommandOutput['messages'];
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { LexRuntimeV2Client, IntentState, RecognizeTextCommand, RecognizeUtteranceCommand } from '@aws-sdk/client-lex-runtime-v2';
|
|
2
2
|
import { getAmplifyUserAgentObject } from '@aws-amplify/core/internals/utils';
|
|
3
3
|
import { ConsoleLogger, fetchAuthSession } from '@aws-amplify/core';
|
|
4
|
+
import { v4 } from 'uuid';
|
|
4
5
|
import { convert } from '../utils/utils.mjs';
|
|
5
6
|
import { unGzipBase64AsJson } from '../utils/commonUtils.mjs';
|
|
6
|
-
import { v4 } from 'uuid';
|
|
7
7
|
|
|
8
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
9
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
8
10
|
const logger = new ConsoleLogger('AWSLexV2Provider');
|
|
9
11
|
class AWSLexV2Provider {
|
|
10
12
|
constructor() {
|
|
@@ -25,7 +27,7 @@ class AWSLexV2Provider {
|
|
|
25
27
|
session = await fetchAuthSession();
|
|
26
28
|
}
|
|
27
29
|
catch (error) {
|
|
28
|
-
return Promise.reject('No credentials');
|
|
30
|
+
return Promise.reject(new Error('No credentials'));
|
|
29
31
|
}
|
|
30
32
|
const { region, aliasId, localeId, botId } = botConfig;
|
|
31
33
|
const client = new LexRuntimeV2Client({
|
|
@@ -109,9 +111,9 @@ class AWSLexV2Provider {
|
|
|
109
111
|
};
|
|
110
112
|
try {
|
|
111
113
|
const recognizeTextCommand = new RecognizeTextCommand(params);
|
|
112
|
-
const
|
|
113
|
-
this._reportBotStatus(
|
|
114
|
-
return
|
|
114
|
+
const resultData = await client.send(recognizeTextCommand);
|
|
115
|
+
this._reportBotStatus(resultData, botConfig);
|
|
116
|
+
return resultData;
|
|
115
117
|
}
|
|
116
118
|
catch (err) {
|
|
117
119
|
return Promise.reject(err);
|
|
@@ -128,7 +130,7 @@ class AWSLexV2Provider {
|
|
|
128
130
|
// prepare params
|
|
129
131
|
if (messageType === 'voice') {
|
|
130
132
|
if (typeof content !== 'object') {
|
|
131
|
-
return Promise.reject('invalid content type');
|
|
133
|
+
return Promise.reject(new Error('invalid content type'));
|
|
132
134
|
}
|
|
133
135
|
const inputStream = content instanceof Uint8Array ? content : await convert(content);
|
|
134
136
|
params = {
|
|
@@ -140,7 +142,7 @@ class AWSLexV2Provider {
|
|
|
140
142
|
else {
|
|
141
143
|
// text input
|
|
142
144
|
if (typeof content !== 'string')
|
|
143
|
-
return Promise.reject('invalid content type');
|
|
145
|
+
return Promise.reject(new Error('invalid content type'));
|
|
144
146
|
params = {
|
|
145
147
|
...baseParams,
|
|
146
148
|
requestContentType: 'text/plain; charset=utf-8',
|
|
@@ -150,8 +152,8 @@ class AWSLexV2Provider {
|
|
|
150
152
|
// make API call to lex
|
|
151
153
|
try {
|
|
152
154
|
const recognizeUtteranceCommand = new RecognizeUtteranceCommand(params);
|
|
153
|
-
const
|
|
154
|
-
const response = await this._formatUtteranceCommandOutput(
|
|
155
|
+
const resultData = await client.send(recognizeUtteranceCommand);
|
|
156
|
+
const response = await this._formatUtteranceCommandOutput(resultData);
|
|
155
157
|
this._reportBotStatus(response, botConfig);
|
|
156
158
|
return response;
|
|
157
159
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AWSLexV2Provider.mjs","sources":["../../../src/lex-v2/AWSLexV2Provider.ts"],"sourcesContent":["import { IntentState, LexRuntimeV2Client, RecognizeTextCommand, RecognizeUtteranceCommand, } from '@aws-sdk/client-lex-runtime-v2';\nimport { getAmplifyUserAgentObject } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger, fetchAuthSession } from '@aws-amplify/core';\nimport { convert, unGzipBase64AsJson } from '../utils';\nimport { v4 as uuid } from 'uuid';\nconst logger = new ConsoleLogger('AWSLexV2Provider');\nclass AWSLexV2Provider {\n constructor() {\n this._botsCompleteCallback = {};\n this.defaultSessionId = uuid();\n }\n /**\n * Send a message to a bot\n * @async\n * @param {AWSLexV2ProviderOption} botConfig - Bot configuration for sending the message\n * @param {string | InteractionsMessage} message - message to send to the bot\n * @return {Promise<InteractionsResponse>} A promise resolves to the response from the bot\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('No credentials');\n }\n const { region, aliasId, localeId, botId } = botConfig;\n const client = new LexRuntimeV2Client({\n region,\n credentials: session.credentials,\n customUserAgent: getAmplifyUserAgentObject(),\n });\n let response;\n // common base params for all requests\n const reqBaseParams = {\n botAliasId: aliasId,\n botId,\n localeId,\n sessionId: session.identityId ?? this.defaultSessionId,\n };\n if (typeof message === 'string') {\n response = await this._handleRecognizeTextCommand(botConfig, message, reqBaseParams, client);\n }\n else {\n response = await this._handleRecognizeUtteranceCommand(botConfig, message, reqBaseParams, client);\n }\n return response;\n }\n /**\n * Attach a onComplete callback function to a bot.\n * The callback is called once the bot's intent is fulfilled\n * @param {AWSLexV2ProviderOption} botConfig - Bot configuration to attach the onComplete callback\n * @param {InteractionsOnCompleteCallback} callback - called when Intent Fulfilled\n */\n onComplete({ name }, callback) {\n this._botsCompleteCallback[name] = callback;\n }\n /**\n * call onComplete callback for a bot if configured\n */\n _reportBotStatus(data, { name }) {\n const sessionState = data?.sessionState;\n // Check if state is fulfilled to resolve onFullfilment promise\n logger.debug('postContent state', sessionState?.intent?.state);\n const callback = this._botsCompleteCallback[name];\n if (!callback) {\n return;\n }\n switch (sessionState?.intent?.state) {\n case IntentState.READY_FOR_FULFILLMENT:\n case IntentState.FULFILLED:\n callback(undefined, data);\n break;\n case IntentState.FAILED:\n callback(new Error('Bot conversation failed'));\n break;\n default:\n break;\n }\n }\n /**\n * Format UtteranceCommandOutput's response\n * decompress attributes\n * update audioStream format\n */\n async _formatUtteranceCommandOutput(data) {\n return {\n ...data,\n messages: await unGzipBase64AsJson(data.messages),\n sessionState: await unGzipBase64AsJson(data.sessionState),\n interpretations: await unGzipBase64AsJson(data.interpretations),\n requestAttributes: await unGzipBase64AsJson(data.requestAttributes),\n inputTranscript: await unGzipBase64AsJson(data.inputTranscript),\n audioStream: data.audioStream\n ? await convert(data.audioStream)\n : undefined,\n };\n }\n /**\n * handle client's `RecognizeTextCommand`\n * used for sending simple text message\n */\n async _handleRecognizeTextCommand(botConfig, data, baseParams, client) {\n logger.debug('postText to lex2', data);\n const params = {\n ...baseParams,\n text: data,\n };\n try {\n const recognizeTextCommand = new RecognizeTextCommand(params);\n const data = await client.send(recognizeTextCommand);\n this._reportBotStatus(data, botConfig);\n return data;\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n /**\n * handle client's `RecognizeUtteranceCommand`\n * used for obj text or obj voice message\n */\n async _handleRecognizeUtteranceCommand(botConfig, data, baseParams, client) {\n const { content, options: { messageType }, } = data;\n logger.debug('postContent to lex2', data);\n let params;\n // prepare params\n if (messageType === 'voice') {\n if (typeof content !== 'object') {\n return Promise.reject('invalid content type');\n }\n const inputStream = content instanceof Uint8Array ? content : await convert(content);\n params = {\n ...baseParams,\n requestContentType: 'audio/x-l16; sample-rate=16000; channel-count=1',\n inputStream,\n };\n }\n else {\n // text input\n if (typeof content !== 'string')\n return Promise.reject('invalid content type');\n params = {\n ...baseParams,\n requestContentType: 'text/plain; charset=utf-8',\n inputStream: content,\n };\n }\n // make API call to lex\n try {\n const recognizeUtteranceCommand = new RecognizeUtteranceCommand(params);\n const data = await client.send(recognizeUtteranceCommand);\n const response = await this._formatUtteranceCommandOutput(data);\n this._reportBotStatus(response, botConfig);\n return response;\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n}\nexport const lexProvider = new AWSLexV2Provider();\n"],"names":["uuid"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AWSLexV2Provider.mjs","sources":["../../../src/lex-v2/AWSLexV2Provider.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { IntentState, LexRuntimeV2Client, RecognizeTextCommand, RecognizeUtteranceCommand, } from '@aws-sdk/client-lex-runtime-v2';\nimport { getAmplifyUserAgentObject } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger, fetchAuthSession } from '@aws-amplify/core';\nimport { v4 as uuid } from 'uuid';\nimport { convert, unGzipBase64AsJson } from '../utils';\nconst logger = new ConsoleLogger('AWSLexV2Provider');\nclass AWSLexV2Provider {\n constructor() {\n this._botsCompleteCallback = {};\n this.defaultSessionId = uuid();\n }\n /**\n * Send a message to a bot\n * @async\n * @param {AWSLexV2ProviderOption} botConfig - Bot configuration for sending the message\n * @param {string | InteractionsMessage} message - message to send to the bot\n * @return {Promise<InteractionsResponse>} A promise resolves to the response from the bot\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 { region, aliasId, localeId, botId } = botConfig;\n const client = new LexRuntimeV2Client({\n region,\n credentials: session.credentials,\n customUserAgent: getAmplifyUserAgentObject(),\n });\n let response;\n // common base params for all requests\n const reqBaseParams = {\n botAliasId: aliasId,\n botId,\n localeId,\n sessionId: session.identityId ?? this.defaultSessionId,\n };\n if (typeof message === 'string') {\n response = await this._handleRecognizeTextCommand(botConfig, message, reqBaseParams, client);\n }\n else {\n response = await this._handleRecognizeUtteranceCommand(botConfig, message, reqBaseParams, client);\n }\n return response;\n }\n /**\n * Attach a onComplete callback function to a bot.\n * The callback is called once the bot's intent is fulfilled\n * @param {AWSLexV2ProviderOption} botConfig - Bot configuration to attach the onComplete callback\n * @param {InteractionsOnCompleteCallback} callback - called when Intent Fulfilled\n */\n onComplete({ name }, callback) {\n this._botsCompleteCallback[name] = callback;\n }\n /**\n * call onComplete callback for a bot if configured\n */\n _reportBotStatus(data, { name }) {\n const sessionState = data?.sessionState;\n // Check if state is fulfilled to resolve onFullfilment promise\n logger.debug('postContent state', sessionState?.intent?.state);\n const callback = this._botsCompleteCallback[name];\n if (!callback) {\n return;\n }\n switch (sessionState?.intent?.state) {\n case IntentState.READY_FOR_FULFILLMENT:\n case IntentState.FULFILLED:\n callback(undefined, data);\n break;\n case IntentState.FAILED:\n callback(new Error('Bot conversation failed'));\n break;\n default:\n break;\n }\n }\n /**\n * Format UtteranceCommandOutput's response\n * decompress attributes\n * update audioStream format\n */\n async _formatUtteranceCommandOutput(data) {\n return {\n ...data,\n messages: await unGzipBase64AsJson(data.messages),\n sessionState: await unGzipBase64AsJson(data.sessionState),\n interpretations: await unGzipBase64AsJson(data.interpretations),\n requestAttributes: await unGzipBase64AsJson(data.requestAttributes),\n inputTranscript: await unGzipBase64AsJson(data.inputTranscript),\n audioStream: data.audioStream\n ? await convert(data.audioStream)\n : undefined,\n };\n }\n /**\n * handle client's `RecognizeTextCommand`\n * used for sending simple text message\n */\n async _handleRecognizeTextCommand(botConfig, data, baseParams, client) {\n logger.debug('postText to lex2', data);\n const params = {\n ...baseParams,\n text: data,\n };\n try {\n const recognizeTextCommand = new RecognizeTextCommand(params);\n const resultData = await client.send(recognizeTextCommand);\n this._reportBotStatus(resultData, botConfig);\n return resultData;\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n /**\n * handle client's `RecognizeUtteranceCommand`\n * used for obj text or obj voice message\n */\n async _handleRecognizeUtteranceCommand(botConfig, data, baseParams, client) {\n const { content, options: { messageType }, } = data;\n logger.debug('postContent to lex2', data);\n let params;\n // prepare params\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 ...baseParams,\n requestContentType: 'audio/x-l16; sample-rate=16000; channel-count=1',\n inputStream,\n };\n }\n else {\n // text input\n if (typeof content !== 'string')\n return Promise.reject(new Error('invalid content type'));\n params = {\n ...baseParams,\n requestContentType: 'text/plain; charset=utf-8',\n inputStream: content,\n };\n }\n // make API call to lex\n try {\n const recognizeUtteranceCommand = new RecognizeUtteranceCommand(params);\n const resultData = await client.send(recognizeUtteranceCommand);\n const response = await this._formatUtteranceCommandOutput(resultData);\n this._reportBotStatus(response, botConfig);\n return response;\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n}\nexport const lexProvider = new AWSLexV2Provider();\n"],"names":["uuid"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onComplete.mjs","sources":["../../../../src/lex-v2/apis/onComplete.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { resolveBotConfig } from '../utils';\nimport { lexProvider } from '../AWSLexV2Provider';\nimport {
|
|
1
|
+
{"version":3,"file":"onComplete.mjs","sources":["../../../../src/lex-v2/apis/onComplete.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { resolveBotConfig } from '../utils';\nimport { lexProvider } from '../AWSLexV2Provider';\nimport { InteractionsValidationErrorCode, assertValidationError, } from '../../errors';\nexport const onComplete = (input) => {\n const { botName, callback } = input;\n const botConfig = resolveBotConfig(botName);\n assertValidationError(!!botConfig, InteractionsValidationErrorCode.NoBotConfig, `Bot ${botName} does not exist.`);\n lexProvider.onComplete(botConfig, callback);\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAIY,MAAC,UAAU,GAAG,CAAC,KAAK,KAAK;AACrC,IAAI,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;AACxC,IAAI,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAChD,IAAI,qBAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,+BAA+B,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACtH,IAAI,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.mjs","sources":["../../../../src/lex-v2/apis/send.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { lexProvider } from '../AWSLexV2Provider';\nimport { resolveBotConfig } from '../utils';\nimport {
|
|
1
|
+
{"version":3,"file":"send.mjs","sources":["../../../../src/lex-v2/apis/send.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { lexProvider } from '../AWSLexV2Provider';\nimport { resolveBotConfig } from '../utils';\nimport { InteractionsValidationErrorCode, assertValidationError, } from '../../errors';\nexport const send = async (input) => {\n const { botName, message } = input;\n const botConfig = resolveBotConfig(botName);\n assertValidationError(!!botConfig, InteractionsValidationErrorCode.NoBotConfig, `Bot ${botName} does not exist.`);\n return lexProvider.sendMessage(botConfig, message);\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAIY,MAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AACrC,IAAI,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;AACvC,IAAI,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAChD,IAAI,qBAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,+BAA+B,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACtH,IAAI,OAAO,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACvD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../src/lex-v2/index.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport {
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/lex-v2/index.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { onComplete, send } from './apis';\nexport const Interactions = {\n send,\n onComplete,\n};\n"],"names":[],"mappings":";;;AAAA;AACA;AAEY,MAAC,YAAY,GAAG;AAC5B,IAAI,IAAI;AACR,IAAI,UAAU;AACd;;;;"}
|