@aws-sdk/credential-provider-http 3.582.0 → 3.596.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/dist-cjs/fromHttp/checkUrl.js +2 -2
- package/dist-cjs/fromHttp/fromHttp.browser.js +4 -4
- package/dist-cjs/fromHttp/fromHttp.js +12 -9
- package/dist-cjs/fromHttp/requestHelpers.js +4 -8
- package/dist-es/fromHttp/checkUrl.js +2 -2
- package/dist-es/fromHttp/fromHttp.browser.js +4 -4
- package/dist-es/fromHttp/fromHttp.js +12 -9
- package/dist-es/fromHttp/requestHelpers.js +4 -8
- package/dist-types/fromHttp/checkUrl.d.ts +3 -1
- package/dist-types/fromHttp/fromHttp.browser.d.ts +1 -1
- package/dist-types/fromHttp/fromHttp.d.ts +1 -1
- package/dist-types/fromHttp/requestHelpers.d.ts +2 -2
- package/dist-types/ts3.4/fromHttp/checkUrl.d.ts +2 -1
- package/dist-types/ts3.4/fromHttp/fromHttp.browser.d.ts +1 -1
- package/dist-types/ts3.4/fromHttp/fromHttp.d.ts +1 -1
- package/dist-types/ts3.4/fromHttp/requestHelpers.d.ts +3 -2
- package/package.json +3 -3
|
@@ -7,7 +7,7 @@ const LOOPBACK_CIDR_IPv6 = "::1/128";
|
|
|
7
7
|
const ECS_CONTAINER_HOST = "169.254.170.2";
|
|
8
8
|
const EKS_CONTAINER_HOST_IPv4 = "169.254.170.23";
|
|
9
9
|
const EKS_CONTAINER_HOST_IPv6 = "[fd00:ec2::23]";
|
|
10
|
-
const checkUrl = (url) => {
|
|
10
|
+
const checkUrl = (url, logger) => {
|
|
11
11
|
if (url.protocol === "https:") {
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
@@ -41,6 +41,6 @@ const checkUrl = (url) => {
|
|
|
41
41
|
throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:
|
|
42
42
|
- loopback CIDR 127.0.0.0/8 or [::1/128]
|
|
43
43
|
- ECS container host 169.254.170.2
|
|
44
|
-
- EKS container host 169.254.170.23 or [fd00:ec2::23]
|
|
44
|
+
- EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });
|
|
45
45
|
};
|
|
46
46
|
exports.checkUrl = checkUrl;
|
|
@@ -6,18 +6,18 @@ const property_provider_1 = require("@smithy/property-provider");
|
|
|
6
6
|
const checkUrl_1 = require("./checkUrl");
|
|
7
7
|
const requestHelpers_1 = require("./requestHelpers");
|
|
8
8
|
const retry_wrapper_1 = require("./retry-wrapper");
|
|
9
|
-
const fromHttp = (options) => {
|
|
10
|
-
options.logger?.debug("@aws-sdk/credential-provider-http
|
|
9
|
+
const fromHttp = (options = {}) => {
|
|
10
|
+
options.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");
|
|
11
11
|
let host;
|
|
12
12
|
const full = options.credentialsFullUri;
|
|
13
13
|
if (full) {
|
|
14
14
|
host = full;
|
|
15
15
|
}
|
|
16
16
|
else {
|
|
17
|
-
throw new property_provider_1.CredentialsProviderError("No HTTP credential provider host provided.");
|
|
17
|
+
throw new property_provider_1.CredentialsProviderError("No HTTP credential provider host provided.", { logger: options.logger });
|
|
18
18
|
}
|
|
19
19
|
const url = new URL(host);
|
|
20
|
-
(0, checkUrl_1.checkUrl)(url);
|
|
20
|
+
(0, checkUrl_1.checkUrl)(url, options.logger);
|
|
21
21
|
const requestHandler = new fetch_http_handler_1.FetchHttpHandler();
|
|
22
22
|
return (0, retry_wrapper_1.retryWrapper)(async () => {
|
|
23
23
|
const request = (0, requestHelpers_1.createGetRequest)(url);
|
|
@@ -13,20 +13,23 @@ const DEFAULT_LINK_LOCAL_HOST = "http://169.254.170.2";
|
|
|
13
13
|
const AWS_CONTAINER_CREDENTIALS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI";
|
|
14
14
|
const AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = "AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE";
|
|
15
15
|
const AWS_CONTAINER_AUTHORIZATION_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN";
|
|
16
|
-
const fromHttp = (options) => {
|
|
17
|
-
options.logger?.debug("@aws-sdk/credential-provider-http
|
|
16
|
+
const fromHttp = (options = {}) => {
|
|
17
|
+
options.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");
|
|
18
18
|
let host;
|
|
19
19
|
const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];
|
|
20
20
|
const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];
|
|
21
21
|
const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];
|
|
22
22
|
const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];
|
|
23
|
+
const warn = options.logger?.constructor?.name === "NoOpLogger" || !options.logger ? console.warn : options.logger.warn;
|
|
23
24
|
if (relative && full) {
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
warn("@aws-sdk/credential-provider-http: " +
|
|
26
|
+
"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.");
|
|
27
|
+
warn("awsContainerCredentialsFullUri will take precedence.");
|
|
26
28
|
}
|
|
27
29
|
if (token && tokenFile) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
warn("@aws-sdk/credential-provider-http: " +
|
|
31
|
+
"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.");
|
|
32
|
+
warn("awsContainerAuthorizationToken will take precedence.");
|
|
30
33
|
}
|
|
31
34
|
if (full) {
|
|
32
35
|
host = full;
|
|
@@ -36,10 +39,10 @@ const fromHttp = (options) => {
|
|
|
36
39
|
}
|
|
37
40
|
else {
|
|
38
41
|
throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided.
|
|
39
|
-
Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
|
|
42
|
+
Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });
|
|
40
43
|
}
|
|
41
44
|
const url = new URL(host);
|
|
42
|
-
(0, checkUrl_1.checkUrl)(url);
|
|
45
|
+
(0, checkUrl_1.checkUrl)(url, options.logger);
|
|
43
46
|
const requestHandler = new node_http_handler_1.NodeHttpHandler({
|
|
44
47
|
requestTimeout: options.timeout ?? 1000,
|
|
45
48
|
connectionTimeout: options.timeout ?? 1000,
|
|
@@ -57,7 +60,7 @@ Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
|
|
|
57
60
|
return (0, requestHelpers_1.getCredentials)(result.response);
|
|
58
61
|
}
|
|
59
62
|
catch (e) {
|
|
60
|
-
throw new property_provider_1.CredentialsProviderError(String(e));
|
|
63
|
+
throw new property_provider_1.CredentialsProviderError(String(e), { logger: options.logger });
|
|
61
64
|
}
|
|
62
65
|
}, options.maxRetries ?? 3, options.timeout ?? 1000);
|
|
63
66
|
};
|
|
@@ -19,11 +19,7 @@ function createGetRequest(url) {
|
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
21
|
exports.createGetRequest = createGetRequest;
|
|
22
|
-
async function getCredentials(response) {
|
|
23
|
-
const contentType = response?.headers["content-type"] ?? response?.headers["Content-Type"] ?? "";
|
|
24
|
-
if (!contentType.includes("json")) {
|
|
25
|
-
console.warn("HTTP credential provider response header content-type was not application/json. Observed: " + contentType + ".");
|
|
26
|
-
}
|
|
22
|
+
async function getCredentials(response, logger) {
|
|
27
23
|
const stream = (0, util_stream_1.sdkStreamMixin)(response.body);
|
|
28
24
|
const str = await stream.transformToString();
|
|
29
25
|
if (response.statusCode === 200) {
|
|
@@ -33,7 +29,7 @@ async function getCredentials(response) {
|
|
|
33
29
|
typeof parsed.Token !== "string" ||
|
|
34
30
|
typeof parsed.Expiration !== "string") {
|
|
35
31
|
throw new property_provider_1.CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: " +
|
|
36
|
-
"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }");
|
|
32
|
+
"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }", { logger });
|
|
37
33
|
}
|
|
38
34
|
return {
|
|
39
35
|
accessKeyId: parsed.AccessKeyId,
|
|
@@ -48,11 +44,11 @@ async function getCredentials(response) {
|
|
|
48
44
|
parsedBody = JSON.parse(str);
|
|
49
45
|
}
|
|
50
46
|
catch (e) { }
|
|
51
|
-
throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}
|
|
47
|
+
throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {
|
|
52
48
|
Code: parsedBody.Code,
|
|
53
49
|
Message: parsedBody.Message,
|
|
54
50
|
});
|
|
55
51
|
}
|
|
56
|
-
throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}
|
|
52
|
+
throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });
|
|
57
53
|
}
|
|
58
54
|
exports.getCredentials = getCredentials;
|
|
@@ -4,7 +4,7 @@ const LOOPBACK_CIDR_IPv6 = "::1/128";
|
|
|
4
4
|
const ECS_CONTAINER_HOST = "169.254.170.2";
|
|
5
5
|
const EKS_CONTAINER_HOST_IPv4 = "169.254.170.23";
|
|
6
6
|
const EKS_CONTAINER_HOST_IPv6 = "[fd00:ec2::23]";
|
|
7
|
-
export const checkUrl = (url) => {
|
|
7
|
+
export const checkUrl = (url, logger) => {
|
|
8
8
|
if (url.protocol === "https:") {
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
@@ -38,5 +38,5 @@ export const checkUrl = (url) => {
|
|
|
38
38
|
throw new CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:
|
|
39
39
|
- loopback CIDR 127.0.0.0/8 or [::1/128]
|
|
40
40
|
- ECS container host 169.254.170.2
|
|
41
|
-
- EKS container host 169.254.170.23 or [fd00:ec2::23]
|
|
41
|
+
- EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger });
|
|
42
42
|
};
|
|
@@ -3,18 +3,18 @@ import { CredentialsProviderError } from "@smithy/property-provider";
|
|
|
3
3
|
import { checkUrl } from "./checkUrl";
|
|
4
4
|
import { createGetRequest, getCredentials } from "./requestHelpers";
|
|
5
5
|
import { retryWrapper } from "./retry-wrapper";
|
|
6
|
-
export const fromHttp = (options) => {
|
|
7
|
-
options.logger?.debug("@aws-sdk/credential-provider-http
|
|
6
|
+
export const fromHttp = (options = {}) => {
|
|
7
|
+
options.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");
|
|
8
8
|
let host;
|
|
9
9
|
const full = options.credentialsFullUri;
|
|
10
10
|
if (full) {
|
|
11
11
|
host = full;
|
|
12
12
|
}
|
|
13
13
|
else {
|
|
14
|
-
throw new CredentialsProviderError("No HTTP credential provider host provided.");
|
|
14
|
+
throw new CredentialsProviderError("No HTTP credential provider host provided.", { logger: options.logger });
|
|
15
15
|
}
|
|
16
16
|
const url = new URL(host);
|
|
17
|
-
checkUrl(url);
|
|
17
|
+
checkUrl(url, options.logger);
|
|
18
18
|
const requestHandler = new FetchHttpHandler();
|
|
19
19
|
return retryWrapper(async () => {
|
|
20
20
|
const request = createGetRequest(url);
|
|
@@ -9,20 +9,23 @@ const DEFAULT_LINK_LOCAL_HOST = "http://169.254.170.2";
|
|
|
9
9
|
const AWS_CONTAINER_CREDENTIALS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI";
|
|
10
10
|
const AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = "AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE";
|
|
11
11
|
const AWS_CONTAINER_AUTHORIZATION_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN";
|
|
12
|
-
export const fromHttp = (options) => {
|
|
13
|
-
options.logger?.debug("@aws-sdk/credential-provider-http
|
|
12
|
+
export const fromHttp = (options = {}) => {
|
|
13
|
+
options.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");
|
|
14
14
|
let host;
|
|
15
15
|
const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];
|
|
16
16
|
const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];
|
|
17
17
|
const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];
|
|
18
18
|
const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];
|
|
19
|
+
const warn = options.logger?.constructor?.name === "NoOpLogger" || !options.logger ? console.warn : options.logger.warn;
|
|
19
20
|
if (relative && full) {
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
warn("@aws-sdk/credential-provider-http: " +
|
|
22
|
+
"you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.");
|
|
23
|
+
warn("awsContainerCredentialsFullUri will take precedence.");
|
|
22
24
|
}
|
|
23
25
|
if (token && tokenFile) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
warn("@aws-sdk/credential-provider-http: " +
|
|
27
|
+
"you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile.");
|
|
28
|
+
warn("awsContainerAuthorizationToken will take precedence.");
|
|
26
29
|
}
|
|
27
30
|
if (full) {
|
|
28
31
|
host = full;
|
|
@@ -32,10 +35,10 @@ export const fromHttp = (options) => {
|
|
|
32
35
|
}
|
|
33
36
|
else {
|
|
34
37
|
throw new CredentialsProviderError(`No HTTP credential provider host provided.
|
|
35
|
-
Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
|
|
38
|
+
Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });
|
|
36
39
|
}
|
|
37
40
|
const url = new URL(host);
|
|
38
|
-
checkUrl(url);
|
|
41
|
+
checkUrl(url, options.logger);
|
|
39
42
|
const requestHandler = new NodeHttpHandler({
|
|
40
43
|
requestTimeout: options.timeout ?? 1000,
|
|
41
44
|
connectionTimeout: options.timeout ?? 1000,
|
|
@@ -53,7 +56,7 @@ Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
|
|
|
53
56
|
return getCredentials(result.response);
|
|
54
57
|
}
|
|
55
58
|
catch (e) {
|
|
56
|
-
throw new CredentialsProviderError(String(e));
|
|
59
|
+
throw new CredentialsProviderError(String(e), { logger: options.logger });
|
|
57
60
|
}
|
|
58
61
|
}, options.maxRetries ?? 3, options.timeout ?? 1000);
|
|
59
62
|
};
|
|
@@ -15,11 +15,7 @@ export function createGetRequest(url) {
|
|
|
15
15
|
fragment: url.hash,
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
|
-
export async function getCredentials(response) {
|
|
19
|
-
const contentType = response?.headers["content-type"] ?? response?.headers["Content-Type"] ?? "";
|
|
20
|
-
if (!contentType.includes("json")) {
|
|
21
|
-
console.warn("HTTP credential provider response header content-type was not application/json. Observed: " + contentType + ".");
|
|
22
|
-
}
|
|
18
|
+
export async function getCredentials(response, logger) {
|
|
23
19
|
const stream = sdkStreamMixin(response.body);
|
|
24
20
|
const str = await stream.transformToString();
|
|
25
21
|
if (response.statusCode === 200) {
|
|
@@ -29,7 +25,7 @@ export async function getCredentials(response) {
|
|
|
29
25
|
typeof parsed.Token !== "string" ||
|
|
30
26
|
typeof parsed.Expiration !== "string") {
|
|
31
27
|
throw new CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: " +
|
|
32
|
-
"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }");
|
|
28
|
+
"{ AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }", { logger });
|
|
33
29
|
}
|
|
34
30
|
return {
|
|
35
31
|
accessKeyId: parsed.AccessKeyId,
|
|
@@ -44,10 +40,10 @@ export async function getCredentials(response) {
|
|
|
44
40
|
parsedBody = JSON.parse(str);
|
|
45
41
|
}
|
|
46
42
|
catch (e) { }
|
|
47
|
-
throw Object.assign(new CredentialsProviderError(`Server responded with status: ${response.statusCode}
|
|
43
|
+
throw Object.assign(new CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger }), {
|
|
48
44
|
Code: parsedBody.Code,
|
|
49
45
|
Message: parsedBody.Message,
|
|
50
46
|
});
|
|
51
47
|
}
|
|
52
|
-
throw new CredentialsProviderError(`Server responded with status: ${response.statusCode}
|
|
48
|
+
throw new CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger });
|
|
53
49
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { Logger } from "@smithy/types";
|
|
1
2
|
/**
|
|
2
3
|
* @internal
|
|
3
4
|
*
|
|
4
5
|
* @param url - to be validated.
|
|
6
|
+
* @param logger - passed to CredentialsProviderError.
|
|
5
7
|
* @throws if not acceptable to this provider.
|
|
6
8
|
*/
|
|
7
|
-
export declare const checkUrl: (url: URL) => void;
|
|
9
|
+
export declare const checkUrl: (url: URL, logger?: Logger) => void;
|
|
@@ -3,4 +3,4 @@ import type { FromHttpOptions } from "./fromHttpTypes";
|
|
|
3
3
|
/**
|
|
4
4
|
* Creates a provider that gets credentials via HTTP request.
|
|
5
5
|
*/
|
|
6
|
-
export declare const fromHttp: (options
|
|
6
|
+
export declare const fromHttp: (options?: FromHttpOptions) => AwsCredentialIdentityProvider;
|
|
@@ -3,4 +3,4 @@ import type { FromHttpOptions } from "./fromHttpTypes";
|
|
|
3
3
|
/**
|
|
4
4
|
* Creates a provider that gets credentials via HTTP request.
|
|
5
5
|
*/
|
|
6
|
-
export declare const fromHttp: (options
|
|
6
|
+
export declare const fromHttp: (options?: FromHttpOptions) => AwsCredentialIdentityProvider;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AwsCredentialIdentity } from "@aws-sdk/types";
|
|
2
2
|
import { HttpRequest } from "@smithy/protocol-http";
|
|
3
|
-
import { HttpResponse } from "@smithy/types";
|
|
3
|
+
import { HttpResponse, Logger } from "@smithy/types";
|
|
4
4
|
/**
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
@@ -8,4 +8,4 @@ export declare function createGetRequest(url: URL): HttpRequest;
|
|
|
8
8
|
/**
|
|
9
9
|
* @internal
|
|
10
10
|
*/
|
|
11
|
-
export declare function getCredentials(response: HttpResponse): Promise<AwsCredentialIdentity>;
|
|
11
|
+
export declare function getCredentials(response: HttpResponse, logger?: Logger): Promise<AwsCredentialIdentity>;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { Logger } from "@smithy/types";
|
|
2
|
+
export declare const checkUrl: (url: URL, logger?: Logger) => void;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { AwsCredentialIdentity } from "@aws-sdk/types";
|
|
2
2
|
import { HttpRequest } from "@smithy/protocol-http";
|
|
3
|
-
import { HttpResponse } from "@smithy/types";
|
|
3
|
+
import { HttpResponse, Logger } from "@smithy/types";
|
|
4
4
|
export declare function createGetRequest(url: URL): HttpRequest;
|
|
5
5
|
export declare function getCredentials(
|
|
6
|
-
response: HttpResponse
|
|
6
|
+
response: HttpResponse,
|
|
7
|
+
logger?: Logger
|
|
7
8
|
): Promise<AwsCredentialIdentity>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/credential-provider-http",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.596.0",
|
|
4
4
|
"description": "AWS credential provider for containers and HTTP sources",
|
|
5
5
|
"main": "./dist-cjs/index.js",
|
|
6
6
|
"module": "./dist-es/index.js",
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"@aws-sdk/types": "3.577.0",
|
|
30
30
|
"@smithy/fetch-http-handler": "^3.0.1",
|
|
31
31
|
"@smithy/node-http-handler": "^3.0.0",
|
|
32
|
-
"@smithy/property-provider": "^3.
|
|
32
|
+
"@smithy/property-provider": "^3.1.0",
|
|
33
33
|
"@smithy/protocol-http": "^4.0.0",
|
|
34
|
-
"@smithy/smithy-client": "^3.
|
|
34
|
+
"@smithy/smithy-client": "^3.1.1",
|
|
35
35
|
"@smithy/types": "^3.0.0",
|
|
36
36
|
"@smithy/util-stream": "^3.0.1",
|
|
37
37
|
"tslib": "^2.6.2"
|