@aws-amplify/interactions 5.2.12-unstable.7762f1a.0 → 6.0.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/README.md +3 -0
- package/lex-v1/package.json +7 -0
- package/lex-v2/package.json +7 -0
- package/lib/errors/InteractionsError.d.ts +4 -0
- package/lib/errors/InteractionsError.js +16 -0
- package/lib/errors/assertValidationError.d.ts +2 -0
- package/lib/errors/assertValidationError.js +18 -0
- package/lib/errors/index.d.ts +2 -0
- package/lib/errors/index.js +9 -0
- package/lib/errors/validation.d.ts +5 -0
- package/lib/errors/validation.js +14 -0
- package/lib/index.d.ts +2 -5
- package/lib/index.js +3 -9
- package/lib/lex-v1/AWSLexProvider.d.ts +20 -0
- package/lib/lex-v1/AWSLexProvider.js +119 -0
- package/lib/lex-v1/apis/index.d.ts +2 -0
- package/lib/lex-v1/apis/index.js +9 -0
- package/lib/lex-v1/apis/onComplete.d.ts +2 -0
- package/lib/lex-v1/apis/onComplete.js +15 -0
- package/lib/lex-v1/apis/send.d.ts +2 -0
- package/lib/lex-v1/apis/send.js +15 -0
- package/lib/lex-v1/index.d.ts +6 -0
- package/lib/lex-v1/index.js +13 -0
- package/lib/lex-v1/types/AWSLexProviderOption.d.ts +11 -0
- package/lib/{types/Response.js → lex-v1/types/AWSLexProviderOption.js} +0 -1
- package/lib/lex-v1/types/index.d.ts +3 -0
- package/lib/lex-v1/types/index.js +4 -0
- package/lib/lex-v1/types/inputs.d.ts +9 -0
- package/lib/lex-v1/types/inputs.js +4 -0
- package/lib/lex-v1/types/outputs.d.ts +5 -0
- package/lib/lex-v1/types/outputs.js +4 -0
- package/lib/lex-v1/utils/index.d.ts +1 -0
- package/lib/lex-v1/utils/index.js +7 -0
- package/lib/lex-v1/utils/resolveBotConfig.d.ts +2 -0
- package/lib/lex-v1/utils/resolveBotConfig.js +13 -0
- package/lib/lex-v2/AWSLexV2Provider.d.ts +52 -0
- package/lib/lex-v2/AWSLexV2Provider.js +166 -0
- package/lib/lex-v2/apis/index.d.ts +2 -0
- package/lib/lex-v2/apis/index.js +9 -0
- package/lib/lex-v2/apis/onComplete.d.ts +2 -0
- package/lib/lex-v2/apis/onComplete.js +15 -0
- package/lib/lex-v2/apis/send.d.ts +2 -0
- package/lib/lex-v2/apis/send.js +15 -0
- package/lib/lex-v2/index.d.ts +3 -0
- package/lib/lex-v2/index.js +10 -0
- package/lib/lex-v2/types/AWSLexV2ProviderOption.d.ts +13 -0
- package/lib/lex-v2/types/AWSLexV2ProviderOption.js +4 -0
- package/lib/lex-v2/types/index.d.ts +3 -0
- package/lib/lex-v2/types/index.js +4 -0
- package/lib/lex-v2/types/inputs.d.ts +9 -0
- package/lib/lex-v2/types/inputs.js +4 -0
- package/lib/lex-v2/types/outputs.d.ts +5 -0
- package/lib/lex-v2/types/outputs.js +4 -0
- package/lib/lex-v2/utils/index.d.ts +1 -0
- package/lib/lex-v2/utils/index.js +7 -0
- package/lib/lex-v2/utils/resolveBotConfig.d.ts +2 -0
- package/lib/lex-v2/utils/resolveBotConfig.js +13 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/types/Interactions.d.ts +7 -6
- package/lib/types/Interactions.js +2 -1
- package/lib/types/index.d.ts +2 -5
- package/lib/types/index.js +2 -1
- package/lib/types/inputs.d.ts +9 -0
- package/lib/types/inputs.js +4 -0
- package/lib/types/outputs.d.ts +2 -0
- package/lib/types/outputs.js +4 -0
- package/lib/utils/commonUtils.d.ts +1 -0
- package/lib/utils/commonUtils.js +19 -0
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.js +11 -0
- package/lib/utils/utils.js +32 -0
- package/lib/utils/utils.native.js +45 -0
- package/lib-esm/errors/InteractionsError.d.ts +4 -0
- package/lib-esm/errors/InteractionsError.js +12 -0
- package/lib-esm/errors/assertValidationError.d.ts +2 -0
- package/lib-esm/errors/assertValidationError.js +14 -0
- package/lib-esm/errors/index.d.ts +2 -0
- package/lib-esm/errors/index.js +4 -0
- package/lib-esm/errors/validation.d.ts +5 -0
- package/lib-esm/errors/validation.js +11 -0
- package/lib-esm/index.d.ts +2 -5
- package/lib-esm/index.js +1 -5
- package/lib-esm/lex-v1/AWSLexProvider.d.ts +20 -0
- package/lib-esm/lex-v1/AWSLexProvider.js +116 -0
- package/lib-esm/lex-v1/apis/index.d.ts +2 -0
- package/lib-esm/lex-v1/apis/index.js +4 -0
- package/lib-esm/lex-v1/apis/onComplete.d.ts +2 -0
- package/lib-esm/lex-v1/apis/onComplete.js +11 -0
- package/lib-esm/lex-v1/apis/send.d.ts +2 -0
- package/lib-esm/lex-v1/apis/send.js +11 -0
- package/lib-esm/lex-v1/index.d.ts +6 -0
- package/lib-esm/lex-v1/index.js +10 -0
- package/lib-esm/lex-v1/types/AWSLexProviderOption.d.ts +11 -0
- package/lib-esm/{types/Response.js → lex-v1/types/AWSLexProviderOption.js} +1 -1
- package/lib-esm/lex-v1/types/index.d.ts +3 -0
- package/lib-esm/lex-v1/types/index.js +3 -0
- package/lib-esm/lex-v1/types/inputs.d.ts +9 -0
- package/lib-esm/lex-v1/types/inputs.js +3 -0
- package/lib-esm/lex-v1/types/outputs.d.ts +5 -0
- package/lib-esm/lex-v1/types/outputs.js +3 -0
- package/lib-esm/lex-v1/utils/index.d.ts +1 -0
- package/lib-esm/lex-v1/utils/index.js +3 -0
- package/lib-esm/lex-v1/utils/resolveBotConfig.d.ts +2 -0
- package/lib-esm/lex-v1/utils/resolveBotConfig.js +9 -0
- package/lib-esm/lex-v2/AWSLexV2Provider.d.ts +52 -0
- package/lib-esm/lex-v2/AWSLexV2Provider.js +163 -0
- package/lib-esm/lex-v2/apis/index.d.ts +2 -0
- package/lib-esm/lex-v2/apis/index.js +4 -0
- package/lib-esm/lex-v2/apis/onComplete.d.ts +2 -0
- package/lib-esm/lex-v2/apis/onComplete.js +11 -0
- package/lib-esm/lex-v2/apis/send.d.ts +2 -0
- package/lib-esm/lex-v2/apis/send.js +11 -0
- package/lib-esm/lex-v2/index.d.ts +3 -0
- package/lib-esm/lex-v2/index.js +7 -0
- package/lib-esm/lex-v2/types/AWSLexV2ProviderOption.d.ts +13 -0
- package/lib-esm/lex-v2/types/AWSLexV2ProviderOption.js +3 -0
- package/lib-esm/lex-v2/types/index.d.ts +3 -0
- package/lib-esm/lex-v2/types/index.js +3 -0
- package/lib-esm/lex-v2/types/inputs.d.ts +9 -0
- package/lib-esm/lex-v2/types/inputs.js +3 -0
- package/lib-esm/lex-v2/types/outputs.d.ts +5 -0
- package/lib-esm/lex-v2/types/outputs.js +3 -0
- package/lib-esm/lex-v2/utils/index.d.ts +1 -0
- package/lib-esm/lex-v2/utils/index.js +3 -0
- package/lib-esm/lex-v2/utils/resolveBotConfig.d.ts +2 -0
- package/lib-esm/lex-v2/utils/resolveBotConfig.js +9 -0
- package/lib-esm/tsconfig.tsbuildinfo +1 -0
- package/lib-esm/types/Interactions.d.ts +7 -6
- package/lib-esm/types/Interactions.js +3 -1
- package/lib-esm/types/index.d.ts +2 -5
- package/lib-esm/types/index.js +3 -1
- package/lib-esm/types/inputs.d.ts +9 -0
- package/lib-esm/types/inputs.js +3 -0
- package/lib-esm/types/outputs.d.ts +2 -0
- package/lib-esm/types/outputs.js +3 -0
- package/lib-esm/utils/commonUtils.d.ts +1 -0
- package/lib-esm/utils/commonUtils.js +15 -0
- package/lib-esm/utils/index.d.ts +2 -0
- package/lib-esm/utils/index.js +4 -0
- package/lib-esm/utils/utils.js +26 -0
- package/lib-esm/utils/utils.native.js +39 -0
- package/package.json +67 -28
- package/src/errors/InteractionsError.ts +18 -0
- package/src/errors/assertValidationError.ts +24 -0
- package/src/errors/index.ts +5 -0
- package/src/errors/validation.ts +15 -0
- package/src/index.ts +2 -5
- package/src/lex-v1/AWSLexProvider.ts +167 -0
- package/src/lex-v1/apis/index.ts +5 -0
- package/src/lex-v1/apis/onComplete.ts +21 -0
- package/src/lex-v1/apis/send.ts +21 -0
- package/src/lex-v1/index.ts +14 -0
- package/src/lex-v1/types/AWSLexProviderOption.ts +16 -0
- package/src/lex-v1/types/index.ts +6 -0
- package/src/lex-v1/types/inputs.ts +17 -0
- package/src/lex-v1/types/outputs.ts +9 -0
- package/src/{types/Response.ts → lex-v1/utils/index.ts} +1 -3
- package/src/lex-v1/utils/resolveBotConfig.ts +15 -0
- package/src/{Providers → lex-v2}/AWSLexV2Provider.ts +67 -137
- package/src/lex-v2/apis/index.ts +5 -0
- package/src/lex-v2/apis/onComplete.ts +21 -0
- package/src/lex-v2/apis/send.ts +21 -0
- package/src/lex-v2/index.ts +11 -0
- package/src/{types/Providers/AWSLexV2Provider.ts → lex-v2/types/AWSLexV2ProviderOption.ts} +7 -4
- package/src/lex-v2/types/index.ts +6 -0
- package/src/lex-v2/types/inputs.ts +17 -0
- package/src/lex-v2/types/outputs.ts +9 -0
- package/src/lex-v2/utils/index.ts +4 -0
- package/src/lex-v2/utils/resolveBotConfig.ts +15 -0
- package/src/types/Interactions.ts +9 -3
- package/src/types/index.ts +3 -5
- package/src/types/inputs.ts +17 -0
- package/src/types/outputs.ts +6 -0
- package/src/utils/index.ts +5 -0
- package/lib/.tsbuildinfo +0 -3
- package/lib/Interactions.d.ts +0 -24
- package/lib/Interactions.js +0 -123
- package/lib/Interactions.js.map +0 -1
- package/lib/Providers/AWSLexProvider.d.ts +0 -24
- package/lib/Providers/AWSLexProvider.js +0 -187
- package/lib/Providers/AWSLexProvider.js.map +0 -1
- package/lib/Providers/AWSLexProviderHelper/commonUtils.d.ts +0 -1
- package/lib/Providers/AWSLexProviderHelper/commonUtils.js +0 -29
- package/lib/Providers/AWSLexProviderHelper/commonUtils.js.map +0 -1
- package/lib/Providers/AWSLexProviderHelper/utils.js +0 -38
- package/lib/Providers/AWSLexProviderHelper/utils.js.map +0 -1
- package/lib/Providers/AWSLexProviderHelper/utils.native.js +0 -55
- package/lib/Providers/AWSLexProviderHelper/utils.native.js.map +0 -1
- package/lib/Providers/AWSLexV2Provider.d.ts +0 -58
- package/lib/Providers/AWSLexV2Provider.js +0 -282
- package/lib/Providers/AWSLexV2Provider.js.map +0 -1
- package/lib/Providers/InteractionsProvider.d.ts +0 -11
- package/lib/Providers/InteractionsProvider.js +0 -32
- package/lib/Providers/InteractionsProvider.js.map +0 -1
- package/lib/Providers/index.d.ts +0 -3
- package/lib/Providers/index.js +0 -11
- package/lib/Providers/index.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/types/Interactions.js.map +0 -1
- package/lib/types/Provider.d.ts +0 -12
- package/lib/types/Provider.js +0 -3
- package/lib/types/Provider.js.map +0 -1
- package/lib/types/Providers/AWSLexProvider.d.ts +0 -10
- package/lib/types/Providers/AWSLexProvider.js +0 -3
- package/lib/types/Providers/AWSLexProvider.js.map +0 -1
- package/lib/types/Providers/AWSLexV2Provider.d.ts +0 -12
- package/lib/types/Providers/AWSLexV2Provider.js +0 -3
- package/lib/types/Providers/AWSLexV2Provider.js.map +0 -1
- package/lib/types/Response.d.ts +0 -3
- package/lib/types/Response.js.map +0 -1
- package/lib/types/index.js.map +0 -1
- package/lib-esm/.tsbuildinfo +0 -3
- package/lib-esm/Interactions.d.ts +0 -24
- package/lib-esm/Interactions.js +0 -121
- package/lib-esm/Interactions.js.map +0 -1
- package/lib-esm/Providers/AWSLexProvider.d.ts +0 -24
- package/lib-esm/Providers/AWSLexProvider.js +0 -185
- package/lib-esm/Providers/AWSLexProvider.js.map +0 -1
- package/lib-esm/Providers/AWSLexProviderHelper/commonUtils.d.ts +0 -1
- package/lib-esm/Providers/AWSLexProviderHelper/commonUtils.js +0 -27
- package/lib-esm/Providers/AWSLexProviderHelper/commonUtils.js.map +0 -1
- package/lib-esm/Providers/AWSLexProviderHelper/utils.js +0 -36
- package/lib-esm/Providers/AWSLexProviderHelper/utils.js.map +0 -1
- package/lib-esm/Providers/AWSLexProviderHelper/utils.native.js +0 -53
- package/lib-esm/Providers/AWSLexProviderHelper/utils.native.js.map +0 -1
- package/lib-esm/Providers/AWSLexV2Provider.d.ts +0 -58
- package/lib-esm/Providers/AWSLexV2Provider.js +0 -280
- package/lib-esm/Providers/AWSLexV2Provider.js.map +0 -1
- package/lib-esm/Providers/InteractionsProvider.d.ts +0 -11
- package/lib-esm/Providers/InteractionsProvider.js +0 -30
- package/lib-esm/Providers/InteractionsProvider.js.map +0 -1
- package/lib-esm/Providers/index.d.ts +0 -3
- package/lib-esm/Providers/index.js +0 -6
- package/lib-esm/Providers/index.js.map +0 -1
- package/lib-esm/index.js.map +0 -1
- package/lib-esm/types/Interactions.js.map +0 -1
- package/lib-esm/types/Provider.d.ts +0 -12
- package/lib-esm/types/Provider.js +0 -1
- package/lib-esm/types/Provider.js.map +0 -1
- package/lib-esm/types/Providers/AWSLexProvider.d.ts +0 -10
- package/lib-esm/types/Providers/AWSLexProvider.js +0 -1
- package/lib-esm/types/Providers/AWSLexProvider.js.map +0 -1
- package/lib-esm/types/Providers/AWSLexV2Provider.d.ts +0 -12
- package/lib-esm/types/Providers/AWSLexV2Provider.js +0 -1
- package/lib-esm/types/Providers/AWSLexV2Provider.js.map +0 -1
- package/lib-esm/types/Response.d.ts +0 -3
- package/lib-esm/types/Response.js.map +0 -1
- package/lib-esm/types/index.js.map +0 -1
- package/src/Interactions.ts +0 -162
- package/src/Providers/AWSLexProvider.ts +0 -212
- package/src/Providers/InteractionsProvider.ts +0 -49
- package/src/Providers/index.ts +0 -5
- package/src/types/Provider.ts +0 -26
- package/src/types/Providers/AWSLexProvider.ts +0 -13
- /package/lib/{Providers/AWSLexProviderHelper → utils}/utils.d.ts +0 -0
- /package/lib/{Providers/AWSLexProviderHelper → utils}/utils.native.d.ts +0 -0
- /package/lib-esm/{Providers/AWSLexProviderHelper → utils}/utils.d.ts +0 -0
- /package/lib-esm/{Providers/AWSLexProviderHelper → utils}/utils.native.d.ts +0 -0
- /package/src/{Providers/AWSLexProviderHelper → utils}/commonUtils.ts +0 -0
- /package/src/{Providers/AWSLexProviderHelper → utils}/utils.native.ts +0 -0
- /package/src/{Providers/AWSLexProviderHelper → utils}/utils.ts +0 -0
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import { AbstractInteractionsProvider } from './InteractionsProvider';
|
|
4
|
-
import {
|
|
5
|
-
InteractionsOptions,
|
|
6
|
-
AWSLexProviderOptions,
|
|
7
|
-
InteractionsResponse,
|
|
8
|
-
InteractionsMessage,
|
|
9
|
-
} from '../types';
|
|
10
|
-
import {
|
|
11
|
-
LexRuntimeServiceClient,
|
|
12
|
-
PostTextCommand,
|
|
13
|
-
PostTextCommandInput,
|
|
14
|
-
PostTextCommandOutput,
|
|
15
|
-
PostContentCommand,
|
|
16
|
-
PostContentCommandInput,
|
|
17
|
-
PostContentCommandOutput,
|
|
18
|
-
} from '@aws-sdk/client-lex-runtime-service';
|
|
19
|
-
import {
|
|
20
|
-
ConsoleLogger as Logger,
|
|
21
|
-
Credentials,
|
|
22
|
-
getAmplifyUserAgentObject,
|
|
23
|
-
} from '@aws-amplify/core';
|
|
24
|
-
import { convert } from './AWSLexProviderHelper/utils';
|
|
25
|
-
|
|
26
|
-
const logger = new Logger('AWSLexProvider');
|
|
27
|
-
|
|
28
|
-
interface PostContentCommandOutputFormatted
|
|
29
|
-
extends Omit<PostContentCommandOutput, 'audioStream'> {
|
|
30
|
-
audioStream?: Uint8Array;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
type AWSLexProviderSendResponse =
|
|
34
|
-
| PostTextCommandOutput
|
|
35
|
-
| PostContentCommandOutputFormatted;
|
|
36
|
-
|
|
37
|
-
export class AWSLexProvider extends AbstractInteractionsProvider {
|
|
38
|
-
private lexRuntimeServiceClient: LexRuntimeServiceClient;
|
|
39
|
-
private _botsCompleteCallback: object;
|
|
40
|
-
|
|
41
|
-
constructor(options: InteractionsOptions = {}) {
|
|
42
|
-
super(options);
|
|
43
|
-
this._botsCompleteCallback = {};
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
getProviderName() {
|
|
47
|
-
return 'AWSLexProvider';
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
configure(config: AWSLexProviderOptions = {}): AWSLexProviderOptions {
|
|
51
|
-
const propertiesToTest = ['name', 'alias', 'region'];
|
|
52
|
-
|
|
53
|
-
Object.keys(config).forEach(botKey => {
|
|
54
|
-
const botConfig = config[botKey];
|
|
55
|
-
|
|
56
|
-
// is bot config correct
|
|
57
|
-
if (!propertiesToTest.every(x => x in botConfig)) {
|
|
58
|
-
throw new Error('invalid bot configuration');
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
return super.configure(config);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* @private
|
|
66
|
-
* @deprecated
|
|
67
|
-
* This is used internally by 'sendMessage' to call onComplete callback
|
|
68
|
-
* for a bot if configured
|
|
69
|
-
*/
|
|
70
|
-
reportBotStatus(data: AWSLexProviderSendResponse, botname: string) {
|
|
71
|
-
// Check if state is fulfilled to resolve onFullfilment promise
|
|
72
|
-
logger.debug('postContent state', data.dialogState);
|
|
73
|
-
if (
|
|
74
|
-
data.dialogState === 'ReadyForFulfillment' ||
|
|
75
|
-
data.dialogState === 'Fulfilled'
|
|
76
|
-
) {
|
|
77
|
-
if (typeof this._botsCompleteCallback[botname] === 'function') {
|
|
78
|
-
setTimeout(() => this._botsCompleteCallback[botname](null, data), 0);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
if (
|
|
82
|
-
this._config &&
|
|
83
|
-
typeof this._config[botname].onComplete === 'function'
|
|
84
|
-
) {
|
|
85
|
-
setTimeout(() => this._config[botname].onComplete(null, data), 0);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
if (data.dialogState === 'Failed') {
|
|
90
|
-
if (typeof this._botsCompleteCallback[botname] === 'function') {
|
|
91
|
-
setTimeout(
|
|
92
|
-
() => this._botsCompleteCallback[botname]('Bot conversation failed'),
|
|
93
|
-
0
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (
|
|
98
|
-
this._config &&
|
|
99
|
-
typeof this._config[botname].onComplete === 'function'
|
|
100
|
-
) {
|
|
101
|
-
setTimeout(
|
|
102
|
-
() => this._config[botname].onComplete('Bot conversation failed'),
|
|
103
|
-
0
|
|
104
|
-
);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
async sendMessage(
|
|
110
|
-
botname: string,
|
|
111
|
-
message: string | InteractionsMessage
|
|
112
|
-
): Promise<InteractionsResponse> {
|
|
113
|
-
// check if bot exists
|
|
114
|
-
if (!this._config[botname]) {
|
|
115
|
-
return Promise.reject('Bot ' + botname + ' does not exist');
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// check if credentials are present
|
|
119
|
-
let credentials;
|
|
120
|
-
try {
|
|
121
|
-
credentials = await Credentials.get();
|
|
122
|
-
} catch (error) {
|
|
123
|
-
return Promise.reject('No credentials');
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
this.lexRuntimeServiceClient = new LexRuntimeServiceClient({
|
|
127
|
-
region: this._config[botname].region,
|
|
128
|
-
credentials,
|
|
129
|
-
customUserAgent: getAmplifyUserAgentObject(),
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
let params: PostTextCommandInput | PostContentCommandInput;
|
|
133
|
-
if (typeof message === 'string') {
|
|
134
|
-
params = {
|
|
135
|
-
botAlias: this._config[botname].alias,
|
|
136
|
-
botName: botname,
|
|
137
|
-
inputText: message,
|
|
138
|
-
userId: credentials.identityId,
|
|
139
|
-
};
|
|
140
|
-
|
|
141
|
-
logger.debug('postText to lex', message);
|
|
142
|
-
try {
|
|
143
|
-
const postTextCommand = new PostTextCommand(params);
|
|
144
|
-
const data = await this.lexRuntimeServiceClient.send(postTextCommand);
|
|
145
|
-
|
|
146
|
-
this.reportBotStatus(data, botname);
|
|
147
|
-
return data;
|
|
148
|
-
} catch (err) {
|
|
149
|
-
return Promise.reject(err);
|
|
150
|
-
}
|
|
151
|
-
} else {
|
|
152
|
-
const {
|
|
153
|
-
content,
|
|
154
|
-
options: { messageType },
|
|
155
|
-
} = message;
|
|
156
|
-
if (messageType === 'voice') {
|
|
157
|
-
if (typeof content !== 'object') {
|
|
158
|
-
return Promise.reject('invalid content type');
|
|
159
|
-
}
|
|
160
|
-
const inputStream =
|
|
161
|
-
content instanceof Uint8Array ? content : await convert(content);
|
|
162
|
-
|
|
163
|
-
params = {
|
|
164
|
-
botAlias: this._config[botname].alias,
|
|
165
|
-
botName: botname,
|
|
166
|
-
contentType: 'audio/x-l16; sample-rate=16000; channel-count=1',
|
|
167
|
-
userId: credentials.identityId,
|
|
168
|
-
accept: 'audio/mpeg',
|
|
169
|
-
inputStream,
|
|
170
|
-
};
|
|
171
|
-
} else {
|
|
172
|
-
if (typeof content !== 'string')
|
|
173
|
-
return Promise.reject('invalid content type');
|
|
174
|
-
|
|
175
|
-
params = {
|
|
176
|
-
botAlias: this._config[botname].alias,
|
|
177
|
-
botName: botname,
|
|
178
|
-
contentType: 'text/plain; charset=utf-8',
|
|
179
|
-
inputStream: content,
|
|
180
|
-
userId: credentials.identityId,
|
|
181
|
-
accept: 'audio/mpeg',
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
logger.debug('postContent to lex', message);
|
|
185
|
-
try {
|
|
186
|
-
const postContentCommand = new PostContentCommand(params);
|
|
187
|
-
const data = await this.lexRuntimeServiceClient.send(
|
|
188
|
-
postContentCommand
|
|
189
|
-
);
|
|
190
|
-
|
|
191
|
-
const audioArray = data.audioStream
|
|
192
|
-
? await convert(data.audioStream)
|
|
193
|
-
: undefined;
|
|
194
|
-
|
|
195
|
-
const response = { ...data, ...{ audioStream: audioArray } };
|
|
196
|
-
|
|
197
|
-
this.reportBotStatus(response, botname);
|
|
198
|
-
return response;
|
|
199
|
-
} catch (err) {
|
|
200
|
-
return Promise.reject(err);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
onComplete(botname: string, callback: (err, confirmation) => void) {
|
|
206
|
-
// does bot exist
|
|
207
|
-
if (!this._config[botname]) {
|
|
208
|
-
throw new Error('Bot ' + botname + ' does not exist');
|
|
209
|
-
}
|
|
210
|
-
this._botsCompleteCallback[botname] = callback;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
InteractionsProvider,
|
|
6
|
-
InteractionsOptions,
|
|
7
|
-
InteractionsResponse,
|
|
8
|
-
} from '../types';
|
|
9
|
-
|
|
10
|
-
import { ConsoleLogger as Logger } from '@aws-amplify/core';
|
|
11
|
-
|
|
12
|
-
const logger = new Logger('AbstractInteractionsProvider');
|
|
13
|
-
|
|
14
|
-
export abstract class AbstractInteractionsProvider
|
|
15
|
-
implements InteractionsProvider {
|
|
16
|
-
protected _config: InteractionsOptions;
|
|
17
|
-
|
|
18
|
-
constructor(options: InteractionsOptions = {}) {
|
|
19
|
-
this._config = options;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
configure(config: InteractionsOptions = {}): InteractionsOptions {
|
|
23
|
-
this._config = { ...this._config, ...config };
|
|
24
|
-
|
|
25
|
-
logger.debug(`configure ${this.getProviderName()}`, this._config);
|
|
26
|
-
|
|
27
|
-
return this.options;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
getCategory() {
|
|
31
|
-
return 'Interactions';
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
abstract getProviderName(): string;
|
|
35
|
-
|
|
36
|
-
protected get options(): InteractionsOptions {
|
|
37
|
-
return { ...this._config };
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
public abstract sendMessage(
|
|
41
|
-
botname: string,
|
|
42
|
-
message: string | Object
|
|
43
|
-
): Promise<object>;
|
|
44
|
-
|
|
45
|
-
public abstract onComplete(
|
|
46
|
-
botname: string,
|
|
47
|
-
callback: (err: any, confirmation: InteractionsResponse) => void
|
|
48
|
-
);
|
|
49
|
-
}
|
package/src/Providers/index.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
export { AWSLexProvider } from './AWSLexProvider';
|
|
4
|
-
export { AWSLexV2Provider } from './AWSLexV2Provider';
|
|
5
|
-
export { AbstractInteractionsProvider } from './InteractionsProvider';
|
package/src/types/Provider.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import { InteractionsOptions } from './Interactions';
|
|
4
|
-
import { InteractionsResponse } from './Response';
|
|
5
|
-
|
|
6
|
-
export interface InteractionsProvider {
|
|
7
|
-
// configure your provider
|
|
8
|
-
configure(config: InteractionsOptions): InteractionsOptions;
|
|
9
|
-
|
|
10
|
-
// return 'Interactions'
|
|
11
|
-
getCategory(): string;
|
|
12
|
-
|
|
13
|
-
// return the name of your provider
|
|
14
|
-
getProviderName(): string;
|
|
15
|
-
|
|
16
|
-
sendMessage(botname: string, message: string | Object): Promise<object>;
|
|
17
|
-
|
|
18
|
-
onComplete(
|
|
19
|
-
botname: string,
|
|
20
|
-
callback: (err: any, confirmation: InteractionsResponse) => void
|
|
21
|
-
);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export interface InteractionsProviders {
|
|
25
|
-
[key: string]: InteractionsProvider;
|
|
26
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
export interface AWSLexProviderOption {
|
|
4
|
-
name: string;
|
|
5
|
-
alias: string;
|
|
6
|
-
region: string;
|
|
7
|
-
providerName?: string;
|
|
8
|
-
onComplete?(botname: string, callback: (err, confirmation) => void): void;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export interface AWSLexProviderOptions {
|
|
12
|
-
[key: string]: AWSLexProviderOption;
|
|
13
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|