@aws-sdk/middleware-bucket-endpoint 3.29.0 → 3.34.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 +41 -0
- package/dist/cjs/bucketEndpointMiddleware.js +8 -10
- package/dist/cjs/bucketHostname.js +32 -36
- package/dist/cjs/bucketHostnameUtils.js +7 -72
- package/dist/cjs/configurations.js +1 -6
- package/dist/cjs/index.js +4 -4
- package/package.json +9 -8
- package/tsconfig.cjs.json +3 -4
- package/tsconfig.es.json +3 -4
- package/tsconfig.types.json +9 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,47 @@
|
|
|
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.34.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.33.0...v3.34.0) (2021-09-24)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **non-clients:** remove comments from transpiled JS files ([#2813](https://github.com/aws/aws-sdk-js-v3/issues/2813)) ([e6fc7f3](https://github.com/aws/aws-sdk-js-v3/commit/e6fc7f3e0fa74785590ac19e7ed143c916bb9b6e))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [3.33.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.32.0...v3.33.0) (2021-09-21)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **client-s3:** support generating endpoints from multi-region access point ([#2796](https://github.com/aws/aws-sdk-js-v3/issues/2796)) ([c1bed9d](https://github.com/aws/aws-sdk-js-v3/commit/c1bed9d5c54ea3afbfe1883877b452b0b54a69fa)), closes [#2759](https://github.com/aws/aws-sdk-js-v3/issues/2759)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# [3.32.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.31.0...v3.32.0) (2021-09-17)
|
|
29
|
+
|
|
30
|
+
**Note:** Version bump only for package @aws-sdk/middleware-bucket-endpoint
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# [3.30.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.29.0...v3.30.0) (2021-09-07)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Bug Fixes
|
|
40
|
+
|
|
41
|
+
* **client-s3:** revert MRAP customizations ([#2759](https://github.com/aws/aws-sdk-js-v3/issues/2759)) ([cfb3fff](https://github.com/aws/aws-sdk-js-v3/commit/cfb3fff268eb393ece2ea50956a6f8610ec51c40))
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
6
47
|
# [3.29.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.28.0...v3.29.0) (2021-09-02)
|
|
7
48
|
|
|
8
49
|
|
|
@@ -13,12 +13,12 @@ const bucketEndpointMiddleware = (options) => (next, context) => async (args) =>
|
|
|
13
13
|
if (options.bucketEndpoint) {
|
|
14
14
|
request.hostname = bucketName;
|
|
15
15
|
}
|
|
16
|
-
else if (
|
|
17
|
-
const bucketArn =
|
|
18
|
-
const clientRegion =
|
|
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
19
|
const { partition, signingRegion = clientRegion } = (await options.regionInfoProvider(clientRegion)) || {};
|
|
20
20
|
const useArnRegion = await options.useArnRegion();
|
|
21
|
-
const { hostname, bucketEndpoint, signingRegion: modifiedSigningRegion, signingService } =
|
|
21
|
+
const { hostname, bucketEndpoint, signingRegion: modifiedSigningRegion, signingService } = bucketHostname_1.bucketHostname({
|
|
22
22
|
bucketName: bucketArn,
|
|
23
23
|
baseHostname: request.hostname,
|
|
24
24
|
accelerateEndpoint: options.useAccelerateEndpoint,
|
|
@@ -32,8 +32,6 @@ const bucketEndpointMiddleware = (options) => (next, context) => async (args) =>
|
|
|
32
32
|
isCustomEndpoint: options.isCustomEndpoint,
|
|
33
33
|
disableMultiregionAccessPoints: await options.disableMultiregionAccessPoints(),
|
|
34
34
|
});
|
|
35
|
-
// If the request needs to use a region or service name inferred from ARN that different from client region, we
|
|
36
|
-
// need to set them in the handler context so the signer will use them
|
|
37
35
|
if (modifiedSigningRegion && modifiedSigningRegion !== signingRegion) {
|
|
38
36
|
context["signing_region"] = modifiedSigningRegion;
|
|
39
37
|
}
|
|
@@ -44,8 +42,8 @@ const bucketEndpointMiddleware = (options) => (next, context) => async (args) =>
|
|
|
44
42
|
replaceBucketInPath = bucketEndpoint;
|
|
45
43
|
}
|
|
46
44
|
else {
|
|
47
|
-
const clientRegion =
|
|
48
|
-
const { hostname, bucketEndpoint } =
|
|
45
|
+
const clientRegion = bucketHostnameUtils_1.getPseudoRegion(await options.region());
|
|
46
|
+
const { hostname, bucketEndpoint } = bucketHostname_1.bucketHostname({
|
|
49
47
|
bucketName,
|
|
50
48
|
clientRegion,
|
|
51
49
|
baseHostname: request.hostname,
|
|
@@ -77,8 +75,8 @@ exports.bucketEndpointMiddlewareOptions = {
|
|
|
77
75
|
};
|
|
78
76
|
const getBucketEndpointPlugin = (options) => ({
|
|
79
77
|
applyToStack: (clientStack) => {
|
|
80
|
-
clientStack.addRelativeTo(
|
|
78
|
+
clientStack.addRelativeTo(exports.bucketEndpointMiddleware(options), exports.bucketEndpointMiddlewareOptions);
|
|
81
79
|
},
|
|
82
80
|
});
|
|
83
81
|
exports.getBucketEndpointPlugin = getBucketEndpointPlugin;
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1Y2tldEVuZHBvaW50TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwREFBcUQ7QUFXckQsOERBQXNGO0FBRXRGLHFEQUFrRDtBQUNsRCwrREFBd0Q7QUFHakQsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLE9BQXFDLEVBQTZCLEVBQUUsQ0FBQyxDQUc1RyxJQUErQixFQUMvQixPQUFnQyxFQUNMLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBZ0MsRUFBdUMsRUFBRTtJQUM5RyxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUEyQixDQUFDO0lBQ2hFLElBQUksbUJBQW1CLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzdCLElBQUksMkJBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDbkMsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQzFCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1NBQy9CO2FBQU0sSUFBSSwwQkFBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sU0FBUyxHQUFHLHVCQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkMsTUFBTSxZQUFZLEdBQUcscUNBQWUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQzdELE1BQU0sRUFBRSxTQUFTLEVBQUUsYUFBYSxHQUFHLFlBQVksRUFBRSxHQUFHLENBQUMsTUFBTSxPQUFPLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0csTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEQsTUFB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QUFBLHVCQUF1QiwyQkFJakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBCdWlsZEhhbmRsZXIsXG4gIEJ1aWxkSGFuZGxlckFyZ3VtZW50cyxcbiAgQnVpbGRIYW5kbGVyT3V0cHV0LFxuICBCdWlsZE1pZGRsZXdhcmUsXG4gIEhhbmRsZXJFeGVjdXRpb25Db250ZXh0LFxuICBNZXRhZGF0YUJlYXJlcixcbiAgUGx1Z2dhYmxlLFxuICBSZWxhdGl2ZU1pZGRsZXdhcmVPcHRpb25zLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlQXJuLCB2YWxpZGF0ZSBhcyB2YWxpZGF0ZUFybiB9IGZyb20gXCJAYXdzLXNkay91dGlsLWFybi1wYXJzZXJcIjtcblxuaW1wb3J0IHsgYnVja2V0SG9zdG5hbWUgfSBmcm9tIFwiLi9idWNrZXRIb3N0bmFtZVwiO1xuaW1wb3J0IHsgZ2V0UHNldWRvUmVnaW9uIH0gZnJvbSBcIi4vYnVja2V0SG9zdG5hbWVVdGlsc1wiO1xuaW1wb3J0IHsgQnVja2V0RW5kcG9pbnRSZXNvbHZlZENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5cbmV4cG9ydCBjb25zdCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmUgPSAob3B0aW9uczogQnVja2V0RW5kcG9pbnRSZXNvbHZlZENvbmZpZyk6IEJ1aWxkTWlkZGxld2FyZTxhbnksIGFueT4gPT4gPFxuICBPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlclxuPihcbiAgbmV4dDogQnVpbGRIYW5kbGVyPGFueSwgT3V0cHV0PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IEJ1aWxkSGFuZGxlcjxhbnksIE91dHB1dD4gPT4gYXN5bmMgKGFyZ3M6IEJ1aWxkSGFuZGxlckFyZ3VtZW50czxhbnk+KTogUHJvbWlzZTxCdWlsZEhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICBjb25zdCB7IEJ1Y2tldDogYnVja2V0TmFtZSB9ID0gYXJncy5pbnB1dCBhcyB7IEJ1Y2tldDogc3RyaW5nIH07XG4gIGxldCByZXBsYWNlQnVja2V0SW5QYXRoID0gb3B0aW9ucy5idWNrZXRFbmRwb2ludDtcbiAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgaWYgKEh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UocmVxdWVzdCkpIHtcbiAgICBpZiAob3B0aW9ucy5idWNrZXRFbmRwb2ludCkge1xuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGJ1Y2tldE5hbWU7XG4gICAgfSBlbHNlIGlmICh2YWxpZGF0ZUFybihidWNrZXROYW1lKSkge1xuICAgICAgY29uc3QgYnVja2V0QXJuID0gcGFyc2VBcm4oYnVja2V0TmFtZSk7XG4gICAgICBjb25zdCBjbGllbnRSZWdpb24gPSBnZXRQc2V1ZG9SZWdpb24oYXdhaXQgb3B0aW9ucy5yZWdpb24oKSk7XG4gICAgICBjb25zdCB7IHBhcnRpdGlvbiwgc2lnbmluZ1JlZ2lvbiA9IGNsaWVudFJlZ2lvbiB9ID0gKGF3YWl0IG9wdGlvbnMucmVnaW9uSW5mb1Byb3ZpZGVyKGNsaWVudFJlZ2lvbikpIHx8IHt9O1xuICAgICAgY29uc3QgdXNlQXJuUmVnaW9uID0gYXdhaXQgb3B0aW9ucy51c2VBcm5SZWdpb24oKTtcbiAgICAgIGNvbnN0IHsgaG9zdG5hbWUsIGJ1Y2tldEVuZHBvaW50LCBzaWduaW5nUmVnaW9uOiBtb2RpZmllZFNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH0gPSBidWNrZXRIb3N0bmFtZSh7XG4gICAgICAgIGJ1Y2tldE5hbWU6IGJ1Y2tldEFybixcbiAgICAgICAgYmFzZUhvc3RuYW1lOiByZXF1ZXN0Lmhvc3RuYW1lLFxuICAgICAgICBhY2NlbGVyYXRlRW5kcG9pbnQ6IG9wdGlvbnMudXNlQWNjZWxlcmF0ZUVuZHBvaW50LFxuICAgICAgICBkdWFsc3RhY2tFbmRwb2ludDogb3B0aW9ucy51c2VEdWFsc3RhY2tFbmRwb2ludCxcbiAgICAgICAgcGF0aFN0eWxlRW5kcG9pbnQ6IG9wdGlvbnMuZm9yY2VQYXRoU3R5bGUsXG4gICAgICAgIHRsc0NvbXBhdGlibGU6IHJlcXVlc3QucHJvdG9jb2wgPT09IFwiaHR0cHM6XCIsXG4gICAgICAgIHVzZUFyblJlZ2lvbixcbiAgICAgICAgY2xpZW50UGFydGl0aW9uOiBwYXJ0aXRpb24sXG4gICAgICAgIGNsaWVudFNpZ25pbmdSZWdpb246IHNpZ25pbmdSZWdpb24sXG4gICAgICAgIGNsaWVudFJlZ2lvbjogY2xpZW50UmVnaW9uLFxuICAgICAgICBpc0N1c3RvbUVuZHBvaW50OiBvcHRpb25zLmlzQ3VzdG9tRW5kcG9pbnQsXG4gICAgICAgIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50czogYXdhaXQgb3B0aW9ucy5kaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMoKSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBJZiB0aGUgcmVxdWVzdCBuZWVkcyB0byB1c2UgYSByZWdpb24gb3Igc2VydmljZSBuYW1lIGluZmVycmVkIGZyb20gQVJOIHRoYXQgZGlmZmVyZW50IGZyb20gY2xpZW50IHJlZ2lvbiwgd2VcbiAgICAgIC8vIG5lZWQgdG8gc2V0IHRoZW0gaW4gdGhlIGhhbmRsZXIgY29udGV4dCBzbyB0aGUgc2lnbmVyIHdpbGwgdXNlIHRoZW1cbiAgICAgIGlmIChtb2RpZmllZFNpZ25pbmdSZWdpb24gJiYgbW9kaWZpZWRTaWduaW5nUmVnaW9uICE9PSBzaWduaW5nUmVnaW9uKSB7XG4gICAgICAgIGNvbnRleHRbXCJzaWduaW5nX3JlZ2lvblwiXSA9IG1vZGlmaWVkU2lnbmluZ1JlZ2lvbjtcbiAgICAgIH1cbiAgICAgIGlmIChzaWduaW5nU2VydmljZSAmJiBzaWduaW5nU2VydmljZSAhPT0gXCJzM1wiKSB7XG4gICAgICAgIGNvbnRleHRbXCJzaWduaW5nX3NlcnZpY2VcIl0gPSBzaWduaW5nU2VydmljZTtcbiAgICAgIH1cblxuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IGJ1Y2tldEVuZHBvaW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjbGllbnRSZWdpb24gPSBnZXRQc2V1ZG9SZWdpb24oYXdhaXQgb3B0aW9ucy5yZWdpb24oKSk7XG4gICAgICBjb25zdCB7IGhvc3RuYW1lLCBidWNrZXRFbmRwb2ludCB9ID0gYnVja2V0SG9zdG5hbWUoe1xuICAgICAgICBidWNrZXROYW1lLFxuICAgICAgICBjbGllbnRSZWdpb24sXG4gICAgICAgIGJhc2VIb3N0bmFtZTogcmVxdWVzdC5ob3N0bmFtZSxcbiAgICAgICAgYWNjZWxlcmF0ZUVuZHBvaW50OiBvcHRpb25zLnVzZUFjY2VsZXJhdGVFbmRwb2ludCxcbiAgICAgICAgZHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICAgIHBhdGhTdHlsZUVuZHBvaW50OiBvcHRpb25zLmZvcmNlUGF0aFN0eWxlLFxuICAgICAgICB0bHNDb21wYXRpYmxlOiByZXF1ZXN0LnByb3RvY29sID09PSBcImh0dHBzOlwiLFxuICAgICAgICBpc0N1c3RvbUVuZHBvaW50OiBvcHRpb25zLmlzQ3VzdG9tRW5kcG9pbnQsXG4gICAgICB9KTtcblxuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IGJ1Y2tldEVuZHBvaW50O1xuICAgIH1cblxuICAgIGlmIChyZXBsYWNlQnVja2V0SW5QYXRoKSB7XG4gICAgICByZXF1ZXN0LnBhdGggPSByZXF1ZXN0LnBhdGgucmVwbGFjZSgvXihcXC8pP1teXFwvXSsvLCBcIlwiKTtcbiAgICAgIGlmIChyZXF1ZXN0LnBhdGggPT09IFwiXCIpIHtcbiAgICAgICAgcmVxdWVzdC5wYXRoID0gXCIvXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5leHQoeyAuLi5hcmdzLCByZXF1ZXN0IH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnM6IFJlbGF0aXZlTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gIHRhZ3M6IFtcIkJVQ0tFVF9FTkRQT0lOVFwiXSxcbiAgbmFtZTogXCJidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVcIixcbiAgcmVsYXRpb246IFwiYmVmb3JlXCIsXG4gIHRvTWlkZGxld2FyZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCdWNrZXRFbmRwb2ludFBsdWdpbiA9IChvcHRpb25zOiBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlKG9wdGlvbnMpLCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19
|
|
@@ -3,17 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.bucketHostname = void 0;
|
|
4
4
|
const bucketHostnameUtils_1 = require("./bucketHostnameUtils");
|
|
5
5
|
const bucketHostname = (options) => {
|
|
6
|
-
|
|
7
|
-
return
|
|
8
|
-
?
|
|
6
|
+
bucketHostnameUtils_1.validateCustomEndpoint(options);
|
|
7
|
+
return bucketHostnameUtils_1.isBucketNameOptions(options)
|
|
8
|
+
?
|
|
9
9
|
getEndpointFromBucketName(options)
|
|
10
|
-
:
|
|
10
|
+
:
|
|
11
11
|
getEndpointFromArn(options);
|
|
12
12
|
};
|
|
13
13
|
exports.bucketHostname = bucketHostname;
|
|
14
14
|
const getEndpointFromBucketName = ({ accelerateEndpoint = false, clientRegion: region, baseHostname, bucketName, dualstackEndpoint = false, pathStyleEndpoint = false, tlsCompatible = true, isCustomEndpoint = false, }) => {
|
|
15
|
-
const [clientRegion, hostnameSuffix] = isCustomEndpoint ? [region, baseHostname] :
|
|
16
|
-
if (pathStyleEndpoint || !
|
|
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
17
|
return {
|
|
18
18
|
bucketEndpoint: false,
|
|
19
19
|
hostname: dualstackEndpoint ? `s3.dualstack.${clientRegion}.${hostnameSuffix}` : baseHostname,
|
|
@@ -32,15 +32,14 @@ const getEndpointFromBucketName = ({ accelerateEndpoint = false, clientRegion: r
|
|
|
32
32
|
};
|
|
33
33
|
const getEndpointFromArn = (options) => {
|
|
34
34
|
const { isCustomEndpoint, baseHostname, clientRegion } = options;
|
|
35
|
-
const hostnameSuffix = isCustomEndpoint ? baseHostname :
|
|
35
|
+
const hostnameSuffix = isCustomEndpoint ? baseHostname : bucketHostnameUtils_1.getSuffixForArnEndpoint(baseHostname)[1];
|
|
36
36
|
const { pathStyleEndpoint, accelerateEndpoint = false, tlsCompatible = true, bucketName, clientPartition = "aws", } = options;
|
|
37
|
-
|
|
38
|
-
// Validate and parse the ARN supplied as a bucket name
|
|
37
|
+
bucketHostnameUtils_1.validateArnEndpointOptions({ pathStyleEndpoint, accelerateEndpoint, tlsCompatible });
|
|
39
38
|
const { service, partition, accountId, region, resource } = bucketName;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const { accesspointName, outpostId } =
|
|
39
|
+
bucketHostnameUtils_1.validateService(service);
|
|
40
|
+
bucketHostnameUtils_1.validatePartition(partition, { clientPartition });
|
|
41
|
+
bucketHostnameUtils_1.validateAccountId(accountId);
|
|
42
|
+
const { accesspointName, outpostId } = bucketHostnameUtils_1.getArnResources(resource);
|
|
44
43
|
if (service === "s3-object-lambda") {
|
|
45
44
|
return getEndpointFromObjectLambdaArn({ ...options, tlsCompatible, bucketName, accesspointName, hostnameSuffix });
|
|
46
45
|
}
|
|
@@ -54,27 +53,26 @@ const getEndpointFromArn = (options) => {
|
|
|
54
53
|
};
|
|
55
54
|
const getEndpointFromObjectLambdaArn = ({ dualstackEndpoint = false, tlsCompatible = true, useArnRegion, clientRegion, clientSigningRegion = clientRegion, accesspointName, bucketName, hostnameSuffix, }) => {
|
|
56
55
|
const { accountId, region, service } = bucketName;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
bucketHostnameUtils_1.validateRegionalClient(clientRegion);
|
|
57
|
+
bucketHostnameUtils_1.validateRegion(region, { useArnRegion, clientRegion, clientSigningRegion, allowFipsRegion: true });
|
|
58
|
+
bucketHostnameUtils_1.validateNoDualstack(dualstackEndpoint);
|
|
60
59
|
const DNSHostLabel = `${accesspointName}-${accountId}`;
|
|
61
|
-
|
|
60
|
+
bucketHostnameUtils_1.validateDNSHostLabel(DNSHostLabel, { tlsCompatible });
|
|
62
61
|
const endpointRegion = useArnRegion ? region : clientRegion;
|
|
63
62
|
const signingRegion = useArnRegion ? region : clientSigningRegion;
|
|
64
63
|
return {
|
|
65
64
|
bucketEndpoint: true,
|
|
66
|
-
hostname: `${DNSHostLabel}.${service}${
|
|
65
|
+
hostname: `${DNSHostLabel}.${service}${bucketHostnameUtils_1.isFipsRegion(clientRegion) ? "-fips" : ""}.${bucketHostnameUtils_1.getPseudoRegion(endpointRegion)}.${hostnameSuffix}`,
|
|
67
66
|
signingRegion,
|
|
68
67
|
signingService: service,
|
|
69
68
|
};
|
|
70
69
|
};
|
|
71
70
|
const getEndpointFromMRAPArn = ({ disableMultiregionAccessPoints, dualstackEndpoint = false, isCustomEndpoint, mrapAlias, hostnameSuffix, }) => {
|
|
72
|
-
// If this is a multi-regional access point, and not explicitly opted out.
|
|
73
71
|
if (disableMultiregionAccessPoints === true) {
|
|
74
72
|
throw new Error("SDK is attempting to use a MRAP ARN. Please enable to feature.");
|
|
75
73
|
}
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
bucketHostnameUtils_1.validateMrapAlias(mrapAlias);
|
|
75
|
+
bucketHostnameUtils_1.validateNoDualstack(dualstackEndpoint);
|
|
78
76
|
return {
|
|
79
77
|
bucketEndpoint: true,
|
|
80
78
|
hostname: `${mrapAlias}${isCustomEndpoint ? "" : `.accesspoint.s3-global`}.${hostnameSuffix}`,
|
|
@@ -82,17 +80,16 @@ const getEndpointFromMRAPArn = ({ disableMultiregionAccessPoints, dualstackEndpo
|
|
|
82
80
|
};
|
|
83
81
|
};
|
|
84
82
|
const getEndpointFromOutpostArn = ({ useArnRegion, clientRegion, clientSigningRegion = clientRegion, bucketName, outpostId, dualstackEndpoint = false, tlsCompatible = true, accesspointName, isCustomEndpoint, hostnameSuffix, }) => {
|
|
85
|
-
|
|
86
|
-
(
|
|
87
|
-
(0, bucketHostnameUtils_1.validateRegion)(bucketName.region, { useArnRegion, clientRegion, clientSigningRegion });
|
|
83
|
+
bucketHostnameUtils_1.validateRegionalClient(clientRegion);
|
|
84
|
+
bucketHostnameUtils_1.validateRegion(bucketName.region, { useArnRegion, clientRegion, clientSigningRegion });
|
|
88
85
|
const DNSHostLabel = `${accesspointName}-${bucketName.accountId}`;
|
|
89
|
-
|
|
86
|
+
bucketHostnameUtils_1.validateDNSHostLabel(DNSHostLabel, { tlsCompatible });
|
|
90
87
|
const endpointRegion = useArnRegion ? bucketName.region : clientRegion;
|
|
91
88
|
const signingRegion = useArnRegion ? bucketName.region : clientSigningRegion;
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
89
|
+
bucketHostnameUtils_1.validateOutpostService(bucketName.service);
|
|
90
|
+
bucketHostnameUtils_1.validateDNSHostLabel(outpostId, { tlsCompatible });
|
|
91
|
+
bucketHostnameUtils_1.validateNoDualstack(dualstackEndpoint);
|
|
92
|
+
bucketHostnameUtils_1.validateNoFIPS(endpointRegion);
|
|
96
93
|
const hostnamePrefix = `${DNSHostLabel}.${outpostId}`;
|
|
97
94
|
return {
|
|
98
95
|
bucketEndpoint: true,
|
|
@@ -102,20 +99,19 @@ const getEndpointFromOutpostArn = ({ useArnRegion, clientRegion, clientSigningRe
|
|
|
102
99
|
};
|
|
103
100
|
};
|
|
104
101
|
const getEndpointFromAccessPointArn = ({ useArnRegion, clientRegion, clientSigningRegion = clientRegion, bucketName, dualstackEndpoint = false, tlsCompatible = true, accesspointName, isCustomEndpoint, hostnameSuffix, }) => {
|
|
105
|
-
|
|
106
|
-
(
|
|
107
|
-
(0, bucketHostnameUtils_1.validateRegion)(bucketName.region, { useArnRegion, clientRegion, clientSigningRegion, allowFipsRegion: true });
|
|
102
|
+
bucketHostnameUtils_1.validateRegionalClient(clientRegion);
|
|
103
|
+
bucketHostnameUtils_1.validateRegion(bucketName.region, { useArnRegion, clientRegion, clientSigningRegion, allowFipsRegion: true });
|
|
108
104
|
const hostnamePrefix = `${accesspointName}-${bucketName.accountId}`;
|
|
109
|
-
|
|
105
|
+
bucketHostnameUtils_1.validateDNSHostLabel(hostnamePrefix, { tlsCompatible });
|
|
110
106
|
const endpointRegion = useArnRegion ? bucketName.region : clientRegion;
|
|
111
107
|
const signingRegion = useArnRegion ? bucketName.region : clientSigningRegion;
|
|
112
|
-
|
|
108
|
+
bucketHostnameUtils_1.validateS3Service(bucketName.service);
|
|
113
109
|
return {
|
|
114
110
|
bucketEndpoint: true,
|
|
115
111
|
hostname: `${hostnamePrefix}${isCustomEndpoint
|
|
116
112
|
? ""
|
|
117
|
-
: `.s3-accesspoint${
|
|
113
|
+
: `.s3-accesspoint${bucketHostnameUtils_1.isFipsRegion(clientRegion) ? "-fips" : ""}${dualstackEndpoint ? ".dualstack" : ""}.${bucketHostnameUtils_1.getPseudoRegion(endpointRegion)}`}.${hostnameSuffix}`,
|
|
118
114
|
signingRegion,
|
|
119
115
|
};
|
|
120
116
|
};
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVja2V0SG9zdG5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsK0RBd0IrQjtBQVN4QixNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQWlELEVBQWtCLEVBQUU7SUFDbEcsSUFBQSw0Q0FBc0IsRUFBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxPQUFPLElBQUEseUNBQW1CLEVBQUMsT0FBTyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyw0RUFBNEU7WUFDNUUseUJBQXlCLENBQUMsT0FBTyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyw2RkFBNkY7WUFDN0Ysa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBUFcsUUFBQSxjQUFjLGtCQU96QjtBQUVGLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxFQUNqQyxrQkFBa0IsR0FBRyxLQUFLLEVBQzFCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLFlBQVksRUFDWixVQUFVLEVBQ1YsaUJBQWlCLEdBQUcsS0FBSyxFQUN6QixpQkFBaUIsR0FBRyxLQUFLLEVBQ3pCLGFBQWEsR0FBRyxJQUFJLEVBQ3BCLGdCQUFnQixHQUFHLEtBQUssR0FDSCxFQUFrQixFQUFFO0lBQ3pDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLCtCQUFTLEVBQUMsWUFBWSxDQUFDLENBQUM7SUFDM0csSUFBSSxpQkFBaUIsSUFBSSxDQUFDLElBQUEsK0NBQXlCLEVBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksaUNBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRTtRQUNsSCxPQUFPO1lBQ0wsY0FBYyxFQUFFLEtBQUs7WUFDckIsUUFBUSxFQUFFLGlCQUFp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QVksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUM7SUFDN0UsSUFBQSx1Q0FBaUIsRUFBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsT0FBTztRQUNMLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFFBQVEsRUFBRSxHQUFHLGNBQWMsR0FDekIsZ0JBQWdCO1lBQ2QsQ0FBQyxDQUFDLEVBQUU7WUFDSixDQUFDLENBQUMsa0JBQWtCLElBQUEsa0NBQVksRUFBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQ3pELGlCQUFpQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQ3JDLElBQUksSUFBQSxxQ0FBZSxFQUFDLGNBQWMsQ0FBQyxFQUN6QyxJQUFJLGNBQWMsRUFBRTtRQUNwQixhQUFhO0tBQ2QsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFSTiB9IGZyb20gXCJAYXdzLXNkay91dGlsLWFybi1wYXJzZXJcIjtcblxuaW1wb3J0IHtcbiAgQXJuSG9zdG5hbWVQYXJhbXMsXG4gIEJ1Y2tldEhvc3RuYW1lUGFyYW1zLFxuICBET1RfUEFUVEVSTixcbiAgZ2V0QXJuUmVzb3VyY2VzLFxuICBnZXRQc2V1ZG9SZWdpb24sXG4gIGdldFN1ZmZpeCxcbiAgZ2V0U3VmZml4Rm9yQXJuRW5kcG9pbnQsXG4gIGlzQnVja2V0TmFtZU9wdGlvbnMsXG4gIGlzRG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUsXG4gIGlzRmlwc1JlZ2lvbixcbiAgdmFsaWRhdGVBY2NvdW50SWQsXG4gIHZhbGlkYXRlQXJuRW5kcG9pbnRPcHRpb25zLFxuICB2YWxpZGF0ZUN1c3RvbUVuZHBvaW50LFxuICB2YWxpZGF0ZUROU0hvc3RMYWJlbCxcbiAgdmFsaWRhdGVNcmFwQWxpYXMsXG4gIHZhbGlkYXRlTm9EdWFsc3RhY2ssXG4gIHZhbGlkYXRlTm9GSVBTLFxuICB2YWxpZGF0ZU91dHBvc3RTZXJ2aWNlLFxuICB2YWxpZGF0ZVBhcnRpdGlvbixcbiAgdmFsaWRhdGVSZWdpb24sXG4gIHZhbGlkYXRlUmVnaW9uYWxDbGllbnQsXG4gIHZhbGlkYXRlUzNTZXJ2aWNlLFxuICB2YWxpZGF0ZVNlcnZpY2UsXG59IGZyb20gXCIuL2J1Y2tldEhvc3RuYW1lVXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRIb3N0bmFtZSB7XG4gIGhvc3RuYW1lOiBzdHJpbmc7XG4gIGJ1Y2tldEVuZHBvaW50OiBib29sZWFuO1xuICBzaWduaW5nUmVnaW9uPzogc3RyaW5nO1xuICBzaWduaW5nU2VydmljZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGJ1Y2tldEhvc3RuYW1lID0gKG9wdGlvbnM6IEJ1Y2tldEhvc3RuYW1lUGFyYW1zIHwgQXJuSG9zdG5hbWVQYXJhbXMpOiBCdWNrZXRIb3N0bmFtZSA9PiB7XG4gIHZhbGlkYXRlQ3VzdG9tRW5kcG9pbnQob3B0aW9ucyk7XG4gIHJldHVybiBpc0J1Y2tldE5hbWVPcHRpb25zKG9wdGlvbnMpXG4gICAgPyAvLyBDb25zdHJ1Y3QgZW5kcG9pbnQgd2hlbiBidWNrZXROYW1lIGlzIGEgc3RyaW5nIHJlZmVycmluZyB0byBhIGJ1Y2tldCBuYW1lXG4gICAgICBnZXRFbmRwb2ludEZyb21CdWNrZXROYW1lKG9wdGlvbnMpXG4gICAgOiAvLyBDb25zdHJ1Y3QgZW5kcG9pbnQgd2hlbiBidWNrZXROYW1lIGlzIGFuIEFSTiByZWZlcnJpbmcgdG8gYW4gUzMgcmVzb3VyY2UgbGlrZSBBY2Nlc3MgUG9pbnRcbiAgICAgIGdldEVuZHBvaW50RnJvbUFybihvcHRpb25zKTtcbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbUJ1Y2tldE5hbWUgPSAoe1xuICBhY2NlbGVyYXRlRW5kcG9pbnQgPSBmYWxzZSxcbiAgY2xpZW50UmVnaW9uOiByZWdpb24sXG4gIGJhc2VIb3N0bmFtZSxcbiAgYnVja2V0TmFtZSxcbiAgZHVhbHN0YWNrRW5kcG9pbnQgPSBmYWxzZSxcbiAgcGF0aFN0eWxlRW5kcG9pbnQgPSBmYWxzZSxcbiAgdGxzQ29tcGF0aWJsZSA9IHRydWUsXG4gIGlzQ3VzdG9tRW5kcG9pbnQgPSBmYWxzZSxcbn06IEJ1Y2tldEhvc3RuYW1lUGFyYW1zKTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICBjb25zdCBbY2xpZW50UmVnaW9uLCBob3N0bmFtZVN1ZmZpeF0gPSBpc0N1c3RvbUVuZHBvaW50ID8gW3JlZ2lvbiwgYmFzZUhvc3RuYW1lXSA6IGdldFN1ZmZpeChiYXNlSG9zdG5hbWUpO1xuICBpZiAocGF0aFN0eWxlRW5kcG9pbnQgfHwgIWlzRG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUoYnVja2V0TmFtZSkgfHwgKHRsc0NvbXBhdGlibGUgJiYgRE9UX1BBVFRFUk4udGVzdChidWNrZXROYW1lKSkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYnVja2V0RW5kcG9pbnQ6IGZhbHNlLFxuICAgICAgaG9zdG5hbWU6IGR1YWxzdGFja0VuZHBvaW50ID8gYHMzLmR1YWxzdGFjay4ke2NsaWVudFJlZ2lvbn0uJHtob3N0bmFtZVN1ZmZpeH1gIDogYmFzZUhvc3RuYW1lLFxuICAgIH07XG4gIH1cblxuICBpZiAoYWNjZWxlcmF0ZUVuZHBvaW50KSB7XG4gICAgYmFzZUhvc3RuYW1lID0gYHMzLWFjY2VsZXJhdGUke2R1YWxzdGFja0VuZHBvaW50ID8gXCIuZHVhbHN0YWNrXCIgOiBcIlwifS4ke2hvc3RuYW1lU3VmZml4fWA7XG4gIH0gZWxzZSBpZiAoZHVhbHN0YWNrRW5kcG9pbnQpIHtcbiAgICBiYXNlSG9zdG5hbWUgPSBgczMuZHVhbHN0YWNrLiR7Y2xpZW50UmVnaW9ufS4ke2hvc3RuYW1lU3VmZml4fWA7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgIGhvc3RuYW1lOiBgJHtidWNrZXROYW1lfS4ke2Jhc2VIb3N0bmFtZX1gLFxuICB9O1xufTtcblxuY29uc3QgZ2V0RW5kcG9pbnRGcm9tQXJuID0gKG9wdGlvbnM6IEFybkhvc3RuYW1lUGFyYW1zKTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICBjb25zdCB7IGlzQ3VzdG9tRW5kcG9pbnQsIGJhc2VIb3N0bmFtZSwgY2xpZW50UmVnaW9uIH0gPSBvcHRpb25zO1xuICBjb25zdCBob3N0bmFtZVN1ZmZpeCA9IGlzQ3VzdG9tRW5kcG9pbnQgPyBiYXNlSG9zdG5hbWUgOiBnZXRTdWZmaXhGb3JBcm5FbmRwb2ludChiYXNlSG9zdG5hbWUpWzFdO1xuXG4gIGNvbnN0IHtcbiAgICBwYXRoU3R5bGVFbmRwb2ludCxcbiAgICBhY2NlbGVyYXRlRW5kcG9pbnQgPSBmYWxzZSxcbiAgICB0bHNDb21wYXRpYmxlID0gdHJ1ZSxcbiAgICBidWNrZXROYW1lLFxuICAgIGNsaWVudFBhcnRpdGlvbiA9IFwiYXdzXCIsXG4gIH0gPSBvcHRpb25zO1xuXG4gIHZhbGlkYXRlQXJuRW5kcG9pbnRPcHRpb25zKHsgcGF0aFN0eWxlRW5kcG9pbnQsIGFjY2VsZXJhdGVFbmRwb2ludCwgdGxzQ29tcGF0aWJsZSB9KTtcblxuICAvLyBWYWxpZGF0ZSBhbmQgcGFyc2UgdGhlIEFSTiBzdXBwbGllZCBhcyBhIGJ1Y2tldCBuYW1lXG4gIGNvbnN0IHsgc2VydmljZSwgcGFydGl0aW9uLCBhY2NvdW50SWQsIHJlZ2lvbiwgcmVzb3VyY2UgfSA9IGJ1Y2tldE5hbWU7XG4gIHZhbGlkYXRlU2VydmljZShzZXJ2aWNlKTtcbiAgdmFsaWRhdGVQYXJ0aXRpb24ocGFydGl0aW9uLCB7IGNsaWVudFBhcnRpdGlvbiB9KTtcbiAgdmFsaWRhdGVBY2NvdW50SWQoYWNjb3VudElkKTtcbiAgY29uc3QgeyBhY2Nlc3Nwb2ludE5hbWUsIG91dHBvc3RJZCB9ID0gZ2V0QXJuUmVzb3VyY2VzKHJlc291cmNlKTtcbiAgaWYgKHNlcnZpY2UgPT09IFwiczMtb2JqZWN0LWxhbWJkYVwiKSB7XG4gICAgcmV0dXJuIGdldEVuZHBvaW50RnJvbU9iamVjdExhbWJkYUFybih7IC4uLm9wdGlvbnMsIHRsc0NvbXBhdGlibGUsIGJ1Y2tldE5hbWUsIGFjY2Vzc3BvaW50TmFtZSwgaG9zdG5hbWVTdWZmaXggfSk7XG4gIH1cbiAgaWYgKHJlZ2lvbiA9PT0gXCJcIikge1xuICAgIHJldHVybiBnZXRFbmRwb2ludEZyb21NUkFQQXJuKHsgLi4ub3B0aW9ucywgY2xpZW50UmVnaW9uLCBtcmFwQWxpYXM6IGFjY2Vzc3BvaW50TmFtZSwgaG9zdG5hbWVTdWZmaXggfSk7XG4gIH1cbiAgaWYgKG91dHBvc3RJZCkge1xuICAgIHJldHVybiBnZXRFbmRwb2ludEZyb21PdXRwb3N0QXJuKHsgLi4ub3B0aW9ucywgY2xpZW50UmVnaW9uLCBvdXRwb3N0SWQsIGFjY2Vzc3BvaW50TmFtZSwgaG9zdG5hbWVTdWZmaXggfSk7XG4gIH1cbiAgcmV0dXJuIGdldEVuZHBvaW50RnJvbUFjY2Vzc1BvaW50QXJuKHsgLi4ub3B0aW9ucywgY2xpZW50UmVnaW9uLCBhY2Nlc3Nwb2ludE5hbWUsIGhvc3RuYW1lU3VmZml4IH0pO1xufTtcblxuY29uc3QgZ2V0RW5kcG9pbnRGcm9tT2JqZWN0TGFtYmRhQXJuID0gKHtcbiAgZHVhbHN0YWNrRW5kcG9pbnQgPSBmYWxzZSxcbiAgdGxzQ29tcGF0aWJsZSA9IHRydWUsXG4gIHVzZUFyblJlZ2lvbixcbiAgY2xpZW50UmVnaW9uLFxuICBjbGllbnRTaWduaW5nUmVnaW9uID0gY2xpZW50UmVnaW9uLFxuICBhY2Nlc3Nwb2ludE5hbWUsXG4gIGJ1Y2tldE5hbWUsXG4gIGhvc3RuYW1lU3VmZml4LFxufTogQXJuSG9zdG5hbWVQYXJhbXMgJiB7XG4gIGFjY2Vzc3BvaW50TmFtZTogc3RyaW5nO1xuICBidWNrZXROYW1lOiBBUk47XG4gIGhvc3RuYW1lU3VmZml4OiBzdHJpbmc7XG59KTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICBjb25zdCB7IGFjY291bnRJZCwgcmVnaW9uLCBzZXJ2aWNlIH0gPSBidWNrZXROYW1lO1xuICB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50KGNsaWVudFJlZ2lvbik7XG4gIHZhbGlkYXRlUmVnaW9uKHJlZ2lvbiwgeyB1c2VBcm5SZWdpb24sIGNsaWVudFJlZ2lvbiwgY2xpZW50U2lnbmluZ1JlZ2lvbiwgYWxsb3dGaXBzUmVnaW9uOiB0cnVlIH0pO1xuICB2YWxpZGF0ZU5vRHVhbHN0YWNrKGR1YWxzdGFja0VuZHBvaW50KTtcbiAgY29uc3QgRE5TSG9zdExhYmVsID0gYCR7YWNjZXNzcG9pbnROYW1lfS0ke2FjY291bnRJZH1gO1xuICB2YWxpZGF0ZUROU0hvc3RMYWJlbChETlNIb3N0TGFiZWwsIHsgdGxzQ29tcGF0aWJsZSB9KTtcblxuICBjb25zdCBlbmRwb2ludFJlZ2lvbiA9IHVzZUFyblJlZ2lvbiA/IHJlZ2lvbiA6IGNsaWVudFJlZ2lvbjtcbiAgY29uc3Qgc2lnbmluZ1JlZ2lvbiA9IHVzZUFyblJlZ2lvbiA/IHJlZ2lvbiA6IGNsaWVudFNpZ25pbmdSZWdpb247XG5cbiAgcmV0dXJuIHtcbiAgICBidWNrZXRFbmRwb2ludDogdHJ1ZSxcbiAgICBob3N0bmFtZTogYCR7RE5TSG9zdExhYmVsfS4ke3NlcnZpY2V9JHtpc0ZpcHNSZWdpb24oY2xpZW50UmVnaW9uKSA/IFwiLWZpcHNcIiA6IFwiXCJ9LiR7Z2V0UHNldWRvUmVnaW9uKFxuICAgICAgZW5kcG9pbnRSZWdpb25cbiAgICApfS4ke2hvc3RuYW1lU3VmZml4fWAsXG4gICAgc2lnbmluZ1JlZ2lvbixcbiAgICBzaWduaW5nU2VydmljZTogc2VydmljZSxcbiAgfTtcbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbU1SQVBBcm4gPSAoe1xuICBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMsXG4gIGR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gIGlzQ3VzdG9tRW5kcG9pbnQsXG4gIG1yYXBBbGlhcyxcbiAgaG9zdG5hbWVTdWZmaXgsXG59OiBBcm5Ib3N0bmFtZVBhcmFtcyAmIHsgbXJhcEFsaWFzOiBzdHJpbmc7IGhvc3RuYW1lU3VmZml4OiBzdHJpbmcgfSk6IEJ1Y2tldEhvc3RuYW1lID0+IHtcbiAgLy8gSWYgdGhpcyBpcyBhIG11bHRpLXJlZ2lvbmFsIGFjY2VzcyBwb2ludCwgYW5kIG5vdCBleHBsaWNpdGx5IG9wdGVkIG91dC5cbiAgaWYgKGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50cyA9PT0gdHJ1ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlNESyBpcyBhdHRlbXB0aW5nIHRvIHVzZSBhIE1SQVAgQVJOLiBQbGVhc2UgZW5hYmxlIHRvIGZlYXR1cmUuXCIpO1xuICB9XG4gIHZhbGlkYXRlTXJhcEFsaWFzKG1yYXBBbGlhcyk7XG4gIHZhbGlkYXRlTm9EdWFsc3RhY2soZHVhbHN0YWNrRW5kcG9pbnQpO1xuICByZXR1cm4ge1xuICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgIGhvc3RuYW1lOiBgJHttcmFwQWxpYXN9JHtpc0N1c3RvbUVuZHBvaW50ID8gXCJcIiA6IGAuYWNjZXNzcG9pbnQuczMtZ2xvYmFsYH0uJHtob3N0bmFtZVN1ZmZpeH1gLFxuICAgIHNpZ25pbmdSZWdpb246IFwiKlwiLFxuICB9O1xufTtcblxuY29uc3QgZ2V0RW5kcG9pbnRGcm9tT3V0cG9zdEFybiA9ICh7XG4gIHVzZUFyblJlZ2lvbixcbiAgY2xpZW50UmVnaW9uLFxuICBjbGllbnRTaWduaW5nUmVnaW9uID0gY2xpZW50UmVnaW9uLFxuICBidWNrZXROYW1lLFxuICBvdXRwb3N0SWQsXG4gIGR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gIHRsc0NvbXBhdGlibGUgPSB0cnVlLFxuICBhY2Nlc3Nwb2ludE5hbWUsXG4gIGlzQ3VzdG9tRW5kcG9pbnQsXG4gIGhvc3RuYW1lU3VmZml4LFxufTogQXJuSG9zdG5hbWVQYXJhbXMgJiB7IG91dHBvc3RJZDogc3RyaW5nOyBhY2Nlc3Nwb2ludE5hbWU6IHN0cmluZzsgaG9zdG5hbWVTdWZmaXg6IHN0cmluZyB9KTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICAvLyBpZiB0aGlzIGlzIGFuIE91dHBvc3QgQVJOXG4gIHZhbGlkYXRlUmVnaW9uYWxDbGllbnQoY2xpZW50UmVnaW9uKTtcbiAgdmFsaWRhdGVSZWdpb24oYnVja2V0TmFtZS5yZWdpb24sIHsgdXNlQXJuUmVnaW9uLCBjbGllbnRSZWdpb24sIGNsaWVudFNpZ25pbmdSZWdpb24gfSk7XG4gIGNvbnN0IEROU0hvc3RMYWJlbCA9IGAke2FjY2Vzc3BvaW50TmFtZX0tJHtidWNrZXROYW1lLmFjY291bnRJZH1gO1xuICB2YWxpZGF0ZUROU0hvc3RMYWJlbChETlNIb3N0TGFiZWwsIHsgdGxzQ29tcGF0aWJsZSB9KTtcbiAgY29uc3QgZW5kcG9pbnRSZWdpb24gPSB1c2VBcm5SZWdpb24gPyBidWNrZXROYW1lLnJlZ2lvbiA6IGNsaWVudFJlZ2lvbjtcbiAgY29uc3Qgc2lnbmluZ1JlZ2lvbiA9IHVzZUFyblJlZ2lvbiA/IGJ1Y2tldE5hbWUucmVnaW9uIDogY2xpZW50U2lnbmluZ1JlZ2lvbjtcbiAgdmFsaWRhdGVPdXRwb3N0U2VydmljZShidWNrZXROYW1lLnNlcnZpY2UpO1xuICB2YWxpZGF0ZUROU0hvc3RMYWJlbChvdXRwb3N0SWQsIHsgdGxzQ29tcGF0aWJsZSB9KTtcbiAgdmFsaWRhdGVOb0R1YWxzdGFjayhkdWFsc3RhY2tFbmRwb2ludCk7XG4gIHZhbGlkYXRlTm9GSVBTKGVuZHBvaW50UmVnaW9uKTtcbiAgY29uc3QgaG9zdG5hbWVQcmVmaXggPSBgJHtETlNIb3N0TGFiZWx9LiR7b3V0cG9zdElkfWA7XG4gIHJldHVybiB7XG4gICAgYnVja2V0RW5kcG9pbnQ6IHRydWUsXG4gICAgaG9zdG5hbWU6IGAke2hvc3RuYW1lUHJlZml4fSR7aXNDdXN0b21FbmRwb2ludCA/IFwiXCIgOiBgLnMzLW91dHBvc3RzLiR7ZW5kcG9pbnRSZWdpb259YH0uJHtob3N0bmFtZVN1ZmZpeH1gLFxuICAgIHNpZ25pbmdSZWdpb24sXG4gICAgc2lnbmluZ1NlcnZpY2U6IFwiczMtb3V0cG9zdHNcIixcbiAgfTtcbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbUFjY2Vzc1BvaW50QXJuID0gKHtcbiAgdXNlQXJuUmVnaW9uLFxuICBjbGllbnRSZWdpb24sXG4gIGNsaWVudFNpZ25pbmdSZWdpb24gPSBjbGllbnRSZWdpb24sXG4gIGJ1Y2tldE5hbWUsXG4gIGR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gIHRsc0NvbXBhdGlibGUgPSB0cnVlLFxuICBhY2Nlc3Nwb2ludE5hbWUsXG4gIGlzQ3VzdG9tRW5kcG9pbnQsXG4gIGhvc3RuYW1lU3VmZml4LFxufTogQXJuSG9zdG5hbWVQYXJhbXMgJiB7IGFjY2Vzc3BvaW50TmFtZTogc3RyaW5nOyBob3N0bmFtZVN1ZmZpeDogc3RyaW5nIH0pOiBCdWNrZXRIb3N0bmFtZSA9PiB7XG4gIC8vIGNvbnN0cnVjdCBlbmRwb2ludCBmcm9tIEFjY2Vzc3BvaW50IEFSTlxuICB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50KGNsaWVudFJlZ2lvbik7XG4gIHZhbGlkYXRlUmVnaW9uKGJ1Y2tldE5hbWUucmVnaW9uLCB7IHVzZUFyblJlZ2lvbiwgY2xpZW50UmVnaW9uLCBjbGllbnRTaWduaW5nUmVnaW9uLCBhbGxvd0ZpcHNSZWdpb246IHRydWUgfSk7XG4gIGNvbnN0IGhvc3RuYW1lUHJlZml4ID0gYCR7YWNjZXNzcG9pbnROYW1lfS0ke2J1Y2tldE5hbWUuYWNjb3VudElkfWA7XG4gIHZhbGlkYXRlRE5TSG9zdExhYmVsKGhvc3RuYW1lUHJlZml4LCB7IHRsc0NvbXBhdGlibGUgfSk7XG4gIGNvbnN0IGVuZHBvaW50UmVnaW9uID0gdXNlQXJuUmVnaW9uID8gYnVja2V0TmFtZS5yZWdpb24gOiBjbGllbnRSZWdpb247XG4gIGNvbnN0IHNpZ25pbmdSZWdpb24gPSB1c2VBcm5SZWdpb24gPyBidWNrZXROYW1lLnJlZ2lvbiA6IGNsaWVudFNpZ25pbmdSZWdpb247XG4gIHZhbGlkYXRlUzNTZXJ2aWNlKGJ1Y2tldE5hbWUuc2VydmljZSk7XG4gIHJldHVybiB7XG4gICAgYnVja2V0RW5kcG9pbnQ6IHRydWUsXG4gICAgaG9zdG5hbWU6IGAke2hvc3RuYW1lUHJlZml4fSR7XG4gICAgICBpc0N1c3RvbUVuZHBvaW50XG4gICAgICAgID8gXCJcIlxuICAgICAgICA6IGAuczMtYWNjZXNzcG9pbnQke2lzRmlwc1JlZ2lvbihjbGllbnRSZWdpb24pID8gXCItZmlwc1wiIDogXCJcIn0ke1xuICAgICAgICAgICAgZHVhbHN0YWNrRW5kcG9pbnQgPyBcIi5kdWFsc3RhY2tcIiA6IFwiXCJcbiAgICAgICAgICB9LiR7Z2V0UHNldWRvUmVnaW9uKGVuZHBvaW50UmVnaW9uKX1gXG4gICAgfS4ke2hvc3RuYW1lU3VmZml4fWAsXG4gICAgc2lnbmluZ1JlZ2lvbixcbiAgfTtcbn07XG4iXX0=
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVja2V0SG9zdG5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsK0RBd0IrQjtBQVN4QixNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQWlELEVBQWtCLEVBQUU7SUFDbEcsNENBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsT0FBTyx5Q0FBbUIsQ0FBQyxPQUFPLENBQUM7UUFDakMsQ0FBQztZQUNDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQztRQUNwQyxDQUFDO1lBQ0Msa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBUFcsUUFBQSxjQUFjLGtCQU96QjtBQUVGLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxFQUNqQyxrQkFBa0IsR0FBRyxLQUFLLEVBQzFCLFlBQVksRUFBRSxNQUFNLEVBQ3BCLFlBQVksRUFDWixVQUFVLEVBQ1YsaUJBQWlCLEdBQUcsS0FBSyxFQUN6QixpQkFBaUIsR0FBRyxLQUFLLEVBQ3pCLGFBQWEsR0FBRyxJQUFJLEVBQ3BCLGdCQUFnQixHQUFHLEtBQUssR0FDSCxFQUFrQixFQUFFO0lBQ3pDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQywrQkFBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzNHLElBQUksaUJBQWlCLElBQUksQ0FBQywrQ0FBeUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxpQ0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFO1FBQ2xILE9BQU87WUFDTCxjQUFjLEVBQUUsS0FBSztZQUNyQixRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixZQUFZLElBQUksY0FBYyxFQUFFLENB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QVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQ3pELGlCQUFpQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQ3JDLElBQUkscUNBQWUsQ0FBQyxjQUFjLENBQUMsRUFDekMsSUFBSSxjQUFjLEVBQUU7UUFDcEIsYUFBYTtLQUNkLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUk4gfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1hcm4tcGFyc2VyXCI7XG5cbmltcG9ydCB7XG4gIEFybkhvc3RuYW1lUGFyYW1zLFxuICBCdWNrZXRIb3N0bmFtZVBhcmFtcyxcbiAgRE9UX1BBVFRFUk4sXG4gIGdldEFyblJlc291cmNlcyxcbiAgZ2V0UHNldWRvUmVnaW9uLFxuICBnZXRTdWZmaXgsXG4gIGdldFN1ZmZpeEZvckFybkVuZHBvaW50LFxuICBpc0J1Y2tldE5hbWVPcHRpb25zLFxuICBpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lLFxuICBpc0ZpcHNSZWdpb24sXG4gIHZhbGlkYXRlQWNjb3VudElkLFxuICB2YWxpZGF0ZUFybkVuZHBvaW50T3B0aW9ucyxcbiAgdmFsaWRhdGVDdXN0b21FbmRwb2ludCxcbiAgdmFsaWRhdGVETlNIb3N0TGFiZWwsXG4gIHZhbGlkYXRlTXJhcEFsaWFzLFxuICB2YWxpZGF0ZU5vRHVhbHN0YWNrLFxuICB2YWxpZGF0ZU5vRklQUyxcbiAgdmFsaWRhdGVPdXRwb3N0U2VydmljZSxcbiAgdmFsaWRhdGVQYXJ0aXRpb24sXG4gIHZhbGlkYXRlUmVnaW9uLFxuICB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50LFxuICB2YWxpZGF0ZVMzU2VydmljZSxcbiAgdmFsaWRhdGVTZXJ2aWNlLFxufSBmcm9tIFwiLi9idWNrZXRIb3N0bmFtZVV0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0SG9zdG5hbWUge1xuICBob3N0bmFtZTogc3RyaW5nO1xuICBidWNrZXRFbmRwb2ludDogYm9vbGVhbjtcbiAgc2lnbmluZ1JlZ2lvbj86IHN0cmluZztcbiAgc2lnbmluZ1NlcnZpY2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBidWNrZXRIb3N0bmFtZSA9IChvcHRpb25zOiBCdWNrZXRIb3N0bmFtZVBhcmFtcyB8IEFybkhvc3RuYW1lUGFyYW1zKTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICB2YWxpZGF0ZUN1c3RvbUVuZHBvaW50KG9wdGlvbnMpO1xuICByZXR1cm4gaXNCdWNrZXROYW1lT3B0aW9ucyhvcHRpb25zKVxuICAgID8gLy8gQ29uc3RydWN0IGVuZHBvaW50IHdoZW4gYnVja2V0TmFtZSBpcyBhIHN0cmluZyByZWZlcnJpbmcgdG8gYSBidWNrZXQgbmFtZVxuICAgICAgZ2V0RW5kcG9pbnRGcm9tQnVja2V0TmFtZShvcHRpb25zKVxuICAgIDogLy8gQ29uc3RydWN0IGVuZHBvaW50IHdoZW4gYnVja2V0TmFtZSBpcyBhbiBBUk4gcmVmZXJyaW5nIHRvIGFuIFMzIHJlc291cmNlIGxpa2UgQWNjZXNzIFBvaW50XG4gICAgICBnZXRFbmRwb2ludEZyb21Bcm4ob3B0aW9ucyk7XG59O1xuXG5jb25zdCBnZXRFbmRwb2ludEZyb21CdWNrZXROYW1lID0gKHtcbiAgYWNjZWxlcmF0ZUVuZHBvaW50ID0gZmFsc2UsXG4gIGNsaWVudFJlZ2lvbjogcmVnaW9uLFxuICBiYXNlSG9zdG5hbWUsXG4gIGJ1Y2tldE5hbWUsXG4gIGR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gIHBhdGhTdHlsZUVuZHBvaW50ID0gZmFsc2UsXG4gIHRsc0NvbXBhdGlibGUgPSB0cnVlLFxuICBpc0N1c3RvbUVuZHBvaW50ID0gZmFsc2UsXG59OiBCdWNrZXRIb3N0bmFtZVBhcmFtcyk6IEJ1Y2tldEhvc3RuYW1lID0+IHtcbiAgY29uc3QgW2NsaWVudFJlZ2lvbiwgaG9zdG5hbWVTdWZmaXhdID0gaXNDdXN0b21FbmRwb2ludCA/IFtyZWdpb24sIGJhc2VIb3N0bmFtZV0gOiBnZXRTdWZmaXgoYmFzZUhvc3RuYW1lKTtcbiAgaWYgKHBhdGhTdHlsZUVuZHBvaW50IHx8ICFpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lKGJ1Y2tldE5hbWUpIHx8ICh0bHNDb21wYXRpYmxlICYmIERPVF9QQVRURVJOLnRlc3QoYnVja2V0TmFtZSkpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1Y2tldEVuZHBvaW50OiBmYWxzZSxcbiAgICAgIGhvc3RuYW1lOiBkdWFsc3RhY2tFbmRwb2ludCA/IGBzMy5kdWFsc3RhY2suJHtjbGllbnRSZWdpb259LiR7aG9zdG5hbWVTdWZmaXh9YCA6IGJhc2VIb3N0bmFtZSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGFjY2VsZXJhdGVFbmRwb2ludCkge1xuICAgIGJhc2VIb3N0bmFtZSA9IGBzMy1hY2NlbGVyYXRlJHtkdWFsc3RhY2tFbmRwb2ludCA/IFwiLmR1YWxzdGFja1wiIDogXCJcIn0uJHtob3N0bmFtZVN1ZmZpeH1gO1xuICB9IGVsc2UgaWYgKGR1YWxzdGFja0VuZHBvaW50KSB7XG4gICAgYmFzZUhvc3RuYW1lID0gYHMzLmR1YWxzdGFjay4ke2NsaWVudFJlZ2lvbn0uJHtob3N0bmFtZVN1ZmZpeH1gO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBidWNrZXRFbmRwb2ludDogdHJ1ZSxcbiAgICBob3N0bmFtZTogYCR7YnVja2V0TmFtZX0uJHtiYXNlSG9zdG5hbWV9YCxcbiAgfTtcbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbUFybiA9IChvcHRpb25zOiBBcm5Ib3N0bmFtZVBhcmFtcyk6IEJ1Y2tldEhvc3RuYW1lID0+IHtcbiAgY29uc3QgeyBpc0N1c3RvbUVuZHBvaW50LCBiYXNlSG9zdG5hbWUsIGNsaWVudFJlZ2lvbiB9ID0gb3B0aW9ucztcbiAgY29uc3QgaG9zdG5hbWVTdWZmaXggPSBpc0N1c3RvbUVuZHBvaW50ID8gYmFzZUhvc3RuYW1lIDogZ2V0U3VmZml4Rm9yQXJuRW5kcG9pbnQoYmFzZUhvc3RuYW1lKVsxXTtcblxuICBjb25zdCB7XG4gICAgcGF0aFN0eWxlRW5kcG9pbnQsXG4gICAgYWNjZWxlcmF0ZUVuZHBvaW50ID0gZmFsc2UsXG4gICAgdGxzQ29tcGF0aWJsZSA9IHRydWUsXG4gICAgYnVja2V0TmFtZSxcbiAgICBjbGllbnRQYXJ0aXRpb24gPSBcImF3c1wiLFxuICB9ID0gb3B0aW9ucztcblxuICB2YWxpZGF0ZUFybkVuZHBvaW50T3B0aW9ucyh7IHBhdGhTdHlsZUVuZHBvaW50LCBhY2NlbGVyYXRlRW5kcG9pbnQsIHRsc0NvbXBhdGlibGUgfSk7XG5cbiAgLy8gVmFsaWRhdGUgYW5kIHBhcnNlIHRoZSBBUk4gc3VwcGxpZWQgYXMgYSBidWNrZXQgbmFtZVxuICBjb25zdCB7IHNlcnZpY2UsIHBhcnRpdGlvbiwgYWNjb3VudElkLCByZWdpb24sIHJlc291cmNlIH0gPSBidWNrZXROYW1lO1xuICB2YWxpZGF0ZVNlcnZpY2Uoc2VydmljZSk7XG4gIHZhbGlkYXRlUGFydGl0aW9uKHBhcnRpdGlvbiwgeyBjbGllbnRQYXJ0aXRpb24gfSk7XG4gIHZhbGlkYXRlQWNjb3VudElkKGFjY291bnRJZCk7XG4gIGNvbnN0IHsgYWNjZXNzcG9pbnROYW1lLCBvdXRwb3N0SWQgfSA9IGdldEFyblJlc291cmNlcyhyZXNvdXJjZSk7XG4gIGlmIChzZXJ2aWNlID09PSBcInMzLW9iamVjdC1sYW1iZGFcIikge1xuICAgIHJldHVybiBnZXRFbmRwb2ludEZyb21PYmplY3RMYW1iZGFBcm4oeyAuLi5vcHRpb25zLCB0bHNDb21wYXRpYmxlLCBidWNrZXROYW1lLCBhY2Nlc3Nwb2ludE5hbWUsIGhvc3RuYW1lU3VmZml4IH0pO1xuICB9XG4gIGlmIChyZWdpb24gPT09IFwiXCIpIHtcbiAgICByZXR1cm4gZ2V0RW5kcG9pbnRGcm9tTVJBUEFybih7IC4uLm9wdGlvbnMsIGNsaWVudFJlZ2lvbiwgbXJhcEFsaWFzOiBhY2Nlc3Nwb2ludE5hbWUsIGhvc3RuYW1lU3VmZml4IH0pO1xuICB9XG4gIGlmIChvdXRwb3N0SWQpIHtcbiAgICByZXR1cm4gZ2V0RW5kcG9pbnRGcm9tT3V0cG9zdEFybih7IC4uLm9wdGlvbnMsIGNsaWVudFJlZ2lvbiwgb3V0cG9zdElkLCBhY2Nlc3Nwb2ludE5hbWUsIGhvc3RuYW1lU3VmZml4IH0pO1xuICB9XG4gIHJldHVybiBnZXRFbmRwb2ludEZyb21BY2Nlc3NQb2ludEFybih7IC4uLm9wdGlvbnMsIGNsaWVudFJlZ2lvbiwgYWNjZXNzcG9pbnROYW1lLCBob3N0bmFtZVN1ZmZpeCB9KTtcbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbU9iamVjdExhbWJkYUFybiA9ICh7XG4gIGR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gIHRsc0NvbXBhdGlibGUgPSB0cnVlLFxuICB1c2VBcm5SZWdpb24sXG4gIGNsaWVudFJlZ2lvbixcbiAgY2xpZW50U2lnbmluZ1JlZ2lvbiA9IGNsaWVudFJlZ2lvbixcbiAgYWNjZXNzcG9pbnROYW1lLFxuICBidWNrZXROYW1lLFxuICBob3N0bmFtZVN1ZmZpeCxcbn06IEFybkhvc3RuYW1lUGFyYW1zICYge1xuICBhY2Nlc3Nwb2ludE5hbWU6IHN0cmluZztcbiAgYnVja2V0TmFtZTogQVJOO1xuICBob3N0bmFtZVN1ZmZpeDogc3RyaW5nO1xufSk6IEJ1Y2tldEhvc3RuYW1lID0+IHtcbiAgY29uc3QgeyBhY2NvdW50SWQsIHJlZ2lvbiwgc2VydmljZSB9ID0gYnVja2V0TmFtZTtcbiAgdmFsaWRhdGVSZWdpb25hbENsaWVudChjbGllbnRSZWdpb24pO1xuICB2YWxpZGF0ZVJlZ2lvbihyZWdpb24sIHsgdXNlQXJuUmVnaW9uLCBjbGllbnRSZWdpb24sIGNsaWVudFNpZ25pbmdSZWdpb24sIGFsbG93Rmlwc1JlZ2lvbjogdHJ1ZSB9KTtcbiAgdmFsaWRhdGVOb0R1YWxzdGFjayhkdWFsc3RhY2tFbmRwb2ludCk7XG4gIGNvbnN0IEROU0hvc3RMYWJlbCA9IGAke2FjY2Vzc3BvaW50TmFtZX0tJHthY2NvdW50SWR9YDtcbiAgdmFsaWRhdGVETlNIb3N0TGFiZWwoRE5TSG9zdExhYmVsLCB7IHRsc0NvbXBhdGlibGUgfSk7XG5cbiAgY29uc3QgZW5kcG9pbnRSZWdpb24gPSB1c2VBcm5SZWdpb24gPyByZWdpb24gOiBjbGllbnRSZWdpb247XG4gIGNvbnN0IHNpZ25pbmdSZWdpb24gPSB1c2VBcm5SZWdpb24gPyByZWdpb24gOiBjbGllbnRTaWduaW5nUmVnaW9uO1xuXG4gIHJldHVybiB7XG4gICAgYnVja2V0RW5kcG9pbnQ6IHRydWUsXG4gICAgaG9zdG5hbWU6IGAke0ROU0hvc3RMYWJlbH0uJHtzZXJ2aWNlfSR7aXNGaXBzUmVnaW9uKGNsaWVudFJlZ2lvbikgPyBcIi1maXBzXCIgOiBcIlwifS4ke2dldFBzZXVkb1JlZ2lvbihcbiAgICAgIGVuZHBvaW50UmVnaW9uXG4gICAgKX0uJHtob3N0bmFtZVN1ZmZpeH1gLFxuICAgIHNpZ25pbmdSZWdpb24sXG4gICAgc2lnbmluZ1NlcnZpY2U6IHNlcnZpY2UsXG4gIH07XG59O1xuXG5jb25zdCBnZXRFbmRwb2ludEZyb21NUkFQQXJuID0gKHtcbiAgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzLFxuICBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLFxuICBpc0N1c3RvbUVuZHBvaW50LFxuICBtcmFwQWxpYXMsXG4gIGhvc3RuYW1lU3VmZml4LFxufTogQXJuSG9zdG5hbWVQYXJhbXMgJiB7IG1yYXBBbGlhczogc3RyaW5nOyBob3N0bmFtZVN1ZmZpeDogc3RyaW5nIH0pOiBCdWNrZXRIb3N0bmFtZSA9PiB7XG4gIC8vIElmIHRoaXMgaXMgYSBtdWx0aS1yZWdpb25hbCBhY2Nlc3MgcG9pbnQsIGFuZCBub3QgZXhwbGljaXRseSBvcHRlZCBvdXQuXG4gIGlmIChkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMgPT09IHRydWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJTREsgaXMgYXR0ZW1wdGluZyB0byB1c2UgYSBNUkFQIEFSTi4gUGxlYXNlIGVuYWJsZSB0byBmZWF0dXJlLlwiKTtcbiAgfVxuICB2YWxpZGF0ZU1yYXBBbGlhcyhtcmFwQWxpYXMpO1xuICB2YWxpZGF0ZU5vRHVhbHN0YWNrKGR1YWxzdGFja0VuZHBvaW50KTtcbiAgcmV0dXJuIHtcbiAgICBidWNrZXRFbmRwb2ludDogdHJ1ZSxcbiAgICBob3N0bmFtZTogYCR7bXJhcEFsaWFzfSR7aXNDdXN0b21FbmRwb2ludCA/IFwiXCIgOiBgLmFjY2Vzc3BvaW50LnMzLWdsb2JhbGB9LiR7aG9zdG5hbWVTdWZmaXh9YCxcbiAgICBzaWduaW5nUmVnaW9uOiBcIipcIixcbiAgfTtcbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbU91dHBvc3RBcm4gPSAoe1xuICB1c2VBcm5SZWdpb24sXG4gIGNsaWVudFJlZ2lvbixcbiAgY2xpZW50U2lnbmluZ1JlZ2lvbiA9IGNsaWVudFJlZ2lvbixcbiAgYnVja2V0TmFtZSxcbiAgb3V0cG9zdElkLFxuICBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLFxuICB0bHNDb21wYXRpYmxlID0gdHJ1ZSxcbiAgYWNjZXNzcG9pbnROYW1lLFxuICBpc0N1c3RvbUVuZHBvaW50LFxuICBob3N0bmFtZVN1ZmZpeCxcbn06IEFybkhvc3RuYW1lUGFyYW1zICYgeyBvdXRwb3N0SWQ6IHN0cmluZzsgYWNjZXNzcG9pbnROYW1lOiBzdHJpbmc7IGhvc3RuYW1lU3VmZml4OiBzdHJpbmcgfSk6IEJ1Y2tldEhvc3RuYW1lID0+IHtcbiAgLy8gaWYgdGhpcyBpcyBhbiBPdXRwb3N0IEFSTlxuICB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50KGNsaWVudFJlZ2lvbik7XG4gIHZhbGlkYXRlUmVnaW9uKGJ1Y2tldE5hbWUucmVnaW9uLCB7IHVzZUFyblJlZ2lvbiwgY2xpZW50UmVnaW9uLCBjbGllbnRTaWduaW5nUmVnaW9uIH0pO1xuICBjb25zdCBETlNIb3N0TGFiZWwgPSBgJHthY2Nlc3Nwb2ludE5hbWV9LSR7YnVja2V0TmFtZS5hY2NvdW50SWR9YDtcbiAgdmFsaWRhdGVETlNIb3N0TGFiZWwoRE5TSG9zdExhYmVsLCB7IHRsc0NvbXBhdGlibGUgfSk7XG4gIGNvbnN0IGVuZHBvaW50UmVnaW9uID0gdXNlQXJuUmVnaW9uID8gYnVja2V0TmFtZS5yZWdpb24gOiBjbGllbnRSZWdpb247XG4gIGNvbnN0IHNpZ25pbmdSZWdpb24gPSB1c2VBcm5SZWdpb24gPyBidWNrZXROYW1lLnJlZ2lvbiA6IGNsaWVudFNpZ25pbmdSZWdpb247XG4gIHZhbGlkYXRlT3V0cG9zdFNlcnZpY2UoYnVja2V0TmFtZS5zZXJ2aWNlKTtcbiAgdmFsaWRhdGVETlNIb3N0TGFiZWwob3V0cG9zdElkLCB7IHRsc0NvbXBhdGlibGUgfSk7XG4gIHZhbGlkYXRlTm9EdWFsc3RhY2soZHVhbHN0YWNrRW5kcG9pbnQpO1xuICB2YWxpZGF0ZU5vRklQUyhlbmRwb2ludFJlZ2lvbik7XG4gIGNvbnN0IGhvc3RuYW1lUHJlZml4ID0gYCR7RE5TSG9zdExhYmVsfS4ke291dHBvc3RJZH1gO1xuICByZXR1cm4ge1xuICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgIGhvc3RuYW1lOiBgJHtob3N0bmFtZVByZWZpeH0ke2lzQ3VzdG9tRW5kcG9pbnQgPyBcIlwiIDogYC5zMy1vdXRwb3N0cy4ke2VuZHBvaW50UmVnaW9ufWB9LiR7aG9zdG5hbWVTdWZmaXh9YCxcbiAgICBzaWduaW5nUmVnaW9uLFxuICAgIHNpZ25pbmdTZXJ2aWNlOiBcInMzLW91dHBvc3RzXCIsXG4gIH07XG59O1xuXG5jb25zdCBnZXRFbmRwb2ludEZyb21BY2Nlc3NQb2ludEFybiA9ICh7XG4gIHVzZUFyblJlZ2lvbixcbiAgY2xpZW50UmVnaW9uLFxuICBjbGllbnRTaWduaW5nUmVnaW9uID0gY2xpZW50UmVnaW9uLFxuICBidWNrZXROYW1lLFxuICBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLFxuICB0bHNDb21wYXRpYmxlID0gdHJ1ZSxcbiAgYWNjZXNzcG9pbnROYW1lLFxuICBpc0N1c3RvbUVuZHBvaW50LFxuICBob3N0bmFtZVN1ZmZpeCxcbn06IEFybkhvc3RuYW1lUGFyYW1zICYgeyBhY2Nlc3Nwb2ludE5hbWU6IHN0cmluZzsgaG9zdG5hbWVTdWZmaXg6IHN0cmluZyB9KTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICAvLyBjb25zdHJ1Y3QgZW5kcG9pbnQgZnJvbSBBY2Nlc3Nwb2ludCBBUk5cbiAgdmFsaWRhdGVSZWdpb25hbENsaWVudChjbGllbnRSZWdpb24pO1xuICB2YWxpZGF0ZVJlZ2lvbihidWNrZXROYW1lLnJlZ2lvbiwgeyB1c2VBcm5SZWdpb24sIGNsaWVudFJlZ2lvbiwgY2xpZW50U2lnbmluZ1JlZ2lvbiwgYWxsb3dGaXBzUmVnaW9uOiB0cnVlIH0pO1xuICBjb25zdCBob3N0bmFtZVByZWZpeCA9IGAke2FjY2Vzc3BvaW50TmFtZX0tJHtidWNrZXROYW1lLmFjY291bnRJZH1gO1xuICB2YWxpZGF0ZUROU0hvc3RMYWJlbChob3N0bmFtZVByZWZpeCwgeyB0bHNDb21wYXRpYmxlIH0pO1xuICBjb25zdCBlbmRwb2ludFJlZ2lvbiA9IHVzZUFyblJlZ2lvbiA/IGJ1Y2tldE5hbWUucmVnaW9uIDogY2xpZW50UmVnaW9uO1xuICBjb25zdCBzaWduaW5nUmVnaW9uID0gdXNlQXJuUmVnaW9uID8gYnVja2V0TmFtZS5yZWdpb24gOiBjbGllbnRTaWduaW5nUmVnaW9uO1xuICB2YWxpZGF0ZVMzU2VydmljZShidWNrZXROYW1lLnNlcnZpY2UpO1xuICByZXR1cm4ge1xuICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgIGhvc3RuYW1lOiBgJHtob3N0bmFtZVByZWZpeH0ke1xuICAgICAgaXNDdXN0b21FbmRwb2ludFxuICAgICAgICA/IFwiXCJcbiAgICAgICAgOiBgLnMzLWFjY2Vzc3BvaW50JHtpc0ZpcHNSZWdpb24oY2xpZW50UmVnaW9uKSA/IFwiLWZpcHNcIiA6IFwiXCJ9JHtcbiAgICAgICAgICAgIGR1YWxzdGFja0VuZHBvaW50ID8gXCIuZHVhbHN0YWNrXCIgOiBcIlwiXG4gICAgICAgICAgfS4ke2dldFBzZXVkb1JlZ2lvbihlbmRwb2ludFJlZ2lvbil9YFxuICAgIH0uJHtob3N0bmFtZVN1ZmZpeH1gLFxuICAgIHNpZ25pbmdSZWdpb24sXG4gIH07XG59O1xuIl19
|
|
@@ -10,20 +10,8 @@ const S3_US_EAST_1_ALTNAME_PATTERN = /^s3(-external-1)?\.amazonaws\.com$/;
|
|
|
10
10
|
const AWS_PARTITION_SUFFIX = "amazonaws.com";
|
|
11
11
|
const isBucketNameOptions = (options) => typeof options.bucketName === "string";
|
|
12
12
|
exports.isBucketNameOptions = isBucketNameOptions;
|
|
13
|
-
|
|
14
|
-
* Get pseudo region from supplied region. For example, if supplied with `fips-us-west-2`, it returns `us-west-2`.
|
|
15
|
-
* @internal
|
|
16
|
-
*/
|
|
17
|
-
const getPseudoRegion = (region) => ((0, exports.isFipsRegion)(region) ? region.replace(/fips-|-fips/, "") : region);
|
|
13
|
+
const getPseudoRegion = (region) => (exports.isFipsRegion(region) ? region.replace(/fips-|-fips/, "") : region);
|
|
18
14
|
exports.getPseudoRegion = getPseudoRegion;
|
|
19
|
-
/**
|
|
20
|
-
* Determines whether a given string is DNS compliant per the rules outlined by
|
|
21
|
-
* S3. Length, capitaization, and leading dot restrictions are enforced by the
|
|
22
|
-
* DOMAIN_PATTERN regular expression.
|
|
23
|
-
* @internal
|
|
24
|
-
*
|
|
25
|
-
* @see https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html
|
|
26
|
-
*/
|
|
27
15
|
const isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);
|
|
28
16
|
exports.isDnsCompatibleBucketName = isDnsCompatibleBucketName;
|
|
29
17
|
const getRegionalSuffix = (hostname) => {
|
|
@@ -32,12 +20,6 @@ const getRegionalSuffix = (hostname) => {
|
|
|
32
20
|
};
|
|
33
21
|
const getSuffix = (hostname) => S3_US_EAST_1_ALTNAME_PATTERN.test(hostname) ? ["us-east-1", AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname);
|
|
34
22
|
exports.getSuffix = getSuffix;
|
|
35
|
-
/**
|
|
36
|
-
* Infer region and hostname suffix from a complete hostname
|
|
37
|
-
* @internal
|
|
38
|
-
* @param hostname - Hostname
|
|
39
|
-
* @returns [Region, Hostname suffix]
|
|
40
|
-
*/
|
|
41
23
|
const getSuffixForArnEndpoint = (hostname) => S3_US_EAST_1_ALTNAME_PATTERN.test(hostname)
|
|
42
24
|
? [hostname.replace(`.${AWS_PARTITION_SUFFIX}`, ""), AWS_PARTITION_SUFFIX]
|
|
43
25
|
: getRegionalSuffix(hostname);
|
|
@@ -72,27 +54,17 @@ const validateOutpostService = (service) => {
|
|
|
72
54
|
}
|
|
73
55
|
};
|
|
74
56
|
exports.validateOutpostService = validateOutpostService;
|
|
75
|
-
/**
|
|
76
|
-
* Validate partition inferred from ARN is the same to `options.clientPartition`.
|
|
77
|
-
* @internal
|
|
78
|
-
*/
|
|
79
57
|
const validatePartition = (partition, options) => {
|
|
80
58
|
if (partition !== options.clientPartition) {
|
|
81
59
|
throw new Error(`Partition in ARN is incompatible, got "${partition}" but expected "${options.clientPartition}"`);
|
|
82
60
|
}
|
|
83
61
|
};
|
|
84
62
|
exports.validatePartition = validatePartition;
|
|
85
|
-
/**
|
|
86
|
-
* validate region value inferred from ARN. If `options.useArnRegion` is set, it validates the region is not a FIPS
|
|
87
|
-
* region. If `options.useArnRegion` is unset, it validates the region is equal to `options.clientRegion` or
|
|
88
|
-
* `options.clientSigningRegion`.
|
|
89
|
-
* @internal
|
|
90
|
-
*/
|
|
91
63
|
const validateRegion = (region, options) => {
|
|
92
64
|
if (region === "") {
|
|
93
65
|
throw new Error("ARN region is empty");
|
|
94
66
|
}
|
|
95
|
-
if (
|
|
67
|
+
if (exports.isFipsRegion(options.clientRegion)) {
|
|
96
68
|
if (!options.allowFipsRegion) {
|
|
97
69
|
throw new Error("FIPS region is not supported");
|
|
98
70
|
}
|
|
@@ -107,38 +79,22 @@ const validateRegion = (region, options) => {
|
|
|
107
79
|
}
|
|
108
80
|
};
|
|
109
81
|
exports.validateRegion = validateRegion;
|
|
110
|
-
/**
|
|
111
|
-
*
|
|
112
|
-
* @param region
|
|
113
|
-
*/
|
|
114
82
|
const validateRegionalClient = (region) => {
|
|
115
|
-
if (["s3-external-1", "aws-global"].includes(
|
|
83
|
+
if (["s3-external-1", "aws-global"].includes(exports.getPseudoRegion(region))) {
|
|
116
84
|
throw new Error(`Client region ${region} is not regional`);
|
|
117
85
|
}
|
|
118
86
|
};
|
|
119
87
|
exports.validateRegionalClient = validateRegionalClient;
|
|
120
|
-
/**
|
|
121
|
-
* @internal
|
|
122
|
-
*/
|
|
123
88
|
const isFipsRegion = (region) => region.startsWith("fips-") || region.endsWith("-fips");
|
|
124
89
|
exports.isFipsRegion = isFipsRegion;
|
|
125
|
-
const isEqualRegions = (regionA, regionB) => regionA === regionB ||
|
|
126
|
-
/**
|
|
127
|
-
* Validate an account ID
|
|
128
|
-
* @internal
|
|
129
|
-
*/
|
|
90
|
+
const isEqualRegions = (regionA, regionB) => regionA === regionB || exports.getPseudoRegion(regionA) === regionB || regionA === exports.getPseudoRegion(regionB);
|
|
130
91
|
const validateAccountId = (accountId) => {
|
|
131
92
|
if (!/[0-9]{12}/.exec(accountId)) {
|
|
132
93
|
throw new Error("Access point ARN accountID does not match regex '[0-9]{12}'");
|
|
133
94
|
}
|
|
134
95
|
};
|
|
135
96
|
exports.validateAccountId = validateAccountId;
|
|
136
|
-
/**
|
|
137
|
-
* Validate a host label according to https://tools.ietf.org/html/rfc3986#section-3.2.2
|
|
138
|
-
* @internal
|
|
139
|
-
*/
|
|
140
97
|
const validateDNSHostLabel = (label, options = { tlsCompatible: true }) => {
|
|
141
|
-
// reference: https://tools.ietf.org/html/rfc3986#section-3.2.2
|
|
142
98
|
if (label.length >= 64 ||
|
|
143
99
|
!/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/.test(label) ||
|
|
144
100
|
/(\d+\.){3}\d+/.test(label) ||
|
|
@@ -157,25 +113,16 @@ const validateCustomEndpoint = (options) => {
|
|
|
157
113
|
}
|
|
158
114
|
};
|
|
159
115
|
exports.validateCustomEndpoint = validateCustomEndpoint;
|
|
160
|
-
/**
|
|
161
|
-
* Validate and parse an Access Point ARN or Outposts ARN
|
|
162
|
-
* @internal
|
|
163
|
-
*
|
|
164
|
-
* @param resource - The resource section of an ARN
|
|
165
|
-
* @returns Access Point Name and optional Outpost ID.
|
|
166
|
-
*/
|
|
167
116
|
const getArnResources = (resource) => {
|
|
168
117
|
const delimiter = resource.includes(":") ? ":" : "/";
|
|
169
118
|
const [resourceType, ...rest] = resource.split(delimiter);
|
|
170
119
|
if (resourceType === "accesspoint") {
|
|
171
|
-
// Parse accesspoint ARN
|
|
172
120
|
if (rest.length !== 1 || rest[0] === "") {
|
|
173
121
|
throw new Error(`Access Point ARN should have one resource accesspoint${delimiter}{accesspointname}`);
|
|
174
122
|
}
|
|
175
123
|
return { accesspointName: rest[0] };
|
|
176
124
|
}
|
|
177
125
|
else if (resourceType === "outpost") {
|
|
178
|
-
// Parse outpost ARN
|
|
179
126
|
if (!rest[0] || rest[1] !== "accesspoint" || !rest[2] || rest.length !== 3) {
|
|
180
127
|
throw new Error(`Outpost ARN should have resource outpost${delimiter}{outpostId}${delimiter}accesspoint${delimiter}{accesspointName}`);
|
|
181
128
|
}
|
|
@@ -187,32 +134,20 @@ const getArnResources = (resource) => {
|
|
|
187
134
|
}
|
|
188
135
|
};
|
|
189
136
|
exports.getArnResources = getArnResources;
|
|
190
|
-
/**
|
|
191
|
-
* Throw if dual stack configuration is set to true.
|
|
192
|
-
* @internal
|
|
193
|
-
*/
|
|
194
137
|
const validateNoDualstack = (dualstackEndpoint) => {
|
|
195
138
|
if (dualstackEndpoint)
|
|
196
139
|
throw new Error("Dualstack endpoint is not supported with Outpost or Multi-region Access Point ARN.");
|
|
197
140
|
};
|
|
198
141
|
exports.validateNoDualstack = validateNoDualstack;
|
|
199
|
-
/**
|
|
200
|
-
* Validate region is not appended or prepended with a `fips-`
|
|
201
|
-
* @internal
|
|
202
|
-
*/
|
|
203
142
|
const validateNoFIPS = (region) => {
|
|
204
|
-
if (
|
|
143
|
+
if (exports.isFipsRegion(region !== null && region !== void 0 ? region : ""))
|
|
205
144
|
throw new Error(`FIPS region is not supported with Outpost, got ${region}`);
|
|
206
145
|
};
|
|
207
146
|
exports.validateNoFIPS = validateNoFIPS;
|
|
208
|
-
/**
|
|
209
|
-
* Validate the multi-region access point alias.
|
|
210
|
-
* @private
|
|
211
|
-
*/
|
|
212
147
|
const validateMrapAlias = (name) => {
|
|
213
148
|
try {
|
|
214
149
|
name.split(".").forEach((label) => {
|
|
215
|
-
|
|
150
|
+
exports.validateDNSHostLabel(label);
|
|
216
151
|
});
|
|
217
152
|
}
|
|
218
153
|
catch (e) {
|
|
@@ -220,4 +155,4 @@ const validateMrapAlias = (name) => {
|
|
|
220
155
|
}
|
|
221
156
|
};
|
|
222
157
|
exports.validateMrapAlias = validateMrapAlias;
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWVVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWNrZXRIb3N0bmFtZVV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQU0sY0FBYyxHQUFHLHNDQUFzQyxDQUFDO0FBQzlELE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDO0FBQzNDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztBQUNmLFFBQUEsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNuQixRQUFBLG1CQUFtQixHQUFHLDhCQUE4QixDQUFDO0FBQ2xFLE1BQU0sNEJBQTRCLEdBQUcsb0NBQW9DLENBQUM7QUFDMUUsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUM7QUF5QnRDLE1BQU0sbUJBQW1CLEdBQUcsQ0FDakMsT0FBaUQsRUFDaEIsRUFBRSxDQUFDLE9BQU8sT0FBTyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUM7QUFGaEUsUUFBQSxtQkFBbUIsdUJBRTZDO0FBRTdFOzs7R0FHRztBQUNJLE1BQU0sZUFBZSxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUEsb0JBQVksRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQTFHLFFBQUEsZUFBZSxtQkFBMkY7QUFFdkg7Ozs7Ozs7R0FPRztBQUNJLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxVQUFrQixFQUFXLEVBQUUsQ0FDdkUsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFEL0YsUUFBQSx5QkFBeUIsNkJBQ3NFO0FBRTVHLE1BQU0saUJBQWlCLEdB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QyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLGlDQUFpQyxDQUFDLENBQUM7S0FDNUQ7QUFDSCxDQUFDLENBQUM7QUFSVyxRQUFBLGlCQUFpQixxQkFRNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUk4gfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1hcm4tcGFyc2VyXCI7XG5cbmNvbnN0IERPTUFJTl9QQVRURVJOID0gL15bYS16MC05XVthLXowLTlcXC5cXC1dezEsNjF9W2EtejAtOV0kLztcbmNvbnN0IElQX0FERFJFU1NfUEFUVEVSTiA9IC8oXFxkK1xcLil7M31cXGQrLztcbmNvbnN0IERPVFNfUEFUVEVSTiA9IC9cXC5cXC4vO1xuZXhwb3J0IGNvbnN0IERPVF9QQVRURVJOID0gL1xcLi87XG5leHBvcnQgY29uc3QgUzNfSE9TVE5BTUVfUEFUVEVSTiA9IC9eKC4rXFwuKT9zM1suLV0oW2EtejAtOS1dKylcXC4vO1xuY29uc3QgUzNfVVNfRUFTVF8xX0FMVE5BTUVfUEFUVEVSTiA9IC9eczMoLWV4dGVybmFsLTEpP1xcLmFtYXpvbmF3c1xcLmNvbSQvO1xuY29uc3QgQVdTX1BBUlRJVElPTl9TVUZGSVggPSBcImFtYXpvbmF3cy5jb21cIjtcblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NQb2ludEFybiBleHRlbmRzIEFSTiB7XG4gIGFjY2Vzc1BvaW50TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEhvc3RuYW1lUGFyYW1zIHtcbiAgaXNDdXN0b21FbmRwb2ludDogYm9vbGVhbjtcbiAgYmFzZUhvc3RuYW1lOiBzdHJpbmc7XG4gIGJ1Y2tldE5hbWU6IHN0cmluZztcbiAgY2xpZW50UmVnaW9uOiBzdHJpbmc7XG4gIGFjY2VsZXJhdGVFbmRwb2ludD86IGJvb2xlYW47XG4gIGR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbjtcbiAgcGF0aFN0eWxlRW5kcG9pbnQ/OiBib29sZWFuO1xuICB0bHNDb21wYXRpYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcm5Ib3N0bmFtZVBhcmFtcyBleHRlbmRzIE9taXQ8QnVja2V0SG9zdG5hbWVQYXJhbXMsIFwiYnVja2V0TmFtZVwiPiB7XG4gIGJ1Y2tldE5hbWU6IEFSTjtcbiAgY2xpZW50U2lnbmluZ1JlZ2lvbj86IHN0cmluZztcbiAgY2xpZW50UGFydGl0aW9uPzogc3RyaW5nO1xuICB1c2VBcm5SZWdpb24/OiBib29sZWFuO1xuICBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgaXNCdWNrZXROYW1lT3B0aW9ucyA9IChcbiAgb3B0aW9uczogQnVja2V0SG9zdG5hbWVQYXJhbXMgfCBBcm5Ib3N0bmFtZVBhcmFtc1xuKTogb3B0aW9ucyBpcyBCdWNrZXRIb3N0bmFtZVBhcmFtcyA9PiB0eXBlb2Ygb3B0aW9ucy5idWNrZXROYW1lID09PSBcInN0cmluZ1wiO1xuXG4vKipcbiAqIEdldCBwc2V1ZG8gcmVnaW9uIGZyb20gc3VwcGxpZWQgcmVnaW9uLiBGb3IgZXhhbXBsZSwgaWYgc3VwcGxpZWQgd2l0aCBgZmlwcy11cy13ZXN0LTJgLCBpdCByZXR1cm5zIGB1cy13ZXN0LTJgLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRQc2V1ZG9SZWdpb24gPSAocmVnaW9uOiBzdHJpbmcpID0+IChpc0ZpcHNSZWdpb24ocmVnaW9uKSA/IHJlZ2lvbi5yZXBsYWNlKC9maXBzLXwtZmlwcy8sIFwiXCIpIDogcmVnaW9uKTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBnaXZlbiBzdHJpbmcgaXMgRE5TIGNvbXBsaWFudCBwZXIgdGhlIHJ1bGVzIG91dGxpbmVkIGJ5XG4gKiBTMy4gTGVuZ3RoLCBjYXBpdGFpemF0aW9uLCBhbmQgbGVhZGluZyBkb3QgcmVzdHJpY3Rpb25zIGFyZSBlbmZvcmNlZCBieSB0aGVcbiAqIERPTUFJTl9QQVRURVJOIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqIEBpbnRlcm5hbFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC9kZXYvQnVja2V0UmVzdHJpY3Rpb25zLmh0bWxcbiAqL1xuZXhwb3J0IGNvbnN0IGlzRG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUgPSAoYnVja2V0TmFtZTogc3RyaW5nKTogYm9vbGVhbiA9PlxuICBET01BSU5fUEFUVEVSTi50ZXN0KGJ1Y2tldE5hbWUpICYmICFJUF9BRERSRVNTX1BBVFRFUk4udGVzdChidWNrZXROYW1lKSAmJiAhRE9UU19QQVRURVJOLnRlc3QoYnVja2V0TmFtZSk7XG5cbmNvbnN0IGdldFJlZ2lvbmFsU3VmZml4ID0gKGhvc3RuYW1lOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmddID0+IHtcbiAgY29uc3QgcGFydHMgPSBob3N0bmFtZS5tYXRjaChTM19IT1NUTkFNRV9QQVRURVJOKSE7XG4gIHJldHVybiBbcGFydHNbMl0sIGhvc3RuYW1lLnJlcGxhY2UobmV3IFJlZ0V4cChgXiR7cGFydHNbMF19YCksIFwiXCIpXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTdWZmaXggPSAoaG9zdG5hbWU6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZ10gPT5cbiAgUzNfVVNfRUFTVF8xX0FMVE5BTUVfUEFUVEVSTi50ZXN0KGhvc3RuYW1lKSA/IFtcInVzLWVhc3QtMVwiLCBBV1NfUEFSVElUSU9OX1NVRkZJWF0gOiBnZXRSZWdpb25hbFN1ZmZpeChob3N0bmFtZSk7XG5cbi8qKlxuICogSW5mZXIgcmVnaW9uIGFuZCBob3N0bmFtZSBzdWZmaXggZnJvbSBhIGNvbXBsZXRlIGhvc3RuYW1lXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSBob3N0bmFtZSAtIEhvc3RuYW1lXG4gKiBAcmV0dXJucyBbUmVnaW9uLCBIb3N0bmFtZSBzdWZmaXhdXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTdWZmaXhGb3JBcm5FbmRwb2ludCA9IChob3N0bmFtZTogc3RyaW5nKTogW3N0cmluZywgc3RyaW5nXSA9PlxuICBTM19VU19FQVNUXzFfQUxUTkFNRV9QQVRURVJOLnRlc3QoaG9zdG5hbWUpXG4gICAgPyBbaG9zdG5hbWUucmVwbGFjZShgLiR7QVdTX1BBUlRJVElPTl9TVUZGSVh9YCwgXCJcIiksIEFXU19QQVJUSVRJT05fU1VGRklYXVxuICAgIDogZ2V0UmVnaW9uYWxTdWZmaXgoaG9zdG5hbWUpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVBcm5FbmRwb2ludE9wdGlvbnMgPSAob3B0aW9uczoge1xuICBhY2NlbGVyYXRlRW5kcG9pbnQ/OiBib29sZWFuO1xuICB0bHNDb21wYXRpYmxlPzogYm9vbGVhbjtcbiAgcGF0aFN0eWxlRW5kcG9pbnQ/OiBib29sZWFuO1xufSkgPT4ge1xuICBpZiAob3B0aW9ucy5wYXRoU3R5bGVFbmRwb2ludCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlBhdGgtc3R5bGUgUzMgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBUk5cIik7XG4gIH1cbiAgaWYgKG9wdGlvbnMuYWNjZWxlcmF0ZUVuZHBvaW50KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQWNjZWxlcmF0ZSBlbmRwb2ludCBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gYnVja2V0IGlzIGFuIEFSTlwiKTtcbiAgfVxuICBpZiAoIW9wdGlvbnMudGxzQ29tcGF0aWJsZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkhUVFBTIGlzIHJlcXVpcmVkIHdoZW4gYnVja2V0IGlzIGFuIEFSTlwiKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlU2VydmljZSA9IChzZXJ2aWNlOiBzdHJpbmcpID0+IHtcbiAgaWYgKHNlcnZpY2UgIT09IFwiczNcIiAmJiBzZXJ2aWNlICE9PSBcInMzLW91dHBvc3RzXCIgJiYgc2VydmljZSAhPT0gXCJzMy1vYmplY3QtbGFtYmRhXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3QgJ3MzJyBvciAnczMtb3V0cG9zdHMnIG9yICdzMy1vYmplY3QtbGFtYmRhJyBpbiBBUk4gc2VydmljZSBjb21wb25lbnRcIik7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVMzU2VydmljZSA9IChzZXJ2aWNlOiBzdHJpbmcpID0+IHtcbiAgaWYgKHNlcnZpY2UgIT09IFwiczNcIikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdCAnczMnIGluIEFjY2Vzc3BvaW50IEFSTiBzZXJ2aWNlIGNvbXBvbmVudFwiKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlT3V0cG9zdFNlcnZpY2UgPSAoc2VydmljZTogc3RyaW5nKSA9PiB7XG4gIGlmIChzZXJ2aWNlICE9PSBcInMzLW91dHBvc3RzXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3QgJ3MzLXBvc3RzJyBpbiBPdXRwb3N0IEFSTiBzZXJ2aWNlIGNvbXBvbmVudFwiKTtcbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBwYXJ0aXRpb24gaW5mZXJyZWQgZnJvbSBBUk4gaXMgdGhlIHNhbWUgdG8gYG9wdGlvbnMuY2xpZW50UGFydGl0aW9uYC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQYXJ0aXRpb24gPSAocGFydGl0aW9uOiBzdHJpbmcsIG9wdGlvbnM6IHsgY2xpZW50UGFydGl0aW9uOiBzdHJpbmcgfSkgPT4ge1xuICBpZiAocGFydGl0aW9uICE9PSBvcHRpb25zLmNsaWVudFBhcnRpdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgUGFydGl0aW9uIGluIEFSTiBpcyBpbmNvbXBhdGlibGUsIGdvdCBcIiR7cGFydGl0aW9ufVwiIGJ1dCBleHBlY3RlZCBcIiR7b3B0aW9ucy5jbGllbnRQYXJ0aXRpb259XCJgKTtcbiAgfVxufTtcblxuLyoqXG4gKiB2YWxpZGF0ZSByZWdpb24gdmFsdWUgaW5mZXJyZWQgZnJvbSBBUk4uIElmIGBvcHRpb25zLnVzZUFyblJlZ2lvbmAgaXMgc2V0LCBpdCB2YWxpZGF0ZXMgdGhlIHJlZ2lvbiBpcyBub3QgYSBGSVBTXG4gKiByZWdpb24uIElmIGBvcHRpb25zLnVzZUFyblJlZ2lvbmAgaXMgdW5zZXQsIGl0IHZhbGlkYXRlcyB0aGUgcmVnaW9uIGlzIGVxdWFsIHRvIGBvcHRpb25zLmNsaWVudFJlZ2lvbmAgb3JcbiAqIGBvcHRpb25zLmNsaWVudFNpZ25pbmdSZWdpb25gLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVJlZ2lvbiA9IChcbiAgcmVnaW9uOiBzdHJpbmcsXG4gIG9wdGlvbnM6IHtcbiAgICB1c2VBcm5SZWdpb24/OiBib29sZWFuO1xuICAgIGFsbG93Rmlwc1JlZ2lvbj86IGJvb2xlYW47XG4gICAgY2xpZW50UmVnaW9uOiBzdHJpbmc7XG4gICAgY2xpZW50U2lnbmluZ1JlZ2lvbjogc3RyaW5nO1xuICB9XG4pID0+IHtcbiAgaWYgKHJlZ2lvbiA9PT0gXCJcIikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkFSTiByZWdpb24gaXMgZW1wdHlcIik7XG4gIH1cbiAgaWYgKGlzRmlwc1JlZ2lvbihvcHRpb25zLmNsaWVudFJlZ2lvbikpIHtcbiAgICBpZiAoIW9wdGlvbnMuYWxsb3dGaXBzUmVnaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGSVBTIHJlZ2lvbiBpcyBub3Qgc3VwcG9ydGVkXCIpO1xuICAgIH0gZWxzZSBpZiAoIWlzRXF1YWxSZWdpb25zKHJlZ2lvbiwgb3B0aW9ucy5jbGllbnRSZWdpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENsaWVudCBGSVBTIHJlZ2lvbiAke29wdGlvbnMuY2xpZW50UmVnaW9ufSBkb2Vzbid0IG1hdGNoIHJlZ2lvbiAke3JlZ2lvbn0gaW4gQVJOYCk7XG4gICAgfVxuICB9XG4gIGlmIChcbiAgICAhb3B0aW9ucy51c2VBcm5SZWdpb24gJiZcbiAgICAhaXNFcXVhbFJlZ2lvbnMocmVnaW9uLCBvcHRpb25zLmNsaWVudFJlZ2lvbiB8fCBcIlwiKSAmJlxuICAgICFpc0VxdWFsUmVnaW9ucyhyZWdpb24sIG9wdGlvbnMuY2xpZW50U2lnbmluZ1JlZ2lvbiB8fCBcIlwiKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFJlZ2lvbiBpbiBBUk4gaXMgaW5jb21wYXRpYmxlLCBnb3QgJHtyZWdpb259IGJ1dCBleHBlY3RlZCAke29wdGlvbnMuY2xpZW50UmVnaW9ufWApO1xuICB9XG59O1xuXG4vKipcbiAqXG4gKiBAcGFyYW0gcmVnaW9uXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50ID0gKHJlZ2lvbjogc3RyaW5nKSA9PiB7XG4gIGlmIChbXCJzMy1leHRlcm5hbC0xXCIsIFwiYXdzLWdsb2JhbFwiXS5pbmNsdWRlcyhnZXRQc2V1ZG9SZWdpb24ocmVnaW9uKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENsaWVudCByZWdpb24gJHtyZWdpb259IGlzIG5vdCByZWdpb25hbGApO1xuICB9XG59O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgaXNGaXBzUmVnaW9uID0gKHJlZ2lvbjogc3RyaW5nKSA9PiByZWdpb24uc3RhcnRzV2l0aChcImZpcHMtXCIpIHx8IHJlZ2lvbi5lbmRzV2l0aChcIi1maXBzXCIpO1xuXG5jb25zdCBpc0VxdWFsUmVnaW9ucyA9IChyZWdpb25BOiBzdHJpbmcsIHJlZ2lvbkI6IHN0cmluZykgPT5cbiAgcmVnaW9uQSA9PT0gcmVnaW9uQiB8fCBnZXRQc2V1ZG9SZWdpb24ocmVnaW9uQSkgPT09IHJlZ2lvbkIgfHwgcmVnaW9uQSA9PT0gZ2V0UHNldWRvUmVnaW9uKHJlZ2lvbkIpO1xuXG4vKipcbiAqIFZhbGlkYXRlIGFuIGFjY291bnQgSURcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVBY2NvdW50SWQgPSAoYWNjb3VudElkOiBzdHJpbmcpID0+IHtcbiAgaWYgKCEvWzAtOV17MTJ9Ly5leGVjKGFjY291bnRJZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBY2Nlc3MgcG9pbnQgQVJOIGFjY291bnRJRCBkb2VzIG5vdCBtYXRjaCByZWdleCAnWzAtOV17MTJ9J1wiKTtcbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBhIGhvc3QgbGFiZWwgYWNjb3JkaW5nIHRvIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4yLjJcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVETlNIb3N0TGFiZWwgPSAobGFiZWw6IHN0cmluZywgb3B0aW9uczogeyB0bHNDb21wYXRpYmxlPzogYm9vbGVhbiB9ID0geyB0bHNDb21wYXRpYmxlOiB0cnVlIH0pID0+IHtcbiAgLy8gcmVmZXJlbmNlOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTMuMi4yXG4gIGlmIChcbiAgICBsYWJlbC5sZW5ndGggPj0gNjQgfHxcbiAgICAhL15bYS16MC05XVthLXowLTkuLV0qW2EtejAtOV0kLy50ZXN0KGxhYmVsKSB8fFxuICAgIC8oXFxkK1xcLil7M31cXGQrLy50ZXN0KGxhYmVsKSB8fFxuICAgIC9bLi1dezJ9Ly50ZXN0KGxhYmVsKSB8fFxuICAgIChvcHRpb25zPy50bHNDb21wYXRpYmxlICYmIERPVF9QQVRURVJOLnRlc3QobGFiZWwpKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRE5TIGxhYmVsICR7bGFiZWx9YCk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUN1c3RvbUVuZHBvaW50ID0gKG9wdGlvbnM6IHtcbiAgaXNDdXN0b21FbmRwb2ludD86IGJvb2xlYW47XG4gIGR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbjtcbiAgYWNjZWxlcmF0ZUVuZHBvaW50PzogYm9vbGVhbjtcbn0pID0+IHtcbiAgaWYgKG9wdGlvbnMuaXNDdXN0b21FbmRwb2ludCkge1xuICAgIGlmIChvcHRpb25zLmR1YWxzdGFja0VuZHBvaW50KSB0aHJvdyBuZXcgRXJyb3IoXCJEdWFsc3RhY2sgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIGN1c3RvbSBlbmRwb2ludFwiKTtcbiAgICBpZiAob3B0aW9ucy5hY2NlbGVyYXRlRW5kcG9pbnQpIHRocm93IG5ldyBFcnJvcihcIkFjY2VsZXJhdGUgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIGN1c3RvbSBlbmRwb2ludFwiKTtcbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBhbmQgcGFyc2UgYW4gQWNjZXNzIFBvaW50IEFSTiBvciBPdXRwb3N0cyBBUk5cbiAqIEBpbnRlcm5hbFxuICpcbiAqIEBwYXJhbSByZXNvdXJjZSAtIFRoZSByZXNvdXJjZSBzZWN0aW9uIG9mIGFuIEFSTlxuICogQHJldHVybnMgQWNjZXNzIFBvaW50IE5hbWUgYW5kIG9wdGlvbmFsIE91dHBvc3QgSUQuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBcm5SZXNvdXJjZXMgPSAoXG4gIHJlc291cmNlOiBzdHJpbmdcbik6IHtcbiAgYWNjZXNzcG9pbnROYW1lOiBzdHJpbmc7XG4gIG91dHBvc3RJZD86IHN0cmluZztcbn0gPT4ge1xuICBjb25zdCBkZWxpbWl0ZXIgPSByZXNvdXJjZS5pbmNsdWRlcyhcIjpcIikgPyBcIjpcIiA6IFwiL1wiO1xuICBjb25zdCBbcmVzb3VyY2VUeXBlLCAuLi5yZXN0XSA9IHJlc291cmNlLnNwbGl0KGRlbGltaXRlcik7XG4gIGlmIChyZXNvdXJjZVR5cGUgPT09IFwiYWNjZXNzcG9pbnRcIikge1xuICAgIC8vIFBhcnNlIGFjY2Vzc3BvaW50IEFSTlxuICAgIGlmIChyZXN0Lmxlbmd0aCAhPT0gMSB8fCByZXN0WzBdID09PSBcIlwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFjY2VzcyBQb2ludCBBUk4gc2hvdWxkIGhhdmUgb25lIHJlc291cmNlIGFjY2Vzc3BvaW50JHtkZWxpbWl0ZXJ9e2FjY2Vzc3BvaW50bmFtZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgYWNjZXNzcG9pbnROYW1lOiByZXN0WzBdIH07XG4gIH0gZWxzZSBpZiAocmVzb3VyY2VUeXBlID09PSBcIm91dHBvc3RcIikge1xuICAgIC8vIFBhcnNlIG91dHBvc3QgQVJOXG4gICAgaWYgKCFyZXN0WzBdIHx8IHJlc3RbMV0gIT09IFwiYWNjZXNzcG9pbnRcIiB8fCAhcmVzdFsyXSB8fCByZXN0Lmxlbmd0aCAhPT0gMykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgT3V0cG9zdCBBUk4gc2hvdWxkIGhhdmUgcmVzb3VyY2Ugb3V0cG9zdCR7ZGVsaW1pdGVyfXtvdXRwb3N0SWR9JHtkZWxpbWl0ZXJ9YWNjZXNzcG9pbnQke2RlbGltaXRlcn17YWNjZXNzcG9pbnROYW1lfWBcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IFtvdXRwb3N0SWQsIF8sIGFjY2Vzc3BvaW50TmFtZV0gPSByZXN0O1xuICAgIHJldHVybiB7IG91dHBvc3RJZCwgYWNjZXNzcG9pbnROYW1lIH07XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBBUk4gcmVzb3VyY2Ugc2hvdWxkIGJlZ2luIHdpdGggJ2FjY2Vzc3BvaW50JHtkZWxpbWl0ZXJ9JyBvciAnb3V0cG9zdCR7ZGVsaW1pdGVyfSdgKTtcbiAgfVxufTtcblxuLyoqXG4gKiBUaHJvdyBpZiBkdWFsIHN0YWNrIGNvbmZpZ3VyYXRpb24gaXMgc2V0IHRvIHRydWUuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlTm9EdWFsc3RhY2sgPSAoZHVhbHN0YWNrRW5kcG9pbnQ/OiBib29sZWFuKSA9PiB7XG4gIGlmIChkdWFsc3RhY2tFbmRwb2ludClcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJEdWFsc3RhY2sgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIE91dHBvc3Qgb3IgTXVsdGktcmVnaW9uIEFjY2VzcyBQb2ludCBBUk4uXCIpO1xufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSByZWdpb24gaXMgbm90IGFwcGVuZGVkIG9yIHByZXBlbmRlZCB3aXRoIGEgYGZpcHMtYFxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU5vRklQUyA9IChyZWdpb24/OiBzdHJpbmcpID0+IHtcbiAgaWYgKGlzRmlwc1JlZ2lvbihyZWdpb24gPz8gXCJcIikpIHRocm93IG5ldyBFcnJvcihgRklQUyByZWdpb24gaXMgbm90IHN1cHBvcnRlZCB3aXRoIE91dHBvc3QsIGdvdCAke3JlZ2lvbn1gKTtcbn07XG5cbi8qKlxuICogVmFsaWRhdGUgdGhlIG11bHRpLXJlZ2lvbiBhY2Nlc3MgcG9pbnQgYWxpYXMuXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVNcmFwQWxpYXMgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gIHRyeSB7XG4gICAgbmFtZS5zcGxpdChcIi5cIikuZm9yRWFjaCgobGFiZWwpID0+IHtcbiAgICAgIHZhbGlkYXRlRE5TSG9zdExhYmVsKGxhYmVsKTtcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgXCIke25hbWV9XCIgaXMgbm90IGEgRE5TIGNvbXBhdGlibGUgbmFtZS5gKTtcbiAgfVxufTtcbiJdfQ==
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWVVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWNrZXRIb3N0bmFtZVV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQU0sY0FBYyxHQUFHLHNDQUFzQyxDQUFDO0FBQzlELE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDO0FBQzNDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztBQUNmLFFBQUEsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNuQixRQUFBLG1CQUFtQixHQUFHLDhCQUE4QixDQUFDO0FBQ2xFLE1BQU0sNEJBQTRCLEdBQUcsb0NBQW9DLENBQUM7QUFDMUUsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUM7QUF5QnRDLE1BQU0sbUJBQW1CLEdBQUcsQ0FDakMsT0FBaUQsRUFDaEIsRUFBRSxDQUFDLE9BQU8sT0FBTyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUM7QUFGaEUsUUFBQSxtQkFBbUIsdUJBRTZDO0FBTXRFLE1BQU0sZUFBZSxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLG9CQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUExRyxRQUFBLGVBQWUsbUJBQTJGO0FBVWhILE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxVQUFrQixFQUFXLEVBQUUsQ0FDdkUsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFEL0YsUUFBQSx5QkFBeUIsNkJBQ3NFO0FBRTVHLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxRQUFnQixFQUFvQixFQUFFO0lBQy9ELE1B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QUcsSUFBSSxDQUFDO1FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUM7S0FDdkM7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLFNBQVMsZ0JBQWdCLFNBQVMsR0FBRyxDQUFDLENBQUM7S0FDdEc7QUFDSCxDQUFDLENBQUM7QUExQlcsUUFBQSxlQUFlLG1CQTBCMUI7QUFNSyxNQUFNLG1CQUFtQixHQUFHLENBQUMsaUJBQTJCLEVBQUUsRUFBRTtJQUNqRSxJQUFJLGlCQUFpQjtRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLG9GQUFvRixDQUFDLENBQUM7QUFDMUcsQ0FBQyxDQUFDO0FBSFcsUUFBQSxtQkFBbUIsdUJBRzlCO0FBTUssTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFlLEVBQUUsRUFBRTtJQUNoRCxJQUFJLG9CQUFZLENBQUMsTUFBTSxhQUFOLE1BQU0sY0FBTixNQUFNLEdBQUksRUFBRSxDQUFDO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUM5RyxDQUFDLENBQUM7QUFGVyxRQUFBLGNBQWMsa0JBRXpCO0FBTUssTUFBTSxpQkFBaUIsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQ2hELElBQUk7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2hDLDRCQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLGlDQUFpQyxDQUFDLENBQUM7S0FDNUQ7QUFDSCxDQUFDLENBQUM7QUFSVyxRQUFBLGlCQUFpQixxQkFRNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUk4gfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1hcm4tcGFyc2VyXCI7XG5cbmNvbnN0IERPTUFJTl9QQVRURVJOID0gL15bYS16MC05XVthLXowLTlcXC5cXC1dezEsNjF9W2EtejAtOV0kLztcbmNvbnN0IElQX0FERFJFU1NfUEFUVEVSTiA9IC8oXFxkK1xcLil7M31cXGQrLztcbmNvbnN0IERPVFNfUEFUVEVSTiA9IC9cXC5cXC4vO1xuZXhwb3J0IGNvbnN0IERPVF9QQVRURVJOID0gL1xcLi87XG5leHBvcnQgY29uc3QgUzNfSE9TVE5BTUVfUEFUVEVSTiA9IC9eKC4rXFwuKT9zM1suLV0oW2EtejAtOS1dKylcXC4vO1xuY29uc3QgUzNfVVNfRUFTVF8xX0FMVE5BTUVfUEFUVEVSTiA9IC9eczMoLWV4dGVybmFsLTEpP1xcLmFtYXpvbmF3c1xcLmNvbSQvO1xuY29uc3QgQVdTX1BBUlRJVElPTl9TVUZGSVggPSBcImFtYXpvbmF3cy5jb21cIjtcblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NQb2ludEFybiBleHRlbmRzIEFSTiB7XG4gIGFjY2Vzc1BvaW50TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEhvc3RuYW1lUGFyYW1zIHtcbiAgaXNDdXN0b21FbmRwb2ludDogYm9vbGVhbjtcbiAgYmFzZUhvc3RuYW1lOiBzdHJpbmc7XG4gIGJ1Y2tldE5hbWU6IHN0cmluZztcbiAgY2xpZW50UmVnaW9uOiBzdHJpbmc7XG4gIGFjY2VsZXJhdGVFbmRwb2ludD86IGJvb2xlYW47XG4gIGR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbjtcbiAgcGF0aFN0eWxlRW5kcG9pbnQ/OiBib29sZWFuO1xuICB0bHNDb21wYXRpYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcm5Ib3N0bmFtZVBhcmFtcyBleHRlbmRzIE9taXQ8QnVja2V0SG9zdG5hbWVQYXJhbXMsIFwiYnVja2V0TmFtZVwiPiB7XG4gIGJ1Y2tldE5hbWU6IEFSTjtcbiAgY2xpZW50U2lnbmluZ1JlZ2lvbj86IHN0cmluZztcbiAgY2xpZW50UGFydGl0aW9uPzogc3RyaW5nO1xuICB1c2VBcm5SZWdpb24/OiBib29sZWFuO1xuICBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgaXNCdWNrZXROYW1lT3B0aW9ucyA9IChcbiAgb3B0aW9uczogQnVja2V0SG9zdG5hbWVQYXJhbXMgfCBBcm5Ib3N0bmFtZVBhcmFtc1xuKTogb3B0aW9ucyBpcyBCdWNrZXRIb3N0bmFtZVBhcmFtcyA9PiB0eXBlb2Ygb3B0aW9ucy5idWNrZXROYW1lID09PSBcInN0cmluZ1wiO1xuXG4vKipcbiAqIEdldCBwc2V1ZG8gcmVnaW9uIGZyb20gc3VwcGxpZWQgcmVnaW9uLiBGb3IgZXhhbXBsZSwgaWYgc3VwcGxpZWQgd2l0aCBgZmlwcy11cy13ZXN0LTJgLCBpdCByZXR1cm5zIGB1cy13ZXN0LTJgLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRQc2V1ZG9SZWdpb24gPSAocmVnaW9uOiBzdHJpbmcpID0+IChpc0ZpcHNSZWdpb24ocmVnaW9uKSA/IHJlZ2lvbi5yZXBsYWNlKC9maXBzLXwtZmlwcy8sIFwiXCIpIDogcmVnaW9uKTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBnaXZlbiBzdHJpbmcgaXMgRE5TIGNvbXBsaWFudCBwZXIgdGhlIHJ1bGVzIG91dGxpbmVkIGJ5XG4gKiBTMy4gTGVuZ3RoLCBjYXBpdGFpemF0aW9uLCBhbmQgbGVhZGluZyBkb3QgcmVzdHJpY3Rpb25zIGFyZSBlbmZvcmNlZCBieSB0aGVcbiAqIERPTUFJTl9QQVRURVJOIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqIEBpbnRlcm5hbFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC9kZXYvQnVja2V0UmVzdHJpY3Rpb25zLmh0bWxcbiAqL1xuZXhwb3J0IGNvbnN0IGlzRG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUgPSAoYnVja2V0TmFtZTogc3RyaW5nKTogYm9vbGVhbiA9PlxuICBET01BSU5fUEFUVEVSTi50ZXN0KGJ1Y2tldE5hbWUpICYmICFJUF9BRERSRVNTX1BBVFRFUk4udGVzdChidWNrZXROYW1lKSAmJiAhRE9UU19QQVRURVJOLnRlc3QoYnVja2V0TmFtZSk7XG5cbmNvbnN0IGdldFJlZ2lvbmFsU3VmZml4ID0gKGhvc3RuYW1lOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmddID0+IHtcbiAgY29uc3QgcGFydHMgPSBob3N0bmFtZS5tYXRjaChTM19IT1NUTkFNRV9QQVRURVJOKSE7XG4gIHJldHVybiBbcGFydHNbMl0sIGhvc3RuYW1lLnJlcGxhY2UobmV3IFJlZ0V4cChgXiR7cGFydHNbMF19YCksIFwiXCIpXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTdWZmaXggPSAoaG9zdG5hbWU6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZ10gPT5cbiAgUzNfVVNfRUFTVF8xX0FMVE5BTUVfUEFUVEVSTi50ZXN0KGhvc3RuYW1lKSA/IFtcInVzLWVhc3QtMVwiLCBBV1NfUEFSVElUSU9OX1NVRkZJWF0gOiBnZXRSZWdpb25hbFN1ZmZpeChob3N0bmFtZSk7XG5cbi8qKlxuICogSW5mZXIgcmVnaW9uIGFuZCBob3N0bmFtZSBzdWZmaXggZnJvbSBhIGNvbXBsZXRlIGhvc3RuYW1lXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSBob3N0bmFtZSAtIEhvc3RuYW1lXG4gKiBAcmV0dXJucyBbUmVnaW9uLCBIb3N0bmFtZSBzdWZmaXhdXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTdWZmaXhGb3JBcm5FbmRwb2ludCA9IChob3N0bmFtZTogc3RyaW5nKTogW3N0cmluZywgc3RyaW5nXSA9PlxuICBTM19VU19FQVNUXzFfQUxUTkFNRV9QQVRURVJOLnRlc3QoaG9zdG5hbWUpXG4gICAgPyBbaG9zdG5hbWUucmVwbGFjZShgLiR7QVdTX1BBUlRJVElPTl9TVUZGSVh9YCwgXCJcIiksIEFXU19QQVJUSVRJT05fU1VGRklYXVxuICAgIDogZ2V0UmVnaW9uYWxTdWZmaXgoaG9zdG5hbWUpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVBcm5FbmRwb2ludE9wdGlvbnMgPSAob3B0aW9uczoge1xuICBhY2NlbGVyYXRlRW5kcG9pbnQ/OiBib29sZWFuO1xuICB0bHNDb21wYXRpYmxlPzogYm9vbGVhbjtcbiAgcGF0aFN0eWxlRW5kcG9pbnQ/OiBib29sZWFuO1xufSkgPT4ge1xuICBpZiAob3B0aW9ucy5wYXRoU3R5bGVFbmRwb2ludCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlBhdGgtc3R5bGUgUzMgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBUk5cIik7XG4gIH1cbiAgaWYgKG9wdGlvbnMuYWNjZWxlcmF0ZUVuZHBvaW50KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQWNjZWxlcmF0ZSBlbmRwb2ludCBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gYnVja2V0IGlzIGFuIEFSTlwiKTtcbiAgfVxuICBpZiAoIW9wdGlvbnMudGxzQ29tcGF0aWJsZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkhUVFBTIGlzIHJlcXVpcmVkIHdoZW4gYnVja2V0IGlzIGFuIEFSTlwiKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlU2VydmljZSA9IChzZXJ2aWNlOiBzdHJpbmcpID0+IHtcbiAgaWYgKHNlcnZpY2UgIT09IFwiczNcIiAmJiBzZXJ2aWNlICE9PSBcInMzLW91dHBvc3RzXCIgJiYgc2VydmljZSAhPT0gXCJzMy1vYmplY3QtbGFtYmRhXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3QgJ3MzJyBvciAnczMtb3V0cG9zdHMnIG9yICdzMy1vYmplY3QtbGFtYmRhJyBpbiBBUk4gc2VydmljZSBjb21wb25lbnRcIik7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVMzU2VydmljZSA9IChzZXJ2aWNlOiBzdHJpbmcpID0+IHtcbiAgaWYgKHNlcnZpY2UgIT09IFwiczNcIikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdCAnczMnIGluIEFjY2Vzc3BvaW50IEFSTiBzZXJ2aWNlIGNvbXBvbmVudFwiKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlT3V0cG9zdFNlcnZpY2UgPSAoc2VydmljZTogc3RyaW5nKSA9PiB7XG4gIGlmIChzZXJ2aWNlICE9PSBcInMzLW91dHBvc3RzXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3QgJ3MzLXBvc3RzJyBpbiBPdXRwb3N0IEFSTiBzZXJ2aWNlIGNvbXBvbmVudFwiKTtcbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBwYXJ0aXRpb24gaW5mZXJyZWQgZnJvbSBBUk4gaXMgdGhlIHNhbWUgdG8gYG9wdGlvbnMuY2xpZW50UGFydGl0aW9uYC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQYXJ0aXRpb24gPSAocGFydGl0aW9uOiBzdHJpbmcsIG9wdGlvbnM6IHsgY2xpZW50UGFydGl0aW9uOiBzdHJpbmcgfSkgPT4ge1xuICBpZiAocGFydGl0aW9uICE9PSBvcHRpb25zLmNsaWVudFBhcnRpdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgUGFydGl0aW9uIGluIEFSTiBpcyBpbmNvbXBhdGlibGUsIGdvdCBcIiR7cGFydGl0aW9ufVwiIGJ1dCBleHBlY3RlZCBcIiR7b3B0aW9ucy5jbGllbnRQYXJ0aXRpb259XCJgKTtcbiAgfVxufTtcblxuLyoqXG4gKiB2YWxpZGF0ZSByZWdpb24gdmFsdWUgaW5mZXJyZWQgZnJvbSBBUk4uIElmIGBvcHRpb25zLnVzZUFyblJlZ2lvbmAgaXMgc2V0LCBpdCB2YWxpZGF0ZXMgdGhlIHJlZ2lvbiBpcyBub3QgYSBGSVBTXG4gKiByZWdpb24uIElmIGBvcHRpb25zLnVzZUFyblJlZ2lvbmAgaXMgdW5zZXQsIGl0IHZhbGlkYXRlcyB0aGUgcmVnaW9uIGlzIGVxdWFsIHRvIGBvcHRpb25zLmNsaWVudFJlZ2lvbmAgb3JcbiAqIGBvcHRpb25zLmNsaWVudFNpZ25pbmdSZWdpb25gLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVJlZ2lvbiA9IChcbiAgcmVnaW9uOiBzdHJpbmcsXG4gIG9wdGlvbnM6IHtcbiAgICB1c2VBcm5SZWdpb24/OiBib29sZWFuO1xuICAgIGFsbG93Rmlwc1JlZ2lvbj86IGJvb2xlYW47XG4gICAgY2xpZW50UmVnaW9uOiBzdHJpbmc7XG4gICAgY2xpZW50U2lnbmluZ1JlZ2lvbjogc3RyaW5nO1xuICB9XG4pID0+IHtcbiAgaWYgKHJlZ2lvbiA9PT0gXCJcIikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkFSTiByZWdpb24gaXMgZW1wdHlcIik7XG4gIH1cbiAgaWYgKGlzRmlwc1JlZ2lvbihvcHRpb25zLmNsaWVudFJlZ2lvbikpIHtcbiAgICBpZiAoIW9wdGlvbnMuYWxsb3dGaXBzUmVnaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGSVBTIHJlZ2lvbiBpcyBub3Qgc3VwcG9ydGVkXCIpO1xuICAgIH0gZWxzZSBpZiAoIWlzRXF1YWxSZWdpb25zKHJlZ2lvbiwgb3B0aW9ucy5jbGllbnRSZWdpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENsaWVudCBGSVBTIHJlZ2lvbiAke29wdGlvbnMuY2xpZW50UmVnaW9ufSBkb2Vzbid0IG1hdGNoIHJlZ2lvbiAke3JlZ2lvbn0gaW4gQVJOYCk7XG4gICAgfVxuICB9XG4gIGlmIChcbiAgICAhb3B0aW9ucy51c2VBcm5SZWdpb24gJiZcbiAgICAhaXNFcXVhbFJlZ2lvbnMocmVnaW9uLCBvcHRpb25zLmNsaWVudFJlZ2lvbiB8fCBcIlwiKSAmJlxuICAgICFpc0VxdWFsUmVnaW9ucyhyZWdpb24sIG9wdGlvbnMuY2xpZW50U2lnbmluZ1JlZ2lvbiB8fCBcIlwiKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFJlZ2lvbiBpbiBBUk4gaXMgaW5jb21wYXRpYmxlLCBnb3QgJHtyZWdpb259IGJ1dCBleHBlY3RlZCAke29wdGlvbnMuY2xpZW50UmVnaW9ufWApO1xuICB9XG59O1xuXG4vKipcbiAqXG4gKiBAcGFyYW0gcmVnaW9uXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVJlZ2lvbmFsQ2xpZW50ID0gKHJlZ2lvbjogc3RyaW5nKSA9PiB7XG4gIGlmIChbXCJzMy1leHRlcm5hbC0xXCIsIFwiYXdzLWdsb2JhbFwiXS5pbmNsdWRlcyhnZXRQc2V1ZG9SZWdpb24ocmVnaW9uKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENsaWVudCByZWdpb24gJHtyZWdpb259IGlzIG5vdCByZWdpb25hbGApO1xuICB9XG59O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgaXNGaXBzUmVnaW9uID0gKHJlZ2lvbjogc3RyaW5nKSA9PiByZWdpb24uc3RhcnRzV2l0aChcImZpcHMtXCIpIHx8IHJlZ2lvbi5lbmRzV2l0aChcIi1maXBzXCIpO1xuXG5jb25zdCBpc0VxdWFsUmVnaW9ucyA9IChyZWdpb25BOiBzdHJpbmcsIHJlZ2lvbkI6IHN0cmluZykgPT5cbiAgcmVnaW9uQSA9PT0gcmVnaW9uQiB8fCBnZXRQc2V1ZG9SZWdpb24ocmVnaW9uQSkgPT09IHJlZ2lvbkIgfHwgcmVnaW9uQSA9PT0gZ2V0UHNldWRvUmVnaW9uKHJlZ2lvbkIpO1xuXG4vKipcbiAqIFZhbGlkYXRlIGFuIGFjY291bnQgSURcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVBY2NvdW50SWQgPSAoYWNjb3VudElkOiBzdHJpbmcpID0+IHtcbiAgaWYgKCEvWzAtOV17MTJ9Ly5leGVjKGFjY291bnRJZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBY2Nlc3MgcG9pbnQgQVJOIGFjY291bnRJRCBkb2VzIG5vdCBtYXRjaCByZWdleCAnWzAtOV17MTJ9J1wiKTtcbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBhIGhvc3QgbGFiZWwgYWNjb3JkaW5nIHRvIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4yLjJcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVETlNIb3N0TGFiZWwgPSAobGFiZWw6IHN0cmluZywgb3B0aW9uczogeyB0bHNDb21wYXRpYmxlPzogYm9vbGVhbiB9ID0geyB0bHNDb21wYXRpYmxlOiB0cnVlIH0pID0+IHtcbiAgLy8gcmVmZXJlbmNlOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTMuMi4yXG4gIGlmIChcbiAgICBsYWJlbC5sZW5ndGggPj0gNjQgfHxcbiAgICAhL15bYS16MC05XVthLXowLTkuLV0qW2EtejAtOV0kLy50ZXN0KGxhYmVsKSB8fFxuICAgIC8oXFxkK1xcLil7M31cXGQrLy50ZXN0KGxhYmVsKSB8fFxuICAgIC9bLi1dezJ9Ly50ZXN0KGxhYmVsKSB8fFxuICAgIChvcHRpb25zPy50bHNDb21wYXRpYmxlICYmIERPVF9QQVRURVJOLnRlc3QobGFiZWwpKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRE5TIGxhYmVsICR7bGFiZWx9YCk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUN1c3RvbUVuZHBvaW50ID0gKG9wdGlvbnM6IHtcbiAgaXNDdXN0b21FbmRwb2ludD86IGJvb2xlYW47XG4gIGR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbjtcbiAgYWNjZWxlcmF0ZUVuZHBvaW50PzogYm9vbGVhbjtcbn0pID0+IHtcbiAgaWYgKG9wdGlvbnMuaXNDdXN0b21FbmRwb2ludCkge1xuICAgIGlmIChvcHRpb25zLmR1YWxzdGFja0VuZHBvaW50KSB0aHJvdyBuZXcgRXJyb3IoXCJEdWFsc3RhY2sgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIGN1c3RvbSBlbmRwb2ludFwiKTtcbiAgICBpZiAob3B0aW9ucy5hY2NlbGVyYXRlRW5kcG9pbnQpIHRocm93IG5ldyBFcnJvcihcIkFjY2VsZXJhdGUgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIGN1c3RvbSBlbmRwb2ludFwiKTtcbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBhbmQgcGFyc2UgYW4gQWNjZXNzIFBvaW50IEFSTiBvciBPdXRwb3N0cyBBUk5cbiAqIEBpbnRlcm5hbFxuICpcbiAqIEBwYXJhbSByZXNvdXJjZSAtIFRoZSByZXNvdXJjZSBzZWN0aW9uIG9mIGFuIEFSTlxuICogQHJldHVybnMgQWNjZXNzIFBvaW50IE5hbWUgYW5kIG9wdGlvbmFsIE91dHBvc3QgSUQuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBcm5SZXNvdXJjZXMgPSAoXG4gIHJlc291cmNlOiBzdHJpbmdcbik6IHtcbiAgYWNjZXNzcG9pbnROYW1lOiBzdHJpbmc7XG4gIG91dHBvc3RJZD86IHN0cmluZztcbn0gPT4ge1xuICBjb25zdCBkZWxpbWl0ZXIgPSByZXNvdXJjZS5pbmNsdWRlcyhcIjpcIikgPyBcIjpcIiA6IFwiL1wiO1xuICBjb25zdCBbcmVzb3VyY2VUeXBlLCAuLi5yZXN0XSA9IHJlc291cmNlLnNwbGl0KGRlbGltaXRlcik7XG4gIGlmIChyZXNvdXJjZVR5cGUgPT09IFwiYWNjZXNzcG9pbnRcIikge1xuICAgIC8vIFBhcnNlIGFjY2Vzc3BvaW50IEFSTlxuICAgIGlmIChyZXN0Lmxlbmd0aCAhPT0gMSB8fCByZXN0WzBdID09PSBcIlwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFjY2VzcyBQb2ludCBBUk4gc2hvdWxkIGhhdmUgb25lIHJlc291cmNlIGFjY2Vzc3BvaW50JHtkZWxpbWl0ZXJ9e2FjY2Vzc3BvaW50bmFtZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgYWNjZXNzcG9pbnROYW1lOiByZXN0WzBdIH07XG4gIH0gZWxzZSBpZiAocmVzb3VyY2VUeXBlID09PSBcIm91dHBvc3RcIikge1xuICAgIC8vIFBhcnNlIG91dHBvc3QgQVJOXG4gICAgaWYgKCFyZXN0WzBdIHx8IHJlc3RbMV0gIT09IFwiYWNjZXNzcG9pbnRcIiB8fCAhcmVzdFsyXSB8fCByZXN0Lmxlbmd0aCAhPT0gMykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgT3V0cG9zdCBBUk4gc2hvdWxkIGhhdmUgcmVzb3VyY2Ugb3V0cG9zdCR7ZGVsaW1pdGVyfXtvdXRwb3N0SWR9JHtkZWxpbWl0ZXJ9YWNjZXNzcG9pbnQke2RlbGltaXRlcn17YWNjZXNzcG9pbnROYW1lfWBcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IFtvdXRwb3N0SWQsIF8sIGFjY2Vzc3BvaW50TmFtZV0gPSByZXN0O1xuICAgIHJldHVybiB7IG91dHBvc3RJZCwgYWNjZXNzcG9pbnROYW1lIH07XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBBUk4gcmVzb3VyY2Ugc2hvdWxkIGJlZ2luIHdpdGggJ2FjY2Vzc3BvaW50JHtkZWxpbWl0ZXJ9JyBvciAnb3V0cG9zdCR7ZGVsaW1pdGVyfSdgKTtcbiAgfVxufTtcblxuLyoqXG4gKiBUaHJvdyBpZiBkdWFsIHN0YWNrIGNvbmZpZ3VyYXRpb24gaXMgc2V0IHRvIHRydWUuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlTm9EdWFsc3RhY2sgPSAoZHVhbHN0YWNrRW5kcG9pbnQ/OiBib29sZWFuKSA9PiB7XG4gIGlmIChkdWFsc3RhY2tFbmRwb2ludClcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJEdWFsc3RhY2sgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIE91dHBvc3Qgb3IgTXVsdGktcmVnaW9uIEFjY2VzcyBQb2ludCBBUk4uXCIpO1xufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSByZWdpb24gaXMgbm90IGFwcGVuZGVkIG9yIHByZXBlbmRlZCB3aXRoIGEgYGZpcHMtYFxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU5vRklQUyA9IChyZWdpb24/OiBzdHJpbmcpID0+IHtcbiAgaWYgKGlzRmlwc1JlZ2lvbihyZWdpb24gPz8gXCJcIikpIHRocm93IG5ldyBFcnJvcihgRklQUyByZWdpb24gaXMgbm90IHN1cHBvcnRlZCB3aXRoIE91dHBvc3QsIGdvdCAke3JlZ2lvbn1gKTtcbn07XG5cbi8qKlxuICogVmFsaWRhdGUgdGhlIG11bHRpLXJlZ2lvbiBhY2Nlc3MgcG9pbnQgYWxpYXMuXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVNcmFwQWxpYXMgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gIHRyeSB7XG4gICAgbmFtZS5zcGxpdChcIi5cIikuZm9yRWFjaCgobGFiZWwpID0+IHtcbiAgICAgIHZhbGlkYXRlRE5TSG9zdExhYmVsKGxhYmVsKTtcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgXCIke25hbWV9XCIgaXMgbm90IGEgRE5TIGNvbXBhdGlibGUgbmFtZS5gKTtcbiAgfVxufTtcbiJdfQ==
|
|
@@ -20,11 +20,6 @@ exports.NODE_USE_ARN_REGION_ENV_NAME = "AWS_S3_USE_ARN_REGION";
|
|
|
20
20
|
exports.NODE_USE_ARN_REGION_INI_NAME = "s3_use_arn_region";
|
|
21
21
|
exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME = "AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS";
|
|
22
22
|
exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_INI_NAME = "s3_disable_multiregion_access_points";
|
|
23
|
-
/**
|
|
24
|
-
* Config to load useArnRegion from environment variables and shared INI files
|
|
25
|
-
*
|
|
26
|
-
* @api private
|
|
27
|
-
*/
|
|
28
23
|
exports.NODE_USE_ARN_REGION_CONFIG_OPTIONS = {
|
|
29
24
|
environmentVariableSelector: (env) => {
|
|
30
25
|
if (!Object.prototype.hasOwnProperty.call(env, exports.NODE_USE_ARN_REGION_ENV_NAME))
|
|
@@ -67,4 +62,4 @@ exports.NODE_DISABLE_MULTIREGION_ACCESS_POINT_CONFIG_OPTIONS = {
|
|
|
67
62
|
},
|
|
68
63
|
default: false,
|
|
69
64
|
};
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBOEVBLFNBQWdCLDJCQUEyQixDQUN6QyxLQUF5RDtJQUV6RCxNQUFNLEVBQ0osY0FBYyxHQUFHLEtBQUssRUFDdEIsY0FBYyxHQUFHLEtBQUssRUFDdEIscUJBQXFCLEdBQUcsS0FBSyxFQUM3QixvQkFBb0IsR0FBRyxLQUFLLEVBQzVCLFlBQVksR0FBRyxLQUFLLEVBQ3BCLDhCQUE4QixHQUFHLEtBQUssR0FDdkMsR0FBRyxLQUFLLENBQUM7SUFDVixPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsY0FBYztRQUNkLGNBQWM7UUFDZCxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLFlBQVksRUFBRSxPQUFPLFlBQVksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDckcsOEJBQThCLEVBQzVCLE9BQU8sOEJBQThCLEtBQUssVUFBVTtZQUNsRCxDQUFDLENBQUMsOEJBQThCO1lBQ2hDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLDhCQUE4QixDQUFDO0tBQzVELENBQUM7QUFDSixDQUFDO0FBdkJELGtFQXVCQztBQUVZLFFBQUEsNEJBQTRCLEdBQUcsdUJBQXVCLENBQUM7QUFDdkQsUUFBQSw0QkFBNEIsR0FBRyxtQkFBbUIsQ0FBQztBQUVuRCxRQUFBLDhDQUE4QyxHQUFHLDBDQUEwQyxDQUFDO0FBQzVGLFFBQUEsOENBQThDLEdBQUcsc0NBQXNDLENBQUM7QUFFckc7Ozs7R0FJRztBQUNVLFFBQUEsa0NBQWtDLEdBQW1DO0lBQ2hGLDJCQUEyQixFQUFFLENBQUMsR0FBc0IsRUFBRSxFQUFFO1FBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLG9DQUE0QixDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDL0YsSUFBSSxHQUFHLENBQUMsb0NBQTRCLENBQUMsS0FBSyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDOUQsSUFBSSxHQUFHLENBQUMsb0NBQTRCLENBQUMsS0FBSyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDaEUsTUFBTSxJQUFJLEtBQUssQ0FDYixtQkFBbUIsb0NBQTRCLHFDQUFxQyxHQUFHLENBQUMsb0NBQTRCLENBQUMsR0FBRyxDQUN6SCxDQUFDO0lBQ0osQ0FBQztJQUNELGtCQUFrQixFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsb0NBQTRCLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNuRyxJQUFJLE9BQU8sQ0FBQyxvQ0FBNEIsQ0FBQyxLQUFLLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUNsRSxJQUFJLE9BQU8sQ0FBQyxvQ0FBNEIsQ0FBQyxLQUFLLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNwRSxNQUFNLElBQUksS0FBSyxDQUNiLG1DQUFtQyxvQ0FBNEIscUNBQXFDLE9BQU8sQ0FBQyxvQ0FBNEIsQ0FBQyxHQUFHLENBQzdJLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxFQUFFLEtBQUs7Q0FDZixDQUFDO0FBRVcsUUFBQSxvREFBb0QsR0FBbUM7SUFDbEcsMkJBQTJCLEVBQUUsQ0FBQyxHQUFzQixFQUFFLEVBQUU7UUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsc0RBQThDLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNqSCxJQUFJLEdBQUcsQ0FBQyxzREFBOEMsQ0FBQyxLQUFLLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUNoRixJQUFJLEdBQUcsQ0FBQyxzREFBOEMsQ0FBQyxLQUFLLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNsRixNQUFNLElBQUksS0FBSyxDQUNiLG1CQUFtQixzREFBOEMscUNBQXFDLEdBQUcsQ0FBQyxzREFBOEMsQ0FBQyxHQUFHLENBQzdKLENBQUM7SUFDSixDQUFDO0lBQ0Qsa0JBQWtCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxzREFBOEMsQ0FBQztZQUNoRyxPQUFPLFNBQVMsQ0FBQztRQUNuQixJQUFJLE9BQU8sQ0FBQyxzREFBOEMsQ0FBQyxLQUFLLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUNwRixJQUFJLE9BQU8sQ0FBQyxzREFBOEMsQ0FBQyxLQUFLLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN0RixNQUFNLElBQUksS0FBSyxDQUNiLG1DQUFtQyxzREFBOEMscUNBQXFDLE9BQU8sQ0FBQyxzREFBOEMsQ0FBQyxHQUFHLENBQ2pMLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxFQUFFLEtBQUs7Q0FDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9hZGVkQ29uZmlnU2VsZWN0b3JzIH0gZnJvbSBcIkBhd3Mtc2RrL25vZGUtY29uZmlnLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBQcm92aWRlciwgUmVnaW9uSW5mb1Byb3ZpZGVyIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0RW5kcG9pbnRJbnB1dENvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwcm92aWRlZCBlbmRwb2ludCBhZGRyZXNzZXMgYW4gaW5kaXZpZHVhbCBidWNrZXQuXG4gICAqL1xuICBidWNrZXRFbmRwb2ludD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZvcmNlIHBhdGggc3R5bGUgVVJMcyBmb3IgUzMgb2JqZWN0cyAoZS5nLiwgaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tLzxidWNrZXROYW1lPi88a2V5PiBpbnN0ZWFkIG9mIGh0dHBzOi8vPGJ1Y2tldE5hbWU+LnMzLmFtYXpvbmF3cy5jb20vPGtleT5cbiAgICovXG4gIGZvcmNlUGF0aFN0eWxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXNlIHRoZSBTMyBUcmFuc2ZlciBBY2NlbGVyYXRpb24gZW5kcG9pbnQgYnkgZGVmYXVsdFxuICAgKi9cbiAgdXNlQWNjZWxlcmF0ZUVuZHBvaW50PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEVuYWJsZXMgSVB2Ni9JUHY0IGR1YWxzdGFjayBlbmRwb2ludC4gV2hlbiBhIEROUyBsb29rdXAgaXMgcGVyZm9ybWVkIG9uIGFuIGVuZHBvaW50IG9mIHRoaXMgdHlwZSwgaXQgcmV0dXJucyBhbiDigJxB4oCdXG4gICAqIHJlY29yZCB3aXRoIGFuIElQdjQgYWRkcmVzcyBhbmQgYW4g4oCcQUFBQeKAnSByZWNvcmQgd2l0aCBhbiBJUHY2IGFkZHJlc3MuIEluIG1vc3QgY2FzZXMgdGhlIG5ldHdvcmsgc3RhY2sgaW4gdGhlXG4gICAqIGNsaWVudCBlbnZpcm9ubWVudCB3aWxsIGF1dG9tYXRpY2FsbHkgcHJlZmVyIHRoZSBBQUFBIHJlY29yZCBhbmQgbWFrZSBhIGNvbm5lY3Rpb24gdXNpbmcgdGhlIElQdjYgYWRkcmVzcy4gTm90ZSxcbiAgICogaG93ZXZlciwgdGhhdCBjdXJyZW50bHkgb24gV2luZG93cywgdGhlIElQdjQgYWRkcmVzcyB3aWxsIGJlIHByZWZlcnJlZC5cbiAgICovXG4gIHVzZUR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gb3ZlcnJpZGUgdGhlIHJlcXVlc3QgcmVnaW9uIHdpdGggdGhlIHJlZ2lvbiBpbmZlcnJlZCBmcm9tIHJlcXVlc3RlZCByZXNvdXJjZSdzIEFSTi4gRGVmYXVsdHMgdG8gZmFsc2VcbiAgICovXG4gIHVzZUFyblJlZ2lvbj86IGJvb2xlYW4gfCBQcm92aWRlcjxib29sZWFuPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcHJldmVudCBTREsgZnJvbSBtYWtpbmcgY3Jvc3MtcmVnaW9uIHJlcXVlc3Qgd2hlbiBzdXBwbGllZCBidWNrZXQgaXMgYSBtdWx0aS1yZWdpb24gYWNjZXNzIHBvaW50IEFSTi5cbiAgICogRGVmYXVsdHMgdG8gZmFsc2VcbiAgICovXG4gIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50cz86IGJvb2xlYW4gfCBQcm92aWRlcjxib29sZWFuPjtcbn1cblxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGJvb2xlYW47XG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcmVnaW9uSW5mb1Byb3ZpZGVyOiBSZWdpb25JbmZvUHJvdmlkZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0RW5kcG9pbnRSZXNvbHZlZENvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBlbmRwb2ludCBpcyBzcGVjaWZpZWQgYnkgY2FsbGVyLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXNvbHZlZCB2YWx1ZSBmb3IgaW5wdXQgY29uZmlnIHtAbGluayBCdWNrZXRFbmRwb2ludElucHV0Q29uZmlnLmJ1Y2tldEVuZHBvaW50fVxuICAgKi9cbiAgYnVja2V0RW5kcG9pbnQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXNvbHZlZCB2YWx1ZSBmb3IgaW5wdXQgY29uZmlnIHtAbGluayBCdWNrZXRFbmRwb2ludElucHV0Q29uZmlnLmZvcmNlUGF0aFN0eWxlfVxuICAgKi9cbiAgZm9yY2VQYXRoU3R5bGU6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXNvbHZlZCB2YWx1ZSBmb3IgaW5wdXQgY29uZmlnIHtAbGluayBCdWNrZXRFbmRwb2ludElucHV0Q29uZmlnLnVzZUFjY2VsZXJhdGVFbmRwb2ludH1cbiAgICovXG4gIHVzZUFjY2VsZXJhdGVFbmRwb2ludDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc29sdmVkIHZhbHVlIGZvciBpbnB1dCBjb25maWcge0BsaW5rIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcudXNlRHVhbHN0YWNrRW5kcG9pbnR9XG4gICAqL1xuICB1c2VEdWFsc3RhY2tFbmRwb2ludDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc29sdmVkIHZhbHVlIGZvciBpbnB1dCBjb25maWcge0BsaW5rIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcudXNlQXJuUmVnaW9ufVxuICAgKi9cbiAgdXNlQXJuUmVnaW9uOiBQcm92aWRlcjxib29sZWFuPjtcbiAgLyoqXG4gICAqIFJlc29sdmVkIHZhbHVlIGZvciBpbnB1dCBjb25maWcge0BsaW5rIFJlZ2lvbklucHV0Q29uZmlnLnJlZ2lvbn1cbiAgICovXG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgLyoqXG4gICAqIEZldGNoIHJlbGF0ZWQgaG9zdG5hbWUsIHNpZ25pbmcgbmFtZSBvciBzaWduaW5nIHJlZ2lvbiB3aXRoIGdpdmVuIHJlZ2lvbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICByZWdpb25JbmZvUHJvdmlkZXI6IFJlZ2lvbkluZm9Qcm92aWRlcjtcbiAgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzOiBQcm92aWRlcjxib29sZWFuPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVCdWNrZXRFbmRwb2ludENvbmZpZzxUPihcbiAgaW5wdXQ6IFQgJiBQcmV2aW91c2x5UmVzb2x2ZWQgJiBCdWNrZXRFbmRwb2ludElucHV0Q29uZmlnXG4pOiBUICYgQnVja2V0RW5kcG9pbnRSZXNvbHZlZENvbmZpZyB7XG4gIGNvbnN0IHtcbiAgICBidWNrZXRFbmRwb2ludCA9IGZhbHNlLFxuICAgIGZvcmNlUGF0aFN0eWxlID0gZmFsc2UsXG4gICAgdXNlQWNjZWxlcmF0ZUVuZHBvaW50ID0gZmFsc2UsXG4gICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQgPSBmYWxzZSxcbiAgICB1c2VBcm5SZWdpb24gPSBmYWxzZSxcbiAgICBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMgPSBmYWxzZSxcbiAgfSA9IGlucHV0O1xuICByZXR1cm4ge1xuICAgIC4uLmlucHV0LFxuICAgIGJ1Y2tldEVuZHBvaW50LFxuICAgIGZvcmNlUGF0aFN0eWxlLFxuICAgIHVzZUFjY2VsZXJhdGVFbmRwb2ludCxcbiAgICB1c2VEdWFsc3RhY2tFbmRwb2ludCxcbiAgICB1c2VBcm5SZWdpb246IHR5cGVvZiB1c2VBcm5SZWdpb24gPT09IFwiZnVuY3Rpb25cIiA/IHVzZUFyblJlZ2lvbiA6ICgpID0+IFByb21pc2UucmVzb2x2ZSh1c2VBcm5SZWdpb24pLFxuICAgIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50czpcbiAgICAgIHR5cGVvZiBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICA/IGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50c1xuICAgICAgICA6ICgpID0+IFByb21pc2UucmVzb2x2ZShkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHMpLFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgTk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRSA9IFwiQVdTX1MzX1VTRV9BUk5fUkVHSU9OXCI7XG5leHBvcnQgY29uc3QgTk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRSA9IFwiczNfdXNlX2Fybl9yZWdpb25cIjtcblxuZXhwb3J0IGNvbnN0IE5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfRU5WX05BTUUgPSBcIkFXU19TM19ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVFNcIjtcbmV4cG9ydCBjb25zdCBOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0lOSV9OQU1FID0gXCJzM19kaXNhYmxlX211bHRpcmVnaW9uX2FjY2Vzc19wb2ludHNcIjtcblxuLyoqXG4gKiBDb25maWcgdG8gbG9hZCB1c2VBcm5SZWdpb24gZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYW5kIHNoYXJlZCBJTkkgZmlsZXNcbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IE5PREVfVVNFX0FSTl9SRUdJT05fQ09ORklHX09QVElPTlM6IExvYWRlZENvbmZpZ1NlbGVjdG9yczxib29sZWFuPiA9IHtcbiAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yOiAoZW52OiBOb2RlSlMuUHJvY2Vzc0VudikgPT4ge1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVudiwgTk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRSkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKGVudltOT0RFX1VTRV9BUk5fUkVHSU9OX0VOVl9OQU1FXSA9PT0gXCJ0cnVlXCIpIHJldHVybiB0cnVlO1xuICAgIGlmIChlbnZbTk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRV0gPT09IFwiZmFsc2VcIikgcmV0dXJuIGZhbHNlO1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBDYW5ub3QgbG9hZCBlbnYgJHtOT0RFX1VTRV9BUk5fUkVHSU9OX0VOVl9OQU1FfS4gRXhwZWN0ZWQgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiLCBnb3QgJHtlbnZbTk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRV19LmBcbiAgICApO1xuICB9LFxuICBjb25maWdGaWxlU2VsZWN0b3I6IChwcm9maWxlKSA9PiB7XG4gICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvZmlsZSwgTk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRSkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKHByb2ZpbGVbTk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRV0gPT09IFwidHJ1ZVwiKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAocHJvZmlsZVtOT0RFX1VTRV9BUk5fUkVHSU9OX0lOSV9OQU1FXSA9PT0gXCJmYWxzZVwiKSByZXR1cm4gZmFsc2U7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENhbm5vdCBsb2FkIHNoYXJlZCBjb25maWcgZW50cnkgJHtOT0RFX1VTRV9BUk5fUkVHSU9OX0lOSV9OQU1FfS4gRXhwZWN0ZWQgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiLCBnb3QgJHtwcm9maWxlW05PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUVdfS5gXG4gICAgKTtcbiAgfSxcbiAgZGVmYXVsdDogZmFsc2UsXG59O1xuXG5leHBvcnQgY29uc3QgTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9DT05GSUdfT1BUSU9OUzogTG9hZGVkQ29uZmlnU2VsZWN0b3JzPGJvb2xlYW4+ID0ge1xuICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnY6IE5vZGVKUy5Qcm9jZXNzRW52KSA9PiB7XG4gICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZW52LCBOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0VOVl9OQU1FKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAoZW52W05PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfRU5WX05BTUVdID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XG4gICAgaWYgKGVudltOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0VOVl9OQU1FXSA9PT0gXCJmYWxzZVwiKSByZXR1cm4gZmFsc2U7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENhbm5vdCBsb2FkIGVudiAke05PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfRU5WX05BTUV9LiBFeHBlY3RlZCBcInRydWVcIiBvciBcImZhbHNlXCIsIGdvdCAke2VudltOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0VOVl9OQU1FXX0uYFxuICAgICk7XG4gIH0sXG4gIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwcm9maWxlLCBOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0lOSV9OQU1FKSlcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKHByb2ZpbGVbTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9JTklfTkFNRV0gPT09IFwidHJ1ZVwiKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAocHJvZmlsZVtOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0lOSV9OQU1FXSA9PT0gXCJmYWxzZVwiKSByZXR1cm4gZmFsc2U7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENhbm5vdCBsb2FkIHNoYXJlZCBjb25maWcgZW50cnkgJHtOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0lOSV9OQU1FfS4gRXhwZWN0ZWQgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiLCBnb3QgJHtwcm9maWxlW05PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfSU5JX05BTUVdfS5gXG4gICAgKTtcbiAgfSxcbiAgZGVmYXVsdDogZmFsc2UsXG59O1xuIl19
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBOEVBLFNBQWdCLDJCQUEyQixDQUN6QyxLQUF5RDtJQUV6RCxNQUFNLEVBQ0osY0FBYyxHQUFHLEtBQUssRUFDdEIsY0FBYyxHQUFHLEtBQUssRUFDdEIscUJBQXFCLEdBQUcsS0FBSyxFQUM3QixvQkFBb0IsR0FBRyxLQUFLLEVBQzVCLFlBQVksR0FBRyxLQUFLLEVBQ3BCLDhCQUE4QixHQUFHLEtBQUssR0FDdkMsR0FBRyxLQUFLLENBQUM7SUFDVixPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsY0FBYztRQUNkLGNBQWM7UUFDZCxxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLFlBQVksRUFBRSxPQUFPLFlBQVksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDckcsOEJBQThCLEVBQzVCLE9BQU8sOEJBQThCLEtBQUssVUFBVTtZQUNsRCxDQUFDLENBQUMsOEJBQThCO1lBQ2hDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLDhCQUE4QixDQUFDO0tBQzVELENBQUM7QUFDSixDQUFDO0FBdkJELGtFQXVCQztBQUVZLFFBQUEsNEJBQTRCLEdBQUcsdUJBQXVCLENBQUM7QUFDdkQsUUFBQSw0QkFBNEIsR0FBRyxtQkFBbUIsQ0FBQztBQUVuRCxRQUFBLDhDQUE4QyxHQUFHLDBDQUEwQyxDQUFDO0FBQzVGLFFBQUEsOENBQThDLEdBQUcsc0NBQXNDLENBQUM7QUFPeEYsUUFBQSxrQ0FBa0MsR0FBbUM7SUFDaEYsMkJBQTJCLEVBQUUsQ0FBQyxHQUFzQixFQUFFLEVBQUU7UUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsb0NBQTRCLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUMvRixJQUFJLEdBQUcsQ0FBQyxvQ0FBNEIsQ0FBQyxLQUFLLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5RCxJQUFJLEdBQUcsQ0FBQyxvQ0FBNEIsQ0FBQyxLQUFLLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNoRSxNQUFNLElBQUksS0FBSyxDQUNiLG1CQUFtQixvQ0FBNEIscUNBQXFDLEdBQUcsQ0FBQyxvQ0FBNEIsQ0FBQyxHQUFHLENBQ3pILENBQUM7SUFDSixDQUFDO0lBQ0Qsa0JBQWtCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxvQ0FBNEIsQ0FBQztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ25HLElBQUksT0FBTyxDQUFDLG9DQUE0QixDQUFDLEtBQUssTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2xFLElBQUksT0FBTyxDQUFDLG9DQUE0QixDQUFDLEtBQUssT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUNBQW1DLG9DQUE0QixxQ0FBcUMsT0FBTyxDQUFDLG9DQUE0QixDQUFDLEdBQUcsQ0FDN0ksQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLEVBQUUsS0FBSztDQUNmLENBQUM7QUFFVyxRQUFBLG9EQUFvRCxHQUFtQztJQUNsRywyQkFBMkIsRUFBRSxDQUFDLEdBQXNCLEVBQUUsRUFBRTtRQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxzREFBOEMsQ0FBQztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ2pILElBQUksR0FBRyxDQUFDLHNEQUE4QyxDQUFDLEtBQUssTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2hGLElBQUksR0FBRyxDQUFDLHNEQUE4QyxDQUFDLEtBQUssT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2xGLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUJBQW1CLHNEQUE4QyxxQ0FBcUMsR0FBRyxDQUFDLHNEQUE4QyxDQUFDLEdBQUcsQ0FDN0osQ0FBQztJQUNKLENBQUM7SUFDRCxrQkFBa0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLHNEQUE4QyxDQUFDO1lBQ2hHLE9BQU8sU0FBUyxDQUFDO1FBQ25CLElBQUksT0FBTyxDQUFDLHNEQUE4QyxDQUFDLEtBQUssTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3BGLElBQUksT0FBTyxDQUFDLHNEQUE4QyxDQUFDLEtBQUssT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3RGLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUNBQW1DLHNEQUE4QyxxQ0FBcUMsT0FBTyxDQUFDLHNEQUE4QyxDQUFDLEdBQUcsQ0FDakwsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLEVBQUUsS0FBSztDQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2FkZWRDb25maWdTZWxlY3RvcnMgfSBmcm9tIFwiQGF3cy1zZGsvbm9kZS1jb25maWctcHJvdmlkZXJcIjtcbmltcG9ydCB7IFByb3ZpZGVyLCBSZWdpb25JbmZvUHJvdmlkZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRFbmRwb2ludElucHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHByb3ZpZGVkIGVuZHBvaW50IGFkZHJlc3NlcyBhbiBpbmRpdmlkdWFsIGJ1Y2tldC5cbiAgICovXG4gIGJ1Y2tldEVuZHBvaW50PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZm9yY2UgcGF0aCBzdHlsZSBVUkxzIGZvciBTMyBvYmplY3RzIChlLmcuLCBodHRwczovL3MzLmFtYXpvbmF3cy5jb20vPGJ1Y2tldE5hbWU+LzxrZXk+IGluc3RlYWQgb2YgaHR0cHM6Ly88YnVja2V0TmFtZT4uczMuYW1hem9uYXdzLmNvbS88a2V5PlxuICAgKi9cbiAgZm9yY2VQYXRoU3R5bGU/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0byB1c2UgdGhlIFMzIFRyYW5zZmVyIEFjY2VsZXJhdGlvbiBlbmRwb2ludCBieSBkZWZhdWx0XG4gICAqL1xuICB1c2VBY2NlbGVyYXRlRW5kcG9pbnQ/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5hYmxlcyBJUHY2L0lQdjQgZHVhbHN0YWNrIGVuZHBvaW50LiBXaGVuIGEgRE5TIGxvb2t1cCBpcyBwZXJmb3JtZWQgb24gYW4gZW5kcG9pbnQgb2YgdGhpcyB0eXBlLCBpdCByZXR1cm5zIGFuIOKAnEHigJ1cbiAgICogcmVjb3JkIHdpdGggYW4gSVB2NCBhZGRyZXNzIGFuZCBhbiDigJxBQUFB4oCdIHJlY29yZCB3aXRoIGFuIElQdjYgYWRkcmVzcy4gSW4gbW9zdCBjYXNlcyB0aGUgbmV0d29yayBzdGFjayBpbiB0aGVcbiAgICogY2xpZW50IGVudmlyb25tZW50IHdpbGwgYXV0b21hdGljYWxseSBwcmVmZXIgdGhlIEFBQUEgcmVjb3JkIGFuZCBtYWtlIGEgY29ubmVjdGlvbiB1c2luZyB0aGUgSVB2NiBhZGRyZXNzLiBOb3RlLFxuICAgKiBob3dldmVyLCB0aGF0IGN1cnJlbnRseSBvbiBXaW5kb3dzLCB0aGUgSVB2NCBhZGRyZXNzIHdpbGwgYmUgcHJlZmVycmVkLlxuICAgKi9cbiAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0byBvdmVycmlkZSB0aGUgcmVxdWVzdCByZWdpb24gd2l0aCB0aGUgcmVnaW9uIGluZmVycmVkIGZyb20gcmVxdWVzdGVkIHJlc291cmNlJ3MgQVJOLiBEZWZhdWx0cyB0byBmYWxzZVxuICAgKi9cbiAgdXNlQXJuUmVnaW9uPzogYm9vbGVhbiB8IFByb3ZpZGVyPGJvb2xlYW4+O1xuICAvKipcbiAgICogV2hldGhlciB0byBwcmV2ZW50IFNESyBmcm9tIG1ha2luZyBjcm9zcy1yZWdpb24gcmVxdWVzdCB3aGVuIHN1cHBsaWVkIGJ1Y2tldCBpcyBhIG11bHRpLXJlZ2lvbiBhY2Nlc3MgcG9pbnQgQVJOLlxuICAgKiBEZWZhdWx0cyB0byBmYWxzZVxuICAgKi9cbiAgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzPzogYm9vbGVhbiB8IFByb3ZpZGVyPGJvb2xlYW4+O1xufVxuXG5pbnRlcmZhY2UgUHJldmlvdXNseVJlc29sdmVkIHtcbiAgaXNDdXN0b21FbmRwb2ludDogYm9vbGVhbjtcbiAgcmVnaW9uOiBQcm92aWRlcjxzdHJpbmc+O1xuICByZWdpb25JbmZvUHJvdmlkZXI6IFJlZ2lvbkluZm9Qcm92aWRlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGVuZHBvaW50IGlzIHNwZWNpZmllZCBieSBjYWxsZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgaXNDdXN0b21FbmRwb2ludDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc29sdmVkIHZhbHVlIGZvciBpbnB1dCBjb25maWcge0BsaW5rIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcuYnVja2V0RW5kcG9pbnR9XG4gICAqL1xuICBidWNrZXRFbmRwb2ludDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc29sdmVkIHZhbHVlIGZvciBpbnB1dCBjb25maWcge0BsaW5rIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcuZm9yY2VQYXRoU3R5bGV9XG4gICAqL1xuICBmb3JjZVBhdGhTdHlsZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc29sdmVkIHZhbHVlIGZvciBpbnB1dCBjb25maWcge0BsaW5rIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcudXNlQWNjZWxlcmF0ZUVuZHBvaW50fVxuICAgKi9cbiAgdXNlQWNjZWxlcmF0ZUVuZHBvaW50OiBib29sZWFuO1xuICAvKipcbiAgICogUmVzb2x2ZWQgdmFsdWUgZm9yIGlucHV0IGNvbmZpZyB7QGxpbmsgQnVja2V0RW5kcG9pbnRJbnB1dENvbmZpZy51c2VEdWFsc3RhY2tFbmRwb2ludH1cbiAgICovXG4gIHVzZUR1YWxzdGFja0VuZHBvaW50OiBib29sZWFuO1xuICAvKipcbiAgICogUmVzb2x2ZWQgdmFsdWUgZm9yIGlucHV0IGNvbmZpZyB7QGxpbmsgQnVja2V0RW5kcG9pbnRJbnB1dENvbmZpZy51c2VBcm5SZWdpb259XG4gICAqL1xuICB1c2VBcm5SZWdpb246IFByb3ZpZGVyPGJvb2xlYW4+O1xuICAvKipcbiAgICogUmVzb2x2ZWQgdmFsdWUgZm9yIGlucHV0IGNvbmZpZyB7QGxpbmsgUmVnaW9uSW5wdXRDb25maWcucmVnaW9ufVxuICAgKi9cbiAgcmVnaW9uOiBQcm92aWRlcjxzdHJpbmc+O1xuICAvKipcbiAgICogRmV0Y2ggcmVsYXRlZCBob3N0bmFtZSwgc2lnbmluZyBuYW1lIG9yIHNpZ25pbmcgcmVnaW9uIHdpdGggZ2l2ZW4gcmVnaW9uLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlZ2lvbkluZm9Qcm92aWRlcjogUmVnaW9uSW5mb1Byb3ZpZGVyO1xuICBkaXNhYmxlTXVsdGlyZWdpb25BY2Nlc3NQb2ludHM6IFByb3ZpZGVyPGJvb2xlYW4+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUJ1Y2tldEVuZHBvaW50Q29uZmlnPFQ+KFxuICBpbnB1dDogVCAmIFByZXZpb3VzbHlSZXNvbHZlZCAmIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWdcbik6IFQgJiBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnIHtcbiAgY29uc3Qge1xuICAgIGJ1Y2tldEVuZHBvaW50ID0gZmFsc2UsXG4gICAgZm9yY2VQYXRoU3R5bGUgPSBmYWxzZSxcbiAgICB1c2VBY2NlbGVyYXRlRW5kcG9pbnQgPSBmYWxzZSxcbiAgICB1c2VEdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLFxuICAgIHVzZUFyblJlZ2lvbiA9IGZhbHNlLFxuICAgIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50cyA9IGZhbHNlLFxuICB9ID0gaW5wdXQ7XG4gIHJldHVybiB7XG4gICAgLi4uaW5wdXQsXG4gICAgYnVja2V0RW5kcG9pbnQsXG4gICAgZm9yY2VQYXRoU3R5bGUsXG4gICAgdXNlQWNjZWxlcmF0ZUVuZHBvaW50LFxuICAgIHVzZUR1YWxzdGFja0VuZHBvaW50LFxuICAgIHVzZUFyblJlZ2lvbjogdHlwZW9mIHVzZUFyblJlZ2lvbiA9PT0gXCJmdW5jdGlvblwiID8gdXNlQXJuUmVnaW9uIDogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHVzZUFyblJlZ2lvbiksXG4gICAgZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzOlxuICAgICAgdHlwZW9mIGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50cyA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gZGlzYWJsZU11bHRpcmVnaW9uQWNjZXNzUG9pbnRzXG4gICAgICAgIDogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGRpc2FibGVNdWx0aXJlZ2lvbkFjY2Vzc1BvaW50cyksXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBOT0RFX1VTRV9BUk5fUkVHSU9OX0VOVl9OQU1FID0gXCJBV1NfUzNfVVNFX0FSTl9SRUdJT05cIjtcbmV4cG9ydCBjb25zdCBOT0RFX1VTRV9BUk5fUkVHSU9OX0lOSV9OQU1FID0gXCJzM191c2VfYXJuX3JlZ2lvblwiO1xuXG5leHBvcnQgY29uc3QgTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9FTlZfTkFNRSA9IFwiQVdTX1MzX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UU1wiO1xuZXhwb3J0IGNvbnN0IE5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfSU5JX05BTUUgPSBcInMzX2Rpc2FibGVfbXVsdGlyZWdpb25fYWNjZXNzX3BvaW50c1wiO1xuXG4vKipcbiAqIENvbmZpZyB0byBsb2FkIHVzZUFyblJlZ2lvbiBmcm9tIGVudmlyb25tZW50IHZhcmlhYmxlcyBhbmQgc2hhcmVkIElOSSBmaWxlc1xuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5leHBvcnQgY29uc3QgTk9ERV9VU0VfQVJOX1JFR0lPTl9DT05GSUdfT1BUSU9OUzogTG9hZGVkQ29uZmlnU2VsZWN0b3JzPGJvb2xlYW4+ID0ge1xuICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnY6IE5vZGVKUy5Qcm9jZXNzRW52KSA9PiB7XG4gICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZW52LCBOT0RFX1VTRV9BUk5fUkVHSU9OX0VOVl9OQU1FKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAoZW52W05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUVdID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XG4gICAgaWYgKGVudltOT0RFX1VTRV9BUk5fUkVHSU9OX0VOVl9OQU1FXSA9PT0gXCJmYWxzZVwiKSByZXR1cm4gZmFsc2U7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENhbm5vdCBsb2FkIGVudiAke05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUV9LiBFeHBlY3RlZCBcInRydWVcIiBvciBcImZhbHNlXCIsIGdvdCAke2VudltOT0RFX1VTRV9BUk5fUkVHSU9OX0VOVl9OQU1FXX0uYFxuICAgICk7XG4gIH0sXG4gIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwcm9maWxlLCBOT0RFX1VTRV9BUk5fUkVHSU9OX0lOSV9OQU1FKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAocHJvZmlsZVtOT0RFX1VTRV9BUk5fUkVHSU9OX0lOSV9OQU1FXSA9PT0gXCJ0cnVlXCIpIHJldHVybiB0cnVlO1xuICAgIGlmIChwcm9maWxlW05PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUVdID09PSBcImZhbHNlXCIpIHJldHVybiBmYWxzZTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ2Fubm90IGxvYWQgc2hhcmVkIGNvbmZpZyBlbnRyeSAke05PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUV9LiBFeHBlY3RlZCBcInRydWVcIiBvciBcImZhbHNlXCIsIGdvdCAke3Byb2ZpbGVbTk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRV19LmBcbiAgICApO1xuICB9LFxuICBkZWZhdWx0OiBmYWxzZSxcbn07XG5cbmV4cG9ydCBjb25zdCBOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0NPTkZJR19PUFRJT05TOiBMb2FkZWRDb25maWdTZWxlY3RvcnM8Ym9vbGVhbj4gPSB7XG4gIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudjogTm9kZUpTLlByb2Nlc3NFbnYpID0+IHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlbnYsIE5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfRU5WX05BTUUpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChlbnZbTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9FTlZfTkFNRV0gPT09IFwidHJ1ZVwiKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoZW52W05PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfRU5WX05BTUVdID09PSBcImZhbHNlXCIpIHJldHVybiBmYWxzZTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ2Fubm90IGxvYWQgZW52ICR7Tk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9FTlZfTkFNRX0uIEV4cGVjdGVkIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgZ290ICR7ZW52W05PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfRU5WX05BTUVdfS5gXG4gICAgKTtcbiAgfSxcbiAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4ge1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb2ZpbGUsIE5PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfSU5JX05BTUUpKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAocHJvZmlsZVtOT0RFX0RJU0FCTEVfTVVMVElSRUdJT05fQUNDRVNTX1BPSU5UX0lOSV9OQU1FXSA9PT0gXCJ0cnVlXCIpIHJldHVybiB0cnVlO1xuICAgIGlmIChwcm9maWxlW05PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfSU5JX05BTUVdID09PSBcImZhbHNlXCIpIHJldHVybiBmYWxzZTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ2Fubm90IGxvYWQgc2hhcmVkIGNvbmZpZyBlbnRyeSAke05PREVfRElTQUJMRV9NVUxUSVJFR0lPTl9BQ0NFU1NfUE9JTlRfSU5JX05BTUV9LiBFeHBlY3RlZCBcInRydWVcIiBvciBcImZhbHNlXCIsIGdvdCAke3Byb2ZpbGVbTk9ERV9ESVNBQkxFX01VTFRJUkVHSU9OX0FDQ0VTU19QT0lOVF9JTklfTkFNRV19LmBcbiAgICApO1xuICB9LFxuICBkZWZhdWx0OiBmYWxzZSxcbn07XG4iXX0=
|
package/dist/cjs/index.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateNoFIPS = exports.validateNoDualstack = exports.validateDNSHostLabel = exports.validateRegion = exports.validateAccountId = exports.validatePartition = exports.validateOutpostService = exports.getSuffixForArnEndpoint = exports.getPseudoRegion = exports.getArnResources = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
tslib_1.__exportStar(require("./bucketEndpointMiddleware"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./bucketHostname"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./configurations"), exports);
|
|
8
8
|
var bucketHostnameUtils_1 = require("./bucketHostnameUtils");
|
|
9
9
|
Object.defineProperty(exports, "getArnResources", { enumerable: true, get: function () { return bucketHostnameUtils_1.getArnResources; } });
|
|
10
10
|
Object.defineProperty(exports, "getPseudoRegion", { enumerable: true, get: function () { return bucketHostnameUtils_1.getPseudoRegion; } });
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFFQUEyQztBQUMzQywyREFBaUM7QUFDakMsMkRBQWlDO0FBQ2pDLDZEQVcrQjtBQVY3QixzSEFBQSxlQUFlLE9BQUE7QUFDZixzSEFBQSxlQUFlLE9BQUE7QUFDZiw4SEFBQSx1QkFBdUIsT0FBQTtBQUN2Qiw2SEFBQSxzQkFBc0IsT0FBQTtBQUN0Qix3SEFBQSxpQkFBaUIsT0FBQTtBQUNqQix3SEFBQSxpQkFBaUIsT0FBQTtBQUNqQixxSEFBQSxjQUFjLE9BQUE7QUFDZCwySEFBQSxvQkFBb0IsT0FBQTtBQUNwQiwwSEFBQSxtQkFBbUIsT0FBQTtBQUNuQixxSEFBQSxjQUFjLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9idWNrZXRFbmRwb2ludE1pZGRsZXdhcmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2J1Y2tldEhvc3RuYW1lXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25maWd1cmF0aW9uc1wiO1xuZXhwb3J0IHtcbiAgZ2V0QXJuUmVzb3VyY2VzLFxuICBnZXRQc2V1ZG9SZWdpb24sXG4gIGdldFN1ZmZpeEZvckFybkVuZHBvaW50LFxuICB2YWxpZGF0ZU91dHBvc3RTZXJ2aWNlLFxuICB2YWxpZGF0ZVBhcnRpdGlvbixcbiAgdmFsaWRhdGVBY2NvdW50SWQsXG4gIHZhbGlkYXRlUmVnaW9uLFxuICB2YWxpZGF0ZUROU0hvc3RMYWJlbCxcbiAgdmFsaWRhdGVOb0R1YWxzdGFjayxcbiAgdmFsaWRhdGVOb0ZJUFMsXG59IGZyb20gXCIuL2J1Y2tldEhvc3RuYW1lVXRpbHNcIjtcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/middleware-bucket-endpoint",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.34.0",
|
|
4
4
|
"scripts": {
|
|
5
|
+
"build": "yarn build:cjs && yarn build:es && yarn build:types",
|
|
5
6
|
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
6
7
|
"build:es": "tsc -p tsconfig.es.json",
|
|
7
|
-
"build": "
|
|
8
|
+
"build:types": "tsc -p tsconfig.types.json",
|
|
8
9
|
"downlevel-dts": "downlevel-dts dist/types dist/types/ts3.4",
|
|
9
10
|
"test": "jest"
|
|
10
11
|
},
|
|
@@ -17,17 +18,17 @@
|
|
|
17
18
|
},
|
|
18
19
|
"license": "Apache-2.0",
|
|
19
20
|
"dependencies": {
|
|
20
|
-
"@aws-sdk/protocol-http": "3.
|
|
21
|
-
"@aws-sdk/types": "3.
|
|
22
|
-
"@aws-sdk/util-arn-parser": "3.
|
|
21
|
+
"@aws-sdk/protocol-http": "3.34.0",
|
|
22
|
+
"@aws-sdk/types": "3.34.0",
|
|
23
|
+
"@aws-sdk/util-arn-parser": "3.34.0",
|
|
23
24
|
"tslib": "^2.3.0"
|
|
24
25
|
},
|
|
25
26
|
"devDependencies": {
|
|
26
|
-
"@aws-sdk/middleware-stack": "3.
|
|
27
|
-
"@aws-sdk/node-config-provider": "3.
|
|
27
|
+
"@aws-sdk/middleware-stack": "3.34.0",
|
|
28
|
+
"@aws-sdk/node-config-provider": "3.34.0",
|
|
28
29
|
"@types/jest": "^26.0.4",
|
|
29
30
|
"jest": "^26.1.0",
|
|
30
|
-
"typescript": "~4.
|
|
31
|
+
"typescript": "~4.3.5"
|
|
31
32
|
},
|
|
32
33
|
"engines": {
|
|
33
34
|
"node": ">= 10.0.0"
|
package/tsconfig.cjs.json
CHANGED
package/tsconfig.es.json
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
|
+
"baseUrl": ".",
|
|
3
4
|
"lib": ["es5", "es2015.promise", "es2015.collection", "es2015.iterable", "es2015.symbol.wellknown"],
|
|
4
|
-
"
|
|
5
|
-
"rootDir": "
|
|
6
|
-
"outDir": "./dist/es",
|
|
7
|
-
"baseUrl": "."
|
|
5
|
+
"outDir": "dist/es",
|
|
6
|
+
"rootDir": "src"
|
|
8
7
|
},
|
|
9
8
|
"extends": "../../tsconfig.es.json",
|
|
10
9
|
"include": ["src/"]
|