@aws-sdk/middleware-bucket-endpoint 3.34.0 → 3.35.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 +8 -0
- package/dist-cjs/bucketEndpointMiddleware.js +82 -0
- package/dist-cjs/bucketHostname.js +117 -0
- package/dist-cjs/bucketHostnameUtils.js +158 -0
- package/dist-cjs/configurations.js +65 -0
- package/{dist/cjs → dist-cjs}/index.js +1 -1
- package/dist-es/bucketEndpointMiddleware.js +101 -0
- package/dist-es/bucketHostname.js +119 -0
- package/dist-es/bucketHostnameUtils.js +145 -0
- package/dist-es/configurations.js +54 -0
- package/dist-es/index.js +5 -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 → dist-types}/index.d.ts +0 -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 +0 -0
- package/{dist/types → dist-types}/ts3.4/configurations.d.ts +0 -0
- package/{dist/types → dist-types}/ts3.4/index.d.ts +0 -0
- package/package.json +12 -12
- package/tsconfig.cjs.json +1 -1
- package/tsconfig.es.json +1 -1
- package/tsconfig.types.json +1 -1
- 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/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.35.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.34.0...v3.35.0) (2021-10-04)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @aws-sdk/middleware-bucket-endpoint
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
# [3.34.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.33.0...v3.34.0) (2021-09-24)
|
|
7
15
|
|
|
8
16
|
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getBucketEndpointPlugin = exports.bucketEndpointMiddlewareOptions = exports.bucketEndpointMiddleware = void 0;
|
|
4
|
+
const protocol_http_1 = require("@aws-sdk/protocol-http");
|
|
5
|
+
const util_arn_parser_1 = require("@aws-sdk/util-arn-parser");
|
|
6
|
+
const bucketHostname_1 = require("./bucketHostname");
|
|
7
|
+
const bucketHostnameUtils_1 = require("./bucketHostnameUtils");
|
|
8
|
+
const bucketEndpointMiddleware = (options) => (next, context) => async (args) => {
|
|
9
|
+
const { Bucket: bucketName } = args.input;
|
|
10
|
+
let replaceBucketInPath = options.bucketEndpoint;
|
|
11
|
+
const request = args.request;
|
|
12
|
+
if (protocol_http_1.HttpRequest.isInstance(request)) {
|
|
13
|
+
if (options.bucketEndpoint) {
|
|
14
|
+
request.hostname = bucketName;
|
|
15
|
+
}
|
|
16
|
+
else if (util_arn_parser_1.validate(bucketName)) {
|
|
17
|
+
const bucketArn = util_arn_parser_1.parse(bucketName);
|
|
18
|
+
const clientRegion = bucketHostnameUtils_1.getPseudoRegion(await options.region());
|
|
19
|
+
const { partition, signingRegion = clientRegion } = (await options.regionInfoProvider(clientRegion)) || {};
|
|
20
|
+
const useArnRegion = await options.useArnRegion();
|
|
21
|
+
const { hostname, bucketEndpoint, signingRegion: modifiedSigningRegion, signingService } = bucketHostname_1.bucketHostname({
|
|
22
|
+
bucketName: bucketArn,
|
|
23
|
+
baseHostname: request.hostname,
|
|
24
|
+
accelerateEndpoint: options.useAccelerateEndpoint,
|
|
25
|
+
dualstackEndpoint: options.useDualstackEndpoint,
|
|
26
|
+
pathStyleEndpoint: options.forcePathStyle,
|
|
27
|
+
tlsCompatible: request.protocol === "https:",
|
|
28
|
+
useArnRegion,
|
|
29
|
+
clientPartition: partition,
|
|
30
|
+
clientSigningRegion: signingRegion,
|
|
31
|
+
clientRegion: clientRegion,
|
|
32
|
+
isCustomEndpoint: options.isCustomEndpoint,
|
|
33
|
+
disableMultiregionAccessPoints: await options.disableMultiregionAccessPoints(),
|
|
34
|
+
});
|
|
35
|
+
if (modifiedSigningRegion && modifiedSigningRegion !== signingRegion) {
|
|
36
|
+
context["signing_region"] = modifiedSigningRegion;
|
|
37
|
+
}
|
|
38
|
+
if (signingService && signingService !== "s3") {
|
|
39
|
+
context["signing_service"] = signingService;
|
|
40
|
+
}
|
|
41
|
+
request.hostname = hostname;
|
|
42
|
+
replaceBucketInPath = bucketEndpoint;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const clientRegion = bucketHostnameUtils_1.getPseudoRegion(await options.region());
|
|
46
|
+
const { hostname, bucketEndpoint } = bucketHostname_1.bucketHostname({
|
|
47
|
+
bucketName,
|
|
48
|
+
clientRegion,
|
|
49
|
+
baseHostname: request.hostname,
|
|
50
|
+
accelerateEndpoint: options.useAccelerateEndpoint,
|
|
51
|
+
dualstackEndpoint: options.useDualstackEndpoint,
|
|
52
|
+
pathStyleEndpoint: options.forcePathStyle,
|
|
53
|
+
tlsCompatible: request.protocol === "https:",
|
|
54
|
+
isCustomEndpoint: options.isCustomEndpoint,
|
|
55
|
+
});
|
|
56
|
+
request.hostname = hostname;
|
|
57
|
+
replaceBucketInPath = bucketEndpoint;
|
|
58
|
+
}
|
|
59
|
+
if (replaceBucketInPath) {
|
|
60
|
+
request.path = request.path.replace(/^(\/)?[^\/]+/, "");
|
|
61
|
+
if (request.path === "") {
|
|
62
|
+
request.path = "/";
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return next({ ...args, request });
|
|
67
|
+
};
|
|
68
|
+
exports.bucketEndpointMiddleware = bucketEndpointMiddleware;
|
|
69
|
+
exports.bucketEndpointMiddlewareOptions = {
|
|
70
|
+
tags: ["BUCKET_ENDPOINT"],
|
|
71
|
+
name: "bucketEndpointMiddleware",
|
|
72
|
+
relation: "before",
|
|
73
|
+
toMiddleware: "hostHeaderMiddleware",
|
|
74
|
+
override: true,
|
|
75
|
+
};
|
|
76
|
+
const getBucketEndpointPlugin = (options) => ({
|
|
77
|
+
applyToStack: (clientStack) => {
|
|
78
|
+
clientStack.addRelativeTo(exports.bucketEndpointMiddleware(options), exports.bucketEndpointMiddlewareOptions);
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
exports.getBucketEndpointPlugin = getBucketEndpointPlugin;
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2J1Y2tldEVuZHBvaW50TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwREFBcUQ7QUFXckQsOERBQXNGO0FBRXRGLHFEQUFrRDtBQUNsRCwrREFBd0Q7QUFHakQsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLE9BQXFDLEVBQTZCLEVBQUUsQ0FBQyxDQUc1RyxJQUErQixFQUMvQixPQUFnQyxFQUNMLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBZ0MsRUFBdUMsRUFBRTtJQUM5RyxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUEyQixDQUFDO0lBQ2hFLElBQUksbUJBQW1CLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzdCLElBQUksMkJBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDbkMsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQzFCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1NBQy9CO2FBQU0sSUFBSSwwQkFBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sU0FBUyxHQUFHLHVCQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkMsTUFBTSxZQUFZLEdBQUcscUNBQWUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQzdELE1BQU0sRUFBRSxTQUFTLEVBQUUsYUFBYSxHQUFHLFlBQVksRUFBRSxHQUFHLENBQUMsTUFBTSxPQUFPLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0csTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEQsTUFBTSxF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LHVCQUF1QiwyQkFJakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBCdWlsZEhhbmRsZXIsXG4gIEJ1aWxkSGFuZGxlckFyZ3VtZW50cyxcbiAgQnVpbGRIYW5kbGVyT3V0cHV0LFxuICBCdWlsZE1pZGRsZXdhcmUsXG4gIEhhbmRsZXJFeGVjdXRpb25Db250ZXh0LFxuICBNZXRhZGF0YUJlYXJlcixcbiAgUGx1Z2dhYmxlLFxuICBSZWxhdGl2ZU1pZGRsZXdhcmVPcHRpb25zLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlQXJuLCB2YWxpZGF0ZSBhcyB2YWxpZGF0ZUFybiB9IGZyb20gXCJAYXdzLXNkay91dGlsLWFybi1wYXJzZXJcIjtcblxuaW1wb3J0IHsgYnVja2V0SG9zdG5hbWUgfSBmcm9tIFwiLi9idWNrZXRIb3N0bmFtZVwiO1xuaW1wb3J0IHsgZ2V0UHNldWRvUmVnaW9uIH0gZnJvbSBcIi4vYnVja2V0SG9zdG5hbWVVdGlsc1wiO1xuaW1wb3J0IHsgQnVja2V0RW5kcG9pbnRSZXNvbHZlZENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5cbmV4cG9ydCBjb25zdCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmUgPSAob3B0aW9uczogQnVja2V0RW5kcG9pbnRSZXNvbHZlZENvbmZpZyk6IEJ1aWxkTWlkZGxld2FyZTxhbnksIGFueT4gPT4gPFxuICBPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlclxuPihcbiAgbmV4dDogQnVpbGRIYW5kbGVyPGFueSwgT3V0cHV0PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IEJ1aWxkSGFuZGxlcjxhbnksIE91dHB1dD4gPT4gYXN5bmMgKGFyZ3M6IEJ1aWxkSGFuZGxlckFyZ3VtZW50czxhbnk+KTogUHJvbWlzZTxCdWlsZEhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICBjb25zdCB7IEJ1Y2tldDogYnVja2V0TmFtZSB9ID0gYXJncy5pbnB1dCBhcyB7IEJ1Y2tldDogc3RyaW5nIH07XG4gIGxldCByZXBsYWNlQnVja2V0SW5QYXRoID0gb3B0aW9ucy5idWNrZXRFbmRwb2ludDtcbiAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgaWYgKEh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UocmVxdWVzdCkpIHtcbiAgICBpZiAob3B0aW9ucy5idWNrZXRFbmRwb2ludCkge1xuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGJ1Y2tldE5hbWU7XG4gICAgfSBlbHNlIGlmICh2YWxpZGF0ZUFybihidWNrZXROYW1lKSkge1xuICAgICAgY29uc3QgYnVja2V0QXJuID0gcGFyc2VBcm4oYnVja2V0TmFtZSk7XG4gICAgICBjb25zdCBjbGllbnRSZWdpb24gPSBnZXRQc2V1ZG9SZWdpb24oYXdhaXQgb3B0aW9ucy5yZWdpb24oKSk7XG4gICAgICBjb25zdCB7IHBhcnRpdGlvbiwgc2lnbmluZ1JlZ2lvbiA9IGNsaWVudFJlZ2lvbiB9ID0gKGF3YWl0IG9wdGlvbnMucmVnaW9uSW5mb1Byb3ZpZGVyKGNsaWVudFJlZ2lvbikpIHx8IHt9O1xuICAgICAgY29uc3QgdXNlQXJuUmVnaW9uID0gYXdhaXQgb3B0aW9ucy51c2VBcm5SZWdpb24oKTtcbiAgICAgIGNvbnN0IHsgaG9zdG5hbWUsIGJ1Y2tldEVuZHBvaW50LCBzaWduaW5nUmVnaW9uOiBtb2RpZmllZFNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH0gPSBidWNrZXRIb3N0bmFtZSh7XG4gICAgICAgIGJ1Y2tldE5hbWU6IGJ1Y2tldEFybixcbiAgICAgICAgYmFzZUhvc3RuYW1lOiByZXF1ZXN0Lmhvc3RuYW1lLFxuICAgICAgICBhY2NlbGVyYXRlRW5kcG9pbnQ6IG9wdGlvbnMudXNlQWNjZWxlcmF0ZUVuZHBvaW50LFxuICAgICAgICBkdWFsc3RhY2tFbmRwb2ludDogb3B0aW9ucy51c2VEdWFsc3RhY2tFbmRwb2ludCxcbiAgICAgICAgcGF0aFN0eWxlRW5kcG9pbnQ6IG9wdGlvbnMuZm9yY2VQYXRoU3R5bGUsXG4gICAgICAgIHRsc0NvbXBhdGlibGU6IHJlcXVlc3QucHJvdG9jb2wgPT09IFwiaHR0cHM6XCIsXG4gICAgICAgIHVzZUFyblJlZ2lvbixcbiAgICAgICAgY2xpZW50UGFydGl0aW9uOiBwYXJ0aXRpb24sXG4gICAgICAgIGNsaWVudFNpZ25pbmdSZWdpb246IHNpZ25pbmdSZWdpb24sXG4gICAgICAgIGNsaWVudFJlZ2lvbjogY2xpZW50UmVnaW9uLFxuICAgICAgICBpc0N1c3RvbUVuZHBvaW50OiBvcHRpb25zLmlzQ3VzdG9tRW5kcG9pbnQsXG4gICAgICAgIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50czogYXdhaXQgb3B0aW9ucy5kaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMoKSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBJZiB0aGUgcmVxdWVzdCBuZWVkcyB0byB1c2UgYSByZWdpb24gb3Igc2VydmljZSBuYW1lIGluZmVycmVkIGZyb20gQVJOIHRoYXQgZGlmZmVyZW50IGZyb20gY2xpZW50IHJlZ2lvbiwgd2VcbiAgICAgIC8vIG5lZWQgdG8gc2V0IHRoZW0gaW4gdGhlIGhhbmRsZXIgY29udGV4dCBzbyB0aGUgc2lnbmVyIHdpbGwgdXNlIHRoZW1cbiAgICAgIGlmIChtb2RpZmllZFNpZ25pbmdSZWdpb24gJiYgbW9kaWZpZWRTaWduaW5nUmVnaW9uICE9PSBzaWduaW5nUmVnaW9uKSB7XG4gICAgICAgIGNvbnRleHRbXCJzaWduaW5nX3JlZ2lvblwiXSA9IG1vZGlmaWVkU2lnbmluZ1JlZ2lvbjtcbiAgICAgIH1cbiAgICAgIGlmIChzaWduaW5nU2VydmljZSAmJiBzaWduaW5nU2VydmljZSAhPT0gXCJzM1wiKSB7XG4gICAgICAgIGNvbnRleHRbXCJzaWduaW5nX3NlcnZpY2VcIl0gPSBzaWduaW5nU2VydmljZTtcbiAgICAgIH1cblxuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IGJ1Y2tldEVuZHBvaW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjbGllbnRSZWdpb24gPSBnZXRQc2V1ZG9SZWdpb24oYXdhaXQgb3B0aW9ucy5yZWdpb24oKSk7XG4gICAgICBjb25zdCB7IGhvc3RuYW1lLCBidWNrZXRFbmRwb2ludCB9ID0gYnVja2V0SG9zdG5hbWUoe1xuICAgICAgICBidWNrZXROYW1lLFxuICAgICAgICBjbGllbnRSZWdpb24sXG4gICAgICAgIGJhc2VIb3N0bmFtZTogcmVxdWVzdC5ob3N0bmFtZSxcbiAgICAgICAgYWNjZWxlcmF0ZUVuZHBvaW50OiBvcHRpb25zLnVzZUFjY2VsZXJhdGVFbmRwb2ludCxcbiAgICAgICAgZHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICAgIHBhdGhTdHlsZUVuZHBvaW50OiBvcHRpb25zLmZvcmNlUGF0aFN0eWxlLFxuICAgICAgICB0bHNDb21wYXRpYmxlOiByZXF1ZXN0LnByb3RvY29sID09PSBcImh0dHBzOlwiLFxuICAgICAgICBpc0N1c3RvbUVuZHBvaW50OiBvcHRpb25zLmlzQ3VzdG9tRW5kcG9pbnQsXG4gICAgICB9KTtcblxuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IGJ1Y2tldEVuZHBvaW50O1xuICAgIH1cblxuICAgIGlmIChyZXBsYWNlQnVja2V0SW5QYXRoKSB7XG4gICAgICByZXF1ZXN0LnBhdGggPSByZXF1ZXN0LnBhdGgucmVwbGFjZSgvXihcXC8pP1teXFwvXSsvLCBcIlwiKTtcbiAgICAgIGlmIChyZXF1ZXN0LnBhdGggPT09IFwiXCIpIHtcbiAgICAgICAgcmVxdWVzdC5wYXRoID0gXCIvXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5leHQoeyAuLi5hcmdzLCByZXF1ZXN0IH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnM6IFJlbGF0aXZlTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gIHRhZ3M6IFtcIkJVQ0tFVF9FTkRQT0lOVFwiXSxcbiAgbmFtZTogXCJidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVcIixcbiAgcmVsYXRpb246IFwiYmVmb3JlXCIsXG4gIHRvTWlkZGxld2FyZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCdWNrZXRFbmRwb2ludFBsdWdpbiA9IChvcHRpb25zOiBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlKG9wdGlvbnMpLCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bucketHostname = void 0;
|
|
4
|
+
const bucketHostnameUtils_1 = require("./bucketHostnameUtils");
|
|
5
|
+
const bucketHostname = (options) => {
|
|
6
|
+
bucketHostnameUtils_1.validateCustomEndpoint(options);
|
|
7
|
+
return bucketHostnameUtils_1.isBucketNameOptions(options)
|
|
8
|
+
?
|
|
9
|
+
getEndpointFromBucketName(options)
|
|
10
|
+
:
|
|
11
|
+
getEndpointFromArn(options);
|
|
12
|
+
};
|
|
13
|
+
exports.bucketHostname = bucketHostname;
|
|
14
|
+
const getEndpointFromBucketName = ({ accelerateEndpoint = false, clientRegion: region, baseHostname, bucketName, dualstackEndpoint = false, pathStyleEndpoint = false, tlsCompatible = true, isCustomEndpoint = false, }) => {
|
|
15
|
+
const [clientRegion, hostnameSuffix] = isCustomEndpoint ? [region, baseHostname] : bucketHostnameUtils_1.getSuffix(baseHostname);
|
|
16
|
+
if (pathStyleEndpoint || !bucketHostnameUtils_1.isDnsCompatibleBucketName(bucketName) || (tlsCompatible && bucketHostnameUtils_1.DOT_PATTERN.test(bucketName))) {
|
|
17
|
+
return {
|
|
18
|
+
bucketEndpoint: false,
|
|
19
|
+
hostname: dualstackEndpoint ? `s3.dualstack.${clientRegion}.${hostnameSuffix}` : baseHostname,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
if (accelerateEndpoint) {
|
|
23
|
+
baseHostname = `s3-accelerate${dualstackEndpoint ? ".dualstack" : ""}.${hostnameSuffix}`;
|
|
24
|
+
}
|
|
25
|
+
else if (dualstackEndpoint) {
|
|
26
|
+
baseHostname = `s3.dualstack.${clientRegion}.${hostnameSuffix}`;
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
bucketEndpoint: true,
|
|
30
|
+
hostname: `${bucketName}.${baseHostname}`,
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
const getEndpointFromArn = (options) => {
|
|
34
|
+
const { isCustomEndpoint, baseHostname, clientRegion } = options;
|
|
35
|
+
const hostnameSuffix = isCustomEndpoint ? baseHostname : bucketHostnameUtils_1.getSuffixForArnEndpoint(baseHostname)[1];
|
|
36
|
+
const { pathStyleEndpoint, accelerateEndpoint = false, tlsCompatible = true, bucketName, clientPartition = "aws", } = options;
|
|
37
|
+
bucketHostnameUtils_1.validateArnEndpointOptions({ pathStyleEndpoint, accelerateEndpoint, tlsCompatible });
|
|
38
|
+
const { service, partition, accountId, region, resource } = bucketName;
|
|
39
|
+
bucketHostnameUtils_1.validateService(service);
|
|
40
|
+
bucketHostnameUtils_1.validatePartition(partition, { clientPartition });
|
|
41
|
+
bucketHostnameUtils_1.validateAccountId(accountId);
|
|
42
|
+
const { accesspointName, outpostId } = bucketHostnameUtils_1.getArnResources(resource);
|
|
43
|
+
if (service === "s3-object-lambda") {
|
|
44
|
+
return getEndpointFromObjectLambdaArn({ ...options, tlsCompatible, bucketName, accesspointName, hostnameSuffix });
|
|
45
|
+
}
|
|
46
|
+
if (region === "") {
|
|
47
|
+
return getEndpointFromMRAPArn({ ...options, clientRegion, mrapAlias: accesspointName, hostnameSuffix });
|
|
48
|
+
}
|
|
49
|
+
if (outpostId) {
|
|
50
|
+
return getEndpointFromOutpostArn({ ...options, clientRegion, outpostId, accesspointName, hostnameSuffix });
|
|
51
|
+
}
|
|
52
|
+
return getEndpointFromAccessPointArn({ ...options, clientRegion, accesspointName, hostnameSuffix });
|
|
53
|
+
};
|
|
54
|
+
const getEndpointFromObjectLambdaArn = ({ dualstackEndpoint = false, tlsCompatible = true, useArnRegion, clientRegion, clientSigningRegion = clientRegion, accesspointName, bucketName, hostnameSuffix, }) => {
|
|
55
|
+
const { accountId, region, service } = bucketName;
|
|
56
|
+
bucketHostnameUtils_1.validateRegionalClient(clientRegion);
|
|
57
|
+
bucketHostnameUtils_1.validateRegion(region, { useArnRegion, clientRegion, clientSigningRegion, allowFipsRegion: true });
|
|
58
|
+
bucketHostnameUtils_1.validateNoDualstack(dualstackEndpoint);
|
|
59
|
+
const DNSHostLabel = `${accesspointName}-${accountId}`;
|
|
60
|
+
bucketHostnameUtils_1.validateDNSHostLabel(DNSHostLabel, { tlsCompatible });
|
|
61
|
+
const endpointRegion = useArnRegion ? region : clientRegion;
|
|
62
|
+
const signingRegion = useArnRegion ? region : clientSigningRegion;
|
|
63
|
+
return {
|
|
64
|
+
bucketEndpoint: true,
|
|
65
|
+
hostname: `${DNSHostLabel}.${service}${bucketHostnameUtils_1.isFipsRegion(clientRegion) ? "-fips" : ""}.${bucketHostnameUtils_1.getPseudoRegion(endpointRegion)}.${hostnameSuffix}`,
|
|
66
|
+
signingRegion,
|
|
67
|
+
signingService: service,
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
const getEndpointFromMRAPArn = ({ disableMultiregionAccessPoints, dualstackEndpoint = false, isCustomEndpoint, mrapAlias, hostnameSuffix, }) => {
|
|
71
|
+
if (disableMultiregionAccessPoints === true) {
|
|
72
|
+
throw new Error("SDK is attempting to use a MRAP ARN. Please enable to feature.");
|
|
73
|
+
}
|
|
74
|
+
bucketHostnameUtils_1.validateMrapAlias(mrapAlias);
|
|
75
|
+
bucketHostnameUtils_1.validateNoDualstack(dualstackEndpoint);
|
|
76
|
+
return {
|
|
77
|
+
bucketEndpoint: true,
|
|
78
|
+
hostname: `${mrapAlias}${isCustomEndpoint ? "" : `.accesspoint.s3-global`}.${hostnameSuffix}`,
|
|
79
|
+
signingRegion: "*",
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
const getEndpointFromOutpostArn = ({ useArnRegion, clientRegion, clientSigningRegion = clientRegion, bucketName, outpostId, dualstackEndpoint = false, tlsCompatible = true, accesspointName, isCustomEndpoint, hostnameSuffix, }) => {
|
|
83
|
+
bucketHostnameUtils_1.validateRegionalClient(clientRegion);
|
|
84
|
+
bucketHostnameUtils_1.validateRegion(bucketName.region, { useArnRegion, clientRegion, clientSigningRegion });
|
|
85
|
+
const DNSHostLabel = `${accesspointName}-${bucketName.accountId}`;
|
|
86
|
+
bucketHostnameUtils_1.validateDNSHostLabel(DNSHostLabel, { tlsCompatible });
|
|
87
|
+
const endpointRegion = useArnRegion ? bucketName.region : clientRegion;
|
|
88
|
+
const signingRegion = useArnRegion ? bucketName.region : clientSigningRegion;
|
|
89
|
+
bucketHostnameUtils_1.validateOutpostService(bucketName.service);
|
|
90
|
+
bucketHostnameUtils_1.validateDNSHostLabel(outpostId, { tlsCompatible });
|
|
91
|
+
bucketHostnameUtils_1.validateNoDualstack(dualstackEndpoint);
|
|
92
|
+
bucketHostnameUtils_1.validateNoFIPS(endpointRegion);
|
|
93
|
+
const hostnamePrefix = `${DNSHostLabel}.${outpostId}`;
|
|
94
|
+
return {
|
|
95
|
+
bucketEndpoint: true,
|
|
96
|
+
hostname: `${hostnamePrefix}${isCustomEndpoint ? "" : `.s3-outposts.${endpointRegion}`}.${hostnameSuffix}`,
|
|
97
|
+
signingRegion,
|
|
98
|
+
signingService: "s3-outposts",
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
const getEndpointFromAccessPointArn = ({ useArnRegion, clientRegion, clientSigningRegion = clientRegion, bucketName, dualstackEndpoint = false, tlsCompatible = true, accesspointName, isCustomEndpoint, hostnameSuffix, }) => {
|
|
102
|
+
bucketHostnameUtils_1.validateRegionalClient(clientRegion);
|
|
103
|
+
bucketHostnameUtils_1.validateRegion(bucketName.region, { useArnRegion, clientRegion, clientSigningRegion, allowFipsRegion: true });
|
|
104
|
+
const hostnamePrefix = `${accesspointName}-${bucketName.accountId}`;
|
|
105
|
+
bucketHostnameUtils_1.validateDNSHostLabel(hostnamePrefix, { tlsCompatible });
|
|
106
|
+
const endpointRegion = useArnRegion ? bucketName.region : clientRegion;
|
|
107
|
+
const signingRegion = useArnRegion ? bucketName.region : clientSigningRegion;
|
|
108
|
+
bucketHostnameUtils_1.validateS3Service(bucketName.service);
|
|
109
|
+
return {
|
|
110
|
+
bucketEndpoint: true,
|
|
111
|
+
hostname: `${hostnamePrefix}${isCustomEndpoint
|
|
112
|
+
? ""
|
|
113
|
+
: `.s3-accesspoint${bucketHostnameUtils_1.isFipsRegion(clientRegion) ? "-fips" : ""}${dualstackEndpoint ? ".dualstack" : ""}.${bucketHostnameUtils_1.getPseudoRegion(endpointRegion)}`}.${hostnameSuffix}`,
|
|
114
|
+
signingRegion,
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVja2V0SG9zdG5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsK0RBd0IrQjtBQVN4QixNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQWlELEVBQWtCLEVBQUU7SUFDbEcsNENBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsT0FBTyx5Q0FBbUIsQ0FBQyxPQUFPLENBQUM7UUFDakMsQ0FBQztZQUNDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQztRQUNwQyxDQUFDO1lBQ0Msa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBUFcsUUFBQSxjQUFjLGtCQU96QjtBQUVGLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxFQUNqQyxrQkFBa0IsR0FBRyxLQUFLLEVBQzFCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLFlBQVksRUFDWixVQUFVLEVBQ1YsaUJBQWlCLEdBQUcsS0FBSyxFQUN6QixpQkFBaUIsR0FBRyxLQUFLLEVBQ3pCLGFBQWEsR0FBRyxJQUFJLEVBQ3BCLGdCQUFnQixHQUFHLEtBQUssR0FDSCxFQUFrQixFQUFFO0lBQ3pDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQywrQkFBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzNHLElBQUksaUJBQWlCLElBQUksQ0FBQywrQ0FBeUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxpQ0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFO1FBQ2xILE9BQU87WUFDTCxjQUFjLEVBQUUsS0FBSztZQUNyQixRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixZQUFZLElBQUksY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVk7U0FDOUYsQ0FBQztLQUNIO0lBRUQsSUFBSSxrQkFBa0IsRUFBRTtRQUN0QixZQUFZLEdBQUcsZ0JBQWdCLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxjQUFjLEVBQUUsQ0FBQztLQUMxRjtTQUFNLElBQUksaUJBQWlCLEVBQUU7UUFDNUIsWUFBWSxHQUFHLGdCQUFnQixZQUFZLElBQUksY0FBYyxFQUFFLENBQUM7S0FDakU7SUFFRCxPQUFPO1FBQ0wsY0FBYyxFQUFFLElBQUk7UUFDcEIsUUFBUSxFQUFFLEdBQUcsVUFBVSxJQUFJLFlBQVksRUFBRTtLQUMxQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQTBCLEVBQWtCLEVBQUU7SUFDeEUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDakUsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsNkNBQXVCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFbEcsTUFBTSxFQUNKLGlCQUFpQixFQUNqQixrQkFBa0IsR0FBRyxLQUFLLEVBQzFCLGFBQWEsR0FBRyxJQUFJLEVBQ3BCLFVBQVUsRUFDVixlQUFlLEdBQUcsS0FBSyxHQUN4QixHQUFHLE9BQU8sQ0FBQztJQUVaLGdEQUEwQixDQUFDLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUdyRixNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLFVBQVUsQ0FBQztJQUN2RSxxQ0FBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLHVDQUFpQixDQUFDLFNBQVMsRUFBRSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDbEQsdUNBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0IsTUFBTSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsR0FBRyxxQ0FBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLElBQUksT0FBTyxLQUFLLGtCQUFrQixFQUFFO1FBQ2xDLE9BQU8sOEJBQThCLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0tBQ25IO0lBQ0QsSUFBSSxNQUFNLEtBQUssRUFBRSxFQUFFO1FBQ2pCLE9BQU8sc0JBQXNCLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0tBQ3pHO0lBQ0QsSUFBSSxTQUFTLEVBQUU7UUFDYixPQUFPLHlCQUF5QixDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztLQUM1RztJQUNELE9BQU8sNkJBQTZCLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7QUFDdEcsQ0FBQyxDQUFDO0FBRUYsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLEVBQ3RDLGlCQUFpQixHQUFHLEtBQUssRUFDekIsYUFBYSxHQUFHLElBQUksRUFDcEIsWUFBWSxFQUNaLFlBQVksRUFDWixtQkFBbUIsR0FBRyxZQUFZLEVBQ2xDLGVBQWUsRUFDZixVQUFVLEVBQ1YsY0FBYyxHQUtmLEVBQWtCLEVBQUU7SUFDbkIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsVUFBVSxDQUFDO0lBQ2xELDRDQUFzQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3JDLG9DQUFjLENBQUMsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRyx5Q0FBbUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sWUFBWSxHQUFHLEdBQUcsZUFBZSxJQUFJLFNBQVMsRUFBRSxDQUFDO0lBQ3ZELDBDQUFvQixDQUFDLFlBQVksRUFBRSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFFdEQsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUM1RCxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUM7SUFFbEUsT0FBTztRQUNMLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFFBQVEsRUFBRSxHQUFHLFlBQVksSUFBSSxPQUFPLEdBQUcsa0NBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUkscUNBQWUsQ0FDakcsY0FBYyxDQUNmLElBQUksY0FBYyxFQUFFO1FBQ3JCLGFBQWE7UUFDYixjQUFjLEVBQUUsT0FBTztLQUN4QixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEVBQzlCLDhCQUE4QixFQUM5QixpQkFBaUIsR0FBRyxLQUFLLEVBQ3pCLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsY0FBYyxHQUNvRCxFQUFrQixFQUFFO0lBRXRGLElBQUksOEJBQThCLEtBQUssSUFBSSxFQUFFO1FBQzNDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztLQUNuRjtJQUNELHVDQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdCLHlDQUFtQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsT0FBTztRQUNMLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFFBQVEsRUFBRSxHQUFHLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsSUFBSSxjQUFjLEVBQUU7UUFDN0YsYUFBYSxFQUFFLEdBQUc7S0FDbkIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxFQUNqQyxZQUFZLEVBQ1osWUFBWSxFQUNaLG1CQUFtQixHQUFHLFlBQVksRUFDbEMsVUFBVSxFQUNWLFNBQVMsRUFDVCxpQkFBaUIsR0FBRyxLQUFLLEVBQ3pCLGFBQWEsR0FBRyxJQUFJLEVBQ3BCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsY0FBYyxHQUM2RSxFQUFrQixFQUFFO0lBRS9HLDRDQUFzQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3JDLG9DQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLE1BQU0sWUFBWSxHQUFHLEdBQUcsZUFBZSxJQUFJLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNsRSwwQ0FBb0IsQ0FBQyxZQUFZLEVBQUUsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3ZFLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUM7SUFDN0UsNENBQXNCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLDBDQUFvQixDQUFDLFNBQVMsRUFBRSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDbkQseUNBQW1CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN2QyxvQ0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQy9CLE1BQU0sY0FBYyxHQUFHLEdBQUcsWUFBWSxJQUFJLFNBQVMsRUFBRSxDQUFDO0lBQ3RELE9BQU87UUFDTCxjQUFjLEVBQUUsSUFBSTtRQUNwQixRQUFRLEVBQUUsR0FBRyxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLGNBQWMsRUFBRSxJQUFJLGNBQWMsRUFBRTtRQUMxRyxhQUFhO1FBQ2IsY0FBYyxFQUFFLGFBQWE7S0FDOUIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sNkJBQTZCLEdBQUcsQ0FBQyxFQUNyQyxZQUFZLEVBQ1osWUFBWSxFQUNaLG1CQUFtQixHQUFHLFlBQVksRUFDbEMsVUFBVSxFQUNWLGlCQUFpQixHQUFHLEtBQUssRUFDekIsYUFBYSxHQUFHLElBQUksRUFDcEIsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixjQUFjLEdBQzBELEVBQWtCLEVBQUU7SUFFNUYsNENBQXNCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckMsb0NBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RyxNQUFNLGNBQWMsR0FBRyxHQUFHLGVBQWUsSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDcEUsMENBQW9CLENBQUMsY0FBYyxFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUN4RCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUN2RSxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO0lBQzdFLHVDQUFpQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxPQUFPO1FBQ0wsY0FBYyxFQUFFLElBQUk7UUFDcEIsUUFBUSxFQUFFLEdBQUcsY0FBYyxHQUN6QixnQkFBZ0I7WUFDZCxDQUFDLENBQUMsRUFBRTtZQUNKLENBQUMsQ0FBQyxrQkFBa0Isa0NBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQ3pELGlCQUFpQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQ3JDLElBQUkscUNBQWUsQ0FBQyxjQUFjLENBQUMsRUFDekMsSUFBSSxjQUFjLEVBQUU7UUFDcEIsYUFBYTtLQUNkLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUk4gfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1hcm4tcGFyc2VyXCI7XG5cbmltcG9ydCB7XG4gIEFybkhvc3RuYW1lUGFyYW1zLFxuICBCdWNrZXRIb3N0bmFtZVBhcmFtcyxcbiAgRE9UX1BBVFRFUk4sXG4gIGdldEFyblJlc291cmNlcyxcbiAgZ2V0UHNldWRvUmVnaW9uLFxuICBnZXRTdWZmaXgsXG4gIGdldFN1ZmZpeEZvckFybkVuZHBvaW50LFxuICBpc0J1Y2tldE5hbWVPcHRpb25zLFxuICBpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lLFxuICBpc0ZpcHNSZWdpb24sXG4gIHZhbGlkYXRlQWNjb3VudElkLFxuICB2YWxpZGF0ZUFybkVuZHBvaW50T3B0aW9ucyxcbiAgdmFsaWRhdGVDdXN0b21FbmRwb2ludCxcbiAgdmFsaWRhdGVETlNIb3N0TGFiZWwsXG4gIHZhbGlkYXRlTXJhcEFsaWFzLFxuICB2YWxpZGF0ZU5vRHVhbHN0YWNrLFxuICB2YWxpZGF0ZU5vRklQUyxcbiAgdmFsaWRhdGVPdXRwb3N0U2VydmljZSxcbiAgdmFsaWRhdGVQYXJ0aXRpb24sXG4gIHZhbGlkYXRlUmVnaW9uLFxuICB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50LFxuICB2YWxpZGF0ZVMzU2VydmljZSxcbiAgdmFsaWRhdGVTZXJ2aWNlLFxufSBmcm9tIFwiLi9idWNrZXRIb3N0bmFtZVV0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0SG9zdG5hbWUge1xuICBob3N0bmFtZTogc3RyaW5nO1xuICBidWNrZXRFbmRwb2ludDogYm9vbGVhbjtcbiAgc2lnbmluZ1JlZ2lvbj86IHN0cmluZztcbiAgc2lnbmluZ1NlcnZpY2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBidWNrZXRIb3N0bmFtZSA9IChvcHRpb25zOiBCdWNrZXRIb3N0bmFtZVBhcmFtcyB8IEFybkhvc3RuYW1lUGFyYW1zKTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICB2YWxpZGF0ZUN1c3RvbUVuZHBvaW50KG9wdGlvbnMpO1xuICByZXR1cm4gaXNCdWNrZXROYW1lT3B0aW9ucyhvcHRpb25zKVxuICAgID8gLy8gQ29uc3RydWN0IGVuZHBvaW50IHdoZW4gYnVja2V0TmFtZSBpcyBhIHN0cmluZyByZWZlcnJpbmcgdG8gYSBidWNrZXQgbmFtZVxuICAgICAgZ2V0RW5kcG9pbnRGcm9tQnVja2V0TmFtZShvcHRpb25zKVxuICAgIDogLy8gQ29uc3RydWN0IGVuZHBvaW50IHdoZW4gYnVja2V0TmFtZSBpcyBhbiBBUk4gcmVmZXJyaW5nIHRvIGFuIFMzIHJlc291cmNlIGxpa2UgQWNjZXNzIFBvaW50XG4gICAgICBnZXRFbmRwb2ludEZyb21Bcm4ob3B0aW9ucyk7XG59O1xuXG5jb25zdCBnZXRFbmRwb2ludEZyb21CdWNrZXROYW1lID0gKHtcbiAgYWNjZWxlcmF0ZUVuZHBvaW50ID0gZmFsc2UsXG4gIGNsaWVudFJlZ2lvbjogcmVnaW9uLFxuICBiYXNlSG9zdG5hbWUsXG4gIGJ1Y2tldE5hbWUsXG4gIGR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gIHBhdGhTdHlsZUVuZHBvaW50ID0gZmFsc2UsXG4gIHRsc0NvbXBhdGlibGUgPSB0cnVlLFxuICBpc0N1c3RvbUVuZHBvaW50ID0gZmFsc2UsXG59OiBCdWNrZXRIb3N0bmFtZVBhcmFtcyk6IEJ1Y2tldEhvc3RuYW1lID0+IHtcbiAgY29uc3QgW2NsaWVudFJlZ2lvbiwgaG9zdG5hbWVTdWZmaXhdID0gaXNDdXN0b21FbmRwb2ludCA/IFtyZWdpb24sIGJhc2VIb3N0bmFtZV0gOiBnZXRTdWZmaXgoYmFzZUhvc3RuYW1lKTtcbiAgaWYgKHBhdGhTdHlsZUVuZHBvaW50IHx8ICFpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lKGJ1Y2tldE5hbWUpIHx8ICh0bHNDb21wYXRpYmxlICYmIERPVF9QQVRURVJOLnRlc3QoYnVja2V0TmFtZSkpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1Y2tldEVuZHBvaW50OiBmYWxzZSxcbiAgICAgIGhvc3RuYW1lOiBkdWFsc3RhY2tFbmRwb2ludCA/IGBzMy5kdWFsc3RhY2suJHtjbGllbnRSZWdpb259LiR7aG9zdG5hbWVTdWZmaXh9YCA6IGJhc2VIb3N0bmFtZSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGFjY2VsZXJhdGVFbmRwb2ludCkge1xuICAgIGJhc2VIb3N0bmFtZSA9IGBzMy1hY2NlbGVyYXRlJHtkdWFsc3RhY2tFbmRwb2ludCA/IFwiLmR1YWxzdGFja1wiIDogXCJcIn0uJHtob3N0bmFtZVN1ZmZpeH1gO1xuICB9IGVsc2UgaWYgKGR1YWxzdGFja0VuZHBvaW50KSB7XG4gICAgYmFzZUhvc3RuYW1lID0gYHMzLmR1YWxzdGFjay4ke2NsaWVudFJlZ2lvbn0uJHtob3N0bmFtZVN1ZmZpeH1gO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBidWNrZXRFbmRwb2ludDogdHJ1ZSxcbiAgICBob3N0bmFtZTogYCR7YnVja2V0TmFtZX0uJHtiYXNlSG9zdG5hbWV9YCxcbiAgfTtcbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbUFybiA9IChvcHRpb25zOiBBcm5Ib3N0bmFtZVBhcmFtcyk6IEJ1Y2tldEhvc3RuYW1lID0+IHtcbiAgY29uc3QgeyBpc0N1c3RvbUVuZHBvaW50LCBiYXNlSG9zdG5hbWUsIGNsaWVudFJlZ2lvbiB9ID0gb3B0aW9ucztcbiAgY29uc3QgaG9zdG5hbWVTdWZmaXggPSBpc0N1c3RvbUVuZHBvaW50ID8gYmFzZUhvc3RuYW1lIDogZ2V0U3VmZml4Rm9yQXJuRW5kcG9pbnQoYmFzZUhvc3RuYW1lKVsxXTtcblxuICBjb25zdCB7XG4gICAgcGF0aFN0eWxlRW5kcG9pbnQsXG4gICAgYWNjZWxlcmF0ZUVuZHBvaW50ID0gZmFsc2UsXG4gICAgdGxzQ29tcGF0aWJsZSA9IHRydWUsXG4gICAgYnVja2V0TmFtZSxcbiAgICBjbGllbnRQYXJ0aXRpb24gPSBcImF3c1wiLFxuICB9ID0gb3B0aW9ucztcblxuICB2YWxpZGF0ZUFybkVuZHBvaW50T3B0aW9ucyh7IHBhdGhTdHlsZUVuZHBvaW50LCBhY2NlbGVyYXRlRW5kcG9pbnQsIHRsc0NvbXBhdGlibGUgfSk7XG5cbiAgLy8gVmFsaWRhdGUgYW5kIHBhcnNlIHRoZSBBUk4gc3VwcGxpZWQgYXMgYSBidWNrZXQgbmFtZVxuICBjb25zdCB7IHNlcnZpY2UsIHBhcnRpdGlvbiwgYWNjb3VudElkLCByZWdpb24sIHJlc291cmNlIH0gPSBidWNrZXROYW1lO1xuICB2YWxpZGF0ZVNlcnZpY2Uoc2VydmljZSk7XG4gIHZhbGlkYXRlUGFydGl0aW9uKHBhcnRpdGlvbiwgeyBjbGllbnRQYXJ0aXRpb24gfSk7XG4gIHZhbGlkYXRlQWNjb3VudElkKGFjY291bnRJZCk7XG4gIGNvbnN0IHsgYWNjZXNzcG9pbnROYW1lLCBvdXRwb3N0SWQgfSA9IGdldEFyblJlc291cmNlcyhyZXNvdXJjZSk7XG4gIGlmIChzZXJ2aWNlID09PSBcInMzLW9iamVjdC1sYW1iZGFcIikge1xuICAgIHJldHVybiBnZXRFbmRwb2ludEZyb21PYmplY3RMYW1iZGFBcm4oeyAuLi5vcHRpb25zLCB0bHNDb21wYXRpYmxlLCBidWNrZXROYW1lLCBhY2Nlc3Nwb2ludE5hbWUsIGhvc3RuYW1lU3VmZml4IH0pO1xuICB9XG4gIGlmIChyZWdpb24gPT09IFwiXCIpIHtcbiAgICByZXR1cm4gZ2V0RW5kcG9pbnRGcm9tTVJBUEFybih7IC4uLm9wdGlvbnMsIGNsaWVudFJlZ2lvbiwgbXJhcEFsaWFzOiBhY2Nlc3Nwb2ludE5hbWUsIGhvc3RuYW1lU3VmZml4IH0pO1xuICB9XG4gIGlmIChvdXRwb3N0SWQpIHtcbiAgICByZXR1cm4gZ2V0RW5kcG9pbnRGcm9tT3V0cG9zdEFybih7IC4uLm9wdGlvbnMsIGNsaWVudFJlZ2lvbiwgb3V0cG9zdElkLCBhY2Nlc3Nwb2ludE5hbWUsIGhvc3RuYW1lU3VmZml4IH0pO1xuICB9XG4gIHJldHVybiBnZXRFbmRwb2ludEZyb21BY2Nlc3NQb2ludEFybih7IC4uLm9wdGlvbnMsIGNsaWVudFJlZ2lvbiwgYWNjZXNzcG9pbnROYW1lLCBob3N0bmFtZVN1ZmZpeCB9KTtcbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbU9iamVjdExhbWJkYUFybiA9ICh7XG4gIGR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gIHRsc0NvbXBhdGlibGUgPSB0cnVlLFxuICB1c2VBcm5SZWdpb24sXG4gIGNsaWVudFJlZ2lvbixcbiAgY2xpZW50U2lnbmluZ1JlZ2lvbiA9IGNsaWVudFJlZ2lvbixcbiAgYWNjZXNzcG9pbnROYW1lLFxuICBidWNrZXROYW1lLFxuICBob3N0bmFtZVN1ZmZpeCxcbn06IEFybkhvc3RuYW1lUGFyYW1zICYge1xuICBhY2Nlc3Nwb2ludE5hbWU6IHN0cmluZztcbiAgYnVja2V0TmFtZTogQVJOO1xuICBob3N0bmFtZVN1ZmZpeDogc3RyaW5nO1xufSk6IEJ1Y2tldEhvc3RuYW1lID0+IHtcbiAgY29uc3QgeyBhY2NvdW50SWQsIHJlZ2lvbiwgc2VydmljZSB9ID0gYnVja2V0TmFtZTtcbiAgdmFsaWRhdGVSZWdpb25hbENsaWVudChjbGllbnRSZWdpb24pO1xuICB2YWxpZGF0ZVJlZ2lvbihyZWdpb24sIHsgdXNlQXJuUmVnaW9uLCBjbGllbnRSZWdpb24sIGNsaWVudFNpZ25pbmdSZWdpb24sIGFsbG93Rmlwc1JlZ2lvbjogdHJ1ZSB9KTtcbiAgdmFsaWRhdGVOb0R1YWxzdGFjayhkdWFsc3RhY2tFbmRwb2ludCk7XG4gIGNvbnN0IEROU0hvc3RMYWJlbCA9IGAke2FjY2Vzc3BvaW50TmFtZX0tJHthY2NvdW50SWR9YDtcbiAgdmFsaWRhdGVETlNIb3N0TGFiZWwoRE5TSG9zdExhYmVsLCB7IHRsc0NvbXBhdGlibGUgfSk7XG5cbiAgY29uc3QgZW5kcG9pbnRSZWdpb24gPSB1c2VBcm5SZWdpb24gPyByZWdpb24gOiBjbGllbnRSZWdpb247XG4gIGNvbnN0IHNpZ25pbmdSZWdpb24gPSB1c2VBcm5SZWdpb24gPyByZWdpb24gOiBjbGllbnRTaWduaW5nUmVnaW9uO1xuXG4gIHJldHVybiB7XG4gICAgYnVja2V0RW5kcG9pbnQ6IHRydWUsXG4gICAgaG9zdG5hbWU6IGAke0ROU0hvc3RMYWJlbH0uJHtzZXJ2aWNlfSR7aXNGaXBzUmVnaW9uKGNsaWVudFJlZ2lvbikgPyBcIi1maXBzXCIgOiBcIlwifS4ke2dldFBzZXVkb1JlZ2lvbihcbiAgICAgIGVuZHBvaW50UmVnaW9uXG4gICAgKX0uJHtob3N0bmFtZVN1ZmZpeH1gLFxuICAgIHNpZ25pbmdSZWdpb24sXG4gICAgc2lnbmluZ1NlcnZpY2U6IHNlcnZpY2UsXG4gIH07XG59O1xuXG5jb25zdCBnZXRFbmRwb2ludEZyb21NUkFQQXJuID0gKHtcbiAgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzLFxuICBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLFxuICBpc0N1c3RvbUVuZHBvaW50LFxuICBtcmFwQWxpYXMsXG4gIGhvc3RuYW1lU3VmZml4LFxufTogQXJuSG9zdG5hbWVQYXJhbXMgJiB7IG1yYXBBbGlhczogc3RyaW5nOyBob3N0bmFtZVN1ZmZpeDogc3RyaW5nIH0pOiBCdWNrZXRIb3N0bmFtZSA9PiB7XG4gIC8vIElmIHRoaXMgaXMgYSBtdWx0aS1yZWdpb25hbCBhY2Nlc3MgcG9pbnQsIGFuZCBub3QgZXhwbGljaXRseSBvcHRlZCBvdXQuXG4gIGlmIChkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMgPT09IHRydWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJTREsgaXMgYXR0ZW1wdGluZyB0byB1c2UgYSBNUkFQIEFSTi4gUGxlYXNlIGVuYWJsZSB0byBmZWF0dXJlLlwiKTtcbiAgfVxuICB2YWxpZGF0ZU1yYXBBbGlhcyhtcmFwQWxpYXMpO1xuICB2YWxpZGF0ZU5vRHVhbHN0YWNrKGR1YWxzdGFja0VuZHBvaW50KTtcbiAgcmV0dXJuIHtcbiAgICBidWNrZXRFbmRwb2ludDogdHJ1ZSxcbiAgICBob3N0bmFtZTogYCR7bXJhcEFsaWFzfSR7aXNDdXN0b21FbmRwb2ludCA/IFwiXCIgOiBgLmFjY2Vzc3BvaW50LnMzLWdsb2JhbGB9LiR7aG9zdG5hbWVTdWZmaXh9YCxcbiAgICBzaWduaW5nUmVnaW9uOiBcIipcIixcbiAgfTtcbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbU91dHBvc3RBcm4gPSAoe1xuICB1c2VBcm5SZWdpb24sXG4gIGNsaWVudFJlZ2lvbixcbiAgY2xpZW50U2lnbmluZ1JlZ2lvbiA9IGNsaWVudFJlZ2lvbixcbiAgYnVja2V0TmFtZSxcbiAgb3V0cG9zdElkLFxuICBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLFxuICB0bHNDb21wYXRpYmxlID0gdHJ1ZSxcbiAgYWNjZXNzcG9pbnROYW1lLFxuICBpc0N1c3RvbUVuZHBvaW50LFxuICBob3N0bmFtZVN1ZmZpeCxcbn06IEFybkhvc3RuYW1lUGFyYW1zICYgeyBvdXRwb3N0SWQ6IHN0cmluZzsgYWNjZXNzcG9pbnROYW1lOiBzdHJpbmc7IGhvc3RuYW1lU3VmZml4OiBzdHJpbmcgfSk6IEJ1Y2tldEhvc3RuYW1lID0+IHtcbiAgLy8gaWYgdGhpcyBpcyBhbiBPdXRwb3N0IEFSTlxuICB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50KGNsaWVudFJlZ2lvbik7XG4gIHZhbGlkYXRlUmVnaW9uKGJ1Y2tldE5hbWUucmVnaW9uLCB7IHVzZUFyblJlZ2lvbiwgY2xpZW50UmVnaW9uLCBjbGllbnRTaWduaW5nUmVnaW9uIH0pO1xuICBjb25zdCBETlNIb3N0TGFiZWwgPSBgJHthY2Nlc3Nwb2ludE5hbWV9LSR7YnVja2V0TmFtZS5hY2NvdW50SWR9YDtcbiAgdmFsaWRhdGVETlNIb3N0TGFiZWwoRE5TSG9zdExhYmVsLCB7IHRsc0NvbXBhdGlibGUgfSk7XG4gIGNvbnN0IGVuZHBvaW50UmVnaW9uID0gdXNlQXJuUmVnaW9uID8gYnVja2V0TmFtZS5yZWdpb24gOiBjbGllbnRSZWdpb247XG4gIGNvbnN0IHNpZ25pbmdSZWdpb24gPSB1c2VBcm5SZWdpb24gPyBidWNrZXROYW1lLnJlZ2lvbiA6IGNsaWVudFNpZ25pbmdSZWdpb247XG4gIHZhbGlkYXRlT3V0cG9zdFNlcnZpY2UoYnVja2V0TmFtZS5zZXJ2aWNlKTtcbiAgdmFsaWRhdGVETlNIb3N0TGFiZWwob3V0cG9zdElkLCB7IHRsc0NvbXBhdGlibGUgfSk7XG4gIHZhbGlkYXRlTm9EdWFsc3RhY2soZHVhbHN0YWNrRW5kcG9pbnQpO1xuICB2YWxpZGF0ZU5vRklQUyhlbmRwb2ludFJlZ2lvbik7XG4gIGNvbnN0IGhvc3RuYW1lUHJlZml4ID0gYCR7RE5TSG9zdExhYmVsfS4ke291dHBvc3RJZH1gO1xuICByZXR1cm4ge1xuICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgIGhvc3RuYW1lOiBgJHtob3N0bmFtZVByZWZpeH0ke2lzQ3VzdG9tRW5kcG9pbnQgPyBcIlwiIDogYC5zMy1vdXRwb3N0cy4ke2VuZHBvaW50UmVnaW9ufWB9LiR7aG9zdG5hbWVTdWZmaXh9YCxcbiAgICBzaWduaW5nUmVnaW9uLFxuICAgIHNpZ25pbmdTZXJ2aWNlOiBcInMzLW91dHBvc3RzXCIsXG4gIH07XG59O1xuXG5jb25zdCBnZXRFbmRwb2ludEZyb21BY2Nlc3NQb2ludEFybiA9ICh7XG4gIHVzZUFyblJlZ2lvbixcbiAgY2xpZW50UmVnaW9uLFxuICBjbGllbnRTaWduaW5nUmVnaW9uID0gY2xpZW50UmVnaW9uLFxuICBidWNrZXROYW1lLFxuICBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLFxuICB0bHNDb21wYXRpYmxlID0gdHJ1ZSxcbiAgYWNjZXNzcG9pbnROYW1lLFxuICBpc0N1c3RvbUVuZHBvaW50LFxuICBob3N0bmFtZVN1ZmZpeCxcbn06IEFybkhvc3RuYW1lUGFyYW1zICYgeyBhY2Nlc3Nwb2ludE5hbWU6IHN0cmluZzsgaG9zdG5hbWVTdWZmaXg6IHN0cmluZyB9KTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICAvLyBjb25zdHJ1Y3QgZW5kcG9pbnQgZnJvbSBBY2Nlc3Nwb2ludCBBUk5cbiAgdmFsaWRhdGVSZWdpb25hbENsaWVudChjbGllbnRSZWdpb24pO1xuICB2YWxpZGF0ZVJlZ2lvbihidWNrZXROYW1lLnJlZ2lvbiwgeyB1c2VBcm5SZWdpb24sIGNsaWVudFJlZ2lvbiwgY2xpZW50U2lnbmluZ1JlZ2lvbiwgYWxsb3dGaXBzUmVnaW9uOiB0cnVlIH0pO1xuICBjb25zdCBob3N0bmFtZVByZWZpeCA9IGAke2FjY2Vzc3BvaW50TmFtZX0tJHtidWNrZXROYW1lLmFjY291bnRJZH1gO1xuICB2YWxpZGF0ZUROU0hvc3RMYWJlbChob3N0bmFtZVByZWZpeCwgeyB0bHNDb21wYXRpYmxlIH0pO1xuICBjb25zdCBlbmRwb2ludFJlZ2lvbiA9IHVzZUFyblJlZ2lvbiA/IGJ1Y2tldE5hbWUucmVnaW9uIDogY2xpZW50UmVnaW9uO1xuICBjb25zdCBzaWduaW5nUmVnaW9uID0gdXNlQXJuUmVnaW9uID8gYnVja2V0TmFtZS5yZWdpb24gOiBjbGllbnRTaWduaW5nUmVnaW9uO1xuICB2YWxpZGF0ZVMzU2VydmljZShidWNrZXROYW1lLnNlcnZpY2UpO1xuICByZXR1cm4ge1xuICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgIGhvc3RuYW1lOiBgJHtob3N0bmFtZVByZWZpeH0ke1xuICAgICAgaXNDdXN0b21FbmRwb2ludFxuICAgICAgICA/IFwiXCJcbiAgICAgICAgOiBgLnMzLWFjY2Vzc3BvaW50JHtpc0ZpcHNSZWdpb24oY2xpZW50UmVnaW9uKSA/IFwiLWZpcHNcIiA6IFwiXCJ9JHtcbiAgICAgICAgICAgIGR1YWxzdGFja0VuZHBvaW50ID8gXCIuZHVhbHN0YWNrXCIgOiBcIlwiXG4gICAgICAgICAgfS4ke2dldFBzZXVkb1JlZ2lvbihlbmRwb2ludFJlZ2lvbil9YFxuICAgIH0uJHtob3N0bmFtZVN1ZmZpeH1gLFxuICAgIHNpZ25pbmdSZWdpb24sXG4gIH07XG59O1xuIl19
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateMrapAlias = exports.validateNoFIPS = exports.validateNoDualstack = exports.getArnResources = exports.validateCustomEndpoint = exports.validateDNSHostLabel = exports.validateAccountId = exports.isFipsRegion = exports.validateRegionalClient = exports.validateRegion = exports.validatePartition = exports.validateOutpostService = exports.validateS3Service = exports.validateService = exports.validateArnEndpointOptions = exports.getSuffixForArnEndpoint = exports.getSuffix = exports.isDnsCompatibleBucketName = exports.getPseudoRegion = exports.isBucketNameOptions = exports.S3_HOSTNAME_PATTERN = exports.DOT_PATTERN = void 0;
|
|
4
|
+
const DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/;
|
|
5
|
+
const IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/;
|
|
6
|
+
const DOTS_PATTERN = /\.\./;
|
|
7
|
+
exports.DOT_PATTERN = /\./;
|
|
8
|
+
exports.S3_HOSTNAME_PATTERN = /^(.+\.)?s3[.-]([a-z0-9-]+)\./;
|
|
9
|
+
const S3_US_EAST_1_ALTNAME_PATTERN = /^s3(-external-1)?\.amazonaws\.com$/;
|
|
10
|
+
const AWS_PARTITION_SUFFIX = "amazonaws.com";
|
|
11
|
+
const isBucketNameOptions = (options) => typeof options.bucketName === "string";
|
|
12
|
+
exports.isBucketNameOptions = isBucketNameOptions;
|
|
13
|
+
const getPseudoRegion = (region) => (exports.isFipsRegion(region) ? region.replace(/fips-|-fips/, "") : region);
|
|
14
|
+
exports.getPseudoRegion = getPseudoRegion;
|
|
15
|
+
const isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);
|
|
16
|
+
exports.isDnsCompatibleBucketName = isDnsCompatibleBucketName;
|
|
17
|
+
const getRegionalSuffix = (hostname) => {
|
|
18
|
+
const parts = hostname.match(exports.S3_HOSTNAME_PATTERN);
|
|
19
|
+
return [parts[2], hostname.replace(new RegExp(`^${parts[0]}`), "")];
|
|
20
|
+
};
|
|
21
|
+
const getSuffix = (hostname) => S3_US_EAST_1_ALTNAME_PATTERN.test(hostname) ? ["us-east-1", AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname);
|
|
22
|
+
exports.getSuffix = getSuffix;
|
|
23
|
+
const getSuffixForArnEndpoint = (hostname) => S3_US_EAST_1_ALTNAME_PATTERN.test(hostname)
|
|
24
|
+
? [hostname.replace(`.${AWS_PARTITION_SUFFIX}`, ""), AWS_PARTITION_SUFFIX]
|
|
25
|
+
: getRegionalSuffix(hostname);
|
|
26
|
+
exports.getSuffixForArnEndpoint = getSuffixForArnEndpoint;
|
|
27
|
+
const validateArnEndpointOptions = (options) => {
|
|
28
|
+
if (options.pathStyleEndpoint) {
|
|
29
|
+
throw new Error("Path-style S3 endpoint is not supported when bucket is an ARN");
|
|
30
|
+
}
|
|
31
|
+
if (options.accelerateEndpoint) {
|
|
32
|
+
throw new Error("Accelerate endpoint is not supported when bucket is an ARN");
|
|
33
|
+
}
|
|
34
|
+
if (!options.tlsCompatible) {
|
|
35
|
+
throw new Error("HTTPS is required when bucket is an ARN");
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.validateArnEndpointOptions = validateArnEndpointOptions;
|
|
39
|
+
const validateService = (service) => {
|
|
40
|
+
if (service !== "s3" && service !== "s3-outposts" && service !== "s3-object-lambda") {
|
|
41
|
+
throw new Error("Expect 's3' or 's3-outposts' or 's3-object-lambda' in ARN service component");
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
exports.validateService = validateService;
|
|
45
|
+
const validateS3Service = (service) => {
|
|
46
|
+
if (service !== "s3") {
|
|
47
|
+
throw new Error("Expect 's3' in Accesspoint ARN service component");
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
exports.validateS3Service = validateS3Service;
|
|
51
|
+
const validateOutpostService = (service) => {
|
|
52
|
+
if (service !== "s3-outposts") {
|
|
53
|
+
throw new Error("Expect 's3-posts' in Outpost ARN service component");
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
exports.validateOutpostService = validateOutpostService;
|
|
57
|
+
const validatePartition = (partition, options) => {
|
|
58
|
+
if (partition !== options.clientPartition) {
|
|
59
|
+
throw new Error(`Partition in ARN is incompatible, got "${partition}" but expected "${options.clientPartition}"`);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
exports.validatePartition = validatePartition;
|
|
63
|
+
const validateRegion = (region, options) => {
|
|
64
|
+
if (region === "") {
|
|
65
|
+
throw new Error("ARN region is empty");
|
|
66
|
+
}
|
|
67
|
+
if (exports.isFipsRegion(options.clientRegion)) {
|
|
68
|
+
if (!options.allowFipsRegion) {
|
|
69
|
+
throw new Error("FIPS region is not supported");
|
|
70
|
+
}
|
|
71
|
+
else if (!isEqualRegions(region, options.clientRegion)) {
|
|
72
|
+
throw new Error(`Client FIPS region ${options.clientRegion} doesn't match region ${region} in ARN`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (!options.useArnRegion &&
|
|
76
|
+
!isEqualRegions(region, options.clientRegion || "") &&
|
|
77
|
+
!isEqualRegions(region, options.clientSigningRegion || "")) {
|
|
78
|
+
throw new Error(`Region in ARN is incompatible, got ${region} but expected ${options.clientRegion}`);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
exports.validateRegion = validateRegion;
|
|
82
|
+
const validateRegionalClient = (region) => {
|
|
83
|
+
if (["s3-external-1", "aws-global"].includes(exports.getPseudoRegion(region))) {
|
|
84
|
+
throw new Error(`Client region ${region} is not regional`);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
exports.validateRegionalClient = validateRegionalClient;
|
|
88
|
+
const isFipsRegion = (region) => region.startsWith("fips-") || region.endsWith("-fips");
|
|
89
|
+
exports.isFipsRegion = isFipsRegion;
|
|
90
|
+
const isEqualRegions = (regionA, regionB) => regionA === regionB || exports.getPseudoRegion(regionA) === regionB || regionA === exports.getPseudoRegion(regionB);
|
|
91
|
+
const validateAccountId = (accountId) => {
|
|
92
|
+
if (!/[0-9]{12}/.exec(accountId)) {
|
|
93
|
+
throw new Error("Access point ARN accountID does not match regex '[0-9]{12}'");
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
exports.validateAccountId = validateAccountId;
|
|
97
|
+
const validateDNSHostLabel = (label, options = { tlsCompatible: true }) => {
|
|
98
|
+
if (label.length >= 64 ||
|
|
99
|
+
!/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/.test(label) ||
|
|
100
|
+
/(\d+\.){3}\d+/.test(label) ||
|
|
101
|
+
/[.-]{2}/.test(label) ||
|
|
102
|
+
((options === null || options === void 0 ? void 0 : options.tlsCompatible) && exports.DOT_PATTERN.test(label))) {
|
|
103
|
+
throw new Error(`Invalid DNS label ${label}`);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
exports.validateDNSHostLabel = validateDNSHostLabel;
|
|
107
|
+
const validateCustomEndpoint = (options) => {
|
|
108
|
+
if (options.isCustomEndpoint) {
|
|
109
|
+
if (options.dualstackEndpoint)
|
|
110
|
+
throw new Error("Dualstack endpoint is not supported with custom endpoint");
|
|
111
|
+
if (options.accelerateEndpoint)
|
|
112
|
+
throw new Error("Accelerate endpoint is not supported with custom endpoint");
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
exports.validateCustomEndpoint = validateCustomEndpoint;
|
|
116
|
+
const getArnResources = (resource) => {
|
|
117
|
+
const delimiter = resource.includes(":") ? ":" : "/";
|
|
118
|
+
const [resourceType, ...rest] = resource.split(delimiter);
|
|
119
|
+
if (resourceType === "accesspoint") {
|
|
120
|
+
if (rest.length !== 1 || rest[0] === "") {
|
|
121
|
+
throw new Error(`Access Point ARN should have one resource accesspoint${delimiter}{accesspointname}`);
|
|
122
|
+
}
|
|
123
|
+
return { accesspointName: rest[0] };
|
|
124
|
+
}
|
|
125
|
+
else if (resourceType === "outpost") {
|
|
126
|
+
if (!rest[0] || rest[1] !== "accesspoint" || !rest[2] || rest.length !== 3) {
|
|
127
|
+
throw new Error(`Outpost ARN should have resource outpost${delimiter}{outpostId}${delimiter}accesspoint${delimiter}{accesspointName}`);
|
|
128
|
+
}
|
|
129
|
+
const [outpostId, _, accesspointName] = rest;
|
|
130
|
+
return { outpostId, accesspointName };
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
throw new Error(`ARN resource should begin with 'accesspoint${delimiter}' or 'outpost${delimiter}'`);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
exports.getArnResources = getArnResources;
|
|
137
|
+
const validateNoDualstack = (dualstackEndpoint) => {
|
|
138
|
+
if (dualstackEndpoint)
|
|
139
|
+
throw new Error("Dualstack endpoint is not supported with Outpost or Multi-region Access Point ARN.");
|
|
140
|
+
};
|
|
141
|
+
exports.validateNoDualstack = validateNoDualstack;
|
|
142
|
+
const validateNoFIPS = (region) => {
|
|
143
|
+
if (exports.isFipsRegion(region !== null && region !== void 0 ? region : ""))
|
|
144
|
+
throw new Error(`FIPS region is not supported with Outpost, got ${region}`);
|
|
145
|
+
};
|
|
146
|
+
exports.validateNoFIPS = validateNoFIPS;
|
|
147
|
+
const validateMrapAlias = (name) => {
|
|
148
|
+
try {
|
|
149
|
+
name.split(".").forEach((label) => {
|
|
150
|
+
exports.validateDNSHostLabel(label);
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
catch (e) {
|
|
154
|
+
throw new Error(`"${name}" is not a DNS compatible name.`);
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
exports.validateMrapAlias = validateMrapAlias;
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWVVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9idWNrZXRIb3N0bmFtZVV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQU0sY0FBYyxHQUFHLHNDQUFzQyxDQUFDO0FBQzlELE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDO0FBQzNDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztBQUNmLFFBQUEsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNuQixRQUFBLG1CQUFtQixHQUFHLDhCQUE4QixDQUFDO0FBQ2xFLE1BQU0sNEJBQTRCLEdBQUcsb0NBQW9DLENBQUM7QUFDMUUsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUM7QUF5QnRDLE1BQU0sbUJBQW1CLEdBQUcsQ0FDakMsT0FBaUQsRUFDaEIsRUFBRSxDQUFDLE9BQU8sT0FBTyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUM7QUFGaEUsUUFBQSxtQkFBbUIsdUJBRTZDO0FBTXRFLE1BQU0sZUFBZSxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLG9CQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUExRyxRQUFBLGVBQWUsbUJBQTJGO0FBVWhILE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxVQUFrQixFQUFXLEVBQUUsQ0FDdkUsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFEL0YsUUFBQSx5QkFBeUIsNkJBQ3NFO0FBRTVHLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxRQUFnQixFQUFvQixFQUFFO0lBQy9ELE1BQU0s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SUFBSSxDQUFDO1FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUM7S0FDdkM7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLFNBQVMsZ0JBQWdCLFNBQVMsR0FBRyxDQUFDLENBQUM7S0FDdEc7QUFDSCxDQUFDLENBQUM7QUExQlcsUUFBQSxlQUFlLG1CQTBCMUI7QUFNSyxNQUFNLG1CQUFtQixHQUFHLENBQUMsaUJBQTJCLEVBQUUsRUFBRTtJQUNqRSxJQUFJLGlCQUFpQjtRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLG9GQUFvRixDQUFDLENBQUM7QUFDMUcsQ0FBQyxDQUFDO0FBSFcsUUFBQSxtQkFBbUIsdUJBRzlCO0FBTUssTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFlLEVBQUUsRUFBRTtJQUNoRCxJQUFJLG9CQUFZLENBQUMsTUFBTSxhQUFOLE1BQU0sY0FBTixNQUFNLEdBQUksRUFBRSxDQUFDO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUM5RyxDQUFDLENBQUM7QUFGVyxRQUFBLGNBQWMsa0JBRXpCO0FBTUssTUFBTSxpQkFBaUIsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQ2hELElBQUk7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2hDLDRCQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLGlDQUFpQyxDQUFDLENBQUM7S0FDNUQ7QUFDSCxDQUFDLENBQUM7QUFSVyxRQUFBLGlCQUFpQixxQkFRNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUk4gfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1hcm4tcGFyc2VyXCI7XG5cbmNvbnN0IERPTUFJTl9QQVRURVJOID0gL15bYS16MC05XVthLXowLTlcXC5cXC1dezEsNjF9W2EtejAtOV0kLztcbmNvbnN0IElQX0FERFJFU1NfUEFUVEVSTiA9IC8oXFxkK1xcLil7M31cXGQrLztcbmNvbnN0IERPVFNfUEFUVEVSTiA9IC9cXC5cXC4vO1xuZXhwb3J0IGNvbnN0IERPVF9QQVRURVJOID0gL1xcLi87XG5leHBvcnQgY29uc3QgUzNfSE9TVE5BTUVfUEFUVEVSTiA9IC9eKC4rXFwuKT9zM1suLV0oW2EtejAtOS1dKylcXC4vO1xuY29uc3QgUzNfVVNfRUFTVF8xX0FMVE5BTUVfUEFUVEVSTiA9IC9eczMoLWV4dGVybmFsLTEpP1xcLmFtYXpvbmF3c1xcLmNvbSQvO1xuY29uc3QgQVdTX1BBUlRJVElPTl9TVUZGSVggPSBcImFtYXpvbmF3cy5jb21cIjtcblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NQb2ludEFybiBleHRlbmRzIEFSTiB7XG4gIGFjY2Vzc1BvaW50TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEhvc3RuYW1lUGFyYW1zIHtcbiAgaXNDdXN0b21FbmRwb2ludDogYm9vbGVhbjtcbiAgYmFzZUhvc3RuYW1lOiBzdHJpbmc7XG4gIGJ1Y2tldE5hbWU6IHN0cmluZztcbiAgY2xpZW50UmVnaW9uOiBzdHJpbmc7XG4gIGFjY2VsZXJhdGVFbmRwb2ludD86IGJvb2xlYW47XG4gIGR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbjtcbiAgcGF0aFN0eWxlRW5kcG9pbnQ/OiBib29sZWFuO1xuICB0bHNDb21wYXRpYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcm5Ib3N0bmFtZVBhcmFtcyBleHRlbmRzIE9taXQ8QnVja2V0SG9zdG5hbWVQYXJhbXMsIFwiYnVja2V0TmFtZVwiPiB7XG4gIGJ1Y2tldE5hbWU6IEFSTjtcbiAgY2xpZW50U2lnbmluZ1JlZ2lvbj86IHN0cmluZztcbiAgY2xpZW50UGFydGl0aW9uPzogc3RyaW5nO1xuICB1c2VBcm5SZWdpb24/OiBib29sZWFuO1xuICBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgaXNCdWNrZXROYW1lT3B0aW9ucyA9IChcbiAgb3B0aW9uczogQnVja2V0SG9zdG5hbWVQYXJhbXMgfCBBcm5Ib3N0bmFtZVBhcmFtc1xuKTogb3B0aW9ucyBpcyBCdWNrZXRIb3N0bmFtZVBhcmFtcyA9PiB0eXBlb2Ygb3B0aW9ucy5idWNrZXROYW1lID09PSBcInN0cmluZ1wiO1xuXG4vKipcbiAqIEdldCBwc2V1ZG8gcmVnaW9uIGZyb20gc3VwcGxpZWQgcmVnaW9uLiBGb3IgZXhhbXBsZSwgaWYgc3VwcGxpZWQgd2l0aCBgZmlwcy11cy13ZXN0LTJgLCBpdCByZXR1cm5zIGB1cy13ZXN0LTJgLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRQc2V1ZG9SZWdpb24gPSAocmVnaW9uOiBzdHJpbmcpID0+IChpc0ZpcHNSZWdpb24ocmVnaW9uKSA/IHJlZ2lvbi5yZXBsYWNlKC9maXBzLXwtZmlwcy8sIFwiXCIpIDogcmVnaW9uKTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBnaXZlbiBzdHJpbmcgaXMgRE5TIGNvbXBsaWFudCBwZXIgdGhlIHJ1bGVzIG91dGxpbmVkIGJ5XG4gKiBTMy4gTGVuZ3RoLCBjYXBpdGFpemF0aW9uLCBhbmQgbGVhZGluZyBkb3QgcmVzdHJpY3Rpb25zIGFyZSBlbmZvcmNlZCBieSB0aGVcbiAqIERPTUFJTl9QQVRURVJOIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqIEBpbnRlcm5hbFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC9kZXYvQnVja2V0UmVzdHJpY3Rpb25zLmh0bWxcbiAqL1xuZXhwb3J0IGNvbnN0IGlzRG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUgPSAoYnVja2V0TmFtZTogc3RyaW5nKTogYm9vbGVhbiA9PlxuICBET01BSU5fUEFUVEVSTi50ZXN0KGJ1Y2tldE5hbWUpICYmICFJUF9BRERSRVNTX1BBVFRFUk4udGVzdChidWNrZXROYW1lKSAmJiAhRE9UU19QQVRURVJOLnRlc3QoYnVja2V0TmFtZSk7XG5cbmNvbnN0IGdldFJlZ2lvbmFsU3VmZml4ID0gKGhvc3RuYW1lOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmddID0+IHtcbiAgY29uc3QgcGFydHMgPSBob3N0bmFtZS5tYXRjaChTM19IT1NUTkFNRV9QQVRURVJOKSE7XG4gIHJldHVybiBbcGFydHNbMl0sIGhvc3RuYW1lLnJlcGxhY2UobmV3IFJlZ0V4cChgXiR7cGFydHNbMF19YCksIFwiXCIpXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTdWZmaXggPSAoaG9zdG5hbWU6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZ10gPT5cbiAgUzNfVVNfRUFTVF8xX0FMVE5BTUVfUEFUVEVSTi50ZXN0KGhvc3RuYW1lKSA/IFtcInVzLWVhc3QtMVwiLCBBV1NfUEFSVElUSU9OX1NVRkZJWF0gOiBnZXRSZWdpb25hbFN1ZmZpeChob3N0bmFtZSk7XG5cbi8qKlxuICogSW5mZXIgcmVnaW9uIGFuZCBob3N0bmFtZSBzdWZmaXggZnJvbSBhIGNvbXBsZXRlIGhvc3RuYW1lXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSBob3N0bmFtZSAtIEhvc3RuYW1lXG4gKiBAcmV0dXJucyBbUmVnaW9uLCBIb3N0bmFtZSBzdWZmaXhdXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTdWZmaXhGb3JBcm5FbmRwb2ludCA9IChob3N0bmFtZTogc3RyaW5nKTogW3N0cmluZywgc3RyaW5nXSA9PlxuICBTM19VU19FQVNUXzFfQUxUTkFNRV9QQVRURVJOLnRlc3QoaG9zdG5hbWUpXG4gICAgPyBbaG9zdG5hbWUucmVwbGFjZShgLiR7QVdTX1BBUlRJVElPTl9TVUZGSVh9YCwgXCJcIiksIEFXU19QQVJUSVRJT05fU1VGRklYXVxuICAgIDogZ2V0UmVnaW9uYWxTdWZmaXgoaG9zdG5hbWUpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVBcm5FbmRwb2ludE9wdGlvbnMgPSAob3B0aW9uczoge1xuICBhY2NlbGVyYXRlRW5kcG9pbnQ/OiBib29sZWFuO1xuICB0bHNDb21wYXRpYmxlPzogYm9vbGVhbjtcbiAgcGF0aFN0eWxlRW5kcG9pbnQ/OiBib29sZWFuO1xufSkgPT4ge1xuICBpZiAob3B0aW9ucy5wYXRoU3R5bGVFbmRwb2ludCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlBhdGgtc3R5bGUgUzMgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBUk5cIik7XG4gIH1cbiAgaWYgKG9wdGlvbnMuYWNjZWxlcmF0ZUVuZHBvaW50KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQWNjZWxlcmF0ZSBlbmRwb2ludCBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gYnVja2V0IGlzIGFuIEFSTlwiKTtcbiAgfVxuICBpZiAoIW9wdGlvbnMudGxzQ29tcGF0aWJsZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkhUVFBTIGlzIHJlcXVpcmVkIHdoZW4gYnVja2V0IGlzIGFuIEFSTlwiKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlU2VydmljZSA9IChzZXJ2aWNlOiBzdHJpbmcpID0+IHtcbiAgaWYgKHNlcnZpY2UgIT09IFwiczNcIiAmJiBzZXJ2aWNlICE9PSBcInMzLW91dHBvc3RzXCIgJiYgc2VydmljZSAhPT0gXCJzMy1vYmplY3QtbGFtYmRhXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3QgJ3MzJyBvciAnczMtb3V0cG9zdHMnIG9yICdzMy1vYmplY3QtbGFtYmRhJyBpbiBBUk4gc2VydmljZSBjb21wb25lbnRcIik7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVMzU2VydmljZSA9IChzZXJ2aWNlOiBzdHJpbmcpID0+IHtcbiAgaWYgKHNlcnZpY2UgIT09IFwiczNcIikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdCAnczMnIGluIEFjY2Vzc3BvaW50IEFSTiBzZXJ2aWNlIGNvbXBvbmVudFwiKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlT3V0cG9zdFNlcnZpY2UgPSAoc2VydmljZTogc3RyaW5nKSA9PiB7XG4gIGlmIChzZXJ2aWNlICE9PSBcInMzLW91dHBvc3RzXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3QgJ3MzLXBvc3RzJyBpbiBPdXRwb3N0IEFSTiBzZXJ2aWNlIGNvbXBvbmVudFwiKTtcbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBwYXJ0aXRpb24gaW5mZXJyZWQgZnJvbSBBUk4gaXMgdGhlIHNhbWUgdG8gYG9wdGlvbnMuY2xpZW50UGFydGl0aW9uYC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQYXJ0aXRpb24gPSAocGFydGl0aW9uOiBzdHJpbmcsIG9wdGlvbnM6IHsgY2xpZW50UGFydGl0aW9uOiBzdHJpbmcgfSkgPT4ge1xuICBpZiAocGFydGl0aW9uICE9PSBvcHRpb25zLmNsaWVudFBhcnRpdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgUGFydGl0aW9uIGluIEFSTiBpcyBpbmNvbXBhdGlibGUsIGdvdCBcIiR7cGFydGl0aW9ufVwiIGJ1dCBleHBlY3RlZCBcIiR7b3B0aW9ucy5jbGllbnRQYXJ0aXRpb259XCJgKTtcbiAgfVxufTtcblxuLyoqXG4gKiB2YWxpZGF0ZSByZWdpb24gdmFsdWUgaW5mZXJyZWQgZnJvbSBBUk4uIElmIGBvcHRpb25zLnVzZUFyblJlZ2lvbmAgaXMgc2V0LCBpdCB2YWxpZGF0ZXMgdGhlIHJlZ2lvbiBpcyBub3QgYSBGSVBTXG4gKiByZWdpb24uIElmIGBvcHRpb25zLnVzZUFyblJlZ2lvbmAgaXMgdW5zZXQsIGl0IHZhbGlkYXRlcyB0aGUgcmVnaW9uIGlzIGVxdWFsIHRvIGBvcHRpb25zLmNsaWVudFJlZ2lvbmAgb3JcbiAqIGBvcHRpb25zLmNsaWVudFNpZ25pbmdSZWdpb25gLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVJlZ2lvbiA9IChcbiAgcmVnaW9uOiBzdHJpbmcsXG4gIG9wdGlvbnM6IHtcbiAgICB1c2VBcm5SZWdpb24/OiBib29sZWFuO1xuICAgIGFsbG93Rmlwc1JlZ2lvbj86IGJvb2xlYW47XG4gICAgY2xpZW50UmVnaW9uOiBzdHJpbmc7XG4gICAgY2xpZW50U2lnbmluZ1JlZ2lvbjogc3RyaW5nO1xuICB9XG4pID0+IHtcbiAgaWYgKHJlZ2lvbiA9PT0gXCJcIikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkFSTiByZWdpb24gaXMgZW1wdHlcIik7XG4gIH1cbiAgaWYgKGlzRmlwc1JlZ2lvbihvcHRpb25zLmNsaWVudFJlZ2lvbikpIHtcbiAgICBpZiAoIW9wdGlvbnMuYWxsb3dGaXBzUmVnaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGSVBTIHJlZ2lvbiBpcyBub3Qgc3VwcG9ydGVkXCIpO1xuICAgIH0gZWxzZSBpZiAoIWlzRXF1YWxSZWdpb25zKHJlZ2lvbiwgb3B0aW9ucy5jbGllbnRSZWdpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENsaWVudCBGSVBTIHJlZ2lvbiAke29wdGlvbnMuY2xpZW50UmVnaW9ufSBkb2Vzbid0IG1hdGNoIHJlZ2lvbiAke3JlZ2lvbn0gaW4gQVJOYCk7XG4gICAgfVxuICB9XG4gIGlmIChcbiAgICAhb3B0aW9ucy51c2VBcm5SZWdpb24gJiZcbiAgICAhaXNFcXVhbFJlZ2lvbnMocmVnaW9uLCBvcHRpb25zLmNsaWVudFJlZ2lvbiB8fCBcIlwiKSAmJlxuICAgICFpc0VxdWFsUmVnaW9ucyhyZWdpb24sIG9wdGlvbnMuY2xpZW50U2lnbmluZ1JlZ2lvbiB8fCBcIlwiKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFJlZ2lvbiBpbiBBUk4gaXMgaW5jb21wYXRpYmxlLCBnb3QgJHtyZWdpb259IGJ1dCBleHBlY3RlZCAke29wdGlvbnMuY2xpZW50UmVnaW9ufWApO1xuICB9XG59O1xuXG4vKipcbiAqXG4gKiBAcGFyYW0gcmVnaW9uXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50ID0gKHJlZ2lvbjogc3RyaW5nKSA9PiB7XG4gIGlmIChbXCJzMy1leHRlcm5hbC0xXCIsIFwiYXdzLWdsb2JhbFwiXS5pbmNsdWRlcyhnZXRQc2V1ZG9SZWdpb24ocmVnaW9uKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENsaWVudCByZWdpb24gJHtyZWdpb259IGlzIG5vdCByZWdpb25hbGApO1xuICB9XG59O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgaXNGaXBzUmVnaW9uID0gKHJlZ2lvbjogc3RyaW5nKSA9PiByZWdpb24uc3RhcnRzV2l0aChcImZpcHMtXCIpIHx8IHJlZ2lvbi5lbmRzV2l0aChcIi1maXBzXCIpO1xuXG5jb25zdCBpc0VxdWFsUmVnaW9ucyA9IChyZWdpb25BOiBzdHJpbmcsIHJlZ2lvbkI6IHN0cmluZykgPT5cbiAgcmVnaW9uQSA9PT0gcmVnaW9uQiB8fCBnZXRQc2V1ZG9SZWdpb24ocmVnaW9uQSkgPT09IHJlZ2lvbkIgfHwgcmVnaW9uQSA9PT0gZ2V0UHNldWRvUmVnaW9uKHJlZ2lvbkIpO1xuXG4vKipcbiAqIFZhbGlkYXRlIGFuIGFjY291bnQgSURcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVBY2NvdW50SWQgPSAoYWNjb3VudElkOiBzdHJpbmcpID0+IHtcbiAgaWYgKCEvWzAtOV17MTJ9Ly5leGVjKGFjY291bnRJZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBY2Nlc3MgcG9pbnQgQVJOIGFjY291bnRJRCBkb2VzIG5vdCBtYXRjaCByZWdleCAnWzAtOV17MTJ9J1wiKTtcbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBhIGhvc3QgbGFiZWwgYWNjb3JkaW5nIHRvIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4yLjJcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVETlNIb3N0TGFiZWwgPSAobGFiZWw6IHN0cmluZywgb3B0aW9uczogeyB0bHNDb21wYXRpYmxlPzogYm9vbGVhbiB9ID0geyB0bHNDb21wYXRpYmxlOiB0cnVlIH0pID0+IHtcbiAgLy8gcmVmZXJlbmNlOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTMuMi4yXG4gIGlmIChcbiAgICBsYWJlbC5sZW5ndGggPj0gNjQgfHxcbiAgICAhL15bYS16MC05XVthLXowLTkuLV0qW2EtejAtOV0kLy50ZXN0KGxhYmVsKSB8fFxuICAgIC8oXFxkK1xcLil7M31cXGQrLy50ZXN0KGxhYmVsKSB8fFxuICAgIC9bLi1dezJ9Ly50ZXN0KGxhYmVsKSB8fFxuICAgIChvcHRpb25zPy50bHNDb21wYXRpYmxlICYmIERPVF9QQVRURVJOLnRlc3QobGFiZWwpKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRE5TIGxhYmVsICR7bGFiZWx9YCk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUN1c3RvbUVuZHBvaW50ID0gKG9wdGlvbnM6IHtcbiAgaXNDdXN0b21FbmRwb2ludD86IGJvb2xlYW47XG4gIGR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbjtcbiAgYWNjZWxlcmF0ZUVuZHBvaW50PzogYm9vbGVhbjtcbn0pID0+IHtcbiAgaWYgKG9wdGlvbnMuaXNDdXN0b21FbmRwb2ludCkge1xuICAgIGlmIChvcHRpb25zLmR1YWxzdGFja0VuZHBvaW50KSB0aHJvdyBuZXcgRXJyb3IoXCJEdWFsc3RhY2sgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIGN1c3RvbSBlbmRwb2ludFwiKTtcbiAgICBpZiAob3B0aW9ucy5hY2NlbGVyYXRlRW5kcG9pbnQpIHRocm93IG5ldyBFcnJvcihcIkFjY2VsZXJhdGUgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIGN1c3RvbSBlbmRwb2ludFwiKTtcbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBhbmQgcGFyc2UgYW4gQWNjZXNzIFBvaW50IEFSTiBvciBPdXRwb3N0cyBBUk5cbiAqIEBpbnRlcm5hbFxuICpcbiAqIEBwYXJhbSByZXNvdXJjZSAtIFRoZSByZXNvdXJjZSBzZWN0aW9uIG9mIGFuIEFSTlxuICogQHJldHVybnMgQWNjZXNzIFBvaW50IE5hbWUgYW5kIG9wdGlvbmFsIE91dHBvc3QgSUQuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBcm5SZXNvdXJjZXMgPSAoXG4gIHJlc291cmNlOiBzdHJpbmdcbik6IHtcbiAgYWNjZXNzcG9pbnROYW1lOiBzdHJpbmc7XG4gIG91dHBvc3RJZD86IHN0cmluZztcbn0gPT4ge1xuICBjb25zdCBkZWxpbWl0ZXIgPSByZXNvdXJjZS5pbmNsdWRlcyhcIjpcIikgPyBcIjpcIiA6IFwiL1wiO1xuICBjb25zdCBbcmVzb3VyY2VUeXBlLCAuLi5yZXN0XSA9IHJlc291cmNlLnNwbGl0KGRlbGltaXRlcik7XG4gIGlmIChyZXNvdXJjZVR5cGUgPT09IFwiYWNjZXNzcG9pbnRcIikge1xuICAgIC8vIFBhcnNlIGFjY2Vzc3BvaW50IEFSTlxuICAgIGlmIChyZXN0Lmxlbmd0aCAhPT0gMSB8fCByZXN0WzBdID09PSBcIlwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFjY2VzcyBQb2ludCBBUk4gc2hvdWxkIGhhdmUgb25lIHJlc291cmNlIGFjY2Vzc3BvaW50JHtkZWxpbWl0ZXJ9e2FjY2Vzc3BvaW50bmFtZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgYWNjZXNzcG9pbnROYW1lOiByZXN0WzBdIH07XG4gIH0gZWxzZSBpZiAocmVzb3VyY2VUeXBlID09PSBcIm91dHBvc3RcIikge1xuICAgIC8vIFBhcnNlIG91dHBvc3QgQVJOXG4gICAgaWYgKCFyZXN0WzBdIHx8IHJlc3RbMV0gIT09IFwiYWNjZXNzcG9pbnRcIiB8fCAhcmVzdFsyXSB8fCByZXN0Lmxlbmd0aCAhPT0gMykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgT3V0cG9zdCBBUk4gc2hvdWxkIGhhdmUgcmVzb3VyY2Ugb3V0cG9zdCR7ZGVsaW1pdGVyfXtvdXRwb3N0SWR9JHtkZWxpbWl0ZXJ9YWNjZXNzcG9pbnQke2RlbGltaXRlcn17YWNjZXNzcG9pbnROYW1lfWBcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IFtvdXRwb3N0SWQsIF8sIGFjY2Vzc3BvaW50TmFtZV0gPSByZXN0O1xuICAgIHJldHVybiB7IG91dHBvc3RJZCwgYWNjZXNzcG9pbnROYW1lIH07XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBBUk4gcmVzb3VyY2Ugc2hvdWxkIGJlZ2luIHdpdGggJ2FjY2Vzc3BvaW50JHtkZWxpbWl0ZXJ9JyBvciAnb3V0cG9zdCR7ZGVsaW1pdGVyfSdgKTtcbiAgfVxufTtcblxuLyoqXG4gKiBUaHJvdyBpZiBkdWFsIHN0YWNrIGNvbmZpZ3VyYXRpb24gaXMgc2V0IHRvIHRydWUuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlTm9EdWFsc3RhY2sgPSAoZHVhbHN0YWNrRW5kcG9pbnQ/OiBib29sZWFuKSA9PiB7XG4gIGlmIChkdWFsc3RhY2tFbmRwb2ludClcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJEdWFsc3RhY2sgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIE91dHBvc3Qgb3IgTXVsdGktcmVnaW9uIEFjY2VzcyBQb2ludCBBUk4uXCIpO1xufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSByZWdpb24gaXMgbm90IGFwcGVuZGVkIG9yIHByZXBlbmRlZCB3aXRoIGEgYGZpcHMtYFxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU5vRklQUyA9IChyZWdpb24/OiBzdHJpbmcpID0+IHtcbiAgaWYgKGlzRmlwc1JlZ2lvbihyZWdpb24gPz8gXCJcIikpIHRocm93IG5ldyBFcnJvcihgRklQUyByZWdpb24gaXMgbm90IHN1cHBvcnRlZCB3aXRoIE91dHBvc3QsIGdvdCAke3JlZ2lvbn1gKTtcbn07XG5cbi8qKlxuICogVmFsaWRhdGUgdGhlIG11bHRpLXJlZ2lvbiBhY2Nlc3MgcG9pbnQgYWxpYXMuXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVNcmFwQWxpYXMgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gIHRyeSB7XG4gICAgbmFtZS5zcGxpdChcIi5cIikuZm9yRWFjaCgobGFiZWwpID0+IHtcbiAgICAgIHZhbGlkYXRlRE5TSG9zdExhYmVsKGxhYmVsKTtcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgXCIke25hbWV9XCIgaXMgbm90IGEgRE5TIGNvbXBhdGlibGUgbmFtZS5gKTtcbiAgfVxufTtcbiJdfQ==
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS = exports.NODE_USE_ARN_REGION_CONFIG_OPTIONS = exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME = exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME = exports.NODE_USE_ARN_REGION_INI_NAME = exports.NODE_USE_ARN_REGION_ENV_NAME = exports.resolveBucketEndpointConfig = void 0;
|
|
4
|
+
function resolveBucketEndpointConfig(input) {
|
|
5
|
+
const { bucketEndpoint = false, forcePathStyle = false, useAccelerateEndpoint = false, useDualstackEndpoint = false, useArnRegion = false, disableMultiregionAccessPoints = false, } = input;
|
|
6
|
+
return {
|
|
7
|
+
...input,
|
|
8
|
+
bucketEndpoint,
|
|
9
|
+
forcePathStyle,
|
|
10
|
+
useAccelerateEndpoint,
|
|
11
|
+
useDualstackEndpoint,
|
|
12
|
+
useArnRegion: typeof useArnRegion === "function" ? useArnRegion : () => Promise.resolve(useArnRegion),
|
|
13
|
+
disableMultiregionAccessPoints: typeof disableMultiregionAccessPoints === "function"
|
|
14
|
+
? disableMultiregionAccessPoints
|
|
15
|
+
: () => Promise.resolve(disableMultiregionAccessPoints),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.resolveBucketEndpointConfig = resolveBucketEndpointConfig;
|
|
19
|
+
exports.NODE_USE_ARN_REGION_ENV_NAME = "AWS_S3_USE_ARN_REGION";
|
|
20
|
+
exports.NODE_USE_ARN_REGION_INI_NAME = "s3_use_arn_region";
|
|
21
|
+
exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME = "AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS";
|
|
22
|
+
exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME = "s3_disable_multiregion_access_points";
|
|
23
|
+
exports.NODE_USE_ARN_REGION_CONFIG_OPTIONS = {
|
|
24
|
+
environmentVariableSelector: (env) => {
|
|
25
|
+
if (!Object.prototype.hasOwnProperty.call(env, exports.NODE_USE_ARN_REGION_ENV_NAME))
|
|
26
|
+
return undefined;
|
|
27
|
+
if (env[exports.NODE_USE_ARN_REGION_ENV_NAME] === "true")
|
|
28
|
+
return true;
|
|
29
|
+
if (env[exports.NODE_USE_ARN_REGION_ENV_NAME] === "false")
|
|
30
|
+
return false;
|
|
31
|
+
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]}.`);
|
|
32
|
+
},
|
|
33
|
+
configFileSelector: (profile) => {
|
|
34
|
+
if (!Object.prototype.hasOwnProperty.call(profile, exports.NODE_USE_ARN_REGION_INI_NAME))
|
|
35
|
+
return undefined;
|
|
36
|
+
if (profile[exports.NODE_USE_ARN_REGION_INI_NAME] === "true")
|
|
37
|
+
return true;
|
|
38
|
+
if (profile[exports.NODE_USE_ARN_REGION_INI_NAME] === "false")
|
|
39
|
+
return false;
|
|
40
|
+
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]}.`);
|
|
41
|
+
},
|
|
42
|
+
default: false,
|
|
43
|
+
};
|
|
44
|
+
exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS = {
|
|
45
|
+
environmentVariableSelector: (env) => {
|
|
46
|
+
if (!Object.prototype.hasOwnProperty.call(env, exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME))
|
|
47
|
+
return undefined;
|
|
48
|
+
if (env[exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME] === "true")
|
|
49
|
+
return true;
|
|
50
|
+
if (env[exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME] === "false")
|
|
51
|
+
return false;
|
|
52
|
+
throw new Error(`Cannot load env ${exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME}. Expected "true" or "false", got ${env[exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME]}.`);
|
|
53
|
+
},
|
|
54
|
+
configFileSelector: (profile) => {
|
|
55
|
+
if (!Object.prototype.hasOwnProperty.call(profile, exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME))
|
|
56
|
+
return undefined;
|
|
57
|
+
if (profile[exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME] === "true")
|
|
58
|
+
return true;
|
|
59
|
+
if (profile[exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME] === "false")
|
|
60
|
+
return false;
|
|
61
|
+
throw new Error(`Cannot load shared config entry ${exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME}. Expected "true" or "false", got ${profile[exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME]}.`);
|
|
62
|
+
},
|
|
63
|
+
default: false,
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBOEVBLFNBQWdCLDJCQUEyQixDQUN6QyxLQUF5RDtJQUV6RCxNQUFNLEVBQ0osY0FBYyxHQUFHLEtBQUssRUFDdEIsY0FBYyxHQUFHLEtBQUssRUFDdEIscUJBQXFCLEdBQUcsS0FBSyxFQUM3QixvQkFBb0IsR0FBRyxLQUFLLEVBQzVCLFlBQVksR0FBRyxLQUFLLEVBQ3BCLDhCQUE4QixHQUFHLEtBQUssR0FDdkMsR0FBRyxLQUFLLENBQUM7SUFDVixPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsY0FBYztRQUNkLGNBQWM7UUFDZCxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLFlBQVksRUFBRSxPQUFPLFlBQVksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDckcsOEJBQThCLEVBQzVCLE9BQU8sOEJBQThCLEtBQUssVUFBVTtZQUNsRCxDQUFDLENBQUMsOEJBQThCO1lBQ2hDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLDhCQUE4QixDQUFDO0tBQzVELENBQUM7QUFDSixDQUFDO0FBdkJELGtFQXVCQztBQUVZLFFBQUEsNEJBQTRCLEdBQUcsdUJBQXVCLENBQUM7QUFDdkQsUUFBQSw0QkFBNEIsR0FBRyxtQkFBbUIsQ0FBQztBQUVuRCxRQUFBLDhDQUE4QyxHQUFHLDBDQUEwQyxDQUFDO0FBQzVGLFFBQUEsOENBQThDLEdBQUcsc0NBQXNDLENBQUM7QUFPeEYsUUFBQSxrQ0FBa0MsR0FBbUM7SUFDaEYsMkJBQTJCLEVBQUUsQ0FBQyxHQUFzQixFQUFFLEVBQUU7UUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsb0NBQTRCLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUMvRixJQUFJLEdBQUcsQ0FBQyxvQ0FBNEIsQ0FBQyxLQUFLLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5RCxJQUFJLEdBQUcsQ0FBQyxvQ0FBNEIsQ0FBQyxLQUFLLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNoRSxNQUFNLElBQUksS0FBSyxDQUNiLG1CQUFtQixvQ0FBNEIscUNBQXFDLEdBQUcsQ0FBQyxvQ0FBNEIsQ0FBQyxHQUFHLENBQ3pILENBQUM7SUFDSixDQUFDO0lBQ0Qsa0JBQWtCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxvQ0FBNEIsQ0FBQztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ25HLElBQUksT0FBTyxDQUFDLG9DQUE0QixDQUFDLEtBQUssTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2xFLElBQUksT0FBTyxDQUFDLG9DQUE0QixDQUFDLEtBQUssT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUNBQW1DLG9DQUE0QixxQ0FBcUMsT0FBTyxDQUFDLG9DQUE0QixDQUFDLEdBQUcsQ0FDN0ksQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLEVBQUUsS0FBSztDQUNmLENBQUM7QUFFVyxRQUFBLG9EQUFvRCxHQUFtQztJQUNsRywyQkFBMkIsRUFBRSxDQUFDLEdBQXNCLEVBQUUsRUFBRTtRQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxzREFBOEMsQ0FBQztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ2pILElBQUksR0FBRyxDQUFDLHNEQUE4QyxDQUFDLEtBQUssTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2hGLElBQUksR0FBRyxDQUFDLHNEQUE4QyxDQUFDLEtBQUssT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2xGLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUJBQW1CLHNEQUE4QyxxQ0FBcUMsR0FBRyxDQUFDLHNEQUE4QyxDQUFDLEdBQUcsQ0FDN0osQ0FBQztJQUNKLENBQUM7SUFDRCxrQkFBa0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLHNEQUE4QyxDQUFDO1lBQ2hHLE9BQU8sU0FBUyxDQUFDO1FBQ25CLElBQUksT0FBTyxDQUFDLHNEQUE4QyxDQUFDLEtBQUssTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3BGLElBQUksT0FBTyxDQUFDLHNEQUE4QyxDQUFDLEtBQUssT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3RGLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUNBQW1DLHNEQUE4QyxxQ0FBcUMsT0FBTyxDQUFDLHNEQUE4QyxDQUFDLEdBQUcsQ0FDakwsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLEVBQUUsS0FBSztDQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2FkZWRDb25maWdTZWxlY3RvcnMgfSBmcm9tIFwiQGF3cy1zZGsvbm9kZS1jb25maWctcHJvdmlkZXJcIjtcbmltcG9ydCB7IFByb3ZpZGVyLCBSZWdpb25JbmZvUHJvdmlkZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRFbmRwb2ludElucHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHByb3ZpZGVkIGVuZHBvaW50IGFkZHJlc3NlcyBhbiBpbmRpdmlkdWFsIGJ1Y2tldC5cbiAgICovXG4gIGJ1Y2tldEVuZHBvaW50PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZm9yY2UgcGF0aCBzdHlsZSBVUkxzIGZvciBTMyBvYmplY3RzIChlLmcuLCBodHRwczovL3MzLmFtYXpvbmF3cy5jb20vPGJ1Y2tldE5hbWU+LzxrZXk+IGluc3RlYWQgb2YgaHR0cHM6Ly88YnVja2V0TmFtZT4uczMuYW1hem9uYXdzLmNvbS88a2V5PlxuICAgKi9cbiAgZm9yY2VQYXRoU3R5bGU/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0byB1c2UgdGhlIFMzIFRyYW5zZmVyIEFjY2VsZXJhdGlvbiBlbmRwb2ludCBieSBkZWZhdWx0XG4gICAqL1xuICB1c2VBY2NlbGVyYXRlRW5kcG9pbnQ/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5hYmxlcyBJUHY2L0lQdjQgZHVhbHN0YWNrIGVuZHBvaW50LiBXaGVuIGEgRE5TIGxvb2t1cCBpcyBwZXJmb3JtZWQgb24gYW4gZW5kcG9pbnQgb2YgdGhpcyB0eXBlLCBpdCByZXR1cm5zIGFuIOKAnEHigJ1cbiAgICogcmVjb3JkIHdpdGggYW4gSVB2NCBhZGRyZXNzIGFuZCBhbiDigJxBQUFB4oCdIHJlY29yZCB3aXRoIGFuIElQdjYgYWRkcmVzcy4gSW4gbW9zdCBjYXNlcyB0aGUgbmV0d29yayBzdGFjayBpbiB0aGVcbiAgICogY2xpZW50IGVudmlyb25tZW50IHdpbGwgYXV0b21hdGljYWxseSBwcmVmZXIgdGhlIEFBQUEgcmVjb3JkIGFuZCBtYWtlIGEgY29ubmVjdGlvbiB1c2luZyB0aGUgSVB2NiBhZGRyZXNzLiBOb3RlLFxuICAgKiBob3dldmVyLCB0aGF0IGN1cnJlbnRseSBvbiBXaW5kb3dzLCB0aGUgSVB2NCBhZGRyZXNzIHdpbGwgYmUgcHJlZmVycmVkLlxuICAgKi9cbiAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0byBvdmVycmlkZSB0aGUgcmVxdWVzdCByZWdpb24gd2l0aCB0aGUgcmVnaW9uIGluZmVycmVkIGZyb20gcmVxdWVzdGVkIHJlc291cmNlJ3MgQVJOLiBEZWZhdWx0cyB0byBmYWxzZVxuICAgKi9cbiAgdXNlQXJuUmVnaW9uPzogYm9vbGVhbiB8IFByb3ZpZGVyPGJvb2xlYW4+O1xuICAvKipcbiAgICogV2hldGhlciB0byBwcmV2ZW50IFNESyBmcm9tIG1ha2luZyBjcm9zcy1yZWdpb24gcmVxdWVzdCB3aGVuIHN1cHBsaWVkIGJ1Y2tldCBpcyBhIG11bHRpLXJlZ2lvbiBhY2Nlc3MgcG9pbnQgQVJOLlxuICAgKiBEZWZhdWx0cyB0byBmYWxzZVxuICAgKi9cbiAgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzPzogYm9vbGVhbiB8IFByb3ZpZGVyPGJvb2xlYW4+O1xufVxuXG5pbnRlcmZhY2UgUHJldmlvdXNseVJlc29sdmVkIHtcbiAgaXNDdXN0b21FbmRwb2ludDogYm9vbGVhbjtcbiAgcmVnaW9uOiBQcm92aWRlcjxzdHJpbmc+O1xuICByZWdpb25JbmZvUHJvdmlkZXI6IFJlZ2lvbkluZm9Qcm92aWRlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGVuZHBvaW50IGlzIHNwZWNpZmllZCBieSBjYWxsZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgaXNDdXN0b21FbmRwb2ludDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc29sdmVkIHZhbHVlIGZvciBpbnB1dCBjb25maWcge0BsaW5rIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcuYnVja2V0RW5kcG9pbnR9XG4gICAqL1xuICBidWNrZXRFbmRwb2ludDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc29sdmVkIHZhbHVlIGZvciBpbnB1dCBjb25maWcge0BsaW5rIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcuZm9yY2VQYXRoU3R5bGV9XG4gICAqL1xuICBmb3JjZVBhdGhTdHlsZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc29sdmVkIHZhbHVlIGZvciBpbnB1dCBjb25maWcge0BsaW5rIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcudXNlQWNjZWxlcmF0ZUVuZHBvaW50fVxuICAgKi9cbiAgdXNlQWNjZWxlcmF0ZUVuZHBvaW50OiBib29sZWFuO1xuICAvKipcbiAgICogUmVzb2x2ZWQgdmFsdWUgZm9yIGlucHV0IGNvbmZpZyB7QGxpbmsgQnVja2V0RW5kcG9pbnRJbnB1dENvbmZpZy51c2VEdWFsc3RhY2tFbmRwb2ludH1cbiAgICovXG4gIHVzZUR1YWxzdGFja0VuZHBvaW50OiBib29sZWFuO1xuICAvKipcbiAgICogUmVzb2x2ZWQgdmFsdWUgZm9yIGlucHV0IGNvbmZpZyB7QGxpbmsgQnVja2V0RW5kcG9pbnRJbnB1dENvbmZpZy51c2VBcm5SZWdpb259XG4gICAqL1xuICB1c2VBcm5SZWdpb246IFByb3ZpZGVyPGJvb2xlYW4+O1xuICAvKipcbiAgICogUmVzb2x2ZWQgdmFsdWUgZm9yIGlucHV0IGNvbmZpZyB7QGxpbmsgUmVnaW9uSW5wdXRDb25maWcucmVnaW9ufVxuICAgKi9cbiAgcmVnaW9uOiBQcm92aWRlcjxzdHJpbmc+O1xuICAvKipcbiAgICogRmV0Y2ggcmVsYXRlZCBob3N0bmFtZSwgc2lnbmluZyBuYW1lIG9yIHNpZ25pbmcgcmVnaW9uIHdpdGggZ2l2ZW4gcmVnaW9uLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlZ2lvbkluZm9Qcm92aWRlcjogUmVnaW9uSW5mb1Byb3ZpZGVyO1xuICBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHM6IFByb3ZpZGVyPGJvb2xlYW4+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUJ1Y2tldEVuZHBvaW50Q29uZmlnPFQ+KFxuICBpbnB1dDogVCAmIFByZXZpb3VzbHlSZXNvbHZlZCAmIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWdcbik6IFQgJiBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnIHtcbiAgY29uc3Qge1xuICAgIGJ1Y2tldEVuZHBvaW50ID0gZmFsc2UsXG4gICAgZm9yY2VQYXRoU3R5bGUgPSBmYWxzZSxcbiAgICB1c2VBY2NlbGVyYXRlRW5kcG9pbnQgPSBmYWxzZSxcbiAgICB1c2VEdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLFxuICAgIHVzZUFyblJlZ2lvbiA9IGZhbHNlLFxuICAgIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50cyA9IGZhbHNlLFxuICB9ID0gaW5wdXQ7XG4gIHJldHVybiB7XG4gICAgLi4uaW5wdXQsXG4gICAgYnVja2V0RW5kcG9pbnQsXG4gICAgZm9yY2VQYXRoU3R5bGUsXG4gICAgdXNlQWNjZWxlcmF0ZUVuZHBvaW50LFxuICAgIHVzZUR1YWxzdGFja0VuZHBvaW50LFxuICAgIHVzZUFyblJlZ2lvbjogdHlwZW9mIHVzZUFyblJlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gdXNlQXJuUmVnaW9uIDogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHVzZUFyblJlZ2lvbiksXG4gICAgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzOlxuICAgICAgdHlwZW9mIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50cyA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzXG4gICAgICAgIDogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50cyksXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBOT0RFX1VTRV9BUk5fUkVHSU9OX0VOVl9OQU1FID0gXCJBV1NfUzNfVVNFX0FSTl9SRUdJT05cIjtcbmV4cG9ydCBjb25zdCBOT0RFX1VTRV9BUk5fUkVHSU9OX0lOSV9OQU1FID0gXCJzM191c2VfYXJuX3JlZ2lvblwiO1xuXG5leHBvcnQgY29uc3QgTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9FTlZfTkFNRSA9IFwiQVdTX1MzX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UU1wiO1xuZXhwb3J0IGNvbnN0IE5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfSU5JX05BTUUgPSBcInMzX2Rpc2FibGVfbXVsdGlyZWdpb25fYWNjZXNzX3BvaW50c1wiO1xuXG4vKipcbiAqIENvbmZpZyB0byBsb2FkIHVzZUFyblJlZ2lvbiBmcm9tIGVudmlyb25tZW50IHZhcmlhYmxlcyBhbmQgc2hhcmVkIElOSSBmaWxlc1xuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5leHBvcnQgY29uc3QgTk9ERV9VU0VfQVJOX1JFR0lPTl9DT05GSUdfT1BUSU9OUzogTG9hZGVkQ29uZmlnU2VsZWN0b3JzPGJvb2xlYW4+ID0ge1xuICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnY6IE5vZGVKUy5Qcm9jZXNzRW52KSA9PiB7XG4gICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZW52LCBOT0RFX1VTRV9BUk5fUkVHSU9OX0VOVl9OQU1FKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAoZW52W05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUVdID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XG4gICAgaWYgKGVudltOT0RFX1VTRV9BUk5fUkVHSU9OX0VOVl9OQU1FXSA9PT0gXCJmYWxzZVwiKSByZXR1cm4gZmFsc2U7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENhbm5vdCBsb2FkIGVudiAke05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUV9LiBFeHBlY3RlZCBcInRydWVcIiBvciBcImZhbHNlXCIsIGdvdCAke2VudltOT0RFX1VTRV9BUk5fUkVHSU9OX0VOVl9OQU1FXX0uYFxuICAgICk7XG4gIH0sXG4gIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwcm9maWxlLCBOT0RFX1VTRV9BUk5fUkVHSU9OX0lOSV9OQU1FKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAocHJvZmlsZVtOT0RFX1VTRV9BUk5fUkVHSU9OX0lOSV9OQU1FXSA9PT0gXCJ0cnVlXCIpIHJldHVybiB0cnVlO1xuICAgIGlmIChwcm9maWxlW05PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUVdID09PSBcImZhbHNlXCIpIHJldHVybiBmYWxzZTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ2Fubm90IGxvYWQgc2hhcmVkIGNvbmZpZyBlbnRyeSAke05PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUV9LiBFeHBlY3RlZCBcInRydWVcIiBvciBcImZhbHNlXCIsIGdvdCAke3Byb2ZpbGVbTk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRV19LmBcbiAgICApO1xuICB9LFxuICBkZWZhdWx0OiBmYWxzZSxcbn07XG5cbmV4cG9ydCBjb25zdCBOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0NPTkZJR19PUFRJT05TOiBMb2FkZWRDb25maWdTZWxlY3RvcnM8Ym9vbGVhbj4gPSB7XG4gIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudjogTm9kZUpTLlByb2Nlc3NFbnYpID0+IHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlbnYsIE5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfRU5WX05BTUUpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChlbnZbTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9FTlZfTkFNRV0gPT09IFwidHJ1ZVwiKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoZW52W05PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfRU5WX05BTUVdID09PSBcImZhbHNlXCIpIHJldHVybiBmYWxzZTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ2Fubm90IGxvYWQgZW52ICR7Tk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9FTlZfTkFNRX0uIEV4cGVjdGVkIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgZ290ICR7ZW52W05PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfRU5WX05BTUVdfS5gXG4gICAgKTtcbiAgfSxcbiAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4ge1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb2ZpbGUsIE5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfSU5JX05BTUUpKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAocHJvZmlsZVtOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0lOSV9OQU1FXSA9PT0gXCJ0cnVlXCIpIHJldHVybiB0cnVlO1xuICAgIGlmIChwcm9maWxlW05PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfSU5JX05BTUVdID09PSBcImZhbHNlXCIpIHJldHVybiBmYWxzZTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ2Fubm90IGxvYWQgc2hhcmVkIGNvbmZpZyBlbnRyeSAke05PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfSU5JX05BTUV9LiBFeHBlY3RlZCBcInRydWVcIiBvciBcImZhbHNlXCIsIGdvdCAke3Byb2ZpbGVbTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9JTklfTkFNRV19LmBcbiAgICApO1xuICB9LFxuICBkZWZhdWx0OiBmYWxzZSxcbn07XG4iXX0=
|
|
@@ -16,4 +16,4 @@ Object.defineProperty(exports, "validateRegion", { enumerable: true, get: functi
|
|
|
16
16
|
Object.defineProperty(exports, "validateDNSHostLabel", { enumerable: true, get: function () { return bucketHostnameUtils_1.validateDNSHostLabel; } });
|
|
17
17
|
Object.defineProperty(exports, "validateNoDualstack", { enumerable: true, get: function () { return bucketHostnameUtils_1.validateNoDualstack; } });
|
|
18
18
|
Object.defineProperty(exports, "validateNoFIPS", { enumerable: true, get: function () { return bucketHostnameUtils_1.validateNoFIPS; } });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFFQUEyQztBQUMzQywyREFBaUM7QUFDakMsMkRBQWlDO0FBQ2pDLDZEQVcrQjtBQVY3QixzSEFBQSxlQUFlLE9BQUE7QUFDZixzSEFBQSxlQUFlLE9BQUE7QUFDZiw4SEFBQSx1QkFBdUIsT0FBQTtBQUN2Qiw2SEFBQSxzQkFBc0IsT0FBQTtBQUN0Qix3SEFBQSxpQkFBaUIsT0FBQTtBQUNqQix3SEFBQSxpQkFBaUIsT0FBQTtBQUNqQixxSEFBQSxjQUFjLE9BQUE7QUFDZCwySEFBQSxvQkFBb0IsT0FBQTtBQUNwQiwwSEFBQSxtQkFBbUIsT0FBQTtBQUNuQixxSEFBQSxjQUFjLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9idWNrZXRFbmRwb2ludE1pZGRsZXdhcmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2J1Y2tldEhvc3RuYW1lXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25maWd1cmF0aW9uc1wiO1xuZXhwb3J0IHtcbiAgZ2V0QXJuUmVzb3VyY2VzLFxuICBnZXRQc2V1ZG9SZWdpb24sXG4gIGdldFN1ZmZpeEZvckFybkVuZHBvaW50LFxuICB2YWxpZGF0ZU91dHBvc3RTZXJ2aWNlLFxuICB2YWxpZGF0ZVBhcnRpdGlvbixcbiAgdmFsaWRhdGVBY2NvdW50SWQsXG4gIHZhbGlkYXRlUmVnaW9uLFxuICB2YWxpZGF0ZUROU0hvc3RMYWJlbCxcbiAgdmFsaWRhdGVOb0R1YWxzdGFjayxcbiAgdmFsaWRhdGVOb0ZJUFMsXG59IGZyb20gXCIuL2J1Y2tldEhvc3RuYW1lVXRpbHNcIjtcbiJdfQ==
|