@aws-amplify/interactions 4.0.49 → 4.0.50

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.
Files changed (40) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/aws-amplify-interactions.js +177 -88
  3. package/dist/aws-amplify-interactions.js.map +1 -1
  4. package/dist/aws-amplify-interactions.min.js +1 -1
  5. package/dist/aws-amplify-interactions.min.js.map +1 -1
  6. package/lib/Interactions.d.ts +2 -2
  7. package/lib/Interactions.js +45 -25
  8. package/lib/Interactions.js.map +1 -1
  9. package/lib/Providers/AWSLexProvider.d.ts +5 -3
  10. package/lib/Providers/AWSLexProvider.js +95 -61
  11. package/lib/Providers/AWSLexProvider.js.map +1 -1
  12. package/lib/index.d.ts +1 -0
  13. package/lib/index.js +1 -0
  14. package/lib/index.js.map +1 -1
  15. package/lib/types/Provider.d.ts +2 -1
  16. package/lib/types/Providers/AWSLexProvider.d.ts +10 -0
  17. package/lib/types/Providers/AWSLexProvider.js +3 -0
  18. package/lib/types/Providers/AWSLexProvider.js.map +1 -0
  19. package/lib/types/index.d.ts +1 -0
  20. package/lib-esm/Interactions.d.ts +2 -2
  21. package/lib-esm/Interactions.js +45 -25
  22. package/lib-esm/Interactions.js.map +1 -1
  23. package/lib-esm/Providers/AWSLexProvider.d.ts +5 -3
  24. package/lib-esm/Providers/AWSLexProvider.js +95 -61
  25. package/lib-esm/Providers/AWSLexProvider.js.map +1 -1
  26. package/lib-esm/index.d.ts +1 -0
  27. package/lib-esm/index.js +1 -0
  28. package/lib-esm/index.js.map +1 -1
  29. package/lib-esm/types/Provider.d.ts +2 -1
  30. package/lib-esm/types/Providers/AWSLexProvider.d.ts +10 -0
  31. package/lib-esm/types/Providers/AWSLexProvider.js +1 -0
  32. package/lib-esm/types/Providers/AWSLexProvider.js.map +1 -0
  33. package/lib-esm/types/index.d.ts +1 -0
  34. package/package.json +3 -3
  35. package/src/Interactions.ts +53 -29
  36. package/src/Providers/AWSLexProvider.ts +48 -11
  37. package/src/index.ts +1 -0
  38. package/src/types/Provider.ts +1 -1
  39. package/src/types/Providers/AWSLexProvider.ts +11 -0
  40. package/src/types/index.ts +1 -0
@@ -7,12 +7,12 @@ export declare class InteractionsClass {
7
7
  *
8
8
  * @param {InteractionsOptions} options - Configuration object for Interactions
9
9
  */
10
- constructor(options: InteractionsOptions);
10
+ constructor(options?: InteractionsOptions);
11
11
  getModuleName(): string;
12
12
  /**
13
13
  *
14
14
  * @param {InteractionsOptions} options - Configuration object for Interactions
15
- * @return {Object} - The current configuration
15
+ * @return {InteractionsOptions} - The current configuration
16
16
  */
17
17
  configure(options: InteractionsOptions): InteractionsOptions;
18
18
  addPluggable(pluggable: InteractionsProvider): void;
@@ -57,6 +57,7 @@ var InteractionsClass = /** @class */ (function () {
57
57
  * @param {InteractionsOptions} options - Configuration object for Interactions
58
58
  */
59
59
  function InteractionsClass(options) {
60
+ if (options === void 0) { options = {}; }
60
61
  this._options = options;
61
62
  logger.debug('Interactions Options', this._options);
62
63
  this._pluggables = {};
@@ -67,7 +68,7 @@ var InteractionsClass = /** @class */ (function () {
67
68
  /**
68
69
  *
69
70
  * @param {InteractionsOptions} options - Configuration object for Interactions
70
- * @return {Object} - The current configuration
71
+ * @return {InteractionsOptions} - The current configuration
71
72
  */
72
73
  InteractionsClass.prototype.configure = function (options) {
73
74
  var _this = this;
@@ -84,29 +85,48 @@ var InteractionsClass = /** @class */ (function () {
84
85
  });
85
86
  }
86
87
  }
87
- // Check if AWSLex provider is already on pluggables
88
- if (!this._pluggables.AWSLexProvider &&
89
- bots_config &&
90
- Object.keys(bots_config)
91
- .map(function (key) { return bots_config[key]; })
92
- .find(function (bot) { return !bot.providerName || bot.providerName === 'AWSLexProvider'; })) {
93
- this._pluggables.AWSLexProvider = new Providers_1.AWSLexProvider();
94
- }
95
- Object.keys(this._pluggables).map(function (key) {
96
- _this._pluggables[key].configure(_this._options.bots);
88
+ // configure bots to their specific providers
89
+ Object.keys(bots_config).forEach(function (botKey) {
90
+ var _a;
91
+ var bot = bots_config[botKey];
92
+ var providerName = bot.providerName || 'AWSLexProvider';
93
+ // add default provider if required
94
+ if (!_this._pluggables.AWSLexProvider &&
95
+ providerName === 'AWSLexProvider') {
96
+ _this._pluggables.AWSLexProvider = new Providers_1.AWSLexProvider();
97
+ }
98
+ // configure bot with it's respective provider
99
+ if (_this._pluggables[providerName]) {
100
+ _this._pluggables[providerName].configure((_a = {}, _a[bot.name] = bot, _a));
101
+ }
102
+ else {
103
+ logger.debug("bot " + bot.name + " was not configured as " + providerName + " provider was not found");
104
+ }
97
105
  });
98
106
  return this._options;
99
107
  };
100
108
  InteractionsClass.prototype.addPluggable = function (pluggable) {
101
- if (pluggable && pluggable.getCategory() === 'Interactions') {
102
- if (!this._pluggables[pluggable.getProviderName()]) {
103
- pluggable.configure(this._options.bots);
104
- this._pluggables[pluggable.getProviderName()] = pluggable;
105
- return;
106
- }
107
- else {
108
- throw new Error('Bot ' + pluggable.getProviderName() + ' already plugged');
109
- }
109
+ var _this = this;
110
+ if (!(pluggable && pluggable.getCategory() === 'Interactions')) {
111
+ throw new Error('Invalid pluggable');
112
+ }
113
+ if (!this._pluggables[pluggable.getProviderName()]) {
114
+ // configure bots for the new plugin
115
+ Object.keys(this._options.bots)
116
+ .filter(function (botKey) {
117
+ return _this._options.bots[botKey].providerName ===
118
+ pluggable.getProviderName();
119
+ })
120
+ .forEach(function (botKey) {
121
+ var _a;
122
+ var bot = _this._options.bots[botKey];
123
+ pluggable.configure((_a = {}, _a[bot.name] = bot, _a));
124
+ });
125
+ this._pluggables[pluggable.getProviderName()] = pluggable;
126
+ return;
127
+ }
128
+ else {
129
+ throw new Error('Pluggable ' + pluggable.getProviderName() + ' already plugged');
110
130
  }
111
131
  };
112
132
  InteractionsClass.prototype.send = function (botname, message) {
@@ -116,13 +136,13 @@ var InteractionsClass = /** @class */ (function () {
116
136
  switch (_a.label) {
117
137
  case 0:
118
138
  if (!this._options.bots || !this._options.bots[botname]) {
119
- throw new Error('Bot ' + botname + ' does not exist');
139
+ return [2 /*return*/, Promise.reject('Bot ' + botname + ' does not exist')];
120
140
  }
121
141
  botProvider = this._options.bots[botname].providerName || 'AWSLexProvider';
122
142
  if (!this._pluggables[botProvider]) {
123
- throw new Error('Bot ' +
124
- botProvider +
125
- ' does not have valid pluggin did you try addPluggable first?');
143
+ return [2 /*return*/, Promise.reject('Bot ' +
144
+ botProvider +
145
+ ' does not have valid pluggin did you try addPluggable first?')];
126
146
  }
127
147
  return [4 /*yield*/, this._pluggables[botProvider].sendMessage(botname, message)];
128
148
  case 1: return [2 /*return*/, _a.sent()];
@@ -145,6 +165,6 @@ var InteractionsClass = /** @class */ (function () {
145
165
  return InteractionsClass;
146
166
  }());
147
167
  exports.InteractionsClass = InteractionsClass;
148
- exports.Interactions = new InteractionsClass(null);
168
+ exports.Interactions = new InteractionsClass();
149
169
  core_1.Amplify.register(exports.Interactions);
150
170
  //# sourceMappingURL=Interactions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Interactions.js","sourceRoot":"","sources":["../src/Interactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Interactions.js","sourceRoot":"","sources":["../src/Interactions.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import { AbstractInteractionsProvider } from './InteractionsProvider';
2
- import { InteractionsOptions, InteractionsResponse, InteractionsMessage } from '../types';
2
+ import { InteractionsOptions, AWSLexProviderOptions, InteractionsResponse, InteractionsMessage } from '../types';
3
+ import { PostTextCommandOutput, PostContentCommandOutput } from '@aws-sdk/client-lex-runtime-service';
3
4
  export declare class AWSLexProvider extends AbstractInteractionsProvider {
4
5
  private lexRuntimeServiceClient;
5
6
  private _botsCompleteCallback;
6
7
  constructor(options?: InteractionsOptions);
7
8
  getProviderName(): string;
8
- reportBotStatus(data: any, botname: any): void;
9
+ configure(config?: AWSLexProviderOptions): AWSLexProviderOptions;
10
+ reportBotStatus(data: PostTextCommandOutput | PostContentCommandOutput, botname: string): void;
9
11
  sendMessage(botname: string, message: string | InteractionsMessage): Promise<InteractionsResponse>;
10
- onComplete(botname: string, callback: any): void;
12
+ onComplete(botname: string, callback: (err: any, confirmation: any) => void): void;
11
13
  }
@@ -1,16 +1,4 @@
1
1
  "use strict";
2
- /*
3
- * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
6
- * the License. A copy of the License is located at
7
- *
8
- * http://aws.amazon.com/apache2.0/
9
- *
10
- * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
11
- * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
12
- * and limitations under the License.
13
- */
14
2
  var __extends = (this && this.__extends) || (function () {
15
3
  var extendStatics = function (d, b) {
16
4
  extendStatics = Object.setPrototypeOf ||
@@ -72,6 +60,18 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
72
60
  }
73
61
  };
74
62
  Object.defineProperty(exports, "__esModule", { value: true });
63
+ /*
64
+ * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
65
+ *
66
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
67
+ * the License. A copy of the License is located at
68
+ *
69
+ * http://aws.amazon.com/apache2.0/
70
+ *
71
+ * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
72
+ * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
73
+ * and limitations under the License.
74
+ */
75
75
  var InteractionsProvider_1 = require("./InteractionsProvider");
76
76
  var client_lex_runtime_service_1 = require("@aws-sdk/client-lex-runtime-service");
77
77
  var core_1 = require("@aws-amplify/core");
@@ -88,6 +88,18 @@ var AWSLexProvider = /** @class */ (function (_super) {
88
88
  AWSLexProvider.prototype.getProviderName = function () {
89
89
  return 'AWSLexProvider';
90
90
  };
91
+ AWSLexProvider.prototype.configure = function (config) {
92
+ if (config === void 0) { config = {}; }
93
+ var propertiesToTest = ['name', 'alias', 'region'];
94
+ Object.keys(config).forEach(function (botKey) {
95
+ var botConfig = config[botKey];
96
+ // is bot config correct
97
+ if (!propertiesToTest.every(function (x) { return x in botConfig; })) {
98
+ throw new Error('invalid bot configuration');
99
+ }
100
+ });
101
+ return _super.prototype.configure.call(this, config);
102
+ };
91
103
  AWSLexProvider.prototype.reportBotStatus = function (data, botname) {
92
104
  var _this = this;
93
105
  // Check if state is fulfilled to resolve onFullfilment promise
@@ -116,25 +128,31 @@ var AWSLexProvider = /** @class */ (function (_super) {
116
128
  };
117
129
  AWSLexProvider.prototype.sendMessage = function (botname, message) {
118
130
  return __awaiter(this, void 0, void 0, function () {
119
- var credentials, params, postTextCommand, data, err_1, content, messageType, postContentCommand, data, audioArray, err_2;
120
- return __generator(this, function (_a) {
121
- switch (_a.label) {
131
+ var credentials, error_1, params, postTextCommand, data, err_1, content, messageType, _a, postContentCommand, data, audioArray, _b, err_2;
132
+ return __generator(this, function (_c) {
133
+ switch (_c.label) {
122
134
  case 0:
135
+ // check if bot exists
123
136
  if (!this._config[botname]) {
124
137
  return [2 /*return*/, Promise.reject('Bot ' + botname + ' does not exist')];
125
138
  }
126
- return [4 /*yield*/, core_1.Credentials.get()];
139
+ _c.label = 1;
127
140
  case 1:
128
- credentials = _a.sent();
129
- if (!credentials) {
130
- return [2 /*return*/, Promise.reject('No credentials')];
131
- }
141
+ _c.trys.push([1, 3, , 4]);
142
+ return [4 /*yield*/, core_1.Credentials.get()];
143
+ case 2:
144
+ credentials = _c.sent();
145
+ return [3 /*break*/, 4];
146
+ case 3:
147
+ error_1 = _c.sent();
148
+ return [2 /*return*/, Promise.reject('No credentials')];
149
+ case 4:
132
150
  this.lexRuntimeServiceClient = new client_lex_runtime_service_1.LexRuntimeServiceClient({
133
151
  region: this._config[botname].region,
134
152
  credentials: credentials,
135
153
  customUserAgent: core_1.getAmplifyUserAgent(),
136
154
  });
137
- if (!(typeof message === 'string')) return [3 /*break*/, 6];
155
+ if (!(typeof message === 'string')) return [3 /*break*/, 9];
138
156
  params = {
139
157
  botAlias: this._config[botname].alias,
140
158
  botName: botname,
@@ -142,65 +160,81 @@ var AWSLexProvider = /** @class */ (function (_super) {
142
160
  userId: credentials.identityId,
143
161
  };
144
162
  logger.debug('postText to lex', message);
145
- _a.label = 2;
146
- case 2:
147
- _a.trys.push([2, 4, , 5]);
163
+ _c.label = 5;
164
+ case 5:
165
+ _c.trys.push([5, 7, , 8]);
148
166
  postTextCommand = new client_lex_runtime_service_1.PostTextCommand(params);
149
167
  return [4 /*yield*/, this.lexRuntimeServiceClient.send(postTextCommand)];
150
- case 3:
151
- data = _a.sent();
168
+ case 6:
169
+ data = _c.sent();
152
170
  this.reportBotStatus(data, botname);
153
171
  return [2 /*return*/, data];
154
- case 4:
155
- err_1 = _a.sent();
172
+ case 7:
173
+ err_1 = _c.sent();
156
174
  return [2 /*return*/, Promise.reject(err_1)];
157
- case 5: return [3 /*break*/, 11];
158
- case 6:
175
+ case 8: return [3 /*break*/, 19];
176
+ case 9:
159
177
  content = message.content, messageType = message.options.messageType;
160
- if (messageType === 'voice') {
161
- params = {
162
- botAlias: this._config[botname].alias,
163
- botName: botname,
164
- contentType: 'audio/x-l16; sample-rate=16000',
165
- inputStream: content,
166
- userId: credentials.identityId,
167
- accept: 'audio/mpeg',
168
- };
169
- }
170
- else {
171
- params = {
172
- botAlias: this._config[botname].alias,
173
- botName: botname,
174
- contentType: 'text/plain; charset=utf-8',
175
- inputStream: content,
176
- userId: credentials.identityId,
177
- accept: 'audio/mpeg',
178
- };
179
- }
178
+ if (!(messageType === 'voice')) return [3 /*break*/, 11];
179
+ if (!(content instanceof Blob || content instanceof ReadableStream))
180
+ return [2 /*return*/, Promise.reject('invalid content type')];
181
+ _a = {
182
+ botAlias: this._config[botname].alias,
183
+ botName: botname,
184
+ contentType: 'audio/x-l16; sample-rate=16000; channel-count=1'
185
+ };
186
+ return [4 /*yield*/, convert_1.convert(content)];
187
+ case 10:
188
+ params = (_a.inputStream = _c.sent(),
189
+ _a.userId = credentials.identityId,
190
+ _a.accept = 'audio/mpeg',
191
+ _a);
192
+ return [3 /*break*/, 12];
193
+ case 11:
194
+ if (typeof content !== 'string')
195
+ return [2 /*return*/, Promise.reject('invalid content type')];
196
+ params = {
197
+ botAlias: this._config[botname].alias,
198
+ botName: botname,
199
+ contentType: 'text/plain; charset=utf-8',
200
+ inputStream: content,
201
+ userId: credentials.identityId,
202
+ accept: 'audio/mpeg',
203
+ };
204
+ _c.label = 12;
205
+ case 12:
180
206
  logger.debug('postContent to lex', message);
181
- _a.label = 7;
182
- case 7:
183
- _a.trys.push([7, 10, , 11]);
207
+ _c.label = 13;
208
+ case 13:
209
+ _c.trys.push([13, 18, , 19]);
184
210
  postContentCommand = new client_lex_runtime_service_1.PostContentCommand(params);
185
211
  return [4 /*yield*/, this.lexRuntimeServiceClient.send(postContentCommand)];
186
- case 8:
187
- data = _a.sent();
212
+ case 14:
213
+ data = _c.sent();
214
+ if (!data.audioStream) return [3 /*break*/, 16];
188
215
  return [4 /*yield*/, convert_1.convert(data.audioStream)];
189
- case 9:
190
- audioArray = _a.sent();
216
+ case 15:
217
+ _b = _c.sent();
218
+ return [3 /*break*/, 17];
219
+ case 16:
220
+ _b = undefined;
221
+ _c.label = 17;
222
+ case 17:
223
+ audioArray = _b;
191
224
  this.reportBotStatus(data, botname);
192
225
  return [2 /*return*/, __assign(__assign({}, data), { audioStream: audioArray })];
193
- case 10:
194
- err_2 = _a.sent();
226
+ case 18:
227
+ err_2 = _c.sent();
195
228
  return [2 /*return*/, Promise.reject(err_2)];
196
- case 11: return [2 /*return*/];
229
+ case 19: return [2 /*return*/];
197
230
  }
198
231
  });
199
232
  });
200
233
  };
201
234
  AWSLexProvider.prototype.onComplete = function (botname, callback) {
235
+ // does bot exist
202
236
  if (!this._config[botname]) {
203
- throw new ErrorEvent('Bot ' + botname + ' does not exist');
237
+ throw new Error('Bot ' + botname + ' does not exist');
204
238
  }
205
239
  this._botsCompleteCallback[botname] = callback;
206
240
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AWSLexProvider.js","sourceRoot":"","sources":["../../src/Providers/AWSLexProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AWSLexProvider.js","sourceRoot":"","sources":["../../src/Providers/AWSLexProvider.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -4,5 +4,6 @@ import { Interactions } from './Interactions';
4
4
  */
5
5
  export default Interactions;
6
6
  export * from './types';
7
+ export * from './Providers/InteractionsProvider';
7
8
  export * from './Providers/AWSLexProvider';
8
9
  export { Interactions };
package/lib/index.js CHANGED
@@ -21,5 +21,6 @@ exports.Interactions = Interactions_1.Interactions;
21
21
  * @deprecated use named import
22
22
  */
23
23
  exports.default = Interactions_1.Interactions;
24
+ __export(require("./Providers/InteractionsProvider"));
24
25
  __export(require("./Providers/AWSLexProvider"));
25
26
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA;;;;;;;;;;;GAWG;AACH,+CAA8C;AAUrC,uBAVA,2BAAY,CAUA;AARrB;;GAEG;AACH,kBAAe,2BAAY,CAAC;AAG5B,gDAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA;;;;;;;;;;;GAWG;AACH,+CAA8C;AAWrC,uBAXA,2BAAY,CAWA;AATrB;;GAEG;AACH,kBAAe,2BAAY,CAAC;AAG5B,sDAAiD;AACjD,gDAA2C"}
@@ -1,6 +1,7 @@
1
+ import { InteractionsOptions } from './Interactions';
1
2
  import { InteractionsResponse } from './Response';
2
3
  export interface InteractionsProvider {
3
- configure(config: object): object;
4
+ configure(config: InteractionsOptions): InteractionsOptions;
4
5
  getCategory(): string;
5
6
  getProviderName(): string;
6
7
  sendMessage(botname: string, message: string | Object): Promise<object>;
@@ -0,0 +1,10 @@
1
+ export interface AWSLexProviderOption {
2
+ name: string;
3
+ alias: string;
4
+ region: string;
5
+ providerName?: string;
6
+ onComplete?(botname: string, callback: (err: any, confirmation: any) => void): void;
7
+ }
8
+ export interface AWSLexProviderOptions {
9
+ [key: string]: AWSLexProviderOption;
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=AWSLexProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AWSLexProvider.js","sourceRoot":"","sources":["../../../src/types/Providers/AWSLexProvider.ts"],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
1
  export * from './Interactions';
2
2
  export * from './Provider';
3
+ export * from './Providers/AWSLexProvider';
3
4
  export * from './Response';
@@ -7,12 +7,12 @@ export declare class InteractionsClass {
7
7
  *
8
8
  * @param {InteractionsOptions} options - Configuration object for Interactions
9
9
  */
10
- constructor(options: InteractionsOptions);
10
+ constructor(options?: InteractionsOptions);
11
11
  getModuleName(): string;
12
12
  /**
13
13
  *
14
14
  * @param {InteractionsOptions} options - Configuration object for Interactions
15
- * @return {Object} - The current configuration
15
+ * @return {InteractionsOptions} - The current configuration
16
16
  */
17
17
  configure(options: InteractionsOptions): InteractionsOptions;
18
18
  addPluggable(pluggable: InteractionsProvider): void;
@@ -55,6 +55,7 @@ var InteractionsClass = /** @class */ (function () {
55
55
  * @param {InteractionsOptions} options - Configuration object for Interactions
56
56
  */
57
57
  function InteractionsClass(options) {
58
+ if (options === void 0) { options = {}; }
58
59
  this._options = options;
59
60
  logger.debug('Interactions Options', this._options);
60
61
  this._pluggables = {};
@@ -65,7 +66,7 @@ var InteractionsClass = /** @class */ (function () {
65
66
  /**
66
67
  *
67
68
  * @param {InteractionsOptions} options - Configuration object for Interactions
68
- * @return {Object} - The current configuration
69
+ * @return {InteractionsOptions} - The current configuration
69
70
  */
70
71
  InteractionsClass.prototype.configure = function (options) {
71
72
  var _this = this;
@@ -82,29 +83,48 @@ var InteractionsClass = /** @class */ (function () {
82
83
  });
83
84
  }
84
85
  }
85
- // Check if AWSLex provider is already on pluggables
86
- if (!this._pluggables.AWSLexProvider &&
87
- bots_config &&
88
- Object.keys(bots_config)
89
- .map(function (key) { return bots_config[key]; })
90
- .find(function (bot) { return !bot.providerName || bot.providerName === 'AWSLexProvider'; })) {
91
- this._pluggables.AWSLexProvider = new AWSLexProvider();
92
- }
93
- Object.keys(this._pluggables).map(function (key) {
94
- _this._pluggables[key].configure(_this._options.bots);
86
+ // configure bots to their specific providers
87
+ Object.keys(bots_config).forEach(function (botKey) {
88
+ var _a;
89
+ var bot = bots_config[botKey];
90
+ var providerName = bot.providerName || 'AWSLexProvider';
91
+ // add default provider if required
92
+ if (!_this._pluggables.AWSLexProvider &&
93
+ providerName === 'AWSLexProvider') {
94
+ _this._pluggables.AWSLexProvider = new AWSLexProvider();
95
+ }
96
+ // configure bot with it's respective provider
97
+ if (_this._pluggables[providerName]) {
98
+ _this._pluggables[providerName].configure((_a = {}, _a[bot.name] = bot, _a));
99
+ }
100
+ else {
101
+ logger.debug("bot " + bot.name + " was not configured as " + providerName + " provider was not found");
102
+ }
95
103
  });
96
104
  return this._options;
97
105
  };
98
106
  InteractionsClass.prototype.addPluggable = function (pluggable) {
99
- if (pluggable && pluggable.getCategory() === 'Interactions') {
100
- if (!this._pluggables[pluggable.getProviderName()]) {
101
- pluggable.configure(this._options.bots);
102
- this._pluggables[pluggable.getProviderName()] = pluggable;
103
- return;
104
- }
105
- else {
106
- throw new Error('Bot ' + pluggable.getProviderName() + ' already plugged');
107
- }
107
+ var _this = this;
108
+ if (!(pluggable && pluggable.getCategory() === 'Interactions')) {
109
+ throw new Error('Invalid pluggable');
110
+ }
111
+ if (!this._pluggables[pluggable.getProviderName()]) {
112
+ // configure bots for the new plugin
113
+ Object.keys(this._options.bots)
114
+ .filter(function (botKey) {
115
+ return _this._options.bots[botKey].providerName ===
116
+ pluggable.getProviderName();
117
+ })
118
+ .forEach(function (botKey) {
119
+ var _a;
120
+ var bot = _this._options.bots[botKey];
121
+ pluggable.configure((_a = {}, _a[bot.name] = bot, _a));
122
+ });
123
+ this._pluggables[pluggable.getProviderName()] = pluggable;
124
+ return;
125
+ }
126
+ else {
127
+ throw new Error('Pluggable ' + pluggable.getProviderName() + ' already plugged');
108
128
  }
109
129
  };
110
130
  InteractionsClass.prototype.send = function (botname, message) {
@@ -114,13 +134,13 @@ var InteractionsClass = /** @class */ (function () {
114
134
  switch (_a.label) {
115
135
  case 0:
116
136
  if (!this._options.bots || !this._options.bots[botname]) {
117
- throw new Error('Bot ' + botname + ' does not exist');
137
+ return [2 /*return*/, Promise.reject('Bot ' + botname + ' does not exist')];
118
138
  }
119
139
  botProvider = this._options.bots[botname].providerName || 'AWSLexProvider';
120
140
  if (!this._pluggables[botProvider]) {
121
- throw new Error('Bot ' +
122
- botProvider +
123
- ' does not have valid pluggin did you try addPluggable first?');
141
+ return [2 /*return*/, Promise.reject('Bot ' +
142
+ botProvider +
143
+ ' does not have valid pluggin did you try addPluggable first?')];
124
144
  }
125
145
  return [4 /*yield*/, this._pluggables[botProvider].sendMessage(botname, message)];
126
146
  case 1: return [2 /*return*/, _a.sent()];
@@ -143,6 +163,6 @@ var InteractionsClass = /** @class */ (function () {
143
163
  return InteractionsClass;
144
164
  }());
145
165
  export { InteractionsClass };
146
- export var Interactions = new InteractionsClass(null);
166
+ export var Interactions = new InteractionsClass();
147
167
  Amplify.register(Interactions);
148
168
  //# sourceMappingURL=Interactions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Interactions.js","sourceRoot":"","sources":["../src/Interactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Interactions.js","sourceRoot":"","sources":["../src/Interactions.ts"],"names":[],"mappings":"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"}