@aws-sdk/middleware-sdk-s3 3.33.0 → 3.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist-cjs/S3SignatureV4.js +48 -0
  3. package/dist-cjs/index.js +7 -0
  4. package/dist-cjs/throw-200-exceptions.js +46 -0
  5. package/dist-cjs/use-regional-endpoint.js +29 -0
  6. package/dist-cjs/validate-bucket-name.js +28 -0
  7. package/dist-es/S3SignatureV4.js +54 -0
  8. package/{dist/types/index.d.ts → dist-es/index.js} +0 -0
  9. package/dist-es/throw-200-exceptions.js +60 -0
  10. package/dist-es/use-regional-endpoint.js +40 -0
  11. package/dist-es/validate-bucket-name.js +30 -0
  12. package/{dist/types → dist-types}/S3SignatureV4.d.ts +0 -0
  13. package/{src/index.ts → dist-types/index.d.ts} +0 -0
  14. package/{dist/types → dist-types}/throw-200-exceptions.d.ts +0 -0
  15. package/{dist/types → dist-types}/ts3.4/S3SignatureV4.d.ts +1 -8
  16. package/{dist/types → dist-types}/ts3.4/index.d.ts +0 -0
  17. package/{dist/types → dist-types}/ts3.4/throw-200-exceptions.d.ts +3 -12
  18. package/{dist/types → dist-types}/ts3.4/use-regional-endpoint.d.ts +3 -9
  19. package/{dist/types → dist-types}/ts3.4/validate-bucket-name.d.ts +3 -9
  20. package/{dist/types → dist-types}/use-regional-endpoint.d.ts +0 -0
  21. package/{dist/types → dist-types}/validate-bucket-name.d.ts +0 -0
  22. package/package.json +17 -13
  23. package/dist/cjs/S3SignatureV4.js +0 -55
  24. package/dist/cjs/index.js +0 -8
  25. package/dist/cjs/throw-200-exceptions.js +0 -65
  26. package/dist/cjs/use-regional-endpoint.js +0 -39
  27. package/dist/cjs/validate-bucket-name.js +0 -39
  28. package/dist/es/S3SignatureV4.js +0 -79
  29. package/dist/es/index.js +0 -5
  30. package/dist/es/throw-200-exceptions.js +0 -78
  31. package/dist/es/use-regional-endpoint.js +0 -50
  32. package/dist/es/validate-bucket-name.js +0 -41
  33. package/src/S3SignatureV4.ts +0 -70
  34. package/src/throw-200-exceptions.ts +0 -74
  35. package/src/use-regional-endpoint.ts +0 -52
  36. package/src/validate-bucket-name.ts +0 -48
  37. package/tsconfig.cjs.json +0 -10
  38. package/tsconfig.es.json +0 -11
package/CHANGELOG.md CHANGED
@@ -3,6 +3,49 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.37.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.36.1...v3.37.0) (2021-10-15)
7
+
8
+ **Note:** Version bump only for package @aws-sdk/middleware-sdk-s3
9
+
10
+
11
+
12
+
13
+
14
+ # [3.36.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.35.0...v3.36.0) (2021-10-08)
15
+
16
+
17
+ ### Features
18
+
19
+ * publish files in dist-* only ([#2873](https://github.com/aws/aws-sdk-js-v3/issues/2873)) ([53b4243](https://github.com/aws/aws-sdk-js-v3/commit/53b4243b066f25ff2412d5f0dea1036054b2df32))
20
+
21
+
22
+
23
+
24
+
25
+ # [3.35.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.34.0...v3.35.0) (2021-10-04)
26
+
27
+ **Note:** Version bump only for package @aws-sdk/middleware-sdk-s3
28
+
29
+
30
+
31
+
32
+
33
+ # [3.34.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.33.0...v3.34.0) (2021-09-24)
34
+
35
+
36
+ ### Bug Fixes
37
+
38
+ * **middleware-sdk-s3:** missing dependency with esbuild ([#2814](https://github.com/aws/aws-sdk-js-v3/issues/2814)) ([d5924e9](https://github.com/aws/aws-sdk-js-v3/commit/d5924e94eb3bc06bf4ee35f2a6819eb7983e2e15))
39
+
40
+
41
+ ### Features
42
+
43
+ * **non-clients:** remove comments from transpiled JS files ([#2813](https://github.com/aws/aws-sdk-js-v3/issues/2813)) ([e6fc7f3](https://github.com/aws/aws-sdk-js-v3/commit/e6fc7f3e0fa74785590ac19e7ed143c916bb9b6e))
44
+
45
+
46
+
47
+
48
+
6
49
  # [3.33.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.32.0...v3.33.0) (2021-09-21)
7
50
 
8
51
 
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.S3SignatureV4 = void 0;
4
+ const signature_v4_1 = require("@aws-sdk/signature-v4");
5
+ class S3SignatureV4 {
6
+ constructor(options) {
7
+ this.sigv4Signer = new signature_v4_1.SignatureV4(options);
8
+ this.signerOptions = options;
9
+ }
10
+ async sign(requestToSign, options = {}) {
11
+ if (options.signingRegion === "*") {
12
+ if (this.signerOptions.runtime !== "node")
13
+ throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");
14
+ return this.getSigv4aSigner().sign(requestToSign, options);
15
+ }
16
+ return this.sigv4Signer.sign(requestToSign, options);
17
+ }
18
+ async presign(originalRequest, options = {}) {
19
+ if (options.signingRegion === "*") {
20
+ if (this.signerOptions.runtime !== "node")
21
+ throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");
22
+ return this.getSigv4aSigner().presign(originalRequest, options);
23
+ }
24
+ return this.sigv4Signer.presign(originalRequest, options);
25
+ }
26
+ getSigv4aSigner() {
27
+ if (!this.sigv4aSigner) {
28
+ let CrtSignerV4;
29
+ try {
30
+ CrtSignerV4 = require("@aws-sdk/signature-v4-crt").CrtSignerV4;
31
+ if (typeof CrtSignerV4 !== "function")
32
+ throw new Error();
33
+ }
34
+ catch (e) {
35
+ e.message =
36
+ `${e.message}\nPlease check if you have installed "@aws-sdk/signature-v4-crt" package explicitly. \n` +
37
+ "For more information please go to https://github.com/aws/aws-sdk-js-v3#known-issues";
38
+ throw e;
39
+ }
40
+ this.sigv4aSigner = new CrtSignerV4({
41
+ ...this.signerOptions,
42
+ signingAlgorithm: 1,
43
+ });
44
+ }
45
+ return this.sigv4aSigner;
46
+ }
47
+ }
48
+ exports.S3SignatureV4 = S3SignatureV4;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./validate-bucket-name"), exports);
5
+ tslib_1.__exportStar(require("./use-regional-endpoint"), exports);
6
+ tslib_1.__exportStar(require("./throw-200-exceptions"), exports);
7
+ tslib_1.__exportStar(require("./S3SignatureV4"), exports);
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getThrow200ExceptionsPlugin = exports.throw200ExceptionsMiddlewareOptions = exports.throw200ExceptionsMiddleware = void 0;
4
+ const protocol_http_1 = require("@aws-sdk/protocol-http");
5
+ const throw200ExceptionsMiddleware = (config) => (next) => async (args) => {
6
+ const result = await next(args);
7
+ const { response } = result;
8
+ if (!protocol_http_1.HttpResponse.isInstance(response))
9
+ return result;
10
+ const { statusCode, body } = response;
11
+ if (statusCode < 200 && statusCode >= 300)
12
+ return result;
13
+ const bodyBytes = await collectBody(body, config);
14
+ const bodyString = await collectBodyString(bodyBytes, config);
15
+ if (bodyBytes.length === 0) {
16
+ const err = new Error("S3 aborted request");
17
+ err.name = "InternalError";
18
+ throw err;
19
+ }
20
+ if (bodyString && bodyString.match("<Error>")) {
21
+ response.statusCode = 400;
22
+ }
23
+ response.body = bodyBytes;
24
+ return result;
25
+ };
26
+ exports.throw200ExceptionsMiddleware = throw200ExceptionsMiddleware;
27
+ const collectBody = (streamBody = new Uint8Array(), context) => {
28
+ if (streamBody instanceof Uint8Array) {
29
+ return Promise.resolve(streamBody);
30
+ }
31
+ return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());
32
+ };
33
+ const collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));
34
+ exports.throw200ExceptionsMiddlewareOptions = {
35
+ relation: "after",
36
+ toMiddleware: "deserializerMiddleware",
37
+ tags: ["THROW_200_EXCEPTIONS", "S3"],
38
+ name: "throw200ExceptionsMiddleware",
39
+ override: true,
40
+ };
41
+ const getThrow200ExceptionsPlugin = (config) => ({
42
+ applyToStack: (clientStack) => {
43
+ clientStack.addRelativeTo(exports.throw200ExceptionsMiddleware(config), exports.throw200ExceptionsMiddlewareOptions);
44
+ },
45
+ });
46
+ exports.getThrow200ExceptionsPlugin = getThrow200ExceptionsPlugin;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUseRegionalEndpointPlugin = exports.useRegionalEndpointMiddlewareOptions = exports.useRegionalEndpointMiddleware = void 0;
4
+ const protocol_http_1 = require("@aws-sdk/protocol-http");
5
+ const useRegionalEndpointMiddleware = (config) => (next) => async (args) => {
6
+ const { request } = args;
7
+ if (!protocol_http_1.HttpRequest.isInstance(request) || config.isCustomEndpoint)
8
+ return next({ ...args });
9
+ if (request.hostname === "s3.amazonaws.com") {
10
+ request.hostname = "s3.us-east-1.amazonaws.com";
11
+ }
12
+ else if ("aws-global" === (await config.region())) {
13
+ request.hostname = "s3.amazonaws.com";
14
+ }
15
+ return next({ ...args });
16
+ };
17
+ exports.useRegionalEndpointMiddleware = useRegionalEndpointMiddleware;
18
+ exports.useRegionalEndpointMiddlewareOptions = {
19
+ step: "build",
20
+ tags: ["USE_REGIONAL_ENDPOINT", "S3"],
21
+ name: "useRegionalEndpointMiddleware",
22
+ override: true,
23
+ };
24
+ const getUseRegionalEndpointPlugin = (config) => ({
25
+ applyToStack: (clientStack) => {
26
+ clientStack.add(exports.useRegionalEndpointMiddleware(config), exports.useRegionalEndpointMiddlewareOptions);
27
+ },
28
+ });
29
+ exports.getUseRegionalEndpointPlugin = getUseRegionalEndpointPlugin;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getValidateBucketNamePlugin = exports.validateBucketNameMiddlewareOptions = exports.validateBucketNameMiddleware = void 0;
4
+ const util_arn_parser_1 = require("@aws-sdk/util-arn-parser");
5
+ function validateBucketNameMiddleware() {
6
+ return (next) => async (args) => {
7
+ const { input: { Bucket }, } = args;
8
+ if (typeof Bucket === "string" && !util_arn_parser_1.validate(Bucket) && Bucket.indexOf("/") >= 0) {
9
+ const err = new Error(`Bucket name shouldn't contain '/', received '${Bucket}'`);
10
+ err.name = "InvalidBucketName";
11
+ throw err;
12
+ }
13
+ return next({ ...args });
14
+ };
15
+ }
16
+ exports.validateBucketNameMiddleware = validateBucketNameMiddleware;
17
+ exports.validateBucketNameMiddlewareOptions = {
18
+ step: "initialize",
19
+ tags: ["VALIDATE_BUCKET_NAME"],
20
+ name: "validateBucketNameMiddleware",
21
+ override: true,
22
+ };
23
+ const getValidateBucketNamePlugin = (unused) => ({
24
+ applyToStack: (clientStack) => {
25
+ clientStack.add(validateBucketNameMiddleware(), exports.validateBucketNameMiddlewareOptions);
26
+ },
27
+ });
28
+ exports.getValidateBucketNamePlugin = getValidateBucketNamePlugin;
@@ -0,0 +1,54 @@
1
+ import { __assign, __awaiter, __generator } from "tslib";
2
+ import { SignatureV4 } from "@aws-sdk/signature-v4";
3
+ var S3SignatureV4 = (function () {
4
+ function S3SignatureV4(options) {
5
+ this.sigv4Signer = new SignatureV4(options);
6
+ this.signerOptions = options;
7
+ }
8
+ S3SignatureV4.prototype.sign = function (requestToSign, options) {
9
+ if (options === void 0) { options = {}; }
10
+ return __awaiter(this, void 0, void 0, function () {
11
+ return __generator(this, function (_a) {
12
+ if (options.signingRegion === "*") {
13
+ if (this.signerOptions.runtime !== "node")
14
+ throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");
15
+ return [2, this.getSigv4aSigner().sign(requestToSign, options)];
16
+ }
17
+ return [2, this.sigv4Signer.sign(requestToSign, options)];
18
+ });
19
+ });
20
+ };
21
+ S3SignatureV4.prototype.presign = function (originalRequest, options) {
22
+ if (options === void 0) { options = {}; }
23
+ return __awaiter(this, void 0, void 0, function () {
24
+ return __generator(this, function (_a) {
25
+ if (options.signingRegion === "*") {
26
+ if (this.signerOptions.runtime !== "node")
27
+ throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");
28
+ return [2, this.getSigv4aSigner().presign(originalRequest, options)];
29
+ }
30
+ return [2, this.sigv4Signer.presign(originalRequest, options)];
31
+ });
32
+ });
33
+ };
34
+ S3SignatureV4.prototype.getSigv4aSigner = function () {
35
+ if (!this.sigv4aSigner) {
36
+ var CrtSignerV4_1;
37
+ try {
38
+ CrtSignerV4_1 = require("@aws-sdk/signature-v4-crt").CrtSignerV4;
39
+ if (typeof CrtSignerV4_1 !== "function")
40
+ throw new Error();
41
+ }
42
+ catch (e) {
43
+ e.message =
44
+ e.message + "\nPlease check if you have installed \"@aws-sdk/signature-v4-crt\" package explicitly. \n" +
45
+ "For more information please go to https://github.com/aws/aws-sdk-js-v3#known-issues";
46
+ throw e;
47
+ }
48
+ this.sigv4aSigner = new CrtSignerV4_1(__assign(__assign({}, this.signerOptions), { signingAlgorithm: 1 }));
49
+ }
50
+ return this.sigv4aSigner;
51
+ };
52
+ return S3SignatureV4;
53
+ }());
54
+ export { S3SignatureV4 };
File without changes
@@ -0,0 +1,60 @@
1
+ import { __awaiter, __generator } from "tslib";
2
+ import { HttpResponse } from "@aws-sdk/protocol-http";
3
+ export var throw200ExceptionsMiddleware = function (config) {
4
+ return function (next) {
5
+ return function (args) { return __awaiter(void 0, void 0, void 0, function () {
6
+ var result, response, statusCode, body, bodyBytes, bodyString, err;
7
+ return __generator(this, function (_a) {
8
+ switch (_a.label) {
9
+ case 0: return [4, next(args)];
10
+ case 1:
11
+ result = _a.sent();
12
+ response = result.response;
13
+ if (!HttpResponse.isInstance(response))
14
+ return [2, result];
15
+ statusCode = response.statusCode, body = response.body;
16
+ if (statusCode < 200 && statusCode >= 300)
17
+ return [2, result];
18
+ return [4, collectBody(body, config)];
19
+ case 2:
20
+ bodyBytes = _a.sent();
21
+ return [4, collectBodyString(bodyBytes, config)];
22
+ case 3:
23
+ bodyString = _a.sent();
24
+ if (bodyBytes.length === 0) {
25
+ err = new Error("S3 aborted request");
26
+ err.name = "InternalError";
27
+ throw err;
28
+ }
29
+ if (bodyString && bodyString.match("<Error>")) {
30
+ response.statusCode = 400;
31
+ }
32
+ response.body = bodyBytes;
33
+ return [2, result];
34
+ }
35
+ });
36
+ }); };
37
+ };
38
+ };
39
+ var collectBody = function (streamBody, context) {
40
+ if (streamBody === void 0) { streamBody = new Uint8Array(); }
41
+ if (streamBody instanceof Uint8Array) {
42
+ return Promise.resolve(streamBody);
43
+ }
44
+ return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());
45
+ };
46
+ var collectBodyString = function (streamBody, context) {
47
+ return collectBody(streamBody, context).then(function (body) { return context.utf8Encoder(body); });
48
+ };
49
+ export var throw200ExceptionsMiddlewareOptions = {
50
+ relation: "after",
51
+ toMiddleware: "deserializerMiddleware",
52
+ tags: ["THROW_200_EXCEPTIONS", "S3"],
53
+ name: "throw200ExceptionsMiddleware",
54
+ override: true,
55
+ };
56
+ export var getThrow200ExceptionsPlugin = function (config) { return ({
57
+ applyToStack: function (clientStack) {
58
+ clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);
59
+ },
60
+ }); };
@@ -0,0 +1,40 @@
1
+ import { __assign, __awaiter, __generator } from "tslib";
2
+ import { HttpRequest } from "@aws-sdk/protocol-http";
3
+ export var useRegionalEndpointMiddleware = function (config) {
4
+ return function (next) {
5
+ return function (args) { return __awaiter(void 0, void 0, void 0, function () {
6
+ var request, _a;
7
+ return __generator(this, function (_b) {
8
+ switch (_b.label) {
9
+ case 0:
10
+ request = args.request;
11
+ if (!HttpRequest.isInstance(request) || config.isCustomEndpoint)
12
+ return [2, next(__assign({}, args))];
13
+ if (!(request.hostname === "s3.amazonaws.com")) return [3, 1];
14
+ request.hostname = "s3.us-east-1.amazonaws.com";
15
+ return [3, 3];
16
+ case 1:
17
+ _a = "aws-global";
18
+ return [4, config.region()];
19
+ case 2:
20
+ if (_a === (_b.sent())) {
21
+ request.hostname = "s3.amazonaws.com";
22
+ }
23
+ _b.label = 3;
24
+ case 3: return [2, next(__assign({}, args))];
25
+ }
26
+ });
27
+ }); };
28
+ };
29
+ };
30
+ export var useRegionalEndpointMiddlewareOptions = {
31
+ step: "build",
32
+ tags: ["USE_REGIONAL_ENDPOINT", "S3"],
33
+ name: "useRegionalEndpointMiddleware",
34
+ override: true,
35
+ };
36
+ export var getUseRegionalEndpointPlugin = function (config) { return ({
37
+ applyToStack: function (clientStack) {
38
+ clientStack.add(useRegionalEndpointMiddleware(config), useRegionalEndpointMiddlewareOptions);
39
+ },
40
+ }); };
@@ -0,0 +1,30 @@
1
+ import { __assign, __awaiter, __generator } from "tslib";
2
+ import { validate as validateArn } from "@aws-sdk/util-arn-parser";
3
+ export function validateBucketNameMiddleware() {
4
+ var _this = this;
5
+ return function (next) {
6
+ return function (args) { return __awaiter(_this, void 0, void 0, function () {
7
+ var Bucket, err;
8
+ return __generator(this, function (_a) {
9
+ Bucket = args.input.Bucket;
10
+ if (typeof Bucket === "string" && !validateArn(Bucket) && Bucket.indexOf("/") >= 0) {
11
+ err = new Error("Bucket name shouldn't contain '/', received '" + Bucket + "'");
12
+ err.name = "InvalidBucketName";
13
+ throw err;
14
+ }
15
+ return [2, next(__assign({}, args))];
16
+ });
17
+ }); };
18
+ };
19
+ }
20
+ export var validateBucketNameMiddlewareOptions = {
21
+ step: "initialize",
22
+ tags: ["VALIDATE_BUCKET_NAME"],
23
+ name: "validateBucketNameMiddleware",
24
+ override: true,
25
+ };
26
+ export var getValidateBucketNamePlugin = function (unused) { return ({
27
+ applyToStack: function (clientStack) {
28
+ clientStack.add(validateBucketNameMiddleware(), validateBucketNameMiddlewareOptions);
29
+ },
30
+ }); };
File without changes
File without changes
@@ -3,14 +3,7 @@ import { HttpRequest, RequestPresigner, RequestPresigningArguments, RequestSigne
3
3
  export declare type S3SignerV4Init = SignatureV4Init & SignatureV4CryptoInit & {
4
4
  runtime?: string;
5
5
  };
6
- /**
7
- * A SigV4-compatible signer for S3 service. In order to support SigV4a algorithm according to the operation input
8
- * dynamically, the signer wraps native module SigV4a signer and JS SigV4 signer. It signs the request with SigV4a
9
- * algorithm if the request needs to be signed with `*` region. Otherwise, it signs the request with normal SigV4
10
- * signer.
11
- * Note that SigV4a signer is only supported in Node.js now because it depends on a native dependency.
12
- * @private
13
- */
6
+
14
7
  export declare class S3SignatureV4 implements RequestPresigner, RequestSigner {
15
8
  private readonly sigv4Signer;
16
9
  private sigv4aSigner?;
File without changes
@@ -3,19 +3,10 @@ declare type PreviouslyResolved = {
3
3
  streamCollector: StreamCollector;
4
4
  utf8Encoder: Encoder;
5
5
  };
6
- /**
7
- * In case of an internal error/terminated connection, S3 operations may return 200 errors. CopyObject, UploadPartCopy,
8
- * CompleteMultipartUpload may return empty payload or payload with only xml Preamble.
9
- * @internal
10
- */
6
+
11
7
  export declare const throw200ExceptionsMiddleware: (config: PreviouslyResolved) => DeserializeMiddleware<any, any>;
12
- /**
13
- * @internal
14
- */
8
+
15
9
  export declare const throw200ExceptionsMiddlewareOptions: RelativeMiddlewareOptions;
16
- /**
17
- *
18
- * @internal
19
- */
10
+
20
11
  export declare const getThrow200ExceptionsPlugin: (config: PreviouslyResolved) => Pluggable<any, any>;
21
12
  export {};
@@ -3,16 +3,10 @@ declare type PreviouslyResolved = {
3
3
  region: Provider<string>;
4
4
  isCustomEndpoint: boolean;
5
5
  };
6
- /**
7
- * @internal
8
- */
6
+
9
7
  export declare const useRegionalEndpointMiddleware: (config: PreviouslyResolved) => BuildMiddleware<any, any>;
10
- /**
11
- * @internal
12
- */
8
+
13
9
  export declare const useRegionalEndpointMiddlewareOptions: BuildHandlerOptions;
14
- /**
15
- * @internal
16
- */
10
+
17
11
  export declare const getUseRegionalEndpointPlugin: (config: PreviouslyResolved) => Pluggable<any, any>;
18
12
  export {};
@@ -1,13 +1,7 @@
1
1
  import { InitializeHandlerOptions, InitializeMiddleware, Pluggable } from "@aws-sdk/types";
2
- /**
3
- * @internal
4
- */
2
+
5
3
  export declare function validateBucketNameMiddleware(): InitializeMiddleware<any, any>;
6
- /**
7
- * @internal
8
- */
4
+
9
5
  export declare const validateBucketNameMiddlewareOptions: InitializeHandlerOptions;
10
- /**
11
- * @internal
12
- */
6
+
13
7
  export declare const getValidateBucketNamePlugin: (unused: any) => Pluggable<any, any>;
package/package.json CHANGED
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "@aws-sdk/middleware-sdk-s3",
3
- "version": "3.33.0",
3
+ "version": "3.37.0",
4
4
  "scripts": {
5
+ "build": "yarn build:cjs && yarn build:es && yarn build:types",
5
6
  "build:cjs": "tsc -p tsconfig.cjs.json",
6
7
  "build:es": "tsc -p tsconfig.es.json",
7
- "build": "yarn build:es && yarn build:cjs",
8
- "downlevel-dts": "downlevel-dts dist/types dist/types/ts3.4",
8
+ "build:types": "tsc -p tsconfig.types.json",
9
+ "downlevel-dts": "downlevel-dts dist-types dist-types/ts3.4",
9
10
  "test": "jest"
10
11
  },
11
- "main": "./dist/cjs/index.js",
12
- "module": "./dist/es/index.js",
13
- "types": "./dist/types/index.d.ts",
12
+ "main": "./dist-cjs/index.js",
13
+ "module": "./dist-es/index.js",
14
+ "types": "./dist-types/index.d.ts",
14
15
  "browser": {
15
16
  "@aws-sdk/signature-v4-crt": false
16
17
  },
@@ -23,14 +24,14 @@
23
24
  },
24
25
  "license": "Apache-2.0",
25
26
  "dependencies": {
26
- "@aws-sdk/protocol-http": "3.32.0",
27
- "@aws-sdk/signature-v4": "3.33.0",
28
- "@aws-sdk/types": "3.32.0",
29
- "@aws-sdk/util-arn-parser": "3.32.0",
27
+ "@aws-sdk/protocol-http": "3.37.0",
28
+ "@aws-sdk/signature-v4": "3.37.0",
29
+ "@aws-sdk/types": "3.37.0",
30
+ "@aws-sdk/util-arn-parser": "3.37.0",
30
31
  "tslib": "^2.3.0"
31
32
  },
32
33
  "devDependencies": {
33
- "@aws-sdk/signature-v4-crt": "3.33.0",
34
+ "@aws-sdk/signature-v4-crt": "3.37.0",
34
35
  "@types/jest": "^26.0.4",
35
36
  "jest": "^26.1.0",
36
37
  "typescript": "~4.3.5"
@@ -43,11 +44,14 @@
43
44
  },
44
45
  "typesVersions": {
45
46
  "<4.0": {
46
- "dist/types/*": [
47
- "dist/types/ts3.4/*"
47
+ "dist-types/*": [
48
+ "dist-types/ts3.4/*"
48
49
  ]
49
50
  }
50
51
  },
52
+ "files": [
53
+ "dist-*"
54
+ ],
51
55
  "homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/packages/middleware-sdk-s3",
52
56
  "repository": {
53
57
  "type": "git",
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.S3SignatureV4 = void 0;
4
- const signature_v4_1 = require("@aws-sdk/signature-v4");
5
- /**
6
- * A SigV4-compatible signer for S3 service. In order to support SigV4a algorithm according to the operation input
7
- * dynamically, the signer wraps native module SigV4a signer and JS SigV4 signer. It signs the request with SigV4a
8
- * algorithm if the request needs to be signed with `*` region. Otherwise, it signs the request with normal SigV4
9
- * signer.
10
- * Note that SigV4a signer is only supported in Node.js now because it depends on a native dependency.
11
- * @private
12
- */
13
- class S3SignatureV4 {
14
- constructor(options) {
15
- this.sigv4Signer = new signature_v4_1.SignatureV4(options);
16
- this.signerOptions = options;
17
- }
18
- async sign(requestToSign, options = {}) {
19
- if (options.signingRegion === "*") {
20
- if (this.signerOptions.runtime !== "node")
21
- throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");
22
- return (await this.getSigv4aSigner()).sign(requestToSign, options);
23
- }
24
- return this.sigv4Signer.sign(requestToSign, options);
25
- }
26
- async presign(originalRequest, options = {}) {
27
- if (options.signingRegion === "*") {
28
- if (this.signerOptions.runtime !== "node")
29
- throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");
30
- return (await this.getSigv4aSigner()).presign(originalRequest, options);
31
- }
32
- return this.sigv4Signer.presign(originalRequest, options);
33
- }
34
- async getSigv4aSigner() {
35
- if (!this.sigv4aSigner) {
36
- let CrtSignerV4;
37
- try {
38
- CrtSignerV4 = (await Promise.resolve().then(() => __importStar(require("@aws-sdk/signature-v4-crt")))).CrtSignerV4;
39
- }
40
- catch (e) {
41
- e.message =
42
- `${e.message}\nPlease check if you have installed "@aws-sdk/signature-v4-crt" package explicitly. \n` +
43
- "For more information please go to https://github.com/aws/aws-sdk-js-v3#known-issues";
44
- throw e;
45
- }
46
- this.sigv4aSigner = new CrtSignerV4({
47
- ...this.signerOptions,
48
- signingAlgorithm: 1,
49
- });
50
- }
51
- return this.sigv4aSigner;
52
- }
53
- }
54
- exports.S3SignatureV4 = S3SignatureV4;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUzNTaWduYXR1cmVWNC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TM1NpZ25hdHVyZVY0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdEQUE0RjtBQWU1Rjs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxhQUFhO0lBS3hCLFlBQVksT0FBdUI7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLDBCQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7SUFDL0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBMEIsRUFBRSxVQUFtQyxFQUFFO1FBQ2pGLElBQUksT0FBTyxDQUFDLGFBQWEsS0FBSyxHQUFHLEVBQUU7WUFDakMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sS0FBSyxNQUFNO2dCQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLDhGQUE4RixDQUFDLENBQUM7WUFDbEgsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNwRTtRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQTRCLEVBQUUsVUFBc0MsRUFBRTtRQUN6RixJQUFJLE9BQU8sQ0FBQyxhQUFhLEtBQUssR0FBRyxFQUFFO1lBQ2pDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEtBQUssTUFBTTtnQkFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4RkFBOEYsQ0FBQyxDQUFDO1lBQ2xILE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDekU7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU8sS0FBSyxDQUFDLGVBQWU7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEIsSUFBSSxXQUFrRixDQUFDO1lBQ3ZGLElBQUk7Z0JBQ0YsV0FBVyxHQUFHLENBQUMsd0RBQWEsMkJBQTJCLEdBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQzthQUN2RTtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLENBQUMsQ0FBQyxPQUFPO29CQUNQLEdBQUcsQ0FBQyxDQUFDLE9BQU8seUZBQXlGO3dCQUNyRyxxRkFBcUYsQ0FBQztnQkFDeEYsTUFBTSxDQUFDLENBQUM7YUFDVDtZQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxXQUFXLENBQUM7Z0JBQ2xDLEdBQUcsSUFBSSxDQUFDLGFBQWE7Z0JBQ3JCLGdCQUFnQixFQUFFLENBQUM7YUFDcEIsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBOUNELHNDQThDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hdHVyZVY0LCBTaWduYXR1cmVWNENyeXB0b0luaXQsIFNpZ25hdHVyZVY0SW5pdCB9IGZyb20gXCJAYXdzLXNkay9zaWduYXR1cmUtdjRcIjtcbmltcG9ydCB0eXBlIHsgQ3J0U2lnbmVyVjQsIENydFNpZ25lclY0SW5pdCB9IGZyb20gXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0XCI7XG5pbXBvcnQge1xuICBIdHRwUmVxdWVzdCxcbiAgUmVxdWVzdFByZXNpZ25lcixcbiAgUmVxdWVzdFByZXNpZ25pbmdBcmd1bWVudHMsXG4gIFJlcXVlc3RTaWduZXIsXG4gIFJlcXVlc3RTaWduaW5nQXJndW1lbnRzLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IHR5cGUgUzNTaWduZXJWNEluaXQgPSBTaWduYXR1cmVWNEluaXQgJlxuICBTaWduYXR1cmVWNENyeXB0b0luaXQgJiB7XG4gICAgcnVudGltZT86IHN0cmluZztcbiAgfTtcblxuLyoqXG4gKiBBIFNpZ1Y0LWNvbXBhdGlibGUgc2lnbmVyIGZvciBTMyBzZXJ2aWNlLiBJbiBvcmRlciB0byBzdXBwb3J0IFNpZ1Y0YSBhbGdvcml0aG0gYWNjb3JkaW5nIHRvIHRoZSBvcGVyYXRpb24gaW5wdXRcbiAqIGR5bmFtaWNhbGx5LCB0aGUgc2lnbmVyIHdyYXBzIG5hdGl2ZSBtb2R1bGUgU2lnVjRhIHNpZ25lciBhbmQgSlMgU2lnVjQgc2lnbmVyLiBJdCBzaWducyB0aGUgcmVxdWVzdCB3aXRoIFNpZ1Y0YVxuICogYWxnb3JpdGhtIGlmIHRoZSByZXF1ZXN0IG5lZWRzIHRvIGJlIHNpZ25lZCB3aXRoIGAqYCByZWdpb24uIE90aGVyd2lzZSwgaXQgc2lnbnMgdGhlIHJlcXVlc3Qgd2l0aCBub3JtYWwgU2lnVjRcbiAqIHNpZ25lci5cbiAqIE5vdGUgdGhhdCBTaWdWNGEgc2lnbmVyIGlzIG9ubHkgc3VwcG9ydGVkIGluIE5vZGUuanMgbm93IGJlY2F1c2UgaXQgZGVwZW5kcyBvbiBhIG5hdGl2ZSBkZXBlbmRlbmN5LlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIFMzU2lnbmF0dXJlVjQgaW1wbGVtZW50cyBSZXF1ZXN0UHJlc2lnbmVyLCBSZXF1ZXN0U2lnbmVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzaWd2NFNpZ25lcjogU2lnbmF0dXJlVjQ7XG4gIHByaXZhdGUgc2lndjRhU2lnbmVyPzogQ3J0U2lnbmVyVjQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2lnbmVyT3B0aW9uczogUzNTaWduZXJWNEluaXQ7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogUzNTaWduZXJWNEluaXQpIHtcbiAgICB0aGlzLnNpZ3Y0U2lnbmVyID0gbmV3IFNpZ25hdHVyZVY0KG9wdGlvbnMpO1xuICAgIHRoaXMuc2lnbmVyT3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2lnbihyZXF1ZXN0VG9TaWduOiBIdHRwUmVxdWVzdCwgb3B0aW9uczogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMgPSB7fSk6IFByb21pc2U8SHR0cFJlcXVlc3Q+IHtcbiAgICBpZiAob3B0aW9ucy5zaWduaW5nUmVnaW9uID09PSBcIipcIikge1xuICAgICAgaWYgKHRoaXMuc2lnbmVyT3B0aW9ucy5ydW50aW1lICE9PSBcIm5vZGVcIilcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyByZXF1ZXN0IHJlcXVpcmVzIHNpZ25pbmcgd2l0aCBTaWdWNEFzeW1tZXRyaWMgYWxnb3JpdGhtLiBJdCdzIG9ubHkgYXZhaWxhYmxlIGluIE5vZGUuanNcIik7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ2V0U2lndjRhU2lnbmVyKCkpLnNpZ24ocmVxdWVzdFRvU2lnbiwgb3B0aW9ucyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNpZ3Y0U2lnbmVyLnNpZ24ocmVxdWVzdFRvU2lnbiwgb3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcHJlc2lnbihvcmlnaW5hbFJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCBvcHRpb25zOiBSZXF1ZXN0UHJlc2lnbmluZ0FyZ3VtZW50cyA9IHt9KTogUHJvbWlzZTxIdHRwUmVxdWVzdD4ge1xuICAgIGlmIChvcHRpb25zLnNpZ25pbmdSZWdpb24gPT09IFwiKlwiKSB7XG4gICAgICBpZiAodGhpcy5zaWduZXJPcHRpb25zLnJ1bnRpbWUgIT09IFwibm9kZVwiKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGlzIHJlcXVlc3QgcmVxdWlyZXMgc2lnbmluZyB3aXRoIFNpZ1Y0QXN5bW1ldHJpYyBhbGdvcml0aG0uIEl0J3Mgb25seSBhdmFpbGFibGUgaW4gTm9kZS5qc1wiKTtcbiAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5nZXRTaWd2NGFTaWduZXIoKSkucHJlc2lnbihvcmlnaW5hbFJlcXVlc3QsIG9wdGlvbnMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zaWd2NFNpZ25lci5wcmVzaWduKG9yaWdpbmFsUmVxdWVzdCwgb3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFNpZ3Y0YVNpZ25lcigpOiBQcm9taXNlPENydFNpZ25lclY0PiB7XG4gICAgaWYgKCF0aGlzLnNpZ3Y0YVNpZ25lcikge1xuICAgICAgbGV0IENydFNpZ25lclY0OiBuZXcgKG9wdGlvbnM6IENydFNpZ25lclY0SW5pdCAmIFNpZ25hdHVyZVY0Q3J5cHRvSW5pdCkgPT4gQ3J0U2lnbmVyVjQ7XG4gICAgICB0cnkge1xuICAgICAgICBDcnRTaWduZXJWNCA9IChhd2FpdCBpbXBvcnQoXCJAYXdzLXNkay9zaWduYXR1cmUtdjQtY3J0XCIpKS5DcnRTaWduZXJWNDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgZS5tZXNzYWdlID1cbiAgICAgICAgICBgJHtlLm1lc3NhZ2V9XFxuUGxlYXNlIGNoZWNrIGlmIHlvdSBoYXZlIGluc3RhbGxlZCBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NC1jcnRcIiBwYWNrYWdlIGV4cGxpY2l0bHkuIFxcbmAgK1xuICAgICAgICAgIFwiRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIGdvIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLXNkay1qcy12MyNrbm93bi1pc3N1ZXNcIjtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2lndjRhU2lnbmVyID0gbmV3IENydFNpZ25lclY0KHtcbiAgICAgICAgLi4udGhpcy5zaWduZXJPcHRpb25zLFxuICAgICAgICBzaWduaW5nQWxnb3JpdGhtOiAxLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNpZ3Y0YVNpZ25lcjtcbiAgfVxufVxuIl19
package/dist/cjs/index.js DELETED
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./validate-bucket-name"), exports);
5
- tslib_1.__exportStar(require("./use-regional-endpoint"), exports);
6
- tslib_1.__exportStar(require("./throw-200-exceptions"), exports);
7
- tslib_1.__exportStar(require("./S3SignatureV4"), exports);
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUVBQXVDO0FBQ3ZDLGtFQUF3QztBQUN4QyxpRUFBdUM7QUFDdkMsMERBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vdmFsaWRhdGUtYnVja2V0LW5hbWVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3VzZS1yZWdpb25hbC1lbmRwb2ludFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGhyb3ctMjAwLWV4Y2VwdGlvbnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1MzU2lnbmF0dXJlVjRcIjtcbiJdfQ==