@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.
Files changed (150) hide show
  1. package/.jsii +11 -11
  2. package/cdk-ami-builder/jsii/jsii.go +2 -2
  3. package/cdk-ami-builder/version +1 -1
  4. package/lib/ImagePipeline/ImagePipeline.js +1 -1
  5. package/lib/Lambdas/CheckStateMachineStatus/CheckStateMachineStatus-function.js +1 -1
  6. package/lib/Lambdas/StartStateMachine/StartStateMachine-function.js +1 -1
  7. package/node_modules/@aws-sdk/client-ec2/dist-cjs/index.js +88090 -87044
  8. package/node_modules/@aws-sdk/client-ec2/package.json +6 -6
  9. package/node_modules/@aws-sdk/client-ecs/dist-cjs/index.js +4836 -5148
  10. package/node_modules/@aws-sdk/client-ecs/package.json +6 -6
  11. package/node_modules/@aws-sdk/client-kms/dist-cjs/index.js +3963 -4397
  12. package/node_modules/@aws-sdk/client-kms/package.json +6 -6
  13. package/node_modules/@aws-sdk/client-s3/dist-cjs/index.js +11771 -11916
  14. package/node_modules/@aws-sdk/client-s3/package.json +10 -10
  15. package/node_modules/@aws-sdk/client-secrets-manager/dist-cjs/index.js +1582 -1740
  16. package/node_modules/@aws-sdk/client-secrets-manager/package.json +6 -6
  17. package/node_modules/@aws-sdk/client-sfn/dist-cjs/index.js +3292 -3664
  18. package/node_modules/@aws-sdk/client-sfn/package.json +6 -6
  19. package/node_modules/@aws-sdk/client-sns/dist-cjs/index.js +4326 -4601
  20. package/node_modules/@aws-sdk/client-sns/package.json +6 -6
  21. package/node_modules/@aws-sdk/client-sqs/dist-cjs/index.js +2114 -2361
  22. package/node_modules/@aws-sdk/client-sqs/package.json +6 -6
  23. package/node_modules/@aws-sdk/client-ssm/dist-cjs/index.js +12508 -13696
  24. package/node_modules/@aws-sdk/client-ssm/package.json +6 -6
  25. package/node_modules/@aws-sdk/client-sso/dist-cjs/index.js +478 -596
  26. package/node_modules/@aws-sdk/client-sso/package.json +5 -5
  27. package/node_modules/@aws-sdk/core/dist-cjs/index.js +1969 -6
  28. package/node_modules/@aws-sdk/core/dist-cjs/submodules/account-id-endpoint/index.js +48 -88
  29. package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +35 -74
  30. package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +273 -365
  31. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +1581 -1863
  32. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +2 -2
  33. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +2 -2
  34. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +4 -4
  35. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +4 -4
  36. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +3 -3
  37. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/QueryShapeSerializer.js +4 -4
  38. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +2 -2
  39. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js +4 -4
  40. package/node_modules/@aws-sdk/core/dist-types/submodules/account-id-endpoint/AccountIdEndpointModeConfigResolver.d.ts +1 -1
  41. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.d.ts +1 -1
  42. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.d.ts +1 -1
  43. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.d.ts +1 -1
  44. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.d.ts +1 -1
  45. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/ConfigurableSerdeContext.d.ts +1 -1
  46. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonCodec.d.ts +1 -1
  47. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeDeserializer.d.ts +1 -1
  48. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeSerializer.d.ts +2 -2
  49. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/query/QuerySerializerSettings.d.ts +1 -1
  50. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/xml/XmlCodec.d.ts +1 -1
  51. package/node_modules/@aws-sdk/core/package.json +1 -1
  52. package/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js +38 -73
  53. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  54. package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
  55. package/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js +194 -259
  56. package/node_modules/@aws-sdk/credential-provider-ini/package.json +8 -8
  57. package/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +72 -132
  58. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  59. package/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js +71 -107
  60. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  61. package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js +176 -249
  62. package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/loadSso-CVy8iqsZ.js +14 -0
  63. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  64. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js +16 -25
  65. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  66. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js +381 -478
  67. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +2 -2
  68. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js +511 -641
  69. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +2 -2
  70. package/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js +170 -203
  71. package/node_modules/@aws-sdk/middleware-user-agent/package.json +2 -2
  72. package/node_modules/@aws-sdk/nested-clients/dist-cjs/index.js +2 -2
  73. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +583 -858
  74. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +795 -928
  75. package/node_modules/@aws-sdk/nested-clients/package.json +5 -5
  76. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js +108 -137
  77. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +2 -2
  78. package/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +147 -222
  79. package/node_modules/@aws-sdk/token-providers/package.json +3 -3
  80. package/node_modules/@aws-sdk/util-user-agent-browser/README.md +22 -3
  81. package/node_modules/@aws-sdk/util-user-agent-browser/dist-cjs/createUserAgentStringParsingProvider.js +57 -0
  82. package/node_modules/@aws-sdk/util-user-agent-browser/dist-cjs/index.js +39 -8
  83. package/node_modules/@aws-sdk/util-user-agent-browser/dist-es/createUserAgentStringParsingProvider.js +20 -0
  84. package/node_modules/@aws-sdk/util-user-agent-browser/dist-es/index.js +37 -6
  85. package/node_modules/@aws-sdk/util-user-agent-browser/dist-types/createUserAgentStringParsingProvider.d.ts +14 -0
  86. package/node_modules/@aws-sdk/util-user-agent-browser/dist-types/index.d.ts +14 -4
  87. package/node_modules/@aws-sdk/util-user-agent-browser/dist-types/index.native.d.ts +4 -3
  88. package/node_modules/@aws-sdk/util-user-agent-browser/dist-types/ts3.4/createUserAgentStringParsingProvider.d.ts +9 -0
  89. package/node_modules/@aws-sdk/util-user-agent-browser/dist-types/ts3.4/index.d.ts +5 -0
  90. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +1 -1
  91. package/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js +50 -94
  92. package/node_modules/@aws-sdk/util-user-agent-node/dist-types/crt-availability.d.ts +1 -2
  93. package/node_modules/@aws-sdk/util-user-agent-node/dist-types/defaultUserAgent.d.ts +10 -5
  94. package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
  95. package/node_modules/@smithy/chunked-blob-reader-native/package.json +2 -2
  96. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +1 -1
  97. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +5 -3
  98. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +32 -30
  99. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +133 -202
  100. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +126 -34
  101. package/node_modules/@smithy/core/dist-es/submodules/cbor/CborCodec.js +2 -2
  102. package/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js +5 -3
  103. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +4 -4
  104. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +3 -3
  105. package/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +2 -2
  106. package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/FromStringShapeDeserializer.js +19 -17
  107. package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/ToStringShapeSerializer.js +4 -4
  108. package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/determineTimestampFormat.js +5 -6
  109. package/node_modules/@smithy/core/dist-es/submodules/schema/index.js +1 -0
  110. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js +82 -176
  111. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/translateTraits.js +22 -0
  112. package/node_modules/@smithy/core/dist-es/submodules/serde/index.js +1 -0
  113. package/node_modules/@smithy/core/dist-es/submodules/serde/schema-serde-lib/schema-date-utils.js +110 -0
  114. package/node_modules/@smithy/core/dist-es/submodules/serde/value/NumericValue.js +4 -26
  115. package/node_modules/@smithy/core/dist-types/submodules/schema/index.d.ts +1 -0
  116. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/NormalizedSchema.d.ts +5 -24
  117. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/sentinels.d.ts +2 -0
  118. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/translateTraits.d.ts +7 -0
  119. package/node_modules/@smithy/core/dist-types/submodules/serde/index.d.ts +1 -0
  120. package/node_modules/@smithy/core/dist-types/submodules/serde/schema-serde-lib/schema-date-utils.d.ts +47 -0
  121. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/index.d.ts +1 -0
  122. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/NormalizedSchema.d.ts +5 -24
  123. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/sentinels.d.ts +2 -0
  124. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/translateTraits.d.ts +7 -0
  125. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/index.d.ts +1 -0
  126. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/schema-serde-lib/schema-date-utils.d.ts +47 -0
  127. package/node_modules/@smithy/core/package.json +3 -3
  128. package/node_modules/@smithy/fetch-http-handler/package.json +2 -2
  129. package/node_modules/@smithy/hash-blob-browser/package.json +2 -2
  130. package/node_modules/@smithy/middleware-endpoint/package.json +2 -2
  131. package/node_modules/@smithy/middleware-retry/package.json +2 -2
  132. package/node_modules/@smithy/smithy-client/package.json +4 -4
  133. package/node_modules/@smithy/util-base64/dist-cjs/constants.browser.js +9 -32
  134. package/node_modules/@smithy/util-base64/dist-es/constants.browser.js +9 -28
  135. package/node_modules/@smithy/util-base64/dist-types/constants.browser.d.ts +5 -6
  136. package/node_modules/@smithy/util-base64/dist-types/ts3.4/constants.browser.d.ts +5 -6
  137. package/node_modules/@smithy/util-base64/package.json +1 -1
  138. package/node_modules/@smithy/util-body-length-node/dist-cjs/index.js +8 -6
  139. package/node_modules/@smithy/util-body-length-node/dist-es/calculateBodyLength.js +8 -6
  140. package/node_modules/@smithy/util-body-length-node/package.json +1 -1
  141. package/node_modules/@smithy/util-defaults-mode-browser/dist-cjs/resolveDefaultsModeConfig.js +11 -9
  142. package/node_modules/@smithy/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js +11 -8
  143. package/node_modules/@smithy/util-defaults-mode-browser/package.json +2 -3
  144. package/node_modules/@smithy/util-defaults-mode-node/package.json +2 -2
  145. package/node_modules/@smithy/util-stream/dist-cjs/index.js +3 -5
  146. package/node_modules/@smithy/util-stream/dist-es/blob/Uint8ArrayBlobAdapter.js +3 -5
  147. package/node_modules/@smithy/util-stream/dist-types/blob/Uint8ArrayBlobAdapter.d.ts +1 -0
  148. package/node_modules/@smithy/util-stream/dist-types/ts3.4/blob/Uint8ArrayBlobAdapter.d.ts +1 -0
  149. package/node_modules/@smithy/util-stream/package.json +3 -3
  150. package/package.json +11 -11
@@ -1,525 +1,428 @@
1
- "use strict";
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
- // src/index.ts
22
- var index_exports = {};
23
- __export(index_exports, {
24
- CONFIG_REQUEST_CHECKSUM_CALCULATION: () => CONFIG_REQUEST_CHECKSUM_CALCULATION,
25
- CONFIG_RESPONSE_CHECKSUM_VALIDATION: () => CONFIG_RESPONSE_CHECKSUM_VALIDATION,
26
- ChecksumAlgorithm: () => ChecksumAlgorithm,
27
- ChecksumLocation: () => ChecksumLocation,
28
- DEFAULT_CHECKSUM_ALGORITHM: () => DEFAULT_CHECKSUM_ALGORITHM,
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
- // src/constants.ts
46
- var RequestChecksumCalculation = {
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
- var DEFAULT_REQUEST_CHECKSUM_CALCULATION = RequestChecksumCalculation.WHEN_SUPPORTED;
63
- var ResponseChecksumValidation = {
64
- /**
65
- * When set, checksum validation MUST be performed on all response payloads of operations
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
- var DEFAULT_RESPONSE_CHECKSUM_VALIDATION = RequestChecksumCalculation.WHEN_SUPPORTED;
80
- var ChecksumAlgorithm = /* @__PURE__ */ ((ChecksumAlgorithm3) => {
81
- ChecksumAlgorithm3["MD5"] = "MD5";
82
- ChecksumAlgorithm3["CRC32"] = "CRC32";
83
- ChecksumAlgorithm3["CRC32C"] = "CRC32C";
84
- ChecksumAlgorithm3["CRC64NVME"] = "CRC64NVME";
85
- ChecksumAlgorithm3["SHA1"] = "SHA1";
86
- ChecksumAlgorithm3["SHA256"] = "SHA256";
87
- return ChecksumAlgorithm3;
88
- })(ChecksumAlgorithm || {});
89
- var ChecksumLocation = /* @__PURE__ */ ((ChecksumLocation2) => {
90
- ChecksumLocation2["HEADER"] = "header";
91
- ChecksumLocation2["TRAILER"] = "trailer";
92
- return ChecksumLocation2;
93
- })(ChecksumLocation || {});
94
- var DEFAULT_CHECKSUM_ALGORITHM = "CRC32" /* CRC32 */;
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
- // src/NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS.ts
107
- var ENV_REQUEST_CHECKSUM_CALCULATION = "AWS_REQUEST_CHECKSUM_CALCULATION";
108
- var CONFIG_REQUEST_CHECKSUM_CALCULATION = "request_checksum_calculation";
109
- var NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS = {
110
- environmentVariableSelector: /* @__PURE__ */ __name((env) => stringUnionSelector(env, ENV_REQUEST_CHECKSUM_CALCULATION, RequestChecksumCalculation, "env" /* ENV */), "environmentVariableSelector"),
111
- configFileSelector: /* @__PURE__ */ __name((profile) => stringUnionSelector(profile, CONFIG_REQUEST_CHECKSUM_CALCULATION, RequestChecksumCalculation, "shared config entry" /* CONFIG */), "configFileSelector"),
112
- default: DEFAULT_REQUEST_CHECKSUM_CALCULATION
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
- // src/NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS.ts
116
- var ENV_RESPONSE_CHECKSUM_VALIDATION = "AWS_RESPONSE_CHECKSUM_VALIDATION";
117
- var CONFIG_RESPONSE_CHECKSUM_VALIDATION = "response_checksum_validation";
118
- var NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS = {
119
- environmentVariableSelector: /* @__PURE__ */ __name((env) => stringUnionSelector(env, ENV_RESPONSE_CHECKSUM_VALIDATION, ResponseChecksumValidation, "env" /* ENV */), "environmentVariableSelector"),
120
- configFileSelector: /* @__PURE__ */ __name((profile) => stringUnionSelector(profile, CONFIG_RESPONSE_CHECKSUM_VALIDATION, ResponseChecksumValidation, "shared config entry" /* CONFIG */), "configFileSelector"),
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
- // src/crc64-nvme-crt-container.ts
125
- var crc64NvmeCrtContainer = {
126
- CrtCrc64Nvme: null
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
- // src/flexibleChecksumsMiddleware.ts
130
- var import_core = require("@aws-sdk/core");
131
- var import_protocol_http = require("@smithy/protocol-http");
132
- var import_util_stream = require("@smithy/util-stream");
69
+ const crc64NvmeCrtContainer = {
70
+ CrtCrc64Nvme: null,
71
+ };
133
72
 
134
- // src/types.ts
135
- var CLIENT_SUPPORTED_ALGORITHMS = [
136
- "CRC32" /* CRC32 */,
137
- "CRC32C" /* CRC32C */,
138
- "CRC64NVME" /* CRC64NVME */,
139
- "SHA1" /* SHA1 */,
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
- var PRIORITY_ORDER_ALGORITHMS = [
143
- "SHA256" /* SHA256 */,
144
- "SHA1" /* SHA1 */,
145
- "CRC32" /* CRC32 */,
146
- "CRC32C" /* CRC32C */,
147
- "CRC64NVME" /* CRC64NVME */
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
- // src/getChecksumAlgorithmForRequest.ts
151
- var getChecksumAlgorithmForRequest = /* @__PURE__ */ __name((input, { requestChecksumRequired, requestAlgorithmMember, requestChecksumCalculation }) => {
152
- if (!requestAlgorithmMember) {
153
- return requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired ? DEFAULT_CHECKSUM_ALGORITHM : void 0;
154
- }
155
- if (!input[requestAlgorithmMember]) {
156
- return void 0;
157
- }
158
- const checksumAlgorithm = input[requestAlgorithmMember];
159
- if (!CLIENT_SUPPORTED_ALGORITHMS.includes(checksumAlgorithm)) {
160
- throw new Error(
161
- `The checksum algorithm "${checksumAlgorithm}" is not supported by the client. Select one of ${CLIENT_SUPPORTED_ALGORITHMS}.`
162
- );
163
- }
164
- return checksumAlgorithm;
165
- }, "getChecksumAlgorithmForRequest");
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
- // src/getChecksumLocationName.ts
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
- // src/hasHeader.ts
171
- var hasHeader = /* @__PURE__ */ __name((header, headers) => {
172
- const soughtHeader = header.toLowerCase();
173
- for (const headerName of Object.keys(headers)) {
174
- if (soughtHeader === headerName.toLowerCase()) {
175
- return true;
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
- return false;
179
- }, "hasHeader");
114
+ return false;
115
+ };
180
116
 
181
- // src/hasHeaderWithPrefix.ts
182
- var hasHeaderWithPrefix = /* @__PURE__ */ __name((headerPrefix, headers) => {
183
- const soughtHeaderPrefix = headerPrefix.toLowerCase();
184
- for (const headerName of Object.keys(headers)) {
185
- if (headerName.toLowerCase().startsWith(soughtHeaderPrefix)) {
186
- return true;
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
- return false;
190
- }, "hasHeaderWithPrefix");
124
+ return false;
125
+ };
191
126
 
192
- // src/isStreaming.ts
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
- // src/selectChecksumAlgorithmFunction.ts
197
- var import_crc32c = require("@aws-crypto/crc32c");
198
- var import_getCrc32ChecksumAlgorithmFunction = require("././getCrc32ChecksumAlgorithmFunction");
199
- var selectChecksumAlgorithmFunction = /* @__PURE__ */ __name((checksumAlgorithm, config) => {
200
- switch (checksumAlgorithm) {
201
- case "MD5" /* MD5 */:
202
- return config.md5;
203
- case "CRC32" /* CRC32 */:
204
- return (0, import_getCrc32ChecksumAlgorithmFunction.getCrc32ChecksumAlgorithmFunction)();
205
- case "CRC32C" /* CRC32C */:
206
- return import_crc32c.AwsCrc32c;
207
- case "CRC64NVME" /* CRC64NVME */:
208
- if (typeof crc64NvmeCrtContainer.CrtCrc64Nvme !== "function") {
209
- throw new Error(
210
- `Please check whether you have installed the "@aws-sdk/crc64-nvme-crt" package explicitly.
211
- You must also register the package by calling [require("@aws-sdk/crc64-nvme-crt");] or an ESM equivalent such as [import "@aws-sdk/crc64-nvme-crt";].
212
- For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`
213
- );
214
- }
215
- return crc64NvmeCrtContainer.CrtCrc64Nvme;
216
- case "SHA1" /* SHA1 */:
217
- return config.sha1;
218
- case "SHA256" /* SHA256 */:
219
- return config.sha256;
220
- default:
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
- // src/stringHasher.ts
226
- var import_util_utf8 = require("@smithy/util-utf8");
227
- var stringHasher = /* @__PURE__ */ __name((checksumAlgorithmFn, body) => {
228
- const hash = new checksumAlgorithmFn();
229
- hash.update((0, import_util_utf8.toUint8Array)(body || ""));
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
- // src/flexibleChecksumsMiddleware.ts
234
- var flexibleChecksumsMiddlewareOptions = {
235
- name: "flexibleChecksumsMiddleware",
236
- step: "build",
237
- tags: ["BODY_CHECKSUM"],
238
- override: true
161
+ const flexibleChecksumsMiddlewareOptions = {
162
+ name: "flexibleChecksumsMiddleware",
163
+ step: "build",
164
+ tags: ["BODY_CHECKSUM"],
165
+ override: true,
239
166
  };
240
- var flexibleChecksumsMiddleware = /* @__PURE__ */ __name((config, middlewareConfig) => (next, context) => async (args) => {
241
- if (!import_protocol_http.HttpRequest.isInstance(args.request)) {
242
- return next(args);
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
- const checksumAlgorithm = getChecksumAlgorithmForRequest(input, {
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 checksumLocationName = getChecksumLocationName(checksumAlgorithm);
288
- const checksumAlgorithmFn = selectChecksumAlgorithmFunction(checksumAlgorithm, config);
289
- if (isStreaming(requestBody)) {
290
- const { getAwsChunkedEncodingStream, bodyLengthChecker } = config;
291
- updatedBody = getAwsChunkedEncodingStream(
292
- typeof config.requestStreamBufferSize === "number" && config.requestStreamBufferSize >= 8 * 1024 ? (0, import_util_stream.createBufferedReadable)(requestBody, config.requestStreamBufferSize, context.logger) : requestBody,
293
- {
294
- base64Encoder,
295
- bodyLengthChecker,
296
- checksumLocationName,
297
- checksumAlgorithmFn,
298
- streamHasher
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
- const result = await next({
319
- ...args,
320
- request: {
321
- ...request,
322
- headers: updatedHeaders,
323
- body: updatedBody
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
- return result;
327
- }, "flexibleChecksumsMiddleware");
328
-
329
- // src/flexibleChecksumsInputMiddleware.ts
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
- var flexibleChecksumsInputMiddlewareOptions = {
332
- name: "flexibleChecksumsInputMiddleware",
333
- toMiddleware: "serializerMiddleware",
334
- relation: "before",
335
- tags: ["BODY_CHECKSUM"],
336
- override: true
258
+ const flexibleChecksumsInputMiddlewareOptions = {
259
+ name: "flexibleChecksumsInputMiddleware",
260
+ toMiddleware: "serializerMiddleware",
261
+ relation: "before",
262
+ tags: ["BODY_CHECKSUM"],
263
+ override: true,
337
264
  };
338
- var flexibleChecksumsInputMiddleware = /* @__PURE__ */ __name((config, middlewareConfig) => (next, context) => async (args) => {
339
- const input = args.input;
340
- const { requestValidationModeMember } = middlewareConfig;
341
- const requestChecksumCalculation = await config.requestChecksumCalculation();
342
- const responseChecksumValidation = await config.responseChecksumValidation();
343
- switch (requestChecksumCalculation) {
344
- case RequestChecksumCalculation.WHEN_REQUIRED:
345
- (0, import_core.setFeature)(context, "FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED", "a");
346
- break;
347
- case RequestChecksumCalculation.WHEN_SUPPORTED:
348
- (0, import_core.setFeature)(context, "FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED", "Z");
349
- break;
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
- return next(args);
365
- }, "flexibleChecksumsInputMiddleware");
366
-
367
- // src/flexibleChecksumsResponseMiddleware.ts
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
- validChecksumAlgorithms.push(algorithm);
378
- }
379
- return validChecksumAlgorithms;
380
- }, "getChecksumAlgorithmListForResponse");
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
- return false;
395
- }, "isChecksumWithPartNumber");
291
+ return next(args);
292
+ };
396
293
 
397
- // src/validateChecksumFromResponse.ts
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
- // src/getChecksum.ts
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
- // src/validateChecksumFromResponse.ts
404
- var validateChecksumFromResponse = /* @__PURE__ */ __name(async (response, { config, responseAlgorithms, logger }) => {
405
- const checksumAlgorithms = getChecksumAlgorithmListForResponse(responseAlgorithms);
406
- const { body: responseBody, headers: responseHeaders } = response;
407
- for (const algorithm of checksumAlgorithms) {
408
- const responseHeader = getChecksumLocationName(algorithm);
409
- const checksumFromResponse = responseHeaders[responseHeader];
410
- if (checksumFromResponse) {
411
- let checksumAlgorithmFn;
412
- try {
413
- checksumAlgorithmFn = selectChecksumAlgorithmFunction(algorithm, config);
414
- } catch (error) {
415
- if (algorithm === "CRC64NVME" /* CRC64NVME */) {
416
- logger?.warn(`Skipping ${"CRC64NVME" /* CRC64NVME */} checksum validation: ${error.message}`);
417
- continue;
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
- // src/flexibleChecksumsResponseMiddleware.ts
444
- var flexibleChecksumsResponseMiddlewareOptions = {
445
- name: "flexibleChecksumsResponseMiddleware",
446
- toMiddleware: "deserializerMiddleware",
447
- relation: "after",
448
- tags: ["BODY_CHECKSUM"],
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
- var flexibleChecksumsResponseMiddleware = /* @__PURE__ */ __name((config, middlewareConfig) => (next, context) => async (args) => {
452
- if (!import_protocol_http.HttpRequest.isInstance(args.request)) {
453
- return next(args);
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
- await validateChecksumFromResponse(response, {
470
- config,
471
- responseAlgorithms,
472
- logger: context.logger
473
- });
474
- }
475
- return result;
476
- }, "flexibleChecksumsResponseMiddleware");
477
-
478
- // src/getFlexibleChecksumsPlugin.ts
479
- var getFlexibleChecksumsPlugin = /* @__PURE__ */ __name((config, middlewareConfig) => ({
480
- applyToStack: /* @__PURE__ */ __name((clientStack) => {
481
- clientStack.add(flexibleChecksumsMiddleware(config, middlewareConfig), flexibleChecksumsMiddlewareOptions);
482
- clientStack.addRelativeTo(
483
- flexibleChecksumsInputMiddleware(config, middlewareConfig),
484
- flexibleChecksumsInputMiddlewareOptions
485
- );
486
- clientStack.addRelativeTo(
487
- flexibleChecksumsResponseMiddleware(config, middlewareConfig),
488
- flexibleChecksumsResponseMiddlewareOptions
489
- );
490
- }, "applyToStack")
491
- }), "getFlexibleChecksumsPlugin");
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
- 0 && (module.exports = {
506
- ENV_REQUEST_CHECKSUM_CALCULATION,
507
- CONFIG_REQUEST_CHECKSUM_CALCULATION,
508
- NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS,
509
- ENV_RESPONSE_CHECKSUM_VALIDATION,
510
- CONFIG_RESPONSE_CHECKSUM_VALIDATION,
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;