cdk-serverless 2.13.2 → 2.14.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.
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { NativeAttributeValue } from '@aws-sdk/lib-dynamodb';
|
|
2
2
|
import { Axios, AxiosRequestConfig } from 'axios';
|
|
3
|
+
import { JwtPayload } from 'jsonwebtoken';
|
|
3
4
|
export interface IntegTestUtilOptions {
|
|
4
5
|
readonly region: string;
|
|
5
6
|
readonly apiOptions?: {
|
|
@@ -29,9 +30,10 @@ export declare class IntegTestUtil {
|
|
|
29
30
|
constructor(options: IntegTestUtilOptions);
|
|
30
31
|
getClient(config?: AxiosRequestConfig): Axios;
|
|
31
32
|
getAuthenticatedClient(email: string, password?: string, config?: AxiosRequestConfig): Promise<Axios>;
|
|
32
|
-
initializeItemsToCleanup():
|
|
33
|
-
addItemToDeleteAfterTest(key: Record<string, NativeAttributeValue>):
|
|
33
|
+
initializeItemsToCleanup(): void;
|
|
34
|
+
addItemToDeleteAfterTest(key: Record<string, NativeAttributeValue>): void;
|
|
34
35
|
cleanupItems(): Promise<void>;
|
|
36
|
+
getTokenPayload(email: string): JwtPayload | undefined;
|
|
35
37
|
createUser(email: string, attributes: {
|
|
36
38
|
[key: string]: string;
|
|
37
39
|
}, groups: string[]): Promise<void>;
|
|
@@ -5,6 +5,7 @@ const client_cognito_identity_provider_1 = require("@aws-sdk/client-cognito-iden
|
|
|
5
5
|
const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
|
|
6
6
|
const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
|
|
7
7
|
const axios_1 = require("axios");
|
|
8
|
+
const jsonwebtoken_1 = require("jsonwebtoken");
|
|
8
9
|
const outputs_1 = require("../shared/outputs");
|
|
9
10
|
function parseCfnOutputs(output, stackName, config) {
|
|
10
11
|
const outputs = output[stackName];
|
|
@@ -71,17 +72,17 @@ class IntegTestUtil {
|
|
|
71
72
|
}
|
|
72
73
|
return this.getClient({
|
|
73
74
|
headers: {
|
|
74
|
-
Authorization: `Bearer ${this.apiTokens[email]}`,
|
|
75
|
+
Authorization: `Bearer ${this.apiTokens[email].token}`,
|
|
75
76
|
...((_a = config === null || config === void 0 ? void 0 : config.headers) !== null && _a !== void 0 ? _a : {}),
|
|
76
77
|
},
|
|
77
78
|
...config,
|
|
78
79
|
});
|
|
79
80
|
}
|
|
80
81
|
// DATASTORE
|
|
81
|
-
|
|
82
|
+
initializeItemsToCleanup() {
|
|
82
83
|
this.itemsToDelete = [];
|
|
83
84
|
}
|
|
84
|
-
|
|
85
|
+
addItemToDeleteAfterTest(key) {
|
|
85
86
|
this.itemsToDelete.push(key);
|
|
86
87
|
}
|
|
87
88
|
async cleanupItems() {
|
|
@@ -96,6 +97,10 @@ class IntegTestUtil {
|
|
|
96
97
|
}
|
|
97
98
|
}
|
|
98
99
|
// AUTH
|
|
100
|
+
getTokenPayload(email) {
|
|
101
|
+
var _a;
|
|
102
|
+
return (_a = this.apiTokens[email]) === null || _a === void 0 ? void 0 : _a.payload;
|
|
103
|
+
}
|
|
99
104
|
async createUser(email, attributes, groups) {
|
|
100
105
|
var _a, _b, _c, _d;
|
|
101
106
|
if (!((_a = this.options.authOptions) === null || _a === void 0 ? void 0 : _a.userPoolId)) {
|
|
@@ -174,8 +179,12 @@ class IntegTestUtil {
|
|
|
174
179
|
if (auth.status !== axios_1.HttpStatusCode.Ok) {
|
|
175
180
|
throw new Error(`Failed to authenticate user ${email}`);
|
|
176
181
|
}
|
|
177
|
-
|
|
182
|
+
const token = JSON.parse(auth.data).AuthenticationResult.IdToken;
|
|
183
|
+
this.apiTokens[email] = {
|
|
184
|
+
token,
|
|
185
|
+
payload: (0, jsonwebtoken_1.decode)(this.apiTokens[email].token),
|
|
186
|
+
};
|
|
178
187
|
}
|
|
179
188
|
}
|
|
180
189
|
exports.IntegTestUtil = IntegTestUtil;
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWctdGVzdC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL2ludGVnLXRlc3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnR0FBc047QUFDdE4sOERBQTBEO0FBQzFELHdEQUFvRztBQUNwRyxpQ0FBa0U7QUFDbEUsK0NBQThOO0FBK0I5TixTQUFnQixlQUFlLENBQUMsTUFBVyxFQUFFLFNBQWlCLEVBQUUsTUFBdUI7SUFDckYsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLE9BQU87UUFDTCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsVUFBVSxFQUFFO1lBQ1YsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsdUNBQTZCLEVBQUUsQ0FBQztTQUN0RTtRQUNELFdBQVcsRUFBRTtZQUNYLFVBQVUsRUFBRSxPQUFPLENBQUMsMkNBQWlDLENBQUM7WUFDdEQsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGtEQUF3QyxDQUFDO1lBQ25FLGNBQWMsRUFBRSxPQUFPLENBQUMsZ0RBQXNDLENBQUM7U0FDaEU7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQywrQ0FBcUMsQ0FBQyxFQUFFO1NBQ3RGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFoQkQsMENBZ0JDO0FBRUQsTUFBYSxhQUFhO0lBT3hCLFlBQXNCLE9BQTZCOztRQUE3QixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUgzQyxjQUFTLEdBQWdDLEVBQUUsQ0FBQztRQUM1QyxrQkFBYSxHQUEyQyxFQUFFLENBQUM7UUFHakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FB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QUFJLENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVywwQ0FBRSxnQkFBZ0IsQ0FBQSxFQUFFO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNuRDtRQUNELE1BQU0sYUFBYSxHQUFHLElBQUksYUFBSyxDQUFDO1lBQzlCLE9BQU8sRUFBRSx1QkFBdUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLGlCQUFpQjtTQUNyRSxDQUFDLENBQUM7UUFDSCxNQUFNLElBQUksR0FBRyxNQUFNLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDeEQsY0FBYyxFQUFFO2dCQUNkLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFFBQVEsRUFBRSxRQUFRO2FBQ25CO1lBQ0QsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCO1NBQ3BELENBQUMsRUFBRTtZQUNGLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsNEJBQTRCO2dCQUM1QyxjQUFjLEVBQUUsZ0RBQWdEO2FBQ2pFO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLHNCQUFjLENBQUMsRUFBRSxFQUFFO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDekQ7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQztJQUM3RSxDQUFDO0NBQ0Y7QUFqS0Qsc0NBaUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRtaW5BZGRVc2VyVG9Hcm91cENvbW1hbmQsIEFkbWluQ3JlYXRlVXNlckNvbW1hbmQsIEFkbWluRGVsZXRlVXNlckNvbW1hbmQsIEFkbWluU2V0VXNlclBhc3N3b3JkQ29tbWFuZCwgQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQsIE1lc3NhZ2VBY3Rpb25UeXBlIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNvZ25pdG8taWRlbnRpdHktcHJvdmlkZXInO1xuaW1wb3J0IHsgRHluYW1vREJDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtZHluYW1vZGInO1xuaW1wb3J0IHsgRGVsZXRlQ29tbWFuZCwgRHluYW1vREJEb2N1bWVudENsaWVudCwgTmF0aXZlQXR0cmlidXRlVmFsdWUgfSBmcm9tICdAYXdzLXNkay9saWItZHluYW1vZGInO1xuaW1wb3J0IHsgQXhpb3MsIEF4aW9zUmVxdWVzdENvbmZpZywgSHR0cFN0YXR1c0NvZGUgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX0lERU5USVRZUE9PTF9JRCwgQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9VU0VSUE9PTElELCBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MX0NMSUVOVElELCBDRk5fT1VUUFVUX1NVRkZJWF9EQVRBU1RPUkVfVEFCTEVOQU1FLCBDRk5fT1VUUFVUX1NVRkZJWF9SRVNUQVBJX1VSTCB9IGZyb20gJy4uL3NoYXJlZC9vdXRwdXRzJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnRlZ1Rlc3RVdGlsT3B0aW9ucyB7XG5cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgYXBpT3B0aW9ucz86IHtcbiAgICByZWFkb25seSBiYXNlVVJMPzogc3RyaW5nO1xuICB9O1xuXG4gIHJlYWRvbmx5IGF1dGhPcHRpb25zPzoge1xuICAgIHJlYWRvbmx5IHVzZXJQb29sSWQ/OiBzdHJpbmc7XG5cbiAgICByZWFkb25seSB1c2VyUG9vbENsaWVudElkPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHVzZXJQb29sQ2xpZW50U2VjcmV0Pzogc3RyaW5nO1xuXG4gICAgcmVhZG9ubHkgaWRlbnRpdHlQb29sSWQ/OiBzdHJpbmc7XG4gIH07XG5cbiAgcmVhZG9ubHkgZGF0YXN0b3JlT3B0aW9ucz86IHtcbiAgICByZWFkb25seSB0YWJsZU5hbWU/OiBzdHJpbmc7XG4gIH07XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZm5PdXRwdXRDb25maWcge1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcbiAgcmVhZG9ubHkgYXBpTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBkYXRhc3RvcmVOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNmbk91dHB1dHMob3V0cHV0OiBhbnksIHN0YWNrTmFtZTogc3RyaW5nLCBjb25maWc6IENmbk91dHB1dENvbmZpZyk6IEludGVnVGVzdFV0aWxPcHRpb25zIHtcbiAgY29uc3Qgb3V0cHV0cyA9IG91dHB1dFtzdGFja05hbWVdO1xuICByZXR1cm4ge1xuICAgIHJlZ2lvbjogY29uZmlnLnJlZ2lvbixcbiAgICBhcGlPcHRpb25zOiB7XG4gICAgICBiYXNlVVJMOiBvdXRwdXRzW2Ake2NvbmZpZy5hcGlOYW1lfSR7Q0ZOX09VVFBVVF9TVUZGSVhfUkVTVEFQSV9VUkx9YF0sXG4gICAgfSxcbiAgICBhdXRoT3B0aW9uczoge1xuICAgICAgdXNlclBvb2xJZDogb3V0cHV0c1tDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MSURdLFxuICAgICAgdXNlclBvb2xDbGllbnRJZDogb3V0cHV0c1tDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MX0NMSUVOVElEXSxcbiAgICAgIGlkZW50aXR5UG9vbElkOiBvdXRwdXRzW0NGTl9PVVRQVVRfU1VGRklYX0FVVEhfSURFTlRJVFlQT09MX0lEXSxcbiAgICB9LFxuICAgIGRhdGFzdG9yZU9wdGlvbnM6IHtcbiAgICAgIHRhYmxlTmFtZTogYCR7Y29uZmlnLmRhdGFzdG9yZU5hbWV9JHtvdXRwdXRzW0NGTl9PVVRQVVRfU1VGRklYX0RBVEFTVE9SRV9UQUJMRU5BTUVdfWAsXG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEludGVnVGVzdFV0aWwge1xuXG4gIHB1YmxpYyByZWFkb25seSB0YWJsZU5hbWU/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBhcGlUb2tlbnM6IHsgW2VtYWlsOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICBwcml2YXRlIGl0ZW1zVG9EZWxldGU6IFJlY29yZDxzdHJpbmcsIE5hdGl2ZUF0dHJpYnV0ZVZhbHVlPltdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG9wdGlvbnM6IEludGVnVGVzdFV0aWxPcHRpb25zKSB7XG4gICAgcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiA9IG9wdGlvbnMucmVnaW9uO1xuICAgIHByb2Nlc3MuZW52LkFXU19ERUZBVUxUX1JFR0lPTiA9IG9wdGlvbnMucmVnaW9uO1xuICAgIGlmIChvcHRpb25zLmRhdGFzdG9yZU9wdGlvbnM/LnRhYmxlTmFtZSkge1xuICAgICAgcHJvY2Vzcy5lbnYuVEFCTEUgPSBvcHRpb25zLmRhdGFzdG9yZU9wdGlvbnMudGFibGVOYW1lO1xuICAgICAgdGhpcy50YWJsZU5hbWUgPSBvcHRpb25zLmRhdGFzdG9yZU9wdGlvbnMudGFibGVOYW1lO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFVVEhcblxuICBwdWJsaWMgZ2V0Q2xpZW50KGNvbmZpZz86IEF4aW9zUmVxdWVzdENvbmZpZykge1xuICAgIHJldHVybiBuZXcgQXhpb3Moe1xuICAgICAgYmFzZVVSTDogdGhpcy5vcHRpb25zLmFwaU9wdGlvbnM/LmJhc2VVUkwsXG4gICAgICB0cmFuc2Zvcm1SZXNwb25zZTogKGRhdGEpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRyYW5zZm9ybVJlcXVlc3Q6IChkYXRhKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLi4uY29uZmlnLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEF1dGhlbnRpY2F0ZWRDbGllbnQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ/OiBzdHJpbmcsIGNvbmZpZz86IEF4aW9zUmVxdWVzdENvbmZpZykge1xuICAgIGlmICghdGhpcy5hcGlUb2tlbnNbZW1haWxdKSB7XG4gICAgICBpZiAoIXBhc3N3b3JkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcGFzc3dvcmQgcHJvdmlkZWQ7IFlvdSBjYW4gb25seSBsZWF2ZSBwYXNzd29yZCBibGFuayBmb3IgdXNlcnMgY3JlYXRlZCBieSB0aGlzIHV0aWxpdHknKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMubG9naW5Vc2VyKGVtYWlsLCBwYXNzd29yZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldENsaWVudCh7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLmFwaVRva2Vuc1tlbWFpbF19YCxcbiAgICAgICAgLi4uKGNvbmZpZz8uaGVhZGVycyA/PyB7fSksXG4gICAgICB9LFxuICAgICAgLi4uY29uZmlnLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gREFUQVNUT1JFXG5cbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemVJdGVtc1RvQ2xlYW51cCgpIHtcbiAgICB0aGlzLml0ZW1zVG9EZWxldGUgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRJdGVtVG9EZWxldGVBZnRlclRlc3Qoa2V5OiBSZWNvcmQ8c3RyaW5nLCBOYXRpdmVBdHRyaWJ1dGVWYWx1ZT4pIHtcbiAgICB0aGlzLml0ZW1zVG9EZWxldGUucHVzaChrZXkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNsZWFudXBJdGVtcygpIHtcbiAgICBjb25zdCBkZGIgPSBEeW5hbW9EQkRvY3VtZW50Q2xpZW50LmZyb20obmV3IER5bmFtb0RCQ2xpZW50KHsgcmVnaW9uOiB0aGlzLm9wdGlvbnMucmVnaW9uIH0pKTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtc1RvRGVsZXRlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBkZGIuc2VuZChuZXcgRGVsZXRlQ29tbWFuZCh7IFRhYmxlTmFtZTogdGhpcy50YWJsZU5hbWUsIEtleTogaXRlbSB9KSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQVVUSFxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVVc2VyKGVtYWlsOiBzdHJpbmcsIGF0dHJpYnV0ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGdyb3Vwczogc3RyaW5nW10pIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5hdXRoT3B0aW9ucz8udXNlclBvb2xJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB1c2VyUG9vbElkIGNvbmZpZ3VyZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCByYW5kb21QYXNzd29yZDogc3RyaW5nID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoLTE2KTtcblxuICAgIGNvbnN0IGNvZ25pdG9DbGllbnQ6IENvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50ID0gbmV3IENvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50KHsgcmVnaW9uOiB0aGlzLm9wdGlvbnMucmVnaW9uIH0pO1xuICAgIC8vIENyZWF0ZSBhIG5ldyB1c2VyIGluIENvZ25pdG9cbiAgICBhd2FpdCBjb2duaXRvQ2xpZW50LnNlbmQobmV3IEFkbWluQ3JlYXRlVXNlckNvbW1hbmQoe1xuICAgICAgVXNlclBvb2xJZDogdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbElkLFxuICAgICAgVXNlcm5hbWU6IGVtYWlsLFxuICAgICAgTWVzc2FnZUFjdGlvbjogTWVzc2FnZUFjdGlvblR5cGUuU1VQUFJFU1MsXG4gICAgICBUZW1wb3JhcnlQYXNzd29yZDogcmFuZG9tUGFzc3dvcmQsXG4gICAgICBVc2VyQXR0cmlidXRlczogW3tcbiAgICAgICAgTmFtZTogJ2VtYWlsJyxcbiAgICAgICAgVmFsdWU6IGVtYWlsLFxuICAgICAgfSwge1xuICAgICAgICBOYW1lOiAnZW1haWxfdmVyaWZpZWQnLFxuICAgICAgICBWYWx1ZTogJ3RydWUnLFxuICAgICAgfSxcbiAgICAgIC4uLk9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZXMpLm1hcCgoYXR0cikgPT4gKHtcbiAgICAgICAgTmFtZTogYXR0clswXSxcbiAgICAgICAgVmFsdWU6IGF0dHJbMV0sXG4gICAgICB9KSldLFxuICAgIH0pKTtcbiAgICAvLyBNYWtlIHBhc3N3b3JkIHBlcm1hbmVudCB0byBnZXQgdXNlciBvdXQgb2YgRk9SQ0VfQ0hBTkdFX1BBU1NXT1JEXG4gICAgYXdhaXQgY29nbml0b0NsaWVudC5zZW5kKG5ldyBBZG1pblNldFVzZXJQYXNzd29yZENvbW1hbmQoe1xuICAgICAgVXNlclBvb2xJZDogdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbElkLFxuICAgICAgVXNlcm5hbWU6IGVtYWlsLFxuICAgICAgUGFzc3dvcmQ6IHJhbmRvbVBhc3N3b3JkLFxuICAgICAgUGVybWFuZW50OiB0cnVlLFxuICAgIH0pKTtcbiAgICAvLyBBZGQgdXNlciB0byBncm91cHNcbiAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIGdyb3Vwcykge1xuICAgICAgYXdhaXQgY29nbml0b0NsaWVudC5zZW5kKG5ldyBBZG1pbkFkZFVzZXJUb0dyb3VwQ29tbWFuZCh7XG4gICAgICAgIFVzZXJQb29sSWQ6IHRoaXMub3B0aW9ucy5hdXRoT3B0aW9ucz8udXNlclBvb2xJZCxcbiAgICAgICAgVXNlcm5hbWU6IGVtYWlsLFxuICAgICAgICBHcm91cE5hbWU6IGdyb3VwLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMubG9naW5Vc2VyKGVtYWlsLCByYW5kb21QYXNzd29yZCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVtb3ZlVXNlcihlbWFpbDogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdXNlclBvb2xJZCBjb25maWd1cmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGNvZ25pdG9DbGllbnQ6IENvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50ID0gbmV3IENvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50KHsgcmVnaW9uOiB0aGlzLm9wdGlvbnMucmVnaW9uIH0pO1xuICAgIGF3YWl0IGNvZ25pdG9DbGllbnQuc2VuZChuZXcgQWRtaW5EZWxldGVVc2VyQ29tbWFuZCh7XG4gICAgICBVc2VyUG9vbElkOiB0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sSWQsXG4gICAgICBVc2VybmFtZTogZW1haWwsXG4gICAgfSkpO1xuICAgIGRlbGV0ZSB0aGlzLmFwaVRva2Vuc1tlbWFpbF07XG4gIH1cblxuXG4gIHByb3RlY3RlZCBhc3luYyBsb2dpblVzZXIoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbENsaWVudElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHVzZXJQb29sQ2xpZW50SWQgY29uZmlndXJlZCcpO1xuICAgIH1cbiAgICBjb25zdCBjb2duaXRvQ2xpZW50ID0gbmV3IEF4aW9zKHtcbiAgICAgIGJhc2VVUkw6IGBodHRwczovL2NvZ25pdG8taWRwLiR7dGhpcy5vcHRpb25zLnJlZ2lvbn0uYW1hem9uYXdzLmNvbS9gLFxuICAgIH0pO1xuICAgIGNvbnN0IGF1dGggPSBhd2FpdCBjb2duaXRvQ2xpZW50LnBvc3QoJy8nLCBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBBdXRoUGFyYW1ldGVyczoge1xuICAgICAgICBVU0VSTkFNRTogZW1haWwsXG4gICAgICAgIFBBU1NXT1JEOiBwYXNzd29yZCxcbiAgICAgIH0sXG4gICAgICBBdXRoRmxvdzogJ1VTRVJfUEFTU1dPUkRfQVVUSCcsXG4gICAgICBDbGllbnRJZDogdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zLnVzZXJQb29sQ2xpZW50SWQsXG4gICAgfSksIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LWFtei1qc29uLTEuMScsXG4gICAgICAgICdYLUFtei1UYXJnZXQnOiAnQVdTQ29nbml0b0lkZW50aXR5UHJvdmlkZXJTZXJ2aWNlLkluaXRpYXRlQXV0aCcsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGlmIChhdXRoLnN0YXR1cyAhPT0gSHR0cFN0YXR1c0NvZGUuT2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGF1dGhlbnRpY2F0ZSB1c2VyICR7ZW1haWx9YCk7XG4gICAgfVxuICAgIHRoaXMuYXBpVG9rZW5zW2VtYWlsXSA9IEpTT04ucGFyc2UoYXV0aC5kYXRhKS5BdXRoZW50aWNhdGlvblJlc3VsdC5JZFRva2VuO1xuICB9XG59Il19
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWctdGVzdC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL2ludGVnLXRlc3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnR0FBc047QUFDdE4sOERBQTBEO0FBQzFELHdEQUFvRztBQUNwRyxpQ0FBa0U7QUFDbEUsK0NBQWtEO0FBQ2xELCtDQUE4TjtBQStCOU4sU0FBZ0IsZUFBZSxDQUFDLE1BQVcsRUFBRSxTQUFpQixFQUFFLE1BQXVCO0lBQ3JGLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxPQUFPO1FBQ0wsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1FBQ3JCLFVBQVUsRUFBRTtZQUNWLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxHQUFHLHVDQUE2QixFQUFFLENBQUM7U0FDdEU7UUFDRCxXQUFXLEVBQUU7WUFDWCxVQUFVLEVBQUUsT0FBTyxDQUFDLDJDQUFpQyxDQUFDO1lBQ3RELGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxrREFBd0MsQ0FBQztZQUNuRSxjQUFjLEVBQUUsT0FBTyxDQUFDLGdEQUFzQyxDQUFDO1NBQ2hFO1FBQ0QsZ0JBQWdCLEVBQUU7WUFDaEIsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsK0NBQXFDLENBQUMsRUFBRTtTQUN0RjtLQUNGLENBQUM7QUFDSixDQUFDO0FBaEJELDBDQWdCQztBQU9ELE1BQWEsYUFBYTtJQU94QixZQUFzQixPQUE2Qjs7UUFBN0IsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFIM0MsY0FBUyxHQUFtQyxFQUFFLENBQUM7UUFDL0Msa0JBQWEsR0FBMkMsRUFBRSxDQUFDO1FBR2pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0Is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LHFCQUFNLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQWU7U0FDM0QsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXpLRCxzQ0F5S0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZG1pbkFkZFVzZXJUb0dyb3VwQ29tbWFuZCwgQWRtaW5DcmVhdGVVc2VyQ29tbWFuZCwgQWRtaW5EZWxldGVVc2VyQ29tbWFuZCwgQWRtaW5TZXRVc2VyUGFzc3dvcmRDb21tYW5kLCBDb2duaXRvSWRlbnRpdHlQcm92aWRlckNsaWVudCwgTWVzc2FnZUFjdGlvblR5cGUgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY29nbml0by1pZGVudGl0eS1wcm92aWRlcic7XG5pbXBvcnQgeyBEeW5hbW9EQkNsaWVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYic7XG5pbXBvcnQgeyBEZWxldGVDb21tYW5kLCBEeW5hbW9EQkRvY3VtZW50Q2xpZW50LCBOYXRpdmVBdHRyaWJ1dGVWYWx1ZSB9IGZyb20gJ0Bhd3Mtc2RrL2xpYi1keW5hbW9kYic7XG5pbXBvcnQgeyBBeGlvcywgQXhpb3NSZXF1ZXN0Q29uZmlnLCBIdHRwU3RhdHVzQ29kZSB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGRlY29kZSwgSnd0UGF5bG9hZCB9IGZyb20gJ2pzb253ZWJ0b2tlbic7XG5pbXBvcnQgeyBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX0lERU5USVRZUE9PTF9JRCwgQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9VU0VSUE9PTElELCBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MX0NMSUVOVElELCBDRk5fT1VUUFVUX1NVRkZJWF9EQVRBU1RPUkVfVEFCTEVOQU1FLCBDRk5fT1VUUFVUX1NVRkZJWF9SRVNUQVBJX1VSTCB9IGZyb20gJy4uL3NoYXJlZC9vdXRwdXRzJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnRlZ1Rlc3RVdGlsT3B0aW9ucyB7XG5cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgYXBpT3B0aW9ucz86IHtcbiAgICByZWFkb25seSBiYXNlVVJMPzogc3RyaW5nO1xuICB9O1xuXG4gIHJlYWRvbmx5IGF1dGhPcHRpb25zPzoge1xuICAgIHJlYWRvbmx5IHVzZXJQb29sSWQ/OiBzdHJpbmc7XG5cbiAgICByZWFkb25seSB1c2VyUG9vbENsaWVudElkPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHVzZXJQb29sQ2xpZW50U2VjcmV0Pzogc3RyaW5nO1xuXG4gICAgcmVhZG9ubHkgaWRlbnRpdHlQb29sSWQ/OiBzdHJpbmc7XG4gIH07XG5cbiAgcmVhZG9ubHkgZGF0YXN0b3JlT3B0aW9ucz86IHtcbiAgICByZWFkb25seSB0YWJsZU5hbWU/OiBzdHJpbmc7XG4gIH07XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZm5PdXRwdXRDb25maWcge1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcbiAgcmVhZG9ubHkgYXBpTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBkYXRhc3RvcmVOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNmbk91dHB1dHMob3V0cHV0OiBhbnksIHN0YWNrTmFtZTogc3RyaW5nLCBjb25maWc6IENmbk91dHB1dENvbmZpZyk6IEludGVnVGVzdFV0aWxPcHRpb25zIHtcbiAgY29uc3Qgb3V0cHV0cyA9IG91dHB1dFtzdGFja05hbWVdO1xuICByZXR1cm4ge1xuICAgIHJlZ2lvbjogY29uZmlnLnJlZ2lvbixcbiAgICBhcGlPcHRpb25zOiB7XG4gICAgICBiYXNlVVJMOiBvdXRwdXRzW2Ake2NvbmZpZy5hcGlOYW1lfSR7Q0ZOX09VVFBVVF9TVUZGSVhfUkVTVEFQSV9VUkx9YF0sXG4gICAgfSxcbiAgICBhdXRoT3B0aW9uczoge1xuICAgICAgdXNlclBvb2xJZDogb3V0cHV0c1tDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MSURdLFxuICAgICAgdXNlclBvb2xDbGllbnRJZDogb3V0cHV0c1tDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MX0NMSUVOVElEXSxcbiAgICAgIGlkZW50aXR5UG9vbElkOiBvdXRwdXRzW0NGTl9PVVRQVVRfU1VGRklYX0FVVEhfSURFTlRJVFlQT09MX0lEXSxcbiAgICB9LFxuICAgIGRhdGFzdG9yZU9wdGlvbnM6IHtcbiAgICAgIHRhYmxlTmFtZTogYCR7Y29uZmlnLmRhdGFzdG9yZU5hbWV9JHtvdXRwdXRzW0NGTl9PVVRQVVRfU1VGRklYX0RBVEFTVE9SRV9UQUJMRU5BTUVdfWAsXG4gICAgfSxcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFRva2VuSW5mbyB7XG4gIHJlYWRvbmx5IHRva2VuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBheWxvYWQ6IEp3dFBheWxvYWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBJbnRlZ1Rlc3RVdGlsIHtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVOYW1lPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgYXBpVG9rZW5zOiB7IFtlbWFpbDogc3RyaW5nXTogVG9rZW5JbmZvIH0gPSB7fTtcbiAgcHJpdmF0ZSBpdGVtc1RvRGVsZXRlOiBSZWNvcmQ8c3RyaW5nLCBOYXRpdmVBdHRyaWJ1dGVWYWx1ZT5bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvcHRpb25zOiBJbnRlZ1Rlc3RVdGlsT3B0aW9ucykge1xuICAgIHByb2Nlc3MuZW52LkFXU19SRUdJT04gPSBvcHRpb25zLnJlZ2lvbjtcbiAgICBwcm9jZXNzLmVudi5BV1NfREVGQVVMVF9SRUdJT04gPSBvcHRpb25zLnJlZ2lvbjtcbiAgICBpZiAob3B0aW9ucy5kYXRhc3RvcmVPcHRpb25zPy50YWJsZU5hbWUpIHtcbiAgICAgIHByb2Nlc3MuZW52LlRBQkxFID0gb3B0aW9ucy5kYXRhc3RvcmVPcHRpb25zLnRhYmxlTmFtZTtcbiAgICAgIHRoaXMudGFibGVOYW1lID0gb3B0aW9ucy5kYXRhc3RvcmVPcHRpb25zLnRhYmxlTmFtZTtcbiAgICB9XG4gIH1cblxuICAvLyBBVVRIXG5cbiAgcHVibGljIGdldENsaWVudChjb25maWc/OiBBeGlvc1JlcXVlc3RDb25maWcpIHtcbiAgICByZXR1cm4gbmV3IEF4aW9zKHtcbiAgICAgIGJhc2VVUkw6IHRoaXMub3B0aW9ucy5hcGlPcHRpb25zPy5iYXNlVVJMLFxuICAgICAgdHJhbnNmb3JtUmVzcG9uc2U6IChkYXRhKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB0cmFuc2Zvcm1SZXF1ZXN0OiAoZGF0YSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRBdXRoZW50aWNhdGVkQ2xpZW50KGVtYWlsOiBzdHJpbmcsIHBhc3N3b3JkPzogc3RyaW5nLCBjb25maWc/OiBBeGlvc1JlcXVlc3RDb25maWcpIHtcbiAgICBpZiAoIXRoaXMuYXBpVG9rZW5zW2VtYWlsXSkge1xuICAgICAgaWYgKCFwYXNzd29yZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHBhc3N3b3JkIHByb3ZpZGVkOyBZb3UgY2FuIG9ubHkgbGVhdmUgcGFzc3dvcmQgYmxhbmsgZm9yIHVzZXJzIGNyZWF0ZWQgYnkgdGhpcyB1dGlsaXR5Jyk7XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLmxvZ2luVXNlcihlbWFpbCwgcGFzc3dvcmQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRDbGllbnQoe1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5hcGlUb2tlbnNbZW1haWxdLnRva2VufWAsXG4gICAgICAgIC4uLihjb25maWc/LmhlYWRlcnMgPz8ge30pLFxuICAgICAgfSxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIERBVEFTVE9SRVxuXG4gIHB1YmxpYyBpbml0aWFsaXplSXRlbXNUb0NsZWFudXAoKSB7XG4gICAgdGhpcy5pdGVtc1RvRGVsZXRlID0gW107XG4gIH1cblxuICBwdWJsaWMgYWRkSXRlbVRvRGVsZXRlQWZ0ZXJUZXN0KGtleTogUmVjb3JkPHN0cmluZywgTmF0aXZlQXR0cmlidXRlVmFsdWU+KSB7XG4gICAgdGhpcy5pdGVtc1RvRGVsZXRlLnB1c2goa2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjbGVhbnVwSXRlbXMoKSB7XG4gICAgY29uc3QgZGRiID0gRHluYW1vREJEb2N1bWVudENsaWVudC5mcm9tKG5ldyBEeW5hbW9EQkNsaWVudCh7IHJlZ2lvbjogdGhpcy5vcHRpb25zLnJlZ2lvbiB9KSk7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXNUb0RlbGV0ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZGRiLnNlbmQobmV3IERlbGV0ZUNvbW1hbmQoeyBUYWJsZU5hbWU6IHRoaXMudGFibGVOYW1lLCBLZXk6IGl0ZW0gfSkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEFVVEhcblxuICBwdWJsaWMgZ2V0VG9rZW5QYXlsb2FkKGVtYWlsOiBzdHJpbmcpOiBKd3RQYXlsb2FkIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hcGlUb2tlbnNbZW1haWxdPy5wYXlsb2FkO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZVVzZXIoZW1haWw6IHN0cmluZywgYXR0cmlidXRlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgZ3JvdXBzOiBzdHJpbmdbXSkge1xuICAgIGlmICghdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHVzZXJQb29sSWQgY29uZmlndXJlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkOiBzdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgtMTYpO1xuXG4gICAgY29uc3QgY29nbml0b0NsaWVudDogQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQgPSBuZXcgQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQoeyByZWdpb246IHRoaXMub3B0aW9ucy5yZWdpb24gfSk7XG4gICAgLy8gQ3JlYXRlIGEgbmV3IHVzZXIgaW4gQ29nbml0b1xuICAgIGF3YWl0IGNvZ25pdG9DbGllbnQuc2VuZChuZXcgQWRtaW5DcmVhdGVVc2VyQ29tbWFuZCh7XG4gICAgICBVc2VyUG9vbElkOiB0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sSWQsXG4gICAgICBVc2VybmFtZTogZW1haWwsXG4gICAgICBNZXNzYWdlQWN0aW9uOiBNZXNzYWdlQWN0aW9uVHlwZS5TVVBQUkVTUyxcbiAgICAgIFRlbXBvcmFyeVBhc3N3b3JkOiByYW5kb21QYXNzd29yZCxcbiAgICAgIFVzZXJBdHRyaWJ1dGVzOiBbe1xuICAgICAgICBOYW1lOiAnZW1haWwnLFxuICAgICAgICBWYWx1ZTogZW1haWwsXG4gICAgICB9LCB7XG4gICAgICAgIE5hbWU6ICdlbWFpbF92ZXJpZmllZCcsXG4gICAgICAgIFZhbHVlOiAndHJ1ZScsXG4gICAgICB9LFxuICAgICAgLi4uT2JqZWN0LmVudHJpZXMoYXR0cmlidXRlcykubWFwKChhdHRyKSA9PiAoe1xuICAgICAgICBOYW1lOiBhdHRyWzBdLFxuICAgICAgICBWYWx1ZTogYXR0clsxXSxcbiAgICAgIH0pKV0sXG4gICAgfSkpO1xuICAgIC8vIE1ha2UgcGFzc3dvcmQgcGVybWFuZW50IHRvIGdldCB1c2VyIG91dCBvZiBGT1JDRV9DSEFOR0VfUEFTU1dPUkRcbiAgICBhd2FpdCBjb2duaXRvQ2xpZW50LnNlbmQobmV3IEFkbWluU2V0VXNlclBhc3N3b3JkQ29tbWFuZCh7XG4gICAgICBVc2VyUG9vbElkOiB0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sSWQsXG4gICAgICBVc2VybmFtZTogZW1haWwsXG4gICAgICBQYXNzd29yZDogcmFuZG9tUGFzc3dvcmQsXG4gICAgICBQZXJtYW5lbnQ6IHRydWUsXG4gICAgfSkpO1xuICAgIC8vIEFkZCB1c2VyIHRvIGdyb3Vwc1xuICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgZ3JvdXBzKSB7XG4gICAgICBhd2FpdCBjb2duaXRvQ2xpZW50LnNlbmQobmV3IEFkbWluQWRkVXNlclRvR3JvdXBDb21tYW5kKHtcbiAgICAgICAgVXNlclBvb2xJZDogdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbElkLFxuICAgICAgICBVc2VybmFtZTogZW1haWwsXG4gICAgICAgIEdyb3VwTmFtZTogZ3JvdXAsXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5sb2dpblVzZXIoZW1haWwsIHJhbmRvbVBhc3N3b3JkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZW1vdmVVc2VyKGVtYWlsOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5hdXRoT3B0aW9ucz8udXNlclBvb2xJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB1c2VyUG9vbElkIGNvbmZpZ3VyZWQnKTtcbiAgICB9XG4gICAgY29uc3QgY29nbml0b0NsaWVudDogQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQgPSBuZXcgQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQoeyByZWdpb246IHRoaXMub3B0aW9ucy5yZWdpb24gfSk7XG4gICAgYXdhaXQgY29nbml0b0NsaWVudC5zZW5kKG5ldyBBZG1pbkRlbGV0ZVVzZXJDb21tYW5kKHtcbiAgICAgIFVzZXJQb29sSWQ6IHRoaXMub3B0aW9ucy5hdXRoT3B0aW9ucz8udXNlclBvb2xJZCxcbiAgICAgIFVzZXJuYW1lOiBlbWFpbCxcbiAgICB9KSk7XG4gICAgZGVsZXRlIHRoaXMuYXBpVG9rZW5zW2VtYWlsXTtcbiAgfVxuXG5cbiAgcHJvdGVjdGVkIGFzeW5jIGxvZ2luVXNlcihlbWFpbDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sQ2xpZW50SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdXNlclBvb2xDbGllbnRJZCBjb25maWd1cmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGNvZ25pdG9DbGllbnQgPSBuZXcgQXhpb3Moe1xuICAgICAgYmFzZVVSTDogYGh0dHBzOi8vY29nbml0by1pZHAuJHt0aGlzLm9wdGlvbnMucmVnaW9ufS5hbWF6b25hd3MuY29tL2AsXG4gICAgfSk7XG4gICAgY29uc3QgYXV0aCA9IGF3YWl0IGNvZ25pdG9DbGllbnQucG9zdCgnLycsIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIEF1dGhQYXJhbWV0ZXJzOiB7XG4gICAgICAgIFVTRVJOQU1FOiBlbWFpbCxcbiAgICAgICAgUEFTU1dPUkQ6IHBhc3N3b3JkLFxuICAgICAgfSxcbiAgICAgIEF1dGhGbG93OiAnVVNFUl9QQVNTV09SRF9BVVRIJyxcbiAgICAgIENsaWVudElkOiB0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnMudXNlclBvb2xDbGllbnRJZCxcbiAgICB9KSwge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtYW16LWpzb24tMS4xJyxcbiAgICAgICAgJ1gtQW16LVRhcmdldCc6ICdBV1NDb2duaXRvSWRlbnRpdHlQcm92aWRlclNlcnZpY2UuSW5pdGlhdGVBdXRoJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgaWYgKGF1dGguc3RhdHVzICE9PSBIdHRwU3RhdHVzQ29kZS5Paykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gYXV0aGVudGljYXRlIHVzZXIgJHtlbWFpbH1gKTtcbiAgICB9XG4gICAgY29uc3QgdG9rZW4gPSBKU09OLnBhcnNlKGF1dGguZGF0YSkuQXV0aGVudGljYXRpb25SZXN1bHQuSWRUb2tlbjtcbiAgICB0aGlzLmFwaVRva2Vuc1tlbWFpbF0gPSB7XG4gICAgICB0b2tlbixcbiAgICAgIHBheWxvYWQ6IGRlY29kZSh0aGlzLmFwaVRva2Vuc1tlbWFpbF0udG9rZW4pIGFzIEp3dFBheWxvYWQsXG4gICAgfTtcbiAgfVxufSJdfQ==
|