@wildix/wim-voicebots-client 1.0.1

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 (73) hide show
  1. package/dist-cjs/VoiceBots.js +31 -0
  2. package/dist-cjs/VoiceBotsClient.js +42 -0
  3. package/dist-cjs/commands/CreateVoiceBotCommand.js +21 -0
  4. package/dist-cjs/commands/DeleteVoiceBotCommand.js +21 -0
  5. package/dist-cjs/commands/DescribeEventCommand.js +21 -0
  6. package/dist-cjs/commands/GetVoiceBotCommand.js +21 -0
  7. package/dist-cjs/commands/ListVoiceBotsCommand.js +21 -0
  8. package/dist-cjs/commands/ListVoiceBotsNamesCommand.js +21 -0
  9. package/dist-cjs/commands/SendHangupCommand.js +21 -0
  10. package/dist-cjs/commands/SendSayCommand.js +21 -0
  11. package/dist-cjs/commands/SendTransferCommand.js +21 -0
  12. package/dist-cjs/commands/UpdateVoiceBotCommand.js +21 -0
  13. package/dist-cjs/commands/index.js +13 -0
  14. package/dist-cjs/extensionConfiguration.js +2 -0
  15. package/dist-cjs/index.js +10 -0
  16. package/dist-cjs/models/VoiceBotsServiceException.js +12 -0
  17. package/dist-cjs/models/index.js +4 -0
  18. package/dist-cjs/models/models_0.js +78 -0
  19. package/dist-cjs/protocols/Aws_restJson1.js +539 -0
  20. package/dist-cjs/runtimeConfig.browser.js +32 -0
  21. package/dist-cjs/runtimeConfig.js +36 -0
  22. package/dist-cjs/runtimeConfig.native.js +15 -0
  23. package/dist-cjs/runtimeConfig.shared.js +21 -0
  24. package/dist-cjs/runtimeExtensions.js +19 -0
  25. package/dist-es/VoiceBots.js +27 -0
  26. package/dist-es/VoiceBotsClient.js +38 -0
  27. package/dist-es/commands/CreateVoiceBotCommand.js +17 -0
  28. package/dist-es/commands/DeleteVoiceBotCommand.js +17 -0
  29. package/dist-es/commands/DescribeEventCommand.js +17 -0
  30. package/dist-es/commands/GetVoiceBotCommand.js +17 -0
  31. package/dist-es/commands/ListVoiceBotsCommand.js +17 -0
  32. package/dist-es/commands/ListVoiceBotsNamesCommand.js +17 -0
  33. package/dist-es/commands/SendHangupCommand.js +17 -0
  34. package/dist-es/commands/SendSayCommand.js +17 -0
  35. package/dist-es/commands/SendTransferCommand.js +17 -0
  36. package/dist-es/commands/UpdateVoiceBotCommand.js +17 -0
  37. package/dist-es/commands/index.js +10 -0
  38. package/dist-es/extensionConfiguration.js +1 -0
  39. package/dist-es/index.js +5 -0
  40. package/dist-es/models/VoiceBotsServiceException.js +8 -0
  41. package/dist-es/models/index.js +1 -0
  42. package/dist-es/models/models_0.js +71 -0
  43. package/dist-es/protocols/Aws_restJson1.js +516 -0
  44. package/dist-es/runtimeConfig.browser.js +27 -0
  45. package/dist-es/runtimeConfig.js +31 -0
  46. package/dist-es/runtimeConfig.native.js +11 -0
  47. package/dist-es/runtimeConfig.shared.js +17 -0
  48. package/dist-es/runtimeExtensions.js +15 -0
  49. package/dist-types/VoiceBots.d.ts +82 -0
  50. package/dist-types/VoiceBotsClient.d.ts +153 -0
  51. package/dist-types/commands/CreateVoiceBotCommand.d.ts +120 -0
  52. package/dist-types/commands/DeleteVoiceBotCommand.d.ts +63 -0
  53. package/dist-types/commands/DescribeEventCommand.d.ts +141 -0
  54. package/dist-types/commands/GetVoiceBotCommand.d.ts +97 -0
  55. package/dist-types/commands/ListVoiceBotsCommand.d.ts +96 -0
  56. package/dist-types/commands/ListVoiceBotsNamesCommand.d.ts +69 -0
  57. package/dist-types/commands/SendHangupCommand.d.ts +65 -0
  58. package/dist-types/commands/SendSayCommand.d.ts +67 -0
  59. package/dist-types/commands/SendTransferCommand.d.ts +66 -0
  60. package/dist-types/commands/UpdateVoiceBotCommand.d.ts +123 -0
  61. package/dist-types/commands/index.d.ts +10 -0
  62. package/dist-types/extensionConfiguration.d.ts +7 -0
  63. package/dist-types/index.d.ts +7 -0
  64. package/dist-types/models/VoiceBotsServiceException.d.ts +14 -0
  65. package/dist-types/models/index.d.ts +1 -0
  66. package/dist-types/models/models_0.d.ts +492 -0
  67. package/dist-types/protocols/Aws_restJson1.d.ts +92 -0
  68. package/dist-types/runtimeConfig.browser.d.ts +29 -0
  69. package/dist-types/runtimeConfig.d.ts +29 -0
  70. package/dist-types/runtimeConfig.native.d.ts +28 -0
  71. package/dist-types/runtimeConfig.shared.d.ts +15 -0
  72. package/dist-types/runtimeExtensions.d.ts +17 -0
  73. package/package.json +79 -0
@@ -0,0 +1,516 @@
1
+ import { VoiceBotsServiceException as __BaseException } from "../models/VoiceBotsServiceException";
2
+ import { BotEndpoint, ForbiddenException, ValidationException, VoiceBotNotFoundException, VoiceSessionNotFoundException, } from "../models/models_0";
3
+ import { requestBuilder as rb } from "@smithy/core";
4
+ import { decorateServiceException as __decorateServiceException, expectInt32 as __expectInt32, expectNonNull as __expectNonNull, expectObject as __expectObject, expectString as __expectString, expectUnion as __expectUnion, _json, collectBody, map, take, withBaseException, } from "@smithy/smithy-client";
5
+ export const se_CreateVoiceBotCommand = async (input, context) => {
6
+ const b = rb(input, context);
7
+ const headers = {
8
+ 'content-type': 'application/json',
9
+ };
10
+ b.bp("/v2/voicebots/bots");
11
+ const query = map({
12
+ [_c]: [, input[_c]],
13
+ });
14
+ let body;
15
+ body = JSON.stringify(take(input, {
16
+ 'endpoint': _ => se_BotEndpoint(_, context),
17
+ 'languageCode': [],
18
+ 'maximumDuration': [],
19
+ 'name': [],
20
+ 'silenceTimeout': [],
21
+ 'voiceId': [],
22
+ }));
23
+ b.m("POST")
24
+ .h(headers)
25
+ .q(query)
26
+ .b(body);
27
+ return b.build();
28
+ };
29
+ export const se_DeleteVoiceBotCommand = async (input, context) => {
30
+ const b = rb(input, context);
31
+ const headers = {};
32
+ b.bp("/v2/voicebots/bots/{botId}");
33
+ b.p('botId', () => input.botId, '{botId}', false);
34
+ const query = map({
35
+ [_c]: [, input[_c]],
36
+ });
37
+ let body;
38
+ b.m("DELETE")
39
+ .h(headers)
40
+ .q(query)
41
+ .b(body);
42
+ return b.build();
43
+ };
44
+ export const se_DescribeEventCommand = async (input, context) => {
45
+ const b = rb(input, context);
46
+ const headers = {
47
+ 'content-type': 'application/json',
48
+ };
49
+ b.bp("/v2/voicebots/describe");
50
+ let body;
51
+ body = "";
52
+ b.m("POST")
53
+ .h(headers)
54
+ .b(body);
55
+ return b.build();
56
+ };
57
+ export const se_GetVoiceBotCommand = async (input, context) => {
58
+ const b = rb(input, context);
59
+ const headers = {};
60
+ b.bp("/v2/voicebots/bots/{botId}");
61
+ b.p('botId', () => input.botId, '{botId}', false);
62
+ const query = map({
63
+ [_c]: [, input[_c]],
64
+ });
65
+ let body;
66
+ b.m("GET")
67
+ .h(headers)
68
+ .q(query)
69
+ .b(body);
70
+ return b.build();
71
+ };
72
+ export const se_ListVoiceBotsCommand = async (input, context) => {
73
+ const b = rb(input, context);
74
+ const headers = {};
75
+ b.bp("/v2/voicebots/bots");
76
+ const query = map({
77
+ [_c]: [, input[_c]],
78
+ });
79
+ let body;
80
+ b.m("GET")
81
+ .h(headers)
82
+ .q(query)
83
+ .b(body);
84
+ return b.build();
85
+ };
86
+ export const se_ListVoiceBotsNamesCommand = async (input, context) => {
87
+ const b = rb(input, context);
88
+ const headers = {};
89
+ b.bp("/v2/voicebots/names");
90
+ const query = map({
91
+ [_c]: [, input[_c]],
92
+ });
93
+ let body;
94
+ b.m("GET")
95
+ .h(headers)
96
+ .q(query)
97
+ .b(body);
98
+ return b.build();
99
+ };
100
+ export const se_SendHangupCommand = async (input, context) => {
101
+ const b = rb(input, context);
102
+ const headers = {
103
+ 'content-type': 'application/json',
104
+ };
105
+ b.bp("/v2/voicebots/sessions/{sessionId}/hangup");
106
+ b.p('sessionId', () => input.sessionId, '{sessionId}', false);
107
+ let body;
108
+ body = JSON.stringify(take(input, {
109
+ 'reason': [],
110
+ }));
111
+ b.m("POST")
112
+ .h(headers)
113
+ .b(body);
114
+ return b.build();
115
+ };
116
+ export const se_SendSayCommand = async (input, context) => {
117
+ const b = rb(input, context);
118
+ const headers = {
119
+ 'content-type': 'application/json',
120
+ };
121
+ b.bp("/v2/voicebots/sessions/{sessionId}/say");
122
+ b.p('sessionId', () => input.sessionId, '{sessionId}', false);
123
+ let body;
124
+ body = JSON.stringify(take(input, {
125
+ 'interruptible': [],
126
+ 'replyId': [],
127
+ 'text': [],
128
+ }));
129
+ b.m("POST")
130
+ .h(headers)
131
+ .b(body);
132
+ return b.build();
133
+ };
134
+ export const se_SendTransferCommand = async (input, context) => {
135
+ const b = rb(input, context);
136
+ const headers = {
137
+ 'content-type': 'application/json',
138
+ };
139
+ b.bp("/v2/voicebots/sessions/{sessionId}/transfer");
140
+ b.p('sessionId', () => input.sessionId, '{sessionId}', false);
141
+ let body;
142
+ body = JSON.stringify(take(input, {
143
+ 'context': [],
144
+ 'extension': [],
145
+ }));
146
+ b.m("POST")
147
+ .h(headers)
148
+ .b(body);
149
+ return b.build();
150
+ };
151
+ export const se_UpdateVoiceBotCommand = async (input, context) => {
152
+ const b = rb(input, context);
153
+ const headers = {
154
+ 'content-type': 'application/json',
155
+ };
156
+ b.bp("/v2/voicebots/bots/{botId}");
157
+ b.p('botId', () => input.botId, '{botId}', false);
158
+ const query = map({
159
+ [_c]: [, input[_c]],
160
+ });
161
+ let body;
162
+ body = JSON.stringify(take(input, {
163
+ 'endpoint': _ => se_BotEndpoint(_, context),
164
+ 'languageCode': [],
165
+ 'maximumDuration': [],
166
+ 'name': [],
167
+ 'silenceTimeout': [],
168
+ 'voiceId': [],
169
+ }));
170
+ b.m("PUT")
171
+ .h(headers)
172
+ .q(query)
173
+ .b(body);
174
+ return b.build();
175
+ };
176
+ export const de_CreateVoiceBotCommand = async (output, context) => {
177
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
178
+ return de_CommandError(output, context);
179
+ }
180
+ const contents = map({
181
+ $metadata: deserializeMetadata(output),
182
+ });
183
+ const data = __expectNonNull((__expectObject(await parseBody(output.body, context))), "body");
184
+ const doc = take(data, {
185
+ 'bot': _ => de_VoiceBot(_, context),
186
+ });
187
+ Object.assign(contents, doc);
188
+ return contents;
189
+ };
190
+ export const de_DeleteVoiceBotCommand = async (output, context) => {
191
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
192
+ return de_CommandError(output, context);
193
+ }
194
+ const contents = map({
195
+ $metadata: deserializeMetadata(output),
196
+ });
197
+ await collectBody(output.body, context);
198
+ return contents;
199
+ };
200
+ export const de_DescribeEventCommand = async (output, context) => {
201
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
202
+ return de_CommandError(output, context);
203
+ }
204
+ const contents = map({
205
+ $metadata: deserializeMetadata(output),
206
+ });
207
+ const data = __expectNonNull((__expectObject(await parseBody(output.body, context))), "body");
208
+ const doc = take(data, {
209
+ 'VoiceBotInterruptionWebhookEvent': _json,
210
+ 'VoiceBotInterruptionWebsocketEvent': _json,
211
+ 'VoiceBotReplyWebhookEvent': _json,
212
+ 'VoiceBotReplyWebsocketEvent': _json,
213
+ 'VoiceBotSessionEndedWebhookEvent': _json,
214
+ 'VoiceBotSessionEndedWebsocketEvent': _json,
215
+ 'VoiceBotTranscriptionWebhookEvent': _json,
216
+ 'VoiceBotTranscriptionWebsocketEvent': _json,
217
+ });
218
+ Object.assign(contents, doc);
219
+ return contents;
220
+ };
221
+ export const de_GetVoiceBotCommand = async (output, context) => {
222
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
223
+ return de_CommandError(output, context);
224
+ }
225
+ const contents = map({
226
+ $metadata: deserializeMetadata(output),
227
+ });
228
+ const data = __expectNonNull((__expectObject(await parseBody(output.body, context))), "body");
229
+ const doc = take(data, {
230
+ 'bot': _ => de_VoiceBot(_, context),
231
+ });
232
+ Object.assign(contents, doc);
233
+ return contents;
234
+ };
235
+ export const de_ListVoiceBotsCommand = async (output, context) => {
236
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
237
+ return de_CommandError(output, context);
238
+ }
239
+ const contents = map({
240
+ $metadata: deserializeMetadata(output),
241
+ });
242
+ const data = __expectNonNull((__expectObject(await parseBody(output.body, context))), "body");
243
+ const doc = take(data, {
244
+ 'bots': _ => de_VoiceBotsList(_, context),
245
+ });
246
+ Object.assign(contents, doc);
247
+ return contents;
248
+ };
249
+ export const de_ListVoiceBotsNamesCommand = async (output, context) => {
250
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
251
+ return de_CommandError(output, context);
252
+ }
253
+ const contents = map({
254
+ $metadata: deserializeMetadata(output),
255
+ });
256
+ const data = __expectNonNull((__expectObject(await parseBody(output.body, context))), "body");
257
+ const doc = take(data, {
258
+ 'bots': _json,
259
+ });
260
+ Object.assign(contents, doc);
261
+ return contents;
262
+ };
263
+ export const de_SendHangupCommand = async (output, context) => {
264
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
265
+ return de_CommandError(output, context);
266
+ }
267
+ const contents = map({
268
+ $metadata: deserializeMetadata(output),
269
+ });
270
+ await collectBody(output.body, context);
271
+ return contents;
272
+ };
273
+ export const de_SendSayCommand = async (output, context) => {
274
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
275
+ return de_CommandError(output, context);
276
+ }
277
+ const contents = map({
278
+ $metadata: deserializeMetadata(output),
279
+ });
280
+ await collectBody(output.body, context);
281
+ return contents;
282
+ };
283
+ export const de_SendTransferCommand = async (output, context) => {
284
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
285
+ return de_CommandError(output, context);
286
+ }
287
+ const contents = map({
288
+ $metadata: deserializeMetadata(output),
289
+ });
290
+ await collectBody(output.body, context);
291
+ return contents;
292
+ };
293
+ export const de_UpdateVoiceBotCommand = async (output, context) => {
294
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
295
+ return de_CommandError(output, context);
296
+ }
297
+ const contents = map({
298
+ $metadata: deserializeMetadata(output),
299
+ });
300
+ const data = __expectNonNull((__expectObject(await parseBody(output.body, context))), "body");
301
+ const doc = take(data, {
302
+ 'bot': _ => de_VoiceBot(_, context),
303
+ });
304
+ Object.assign(contents, doc);
305
+ return contents;
306
+ };
307
+ const de_CommandError = async (output, context) => {
308
+ const parsedOutput = {
309
+ ...output,
310
+ body: await parseErrorBody(output.body, context)
311
+ };
312
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
313
+ switch (errorCode) {
314
+ case "ForbiddenException":
315
+ case "smithy.framework#ForbiddenException":
316
+ throw await de_ForbiddenExceptionRes(parsedOutput, context);
317
+ case "ValidationException":
318
+ case "smithy.framework#ValidationException":
319
+ throw await de_ValidationExceptionRes(parsedOutput, context);
320
+ case "VoiceBotNotFoundException":
321
+ case "wildix.wim.voicebots#VoiceBotNotFoundException":
322
+ throw await de_VoiceBotNotFoundExceptionRes(parsedOutput, context);
323
+ case "VoiceSessionNotFoundException":
324
+ case "wildix.wim.voicebots#VoiceSessionNotFoundException":
325
+ throw await de_VoiceSessionNotFoundExceptionRes(parsedOutput, context);
326
+ default:
327
+ const parsedBody = parsedOutput.body;
328
+ return throwDefaultError({
329
+ output,
330
+ parsedBody,
331
+ errorCode
332
+ });
333
+ }
334
+ };
335
+ const throwDefaultError = withBaseException(__BaseException);
336
+ const de_ForbiddenExceptionRes = async (parsedOutput, context) => {
337
+ const contents = map({});
338
+ const data = parsedOutput.body;
339
+ const doc = take(data, {
340
+ 'message': __expectString,
341
+ });
342
+ Object.assign(contents, doc);
343
+ const exception = new ForbiddenException({
344
+ $metadata: deserializeMetadata(parsedOutput),
345
+ ...contents
346
+ });
347
+ return __decorateServiceException(exception, parsedOutput.body);
348
+ };
349
+ const de_ValidationExceptionRes = async (parsedOutput, context) => {
350
+ const contents = map({});
351
+ const data = parsedOutput.body;
352
+ const doc = take(data, {
353
+ 'message': __expectString,
354
+ });
355
+ Object.assign(contents, doc);
356
+ const exception = new ValidationException({
357
+ $metadata: deserializeMetadata(parsedOutput),
358
+ ...contents
359
+ });
360
+ return __decorateServiceException(exception, parsedOutput.body);
361
+ };
362
+ const de_VoiceBotNotFoundExceptionRes = async (parsedOutput, context) => {
363
+ const contents = map({});
364
+ const data = parsedOutput.body;
365
+ const doc = take(data, {
366
+ 'message': __expectString,
367
+ 'type': __expectString,
368
+ });
369
+ Object.assign(contents, doc);
370
+ const exception = new VoiceBotNotFoundException({
371
+ $metadata: deserializeMetadata(parsedOutput),
372
+ ...contents
373
+ });
374
+ return __decorateServiceException(exception, parsedOutput.body);
375
+ };
376
+ const de_VoiceSessionNotFoundExceptionRes = async (parsedOutput, context) => {
377
+ const contents = map({});
378
+ const data = parsedOutput.body;
379
+ const doc = take(data, {
380
+ 'message': __expectString,
381
+ 'type': __expectString,
382
+ });
383
+ Object.assign(contents, doc);
384
+ const exception = new VoiceSessionNotFoundException({
385
+ $metadata: deserializeMetadata(parsedOutput),
386
+ ...contents
387
+ });
388
+ return __decorateServiceException(exception, parsedOutput.body);
389
+ };
390
+ const se_Document = (input, context) => {
391
+ return input;
392
+ };
393
+ const se_BotDialogflowCxEndpoint = (input, context) => {
394
+ return take(input, {
395
+ 'agent': [],
396
+ 'credentials': _ => se_Document(_, context),
397
+ 'language': [],
398
+ 'location': [],
399
+ });
400
+ };
401
+ const se_BotEndpoint = (input, context) => {
402
+ return BotEndpoint.visit(input, {
403
+ dialogflowCx: value => ({ "dialogflowCx": se_BotDialogflowCxEndpoint(value, context) }),
404
+ openAiAssistant: value => ({ "openAiAssistant": _json(value) }),
405
+ sqs: value => ({ "sqs": _json(value) }),
406
+ webhook: value => ({ "webhook": _json(value) }),
407
+ _: (name, value) => ({ name: value })
408
+ });
409
+ };
410
+ const de_Document = (output, context) => {
411
+ return output;
412
+ };
413
+ const de_VoiceBot = (output, context) => {
414
+ return take(output, {
415
+ 'createdAt': __expectString,
416
+ 'endpoint': (_) => de_BotEndpoint(__expectUnion(_), context),
417
+ 'id': __expectString,
418
+ 'languageCode': __expectString,
419
+ 'maximumDuration': __expectInt32,
420
+ 'name': __expectString,
421
+ 'silenceTimeout': __expectInt32,
422
+ 'updatedAt': __expectString,
423
+ 'voiceId': __expectString,
424
+ });
425
+ };
426
+ const de_VoiceBotsList = (output, context) => {
427
+ const retVal = (output || []).filter((e) => e != null).map((entry) => {
428
+ return de_VoiceBot(entry, context);
429
+ });
430
+ return retVal;
431
+ };
432
+ const de_BotDialogflowCxEndpoint = (output, context) => {
433
+ return take(output, {
434
+ 'agent': __expectString,
435
+ 'credentials': (_) => de_Document(_, context),
436
+ 'language': __expectString,
437
+ 'location': __expectString,
438
+ });
439
+ };
440
+ const de_BotEndpoint = (output, context) => {
441
+ if (output.dialogflowCx != null) {
442
+ return {
443
+ dialogflowCx: de_BotDialogflowCxEndpoint(output.dialogflowCx, context)
444
+ };
445
+ }
446
+ if (output.openAiAssistant != null) {
447
+ return {
448
+ openAiAssistant: _json(output.openAiAssistant)
449
+ };
450
+ }
451
+ if (output.sqs != null) {
452
+ return {
453
+ sqs: _json(output.sqs)
454
+ };
455
+ }
456
+ if (output.webhook != null) {
457
+ return {
458
+ webhook: _json(output.webhook)
459
+ };
460
+ }
461
+ return { $unknown: Object.entries(output)[0] };
462
+ };
463
+ const deserializeMetadata = (output) => ({
464
+ httpStatusCode: output.statusCode,
465
+ requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"],
466
+ extendedRequestId: output.headers["x-amz-id-2"],
467
+ cfId: output.headers["x-amz-cf-id"],
468
+ });
469
+ const collectBodyString = (streamBody, context) => collectBody(streamBody, context).then(body => context.utf8Encoder(body));
470
+ const isSerializableHeaderValue = (value) => value !== undefined &&
471
+ value !== null &&
472
+ value !== "" &&
473
+ (!Object.getOwnPropertyNames(value).includes("length") ||
474
+ value.length != 0) &&
475
+ (!Object.getOwnPropertyNames(value).includes("size") || value.size != 0);
476
+ const _c = "company";
477
+ const parseBody = (streamBody, context) => collectBodyString(streamBody, context).then(encoded => {
478
+ if (encoded.length) {
479
+ return JSON.parse(encoded);
480
+ }
481
+ return {};
482
+ });
483
+ const parseErrorBody = async (errorBody, context) => {
484
+ const value = await parseBody(errorBody, context);
485
+ value.message = value.message ?? value.Message;
486
+ return value;
487
+ };
488
+ const loadRestJsonErrorCode = (output, data) => {
489
+ const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());
490
+ const sanitizeErrorCode = (rawValue) => {
491
+ let cleanValue = rawValue;
492
+ if (typeof cleanValue === "number") {
493
+ cleanValue = cleanValue.toString();
494
+ }
495
+ if (cleanValue.indexOf(",") >= 0) {
496
+ cleanValue = cleanValue.split(",")[0];
497
+ }
498
+ if (cleanValue.indexOf(":") >= 0) {
499
+ cleanValue = cleanValue.split(":")[0];
500
+ }
501
+ if (cleanValue.indexOf("#") >= 0) {
502
+ cleanValue = cleanValue.split("#")[1];
503
+ }
504
+ return cleanValue;
505
+ };
506
+ const headerKey = findKey(output.headers, "x-amzn-errortype");
507
+ if (headerKey !== undefined) {
508
+ return sanitizeErrorCode(output.headers[headerKey]);
509
+ }
510
+ if (data.code !== undefined) {
511
+ return sanitizeErrorCode(data.code);
512
+ }
513
+ if (data["__type"] !== undefined) {
514
+ return sanitizeErrorCode(data["__type"]);
515
+ }
516
+ };
@@ -0,0 +1,27 @@
1
+ import packageInfo from "../package.json";
2
+ import { Sha256 } from "@aws-crypto/sha256-browser";
3
+ import { defaultUserAgent } from "@aws-sdk/util-user-agent-browser";
4
+ import { FetchHttpHandler as RequestHandler, streamCollector, } from "@smithy/fetch-http-handler";
5
+ import { calculateBodyLength } from "@smithy/util-body-length-browser";
6
+ import { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, } from "@smithy/util-retry";
7
+ import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared";
8
+ import { loadConfigsForDefaultMode } from "@smithy/smithy-client";
9
+ import { resolveDefaultsModeConfig } from "@smithy/util-defaults-mode-browser";
10
+ export const getRuntimeConfig = (config) => {
11
+ const defaultsMode = resolveDefaultsModeConfig(config);
12
+ const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode);
13
+ const clientSharedValues = getSharedRuntimeConfig(config);
14
+ return {
15
+ ...clientSharedValues,
16
+ ...config,
17
+ runtime: "browser",
18
+ defaultsMode,
19
+ bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength,
20
+ defaultUserAgentProvider: config?.defaultUserAgentProvider ?? defaultUserAgent({ serviceId: packageInfo.name, clientVersion: packageInfo.version }),
21
+ maxAttempts: config?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS,
22
+ requestHandler: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider),
23
+ retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE),
24
+ sha256: config?.sha256 ?? Sha256,
25
+ streamCollector: config?.streamCollector ?? streamCollector,
26
+ };
27
+ };
@@ -0,0 +1,31 @@
1
+ import packageInfo from "../package.json";
2
+ import { defaultUserAgent } from "@aws-sdk/util-user-agent-node";
3
+ import { Hash } from "@smithy/hash-node";
4
+ import { NODE_MAX_ATTEMPT_CONFIG_OPTIONS, NODE_RETRY_MODE_CONFIG_OPTIONS, } from "@smithy/middleware-retry";
5
+ import { loadConfig as loadNodeConfig } from "@smithy/node-config-provider";
6
+ import { NodeHttpHandler as RequestHandler, streamCollector, } from "@smithy/node-http-handler";
7
+ import { calculateBodyLength } from "@smithy/util-body-length-node";
8
+ import { DEFAULT_RETRY_MODE } from "@smithy/util-retry";
9
+ import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared";
10
+ import { loadConfigsForDefaultMode } from "@smithy/smithy-client";
11
+ import { resolveDefaultsModeConfig } from "@smithy/util-defaults-mode-node";
12
+ import { emitWarningIfUnsupportedVersion } from "@smithy/smithy-client";
13
+ export const getRuntimeConfig = (config) => {
14
+ emitWarningIfUnsupportedVersion(process.version);
15
+ const defaultsMode = resolveDefaultsModeConfig(config);
16
+ const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode);
17
+ const clientSharedValues = getSharedRuntimeConfig(config);
18
+ return {
19
+ ...clientSharedValues,
20
+ ...config,
21
+ runtime: "node",
22
+ defaultsMode,
23
+ bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength,
24
+ defaultUserAgentProvider: config?.defaultUserAgentProvider ?? defaultUserAgent({ serviceId: packageInfo.name, clientVersion: packageInfo.version }),
25
+ maxAttempts: config?.maxAttempts ?? loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS),
26
+ requestHandler: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider),
27
+ retryMode: config?.retryMode ?? loadNodeConfig({ ...NODE_RETRY_MODE_CONFIG_OPTIONS, default: async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE, }),
28
+ sha256: config?.sha256 ?? Hash.bind(null, "sha256"),
29
+ streamCollector: config?.streamCollector ?? streamCollector,
30
+ };
31
+ };
@@ -0,0 +1,11 @@
1
+ import { Sha256 } from "@aws-crypto/sha256-js";
2
+ import { getRuntimeConfig as getBrowserRuntimeConfig } from "./runtimeConfig.browser";
3
+ export const getRuntimeConfig = (config) => {
4
+ const browserDefaults = getBrowserRuntimeConfig(config);
5
+ return {
6
+ ...browserDefaults,
7
+ ...config,
8
+ runtime: "react-native",
9
+ sha256: config?.sha256 ?? Sha256,
10
+ };
11
+ };
@@ -0,0 +1,17 @@
1
+ import { NoOpLogger } from "@smithy/smithy-client";
2
+ import { parseUrl } from "@smithy/url-parser";
3
+ import { fromBase64, toBase64, } from "@smithy/util-base64";
4
+ import { fromUtf8, toUtf8, } from "@smithy/util-utf8";
5
+ export const getRuntimeConfig = (config) => {
6
+ return {
7
+ apiVersion: "v2",
8
+ base64Decoder: config?.base64Decoder ?? fromBase64,
9
+ base64Encoder: config?.base64Encoder ?? toBase64,
10
+ disableHostPrefix: config?.disableHostPrefix ?? false,
11
+ extensions: config?.extensions ?? [],
12
+ logger: config?.logger ?? new NoOpLogger(),
13
+ urlParser: config?.urlParser ?? parseUrl,
14
+ utf8Decoder: config?.utf8Decoder ?? fromUtf8,
15
+ utf8Encoder: config?.utf8Encoder ?? toUtf8,
16
+ };
17
+ };
@@ -0,0 +1,15 @@
1
+ import { getHttpHandlerExtensionConfiguration, resolveHttpHandlerRuntimeConfig, } from "@smithy/protocol-http";
2
+ import { getDefaultExtensionConfiguration, resolveDefaultRuntimeConfig, } from "@smithy/smithy-client";
3
+ const asPartial = (t) => t;
4
+ export const resolveRuntimeExtensions = (runtimeConfig, extensions) => {
5
+ const extensionConfiguration = {
6
+ ...asPartial(getDefaultExtensionConfiguration(runtimeConfig)),
7
+ ...asPartial(getHttpHandlerExtensionConfiguration(runtimeConfig)),
8
+ };
9
+ extensions.forEach(extension => extension.configure(extensionConfiguration));
10
+ return {
11
+ ...runtimeConfig,
12
+ ...resolveDefaultRuntimeConfig(extensionConfiguration),
13
+ ...resolveHttpHandlerRuntimeConfig(extensionConfiguration),
14
+ };
15
+ };