@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.
- package/CHANGELOG.md +43 -0
- package/dist-cjs/S3SignatureV4.js +48 -0
- package/dist-cjs/index.js +7 -0
- package/dist-cjs/throw-200-exceptions.js +46 -0
- package/dist-cjs/use-regional-endpoint.js +29 -0
- package/dist-cjs/validate-bucket-name.js +28 -0
- package/dist-es/S3SignatureV4.js +54 -0
- package/{dist/types/index.d.ts → dist-es/index.js} +0 -0
- package/dist-es/throw-200-exceptions.js +60 -0
- package/dist-es/use-regional-endpoint.js +40 -0
- package/dist-es/validate-bucket-name.js +30 -0
- package/{dist/types → dist-types}/S3SignatureV4.d.ts +0 -0
- package/{src/index.ts → dist-types/index.d.ts} +0 -0
- package/{dist/types → dist-types}/throw-200-exceptions.d.ts +0 -0
- package/{dist/types → dist-types}/ts3.4/S3SignatureV4.d.ts +1 -8
- package/{dist/types → dist-types}/ts3.4/index.d.ts +0 -0
- package/{dist/types → dist-types}/ts3.4/throw-200-exceptions.d.ts +3 -12
- package/{dist/types → dist-types}/ts3.4/use-regional-endpoint.d.ts +3 -9
- package/{dist/types → dist-types}/ts3.4/validate-bucket-name.d.ts +3 -9
- package/{dist/types → dist-types}/use-regional-endpoint.d.ts +0 -0
- package/{dist/types → dist-types}/validate-bucket-name.d.ts +0 -0
- package/package.json +17 -13
- package/dist/cjs/S3SignatureV4.js +0 -55
- package/dist/cjs/index.js +0 -8
- package/dist/cjs/throw-200-exceptions.js +0 -65
- package/dist/cjs/use-regional-endpoint.js +0 -39
- package/dist/cjs/validate-bucket-name.js +0 -39
- package/dist/es/S3SignatureV4.js +0 -79
- package/dist/es/index.js +0 -5
- package/dist/es/throw-200-exceptions.js +0 -78
- package/dist/es/use-regional-endpoint.js +0 -50
- package/dist/es/validate-bucket-name.js +0 -41
- package/src/S3SignatureV4.ts +0 -70
- package/src/throw-200-exceptions.ts +0 -74
- package/src/use-regional-endpoint.ts +0 -52
- package/src/validate-bucket-name.ts +0 -48
- package/tsconfig.cjs.json +0 -10
- 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=
|
package/dist/es/S3SignatureV4.js
DELETED
|
@@ -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
|
package/src/S3SignatureV4.ts
DELETED
|
@@ -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
|
-
});
|