@jjrawlins/cdk-ami-builder 0.0.47 → 0.0.49

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 (138) hide show
  1. package/.jsii +11 -11
  2. package/cdk-ami-builder/go.mod +1 -1
  3. package/cdk-ami-builder/jsii/jsii.go +2 -2
  4. package/cdk-ami-builder/version +1 -1
  5. package/lib/ImagePipeline/ImagePipeline.js +1 -1
  6. package/lib/Lambdas/CheckStateMachineStatus/CheckStateMachineStatus-function.js +1 -1
  7. package/lib/Lambdas/StartStateMachine/StartStateMachine-function.js +1 -1
  8. package/node_modules/@aws-sdk/client-ec2/dist-cjs/index.js +88090 -87044
  9. package/node_modules/@aws-sdk/client-ec2/package.json +5 -5
  10. package/node_modules/@aws-sdk/client-ecs/dist-cjs/index.js +4836 -5148
  11. package/node_modules/@aws-sdk/client-ecs/package.json +5 -5
  12. package/node_modules/@aws-sdk/client-kms/dist-cjs/index.js +3963 -4397
  13. package/node_modules/@aws-sdk/client-kms/package.json +5 -5
  14. package/node_modules/@aws-sdk/client-s3/dist-cjs/index.js +11771 -11916
  15. package/node_modules/@aws-sdk/client-s3/package.json +9 -9
  16. package/node_modules/@aws-sdk/client-secrets-manager/dist-cjs/index.js +1582 -1740
  17. package/node_modules/@aws-sdk/client-secrets-manager/package.json +5 -5
  18. package/node_modules/@aws-sdk/client-sfn/dist-cjs/index.js +3292 -3664
  19. package/node_modules/@aws-sdk/client-sfn/package.json +5 -5
  20. package/node_modules/@aws-sdk/client-sns/dist-cjs/index.js +4326 -4601
  21. package/node_modules/@aws-sdk/client-sns/package.json +5 -5
  22. package/node_modules/@aws-sdk/client-sqs/dist-cjs/index.js +2114 -2361
  23. package/node_modules/@aws-sdk/client-sqs/package.json +5 -5
  24. package/node_modules/@aws-sdk/client-ssm/dist-cjs/index.js +12508 -13696
  25. package/node_modules/@aws-sdk/client-ssm/package.json +5 -5
  26. package/node_modules/@aws-sdk/client-sso/dist-cjs/index.js +478 -596
  27. package/node_modules/@aws-sdk/client-sso/package.json +4 -4
  28. package/node_modules/@aws-sdk/core/dist-cjs/index.js +1969 -6
  29. package/node_modules/@aws-sdk/core/dist-cjs/submodules/account-id-endpoint/index.js +48 -88
  30. package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +35 -74
  31. package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +273 -365
  32. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +1581 -1863
  33. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +2 -2
  34. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +2 -2
  35. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +4 -4
  36. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +4 -4
  37. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +3 -3
  38. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/QueryShapeSerializer.js +4 -4
  39. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +2 -2
  40. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js +4 -4
  41. package/node_modules/@aws-sdk/core/dist-types/submodules/account-id-endpoint/AccountIdEndpointModeConfigResolver.d.ts +1 -1
  42. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.d.ts +1 -1
  43. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.d.ts +1 -1
  44. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.d.ts +1 -1
  45. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.d.ts +1 -1
  46. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/ConfigurableSerdeContext.d.ts +1 -1
  47. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonCodec.d.ts +1 -1
  48. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeDeserializer.d.ts +1 -1
  49. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeSerializer.d.ts +2 -2
  50. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/query/QuerySerializerSettings.d.ts +1 -1
  51. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/xml/XmlCodec.d.ts +1 -1
  52. package/node_modules/@aws-sdk/core/package.json +1 -1
  53. package/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js +38 -73
  54. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  55. package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
  56. package/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js +194 -259
  57. package/node_modules/@aws-sdk/credential-provider-ini/package.json +8 -8
  58. package/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +72 -132
  59. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  60. package/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js +71 -107
  61. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  62. package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js +176 -249
  63. package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/loadSso-CVy8iqsZ.js +14 -0
  64. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  65. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js +16 -25
  66. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  67. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js +381 -478
  68. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +2 -2
  69. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js +511 -641
  70. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +2 -2
  71. package/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js +170 -203
  72. package/node_modules/@aws-sdk/middleware-user-agent/package.json +2 -2
  73. package/node_modules/@aws-sdk/nested-clients/dist-cjs/index.js +2 -2
  74. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +583 -858
  75. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +795 -928
  76. package/node_modules/@aws-sdk/nested-clients/package.json +4 -4
  77. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js +108 -137
  78. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +2 -2
  79. package/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +147 -222
  80. package/node_modules/@aws-sdk/token-providers/package.json +3 -3
  81. package/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js +50 -94
  82. package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
  83. package/node_modules/@smithy/chunked-blob-reader-native/package.json +2 -2
  84. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +1 -1
  85. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +5 -3
  86. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +32 -30
  87. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +133 -202
  88. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +126 -34
  89. package/node_modules/@smithy/core/dist-es/submodules/cbor/CborCodec.js +2 -2
  90. package/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js +5 -3
  91. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +4 -4
  92. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +3 -3
  93. package/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +2 -2
  94. package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/FromStringShapeDeserializer.js +19 -17
  95. package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/ToStringShapeSerializer.js +4 -4
  96. package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/determineTimestampFormat.js +5 -6
  97. package/node_modules/@smithy/core/dist-es/submodules/schema/index.js +1 -0
  98. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js +82 -176
  99. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/translateTraits.js +22 -0
  100. package/node_modules/@smithy/core/dist-es/submodules/serde/index.js +1 -0
  101. package/node_modules/@smithy/core/dist-es/submodules/serde/schema-serde-lib/schema-date-utils.js +110 -0
  102. package/node_modules/@smithy/core/dist-es/submodules/serde/value/NumericValue.js +4 -26
  103. package/node_modules/@smithy/core/dist-types/submodules/schema/index.d.ts +1 -0
  104. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/NormalizedSchema.d.ts +5 -24
  105. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/sentinels.d.ts +2 -0
  106. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/translateTraits.d.ts +7 -0
  107. package/node_modules/@smithy/core/dist-types/submodules/serde/index.d.ts +1 -0
  108. package/node_modules/@smithy/core/dist-types/submodules/serde/schema-serde-lib/schema-date-utils.d.ts +47 -0
  109. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/index.d.ts +1 -0
  110. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/NormalizedSchema.d.ts +5 -24
  111. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/sentinels.d.ts +2 -0
  112. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/translateTraits.d.ts +7 -0
  113. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/index.d.ts +1 -0
  114. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/schema-serde-lib/schema-date-utils.d.ts +47 -0
  115. package/node_modules/@smithy/core/package.json +3 -3
  116. package/node_modules/@smithy/fetch-http-handler/package.json +2 -2
  117. package/node_modules/@smithy/hash-blob-browser/package.json +2 -2
  118. package/node_modules/@smithy/middleware-endpoint/package.json +2 -2
  119. package/node_modules/@smithy/middleware-retry/package.json +2 -2
  120. package/node_modules/@smithy/smithy-client/package.json +4 -4
  121. package/node_modules/@smithy/util-base64/dist-cjs/constants.browser.js +9 -32
  122. package/node_modules/@smithy/util-base64/dist-es/constants.browser.js +9 -28
  123. package/node_modules/@smithy/util-base64/dist-types/constants.browser.d.ts +5 -6
  124. package/node_modules/@smithy/util-base64/dist-types/ts3.4/constants.browser.d.ts +5 -6
  125. package/node_modules/@smithy/util-base64/package.json +1 -1
  126. package/node_modules/@smithy/util-body-length-node/dist-cjs/index.js +8 -6
  127. package/node_modules/@smithy/util-body-length-node/dist-es/calculateBodyLength.js +8 -6
  128. package/node_modules/@smithy/util-body-length-node/package.json +1 -1
  129. package/node_modules/@smithy/util-defaults-mode-browser/dist-cjs/resolveDefaultsModeConfig.js +11 -9
  130. package/node_modules/@smithy/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js +11 -8
  131. package/node_modules/@smithy/util-defaults-mode-browser/package.json +2 -3
  132. package/node_modules/@smithy/util-defaults-mode-node/package.json +2 -2
  133. package/node_modules/@smithy/util-stream/dist-cjs/index.js +3 -5
  134. package/node_modules/@smithy/util-stream/dist-es/blob/Uint8ArrayBlobAdapter.js +3 -5
  135. package/node_modules/@smithy/util-stream/dist-types/blob/Uint8ArrayBlobAdapter.d.ts +1 -0
  136. package/node_modules/@smithy/util-stream/dist-types/ts3.4/blob/Uint8ArrayBlobAdapter.d.ts +1 -0
  137. package/node_modules/@smithy/util-stream/package.json +3 -3
  138. package/package.json +10 -10
@@ -1,700 +1,570 @@
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
- NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS: () => NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS,
25
- S3ExpressIdentityCache: () => S3ExpressIdentityCache,
26
- S3ExpressIdentityCacheEntry: () => S3ExpressIdentityCacheEntry,
27
- S3ExpressIdentityProviderImpl: () => S3ExpressIdentityProviderImpl,
28
- SignatureV4S3Express: () => SignatureV4S3Express,
29
- checkContentLengthHeader: () => checkContentLengthHeader,
30
- checkContentLengthHeaderMiddlewareOptions: () => checkContentLengthHeaderMiddlewareOptions,
31
- getCheckContentLengthHeaderPlugin: () => getCheckContentLengthHeaderPlugin,
32
- getRegionRedirectMiddlewarePlugin: () => getRegionRedirectMiddlewarePlugin,
33
- getS3ExpiresMiddlewarePlugin: () => getS3ExpiresMiddlewarePlugin,
34
- getS3ExpressHttpSigningPlugin: () => getS3ExpressHttpSigningPlugin,
35
- getS3ExpressPlugin: () => getS3ExpressPlugin,
36
- getThrow200ExceptionsPlugin: () => getThrow200ExceptionsPlugin,
37
- getValidateBucketNamePlugin: () => getValidateBucketNamePlugin,
38
- regionRedirectEndpointMiddleware: () => regionRedirectEndpointMiddleware,
39
- regionRedirectEndpointMiddlewareOptions: () => regionRedirectEndpointMiddlewareOptions,
40
- regionRedirectMiddleware: () => regionRedirectMiddleware,
41
- regionRedirectMiddlewareOptions: () => regionRedirectMiddlewareOptions,
42
- resolveS3Config: () => resolveS3Config,
43
- s3ExpiresMiddleware: () => s3ExpiresMiddleware,
44
- s3ExpiresMiddlewareOptions: () => s3ExpiresMiddlewareOptions,
45
- s3ExpressHttpSigningMiddleware: () => s3ExpressHttpSigningMiddleware,
46
- s3ExpressHttpSigningMiddlewareOptions: () => s3ExpressHttpSigningMiddlewareOptions,
47
- s3ExpressMiddleware: () => s3ExpressMiddleware,
48
- s3ExpressMiddlewareOptions: () => s3ExpressMiddlewareOptions,
49
- throw200ExceptionsMiddleware: () => throw200ExceptionsMiddleware,
50
- throw200ExceptionsMiddlewareOptions: () => throw200ExceptionsMiddlewareOptions,
51
- validateBucketNameMiddleware: () => validateBucketNameMiddleware,
52
- validateBucketNameMiddlewareOptions: () => validateBucketNameMiddlewareOptions
53
- });
54
- module.exports = __toCommonJS(index_exports);
3
+ var protocolHttp = require('@smithy/protocol-http');
4
+ var smithyClient = require('@smithy/smithy-client');
5
+ var signatureV4 = require('@smithy/signature-v4');
6
+ var utilConfigProvider = require('@smithy/util-config-provider');
7
+ var core = require('@aws-sdk/core');
8
+ var core$1 = require('@smithy/core');
9
+ require('@smithy/types');
10
+ var utilMiddleware = require('@smithy/util-middleware');
11
+ var utilStream = require('@smithy/util-stream');
12
+ var utilArnParser = require('@aws-sdk/util-arn-parser');
55
13
 
56
- // src/check-content-length-header.ts
57
- var import_protocol_http = require("@smithy/protocol-http");
58
- var import_smithy_client = require("@smithy/smithy-client");
59
- var CONTENT_LENGTH_HEADER = "content-length";
60
- var DECODED_CONTENT_LENGTH_HEADER = "x-amz-decoded-content-length";
14
+ const CONTENT_LENGTH_HEADER = "content-length";
15
+ const DECODED_CONTENT_LENGTH_HEADER = "x-amz-decoded-content-length";
61
16
  function checkContentLengthHeader() {
62
- return (next, context) => async (args) => {
63
- const { request } = args;
64
- if (import_protocol_http.HttpRequest.isInstance(request)) {
65
- if (!(CONTENT_LENGTH_HEADER in request.headers) && !(DECODED_CONTENT_LENGTH_HEADER in request.headers)) {
66
- const message = `Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.`;
67
- if (typeof context?.logger?.warn === "function" && !(context.logger instanceof import_smithy_client.NoOpLogger)) {
68
- context.logger.warn(message);
69
- } else {
70
- console.warn(message);
17
+ return (next, context) => async (args) => {
18
+ const { request } = args;
19
+ if (protocolHttp.HttpRequest.isInstance(request)) {
20
+ if (!(CONTENT_LENGTH_HEADER in request.headers) && !(DECODED_CONTENT_LENGTH_HEADER in request.headers)) {
21
+ const message = `Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.`;
22
+ if (typeof context?.logger?.warn === "function" && !(context.logger instanceof smithyClient.NoOpLogger)) {
23
+ context.logger.warn(message);
24
+ }
25
+ else {
26
+ console.warn(message);
27
+ }
28
+ }
71
29
  }
72
- }
73
- }
74
- return next({ ...args });
75
- };
30
+ return next({ ...args });
31
+ };
76
32
  }
77
- __name(checkContentLengthHeader, "checkContentLengthHeader");
78
- var checkContentLengthHeaderMiddlewareOptions = {
79
- step: "finalizeRequest",
80
- tags: ["CHECK_CONTENT_LENGTH_HEADER"],
81
- name: "getCheckContentLengthHeaderPlugin",
82
- override: true
33
+ const checkContentLengthHeaderMiddlewareOptions = {
34
+ step: "finalizeRequest",
35
+ tags: ["CHECK_CONTENT_LENGTH_HEADER"],
36
+ name: "getCheckContentLengthHeaderPlugin",
37
+ override: true,
83
38
  };
84
- var getCheckContentLengthHeaderPlugin = /* @__PURE__ */ __name((unused) => ({
85
- applyToStack: /* @__PURE__ */ __name((clientStack) => {
86
- clientStack.add(checkContentLengthHeader(), checkContentLengthHeaderMiddlewareOptions);
87
- }, "applyToStack")
88
- }), "getCheckContentLengthHeaderPlugin");
39
+ const getCheckContentLengthHeaderPlugin = (unused) => ({
40
+ applyToStack: (clientStack) => {
41
+ clientStack.add(checkContentLengthHeader(), checkContentLengthHeaderMiddlewareOptions);
42
+ },
43
+ });
89
44
 
90
- // src/region-redirect-endpoint-middleware.ts
91
- var regionRedirectEndpointMiddleware = /* @__PURE__ */ __name((config) => {
92
- return (next, context) => async (args) => {
93
- const originalRegion = await config.region();
94
- const regionProviderRef = config.region;
95
- let unlock = /* @__PURE__ */ __name(() => {
96
- }, "unlock");
97
- if (context.__s3RegionRedirect) {
98
- Object.defineProperty(config, "region", {
99
- writable: false,
100
- value: /* @__PURE__ */ __name(async () => {
101
- return context.__s3RegionRedirect;
102
- }, "value")
103
- });
104
- unlock = /* @__PURE__ */ __name(() => Object.defineProperty(config, "region", {
105
- writable: true,
106
- value: regionProviderRef
107
- }), "unlock");
108
- }
109
- try {
110
- const result = await next(args);
111
- if (context.__s3RegionRedirect) {
112
- unlock();
113
- const region = await config.region();
114
- if (originalRegion !== region) {
115
- throw new Error("Region was not restored following S3 region redirect.");
45
+ const regionRedirectEndpointMiddleware = (config) => {
46
+ return (next, context) => async (args) => {
47
+ const originalRegion = await config.region();
48
+ const regionProviderRef = config.region;
49
+ let unlock = () => { };
50
+ if (context.__s3RegionRedirect) {
51
+ Object.defineProperty(config, "region", {
52
+ writable: false,
53
+ value: async () => {
54
+ return context.__s3RegionRedirect;
55
+ },
56
+ });
57
+ unlock = () => Object.defineProperty(config, "region", {
58
+ writable: true,
59
+ value: regionProviderRef,
60
+ });
116
61
  }
117
- }
118
- return result;
119
- } catch (e) {
120
- unlock();
121
- throw e;
122
- }
123
- };
124
- }, "regionRedirectEndpointMiddleware");
125
- var regionRedirectEndpointMiddlewareOptions = {
126
- tags: ["REGION_REDIRECT", "S3"],
127
- name: "regionRedirectEndpointMiddleware",
128
- override: true,
129
- relation: "before",
130
- toMiddleware: "endpointV2Middleware"
62
+ try {
63
+ const result = await next(args);
64
+ if (context.__s3RegionRedirect) {
65
+ unlock();
66
+ const region = await config.region();
67
+ if (originalRegion !== region) {
68
+ throw new Error("Region was not restored following S3 region redirect.");
69
+ }
70
+ }
71
+ return result;
72
+ }
73
+ catch (e) {
74
+ unlock();
75
+ throw e;
76
+ }
77
+ };
78
+ };
79
+ const regionRedirectEndpointMiddlewareOptions = {
80
+ tags: ["REGION_REDIRECT", "S3"],
81
+ name: "regionRedirectEndpointMiddleware",
82
+ override: true,
83
+ relation: "before",
84
+ toMiddleware: "endpointV2Middleware",
131
85
  };
132
86
 
133
- // src/region-redirect-middleware.ts
134
87
  function regionRedirectMiddleware(clientConfig) {
135
- return (next, context) => async (args) => {
136
- try {
137
- return await next(args);
138
- } catch (err) {
139
- if (clientConfig.followRegionRedirects) {
140
- const statusCode = err?.$metadata?.httpStatusCode;
141
- const isHeadBucket = context.commandName === "HeadBucketCommand";
142
- const bucketRegionHeader = err?.$response?.headers?.["x-amz-bucket-region"];
143
- if (bucketRegionHeader) {
144
- if (statusCode === 301 || statusCode === 400 && (err?.name === "IllegalLocationConstraintException" || isHeadBucket)) {
145
- try {
146
- const actualRegion = bucketRegionHeader;
147
- context.logger?.debug(`Redirecting from ${await clientConfig.region()} to ${actualRegion}`);
148
- context.__s3RegionRedirect = actualRegion;
149
- } catch (e) {
150
- throw new Error("Region redirect failed: " + e);
88
+ return (next, context) => async (args) => {
89
+ try {
90
+ return await next(args);
91
+ }
92
+ catch (err) {
93
+ if (clientConfig.followRegionRedirects) {
94
+ const statusCode = err?.$metadata?.httpStatusCode;
95
+ const isHeadBucket = context.commandName === "HeadBucketCommand";
96
+ const bucketRegionHeader = err?.$response?.headers?.["x-amz-bucket-region"];
97
+ if (bucketRegionHeader) {
98
+ if (statusCode === 301 ||
99
+ (statusCode === 400 && (err?.name === "IllegalLocationConstraintException" || isHeadBucket))) {
100
+ try {
101
+ const actualRegion = bucketRegionHeader;
102
+ context.logger?.debug(`Redirecting from ${await clientConfig.region()} to ${actualRegion}`);
103
+ context.__s3RegionRedirect = actualRegion;
104
+ }
105
+ catch (e) {
106
+ throw new Error("Region redirect failed: " + e);
107
+ }
108
+ return next(args);
109
+ }
110
+ }
151
111
  }
152
- return next(args);
153
- }
112
+ throw err;
154
113
  }
155
- }
156
- throw err;
157
- }
158
- };
114
+ };
159
115
  }
160
- __name(regionRedirectMiddleware, "regionRedirectMiddleware");
161
- var regionRedirectMiddlewareOptions = {
162
- step: "initialize",
163
- tags: ["REGION_REDIRECT", "S3"],
164
- name: "regionRedirectMiddleware",
165
- override: true
116
+ const regionRedirectMiddlewareOptions = {
117
+ step: "initialize",
118
+ tags: ["REGION_REDIRECT", "S3"],
119
+ name: "regionRedirectMiddleware",
120
+ override: true,
166
121
  };
167
- var getRegionRedirectMiddlewarePlugin = /* @__PURE__ */ __name((clientConfig) => ({
168
- applyToStack: /* @__PURE__ */ __name((clientStack) => {
169
- clientStack.add(regionRedirectMiddleware(clientConfig), regionRedirectMiddlewareOptions);
170
- clientStack.addRelativeTo(regionRedirectEndpointMiddleware(clientConfig), regionRedirectEndpointMiddlewareOptions);
171
- }, "applyToStack")
172
- }), "getRegionRedirectMiddlewarePlugin");
173
-
174
- // src/s3-expires-middleware.ts
175
-
122
+ const getRegionRedirectMiddlewarePlugin = (clientConfig) => ({
123
+ applyToStack: (clientStack) => {
124
+ clientStack.add(regionRedirectMiddleware(clientConfig), regionRedirectMiddlewareOptions);
125
+ clientStack.addRelativeTo(regionRedirectEndpointMiddleware(clientConfig), regionRedirectEndpointMiddlewareOptions);
126
+ },
127
+ });
176
128
 
177
- var s3ExpiresMiddleware = /* @__PURE__ */ __name((config) => {
178
- return (next, context) => async (args) => {
179
- const result = await next(args);
180
- const { response } = result;
181
- if (import_protocol_http.HttpResponse.isInstance(response)) {
182
- if (response.headers.expires) {
183
- response.headers.expiresstring = response.headers.expires;
184
- try {
185
- (0, import_smithy_client.parseRfc7231DateTime)(response.headers.expires);
186
- } catch (e) {
187
- context.logger?.warn(
188
- `AWS SDK Warning for ${context.clientName}::${context.commandName} response parsing (${response.headers.expires}): ${e}`
189
- );
190
- delete response.headers.expires;
129
+ const s3ExpiresMiddleware = (config) => {
130
+ return (next, context) => async (args) => {
131
+ const result = await next(args);
132
+ const { response } = result;
133
+ if (protocolHttp.HttpResponse.isInstance(response)) {
134
+ if (response.headers.expires) {
135
+ response.headers.expiresstring = response.headers.expires;
136
+ try {
137
+ smithyClient.parseRfc7231DateTime(response.headers.expires);
138
+ }
139
+ catch (e) {
140
+ context.logger?.warn(`AWS SDK Warning for ${context.clientName}::${context.commandName} response parsing (${response.headers.expires}): ${e}`);
141
+ delete response.headers.expires;
142
+ }
143
+ }
191
144
  }
192
- }
193
- }
194
- return result;
195
- };
196
- }, "s3ExpiresMiddleware");
197
- var s3ExpiresMiddlewareOptions = {
198
- tags: ["S3"],
199
- name: "s3ExpiresMiddleware",
200
- override: true,
201
- relation: "after",
202
- toMiddleware: "deserializerMiddleware"
145
+ return result;
146
+ };
203
147
  };
204
- var getS3ExpiresMiddlewarePlugin = /* @__PURE__ */ __name((clientConfig) => ({
205
- applyToStack: /* @__PURE__ */ __name((clientStack) => {
206
- clientStack.addRelativeTo(s3ExpiresMiddleware(clientConfig), s3ExpiresMiddlewareOptions);
207
- }, "applyToStack")
208
- }), "getS3ExpiresMiddlewarePlugin");
148
+ const s3ExpiresMiddlewareOptions = {
149
+ tags: ["S3"],
150
+ name: "s3ExpiresMiddleware",
151
+ override: true,
152
+ relation: "after",
153
+ toMiddleware: "deserializerMiddleware",
154
+ };
155
+ const getS3ExpiresMiddlewarePlugin = (clientConfig) => ({
156
+ applyToStack: (clientStack) => {
157
+ clientStack.addRelativeTo(s3ExpiresMiddleware(), s3ExpiresMiddlewareOptions);
158
+ },
159
+ });
209
160
 
210
- // src/s3-express/classes/S3ExpressIdentityCache.ts
211
- var S3ExpressIdentityCache = class _S3ExpressIdentityCache {
212
- constructor(data = {}) {
213
- this.data = data;
214
- }
215
- static {
216
- __name(this, "S3ExpressIdentityCache");
217
- }
218
- lastPurgeTime = Date.now();
219
- static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS = 3e4;
220
- get(key) {
221
- const entry = this.data[key];
222
- if (!entry) {
223
- return;
161
+ class S3ExpressIdentityCache {
162
+ data;
163
+ lastPurgeTime = Date.now();
164
+ static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS = 30_000;
165
+ constructor(data = {}) {
166
+ this.data = data;
224
167
  }
225
- return entry;
226
- }
227
- set(key, entry) {
228
- this.data[key] = entry;
229
- return entry;
230
- }
231
- delete(key) {
232
- delete this.data[key];
233
- }
234
- async purgeExpired() {
235
- const now = Date.now();
236
- if (this.lastPurgeTime + _S3ExpressIdentityCache.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS > now) {
237
- return;
168
+ get(key) {
169
+ const entry = this.data[key];
170
+ if (!entry) {
171
+ return;
172
+ }
173
+ return entry;
238
174
  }
239
- for (const key in this.data) {
240
- const entry = this.data[key];
241
- if (!entry.isRefreshing) {
242
- const credential = await entry.identity;
243
- if (credential.expiration) {
244
- if (credential.expiration.getTime() < now) {
245
- delete this.data[key];
246
- }
175
+ set(key, entry) {
176
+ this.data[key] = entry;
177
+ return entry;
178
+ }
179
+ delete(key) {
180
+ delete this.data[key];
181
+ }
182
+ async purgeExpired() {
183
+ const now = Date.now();
184
+ if (this.lastPurgeTime + S3ExpressIdentityCache.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS > now) {
185
+ return;
186
+ }
187
+ for (const key in this.data) {
188
+ const entry = this.data[key];
189
+ if (!entry.isRefreshing) {
190
+ const credential = await entry.identity;
191
+ if (credential.expiration) {
192
+ if (credential.expiration.getTime() < now) {
193
+ delete this.data[key];
194
+ }
195
+ }
196
+ }
247
197
  }
248
- }
249
198
  }
250
- }
251
- };
199
+ }
252
200
 
253
- // src/s3-express/classes/S3ExpressIdentityCacheEntry.ts
254
- var S3ExpressIdentityCacheEntry = class {
255
- /**
256
- * @param identity - stored identity.
257
- * @param accessed - timestamp of last access in epoch ms.
258
- * @param isRefreshing - this key is currently in the process of being refreshed (background).
259
- */
260
- constructor(_identity, isRefreshing = false, accessed = Date.now()) {
261
- this._identity = _identity;
262
- this.isRefreshing = isRefreshing;
263
- this.accessed = accessed;
264
- }
265
- static {
266
- __name(this, "S3ExpressIdentityCacheEntry");
267
- }
268
- get identity() {
269
- this.accessed = Date.now();
270
- return this._identity;
271
- }
272
- };
201
+ class S3ExpressIdentityCacheEntry {
202
+ _identity;
203
+ isRefreshing;
204
+ accessed;
205
+ constructor(_identity, isRefreshing = false, accessed = Date.now()) {
206
+ this._identity = _identity;
207
+ this.isRefreshing = isRefreshing;
208
+ this.accessed = accessed;
209
+ }
210
+ get identity() {
211
+ this.accessed = Date.now();
212
+ return this._identity;
213
+ }
214
+ }
273
215
 
274
- // src/s3-express/classes/S3ExpressIdentityProviderImpl.ts
275
- var S3ExpressIdentityProviderImpl = class _S3ExpressIdentityProviderImpl {
276
- constructor(createSessionFn, cache = new S3ExpressIdentityCache()) {
277
- this.createSessionFn = createSessionFn;
278
- this.cache = cache;
279
- }
280
- static {
281
- __name(this, "S3ExpressIdentityProviderImpl");
282
- }
283
- static REFRESH_WINDOW_MS = 6e4;
284
- async getS3ExpressIdentity(awsIdentity, identityProperties) {
285
- const key = identityProperties.Bucket;
286
- const { cache } = this;
287
- const entry = cache.get(key);
288
- if (entry) {
289
- return entry.identity.then((identity) => {
290
- const isExpired = (identity.expiration?.getTime() ?? 0) < Date.now();
291
- if (isExpired) {
292
- return cache.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity;
216
+ class S3ExpressIdentityProviderImpl {
217
+ createSessionFn;
218
+ cache;
219
+ static REFRESH_WINDOW_MS = 60_000;
220
+ constructor(createSessionFn, cache = new S3ExpressIdentityCache()) {
221
+ this.createSessionFn = createSessionFn;
222
+ this.cache = cache;
223
+ }
224
+ async getS3ExpressIdentity(awsIdentity, identityProperties) {
225
+ const key = identityProperties.Bucket;
226
+ const { cache } = this;
227
+ const entry = cache.get(key);
228
+ if (entry) {
229
+ return entry.identity.then((identity) => {
230
+ const isExpired = (identity.expiration?.getTime() ?? 0) < Date.now();
231
+ if (isExpired) {
232
+ return cache.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity;
233
+ }
234
+ const isExpiringSoon = (identity.expiration?.getTime() ?? 0) < Date.now() + S3ExpressIdentityProviderImpl.REFRESH_WINDOW_MS;
235
+ if (isExpiringSoon && !entry.isRefreshing) {
236
+ entry.isRefreshing = true;
237
+ this.getIdentity(key).then((id) => {
238
+ cache.set(key, new S3ExpressIdentityCacheEntry(Promise.resolve(id)));
239
+ });
240
+ }
241
+ return identity;
242
+ });
293
243
  }
294
- const isExpiringSoon = (identity.expiration?.getTime() ?? 0) < Date.now() + _S3ExpressIdentityProviderImpl.REFRESH_WINDOW_MS;
295
- if (isExpiringSoon && !entry.isRefreshing) {
296
- entry.isRefreshing = true;
297
- this.getIdentity(key).then((id) => {
298
- cache.set(key, new S3ExpressIdentityCacheEntry(Promise.resolve(id)));
299
- });
244
+ return cache.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity;
245
+ }
246
+ async getIdentity(key) {
247
+ await this.cache.purgeExpired().catch((error) => {
248
+ console.warn("Error while clearing expired entries in S3ExpressIdentityCache: \n" + error);
249
+ });
250
+ const session = await this.createSessionFn(key);
251
+ if (!session.Credentials?.AccessKeyId || !session.Credentials?.SecretAccessKey) {
252
+ throw new Error("s3#createSession response credential missing AccessKeyId or SecretAccessKey.");
300
253
  }
254
+ const identity = {
255
+ accessKeyId: session.Credentials.AccessKeyId,
256
+ secretAccessKey: session.Credentials.SecretAccessKey,
257
+ sessionToken: session.Credentials.SessionToken,
258
+ expiration: session.Credentials.Expiration ? new Date(session.Credentials.Expiration) : undefined,
259
+ };
301
260
  return identity;
302
- });
303
261
  }
304
- return cache.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity;
305
- }
306
- async getIdentity(key) {
307
- await this.cache.purgeExpired().catch((error) => {
308
- console.warn("Error while clearing expired entries in S3ExpressIdentityCache: \n" + error);
309
- });
310
- const session = await this.createSessionFn(key);
311
- if (!session.Credentials?.AccessKeyId || !session.Credentials?.SecretAccessKey) {
312
- throw new Error("s3#createSession response credential missing AccessKeyId or SecretAccessKey.");
313
- }
314
- const identity = {
315
- accessKeyId: session.Credentials.AccessKeyId,
316
- secretAccessKey: session.Credentials.SecretAccessKey,
317
- sessionToken: session.Credentials.SessionToken,
318
- expiration: session.Credentials.Expiration ? new Date(session.Credentials.Expiration) : void 0
319
- };
320
- return identity;
321
- }
322
- };
323
-
324
- // src/s3-express/classes/SignatureV4S3Express.ts
325
- var import_signature_v4 = require("@smithy/signature-v4");
262
+ }
326
263
 
327
- // src/s3-express/constants.ts
328
- var import_util_config_provider = require("@smithy/util-config-provider");
329
- var S3_EXPRESS_BUCKET_TYPE = "Directory";
330
- var S3_EXPRESS_BACKEND = "S3Express";
331
- var S3_EXPRESS_AUTH_SCHEME = "sigv4-s3express";
332
- var SESSION_TOKEN_QUERY_PARAM = "X-Amz-S3session-Token";
333
- var SESSION_TOKEN_HEADER = SESSION_TOKEN_QUERY_PARAM.toLowerCase();
334
- var NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME = "AWS_S3_DISABLE_EXPRESS_SESSION_AUTH";
335
- var NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME = "s3_disable_express_session_auth";
336
- var NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS = {
337
- environmentVariableSelector: /* @__PURE__ */ __name((env) => (0, import_util_config_provider.booleanSelector)(env, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME, import_util_config_provider.SelectorType.ENV), "environmentVariableSelector"),
338
- configFileSelector: /* @__PURE__ */ __name((profile) => (0, import_util_config_provider.booleanSelector)(profile, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME, import_util_config_provider.SelectorType.CONFIG), "configFileSelector"),
339
- default: false
264
+ const S3_EXPRESS_BUCKET_TYPE = "Directory";
265
+ const S3_EXPRESS_BACKEND = "S3Express";
266
+ const S3_EXPRESS_AUTH_SCHEME = "sigv4-s3express";
267
+ const SESSION_TOKEN_QUERY_PARAM = "X-Amz-S3session-Token";
268
+ const SESSION_TOKEN_HEADER = SESSION_TOKEN_QUERY_PARAM.toLowerCase();
269
+ const NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME = "AWS_S3_DISABLE_EXPRESS_SESSION_AUTH";
270
+ const NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME = "s3_disable_express_session_auth";
271
+ const NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS = {
272
+ environmentVariableSelector: (env) => utilConfigProvider.booleanSelector(env, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME, utilConfigProvider.SelectorType.ENV),
273
+ configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME, utilConfigProvider.SelectorType.CONFIG),
274
+ default: false,
340
275
  };
341
276
 
342
- // src/s3-express/classes/SignatureV4S3Express.ts
343
- var SignatureV4S3Express = class extends import_signature_v4.SignatureV4 {
344
- static {
345
- __name(this, "SignatureV4S3Express");
346
- }
347
- /**
348
- * Signs with alternate provided credentials instead of those provided in the
349
- * constructor.
350
- *
351
- * Additionally omits the credential sessionToken and assigns it to the
352
- * alternate header field for S3 Express.
353
- */
354
- async signWithCredentials(requestToSign, credentials, options) {
355
- const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials);
356
- requestToSign.headers[SESSION_TOKEN_HEADER] = credentials.sessionToken;
357
- const privateAccess = this;
358
- setSingleOverride(privateAccess, credentialsWithoutSessionToken);
359
- return privateAccess.signRequest(requestToSign, options ?? {});
360
- }
361
- /**
362
- * Similar to {@link SignatureV4S3Express#signWithCredentials} but for presigning.
363
- */
364
- async presignWithCredentials(requestToSign, credentials, options) {
365
- const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials);
366
- delete requestToSign.headers[SESSION_TOKEN_HEADER];
367
- requestToSign.headers[SESSION_TOKEN_QUERY_PARAM] = credentials.sessionToken;
368
- requestToSign.query = requestToSign.query ?? {};
369
- requestToSign.query[SESSION_TOKEN_QUERY_PARAM] = credentials.sessionToken;
370
- const privateAccess = this;
371
- setSingleOverride(privateAccess, credentialsWithoutSessionToken);
372
- return this.presign(requestToSign, options);
373
- }
374
- };
277
+ class SignatureV4S3Express extends signatureV4.SignatureV4 {
278
+ async signWithCredentials(requestToSign, credentials, options) {
279
+ const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials);
280
+ requestToSign.headers[SESSION_TOKEN_HEADER] = credentials.sessionToken;
281
+ const privateAccess = this;
282
+ setSingleOverride(privateAccess, credentialsWithoutSessionToken);
283
+ return privateAccess.signRequest(requestToSign, options ?? {});
284
+ }
285
+ async presignWithCredentials(requestToSign, credentials, options) {
286
+ const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials);
287
+ delete requestToSign.headers[SESSION_TOKEN_HEADER];
288
+ requestToSign.headers[SESSION_TOKEN_QUERY_PARAM] = credentials.sessionToken;
289
+ requestToSign.query = requestToSign.query ?? {};
290
+ requestToSign.query[SESSION_TOKEN_QUERY_PARAM] = credentials.sessionToken;
291
+ const privateAccess = this;
292
+ setSingleOverride(privateAccess, credentialsWithoutSessionToken);
293
+ return this.presign(requestToSign, options);
294
+ }
295
+ }
375
296
  function getCredentialsWithoutSessionToken(credentials) {
376
- const credentialsWithoutSessionToken = {
377
- accessKeyId: credentials.accessKeyId,
378
- secretAccessKey: credentials.secretAccessKey,
379
- expiration: credentials.expiration
380
- };
381
- return credentialsWithoutSessionToken;
297
+ const credentialsWithoutSessionToken = {
298
+ accessKeyId: credentials.accessKeyId,
299
+ secretAccessKey: credentials.secretAccessKey,
300
+ expiration: credentials.expiration,
301
+ };
302
+ return credentialsWithoutSessionToken;
382
303
  }
383
- __name(getCredentialsWithoutSessionToken, "getCredentialsWithoutSessionToken");
384
304
  function setSingleOverride(privateAccess, credentialsWithoutSessionToken) {
385
- const id = setTimeout(() => {
386
- throw new Error("SignatureV4S3Express credential override was created but not called.");
387
- }, 10);
388
- const currentCredentialProvider = privateAccess.credentialProvider;
389
- const overrideCredentialsProviderOnce = /* @__PURE__ */ __name(() => {
390
- clearTimeout(id);
391
- privateAccess.credentialProvider = currentCredentialProvider;
392
- return Promise.resolve(credentialsWithoutSessionToken);
393
- }, "overrideCredentialsProviderOnce");
394
- privateAccess.credentialProvider = overrideCredentialsProviderOnce;
305
+ const id = setTimeout(() => {
306
+ throw new Error("SignatureV4S3Express credential override was created but not called.");
307
+ }, 10);
308
+ const currentCredentialProvider = privateAccess.credentialProvider;
309
+ const overrideCredentialsProviderOnce = () => {
310
+ clearTimeout(id);
311
+ privateAccess.credentialProvider = currentCredentialProvider;
312
+ return Promise.resolve(credentialsWithoutSessionToken);
313
+ };
314
+ privateAccess.credentialProvider = overrideCredentialsProviderOnce;
395
315
  }
396
- __name(setSingleOverride, "setSingleOverride");
397
-
398
- // src/s3-express/functions/s3ExpressMiddleware.ts
399
- var import_core = require("@aws-sdk/core");
400
316
 
401
- var s3ExpressMiddleware = /* @__PURE__ */ __name((options) => {
402
- return (next, context) => async (args) => {
403
- if (context.endpointV2) {
404
- const endpoint = context.endpointV2;
405
- const isS3ExpressAuth = endpoint.properties?.authSchemes?.[0]?.name === S3_EXPRESS_AUTH_SCHEME;
406
- const isS3ExpressBucket = endpoint.properties?.backend === S3_EXPRESS_BACKEND || endpoint.properties?.bucketType === S3_EXPRESS_BUCKET_TYPE;
407
- if (isS3ExpressBucket) {
408
- (0, import_core.setFeature)(context, "S3_EXPRESS_BUCKET", "J");
409
- context.isS3ExpressBucket = true;
410
- }
411
- if (isS3ExpressAuth) {
412
- const requestBucket = args.input.Bucket;
413
- if (requestBucket) {
414
- const s3ExpressIdentity = await options.s3ExpressIdentityProvider.getS3ExpressIdentity(
415
- await options.credentials(),
416
- {
417
- Bucket: requestBucket
317
+ const s3ExpressMiddleware = (options) => {
318
+ return (next, context) => async (args) => {
319
+ if (context.endpointV2) {
320
+ const endpoint = context.endpointV2;
321
+ const isS3ExpressAuth = endpoint.properties?.authSchemes?.[0]?.name === S3_EXPRESS_AUTH_SCHEME;
322
+ const isS3ExpressBucket = endpoint.properties?.backend === S3_EXPRESS_BACKEND ||
323
+ endpoint.properties?.bucketType === S3_EXPRESS_BUCKET_TYPE;
324
+ if (isS3ExpressBucket) {
325
+ core.setFeature(context, "S3_EXPRESS_BUCKET", "J");
326
+ context.isS3ExpressBucket = true;
327
+ }
328
+ if (isS3ExpressAuth) {
329
+ const requestBucket = args.input.Bucket;
330
+ if (requestBucket) {
331
+ const s3ExpressIdentity = await options.s3ExpressIdentityProvider.getS3ExpressIdentity(await options.credentials(), {
332
+ Bucket: requestBucket,
333
+ });
334
+ context.s3ExpressIdentity = s3ExpressIdentity;
335
+ if (protocolHttp.HttpRequest.isInstance(args.request) && s3ExpressIdentity.sessionToken) {
336
+ args.request.headers[SESSION_TOKEN_HEADER] = s3ExpressIdentity.sessionToken;
337
+ }
338
+ }
418
339
  }
419
- );
420
- context.s3ExpressIdentity = s3ExpressIdentity;
421
- if (import_protocol_http.HttpRequest.isInstance(args.request) && s3ExpressIdentity.sessionToken) {
422
- args.request.headers[SESSION_TOKEN_HEADER] = s3ExpressIdentity.sessionToken;
423
- }
424
340
  }
425
- }
426
- }
427
- return next(args);
428
- };
429
- }, "s3ExpressMiddleware");
430
- var s3ExpressMiddlewareOptions = {
431
- name: "s3ExpressMiddleware",
432
- step: "build",
433
- tags: ["S3", "S3_EXPRESS"],
434
- override: true
341
+ return next(args);
342
+ };
435
343
  };
436
- var getS3ExpressPlugin = /* @__PURE__ */ __name((options) => ({
437
- applyToStack: /* @__PURE__ */ __name((clientStack) => {
438
- clientStack.add(s3ExpressMiddleware(options), s3ExpressMiddlewareOptions);
439
- }, "applyToStack")
440
- }), "getS3ExpressPlugin");
441
-
442
- // src/s3-express/functions/s3ExpressHttpSigningMiddleware.ts
443
- var import_core2 = require("@smithy/core");
444
-
445
- var import_util_middleware = require("@smithy/util-middleware");
446
-
447
- // src/s3-express/functions/signS3Express.ts
448
- var signS3Express = /* @__PURE__ */ __name(async (s3ExpressIdentity, signingOptions, request, sigV4MultiRegionSigner) => {
449
- const signedRequest = await sigV4MultiRegionSigner.signWithCredentials(request, s3ExpressIdentity, {});
450
- if (signedRequest.headers["X-Amz-Security-Token"] || signedRequest.headers["x-amz-security-token"]) {
451
- throw new Error("X-Amz-Security-Token must not be set for s3-express requests.");
452
- }
453
- return signedRequest;
454
- }, "signS3Express");
344
+ const s3ExpressMiddlewareOptions = {
345
+ name: "s3ExpressMiddleware",
346
+ step: "build",
347
+ tags: ["S3", "S3_EXPRESS"],
348
+ override: true,
349
+ };
350
+ const getS3ExpressPlugin = (options) => ({
351
+ applyToStack: (clientStack) => {
352
+ clientStack.add(s3ExpressMiddleware(options), s3ExpressMiddlewareOptions);
353
+ },
354
+ });
455
355
 
456
- // src/s3-express/functions/s3ExpressHttpSigningMiddleware.ts
457
- var defaultErrorHandler = /* @__PURE__ */ __name((signingProperties) => (error) => {
458
- throw error;
459
- }, "defaultErrorHandler");
460
- var defaultSuccessHandler = /* @__PURE__ */ __name((httpResponse, signingProperties) => {
461
- }, "defaultSuccessHandler");
462
- var s3ExpressHttpSigningMiddlewareOptions = import_core2.httpSigningMiddlewareOptions;
463
- var s3ExpressHttpSigningMiddleware = /* @__PURE__ */ __name((config) => (next, context) => async (args) => {
464
- if (!import_protocol_http.HttpRequest.isInstance(args.request)) {
465
- return next(args);
466
- }
467
- const smithyContext = (0, import_util_middleware.getSmithyContext)(context);
468
- const scheme = smithyContext.selectedHttpAuthScheme;
469
- if (!scheme) {
470
- throw new Error(`No HttpAuthScheme was selected: unable to sign request`);
471
- }
472
- const {
473
- httpAuthOption: { signingProperties = {} },
474
- identity,
475
- signer
476
- } = scheme;
477
- let request;
478
- if (context.s3ExpressIdentity) {
479
- request = await signS3Express(
480
- context.s3ExpressIdentity,
481
- signingProperties,
482
- args.request,
483
- await config.signer()
484
- );
485
- } else {
486
- request = await signer.sign(args.request, identity, signingProperties);
487
- }
488
- const output = await next({
489
- ...args,
490
- request
491
- }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties));
492
- (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties);
493
- return output;
494
- }, "s3ExpressHttpSigningMiddleware");
495
- var getS3ExpressHttpSigningPlugin = /* @__PURE__ */ __name((config) => ({
496
- applyToStack: /* @__PURE__ */ __name((clientStack) => {
497
- clientStack.addRelativeTo(
498
- s3ExpressHttpSigningMiddleware(config),
499
- import_core2.httpSigningMiddlewareOptions
500
- );
501
- }, "applyToStack")
502
- }), "getS3ExpressHttpSigningPlugin");
356
+ const signS3Express = async (s3ExpressIdentity, signingOptions, request, sigV4MultiRegionSigner) => {
357
+ const signedRequest = await sigV4MultiRegionSigner.signWithCredentials(request, s3ExpressIdentity, {});
358
+ if (signedRequest.headers["X-Amz-Security-Token"] || signedRequest.headers["x-amz-security-token"]) {
359
+ throw new Error("X-Amz-Security-Token must not be set for s3-express requests.");
360
+ }
361
+ return signedRequest;
362
+ };
503
363
 
504
- // src/s3Configuration.ts
505
- var resolveS3Config = /* @__PURE__ */ __name((input, {
506
- session
507
- }) => {
508
- const [s3ClientProvider, CreateSessionCommandCtor] = session;
509
- const {
510
- forcePathStyle,
511
- useAccelerateEndpoint,
512
- disableMultiregionAccessPoints,
513
- followRegionRedirects,
514
- s3ExpressIdentityProvider,
515
- bucketEndpoint
516
- } = input;
517
- return Object.assign(input, {
518
- forcePathStyle: forcePathStyle ?? false,
519
- useAccelerateEndpoint: useAccelerateEndpoint ?? false,
520
- disableMultiregionAccessPoints: disableMultiregionAccessPoints ?? false,
521
- followRegionRedirects: followRegionRedirects ?? false,
522
- s3ExpressIdentityProvider: s3ExpressIdentityProvider ?? new S3ExpressIdentityProviderImpl(
523
- async (key) => s3ClientProvider().send(
524
- new CreateSessionCommandCtor({
525
- Bucket: key
526
- })
527
- )
528
- ),
529
- bucketEndpoint: bucketEndpoint ?? false
530
- });
531
- }, "resolveS3Config");
364
+ const defaultErrorHandler = (signingProperties) => (error) => {
365
+ throw error;
366
+ };
367
+ const defaultSuccessHandler = (httpResponse, signingProperties) => { };
368
+ const s3ExpressHttpSigningMiddlewareOptions = core$1.httpSigningMiddlewareOptions;
369
+ const s3ExpressHttpSigningMiddleware = (config) => (next, context) => async (args) => {
370
+ if (!protocolHttp.HttpRequest.isInstance(args.request)) {
371
+ return next(args);
372
+ }
373
+ const smithyContext = utilMiddleware.getSmithyContext(context);
374
+ const scheme = smithyContext.selectedHttpAuthScheme;
375
+ if (!scheme) {
376
+ throw new Error(`No HttpAuthScheme was selected: unable to sign request`);
377
+ }
378
+ const { httpAuthOption: { signingProperties = {} }, identity, signer, } = scheme;
379
+ let request;
380
+ if (context.s3ExpressIdentity) {
381
+ request = await signS3Express(context.s3ExpressIdentity, signingProperties, args.request, await config.signer());
382
+ }
383
+ else {
384
+ request = await signer.sign(args.request, identity, signingProperties);
385
+ }
386
+ const output = await next({
387
+ ...args,
388
+ request,
389
+ }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties));
390
+ (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties);
391
+ return output;
392
+ };
393
+ const getS3ExpressHttpSigningPlugin = (config) => ({
394
+ applyToStack: (clientStack) => {
395
+ clientStack.addRelativeTo(s3ExpressHttpSigningMiddleware(config), core$1.httpSigningMiddlewareOptions);
396
+ },
397
+ });
532
398
 
533
- // src/throw-200-exceptions.ts
399
+ const resolveS3Config = (input, { session, }) => {
400
+ const [s3ClientProvider, CreateSessionCommandCtor] = session;
401
+ const { forcePathStyle, useAccelerateEndpoint, disableMultiregionAccessPoints, followRegionRedirects, s3ExpressIdentityProvider, bucketEndpoint, } = input;
402
+ return Object.assign(input, {
403
+ forcePathStyle: forcePathStyle ?? false,
404
+ useAccelerateEndpoint: useAccelerateEndpoint ?? false,
405
+ disableMultiregionAccessPoints: disableMultiregionAccessPoints ?? false,
406
+ followRegionRedirects: followRegionRedirects ?? false,
407
+ s3ExpressIdentityProvider: s3ExpressIdentityProvider ??
408
+ new S3ExpressIdentityProviderImpl(async (key) => s3ClientProvider().send(new CreateSessionCommandCtor({
409
+ Bucket: key,
410
+ }))),
411
+ bucketEndpoint: bucketEndpoint ?? false,
412
+ });
413
+ };
534
414
 
535
- var import_util_stream = require("@smithy/util-stream");
536
- var THROW_IF_EMPTY_BODY = {
537
- CopyObjectCommand: true,
538
- UploadPartCopyCommand: true,
539
- CompleteMultipartUploadCommand: true
415
+ const THROW_IF_EMPTY_BODY = {
416
+ CopyObjectCommand: true,
417
+ UploadPartCopyCommand: true,
418
+ CompleteMultipartUploadCommand: true,
540
419
  };
541
- var MAX_BYTES_TO_INSPECT = 3e3;
542
- var throw200ExceptionsMiddleware = /* @__PURE__ */ __name((config) => (next, context) => async (args) => {
543
- const result = await next(args);
544
- const { response } = result;
545
- if (!import_protocol_http.HttpResponse.isInstance(response)) {
546
- return result;
547
- }
548
- const { statusCode, body: sourceBody } = response;
549
- if (statusCode < 200 || statusCode >= 300) {
550
- return result;
551
- }
552
- const isSplittableStream = typeof sourceBody?.stream === "function" || typeof sourceBody?.pipe === "function" || typeof sourceBody?.tee === "function";
553
- if (!isSplittableStream) {
420
+ const MAX_BYTES_TO_INSPECT = 3000;
421
+ const throw200ExceptionsMiddleware = (config) => (next, context) => async (args) => {
422
+ const result = await next(args);
423
+ const { response } = result;
424
+ if (!protocolHttp.HttpResponse.isInstance(response)) {
425
+ return result;
426
+ }
427
+ const { statusCode, body: sourceBody } = response;
428
+ if (statusCode < 200 || statusCode >= 300) {
429
+ return result;
430
+ }
431
+ const isSplittableStream = typeof sourceBody?.stream === "function" ||
432
+ typeof sourceBody?.pipe === "function" ||
433
+ typeof sourceBody?.tee === "function";
434
+ if (!isSplittableStream) {
435
+ return result;
436
+ }
437
+ let bodyCopy = sourceBody;
438
+ let body = sourceBody;
439
+ if (sourceBody && typeof sourceBody === "object" && !(sourceBody instanceof Uint8Array)) {
440
+ [bodyCopy, body] = await utilStream.splitStream(sourceBody);
441
+ }
442
+ response.body = body;
443
+ const bodyBytes = await collectBody(bodyCopy, {
444
+ streamCollector: async (stream) => {
445
+ return utilStream.headStream(stream, MAX_BYTES_TO_INSPECT);
446
+ },
447
+ });
448
+ if (typeof bodyCopy?.destroy === "function") {
449
+ bodyCopy.destroy();
450
+ }
451
+ const bodyStringTail = config.utf8Encoder(bodyBytes.subarray(bodyBytes.length - 16));
452
+ if (bodyBytes.length === 0 && THROW_IF_EMPTY_BODY[context.commandName]) {
453
+ const err = new Error("S3 aborted request");
454
+ err.name = "InternalError";
455
+ throw err;
456
+ }
457
+ if (bodyStringTail && bodyStringTail.endsWith("</Error>")) {
458
+ response.statusCode = 400;
459
+ }
554
460
  return result;
555
- }
556
- let bodyCopy = sourceBody;
557
- let body = sourceBody;
558
- if (sourceBody && typeof sourceBody === "object" && !(sourceBody instanceof Uint8Array)) {
559
- [bodyCopy, body] = await (0, import_util_stream.splitStream)(sourceBody);
560
- }
561
- response.body = body;
562
- const bodyBytes = await collectBody(bodyCopy, {
563
- streamCollector: /* @__PURE__ */ __name(async (stream) => {
564
- return (0, import_util_stream.headStream)(stream, MAX_BYTES_TO_INSPECT);
565
- }, "streamCollector")
566
- });
567
- if (typeof bodyCopy?.destroy === "function") {
568
- bodyCopy.destroy();
569
- }
570
- const bodyStringTail = config.utf8Encoder(bodyBytes.subarray(bodyBytes.length - 16));
571
- if (bodyBytes.length === 0 && THROW_IF_EMPTY_BODY[context.commandName]) {
572
- const err = new Error("S3 aborted request");
573
- err.name = "InternalError";
574
- throw err;
575
- }
576
- if (bodyStringTail && bodyStringTail.endsWith("</Error>")) {
577
- response.statusCode = 400;
578
- }
579
- return result;
580
- }, "throw200ExceptionsMiddleware");
581
- var collectBody = /* @__PURE__ */ __name((streamBody = new Uint8Array(), context) => {
582
- if (streamBody instanceof Uint8Array) {
583
- return Promise.resolve(streamBody);
584
- }
585
- return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());
586
- }, "collectBody");
587
- var throw200ExceptionsMiddlewareOptions = {
588
- relation: "after",
589
- toMiddleware: "deserializerMiddleware",
590
- tags: ["THROW_200_EXCEPTIONS", "S3"],
591
- name: "throw200ExceptionsMiddleware",
592
- override: true
593
461
  };
594
- var getThrow200ExceptionsPlugin = /* @__PURE__ */ __name((config) => ({
595
- applyToStack: /* @__PURE__ */ __name((clientStack) => {
596
- clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);
597
- }, "applyToStack")
598
- }), "getThrow200ExceptionsPlugin");
599
-
600
- // src/validate-bucket-name.ts
601
- var import_util_arn_parser = require("@aws-sdk/util-arn-parser");
462
+ const collectBody = (streamBody = new Uint8Array(), context) => {
463
+ if (streamBody instanceof Uint8Array) {
464
+ return Promise.resolve(streamBody);
465
+ }
466
+ return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());
467
+ };
468
+ const throw200ExceptionsMiddlewareOptions = {
469
+ relation: "after",
470
+ toMiddleware: "deserializerMiddleware",
471
+ tags: ["THROW_200_EXCEPTIONS", "S3"],
472
+ name: "throw200ExceptionsMiddleware",
473
+ override: true,
474
+ };
475
+ const getThrow200ExceptionsPlugin = (config) => ({
476
+ applyToStack: (clientStack) => {
477
+ clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);
478
+ },
479
+ });
602
480
 
603
- // src/bucket-endpoint-middleware.ts
604
481
  function bucketEndpointMiddleware(options) {
605
- return (next, context) => async (args) => {
606
- if (options.bucketEndpoint) {
607
- const endpoint = context.endpointV2;
608
- if (endpoint) {
609
- const bucket = args.input.Bucket;
610
- if (typeof bucket === "string") {
611
- try {
612
- const bucketEndpointUrl = new URL(bucket);
613
- context.endpointV2 = {
614
- ...endpoint,
615
- url: bucketEndpointUrl
616
- };
617
- } catch (e) {
618
- const warning = `@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${bucket} could not be parsed as URL.`;
619
- if (context.logger?.constructor?.name === "NoOpLogger") {
620
- console.warn(warning);
621
- } else {
622
- context.logger?.warn?.(warning);
482
+ return (next, context) => async (args) => {
483
+ if (options.bucketEndpoint) {
484
+ const endpoint = context.endpointV2;
485
+ if (endpoint) {
486
+ const bucket = args.input.Bucket;
487
+ if (typeof bucket === "string") {
488
+ try {
489
+ const bucketEndpointUrl = new URL(bucket);
490
+ context.endpointV2 = {
491
+ ...endpoint,
492
+ url: bucketEndpointUrl,
493
+ };
494
+ }
495
+ catch (e) {
496
+ const warning = `@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${bucket} could not be parsed as URL.`;
497
+ if (context.logger?.constructor?.name === "NoOpLogger") {
498
+ console.warn(warning);
499
+ }
500
+ else {
501
+ context.logger?.warn?.(warning);
502
+ }
503
+ throw e;
504
+ }
505
+ }
623
506
  }
624
- throw e;
625
- }
626
507
  }
627
- }
628
- }
629
- return next(args);
630
- };
508
+ return next(args);
509
+ };
631
510
  }
632
- __name(bucketEndpointMiddleware, "bucketEndpointMiddleware");
633
- var bucketEndpointMiddlewareOptions = {
634
- name: "bucketEndpointMiddleware",
635
- override: true,
636
- relation: "after",
637
- toMiddleware: "endpointV2Middleware"
511
+ const bucketEndpointMiddlewareOptions = {
512
+ name: "bucketEndpointMiddleware",
513
+ override: true,
514
+ relation: "after",
515
+ toMiddleware: "endpointV2Middleware",
638
516
  };
639
517
 
640
- // src/validate-bucket-name.ts
641
518
  function validateBucketNameMiddleware({ bucketEndpoint }) {
642
- return (next) => async (args) => {
643
- const {
644
- input: { Bucket }
645
- } = args;
646
- if (!bucketEndpoint && typeof Bucket === "string" && !(0, import_util_arn_parser.validate)(Bucket) && Bucket.indexOf("/") >= 0) {
647
- const err = new Error(`Bucket name shouldn't contain '/', received '${Bucket}'`);
648
- err.name = "InvalidBucketName";
649
- throw err;
650
- }
651
- return next({ ...args });
652
- };
519
+ return (next) => async (args) => {
520
+ const { input: { Bucket }, } = args;
521
+ if (!bucketEndpoint && typeof Bucket === "string" && !utilArnParser.validate(Bucket) && Bucket.indexOf("/") >= 0) {
522
+ const err = new Error(`Bucket name shouldn't contain '/', received '${Bucket}'`);
523
+ err.name = "InvalidBucketName";
524
+ throw err;
525
+ }
526
+ return next({ ...args });
527
+ };
653
528
  }
654
- __name(validateBucketNameMiddleware, "validateBucketNameMiddleware");
655
- var validateBucketNameMiddlewareOptions = {
656
- step: "initialize",
657
- tags: ["VALIDATE_BUCKET_NAME"],
658
- name: "validateBucketNameMiddleware",
659
- override: true
529
+ const validateBucketNameMiddlewareOptions = {
530
+ step: "initialize",
531
+ tags: ["VALIDATE_BUCKET_NAME"],
532
+ name: "validateBucketNameMiddleware",
533
+ override: true,
660
534
  };
661
- var getValidateBucketNamePlugin = /* @__PURE__ */ __name((options) => ({
662
- applyToStack: /* @__PURE__ */ __name((clientStack) => {
663
- clientStack.add(validateBucketNameMiddleware(options), validateBucketNameMiddlewareOptions);
664
- clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions);
665
- }, "applyToStack")
666
- }), "getValidateBucketNamePlugin");
667
- // Annotate the CommonJS export names for ESM import in node:
668
-
669
- 0 && (module.exports = {
670
- checkContentLengthHeaderMiddlewareOptions,
671
- getCheckContentLengthHeaderPlugin,
672
- checkContentLengthHeader,
673
- regionRedirectEndpointMiddleware,
674
- regionRedirectEndpointMiddlewareOptions,
675
- regionRedirectMiddlewareOptions,
676
- getRegionRedirectMiddlewarePlugin,
677
- regionRedirectMiddleware,
678
- s3ExpiresMiddleware,
679
- s3ExpiresMiddlewareOptions,
680
- getS3ExpiresMiddlewarePlugin,
681
- S3ExpressIdentityCache,
682
- S3ExpressIdentityCacheEntry,
683
- S3ExpressIdentityProviderImpl,
684
- SignatureV4S3Express,
685
- NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS,
686
- getS3ExpressPlugin,
687
- s3ExpressMiddleware,
688
- s3ExpressMiddlewareOptions,
689
- getS3ExpressHttpSigningPlugin,
690
- s3ExpressHttpSigningMiddleware,
691
- s3ExpressHttpSigningMiddlewareOptions,
692
- resolveS3Config,
693
- throw200ExceptionsMiddleware,
694
- throw200ExceptionsMiddlewareOptions,
695
- getThrow200ExceptionsPlugin,
696
- validateBucketNameMiddlewareOptions,
697
- getValidateBucketNamePlugin,
698
- validateBucketNameMiddleware
535
+ const getValidateBucketNamePlugin = (options) => ({
536
+ applyToStack: (clientStack) => {
537
+ clientStack.add(validateBucketNameMiddleware(options), validateBucketNameMiddlewareOptions);
538
+ clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions);
539
+ },
699
540
  });
700
541
 
542
+ exports.NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS = NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS;
543
+ exports.S3ExpressIdentityCache = S3ExpressIdentityCache;
544
+ exports.S3ExpressIdentityCacheEntry = S3ExpressIdentityCacheEntry;
545
+ exports.S3ExpressIdentityProviderImpl = S3ExpressIdentityProviderImpl;
546
+ exports.SignatureV4S3Express = SignatureV4S3Express;
547
+ exports.checkContentLengthHeader = checkContentLengthHeader;
548
+ exports.checkContentLengthHeaderMiddlewareOptions = checkContentLengthHeaderMiddlewareOptions;
549
+ exports.getCheckContentLengthHeaderPlugin = getCheckContentLengthHeaderPlugin;
550
+ exports.getRegionRedirectMiddlewarePlugin = getRegionRedirectMiddlewarePlugin;
551
+ exports.getS3ExpiresMiddlewarePlugin = getS3ExpiresMiddlewarePlugin;
552
+ exports.getS3ExpressHttpSigningPlugin = getS3ExpressHttpSigningPlugin;
553
+ exports.getS3ExpressPlugin = getS3ExpressPlugin;
554
+ exports.getThrow200ExceptionsPlugin = getThrow200ExceptionsPlugin;
555
+ exports.getValidateBucketNamePlugin = getValidateBucketNamePlugin;
556
+ exports.regionRedirectEndpointMiddleware = regionRedirectEndpointMiddleware;
557
+ exports.regionRedirectEndpointMiddlewareOptions = regionRedirectEndpointMiddlewareOptions;
558
+ exports.regionRedirectMiddleware = regionRedirectMiddleware;
559
+ exports.regionRedirectMiddlewareOptions = regionRedirectMiddlewareOptions;
560
+ exports.resolveS3Config = resolveS3Config;
561
+ exports.s3ExpiresMiddleware = s3ExpiresMiddleware;
562
+ exports.s3ExpiresMiddlewareOptions = s3ExpiresMiddlewareOptions;
563
+ exports.s3ExpressHttpSigningMiddleware = s3ExpressHttpSigningMiddleware;
564
+ exports.s3ExpressHttpSigningMiddlewareOptions = s3ExpressHttpSigningMiddlewareOptions;
565
+ exports.s3ExpressMiddleware = s3ExpressMiddleware;
566
+ exports.s3ExpressMiddlewareOptions = s3ExpressMiddlewareOptions;
567
+ exports.throw200ExceptionsMiddleware = throw200ExceptionsMiddleware;
568
+ exports.throw200ExceptionsMiddlewareOptions = throw200ExceptionsMiddlewareOptions;
569
+ exports.validateBucketNameMiddleware = validateBucketNameMiddleware;
570
+ exports.validateBucketNameMiddlewareOptions = validateBucketNameMiddlewareOptions;