@jjrawlins/cdk-ami-builder 0.0.48 → 0.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.
- package/.jsii +11 -11
- package/cdk-ami-builder/jsii/jsii.go +2 -2
- package/cdk-ami-builder/version +1 -1
- package/lib/ImagePipeline/ImagePipeline.js +1 -1
- package/lib/Lambdas/CheckStateMachineStatus/CheckStateMachineStatus-function.js +1 -1
- package/lib/Lambdas/StartStateMachine/StartStateMachine-function.js +1 -1
- package/node_modules/@aws-sdk/client-ec2/dist-cjs/index.js +88090 -87044
- package/node_modules/@aws-sdk/client-ec2/package.json +6 -6
- package/node_modules/@aws-sdk/client-ecs/dist-cjs/index.js +4836 -5148
- package/node_modules/@aws-sdk/client-ecs/package.json +6 -6
- package/node_modules/@aws-sdk/client-kms/dist-cjs/index.js +3963 -4397
- package/node_modules/@aws-sdk/client-kms/package.json +6 -6
- package/node_modules/@aws-sdk/client-s3/dist-cjs/index.js +11771 -11916
- package/node_modules/@aws-sdk/client-s3/package.json +10 -10
- package/node_modules/@aws-sdk/client-secrets-manager/dist-cjs/index.js +1582 -1740
- package/node_modules/@aws-sdk/client-secrets-manager/package.json +6 -6
- package/node_modules/@aws-sdk/client-sfn/dist-cjs/index.js +3292 -3664
- package/node_modules/@aws-sdk/client-sfn/package.json +6 -6
- package/node_modules/@aws-sdk/client-sns/dist-cjs/index.js +4326 -4601
- package/node_modules/@aws-sdk/client-sns/package.json +6 -6
- package/node_modules/@aws-sdk/client-sqs/dist-cjs/index.js +2114 -2361
- package/node_modules/@aws-sdk/client-sqs/package.json +6 -6
- package/node_modules/@aws-sdk/client-ssm/dist-cjs/index.js +12508 -13696
- package/node_modules/@aws-sdk/client-ssm/package.json +6 -6
- package/node_modules/@aws-sdk/client-sso/dist-cjs/index.js +478 -596
- package/node_modules/@aws-sdk/client-sso/package.json +5 -5
- package/node_modules/@aws-sdk/core/dist-cjs/index.js +1969 -6
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/account-id-endpoint/index.js +48 -88
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +35 -74
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +273 -365
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +1581 -1863
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +2 -2
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +2 -2
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +4 -4
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +4 -4
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +3 -3
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/QueryShapeSerializer.js +4 -4
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +2 -2
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js +4 -4
- package/node_modules/@aws-sdk/core/dist-types/submodules/account-id-endpoint/AccountIdEndpointModeConfigResolver.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/ConfigurableSerdeContext.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonCodec.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeDeserializer.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeSerializer.d.ts +2 -2
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/query/QuerySerializerSettings.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/xml/XmlCodec.d.ts +1 -1
- package/node_modules/@aws-sdk/core/package.json +1 -1
- package/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js +38 -73
- package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js +194 -259
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +8 -8
- package/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +72 -132
- package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
- package/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js +71 -107
- package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js +176 -249
- package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/loadSso-CVy8iqsZ.js +14 -0
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
- package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js +16 -25
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js +381 -478
- package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js +511 -641
- package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js +170 -203
- package/node_modules/@aws-sdk/middleware-user-agent/package.json +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/index.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +583 -858
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +795 -928
- package/node_modules/@aws-sdk/nested-clients/package.json +5 -5
- package/node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js +108 -137
- package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +2 -2
- package/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +147 -222
- package/node_modules/@aws-sdk/token-providers/package.json +3 -3
- package/node_modules/@aws-sdk/util-user-agent-browser/README.md +22 -3
- package/node_modules/@aws-sdk/util-user-agent-browser/dist-cjs/createUserAgentStringParsingProvider.js +57 -0
- package/node_modules/@aws-sdk/util-user-agent-browser/dist-cjs/index.js +39 -8
- package/node_modules/@aws-sdk/util-user-agent-browser/dist-es/createUserAgentStringParsingProvider.js +20 -0
- package/node_modules/@aws-sdk/util-user-agent-browser/dist-es/index.js +37 -6
- package/node_modules/@aws-sdk/util-user-agent-browser/dist-types/createUserAgentStringParsingProvider.d.ts +14 -0
- package/node_modules/@aws-sdk/util-user-agent-browser/dist-types/index.d.ts +14 -4
- package/node_modules/@aws-sdk/util-user-agent-browser/dist-types/index.native.d.ts +4 -3
- package/node_modules/@aws-sdk/util-user-agent-browser/dist-types/ts3.4/createUserAgentStringParsingProvider.d.ts +9 -0
- package/node_modules/@aws-sdk/util-user-agent-browser/dist-types/ts3.4/index.d.ts +5 -0
- package/node_modules/@aws-sdk/util-user-agent-browser/package.json +1 -1
- package/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js +50 -94
- package/node_modules/@aws-sdk/util-user-agent-node/dist-types/crt-availability.d.ts +1 -2
- package/node_modules/@aws-sdk/util-user-agent-node/dist-types/defaultUserAgent.d.ts +10 -5
- package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
- package/node_modules/@smithy/chunked-blob-reader-native/package.json +2 -2
- package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +1 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +5 -3
- package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +32 -30
- package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +133 -202
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +126 -34
- package/node_modules/@smithy/core/dist-es/submodules/cbor/CborCodec.js +2 -2
- package/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js +5 -3
- package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +4 -4
- package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +3 -3
- package/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +2 -2
- package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/FromStringShapeDeserializer.js +19 -17
- package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/ToStringShapeSerializer.js +4 -4
- package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/determineTimestampFormat.js +5 -6
- package/node_modules/@smithy/core/dist-es/submodules/schema/index.js +1 -0
- package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js +82 -176
- package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/translateTraits.js +22 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/index.js +1 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/schema-serde-lib/schema-date-utils.js +110 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/value/NumericValue.js +4 -26
- package/node_modules/@smithy/core/dist-types/submodules/schema/index.d.ts +1 -0
- package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/NormalizedSchema.d.ts +5 -24
- package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/sentinels.d.ts +2 -0
- package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/translateTraits.d.ts +7 -0
- package/node_modules/@smithy/core/dist-types/submodules/serde/index.d.ts +1 -0
- package/node_modules/@smithy/core/dist-types/submodules/serde/schema-serde-lib/schema-date-utils.d.ts +47 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/index.d.ts +1 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/NormalizedSchema.d.ts +5 -24
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/sentinels.d.ts +2 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/translateTraits.d.ts +7 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/index.d.ts +1 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/schema-serde-lib/schema-date-utils.d.ts +47 -0
- package/node_modules/@smithy/core/package.json +3 -3
- package/node_modules/@smithy/fetch-http-handler/package.json +2 -2
- package/node_modules/@smithy/hash-blob-browser/package.json +2 -2
- package/node_modules/@smithy/middleware-endpoint/package.json +2 -2
- package/node_modules/@smithy/middleware-retry/package.json +2 -2
- package/node_modules/@smithy/smithy-client/package.json +4 -4
- package/node_modules/@smithy/util-base64/dist-cjs/constants.browser.js +9 -32
- package/node_modules/@smithy/util-base64/dist-es/constants.browser.js +9 -28
- package/node_modules/@smithy/util-base64/dist-types/constants.browser.d.ts +5 -6
- package/node_modules/@smithy/util-base64/dist-types/ts3.4/constants.browser.d.ts +5 -6
- package/node_modules/@smithy/util-base64/package.json +1 -1
- package/node_modules/@smithy/util-body-length-node/dist-cjs/index.js +8 -6
- package/node_modules/@smithy/util-body-length-node/dist-es/calculateBodyLength.js +8 -6
- package/node_modules/@smithy/util-body-length-node/package.json +1 -1
- package/node_modules/@smithy/util-defaults-mode-browser/dist-cjs/resolveDefaultsModeConfig.js +11 -9
- package/node_modules/@smithy/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js +11 -8
- package/node_modules/@smithy/util-defaults-mode-browser/package.json +2 -3
- package/node_modules/@smithy/util-defaults-mode-node/package.json +2 -2
- package/node_modules/@smithy/util-stream/dist-cjs/index.js +3 -5
- package/node_modules/@smithy/util-stream/dist-es/blob/Uint8ArrayBlobAdapter.js +3 -5
- package/node_modules/@smithy/util-stream/dist-types/blob/Uint8ArrayBlobAdapter.d.ts +1 -0
- package/node_modules/@smithy/util-stream/dist-types/ts3.4/blob/Uint8ArrayBlobAdapter.d.ts +1 -0
- package/node_modules/@smithy/util-stream/package.json +3 -3
- package/package.json +11 -11
|
@@ -1,525 +1,428 @@
|
|
|
1
|
-
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
'use strict';
|
|
20
2
|
|
|
21
|
-
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
DEFAULT_REQUEST_CHECKSUM_CALCULATION: () => DEFAULT_REQUEST_CHECKSUM_CALCULATION,
|
|
30
|
-
DEFAULT_RESPONSE_CHECKSUM_VALIDATION: () => DEFAULT_RESPONSE_CHECKSUM_VALIDATION,
|
|
31
|
-
ENV_REQUEST_CHECKSUM_CALCULATION: () => ENV_REQUEST_CHECKSUM_CALCULATION,
|
|
32
|
-
ENV_RESPONSE_CHECKSUM_VALIDATION: () => ENV_RESPONSE_CHECKSUM_VALIDATION,
|
|
33
|
-
NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS: () => NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS,
|
|
34
|
-
NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS: () => NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS,
|
|
35
|
-
RequestChecksumCalculation: () => RequestChecksumCalculation,
|
|
36
|
-
ResponseChecksumValidation: () => ResponseChecksumValidation,
|
|
37
|
-
crc64NvmeCrtContainer: () => crc64NvmeCrtContainer,
|
|
38
|
-
flexibleChecksumsMiddleware: () => flexibleChecksumsMiddleware,
|
|
39
|
-
flexibleChecksumsMiddlewareOptions: () => flexibleChecksumsMiddlewareOptions,
|
|
40
|
-
getFlexibleChecksumsPlugin: () => getFlexibleChecksumsPlugin,
|
|
41
|
-
resolveFlexibleChecksumsConfig: () => resolveFlexibleChecksumsConfig
|
|
42
|
-
});
|
|
43
|
-
module.exports = __toCommonJS(index_exports);
|
|
3
|
+
var core = require('@aws-sdk/core');
|
|
4
|
+
var protocolHttp = require('@smithy/protocol-http');
|
|
5
|
+
var utilStream = require('@smithy/util-stream');
|
|
6
|
+
var isArrayBuffer = require('@smithy/is-array-buffer');
|
|
7
|
+
var crc32c = require('@aws-crypto/crc32c');
|
|
8
|
+
var getCrc32ChecksumAlgorithmFunction = require('./getCrc32ChecksumAlgorithmFunction');
|
|
9
|
+
var utilUtf8 = require('@smithy/util-utf8');
|
|
10
|
+
var utilMiddleware = require('@smithy/util-middleware');
|
|
44
11
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
* When set, a checksum will be calculated for all request payloads of operations
|
|
49
|
-
* modeled with the {@link httpChecksum} trait where `requestChecksumRequired` is `true`
|
|
50
|
-
* AND/OR a `requestAlgorithmMember` is modeled.
|
|
51
|
-
* {@link https://smithy.io/2.0/aws/aws-core.html#aws-protocols-httpchecksum-trait httpChecksum}
|
|
52
|
-
*/
|
|
53
|
-
WHEN_SUPPORTED: "WHEN_SUPPORTED",
|
|
54
|
-
/**
|
|
55
|
-
* When set, a checksum will only be calculated for request payloads of operations
|
|
56
|
-
* modeled with the {@link httpChecksum} trait where `requestChecksumRequired` is `true`
|
|
57
|
-
* OR where a `requestAlgorithmMember` is modeled and the user sets it.
|
|
58
|
-
* {@link https://smithy.io/2.0/aws/aws-core.html#aws-protocols-httpchecksum-trait httpChecksum}
|
|
59
|
-
*/
|
|
60
|
-
WHEN_REQUIRED: "WHEN_REQUIRED"
|
|
12
|
+
const RequestChecksumCalculation = {
|
|
13
|
+
WHEN_SUPPORTED: "WHEN_SUPPORTED",
|
|
14
|
+
WHEN_REQUIRED: "WHEN_REQUIRED",
|
|
61
15
|
};
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
* modeled with the {@link httpChecksum} trait where `responseAlgorithms` is modeled,
|
|
67
|
-
* except when no modeled checksum algorithms are supported by an SDK.
|
|
68
|
-
* {@link https://smithy.io/2.0/aws/aws-core.html#aws-protocols-httpchecksum-trait httpChecksum}
|
|
69
|
-
*/
|
|
70
|
-
WHEN_SUPPORTED: "WHEN_SUPPORTED",
|
|
71
|
-
/**
|
|
72
|
-
* When set, checksum validation MUST NOT be performed on response payloads of operations UNLESS
|
|
73
|
-
* the SDK supports the modeled checksum algorithms AND the user has set the `requestValidationModeMember` to `ENABLED`.
|
|
74
|
-
* It is currently impossible to model an operation as requiring a response checksum,
|
|
75
|
-
* but this setting leaves the door open for future updates.
|
|
76
|
-
*/
|
|
77
|
-
WHEN_REQUIRED: "WHEN_REQUIRED"
|
|
16
|
+
const DEFAULT_REQUEST_CHECKSUM_CALCULATION = RequestChecksumCalculation.WHEN_SUPPORTED;
|
|
17
|
+
const ResponseChecksumValidation = {
|
|
18
|
+
WHEN_SUPPORTED: "WHEN_SUPPORTED",
|
|
19
|
+
WHEN_REQUIRED: "WHEN_REQUIRED",
|
|
78
20
|
};
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
})(ChecksumAlgorithm || {});
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
})(ChecksumLocation || {});
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
// src/stringUnionSelector.ts
|
|
97
|
-
var stringUnionSelector = /* @__PURE__ */ __name((obj, key, union, type) => {
|
|
98
|
-
if (!(key in obj)) return void 0;
|
|
99
|
-
const value = obj[key].toUpperCase();
|
|
100
|
-
if (!Object.values(union).includes(value)) {
|
|
101
|
-
throw new TypeError(`Cannot load ${type} '${key}'. Expected one of ${Object.values(union)}, got '${obj[key]}'.`);
|
|
102
|
-
}
|
|
103
|
-
return value;
|
|
104
|
-
}, "stringUnionSelector");
|
|
21
|
+
const DEFAULT_RESPONSE_CHECKSUM_VALIDATION = RequestChecksumCalculation.WHEN_SUPPORTED;
|
|
22
|
+
exports.ChecksumAlgorithm = void 0;
|
|
23
|
+
(function (ChecksumAlgorithm) {
|
|
24
|
+
ChecksumAlgorithm["MD5"] = "MD5";
|
|
25
|
+
ChecksumAlgorithm["CRC32"] = "CRC32";
|
|
26
|
+
ChecksumAlgorithm["CRC32C"] = "CRC32C";
|
|
27
|
+
ChecksumAlgorithm["CRC64NVME"] = "CRC64NVME";
|
|
28
|
+
ChecksumAlgorithm["SHA1"] = "SHA1";
|
|
29
|
+
ChecksumAlgorithm["SHA256"] = "SHA256";
|
|
30
|
+
})(exports.ChecksumAlgorithm || (exports.ChecksumAlgorithm = {}));
|
|
31
|
+
exports.ChecksumLocation = void 0;
|
|
32
|
+
(function (ChecksumLocation) {
|
|
33
|
+
ChecksumLocation["HEADER"] = "header";
|
|
34
|
+
ChecksumLocation["TRAILER"] = "trailer";
|
|
35
|
+
})(exports.ChecksumLocation || (exports.ChecksumLocation = {}));
|
|
36
|
+
const DEFAULT_CHECKSUM_ALGORITHM = exports.ChecksumAlgorithm.CRC32;
|
|
105
37
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
38
|
+
var SelectorType;
|
|
39
|
+
(function (SelectorType) {
|
|
40
|
+
SelectorType["ENV"] = "env";
|
|
41
|
+
SelectorType["CONFIG"] = "shared config entry";
|
|
42
|
+
})(SelectorType || (SelectorType = {}));
|
|
43
|
+
const stringUnionSelector = (obj, key, union, type) => {
|
|
44
|
+
if (!(key in obj))
|
|
45
|
+
return undefined;
|
|
46
|
+
const value = obj[key].toUpperCase();
|
|
47
|
+
if (!Object.values(union).includes(value)) {
|
|
48
|
+
throw new TypeError(`Cannot load ${type} '${key}'. Expected one of ${Object.values(union)}, got '${obj[key]}'.`);
|
|
49
|
+
}
|
|
50
|
+
return value;
|
|
113
51
|
};
|
|
114
52
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
default: DEFAULT_RESPONSE_CHECKSUM_VALIDATION
|
|
53
|
+
const ENV_REQUEST_CHECKSUM_CALCULATION = "AWS_REQUEST_CHECKSUM_CALCULATION";
|
|
54
|
+
const CONFIG_REQUEST_CHECKSUM_CALCULATION = "request_checksum_calculation";
|
|
55
|
+
const NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS = {
|
|
56
|
+
environmentVariableSelector: (env) => stringUnionSelector(env, ENV_REQUEST_CHECKSUM_CALCULATION, RequestChecksumCalculation, SelectorType.ENV),
|
|
57
|
+
configFileSelector: (profile) => stringUnionSelector(profile, CONFIG_REQUEST_CHECKSUM_CALCULATION, RequestChecksumCalculation, SelectorType.CONFIG),
|
|
58
|
+
default: DEFAULT_REQUEST_CHECKSUM_CALCULATION,
|
|
122
59
|
};
|
|
123
60
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
61
|
+
const ENV_RESPONSE_CHECKSUM_VALIDATION = "AWS_RESPONSE_CHECKSUM_VALIDATION";
|
|
62
|
+
const CONFIG_RESPONSE_CHECKSUM_VALIDATION = "response_checksum_validation";
|
|
63
|
+
const NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS = {
|
|
64
|
+
environmentVariableSelector: (env) => stringUnionSelector(env, ENV_RESPONSE_CHECKSUM_VALIDATION, ResponseChecksumValidation, SelectorType.ENV),
|
|
65
|
+
configFileSelector: (profile) => stringUnionSelector(profile, CONFIG_RESPONSE_CHECKSUM_VALIDATION, ResponseChecksumValidation, SelectorType.CONFIG),
|
|
66
|
+
default: DEFAULT_RESPONSE_CHECKSUM_VALIDATION,
|
|
127
67
|
};
|
|
128
68
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
var import_util_stream = require("@smithy/util-stream");
|
|
69
|
+
const crc64NvmeCrtContainer = {
|
|
70
|
+
CrtCrc64Nvme: null,
|
|
71
|
+
};
|
|
133
72
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
"SHA256" /* SHA256 */
|
|
73
|
+
const CLIENT_SUPPORTED_ALGORITHMS = [
|
|
74
|
+
exports.ChecksumAlgorithm.CRC32,
|
|
75
|
+
exports.ChecksumAlgorithm.CRC32C,
|
|
76
|
+
exports.ChecksumAlgorithm.CRC64NVME,
|
|
77
|
+
exports.ChecksumAlgorithm.SHA1,
|
|
78
|
+
exports.ChecksumAlgorithm.SHA256,
|
|
141
79
|
];
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
80
|
+
const PRIORITY_ORDER_ALGORITHMS = [
|
|
81
|
+
exports.ChecksumAlgorithm.SHA256,
|
|
82
|
+
exports.ChecksumAlgorithm.SHA1,
|
|
83
|
+
exports.ChecksumAlgorithm.CRC32,
|
|
84
|
+
exports.ChecksumAlgorithm.CRC32C,
|
|
85
|
+
exports.ChecksumAlgorithm.CRC64NVME,
|
|
148
86
|
];
|
|
149
87
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
}
|
|
88
|
+
const getChecksumAlgorithmForRequest = (input, { requestChecksumRequired, requestAlgorithmMember, requestChecksumCalculation }) => {
|
|
89
|
+
if (!requestAlgorithmMember) {
|
|
90
|
+
return requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired
|
|
91
|
+
? DEFAULT_CHECKSUM_ALGORITHM
|
|
92
|
+
: undefined;
|
|
93
|
+
}
|
|
94
|
+
if (!input[requestAlgorithmMember]) {
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
const checksumAlgorithm = input[requestAlgorithmMember];
|
|
98
|
+
if (!CLIENT_SUPPORTED_ALGORITHMS.includes(checksumAlgorithm)) {
|
|
99
|
+
throw new Error(`The checksum algorithm "${checksumAlgorithm}" is not supported by the client.` +
|
|
100
|
+
` Select one of ${CLIENT_SUPPORTED_ALGORITHMS}.`);
|
|
101
|
+
}
|
|
102
|
+
return checksumAlgorithm;
|
|
103
|
+
};
|
|
166
104
|
|
|
167
|
-
|
|
168
|
-
var getChecksumLocationName = /* @__PURE__ */ __name((algorithm) => algorithm === "MD5" /* MD5 */ ? "content-md5" : `x-amz-checksum-${algorithm.toLowerCase()}`, "getChecksumLocationName");
|
|
105
|
+
const getChecksumLocationName = (algorithm) => algorithm === exports.ChecksumAlgorithm.MD5 ? "content-md5" : `x-amz-checksum-${algorithm.toLowerCase()}`;
|
|
169
106
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
107
|
+
const hasHeader = (header, headers) => {
|
|
108
|
+
const soughtHeader = header.toLowerCase();
|
|
109
|
+
for (const headerName of Object.keys(headers)) {
|
|
110
|
+
if (soughtHeader === headerName.toLowerCase()) {
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
176
113
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
}, "hasHeader");
|
|
114
|
+
return false;
|
|
115
|
+
};
|
|
180
116
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
117
|
+
const hasHeaderWithPrefix = (headerPrefix, headers) => {
|
|
118
|
+
const soughtHeaderPrefix = headerPrefix.toLowerCase();
|
|
119
|
+
for (const headerName of Object.keys(headers)) {
|
|
120
|
+
if (headerName.toLowerCase().startsWith(soughtHeaderPrefix)) {
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
187
123
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
}, "hasHeaderWithPrefix");
|
|
124
|
+
return false;
|
|
125
|
+
};
|
|
191
126
|
|
|
192
|
-
|
|
193
|
-
var import_is_array_buffer = require("@smithy/is-array-buffer");
|
|
194
|
-
var isStreaming = /* @__PURE__ */ __name((body) => body !== void 0 && typeof body !== "string" && !ArrayBuffer.isView(body) && !(0, import_is_array_buffer.isArrayBuffer)(body), "isStreaming");
|
|
127
|
+
const isStreaming = (body) => body !== undefined && typeof body !== "string" && !ArrayBuffer.isView(body) && !isArrayBuffer.isArrayBuffer(body);
|
|
195
128
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
throw new Error(`Unsupported checksum algorithm: ${checksumAlgorithm}`);
|
|
222
|
-
}
|
|
223
|
-
}, "selectChecksumAlgorithmFunction");
|
|
129
|
+
const selectChecksumAlgorithmFunction = (checksumAlgorithm, config) => {
|
|
130
|
+
switch (checksumAlgorithm) {
|
|
131
|
+
case exports.ChecksumAlgorithm.MD5:
|
|
132
|
+
return config.md5;
|
|
133
|
+
case exports.ChecksumAlgorithm.CRC32:
|
|
134
|
+
return getCrc32ChecksumAlgorithmFunction.getCrc32ChecksumAlgorithmFunction();
|
|
135
|
+
case exports.ChecksumAlgorithm.CRC32C:
|
|
136
|
+
return crc32c.AwsCrc32c;
|
|
137
|
+
case exports.ChecksumAlgorithm.CRC64NVME:
|
|
138
|
+
if (typeof crc64NvmeCrtContainer.CrtCrc64Nvme !== "function") {
|
|
139
|
+
throw new Error(`Please check whether you have installed the "@aws-sdk/crc64-nvme-crt" package explicitly. \n` +
|
|
140
|
+
`You must also register the package by calling [require("@aws-sdk/crc64-nvme-crt");] ` +
|
|
141
|
+
`or an ESM equivalent such as [import "@aws-sdk/crc64-nvme-crt";]. \n` +
|
|
142
|
+
"For more information please go to " +
|
|
143
|
+
"https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt");
|
|
144
|
+
}
|
|
145
|
+
return crc64NvmeCrtContainer.CrtCrc64Nvme;
|
|
146
|
+
case exports.ChecksumAlgorithm.SHA1:
|
|
147
|
+
return config.sha1;
|
|
148
|
+
case exports.ChecksumAlgorithm.SHA256:
|
|
149
|
+
return config.sha256;
|
|
150
|
+
default:
|
|
151
|
+
throw new Error(`Unsupported checksum algorithm: ${checksumAlgorithm}`);
|
|
152
|
+
}
|
|
153
|
+
};
|
|
224
154
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
return hash.digest();
|
|
231
|
-
}, "stringHasher");
|
|
155
|
+
const stringHasher = (checksumAlgorithmFn, body) => {
|
|
156
|
+
const hash = new checksumAlgorithmFn();
|
|
157
|
+
hash.update(utilUtf8.toUint8Array(body || ""));
|
|
158
|
+
return hash.digest();
|
|
159
|
+
};
|
|
232
160
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
override: true
|
|
161
|
+
const flexibleChecksumsMiddlewareOptions = {
|
|
162
|
+
name: "flexibleChecksumsMiddleware",
|
|
163
|
+
step: "build",
|
|
164
|
+
tags: ["BODY_CHECKSUM"],
|
|
165
|
+
override: true,
|
|
239
166
|
};
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
}
|
|
244
|
-
if (hasHeaderWithPrefix("x-amz-checksum-", args.request.headers)) {
|
|
245
|
-
return next(args);
|
|
246
|
-
}
|
|
247
|
-
const { request, input } = args;
|
|
248
|
-
const { body: requestBody, headers } = request;
|
|
249
|
-
const { base64Encoder, streamHasher } = config;
|
|
250
|
-
const { requestChecksumRequired, requestAlgorithmMember } = middlewareConfig;
|
|
251
|
-
const requestChecksumCalculation = await config.requestChecksumCalculation();
|
|
252
|
-
const requestAlgorithmMemberName = requestAlgorithmMember?.name;
|
|
253
|
-
const requestAlgorithmMemberHttpHeader = requestAlgorithmMember?.httpHeader;
|
|
254
|
-
if (requestAlgorithmMemberName && !input[requestAlgorithmMemberName]) {
|
|
255
|
-
if (requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired) {
|
|
256
|
-
input[requestAlgorithmMemberName] = DEFAULT_CHECKSUM_ALGORITHM;
|
|
257
|
-
if (requestAlgorithmMemberHttpHeader) {
|
|
258
|
-
headers[requestAlgorithmMemberHttpHeader] = DEFAULT_CHECKSUM_ALGORITHM;
|
|
259
|
-
}
|
|
167
|
+
const flexibleChecksumsMiddleware = (config, middlewareConfig) => (next, context) => async (args) => {
|
|
168
|
+
if (!protocolHttp.HttpRequest.isInstance(args.request)) {
|
|
169
|
+
return next(args);
|
|
260
170
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
requestChecksumRequired,
|
|
264
|
-
requestAlgorithmMember: requestAlgorithmMember?.name,
|
|
265
|
-
requestChecksumCalculation
|
|
266
|
-
});
|
|
267
|
-
let updatedBody = requestBody;
|
|
268
|
-
let updatedHeaders = headers;
|
|
269
|
-
if (checksumAlgorithm) {
|
|
270
|
-
switch (checksumAlgorithm) {
|
|
271
|
-
case "CRC32" /* CRC32 */:
|
|
272
|
-
(0, import_core.setFeature)(context, "FLEXIBLE_CHECKSUMS_REQ_CRC32", "U");
|
|
273
|
-
break;
|
|
274
|
-
case "CRC32C" /* CRC32C */:
|
|
275
|
-
(0, import_core.setFeature)(context, "FLEXIBLE_CHECKSUMS_REQ_CRC32C", "V");
|
|
276
|
-
break;
|
|
277
|
-
case "CRC64NVME" /* CRC64NVME */:
|
|
278
|
-
(0, import_core.setFeature)(context, "FLEXIBLE_CHECKSUMS_REQ_CRC64", "W");
|
|
279
|
-
break;
|
|
280
|
-
case "SHA1" /* SHA1 */:
|
|
281
|
-
(0, import_core.setFeature)(context, "FLEXIBLE_CHECKSUMS_REQ_SHA1", "X");
|
|
282
|
-
break;
|
|
283
|
-
case "SHA256" /* SHA256 */:
|
|
284
|
-
(0, import_core.setFeature)(context, "FLEXIBLE_CHECKSUMS_REQ_SHA256", "Y");
|
|
285
|
-
break;
|
|
171
|
+
if (hasHeaderWithPrefix("x-amz-checksum-", args.request.headers)) {
|
|
172
|
+
return next(args);
|
|
286
173
|
}
|
|
287
|
-
const
|
|
288
|
-
const
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
174
|
+
const { request, input } = args;
|
|
175
|
+
const { body: requestBody, headers } = request;
|
|
176
|
+
const { base64Encoder, streamHasher } = config;
|
|
177
|
+
const { requestChecksumRequired, requestAlgorithmMember } = middlewareConfig;
|
|
178
|
+
const requestChecksumCalculation = await config.requestChecksumCalculation();
|
|
179
|
+
const requestAlgorithmMemberName = requestAlgorithmMember?.name;
|
|
180
|
+
const requestAlgorithmMemberHttpHeader = requestAlgorithmMember?.httpHeader;
|
|
181
|
+
if (requestAlgorithmMemberName && !input[requestAlgorithmMemberName]) {
|
|
182
|
+
if (requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired) {
|
|
183
|
+
input[requestAlgorithmMemberName] = DEFAULT_CHECKSUM_ALGORITHM;
|
|
184
|
+
if (requestAlgorithmMemberHttpHeader) {
|
|
185
|
+
headers[requestAlgorithmMemberHttpHeader] = DEFAULT_CHECKSUM_ALGORITHM;
|
|
186
|
+
}
|
|
299
187
|
}
|
|
300
|
-
);
|
|
301
|
-
updatedHeaders = {
|
|
302
|
-
...headers,
|
|
303
|
-
"content-encoding": headers["content-encoding"] ? `${headers["content-encoding"]},aws-chunked` : "aws-chunked",
|
|
304
|
-
"transfer-encoding": "chunked",
|
|
305
|
-
"x-amz-decoded-content-length": headers["content-length"],
|
|
306
|
-
"x-amz-content-sha256": "STREAMING-UNSIGNED-PAYLOAD-TRAILER",
|
|
307
|
-
"x-amz-trailer": checksumLocationName
|
|
308
|
-
};
|
|
309
|
-
delete updatedHeaders["content-length"];
|
|
310
|
-
} else if (!hasHeader(checksumLocationName, headers)) {
|
|
311
|
-
const rawChecksum = await stringHasher(checksumAlgorithmFn, requestBody);
|
|
312
|
-
updatedHeaders = {
|
|
313
|
-
...headers,
|
|
314
|
-
[checksumLocationName]: base64Encoder(rawChecksum)
|
|
315
|
-
};
|
|
316
188
|
}
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
189
|
+
const checksumAlgorithm = getChecksumAlgorithmForRequest(input, {
|
|
190
|
+
requestChecksumRequired,
|
|
191
|
+
requestAlgorithmMember: requestAlgorithmMember?.name,
|
|
192
|
+
requestChecksumCalculation,
|
|
193
|
+
});
|
|
194
|
+
let updatedBody = requestBody;
|
|
195
|
+
let updatedHeaders = headers;
|
|
196
|
+
if (checksumAlgorithm) {
|
|
197
|
+
switch (checksumAlgorithm) {
|
|
198
|
+
case exports.ChecksumAlgorithm.CRC32:
|
|
199
|
+
core.setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_CRC32", "U");
|
|
200
|
+
break;
|
|
201
|
+
case exports.ChecksumAlgorithm.CRC32C:
|
|
202
|
+
core.setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_CRC32C", "V");
|
|
203
|
+
break;
|
|
204
|
+
case exports.ChecksumAlgorithm.CRC64NVME:
|
|
205
|
+
core.setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_CRC64", "W");
|
|
206
|
+
break;
|
|
207
|
+
case exports.ChecksumAlgorithm.SHA1:
|
|
208
|
+
core.setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_SHA1", "X");
|
|
209
|
+
break;
|
|
210
|
+
case exports.ChecksumAlgorithm.SHA256:
|
|
211
|
+
core.setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_SHA256", "Y");
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
const checksumLocationName = getChecksumLocationName(checksumAlgorithm);
|
|
215
|
+
const checksumAlgorithmFn = selectChecksumAlgorithmFunction(checksumAlgorithm, config);
|
|
216
|
+
if (isStreaming(requestBody)) {
|
|
217
|
+
const { getAwsChunkedEncodingStream, bodyLengthChecker } = config;
|
|
218
|
+
updatedBody = getAwsChunkedEncodingStream(typeof config.requestStreamBufferSize === "number" && config.requestStreamBufferSize >= 8 * 1024
|
|
219
|
+
? utilStream.createBufferedReadable(requestBody, config.requestStreamBufferSize, context.logger)
|
|
220
|
+
: requestBody, {
|
|
221
|
+
base64Encoder,
|
|
222
|
+
bodyLengthChecker,
|
|
223
|
+
checksumLocationName,
|
|
224
|
+
checksumAlgorithmFn,
|
|
225
|
+
streamHasher,
|
|
226
|
+
});
|
|
227
|
+
updatedHeaders = {
|
|
228
|
+
...headers,
|
|
229
|
+
"content-encoding": headers["content-encoding"]
|
|
230
|
+
? `${headers["content-encoding"]},aws-chunked`
|
|
231
|
+
: "aws-chunked",
|
|
232
|
+
"transfer-encoding": "chunked",
|
|
233
|
+
"x-amz-decoded-content-length": headers["content-length"],
|
|
234
|
+
"x-amz-content-sha256": "STREAMING-UNSIGNED-PAYLOAD-TRAILER",
|
|
235
|
+
"x-amz-trailer": checksumLocationName,
|
|
236
|
+
};
|
|
237
|
+
delete updatedHeaders["content-length"];
|
|
238
|
+
}
|
|
239
|
+
else if (!hasHeader(checksumLocationName, headers)) {
|
|
240
|
+
const rawChecksum = await stringHasher(checksumAlgorithmFn, requestBody);
|
|
241
|
+
updatedHeaders = {
|
|
242
|
+
...headers,
|
|
243
|
+
[checksumLocationName]: base64Encoder(rawChecksum),
|
|
244
|
+
};
|
|
245
|
+
}
|
|
324
246
|
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
247
|
+
const result = await next({
|
|
248
|
+
...args,
|
|
249
|
+
request: {
|
|
250
|
+
...request,
|
|
251
|
+
headers: updatedHeaders,
|
|
252
|
+
body: updatedBody,
|
|
253
|
+
},
|
|
254
|
+
});
|
|
255
|
+
return result;
|
|
256
|
+
};
|
|
330
257
|
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
258
|
+
const flexibleChecksumsInputMiddlewareOptions = {
|
|
259
|
+
name: "flexibleChecksumsInputMiddleware",
|
|
260
|
+
toMiddleware: "serializerMiddleware",
|
|
261
|
+
relation: "before",
|
|
262
|
+
tags: ["BODY_CHECKSUM"],
|
|
263
|
+
override: true,
|
|
337
264
|
};
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
}
|
|
351
|
-
switch (responseChecksumValidation) {
|
|
352
|
-
case ResponseChecksumValidation.WHEN_REQUIRED:
|
|
353
|
-
(0, import_core.setFeature)(context, "FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED", "c");
|
|
354
|
-
break;
|
|
355
|
-
case ResponseChecksumValidation.WHEN_SUPPORTED:
|
|
356
|
-
(0, import_core.setFeature)(context, "FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED", "b");
|
|
357
|
-
break;
|
|
358
|
-
}
|
|
359
|
-
if (requestValidationModeMember && !input[requestValidationModeMember]) {
|
|
360
|
-
if (responseChecksumValidation === ResponseChecksumValidation.WHEN_SUPPORTED) {
|
|
361
|
-
input[requestValidationModeMember] = "ENABLED";
|
|
265
|
+
const flexibleChecksumsInputMiddleware = (config, middlewareConfig) => (next, context) => async (args) => {
|
|
266
|
+
const input = args.input;
|
|
267
|
+
const { requestValidationModeMember } = middlewareConfig;
|
|
268
|
+
const requestChecksumCalculation = await config.requestChecksumCalculation();
|
|
269
|
+
const responseChecksumValidation = await config.responseChecksumValidation();
|
|
270
|
+
switch (requestChecksumCalculation) {
|
|
271
|
+
case RequestChecksumCalculation.WHEN_REQUIRED:
|
|
272
|
+
core.setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED", "a");
|
|
273
|
+
break;
|
|
274
|
+
case RequestChecksumCalculation.WHEN_SUPPORTED:
|
|
275
|
+
core.setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED", "Z");
|
|
276
|
+
break;
|
|
362
277
|
}
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
// src/getChecksumAlgorithmListForResponse.ts
|
|
371
|
-
var getChecksumAlgorithmListForResponse = /* @__PURE__ */ __name((responseAlgorithms = []) => {
|
|
372
|
-
const validChecksumAlgorithms = [];
|
|
373
|
-
for (const algorithm of PRIORITY_ORDER_ALGORITHMS) {
|
|
374
|
-
if (!responseAlgorithms.includes(algorithm) || !CLIENT_SUPPORTED_ALGORITHMS.includes(algorithm)) {
|
|
375
|
-
continue;
|
|
278
|
+
switch (responseChecksumValidation) {
|
|
279
|
+
case ResponseChecksumValidation.WHEN_REQUIRED:
|
|
280
|
+
core.setFeature(context, "FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED", "c");
|
|
281
|
+
break;
|
|
282
|
+
case ResponseChecksumValidation.WHEN_SUPPORTED:
|
|
283
|
+
core.setFeature(context, "FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED", "b");
|
|
284
|
+
break;
|
|
376
285
|
}
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
// src/isChecksumWithPartNumber.ts
|
|
383
|
-
var isChecksumWithPartNumber = /* @__PURE__ */ __name((checksum) => {
|
|
384
|
-
const lastHyphenIndex = checksum.lastIndexOf("-");
|
|
385
|
-
if (lastHyphenIndex !== -1) {
|
|
386
|
-
const numberPart = checksum.slice(lastHyphenIndex + 1);
|
|
387
|
-
if (!numberPart.startsWith("0")) {
|
|
388
|
-
const number = parseInt(numberPart, 10);
|
|
389
|
-
if (!isNaN(number) && number >= 1 && number <= 1e4) {
|
|
390
|
-
return true;
|
|
391
|
-
}
|
|
286
|
+
if (requestValidationModeMember && !input[requestValidationModeMember]) {
|
|
287
|
+
if (responseChecksumValidation === ResponseChecksumValidation.WHEN_SUPPORTED) {
|
|
288
|
+
input[requestValidationModeMember] = "ENABLED";
|
|
289
|
+
}
|
|
392
290
|
}
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
}, "isChecksumWithPartNumber");
|
|
291
|
+
return next(args);
|
|
292
|
+
};
|
|
396
293
|
|
|
397
|
-
|
|
294
|
+
const getChecksumAlgorithmListForResponse = (responseAlgorithms = []) => {
|
|
295
|
+
const validChecksumAlgorithms = [];
|
|
296
|
+
for (const algorithm of PRIORITY_ORDER_ALGORITHMS) {
|
|
297
|
+
if (!responseAlgorithms.includes(algorithm) || !CLIENT_SUPPORTED_ALGORITHMS.includes(algorithm)) {
|
|
298
|
+
continue;
|
|
299
|
+
}
|
|
300
|
+
validChecksumAlgorithms.push(algorithm);
|
|
301
|
+
}
|
|
302
|
+
return validChecksumAlgorithms;
|
|
303
|
+
};
|
|
398
304
|
|
|
305
|
+
const isChecksumWithPartNumber = (checksum) => {
|
|
306
|
+
const lastHyphenIndex = checksum.lastIndexOf("-");
|
|
307
|
+
if (lastHyphenIndex !== -1) {
|
|
308
|
+
const numberPart = checksum.slice(lastHyphenIndex + 1);
|
|
309
|
+
if (!numberPart.startsWith("0")) {
|
|
310
|
+
const number = parseInt(numberPart, 10);
|
|
311
|
+
if (!isNaN(number) && number >= 1 && number <= 10000) {
|
|
312
|
+
return true;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
return false;
|
|
317
|
+
};
|
|
399
318
|
|
|
400
|
-
|
|
401
|
-
var getChecksum = /* @__PURE__ */ __name(async (body, { checksumAlgorithmFn, base64Encoder }) => base64Encoder(await stringHasher(checksumAlgorithmFn, body)), "getChecksum");
|
|
319
|
+
const getChecksum = async (body, { checksumAlgorithmFn, base64Encoder }) => base64Encoder(await stringHasher(checksumAlgorithmFn, body));
|
|
402
320
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
321
|
+
const validateChecksumFromResponse = async (response, { config, responseAlgorithms, logger }) => {
|
|
322
|
+
const checksumAlgorithms = getChecksumAlgorithmListForResponse(responseAlgorithms);
|
|
323
|
+
const { body: responseBody, headers: responseHeaders } = response;
|
|
324
|
+
for (const algorithm of checksumAlgorithms) {
|
|
325
|
+
const responseHeader = getChecksumLocationName(algorithm);
|
|
326
|
+
const checksumFromResponse = responseHeaders[responseHeader];
|
|
327
|
+
if (checksumFromResponse) {
|
|
328
|
+
let checksumAlgorithmFn;
|
|
329
|
+
try {
|
|
330
|
+
checksumAlgorithmFn = selectChecksumAlgorithmFunction(algorithm, config);
|
|
331
|
+
}
|
|
332
|
+
catch (error) {
|
|
333
|
+
if (algorithm === exports.ChecksumAlgorithm.CRC64NVME) {
|
|
334
|
+
logger?.warn(`Skipping ${exports.ChecksumAlgorithm.CRC64NVME} checksum validation: ${error.message}`);
|
|
335
|
+
continue;
|
|
336
|
+
}
|
|
337
|
+
throw error;
|
|
338
|
+
}
|
|
339
|
+
const { base64Encoder } = config;
|
|
340
|
+
if (isStreaming(responseBody)) {
|
|
341
|
+
response.body = utilStream.createChecksumStream({
|
|
342
|
+
expectedChecksum: checksumFromResponse,
|
|
343
|
+
checksumSourceLocation: responseHeader,
|
|
344
|
+
checksum: new checksumAlgorithmFn(),
|
|
345
|
+
source: responseBody,
|
|
346
|
+
base64Encoder,
|
|
347
|
+
});
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
const checksum = await getChecksum(responseBody, { checksumAlgorithmFn, base64Encoder });
|
|
351
|
+
if (checksum === checksumFromResponse) {
|
|
352
|
+
break;
|
|
353
|
+
}
|
|
354
|
+
throw new Error(`Checksum mismatch: expected "${checksum}" but received "${checksumFromResponse}"` +
|
|
355
|
+
` in response header "${responseHeader}".`);
|
|
418
356
|
}
|
|
419
|
-
throw error;
|
|
420
|
-
}
|
|
421
|
-
const { base64Encoder } = config;
|
|
422
|
-
if (isStreaming(responseBody)) {
|
|
423
|
-
response.body = (0, import_util_stream.createChecksumStream)({
|
|
424
|
-
expectedChecksum: checksumFromResponse,
|
|
425
|
-
checksumSourceLocation: responseHeader,
|
|
426
|
-
checksum: new checksumAlgorithmFn(),
|
|
427
|
-
source: responseBody,
|
|
428
|
-
base64Encoder
|
|
429
|
-
});
|
|
430
|
-
return;
|
|
431
|
-
}
|
|
432
|
-
const checksum = await getChecksum(responseBody, { checksumAlgorithmFn, base64Encoder });
|
|
433
|
-
if (checksum === checksumFromResponse) {
|
|
434
|
-
break;
|
|
435
|
-
}
|
|
436
|
-
throw new Error(
|
|
437
|
-
`Checksum mismatch: expected "${checksum}" but received "${checksumFromResponse}" in response header "${responseHeader}".`
|
|
438
|
-
);
|
|
439
357
|
}
|
|
440
|
-
|
|
441
|
-
}, "validateChecksumFromResponse");
|
|
358
|
+
};
|
|
442
359
|
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
override: true
|
|
360
|
+
const flexibleChecksumsResponseMiddlewareOptions = {
|
|
361
|
+
name: "flexibleChecksumsResponseMiddleware",
|
|
362
|
+
toMiddleware: "deserializerMiddleware",
|
|
363
|
+
relation: "after",
|
|
364
|
+
tags: ["BODY_CHECKSUM"],
|
|
365
|
+
override: true,
|
|
450
366
|
};
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
}
|
|
455
|
-
const input = args.input;
|
|
456
|
-
const result = await next(args);
|
|
457
|
-
const response = result.response;
|
|
458
|
-
const { requestValidationModeMember, responseAlgorithms } = middlewareConfig;
|
|
459
|
-
if (requestValidationModeMember && input[requestValidationModeMember] === "ENABLED") {
|
|
460
|
-
const { clientName, commandName } = context;
|
|
461
|
-
const isS3WholeObjectMultipartGetResponseChecksum = clientName === "S3Client" && commandName === "GetObjectCommand" && getChecksumAlgorithmListForResponse(responseAlgorithms).every((algorithm) => {
|
|
462
|
-
const responseHeader = getChecksumLocationName(algorithm);
|
|
463
|
-
const checksumFromResponse = response.headers[responseHeader];
|
|
464
|
-
return !checksumFromResponse || isChecksumWithPartNumber(checksumFromResponse);
|
|
465
|
-
});
|
|
466
|
-
if (isS3WholeObjectMultipartGetResponseChecksum) {
|
|
467
|
-
return result;
|
|
367
|
+
const flexibleChecksumsResponseMiddleware = (config, middlewareConfig) => (next, context) => async (args) => {
|
|
368
|
+
if (!protocolHttp.HttpRequest.isInstance(args.request)) {
|
|
369
|
+
return next(args);
|
|
468
370
|
}
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
// src/resolveFlexibleChecksumsConfig.ts
|
|
494
|
-
var import_util_middleware = require("@smithy/util-middleware");
|
|
495
|
-
var resolveFlexibleChecksumsConfig = /* @__PURE__ */ __name((input) => {
|
|
496
|
-
const { requestChecksumCalculation, responseChecksumValidation, requestStreamBufferSize } = input;
|
|
497
|
-
return Object.assign(input, {
|
|
498
|
-
requestChecksumCalculation: (0, import_util_middleware.normalizeProvider)(requestChecksumCalculation ?? DEFAULT_REQUEST_CHECKSUM_CALCULATION),
|
|
499
|
-
responseChecksumValidation: (0, import_util_middleware.normalizeProvider)(responseChecksumValidation ?? DEFAULT_RESPONSE_CHECKSUM_VALIDATION),
|
|
500
|
-
requestStreamBufferSize: Number(requestStreamBufferSize ?? 0)
|
|
501
|
-
});
|
|
502
|
-
}, "resolveFlexibleChecksumsConfig");
|
|
503
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
371
|
+
const input = args.input;
|
|
372
|
+
const result = await next(args);
|
|
373
|
+
const response = result.response;
|
|
374
|
+
const { requestValidationModeMember, responseAlgorithms } = middlewareConfig;
|
|
375
|
+
if (requestValidationModeMember && input[requestValidationModeMember] === "ENABLED") {
|
|
376
|
+
const { clientName, commandName } = context;
|
|
377
|
+
const isS3WholeObjectMultipartGetResponseChecksum = clientName === "S3Client" &&
|
|
378
|
+
commandName === "GetObjectCommand" &&
|
|
379
|
+
getChecksumAlgorithmListForResponse(responseAlgorithms).every((algorithm) => {
|
|
380
|
+
const responseHeader = getChecksumLocationName(algorithm);
|
|
381
|
+
const checksumFromResponse = response.headers[responseHeader];
|
|
382
|
+
return !checksumFromResponse || isChecksumWithPartNumber(checksumFromResponse);
|
|
383
|
+
});
|
|
384
|
+
if (isS3WholeObjectMultipartGetResponseChecksum) {
|
|
385
|
+
return result;
|
|
386
|
+
}
|
|
387
|
+
await validateChecksumFromResponse(response, {
|
|
388
|
+
config,
|
|
389
|
+
responseAlgorithms,
|
|
390
|
+
logger: context.logger,
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
return result;
|
|
394
|
+
};
|
|
504
395
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS,
|
|
512
|
-
RequestChecksumCalculation,
|
|
513
|
-
DEFAULT_REQUEST_CHECKSUM_CALCULATION,
|
|
514
|
-
ResponseChecksumValidation,
|
|
515
|
-
DEFAULT_RESPONSE_CHECKSUM_VALIDATION,
|
|
516
|
-
ChecksumAlgorithm,
|
|
517
|
-
ChecksumLocation,
|
|
518
|
-
DEFAULT_CHECKSUM_ALGORITHM,
|
|
519
|
-
crc64NvmeCrtContainer,
|
|
520
|
-
flexibleChecksumsMiddlewareOptions,
|
|
521
|
-
flexibleChecksumsMiddleware,
|
|
522
|
-
getFlexibleChecksumsPlugin,
|
|
523
|
-
resolveFlexibleChecksumsConfig
|
|
396
|
+
const getFlexibleChecksumsPlugin = (config, middlewareConfig) => ({
|
|
397
|
+
applyToStack: (clientStack) => {
|
|
398
|
+
clientStack.add(flexibleChecksumsMiddleware(config, middlewareConfig), flexibleChecksumsMiddlewareOptions);
|
|
399
|
+
clientStack.addRelativeTo(flexibleChecksumsInputMiddleware(config, middlewareConfig), flexibleChecksumsInputMiddlewareOptions);
|
|
400
|
+
clientStack.addRelativeTo(flexibleChecksumsResponseMiddleware(config, middlewareConfig), flexibleChecksumsResponseMiddlewareOptions);
|
|
401
|
+
},
|
|
524
402
|
});
|
|
525
403
|
|
|
404
|
+
const resolveFlexibleChecksumsConfig = (input) => {
|
|
405
|
+
const { requestChecksumCalculation, responseChecksumValidation, requestStreamBufferSize } = input;
|
|
406
|
+
return Object.assign(input, {
|
|
407
|
+
requestChecksumCalculation: utilMiddleware.normalizeProvider(requestChecksumCalculation ?? DEFAULT_REQUEST_CHECKSUM_CALCULATION),
|
|
408
|
+
responseChecksumValidation: utilMiddleware.normalizeProvider(responseChecksumValidation ?? DEFAULT_RESPONSE_CHECKSUM_VALIDATION),
|
|
409
|
+
requestStreamBufferSize: Number(requestStreamBufferSize ?? 0),
|
|
410
|
+
});
|
|
411
|
+
};
|
|
412
|
+
|
|
413
|
+
exports.CONFIG_REQUEST_CHECKSUM_CALCULATION = CONFIG_REQUEST_CHECKSUM_CALCULATION;
|
|
414
|
+
exports.CONFIG_RESPONSE_CHECKSUM_VALIDATION = CONFIG_RESPONSE_CHECKSUM_VALIDATION;
|
|
415
|
+
exports.DEFAULT_CHECKSUM_ALGORITHM = DEFAULT_CHECKSUM_ALGORITHM;
|
|
416
|
+
exports.DEFAULT_REQUEST_CHECKSUM_CALCULATION = DEFAULT_REQUEST_CHECKSUM_CALCULATION;
|
|
417
|
+
exports.DEFAULT_RESPONSE_CHECKSUM_VALIDATION = DEFAULT_RESPONSE_CHECKSUM_VALIDATION;
|
|
418
|
+
exports.ENV_REQUEST_CHECKSUM_CALCULATION = ENV_REQUEST_CHECKSUM_CALCULATION;
|
|
419
|
+
exports.ENV_RESPONSE_CHECKSUM_VALIDATION = ENV_RESPONSE_CHECKSUM_VALIDATION;
|
|
420
|
+
exports.NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS = NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS;
|
|
421
|
+
exports.NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS = NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS;
|
|
422
|
+
exports.RequestChecksumCalculation = RequestChecksumCalculation;
|
|
423
|
+
exports.ResponseChecksumValidation = ResponseChecksumValidation;
|
|
424
|
+
exports.crc64NvmeCrtContainer = crc64NvmeCrtContainer;
|
|
425
|
+
exports.flexibleChecksumsMiddleware = flexibleChecksumsMiddleware;
|
|
426
|
+
exports.flexibleChecksumsMiddlewareOptions = flexibleChecksumsMiddlewareOptions;
|
|
427
|
+
exports.getFlexibleChecksumsPlugin = getFlexibleChecksumsPlugin;
|
|
428
|
+
exports.resolveFlexibleChecksumsConfig = resolveFlexibleChecksumsConfig;
|