@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
@@ -1,65 +0,0 @@
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
- /**
6
- * In case of an internal error/terminated connection, S3 operations may return 200 errors. CopyObject, UploadPartCopy,
7
- * CompleteMultipartUpload may return empty payload or payload with only xml Preamble.
8
- * @internal
9
- */
10
- const throw200ExceptionsMiddleware = (config) => (next) => async (args) => {
11
- const result = await next(args);
12
- const { response } = result;
13
- if (!protocol_http_1.HttpResponse.isInstance(response))
14
- return result;
15
- const { statusCode, body } = response;
16
- if (statusCode < 200 && statusCode >= 300)
17
- return result;
18
- // Throw 2XX response that's either an error or has empty body.
19
- const bodyBytes = await collectBody(body, config);
20
- const bodyString = await collectBodyString(bodyBytes, config);
21
- if (bodyBytes.length === 0) {
22
- const err = new Error("S3 aborted request");
23
- err.name = "InternalError";
24
- throw err;
25
- }
26
- if (bodyString && bodyString.match("<Error>")) {
27
- // Set the error code to 4XX so that error deserializer can parse them
28
- response.statusCode = 400;
29
- }
30
- // Body stream is consumed and paused at this point. So replace the response.body to the collected bytes.
31
- // So that the deserializer can consume the body as normal.
32
- response.body = bodyBytes;
33
- return result;
34
- };
35
- exports.throw200ExceptionsMiddleware = throw200ExceptionsMiddleware;
36
- // Collect low-level response body stream to Uint8Array.
37
- const collectBody = (streamBody = new Uint8Array(), context) => {
38
- if (streamBody instanceof Uint8Array) {
39
- return Promise.resolve(streamBody);
40
- }
41
- return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());
42
- };
43
- // Encode Uint8Array data into string with utf-8.
44
- const collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));
45
- /**
46
- * @internal
47
- */
48
- exports.throw200ExceptionsMiddlewareOptions = {
49
- relation: "after",
50
- toMiddleware: "deserializerMiddleware",
51
- tags: ["THROW_200_EXCEPTIONS", "S3"],
52
- name: "throw200ExceptionsMiddleware",
53
- override: true,
54
- };
55
- /**
56
- *
57
- * @internal
58
- */
59
- const getThrow200ExceptionsPlugin = (config) => ({
60
- applyToStack: (clientStack) => {
61
- clientStack.addRelativeTo(exports.throw200ExceptionsMiddleware(config), exports.throw200ExceptionsMiddlewareOptions);
62
- },
63
- });
64
- exports.getThrow200ExceptionsPlugin = getThrow200ExceptionsPlugin;
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3ctMjAwLWV4Y2VwdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGhyb3ctMjAwLWV4Y2VwdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQXNEO0FBUXREOzs7O0dBSUc7QUFDSSxNQUFNLDRCQUE0QixHQUN2QyxDQUFDLE1BQTBCLEVBQW1DLEVBQUUsQ0FDaEUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNULEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUNiLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDNUIsSUFBSSxDQUFDLDRCQUFZLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ3RELE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQ3RDLElBQUksVUFBVSxHQUFHLEdBQUcsSUFBSSxVQUFVLElBQUksR0FBRztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBRXpELCtEQUErRDtJQUMvRCxNQUFNLFNBQVMsR0FBRyxNQUFNLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUQsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzVDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDO1FBQzNCLE1BQU0sR0FBRyxDQUFDO0tBQ1g7SUFDRCxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQzdDLHNFQUFzRTtRQUN0RSxRQUFRLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztLQUMzQjtJQUVELHlHQUF5RztJQUN6RywyREFBMkQ7SUFDM0QsUUFBUSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7SUFDMUIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBM0JTLFFBQUEsNEJBQTRCLGdDQTJCckM7QUFFSix3REFBd0Q7QUFDeEQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxhQUFrQixJQUFJLFVBQVUsRUFBRSxFQUFFLE9BQTJCLEVBQXVCLEVBQUU7SUFDM0csSUFBSSxVQUFVLFlBQVksVUFBVSxFQUFFO1FBQ3BDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUNwQztJQUNELE9BQU8sT0FBTyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQztBQUNsRixDQUFDLENBQUM7QUFFRixpREFBaUQ7QUFDakQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFVBQWUsRUFBRSxPQUEyQixFQUFtQixFQUFFLENBQzFGLFdBQVcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFFN0U7O0dBRUc7QUFDVSxRQUFBLG1DQUFtQyxHQUE4QjtJQUM1RSxRQUFRLEVBQUUsT0FBTztJQUNqQixZQUFZLEVBQUUsd0JBQXdCO0lBQ3RDLElBQUksRUFBRSxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQztJQUNwQyxJQUFJLEVBQUUsOEJBQThCO0lBQ3BDLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGOzs7R0FHRztBQUNJLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxNQUEwQixFQUF1QixFQUFFLENBQUMsQ0FBQztJQUMvRixZQUFZLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUM1QixXQUFXLENBQUMsYUFBYSxDQUFDLG9DQUE0QixDQUFDLE1BQU0sQ0FBQyxFQUFFLDJDQUFtQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUpVLFFBQUEsMkJBQTJCLCtCQUlyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXNwb25zZSB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBEZXNlcmlhbGl6ZU1pZGRsZXdhcmUsIEVuY29kZXIsIFBsdWdnYWJsZSwgUmVsYXRpdmVNaWRkbGV3YXJlT3B0aW9ucywgU3RyZWFtQ29sbGVjdG9yIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbnR5cGUgUHJldmlvdXNseVJlc29sdmVkID0ge1xuICBzdHJlYW1Db2xsZWN0b3I6IFN0cmVhbUNvbGxlY3RvcjtcbiAgdXRmOEVuY29kZXI6IEVuY29kZXI7XG59O1xuXG4vKipcbiAqIEluIGNhc2Ugb2YgYW4gaW50ZXJuYWwgZXJyb3IvdGVybWluYXRlZCBjb25uZWN0aW9uLCBTMyBvcGVyYXRpb25zIG1heSByZXR1cm4gMjAwIGVycm9ycy4gQ29weU9iamVjdCwgVXBsb2FkUGFydENvcHksXG4gKiBDb21wbGV0ZU11bHRpcGFydFVwbG9hZCBtYXkgcmV0dXJuIGVtcHR5IHBheWxvYWQgb3IgcGF5bG9hZCB3aXRoIG9ubHkgeG1sIFByZWFtYmxlLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlID1cbiAgKGNvbmZpZzogUHJldmlvdXNseVJlc29sdmVkKTogRGVzZXJpYWxpemVNaWRkbGV3YXJlPGFueSwgYW55PiA9PlxuICAobmV4dCkgPT5cbiAgYXN5bmMgKGFyZ3MpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZXh0KGFyZ3MpO1xuICAgIGNvbnN0IHsgcmVzcG9uc2UgfSA9IHJlc3VsdDtcbiAgICBpZiAoIUh0dHBSZXNwb25zZS5pc0luc3RhbmNlKHJlc3BvbnNlKSkgcmV0dXJuIHJlc3VsdDtcbiAgICBjb25zdCB7IHN0YXR1c0NvZGUsIGJvZHkgfSA9IHJlc3BvbnNlO1xuICAgIGlmIChzdGF0dXNDb2RlIDwgMjAwICYmIHN0YXR1c0NvZGUgPj0gMzAwKSByZXR1cm4gcmVzdWx0O1xuXG4gICAgLy8gVGhyb3cgMlhYIHJlc3BvbnNlIHRoYXQncyBlaXRoZXIgYW4gZXJyb3Igb3IgaGFzIGVtcHR5IGJvZHkuXG4gICAgY29uc3QgYm9keUJ5dGVzID0gYXdhaXQgY29sbGVjdEJvZHkoYm9keSwgY29uZmlnKTtcbiAgICBjb25zdCBib2R5U3RyaW5nID0gYXdhaXQgY29sbGVjdEJvZHlTdHJpbmcoYm9keUJ5dGVzLCBjb25maWcpO1xuICAgIGlmIChib2R5Qnl0ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoXCJTMyBhYm9ydGVkIHJlcXVlc3RcIik7XG4gICAgICBlcnIubmFtZSA9IFwiSW50ZXJuYWxFcnJvclwiO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgICBpZiAoYm9keVN0cmluZyAmJiBib2R5U3RyaW5nLm1hdGNoKFwiPEVycm9yPlwiKSkge1xuICAgICAgLy8gU2V0IHRoZSBlcnJvciBjb2RlIHRvIDRYWCBzbyB0aGF0IGVycm9yIGRlc2VyaWFsaXplciBjYW4gcGFyc2UgdGhlbVxuICAgICAgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9IDQwMDtcbiAgICB9XG5cbiAgICAvLyBCb2R5IHN0cmVhbSBpcyBjb25zdW1lZCBhbmQgcGF1c2VkIGF0IHRoaXMgcG9pbnQuIFNvIHJlcGxhY2UgdGhlIHJlc3BvbnNlLmJvZHkgdG8gdGhlIGNvbGxlY3RlZCBieXRlcy5cbiAgICAvLyBTbyB0aGF0IHRoZSBkZXNlcmlhbGl6ZXIgY2FuIGNvbnN1bWUgdGhlIGJvZHkgYXMgbm9ybWFsLlxuICAgIHJlc3BvbnNlLmJvZHkgPSBib2R5Qnl0ZXM7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuLy8gQ29sbGVjdCBsb3ctbGV2ZWwgcmVzcG9uc2UgYm9keSBzdHJlYW0gdG8gVWludDhBcnJheS5cbmNvbnN0IGNvbGxlY3RCb2R5ID0gKHN0cmVhbUJvZHk6IGFueSA9IG5ldyBVaW50OEFycmF5KCksIGNvbnRleHQ6IFByZXZpb3VzbHlSZXNvbHZlZCk6IFByb21pc2U8VWludDhBcnJheT4gPT4ge1xuICBpZiAoc3RyZWFtQm9keSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN0cmVhbUJvZHkpO1xuICB9XG4gIHJldHVybiBjb250ZXh0LnN0cmVhbUNvbGxlY3RvcihzdHJlYW1Cb2R5KSB8fCBQcm9taXNlLnJlc29sdmUobmV3IFVpbnQ4QXJyYXkoKSk7XG59O1xuXG4vLyBFbmNvZGUgVWludDhBcnJheSBkYXRhIGludG8gc3RyaW5nIHdpdGggdXRmLTguXG5jb25zdCBjb2xsZWN0Qm9keVN0cmluZyA9IChzdHJlYW1Cb2R5OiBhbnksIGNvbnRleHQ6IFByZXZpb3VzbHlSZXNvbHZlZCk6IFByb21pc2U8c3RyaW5nPiA9PlxuICBjb2xsZWN0Qm9keShzdHJlYW1Cb2R5LCBjb250ZXh0KS50aGVuKChib2R5KSA9PiBjb250ZXh0LnV0ZjhFbmNvZGVyKGJvZHkpKTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmVPcHRpb25zOiBSZWxhdGl2ZU1pZGRsZXdhcmVPcHRpb25zID0ge1xuICByZWxhdGlvbjogXCJhZnRlclwiLFxuICB0b01pZGRsZXdhcmU6IFwiZGVzZXJpYWxpemVyTWlkZGxld2FyZVwiLFxuICB0YWdzOiBbXCJUSFJPV18yMDBfRVhDRVBUSU9OU1wiLCBcIlMzXCJdLFxuICBuYW1lOiBcInRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmVcIixcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG4vKipcbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFRocm93MjAwRXhjZXB0aW9uc1BsdWdpbiA9IChjb25maWc6IFByZXZpb3VzbHlSZXNvbHZlZCk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGRSZWxhdGl2ZVRvKHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmUoY29uZmlnKSwgdGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0=
@@ -1,39 +0,0 @@
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
- /**
6
- * @internal
7
- */
8
- const useRegionalEndpointMiddleware = (config) => (next) => async (args) => {
9
- const { request } = args;
10
- if (!protocol_http_1.HttpRequest.isInstance(request) || config.isCustomEndpoint)
11
- return next({ ...args });
12
- if (request.hostname === "s3.amazonaws.com") {
13
- request.hostname = "s3.us-east-1.amazonaws.com";
14
- }
15
- else if ("aws-global" === (await config.region())) {
16
- request.hostname = "s3.amazonaws.com";
17
- }
18
- return next({ ...args });
19
- };
20
- exports.useRegionalEndpointMiddleware = useRegionalEndpointMiddleware;
21
- /**
22
- * @internal
23
- */
24
- exports.useRegionalEndpointMiddlewareOptions = {
25
- step: "build",
26
- tags: ["USE_REGIONAL_ENDPOINT", "S3"],
27
- name: "useRegionalEndpointMiddleware",
28
- override: true,
29
- };
30
- /**
31
- * @internal
32
- */
33
- const getUseRegionalEndpointPlugin = (config) => ({
34
- applyToStack: (clientStack) => {
35
- clientStack.add(exports.useRegionalEndpointMiddleware(config), exports.useRegionalEndpointMiddlewareOptions);
36
- },
37
- });
38
- exports.getUseRegionalEndpointPlugin = getUseRegionalEndpointPlugin;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJlZ2lvbmFsLWVuZHBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VzZS1yZWdpb25hbC1lbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwREFBcUQ7QUFpQnJEOztHQUVHO0FBQ0ksTUFBTSw2QkFBNkIsR0FDeEMsQ0FBQyxNQUEwQixFQUE2QixFQUFFLENBQzFELENBQWdDLElBQStCLEVBQTZCLEVBQUUsQ0FDOUYsS0FBSyxFQUFFLElBQWdDLEVBQXVDLEVBQUU7SUFDOUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQztJQUN6QixJQUFJLENBQUMsMkJBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLGdCQUFnQjtRQUFFLE9BQU8sSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxrQkFBa0IsRUFBRTtRQUMzQyxPQUFPLENBQUMsUUFBUSxHQUFHLDRCQUE0QixDQUFDO0tBQ2pEO1NBQU0sSUFBSSxZQUFZLEtBQUssQ0FBQyxNQUFNLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFO1FBQ25ELE9BQU8sQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUM7S0FDdkM7SUFDRCxPQUFPLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUMzQixDQUFDLENBQUM7QUFaUyxRQUFBLDZCQUE2QixpQ0FZdEM7QUFFSjs7R0FFRztBQUNVLFFBQUEsb0NBQW9DLEdBQXdCO0lBQ3ZFLElBQUksRUFBRSxPQUFPO0lBQ2IsSUFBSSxFQUFFLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDO0lBQ3JDLElBQUksRUFBRSwrQkFBK0I7SUFDckMsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUY7O0dBRUc7QUFDSSxNQUFNLDRCQUE0QixHQUFHLENBQUMsTUFBMEIsRUFBdUIsRUFBRSxDQUFDLENBQUM7SUFDaEcsWUFBWSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDNUIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxxQ0FBNkIsQ0FBQyxNQUFNLENBQUMsRUFBRSw0Q0FBb0MsQ0FBQyxDQUFDO0lBQy9GLENBQUM7Q0FDRixDQUFDLENBQUM7QUFKVSxRQUFBLDRCQUE0QixnQ0FJdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBCdWlsZEhhbmRsZXIsXG4gIEJ1aWxkSGFuZGxlckFyZ3VtZW50cyxcbiAgQnVpbGRIYW5kbGVyT3B0aW9ucyxcbiAgQnVpbGRIYW5kbGVyT3V0cHV0LFxuICBCdWlsZE1pZGRsZXdhcmUsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG4gIFByb3ZpZGVyLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxudHlwZSBQcmV2aW91c2x5UmVzb2x2ZWQgPSB7XG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgaXNDdXN0b21FbmRwb2ludDogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VSZWdpb25hbEVuZHBvaW50TWlkZGxld2FyZSA9XG4gIChjb25maWc6IFByZXZpb3VzbHlSZXNvbHZlZCk6IEJ1aWxkTWlkZGxld2FyZTxhbnksIGFueT4gPT5cbiAgPE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyPihuZXh0OiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+KTogQnVpbGRIYW5kbGVyPGFueSwgT3V0cHV0PiA9PlxuICBhc3luYyAoYXJnczogQnVpbGRIYW5kbGVyQXJndW1lbnRzPGFueT4pOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgIGlmICghSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSB8fCBjb25maWcuaXNDdXN0b21FbmRwb2ludCkgcmV0dXJuIG5leHQoeyAuLi5hcmdzIH0pO1xuICAgIGlmIChyZXF1ZXN0Lmhvc3RuYW1lID09PSBcInMzLmFtYXpvbmF3cy5jb21cIikge1xuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IFwiczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb21cIjtcbiAgICB9IGVsc2UgaWYgKFwiYXdzLWdsb2JhbFwiID09PSAoYXdhaXQgY29uZmlnLnJlZ2lvbigpKSkge1xuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IFwiczMuYW1hem9uYXdzLmNvbVwiO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dCh7IC4uLmFyZ3MgfSk7XG4gIH07XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VSZWdpb25hbEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnM6IEJ1aWxkSGFuZGxlck9wdGlvbnMgPSB7XG4gIHN0ZXA6IFwiYnVpbGRcIixcbiAgdGFnczogW1wiVVNFX1JFR0lPTkFMX0VORFBPSU5UXCIsIFwiUzNcIl0sXG4gIG5hbWU6IFwidXNlUmVnaW9uYWxFbmRwb2ludE1pZGRsZXdhcmVcIixcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgZ2V0VXNlUmVnaW9uYWxFbmRwb2ludFBsdWdpbiA9IChjb25maWc6IFByZXZpb3VzbHlSZXNvbHZlZCk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQodXNlUmVnaW9uYWxFbmRwb2ludE1pZGRsZXdhcmUoY29uZmlnKSwgdXNlUmVnaW9uYWxFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19
@@ -1,39 +0,0 @@
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
- /**
6
- * @internal
7
- */
8
- function validateBucketNameMiddleware() {
9
- return (next) => async (args) => {
10
- const { input: { Bucket }, } = args;
11
- if (typeof Bucket === "string" && !util_arn_parser_1.validate(Bucket) && Bucket.indexOf("/") >= 0) {
12
- const err = new Error(`Bucket name shouldn't contain '/', received '${Bucket}'`);
13
- err.name = "InvalidBucketName";
14
- throw err;
15
- }
16
- return next({ ...args });
17
- };
18
- }
19
- exports.validateBucketNameMiddleware = validateBucketNameMiddleware;
20
- /**
21
- * @internal
22
- */
23
- exports.validateBucketNameMiddlewareOptions = {
24
- step: "initialize",
25
- tags: ["VALIDATE_BUCKET_NAME"],
26
- name: "validateBucketNameMiddleware",
27
- override: true,
28
- };
29
- /**
30
- * @internal
31
- */
32
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
33
- const getValidateBucketNamePlugin = (unused) => ({
34
- applyToStack: (clientStack) => {
35
- clientStack.add(validateBucketNameMiddleware(), exports.validateBucketNameMiddlewareOptions);
36
- },
37
- });
38
- exports.getValidateBucketNamePlugin = getValidateBucketNamePlugin;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtYnVja2V0LW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGUtYnVja2V0LW5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBU0EsOERBQW1FO0FBRW5FOztHQUVHO0FBQ0gsU0FBZ0IsNEJBQTRCO0lBQzFDLE9BQU8sQ0FBZ0MsSUFBb0MsRUFBa0MsRUFBRSxDQUM3RyxLQUFLLEVBQUUsSUFBcUMsRUFBNEMsRUFBRTtRQUN4RixNQUFNLEVBQ0osS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQ2xCLEdBQUcsSUFBSSxDQUFDO1FBQ1QsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQywwQkFBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2xGLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLGdEQUFnRCxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2pGLEdBQUcsQ0FBQyxJQUFJLEdBQUcsbUJBQW1CLENBQUM7WUFDL0IsTUFBTSxHQUFHLENBQUM7U0FDWDtRQUNELE9BQU8sSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQztBQUNOLENBQUM7QUFiRCxvRUFhQztBQUVEOztHQUVHO0FBQ1UsUUFBQSxtQ0FBbUMsR0FBNkI7SUFDM0UsSUFBSSxFQUFFLFlBQVk7SUFDbEIsSUFBSSxFQUFFLENBQUMsc0JBQXNCLENBQUM7SUFDOUIsSUFBSSxFQUFFLDhCQUE4QjtJQUNwQyxRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFRjs7R0FFRztBQUNILDZEQUE2RDtBQUN0RCxNQUFNLDJCQUEyQixHQUFHLENBQUMsTUFBVyxFQUF1QixFQUFFLENBQUMsQ0FBQztJQUNoRixZQUFZLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUM1QixXQUFXLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFLEVBQUUsMkNBQW1DLENBQUMsQ0FBQztJQUN2RixDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBSlUsUUFBQSwyQkFBMkIsK0JBSXJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5pdGlhbGl6ZUhhbmRsZXIsXG4gIEluaXRpYWxpemVIYW5kbGVyQXJndW1lbnRzLFxuICBJbml0aWFsaXplSGFuZGxlck9wdGlvbnMsXG4gIEluaXRpYWxpemVIYW5kbGVyT3V0cHV0LFxuICBJbml0aWFsaXplTWlkZGxld2FyZSxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB2YWxpZGF0ZSBhcyB2YWxpZGF0ZUFybiB9IGZyb20gXCJAYXdzLXNkay91dGlsLWFybi1wYXJzZXJcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmUoKTogSW5pdGlhbGl6ZU1pZGRsZXdhcmU8YW55LCBhbnk+IHtcbiAgcmV0dXJuIDxPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlcj4obmV4dDogSW5pdGlhbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+KTogSW5pdGlhbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+XG4gICAgYXN5bmMgKGFyZ3M6IEluaXRpYWxpemVIYW5kbGVyQXJndW1lbnRzPGFueT4pOiBQcm9taXNlPEluaXRpYWxpemVIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaW5wdXQ6IHsgQnVja2V0IH0sXG4gICAgICB9ID0gYXJncztcbiAgICAgIGlmICh0eXBlb2YgQnVja2V0ID09PSBcInN0cmluZ1wiICYmICF2YWxpZGF0ZUFybihCdWNrZXQpICYmIEJ1Y2tldC5pbmRleE9mKFwiL1wiKSA+PSAwKSB7XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcihgQnVja2V0IG5hbWUgc2hvdWxkbid0IGNvbnRhaW4gJy8nLCByZWNlaXZlZCAnJHtCdWNrZXR9J2ApO1xuICAgICAgICBlcnIubmFtZSA9IFwiSW52YWxpZEJ1Y2tldE5hbWVcIjtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5leHQoeyAuLi5hcmdzIH0pO1xuICAgIH07XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlT3B0aW9uczogSW5pdGlhbGl6ZUhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgdGFnczogW1wiVkFMSURBVEVfQlVDS0VUX05BTUVcIl0sXG4gIG5hbWU6IFwidmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmV4cG9ydCBjb25zdCBnZXRWYWxpZGF0ZUJ1Y2tldE5hbWVQbHVnaW4gPSAodW51c2VkOiBhbnkpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkKHZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmUoKSwgdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0=
@@ -1,79 +0,0 @@
1
- import { __assign, __awaiter, __generator } from "tslib";
2
- import { SignatureV4 } from "@aws-sdk/signature-v4";
3
- /**
4
- * A SigV4-compatible signer for S3 service. In order to support SigV4a algorithm according to the operation input
5
- * dynamically, the signer wraps native module SigV4a signer and JS SigV4 signer. It signs the request with SigV4a
6
- * algorithm if the request needs to be signed with `*` region. Otherwise, it signs the request with normal SigV4
7
- * signer.
8
- * Note that SigV4a signer is only supported in Node.js now because it depends on a native dependency.
9
- * @private
10
- */
11
- var S3SignatureV4 = /** @class */ (function () {
12
- function S3SignatureV4(options) {
13
- this.sigv4Signer = new SignatureV4(options);
14
- this.signerOptions = options;
15
- }
16
- S3SignatureV4.prototype.sign = function (requestToSign, options) {
17
- if (options === void 0) { options = {}; }
18
- return __awaiter(this, void 0, void 0, function () {
19
- return __generator(this, function (_a) {
20
- switch (_a.label) {
21
- case 0:
22
- if (!(options.signingRegion === "*")) return [3 /*break*/, 2];
23
- if (this.signerOptions.runtime !== "node")
24
- throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");
25
- return [4 /*yield*/, this.getSigv4aSigner()];
26
- case 1: return [2 /*return*/, (_a.sent()).sign(requestToSign, options)];
27
- case 2: return [2 /*return*/, this.sigv4Signer.sign(requestToSign, options)];
28
- }
29
- });
30
- });
31
- };
32
- S3SignatureV4.prototype.presign = function (originalRequest, options) {
33
- if (options === void 0) { options = {}; }
34
- return __awaiter(this, void 0, void 0, function () {
35
- return __generator(this, function (_a) {
36
- switch (_a.label) {
37
- case 0:
38
- if (!(options.signingRegion === "*")) return [3 /*break*/, 2];
39
- if (this.signerOptions.runtime !== "node")
40
- throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");
41
- return [4 /*yield*/, this.getSigv4aSigner()];
42
- case 1: return [2 /*return*/, (_a.sent()).presign(originalRequest, options)];
43
- case 2: return [2 /*return*/, this.sigv4Signer.presign(originalRequest, options)];
44
- }
45
- });
46
- });
47
- };
48
- S3SignatureV4.prototype.getSigv4aSigner = function () {
49
- return __awaiter(this, void 0, void 0, function () {
50
- var CrtSignerV4_1, e_1;
51
- return __generator(this, function (_a) {
52
- switch (_a.label) {
53
- case 0:
54
- if (!!this.sigv4aSigner) return [3 /*break*/, 5];
55
- _a.label = 1;
56
- case 1:
57
- _a.trys.push([1, 3, , 4]);
58
- return [4 /*yield*/, import("@aws-sdk/signature-v4-crt")];
59
- case 2:
60
- CrtSignerV4_1 = (_a.sent()).CrtSignerV4;
61
- return [3 /*break*/, 4];
62
- case 3:
63
- e_1 = _a.sent();
64
- e_1.message =
65
- e_1.message + "\nPlease check if you have installed \"@aws-sdk/signature-v4-crt\" package explicitly. \n" +
66
- "For more information please go to https://github.com/aws/aws-sdk-js-v3#known-issues";
67
- throw e_1;
68
- case 4:
69
- this.sigv4aSigner = new CrtSignerV4_1(__assign(__assign({}, this.signerOptions), { signingAlgorithm: 1 }));
70
- _a.label = 5;
71
- case 5: return [2 /*return*/, this.sigv4aSigner];
72
- }
73
- });
74
- });
75
- };
76
- return S3SignatureV4;
77
- }());
78
- export { S3SignatureV4 };
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUzNTaWduYXR1cmVWNC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TM1NpZ25hdHVyZVY0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUEwQyxNQUFNLHVCQUF1QixDQUFDO0FBZTVGOzs7Ozs7O0dBT0c7QUFDSDtJQUtFLHVCQUFZLE9BQXVCO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7SUFDL0IsQ0FBQztJQUVZLDRCQUFJLEdBQWpCLFVBQWtCLGFBQTBCLEVBQUUsT0FBcUM7UUFBckMsd0JBQUEsRUFBQSxZQUFxQzs7Ozs7NkJBQzdFLENBQUEsT0FBTyxDQUFDLGFBQWEsS0FBSyxHQUFHLENBQUEsRUFBN0Isd0JBQTZCO3dCQUMvQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxLQUFLLE1BQU07NEJBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsOEZBQThGLENBQUMsQ0FBQzt3QkFDMUcscUJBQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFBOzRCQUFwQyxzQkFBTyxDQUFDLFNBQTRCLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxFQUFDOzRCQUVyRSxzQkFBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLEVBQUM7Ozs7S0FDdEQ7SUFFWSwrQkFBTyxHQUFwQixVQUFxQixlQUE0QixFQUFFLE9BQXdDO1FBQXhDLHdCQUFBLEVBQUEsWUFBd0M7Ozs7OzZCQUNyRixDQUFBLE9BQU8sQ0FBQyxhQUFhLEtBQUssR0FBRyxDQUFBLEVBQTdCLHdCQUE2Qjt3QkFDL0IsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sS0FBSyxNQUFNOzRCQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLDhGQUE4RixDQUFDLENBQUM7d0JBQzFHLHFCQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBQTs0QkFBcEMsc0JBQU8sQ0FBQyxTQUE0QixDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsRUFBQzs0QkFFMUUsc0JBQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxFQUFDOzs7O0tBQzNEO0lBRWEsdUNBQWUsR0FBN0I7Ozs7Ozs2QkFDTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQWxCLHdCQUFrQjs7Ozt3QkFHSCxxQkFBTSxNQUFNLENBQUMsMkJBQTJCLENBQUMsRUFBQTs7d0JBQXhELGFBQVcsR0FBRyxDQUFDLFNBQXlDLENBQUMsQ0FBQyxXQUFXLENBQUM7Ozs7d0JBRXRFLEdBQUMsQ0FBQyxPQUFPOzRCQUNKLEdBQUMsQ0FBQyxPQUFPLDhGQUF5RjtnQ0FDckcscUZBQXFGLENBQUM7d0JBQ3hGLE1BQU0sR0FBQyxDQUFDOzt3QkFFVixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksYUFBVyx1QkFDOUIsSUFBSSxDQUFDLGFBQWEsS0FDckIsZ0JBQWdCLEVBQUUsQ0FBQyxJQUNuQixDQUFDOzs0QkFFTCxzQkFBTyxJQUFJLENBQUMsWUFBWSxFQUFDOzs7O0tBQzFCO0lBQ0gsb0JBQUM7QUFBRCxDQUFDLEFBOUNELElBOENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmF0dXJlVjQsIFNpZ25hdHVyZVY0Q3J5cHRvSW5pdCwgU2lnbmF0dXJlVjRJbml0IH0gZnJvbSBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NFwiO1xuaW1wb3J0IHR5cGUgeyBDcnRTaWduZXJWNCwgQ3J0U2lnbmVyVjRJbml0IH0gZnJvbSBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NC1jcnRcIjtcbmltcG9ydCB7XG4gIEh0dHBSZXF1ZXN0LFxuICBSZXF1ZXN0UHJlc2lnbmVyLFxuICBSZXF1ZXN0UHJlc2lnbmluZ0FyZ3VtZW50cyxcbiAgUmVxdWVzdFNpZ25lcixcbiAgUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBTM1NpZ25lclY0SW5pdCA9IFNpZ25hdHVyZVY0SW5pdCAmXG4gIFNpZ25hdHVyZVY0Q3J5cHRvSW5pdCAmIHtcbiAgICBydW50aW1lPzogc3RyaW5nO1xuICB9O1xuXG4vKipcbiAqIEEgU2lnVjQtY29tcGF0aWJsZSBzaWduZXIgZm9yIFMzIHNlcnZpY2UuIEluIG9yZGVyIHRvIHN1cHBvcnQgU2lnVjRhIGFsZ29yaXRobSBhY2NvcmRpbmcgdG8gdGhlIG9wZXJhdGlvbiBpbnB1dFxuICogZHluYW1pY2FsbHksIHRoZSBzaWduZXIgd3JhcHMgbmF0aXZlIG1vZHVsZSBTaWdWNGEgc2lnbmVyIGFuZCBKUyBTaWdWNCBzaWduZXIuIEl0IHNpZ25zIHRoZSByZXF1ZXN0IHdpdGggU2lnVjRhXG4gKiBhbGdvcml0aG0gaWYgdGhlIHJlcXVlc3QgbmVlZHMgdG8gYmUgc2lnbmVkIHdpdGggYCpgIHJlZ2lvbi4gT3RoZXJ3aXNlLCBpdCBzaWducyB0aGUgcmVxdWVzdCB3aXRoIG5vcm1hbCBTaWdWNFxuICogc2lnbmVyLlxuICogTm90ZSB0aGF0IFNpZ1Y0YSBzaWduZXIgaXMgb25seSBzdXBwb3J0ZWQgaW4gTm9kZS5qcyBub3cgYmVjYXVzZSBpdCBkZXBlbmRzIG9uIGEgbmF0aXZlIGRlcGVuZGVuY3kuXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgUzNTaWduYXR1cmVWNCBpbXBsZW1lbnRzIFJlcXVlc3RQcmVzaWduZXIsIFJlcXVlc3RTaWduZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHNpZ3Y0U2lnbmVyOiBTaWduYXR1cmVWNDtcbiAgcHJpdmF0ZSBzaWd2NGFTaWduZXI/OiBDcnRTaWduZXJWNDtcbiAgcHJpdmF0ZSByZWFkb25seSBzaWduZXJPcHRpb25zOiBTM1NpZ25lclY0SW5pdDtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBTM1NpZ25lclY0SW5pdCkge1xuICAgIHRoaXMuc2lndjRTaWduZXIgPSBuZXcgU2lnbmF0dXJlVjQob3B0aW9ucyk7XG4gICAgdGhpcy5zaWduZXJPcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzaWduKHJlcXVlc3RUb1NpZ246IEh0dHBSZXF1ZXN0LCBvcHRpb25zOiBSZXF1ZXN0U2lnbmluZ0FyZ3VtZW50cyA9IHt9KTogUHJvbWlzZTxIdHRwUmVxdWVzdD4ge1xuICAgIGlmIChvcHRpb25zLnNpZ25pbmdSZWdpb24gPT09IFwiKlwiKSB7XG4gICAgICBpZiAodGhpcy5zaWduZXJPcHRpb25zLnJ1bnRpbWUgIT09IFwibm9kZVwiKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGlzIHJlcXVlc3QgcmVxdWlyZXMgc2lnbmluZyB3aXRoIFNpZ1Y0QXN5bW1ldHJpYyBhbGdvcml0aG0uIEl0J3Mgb25seSBhdmFpbGFibGUgaW4gTm9kZS5qc1wiKTtcbiAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5nZXRTaWd2NGFTaWduZXIoKSkuc2lnbihyZXF1ZXN0VG9TaWduLCBvcHRpb25zKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2lndjRTaWduZXIuc2lnbihyZXF1ZXN0VG9TaWduLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcmVzaWduKG9yaWdpbmFsUmVxdWVzdDogSHR0cFJlcXVlc3QsIG9wdGlvbnM6IFJlcXVlc3RQcmVzaWduaW5nQXJndW1lbnRzID0ge30pOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgaWYgKG9wdGlvbnMuc2lnbmluZ1JlZ2lvbiA9PT0gXCIqXCIpIHtcbiAgICAgIGlmICh0aGlzLnNpZ25lck9wdGlvbnMucnVudGltZSAhPT0gXCJub2RlXCIpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgcmVxdWVzdCByZXF1aXJlcyBzaWduaW5nIHdpdGggU2lnVjRBc3ltbWV0cmljIGFsZ29yaXRobS4gSXQncyBvbmx5IGF2YWlsYWJsZSBpbiBOb2RlLmpzXCIpO1xuICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldFNpZ3Y0YVNpZ25lcigpKS5wcmVzaWduKG9yaWdpbmFsUmVxdWVzdCwgb3B0aW9ucyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNpZ3Y0U2lnbmVyLnByZXNpZ24ob3JpZ2luYWxSZXF1ZXN0LCBvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0U2lndjRhU2lnbmVyKCk6IFByb21pc2U8Q3J0U2lnbmVyVjQ+IHtcbiAgICBpZiAoIXRoaXMuc2lndjRhU2lnbmVyKSB7XG4gICAgICBsZXQgQ3J0U2lnbmVyVjQ6IG5ldyAob3B0aW9uczogQ3J0U2lnbmVyVjRJbml0ICYgU2lnbmF0dXJlVjRDcnlwdG9Jbml0KSA9PiBDcnRTaWduZXJWNDtcbiAgICAgIHRyeSB7XG4gICAgICAgIENydFNpZ25lclY0ID0gKGF3YWl0IGltcG9ydChcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NC1jcnRcIikpLkNydFNpZ25lclY0O1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBlLm1lc3NhZ2UgPVxuICAgICAgICAgIGAke2UubWVzc2FnZX1cXG5QbGVhc2UgY2hlY2sgaWYgeW91IGhhdmUgaW5zdGFsbGVkIFwiQGF3cy1zZGsvc2lnbmF0dXJlLXY0LWNydFwiIHBhY2thZ2UgZXhwbGljaXRseS4gXFxuYCArXG4gICAgICAgICAgXCJGb3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2UgZ28gdG8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3Mtc2RrLWpzLXYzI2tub3duLWlzc3Vlc1wiO1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgICAgdGhpcy5zaWd2NGFTaWduZXIgPSBuZXcgQ3J0U2lnbmVyVjQoe1xuICAgICAgICAuLi50aGlzLnNpZ25lck9wdGlvbnMsXG4gICAgICAgIHNpZ25pbmdBbGdvcml0aG06IDEsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2lndjRhU2lnbmVyO1xuICB9XG59XG4iXX0=
package/dist/es/index.js DELETED
@@ -1,5 +0,0 @@
1
- export * from "./validate-bucket-name";
2
- export * from "./use-regional-endpoint";
3
- export * from "./throw-200-exceptions";
4
- export * from "./S3SignatureV4";
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3ZhbGlkYXRlLWJ1Y2tldC1uYW1lXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91c2UtcmVnaW9uYWwtZW5kcG9pbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Rocm93LTIwMC1leGNlcHRpb25zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TM1NpZ25hdHVyZVY0XCI7XG4iXX0=
@@ -1,78 +0,0 @@
1
- import { __awaiter, __generator } from "tslib";
2
- import { HttpResponse } from "@aws-sdk/protocol-http";
3
- /**
4
- * In case of an internal error/terminated connection, S3 operations may return 200 errors. CopyObject, UploadPartCopy,
5
- * CompleteMultipartUpload may return empty payload or payload with only xml Preamble.
6
- * @internal
7
- */
8
- export var throw200ExceptionsMiddleware = function (config) {
9
- return function (next) {
10
- return function (args) { return __awaiter(void 0, void 0, void 0, function () {
11
- var result, response, statusCode, body, bodyBytes, bodyString, err;
12
- return __generator(this, function (_a) {
13
- switch (_a.label) {
14
- case 0: return [4 /*yield*/, next(args)];
15
- case 1:
16
- result = _a.sent();
17
- response = result.response;
18
- if (!HttpResponse.isInstance(response))
19
- return [2 /*return*/, result];
20
- statusCode = response.statusCode, body = response.body;
21
- if (statusCode < 200 && statusCode >= 300)
22
- return [2 /*return*/, result];
23
- return [4 /*yield*/, collectBody(body, config)];
24
- case 2:
25
- bodyBytes = _a.sent();
26
- return [4 /*yield*/, collectBodyString(bodyBytes, config)];
27
- case 3:
28
- bodyString = _a.sent();
29
- if (bodyBytes.length === 0) {
30
- err = new Error("S3 aborted request");
31
- err.name = "InternalError";
32
- throw err;
33
- }
34
- if (bodyString && bodyString.match("<Error>")) {
35
- // Set the error code to 4XX so that error deserializer can parse them
36
- response.statusCode = 400;
37
- }
38
- // Body stream is consumed and paused at this point. So replace the response.body to the collected bytes.
39
- // So that the deserializer can consume the body as normal.
40
- response.body = bodyBytes;
41
- return [2 /*return*/, result];
42
- }
43
- });
44
- }); };
45
- };
46
- };
47
- // Collect low-level response body stream to Uint8Array.
48
- var collectBody = function (streamBody, context) {
49
- if (streamBody === void 0) { streamBody = new Uint8Array(); }
50
- if (streamBody instanceof Uint8Array) {
51
- return Promise.resolve(streamBody);
52
- }
53
- return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());
54
- };
55
- // Encode Uint8Array data into string with utf-8.
56
- var collectBodyString = function (streamBody, context) {
57
- return collectBody(streamBody, context).then(function (body) { return context.utf8Encoder(body); });
58
- };
59
- /**
60
- * @internal
61
- */
62
- export var throw200ExceptionsMiddlewareOptions = {
63
- relation: "after",
64
- toMiddleware: "deserializerMiddleware",
65
- tags: ["THROW_200_EXCEPTIONS", "S3"],
66
- name: "throw200ExceptionsMiddleware",
67
- override: true,
68
- };
69
- /**
70
- *
71
- * @internal
72
- */
73
- export var getThrow200ExceptionsPlugin = function (config) { return ({
74
- applyToStack: function (clientStack) {
75
- clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);
76
- },
77
- }); };
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3ctMjAwLWV4Y2VwdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGhyb3ctMjAwLWV4Y2VwdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVF0RDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLElBQU0sNEJBQTRCLEdBQ3ZDLFVBQUMsTUFBMEI7SUFDM0IsT0FBQSxVQUFDLElBQUk7UUFDTCxPQUFBLFVBQU8sSUFBSTs7Ozs0QkFDTSxxQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUE7O3dCQUF6QixNQUFNLEdBQUcsU0FBZ0I7d0JBQ3ZCLFFBQVEsR0FBSyxNQUFNLFNBQVgsQ0FBWTt3QkFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDOzRCQUFFLHNCQUFPLE1BQU0sRUFBQzt3QkFDOUMsVUFBVSxHQUFXLFFBQVEsV0FBbkIsRUFBRSxJQUFJLEdBQUssUUFBUSxLQUFiLENBQWM7d0JBQ3RDLElBQUksVUFBVSxHQUFHLEdBQUcsSUFBSSxVQUFVLElBQUksR0FBRzs0QkFBRSxzQkFBTyxNQUFNLEVBQUM7d0JBR3ZDLHFCQUFNLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUE7O3dCQUEzQyxTQUFTLEdBQUcsU0FBK0I7d0JBQzlCLHFCQUFNLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFBQTs7d0JBQXZELFVBQVUsR0FBRyxTQUEwQzt3QkFDN0QsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTs0QkFDcEIsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7NEJBQzVDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDOzRCQUMzQixNQUFNLEdBQUcsQ0FBQzt5QkFDWDt3QkFDRCxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFOzRCQUM3QyxzRUFBc0U7NEJBQ3RFLFFBQVEsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO3lCQUMzQjt3QkFFRCx5R0FBeUc7d0JBQ3pHLDJEQUEyRDt3QkFDM0QsUUFBUSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7d0JBQzFCLHNCQUFPLE1BQU0sRUFBQzs7O2FBQ2Y7SUF4QkQsQ0F3QkM7QUF6QkQsQ0F5QkMsQ0FBQztBQUVKLHdEQUF3RDtBQUN4RCxJQUFNLFdBQVcsR0FBRyxVQUFDLFVBQWtDLEVBQUUsT0FBMkI7SUFBL0QsMkJBQUEsRUFBQSxpQkFBc0IsVUFBVSxFQUFFO0lBQ3JELElBQUksVUFBVSxZQUFZLFVBQVUsRUFBRTtRQUNwQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDcEM7SUFDRCxPQUFPLE9BQU8sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFDbEYsQ0FBQyxDQUFDO0FBRUYsaURBQWlEO0FBQ2pELElBQU0saUJBQWlCLEdBQUcsVUFBQyxVQUFlLEVBQUUsT0FBMkI7SUFDckUsT0FBQSxXQUFXLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQXpCLENBQXlCLENBQUM7QUFBMUUsQ0FBMEUsQ0FBQztBQUU3RTs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLG1DQUFtQyxHQUE4QjtJQUM1RSxRQUFRLEVBQUUsT0FBTztJQUNqQixZQUFZLEVBQUUsd0JBQXdCO0lBQ3RDLElBQUksRUFBRSxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQztJQUNwQyxJQUFJLEVBQUUsOEJBQThCO0lBQ3BDLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLDJCQUEyQixHQUFHLFVBQUMsTUFBMEIsSUFBMEIsT0FBQSxDQUFDO0lBQy9GLFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLGFBQWEsQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7Q0FDRixDQUFDLEVBSjhGLENBSTlGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tIFwiQGF3cy1zZGsvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgRGVzZXJpYWxpemVNaWRkbGV3YXJlLCBFbmNvZGVyLCBQbHVnZ2FibGUsIFJlbGF0aXZlTWlkZGxld2FyZU9wdGlvbnMsIFN0cmVhbUNvbGxlY3RvciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG50eXBlIFByZXZpb3VzbHlSZXNvbHZlZCA9IHtcbiAgc3RyZWFtQ29sbGVjdG9yOiBTdHJlYW1Db2xsZWN0b3I7XG4gIHV0ZjhFbmNvZGVyOiBFbmNvZGVyO1xufTtcblxuLyoqXG4gKiBJbiBjYXNlIG9mIGFuIGludGVybmFsIGVycm9yL3Rlcm1pbmF0ZWQgY29ubmVjdGlvbiwgUzMgb3BlcmF0aW9ucyBtYXkgcmV0dXJuIDIwMCBlcnJvcnMuIENvcHlPYmplY3QsIFVwbG9hZFBhcnRDb3B5LFxuICogQ29tcGxldGVNdWx0aXBhcnRVcGxvYWQgbWF5IHJldHVybiBlbXB0eSBwYXlsb2FkIG9yIHBheWxvYWQgd2l0aCBvbmx5IHhtbCBQcmVhbWJsZS5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdGhyb3cyMDBFeGNlcHRpb25zTWlkZGxld2FyZSA9XG4gIChjb25maWc6IFByZXZpb3VzbHlSZXNvbHZlZCk6IERlc2VyaWFsaXplTWlkZGxld2FyZTxhbnksIGFueT4gPT5cbiAgKG5leHQpID0+XG4gIGFzeW5jIChhcmdzKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgICBjb25zdCB7IHJlc3BvbnNlIH0gPSByZXN1bHQ7XG4gICAgaWYgKCFIdHRwUmVzcG9uc2UuaXNJbnN0YW5jZShyZXNwb25zZSkpIHJldHVybiByZXN1bHQ7XG4gICAgY29uc3QgeyBzdGF0dXNDb2RlLCBib2R5IH0gPSByZXNwb25zZTtcbiAgICBpZiAoc3RhdHVzQ29kZSA8IDIwMCAmJiBzdGF0dXNDb2RlID49IDMwMCkgcmV0dXJuIHJlc3VsdDtcblxuICAgIC8vIFRocm93IDJYWCByZXNwb25zZSB0aGF0J3MgZWl0aGVyIGFuIGVycm9yIG9yIGhhcyBlbXB0eSBib2R5LlxuICAgIGNvbnN0IGJvZHlCeXRlcyA9IGF3YWl0IGNvbGxlY3RCb2R5KGJvZHksIGNvbmZpZyk7XG4gICAgY29uc3QgYm9keVN0cmluZyA9IGF3YWl0IGNvbGxlY3RCb2R5U3RyaW5nKGJvZHlCeXRlcywgY29uZmlnKTtcbiAgICBpZiAoYm9keUJ5dGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKFwiUzMgYWJvcnRlZCByZXF1ZXN0XCIpO1xuICAgICAgZXJyLm5hbWUgPSBcIkludGVybmFsRXJyb3JcIjtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gICAgaWYgKGJvZHlTdHJpbmcgJiYgYm9keVN0cmluZy5tYXRjaChcIjxFcnJvcj5cIikpIHtcbiAgICAgIC8vIFNldCB0aGUgZXJyb3IgY29kZSB0byA0WFggc28gdGhhdCBlcnJvciBkZXNlcmlhbGl6ZXIgY2FuIHBhcnNlIHRoZW1cbiAgICAgIHJlc3BvbnNlLnN0YXR1c0NvZGUgPSA0MDA7XG4gICAgfVxuXG4gICAgLy8gQm9keSBzdHJlYW0gaXMgY29uc3VtZWQgYW5kIHBhdXNlZCBhdCB0aGlzIHBvaW50LiBTbyByZXBsYWNlIHRoZSByZXNwb25zZS5ib2R5IHRvIHRoZSBjb2xsZWN0ZWQgYnl0ZXMuXG4gICAgLy8gU28gdGhhdCB0aGUgZGVzZXJpYWxpemVyIGNhbiBjb25zdW1lIHRoZSBib2R5IGFzIG5vcm1hbC5cbiAgICByZXNwb25zZS5ib2R5ID0gYm9keUJ5dGVzO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbi8vIENvbGxlY3QgbG93LWxldmVsIHJlc3BvbnNlIGJvZHkgc3RyZWFtIHRvIFVpbnQ4QXJyYXkuXG5jb25zdCBjb2xsZWN0Qm9keSA9IChzdHJlYW1Cb2R5OiBhbnkgPSBuZXcgVWludDhBcnJheSgpLCBjb250ZXh0OiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBQcm9taXNlPFVpbnQ4QXJyYXk+ID0+IHtcbiAgaWYgKHN0cmVhbUJvZHkgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzdHJlYW1Cb2R5KTtcbiAgfVxuICByZXR1cm4gY29udGV4dC5zdHJlYW1Db2xsZWN0b3Ioc3RyZWFtQm9keSkgfHwgUHJvbWlzZS5yZXNvbHZlKG5ldyBVaW50OEFycmF5KCkpO1xufTtcblxuLy8gRW5jb2RlIFVpbnQ4QXJyYXkgZGF0YSBpbnRvIHN0cmluZyB3aXRoIHV0Zi04LlxuY29uc3QgY29sbGVjdEJvZHlTdHJpbmcgPSAoc3RyZWFtQm9keTogYW55LCBjb250ZXh0OiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBQcm9taXNlPHN0cmluZz4gPT5cbiAgY29sbGVjdEJvZHkoc3RyZWFtQm9keSwgY29udGV4dCkudGhlbigoYm9keSkgPT4gY29udGV4dC51dGY4RW5jb2Rlcihib2R5KSk7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlT3B0aW9uczogUmVsYXRpdmVNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgcmVsYXRpb246IFwiYWZ0ZXJcIixcbiAgdG9NaWRkbGV3YXJlOiBcImRlc2VyaWFsaXplck1pZGRsZXdhcmVcIixcbiAgdGFnczogW1wiVEhST1dfMjAwX0VYQ0VQVElPTlNcIiwgXCJTM1wiXSxcbiAgbmFtZTogXCJ0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlXCIsXG4gIG92ZXJyaWRlOiB0cnVlLFxufTtcblxuLyoqXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4gPSAoY29uZmlnOiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkUmVsYXRpdmVUbyh0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlKGNvbmZpZyksIHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19
@@ -1,50 +0,0 @@
1
- import { __assign, __awaiter, __generator } from "tslib";
2
- import { HttpRequest } from "@aws-sdk/protocol-http";
3
- /**
4
- * @internal
5
- */
6
- export var useRegionalEndpointMiddleware = function (config) {
7
- return function (next) {
8
- return function (args) { return __awaiter(void 0, void 0, void 0, function () {
9
- var request, _a;
10
- return __generator(this, function (_b) {
11
- switch (_b.label) {
12
- case 0:
13
- request = args.request;
14
- if (!HttpRequest.isInstance(request) || config.isCustomEndpoint)
15
- return [2 /*return*/, next(__assign({}, args))];
16
- if (!(request.hostname === "s3.amazonaws.com")) return [3 /*break*/, 1];
17
- request.hostname = "s3.us-east-1.amazonaws.com";
18
- return [3 /*break*/, 3];
19
- case 1:
20
- _a = "aws-global";
21
- return [4 /*yield*/, config.region()];
22
- case 2:
23
- if (_a === (_b.sent())) {
24
- request.hostname = "s3.amazonaws.com";
25
- }
26
- _b.label = 3;
27
- case 3: return [2 /*return*/, next(__assign({}, args))];
28
- }
29
- });
30
- }); };
31
- };
32
- };
33
- /**
34
- * @internal
35
- */
36
- export var useRegionalEndpointMiddlewareOptions = {
37
- step: "build",
38
- tags: ["USE_REGIONAL_ENDPOINT", "S3"],
39
- name: "useRegionalEndpointMiddleware",
40
- override: true,
41
- };
42
- /**
43
- * @internal
44
- */
45
- export var getUseRegionalEndpointPlugin = function (config) { return ({
46
- applyToStack: function (clientStack) {
47
- clientStack.add(useRegionalEndpointMiddleware(config), useRegionalEndpointMiddlewareOptions);
48
- },
49
- }); };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJlZ2lvbmFsLWVuZHBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VzZS1yZWdpb25hbC1lbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBaUJyRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLDZCQUE2QixHQUN4QyxVQUFDLE1BQTBCO0lBQzNCLE9BQUEsVUFBZ0MsSUFBK0I7UUFDL0QsT0FBQSxVQUFPLElBQWdDOzs7Ozt3QkFDN0IsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFVO3dCQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsZ0JBQWdCOzRCQUFFLHNCQUFPLElBQUksY0FBTSxJQUFJLEVBQUcsRUFBQzs2QkFDdEYsQ0FBQSxPQUFPLENBQUMsUUFBUSxLQUFLLGtCQUFrQixDQUFBLEVBQXZDLHdCQUF1Qzt3QkFDekMsT0FBTyxDQUFDLFFBQVEsR0FBRyw0QkFBNEIsQ0FBQzs7O3dCQUN2QyxLQUFBLFlBQVksQ0FBQTt3QkFBTSxxQkFBTSxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUE7O3dCQUEzQyxJQUFJLE9BQWlCLENBQUMsU0FBcUIsQ0FBQyxFQUFFOzRCQUNuRCxPQUFPLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDO3lCQUN2Qzs7NEJBQ0Qsc0JBQU8sSUFBSSxjQUFNLElBQUksRUFBRyxFQUFDOzs7YUFDMUI7SUFURCxDQVNDO0FBVkQsQ0FVQyxDQUFDO0FBRUo7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxvQ0FBb0MsR0FBd0I7SUFDdkUsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUM7SUFDckMsSUFBSSxFQUFFLCtCQUErQjtJQUNyQyxRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLDRCQUE0QixHQUFHLFVBQUMsTUFBMEIsSUFBMEIsT0FBQSxDQUFDO0lBQ2hHLFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsRUFBRSxvQ0FBb0MsQ0FBQyxDQUFDO0lBQy9GLENBQUM7Q0FDRixDQUFDLEVBSitGLENBSS9GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBCdWlsZEhhbmRsZXIsXG4gIEJ1aWxkSGFuZGxlckFyZ3VtZW50cyxcbiAgQnVpbGRIYW5kbGVyT3B0aW9ucyxcbiAgQnVpbGRIYW5kbGVyT3V0cHV0LFxuICBCdWlsZE1pZGRsZXdhcmUsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG4gIFByb3ZpZGVyLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxudHlwZSBQcmV2aW91c2x5UmVzb2x2ZWQgPSB7XG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgaXNDdXN0b21FbmRwb2ludDogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VSZWdpb25hbEVuZHBvaW50TWlkZGxld2FyZSA9XG4gIChjb25maWc6IFByZXZpb3VzbHlSZXNvbHZlZCk6IEJ1aWxkTWlkZGxld2FyZTxhbnksIGFueT4gPT5cbiAgPE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyPihuZXh0OiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+KTogQnVpbGRIYW5kbGVyPGFueSwgT3V0cHV0PiA9PlxuICBhc3luYyAoYXJnczogQnVpbGRIYW5kbGVyQXJndW1lbnRzPGFueT4pOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgIGlmICghSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSB8fCBjb25maWcuaXNDdXN0b21FbmRwb2ludCkgcmV0dXJuIG5leHQoeyAuLi5hcmdzIH0pO1xuICAgIGlmIChyZXF1ZXN0Lmhvc3RuYW1lID09PSBcInMzLmFtYXpvbmF3cy5jb21cIikge1xuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IFwiczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb21cIjtcbiAgICB9IGVsc2UgaWYgKFwiYXdzLWdsb2JhbFwiID09PSAoYXdhaXQgY29uZmlnLnJlZ2lvbigpKSkge1xuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IFwiczMuYW1hem9uYXdzLmNvbVwiO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dCh7IC4uLmFyZ3MgfSk7XG4gIH07XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VSZWdpb25hbEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnM6IEJ1aWxkSGFuZGxlck9wdGlvbnMgPSB7XG4gIHN0ZXA6IFwiYnVpbGRcIixcbiAgdGFnczogW1wiVVNFX1JFR0lPTkFMX0VORFBPSU5UXCIsIFwiUzNcIl0sXG4gIG5hbWU6IFwidXNlUmVnaW9uYWxFbmRwb2ludE1pZGRsZXdhcmVcIixcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgZ2V0VXNlUmVnaW9uYWxFbmRwb2ludFBsdWdpbiA9IChjb25maWc6IFByZXZpb3VzbHlSZXNvbHZlZCk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQodXNlUmVnaW9uYWxFbmRwb2ludE1pZGRsZXdhcmUoY29uZmlnKSwgdXNlUmVnaW9uYWxFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19
@@ -1,41 +0,0 @@
1
- import { __assign, __awaiter, __generator } from "tslib";
2
- import { validate as validateArn } from "@aws-sdk/util-arn-parser";
3
- /**
4
- * @internal
5
- */
6
- export function validateBucketNameMiddleware() {
7
- var _this = this;
8
- return function (next) {
9
- return function (args) { return __awaiter(_this, void 0, void 0, function () {
10
- var Bucket, err;
11
- return __generator(this, function (_a) {
12
- Bucket = args.input.Bucket;
13
- if (typeof Bucket === "string" && !validateArn(Bucket) && Bucket.indexOf("/") >= 0) {
14
- err = new Error("Bucket name shouldn't contain '/', received '" + Bucket + "'");
15
- err.name = "InvalidBucketName";
16
- throw err;
17
- }
18
- return [2 /*return*/, next(__assign({}, args))];
19
- });
20
- }); };
21
- };
22
- }
23
- /**
24
- * @internal
25
- */
26
- export var validateBucketNameMiddlewareOptions = {
27
- step: "initialize",
28
- tags: ["VALIDATE_BUCKET_NAME"],
29
- name: "validateBucketNameMiddleware",
30
- override: true,
31
- };
32
- /**
33
- * @internal
34
- */
35
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
36
- export var getValidateBucketNamePlugin = function (unused) { return ({
37
- applyToStack: function (clientStack) {
38
- clientStack.add(validateBucketNameMiddleware(), validateBucketNameMiddlewareOptions);
39
- },
40
- }); };
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtYnVja2V0LW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGUtYnVja2V0LW5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQVNBLE9BQU8sRUFBRSxRQUFRLElBQUksV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsNEJBQTRCO0lBQTVDLGlCQWFDO0lBWkMsT0FBTyxVQUFnQyxJQUFvQztRQUN6RSxPQUFBLFVBQU8sSUFBcUM7OztnQkFFL0IsTUFBTSxHQUNiLElBQUksYUFEUyxDQUNSO2dCQUNULElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUM1RSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsa0RBQWdELE1BQU0sTUFBRyxDQUFDLENBQUM7b0JBQ2pGLEdBQUcsQ0FBQyxJQUFJLEdBQUcsbUJBQW1CLENBQUM7b0JBQy9CLE1BQU0sR0FBRyxDQUFDO2lCQUNYO2dCQUNELHNCQUFPLElBQUksY0FBTSxJQUFJLEVBQUcsRUFBQzs7YUFDMUI7SUFWRCxDQVVDLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxtQ0FBbUMsR0FBNkI7SUFDM0UsSUFBSSxFQUFFLFlBQVk7SUFDbEIsSUFBSSxFQUFFLENBQUMsc0JBQXNCLENBQUM7SUFDOUIsSUFBSSxFQUFFLDhCQUE4QjtJQUNwQyxRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFRjs7R0FFRztBQUNILDZEQUE2RDtBQUM3RCxNQUFNLENBQUMsSUFBTSwyQkFBMkIsR0FBRyxVQUFDLE1BQVcsSUFBMEIsT0FBQSxDQUFDO0lBQ2hGLFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSxFQUFFLG1DQUFtQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztDQUNGLENBQUMsRUFKK0UsQ0FJL0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluaXRpYWxpemVIYW5kbGVyLFxuICBJbml0aWFsaXplSGFuZGxlckFyZ3VtZW50cyxcbiAgSW5pdGlhbGl6ZUhhbmRsZXJPcHRpb25zLFxuICBJbml0aWFsaXplSGFuZGxlck91dHB1dCxcbiAgSW5pdGlhbGl6ZU1pZGRsZXdhcmUsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgdmFsaWRhdGUgYXMgdmFsaWRhdGVBcm4gfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1hcm4tcGFyc2VyXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlKCk6IEluaXRpYWxpemVNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KG5leHQ6IEluaXRpYWxpemVIYW5kbGVyPGFueSwgT3V0cHV0Pik6IEluaXRpYWxpemVIYW5kbGVyPGFueSwgT3V0cHV0PiA9PlxuICAgIGFzeW5jIChhcmdzOiBJbml0aWFsaXplSGFuZGxlckFyZ3VtZW50czxhbnk+KTogUHJvbWlzZTxJbml0aWFsaXplSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGlucHV0OiB7IEJ1Y2tldCB9LFxuICAgICAgfSA9IGFyZ3M7XG4gICAgICBpZiAodHlwZW9mIEJ1Y2tldCA9PT0gXCJzdHJpbmdcIiAmJiAhdmFsaWRhdGVBcm4oQnVja2V0KSAmJiBCdWNrZXQuaW5kZXhPZihcIi9cIikgPj0gMCkge1xuICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoYEJ1Y2tldCBuYW1lIHNob3VsZG4ndCBjb250YWluICcvJywgcmVjZWl2ZWQgJyR7QnVja2V0fSdgKTtcbiAgICAgICAgZXJyLm5hbWUgPSBcIkludmFsaWRCdWNrZXROYW1lXCI7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0KHsgLi4uYXJncyB9KTtcbiAgICB9O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZU9wdGlvbnM6IEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyA9IHtcbiAgc3RlcDogXCJpbml0aWFsaXplXCIsXG4gIHRhZ3M6IFtcIlZBTElEQVRFX0JVQ0tFVF9OQU1FXCJdLFxuICBuYW1lOiBcInZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmVcIixcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5leHBvcnQgY29uc3QgZ2V0VmFsaWRhdGVCdWNrZXROYW1lUGx1Z2luID0gKHVudXNlZDogYW55KTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZCh2YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlKCksIHZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19
@@ -1,70 +0,0 @@
1
- import { SignatureV4, SignatureV4CryptoInit, SignatureV4Init } from "@aws-sdk/signature-v4";
2
- import type { CrtSignerV4, CrtSignerV4Init } from "@aws-sdk/signature-v4-crt";
3
- import {
4
- HttpRequest,
5
- RequestPresigner,
6
- RequestPresigningArguments,
7
- RequestSigner,
8
- RequestSigningArguments,
9
- } from "@aws-sdk/types";
10
-
11
- export type S3SignerV4Init = SignatureV4Init &
12
- SignatureV4CryptoInit & {
13
- runtime?: string;
14
- };
15
-
16
- /**
17
- * A SigV4-compatible signer for S3 service. In order to support SigV4a algorithm according to the operation input
18
- * dynamically, the signer wraps native module SigV4a signer and JS SigV4 signer. It signs the request with SigV4a
19
- * algorithm if the request needs to be signed with `*` region. Otherwise, it signs the request with normal SigV4
20
- * signer.
21
- * Note that SigV4a signer is only supported in Node.js now because it depends on a native dependency.
22
- * @private
23
- */
24
- export class S3SignatureV4 implements RequestPresigner, RequestSigner {
25
- private readonly sigv4Signer: SignatureV4;
26
- private sigv4aSigner?: CrtSignerV4;
27
- private readonly signerOptions: S3SignerV4Init;
28
-
29
- constructor(options: S3SignerV4Init) {
30
- this.sigv4Signer = new SignatureV4(options);
31
- this.signerOptions = options;
32
- }
33
-
34
- public async sign(requestToSign: HttpRequest, options: RequestSigningArguments = {}): Promise<HttpRequest> {
35
- if (options.signingRegion === "*") {
36
- if (this.signerOptions.runtime !== "node")
37
- throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");
38
- return (await this.getSigv4aSigner()).sign(requestToSign, options);
39
- }
40
- return this.sigv4Signer.sign(requestToSign, options);
41
- }
42
-
43
- public async presign(originalRequest: HttpRequest, options: RequestPresigningArguments = {}): Promise<HttpRequest> {
44
- if (options.signingRegion === "*") {
45
- if (this.signerOptions.runtime !== "node")
46
- throw new Error("This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js");
47
- return (await this.getSigv4aSigner()).presign(originalRequest, options);
48
- }
49
- return this.sigv4Signer.presign(originalRequest, options);
50
- }
51
-
52
- private async getSigv4aSigner(): Promise<CrtSignerV4> {
53
- if (!this.sigv4aSigner) {
54
- let CrtSignerV4: new (options: CrtSignerV4Init & SignatureV4CryptoInit) => CrtSignerV4;
55
- try {
56
- CrtSignerV4 = (await import("@aws-sdk/signature-v4-crt")).CrtSignerV4;
57
- } catch (e) {
58
- e.message =
59
- `${e.message}\nPlease check if you have installed "@aws-sdk/signature-v4-crt" package explicitly. \n` +
60
- "For more information please go to https://github.com/aws/aws-sdk-js-v3#known-issues";
61
- throw e;
62
- }
63
- this.sigv4aSigner = new CrtSignerV4({
64
- ...this.signerOptions,
65
- signingAlgorithm: 1,
66
- });
67
- }
68
- return this.sigv4aSigner;
69
- }
70
- }
@@ -1,74 +0,0 @@
1
- import { HttpResponse } from "@aws-sdk/protocol-http";
2
- import { DeserializeMiddleware, Encoder, Pluggable, RelativeMiddlewareOptions, StreamCollector } from "@aws-sdk/types";
3
-
4
- type PreviouslyResolved = {
5
- streamCollector: StreamCollector;
6
- utf8Encoder: Encoder;
7
- };
8
-
9
- /**
10
- * In case of an internal error/terminated connection, S3 operations may return 200 errors. CopyObject, UploadPartCopy,
11
- * CompleteMultipartUpload may return empty payload or payload with only xml Preamble.
12
- * @internal
13
- */
14
- export const throw200ExceptionsMiddleware =
15
- (config: PreviouslyResolved): DeserializeMiddleware<any, any> =>
16
- (next) =>
17
- async (args) => {
18
- const result = await next(args);
19
- const { response } = result;
20
- if (!HttpResponse.isInstance(response)) return result;
21
- const { statusCode, body } = response;
22
- if (statusCode < 200 && statusCode >= 300) return result;
23
-
24
- // Throw 2XX response that's either an error or has empty body.
25
- const bodyBytes = await collectBody(body, config);
26
- const bodyString = await collectBodyString(bodyBytes, config);
27
- if (bodyBytes.length === 0) {
28
- const err = new Error("S3 aborted request");
29
- err.name = "InternalError";
30
- throw err;
31
- }
32
- if (bodyString && bodyString.match("<Error>")) {
33
- // Set the error code to 4XX so that error deserializer can parse them
34
- response.statusCode = 400;
35
- }
36
-
37
- // Body stream is consumed and paused at this point. So replace the response.body to the collected bytes.
38
- // So that the deserializer can consume the body as normal.
39
- response.body = bodyBytes;
40
- return result;
41
- };
42
-
43
- // Collect low-level response body stream to Uint8Array.
44
- const collectBody = (streamBody: any = new Uint8Array(), context: PreviouslyResolved): Promise<Uint8Array> => {
45
- if (streamBody instanceof Uint8Array) {
46
- return Promise.resolve(streamBody);
47
- }
48
- return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());
49
- };
50
-
51
- // Encode Uint8Array data into string with utf-8.
52
- const collectBodyString = (streamBody: any, context: PreviouslyResolved): Promise<string> =>
53
- collectBody(streamBody, context).then((body) => context.utf8Encoder(body));
54
-
55
- /**
56
- * @internal
57
- */
58
- export const throw200ExceptionsMiddlewareOptions: RelativeMiddlewareOptions = {
59
- relation: "after",
60
- toMiddleware: "deserializerMiddleware",
61
- tags: ["THROW_200_EXCEPTIONS", "S3"],
62
- name: "throw200ExceptionsMiddleware",
63
- override: true,
64
- };
65
-
66
- /**
67
- *
68
- * @internal
69
- */
70
- export const getThrow200ExceptionsPlugin = (config: PreviouslyResolved): Pluggable<any, any> => ({
71
- applyToStack: (clientStack) => {
72
- clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);
73
- },
74
- });