Skip to content

Commit e465bf3

Browse files
authored
Merge pull request #770 from aws-samples/feature/sdk-3
Feature/sdk 3
2 parents 8e91031 + c88d5c7 commit e465bf3

File tree

13 files changed

+10546
-6300
lines changed

13 files changed

+10546
-6300
lines changed

lex-web-ui/package-lock.json

Lines changed: 8637 additions & 5597 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lex-web-ui/package.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,13 @@
2020
"dependencies": {
2121
"aws-amplify": "^5.3.26",
2222
"amazon-connect-chatjs": "^2.3.0",
23-
"aws-sdk": "^2.1354.0",
23+
"@aws-sdk/client-cognito-identity": "3.470.0",
24+
"@aws-sdk/client-connect": "3.470.0",
25+
"@aws-sdk/client-lex-runtime-service": "3.470.0",
26+
"@aws-sdk/client-lex-runtime-v2": "3.470.0",
27+
"@aws-sdk/client-polly": "3.470.0",
28+
"@aws-sdk/client-s3": "3.470.0",
29+
"@aws-sdk/credential-providers": "3.470.0",
2430
"browserify-zlib": "^0.2.0",
2531
"buffer": "^6.0.3",
2632
"core-js": "^3.6.5",

lex-web-ui/src/components/LexWeb.vue

Lines changed: 18 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,12 @@ import MinButton from '@/components/MinButton';
7373
import ToolbarContainer from '@/components/ToolbarContainer';
7474
import MessageList from '@/components/MessageList';
7575
import InputContainer from '@/components/InputContainer';
76-
import LexRuntime from 'aws-sdk/clients/lexruntime';
77-
import LexRuntimeV2 from 'aws-sdk/clients/lexruntimev2';
76+
// import { fromCognitoIdentityPool } from '@aws-sdk/credential-providers';
77+
import { LexRuntimeServiceClient } from '@aws-sdk/client-lex-runtime-service';
78+
import { LexRuntimeV2Client } from '@aws-sdk/client-lex-runtime-v2';
79+
import { PollyClient } from '@aws-sdk/client-polly';
80+
7881
79-
import { Config as AWSConfig, CognitoIdentityCredentials }
80-
from 'aws-sdk/global';
8182
8283
export default {
8384
name: 'lex-web',
@@ -156,7 +157,7 @@ export default {
156157
if (!this.isMobile) {
157158
document.documentElement.style.overflowY = 'hidden';
158159
}
159-
160+
160161
this.initConfig()
161162
.then(() => Promise.all([
162163
this.$store.dispatch(
@@ -191,44 +192,25 @@ export default {
191192
if (!poolId) {
192193
return Promise.reject(new Error('no cognito.poolId found in config'))
193194
}
195+
194196
195-
const AWSConfigConstructor = (window.AWS && window.AWS.Config) ?
196-
window.AWS.Config :
197-
AWSConfig;
198-
199-
const CognitoConstructor =
200-
(window.AWS && window.AWS.CognitoIdentityCredentials) ?
201-
window.AWS.CognitoIdentityCredentials :
202-
CognitoIdentityCredentials;
203-
204-
const LexRuntimeConstructor = (window.AWS && window.AWS.LexRuntime) ?
205-
window.AWS.LexRuntime :
206-
LexRuntime;
207-
208-
const LexRuntimeConstructorV2 = (window.AWS && window.AWS.LexRuntimeV2) ?
209-
window.AWS.LexRuntimeV2 :
210-
LexRuntimeV2;
211-
212-
const credentials = new CognitoConstructor(
213-
{ IdentityPoolId: poolId },
214-
{ region: region },
215-
);
216-
217-
const awsConfig = new AWSConfigConstructor({
197+
const awsConfig = {
218198
region: region,
219-
credentials,
220-
});
199+
credentials: this.$lexWebUi.awsConfig.credentials,
200+
};
221201
222-
this.$lexWebUi.lexRuntimeClient = new LexRuntimeConstructor(awsConfig);
223-
this.$lexWebUi.lexRuntimeV2Client = new LexRuntimeConstructorV2(awsConfig);
202+
this.$lexWebUi.lexRuntimeClient = new LexRuntimeServiceClient(awsConfig);
203+
this.$lexWebUi.lexRuntimeV2Client = new LexRuntimeV2Client(awsConfig);
204+
this.$lexWebUi.pollyClient = new PollyClient(awsConfig)
224205
/* eslint-disable no-console */
225-
console.log(`lexRuntimeV2Client : ${JSON.stringify(this.$lexWebUi.lexRuntimeV2Client)}`);
206+
// console.log('this.$store.state', this.$store.state);
207+
// console.log(`lexRuntimeV2Client : ${JSON.stringify(this.$lexWebUi.lexRuntimeV2Client)}`);
226208
227209
const promises = [
228210
this.$store.dispatch('initMessageList'),
229-
this.$store.dispatch('initPollyClient', this.$lexWebUi.pollyClient),
211+
this.$store.dispatch('initPollyClient', this.$lexWebUi.pollyClient, this.$lexWebUi.awsConfig.credentials),
230212
this.$store.dispatch('initLexClient', {
231-
v1client: this.$lexWebUi.lexRuntimeClient, v2client: this.$lexWebUi.lexRuntimeV2Client,
213+
v1client: this.$lexWebUi.lexRuntimeClient, v2client: this.$lexWebUi.lexRuntimeV2Client, credentials: this.$lexWebUi.awsConfig.credentials
232214
}),
233215
];
234216
console.info('CONFIG : ', this.$store.state.config);
@@ -589,4 +571,4 @@ NOTE: not using var() for different heights due to IE11 compatibility
589571
590572
html { font-size: 14px !important; }
591573
592-
</style>
574+
</style>

lex-web-ui/src/lex-web-ui.js

Lines changed: 16 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,9 @@ License for the specific language governing permissions and limitations under th
1818
* Exports Loader as the plugin constructor
1919
* and Store as store that can be used with Vuex.Store()
2020
*/
21-
import Vue from 'vue';
22-
import Vuex from 'vuex';
23-
import { Config as AWSConfig, CognitoIdentityCredentials }
24-
from 'aws-sdk/global';
25-
import LexRuntime from 'aws-sdk/clients/lexruntime';
26-
import LexRuntimeV2 from 'aws-sdk/clients/lexruntimev2';
27-
import Polly from 'aws-sdk/clients/polly';
28-
21+
import { LexRuntimeServiceClient } from '@aws-sdk/client-lex-runtime-service';
22+
import { LexRuntimeV2Client } from '@aws-sdk/client-lex-runtime-v2';
23+
import { PollyClient } from '@aws-sdk/client-polly';
2924
import LexWeb from '@/components/LexWeb';
3025
import VuexStore from '@/store';
3126

@@ -162,62 +157,35 @@ export class Loader {
162157
this.app = app;
163158

164159
const mergedConfig = mergeConfig(defaultConfig, config);
165-
166-
const AWSConfigConstructor = (window.AWS && window.AWS.Config) ?
167-
window.AWS.Config :
168-
AWSConfig;
169-
170-
const CognitoConstructor =
171-
(window.AWS && window.AWS.CognitoIdentityCredentials) ?
172-
window.AWS.CognitoIdentityCredentials :
173-
CognitoIdentityCredentials;
174-
175-
const PollyConstructor = (window.AWS && window.AWS.Polly) ?
176-
window.AWS.Polly :
177-
Polly;
178-
179-
const LexRuntimeConstructor = (window.AWS && window.AWS.LexRuntime) ?
180-
window.AWS.LexRuntime :
181-
LexRuntime;
182-
183-
const LexRuntimeConstructorV2 = (window.AWS && window.AWS.LexRuntimeV2) ?
184-
window.AWS.LexRuntimeV2 :
185-
LexRuntimeV2;
186-
187-
if (!AWSConfigConstructor || !CognitoConstructor || !PollyConstructor
188-
|| !LexRuntimeConstructor || !LexRuntimeConstructorV2) {
189-
throw new Error('unable to find AWS SDK');
160+
let credentials;
161+
if (mergedConfig.cognito.poolId != '' || localStorage.getItem('poolId')) {
162+
credentials = this.store.dispatch('getCredentials', mergedConfig).then((creds) => {
163+
return creds;
164+
});
190165
}
191166

192-
const credentials = new CognitoConstructor(
193-
{ IdentityPoolId: mergedConfig.cognito.poolId },
194-
{ region: mergedConfig.region || mergedConfig.cognito.poolId.split(':')[0] || 'us-east-1' },
195-
);
196-
197-
const awsConfig = new AWSConfigConstructor({
167+
const awsConfig = {
198168
region: mergedConfig.region || mergedConfig.cognito.poolId.split(':')[0] || 'us-east-1',
199169
credentials,
200-
});
170+
};
201171

202-
const lexRuntimeClient = new LexRuntimeConstructor(awsConfig);
203-
const lexRuntimeV2Client = new LexRuntimeConstructorV2(awsConfig);
204-
/* eslint-disable no-console */
205-
const pollyClient = (
206-
typeof mergedConfig.recorder === 'undefined' ||
207-
(mergedConfig.recorder && mergedConfig.recorder.enable !== false)
208-
) ? new PollyConstructor(awsConfig) : null;
172+
const lexRuntimeClient = new LexRuntimeServiceClient(awsConfig);
173+
const lexRuntimeV2Client = new LexRuntimeV2Client(awsConfig);
174+
const pollyClient = new PollyClient(awsConfig);
209175

176+
// /* eslint-disable no-console */
210177
app.use(Plugin, {
211178
config: mergedConfig,
212179
awsConfig,
213180
lexRuntimeClient,
214181
lexRuntimeV2Client,
215-
pollyClient,
182+
pollyClient
216183
});
217184
this.app = app;
218185
}
219186
}
220187

188+
// comment out for prod build
221189
if(process.env.NODE_ENV === "development")
222190
{
223191
const lexWeb = new Loader();

0 commit comments

Comments
 (0)