@aws-sdk/middleware-sdk-transcribe-streaming 3.186.0 → 3.188.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/CHANGELOG.md +8 -0
- package/dist-es/configuration.js +13 -21
- package/dist-es/eventstream-handler.js +2 -2
- package/dist-es/middleware-endpoint.js +22 -39
- package/dist-es/middleware-session-id.js +16 -38
- package/dist-es/plugin.js +3 -3
- package/dist-es/signer.js +19 -27
- package/dist-es/websocket-handler.js +61 -128
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.188.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.187.0...v3.188.0) (2022-10-13)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @aws-sdk/middleware-sdk-transcribe-streaming
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
# [3.186.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.185.0...v3.186.0) (2022-10-06)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @aws-sdk/middleware-sdk-transcribe-streaming
|
package/dist-es/configuration.js
CHANGED
|
@@ -1,22 +1,14 @@
|
|
|
1
|
-
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
1
|
import { SignatureV4 } from "./signer";
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
throw new Error("Expected SignatureV4 signer, please check the client constructor.");
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
}); } });
|
|
21
|
-
};
|
|
22
|
-
var validateSigner = function (signer) { return !!signer; };
|
|
2
|
+
export const resolveWebSocketConfig = (input) => input.requestHandler.metadata?.handlerProtocol !== "websocket"
|
|
3
|
+
? input
|
|
4
|
+
: {
|
|
5
|
+
...input,
|
|
6
|
+
signer: async (authScheme) => {
|
|
7
|
+
const signerObj = await input.signer(authScheme);
|
|
8
|
+
if (validateSigner(signerObj)) {
|
|
9
|
+
return new SignatureV4({ signer: signerObj });
|
|
10
|
+
}
|
|
11
|
+
throw new Error("Expected SignatureV4 signer, please check the client constructor.");
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
const validateSigner = (signer) => !!signer;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export
|
|
2
|
-
handle:
|
|
1
|
+
export const eventStreamPayloadHandler = {
|
|
2
|
+
handle: (next, args) => next(args),
|
|
3
3
|
};
|
|
@@ -1,45 +1,28 @@
|
|
|
1
|
-
import { __values } from "tslib";
|
|
2
1
|
import { HttpRequest } from "@aws-sdk/protocol-http";
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
try {
|
|
18
|
-
for (var _c = __values(Object.keys(headers)), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
19
|
-
var name_1 = _d.value;
|
|
20
|
-
if (name_1.indexOf("x-amzn-transcribe-") === 0) {
|
|
21
|
-
var chunkedName = name_1.replace("x-amzn-transcribe-", "");
|
|
22
|
-
request.query[chunkedName] = headers[name_1];
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
27
|
-
finally {
|
|
28
|
-
try {
|
|
29
|
-
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
30
|
-
}
|
|
31
|
-
finally { if (e_1) throw e_1.error; }
|
|
32
|
-
}
|
|
33
|
-
if (headers["x-amz-user-agent"]) {
|
|
34
|
-
request.query["user-agent"] = headers["x-amz-user-agent"];
|
|
35
|
-
}
|
|
36
|
-
request.headers = { host: request.hostname };
|
|
2
|
+
export const websocketURLMiddleware = (options) => (next) => (args) => {
|
|
3
|
+
const { request } = args;
|
|
4
|
+
if (HttpRequest.isInstance(request) && options.requestHandler.metadata?.handlerProtocol === "websocket") {
|
|
5
|
+
request.protocol = "wss:";
|
|
6
|
+
request.hostname = `${request.hostname}:8443`;
|
|
7
|
+
request.path = `${request.path}-websocket`;
|
|
8
|
+
request.method = "GET";
|
|
9
|
+
const { headers } = request;
|
|
10
|
+
delete headers["Content-Type"];
|
|
11
|
+
delete headers["x-amz-content-sha256"];
|
|
12
|
+
for (const name of Object.keys(headers)) {
|
|
13
|
+
if (name.indexOf("x-amzn-transcribe-") === 0) {
|
|
14
|
+
const chunkedName = name.replace("x-amzn-transcribe-", "");
|
|
15
|
+
request.query[chunkedName] = headers[name];
|
|
37
16
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
17
|
+
}
|
|
18
|
+
if (headers["x-amz-user-agent"]) {
|
|
19
|
+
request.query["user-agent"] = headers["x-amz-user-agent"];
|
|
20
|
+
}
|
|
21
|
+
request.headers = { host: request.hostname };
|
|
22
|
+
}
|
|
23
|
+
return next(args);
|
|
41
24
|
};
|
|
42
|
-
export
|
|
25
|
+
export const websocketURLMiddlewareOptions = {
|
|
43
26
|
name: "websocketURLMiddleware",
|
|
44
27
|
tags: ["WEBSOCKET", "EVENT_STREAM"],
|
|
45
28
|
relation: "after",
|
|
@@ -1,44 +1,22 @@
|
|
|
1
|
-
import { __assign, __awaiter, __generator, __values } from "tslib";
|
|
2
1
|
import { v4 } from "uuid";
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
switch (_d.label) {
|
|
10
|
-
case 0:
|
|
11
|
-
if (args.input.SessionId === undefined && isWebSocket(config)) {
|
|
12
|
-
args.input.SessionId = v4();
|
|
13
|
-
}
|
|
14
|
-
requestParams = __assign({}, args.input);
|
|
15
|
-
return [4, next(args)];
|
|
16
|
-
case 1:
|
|
17
|
-
response = _d.sent();
|
|
18
|
-
output = response.output;
|
|
19
|
-
try {
|
|
20
|
-
for (_a = __values(Object.keys(output)), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
21
|
-
key = _b.value;
|
|
22
|
-
if (output[key] === undefined && requestParams[key]) {
|
|
23
|
-
output[key] = requestParams[key];
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
28
|
-
finally {
|
|
29
|
-
try {
|
|
30
|
-
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
31
|
-
}
|
|
32
|
-
finally { if (e_1) throw e_1.error; }
|
|
33
|
-
}
|
|
34
|
-
return [2, response];
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
}); };
|
|
2
|
+
export const injectSessionIdMiddleware = (config) => (next) => async (args) => {
|
|
3
|
+
if (args.input.SessionId === undefined && isWebSocket(config)) {
|
|
4
|
+
args.input.SessionId = v4();
|
|
5
|
+
}
|
|
6
|
+
const requestParams = {
|
|
7
|
+
...args.input,
|
|
38
8
|
};
|
|
9
|
+
const response = await next(args);
|
|
10
|
+
const output = response.output;
|
|
11
|
+
for (const key of Object.keys(output)) {
|
|
12
|
+
if (output[key] === undefined && requestParams[key]) {
|
|
13
|
+
output[key] = requestParams[key];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return response;
|
|
39
17
|
};
|
|
40
|
-
|
|
41
|
-
export
|
|
18
|
+
const isWebSocket = (config) => config.requestHandler.metadata?.handlerProtocol === "websocket";
|
|
19
|
+
export const injectSessionIdMiddlewareOptions = {
|
|
42
20
|
step: "initialize",
|
|
43
21
|
name: "injectSessionIdMiddleware",
|
|
44
22
|
tags: ["WEBSOCKET", "EVENT_STREAM"],
|
package/dist-es/plugin.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { websocketURLMiddleware, websocketURLMiddlewareOptions } from "./middleware-endpoint";
|
|
2
2
|
import { injectSessionIdMiddleware, injectSessionIdMiddlewareOptions } from "./middleware-session-id";
|
|
3
|
-
export
|
|
4
|
-
applyToStack:
|
|
3
|
+
export const getWebSocketPlugin = (config) => ({
|
|
4
|
+
applyToStack: (clientStack) => {
|
|
5
5
|
clientStack.addRelativeTo(websocketURLMiddleware(config), websocketURLMiddlewareOptions);
|
|
6
6
|
clientStack.add(injectSessionIdMiddleware(config), injectSessionIdMiddlewareOptions);
|
|
7
7
|
},
|
|
8
|
-
});
|
|
8
|
+
});
|
package/dist-es/signer.js
CHANGED
|
@@ -1,32 +1,24 @@
|
|
|
1
|
-
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
1
|
import { HttpRequest } from "@aws-sdk/protocol-http";
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
export class SignatureV4 {
|
|
3
|
+
constructor(options) {
|
|
5
4
|
this.signer = options.signer;
|
|
6
5
|
}
|
|
7
|
-
|
|
8
|
-
if (options === void 0) { options = {}; }
|
|
6
|
+
presign(originalRequest, options = {}) {
|
|
9
7
|
return this.signer.presign(originalRequest, options);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
case 0:
|
|
17
|
-
if (!HttpRequest.isInstance(toSign)) return [3, 2];
|
|
18
|
-
return [4, this.signer.presign(__assign(__assign({}, toSign), { body: "" }), {
|
|
19
|
-
expiresIn: 5 * 60,
|
|
20
|
-
unsignableHeaders: new Set(Object.keys(toSign.headers).filter(function (header) { return header !== "host"; })),
|
|
21
|
-
})];
|
|
22
|
-
case 1:
|
|
23
|
-
signedRequest = _a.sent();
|
|
24
|
-
return [2, __assign(__assign({}, signedRequest), { body: toSign.body })];
|
|
25
|
-
case 2: return [2, this.signer.sign(toSign, options)];
|
|
26
|
-
}
|
|
8
|
+
}
|
|
9
|
+
async sign(toSign, options) {
|
|
10
|
+
if (HttpRequest.isInstance(toSign)) {
|
|
11
|
+
const signedRequest = await this.signer.presign({ ...toSign, body: "" }, {
|
|
12
|
+
expiresIn: 5 * 60,
|
|
13
|
+
unsignableHeaders: new Set(Object.keys(toSign.headers).filter((header) => header !== "host")),
|
|
27
14
|
});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
15
|
+
return {
|
|
16
|
+
...signedRequest,
|
|
17
|
+
body: toSign.body,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
return this.signer.sign(toSign, options);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -1,73 +1,56 @@
|
|
|
1
|
-
import { __asyncGenerator, __asyncValues, __await, __awaiter, __generator } from "tslib";
|
|
2
1
|
import { iterableToReadableStream, readableStreamtoIterable } from "@aws-sdk/eventstream-serde-browser";
|
|
3
2
|
import { HttpResponse } from "@aws-sdk/protocol-http";
|
|
4
3
|
import { formatUrl } from "@aws-sdk/util-format-url";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var _b = _a === void 0 ? {} : _a, connectionTimeout = _b.connectionTimeout;
|
|
4
|
+
export class WebSocketHandler {
|
|
5
|
+
constructor({ connectionTimeout } = {}) {
|
|
8
6
|
this.metadata = {
|
|
9
7
|
handlerProtocol: "websocket",
|
|
10
8
|
};
|
|
11
9
|
this.connectionTimeout = connectionTimeout || 2000;
|
|
12
10
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
});
|
|
11
|
+
destroy() { }
|
|
12
|
+
async handle(request) {
|
|
13
|
+
const url = formatUrl(request);
|
|
14
|
+
const socket = new WebSocket(url);
|
|
15
|
+
socket.binaryType = "arraybuffer";
|
|
16
|
+
await waitForReady(socket, this.connectionTimeout);
|
|
17
|
+
const { body } = request;
|
|
18
|
+
const bodyStream = getIterator(body);
|
|
19
|
+
const asyncIterable = connect(socket, bodyStream);
|
|
20
|
+
const outputPayload = toReadableStream(asyncIterable);
|
|
21
|
+
return {
|
|
22
|
+
response: new HttpResponse({
|
|
23
|
+
statusCode: 200,
|
|
24
|
+
body: outputPayload,
|
|
25
|
+
}),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const waitForReady = (socket, connectionTimeout) => new Promise((resolve, reject) => {
|
|
30
|
+
const timeout = setTimeout(() => {
|
|
31
|
+
reject({
|
|
32
|
+
$metadata: {
|
|
33
|
+
httpStatusCode: 500,
|
|
34
|
+
},
|
|
38
35
|
});
|
|
36
|
+
}, connectionTimeout);
|
|
37
|
+
socket.onopen = () => {
|
|
38
|
+
clearTimeout(timeout);
|
|
39
|
+
resolve();
|
|
39
40
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
httpStatusCode: 500,
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
}, connectionTimeout);
|
|
52
|
-
socket.onopen = function () {
|
|
53
|
-
clearTimeout(timeout);
|
|
54
|
-
resolve();
|
|
55
|
-
};
|
|
56
|
-
});
|
|
57
|
-
};
|
|
58
|
-
var connect = function (socket, data) {
|
|
59
|
-
var _a;
|
|
60
|
-
var streamError = undefined;
|
|
61
|
-
var outputStream = (_a = {},
|
|
62
|
-
_a[Symbol.asyncIterator] = function () { return ({
|
|
63
|
-
next: function () {
|
|
64
|
-
return new Promise(function (resolve, reject) {
|
|
65
|
-
socket.onerror = function (error) {
|
|
41
|
+
});
|
|
42
|
+
const connect = (socket, data) => {
|
|
43
|
+
let streamError = undefined;
|
|
44
|
+
const outputStream = {
|
|
45
|
+
[Symbol.asyncIterator]: () => ({
|
|
46
|
+
next: () => {
|
|
47
|
+
return new Promise((resolve, reject) => {
|
|
48
|
+
socket.onerror = (error) => {
|
|
66
49
|
socket.onclose = null;
|
|
67
50
|
socket.close();
|
|
68
51
|
reject(error);
|
|
69
52
|
};
|
|
70
|
-
socket.onclose =
|
|
53
|
+
socket.onclose = () => {
|
|
71
54
|
if (streamError) {
|
|
72
55
|
reject(streamError);
|
|
73
56
|
}
|
|
@@ -78,7 +61,7 @@ var connect = function (socket, data) {
|
|
|
78
61
|
});
|
|
79
62
|
}
|
|
80
63
|
};
|
|
81
|
-
socket.onmessage =
|
|
64
|
+
socket.onmessage = (event) => {
|
|
82
65
|
resolve({
|
|
83
66
|
done: false,
|
|
84
67
|
value: new Uint8Array(event.data),
|
|
@@ -86,87 +69,37 @@ var connect = function (socket, data) {
|
|
|
86
69
|
};
|
|
87
70
|
});
|
|
88
71
|
},
|
|
89
|
-
})
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
switch (_b.label) {
|
|
96
|
-
case 0:
|
|
97
|
-
_b.trys.push([0, 13, 14, 15]);
|
|
98
|
-
_b.label = 1;
|
|
99
|
-
case 1:
|
|
100
|
-
_b.trys.push([1, 6, 7, 12]);
|
|
101
|
-
data_1 = __asyncValues(data);
|
|
102
|
-
_b.label = 2;
|
|
103
|
-
case 2: return [4, data_1.next()];
|
|
104
|
-
case 3:
|
|
105
|
-
if (!(data_1_1 = _b.sent(), !data_1_1.done)) return [3, 5];
|
|
106
|
-
inputChunk = data_1_1.value;
|
|
107
|
-
socket.send(inputChunk);
|
|
108
|
-
_b.label = 4;
|
|
109
|
-
case 4: return [3, 2];
|
|
110
|
-
case 5: return [3, 12];
|
|
111
|
-
case 6:
|
|
112
|
-
e_1_1 = _b.sent();
|
|
113
|
-
e_1 = { error: e_1_1 };
|
|
114
|
-
return [3, 12];
|
|
115
|
-
case 7:
|
|
116
|
-
_b.trys.push([7, , 10, 11]);
|
|
117
|
-
if (!(data_1_1 && !data_1_1.done && (_a = data_1.return))) return [3, 9];
|
|
118
|
-
return [4, _a.call(data_1)];
|
|
119
|
-
case 8:
|
|
120
|
-
_b.sent();
|
|
121
|
-
_b.label = 9;
|
|
122
|
-
case 9: return [3, 11];
|
|
123
|
-
case 10:
|
|
124
|
-
if (e_1) throw e_1.error;
|
|
125
|
-
return [7];
|
|
126
|
-
case 11: return [7];
|
|
127
|
-
case 12: return [3, 15];
|
|
128
|
-
case 13:
|
|
129
|
-
err_1 = _b.sent();
|
|
130
|
-
streamError = err_1;
|
|
131
|
-
return [3, 15];
|
|
132
|
-
case 14:
|
|
133
|
-
socket.close(1000);
|
|
134
|
-
return [7];
|
|
135
|
-
case 15: return [2];
|
|
72
|
+
}),
|
|
73
|
+
};
|
|
74
|
+
const send = async () => {
|
|
75
|
+
try {
|
|
76
|
+
for await (const inputChunk of data) {
|
|
77
|
+
socket.send(inputChunk);
|
|
136
78
|
}
|
|
137
|
-
}
|
|
138
|
-
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
streamError = err;
|
|
82
|
+
}
|
|
83
|
+
finally {
|
|
84
|
+
socket.close(1000);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
139
87
|
send();
|
|
140
88
|
return outputStream;
|
|
141
89
|
};
|
|
142
|
-
|
|
143
|
-
var _a;
|
|
90
|
+
const getIterator = (stream) => {
|
|
144
91
|
if (stream[Symbol.asyncIterator])
|
|
145
92
|
return stream;
|
|
146
93
|
else if (isReadableStream(stream)) {
|
|
147
94
|
return readableStreamtoIterable(stream);
|
|
148
95
|
}
|
|
149
96
|
else {
|
|
150
|
-
return
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
return __generator(this, function (_a) {
|
|
154
|
-
switch (_a.label) {
|
|
155
|
-
case 0: return [4, __await(stream)];
|
|
156
|
-
case 1: return [4, _a.sent()];
|
|
157
|
-
case 2:
|
|
158
|
-
_a.sent();
|
|
159
|
-
return [2];
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
});
|
|
97
|
+
return {
|
|
98
|
+
[Symbol.asyncIterator]: async function* () {
|
|
99
|
+
yield stream;
|
|
163
100
|
},
|
|
164
|
-
|
|
101
|
+
};
|
|
165
102
|
}
|
|
166
103
|
};
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
};
|
|
170
|
-
var isReadableStream = function (payload) {
|
|
171
|
-
return typeof ReadableStream === "function" && payload instanceof ReadableStream;
|
|
172
|
-
};
|
|
104
|
+
const toReadableStream = (asyncIterable) => typeof ReadableStream === "function" ? iterableToReadableStream(asyncIterable) : asyncIterable;
|
|
105
|
+
const isReadableStream = (payload) => typeof ReadableStream === "function" && payload instanceof ReadableStream;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/middleware-sdk-transcribe-streaming",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.188.0",
|
|
4
4
|
"main": "./dist-cjs/index.js",
|
|
5
5
|
"module": "./dist-es/index.js",
|
|
6
6
|
"types": "./dist-types/index.d.ts",
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
},
|
|
21
21
|
"license": "Apache-2.0",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@aws-sdk/eventstream-serde-browser": "3.
|
|
24
|
-
"@aws-sdk/middleware-signing": "3.
|
|
25
|
-
"@aws-sdk/protocol-http": "3.
|
|
26
|
-
"@aws-sdk/signature-v4": "3.
|
|
27
|
-
"@aws-sdk/types": "3.
|
|
28
|
-
"@aws-sdk/util-format-url": "3.
|
|
23
|
+
"@aws-sdk/eventstream-serde-browser": "3.188.0",
|
|
24
|
+
"@aws-sdk/middleware-signing": "3.188.0",
|
|
25
|
+
"@aws-sdk/protocol-http": "3.188.0",
|
|
26
|
+
"@aws-sdk/signature-v4": "3.188.0",
|
|
27
|
+
"@aws-sdk/types": "3.188.0",
|
|
28
|
+
"@aws-sdk/util-format-url": "3.188.0",
|
|
29
29
|
"tslib": "^2.3.1",
|
|
30
30
|
"uuid": "^8.3.2"
|
|
31
31
|
},
|