@aws-sdk/middleware-bucket-endpoint 3.34.0 → 3.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/dist-cjs/bucketEndpointMiddleware.js +81 -0
- package/dist-cjs/bucketHostname.js +116 -0
- package/dist-cjs/bucketHostnameUtils.js +157 -0
- package/dist-cjs/configurations.js +64 -0
- package/{dist/cjs → dist-cjs}/index.js +0 -1
- package/dist-es/bucketEndpointMiddleware.js +100 -0
- package/dist-es/bucketHostname.js +118 -0
- package/dist-es/bucketHostnameUtils.js +144 -0
- package/dist-es/configurations.js +53 -0
- package/{dist/types/index.d.ts → dist-es/index.js} +0 -0
- package/{dist/types → dist-types}/bucketEndpointMiddleware.d.ts +0 -0
- package/{dist/types → dist-types}/bucketHostname.d.ts +0 -0
- package/{dist/types → dist-types}/bucketHostnameUtils.d.ts +0 -0
- package/{dist/types → dist-types}/configurations.d.ts +0 -0
- package/dist-types/index.d.ts +4 -0
- package/{dist/types → dist-types}/ts3.4/bucketEndpointMiddleware.d.ts +0 -0
- package/{dist/types → dist-types}/ts3.4/bucketHostname.d.ts +0 -0
- package/{dist/types → dist-types}/ts3.4/bucketHostnameUtils.d.ts +13 -62
- package/dist-types/ts3.4/configurations.d.ts +49 -0
- package/{dist/types → dist-types}/ts3.4/index.d.ts +0 -0
- package/package.json +15 -12
- package/dist/cjs/bucketEndpointMiddleware.js +0 -82
- package/dist/cjs/bucketHostname.js +0 -117
- package/dist/cjs/bucketHostnameUtils.js +0 -158
- package/dist/cjs/configurations.js +0 -65
- package/dist/es/bucketEndpointMiddleware.js +0 -103
- package/dist/es/bucketHostname.js +0 -123
- package/dist/es/bucketHostnameUtils.js +0 -210
- package/dist/es/configurations.js +0 -59
- package/dist/es/index.js +0 -5
- package/dist/types/ts3.4/configurations.d.ts +0 -87
- package/src/bucketEndpointMiddleware.ts +0 -101
- package/src/bucketHostname.ts +0 -223
- package/src/bucketHostnameUtils.ts +0 -272
- package/src/configurations.ts +0 -154
- package/src/index.ts +0 -15
- package/tsconfig.cjs.json +0 -9
- package/tsconfig.es.json +0 -10
- package/tsconfig.types.json +0 -9
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
|
-
import { HttpRequest } from "@aws-sdk/protocol-http";
|
|
3
|
-
import { parse as parseArn, validate as validateArn } from "@aws-sdk/util-arn-parser";
|
|
4
|
-
import { bucketHostname } from "./bucketHostname";
|
|
5
|
-
import { getPseudoRegion } from "./bucketHostnameUtils";
|
|
6
|
-
export var bucketEndpointMiddleware = function (options) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
7
|
-
var bucketName, replaceBucketInPath, request, bucketArn, clientRegion, _a, _b, partition, _c, signingRegion, useArnRegion, _d, hostname, bucketEndpoint, modifiedSigningRegion, signingService, _e, clientRegion, _f, _g, hostname, bucketEndpoint;
|
|
8
|
-
var _h;
|
|
9
|
-
return __generator(this, function (_j) {
|
|
10
|
-
switch (_j.label) {
|
|
11
|
-
case 0:
|
|
12
|
-
bucketName = args.input.Bucket;
|
|
13
|
-
replaceBucketInPath = options.bucketEndpoint;
|
|
14
|
-
request = args.request;
|
|
15
|
-
if (!HttpRequest.isInstance(request)) return [3 /*break*/, 9];
|
|
16
|
-
if (!options.bucketEndpoint) return [3 /*break*/, 1];
|
|
17
|
-
request.hostname = bucketName;
|
|
18
|
-
return [3 /*break*/, 8];
|
|
19
|
-
case 1:
|
|
20
|
-
if (!validateArn(bucketName)) return [3 /*break*/, 6];
|
|
21
|
-
bucketArn = parseArn(bucketName);
|
|
22
|
-
_a = getPseudoRegion;
|
|
23
|
-
return [4 /*yield*/, options.region()];
|
|
24
|
-
case 2:
|
|
25
|
-
clientRegion = _a.apply(void 0, [_j.sent()]);
|
|
26
|
-
return [4 /*yield*/, options.regionInfoProvider(clientRegion)];
|
|
27
|
-
case 3:
|
|
28
|
-
_b = (_j.sent()) || {}, partition = _b.partition, _c = _b.signingRegion, signingRegion = _c === void 0 ? clientRegion : _c;
|
|
29
|
-
return [4 /*yield*/, options.useArnRegion()];
|
|
30
|
-
case 4:
|
|
31
|
-
useArnRegion = _j.sent();
|
|
32
|
-
_e = bucketHostname;
|
|
33
|
-
_h = {
|
|
34
|
-
bucketName: bucketArn,
|
|
35
|
-
baseHostname: request.hostname,
|
|
36
|
-
accelerateEndpoint: options.useAccelerateEndpoint,
|
|
37
|
-
dualstackEndpoint: options.useDualstackEndpoint,
|
|
38
|
-
pathStyleEndpoint: options.forcePathStyle,
|
|
39
|
-
tlsCompatible: request.protocol === "https:",
|
|
40
|
-
useArnRegion: useArnRegion,
|
|
41
|
-
clientPartition: partition,
|
|
42
|
-
clientSigningRegion: signingRegion,
|
|
43
|
-
clientRegion: clientRegion,
|
|
44
|
-
isCustomEndpoint: options.isCustomEndpoint
|
|
45
|
-
};
|
|
46
|
-
return [4 /*yield*/, options.disableMultiregionAccessPoints()];
|
|
47
|
-
case 5:
|
|
48
|
-
_d = _e.apply(void 0, [(_h.disableMultiregionAccessPoints = _j.sent(),
|
|
49
|
-
_h)]), hostname = _d.hostname, bucketEndpoint = _d.bucketEndpoint, modifiedSigningRegion = _d.signingRegion, signingService = _d.signingService;
|
|
50
|
-
// If the request needs to use a region or service name inferred from ARN that different from client region, we
|
|
51
|
-
// need to set them in the handler context so the signer will use them
|
|
52
|
-
if (modifiedSigningRegion && modifiedSigningRegion !== signingRegion) {
|
|
53
|
-
context["signing_region"] = modifiedSigningRegion;
|
|
54
|
-
}
|
|
55
|
-
if (signingService && signingService !== "s3") {
|
|
56
|
-
context["signing_service"] = signingService;
|
|
57
|
-
}
|
|
58
|
-
request.hostname = hostname;
|
|
59
|
-
replaceBucketInPath = bucketEndpoint;
|
|
60
|
-
return [3 /*break*/, 8];
|
|
61
|
-
case 6:
|
|
62
|
-
_f = getPseudoRegion;
|
|
63
|
-
return [4 /*yield*/, options.region()];
|
|
64
|
-
case 7:
|
|
65
|
-
clientRegion = _f.apply(void 0, [_j.sent()]);
|
|
66
|
-
_g = bucketHostname({
|
|
67
|
-
bucketName: bucketName,
|
|
68
|
-
clientRegion: clientRegion,
|
|
69
|
-
baseHostname: request.hostname,
|
|
70
|
-
accelerateEndpoint: options.useAccelerateEndpoint,
|
|
71
|
-
dualstackEndpoint: options.useDualstackEndpoint,
|
|
72
|
-
pathStyleEndpoint: options.forcePathStyle,
|
|
73
|
-
tlsCompatible: request.protocol === "https:",
|
|
74
|
-
isCustomEndpoint: options.isCustomEndpoint,
|
|
75
|
-
}), hostname = _g.hostname, bucketEndpoint = _g.bucketEndpoint;
|
|
76
|
-
request.hostname = hostname;
|
|
77
|
-
replaceBucketInPath = bucketEndpoint;
|
|
78
|
-
_j.label = 8;
|
|
79
|
-
case 8:
|
|
80
|
-
if (replaceBucketInPath) {
|
|
81
|
-
request.path = request.path.replace(/^(\/)?[^\/]+/, "");
|
|
82
|
-
if (request.path === "") {
|
|
83
|
-
request.path = "/";
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
_j.label = 9;
|
|
87
|
-
case 9: return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
}); }; }; };
|
|
91
|
-
export var bucketEndpointMiddlewareOptions = {
|
|
92
|
-
tags: ["BUCKET_ENDPOINT"],
|
|
93
|
-
name: "bucketEndpointMiddleware",
|
|
94
|
-
relation: "before",
|
|
95
|
-
toMiddleware: "hostHeaderMiddleware",
|
|
96
|
-
override: true,
|
|
97
|
-
};
|
|
98
|
-
export var getBucketEndpointPlugin = function (options) { return ({
|
|
99
|
-
applyToStack: function (clientStack) {
|
|
100
|
-
clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions);
|
|
101
|
-
},
|
|
102
|
-
}); };
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1Y2tldEVuZHBvaW50TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBV3JELE9BQU8sRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLFFBQVEsSUFBSSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3hELE1BQU0sQ0FBQyxJQUFNLHdCQUF3QixHQUFHLFVBQUMsT0FBcUMsSUFBZ0MsT0FBQSxVQUc1RyxJQUErQixFQUMvQixPQUFnQyxJQUNGLE9BQUEsVUFBTyxJQUFnQzs7Ozs7O2dCQUNyRCxVQUFVLEdBQUssSUFBSSxDQUFDLEtBQTJCLE9BQXJDLENBQXNDO2dCQUM1RCxtQkFBbUIsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO2dCQUMzQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztxQkFDekIsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBL0Isd0JBQStCO3FCQUM3QixPQUFPLENBQUMsY0FBYyxFQUF0Qix3QkFBc0I7Z0JBQ3hCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDOzs7cUJBQ3JCLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBdkIsd0JBQXVCO2dCQUMxQixTQUFTLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNsQixLQUFBLGVBQWUsQ0FBQTtnQkFBQyxxQkFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUE7O2dCQUFyRCxZQUFZLEdBQUcsa0JBQWdCLFNBQXNCLEVBQUM7Z0JBQ1AscUJBQU0sT0FBTyxDQUFDLGtCQUFrQixD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SUFDekIsSUFBSSxFQUFFLDBCQUEwQjtJQUNoQyxRQUFRLEVBQUUsUUFBUTtJQUNsQixZQUFZLEVBQUUsc0JBQXNCO0lBQ3BDLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLHVCQUF1QixHQUFHLFVBQUMsT0FBcUMsSUFBMEIsT0FBQSxDQUFDO0lBQ3RHLFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7Q0FDRixDQUFDLEVBSnFHLENBSXJHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBCdWlsZEhhbmRsZXIsXG4gIEJ1aWxkSGFuZGxlckFyZ3VtZW50cyxcbiAgQnVpbGRIYW5kbGVyT3V0cHV0LFxuICBCdWlsZE1pZGRsZXdhcmUsXG4gIEhhbmRsZXJFeGVjdXRpb25Db250ZXh0LFxuICBNZXRhZGF0YUJlYXJlcixcbiAgUGx1Z2dhYmxlLFxuICBSZWxhdGl2ZU1pZGRsZXdhcmVPcHRpb25zLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlQXJuLCB2YWxpZGF0ZSBhcyB2YWxpZGF0ZUFybiB9IGZyb20gXCJAYXdzLXNkay91dGlsLWFybi1wYXJzZXJcIjtcblxuaW1wb3J0IHsgYnVja2V0SG9zdG5hbWUgfSBmcm9tIFwiLi9idWNrZXRIb3N0bmFtZVwiO1xuaW1wb3J0IHsgZ2V0UHNldWRvUmVnaW9uIH0gZnJvbSBcIi4vYnVja2V0SG9zdG5hbWVVdGlsc1wiO1xuaW1wb3J0IHsgQnVja2V0RW5kcG9pbnRSZXNvbHZlZENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5cbmV4cG9ydCBjb25zdCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmUgPSAob3B0aW9uczogQnVja2V0RW5kcG9pbnRSZXNvbHZlZENvbmZpZyk6IEJ1aWxkTWlkZGxld2FyZTxhbnksIGFueT4gPT4gPFxuICBPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlclxuPihcbiAgbmV4dDogQnVpbGRIYW5kbGVyPGFueSwgT3V0cHV0PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IEJ1aWxkSGFuZGxlcjxhbnksIE91dHB1dD4gPT4gYXN5bmMgKGFyZ3M6IEJ1aWxkSGFuZGxlckFyZ3VtZW50czxhbnk+KTogUHJvbWlzZTxCdWlsZEhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICBjb25zdCB7IEJ1Y2tldDogYnVja2V0TmFtZSB9ID0gYXJncy5pbnB1dCBhcyB7IEJ1Y2tldDogc3RyaW5nIH07XG4gIGxldCByZXBsYWNlQnVja2V0SW5QYXRoID0gb3B0aW9ucy5idWNrZXRFbmRwb2ludDtcbiAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgaWYgKEh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UocmVxdWVzdCkpIHtcbiAgICBpZiAob3B0aW9ucy5idWNrZXRFbmRwb2ludCkge1xuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGJ1Y2tldE5hbWU7XG4gICAgfSBlbHNlIGlmICh2YWxpZGF0ZUFybihidWNrZXROYW1lKSkge1xuICAgICAgY29uc3QgYnVja2V0QXJuID0gcGFyc2VBcm4oYnVja2V0TmFtZSk7XG4gICAgICBjb25zdCBjbGllbnRSZWdpb24gPSBnZXRQc2V1ZG9SZWdpb24oYXdhaXQgb3B0aW9ucy5yZWdpb24oKSk7XG4gICAgICBjb25zdCB7IHBhcnRpdGlvbiwgc2lnbmluZ1JlZ2lvbiA9IGNsaWVudFJlZ2lvbiB9ID0gKGF3YWl0IG9wdGlvbnMucmVnaW9uSW5mb1Byb3ZpZGVyKGNsaWVudFJlZ2lvbikpIHx8IHt9O1xuICAgICAgY29uc3QgdXNlQXJuUmVnaW9uID0gYXdhaXQgb3B0aW9ucy51c2VBcm5SZWdpb24oKTtcbiAgICAgIGNvbnN0IHsgaG9zdG5hbWUsIGJ1Y2tldEVuZHBvaW50LCBzaWduaW5nUmVnaW9uOiBtb2RpZmllZFNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH0gPSBidWNrZXRIb3N0bmFtZSh7XG4gICAgICAgIGJ1Y2tldE5hbWU6IGJ1Y2tldEFybixcbiAgICAgICAgYmFzZUhvc3RuYW1lOiByZXF1ZXN0Lmhvc3RuYW1lLFxuICAgICAgICBhY2NlbGVyYXRlRW5kcG9pbnQ6IG9wdGlvbnMudXNlQWNjZWxlcmF0ZUVuZHBvaW50LFxuICAgICAgICBkdWFsc3RhY2tFbmRwb2ludDogb3B0aW9ucy51c2VEdWFsc3RhY2tFbmRwb2ludCxcbiAgICAgICAgcGF0aFN0eWxlRW5kcG9pbnQ6IG9wdGlvbnMuZm9yY2VQYXRoU3R5bGUsXG4gICAgICAgIHRsc0NvbXBhdGlibGU6IHJlcXVlc3QucHJvdG9jb2wgPT09IFwiaHR0cHM6XCIsXG4gICAgICAgIHVzZUFyblJlZ2lvbixcbiAgICAgICAgY2xpZW50UGFydGl0aW9uOiBwYXJ0aXRpb24sXG4gICAgICAgIGNsaWVudFNpZ25pbmdSZWdpb246IHNpZ25pbmdSZWdpb24sXG4gICAgICAgIGNsaWVudFJlZ2lvbjogY2xpZW50UmVnaW9uLFxuICAgICAgICBpc0N1c3RvbUVuZHBvaW50OiBvcHRpb25zLmlzQ3VzdG9tRW5kcG9pbnQsXG4gICAgICAgIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50czogYXdhaXQgb3B0aW9ucy5kaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMoKSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBJZiB0aGUgcmVxdWVzdCBuZWVkcyB0byB1c2UgYSByZWdpb24gb3Igc2VydmljZSBuYW1lIGluZmVycmVkIGZyb20gQVJOIHRoYXQgZGlmZmVyZW50IGZyb20gY2xpZW50IHJlZ2lvbiwgd2VcbiAgICAgIC8vIG5lZWQgdG8gc2V0IHRoZW0gaW4gdGhlIGhhbmRsZXIgY29udGV4dCBzbyB0aGUgc2lnbmVyIHdpbGwgdXNlIHRoZW1cbiAgICAgIGlmIChtb2RpZmllZFNpZ25pbmdSZWdpb24gJiYgbW9kaWZpZWRTaWduaW5nUmVnaW9uICE9PSBzaWduaW5nUmVnaW9uKSB7XG4gICAgICAgIGNvbnRleHRbXCJzaWduaW5nX3JlZ2lvblwiXSA9IG1vZGlmaWVkU2lnbmluZ1JlZ2lvbjtcbiAgICAgIH1cbiAgICAgIGlmIChzaWduaW5nU2VydmljZSAmJiBzaWduaW5nU2VydmljZSAhPT0gXCJzM1wiKSB7XG4gICAgICAgIGNvbnRleHRbXCJzaWduaW5nX3NlcnZpY2VcIl0gPSBzaWduaW5nU2VydmljZTtcbiAgICAgIH1cblxuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IGJ1Y2tldEVuZHBvaW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjbGllbnRSZWdpb24gPSBnZXRQc2V1ZG9SZWdpb24oYXdhaXQgb3B0aW9ucy5yZWdpb24oKSk7XG4gICAgICBjb25zdCB7IGhvc3RuYW1lLCBidWNrZXRFbmRwb2ludCB9ID0gYnVja2V0SG9zdG5hbWUoe1xuICAgICAgICBidWNrZXROYW1lLFxuICAgICAgICBjbGllbnRSZWdpb24sXG4gICAgICAgIGJhc2VIb3N0bmFtZTogcmVxdWVzdC5ob3N0bmFtZSxcbiAgICAgICAgYWNjZWxlcmF0ZUVuZHBvaW50OiBvcHRpb25zLnVzZUFjY2VsZXJhdGVFbmRwb2ludCxcbiAgICAgICAgZHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICAgIHBhdGhTdHlsZUVuZHBvaW50OiBvcHRpb25zLmZvcmNlUGF0aFN0eWxlLFxuICAgICAgICB0bHNDb21wYXRpYmxlOiByZXF1ZXN0LnByb3RvY29sID09PSBcImh0dHBzOlwiLFxuICAgICAgICBpc0N1c3RvbUVuZHBvaW50OiBvcHRpb25zLmlzQ3VzdG9tRW5kcG9pbnQsXG4gICAgICB9KTtcblxuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IGJ1Y2tldEVuZHBvaW50O1xuICAgIH1cblxuICAgIGlmIChyZXBsYWNlQnVja2V0SW5QYXRoKSB7XG4gICAgICByZXF1ZXN0LnBhdGggPSByZXF1ZXN0LnBhdGgucmVwbGFjZSgvXihcXC8pP1teXFwvXSsvLCBcIlwiKTtcbiAgICAgIGlmIChyZXF1ZXN0LnBhdGggPT09IFwiXCIpIHtcbiAgICAgICAgcmVxdWVzdC5wYXRoID0gXCIvXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5leHQoeyAuLi5hcmdzLCByZXF1ZXN0IH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnM6IFJlbGF0aXZlTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gIHRhZ3M6IFtcIkJVQ0tFVF9FTkRQT0lOVFwiXSxcbiAgbmFtZTogXCJidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVcIixcbiAgcmVsYXRpb246IFwiYmVmb3JlXCIsXG4gIHRvTWlkZGxld2FyZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCdWNrZXRFbmRwb2ludFBsdWdpbiA9IChvcHRpb25zOiBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlKG9wdGlvbnMpLCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { __assign, __read } from "tslib";
|
|
2
|
-
import { DOT_PATTERN, getArnResources, getPseudoRegion, getSuffix, getSuffixForArnEndpoint, isBucketNameOptions, isDnsCompatibleBucketName, isFipsRegion, validateAccountId, validateArnEndpointOptions, validateCustomEndpoint, validateDNSHostLabel, validateMrapAlias, validateNoDualstack, validateNoFIPS, validateOutpostService, validatePartition, validateRegion, validateRegionalClient, validateS3Service, validateService, } from "./bucketHostnameUtils";
|
|
3
|
-
export var bucketHostname = function (options) {
|
|
4
|
-
validateCustomEndpoint(options);
|
|
5
|
-
return isBucketNameOptions(options)
|
|
6
|
-
? // Construct endpoint when bucketName is a string referring to a bucket name
|
|
7
|
-
getEndpointFromBucketName(options)
|
|
8
|
-
: // Construct endpoint when bucketName is an ARN referring to an S3 resource like Access Point
|
|
9
|
-
getEndpointFromArn(options);
|
|
10
|
-
};
|
|
11
|
-
var getEndpointFromBucketName = function (_a) {
|
|
12
|
-
var _b = _a.accelerateEndpoint, accelerateEndpoint = _b === void 0 ? false : _b, region = _a.clientRegion, 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, _f = _a.isCustomEndpoint, isCustomEndpoint = _f === void 0 ? false : _f;
|
|
13
|
-
var _g = __read(isCustomEndpoint ? [region, baseHostname] : getSuffix(baseHostname), 2), clientRegion = _g[0], hostnameSuffix = _g[1];
|
|
14
|
-
if (pathStyleEndpoint || !isDnsCompatibleBucketName(bucketName) || (tlsCompatible && DOT_PATTERN.test(bucketName))) {
|
|
15
|
-
return {
|
|
16
|
-
bucketEndpoint: false,
|
|
17
|
-
hostname: dualstackEndpoint ? "s3.dualstack." + clientRegion + "." + hostnameSuffix : baseHostname,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
if (accelerateEndpoint) {
|
|
21
|
-
baseHostname = "s3-accelerate" + (dualstackEndpoint ? ".dualstack" : "") + "." + hostnameSuffix;
|
|
22
|
-
}
|
|
23
|
-
else if (dualstackEndpoint) {
|
|
24
|
-
baseHostname = "s3.dualstack." + clientRegion + "." + hostnameSuffix;
|
|
25
|
-
}
|
|
26
|
-
return {
|
|
27
|
-
bucketEndpoint: true,
|
|
28
|
-
hostname: bucketName + "." + baseHostname,
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
var getEndpointFromArn = function (options) {
|
|
32
|
-
var isCustomEndpoint = options.isCustomEndpoint, baseHostname = options.baseHostname, clientRegion = options.clientRegion;
|
|
33
|
-
var hostnameSuffix = isCustomEndpoint ? baseHostname : getSuffixForArnEndpoint(baseHostname)[1];
|
|
34
|
-
var pathStyleEndpoint = options.pathStyleEndpoint, _a = options.accelerateEndpoint, accelerateEndpoint = _a === void 0 ? false : _a, _b = options.tlsCompatible, tlsCompatible = _b === void 0 ? true : _b, bucketName = options.bucketName, _c = options.clientPartition, clientPartition = _c === void 0 ? "aws" : _c;
|
|
35
|
-
validateArnEndpointOptions({ pathStyleEndpoint: pathStyleEndpoint, accelerateEndpoint: accelerateEndpoint, tlsCompatible: tlsCompatible });
|
|
36
|
-
// Validate and parse the ARN supplied as a bucket name
|
|
37
|
-
var service = bucketName.service, partition = bucketName.partition, accountId = bucketName.accountId, region = bucketName.region, resource = bucketName.resource;
|
|
38
|
-
validateService(service);
|
|
39
|
-
validatePartition(partition, { clientPartition: clientPartition });
|
|
40
|
-
validateAccountId(accountId);
|
|
41
|
-
var _d = getArnResources(resource), accesspointName = _d.accesspointName, outpostId = _d.outpostId;
|
|
42
|
-
if (service === "s3-object-lambda") {
|
|
43
|
-
return getEndpointFromObjectLambdaArn(__assign(__assign({}, options), { tlsCompatible: tlsCompatible, bucketName: bucketName, accesspointName: accesspointName, hostnameSuffix: hostnameSuffix }));
|
|
44
|
-
}
|
|
45
|
-
if (region === "") {
|
|
46
|
-
return getEndpointFromMRAPArn(__assign(__assign({}, options), { clientRegion: clientRegion, mrapAlias: accesspointName, hostnameSuffix: hostnameSuffix }));
|
|
47
|
-
}
|
|
48
|
-
if (outpostId) {
|
|
49
|
-
return getEndpointFromOutpostArn(__assign(__assign({}, options), { clientRegion: clientRegion, outpostId: outpostId, accesspointName: accesspointName, hostnameSuffix: hostnameSuffix }));
|
|
50
|
-
}
|
|
51
|
-
return getEndpointFromAccessPointArn(__assign(__assign({}, options), { clientRegion: clientRegion, accesspointName: accesspointName, hostnameSuffix: hostnameSuffix }));
|
|
52
|
-
};
|
|
53
|
-
var getEndpointFromObjectLambdaArn = function (_a) {
|
|
54
|
-
var _b = _a.dualstackEndpoint, dualstackEndpoint = _b === void 0 ? false : _b, _c = _a.tlsCompatible, tlsCompatible = _c === void 0 ? true : _c, useArnRegion = _a.useArnRegion, clientRegion = _a.clientRegion, _d = _a.clientSigningRegion, clientSigningRegion = _d === void 0 ? clientRegion : _d, accesspointName = _a.accesspointName, bucketName = _a.bucketName, hostnameSuffix = _a.hostnameSuffix;
|
|
55
|
-
var accountId = bucketName.accountId, region = bucketName.region, service = bucketName.service;
|
|
56
|
-
validateRegionalClient(clientRegion);
|
|
57
|
-
validateRegion(region, { useArnRegion: useArnRegion, clientRegion: clientRegion, clientSigningRegion: clientSigningRegion, allowFipsRegion: true });
|
|
58
|
-
validateNoDualstack(dualstackEndpoint);
|
|
59
|
-
var DNSHostLabel = accesspointName + "-" + accountId;
|
|
60
|
-
validateDNSHostLabel(DNSHostLabel, { tlsCompatible: tlsCompatible });
|
|
61
|
-
var endpointRegion = useArnRegion ? region : clientRegion;
|
|
62
|
-
var signingRegion = useArnRegion ? region : clientSigningRegion;
|
|
63
|
-
return {
|
|
64
|
-
bucketEndpoint: true,
|
|
65
|
-
hostname: DNSHostLabel + "." + service + (isFipsRegion(clientRegion) ? "-fips" : "") + "." + getPseudoRegion(endpointRegion) + "." + hostnameSuffix,
|
|
66
|
-
signingRegion: signingRegion,
|
|
67
|
-
signingService: service,
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
var getEndpointFromMRAPArn = function (_a) {
|
|
71
|
-
var disableMultiregionAccessPoints = _a.disableMultiregionAccessPoints, _b = _a.dualstackEndpoint, dualstackEndpoint = _b === void 0 ? false : _b, isCustomEndpoint = _a.isCustomEndpoint, mrapAlias = _a.mrapAlias, hostnameSuffix = _a.hostnameSuffix;
|
|
72
|
-
// If this is a multi-regional access point, and not explicitly opted out.
|
|
73
|
-
if (disableMultiregionAccessPoints === true) {
|
|
74
|
-
throw new Error("SDK is attempting to use a MRAP ARN. Please enable to feature.");
|
|
75
|
-
}
|
|
76
|
-
validateMrapAlias(mrapAlias);
|
|
77
|
-
validateNoDualstack(dualstackEndpoint);
|
|
78
|
-
return {
|
|
79
|
-
bucketEndpoint: true,
|
|
80
|
-
hostname: "" + mrapAlias + (isCustomEndpoint ? "" : ".accesspoint.s3-global") + "." + hostnameSuffix,
|
|
81
|
-
signingRegion: "*",
|
|
82
|
-
};
|
|
83
|
-
};
|
|
84
|
-
var getEndpointFromOutpostArn = function (_a) {
|
|
85
|
-
var useArnRegion = _a.useArnRegion, clientRegion = _a.clientRegion, _b = _a.clientSigningRegion, clientSigningRegion = _b === void 0 ? clientRegion : _b, bucketName = _a.bucketName, outpostId = _a.outpostId, _c = _a.dualstackEndpoint, dualstackEndpoint = _c === void 0 ? false : _c, _d = _a.tlsCompatible, tlsCompatible = _d === void 0 ? true : _d, accesspointName = _a.accesspointName, isCustomEndpoint = _a.isCustomEndpoint, hostnameSuffix = _a.hostnameSuffix;
|
|
86
|
-
// if this is an Outpost ARN
|
|
87
|
-
validateRegionalClient(clientRegion);
|
|
88
|
-
validateRegion(bucketName.region, { useArnRegion: useArnRegion, clientRegion: clientRegion, clientSigningRegion: clientSigningRegion });
|
|
89
|
-
var DNSHostLabel = accesspointName + "-" + bucketName.accountId;
|
|
90
|
-
validateDNSHostLabel(DNSHostLabel, { tlsCompatible: tlsCompatible });
|
|
91
|
-
var endpointRegion = useArnRegion ? bucketName.region : clientRegion;
|
|
92
|
-
var signingRegion = useArnRegion ? bucketName.region : clientSigningRegion;
|
|
93
|
-
validateOutpostService(bucketName.service);
|
|
94
|
-
validateDNSHostLabel(outpostId, { tlsCompatible: tlsCompatible });
|
|
95
|
-
validateNoDualstack(dualstackEndpoint);
|
|
96
|
-
validateNoFIPS(endpointRegion);
|
|
97
|
-
var hostnamePrefix = DNSHostLabel + "." + outpostId;
|
|
98
|
-
return {
|
|
99
|
-
bucketEndpoint: true,
|
|
100
|
-
hostname: "" + hostnamePrefix + (isCustomEndpoint ? "" : ".s3-outposts." + endpointRegion) + "." + hostnameSuffix,
|
|
101
|
-
signingRegion: signingRegion,
|
|
102
|
-
signingService: "s3-outposts",
|
|
103
|
-
};
|
|
104
|
-
};
|
|
105
|
-
var getEndpointFromAccessPointArn = function (_a) {
|
|
106
|
-
var useArnRegion = _a.useArnRegion, clientRegion = _a.clientRegion, _b = _a.clientSigningRegion, clientSigningRegion = _b === void 0 ? clientRegion : _b, bucketName = _a.bucketName, _c = _a.dualstackEndpoint, dualstackEndpoint = _c === void 0 ? false : _c, _d = _a.tlsCompatible, tlsCompatible = _d === void 0 ? true : _d, accesspointName = _a.accesspointName, isCustomEndpoint = _a.isCustomEndpoint, hostnameSuffix = _a.hostnameSuffix;
|
|
107
|
-
// construct endpoint from Accesspoint ARN
|
|
108
|
-
validateRegionalClient(clientRegion);
|
|
109
|
-
validateRegion(bucketName.region, { useArnRegion: useArnRegion, clientRegion: clientRegion, clientSigningRegion: clientSigningRegion, allowFipsRegion: true });
|
|
110
|
-
var hostnamePrefix = accesspointName + "-" + bucketName.accountId;
|
|
111
|
-
validateDNSHostLabel(hostnamePrefix, { tlsCompatible: tlsCompatible });
|
|
112
|
-
var endpointRegion = useArnRegion ? bucketName.region : clientRegion;
|
|
113
|
-
var signingRegion = useArnRegion ? bucketName.region : clientSigningRegion;
|
|
114
|
-
validateS3Service(bucketName.service);
|
|
115
|
-
return {
|
|
116
|
-
bucketEndpoint: true,
|
|
117
|
-
hostname: "" + hostnamePrefix + (isCustomEndpoint
|
|
118
|
-
? ""
|
|
119
|
-
: ".s3-accesspoint" + (isFipsRegion(clientRegion) ? "-fips" : "") + (dualstackEndpoint ? ".dualstack" : "") + "." + getPseudoRegion(endpointRegion)) + "." + hostnameSuffix,
|
|
120
|
-
signingRegion: signingRegion,
|
|
121
|
-
};
|
|
122
|
-
};
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVja2V0SG9zdG5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFHTCxXQUFXLEVBQ1gsZUFBZSxFQUNmLGVBQWUsRUFDZixTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsWUFBWSxFQUNaLGlCQUFpQixFQUNqQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQztBQVMvQixNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsVUFBQyxPQUFpRDtJQUM5RSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxPQUFPLG1CQUFtQixDQUFDLE9BQU8sQ0FBQztRQUNqQyxDQUFDLENBQUMsNEVBQTRFO1lBQzVFLHlCQUF5QixDQUFDLE9BQU8sQ0FBQztRQUNwQyxDQUFDLENBQUMsNkZBQTZGO1lBQzdGLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUVGLElBQU0seUJBQXlCLEdBQUcsVUFBQyxFQVNaO1FBUnJCLDBCQUEwQixFQUExQixrQkFBa0IsbUJBQUcsS0FBSyxLQUFBLEVBQ1osTUFBTSxrQkFBQSxFQUNwQixZQUFZLGtCQUFBLEVBQ1osVUFBVSxnQkFBQSxFQUNWLHlCQUF5QixFQUF6QixpQkFBaUIsbUJBQUcsS0FBSyxLQUFBLEVBQ3pCLHlCQUF5QixFQUF6QixpQkFBaUIsbUJBQUcsS0FBSyxLQUFBLEVBQ3pCLHFCQUFvQixFQUFwQixhQUFhLG1CQUFHLElBQUksS0FBQSxFQUNwQix3QkFBd0IsRUFBeEIs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LENBQUMsQ0FBQyxFQUFFO1lBQ0osQ0FBQyxDQUFDLHFCQUFrQixZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUN6RCxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQ25DLGVBQWUsQ0FBQyxjQUFjLENBQUcsVUFDdkMsY0FBZ0I7UUFDcEIsYUFBYSxlQUFBO0tBQ2QsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFSTiB9IGZyb20gXCJAYXdzLXNkay91dGlsLWFybi1wYXJzZXJcIjtcblxuaW1wb3J0IHtcbiAgQXJuSG9zdG5hbWVQYXJhbXMsXG4gIEJ1Y2tldEhvc3RuYW1lUGFyYW1zLFxuICBET1RfUEFUVEVSTixcbiAgZ2V0QXJuUmVzb3VyY2VzLFxuICBnZXRQc2V1ZG9SZWdpb24sXG4gIGdldFN1ZmZpeCxcbiAgZ2V0U3VmZml4Rm9yQXJuRW5kcG9pbnQsXG4gIGlzQnVja2V0TmFtZU9wdGlvbnMsXG4gIGlzRG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUsXG4gIGlzRmlwc1JlZ2lvbixcbiAgdmFsaWRhdGVBY2NvdW50SWQsXG4gIHZhbGlkYXRlQXJuRW5kcG9pbnRPcHRpb25zLFxuICB2YWxpZGF0ZUN1c3RvbUVuZHBvaW50LFxuICB2YWxpZGF0ZUROU0hvc3RMYWJlbCxcbiAgdmFsaWRhdGVNcmFwQWxpYXMsXG4gIHZhbGlkYXRlTm9EdWFsc3RhY2ssXG4gIHZhbGlkYXRlTm9GSVBTLFxuICB2YWxpZGF0ZU91dHBvc3RTZXJ2aWNlLFxuICB2YWxpZGF0ZVBhcnRpdGlvbixcbiAgdmFsaWRhdGVSZWdpb24sXG4gIHZhbGlkYXRlUmVnaW9uYWxDbGllbnQsXG4gIHZhbGlkYXRlUzNTZXJ2aWNlLFxuICB2YWxpZGF0ZVNlcnZpY2UsXG59IGZyb20gXCIuL2J1Y2tldEhvc3RuYW1lVXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRIb3N0bmFtZSB7XG4gIGhvc3RuYW1lOiBzdHJpbmc7XG4gIGJ1Y2tldEVuZHBvaW50OiBib29sZWFuO1xuICBzaWduaW5nUmVnaW9uPzogc3RyaW5nO1xuICBzaWduaW5nU2VydmljZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGJ1Y2tldEhvc3RuYW1lID0gKG9wdGlvbnM6IEJ1Y2tldEhvc3RuYW1lUGFyYW1zIHwgQXJuSG9zdG5hbWVQYXJhbXMpOiBCdWNrZXRIb3N0bmFtZSA9PiB7XG4gIHZhbGlkYXRlQ3VzdG9tRW5kcG9pbnQob3B0aW9ucyk7XG4gIHJldHVybiBpc0J1Y2tldE5hbWVPcHRpb25zKG9wdGlvbnMpXG4gICAgPyAvLyBDb25zdHJ1Y3QgZW5kcG9pbnQgd2hlbiBidWNrZXROYW1lIGlzIGEgc3RyaW5nIHJlZmVycmluZyB0byBhIGJ1Y2tldCBuYW1lXG4gICAgICBnZXRFbmRwb2ludEZyb21CdWNrZXROYW1lKG9wdGlvbnMpXG4gICAgOiAvLyBDb25zdHJ1Y3QgZW5kcG9pbnQgd2hlbiBidWNrZXROYW1lIGlzIGFuIEFSTiByZWZlcnJpbmcgdG8gYW4gUzMgcmVzb3VyY2UgbGlrZSBBY2Nlc3MgUG9pbnRcbiAgICAgIGdldEVuZHBvaW50RnJvbUFybihvcHRpb25zKTtcbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbUJ1Y2tldE5hbWUgPSAoe1xuICBhY2NlbGVyYXRlRW5kcG9pbnQgPSBmYWxzZSxcbiAgY2xpZW50UmVnaW9uOiByZWdpb24sXG4gIGJhc2VIb3N0bmFtZSxcbiAgYnVja2V0TmFtZSxcbiAgZHVhbHN0YWNrRW5kcG9pbnQgPSBmYWxzZSxcbiAgcGF0aFN0eWxlRW5kcG9pbnQgPSBmYWxzZSxcbiAgdGxzQ29tcGF0aWJsZSA9IHRydWUsXG4gIGlzQ3VzdG9tRW5kcG9pbnQgPSBmYWxzZSxcbn06IEJ1Y2tldEhvc3RuYW1lUGFyYW1zKTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICBjb25zdCBbY2xpZW50UmVnaW9uLCBob3N0bmFtZVN1ZmZpeF0gPSBpc0N1c3RvbUVuZHBvaW50ID8gW3JlZ2lvbiwgYmFzZUhvc3RuYW1lXSA6IGdldFN1ZmZpeChiYXNlSG9zdG5hbWUpO1xuICBpZiAocGF0aFN0eWxlRW5kcG9pbnQgfHwgIWlzRG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUoYnVja2V0TmFtZSkgfHwgKHRsc0NvbXBhdGlibGUgJiYgRE9UX1BBVFRFUk4udGVzdChidWNrZXROYW1lKSkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYnVja2V0RW5kcG9pbnQ6IGZhbHNlLFxuICAgICAgaG9zdG5hbWU6IGR1YWxzdGFja0VuZHBvaW50ID8gYHMzLmR1YWxzdGFjay4ke2NsaWVudFJlZ2lvbn0uJHtob3N0bmFtZVN1ZmZpeH1gIDogYmFzZUhvc3RuYW1lLFxuICAgIH07XG4gIH1cblxuICBpZiAoYWNjZWxlcmF0ZUVuZHBvaW50KSB7XG4gICAgYmFzZUhvc3RuYW1lID0gYHMzLWFjY2VsZXJhdGUke2R1YWxzdGFja0VuZHBvaW50ID8gXCIuZHVhbHN0YWNrXCIgOiBcIlwifS4ke2hvc3RuYW1lU3VmZml4fWA7XG4gIH0gZWxzZSBpZiAoZHVhbHN0YWNrRW5kcG9pbnQpIHtcbiAgICBiYXNlSG9zdG5hbWUgPSBgczMuZHVhbHN0YWNrLiR7Y2xpZW50UmVnaW9ufS4ke2hvc3RuYW1lU3VmZml4fWA7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgIGhvc3RuYW1lOiBgJHtidWNrZXROYW1lfS4ke2Jhc2VIb3N0bmFtZX1gLFxuICB9O1xufTtcblxuY29uc3QgZ2V0RW5kcG9pbnRGcm9tQXJuID0gKG9wdGlvbnM6IEFybkhvc3RuYW1lUGFyYW1zKTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICBjb25zdCB7IGlzQ3VzdG9tRW5kcG9pbnQsIGJhc2VIb3N0bmFtZSwgY2xpZW50UmVnaW9uIH0gPSBvcHRpb25zO1xuICBjb25zdCBob3N0bmFtZVN1ZmZpeCA9IGlzQ3VzdG9tRW5kcG9pbnQgPyBiYXNlSG9zdG5hbWUgOiBnZXRTdWZmaXhGb3JBcm5FbmRwb2ludChiYXNlSG9zdG5hbWUpWzFdO1xuXG4gIGNvbnN0IHtcbiAgICBwYXRoU3R5bGVFbmRwb2ludCxcbiAgICBhY2NlbGVyYXRlRW5kcG9pbnQgPSBmYWxzZSxcbiAgICB0bHNDb21wYXRpYmxlID0gdHJ1ZSxcbiAgICBidWNrZXROYW1lLFxuICAgIGNsaWVudFBhcnRpdGlvbiA9IFwiYXdzXCIsXG4gIH0gPSBvcHRpb25zO1xuXG4gIHZhbGlkYXRlQXJuRW5kcG9pbnRPcHRpb25zKHsgcGF0aFN0eWxlRW5kcG9pbnQsIGFjY2VsZXJhdGVFbmRwb2ludCwgdGxzQ29tcGF0aWJsZSB9KTtcblxuICAvLyBWYWxpZGF0ZSBhbmQgcGFyc2UgdGhlIEFSTiBzdXBwbGllZCBhcyBhIGJ1Y2tldCBuYW1lXG4gIGNvbnN0IHsgc2VydmljZSwgcGFydGl0aW9uLCBhY2NvdW50SWQsIHJlZ2lvbiwgcmVzb3VyY2UgfSA9IGJ1Y2tldE5hbWU7XG4gIHZhbGlkYXRlU2VydmljZShzZXJ2aWNlKTtcbiAgdmFsaWRhdGVQYXJ0aXRpb24ocGFydGl0aW9uLCB7IGNsaWVudFBhcnRpdGlvbiB9KTtcbiAgdmFsaWRhdGVBY2NvdW50SWQoYWNjb3VudElkKTtcbiAgY29uc3QgeyBhY2Nlc3Nwb2ludE5hbWUsIG91dHBvc3RJZCB9ID0gZ2V0QXJuUmVzb3VyY2VzKHJlc291cmNlKTtcbiAgaWYgKHNlcnZpY2UgPT09IFwiczMtb2JqZWN0LWxhbWJkYVwiKSB7XG4gICAgcmV0dXJuIGdldEVuZHBvaW50RnJvbU9iamVjdExhbWJkYUFybih7IC4uLm9wdGlvbnMsIHRsc0NvbXBhdGlibGUsIGJ1Y2tldE5hbWUsIGFjY2Vzc3BvaW50TmFtZSwgaG9zdG5hbWVTdWZmaXggfSk7XG4gIH1cbiAgaWYgKHJlZ2lvbiA9PT0gXCJcIikge1xuICAgIHJldHVybiBnZXRFbmRwb2ludEZyb21NUkFQQXJuKHsgLi4ub3B0aW9ucywgY2xpZW50UmVnaW9uLCBtcmFwQWxpYXM6IGFjY2Vzc3BvaW50TmFtZSwgaG9zdG5hbWVTdWZmaXggfSk7XG4gIH1cbiAgaWYgKG91dHBvc3RJZCkge1xuICAgIHJldHVybiBnZXRFbmRwb2ludEZyb21PdXRwb3N0QXJuKHsgLi4ub3B0aW9ucywgY2xpZW50UmVnaW9uLCBvdXRwb3N0SWQsIGFjY2Vzc3BvaW50TmFtZSwgaG9zdG5hbWVTdWZmaXggfSk7XG4gIH1cbiAgcmV0dXJuIGdldEVuZHBvaW50RnJvbUFjY2Vzc1BvaW50QXJuKHsgLi4ub3B0aW9ucywgY2xpZW50UmVnaW9uLCBhY2Nlc3Nwb2ludE5hbWUsIGhvc3RuYW1lU3VmZml4IH0pO1xufTtcblxuY29uc3QgZ2V0RW5kcG9pbnRGcm9tT2JqZWN0TGFtYmRhQXJuID0gKHtcbiAgZHVhbHN0YWNrRW5kcG9pbnQgPSBmYWxzZSxcbiAgdGxzQ29tcGF0aWJsZSA9IHRydWUsXG4gIHVzZUFyblJlZ2lvbixcbiAgY2xpZW50UmVnaW9uLFxuICBjbGllbnRTaWduaW5nUmVnaW9uID0gY2xpZW50UmVnaW9uLFxuICBhY2Nlc3Nwb2ludE5hbWUsXG4gIGJ1Y2tldE5hbWUsXG4gIGhvc3RuYW1lU3VmZml4LFxufTogQXJuSG9zdG5hbWVQYXJhbXMgJiB7XG4gIGFjY2Vzc3BvaW50TmFtZTogc3RyaW5nO1xuICBidWNrZXROYW1lOiBBUk47XG4gIGhvc3RuYW1lU3VmZml4OiBzdHJpbmc7XG59KTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICBjb25zdCB7IGFjY291bnRJZCwgcmVnaW9uLCBzZXJ2aWNlIH0gPSBidWNrZXROYW1lO1xuICB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50KGNsaWVudFJlZ2lvbik7XG4gIHZhbGlkYXRlUmVnaW9uKHJlZ2lvbiwgeyB1c2VBcm5SZWdpb24sIGNsaWVudFJlZ2lvbiwgY2xpZW50U2lnbmluZ1JlZ2lvbiwgYWxsb3dGaXBzUmVnaW9uOiB0cnVlIH0pO1xuICB2YWxpZGF0ZU5vRHVhbHN0YWNrKGR1YWxzdGFja0VuZHBvaW50KTtcbiAgY29uc3QgRE5TSG9zdExhYmVsID0gYCR7YWNjZXNzcG9pbnROYW1lfS0ke2FjY291bnRJZH1gO1xuICB2YWxpZGF0ZUROU0hvc3RMYWJlbChETlNIb3N0TGFiZWwsIHsgdGxzQ29tcGF0aWJsZSB9KTtcblxuICBjb25zdCBlbmRwb2ludFJlZ2lvbiA9IHVzZUFyblJlZ2lvbiA/IHJlZ2lvbiA6IGNsaWVudFJlZ2lvbjtcbiAgY29uc3Qgc2lnbmluZ1JlZ2lvbiA9IHVzZUFyblJlZ2lvbiA/IHJlZ2lvbiA6IGNsaWVudFNpZ25pbmdSZWdpb247XG5cbiAgcmV0dXJuIHtcbiAgICBidWNrZXRFbmRwb2ludDogdHJ1ZSxcbiAgICBob3N0bmFtZTogYCR7RE5TSG9zdExhYmVsfS4ke3NlcnZpY2V9JHtpc0ZpcHNSZWdpb24oY2xpZW50UmVnaW9uKSA/IFwiLWZpcHNcIiA6IFwiXCJ9LiR7Z2V0UHNldWRvUmVnaW9uKFxuICAgICAgZW5kcG9pbnRSZWdpb25cbiAgICApfS4ke2hvc3RuYW1lU3VmZml4fWAsXG4gICAgc2lnbmluZ1JlZ2lvbixcbiAgICBzaWduaW5nU2VydmljZTogc2VydmljZSxcbiAgfTtcbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbU1SQVBBcm4gPSAoe1xuICBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMsXG4gIGR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gIGlzQ3VzdG9tRW5kcG9pbnQsXG4gIG1yYXBBbGlhcyxcbiAgaG9zdG5hbWVTdWZmaXgsXG59OiBBcm5Ib3N0bmFtZVBhcmFtcyAmIHsgbXJhcEFsaWFzOiBzdHJpbmc7IGhvc3RuYW1lU3VmZml4OiBzdHJpbmcgfSk6IEJ1Y2tldEhvc3RuYW1lID0+IHtcbiAgLy8gSWYgdGhpcyBpcyBhIG11bHRpLXJlZ2lvbmFsIGFjY2VzcyBwb2ludCwgYW5kIG5vdCBleHBsaWNpdGx5IG9wdGVkIG91dC5cbiAgaWYgKGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50cyA9PT0gdHJ1ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlNESyBpcyBhdHRlbXB0aW5nIHRvIHVzZSBhIE1SQVAgQVJOLiBQbGVhc2UgZW5hYmxlIHRvIGZlYXR1cmUuXCIpO1xuICB9XG4gIHZhbGlkYXRlTXJhcEFsaWFzKG1yYXBBbGlhcyk7XG4gIHZhbGlkYXRlTm9EdWFsc3RhY2soZHVhbHN0YWNrRW5kcG9pbnQpO1xuICByZXR1cm4ge1xuICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgIGhvc3RuYW1lOiBgJHttcmFwQWxpYXN9JHtpc0N1c3RvbUVuZHBvaW50ID8gXCJcIiA6IGAuYWNjZXNzcG9pbnQuczMtZ2xvYmFsYH0uJHtob3N0bmFtZVN1ZmZpeH1gLFxuICAgIHNpZ25pbmdSZWdpb246IFwiKlwiLFxuICB9O1xufTtcblxuY29uc3QgZ2V0RW5kcG9pbnRGcm9tT3V0cG9zdEFybiA9ICh7XG4gIHVzZUFyblJlZ2lvbixcbiAgY2xpZW50UmVnaW9uLFxuICBjbGllbnRTaWduaW5nUmVnaW9uID0gY2xpZW50UmVnaW9uLFxuICBidWNrZXROYW1lLFxuICBvdXRwb3N0SWQsXG4gIGR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gIHRsc0NvbXBhdGlibGUgPSB0cnVlLFxuICBhY2Nlc3Nwb2ludE5hbWUsXG4gIGlzQ3VzdG9tRW5kcG9pbnQsXG4gIGhvc3RuYW1lU3VmZml4LFxufTogQXJuSG9zdG5hbWVQYXJhbXMgJiB7IG91dHBvc3RJZDogc3RyaW5nOyBhY2Nlc3Nwb2ludE5hbWU6IHN0cmluZzsgaG9zdG5hbWVTdWZmaXg6IHN0cmluZyB9KTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICAvLyBpZiB0aGlzIGlzIGFuIE91dHBvc3QgQVJOXG4gIHZhbGlkYXRlUmVnaW9uYWxDbGllbnQoY2xpZW50UmVnaW9uKTtcbiAgdmFsaWRhdGVSZWdpb24oYnVja2V0TmFtZS5yZWdpb24sIHsgdXNlQXJuUmVnaW9uLCBjbGllbnRSZWdpb24sIGNsaWVudFNpZ25pbmdSZWdpb24gfSk7XG4gIGNvbnN0IEROU0hvc3RMYWJlbCA9IGAke2FjY2Vzc3BvaW50TmFtZX0tJHtidWNrZXROYW1lLmFjY291bnRJZH1gO1xuICB2YWxpZGF0ZUROU0hvc3RMYWJlbChETlNIb3N0TGFiZWwsIHsgdGxzQ29tcGF0aWJsZSB9KTtcbiAgY29uc3QgZW5kcG9pbnRSZWdpb24gPSB1c2VBcm5SZWdpb24gPyBidWNrZXROYW1lLnJlZ2lvbiA6IGNsaWVudFJlZ2lvbjtcbiAgY29uc3Qgc2lnbmluZ1JlZ2lvbiA9IHVzZUFyblJlZ2lvbiA/IGJ1Y2tldE5hbWUucmVnaW9uIDogY2xpZW50U2lnbmluZ1JlZ2lvbjtcbiAgdmFsaWRhdGVPdXRwb3N0U2VydmljZShidWNrZXROYW1lLnNlcnZpY2UpO1xuICB2YWxpZGF0ZUROU0hvc3RMYWJlbChvdXRwb3N0SWQsIHsgdGxzQ29tcGF0aWJsZSB9KTtcbiAgdmFsaWRhdGVOb0R1YWxzdGFjayhkdWFsc3RhY2tFbmRwb2ludCk7XG4gIHZhbGlkYXRlTm9GSVBTKGVuZHBvaW50UmVnaW9uKTtcbiAgY29uc3QgaG9zdG5hbWVQcmVmaXggPSBgJHtETlNIb3N0TGFiZWx9LiR7b3V0cG9zdElkfWA7XG4gIHJldHVybiB7XG4gICAgYnVja2V0RW5kcG9pbnQ6IHRydWUsXG4gICAgaG9zdG5hbWU6IGAke2hvc3RuYW1lUHJlZml4fSR7aXNDdXN0b21FbmRwb2ludCA/IFwiXCIgOiBgLnMzLW91dHBvc3RzLiR7ZW5kcG9pbnRSZWdpb259YH0uJHtob3N0bmFtZVN1ZmZpeH1gLFxuICAgIHNpZ25pbmdSZWdpb24sXG4gICAgc2lnbmluZ1NlcnZpY2U6IFwiczMtb3V0cG9zdHNcIixcbiAgfTtcbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbUFjY2Vzc1BvaW50QXJuID0gKHtcbiAgdXNlQXJuUmVnaW9uLFxuICBjbGllbnRSZWdpb24sXG4gIGNsaWVudFNpZ25pbmdSZWdpb24gPSBjbGllbnRSZWdpb24sXG4gIGJ1Y2tldE5hbWUsXG4gIGR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gIHRsc0NvbXBhdGlibGUgPSB0cnVlLFxuICBhY2Nlc3Nwb2ludE5hbWUsXG4gIGlzQ3VzdG9tRW5kcG9pbnQsXG4gIGhvc3RuYW1lU3VmZml4LFxufTogQXJuSG9zdG5hbWVQYXJhbXMgJiB7IGFjY2Vzc3BvaW50TmFtZTogc3RyaW5nOyBob3N0bmFtZVN1ZmZpeDogc3RyaW5nIH0pOiBCdWNrZXRIb3N0bmFtZSA9PiB7XG4gIC8vIGNvbnN0cnVjdCBlbmRwb2ludCBmcm9tIEFjY2Vzc3BvaW50IEFSTlxuICB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50KGNsaWVudFJlZ2lvbik7XG4gIHZhbGlkYXRlUmVnaW9uKGJ1Y2tldE5hbWUucmVnaW9uLCB7IHVzZUFyblJlZ2lvbiwgY2xpZW50UmVnaW9uLCBjbGllbnRTaWduaW5nUmVnaW9uLCBhbGxvd0ZpcHNSZWdpb246IHRydWUgfSk7XG4gIGNvbnN0IGhvc3RuYW1lUHJlZml4ID0gYCR7YWNjZXNzcG9pbnROYW1lfS0ke2J1Y2tldE5hbWUuYWNjb3VudElkfWA7XG4gIHZhbGlkYXRlRE5TSG9zdExhYmVsKGhvc3RuYW1lUHJlZml4LCB7IHRsc0NvbXBhdGlibGUgfSk7XG4gIGNvbnN0IGVuZHBvaW50UmVnaW9uID0gdXNlQXJuUmVnaW9uID8gYnVja2V0TmFtZS5yZWdpb24gOiBjbGllbnRSZWdpb247XG4gIGNvbnN0IHNpZ25pbmdSZWdpb24gPSB1c2VBcm5SZWdpb24gPyBidWNrZXROYW1lLnJlZ2lvbiA6IGNsaWVudFNpZ25pbmdSZWdpb247XG4gIHZhbGlkYXRlUzNTZXJ2aWNlKGJ1Y2tldE5hbWUuc2VydmljZSk7XG4gIHJldHVybiB7XG4gICAgYnVja2V0RW5kcG9pbnQ6IHRydWUsXG4gICAgaG9zdG5hbWU6IGAke2hvc3RuYW1lUHJlZml4fSR7XG4gICAgICBpc0N1c3RvbUVuZHBvaW50XG4gICAgICAgID8gXCJcIlxuICAgICAgICA6IGAuczMtYWNjZXNzcG9pbnQke2lzRmlwc1JlZ2lvbihjbGllbnRSZWdpb24pID8gXCItZmlwc1wiIDogXCJcIn0ke1xuICAgICAgICAgICAgZHVhbHN0YWNrRW5kcG9pbnQgPyBcIi5kdWFsc3RhY2tcIiA6IFwiXCJcbiAgICAgICAgICB9LiR7Z2V0UHNldWRvUmVnaW9uKGVuZHBvaW50UmVnaW9uKX1gXG4gICAgfS4ke2hvc3RuYW1lU3VmZml4fWAsXG4gICAgc2lnbmluZ1JlZ2lvbixcbiAgfTtcbn07XG4iXX0=
|
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import { __read } from "tslib";
|
|
2
|
-
var DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/;
|
|
3
|
-
var IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/;
|
|
4
|
-
var DOTS_PATTERN = /\.\./;
|
|
5
|
-
export var DOT_PATTERN = /\./;
|
|
6
|
-
export var S3_HOSTNAME_PATTERN = /^(.+\.)?s3[.-]([a-z0-9-]+)\./;
|
|
7
|
-
var S3_US_EAST_1_ALTNAME_PATTERN = /^s3(-external-1)?\.amazonaws\.com$/;
|
|
8
|
-
var AWS_PARTITION_SUFFIX = "amazonaws.com";
|
|
9
|
-
export var isBucketNameOptions = function (options) { return typeof options.bucketName === "string"; };
|
|
10
|
-
/**
|
|
11
|
-
* Get pseudo region from supplied region. For example, if supplied with `fips-us-west-2`, it returns `us-west-2`.
|
|
12
|
-
* @internal
|
|
13
|
-
*/
|
|
14
|
-
export var getPseudoRegion = function (region) { return (isFipsRegion(region) ? region.replace(/fips-|-fips/, "") : region); };
|
|
15
|
-
/**
|
|
16
|
-
* Determines whether a given string is DNS compliant per the rules outlined by
|
|
17
|
-
* S3. Length, capitaization, and leading dot restrictions are enforced by the
|
|
18
|
-
* DOMAIN_PATTERN regular expression.
|
|
19
|
-
* @internal
|
|
20
|
-
*
|
|
21
|
-
* @see https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html
|
|
22
|
-
*/
|
|
23
|
-
export var isDnsCompatibleBucketName = function (bucketName) {
|
|
24
|
-
return DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);
|
|
25
|
-
};
|
|
26
|
-
var getRegionalSuffix = function (hostname) {
|
|
27
|
-
var parts = hostname.match(S3_HOSTNAME_PATTERN);
|
|
28
|
-
return [parts[2], hostname.replace(new RegExp("^" + parts[0]), "")];
|
|
29
|
-
};
|
|
30
|
-
export var getSuffix = function (hostname) {
|
|
31
|
-
return S3_US_EAST_1_ALTNAME_PATTERN.test(hostname) ? ["us-east-1", AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname);
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* Infer region and hostname suffix from a complete hostname
|
|
35
|
-
* @internal
|
|
36
|
-
* @param hostname - Hostname
|
|
37
|
-
* @returns [Region, Hostname suffix]
|
|
38
|
-
*/
|
|
39
|
-
export var getSuffixForArnEndpoint = function (hostname) {
|
|
40
|
-
return S3_US_EAST_1_ALTNAME_PATTERN.test(hostname)
|
|
41
|
-
? [hostname.replace("." + AWS_PARTITION_SUFFIX, ""), AWS_PARTITION_SUFFIX]
|
|
42
|
-
: getRegionalSuffix(hostname);
|
|
43
|
-
};
|
|
44
|
-
export var validateArnEndpointOptions = function (options) {
|
|
45
|
-
if (options.pathStyleEndpoint) {
|
|
46
|
-
throw new Error("Path-style S3 endpoint is not supported when bucket is an ARN");
|
|
47
|
-
}
|
|
48
|
-
if (options.accelerateEndpoint) {
|
|
49
|
-
throw new Error("Accelerate endpoint is not supported when bucket is an ARN");
|
|
50
|
-
}
|
|
51
|
-
if (!options.tlsCompatible) {
|
|
52
|
-
throw new Error("HTTPS is required when bucket is an ARN");
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
export var validateService = function (service) {
|
|
56
|
-
if (service !== "s3" && service !== "s3-outposts" && service !== "s3-object-lambda") {
|
|
57
|
-
throw new Error("Expect 's3' or 's3-outposts' or 's3-object-lambda' in ARN service component");
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
export var validateS3Service = function (service) {
|
|
61
|
-
if (service !== "s3") {
|
|
62
|
-
throw new Error("Expect 's3' in Accesspoint ARN service component");
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
export var validateOutpostService = function (service) {
|
|
66
|
-
if (service !== "s3-outposts") {
|
|
67
|
-
throw new Error("Expect 's3-posts' in Outpost ARN service component");
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
/**
|
|
71
|
-
* Validate partition inferred from ARN is the same to `options.clientPartition`.
|
|
72
|
-
* @internal
|
|
73
|
-
*/
|
|
74
|
-
export var validatePartition = function (partition, options) {
|
|
75
|
-
if (partition !== options.clientPartition) {
|
|
76
|
-
throw new Error("Partition in ARN is incompatible, got \"" + partition + "\" but expected \"" + options.clientPartition + "\"");
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
/**
|
|
80
|
-
* validate region value inferred from ARN. If `options.useArnRegion` is set, it validates the region is not a FIPS
|
|
81
|
-
* region. If `options.useArnRegion` is unset, it validates the region is equal to `options.clientRegion` or
|
|
82
|
-
* `options.clientSigningRegion`.
|
|
83
|
-
* @internal
|
|
84
|
-
*/
|
|
85
|
-
export var validateRegion = function (region, options) {
|
|
86
|
-
if (region === "") {
|
|
87
|
-
throw new Error("ARN region is empty");
|
|
88
|
-
}
|
|
89
|
-
if (isFipsRegion(options.clientRegion)) {
|
|
90
|
-
if (!options.allowFipsRegion) {
|
|
91
|
-
throw new Error("FIPS region is not supported");
|
|
92
|
-
}
|
|
93
|
-
else if (!isEqualRegions(region, options.clientRegion)) {
|
|
94
|
-
throw new Error("Client FIPS region " + options.clientRegion + " doesn't match region " + region + " in ARN");
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
if (!options.useArnRegion &&
|
|
98
|
-
!isEqualRegions(region, options.clientRegion || "") &&
|
|
99
|
-
!isEqualRegions(region, options.clientSigningRegion || "")) {
|
|
100
|
-
throw new Error("Region in ARN is incompatible, got " + region + " but expected " + options.clientRegion);
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
*
|
|
105
|
-
* @param region
|
|
106
|
-
*/
|
|
107
|
-
export var validateRegionalClient = function (region) {
|
|
108
|
-
if (["s3-external-1", "aws-global"].includes(getPseudoRegion(region))) {
|
|
109
|
-
throw new Error("Client region " + region + " is not regional");
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
/**
|
|
113
|
-
* @internal
|
|
114
|
-
*/
|
|
115
|
-
export var isFipsRegion = function (region) { return region.startsWith("fips-") || region.endsWith("-fips"); };
|
|
116
|
-
var isEqualRegions = function (regionA, regionB) {
|
|
117
|
-
return regionA === regionB || getPseudoRegion(regionA) === regionB || regionA === getPseudoRegion(regionB);
|
|
118
|
-
};
|
|
119
|
-
/**
|
|
120
|
-
* Validate an account ID
|
|
121
|
-
* @internal
|
|
122
|
-
*/
|
|
123
|
-
export var validateAccountId = function (accountId) {
|
|
124
|
-
if (!/[0-9]{12}/.exec(accountId)) {
|
|
125
|
-
throw new Error("Access point ARN accountID does not match regex '[0-9]{12}'");
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
/**
|
|
129
|
-
* Validate a host label according to https://tools.ietf.org/html/rfc3986#section-3.2.2
|
|
130
|
-
* @internal
|
|
131
|
-
*/
|
|
132
|
-
export var validateDNSHostLabel = function (label, options) {
|
|
133
|
-
if (options === void 0) { options = { tlsCompatible: true }; }
|
|
134
|
-
// reference: https://tools.ietf.org/html/rfc3986#section-3.2.2
|
|
135
|
-
if (label.length >= 64 ||
|
|
136
|
-
!/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/.test(label) ||
|
|
137
|
-
/(\d+\.){3}\d+/.test(label) ||
|
|
138
|
-
/[.-]{2}/.test(label) ||
|
|
139
|
-
((options === null || options === void 0 ? void 0 : options.tlsCompatible) && DOT_PATTERN.test(label))) {
|
|
140
|
-
throw new Error("Invalid DNS label " + label);
|
|
141
|
-
}
|
|
142
|
-
};
|
|
143
|
-
export var validateCustomEndpoint = function (options) {
|
|
144
|
-
if (options.isCustomEndpoint) {
|
|
145
|
-
if (options.dualstackEndpoint)
|
|
146
|
-
throw new Error("Dualstack endpoint is not supported with custom endpoint");
|
|
147
|
-
if (options.accelerateEndpoint)
|
|
148
|
-
throw new Error("Accelerate endpoint is not supported with custom endpoint");
|
|
149
|
-
}
|
|
150
|
-
};
|
|
151
|
-
/**
|
|
152
|
-
* Validate and parse an Access Point ARN or Outposts ARN
|
|
153
|
-
* @internal
|
|
154
|
-
*
|
|
155
|
-
* @param resource - The resource section of an ARN
|
|
156
|
-
* @returns Access Point Name and optional Outpost ID.
|
|
157
|
-
*/
|
|
158
|
-
export var getArnResources = function (resource) {
|
|
159
|
-
var delimiter = resource.includes(":") ? ":" : "/";
|
|
160
|
-
var _a = __read(resource.split(delimiter)), resourceType = _a[0], rest = _a.slice(1);
|
|
161
|
-
if (resourceType === "accesspoint") {
|
|
162
|
-
// Parse accesspoint ARN
|
|
163
|
-
if (rest.length !== 1 || rest[0] === "") {
|
|
164
|
-
throw new Error("Access Point ARN should have one resource accesspoint" + delimiter + "{accesspointname}");
|
|
165
|
-
}
|
|
166
|
-
return { accesspointName: rest[0] };
|
|
167
|
-
}
|
|
168
|
-
else if (resourceType === "outpost") {
|
|
169
|
-
// Parse outpost ARN
|
|
170
|
-
if (!rest[0] || rest[1] !== "accesspoint" || !rest[2] || rest.length !== 3) {
|
|
171
|
-
throw new Error("Outpost ARN should have resource outpost" + delimiter + "{outpostId}" + delimiter + "accesspoint" + delimiter + "{accesspointName}");
|
|
172
|
-
}
|
|
173
|
-
var _b = __read(rest, 3), outpostId = _b[0], _ = _b[1], accesspointName = _b[2];
|
|
174
|
-
return { outpostId: outpostId, accesspointName: accesspointName };
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
throw new Error("ARN resource should begin with 'accesspoint" + delimiter + "' or 'outpost" + delimiter + "'");
|
|
178
|
-
}
|
|
179
|
-
};
|
|
180
|
-
/**
|
|
181
|
-
* Throw if dual stack configuration is set to true.
|
|
182
|
-
* @internal
|
|
183
|
-
*/
|
|
184
|
-
export var validateNoDualstack = function (dualstackEndpoint) {
|
|
185
|
-
if (dualstackEndpoint)
|
|
186
|
-
throw new Error("Dualstack endpoint is not supported with Outpost or Multi-region Access Point ARN.");
|
|
187
|
-
};
|
|
188
|
-
/**
|
|
189
|
-
* Validate region is not appended or prepended with a `fips-`
|
|
190
|
-
* @internal
|
|
191
|
-
*/
|
|
192
|
-
export var validateNoFIPS = function (region) {
|
|
193
|
-
if (isFipsRegion(region !== null && region !== void 0 ? region : ""))
|
|
194
|
-
throw new Error("FIPS region is not supported with Outpost, got " + region);
|
|
195
|
-
};
|
|
196
|
-
/**
|
|
197
|
-
* Validate the multi-region access point alias.
|
|
198
|
-
* @private
|
|
199
|
-
*/
|
|
200
|
-
export var validateMrapAlias = function (name) {
|
|
201
|
-
try {
|
|
202
|
-
name.split(".").forEach(function (label) {
|
|
203
|
-
validateDNSHostLabel(label);
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
catch (e) {
|
|
207
|
-
throw new Error("\"" + name + "\" is not a DNS compatible name.");
|
|
208
|
-
}
|
|
209
|
-
};
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWVVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWNrZXRIb3N0bmFtZVV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxJQUFNLGNBQWMsR0FBRyxzQ0FBc0MsQ0FBQztBQUM5RCxJQUFNLGtCQUFrQixHQUFHLGVBQWUsQ0FBQztBQUMzQyxJQUFNLFlBQVksR0FBRyxNQUFNLENBQUM7QUFDNUIsTUFBTSxDQUFDLElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQztBQUNoQyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyw4QkFBOEIsQ0FBQztBQUNsRSxJQUFNLDRCQUE0QixHQUFHLG9DQUFvQyxDQUFDO0FBQzFFLElBQU0sb0JBQW9CLEdBQUcsZUFBZSxDQUFDO0FBeUI3QyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxVQUNqQyxPQUFpRCxJQUNiLE9BQUEsT0FBTyxPQUFPLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBdEMsQ0FBc0MsQ0FBQztBQUU3RTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQUcsVUFBQyxNQUFjLElBQUssT0FBQSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFuRSxDQUFtRSxDQUFDO0FBRXZIOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsSUFBTSx5QkFBeUIsR0FBRyxVQUFDLFVBQWtCO0lBQzFELE9BQUEsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0FBQXpHLENBQXlHLENBQUM7QUFFNUcsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLFFBQWdCO0lBQ3pDLElBQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUUsQ0FBQztJQUNuRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLFNBQVMsR0FBRyxVQUFDLFFBQWdCO0lBQ3hDLE9BQUEsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7QUFBL0csQ0FBK0csQ0FBQztBQUVsSDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxJQUFNLHVCQUF1QixHQUFHLFVBQUMsUUFBZ0I7SUFDdEQsT0FBQSw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBSSxvQkFBc0IsRUFBRSxFQUFFLENBQUMsRUFBRSxvQkFBb0IsQ0FBQztRQUMxRSxDQUFDLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDO0FBRi9CLENBRStCLENBQUM7QUFFbEMsTUFBTSxDQUFDLElBQU0sMEJBQTBCLEdBQUcsVUFBQyxPQUkxQztJQUNDLElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUFFO1FBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0RBQStELENBQUMsQ0FBQztLQUNsRjtJQUNELElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFO1FBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTRELENBQUMsQ0FBQztLQUMvRTtJQUNELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1FBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztLQUM1RDtBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGVBQWUsR0FBRyxVQUFDLE9BQWU7SUFDN0MsSUFBSSxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxhQUFhLElBQUksT0FBTyxLQUFLLGtCQUFrQixFQUFFO1FBQ25GLE1BQU0sSUFBSSxLQUFLLENBQUMsNkVBQTZFLENBQUMsQ0FBQztLQUNoRztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGlCQUFpQixHQUFHLFVBQUMsT0FBZTtJQUMvQyxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0tBQ3JFO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sc0JBQXNCLEdBQUcsVUFBQyxPQUFlO0lBQ3BELElBQUksT0FBTyxLQUFLLGFBQWEsRUFBRTtRQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7S0FDdkU7QUFDSCxDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLFNBQWlCLEVBQUUsT0FBb0M7SUFDdkYsSUFBSSxTQUFTLEtBQUssT0FBTyxDQUFDLGVBQWUsRUFBRTtRQUN6QyxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUEwQyxTQUFTLDBCQUFtQixPQUFPLENBQUMsZUFBZSxPQUFHLENBQUMsQ0FBQztLQUNuSDtBQUNILENBQUMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFHLFVBQzVCLE1BQWMsRUFDZCxPQUtDO0lBRUQsSUFBSSxNQUFNLEtBQUssRUFBRSxFQUFFO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztLQUN4QztJQUNELElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7U0FDakQ7YUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDeEQsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBc0IsT0FBTyxDQUFDLFlBQVksOEJBQXlCLE1BQU0sWUFBUyxDQUFDLENBQUM7U0FDckc7S0FDRjtJQUNELElBQ0UsQ0FBQyxPQUFPLENBQUMsWUFBWTtRQUNyQixDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDbkQsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUMsRUFDMUQ7UUFDQSxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUFzQyxNQUFNLHNCQUFpQixPQUFPLENBQUMsWUFBYyxDQUFDLENBQUM7S0FDdEc7QUFDSCxDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRyxVQUFDLE1BQWM7SUFDbkQsSUFBSSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7UUFDckUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBaUIsTUFBTSxxQkFBa0IsQ0FBQyxDQUFDO0tBQzVEO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsVUFBQyxNQUFjLElBQUssT0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQXRELENBQXNELENBQUM7QUFFdkcsSUFBTSxjQUFjLEdBQUcsVUFBQyxPQUFlLEVBQUUsT0FBZTtJQUN0RCxPQUFBLE9BQU8sS0FBSyxPQUFPLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLE9BQU8sSUFBSSxPQUFPLEtBQUssZUFBZSxDQUFDLE9BQU8sQ0FBQztBQUFuRyxDQUFtRyxDQUFDO0FBRXRHOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLGlCQUFpQixHQUFHLFVBQUMsU0FBaUI7SUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO0tBQ2hGO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsVUFBQyxLQUFhLEVBQUUsT0FBOEQ7SUFBOUQsd0JBQUEsRUFBQSxZQUF5QyxhQUFhLEVBQUUsSUFBSSxFQUFFO0lBQ2hILCtEQUErRDtJQUMvRCxJQUNFLEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRTtRQUNsQixDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDNUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDM0IsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDckIsQ0FBQyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxhQUFhLEtBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNuRDtRQUNBLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXFCLEtBQU8sQ0FBQyxDQUFDO0tBQy9DO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sc0JBQXNCLEdBQUcsVUFBQyxPQUl0QztJQUNDLElBQUksT0FBTyxDQUFDLGdCQUFnQixFQUFFO1FBQzVCLElBQUksT0FBTyxDQUFDLGlCQUFpQjtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztRQUMzRyxJQUFJLE9BQU8sQ0FBQyxrQkFBa0I7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7S0FDOUc7QUFDSCxDQUFDLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQUcsVUFDN0IsUUFBZ0I7SUFLaEIsSUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDL0MsSUFBQSxLQUFBLE9BQTBCLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUEsRUFBbEQsWUFBWSxRQUFBLEVBQUssSUFBSSxjQUE2QixDQUFDO0lBQzFELElBQUksWUFBWSxLQUFLLGFBQWEsRUFBRTtRQUNsQyx3QkFBd0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQXdELFNBQVMsc0JBQW1CLENBQUMsQ0FBQztTQUN2RztRQUNELE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDckM7U0FBTSxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUU7UUFDckMsb0JBQW9CO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxRSxNQUFNLElBQUksS0FBSyxDQUNiLDZDQUEyQyxTQUFTLG1CQUFjLFNBQVMsbUJBQWMsU0FBUyxzQkFBbUIsQ0FDdEgsQ0FBQztTQUNIO1FBQ0ssSUFBQSxLQUFBLE9BQWtDLElBQUksSUFBQSxFQUFyQyxTQUFTLFFBQUEsRUFBRSxDQUFDLFFBQUEsRUFBRSxlQUFlLFFBQVEsQ0FBQztRQUM3QyxPQUFPLEVBQUUsU0FBUyxXQUFBLEVBQUUsZUFBZSxpQkFBQSxFQUFFLENBQUM7S0FDdkM7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQThDLFNBQVMscUJBQWdCLFNBQVMsTUFBRyxDQUFDLENBQUM7S0FDdEc7QUFDSCxDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxVQUFDLGlCQUEyQjtJQUM3RCxJQUFJLGlCQUFpQjtRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLG9GQUFvRixDQUFDLENBQUM7QUFDMUcsQ0FBQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFHLFVBQUMsTUFBZTtJQUM1QyxJQUFJLFlBQVksQ0FBQyxNQUFNLGFBQU4sTUFBTSxjQUFOLE1BQU0sR0FBSSxFQUFFLENBQUM7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFrRCxNQUFRLENBQUMsQ0FBQztBQUM5RyxDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLElBQVk7SUFDNUMsSUFBSTtRQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSztZQUM1QixvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztLQUNKO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLE9BQUksSUFBSSxxQ0FBaUMsQ0FBQyxDQUFDO0tBQzVEO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVJOIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlclwiO1xuXG5jb25zdCBET01BSU5fUEFUVEVSTiA9IC9eW2EtejAtOV1bYS16MC05XFwuXFwtXXsxLDYxfVthLXowLTldJC87XG5jb25zdCBJUF9BRERSRVNTX1BBVFRFUk4gPSAvKFxcZCtcXC4pezN9XFxkKy87XG5jb25zdCBET1RTX1BBVFRFUk4gPSAvXFwuXFwuLztcbmV4cG9ydCBjb25zdCBET1RfUEFUVEVSTiA9IC9cXC4vO1xuZXhwb3J0IGNvbnN0IFMzX0hPU1ROQU1FX1BBVFRFUk4gPSAvXiguK1xcLik/czNbLi1dKFthLXowLTktXSspXFwuLztcbmNvbnN0IFMzX1VTX0VBU1RfMV9BTFROQU1FX1BBVFRFUk4gPSAvXnMzKC1leHRlcm5hbC0xKT9cXC5hbWF6b25hd3NcXC5jb20kLztcbmNvbnN0IEFXU19QQVJUSVRJT05fU1VGRklYID0gXCJhbWF6b25hd3MuY29tXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXNzUG9pbnRBcm4gZXh0ZW5kcyBBUk4ge1xuICBhY2Nlc3NQb2ludE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRIb3N0bmFtZVBhcmFtcyB7XG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGJvb2xlYW47XG4gIGJhc2VIb3N0bmFtZTogc3RyaW5nO1xuICBidWNrZXROYW1lOiBzdHJpbmc7XG4gIGNsaWVudFJlZ2lvbjogc3RyaW5nO1xuICBhY2NlbGVyYXRlRW5kcG9pbnQ/OiBib29sZWFuO1xuICBkdWFsc3RhY2tFbmRwb2ludD86IGJvb2xlYW47XG4gIHBhdGhTdHlsZUVuZHBvaW50PzogYm9vbGVhbjtcbiAgdGxzQ29tcGF0aWJsZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJuSG9zdG5hbWVQYXJhbXMgZXh0ZW5kcyBPbWl0PEJ1Y2tldEhvc3RuYW1lUGFyYW1zLCBcImJ1Y2tldE5hbWVcIj4ge1xuICBidWNrZXROYW1lOiBBUk47XG4gIGNsaWVudFNpZ25pbmdSZWdpb24/OiBzdHJpbmc7XG4gIGNsaWVudFBhcnRpdGlvbj86IHN0cmluZztcbiAgdXNlQXJuUmVnaW9uPzogYm9vbGVhbjtcbiAgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGlzQnVja2V0TmFtZU9wdGlvbnMgPSAoXG4gIG9wdGlvbnM6IEJ1Y2tldEhvc3RuYW1lUGFyYW1zIHwgQXJuSG9zdG5hbWVQYXJhbXNcbik6IG9wdGlvbnMgaXMgQnVja2V0SG9zdG5hbWVQYXJhbXMgPT4gdHlwZW9mIG9wdGlvbnMuYnVja2V0TmFtZSA9PT0gXCJzdHJpbmdcIjtcblxuLyoqXG4gKiBHZXQgcHNldWRvIHJlZ2lvbiBmcm9tIHN1cHBsaWVkIHJlZ2lvbi4gRm9yIGV4YW1wbGUsIGlmIHN1cHBsaWVkIHdpdGggYGZpcHMtdXMtd2VzdC0yYCwgaXQgcmV0dXJucyBgdXMtd2VzdC0yYC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgZ2V0UHNldWRvUmVnaW9uID0gKHJlZ2lvbjogc3RyaW5nKSA9PiAoaXNGaXBzUmVnaW9uKHJlZ2lvbikgPyByZWdpb24ucmVwbGFjZSgvZmlwcy18LWZpcHMvLCBcIlwiKSA6IHJlZ2lvbik7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZ2l2ZW4gc3RyaW5nIGlzIEROUyBjb21wbGlhbnQgcGVyIHRoZSBydWxlcyBvdXRsaW5lZCBieVxuICogUzMuIExlbmd0aCwgY2FwaXRhaXphdGlvbiwgYW5kIGxlYWRpbmcgZG90IHJlc3RyaWN0aW9ucyBhcmUgZW5mb3JjZWQgYnkgdGhlXG4gKiBET01BSU5fUEFUVEVSTiByZWd1bGFyIGV4cHJlc3Npb24uXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvZGV2L0J1Y2tldFJlc3RyaWN0aW9ucy5odG1sXG4gKi9cbmV4cG9ydCBjb25zdCBpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lID0gKGJ1Y2tldE5hbWU6IHN0cmluZyk6IGJvb2xlYW4gPT5cbiAgRE9NQUlOX1BBVFRFUk4udGVzdChidWNrZXROYW1lKSAmJiAhSVBfQUREUkVTU19QQVRURVJOLnRlc3QoYnVja2V0TmFtZSkgJiYgIURPVFNfUEFUVEVSTi50ZXN0KGJ1Y2tldE5hbWUpO1xuXG5jb25zdCBnZXRSZWdpb25hbFN1ZmZpeCA9IChob3N0bmFtZTogc3RyaW5nKTogW3N0cmluZywgc3RyaW5nXSA9PiB7XG4gIGNvbnN0IHBhcnRzID0gaG9zdG5hbWUubWF0Y2goUzNfSE9TVE5BTUVfUEFUVEVSTikhO1xuICByZXR1cm4gW3BhcnRzWzJdLCBob3N0bmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoYF4ke3BhcnRzWzBdfWApLCBcIlwiKV07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3VmZml4ID0gKGhvc3RuYW1lOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmddID0+XG4gIFMzX1VTX0VBU1RfMV9BTFROQU1FX1BBVFRFUk4udGVzdChob3N0bmFtZSkgPyBbXCJ1cy1lYXN0LTFcIiwgQVdTX1BBUlRJVElPTl9TVUZGSVhdIDogZ2V0UmVnaW9uYWxTdWZmaXgoaG9zdG5hbWUpO1xuXG4vKipcbiAqIEluZmVyIHJlZ2lvbiBhbmQgaG9zdG5hbWUgc3VmZml4IGZyb20gYSBjb21wbGV0ZSBob3N0bmFtZVxuICogQGludGVybmFsXG4gKiBAcGFyYW0gaG9zdG5hbWUgLSBIb3N0bmFtZVxuICogQHJldHVybnMgW1JlZ2lvbiwgSG9zdG5hbWUgc3VmZml4XVxuICovXG5leHBvcnQgY29uc3QgZ2V0U3VmZml4Rm9yQXJuRW5kcG9pbnQgPSAoaG9zdG5hbWU6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZ10gPT5cbiAgUzNfVVNfRUFTVF8xX0FMVE5BTUVfUEFUVEVSTi50ZXN0KGhvc3RuYW1lKVxuICAgID8gW2hvc3RuYW1lLnJlcGxhY2UoYC4ke0FXU19QQVJUSVRJT05fU1VGRklYfWAsIFwiXCIpLCBBV1NfUEFSVElUSU9OX1NVRkZJWF1cbiAgICA6IGdldFJlZ2lvbmFsU3VmZml4KGhvc3RuYW1lKTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlQXJuRW5kcG9pbnRPcHRpb25zID0gKG9wdGlvbnM6IHtcbiAgYWNjZWxlcmF0ZUVuZHBvaW50PzogYm9vbGVhbjtcbiAgdGxzQ29tcGF0aWJsZT86IGJvb2xlYW47XG4gIHBhdGhTdHlsZUVuZHBvaW50PzogYm9vbGVhbjtcbn0pID0+IHtcbiAgaWYgKG9wdGlvbnMucGF0aFN0eWxlRW5kcG9pbnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoLXN0eWxlIFMzIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBidWNrZXQgaXMgYW4gQVJOXCIpO1xuICB9XG4gIGlmIChvcHRpb25zLmFjY2VsZXJhdGVFbmRwb2ludCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkFjY2VsZXJhdGUgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBUk5cIik7XG4gIH1cbiAgaWYgKCFvcHRpb25zLnRsc0NvbXBhdGlibGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJIVFRQUyBpcyByZXF1aXJlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBUk5cIik7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVNlcnZpY2UgPSAoc2VydmljZTogc3RyaW5nKSA9PiB7XG4gIGlmIChzZXJ2aWNlICE9PSBcInMzXCIgJiYgc2VydmljZSAhPT0gXCJzMy1vdXRwb3N0c1wiICYmIHNlcnZpY2UgIT09IFwiczMtb2JqZWN0LWxhbWJkYVwiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ICdzMycgb3IgJ3MzLW91dHBvc3RzJyBvciAnczMtb2JqZWN0LWxhbWJkYScgaW4gQVJOIHNlcnZpY2UgY29tcG9uZW50XCIpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVTM1NlcnZpY2UgPSAoc2VydmljZTogc3RyaW5nKSA9PiB7XG4gIGlmIChzZXJ2aWNlICE9PSBcInMzXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3QgJ3MzJyBpbiBBY2Nlc3Nwb2ludCBBUk4gc2VydmljZSBjb21wb25lbnRcIik7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU91dHBvc3RTZXJ2aWNlID0gKHNlcnZpY2U6IHN0cmluZykgPT4ge1xuICBpZiAoc2VydmljZSAhPT0gXCJzMy1vdXRwb3N0c1wiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ICdzMy1wb3N0cycgaW4gT3V0cG9zdCBBUk4gc2VydmljZSBjb21wb25lbnRcIik7XG4gIH1cbn07XG5cbi8qKlxuICogVmFsaWRhdGUgcGFydGl0aW9uIGluZmVycmVkIGZyb20gQVJOIGlzIHRoZSBzYW1lIHRvIGBvcHRpb25zLmNsaWVudFBhcnRpdGlvbmAuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlUGFydGl0aW9uID0gKHBhcnRpdGlvbjogc3RyaW5nLCBvcHRpb25zOiB7IGNsaWVudFBhcnRpdGlvbjogc3RyaW5nIH0pID0+IHtcbiAgaWYgKHBhcnRpdGlvbiAhPT0gb3B0aW9ucy5jbGllbnRQYXJ0aXRpb24pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFBhcnRpdGlvbiBpbiBBUk4gaXMgaW5jb21wYXRpYmxlLCBnb3QgXCIke3BhcnRpdGlvbn1cIiBidXQgZXhwZWN0ZWQgXCIke29wdGlvbnMuY2xpZW50UGFydGl0aW9ufVwiYCk7XG4gIH1cbn07XG5cbi8qKlxuICogdmFsaWRhdGUgcmVnaW9uIHZhbHVlIGluZmVycmVkIGZyb20gQVJOLiBJZiBgb3B0aW9ucy51c2VBcm5SZWdpb25gIGlzIHNldCwgaXQgdmFsaWRhdGVzIHRoZSByZWdpb24gaXMgbm90IGEgRklQU1xuICogcmVnaW9uLiBJZiBgb3B0aW9ucy51c2VBcm5SZWdpb25gIGlzIHVuc2V0LCBpdCB2YWxpZGF0ZXMgdGhlIHJlZ2lvbiBpcyBlcXVhbCB0byBgb3B0aW9ucy5jbGllbnRSZWdpb25gIG9yXG4gKiBgb3B0aW9ucy5jbGllbnRTaWduaW5nUmVnaW9uYC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVSZWdpb24gPSAoXG4gIHJlZ2lvbjogc3RyaW5nLFxuICBvcHRpb25zOiB7XG4gICAgdXNlQXJuUmVnaW9uPzogYm9vbGVhbjtcbiAgICBhbGxvd0ZpcHNSZWdpb24/OiBib29sZWFuO1xuICAgIGNsaWVudFJlZ2lvbjogc3RyaW5nO1xuICAgIGNsaWVudFNpZ25pbmdSZWdpb246IHN0cmluZztcbiAgfVxuKSA9PiB7XG4gIGlmIChyZWdpb24gPT09IFwiXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBUk4gcmVnaW9uIGlzIGVtcHR5XCIpO1xuICB9XG4gIGlmIChpc0ZpcHNSZWdpb24ob3B0aW9ucy5jbGllbnRSZWdpb24pKSB7XG4gICAgaWYgKCFvcHRpb25zLmFsbG93Rmlwc1JlZ2lvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRklQUyByZWdpb24gaXMgbm90IHN1cHBvcnRlZFwiKTtcbiAgICB9IGVsc2UgaWYgKCFpc0VxdWFsUmVnaW9ucyhyZWdpb24sIG9wdGlvbnMuY2xpZW50UmVnaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDbGllbnQgRklQUyByZWdpb24gJHtvcHRpb25zLmNsaWVudFJlZ2lvbn0gZG9lc24ndCBtYXRjaCByZWdpb24gJHtyZWdpb259IGluIEFSTmApO1xuICAgIH1cbiAgfVxuICBpZiAoXG4gICAgIW9wdGlvbnMudXNlQXJuUmVnaW9uICYmXG4gICAgIWlzRXF1YWxSZWdpb25zKHJlZ2lvbiwgb3B0aW9ucy5jbGllbnRSZWdpb24gfHwgXCJcIikgJiZcbiAgICAhaXNFcXVhbFJlZ2lvbnMocmVnaW9uLCBvcHRpb25zLmNsaWVudFNpZ25pbmdSZWdpb24gfHwgXCJcIilcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZWdpb24gaW4gQVJOIGlzIGluY29tcGF0aWJsZSwgZ290ICR7cmVnaW9ufSBidXQgZXhwZWN0ZWQgJHtvcHRpb25zLmNsaWVudFJlZ2lvbn1gKTtcbiAgfVxufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHJlZ2lvblxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVSZWdpb25hbENsaWVudCA9IChyZWdpb246IHN0cmluZykgPT4ge1xuICBpZiAoW1wiczMtZXh0ZXJuYWwtMVwiLCBcImF3cy1nbG9iYWxcIl0uaW5jbHVkZXMoZ2V0UHNldWRvUmVnaW9uKHJlZ2lvbikpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDbGllbnQgcmVnaW9uICR7cmVnaW9ufSBpcyBub3QgcmVnaW9uYWxgKTtcbiAgfVxufTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IGlzRmlwc1JlZ2lvbiA9IChyZWdpb246IHN0cmluZykgPT4gcmVnaW9uLnN0YXJ0c1dpdGgoXCJmaXBzLVwiKSB8fCByZWdpb24uZW5kc1dpdGgoXCItZmlwc1wiKTtcblxuY29uc3QgaXNFcXVhbFJlZ2lvbnMgPSAocmVnaW9uQTogc3RyaW5nLCByZWdpb25COiBzdHJpbmcpID0+XG4gIHJlZ2lvbkEgPT09IHJlZ2lvbkIgfHwgZ2V0UHNldWRvUmVnaW9uKHJlZ2lvbkEpID09PSByZWdpb25CIHx8IHJlZ2lvbkEgPT09IGdldFBzZXVkb1JlZ2lvbihyZWdpb25CKTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBhbiBhY2NvdW50IElEXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlQWNjb3VudElkID0gKGFjY291bnRJZDogc3RyaW5nKSA9PiB7XG4gIGlmICghL1swLTldezEyfS8uZXhlYyhhY2NvdW50SWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQWNjZXNzIHBvaW50IEFSTiBhY2NvdW50SUQgZG9lcyBub3QgbWF0Y2ggcmVnZXggJ1swLTldezEyfSdcIik7XG4gIH1cbn07XG5cbi8qKlxuICogVmFsaWRhdGUgYSBob3N0IGxhYmVsIGFjY29yZGluZyB0byBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTMuMi4yXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlRE5TSG9zdExhYmVsID0gKGxhYmVsOiBzdHJpbmcsIG9wdGlvbnM6IHsgdGxzQ29tcGF0aWJsZT86IGJvb2xlYW4gfSA9IHsgdGxzQ29tcGF0aWJsZTogdHJ1ZSB9KSA9PiB7XG4gIC8vIHJlZmVyZW5jZTogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM5ODYjc2VjdGlvbi0zLjIuMlxuICBpZiAoXG4gICAgbGFiZWwubGVuZ3RoID49IDY0IHx8XG4gICAgIS9eW2EtejAtOV1bYS16MC05Li1dKlthLXowLTldJC8udGVzdChsYWJlbCkgfHxcbiAgICAvKFxcZCtcXC4pezN9XFxkKy8udGVzdChsYWJlbCkgfHxcbiAgICAvWy4tXXsyfS8udGVzdChsYWJlbCkgfHxcbiAgICAob3B0aW9ucz8udGxzQ29tcGF0aWJsZSAmJiBET1RfUEFUVEVSTi50ZXN0KGxhYmVsKSlcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEROUyBsYWJlbCAke2xhYmVsfWApO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVDdXN0b21FbmRwb2ludCA9IChvcHRpb25zOiB7XG4gIGlzQ3VzdG9tRW5kcG9pbnQ/OiBib29sZWFuO1xuICBkdWFsc3RhY2tFbmRwb2ludD86IGJvb2xlYW47XG4gIGFjY2VsZXJhdGVFbmRwb2ludD86IGJvb2xlYW47XG59KSA9PiB7XG4gIGlmIChvcHRpb25zLmlzQ3VzdG9tRW5kcG9pbnQpIHtcbiAgICBpZiAob3B0aW9ucy5kdWFsc3RhY2tFbmRwb2ludCkgdGhyb3cgbmV3IEVycm9yKFwiRHVhbHN0YWNrIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBjdXN0b20gZW5kcG9pbnRcIik7XG4gICAgaWYgKG9wdGlvbnMuYWNjZWxlcmF0ZUVuZHBvaW50KSB0aHJvdyBuZXcgRXJyb3IoXCJBY2NlbGVyYXRlIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBjdXN0b20gZW5kcG9pbnRcIik7XG4gIH1cbn07XG5cbi8qKlxuICogVmFsaWRhdGUgYW5kIHBhcnNlIGFuIEFjY2VzcyBQb2ludCBBUk4gb3IgT3V0cG9zdHMgQVJOXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBAcGFyYW0gcmVzb3VyY2UgLSBUaGUgcmVzb3VyY2Ugc2VjdGlvbiBvZiBhbiBBUk5cbiAqIEByZXR1cm5zIEFjY2VzcyBQb2ludCBOYW1lIGFuZCBvcHRpb25hbCBPdXRwb3N0IElELlxuICovXG5leHBvcnQgY29uc3QgZ2V0QXJuUmVzb3VyY2VzID0gKFxuICByZXNvdXJjZTogc3RyaW5nXG4pOiB7XG4gIGFjY2Vzc3BvaW50TmFtZTogc3RyaW5nO1xuICBvdXRwb3N0SWQ/OiBzdHJpbmc7XG59ID0+IHtcbiAgY29uc3QgZGVsaW1pdGVyID0gcmVzb3VyY2UuaW5jbHVkZXMoXCI6XCIpID8gXCI6XCIgOiBcIi9cIjtcbiAgY29uc3QgW3Jlc291cmNlVHlwZSwgLi4ucmVzdF0gPSByZXNvdXJjZS5zcGxpdChkZWxpbWl0ZXIpO1xuICBpZiAocmVzb3VyY2VUeXBlID09PSBcImFjY2Vzc3BvaW50XCIpIHtcbiAgICAvLyBQYXJzZSBhY2Nlc3Nwb2ludCBBUk5cbiAgICBpZiAocmVzdC5sZW5ndGggIT09IDEgfHwgcmVzdFswXSA9PT0gXCJcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBY2Nlc3MgUG9pbnQgQVJOIHNob3VsZCBoYXZlIG9uZSByZXNvdXJjZSBhY2Nlc3Nwb2ludCR7ZGVsaW1pdGVyfXthY2Nlc3Nwb2ludG5hbWV9YCk7XG4gICAgfVxuICAgIHJldHVybiB7IGFjY2Vzc3BvaW50TmFtZTogcmVzdFswXSB9O1xuICB9IGVsc2UgaWYgKHJlc291cmNlVHlwZSA9PT0gXCJvdXRwb3N0XCIpIHtcbiAgICAvLyBQYXJzZSBvdXRwb3N0IEFSTlxuICAgIGlmICghcmVzdFswXSB8fCByZXN0WzFdICE9PSBcImFjY2Vzc3BvaW50XCIgfHwgIXJlc3RbMl0gfHwgcmVzdC5sZW5ndGggIT09IDMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE91dHBvc3QgQVJOIHNob3VsZCBoYXZlIHJlc291cmNlIG91dHBvc3Qke2RlbGltaXRlcn17b3V0cG9zdElkfSR7ZGVsaW1pdGVyfWFjY2Vzc3BvaW50JHtkZWxpbWl0ZXJ9e2FjY2Vzc3BvaW50TmFtZX1gXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBbb3V0cG9zdElkLCBfLCBhY2Nlc3Nwb2ludE5hbWVdID0gcmVzdDtcbiAgICByZXR1cm4geyBvdXRwb3N0SWQsIGFjY2Vzc3BvaW50TmFtZSB9O1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgQVJOIHJlc291cmNlIHNob3VsZCBiZWdpbiB3aXRoICdhY2Nlc3Nwb2ludCR7ZGVsaW1pdGVyfScgb3IgJ291dHBvc3Qke2RlbGltaXRlcn0nYCk7XG4gIH1cbn07XG5cbi8qKlxuICogVGhyb3cgaWYgZHVhbCBzdGFjayBjb25maWd1cmF0aW9uIGlzIHNldCB0byB0cnVlLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU5vRHVhbHN0YWNrID0gKGR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbikgPT4ge1xuICBpZiAoZHVhbHN0YWNrRW5kcG9pbnQpXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRHVhbHN0YWNrIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBPdXRwb3N0IG9yIE11bHRpLXJlZ2lvbiBBY2Nlc3MgUG9pbnQgQVJOLlwiKTtcbn07XG5cbi8qKlxuICogVmFsaWRhdGUgcmVnaW9uIGlzIG5vdCBhcHBlbmRlZCBvciBwcmVwZW5kZWQgd2l0aCBhIGBmaXBzLWBcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVOb0ZJUFMgPSAocmVnaW9uPzogc3RyaW5nKSA9PiB7XG4gIGlmIChpc0ZpcHNSZWdpb24ocmVnaW9uID8/IFwiXCIpKSB0aHJvdyBuZXcgRXJyb3IoYEZJUFMgcmVnaW9uIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBPdXRwb3N0LCBnb3QgJHtyZWdpb259YCk7XG59O1xuXG4vKipcbiAqIFZhbGlkYXRlIHRoZSBtdWx0aS1yZWdpb24gYWNjZXNzIHBvaW50IGFsaWFzLlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlTXJhcEFsaWFzID0gKG5hbWU6IHN0cmluZykgPT4ge1xuICB0cnkge1xuICAgIG5hbWUuc3BsaXQoXCIuXCIpLmZvckVhY2goKGxhYmVsKSA9PiB7XG4gICAgICB2YWxpZGF0ZUROU0hvc3RMYWJlbChsYWJlbCk7XG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFwiJHtuYW1lfVwiIGlzIG5vdCBhIEROUyBjb21wYXRpYmxlIG5hbWUuYCk7XG4gIH1cbn07XG4iXX0=
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
2
|
-
export function resolveBucketEndpointConfig(input) {
|
|
3
|
-
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, _f = input.disableMultiregionAccessPoints, disableMultiregionAccessPoints = _f === void 0 ? false : _f;
|
|
4
|
-
return __assign(__assign({}, input), { bucketEndpoint: bucketEndpoint, forcePathStyle: forcePathStyle, useAccelerateEndpoint: useAccelerateEndpoint, useDualstackEndpoint: useDualstackEndpoint, useArnRegion: typeof useArnRegion === "function" ? useArnRegion : function () { return Promise.resolve(useArnRegion); }, disableMultiregionAccessPoints: typeof disableMultiregionAccessPoints === "function"
|
|
5
|
-
? disableMultiregionAccessPoints
|
|
6
|
-
: function () { return Promise.resolve(disableMultiregionAccessPoints); } });
|
|
7
|
-
}
|
|
8
|
-
export var NODE_USE_ARN_REGION_ENV_NAME = "AWS_S3_USE_ARN_REGION";
|
|
9
|
-
export var NODE_USE_ARN_REGION_INI_NAME = "s3_use_arn_region";
|
|
10
|
-
export var NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME = "AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS";
|
|
11
|
-
export var NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME = "s3_disable_multiregion_access_points";
|
|
12
|
-
/**
|
|
13
|
-
* Config to load useArnRegion from environment variables and shared INI files
|
|
14
|
-
*
|
|
15
|
-
* @api private
|
|
16
|
-
*/
|
|
17
|
-
export var NODE_USE_ARN_REGION_CONFIG_OPTIONS = {
|
|
18
|
-
environmentVariableSelector: function (env) {
|
|
19
|
-
if (!Object.prototype.hasOwnProperty.call(env, NODE_USE_ARN_REGION_ENV_NAME))
|
|
20
|
-
return undefined;
|
|
21
|
-
if (env[NODE_USE_ARN_REGION_ENV_NAME] === "true")
|
|
22
|
-
return true;
|
|
23
|
-
if (env[NODE_USE_ARN_REGION_ENV_NAME] === "false")
|
|
24
|
-
return false;
|
|
25
|
-
throw new Error("Cannot load env " + NODE_USE_ARN_REGION_ENV_NAME + ". Expected \"true\" or \"false\", got " + env[NODE_USE_ARN_REGION_ENV_NAME] + ".");
|
|
26
|
-
},
|
|
27
|
-
configFileSelector: function (profile) {
|
|
28
|
-
if (!Object.prototype.hasOwnProperty.call(profile, NODE_USE_ARN_REGION_INI_NAME))
|
|
29
|
-
return undefined;
|
|
30
|
-
if (profile[NODE_USE_ARN_REGION_INI_NAME] === "true")
|
|
31
|
-
return true;
|
|
32
|
-
if (profile[NODE_USE_ARN_REGION_INI_NAME] === "false")
|
|
33
|
-
return false;
|
|
34
|
-
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] + ".");
|
|
35
|
-
},
|
|
36
|
-
default: false,
|
|
37
|
-
};
|
|
38
|
-
export var NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS = {
|
|
39
|
-
environmentVariableSelector: function (env) {
|
|
40
|
-
if (!Object.prototype.hasOwnProperty.call(env, NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME))
|
|
41
|
-
return undefined;
|
|
42
|
-
if (env[NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME] === "true")
|
|
43
|
-
return true;
|
|
44
|
-
if (env[NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME] === "false")
|
|
45
|
-
return false;
|
|
46
|
-
throw new Error("Cannot load env " + NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME + ". Expected \"true\" or \"false\", got " + env[NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME] + ".");
|
|
47
|
-
},
|
|
48
|
-
configFileSelector: function (profile) {
|
|
49
|
-
if (!Object.prototype.hasOwnProperty.call(profile, NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME))
|
|
50
|
-
return undefined;
|
|
51
|
-
if (profile[NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME] === "true")
|
|
52
|
-
return true;
|
|
53
|
-
if (profile[NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME] === "false")
|
|
54
|
-
return false;
|
|
55
|
-
throw new Error("Cannot load shared config entry " + NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME + ". Expected \"true\" or \"false\", got " + profile[NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME] + ".");
|
|
56
|
-
},
|
|
57
|
-
default: false,
|
|
58
|
-
};
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQThFQSxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLEtBQXlEO0lBR3ZELElBQUEsS0FNRSxLQUFLLGVBTmUsRUFBdEIsY0FBYyxtQkFBRyxLQUFLLEtBQUEsRUFDdEIsS0FLRSxLQUFLLGVBTGUsRUFBdEIsY0FBYyxtQkFBRyxLQUFLLEtBQUEsRUFDdEIsS0FJRSxLQUFLLHNCQUpzQixFQUE3QixxQkFBcUIsbUJBQUcsS0FBSyxLQUFBLEVBQzdCLEtBR0UsS0FBSyxxQkFIcUIsRUFBNUIsb0JBQW9CLG1CQUFHLEtBQUssS0FBQSxFQUM1QixLQUVFLEtBQUssYUFGYSxFQUFwQixZQUFZLG1CQUFHLEtBQUssS0FBQSxFQUNwQixLQUNFLEtBQUssK0JBRCtCLEVBQXRDLDhCQUE4QixtQkFBRyxLQUFLLEtBQUEsQ0FDOUI7SUFDViw2QkFDSyxLQUFLLEtBQ1IsY0FBYyxnQkFBQSxFQUNkLGNBQWMsZ0JBQUEsRUFDZCxxQkFBcUIsdUJBQUEsRUFDckIsb0JBQW9CLHNCQUFBLEVBQ3BCLFlBQVksRUFBRSxPQUFPLFlBQVksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsY0FBTSxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQTdCLENBQTZCLEVBQ3JHLDhCQUE4QixFQUM1QixPQUFPLDhCQUE4QixLQUFLLFVBQVU7WUFDbEQsQ0FBQyxDQUFDLDhCQUE4QjtZQUNoQyxDQUFDLENBQUMsY0FBTSxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsOEJBQThCLENBQUMsRUFBL0MsQ0FBK0MsSUFDM0Q7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLElBQU0sNEJBQTRCLEdBQUcsdUJBQXVCLENBQUM7QUFDcEUsTUFBTSxDQUFDLElBQU0sNEJBQTRCLEdBQUcsbUJBQW1CLENBQUM7QUFFaEUsTUFBTSxDQUFDLElBQU0sOENBQThDLEdBQUcsMENBQTBDLENBQUM7QUFDekcsTUFBTSxDQUFDLElBQU0sOENBQThDLEdBQUcsc0NBQXNDLENBQUM7QUFFckc7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxJQUFNLGtDQUFrQyxHQUFtQztJQUNoRiwyQkFBMkIsRUFBRSxVQUFDLEdBQXNCO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDL0YsSUFBSSxHQUFHLENBQUMsNEJBQTRCLENBQUMsS0FBSyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDOUQsSUFBSSxHQUFHLENBQUMsNEJBQTRCLENBQUMsS0FBSyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDaEUsTUFBTSxJQUFJLEtBQUssQ0FDYixxQkFBbUIsNEJBQTRCLDhDQUFxQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsTUFBRyxDQUN6SCxDQUFDO0lBQ0osQ0FBQztJQUNELGtCQUFrQixFQUFFLFVBQUMsT0FBTztRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSw0QkFBNEIsQ0FBQztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ25HLElBQUksT0FBTyxDQUFDLDRCQUE0QixDQUFDLEtBQUssTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2xFLElBQUksT0FBTyxDQUFDLDRCQUE0QixDQUFDLEtBQUssT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQ2IscUNBQW1DLDRCQUE0Qiw4Q0FBcUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLE1BQUcsQ0FDN0ksQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLEVBQUUsS0FBSztDQUNmLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxvREFBb0QsR0FBbUM7SUFDbEcsMkJBQTJCLEVBQUUsVUFBQyxHQUFzQjtRQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSw4Q0FBOEMsQ0FBQztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ2pILElBQUksR0FBRyxDQUFDLDhDQUE4QyxDQUFDLEtBQUssTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2hGLElBQUksR0FBRyxDQUFDLDhDQUE4QyxDQUFDLEtBQUssT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2xGLE1BQU0sSUFBSSxLQUFLLENBQ2IscUJBQW1CLDhDQUE4Qyw4Q0FBcUMsR0FBRyxDQUFDLDhDQUE4QyxDQUFDLE1BQUcsQ0FDN0osQ0FBQztJQUNKLENBQUM7SUFDRCxrQkFBa0IsRUFBRSxVQUFDLE9BQU87UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsOENBQThDLENBQUM7WUFDaEcsT0FBTyxTQUFTLENBQUM7UUFDbkIsSUFBSSxPQUFPLENBQUMsOENBQThDLENBQUMsS0FBSyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDcEYsSUFBSSxPQUFPLENBQUMsOENBQThDLENBQUMsS0FBSyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDdEYsTUFBTSxJQUFJLEtBQUssQ0FDYixxQ0FBbUMsOENBQThDLDhDQUFxQyxPQUFPLENBQUMsOENBQThDLENBQUMsTUFBRyxDQUNqTCxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sRUFBRSxLQUFLO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvYWRlZENvbmZpZ1NlbGVjdG9ycyB9IGZyb20gXCJAYXdzLXNkay9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgUHJvdmlkZXIsIFJlZ2lvbkluZm9Qcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcHJvdmlkZWQgZW5kcG9pbnQgYWRkcmVzc2VzIGFuIGluZGl2aWR1YWwgYnVja2V0LlxuICAgKi9cbiAgYnVja2V0RW5kcG9pbnQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0byBmb3JjZSBwYXRoIHN0eWxlIFVSTHMgZm9yIFMzIG9iamVjdHMgKGUuZy4sIGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS88YnVja2V0TmFtZT4vPGtleT4gaW5zdGVhZCBvZiBodHRwczovLzxidWNrZXROYW1lPi5zMy5hbWF6b25hd3MuY29tLzxrZXk+XG4gICAqL1xuICBmb3JjZVBhdGhTdHlsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSB0aGUgUzMgVHJhbnNmZXIgQWNjZWxlcmF0aW9uIGVuZHBvaW50IGJ5IGRlZmF1bHRcbiAgICovXG4gIHVzZUFjY2VsZXJhdGVFbmRwb2ludD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGVzIElQdjYvSVB2NCBkdWFsc3RhY2sgZW5kcG9pbnQuIFdoZW4gYSBETlMgbG9va3VwIGlzIHBlcmZvcm1lZCBvbiBhbiBlbmRwb2ludCBvZiB0aGlzIHR5cGUsIGl0IHJldHVybnMgYW4g4oCcQeKAnVxuICAgKiByZWNvcmQgd2l0aCBhbiBJUHY0IGFkZHJlc3MgYW5kIGFuIOKAnEFBQUHigJ0gcmVjb3JkIHdpdGggYW4gSVB2NiBhZGRyZXNzLiBJbiBtb3N0IGNhc2VzIHRoZSBuZXR3b3JrIHN0YWNrIGluIHRoZVxuICAgKiBjbGllbnQgZW52aXJvbm1lbnQgd2lsbCBhdXRvbWF0aWNhbGx5IHByZWZlciB0aGUgQUFBQSByZWNvcmQgYW5kIG1ha2UgYSBjb25uZWN0aW9uIHVzaW5nIHRoZSBJUHY2IGFkZHJlc3MuIE5vdGUsXG4gICAqIGhvd2V2ZXIsIHRoYXQgY3VycmVudGx5IG9uIFdpbmRvd3MsIHRoZSBJUHY0IGFkZHJlc3Mgd2lsbCBiZSBwcmVmZXJyZWQuXG4gICAqL1xuICB1c2VEdWFsc3RhY2tFbmRwb2ludD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIG92ZXJyaWRlIHRoZSByZXF1ZXN0IHJlZ2lvbiB3aXRoIHRoZSByZWdpb24gaW5mZXJyZWQgZnJvbSByZXF1ZXN0ZWQgcmVzb3VyY2UncyBBUk4uIERlZmF1bHRzIHRvIGZhbHNlXG4gICAqL1xuICB1c2VBcm5SZWdpb24/OiBib29sZWFuIHwgUHJvdmlkZXI8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHByZXZlbnQgU0RLIGZyb20gbWFraW5nIGNyb3NzLXJlZ2lvbiByZXF1ZXN0IHdoZW4gc3VwcGxpZWQgYnVja2V0IGlzIGEgbXVsdGktcmVnaW9uIGFjY2VzcyBwb2ludCBBUk4uXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlXG4gICAqL1xuICBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHM/OiBib29sZWFuIHwgUHJvdmlkZXI8Ym9vbGVhbj47XG59XG5cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuO1xuICByZWdpb246IFByb3ZpZGVyPHN0cmluZz47XG4gIHJlZ2lvbkluZm9Qcm92aWRlcjogUmVnaW9uSW5mb1Byb3ZpZGVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgZW5kcG9pbnQgaXMgc3BlY2lmaWVkIGJ5IGNhbGxlci5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuO1xuICAvKipcbiAgICogUmVzb2x2ZWQgdmFsdWUgZm9yIGlucHV0IGNvbmZpZyB7QGxpbmsgQnVja2V0RW5kcG9pbnRJbnB1dENvbmZpZy5idWNrZXRFbmRwb2ludH1cbiAgICovXG4gIGJ1Y2tldEVuZHBvaW50OiBib29sZWFuO1xuICAvKipcbiAgICogUmVzb2x2ZWQgdmFsdWUgZm9yIGlucHV0IGNvbmZpZyB7QGxpbmsgQnVja2V0RW5kcG9pbnRJbnB1dENvbmZpZy5mb3JjZVBhdGhTdHlsZX1cbiAgICovXG4gIGZvcmNlUGF0aFN0eWxlOiBib29sZWFuO1xuICAvKipcbiAgICogUmVzb2x2ZWQgdmFsdWUgZm9yIGlucHV0IGNvbmZpZyB7QGxpbmsgQnVja2V0RW5kcG9pbnRJbnB1dENvbmZpZy51c2VBY2NlbGVyYXRlRW5kcG9pbnR9XG4gICAqL1xuICB1c2VBY2NlbGVyYXRlRW5kcG9pbnQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXNvbHZlZCB2YWx1ZSBmb3IgaW5wdXQgY29uZmlnIHtAbGluayBCdWNrZXRFbmRwb2ludElucHV0Q29uZmlnLnVzZUR1YWxzdGFja0VuZHBvaW50fVxuICAgKi9cbiAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXNvbHZlZCB2YWx1ZSBmb3IgaW5wdXQgY29uZmlnIHtAbGluayBCdWNrZXRFbmRwb2ludElucHV0Q29uZmlnLnVzZUFyblJlZ2lvbn1cbiAgICovXG4gIHVzZUFyblJlZ2lvbjogUHJvdmlkZXI8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBSZXNvbHZlZCB2YWx1ZSBmb3IgaW5wdXQgY29uZmlnIHtAbGluayBSZWdpb25JbnB1dENvbmZpZy5yZWdpb259XG4gICAqL1xuICByZWdpb246IFByb3ZpZGVyPHN0cmluZz47XG4gIC8qKlxuICAgKiBGZXRjaCByZWxhdGVkIGhvc3RuYW1lLCBzaWduaW5nIG5hbWUgb3Igc2lnbmluZyByZWdpb24gd2l0aCBnaXZlbiByZWdpb24uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVnaW9uSW5mb1Byb3ZpZGVyOiBSZWdpb25JbmZvUHJvdmlkZXI7XG4gIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50czogUHJvdmlkZXI8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQnVja2V0RW5kcG9pbnRDb25maWc8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgQnVja2V0RW5kcG9pbnRJbnB1dENvbmZpZ1xuKTogVCAmIEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcge1xuICBjb25zdCB7XG4gICAgYnVja2V0RW5kcG9pbnQgPSBmYWxzZSxcbiAgICBmb3JjZVBhdGhTdHlsZSA9IGZhbHNlLFxuICAgIHVzZUFjY2VsZXJhdGVFbmRwb2ludCA9IGZhbHNlLFxuICAgIHVzZUR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gICAgdXNlQXJuUmVnaW9uID0gZmFsc2UsXG4gICAgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzID0gZmFsc2UsXG4gIH0gPSBpbnB1dDtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBidWNrZXRFbmRwb2ludCxcbiAgICBmb3JjZVBhdGhTdHlsZSxcbiAgICB1c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgdXNlQXJuUmVnaW9uOiB0eXBlb2YgdXNlQXJuUmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyB1c2VBcm5SZWdpb24gOiAoKSA9PiBQcm9taXNlLnJlc29sdmUodXNlQXJuUmVnaW9uKSxcbiAgICBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHM6XG4gICAgICB0eXBlb2YgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgPyBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHNcbiAgICAgICAgOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzKSxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IE5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUgPSBcIkFXU19TM19VU0VfQVJOX1JFR0lPTlwiO1xuZXhwb3J0IGNvbnN0IE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUgPSBcInMzX3VzZV9hcm5fcmVnaW9uXCI7XG5cbmV4cG9ydCBjb25zdCBOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0VOVl9OQU1FID0gXCJBV1NfUzNfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRTXCI7XG5leHBvcnQgY29uc3QgTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9JTklfTkFNRSA9IFwiczNfZGlzYWJsZV9tdWx0aXJlZ2lvbl9hY2Nlc3NfcG9pbnRzXCI7XG5cbi8qKlxuICogQ29uZmlnIHRvIGxvYWQgdXNlQXJuUmVnaW9uIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZCBzaGFyZWQgSU5JIGZpbGVzXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBOT0RFX1VTRV9BUk5fUkVHSU9OX0NPTkZJR19PUFRJT05TOiBMb2FkZWRDb25maWdTZWxlY3RvcnM8Ym9vbGVhbj4gPSB7XG4gIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudjogTm9kZUpTLlByb2Nlc3NFbnYpID0+IHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlbnYsIE5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChlbnZbTk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRV0gPT09IFwidHJ1ZVwiKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoZW52W05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUVdID09PSBcImZhbHNlXCIpIHJldHVybiBmYWxzZTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ2Fubm90IGxvYWQgZW52ICR7Tk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRX0uIEV4cGVjdGVkIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgZ290ICR7ZW52W05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUVdfS5gXG4gICAgKTtcbiAgfSxcbiAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4ge1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb2ZpbGUsIE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9maWxlW05PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUVdID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XG4gICAgaWYgKHByb2ZpbGVbTk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRV0gPT09IFwiZmFsc2VcIikgcmV0dXJuIGZhbHNlO1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBDYW5ub3QgbG9hZCBzaGFyZWQgY29uZmlnIGVudHJ5ICR7Tk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRX0uIEV4cGVjdGVkIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgZ290ICR7cHJvZmlsZVtOT0RFX1VTRV9BUk5fUkVHSU9OX0lOSV9OQU1FXX0uYFxuICAgICk7XG4gIH0sXG4gIGRlZmF1bHQ6IGZhbHNlLFxufTtcblxuZXhwb3J0IGNvbnN0IE5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfQ09ORklHX09QVElPTlM6IExvYWRlZENvbmZpZ1NlbGVjdG9yczxib29sZWFuPiA9IHtcbiAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yOiAoZW52OiBOb2RlSlMuUHJvY2Vzc0VudikgPT4ge1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVudiwgTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9FTlZfTkFNRSkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKGVudltOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0VOVl9OQU1FXSA9PT0gXCJ0cnVlXCIpIHJldHVybiB0cnVlO1xuICAgIGlmIChlbnZbTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9FTlZfTkFNRV0gPT09IFwiZmFsc2VcIikgcmV0dXJuIGZhbHNlO1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBDYW5ub3QgbG9hZCBlbnYgJHtOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0VOVl9OQU1FfS4gRXhwZWN0ZWQgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiLCBnb3QgJHtlbnZbTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9FTlZfTkFNRV19LmBcbiAgICApO1xuICB9LFxuICBjb25maWdGaWxlU2VsZWN0b3I6IChwcm9maWxlKSA9PiB7XG4gICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvZmlsZSwgTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9JTklfTkFNRSkpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9maWxlW05PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfSU5JX05BTUVdID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XG4gICAgaWYgKHByb2ZpbGVbTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9JTklfTkFNRV0gPT09IFwiZmFsc2VcIikgcmV0dXJuIGZhbHNlO1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBDYW5ub3QgbG9hZCBzaGFyZWQgY29uZmlnIGVudHJ5ICR7Tk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9JTklfTkFNRX0uIEV4cGVjdGVkIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgZ290ICR7cHJvZmlsZVtOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0lOSV9OQU1FXX0uYFxuICAgICk7XG4gIH0sXG4gIGRlZmF1bHQ6IGZhbHNlLFxufTtcbiJdfQ==
|
package/dist/es/index.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from "./bucketEndpointMiddleware";
|
|
2
|
-
export * from "./bucketHostname";
|
|
3
|
-
export * from "./configurations";
|
|
4
|
-
export { getArnResources, getPseudoRegion, getSuffixForArnEndpoint, validateOutpostService, validatePartition, validateAccountId, validateRegion, validateDNSHostLabel, validateNoDualstack, validateNoFIPS, } from "./bucketHostnameUtils";
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsT0FBTyxFQUNMLGVBQWUsRUFDZixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLGNBQWMsR0FDZixNQUFNLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9idWNrZXRIb3N0bmFtZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uZmlndXJhdGlvbnNcIjtcbmV4cG9ydCB7XG4gIGdldEFyblJlc291cmNlcyxcbiAgZ2V0UHNldWRvUmVnaW9uLFxuICBnZXRTdWZmaXhGb3JBcm5FbmRwb2ludCxcbiAgdmFsaWRhdGVPdXRwb3N0U2VydmljZSxcbiAgdmFsaWRhdGVQYXJ0aXRpb24sXG4gIHZhbGlkYXRlQWNjb3VudElkLFxuICB2YWxpZGF0ZVJlZ2lvbixcbiAgdmFsaWRhdGVETlNIb3N0TGFiZWwsXG4gIHZhbGlkYXRlTm9EdWFsc3RhY2ssXG4gIHZhbGlkYXRlTm9GSVBTLFxufSBmcm9tIFwiLi9idWNrZXRIb3N0bmFtZVV0aWxzXCI7XG4iXX0=
|