Socket
Socket
Sign inDemoInstall

@aws-sdk/middleware-bucket-endpoint

Package Overview
Dependencies
Maintainers
5
Versions
192
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-sdk/middleware-bucket-endpoint - npm Package Compare versions

Comparing version 1.0.0-gamma.5 to 1.0.0-gamma.6

dist/cjs/bucketHostnameUtils.d.ts

12

CHANGELOG.md

@@ -6,2 +6,14 @@ # Change Log

# [1.0.0-gamma.6](https://github.com/aws/aws-sdk-js-v3/compare/@aws-sdk/middleware-bucket-endpoint@1.0.0-gamma.5...@aws-sdk/middleware-bucket-endpoint@1.0.0-gamma.6) (2020-08-25)
### Features
* **client-s3:** add useArnRegion config ([#1420](https://github.com/aws/aws-sdk-js-v3/issues/1420)) ([40e600e](https://github.com/aws/aws-sdk-js-v3/commit/40e600e598e88afa28f15459b4f9574dcfd171a4))
* **middleware-bucket-endpoint:** generate endpoint from Access Point ARN ([#1441](https://github.com/aws/aws-sdk-js-v3/issues/1441)) ([b5da159](https://github.com/aws/aws-sdk-js-v3/commit/b5da15913fbaeaa60f03bea08147f95830657ceb))
# [1.0.0-gamma.5](https://github.com/aws/aws-sdk-js-v3/compare/@aws-sdk/middleware-bucket-endpoint@1.0.0-gamma.4...@aws-sdk/middleware-bucket-endpoint@1.0.0-gamma.5) (2020-08-04)

@@ -8,0 +20,0 @@

78

dist/cjs/bucketEndpointMiddleware.js

@@ -6,17 +6,53 @@ "use strict";

var protocol_http_1 = require("@aws-sdk/protocol-http");
var util_arn_parser_1 = require("@aws-sdk/util-arn-parser");
var bucketHostname_1 = require("./bucketHostname");
var bucketHostnameUtils_1 = require("./bucketHostnameUtils");
function bucketEndpointMiddleware(options) {
var _this = this;
return function (next) { return function (args) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var bucketName, replaceBucketInPath, request, _a, hostname, bucketEndpoint;
return tslib_1.__generator(this, function (_b) {
bucketName = args.input.Bucket;
replaceBucketInPath = options.bucketEndpoint;
request = args.request;
if (protocol_http_1.HttpRequest.isInstance(request)) {
if (options.bucketEndpoint) {
return function (next, context) { return function (args) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var bucketName, replaceBucketInPath, request, bucketArn, clientRegion, _a, _b, partition, signingRegion, useArnRegion, _c, hostname, bucketEndpoint, _d, hostname, bucketEndpoint;
return tslib_1.__generator(this, function (_e) {
switch (_e.label) {
case 0:
bucketName = args.input.Bucket;
replaceBucketInPath = options.bucketEndpoint;
request = args.request;
if (!protocol_http_1.HttpRequest.isInstance(request)) return [3 /*break*/, 7];
if (!options.bucketEndpoint) return [3 /*break*/, 1];
request.hostname = bucketName;
}
else {
_a = bucketHostname_1.bucketHostname({
return [3 /*break*/, 6];
case 1:
if (!util_arn_parser_1.validate(bucketName)) return [3 /*break*/, 5];
bucketArn = util_arn_parser_1.parse(bucketName);
_a = bucketHostnameUtils_1.getPseudoRegion;
return [4 /*yield*/, options.region()];
case 2:
clientRegion = _a.apply(void 0, [_e.sent()]);
return [4 /*yield*/, options.regionInfoProvider(clientRegion)];
case 3:
_b = (_e.sent()) || {}, partition = _b.partition, signingRegion = _b.signingRegion;
return [4 /*yield*/, options.useArnRegion()];
case 4:
useArnRegion = _e.sent();
_c = bucketHostname_1.bucketHostname({
bucketName: bucketArn,
baseHostname: request.hostname,
accelerateEndpoint: options.useAccelerateEndpoint,
dualstackEndpoint: options.useDualstackEndpoint,
pathStyleEndpoint: options.forcePathStyle,
tlsCompatible: request.protocol === "https:",
useArnRegion: useArnRegion,
clientPartition: partition,
clientSigningRegion: signingRegion,
}), hostname = _c.hostname, bucketEndpoint = _c.bucketEndpoint;
// If the request needs to use a region inferred from ARN that different from client region, we need to set
// them in the handler context so the signer will use them
if (useArnRegion && clientRegion !== bucketArn.region) {
context["signing_region"] = bucketArn.region;
}
request.hostname = hostname;
replaceBucketInPath = bucketEndpoint;
return [3 /*break*/, 6];
case 5:
_d = bucketHostname_1.bucketHostname({
bucketName: bucketName,

@@ -28,14 +64,16 @@ baseHostname: request.hostname,

tlsCompatible: request.protocol === "https:",
}), hostname = _a.hostname, bucketEndpoint = _a.bucketEndpoint;
}), hostname = _d.hostname, bucketEndpoint = _d.bucketEndpoint;
request.hostname = hostname;
replaceBucketInPath = bucketEndpoint;
}
if (replaceBucketInPath) {
request.path = request.path.replace(/^(\/)?[^\/]+/, "");
if (request.path === "") {
request.path = "/";
_e.label = 6;
case 6:
if (replaceBucketInPath) {
request.path = request.path.replace(/^(\/)?[^\/]+/, "");
if (request.path === "") {
request.path = "/";
}
}
}
_e.label = 7;
case 7: return [2 /*return*/, next(tslib_1.__assign(tslib_1.__assign({}, args), { request: request }))];
}
return [2 /*return*/, next(tslib_1.__assign(tslib_1.__assign({}, args), { request: request }))];
});

@@ -56,2 +94,2 @@ }); }; };

}); };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1Y2tldEVuZHBvaW50TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsd0RBQXFEO0FBV3JELG1EQUFrRDtBQUdsRCxTQUFnQix3QkFBd0IsQ0FBQyxPQUFxQztJQUE5RSxpQkFrQ0M7SUFqQ0MsT0FBTyxVQUFnQyxJQUErQixJQUFnQyxPQUFBLFVBQ3BHLElBQWdDOzs7WUFFaEIsVUFBVSxHQUFLLElBQUksQ0FBQyxLQUFLLE9BQWYsQ0FBZ0I7WUFDdEMsbUJBQW1CLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztZQUMzQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM3QixJQUFJLDJCQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLEVBQUU7b0JBQzFCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO2lCQUMvQjtxQkFBTTtvQkFDQyxLQUErQiwrQkFBYyxDQUFDO3dCQUNsRCxVQUFVLFlBQUE7d0JBQ1YsWUFBWSxFQUFFLE9BQU8sQ0FBQyxRQUFRO3dCQUM5QixrQkFBa0IsRUFBRSxPQUFPLENBQUMscUJBQXFCO3dCQUNqRCxpQkFBaUIsRUFBRSxPQUFPLENBQUMsb0JBQW9CO3dCQUMvQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsY0FBYzt3QkFDekMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEtBQUssUUFBUTtxQkFDN0MsQ0FBQyxFQVBNLFFBQVEsY0FBQSxFQUFFLGNBQWMsb0JBQUEsQ0FPN0I7b0JBRUgsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7b0JBQzVCLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztpQkFDdEM7Z0JBRUQsSUFBSSxtQkFBbUIsRUFBRTtvQkFDdkIsT0FBTyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ3hELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUU7d0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO3FCQUNwQjtpQkFDRjthQUNGO1lBRUQsc0JBQU8sSUFBSSx1Q0FBTSxJQUFJLEtBQUUsT0FBTyxTQUFBLElBQUcsRUFBQzs7U0FDbkMsRUFoQ3FHLENBZ0NyRyxDQUFDO0FBQ0osQ0FBQztBQWxDRCw0REFrQ0M7QUFFWSxRQUFBLCtCQUErQixHQUE4QjtJQUN4RSxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztJQUN6QixJQUFJLEVBQUUsMEJBQTBCO0lBQ2hDLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFlBQVksRUFBRSxzQkFBc0I7Q0FDckMsQ0FBQztBQUVXLFFBQUEsdUJBQXVCLEdBQUcsVUFBQyxPQUFxQyxJQUEwQixPQUFBLENBQUM7SUFDdEcsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxFQUFFLHVDQUErQixDQUFDLENBQUM7SUFDaEcsQ0FBQztDQUNGLENBQUMsRUFKcUcsQ0FJckcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEJ1aWxkSGFuZGxlcixcbiAgQnVpbGRIYW5kbGVyQXJndW1lbnRzLFxuICBCdWlsZEhhbmRsZXJPdXRwdXQsXG4gIEJ1aWxkTWlkZGxld2FyZSxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbiAgUmVsYXRpdmVNaWRkbGV3YXJlT3B0aW9ucyxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmltcG9ydCB7IGJ1Y2tldEhvc3RuYW1lIH0gZnJvbSBcIi4vYnVja2V0SG9zdG5hbWVcIjtcbmltcG9ydCB7IEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlKG9wdGlvbnM6IEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcpOiBCdWlsZE1pZGRsZXdhcmU8YW55LCBhbnk+IHtcbiAgcmV0dXJuIDxPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlcj4obmV4dDogQnVpbGRIYW5kbGVyPGFueSwgT3V0cHV0Pik6IEJ1aWxkSGFuZGxlcjxhbnksIE91dHB1dD4gPT4gYXN5bmMgKFxuICAgIGFyZ3M6IEJ1aWxkSGFuZGxlckFyZ3VtZW50czxhbnk+XG4gICk6IFByb21pc2U8QnVpbGRIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgICBjb25zdCB7IEJ1Y2tldDogYnVja2V0TmFtZSB9ID0gYXJncy5pbnB1dDtcbiAgICBsZXQgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IG9wdGlvbnMuYnVja2V0RW5kcG9pbnQ7XG4gICAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgaWYgKG9wdGlvbnMuYnVja2V0RW5kcG9pbnQpIHtcbiAgICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGJ1Y2tldE5hbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB7IGhvc3RuYW1lLCBidWNrZXRFbmRwb2ludCB9ID0gYnVja2V0SG9zdG5hbWUoe1xuICAgICAgICAgIGJ1Y2tldE5hbWUsXG4gICAgICAgICAgYmFzZUhvc3RuYW1lOiByZXF1ZXN0Lmhvc3RuYW1lLFxuICAgICAgICAgIGFjY2VsZXJhdGVFbmRwb2ludDogb3B0aW9ucy51c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgICAgICAgZHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICAgICAgcGF0aFN0eWxlRW5kcG9pbnQ6IG9wdGlvbnMuZm9yY2VQYXRoU3R5bGUsXG4gICAgICAgICAgdGxzQ29tcGF0aWJsZTogcmVxdWVzdC5wcm90b2NvbCA9PT0gXCJodHRwczpcIixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgICByZXBsYWNlQnVja2V0SW5QYXRoID0gYnVja2V0RW5kcG9pbnQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXBsYWNlQnVja2V0SW5QYXRoKSB7XG4gICAgICAgIHJlcXVlc3QucGF0aCA9IHJlcXVlc3QucGF0aC5yZXBsYWNlKC9eKFxcLyk/W15cXC9dKy8sIFwiXCIpO1xuICAgICAgICBpZiAocmVxdWVzdC5wYXRoID09PSBcIlwiKSB7XG4gICAgICAgICAgcmVxdWVzdC5wYXRoID0gXCIvXCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dCh7IC4uLmFyZ3MsIHJlcXVlc3QgfSk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zOiBSZWxhdGl2ZU1pZGRsZXdhcmVPcHRpb25zID0ge1xuICB0YWdzOiBbXCJCVUNLRVRfRU5EUE9JTlRcIl0sXG4gIG5hbWU6IFwiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlXCIsXG4gIHJlbGF0aW9uOiBcImJlZm9yZVwiLFxuICB0b01pZGRsZXdhcmU6IFwiaG9zdEhlYWRlck1pZGRsZXdhcmVcIixcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCdWNrZXRFbmRwb2ludFBsdWdpbiA9IChvcHRpb25zOiBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlKG9wdGlvbnMpLCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1Y2tldEVuZHBvaW50TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsd0RBQXFEO0FBV3JELDREQUFzRjtBQUV0RixtREFBa0Q7QUFDbEQsNkRBQXdEO0FBR3hELFNBQWdCLHdCQUF3QixDQUFDLE9BQXFDO0lBQTlFLGlCQTREQztJQTNEQyxPQUFPLFVBQ0wsSUFBK0IsRUFDL0IsT0FBZ0MsSUFDRixPQUFBLFVBQU8sSUFBZ0M7Ozs7O29CQUNyRCxVQUFVLEdBQUssSUFBSSxDQUFDLEtBQTJCLE9BQXJDLENBQXNDO29CQUM1RCxtQkFBbUIsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO29CQUMzQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQzt5QkFDekIsMkJBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQS9CLHdCQUErQjt5QkFDN0IsT0FBTyxDQUFDLGNBQWMsRUFBdEIsd0JBQXNCO29CQUN4QixPQUFPLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQzs7O3lCQUNyQiwwQkFBVyxDQUFDLFVBQVUsQ0FBQyxFQUF2Qix3QkFBdUI7b0JBQzFCLFNBQVMsR0FBRyx1QkFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUNsQixLQUFBLHFDQUFlLENBQUE7b0JBQUMscUJBQU0sT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFBOztvQkFBckQsWUFBWSxHQUFHLGtCQUFnQixTQUFzQixFQUFDO29CQUN0QixxQkFBTSxPQUFPLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEVBQUE7O29CQUE5RSxLQUErQixDQUFDLFNBQThDLENBQUMsSUFBSSxFQUFFLEVBQW5GLFNBQVMsZUFBQSxFQUFFLGFBQWEsbUJBQUE7b0JBQ1gscUJBQU0sT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFBOztvQkFBM0MsWUFBWSxHQUFHLFNBQTRCO29CQUMzQyxLQUErQiwrQkFBYyxDQUFDO3dCQUNsRCxVQUFVLEVBQUUsU0FBUzt3QkFDckIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxRQUFRO3dCQUM5QixrQkFBa0IsRUFBRSxPQUFPLENBQUMscUJBQXFCO3dCQUNqRCxpQkFBaUIsRUFBRSxPQUFPLENBQUMsb0JBQW9CO3dCQUMvQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsY0FBYzt3QkFDekMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEtBQUssUUFBUTt3QkFDNUMsWUFBWSxjQUFBO3dCQUNaLGVBQWUsRUFBRSxTQUFTO3dCQUMxQixtQkFBbUIsRUFBRSxhQUFhO3FCQUNuQyxDQUFDLEVBVk0sUUFBUSxjQUFBLEVBQUUsY0FBYyxvQkFBQSxDQVU3QjtvQkFFSCwyR0FBMkc7b0JBQzNHLDBEQUEwRDtvQkFDMUQsSUFBSSxZQUFZLElBQUksWUFBWSxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUU7d0JBQ3JELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7cUJBQzlDO29CQUVELE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO29CQUM1QixtQkFBbUIsR0FBRyxjQUFjLENBQUM7OztvQkFFL0IsS0FBK0IsK0JBQWMsQ0FBQzt3QkFDbEQsVUFBVSxZQUFBO3dCQUNWLFlBQVksRUFBRSxPQUFPLENBQUMsUUFBUTt3QkFDOUIsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLHFCQUFxQjt3QkFDakQsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLG9CQUFvQjt3QkFDL0MsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGNBQWM7d0JBQ3pDLGFBQWEsRUFBRSxPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVE7cUJBQzdDLENBQUMsRUFQTSxRQUFRLGNBQUEsRUFBRSxjQUFjLG9CQUFBLENBTzdCO29CQUVILE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO29CQUM1QixtQkFBbUIsR0FBRyxjQUFjLENBQUM7OztvQkFHdkMsSUFBSSxtQkFBbUIsRUFBRTt3QkFDdkIsT0FBTyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQ3hELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUU7NEJBQ3ZCLE9BQU8sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO3lCQUNwQjtxQkFDRjs7d0JBR0gsc0JBQU8sSUFBSSx1Q0FBTSxJQUFJLEtBQUUsT0FBTyxTQUFBLElBQUcsRUFBQzs7O1NBQ25DLEVBdkQrQixDQXVEL0IsQ0FBQztBQUNKLENBQUM7QUE1REQsNERBNERDO0FBRVksUUFBQSwrQkFBK0IsR0FBOEI7SUFDeEUsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUM7SUFDekIsSUFBSSxFQUFFLDBCQUEwQjtJQUNoQyxRQUFRLEVBQUUsUUFBUTtJQUNsQixZQUFZLEVBQUUsc0JBQXNCO0NBQ3JDLENBQUM7QUFFVyxRQUFBLHVCQUF1QixHQUFHLFVBQUMsT0FBcUMsSUFBMEIsT0FBQSxDQUFDO0lBQ3RHLFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsRUFBRSx1Q0FBK0IsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7Q0FDRixDQUFDLEVBSnFHLENBSXJHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBCdWlsZEhhbmRsZXIsXG4gIEJ1aWxkSGFuZGxlckFyZ3VtZW50cyxcbiAgQnVpbGRIYW5kbGVyT3V0cHV0LFxuICBCdWlsZE1pZGRsZXdhcmUsXG4gIEhhbmRsZXJFeGVjdXRpb25Db250ZXh0LFxuICBNZXRhZGF0YUJlYXJlcixcbiAgUGx1Z2dhYmxlLFxuICBSZWxhdGl2ZU1pZGRsZXdhcmVPcHRpb25zLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlQXJuLCB2YWxpZGF0ZSBhcyB2YWxpZGF0ZUFybiB9IGZyb20gXCJAYXdzLXNkay91dGlsLWFybi1wYXJzZXJcIjtcblxuaW1wb3J0IHsgYnVja2V0SG9zdG5hbWUgfSBmcm9tIFwiLi9idWNrZXRIb3N0bmFtZVwiO1xuaW1wb3J0IHsgZ2V0UHNldWRvUmVnaW9uIH0gZnJvbSBcIi4vYnVja2V0SG9zdG5hbWVVdGlsc1wiO1xuaW1wb3J0IHsgQnVja2V0RW5kcG9pbnRSZXNvbHZlZENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmUob3B0aW9uczogQnVja2V0RW5kcG9pbnRSZXNvbHZlZENvbmZpZyk6IEJ1aWxkTWlkZGxld2FyZTxhbnksIGFueT4ge1xuICByZXR1cm4gPE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyPihcbiAgICBuZXh0OiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+LFxuICAgIGNvbnRleHQ6IEhhbmRsZXJFeGVjdXRpb25Db250ZXh0XG4gICk6IEJ1aWxkSGFuZGxlcjxhbnksIE91dHB1dD4gPT4gYXN5bmMgKGFyZ3M6IEJ1aWxkSGFuZGxlckFyZ3VtZW50czxhbnk+KTogUHJvbWlzZTxCdWlsZEhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICAgIGNvbnN0IHsgQnVja2V0OiBidWNrZXROYW1lIH0gPSBhcmdzLmlucHV0IGFzIHsgQnVja2V0OiBzdHJpbmcgfTtcbiAgICBsZXQgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IG9wdGlvbnMuYnVja2V0RW5kcG9pbnQ7XG4gICAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgaWYgKG9wdGlvbnMuYnVja2V0RW5kcG9pbnQpIHtcbiAgICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGJ1Y2tldE5hbWU7XG4gICAgICB9IGVsc2UgaWYgKHZhbGlkYXRlQXJuKGJ1Y2tldE5hbWUpKSB7XG4gICAgICAgIGNvbnN0IGJ1Y2tldEFybiA9IHBhcnNlQXJuKGJ1Y2tldE5hbWUpO1xuICAgICAgICBjb25zdCBjbGllbnRSZWdpb24gPSBnZXRQc2V1ZG9SZWdpb24oYXdhaXQgb3B0aW9ucy5yZWdpb24oKSk7XG4gICAgICAgIGNvbnN0IHsgcGFydGl0aW9uLCBzaWduaW5nUmVnaW9uIH0gPSAoYXdhaXQgb3B0aW9ucy5yZWdpb25JbmZvUHJvdmlkZXIoY2xpZW50UmVnaW9uKSkgfHwge307XG4gICAgICAgIGNvbnN0IHVzZUFyblJlZ2lvbiA9IGF3YWl0IG9wdGlvbnMudXNlQXJuUmVnaW9uKCk7XG4gICAgICAgIGNvbnN0IHsgaG9zdG5hbWUsIGJ1Y2tldEVuZHBvaW50IH0gPSBidWNrZXRIb3N0bmFtZSh7XG4gICAgICAgICAgYnVja2V0TmFtZTogYnVja2V0QXJuLFxuICAgICAgICAgIGJhc2VIb3N0bmFtZTogcmVxdWVzdC5ob3N0bmFtZSxcbiAgICAgICAgICBhY2NlbGVyYXRlRW5kcG9pbnQ6IG9wdGlvbnMudXNlQWNjZWxlcmF0ZUVuZHBvaW50LFxuICAgICAgICAgIGR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50LFxuICAgICAgICAgIHBhdGhTdHlsZUVuZHBvaW50OiBvcHRpb25zLmZvcmNlUGF0aFN0eWxlLFxuICAgICAgICAgIHRsc0NvbXBhdGlibGU6IHJlcXVlc3QucHJvdG9jb2wgPT09IFwiaHR0cHM6XCIsXG4gICAgICAgICAgdXNlQXJuUmVnaW9uLFxuICAgICAgICAgIGNsaWVudFBhcnRpdGlvbjogcGFydGl0aW9uLFxuICAgICAgICAgIGNsaWVudFNpZ25pbmdSZWdpb246IHNpZ25pbmdSZWdpb24sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIElmIHRoZSByZXF1ZXN0IG5lZWRzIHRvIHVzZSBhIHJlZ2lvbiBpbmZlcnJlZCBmcm9tIEFSTiB0aGF0IGRpZmZlcmVudCBmcm9tIGNsaWVudCByZWdpb24sIHdlIG5lZWQgdG8gc2V0XG4gICAgICAgIC8vIHRoZW0gaW4gdGhlIGhhbmRsZXIgY29udGV4dCBzbyB0aGUgc2lnbmVyIHdpbGwgdXNlIHRoZW1cbiAgICAgICAgaWYgKHVzZUFyblJlZ2lvbiAmJiBjbGllbnRSZWdpb24gIT09IGJ1Y2tldEFybi5yZWdpb24pIHtcbiAgICAgICAgICBjb250ZXh0W1wic2lnbmluZ19yZWdpb25cIl0gPSBidWNrZXRBcm4ucmVnaW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgICByZXBsYWNlQnVja2V0SW5QYXRoID0gYnVja2V0RW5kcG9pbnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB7IGhvc3RuYW1lLCBidWNrZXRFbmRwb2ludCB9ID0gYnVja2V0SG9zdG5hbWUoe1xuICAgICAgICAgIGJ1Y2tldE5hbWUsXG4gICAgICAgICAgYmFzZUhvc3RuYW1lOiByZXF1ZXN0Lmhvc3RuYW1lLFxuICAgICAgICAgIGFjY2VsZXJhdGVFbmRwb2ludDogb3B0aW9ucy51c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgICAgICAgZHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICAgICAgcGF0aFN0eWxlRW5kcG9pbnQ6IG9wdGlvbnMuZm9yY2VQYXRoU3R5bGUsXG4gICAgICAgICAgdGxzQ29tcGF0aWJsZTogcmVxdWVzdC5wcm90b2NvbCA9PT0gXCJodHRwczpcIixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgICByZXBsYWNlQnVja2V0SW5QYXRoID0gYnVja2V0RW5kcG9pbnQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXBsYWNlQnVja2V0SW5QYXRoKSB7XG4gICAgICAgIHJlcXVlc3QucGF0aCA9IHJlcXVlc3QucGF0aC5yZXBsYWNlKC9eKFxcLyk/W15cXC9dKy8sIFwiXCIpO1xuICAgICAgICBpZiAocmVxdWVzdC5wYXRoID09PSBcIlwiKSB7XG4gICAgICAgICAgcmVxdWVzdC5wYXRoID0gXCIvXCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dCh7IC4uLmFyZ3MsIHJlcXVlc3QgfSk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zOiBSZWxhdGl2ZU1pZGRsZXdhcmVPcHRpb25zID0ge1xuICB0YWdzOiBbXCJCVUNLRVRfRU5EUE9JTlRcIl0sXG4gIG5hbWU6IFwiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlXCIsXG4gIHJlbGF0aW9uOiBcImJlZm9yZVwiLFxuICB0b01pZGRsZXdhcmU6IFwiaG9zdEhlYWRlck1pZGRsZXdhcmVcIixcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCdWNrZXRFbmRwb2ludFBsdWdpbiA9IChvcHRpb25zOiBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlKG9wdGlvbnMpLCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19

@@ -1,9 +0,2 @@

export interface BucketHostnameParameters {
accelerateEndpoint?: boolean;
baseHostname: string;
bucketName: string;
dualstackEndpoint?: boolean;
pathStyleEndpoint?: boolean;
tlsCompatible?: boolean;
}
import { ArnHostnameParams, BucketHostnameParams } from "./bucketHostnameUtils";
export interface BucketHostname {

@@ -13,2 +6,2 @@ hostname: string;

}
export declare function bucketHostname({ accelerateEndpoint, baseHostname, bucketName, dualstackEndpoint, pathStyleEndpoint, tlsCompatible, }: BucketHostnameParameters): BucketHostname;
export declare const bucketHostname: (options: BucketHostnameParams | ArnHostnameParams) => BucketHostname;

@@ -5,12 +5,6 @@ "use strict";

var tslib_1 = require("tslib");
var DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/;
var IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/;
var DOTS_PATTERN = /\.\./;
var DOT_PATTERN = /\./;
var S3_HOSTNAME_PATTERN = /^(.+\.)?s3[.-]([a-z0-9-]+)\./;
var S3_US_EAST_1_ALTNAME_PATTERN = /^s3(-external-1)?\.amazonaws\.com$/;
var AWS_PARTITION_SUFFIX = "amazonaws.com";
function bucketHostname(_a) {
var _b = _a.accelerateEndpoint, accelerateEndpoint = _b === void 0 ? false : _b, baseHostname = _a.baseHostname, bucketName = _a.bucketName, _c = _a.dualstackEndpoint, dualstackEndpoint = _c === void 0 ? false : _c, _d = _a.pathStyleEndpoint, pathStyleEndpoint = _d === void 0 ? false : _d, _e = _a.tlsCompatible, tlsCompatible = _e === void 0 ? true : _e;
if (!S3_HOSTNAME_PATTERN.test(baseHostname)) {
var bucketHostnameUtils_1 = require("./bucketHostnameUtils");
exports.bucketHostname = function (options) {
var baseHostname = options.baseHostname;
if (!bucketHostnameUtils_1.S3_HOSTNAME_PATTERN.test(baseHostname)) {
return {

@@ -21,9 +15,44 @@ bucketEndpoint: false,

}
var _f = tslib_1.__read(S3_US_EAST_1_ALTNAME_PATTERN.test(baseHostname)
? ["us-east-1", AWS_PARTITION_SUFFIX]
: partitionSuffix(baseHostname), 2), region = _f[0], hostnameSuffix = _f[1];
if (pathStyleEndpoint || !isDnsCompatibleBucketName(bucketName) || (tlsCompatible && DOT_PATTERN.test(bucketName))) {
if (bucketHostnameUtils_1.isBucketNameOptions(options)) {
// Construct endpoint when bucketName is a string referring to a bucket name
return getEndpointFromBucketName(options);
}
else {
// Construct endpoint when bucketName is an ARN referring to an S3 resource like Access Point
return {
bucketEndpoint: true,
hostname: getEndpointFromAccessPoint(options),
};
}
};
var getEndpointFromAccessPoint = function (options) {
// Infer client region and hostname suffix from hostname from endpoints.json, like `s3.us-west-2.amazonaws.com`
var _a = tslib_1.__read(bucketHostnameUtils_1.getSuffixForArnEndpoint(options.baseHostname), 2), clientRegion = _a[0], hostnameSuffix = _a[1];
var pathStyleEndpoint = options.pathStyleEndpoint, dualstackEndpoint = options.dualstackEndpoint, accelerateEndpoint = options.accelerateEndpoint, _b = options.tlsCompatible, tlsCompatible = _b === void 0 ? true : _b, useArnRegion = options.useArnRegion, bucketName = options.bucketName, _c = options.clientPartition, clientPartition = _c === void 0 ? "aws" : _c, _d = options.clientSigningRegion, clientSigningRegion = _d === void 0 ? clientRegion : _d;
if (pathStyleEndpoint) {
throw new Error("Path-style S3 endpoint is not supported when bucket is an Access Point ARN");
}
if (accelerateEndpoint) {
throw new Error("Accelerate is not supported when bucket is an Access Point ARN");
}
if (!tlsCompatible) {
throw new Error("Access Point can only be used with https");
}
// Validate and parse the ARN supplied as a bucket name
var service = bucketName.service, partition = bucketName.partition, accountId = bucketName.accountId, region = bucketName.region, resource = bucketName.resource;
bucketHostnameUtils_1.validateService(service);
bucketHostnameUtils_1.validateRegion(region, { useArnRegion: useArnRegion, clientRegion: clientRegion, clientSigningRegion: clientSigningRegion });
bucketHostnameUtils_1.validatePartition(partition, { clientPartition: clientPartition });
bucketHostnameUtils_1.validateAccountId(accountId);
var accessPointName = bucketHostnameUtils_1.getAccessPointName(resource);
bucketHostnameUtils_1.validateDNSHostLabel(accessPointName + "-" + accountId, { tlsCompatible: tlsCompatible });
return accessPointName + "-" + accountId + ".s3-accesspoint" + (dualstackEndpoint ? ".dualstack" : "") + "." + (useArnRegion ? region : clientRegion) + "." + hostnameSuffix;
};
var getEndpointFromBucketName = function (_a) {
var _b = _a.accelerateEndpoint, accelerateEndpoint = _b === void 0 ? false : _b, baseHostname = _a.baseHostname, bucketName = _a.bucketName, _c = _a.dualstackEndpoint, dualstackEndpoint = _c === void 0 ? false : _c, _d = _a.pathStyleEndpoint, pathStyleEndpoint = _d === void 0 ? false : _d, _e = _a.tlsCompatible, tlsCompatible = _e === void 0 ? true : _e;
var _f = tslib_1.__read(bucketHostnameUtils_1.getSuffix(baseHostname), 2), clientRegion = _f[0], hostnameSuffix = _f[1];
if (pathStyleEndpoint || !bucketHostnameUtils_1.isDnsCompatibleBucketName(bucketName) || (tlsCompatible && bucketHostnameUtils_1.DOT_PATTERN.test(bucketName))) {
return {
bucketEndpoint: false,
hostname: dualstackEndpoint ? "s3.dualstack." + region + "." + hostnameSuffix : baseHostname,
hostname: dualstackEndpoint ? "s3.dualstack." + clientRegion + "." + hostnameSuffix : baseHostname,
};

@@ -35,3 +64,3 @@ }

else if (dualstackEndpoint) {
baseHostname = "s3.dualstack." + region + "." + hostnameSuffix;
baseHostname = "s3.dualstack." + clientRegion + "." + hostnameSuffix;
}

@@ -42,18 +71,3 @@ return {

};
}
exports.bucketHostname = bucketHostname;
/**
* Determines whether a given string is DNS compliant per the rules outlined by
* S3. Length, capitaization, and leading dot restrictions are enforced by the
* DOMAIN_PATTERN regular expression.
*
* @see https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html
*/
function isDnsCompatibleBucketName(bucketName) {
return DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);
}
function partitionSuffix(hostname) {
var parts = hostname.match(S3_HOSTNAME_PATTERN);
return [parts[2], hostname.replace(new RegExp("^" + parts[0]), "")];
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVja2V0SG9zdG5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQU0sY0FBYyxHQUFHLHNDQUFzQyxDQUFDO0FBQzlELElBQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDO0FBQzNDLElBQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztBQUM1QixJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDekIsSUFBTSxtQkFBbUIsR0FBRyw4QkFBOEIsQ0FBQztBQUMzRCxJQUFNLDRCQUE0QixHQUFHLG9DQUFvQyxDQUFDO0FBQzFFLElBQU0sb0JBQW9CLEdBQUcsZUFBZSxDQUFDO0FBZ0I3QyxTQUFnQixjQUFjLENBQUMsRUFPSjtRQU56QiwwQkFBMEIsRUFBMUIsa0JBQWtCLG1CQUFHLEtBQUssS0FBQSxFQUMxQixZQUFZLGtCQUFBLEVBQ1osVUFBVSxnQkFBQSxFQUNWLHlCQUF5QixFQUF6QixpQkFBaUIsbUJBQUcsS0FBSyxLQUFBLEVBQ3pCLHlCQUF5QixFQUF6QixpQkFBaUIsbUJBQUcsS0FBSyxLQUFBLEVBQ3pCLHFCQUFvQixFQUFwQixhQUFhLG1CQUFHLElBQUksS0FBQTtJQUVwQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQzNDLE9BQU87WUFDTCxjQUFjLEVBQUUsS0FBSztZQUNyQixRQUFRLEVBQUUsWUFBWTtTQUN2QixDQUFDO0tBQ0g7SUFFSyxJQUFBLEtBQUEsZUFBMkIsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM5RSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsb0JBQW9CLENBQUM7UUFDckMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsSUFBQSxFQUYxQixNQUFNLFFBQUEsRUFBRSxjQUFjLFFBRUksQ0FBQztJQUVsQyxJQUFJLGlCQUFpQixJQUFJLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFO1FBQ2xILE9BQU87WUFDTCxjQUFjLEVBQUUsS0FBSztZQUNyQixRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGtCQUFnQixNQUFNLFNBQUksY0FBZ0IsQ0FBQyxDQUFDLENBQUMsWUFBWTtTQUN4RixDQUFDO0tBQ0g7SUFFRCxJQUFJLGtCQUFrQixFQUFFO1FBQ3RCLFlBQVksR0FBRyxtQkFBZ0IsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFJLGNBQWdCLENBQUM7S0FDMUY7U0FBTSxJQUFJLGlCQUFpQixFQUFFO1FBQzVCLFlBQVksR0FBRyxrQkFBZ0IsTUFBTSxTQUFJLGNBQWdCLENBQUM7S0FDM0Q7SUFFRCxPQUFPO1FBQ0wsY0FBYyxFQUFFLElBQUk7UUFDcEIsUUFBUSxFQUFLLFVBQVUsU0FBSSxZQUFjO0tBQzFDLENBQUM7QUFDSixDQUFDO0FBcENELHdDQW9DQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMseUJBQXlCLENBQUMsVUFBa0I7SUFDbkQsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNuSCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsUUFBZ0I7SUFDdkMsSUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBcUIsQ0FBQztJQUV0RSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBET01BSU5fUEFUVEVSTiA9IC9eW2EtejAtOV1bYS16MC05XFwuXFwtXXsxLDYxfVthLXowLTldJC87XG5jb25zdCBJUF9BRERSRVNTX1BBVFRFUk4gPSAvKFxcZCtcXC4pezN9XFxkKy87XG5jb25zdCBET1RTX1BBVFRFUk4gPSAvXFwuXFwuLztcbmNvbnN0IERPVF9QQVRURVJOID0gL1xcLi87XG5jb25zdCBTM19IT1NUTkFNRV9QQVRURVJOID0gL14oLitcXC4pP3MzWy4tXShbYS16MC05LV0rKVxcLi87XG5jb25zdCBTM19VU19FQVNUXzFfQUxUTkFNRV9QQVRURVJOID0gL15zMygtZXh0ZXJuYWwtMSk/XFwuYW1hem9uYXdzXFwuY29tJC87XG5jb25zdCBBV1NfUEFSVElUSU9OX1NVRkZJWCA9IFwiYW1hem9uYXdzLmNvbVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEhvc3RuYW1lUGFyYW1ldGVycyB7XG4gIGFjY2VsZXJhdGVFbmRwb2ludD86IGJvb2xlYW47XG4gIGJhc2VIb3N0bmFtZTogc3RyaW5nO1xuICBidWNrZXROYW1lOiBzdHJpbmc7XG4gIGR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbjtcbiAgcGF0aFN0eWxlRW5kcG9pbnQ/OiBib29sZWFuO1xuICB0bHNDb21wYXRpYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRIb3N0bmFtZSB7XG4gIGhvc3RuYW1lOiBzdHJpbmc7XG4gIGJ1Y2tldEVuZHBvaW50OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVja2V0SG9zdG5hbWUoe1xuICBhY2NlbGVyYXRlRW5kcG9pbnQgPSBmYWxzZSxcbiAgYmFzZUhvc3RuYW1lLFxuICBidWNrZXROYW1lLFxuICBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLFxuICBwYXRoU3R5bGVFbmRwb2ludCA9IGZhbHNlLFxuICB0bHNDb21wYXRpYmxlID0gdHJ1ZSxcbn06IEJ1Y2tldEhvc3RuYW1lUGFyYW1ldGVycyk6IEJ1Y2tldEhvc3RuYW1lIHtcbiAgaWYgKCFTM19IT1NUTkFNRV9QQVRURVJOLnRlc3QoYmFzZUhvc3RuYW1lKSkge1xuICAgIHJldHVybiB7XG4gICAgICBidWNrZXRFbmRwb2ludDogZmFsc2UsXG4gICAgICBob3N0bmFtZTogYmFzZUhvc3RuYW1lLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBbcmVnaW9uLCBob3N0bmFtZVN1ZmZpeF0gPSBTM19VU19FQVNUXzFfQUxUTkFNRV9QQVRURVJOLnRlc3QoYmFzZUhvc3RuYW1lKVxuICAgID8gW1widXMtZWFzdC0xXCIsIEFXU19QQVJUSVRJT05fU1VGRklYXVxuICAgIDogcGFydGl0aW9uU3VmZml4KGJhc2VIb3N0bmFtZSk7XG5cbiAgaWYgKHBhdGhTdHlsZUVuZHBvaW50IHx8ICFpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lKGJ1Y2tldE5hbWUpIHx8ICh0bHNDb21wYXRpYmxlICYmIERPVF9QQVRURVJOLnRlc3QoYnVja2V0TmFtZSkpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1Y2tldEVuZHBvaW50OiBmYWxzZSxcbiAgICAgIGhvc3RuYW1lOiBkdWFsc3RhY2tFbmRwb2ludCA/IGBzMy5kdWFsc3RhY2suJHtyZWdpb259LiR7aG9zdG5hbWVTdWZmaXh9YCA6IGJhc2VIb3N0bmFtZSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGFjY2VsZXJhdGVFbmRwb2ludCkge1xuICAgIGJhc2VIb3N0bmFtZSA9IGBzMy1hY2NlbGVyYXRlJHtkdWFsc3RhY2tFbmRwb2ludCA/IFwiLmR1YWxzdGFja1wiIDogXCJcIn0uJHtob3N0bmFtZVN1ZmZpeH1gO1xuICB9IGVsc2UgaWYgKGR1YWxzdGFja0VuZHBvaW50KSB7XG4gICAgYmFzZUhvc3RuYW1lID0gYHMzLmR1YWxzdGFjay4ke3JlZ2lvbn0uJHtob3N0bmFtZVN1ZmZpeH1gO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBidWNrZXRFbmRwb2ludDogdHJ1ZSxcbiAgICBob3N0bmFtZTogYCR7YnVja2V0TmFtZX0uJHtiYXNlSG9zdG5hbWV9YCxcbiAgfTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBnaXZlbiBzdHJpbmcgaXMgRE5TIGNvbXBsaWFudCBwZXIgdGhlIHJ1bGVzIG91dGxpbmVkIGJ5XG4gKiBTMy4gTGVuZ3RoLCBjYXBpdGFpemF0aW9uLCBhbmQgbGVhZGluZyBkb3QgcmVzdHJpY3Rpb25zIGFyZSBlbmZvcmNlZCBieSB0aGVcbiAqIERPTUFJTl9QQVRURVJOIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvZGV2L0J1Y2tldFJlc3RyaWN0aW9ucy5odG1sXG4gKi9cbmZ1bmN0aW9uIGlzRG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUoYnVja2V0TmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBET01BSU5fUEFUVEVSTi50ZXN0KGJ1Y2tldE5hbWUpICYmICFJUF9BRERSRVNTX1BBVFRFUk4udGVzdChidWNrZXROYW1lKSAmJiAhRE9UU19QQVRURVJOLnRlc3QoYnVja2V0TmFtZSk7XG59XG5cbmZ1bmN0aW9uIHBhcnRpdGlvblN1ZmZpeChob3N0bmFtZTogc3RyaW5nKTogW3N0cmluZywgc3RyaW5nXSB7XG4gIGNvbnN0IHBhcnRzID0gaG9zdG5hbWUubWF0Y2goUzNfSE9TVE5BTUVfUEFUVEVSTikgYXMgUmVnRXhwTWF0Y2hBcnJheTtcblxuICByZXR1cm4gW3BhcnRzWzJdLCBob3N0bmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoYF4ke3BhcnRzWzBdfWApLCBcIlwiKV07XG59XG4iXX0=
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVja2V0SG9zdG5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDZEQWUrQjtBQU9sQixRQUFBLGNBQWMsR0FBRyxVQUFDLE9BQWlEO0lBQ3RFLElBQUEsWUFBWSxHQUFLLE9BQU8sYUFBWixDQUFhO0lBQ2pDLElBQUksQ0FBQyx5Q0FBbUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDM0MsT0FBTztZQUNMLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLFFBQVEsRUFBRSxZQUFZO1NBQ3ZCLENBQUM7S0FDSDtJQUNELElBQUkseUNBQW1CLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDaEMsNEVBQTRFO1FBQzVFLE9BQU8seUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDM0M7U0FBTTtRQUNMLDZGQUE2RjtRQUM3RixPQUFPO1lBQ0wsY0FBYyxFQUFFLElBQUk7WUFDcEIsUUFBUSxFQUFFLDBCQUEwQixDQUFDLE9BQU8sQ0FBQztTQUM5QyxDQUFDO0tBQ0g7QUFDSCxDQUFDLENBQUM7QUFFRixJQUFNLDBCQUEwQixHQUFHLFVBQUMsT0FBMEI7SUFDNUQsK0dBQStHO0lBQ3pHLElBQUEsS0FBQSxlQUFpQyw2Q0FBdUIsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUEsRUFBN0UsWUFBWSxRQUFBLEVBQUUsY0FBYyxRQUFpRCxDQUFDO0lBRW5GLElBQUEsaUJBQWlCLEdBUWYsT0FBTyxrQkFSUSxFQUNqQixpQkFBaUIsR0FPZixPQUFPLGtCQVBRLEVBQ2pCLGtCQUFrQixHQU1oQixPQUFPLG1CQU5TLEVBQ2xCLEtBS0UsT0FBTyxjQUxXLEVBQXBCLGFBQWEsbUJBQUcsSUFBSSxLQUFBLEVBQ3BCLFlBQVksR0FJVixPQUFPLGFBSkcsRUFDWixVQUFVLEdBR1IsT0FBTyxXQUhDLEVBQ1YsS0FFRSxPQUFPLGdCQUZjLEVBQXZCLGVB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IEFybkhvc3RuYW1lUGFyYW1zLFxuICBCdWNrZXRIb3N0bmFtZVBhcmFtcyxcbiAgRE9UX1BBVFRFUk4sXG4gIGdldEFjY2Vzc1BvaW50TmFtZSxcbiAgZ2V0U3VmZml4LFxuICBnZXRTdWZmaXhGb3JBcm5FbmRwb2ludCxcbiAgaXNCdWNrZXROYW1lT3B0aW9ucyxcbiAgaXNEbnNDb21wYXRpYmxlQnVja2V0TmFtZSxcbiAgUzNfSE9TVE5BTUVfUEFUVEVSTixcbiAgdmFsaWRhdGVBY2NvdW50SWQsXG4gIHZhbGlkYXRlRE5TSG9zdExhYmVsLFxuICB2YWxpZGF0ZVBhcnRpdGlvbixcbiAgdmFsaWRhdGVSZWdpb24sXG4gIHZhbGlkYXRlU2VydmljZSxcbn0gZnJvbSBcIi4vYnVja2V0SG9zdG5hbWVVdGlsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEhvc3RuYW1lIHtcbiAgaG9zdG5hbWU6IHN0cmluZztcbiAgYnVja2V0RW5kcG9pbnQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBidWNrZXRIb3N0bmFtZSA9IChvcHRpb25zOiBCdWNrZXRIb3N0bmFtZVBhcmFtcyB8IEFybkhvc3RuYW1lUGFyYW1zKTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICBjb25zdCB7IGJhc2VIb3N0bmFtZSB9ID0gb3B0aW9ucztcbiAgaWYgKCFTM19IT1NUTkFNRV9QQVRURVJOLnRlc3QoYmFzZUhvc3RuYW1lKSkge1xuICAgIHJldHVybiB7XG4gICAgICBidWNrZXRFbmRwb2ludDogZmFsc2UsXG4gICAgICBob3N0bmFtZTogYmFzZUhvc3RuYW1lLFxuICAgIH07XG4gIH1cbiAgaWYgKGlzQnVja2V0TmFtZU9wdGlvbnMob3B0aW9ucykpIHtcbiAgICAvLyBDb25zdHJ1Y3QgZW5kcG9pbnQgd2hlbiBidWNrZXROYW1lIGlzIGEgc3RyaW5nIHJlZmVycmluZyB0byBhIGJ1Y2tldCBuYW1lXG4gICAgcmV0dXJuIGdldEVuZHBvaW50RnJvbUJ1Y2tldE5hbWUob3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ29uc3RydWN0IGVuZHBvaW50IHdoZW4gYnVja2V0TmFtZSBpcyBhbiBBUk4gcmVmZXJyaW5nIHRvIGFuIFMzIHJlc291cmNlIGxpa2UgQWNjZXNzIFBvaW50XG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgICAgaG9zdG5hbWU6IGdldEVuZHBvaW50RnJvbUFjY2Vzc1BvaW50KG9wdGlvbnMpLFxuICAgIH07XG4gIH1cbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbUFjY2Vzc1BvaW50ID0gKG9wdGlvbnM6IEFybkhvc3RuYW1lUGFyYW1zKTogc3RyaW5nID0+IHtcbiAgLy8gSW5mZXIgY2xpZW50IHJlZ2lvbiBhbmQgaG9zdG5hbWUgc3VmZml4IGZyb20gaG9zdG5hbWUgZnJvbSBlbmRwb2ludHMuanNvbiwgbGlrZSBgczMudXMtd2VzdC0yLmFtYXpvbmF3cy5jb21gXG4gIGNvbnN0IFtjbGllbnRSZWdpb24sIGhvc3RuYW1lU3VmZml4XSA9IGdldFN1ZmZpeEZvckFybkVuZHBvaW50KG9wdGlvbnMuYmFzZUhvc3RuYW1lKTtcbiAgY29uc3Qge1xuICAgIHBhdGhTdHlsZUVuZHBvaW50LFxuICAgIGR1YWxzdGFja0VuZHBvaW50LFxuICAgIGFjY2VsZXJhdGVFbmRwb2ludCxcbiAgICB0bHNDb21wYXRpYmxlID0gdHJ1ZSxcbiAgICB1c2VBcm5SZWdpb24sXG4gICAgYnVja2V0TmFtZSxcbiAgICBjbGllbnRQYXJ0aXRpb24gPSBcImF3c1wiLFxuICAgIGNsaWVudFNpZ25pbmdSZWdpb24gPSBjbGllbnRSZWdpb24sXG4gIH0gPSBvcHRpb25zO1xuXG4gIGlmIChwYXRoU3R5bGVFbmRwb2ludCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlBhdGgtc3R5bGUgUzMgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBY2Nlc3MgUG9pbnQgQVJOXCIpO1xuICB9XG4gIGlmIChhY2NlbGVyYXRlRW5kcG9pbnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBY2NlbGVyYXRlIGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBidWNrZXQgaXMgYW4gQWNjZXNzIFBvaW50IEFSTlwiKTtcbiAgfVxuICBpZiAoIXRsc0NvbXBhdGlibGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBY2Nlc3MgUG9pbnQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIGh0dHBzXCIpO1xuICB9XG4gIC8vIFZhbGlkYXRlIGFuZCBwYXJzZSB0aGUgQVJOIHN1cHBsaWVkIGFzIGEgYnVja2V0IG5hbWVcbiAgY29uc3QgeyBzZXJ2aWNlLCBwYXJ0aXRpb24sIGFjY291bnRJZCwgcmVnaW9uLCByZXNvdXJjZSB9ID0gYnVja2V0TmFtZTtcbiAgdmFsaWRhdGVTZXJ2aWNlKHNlcnZpY2UpO1xuICB2YWxpZGF0ZVJlZ2lvbihyZWdpb24sIHsgdXNlQXJuUmVnaW9uLCBjbGllbnRSZWdpb24sIGNsaWVudFNpZ25pbmdSZWdpb24gfSk7XG4gIHZhbGlkYXRlUGFydGl0aW9uKHBhcnRpdGlvbiwgeyBjbGllbnRQYXJ0aXRpb24gfSk7XG4gIHZhbGlkYXRlQWNjb3VudElkKGFjY291bnRJZCk7XG4gIGNvbnN0IGFjY2Vzc1BvaW50TmFtZSA9IGdldEFjY2Vzc1BvaW50TmFtZShyZXNvdXJjZSk7XG4gIHZhbGlkYXRlRE5TSG9zdExhYmVsKGAke2FjY2Vzc1BvaW50TmFtZX0tJHthY2NvdW50SWR9YCwgeyB0bHNDb21wYXRpYmxlIH0pO1xuXG4gIHJldHVybiBgJHthY2Nlc3NQb2ludE5hbWV9LSR7YWNjb3VudElkfS5zMy1hY2Nlc3Nwb2ludCR7ZHVhbHN0YWNrRW5kcG9pbnQgPyBcIi5kdWFsc3RhY2tcIiA6IFwiXCJ9LiR7XG4gICAgdXNlQXJuUmVnaW9uID8gcmVnaW9uIDogY2xpZW50UmVnaW9uXG4gIH0uJHtob3N0bmFtZVN1ZmZpeH1gO1xufTtcblxuY29uc3QgZ2V0RW5kcG9pbnRGcm9tQnVja2V0TmFtZSA9ICh7XG4gIGFjY2VsZXJhdGVFbmRwb2ludCA9IGZhbHNlLFxuICBiYXNlSG9zdG5hbWUsXG4gIGJ1Y2tldE5hbWUsXG4gIGR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gIHBhdGhTdHlsZUVuZHBvaW50ID0gZmFsc2UsXG4gIHRsc0NvbXBhdGlibGUgPSB0cnVlLFxufTogQnVja2V0SG9zdG5hbWVQYXJhbXMpOiBCdWNrZXRIb3N0bmFtZSA9PiB7XG4gIGNvbnN0IFtjbGllbnRSZWdpb24sIGhvc3RuYW1lU3VmZml4XSA9IGdldFN1ZmZpeChiYXNlSG9zdG5hbWUpO1xuICBpZiAocGF0aFN0eWxlRW5kcG9pbnQgfHwgIWlzRG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUoYnVja2V0TmFtZSkgfHwgKHRsc0NvbXBhdGlibGUgJiYgRE9UX1BBVFRFUk4udGVzdChidWNrZXROYW1lKSkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYnVja2V0RW5kcG9pbnQ6IGZhbHNlLFxuICAgICAgaG9zdG5hbWU6IGR1YWxzdGFja0VuZHBvaW50ID8gYHMzLmR1YWxzdGFjay4ke2NsaWVudFJlZ2lvbn0uJHtob3N0bmFtZVN1ZmZpeH1gIDogYmFzZUhvc3RuYW1lLFxuICAgIH07XG4gIH1cblxuICBpZiAoYWNjZWxlcmF0ZUVuZHBvaW50KSB7XG4gICAgYmFzZUhvc3RuYW1lID0gYHMzLWFjY2VsZXJhdGUke2R1YWxzdGFja0VuZHBvaW50ID8gXCIuZHVhbHN0YWNrXCIgOiBcIlwifS4ke2hvc3RuYW1lU3VmZml4fWA7XG4gIH0gZWxzZSBpZiAoZHVhbHN0YWNrRW5kcG9pbnQpIHtcbiAgICBiYXNlSG9zdG5hbWUgPSBgczMuZHVhbHN0YWNrLiR7Y2xpZW50UmVnaW9ufS4ke2hvc3RuYW1lU3VmZml4fWA7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgIGhvc3RuYW1lOiBgJHtidWNrZXROYW1lfS4ke2Jhc2VIb3N0bmFtZX1gLFxuICB9O1xufTtcbiJdfQ==

@@ -0,1 +1,3 @@

import { LoadedConfigSelectors } from "@aws-sdk/node-config-provider";
import { Provider, RegionInfoProvider } from "@aws-sdk/types";
export interface BucketEndpointInputConfig {

@@ -18,3 +20,11 @@ /**

useDualstackEndpoint?: boolean;
/**
* Whether to override the request region with the region inferred from requested resource's ARN. Defaults to false
*/
useArnRegion?: boolean | Provider<boolean>;
}
interface PreviouslyResolved {
region: Provider<string>;
regionInfoProvider: RegionInfoProvider;
}
export interface BucketEndpointResolvedConfig {

@@ -25,3 +35,15 @@ bucketEndpoint: boolean;

useDualstackEndpoint: boolean;
useArnRegion: Provider<boolean>;
region: Provider<string>;
regionInfoProvider: RegionInfoProvider;
}
export declare function resolveBucketEndpointConfig<T>(input: T & BucketEndpointInputConfig): T & BucketEndpointResolvedConfig;
export declare function resolveBucketEndpointConfig<T>(input: T & PreviouslyResolved & BucketEndpointInputConfig): T & BucketEndpointResolvedConfig;
export declare const NODE_USE_ARN_REGION_ENV_NAME = "AWS_S3_USE_ARN_REGION";
export declare const NODE_USE_ARN_REGION_INI_NAME = "s3_use_arn_region";
/**
* Config to load useArnRegion from environment variables and shared INI files
*
* @api private
*/
export declare const NODE_USE_ARN_REGION_CONFIG_OPTIONS: LoadedConfigSelectors<boolean>;
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveBucketEndpointConfig = void 0;
exports.NODE_USE_ARN_REGION_CONFIG_OPTIONS = exports.NODE_USE_ARN_REGION_INI_NAME = exports.NODE_USE_ARN_REGION_ENV_NAME = exports.resolveBucketEndpointConfig = void 0;
var tslib_1 = require("tslib");
function resolveBucketEndpointConfig(input) {
var _a = input.bucketEndpoint, bucketEndpoint = _a === void 0 ? false : _a, _b = input.forcePathStyle, forcePathStyle = _b === void 0 ? false : _b, _c = input.useAccelerateEndpoint, useAccelerateEndpoint = _c === void 0 ? false : _c, _d = input.useDualstackEndpoint, useDualstackEndpoint = _d === void 0 ? false : _d;
var _a = input.bucketEndpoint, bucketEndpoint = _a === void 0 ? false : _a, _b = input.forcePathStyle, forcePathStyle = _b === void 0 ? false : _b, _c = input.useAccelerateEndpoint, useAccelerateEndpoint = _c === void 0 ? false : _c, _d = input.useDualstackEndpoint, useDualstackEndpoint = _d === void 0 ? false : _d, _e = input.useArnRegion, useArnRegion = _e === void 0 ? false : _e;
return tslib_1.__assign(tslib_1.__assign({}, input), { bucketEndpoint: bucketEndpoint,
forcePathStyle: forcePathStyle,
useAccelerateEndpoint: useAccelerateEndpoint,
useDualstackEndpoint: useDualstackEndpoint });
useDualstackEndpoint: useDualstackEndpoint, useArnRegion: typeof useArnRegion === "function" ? useArnRegion : function () { return Promise.resolve(useArnRegion); } });
}
exports.resolveBucketEndpointConfig = resolveBucketEndpointConfig;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQTBCQSxTQUFnQiwyQkFBMkIsQ0FBSSxLQUFvQztJQUUvRSxJQUFBLEtBSUUsS0FBSyxlQUplLEVBQXRCLGNBQWMsbUJBQUcsS0FBSyxLQUFBLEVBQ3RCLEtBR0UsS0FBSyxlQUhlLEVBQXRCLGNBQWMsbUJBQUcsS0FBSyxLQUFBLEVBQ3RCLEtBRUUsS0FBSyxzQkFGc0IsRUFBN0IscUJBQXFCLG1CQUFHLEtBQUssS0FBQSxFQUM3QixLQUNFLEtBQUsscUJBRHFCLEVBQTVCLG9CQUFvQixtQkFBRyxLQUFLLEtBQUEsQ0FDcEI7SUFDViw2Q0FDSyxLQUFLLEtBQ1IsY0FBYyxnQkFBQTtRQUNkLGNBQWMsZ0JBQUE7UUFDZCxxQkFBcUIsdUJBQUE7UUFDckIsb0JBQW9CLHNCQUFBLElBQ3BCO0FBQ0osQ0FBQztBQWRELGtFQWNDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBCdWNrZXRFbmRwb2ludElucHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHByb3ZpZGVkIGVuZHBvaW50IGFkZHJlc3NlcyBhbiBpbmRpdmlkdWFsIGJ1Y2tldC5cbiAgICovXG4gIGJ1Y2tldEVuZHBvaW50PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZm9yY2UgcGF0aCBzdHlsZSBVUkxzIGZvciBTMyBvYmplY3RzIChlLmcuLCBodHRwczovL3MzLmFtYXpvbmF3cy5jb20vPGJ1Y2tldE5hbWU+LzxrZXk+IGluc3RlYWQgb2YgaHR0cHM6Ly88YnVja2V0TmFtZT4uczMuYW1hem9uYXdzLmNvbS88a2V5PlxuICAgKi9cbiAgZm9yY2VQYXRoU3R5bGU/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0byB1c2UgdGhlIFMzIFRyYW5zZmVyIEFjY2VsZXJhdGlvbiBlbmRwb2ludCBieSBkZWZhdWx0XG4gICAqL1xuICB1c2VBY2NlbGVyYXRlRW5kcG9pbnQ/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5hYmxlcyBJUHY2L0lQdjQgZHVhbHN0YWNrIGVuZHBvaW50LiBXaGVuIGEgRE5TIGxvb2t1cCBpcyBwZXJmb3JtZWQgb24gYW4gZW5kcG9pbnQgb2YgdGhpcyB0eXBlLCBpdCByZXR1cm5zIGFuIOKAnEHigJ0gcmVjb3JkIHdpdGggYW4gSVB2NCBhZGRyZXNzIGFuZCBhbiDigJxBQUFB4oCdIHJlY29yZCB3aXRoIGFuIElQdjYgYWRkcmVzcy4gSW4gbW9zdCBjYXNlcyB0aGUgbmV0d29yayBzdGFjayBpbiB0aGUgY2xpZW50IGVudmlyb25tZW50IHdpbGwgYXV0b21hdGljYWxseSBwcmVmZXIgdGhlIEFBQUEgcmVjb3JkIGFuZCBtYWtlIGEgY29ubmVjdGlvbiB1c2luZyB0aGUgSVB2NiBhZGRyZXNzLiBOb3RlLCBob3dldmVyLCB0aGF0IGN1cnJlbnRseSBvbiBXaW5kb3dzLCB0aGUgSVB2NCBhZGRyZXNzIHdpbGwgYmUgcHJlZmVycmVkLlxuICAgKi9cbiAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcge1xuICBidWNrZXRFbmRwb2ludDogYm9vbGVhbjtcbiAgZm9yY2VQYXRoU3R5bGU6IGJvb2xlYW47XG4gIHVzZUFjY2VsZXJhdGVFbmRwb2ludDogYm9vbGVhbjtcbiAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQnVja2V0RW5kcG9pbnRDb25maWc8VD4oaW5wdXQ6IFQgJiBCdWNrZXRFbmRwb2ludElucHV0Q29uZmlnKTogVCAmIEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcge1xuICBjb25zdCB7XG4gICAgYnVja2V0RW5kcG9pbnQgPSBmYWxzZSxcbiAgICBmb3JjZVBhdGhTdHlsZSA9IGZhbHNlLFxuICAgIHVzZUFjY2VsZXJhdGVFbmRwb2ludCA9IGZhbHNlLFxuICAgIHVzZUR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gIH0gPSBpbnB1dDtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBidWNrZXRFbmRwb2ludCxcbiAgICBmb3JjZVBhdGhTdHlsZSxcbiAgICB1c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gIH07XG59XG4iXX0=
exports.NODE_USE_ARN_REGION_ENV_NAME = "AWS_S3_USE_ARN_REGION";
exports.NODE_USE_ARN_REGION_INI_NAME = "s3_use_arn_region";
/**
* Config to load useArnRegion from environment variables and shared INI files
*
* @api private
*/
exports.NODE_USE_ARN_REGION_CONFIG_OPTIONS = {
environmentVariableSelector: function (env) {
if (!Object.prototype.hasOwnProperty.call(env, exports.NODE_USE_ARN_REGION_ENV_NAME))
return undefined;
if (env[exports.NODE_USE_ARN_REGION_ENV_NAME] === "true")
return true;
if (env[exports.NODE_USE_ARN_REGION_ENV_NAME] === "false")
return false;
throw new Error("Cannot load env " + exports.NODE_USE_ARN_REGION_ENV_NAME + ". Expected \"true\" or \"false\", got " + env[exports.NODE_USE_ARN_REGION_ENV_NAME] + ".");
},
configFileSelector: function (profile) {
if (!Object.prototype.hasOwnProperty.call(profile, exports.NODE_USE_ARN_REGION_INI_NAME))
return undefined;
if (profile[exports.NODE_USE_ARN_REGION_INI_NAME] === "true")
return true;
if (profile[exports.NODE_USE_ARN_REGION_INI_NAME] === "false")
return false;
throw new Error("Cannot load shared config entry " + exports.NODE_USE_ARN_REGION_INI_NAME + ". Expected \"true\" or \"false\", got " + profile[exports.NODE_USE_ARN_REGION_INI_NAME] + ".");
},
default: false,
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQXlDQSxTQUFnQiwyQkFBMkIsQ0FDekMsS0FBeUQ7SUFHdkQsSUFBQSxLQUtFLEtBQUssZUFMZSxFQUF0QixjQUFjLG1CQUFHLEtBQUssS0FBQSxFQUN0QixLQUlFLEtBQUssZUFKZSxFQUF0QixjQUFjLG1CQUFHLEtBQUssS0FBQSxFQUN0QixLQUdFLEtBQUssc0JBSHNCLEVBQTdCLHFCQUFxQixtQkFBRyxLQUFLLEtBQUEsRUFDN0IsS0FFRSxLQUFLLHFCQUZxQixFQUE1QixvQkFBb0IsbUJBQUcsS0FBSyxLQUFBLEVBQzVCLEtBQ0UsS0FBSyxhQURhLEVBQXBCLFlBQVksbUJBQUcsS0FBSyxLQUFBLENBQ1o7SUFDViw2Q0FDSyxLQUFLLEtBQ1IsY0FBYyxnQkFBQTtRQUNkLGNBQWMsZ0JBQUE7UUFDZCxxQkFBcUIsdUJBQUE7UUFDckIsb0JBQW9CLHNCQUFBLEVBQ3BCLFlBQVksRUFBRSxPQUFPLFlBQVksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsY0FBTSxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQTdCLENBQTZCLElBQ3JHO0FBQ0osQ0FBQztBQWxCRCxrRUFrQkM7QUFFWSxRQUFBLDRCQUE0QixHQUFHLHVCQUF1QixDQUFDO0FBQ3ZELFFBQUEsNEJBQTRCLEdBQUcsbUJBQW1CLENBQUM7QUFFaEU7Ozs7R0FJRztBQUNVLFFBQUEsa0NBQWtDLEdBQW1DO0lBQ2hGLDJCQUEyQixFQUFFLFVBQUMsR0FBc0I7UUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsb0NBQTRCLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUMvRixJQUFJLEdBQUcsQ0FBQyxvQ0FBNEIsQ0FBQyxLQUFLLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5RCxJQUFJLEdBQUcsQ0FBQyxvQ0FBNEIsQ0FBQyxLQUFLLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNoRSxNQUFNLElBQUksS0FBSyxDQUNiLHFCQUFtQixvQ0FBNEIsOENBQXFDLEdBQUcsQ0FBQyxvQ0FBNEIsQ0FBQyxNQUFHLENBQ3pILENBQUM7SUFDSixDQUFDO0lBQ0Qsa0JBQWtCLEVBQUUsVUFBQyxPQUFPO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLG9DQUE0QixDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDbkcsSUFBSSxPQUFPLENBQUMsb0NBQTRCLENBQUMsS0FBSyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDbEUsSUFBSSxPQUFPLENBQUMsb0NBQTRCLENBQUMsS0FBSyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FDYixxQ0FBbUMsb0NBQTRCLDhDQUFxQyxPQUFPLENBQUMsb0NBQTRCLENBQUMsTUFBRyxDQUM3SSxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sRUFBRSxLQUFLO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvYWRlZENvbmZpZ1NlbGVjdG9ycyB9IGZyb20gXCJAYXdzLXNkay9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgUHJvdmlkZXIsIFJlZ2lvbkluZm9Qcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcHJvdmlkZWQgZW5kcG9pbnQgYWRkcmVzc2VzIGFuIGluZGl2aWR1YWwgYnVja2V0LlxuICAgKi9cbiAgYnVja2V0RW5kcG9pbnQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0byBmb3JjZSBwYXRoIHN0eWxlIFVSTHMgZm9yIFMzIG9iamVjdHMgKGUuZy4sIGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS88YnVja2V0TmFtZT4vPGtleT4gaW5zdGVhZCBvZiBodHRwczovLzxidWNrZXROYW1lPi5zMy5hbWF6b25hd3MuY29tLzxrZXk+XG4gICAqL1xuICBmb3JjZVBhdGhTdHlsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSB0aGUgUzMgVHJhbnNmZXIgQWNjZWxlcmF0aW9uIGVuZHBvaW50IGJ5IGRlZmF1bHRcbiAgICovXG4gIHVzZUFjY2VsZXJhdGVFbmRwb2ludD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGVzIElQdjYvSVB2NCBkdWFsc3RhY2sgZW5kcG9pbnQuIFdoZW4gYSBETlMgbG9va3VwIGlzIHBlcmZvcm1lZCBvbiBhbiBlbmRwb2ludCBvZiB0aGlzIHR5cGUsIGl0IHJldHVybnMgYW4g4oCcQeKAnSByZWNvcmQgd2l0aCBhbiBJUHY0IGFkZHJlc3MgYW5kIGFuIOKAnEFBQUHigJ0gcmVjb3JkIHdpdGggYW4gSVB2NiBhZGRyZXNzLiBJbiBtb3N0IGNhc2VzIHRoZSBuZXR3b3JrIHN0YWNrIGluIHRoZSBjbGllbnQgZW52aXJvbm1lbnQgd2lsbCBhdXRvbWF0aWNhbGx5IHByZWZlciB0aGUgQUFBQSByZWNvcmQgYW5kIG1ha2UgYSBjb25uZWN0aW9uIHVzaW5nIHRoZSBJUHY2IGFkZHJlc3MuIE5vdGUsIGhvd2V2ZXIsIHRoYXQgY3VycmVudGx5IG9uIFdpbmRvd3MsIHRoZSBJUHY0IGFkZHJlc3Mgd2lsbCBiZSBwcmVmZXJyZWQuXG4gICAqL1xuICB1c2VEdWFsc3RhY2tFbmRwb2ludD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIG92ZXJyaWRlIHRoZSByZXF1ZXN0IHJlZ2lvbiB3aXRoIHRoZSByZWdpb24gaW5mZXJyZWQgZnJvbSByZXF1ZXN0ZWQgcmVzb3VyY2UncyBBUk4uIERlZmF1bHRzIHRvIGZhbHNlXG4gICAqL1xuICB1c2VBcm5SZWdpb24/OiBib29sZWFuIHwgUHJvdmlkZXI8Ym9vbGVhbj47XG59XG5cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICByZWdpb246IFByb3ZpZGVyPHN0cmluZz47XG4gIHJlZ2lvbkluZm9Qcm92aWRlcjogUmVnaW9uSW5mb1Byb3ZpZGVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcge1xuICBidWNrZXRFbmRwb2ludDogYm9vbGVhbjtcbiAgZm9yY2VQYXRoU3R5bGU6IGJvb2xlYW47XG4gIHVzZUFjY2VsZXJhdGVFbmRwb2ludDogYm9vbGVhbjtcbiAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGJvb2xlYW47XG4gIHVzZUFyblJlZ2lvbjogUHJvdmlkZXI8Ym9vbGVhbj47XG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcmVnaW9uSW5mb1Byb3ZpZGVyOiBSZWdpb25JbmZvUHJvdmlkZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQnVja2V0RW5kcG9pbnRDb25maWc8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgQnVja2V0RW5kcG9pbnRJbnB1dENvbmZpZ1xuKTogVCAmIEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcge1xuICBjb25zdCB7XG4gICAgYnVja2V0RW5kcG9pbnQgPSBmYWxzZSxcbiAgICBmb3JjZVBhdGhTdHlsZSA9IGZhbHNlLFxuICAgIHVzZUFjY2VsZXJhdGVFbmRwb2ludCA9IGZhbHNlLFxuICAgIHVzZUR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gICAgdXNlQXJuUmVnaW9uID0gZmFsc2UsXG4gIH0gPSBpbnB1dDtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBidWNrZXRFbmRwb2ludCxcbiAgICBmb3JjZVBhdGhTdHlsZSxcbiAgICB1c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgdXNlQXJuUmVnaW9uOiB0eXBlb2YgdXNlQXJuUmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyB1c2VBcm5SZWdpb24gOiAoKSA9PiBQcm9taXNlLnJlc29sdmUodXNlQXJuUmVnaW9uKSxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IE5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUgPSBcIkFXU19TM19VU0VfQVJOX1JFR0lPTlwiO1xuZXhwb3J0IGNvbnN0IE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUgPSBcInMzX3VzZV9hcm5fcmVnaW9uXCI7XG5cbi8qKlxuICogQ29uZmlnIHRvIGxvYWQgdXNlQXJuUmVnaW9uIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZCBzaGFyZWQgSU5JIGZpbGVzXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBOT0RFX1VTRV9BUk5fUkVHSU9OX0NPTkZJR19PUFRJT05TOiBMb2FkZWRDb25maWdTZWxlY3RvcnM8Ym9vbGVhbj4gPSB7XG4gIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudjogTm9kZUpTLlByb2Nlc3NFbnYpID0+IHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlbnYsIE5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChlbnZbTk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRV0gPT09IFwidHJ1ZVwiKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoZW52W05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUVdID09PSBcImZhbHNlXCIpIHJldHVybiBmYWxzZTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ2Fubm90IGxvYWQgZW52ICR7Tk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRX0uIEV4cGVjdGVkIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgZ290ICR7ZW52W05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUVdfS5gXG4gICAgKTtcbiAgfSxcbiAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4ge1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb2ZpbGUsIE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9maWxlW05PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUVdID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XG4gICAgaWYgKHByb2ZpbGVbTk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRV0gPT09IFwiZmFsc2VcIikgcmV0dXJuIGZhbHNlO1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBDYW5ub3QgbG9hZCBzaGFyZWQgY29uZmlnIGVudHJ5ICR7Tk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRX0uIEV4cGVjdGVkIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgZ290ICR7cHJvZmlsZVtOT0RFX1VTRV9BUk5fUkVHSU9OX0lOSV9OQU1FXX0uYFxuICAgICk7XG4gIH0sXG4gIGRlZmF1bHQ6IGZhbHNlLFxufTtcbiJdfQ==
import { __assign, __awaiter, __generator } from "tslib";
import { HttpRequest } from "@aws-sdk/protocol-http";
import { parse as parseArn, validate as validateArn } from "@aws-sdk/util-arn-parser";
import { bucketHostname } from "./bucketHostname";
import { getPseudoRegion } from "./bucketHostnameUtils";
export function bucketEndpointMiddleware(options) {
var _this = this;
return function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {
var bucketName, replaceBucketInPath, request, _a, hostname, bucketEndpoint;
return __generator(this, function (_b) {
bucketName = args.input.Bucket;
replaceBucketInPath = options.bucketEndpoint;
request = args.request;
if (HttpRequest.isInstance(request)) {
if (options.bucketEndpoint) {
return function (next, context) { return function (args) { return __awaiter(_this, void 0, void 0, function () {
var bucketName, replaceBucketInPath, request, bucketArn, clientRegion, _a, _b, partition, signingRegion, useArnRegion, _c, hostname, bucketEndpoint, _d, hostname, bucketEndpoint;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
bucketName = args.input.Bucket;
replaceBucketInPath = options.bucketEndpoint;
request = args.request;
if (!HttpRequest.isInstance(request)) return [3 /*break*/, 7];
if (!options.bucketEndpoint) return [3 /*break*/, 1];
request.hostname = bucketName;
}
else {
_a = bucketHostname({
return [3 /*break*/, 6];
case 1:
if (!validateArn(bucketName)) return [3 /*break*/, 5];
bucketArn = parseArn(bucketName);
_a = getPseudoRegion;
return [4 /*yield*/, options.region()];
case 2:
clientRegion = _a.apply(void 0, [_e.sent()]);
return [4 /*yield*/, options.regionInfoProvider(clientRegion)];
case 3:
_b = (_e.sent()) || {}, partition = _b.partition, signingRegion = _b.signingRegion;
return [4 /*yield*/, options.useArnRegion()];
case 4:
useArnRegion = _e.sent();
_c = bucketHostname({
bucketName: bucketArn,
baseHostname: request.hostname,
accelerateEndpoint: options.useAccelerateEndpoint,
dualstackEndpoint: options.useDualstackEndpoint,
pathStyleEndpoint: options.forcePathStyle,
tlsCompatible: request.protocol === "https:",
useArnRegion: useArnRegion,
clientPartition: partition,
clientSigningRegion: signingRegion,
}), hostname = _c.hostname, bucketEndpoint = _c.bucketEndpoint;
// If the request needs to use a region inferred from ARN that different from client region, we need to set
// them in the handler context so the signer will use them
if (useArnRegion && clientRegion !== bucketArn.region) {
context["signing_region"] = bucketArn.region;
}
request.hostname = hostname;
replaceBucketInPath = bucketEndpoint;
return [3 /*break*/, 6];
case 5:
_d = bucketHostname({
bucketName: bucketName,

@@ -24,14 +60,16 @@ baseHostname: request.hostname,

tlsCompatible: request.protocol === "https:",
}), hostname = _a.hostname, bucketEndpoint = _a.bucketEndpoint;
}), hostname = _d.hostname, bucketEndpoint = _d.bucketEndpoint;
request.hostname = hostname;
replaceBucketInPath = bucketEndpoint;
}
if (replaceBucketInPath) {
request.path = request.path.replace(/^(\/)?[^\/]+/, "");
if (request.path === "") {
request.path = "/";
_e.label = 6;
case 6:
if (replaceBucketInPath) {
request.path = request.path.replace(/^(\/)?[^\/]+/, "");
if (request.path === "") {
request.path = "/";
}
}
}
_e.label = 7;
case 7: return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];
}
return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];
});

@@ -51,2 +89,2 @@ }); }; };

}); };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1Y2tldEVuZHBvaW50TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBV3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdsRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsT0FBcUM7SUFBOUUsaUJBa0NDO0lBakNDLE9BQU8sVUFBZ0MsSUFBK0IsSUFBZ0MsT0FBQSxVQUNwRyxJQUFnQzs7O1lBRWhCLFVBQVUsR0FBSyxJQUFJLENBQUMsS0FBSyxPQUFmLENBQWdCO1lBQ3RDLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFDM0MsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDN0IsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLEVBQUU7b0JBQzFCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO2lCQUMvQjtxQkFBTTtvQkFDQyxLQUErQixjQUFjLENBQUM7d0JBQ2xELFVBQVUsWUFBQTt3QkFDVixZQUFZLEVBQUUsT0FBTyxDQUFDLFFBQVE7d0JBQzlCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxxQkFBcUI7d0JBQ2pELGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0I7d0JBQy9DLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxjQUFjO3dCQUN6QyxhQUFhLEVBQUUsT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRO3FCQUM3QyxDQUFDLEVBUE0sUUFBUSxjQUFBLEVBQUUsY0FBYyxvQkFBQSxDQU83QjtvQkFFSCxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztvQkFDNUIsbUJBQW1CLEdBQUcsY0FBYyxDQUFDO2lCQUN0QztnQkFFRCxJQUFJLG1CQUFtQixFQUFFO29CQUN2QixPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDeEQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRTt3QkFDdkIsT0FBTyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7cUJBQ3BCO2lCQUNGO2FBQ0Y7WUFFRCxzQkFBTyxJQUFJLHVCQUFNLElBQUksS0FBRSxPQUFPLFNBQUEsSUFBRyxFQUFDOztTQUNuQyxFQWhDcUcsQ0FnQ3JHLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLElBQU0sK0JBQStCLEdBQThCO0lBQ3hFLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ3pCLElBQUksRUFBRSwwQkFBMEI7SUFDaEMsUUFBUSxFQUFFLFFBQVE7SUFDbEIsWUFBWSxFQUFFLHNCQUFzQjtDQUNyQyxDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sdUJBQXVCLEdBQUcsVUFBQyxPQUFxQyxJQUEwQixPQUFBLENBQUM7SUFDdEcsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxFQUFFLCtCQUErQixDQUFDLENBQUM7SUFDaEcsQ0FBQztDQUNGLENBQUMsRUFKcUcsQ0FJckcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEJ1aWxkSGFuZGxlcixcbiAgQnVpbGRIYW5kbGVyQXJndW1lbnRzLFxuICBCdWlsZEhhbmRsZXJPdXRwdXQsXG4gIEJ1aWxkTWlkZGxld2FyZSxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbiAgUmVsYXRpdmVNaWRkbGV3YXJlT3B0aW9ucyxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmltcG9ydCB7IGJ1Y2tldEhvc3RuYW1lIH0gZnJvbSBcIi4vYnVja2V0SG9zdG5hbWVcIjtcbmltcG9ydCB7IEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlKG9wdGlvbnM6IEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcpOiBCdWlsZE1pZGRsZXdhcmU8YW55LCBhbnk+IHtcbiAgcmV0dXJuIDxPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlcj4obmV4dDogQnVpbGRIYW5kbGVyPGFueSwgT3V0cHV0Pik6IEJ1aWxkSGFuZGxlcjxhbnksIE91dHB1dD4gPT4gYXN5bmMgKFxuICAgIGFyZ3M6IEJ1aWxkSGFuZGxlckFyZ3VtZW50czxhbnk+XG4gICk6IFByb21pc2U8QnVpbGRIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgICBjb25zdCB7IEJ1Y2tldDogYnVja2V0TmFtZSB9ID0gYXJncy5pbnB1dDtcbiAgICBsZXQgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IG9wdGlvbnMuYnVja2V0RW5kcG9pbnQ7XG4gICAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgaWYgKG9wdGlvbnMuYnVja2V0RW5kcG9pbnQpIHtcbiAgICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGJ1Y2tldE5hbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB7IGhvc3RuYW1lLCBidWNrZXRFbmRwb2ludCB9ID0gYnVja2V0SG9zdG5hbWUoe1xuICAgICAgICAgIGJ1Y2tldE5hbWUsXG4gICAgICAgICAgYmFzZUhvc3RuYW1lOiByZXF1ZXN0Lmhvc3RuYW1lLFxuICAgICAgICAgIGFjY2VsZXJhdGVFbmRwb2ludDogb3B0aW9ucy51c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgICAgICAgZHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICAgICAgcGF0aFN0eWxlRW5kcG9pbnQ6IG9wdGlvbnMuZm9yY2VQYXRoU3R5bGUsXG4gICAgICAgICAgdGxzQ29tcGF0aWJsZTogcmVxdWVzdC5wcm90b2NvbCA9PT0gXCJodHRwczpcIixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgICByZXBsYWNlQnVja2V0SW5QYXRoID0gYnVja2V0RW5kcG9pbnQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXBsYWNlQnVja2V0SW5QYXRoKSB7XG4gICAgICAgIHJlcXVlc3QucGF0aCA9IHJlcXVlc3QucGF0aC5yZXBsYWNlKC9eKFxcLyk/W15cXC9dKy8sIFwiXCIpO1xuICAgICAgICBpZiAocmVxdWVzdC5wYXRoID09PSBcIlwiKSB7XG4gICAgICAgICAgcmVxdWVzdC5wYXRoID0gXCIvXCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dCh7IC4uLmFyZ3MsIHJlcXVlc3QgfSk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zOiBSZWxhdGl2ZU1pZGRsZXdhcmVPcHRpb25zID0ge1xuICB0YWdzOiBbXCJCVUNLRVRfRU5EUE9JTlRcIl0sXG4gIG5hbWU6IFwiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlXCIsXG4gIHJlbGF0aW9uOiBcImJlZm9yZVwiLFxuICB0b01pZGRsZXdhcmU6IFwiaG9zdEhlYWRlck1pZGRsZXdhcmVcIixcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCdWNrZXRFbmRwb2ludFBsdWdpbiA9IChvcHRpb25zOiBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlKG9wdGlvbnMpLCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1Y2tldEVuZHBvaW50TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBV3JELE9BQU8sRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLFFBQVEsSUFBSSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3hELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxPQUFxQztJQUE5RSxpQkE0REM7SUEzREMsT0FBTyxVQUNMLElBQStCLEVBQy9CLE9BQWdDLElBQ0YsT0FBQSxVQUFPLElBQWdDOzs7OztvQkFDckQsVUFBVSxHQUFLLElBQUksQ0FBQyxLQUEyQixPQUFyQyxDQUFzQztvQkFDNUQsbUJBQW1CLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztvQkFDM0MsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7eUJBQ3pCLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQS9CLHdCQUErQjt5QkFDN0IsT0FBTyxDQUFDLGNBQWMsRUFBdEIsd0JBQXNCO29CQUN4QixPQUFPLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQzs7O3lCQUNyQixXQUFXLENBQUMsVUFBVSxDQUFDLEVBQXZCLHdCQUF1QjtvQkFDMUIsU0FBUyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDbEIsS0FBQSxlQUFlLENBQUE7b0JBQUMscUJBQU0sT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFBOztvQkFBckQsWUFBWSxHQUFHLGtCQUFnQixTQUFzQixFQUFDO29CQUN0QixxQkFBTSxPQUFPLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEVBQUE7O29CQUE5RSxLQUErQixDQUFDLFNBQThDLENBQUMsSUFBSSxFQUFFLEVBQW5GLFNBQVMsZUFBQSxFQUFFLGFBQWEsbUJBQUE7b0JBQ1gscUJBQU0sT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFBOztvQkFBM0MsWUFBWSxHQUFHLFNBQTRCO29CQUMzQyxLQUErQixjQUFjLENBQUM7d0JBQ2xELFVBQVUsRUFBRSxTQUFTO3dCQUNyQixZQUFZLEVBQUUsT0FBTyxDQUFDLFFBQVE7d0JBQzlCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxxQkFBcUI7d0JBQ2pELGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0I7d0JBQy9DLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxjQUFjO3dCQUN6QyxhQUFhLEVBQUUsT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRO3dCQUM1QyxZQUFZLGNBQUE7d0JBQ1osZUFBZSxFQUFFLFNBQVM7d0JBQzFCLG1CQUFtQixFQUFFLGFBQWE7cUJBQ25DLENBQUMsRUFWTSxRQUFRLGNBQUEsRUFBRSxjQUFjLG9CQUFBLENBVTdCO29CQUVILDJHQUEyRztvQkFDM0csMERBQTBEO29CQUMxRCxJQUFJLFlBQVksSUFBSSxZQUFZLEtBQUssU0FBUyxDQUFDLE1BQU0sRUFBRTt3QkFDckQsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztxQkFDOUM7b0JBRUQsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7b0JBQzVCLG1CQUFtQixHQUFHLGNBQWMsQ0FBQzs7O29CQUUvQixLQUErQixjQUFjLENBQUM7d0JBQ2xELFVBQVUsWUFBQTt3QkFDVixZQUFZLEVBQUUsT0FBTyxDQUFDLFFBQVE7d0JBQzlCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxxQkFBcUI7d0JBQ2pELGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0I7d0JBQy9DLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxjQUFjO3dCQUN6QyxhQUFhLEVBQUUsT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRO3FCQUM3QyxDQUFDLEVBUE0sUUFBUSxjQUFBLEVBQUUsY0FBYyxvQkFBQSxDQU83QjtvQkFFSCxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztvQkFDNUIsbUJBQW1CLEdBQUcsY0FBYyxDQUFDOzs7b0JBR3ZDLElBQUksbUJBQW1CLEVBQUU7d0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUN4RCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFOzRCQUN2QixPQUFPLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQzt5QkFDcEI7cUJBQ0Y7O3dCQUdILHNCQUFPLElBQUksdUJBQU0sSUFBSSxLQUFFLE9BQU8sU0FBQSxJQUFHLEVBQUM7OztTQUNuQyxFQXZEK0IsQ0F1RC9CLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLElBQU0sK0JBQStCLEdBQThCO0lBQ3hFLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ3pCLElBQUksRUFBRSwwQkFBMEI7SUFDaEMsUUFBUSxFQUFFLFFBQVE7SUFDbEIsWUFBWSxFQUFFLHNCQUFzQjtDQUNyQyxDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sdUJBQXVCLEdBQUcsVUFBQyxPQUFxQyxJQUEwQixPQUFBLENBQUM7SUFDdEcsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxFQUFFLCtCQUErQixDQUFDLENBQUM7SUFDaEcsQ0FBQztDQUNGLENBQUMsRUFKcUcsQ0FJckcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEJ1aWxkSGFuZGxlcixcbiAgQnVpbGRIYW5kbGVyQXJndW1lbnRzLFxuICBCdWlsZEhhbmRsZXJPdXRwdXQsXG4gIEJ1aWxkTWlkZGxld2FyZSxcbiAgSGFuZGxlckV4ZWN1dGlvbkNvbnRleHQsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG4gIFJlbGF0aXZlTWlkZGxld2FyZU9wdGlvbnMsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VBcm4sIHZhbGlkYXRlIGFzIHZhbGlkYXRlQXJuIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlclwiO1xuXG5pbXBvcnQgeyBidWNrZXRIb3N0bmFtZSB9IGZyb20gXCIuL2J1Y2tldEhvc3RuYW1lXCI7XG5pbXBvcnQgeyBnZXRQc2V1ZG9SZWdpb24gfSBmcm9tIFwiLi9idWNrZXRIb3N0bmFtZVV0aWxzXCI7XG5pbXBvcnQgeyBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZShvcHRpb25zOiBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnKTogQnVpbGRNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KFxuICAgIG5leHQ6IEJ1aWxkSGFuZGxlcjxhbnksIE91dHB1dD4sXG4gICAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbiAgKTogQnVpbGRIYW5kbGVyPGFueSwgT3V0cHV0PiA9PiBhc3luYyAoYXJnczogQnVpbGRIYW5kbGVyQXJndW1lbnRzPGFueT4pOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3QgeyBCdWNrZXQ6IGJ1Y2tldE5hbWUgfSA9IGFyZ3MuaW5wdXQgYXMgeyBCdWNrZXQ6IHN0cmluZyB9O1xuICAgIGxldCByZXBsYWNlQnVja2V0SW5QYXRoID0gb3B0aW9ucy5idWNrZXRFbmRwb2ludDtcbiAgICBjb25zdCByZXF1ZXN0ID0gYXJncy5yZXF1ZXN0O1xuICAgIGlmIChIdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICBpZiAob3B0aW9ucy5idWNrZXRFbmRwb2ludCkge1xuICAgICAgICByZXF1ZXN0Lmhvc3RuYW1lID0gYnVja2V0TmFtZTtcbiAgICAgIH0gZWxzZSBpZiAodmFsaWRhdGVBcm4oYnVja2V0TmFtZSkpIHtcbiAgICAgICAgY29uc3QgYnVja2V0QXJuID0gcGFyc2VBcm4oYnVja2V0TmFtZSk7XG4gICAgICAgIGNvbnN0IGNsaWVudFJlZ2lvbiA9IGdldFBzZXVkb1JlZ2lvbihhd2FpdCBvcHRpb25zLnJlZ2lvbigpKTtcbiAgICAgICAgY29uc3QgeyBwYXJ0aXRpb24sIHNpZ25pbmdSZWdpb24gfSA9IChhd2FpdCBvcHRpb25zLnJlZ2lvbkluZm9Qcm92aWRlcihjbGllbnRSZWdpb24pKSB8fCB7fTtcbiAgICAgICAgY29uc3QgdXNlQXJuUmVnaW9uID0gYXdhaXQgb3B0aW9ucy51c2VBcm5SZWdpb24oKTtcbiAgICAgICAgY29uc3QgeyBob3N0bmFtZSwgYnVja2V0RW5kcG9pbnQgfSA9IGJ1Y2tldEhvc3RuYW1lKHtcbiAgICAgICAgICBidWNrZXROYW1lOiBidWNrZXRBcm4sXG4gICAgICAgICAgYmFzZUhvc3RuYW1lOiByZXF1ZXN0Lmhvc3RuYW1lLFxuICAgICAgICAgIGFjY2VsZXJhdGVFbmRwb2ludDogb3B0aW9ucy51c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgICAgICAgZHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICAgICAgcGF0aFN0eWxlRW5kcG9pbnQ6IG9wdGlvbnMuZm9yY2VQYXRoU3R5bGUsXG4gICAgICAgICAgdGxzQ29tcGF0aWJsZTogcmVxdWVzdC5wcm90b2NvbCA9PT0gXCJodHRwczpcIixcbiAgICAgICAgICB1c2VBcm5SZWdpb24sXG4gICAgICAgICAgY2xpZW50UGFydGl0aW9uOiBwYXJ0aXRpb24sXG4gICAgICAgICAgY2xpZW50U2lnbmluZ1JlZ2lvbjogc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gSWYgdGhlIHJlcXVlc3QgbmVlZHMgdG8gdXNlIGEgcmVnaW9uIGluZmVycmVkIGZyb20gQVJOIHRoYXQgZGlmZmVyZW50IGZyb20gY2xpZW50IHJlZ2lvbiwgd2UgbmVlZCB0byBzZXRcbiAgICAgICAgLy8gdGhlbSBpbiB0aGUgaGFuZGxlciBjb250ZXh0IHNvIHRoZSBzaWduZXIgd2lsbCB1c2UgdGhlbVxuICAgICAgICBpZiAodXNlQXJuUmVnaW9uICYmIGNsaWVudFJlZ2lvbiAhPT0gYnVja2V0QXJuLnJlZ2lvbikge1xuICAgICAgICAgIGNvbnRleHRbXCJzaWduaW5nX3JlZ2lvblwiXSA9IGJ1Y2tldEFybi5yZWdpb247XG4gICAgICAgIH1cblxuICAgICAgICByZXF1ZXN0Lmhvc3RuYW1lID0gaG9zdG5hbWU7XG4gICAgICAgIHJlcGxhY2VCdWNrZXRJblBhdGggPSBidWNrZXRFbmRwb2ludDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHsgaG9zdG5hbWUsIGJ1Y2tldEVuZHBvaW50IH0gPSBidWNrZXRIb3N0bmFtZSh7XG4gICAgICAgICAgYnVja2V0TmFtZSxcbiAgICAgICAgICBiYXNlSG9zdG5hbWU6IHJlcXVlc3QuaG9zdG5hbWUsXG4gICAgICAgICAgYWNjZWxlcmF0ZUVuZHBvaW50OiBvcHRpb25zLnVzZUFjY2VsZXJhdGVFbmRwb2ludCxcbiAgICAgICAgICBkdWFsc3RhY2tFbmRwb2ludDogb3B0aW9ucy51c2VEdWFsc3RhY2tFbmRwb2ludCxcbiAgICAgICAgICBwYXRoU3R5bGVFbmRwb2ludDogb3B0aW9ucy5mb3JjZVBhdGhTdHlsZSxcbiAgICAgICAgICB0bHNDb21wYXRpYmxlOiByZXF1ZXN0LnByb3RvY29sID09PSBcImh0dHBzOlwiLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXF1ZXN0Lmhvc3RuYW1lID0gaG9zdG5hbWU7XG4gICAgICAgIHJlcGxhY2VCdWNrZXRJblBhdGggPSBidWNrZXRFbmRwb2ludDtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcGxhY2VCdWNrZXRJblBhdGgpIHtcbiAgICAgICAgcmVxdWVzdC5wYXRoID0gcmVxdWVzdC5wYXRoLnJlcGxhY2UoL14oXFwvKT9bXlxcL10rLywgXCJcIik7XG4gICAgICAgIGlmIChyZXF1ZXN0LnBhdGggPT09IFwiXCIpIHtcbiAgICAgICAgICByZXF1ZXN0LnBhdGggPSBcIi9cIjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXh0KHsgLi4uYXJncywgcmVxdWVzdCB9KTtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnM6IFJlbGF0aXZlTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gIHRhZ3M6IFtcIkJVQ0tFVF9FTkRQT0lOVFwiXSxcbiAgbmFtZTogXCJidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVcIixcbiAgcmVsYXRpb246IFwiYmVmb3JlXCIsXG4gIHRvTWlkZGxld2FyZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxufTtcblxuZXhwb3J0IGNvbnN0IGdldEJ1Y2tldEVuZHBvaW50UGx1Z2luID0gKG9wdGlvbnM6IEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkUmVsYXRpdmVUbyhidWNrZXRFbmRwb2ludE1pZGRsZXdhcmUob3B0aW9ucyksIGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0=

@@ -1,9 +0,2 @@

export interface BucketHostnameParameters {
accelerateEndpoint?: boolean;
baseHostname: string;
bucketName: string;
dualstackEndpoint?: boolean;
pathStyleEndpoint?: boolean;
tlsCompatible?: boolean;
}
import { ArnHostnameParams, BucketHostnameParams } from "./bucketHostnameUtils";
export interface BucketHostname {

@@ -13,2 +6,2 @@ hostname: string;

}
export declare function bucketHostname({ accelerateEndpoint, baseHostname, bucketName, dualstackEndpoint, pathStyleEndpoint, tlsCompatible, }: BucketHostnameParameters): BucketHostname;
export declare const bucketHostname: (options: BucketHostnameParams | ArnHostnameParams) => BucketHostname;
import { __read } from "tslib";
var DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/;
var IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/;
var DOTS_PATTERN = /\.\./;
var DOT_PATTERN = /\./;
var S3_HOSTNAME_PATTERN = /^(.+\.)?s3[.-]([a-z0-9-]+)\./;
var S3_US_EAST_1_ALTNAME_PATTERN = /^s3(-external-1)?\.amazonaws\.com$/;
var AWS_PARTITION_SUFFIX = "amazonaws.com";
export function bucketHostname(_a) {
var _b = _a.accelerateEndpoint, accelerateEndpoint = _b === void 0 ? false : _b, baseHostname = _a.baseHostname, bucketName = _a.bucketName, _c = _a.dualstackEndpoint, dualstackEndpoint = _c === void 0 ? false : _c, _d = _a.pathStyleEndpoint, pathStyleEndpoint = _d === void 0 ? false : _d, _e = _a.tlsCompatible, tlsCompatible = _e === void 0 ? true : _e;
import { DOT_PATTERN, getAccessPointName, getSuffix, getSuffixForArnEndpoint, isBucketNameOptions, isDnsCompatibleBucketName, S3_HOSTNAME_PATTERN, validateAccountId, validateDNSHostLabel, validatePartition, validateRegion, validateService, } from "./bucketHostnameUtils";
export var bucketHostname = function (options) {
var baseHostname = options.baseHostname;
if (!S3_HOSTNAME_PATTERN.test(baseHostname)) {

@@ -17,9 +11,44 @@ return {

}
var _f = __read(S3_US_EAST_1_ALTNAME_PATTERN.test(baseHostname)
? ["us-east-1", AWS_PARTITION_SUFFIX]
: partitionSuffix(baseHostname), 2), region = _f[0], hostnameSuffix = _f[1];
if (isBucketNameOptions(options)) {
// Construct endpoint when bucketName is a string referring to a bucket name
return getEndpointFromBucketName(options);
}
else {
// Construct endpoint when bucketName is an ARN referring to an S3 resource like Access Point
return {
bucketEndpoint: true,
hostname: getEndpointFromAccessPoint(options),
};
}
};
var getEndpointFromAccessPoint = function (options) {
// Infer client region and hostname suffix from hostname from endpoints.json, like `s3.us-west-2.amazonaws.com`
var _a = __read(getSuffixForArnEndpoint(options.baseHostname), 2), clientRegion = _a[0], hostnameSuffix = _a[1];
var pathStyleEndpoint = options.pathStyleEndpoint, dualstackEndpoint = options.dualstackEndpoint, accelerateEndpoint = options.accelerateEndpoint, _b = options.tlsCompatible, tlsCompatible = _b === void 0 ? true : _b, useArnRegion = options.useArnRegion, bucketName = options.bucketName, _c = options.clientPartition, clientPartition = _c === void 0 ? "aws" : _c, _d = options.clientSigningRegion, clientSigningRegion = _d === void 0 ? clientRegion : _d;
if (pathStyleEndpoint) {
throw new Error("Path-style S3 endpoint is not supported when bucket is an Access Point ARN");
}
if (accelerateEndpoint) {
throw new Error("Accelerate is not supported when bucket is an Access Point ARN");
}
if (!tlsCompatible) {
throw new Error("Access Point can only be used with https");
}
// Validate and parse the ARN supplied as a bucket name
var service = bucketName.service, partition = bucketName.partition, accountId = bucketName.accountId, region = bucketName.region, resource = bucketName.resource;
validateService(service);
validateRegion(region, { useArnRegion: useArnRegion, clientRegion: clientRegion, clientSigningRegion: clientSigningRegion });
validatePartition(partition, { clientPartition: clientPartition });
validateAccountId(accountId);
var accessPointName = getAccessPointName(resource);
validateDNSHostLabel(accessPointName + "-" + accountId, { tlsCompatible: tlsCompatible });
return accessPointName + "-" + accountId + ".s3-accesspoint" + (dualstackEndpoint ? ".dualstack" : "") + "." + (useArnRegion ? region : clientRegion) + "." + hostnameSuffix;
};
var getEndpointFromBucketName = function (_a) {
var _b = _a.accelerateEndpoint, accelerateEndpoint = _b === void 0 ? false : _b, baseHostname = _a.baseHostname, bucketName = _a.bucketName, _c = _a.dualstackEndpoint, dualstackEndpoint = _c === void 0 ? false : _c, _d = _a.pathStyleEndpoint, pathStyleEndpoint = _d === void 0 ? false : _d, _e = _a.tlsCompatible, tlsCompatible = _e === void 0 ? true : _e;
var _f = __read(getSuffix(baseHostname), 2), clientRegion = _f[0], hostnameSuffix = _f[1];
if (pathStyleEndpoint || !isDnsCompatibleBucketName(bucketName) || (tlsCompatible && DOT_PATTERN.test(bucketName))) {
return {
bucketEndpoint: false,
hostname: dualstackEndpoint ? "s3.dualstack." + region + "." + hostnameSuffix : baseHostname,
hostname: dualstackEndpoint ? "s3.dualstack." + clientRegion + "." + hostnameSuffix : baseHostname,
};

@@ -31,3 +60,3 @@ }

else if (dualstackEndpoint) {
baseHostname = "s3.dualstack." + region + "." + hostnameSuffix;
baseHostname = "s3.dualstack." + clientRegion + "." + hostnameSuffix;
}

@@ -38,17 +67,3 @@ return {

};
}
/**
* Determines whether a given string is DNS compliant per the rules outlined by
* S3. Length, capitaization, and leading dot restrictions are enforced by the
* DOMAIN_PATTERN regular expression.
*
* @see https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html
*/
function isDnsCompatibleBucketName(bucketName) {
return DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);
}
function partitionSuffix(hostname) {
var parts = hostname.match(S3_HOSTNAME_PATTERN);
return [parts[2], hostname.replace(new RegExp("^" + parts[0]), "")];
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVja2V0SG9zdG5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLElBQU0sY0FBYyxHQUFHLHNDQUFzQyxDQUFDO0FBQzlELElBQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDO0FBQzNDLElBQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztBQUM1QixJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDekIsSUFBTSxtQkFBbUIsR0FBRyw4QkFBOEIsQ0FBQztBQUMzRCxJQUFNLDRCQUE0QixHQUFHLG9DQUFvQyxDQUFDO0FBQzFFLElBQU0sb0JBQW9CLEdBQUcsZUFBZSxDQUFDO0FBZ0I3QyxNQUFNLFVBQVUsY0FBYyxDQUFDLEVBT0o7UUFOekIsMEJBQTBCLEVBQTFCLGtCQUFrQixtQkFBRyxLQUFLLEtBQUEsRUFDMUIsWUFBWSxrQkFBQSxFQUNaLFVBQVUsZ0JBQUEsRUFDVix5QkFBeUIsRUFBekIsaUJBQWlCLG1CQUFHLEtBQUssS0FBQSxFQUN6Qix5QkFBeUIsRUFBekIsaUJBQWlCLG1CQUFHLEtBQUssS0FBQSxFQUN6QixxQkFBb0IsRUFBcEIsYUFBYSxtQkFBRyxJQUFJLEtBQUE7SUFFcEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUMzQyxPQUFPO1lBQ0wsY0FBYyxFQUFFLEtBQUs7WUFDckIsUUFBUSxFQUFFLFlBQVk7U0FDdkIsQ0FBQztLQUNIO0lBRUssSUFBQSxLQUFBLE9BQTJCLDRCQUE0QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDOUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLG9CQUFvQixDQUFDO1FBQ3JDLENBQUMsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUEsRUFGMUIsTUFBTSxRQUFBLEVBQUUsY0FBYyxRQUVJLENBQUM7SUFFbEMsSUFBSSxpQkFBaUIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRTtRQUNsSCxPQUFPO1lBQ0wsY0FBYyxFQUFFLEtBQUs7WUFDckIsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxrQkFBZ0IsTUFBTSxTQUFJLGNBQWdCLENBQUMsQ0FBQyxDQUFDLFlBQVk7U0FDeEYsQ0FBQztLQUNIO0lBRUQsSUFBSSxrQkFBa0IsRUFBRTtRQUN0QixZQUFZLEdBQUcsbUJBQWdCLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBSSxjQUFnQixDQUFDO0tBQzFGO1NBQU0sSUFBSSxpQkFBaUIsRUFBRTtRQUM1QixZQUFZLEdBQUcsa0JBQWdCLE1BQU0sU0FBSSxjQUFnQixDQUFDO0tBQzNEO0lBRUQsT0FBTztRQUNMLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFFBQVEsRUFBSyxVQUFVLFNBQUksWUFBYztLQUMxQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMseUJBQXlCLENBQUMsVUFBa0I7SUFDbkQsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNuSCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsUUFBZ0I7SUFDdkMsSUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBcUIsQ0FBQztJQUV0RSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBET01BSU5fUEFUVEVSTiA9IC9eW2EtejAtOV1bYS16MC05XFwuXFwtXXsxLDYxfVthLXowLTldJC87XG5jb25zdCBJUF9BRERSRVNTX1BBVFRFUk4gPSAvKFxcZCtcXC4pezN9XFxkKy87XG5jb25zdCBET1RTX1BBVFRFUk4gPSAvXFwuXFwuLztcbmNvbnN0IERPVF9QQVRURVJOID0gL1xcLi87XG5jb25zdCBTM19IT1NUTkFNRV9QQVRURVJOID0gL14oLitcXC4pP3MzWy4tXShbYS16MC05LV0rKVxcLi87XG5jb25zdCBTM19VU19FQVNUXzFfQUxUTkFNRV9QQVRURVJOID0gL15zMygtZXh0ZXJuYWwtMSk/XFwuYW1hem9uYXdzXFwuY29tJC87XG5jb25zdCBBV1NfUEFSVElUSU9OX1NVRkZJWCA9IFwiYW1hem9uYXdzLmNvbVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEhvc3RuYW1lUGFyYW1ldGVycyB7XG4gIGFjY2VsZXJhdGVFbmRwb2ludD86IGJvb2xlYW47XG4gIGJhc2VIb3N0bmFtZTogc3RyaW5nO1xuICBidWNrZXROYW1lOiBzdHJpbmc7XG4gIGR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbjtcbiAgcGF0aFN0eWxlRW5kcG9pbnQ/OiBib29sZWFuO1xuICB0bHNDb21wYXRpYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRIb3N0bmFtZSB7XG4gIGhvc3RuYW1lOiBzdHJpbmc7XG4gIGJ1Y2tldEVuZHBvaW50OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVja2V0SG9zdG5hbWUoe1xuICBhY2NlbGVyYXRlRW5kcG9pbnQgPSBmYWxzZSxcbiAgYmFzZUhvc3RuYW1lLFxuICBidWNrZXROYW1lLFxuICBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLFxuICBwYXRoU3R5bGVFbmRwb2ludCA9IGZhbHNlLFxuICB0bHNDb21wYXRpYmxlID0gdHJ1ZSxcbn06IEJ1Y2tldEhvc3RuYW1lUGFyYW1ldGVycyk6IEJ1Y2tldEhvc3RuYW1lIHtcbiAgaWYgKCFTM19IT1NUTkFNRV9QQVRURVJOLnRlc3QoYmFzZUhvc3RuYW1lKSkge1xuICAgIHJldHVybiB7XG4gICAgICBidWNrZXRFbmRwb2ludDogZmFsc2UsXG4gICAgICBob3N0bmFtZTogYmFzZUhvc3RuYW1lLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBbcmVnaW9uLCBob3N0bmFtZVN1ZmZpeF0gPSBTM19VU19FQVNUXzFfQUxUTkFNRV9QQVRURVJOLnRlc3QoYmFzZUhvc3RuYW1lKVxuICAgID8gW1widXMtZWFzdC0xXCIsIEFXU19QQVJUSVRJT05fU1VGRklYXVxuICAgIDogcGFydGl0aW9uU3VmZml4KGJhc2VIb3N0bmFtZSk7XG5cbiAgaWYgKHBhdGhTdHlsZUVuZHBvaW50IHx8ICFpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lKGJ1Y2tldE5hbWUpIHx8ICh0bHNDb21wYXRpYmxlICYmIERPVF9QQVRURVJOLnRlc3QoYnVja2V0TmFtZSkpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1Y2tldEVuZHBvaW50OiBmYWxzZSxcbiAgICAgIGhvc3RuYW1lOiBkdWFsc3RhY2tFbmRwb2ludCA/IGBzMy5kdWFsc3RhY2suJHtyZWdpb259LiR7aG9zdG5hbWVTdWZmaXh9YCA6IGJhc2VIb3N0bmFtZSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGFjY2VsZXJhdGVFbmRwb2ludCkge1xuICAgIGJhc2VIb3N0bmFtZSA9IGBzMy1hY2NlbGVyYXRlJHtkdWFsc3RhY2tFbmRwb2ludCA/IFwiLmR1YWxzdGFja1wiIDogXCJcIn0uJHtob3N0bmFtZVN1ZmZpeH1gO1xuICB9IGVsc2UgaWYgKGR1YWxzdGFja0VuZHBvaW50KSB7XG4gICAgYmFzZUhvc3RuYW1lID0gYHMzLmR1YWxzdGFjay4ke3JlZ2lvbn0uJHtob3N0bmFtZVN1ZmZpeH1gO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBidWNrZXRFbmRwb2ludDogdHJ1ZSxcbiAgICBob3N0bmFtZTogYCR7YnVja2V0TmFtZX0uJHtiYXNlSG9zdG5hbWV9YCxcbiAgfTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBnaXZlbiBzdHJpbmcgaXMgRE5TIGNvbXBsaWFudCBwZXIgdGhlIHJ1bGVzIG91dGxpbmVkIGJ5XG4gKiBTMy4gTGVuZ3RoLCBjYXBpdGFpemF0aW9uLCBhbmQgbGVhZGluZyBkb3QgcmVzdHJpY3Rpb25zIGFyZSBlbmZvcmNlZCBieSB0aGVcbiAqIERPTUFJTl9QQVRURVJOIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvZGV2L0J1Y2tldFJlc3RyaWN0aW9ucy5odG1sXG4gKi9cbmZ1bmN0aW9uIGlzRG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUoYnVja2V0TmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBET01BSU5fUEFUVEVSTi50ZXN0KGJ1Y2tldE5hbWUpICYmICFJUF9BRERSRVNTX1BBVFRFUk4udGVzdChidWNrZXROYW1lKSAmJiAhRE9UU19QQVRURVJOLnRlc3QoYnVja2V0TmFtZSk7XG59XG5cbmZ1bmN0aW9uIHBhcnRpdGlvblN1ZmZpeChob3N0bmFtZTogc3RyaW5nKTogW3N0cmluZywgc3RyaW5nXSB7XG4gIGNvbnN0IHBhcnRzID0gaG9zdG5hbWUubWF0Y2goUzNfSE9TVE5BTUVfUEFUVEVSTikgYXMgUmVnRXhwTWF0Y2hBcnJheTtcblxuICByZXR1cm4gW3BhcnRzWzJdLCBob3N0bmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoYF4ke3BhcnRzWzBdfWApLCBcIlwiKV07XG59XG4iXX0=
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVja2V0SG9zdG5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFHTCxXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQztBQU8vQixNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsVUFBQyxPQUFpRDtJQUN0RSxJQUFBLFlBQVksR0FBSyxPQUFPLGFBQVosQ0FBYTtJQUNqQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQzNDLE9BQU87WUFDTCxjQUFjLEVBQUUsS0FBSztZQUNyQixRQUFRLEVBQUUsWUFBWTtTQUN2QixDQUFDO0tBQ0g7SUFDRCxJQUFJLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2hDLDRFQUE0RTtRQUM1RSxPQUFPLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzNDO1NBQU07UUFDTCw2RkFBNkY7UUFDN0YsT0FBTztZQUNMLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFFBQVEsRUFBRSwwQkFBMEIsQ0FBQyxPQUFPLENBQUM7U0FDOUMsQ0FBQztLQUNIO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsSUFBTSwwQkFBMEIsR0FBRyxVQUFDLE9BQTBCO0lBQzVELCtHQUErRztJQUN6RyxJQUFBLEtBQUEsT0FBaUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFBLEVBQTdFLFlBQVksUUFBQSxFQUFFLGNBQWMsUUFBaUQsQ0FBQztJQUVuRixJQUFBLGlCQUFpQixHQVFmLE9BQU8sa0JBUlEsRUFDakIsaUJBQWlCLEdB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UUFDNUIsWUFBWSxHQUFHLGtCQUFnQixZQUFZLFNBQUksY0FBZ0IsQ0FBQztLQUNqRTtJQUVELE9BQU87UUFDTCxjQUFjLEVBQUUsSUFBSTtRQUNwQixRQUFRLEVBQUssVUFBVSxTQUFJLFlBQWM7S0FDMUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFybkhvc3RuYW1lUGFyYW1zLFxuICBCdWNrZXRIb3N0bmFtZVBhcmFtcyxcbiAgRE9UX1BBVFRFUk4sXG4gIGdldEFjY2Vzc1BvaW50TmFtZSxcbiAgZ2V0U3VmZml4LFxuICBnZXRTdWZmaXhGb3JBcm5FbmRwb2ludCxcbiAgaXNCdWNrZXROYW1lT3B0aW9ucyxcbiAgaXNEbnNDb21wYXRpYmxlQnVja2V0TmFtZSxcbiAgUzNfSE9TVE5BTUVfUEFUVEVSTixcbiAgdmFsaWRhdGVBY2NvdW50SWQsXG4gIHZhbGlkYXRlRE5TSG9zdExhYmVsLFxuICB2YWxpZGF0ZVBhcnRpdGlvbixcbiAgdmFsaWRhdGVSZWdpb24sXG4gIHZhbGlkYXRlU2VydmljZSxcbn0gZnJvbSBcIi4vYnVja2V0SG9zdG5hbWVVdGlsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEhvc3RuYW1lIHtcbiAgaG9zdG5hbWU6IHN0cmluZztcbiAgYnVja2V0RW5kcG9pbnQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBidWNrZXRIb3N0bmFtZSA9IChvcHRpb25zOiBCdWNrZXRIb3N0bmFtZVBhcmFtcyB8IEFybkhvc3RuYW1lUGFyYW1zKTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICBjb25zdCB7IGJhc2VIb3N0bmFtZSB9ID0gb3B0aW9ucztcbiAgaWYgKCFTM19IT1NUTkFNRV9QQVRURVJOLnRlc3QoYmFzZUhvc3RuYW1lKSkge1xuICAgIHJldHVybiB7XG4gICAgICBidWNrZXRFbmRwb2ludDogZmFsc2UsXG4gICAgICBob3N0bmFtZTogYmFzZUhvc3RuYW1lLFxuICAgIH07XG4gIH1cbiAgaWYgKGlzQnVja2V0TmFtZU9wdGlvbnMob3B0aW9ucykpIHtcbiAgICAvLyBDb25zdHJ1Y3QgZW5kcG9pbnQgd2hlbiBidWNrZXROYW1lIGlzIGEgc3RyaW5nIHJlZmVycmluZyB0byBhIGJ1Y2tldCBuYW1lXG4gICAgcmV0dXJuIGdldEVuZHBvaW50RnJvbUJ1Y2tldE5hbWUob3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ29uc3RydWN0IGVuZHBvaW50IHdoZW4gYnVja2V0TmFtZSBpcyBhbiBBUk4gcmVmZXJyaW5nIHRvIGFuIFMzIHJlc291cmNlIGxpa2UgQWNjZXNzIFBvaW50XG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgICAgaG9zdG5hbWU6IGdldEVuZHBvaW50RnJvbUFjY2Vzc1BvaW50KG9wdGlvbnMpLFxuICAgIH07XG4gIH1cbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbUFjY2Vzc1BvaW50ID0gKG9wdGlvbnM6IEFybkhvc3RuYW1lUGFyYW1zKTogc3RyaW5nID0+IHtcbiAgLy8gSW5mZXIgY2xpZW50IHJlZ2lvbiBhbmQgaG9zdG5hbWUgc3VmZml4IGZyb20gaG9zdG5hbWUgZnJvbSBlbmRwb2ludHMuanNvbiwgbGlrZSBgczMudXMtd2VzdC0yLmFtYXpvbmF3cy5jb21gXG4gIGNvbnN0IFtjbGllbnRSZWdpb24sIGhvc3RuYW1lU3VmZml4XSA9IGdldFN1ZmZpeEZvckFybkVuZHBvaW50KG9wdGlvbnMuYmFzZUhvc3RuYW1lKTtcbiAgY29uc3Qge1xuICAgIHBhdGhTdHlsZUVuZHBvaW50LFxuICAgIGR1YWxzdGFja0VuZHBvaW50LFxuICAgIGFjY2VsZXJhdGVFbmRwb2ludCxcbiAgICB0bHNDb21wYXRpYmxlID0gdHJ1ZSxcbiAgICB1c2VBcm5SZWdpb24sXG4gICAgYnVja2V0TmFtZSxcbiAgICBjbGllbnRQYXJ0aXRpb24gPSBcImF3c1wiLFxuICAgIGNsaWVudFNpZ25pbmdSZWdpb24gPSBjbGllbnRSZWdpb24sXG4gIH0gPSBvcHRpb25zO1xuXG4gIGlmIChwYXRoU3R5bGVFbmRwb2ludCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlBhdGgtc3R5bGUgUzMgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBY2Nlc3MgUG9pbnQgQVJOXCIpO1xuICB9XG4gIGlmIChhY2NlbGVyYXRlRW5kcG9pbnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBY2NlbGVyYXRlIGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBidWNrZXQgaXMgYW4gQWNjZXNzIFBvaW50IEFSTlwiKTtcbiAgfVxuICBpZiAoIXRsc0NvbXBhdGlibGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBY2Nlc3MgUG9pbnQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIGh0dHBzXCIpO1xuICB9XG4gIC8vIFZhbGlkYXRlIGFuZCBwYXJzZSB0aGUgQVJOIHN1cHBsaWVkIGFzIGEgYnVja2V0IG5hbWVcbiAgY29uc3QgeyBzZXJ2aWNlLCBwYXJ0aXRpb24sIGFjY291bnRJZCwgcmVnaW9uLCByZXNvdXJjZSB9ID0gYnVja2V0TmFtZTtcbiAgdmFsaWRhdGVTZXJ2aWNlKHNlcnZpY2UpO1xuICB2YWxpZGF0ZVJlZ2lvbihyZWdpb24sIHsgdXNlQXJuUmVnaW9uLCBjbGllbnRSZWdpb24sIGNsaWVudFNpZ25pbmdSZWdpb24gfSk7XG4gIHZhbGlkYXRlUGFydGl0aW9uKHBhcnRpdGlvbiwgeyBjbGllbnRQYXJ0aXRpb24gfSk7XG4gIHZhbGlkYXRlQWNjb3VudElkKGFjY291bnRJZCk7XG4gIGNvbnN0IGFjY2Vzc1BvaW50TmFtZSA9IGdldEFjY2Vzc1BvaW50TmFtZShyZXNvdXJjZSk7XG4gIHZhbGlkYXRlRE5TSG9zdExhYmVsKGAke2FjY2Vzc1BvaW50TmFtZX0tJHthY2NvdW50SWR9YCwgeyB0bHNDb21wYXRpYmxlIH0pO1xuXG4gIHJldHVybiBgJHthY2Nlc3NQb2ludE5hbWV9LSR7YWNjb3VudElkfS5zMy1hY2Nlc3Nwb2ludCR7ZHVhbHN0YWNrRW5kcG9pbnQgPyBcIi5kdWFsc3RhY2tcIiA6IFwiXCJ9LiR7XG4gICAgdXNlQXJuUmVnaW9uID8gcmVnaW9uIDogY2xpZW50UmVnaW9uXG4gIH0uJHtob3N0bmFtZVN1ZmZpeH1gO1xufTtcblxuY29uc3QgZ2V0RW5kcG9pbnRGcm9tQnVja2V0TmFtZSA9ICh7XG4gIGFjY2VsZXJhdGVFbmRwb2ludCA9IGZhbHNlLFxuICBiYXNlSG9zdG5hbWUsXG4gIGJ1Y2tldE5hbWUsXG4gIGR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gIHBhdGhTdHlsZUVuZHBvaW50ID0gZmFsc2UsXG4gIHRsc0NvbXBhdGlibGUgPSB0cnVlLFxufTogQnVja2V0SG9zdG5hbWVQYXJhbXMpOiBCdWNrZXRIb3N0bmFtZSA9PiB7XG4gIGNvbnN0IFtjbGllbnRSZWdpb24sIGhvc3RuYW1lU3VmZml4XSA9IGdldFN1ZmZpeChiYXNlSG9zdG5hbWUpO1xuICBpZiAocGF0aFN0eWxlRW5kcG9pbnQgfHwgIWlzRG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUoYnVja2V0TmFtZSkgfHwgKHRsc0NvbXBhdGlibGUgJiYgRE9UX1BBVFRFUk4udGVzdChidWNrZXROYW1lKSkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYnVja2V0RW5kcG9pbnQ6IGZhbHNlLFxuICAgICAgaG9zdG5hbWU6IGR1YWxzdGFja0VuZHBvaW50ID8gYHMzLmR1YWxzdGFjay4ke2NsaWVudFJlZ2lvbn0uJHtob3N0bmFtZVN1ZmZpeH1gIDogYmFzZUhvc3RuYW1lLFxuICAgIH07XG4gIH1cblxuICBpZiAoYWNjZWxlcmF0ZUVuZHBvaW50KSB7XG4gICAgYmFzZUhvc3RuYW1lID0gYHMzLWFjY2VsZXJhdGUke2R1YWxzdGFja0VuZHBvaW50ID8gXCIuZHVhbHN0YWNrXCIgOiBcIlwifS4ke2hvc3RuYW1lU3VmZml4fWA7XG4gIH0gZWxzZSBpZiAoZHVhbHN0YWNrRW5kcG9pbnQpIHtcbiAgICBiYXNlSG9zdG5hbWUgPSBgczMuZHVhbHN0YWNrLiR7Y2xpZW50UmVnaW9ufS4ke2hvc3RuYW1lU3VmZml4fWA7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgIGhvc3RuYW1lOiBgJHtidWNrZXROYW1lfS4ke2Jhc2VIb3N0bmFtZX1gLFxuICB9O1xufTtcbiJdfQ==

@@ -0,1 +1,3 @@

import { LoadedConfigSelectors } from "@aws-sdk/node-config-provider";
import { Provider, RegionInfoProvider } from "@aws-sdk/types";
export interface BucketEndpointInputConfig {

@@ -18,3 +20,11 @@ /**

useDualstackEndpoint?: boolean;
/**
* Whether to override the request region with the region inferred from requested resource's ARN. Defaults to false
*/
useArnRegion?: boolean | Provider<boolean>;
}
interface PreviouslyResolved {
region: Provider<string>;
regionInfoProvider: RegionInfoProvider;
}
export interface BucketEndpointResolvedConfig {

@@ -25,3 +35,15 @@ bucketEndpoint: boolean;

useDualstackEndpoint: boolean;
useArnRegion: Provider<boolean>;
region: Provider<string>;
regionInfoProvider: RegionInfoProvider;
}
export declare function resolveBucketEndpointConfig<T>(input: T & BucketEndpointInputConfig): T & BucketEndpointResolvedConfig;
export declare function resolveBucketEndpointConfig<T>(input: T & PreviouslyResolved & BucketEndpointInputConfig): T & BucketEndpointResolvedConfig;
export declare const NODE_USE_ARN_REGION_ENV_NAME = "AWS_S3_USE_ARN_REGION";
export declare const NODE_USE_ARN_REGION_INI_NAME = "s3_use_arn_region";
/**
* Config to load useArnRegion from environment variables and shared INI files
*
* @api private
*/
export declare const NODE_USE_ARN_REGION_CONFIG_OPTIONS: LoadedConfigSelectors<boolean>;
export {};
import { __assign } from "tslib";
export function resolveBucketEndpointConfig(input) {
var _a = input.bucketEndpoint, bucketEndpoint = _a === void 0 ? false : _a, _b = input.forcePathStyle, forcePathStyle = _b === void 0 ? false : _b, _c = input.useAccelerateEndpoint, useAccelerateEndpoint = _c === void 0 ? false : _c, _d = input.useDualstackEndpoint, useDualstackEndpoint = _d === void 0 ? false : _d;
var _a = input.bucketEndpoint, bucketEndpoint = _a === void 0 ? false : _a, _b = input.forcePathStyle, forcePathStyle = _b === void 0 ? false : _b, _c = input.useAccelerateEndpoint, useAccelerateEndpoint = _c === void 0 ? false : _c, _d = input.useDualstackEndpoint, useDualstackEndpoint = _d === void 0 ? false : _d, _e = input.useArnRegion, useArnRegion = _e === void 0 ? false : _e;
return __assign(__assign({}, input), { bucketEndpoint: bucketEndpoint,
forcePathStyle: forcePathStyle,
useAccelerateEndpoint: useAccelerateEndpoint,
useDualstackEndpoint: useDualstackEndpoint });
useDualstackEndpoint: useDualstackEndpoint, useArnRegion: typeof useArnRegion === "function" ? useArnRegion : function () { return Promise.resolve(useArnRegion); } });
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQTBCQSxNQUFNLFVBQVUsMkJBQTJCLENBQUksS0FBb0M7SUFFL0UsSUFBQSxLQUlFLEtBQUssZUFKZSxFQUF0QixjQUFjLG1CQUFHLEtBQUssS0FBQSxFQUN0QixLQUdFLEtBQUssZUFIZSxFQUF0QixjQUFjLG1CQUFHLEtBQUssS0FBQSxFQUN0QixLQUVFLEtBQUssc0JBRnNCLEVBQTdCLHFCQUFxQixtQkFBRyxLQUFLLEtBQUEsRUFDN0IsS0FDRSxLQUFLLHFCQURxQixFQUE1QixvQkFBb0IsbUJBQUcsS0FBSyxLQUFBLENBQ3BCO0lBQ1YsNkJBQ0ssS0FBSyxLQUNSLGNBQWMsZ0JBQUE7UUFDZCxjQUFjLGdCQUFBO1FBQ2QscUJBQXFCLHVCQUFBO1FBQ3JCLG9CQUFvQixzQkFBQSxJQUNwQjtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcHJvdmlkZWQgZW5kcG9pbnQgYWRkcmVzc2VzIGFuIGluZGl2aWR1YWwgYnVja2V0LlxuICAgKi9cbiAgYnVja2V0RW5kcG9pbnQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0byBmb3JjZSBwYXRoIHN0eWxlIFVSTHMgZm9yIFMzIG9iamVjdHMgKGUuZy4sIGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS88YnVja2V0TmFtZT4vPGtleT4gaW5zdGVhZCBvZiBodHRwczovLzxidWNrZXROYW1lPi5zMy5hbWF6b25hd3MuY29tLzxrZXk+XG4gICAqL1xuICBmb3JjZVBhdGhTdHlsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSB0aGUgUzMgVHJhbnNmZXIgQWNjZWxlcmF0aW9uIGVuZHBvaW50IGJ5IGRlZmF1bHRcbiAgICovXG4gIHVzZUFjY2VsZXJhdGVFbmRwb2ludD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGVzIElQdjYvSVB2NCBkdWFsc3RhY2sgZW5kcG9pbnQuIFdoZW4gYSBETlMgbG9va3VwIGlzIHBlcmZvcm1lZCBvbiBhbiBlbmRwb2ludCBvZiB0aGlzIHR5cGUsIGl0IHJldHVybnMgYW4g4oCcQeKAnSByZWNvcmQgd2l0aCBhbiBJUHY0IGFkZHJlc3MgYW5kIGFuIOKAnEFBQUHigJ0gcmVjb3JkIHdpdGggYW4gSVB2NiBhZGRyZXNzLiBJbiBtb3N0IGNhc2VzIHRoZSBuZXR3b3JrIHN0YWNrIGluIHRoZSBjbGllbnQgZW52aXJvbm1lbnQgd2lsbCBhdXRvbWF0aWNhbGx5IHByZWZlciB0aGUgQUFBQSByZWNvcmQgYW5kIG1ha2UgYSBjb25uZWN0aW9uIHVzaW5nIHRoZSBJUHY2IGFkZHJlc3MuIE5vdGUsIGhvd2V2ZXIsIHRoYXQgY3VycmVudGx5IG9uIFdpbmRvd3MsIHRoZSBJUHY0IGFkZHJlc3Mgd2lsbCBiZSBwcmVmZXJyZWQuXG4gICAqL1xuICB1c2VEdWFsc3RhY2tFbmRwb2ludD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0RW5kcG9pbnRSZXNvbHZlZENvbmZpZyB7XG4gIGJ1Y2tldEVuZHBvaW50OiBib29sZWFuO1xuICBmb3JjZVBhdGhTdHlsZTogYm9vbGVhbjtcbiAgdXNlQWNjZWxlcmF0ZUVuZHBvaW50OiBib29sZWFuO1xuICB1c2VEdWFsc3RhY2tFbmRwb2ludDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVCdWNrZXRFbmRwb2ludENvbmZpZzxUPihpbnB1dDogVCAmIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcpOiBUICYgQnVja2V0RW5kcG9pbnRSZXNvbHZlZENvbmZpZyB7XG4gIGNvbnN0IHtcbiAgICBidWNrZXRFbmRwb2ludCA9IGZhbHNlLFxuICAgIGZvcmNlUGF0aFN0eWxlID0gZmFsc2UsXG4gICAgdXNlQWNjZWxlcmF0ZUVuZHBvaW50ID0gZmFsc2UsXG4gICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQgPSBmYWxzZSxcbiAgfSA9IGlucHV0O1xuICByZXR1cm4ge1xuICAgIC4uLmlucHV0LFxuICAgIGJ1Y2tldEVuZHBvaW50LFxuICAgIGZvcmNlUGF0aFN0eWxlLFxuICAgIHVzZUFjY2VsZXJhdGVFbmRwb2ludCxcbiAgICB1c2VEdWFsc3RhY2tFbmRwb2ludCxcbiAgfTtcbn1cbiJdfQ==
export var NODE_USE_ARN_REGION_ENV_NAME = "AWS_S3_USE_ARN_REGION";
export var NODE_USE_ARN_REGION_INI_NAME = "s3_use_arn_region";
/**
* Config to load useArnRegion from environment variables and shared INI files
*
* @api private
*/
export var NODE_USE_ARN_REGION_CONFIG_OPTIONS = {
environmentVariableSelector: function (env) {
if (!Object.prototype.hasOwnProperty.call(env, NODE_USE_ARN_REGION_ENV_NAME))
return undefined;
if (env[NODE_USE_ARN_REGION_ENV_NAME] === "true")
return true;
if (env[NODE_USE_ARN_REGION_ENV_NAME] === "false")
return false;
throw new Error("Cannot load env " + NODE_USE_ARN_REGION_ENV_NAME + ". Expected \"true\" or \"false\", got " + env[NODE_USE_ARN_REGION_ENV_NAME] + ".");
},
configFileSelector: function (profile) {
if (!Object.prototype.hasOwnProperty.call(profile, NODE_USE_ARN_REGION_INI_NAME))
return undefined;
if (profile[NODE_USE_ARN_REGION_INI_NAME] === "true")
return true;
if (profile[NODE_USE_ARN_REGION_INI_NAME] === "false")
return false;
throw new Error("Cannot load shared config entry " + NODE_USE_ARN_REGION_INI_NAME + ". Expected \"true\" or \"false\", got " + profile[NODE_USE_ARN_REGION_INI_NAME] + ".");
},
default: false,
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQXlDQSxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLEtBQXlEO0lBR3ZELElBQUEsS0FLRSxLQUFLLGVBTGUsRUFBdEIsY0FBYyxtQkFBRyxLQUFLLEtBQUEsRUFDdEIsS0FJRSxLQUFLLGVBSmUsRUFBdEIsY0FBYyxtQkFBRyxLQUFLLEtBQUEsRUFDdEIsS0FHRSxLQUFLLHNCQUhzQixFQUE3QixxQkFBcUIsbUJBQUcsS0FBSyxLQUFBLEVBQzdCLEtBRUUsS0FBSyxxQkFGcUIsRUFBNUIsb0JBQW9CLG1CQUFHLEtBQUssS0FBQSxFQUM1QixLQUNFLEtBQUssYUFEYSxFQUFwQixZQUFZLG1CQUFHLEtBQUssS0FBQSxDQUNaO0lBQ1YsNkJBQ0ssS0FBSyxLQUNSLGNBQWMsZ0JBQUE7UUFDZCxjQUFjLGdCQUFBO1FBQ2QscUJBQXFCLHVCQUFBO1FBQ3JCLG9CQUFvQixzQkFBQSxFQUNwQixZQUFZLEVBQUUsT0FBTyxZQUFZLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGNBQU0sT0FBQSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUE3QixDQUE2QixJQUNyRztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsSUFBTSw0QkFBNEIsR0FBRyx1QkFBdUIsQ0FBQztBQUNwRSxNQUFNLENBQUMsSUFBTSw0QkFBNEIsR0FBRyxtQkFBbUIsQ0FBQztBQUVoRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLElBQU0sa0NBQWtDLEdBQW1DO0lBQ2hGLDJCQUEyQixFQUFFLFVBQUMsR0FBc0I7UUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUMvRixJQUFJLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5RCxJQUFJLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNoRSxNQUFNLElBQUksS0FBSyxDQUNiLHFCQUFtQiw0QkFBNEIsOENBQXFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxNQUFHLENBQ3pILENBQUM7SUFDSixDQUFDO0lBQ0Qsa0JBQWtCLEVBQUUsVUFBQyxPQUFPO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDRCQUE0QixDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDbkcsSUFBSSxPQUFPLENBQUMsNEJBQTRCLENBQUMsS0FBSyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDbEUsSUFBSSxPQUFPLENBQUMsNEJBQTRCLENBQUMsS0FBSyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FDYixxQ0FBbUMsNEJBQTRCLDhDQUFxQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsTUFBRyxDQUM3SSxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sRUFBRSxLQUFLO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvYWRlZENvbmZpZ1NlbGVjdG9ycyB9IGZyb20gXCJAYXdzLXNkay9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgUHJvdmlkZXIsIFJlZ2lvbkluZm9Qcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcHJvdmlkZWQgZW5kcG9pbnQgYWRkcmVzc2VzIGFuIGluZGl2aWR1YWwgYnVja2V0LlxuICAgKi9cbiAgYnVja2V0RW5kcG9pbnQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0byBmb3JjZSBwYXRoIHN0eWxlIFVSTHMgZm9yIFMzIG9iamVjdHMgKGUuZy4sIGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS88YnVja2V0TmFtZT4vPGtleT4gaW5zdGVhZCBvZiBodHRwczovLzxidWNrZXROYW1lPi5zMy5hbWF6b25hd3MuY29tLzxrZXk+XG4gICAqL1xuICBmb3JjZVBhdGhTdHlsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSB0aGUgUzMgVHJhbnNmZXIgQWNjZWxlcmF0aW9uIGVuZHBvaW50IGJ5IGRlZmF1bHRcbiAgICovXG4gIHVzZUFjY2VsZXJhdGVFbmRwb2ludD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGVzIElQdjYvSVB2NCBkdWFsc3RhY2sgZW5kcG9pbnQuIFdoZW4gYSBETlMgbG9va3VwIGlzIHBlcmZvcm1lZCBvbiBhbiBlbmRwb2ludCBvZiB0aGlzIHR5cGUsIGl0IHJldHVybnMgYW4g4oCcQeKAnSByZWNvcmQgd2l0aCBhbiBJUHY0IGFkZHJlc3MgYW5kIGFuIOKAnEFBQUHigJ0gcmVjb3JkIHdpdGggYW4gSVB2NiBhZGRyZXNzLiBJbiBtb3N0IGNhc2VzIHRoZSBuZXR3b3JrIHN0YWNrIGluIHRoZSBjbGllbnQgZW52aXJvbm1lbnQgd2lsbCBhdXRvbWF0aWNhbGx5IHByZWZlciB0aGUgQUFBQSByZWNvcmQgYW5kIG1ha2UgYSBjb25uZWN0aW9uIHVzaW5nIHRoZSBJUHY2IGFkZHJlc3MuIE5vdGUsIGhvd2V2ZXIsIHRoYXQgY3VycmVudGx5IG9uIFdpbmRvd3MsIHRoZSBJUHY0IGFkZHJlc3Mgd2lsbCBiZSBwcmVmZXJyZWQuXG4gICAqL1xuICB1c2VEdWFsc3RhY2tFbmRwb2ludD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIG92ZXJyaWRlIHRoZSByZXF1ZXN0IHJlZ2lvbiB3aXRoIHRoZSByZWdpb24gaW5mZXJyZWQgZnJvbSByZXF1ZXN0ZWQgcmVzb3VyY2UncyBBUk4uIERlZmF1bHRzIHRvIGZhbHNlXG4gICAqL1xuICB1c2VBcm5SZWdpb24/OiBib29sZWFuIHwgUHJvdmlkZXI8Ym9vbGVhbj47XG59XG5cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICByZWdpb246IFByb3ZpZGVyPHN0cmluZz47XG4gIHJlZ2lvbkluZm9Qcm92aWRlcjogUmVnaW9uSW5mb1Byb3ZpZGVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcge1xuICBidWNrZXRFbmRwb2ludDogYm9vbGVhbjtcbiAgZm9yY2VQYXRoU3R5bGU6IGJvb2xlYW47XG4gIHVzZUFjY2VsZXJhdGVFbmRwb2ludDogYm9vbGVhbjtcbiAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGJvb2xlYW47XG4gIHVzZUFyblJlZ2lvbjogUHJvdmlkZXI8Ym9vbGVhbj47XG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcmVnaW9uSW5mb1Byb3ZpZGVyOiBSZWdpb25JbmZvUHJvdmlkZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQnVja2V0RW5kcG9pbnRDb25maWc8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgQnVja2V0RW5kcG9pbnRJbnB1dENvbmZpZ1xuKTogVCAmIEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcge1xuICBjb25zdCB7XG4gICAgYnVja2V0RW5kcG9pbnQgPSBmYWxzZSxcbiAgICBmb3JjZVBhdGhTdHlsZSA9IGZhbHNlLFxuICAgIHVzZUFjY2VsZXJhdGVFbmRwb2ludCA9IGZhbHNlLFxuICAgIHVzZUR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gICAgdXNlQXJuUmVnaW9uID0gZmFsc2UsXG4gIH0gPSBpbnB1dDtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBidWNrZXRFbmRwb2ludCxcbiAgICBmb3JjZVBhdGhTdHlsZSxcbiAgICB1c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgdXNlQXJuUmVnaW9uOiB0eXBlb2YgdXNlQXJuUmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyB1c2VBcm5SZWdpb24gOiAoKSA9PiBQcm9taXNlLnJlc29sdmUodXNlQXJuUmVnaW9uKSxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IE5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUgPSBcIkFXU19TM19VU0VfQVJOX1JFR0lPTlwiO1xuZXhwb3J0IGNvbnN0IE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUgPSBcInMzX3VzZV9hcm5fcmVnaW9uXCI7XG5cbi8qKlxuICogQ29uZmlnIHRvIGxvYWQgdXNlQXJuUmVnaW9uIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZCBzaGFyZWQgSU5JIGZpbGVzXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBOT0RFX1VTRV9BUk5fUkVHSU9OX0NPTkZJR19PUFRJT05TOiBMb2FkZWRDb25maWdTZWxlY3RvcnM8Ym9vbGVhbj4gPSB7XG4gIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudjogTm9kZUpTLlByb2Nlc3NFbnYpID0+IHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlbnYsIE5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChlbnZbTk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRV0gPT09IFwidHJ1ZVwiKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoZW52W05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUVdID09PSBcImZhbHNlXCIpIHJldHVybiBmYWxzZTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ2Fubm90IGxvYWQgZW52ICR7Tk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRX0uIEV4cGVjdGVkIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgZ290ICR7ZW52W05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUVdfS5gXG4gICAgKTtcbiAgfSxcbiAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4ge1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb2ZpbGUsIE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9maWxlW05PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUVdID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XG4gICAgaWYgKHByb2ZpbGVbTk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRV0gPT09IFwiZmFsc2VcIikgcmV0dXJuIGZhbHNlO1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBDYW5ub3QgbG9hZCBzaGFyZWQgY29uZmlnIGVudHJ5ICR7Tk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRX0uIEV4cGVjdGVkIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgZ290ICR7cHJvZmlsZVtOT0RFX1VTRV9BUk5fUkVHSU9OX0lOSV9OQU1FXX0uYFxuICAgICk7XG4gIH0sXG4gIGRlZmF1bHQ6IGZhbHNlLFxufTtcbiJdfQ==
{
"name": "@aws-sdk/middleware-bucket-endpoint",
"version": "1.0.0-gamma.5",
"version": "1.0.0-gamma.6",
"scripts": {

@@ -21,12 +21,14 @@ "prepublishOnly": "yarn build:cjs && yarn build:es",

"dependencies": {
"@aws-sdk/protocol-http": "1.0.0-gamma.5",
"@aws-sdk/types": "1.0.0-gamma.4",
"@aws-sdk/protocol-http": "1.0.0-gamma.6",
"@aws-sdk/types": "1.0.0-gamma.5",
"@aws-sdk/util-arn-parser": "1.0.0-gamma.2",
"tslib": "^1.8.0"
},
"devDependencies": {
"@aws-sdk/middleware-stack": "1.0.0-gamma.5",
"@aws-sdk/middleware-stack": "1.0.0-gamma.6",
"@aws-sdk/node-config-provider": "1.0.0-gamma.1",
"@types/jest": "^26.0.4",
"jest": "^26.1.0",
"typescript": "~3.9.3"
"typescript": "~4.0.2"
}
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc