cdk-serverless 2.22.5 → 3.0.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.
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.AppSyncCognitoAuthorizer = exports.ApiGatewayv2CognitoAuthorizer = exports.ApiGatewayv1CognitoAuthorizer = exports.ApiGatewayv2JwtAuthorizer = exports.ApiGatewayv1JwtAuthorizer = exports.CognitoAuthorizer = exports.JwtAuthorizer = void 0;
7
7
  const process_1 = require("process");
8
- const axios_1 = __importDefault(require("axios"));
9
8
  const jsonwebtoken_1 = require("jsonwebtoken");
10
9
  const jwk_to_pem_1 = __importDefault(require("jwk-to-pem"));
11
10
  const errors_1 = require("./errors");
@@ -16,9 +15,16 @@ const jwtJwksUrl = cognitoPoolId ? `${jwtIssuerUrl}/.well-known/jwks.json` : pro
16
15
  const jwtGroupClaim = cognitoPoolId ? 'cognito:groups' : (process_1.env.JWT_GROUP_CLAIM ?? '');
17
16
  const jwtAudience = (process_1.env.JWT_AUDIENCE_URL && process_1.env.JWT_AUDIENCE_URL.length > 0) ? process_1.env.JWT_AUDIENCE_URL.split('||') : undefined;
18
17
  let cacheKeys;
18
+ const fetchJson = async (url) => {
19
+ const res = await fetch(url, { signal: AbortSignal.timeout(5000) });
20
+ if (!res.ok) {
21
+ throw new Error(`Request to ${url} failed: ${res.status} ${res.statusText}`);
22
+ }
23
+ return (await res.json());
24
+ };
19
25
  const getPublicKeys = async (jwksUrl) => {
20
26
  if (!cacheKeys) {
21
- const publicKeys = (await axios_1.default.get(jwksUrl)).data;
27
+ const publicKeys = await fetchJson(jwksUrl);
22
28
  cacheKeys = publicKeys.keys.reduce((agg, current) => {
23
29
  const pem = (0, jwk_to_pem_1.default)(current);
24
30
  agg[current.kid] = { instance: current, pem };
@@ -36,7 +42,7 @@ const getJwksUri = async (discoveryUri, jwksUri) => {
36
42
  return jwksUri;
37
43
  }
38
44
  const wellKnownUri = `${discoveryUri}/.well-known`;
39
- const issuerMetadata = (await axios_1.default.get(wellKnownUri)).data;
45
+ const issuerMetadata = await fetchJson(wellKnownUri);
40
46
  if (!issuerMetadata.jwks_uri) {
41
47
  throw new Error('Issuer does not offer JWKS endpoint');
42
48
  }
@@ -304,4 +310,4 @@ class AppSyncCognitoAuthorizer extends CognitoAuthorizer {
304
310
  }
305
311
  }
306
312
  exports.AppSyncCognitoAuthorizer = AppSyncCognitoAuthorizer;
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYW1iZGEvYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxQ0FBOEI7QUFDOUIsa0RBQTBCO0FBQzFCLCtDQUFxRTtBQUNyRSw0REFBa0M7QUFFbEMscUNBQWdFO0FBRWhFLE1BQU0sYUFBYSxHQUFHLGFBQUcsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO0FBQzdDLE1BQU0saUJBQWlCLEdBQUcsYUFBRyxDQUFDLGdCQUFnQixJQUFJLGFBQUcsQ0FBQyxVQUFVLElBQUksY0FBYyxDQUFDO0FBRW5GLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLGlCQUFpQixrQkFBa0IsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUM1SSxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsYUFBRyxDQUFDLFlBQVksQ0FBQztBQUM5RixNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQUcsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUM7QUFDckYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxhQUFHLENBQUMsZ0JBQWdCLElBQUksYUFBRyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBNkI3SCxJQUFJLFNBQTBDLENBQUM7QUFFL0MsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUFFLE9BQWUsRUFBZ0MsRUFBRTtJQUM1RSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDZixNQUFNLFVBQVUsR0FBZSxDQUFDLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBYSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMzRSxTQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDbEQsTUFBTSxHQUFHLEdBQUcsSUFBQSxvQkFBUSxFQUFDLE9BQXVCLENBQUMsQ0FBQztZQUM5QyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUM5QyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUF5QixDQUFDLENBQUM7UUFDOUIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsbURBQW1EO0FBQ25ELE1BQU0sVUFBVSxHQUFHLEtBQUssRUFBRSxZQUFvQixFQUFFLE9BQWdCLEVBQW1CLEVBQUU7SUFDbkYsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNaLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxNQUFNLFlBQVksR0FBRyxHQUFHLFlBQVksY0FBYyxDQUFDO0lBQ25ELE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFpQixZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM1RSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBQ0QsT0FBTyxjQUFjLENBQUMsUUFBUSxDQUFDO0FBQ2pDLENBQUMsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBYSxFQUFFLFNBQWlCLEVBQUUsT0FBZ0IsRUFBdUMsRUFBRTtJQUNqSCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLElBQUEscUJBQU0sRUFBQyxLQUFLLEVBQUUsQ0FBQyxNQUFpQixFQUFFLEVBQXNCLEVBQUUsRUFBRTtZQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoQixFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxVQUFVLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDL0QsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNULENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQW9DLEVBQUUsRUFBRSxDQUFDLEdBQVEsRUFBRSxPQUFZLEVBQUUsRUFBRTtZQUNuRyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNSLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsT0FBcUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQXNCLGFBQWE7SUFPakMsWUFDWSxTQUFpQixFQUNqQixVQUFrQixFQUNsQixVQUFrQixFQUNsQixPQUFnQjtRQUhoQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixZQUFPLEdBQVAsT0FBTyxDQUFTO0lBRTVCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzdFLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUF3QixDQUFDO0lBQzlELENBQUM7SUFFRDs7O09BR0c7SUFDSSxRQUFRLENBQUMsS0FBYTtRQUMzQixpQ0FBaUM7UUFDakMsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFPRDs7T0FFRztJQUNJLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBbUI7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSw2QkFBb0IsRUFBRSxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLHVCQUFjLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ2IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUMsTUFBTyxDQUFDLEtBQWUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVO1FBQ2YsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUMsTUFBTyxDQUFDLEdBQWEsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE1BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUEzR0Qsc0NBMkdDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBc0IsaUJBQWtCLFNBQVEsYUFBYTtJQUUzRDtRQUNFLEtBQUssQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDRjtBQUxELDhDQUtDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLHlCQUEwQixTQUFRLGFBQWE7SUFFMUQsWUFDWSxLQUEwRCxFQUFFLDhFQUE4RTtJQUNwSixVQUFrQixFQUNSLE9BQXlCO1FBRW5DLEtBQUssQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUpqRCxVQUFLLEdBQUwsS0FBSyxDQUFxRDtRQUUxRCxZQUFPLEdBQVAsT0FBTyxDQUFrQjtJQUdyQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLFlBQVk7UUFFdkIscUhBQXFIO1FBQ3JILElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4RixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDNUQsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDckQsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVyRCxtRUFBbUU7UUFDbkUsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQStCLE1BQU0sY0FBYyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFFM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsVUFBVSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTFDRCw4REEwQ0M7QUFFRDs7R0FFRztBQUNILE1BQWEseUJBQTBCLFNBQVEsYUFBYTtJQUMxRCxZQUFzQixLQUF3RCxFQUFZLE9BQXlCO1FBQ2pILEtBQUssQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRHZDLFVBQUssR0FBTCxLQUFLLENBQW1EO1FBQVksWUFBTyxHQUFQLE9BQU8sQ0FBa0I7SUFFbkgsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxZQUFZO1FBQ3ZCLHVDQUF1QztRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDO1FBRWhFLHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQyxPQUFPO1FBQ1QsQ0FBQztRQUVELGtEQUFrRDtRQUNsRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNyRCxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJELG1FQUFtRTtRQUNuRSxJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBK0IsTUFBTSxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUUzQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxVQUFVLEdBQUc7Z0JBQ3JDLEdBQUcsRUFBRTtvQkFDSCxNQUFNO29CQUNOLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7aUJBQzVCO2dCQUNELGtCQUFrQixFQUFFLENBQUM7Z0JBQ3JCLFdBQVcsRUFBRSxTQUFTO2FBQ3ZCLENBQUM7WUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN2QixDQUFDO1FBQUMsT0FBTyxHQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBM0NELDhEQTJDQztBQUVEOzs7R0FHRztBQUNILE1BQWEsNkJBQThCLFNBQVEseUJBQXlCO0lBRTFFOztPQUVHO0lBQ0gsWUFBc0IsS0FBMEQsRUFBWSxPQUF5QjtRQUNuSCxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQURYLFVBQUssR0FBTCxLQUFLLENBQXFEO1FBQVksWUFBTyxHQUFQLE9BQU8sQ0FBa0I7SUFFckgsQ0FBQztDQUNGO0FBUkQsc0VBUUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSw2QkFBOEIsU0FBUSx5QkFBeUI7SUFFMUU7O09BRUc7SUFDSCxZQUFzQixLQUF3RCxFQUFZLE9BQXlCO1FBQ2pILEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFERixVQUFLLEdBQUwsS0FBSyxDQUFtRDtRQUFZLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBRW5ILENBQUM7Q0FDRjtBQVJELHNFQVFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsaUJBQWlCO0lBRTdEOztPQUVHO0lBQ0gsWUFBc0IsS0FBMEM7UUFDOUQsS0FBSyxFQUFFLENBQUM7UUFEWSxVQUFLLEdBQUwsS0FBSyxDQUFxQztJQUVoRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsWUFBWTtRQUN2Qix1Q0FBdUM7UUFDdkMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUE2QyxDQUFDLE1BQU0sQ0FBQztRQUNqRixDQUFDO0lBQ0gsQ0FBQztDQUVGO0FBbkJELDREQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudiB9IGZyb20gJ3Byb2Nlc3MnO1xuaW1wb3J0IEF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IHZlcmlmeSwgSnd0SGVhZGVyLCBTaWduaW5nS2V5Q2FsbGJhY2sgfSBmcm9tICdqc29ud2VidG9rZW4nO1xuaW1wb3J0IGp3a1RvUGVtIGZyb20gJ2p3ay10by1wZW0nO1xuaW1wb3J0IGxvZ2dlciBmcm9tICdsYW1iZGEtbG9nJztcbmltcG9ydCB7IEZvcmJpZGRlbkVycm9yLCBVbmF1dGhlbnRpY2F0ZWRFcnJvciB9IGZyb20gJy4vZXJyb3JzJztcblxuY29uc3QgY29nbml0b1Bvb2xJZCA9IGVudi5VU0VSX1BPT0xfSUQgPz8gJyc7XG5jb25zdCBjb2duaXRvUG9vbFJlZ2lvbiA9IGVudi5VU0VSX1BPT0xfUkVHSU9OID8/IGVudi5BV1NfUkVHSU9OID8/ICdldS1jZW50cmFsLTEnO1xuXG5jb25zdCBqd3RJc3N1ZXJVcmwgPSBjb2duaXRvUG9vbElkID8gYGh0dHBzOi8vY29nbml0by1pZHAuJHtjb2duaXRvUG9vbFJlZ2lvbn0uYW1hem9uYXdzLmNvbS8ke2NvZ25pdG9Qb29sSWR9YCA6IChlbnYuSldUX0lTU1VFUl9VUkwgPz8gJycpO1xuY29uc3Qgand0Sndrc1VybCA9IGNvZ25pdG9Qb29sSWQgPyBgJHtqd3RJc3N1ZXJVcmx9Ly53ZWxsLWtub3duL2p3a3MuanNvbmAgOiBlbnYuSldUX0pXS1NfVVJMO1xuY29uc3Qgand0R3JvdXBDbGFpbSA9IGNvZ25pdG9Qb29sSWQgPyAnY29nbml0bzpncm91cHMnIDogKGVudi5KV1RfR1JPVVBfQ0xBSU0gPz8gJycpO1xuY29uc3Qgand0QXVkaWVuY2UgPSAoZW52LkpXVF9BVURJRU5DRV9VUkwgJiYgZW52LkpXVF9BVURJRU5DRV9VUkwubGVuZ3RoID4gMCkgPyBlbnYuSldUX0FVRElFTkNFX1VSTC5zcGxpdCgnfHwnKSA6IHVuZGVmaW5lZDtcblxuaW50ZXJmYWNlIFB1YmxpY0tleSB7XG4gIGFsZzogc3RyaW5nO1xuICBlOiBzdHJpbmc7XG4gIGtpZDogc3RyaW5nO1xuICBrdHk6IHN0cmluZztcbiAgbjogc3RyaW5nO1xuICB1c2U6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFB1YmxpY0tleU1ldGEge1xuICBpbnN0YW5jZTogUHVibGljS2V5O1xuICBwZW06IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFB1YmxpY0tleXMge1xuICBrZXlzOiBQdWJsaWNLZXlbXTtcbn1cblxuaW50ZXJmYWNlIElzc3Vlck1ldGFkYXRhIHtcbiAgandrc191cmk/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbmludGVyZmFjZSBNYXBPZktpZFRvUHVibGljS2V5IHtcbiAgW2tleTogc3RyaW5nXTogUHVibGljS2V5TWV0YTtcbn1cblxubGV0IGNhY2hlS2V5czogTWFwT2ZLaWRUb1B1YmxpY0tleSB8IHVuZGVmaW5lZDtcblxuY29uc3QgZ2V0UHVibGljS2V5cyA9IGFzeW5jIChqd2tzVXJsOiBzdHJpbmcpOiBQcm9taXNlPE1hcE9mS2lkVG9QdWJsaWNLZXk+ID0+IHtcbiAgaWYgKCFjYWNoZUtleXMpIHtcbiAgICBjb25zdCBwdWJsaWNLZXlzOiBQdWJsaWNLZXlzID0gKGF3YWl0IEF4aW9zLmdldDxQdWJsaWNLZXlzPihqd2tzVXJsKSkuZGF0YTtcbiAgICBjYWNoZUtleXMgPSBwdWJsaWNLZXlzLmtleXMucmVkdWNlKChhZ2csIGN1cnJlbnQpID0+IHtcbiAgICAgIGNvbnN0IHBlbSA9IGp3a1RvUGVtKGN1cnJlbnQgYXMgandrVG9QZW0uSldLKTtcbiAgICAgIGFnZ1tjdXJyZW50LmtpZF0gPSB7IGluc3RhbmNlOiBjdXJyZW50LCBwZW0gfTtcbiAgICAgIHJldHVybiBhZ2c7XG4gICAgfSwge30gYXMgTWFwT2ZLaWRUb1B1YmxpY0tleSk7XG4gICAgcmV0dXJuIGNhY2hlS2V5cztcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY2FjaGVLZXlzO1xuICB9XG59O1xuXG4vLyBHcmFiIHRoZSBKV0tTIFVSSSBmcm9tIHRoZSBKV1QgaXNzdWVyJ3MgbWV0YWRhdGFcbmNvbnN0IGdldEp3a3NVcmkgPSBhc3luYyAoZGlzY292ZXJ5VXJpOiBzdHJpbmcsIGp3a3NVcmk/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICBpZiAoandrc1VyaSkge1xuICAgIHJldHVybiBqd2tzVXJpO1xuICB9XG4gIGNvbnN0IHdlbGxLbm93blVyaSA9IGAke2Rpc2NvdmVyeVVyaX0vLndlbGwta25vd25gO1xuICBjb25zdCBpc3N1ZXJNZXRhZGF0YSA9IChhd2FpdCBBeGlvcy5nZXQ8SXNzdWVyTWV0YWRhdGE+KHdlbGxLbm93blVyaSkpLmRhdGE7XG4gIGlmICghaXNzdWVyTWV0YWRhdGEuandrc191cmkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0lzc3VlciBkb2VzIG5vdCBvZmZlciBKV0tTIGVuZHBvaW50Jyk7XG4gIH1cbiAgcmV0dXJuIGlzc3Vlck1ldGFkYXRhLmp3a3NfdXJpO1xufTtcblxuY29uc3QgcHJvbWlzZWRWZXJpZnkgPSAodG9rZW46IHN0cmluZywgaXNzdWVyVXJpOiBzdHJpbmcsIGp3a3NVcmk/OiBzdHJpbmcpOiBQcm9taXNlPHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9PiA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdmVyaWZ5KHRva2VuLCAoaGVhZGVyOiBKd3RIZWFkZXIsIGNiOiBTaWduaW5nS2V5Q2FsbGJhY2spID0+IHtcbiAgICAgIGlmICghaGVhZGVyLmtpZCkge1xuICAgICAgICBjYihuZXcgRXJyb3IoJ25vIGtleSBpZCBmb3VuZCcpKTtcbiAgICAgIH1cbiAgICAgIGdldEp3a3NVcmkoaXNzdWVyVXJpLCBqd2tzVXJpKS50aGVuKGdldFB1YmxpY0tleXMpLnRoZW4oKGtleXMpID0+IHtcbiAgICAgICAgY2IobnVsbCwga2V5c1toZWFkZXIua2lkIV0ucGVtKTtcbiAgICAgIH0sIGNiKTtcbiAgICB9LCB7IGlzc3VlcjogaXNzdWVyVXJpLCBhdWRpZW5jZTogand0QXVkaWVuY2UgYXMgW3N0cmluZywgLi4uc3RyaW5nW11dIH0sIChlcnI6IGFueSwgZGVjb2RlZDogYW55KSA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZShkZWNvZGVkIGFzIHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIEEgZ2VuZXJpYyBKV1QgYXV0aG9yaXplciBiYXNlIGNsYXNzLCBwcmVzdXBwb3NpbmcgdGhlIHByZXNlbmNlIG9mIGFuIGlzc3VlciwgYSBudW1iZXIgb2YgYXV0aG9yaXphdGlvbiBjbGFpbXMsIGFuXG4gKiBhZG1pbiBwZXJtaXNzaW9uIGNsYWltIGFuZCBvcHRpb25hbGx5IGEgc2VwYXJhdGUgVVJMIHRvIGEgSldLUyB0byB1c2UgaWYgdGhlIGlzc3VlcnMgd2VsbC1rbm93biBVUkwgZG9lcyBub3RcbiAqIHBvaW50IHRvIGl0IGluIGl0cyBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEp3dEF1dGhvcml6ZXIge1xuXG4gIC8qKlxuICAgKiBUaGUgY2xhaW1zIG9mIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgY2xhaW1zPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHN0cmluZ1tdIH07XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpc3N1ZXJVcmw6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgZ3JvdXBDbGFpbTogc3RyaW5nLFxuICAgIHByb3RlY3RlZCBhZG1pbkNsYWltOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIGp3a3NVcmw/OiBzdHJpbmcsXG4gICkge1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgZ3JvdXBzIHRoZSB1c2VyIGJlbG9uZ3MgdG8sIG9yIGFuIGVtcHR5IGFycmF5IGlmIHRoZSB1c2VyXG4gICAqIGlzIG5vdCBhdXRoZW50aWNhdGVkIG9yIGhhcyBubyBncm91cHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0R3JvdXBzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXRoaXMuaXNBdXRoZW50aWNhdGVkKCkgfHwgIXRoaXMuY2xhaW1zIS5oYXNPd25Qcm9wZXJ0eSh0aGlzLmdyb3VwQ2xhaW0pKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNsYWltcyFbdGhpcy5ncm91cENsYWltXSBhcyB1bmtub3duIGFzIHN0cmluZ1tdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgdXNlciBiZWxvbmdzIHRvIHRoZSBzcGVjaWZpZWQgZ3JvdXAsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogQHBhcmFtIGdyb3VwIFRoZSBuYW1lIG9mIHRoZSBncm91cCB0byBjaGVjay5cbiAgICovXG4gIHB1YmxpYyBoYXNHcm91cChncm91cDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgLy8gJ2NvZ25pdG86Z3JvdXBzJzogWyAnYWRtaW4nIF0sXG4gICAgcmV0dXJuIHRoaXMuZ2V0R3JvdXBzKCkuaW5jbHVkZXMoZ3JvdXApO1xuICB9XG5cbiAgLyoqXG4gICAqIEF1dGhlbnRpY2F0ZXMgdGhlIHVzZXIgYW5kIHNldHMgdGhlIGNsYWltcy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhdXRoZW50aWNhdGUoKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSB1c2VyIGlzIGF1dGhlbnRpY2F0ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2xhaW1zICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhyb3dzIGFuIFVuYXV0aGVudGljYXRlZEVycm9yIGlmIHRoZSB1c2VyIGlzIG5vdCBhdXRoZW50aWNhdGVkLlxuICAgKi9cbiAgcHVibGljIGFzc2VydEF1dGhlbnRpY2F0ZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzQXV0aGVudGljYXRlZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgVW5hdXRoZW50aWNhdGVkRXJyb3IoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhyb3dzIGEgRm9yYmlkZGVuRXJyb3IgaWYgdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWQgb3IgZG9lcyBub3QgYmVsb25nXG4gICAqIHRvIHRoZSBzcGVjaWZpZWQgZ3JvdXAuXG4gICAqIEBwYXJhbSBncm91cCBUaGUgbmFtZSBvZiB0aGUgZ3JvdXAgdG8gY2hlY2suXG4gICAqL1xuICBwdWJsaWMgYXNzZXJ0R3JvdXAoZ3JvdXA6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuYXNzZXJ0QXV0aGVudGljYXRlZCgpO1xuICAgIGlmICghdGhpcy5oYXNHcm91cChncm91cCkpIHtcbiAgICAgIHRocm93IG5ldyBGb3JiaWRkZW5FcnJvcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHVzZXIgYmVsb25ncyB0byB0aGUgJ2FkbWluJyBncm91cCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGlzQWRtaW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzR3JvdXAodGhpcy5hZG1pbkNsYWltKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYSBGb3JiaWRkZW5FcnJvciBpZiB0aGUgdXNlciBpcyBub3QgYXV0aGVudGljYXRlZCBvciBpcyBub3QgYW4gYWRtaW4uXG4gICAqL1xuICBwdWJsaWMgYXNzZXJ0QWRtaW4oKTogdm9pZCB7XG4gICAgdGhpcy5hc3NlcnRHcm91cCh0aGlzLmFkbWluQ2xhaW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVtYWlsIG9mIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0RU1haWwoKTogc3RyaW5nIHtcbiAgICB0aGlzLmFzc2VydEF1dGhlbnRpY2F0ZWQoKTtcbiAgICByZXR1cm4gdGhpcy5jbGFpbXMhLmVtYWlsIGFzIHN0cmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzdWJqZWN0IG9mIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0U3ViamVjdCgpOiBzdHJpbmcge1xuICAgIHRoaXMuYXNzZXJ0QXV0aGVudGljYXRlZCgpO1xuICAgIHJldHVybiB0aGlzLmNsYWltcyEuc3ViIGFzIHN0cmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgY2xhaW0gd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUsIG9yIHVuZGVmaW5lZCBpZiB0aGVcbiAgICogY2xhaW0gZG9lcyBub3QgZXhpc3QuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBjbGFpbSB0byByZXRyaWV2ZS5cbiAgICovXG4gIHB1YmxpYyBnZXRDbGFpbShuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIHRoaXMuYXNzZXJ0QXV0aGVudGljYXRlZCgpO1xuICAgIHJldHVybiB0aGlzLmNsYWltcyFbbmFtZV07XG4gIH1cbn1cblxuLyoqXG4gKiBDb2duaXRvQXV0aG9yaXplciBpcyBhbiBhYnN0cmFjdCBjbGFzcyByZXByZXNlbnRpbmcgYW4gYXV0aG9yaXplclxuICogdGhhdCBjYW4gYmUgdXNlZCB0byBhdXRoZW50aWNhdGUgYW5kIGF1dGhvcml6ZSBhIHVzZXIgdGhyb3VnaCBDb2duaXRvLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29nbml0b0F1dGhvcml6ZXIgZXh0ZW5kcyBKd3RBdXRob3JpemVyIHtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoand0SXNzdWVyVXJsLCBqd3RHcm91cENsYWltLCAnYWRtaW4nKTtcbiAgfVxufVxuXG4vKipcbiAqIEltcGxlbWVudHMgYXV0aG9yaXphdGlvbiBvbiBBUEkgR2F0ZXdheSB2MSAoUmVzdCBBUEkpIHVzaW5nIEpXVC5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwaUdhdGV3YXl2MUp3dEF1dGhvcml6ZXIgZXh0ZW5kcyBKd3RBdXRob3JpemVyIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZXZlbnQ6IEFXU0xhbWJkYS5BUElHYXRld2F5UHJveHlXaXRoQ29nbml0b0F1dGhvcml6ZXJFdmVudCwgLy9GSVhNRTogTGVhcm4gYWJvdXQgcG9zc2libGUgcmVxdWVzdENvbnRleHQuYXV0aG9yaXplciBzb3VyY2VzIGluIEFQSSBnYXRld2F5XG4gICAgYWRtaW5DbGFpbTogc3RyaW5nLFxuICAgIHByb3RlY3RlZCBfbG9nZ2VyOiBsb2dnZXIuTGFtYmRhTG9nLFxuICApIHtcbiAgICBzdXBlcihqd3RJc3N1ZXJVcmwsIGp3dEdyb3VwQ2xhaW0sIGFkbWluQ2xhaW0sIGp3dEp3a3NVcmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF1dGhlbnRpY2F0ZXMgdGhlIHVzZXIgdXNpbmcgdGhlIGNsYWltcyBwcm92aWRlZCBieSB0aGUgQVBJIEdhdGV3YXkgZXZlbnQgb3JcbiAgICogYnkgZGVjb2RpbmcgYSBKV1QgdG9rZW4gZnJvbSB0aGUgJ0F1dGhvcml6YXRpb24nIGhlYWRlci5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBhdXRoZW50aWNhdGUoKTogUHJvbWlzZTx2b2lkPiB7XG5cbiAgICAvLyBDb3VsZCBiZSBhbG1vc3QgdGhlIGV4YWN0IHNhbWUgY29kZSBhcyBDb2duaXRvIGlmIHdlIGNhbiBzcGVjaWZ5IG91ciBvd24gQXV0aG9yaXplciBpbiB0aGUgZXZlbnQncyByZXF1ZXN0IGNvbnRleHRcbiAgICBpZiAodGhpcy5ldmVudC5yZXF1ZXN0Q29udGV4dC5hdXRob3JpemVyICYmIHRoaXMuZXZlbnQucmVxdWVzdENvbnRleHQuYXV0aG9yaXplci5jbGFpbXMpIHtcbiAgICAgIHRoaXMuY2xhaW1zID0gdGhpcy5ldmVudC5yZXF1ZXN0Q29udGV4dC5hdXRob3JpemVyLmNsYWltcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jbGFpbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhdXRoSGVhZGVyID0gdGhpcy5ldmVudC5oZWFkZXJzLmF1dGhvcml6YXRpb247XG4gICAgaWYgKCFhdXRoSGVhZGVyIHx8ICFhdXRoSGVhZGVyLnN0YXJ0c1dpdGgoJ0JlYXJlciAnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0b2tlbiA9IGF1dGhIZWFkZXIuc3Vic3RyaW5nKCdCZWFyZXIgJy5sZW5ndGgpO1xuXG4gICAgLy8gVmVyaWZ5IHRoZSB0b2tlbiBhbmQgc2V0IHRoZSBjbGFpbXMgb24gdGhlIGV2ZW50IGFuZCB0aGlzIG9iamVjdFxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjbGFpbXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9ID0gYXdhaXQgcHJvbWlzZWRWZXJpZnkodG9rZW4sIHRoaXMuaXNzdWVyVXJsLCB0aGlzLmp3a3NVcmwpO1xuICAgICAgdGhpcy5fbG9nZ2VyLmRlYnVnKEpTT04uc3RyaW5naWZ5KGNsYWltcykpO1xuXG4gICAgICB0aGlzLmV2ZW50LnJlcXVlc3RDb250ZXh0LmF1dGhvcml6ZXIgPSB7IGNsYWltcyB9O1xuICAgICAgdGhpcy5jbGFpbXMgPSBjbGFpbXM7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIHRoaXMuX2xvZ2dlci5lcnJvcihlcnIpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEltcGxlbWVudHMgSldUIEF1dGhvcml6YXRpb24gb24gQVBJIEdhdGV3YXkgdjIgKEhUVFAgQVBJKS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwaUdhdGV3YXl2Mkp3dEF1dGhvcml6ZXIgZXh0ZW5kcyBKd3RBdXRob3JpemVyIHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGV2ZW50OiBBV1NMYW1iZGEuQVBJR2F0ZXdheVByb3h5RXZlbnRWMldpdGhKV1RBdXRob3JpemVyLCBwcm90ZWN0ZWQgX2xvZ2dlcjogbG9nZ2VyLkxhbWJkYUxvZykge1xuICAgIHN1cGVyKGp3dElzc3VlclVybCwgJ2NvZ25pdG86Z3JvdXBzJywgJ2FkbWluJywgand0Sndrc1VybCk7XG4gIH1cblxuICAvKipcbiAgICogQXV0aGVudGljYXRlcyB0aGUgdXNlciB1c2luZyB0aGUgY2xhaW1zIHByb3ZpZGVkIGJ5IHRoZSBBUEkgR2F0ZXdheSBldmVudCBvclxuICAgKiBieSBkZWNvZGluZyBhIEpXVCB0b2tlbiBmcm9tIHRoZSAnQXV0aG9yaXphdGlvbicgaGVhZGVyLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGF1dGhlbnRpY2F0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBUcnkgdG8gZ2V0IHRoZSBjbGFpbXMgZnJvbSB0aGUgZXZlbnRcbiAgICB0aGlzLmNsYWltcyA9IHRoaXMuZXZlbnQucmVxdWVzdENvbnRleHQuYXV0aG9yaXplcj8uand0Py5jbGFpbXM7XG5cbiAgICAvLyBJZiBubyBwb29sIElEIGlzIGRlZmluZWQgb3IgY2xhaW1zIGV4aXN0LCByZXR1cm4gZWFybHlcbiAgICBpZiAoIWNvZ25pdG9Qb29sSWQgfHwgdGhpcy5jbGFpbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFeHRyYWN0IHRoZSB0b2tlbiBmcm9tIHRoZSBBdXRob3JpemF0aW9uIGhlYWRlclxuICAgIGNvbnN0IGF1dGhIZWFkZXIgPSB0aGlzLmV2ZW50LmhlYWRlcnMuYXV0aG9yaXphdGlvbjtcbiAgICBpZiAoIWF1dGhIZWFkZXIgfHwgIWF1dGhIZWFkZXIuc3RhcnRzV2l0aCgnQmVhcmVyICcpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gYXV0aEhlYWRlci5zdWJzdHJpbmcoJ0JlYXJlciAnLmxlbmd0aCk7XG5cbiAgICAvLyBWZXJpZnkgdGhlIHRva2VuIGFuZCBzZXQgdGhlIGNsYWltcyBvbiB0aGUgZXZlbnQgYW5kIHRoaXMgb2JqZWN0XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNsYWltczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0gPSBhd2FpdCBwcm9taXNlZFZlcmlmeSh0b2tlbiwgdGhpcy5pc3N1ZXJVcmwsIHRoaXMuandrc1VybCk7XG4gICAgICB0aGlzLl9sb2dnZXIuZGVidWcoSlNPTi5zdHJpbmdpZnkoY2xhaW1zKSk7XG5cbiAgICAgIHRoaXMuZXZlbnQucmVxdWVzdENvbnRleHQuYXV0aG9yaXplciA9IHtcbiAgICAgICAgand0OiB7XG4gICAgICAgICAgY2xhaW1zLFxuICAgICAgICAgIHNjb3BlczogWydvcGVuaWQnLCAnZW1haWwnXSxcbiAgICAgICAgfSxcbiAgICAgICAgaW50ZWdyYXRpb25MYXRlbmN5OiAwLFxuICAgICAgICBwcmluY2lwYWxJZDogJ3Rvb2xib3gnLFxuICAgICAgfTtcbiAgICAgIHRoaXMuY2xhaW1zID0gY2xhaW1zO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICB0aGlzLl9sb2dnZXIuZXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBcGlHYXRld2F5djFDb2duaXRvQXV0aG9yaXplciBpcyBhIHNwZWNpYWxpemF0aW9uIG9mIGFuIEFwaUdhdGV3YXl2MUp3dEF1dGhvcml6ZXJcbiAqIGFuZCBpbXBsZW1lbnRzIGF1dGhlbnRpY2F0aW9uIGxvZ2ljIGZvciBBUEkgR2F0ZXdheSB2MSByZXF1ZXN0cyB3aGVuIHVzaW5nIENvZ25pdG8uLlxuICovXG5leHBvcnQgY2xhc3MgQXBpR2F0ZXdheXYxQ29nbml0b0F1dGhvcml6ZXIgZXh0ZW5kcyBBcGlHYXRld2F5djFKd3RBdXRob3JpemVyIHtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBhdXRob3JpemF0aW9uIGNoZWNrLlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGV2ZW50OiBBV1NMYW1iZGEuQVBJR2F0ZXdheVByb3h5V2l0aENvZ25pdG9BdXRob3JpemVyRXZlbnQsIHByb3RlY3RlZCBfbG9nZ2VyOiBsb2dnZXIuTGFtYmRhTG9nKSB7XG4gICAgc3VwZXIoZXZlbnQsICdhZG1pbicsIF9sb2dnZXIpO1xuICB9XG59XG5cbi8qKlxuICogQXBpR2F0ZXdheXYyQ29nbml0b0F1dGhvcml6ZXIgaXMgYSBjbGFzcyB0aGF0IGV4dGVuZHMgQ29nbml0b0F1dGhvcml6ZXJcbiAqIGFuZCBpbXBsZW1lbnRzIGF1dGhlbnRpY2F0aW9uIGxvZ2ljIGZvciBBUEkgR2F0ZXdheSB2MiByZXF1ZXN0cyB3aXRoIGFcbiAqIEpXVCBhdXRob3JpemVyLlxuICovXG5leHBvcnQgY2xhc3MgQXBpR2F0ZXdheXYyQ29nbml0b0F1dGhvcml6ZXIgZXh0ZW5kcyBBcGlHYXRld2F5djJKd3RBdXRob3JpemVyIHtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBhdXRob3JpemF0aW9uIGNoZWNrLlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGV2ZW50OiBBV1NMYW1iZGEuQVBJR2F0ZXdheVByb3h5RXZlbnRWMldpdGhKV1RBdXRob3JpemVyLCBwcm90ZWN0ZWQgX2xvZ2dlcjogbG9nZ2VyLkxhbWJkYUxvZykge1xuICAgIHN1cGVyKGV2ZW50LCBfbG9nZ2VyKTtcbiAgfVxufVxuXG4vKipcbiAqIEFwcFN5bmNDb2duaXRvQXV0aG9yaXplciBpcyBhIGNsYXNzIHRoYXQgZXh0ZW5kcyBDb2duaXRvQXV0aG9yaXplclxuICogYW5kIGltcGxlbWVudHMgYXV0aGVudGljYXRpb24gbG9naWMgZm9yIEFwcFN5bmMgcmVzb2x2ZXIgZXZlbnRzIHdpdGggYVxuICogQ29nbml0byBhdXRob3JpemVyLlxuICovXG5leHBvcnQgY2xhc3MgQXBwU3luY0NvZ25pdG9BdXRob3JpemVyIGV4dGVuZHMgQ29nbml0b0F1dGhvcml6ZXIge1xuXG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGF1dGhvcml6YXRpb24gY2hlY2suXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZXZlbnQ6IEFXU0xhbWJkYS5BcHBTeW5jUmVzb2x2ZXJFdmVudDxhbnk+KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdXRoZW50aWNhdGVzIHRoZSB1c2VyIHVzaW5nIHRoZSBjbGFpbXMgcHJvdmlkZWQgYnkgdGhlIEFwcFN5bmMgZXZlbnQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYXV0aGVudGljYXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFRyeSB0byBnZXQgdGhlIGNsYWltcyBmcm9tIHRoZSBldmVudFxuICAgIGlmICh0aGlzLmV2ZW50LmlkZW50aXR5KSB7XG4gICAgICB0aGlzLmNsYWltcyA9ICh0aGlzLmV2ZW50LmlkZW50aXR5IGFzIEFXU0xhbWJkYS5BcHBTeW5jSWRlbnRpdHlDb2duaXRvKS5jbGFpbXM7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYW1iZGEvYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxQ0FBOEI7QUFDOUIsK0NBQXFFO0FBQ3JFLDREQUFrQztBQUVsQyxxQ0FBZ0U7QUFFaEUsTUFBTSxhQUFhLEdBQUcsYUFBRyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7QUFDN0MsTUFBTSxpQkFBaUIsR0FBRyxhQUFHLENBQUMsZ0JBQWdCLElBQUksYUFBRyxDQUFDLFVBQVUsSUFBSSxjQUFjLENBQUM7QUFFbkYsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsaUJBQWlCLGtCQUFrQixhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFHLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzVJLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxhQUFHLENBQUMsWUFBWSxDQUFDO0FBQzlGLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBRyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNyRixNQUFNLFdBQVcsR0FBRyxDQUFDLGFBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxhQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFHLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUE2QjdILElBQUksU0FBMEMsQ0FBQztBQUUvQyxNQUFNLFNBQVMsR0FBRyxLQUFLLEVBQUssR0FBVyxFQUFjLEVBQUU7SUFDckQsTUFBTSxHQUFHLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxFQUFF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QUVHO0lBQ0ksS0FBSyxDQUFDLFlBQVk7UUFDdkIsdUNBQXVDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsTUFBTSxHQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBNkMsQ0FBQyxNQUFNLENBQUM7UUFDakYsQ0FBQztJQUNILENBQUM7Q0FFRjtBQW5CRCw0REFtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnYgfSBmcm9tICdwcm9jZXNzJztcbmltcG9ydCB7IHZlcmlmeSwgSnd0SGVhZGVyLCBTaWduaW5nS2V5Q2FsbGJhY2sgfSBmcm9tICdqc29ud2VidG9rZW4nO1xuaW1wb3J0IGp3a1RvUGVtIGZyb20gJ2p3ay10by1wZW0nO1xuaW1wb3J0IGxvZ2dlciBmcm9tICdsYW1iZGEtbG9nJztcbmltcG9ydCB7IEZvcmJpZGRlbkVycm9yLCBVbmF1dGhlbnRpY2F0ZWRFcnJvciB9IGZyb20gJy4vZXJyb3JzJztcblxuY29uc3QgY29nbml0b1Bvb2xJZCA9IGVudi5VU0VSX1BPT0xfSUQgPz8gJyc7XG5jb25zdCBjb2duaXRvUG9vbFJlZ2lvbiA9IGVudi5VU0VSX1BPT0xfUkVHSU9OID8/IGVudi5BV1NfUkVHSU9OID8/ICdldS1jZW50cmFsLTEnO1xuXG5jb25zdCBqd3RJc3N1ZXJVcmwgPSBjb2duaXRvUG9vbElkID8gYGh0dHBzOi8vY29nbml0by1pZHAuJHtjb2duaXRvUG9vbFJlZ2lvbn0uYW1hem9uYXdzLmNvbS8ke2NvZ25pdG9Qb29sSWR9YCA6IChlbnYuSldUX0lTU1VFUl9VUkwgPz8gJycpO1xuY29uc3Qgand0Sndrc1VybCA9IGNvZ25pdG9Qb29sSWQgPyBgJHtqd3RJc3N1ZXJVcmx9Ly53ZWxsLWtub3duL2p3a3MuanNvbmAgOiBlbnYuSldUX0pXS1NfVVJMO1xuY29uc3Qgand0R3JvdXBDbGFpbSA9IGNvZ25pdG9Qb29sSWQgPyAnY29nbml0bzpncm91cHMnIDogKGVudi5KV1RfR1JPVVBfQ0xBSU0gPz8gJycpO1xuY29uc3Qgand0QXVkaWVuY2UgPSAoZW52LkpXVF9BVURJRU5DRV9VUkwgJiYgZW52LkpXVF9BVURJRU5DRV9VUkwubGVuZ3RoID4gMCkgPyBlbnYuSldUX0FVRElFTkNFX1VSTC5zcGxpdCgnfHwnKSA6IHVuZGVmaW5lZDtcblxuaW50ZXJmYWNlIFB1YmxpY0tleSB7XG4gIGFsZzogc3RyaW5nO1xuICBlOiBzdHJpbmc7XG4gIGtpZDogc3RyaW5nO1xuICBrdHk6IHN0cmluZztcbiAgbjogc3RyaW5nO1xuICB1c2U6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFB1YmxpY0tleU1ldGEge1xuICBpbnN0YW5jZTogUHVibGljS2V5O1xuICBwZW06IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFB1YmxpY0tleXMge1xuICBrZXlzOiBQdWJsaWNLZXlbXTtcbn1cblxuaW50ZXJmYWNlIElzc3Vlck1ldGFkYXRhIHtcbiAgandrc191cmk/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbmludGVyZmFjZSBNYXBPZktpZFRvUHVibGljS2V5IHtcbiAgW2tleTogc3RyaW5nXTogUHVibGljS2V5TWV0YTtcbn1cblxubGV0IGNhY2hlS2V5czogTWFwT2ZLaWRUb1B1YmxpY0tleSB8IHVuZGVmaW5lZDtcblxuY29uc3QgZmV0Y2hKc29uID0gYXN5bmMgPFQ+KHVybDogc3RyaW5nKTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHVybCwgeyBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoNTAwMCkgfSk7XG4gIGlmICghcmVzLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZXF1ZXN0IHRvICR7dXJsfSBmYWlsZWQ6ICR7cmVzLnN0YXR1c30gJHtyZXMuc3RhdHVzVGV4dH1gKTtcbiAgfVxuICByZXR1cm4gKGF3YWl0IHJlcy5qc29uKCkpIGFzIFQ7XG59O1xuXG5jb25zdCBnZXRQdWJsaWNLZXlzID0gYXN5bmMgKGp3a3NVcmw6IHN0cmluZyk6IFByb21pc2U8TWFwT2ZLaWRUb1B1YmxpY0tleT4gPT4ge1xuICBpZiAoIWNhY2hlS2V5cykge1xuICAgIGNvbnN0IHB1YmxpY0tleXMgPSBhd2FpdCBmZXRjaEpzb248UHVibGljS2V5cz4oandrc1VybCk7XG4gICAgY2FjaGVLZXlzID0gcHVibGljS2V5cy5rZXlzLnJlZHVjZSgoYWdnLCBjdXJyZW50KSA9PiB7XG4gICAgICBjb25zdCBwZW0gPSBqd2tUb1BlbShjdXJyZW50IGFzIGp3a1RvUGVtLkpXSyk7XG4gICAgICBhZ2dbY3VycmVudC5raWRdID0geyBpbnN0YW5jZTogY3VycmVudCwgcGVtIH07XG4gICAgICByZXR1cm4gYWdnO1xuICAgIH0sIHt9IGFzIE1hcE9mS2lkVG9QdWJsaWNLZXkpO1xuICAgIHJldHVybiBjYWNoZUtleXM7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNhY2hlS2V5cztcbiAgfVxufTtcblxuLy8gR3JhYiB0aGUgSldLUyBVUkkgZnJvbSB0aGUgSldUIGlzc3VlcidzIG1ldGFkYXRhXG5jb25zdCBnZXRKd2tzVXJpID0gYXN5bmMgKGRpc2NvdmVyeVVyaTogc3RyaW5nLCBqd2tzVXJpPzogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgaWYgKGp3a3NVcmkpIHtcbiAgICByZXR1cm4gandrc1VyaTtcbiAgfVxuICBjb25zdCB3ZWxsS25vd25VcmkgPSBgJHtkaXNjb3ZlcnlVcml9Ly53ZWxsLWtub3duYDtcbiAgY29uc3QgaXNzdWVyTWV0YWRhdGEgPSBhd2FpdCBmZXRjaEpzb248SXNzdWVyTWV0YWRhdGE+KHdlbGxLbm93blVyaSk7XG4gIGlmICghaXNzdWVyTWV0YWRhdGEuandrc191cmkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0lzc3VlciBkb2VzIG5vdCBvZmZlciBKV0tTIGVuZHBvaW50Jyk7XG4gIH1cbiAgcmV0dXJuIGlzc3Vlck1ldGFkYXRhLmp3a3NfdXJpO1xufTtcblxuY29uc3QgcHJvbWlzZWRWZXJpZnkgPSAodG9rZW46IHN0cmluZywgaXNzdWVyVXJpOiBzdHJpbmcsIGp3a3NVcmk/OiBzdHJpbmcpOiBQcm9taXNlPHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9PiA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdmVyaWZ5KHRva2VuLCAoaGVhZGVyOiBKd3RIZWFkZXIsIGNiOiBTaWduaW5nS2V5Q2FsbGJhY2spID0+IHtcbiAgICAgIGlmICghaGVhZGVyLmtpZCkge1xuICAgICAgICBjYihuZXcgRXJyb3IoJ25vIGtleSBpZCBmb3VuZCcpKTtcbiAgICAgIH1cbiAgICAgIGdldEp3a3NVcmkoaXNzdWVyVXJpLCBqd2tzVXJpKS50aGVuKGdldFB1YmxpY0tleXMpLnRoZW4oKGtleXMpID0+IHtcbiAgICAgICAgY2IobnVsbCwga2V5c1toZWFkZXIua2lkIV0ucGVtKTtcbiAgICAgIH0sIGNiKTtcbiAgICB9LCB7IGlzc3VlcjogaXNzdWVyVXJpLCBhdWRpZW5jZTogand0QXVkaWVuY2UgYXMgW3N0cmluZywgLi4uc3RyaW5nW11dIH0sIChlcnI6IGFueSwgZGVjb2RlZDogYW55KSA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZShkZWNvZGVkIGFzIHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIEEgZ2VuZXJpYyBKV1QgYXV0aG9yaXplciBiYXNlIGNsYXNzLCBwcmVzdXBwb3NpbmcgdGhlIHByZXNlbmNlIG9mIGFuIGlzc3VlciwgYSBudW1iZXIgb2YgYXV0aG9yaXphdGlvbiBjbGFpbXMsIGFuXG4gKiBhZG1pbiBwZXJtaXNzaW9uIGNsYWltIGFuZCBvcHRpb25hbGx5IGEgc2VwYXJhdGUgVVJMIHRvIGEgSldLUyB0byB1c2UgaWYgdGhlIGlzc3VlcnMgd2VsbC1rbm93biBVUkwgZG9lcyBub3RcbiAqIHBvaW50IHRvIGl0IGluIGl0cyBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEp3dEF1dGhvcml6ZXIge1xuXG4gIC8qKlxuICAgKiBUaGUgY2xhaW1zIG9mIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgY2xhaW1zPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHN0cmluZ1tdIH07XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpc3N1ZXJVcmw6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgZ3JvdXBDbGFpbTogc3RyaW5nLFxuICAgIHByb3RlY3RlZCBhZG1pbkNsYWltOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIGp3a3NVcmw/OiBzdHJpbmcsXG4gICkge1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgZ3JvdXBzIHRoZSB1c2VyIGJlbG9uZ3MgdG8sIG9yIGFuIGVtcHR5IGFycmF5IGlmIHRoZSB1c2VyXG4gICAqIGlzIG5vdCBhdXRoZW50aWNhdGVkIG9yIGhhcyBubyBncm91cHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0R3JvdXBzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXRoaXMuaXNBdXRoZW50aWNhdGVkKCkgfHwgIXRoaXMuY2xhaW1zIS5oYXNPd25Qcm9wZXJ0eSh0aGlzLmdyb3VwQ2xhaW0pKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNsYWltcyFbdGhpcy5ncm91cENsYWltXSBhcyB1bmtub3duIGFzIHN0cmluZ1tdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgdXNlciBiZWxvbmdzIHRvIHRoZSBzcGVjaWZpZWQgZ3JvdXAsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogQHBhcmFtIGdyb3VwIFRoZSBuYW1lIG9mIHRoZSBncm91cCB0byBjaGVjay5cbiAgICovXG4gIHB1YmxpYyBoYXNHcm91cChncm91cDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgLy8gJ2NvZ25pdG86Z3JvdXBzJzogWyAnYWRtaW4nIF0sXG4gICAgcmV0dXJuIHRoaXMuZ2V0R3JvdXBzKCkuaW5jbHVkZXMoZ3JvdXApO1xuICB9XG5cbiAgLyoqXG4gICAqIEF1dGhlbnRpY2F0ZXMgdGhlIHVzZXIgYW5kIHNldHMgdGhlIGNsYWltcy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhdXRoZW50aWNhdGUoKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSB1c2VyIGlzIGF1dGhlbnRpY2F0ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2xhaW1zICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhyb3dzIGFuIFVuYXV0aGVudGljYXRlZEVycm9yIGlmIHRoZSB1c2VyIGlzIG5vdCBhdXRoZW50aWNhdGVkLlxuICAgKi9cbiAgcHVibGljIGFzc2VydEF1dGhlbnRpY2F0ZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzQXV0aGVudGljYXRlZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgVW5hdXRoZW50aWNhdGVkRXJyb3IoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhyb3dzIGEgRm9yYmlkZGVuRXJyb3IgaWYgdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWQgb3IgZG9lcyBub3QgYmVsb25nXG4gICAqIHRvIHRoZSBzcGVjaWZpZWQgZ3JvdXAuXG4gICAqIEBwYXJhbSBncm91cCBUaGUgbmFtZSBvZiB0aGUgZ3JvdXAgdG8gY2hlY2suXG4gICAqL1xuICBwdWJsaWMgYXNzZXJ0R3JvdXAoZ3JvdXA6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuYXNzZXJ0QXV0aGVudGljYXRlZCgpO1xuICAgIGlmICghdGhpcy5oYXNHcm91cChncm91cCkpIHtcbiAgICAgIHRocm93IG5ldyBGb3JiaWRkZW5FcnJvcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHVzZXIgYmVsb25ncyB0byB0aGUgJ2FkbWluJyBncm91cCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGlzQWRtaW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzR3JvdXAodGhpcy5hZG1pbkNsYWltKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYSBGb3JiaWRkZW5FcnJvciBpZiB0aGUgdXNlciBpcyBub3QgYXV0aGVudGljYXRlZCBvciBpcyBub3QgYW4gYWRtaW4uXG4gICAqL1xuICBwdWJsaWMgYXNzZXJ0QWRtaW4oKTogdm9pZCB7XG4gICAgdGhpcy5hc3NlcnRHcm91cCh0aGlzLmFkbWluQ2xhaW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVtYWlsIG9mIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0RU1haWwoKTogc3RyaW5nIHtcbiAgICB0aGlzLmFzc2VydEF1dGhlbnRpY2F0ZWQoKTtcbiAgICByZXR1cm4gdGhpcy5jbGFpbXMhLmVtYWlsIGFzIHN0cmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzdWJqZWN0IG9mIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0U3ViamVjdCgpOiBzdHJpbmcge1xuICAgIHRoaXMuYXNzZXJ0QXV0aGVudGljYXRlZCgpO1xuICAgIHJldHVybiB0aGlzLmNsYWltcyEuc3ViIGFzIHN0cmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgY2xhaW0gd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUsIG9yIHVuZGVmaW5lZCBpZiB0aGVcbiAgICogY2xhaW0gZG9lcyBub3QgZXhpc3QuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBjbGFpbSB0byByZXRyaWV2ZS5cbiAgICovXG4gIHB1YmxpYyBnZXRDbGFpbShuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIHRoaXMuYXNzZXJ0QXV0aGVudGljYXRlZCgpO1xuICAgIHJldHVybiB0aGlzLmNsYWltcyFbbmFtZV07XG4gIH1cbn1cblxuLyoqXG4gKiBDb2duaXRvQXV0aG9yaXplciBpcyBhbiBhYnN0cmFjdCBjbGFzcyByZXByZXNlbnRpbmcgYW4gYXV0aG9yaXplclxuICogdGhhdCBjYW4gYmUgdXNlZCB0byBhdXRoZW50aWNhdGUgYW5kIGF1dGhvcml6ZSBhIHVzZXIgdGhyb3VnaCBDb2duaXRvLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29nbml0b0F1dGhvcml6ZXIgZXh0ZW5kcyBKd3RBdXRob3JpemVyIHtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoand0SXNzdWVyVXJsLCBqd3RHcm91cENsYWltLCAnYWRtaW4nKTtcbiAgfVxufVxuXG4vKipcbiAqIEltcGxlbWVudHMgYXV0aG9yaXphdGlvbiBvbiBBUEkgR2F0ZXdheSB2MSAoUmVzdCBBUEkpIHVzaW5nIEpXVC5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwaUdhdGV3YXl2MUp3dEF1dGhvcml6ZXIgZXh0ZW5kcyBKd3RBdXRob3JpemVyIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZXZlbnQ6IEFXU0xhbWJkYS5BUElHYXRld2F5UHJveHlXaXRoQ29nbml0b0F1dGhvcml6ZXJFdmVudCwgLy9GSVhNRTogTGVhcm4gYWJvdXQgcG9zc2libGUgcmVxdWVzdENvbnRleHQuYXV0aG9yaXplciBzb3VyY2VzIGluIEFQSSBnYXRld2F5XG4gICAgYWRtaW5DbGFpbTogc3RyaW5nLFxuICAgIHByb3RlY3RlZCBfbG9nZ2VyOiBsb2dnZXIuTGFtYmRhTG9nLFxuICApIHtcbiAgICBzdXBlcihqd3RJc3N1ZXJVcmwsIGp3dEdyb3VwQ2xhaW0sIGFkbWluQ2xhaW0sIGp3dEp3a3NVcmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF1dGhlbnRpY2F0ZXMgdGhlIHVzZXIgdXNpbmcgdGhlIGNsYWltcyBwcm92aWRlZCBieSB0aGUgQVBJIEdhdGV3YXkgZXZlbnQgb3JcbiAgICogYnkgZGVjb2RpbmcgYSBKV1QgdG9rZW4gZnJvbSB0aGUgJ0F1dGhvcml6YXRpb24nIGhlYWRlci5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBhdXRoZW50aWNhdGUoKTogUHJvbWlzZTx2b2lkPiB7XG5cbiAgICAvLyBDb3VsZCBiZSBhbG1vc3QgdGhlIGV4YWN0IHNhbWUgY29kZSBhcyBDb2duaXRvIGlmIHdlIGNhbiBzcGVjaWZ5IG91ciBvd24gQXV0aG9yaXplciBpbiB0aGUgZXZlbnQncyByZXF1ZXN0IGNvbnRleHRcbiAgICBpZiAodGhpcy5ldmVudC5yZXF1ZXN0Q29udGV4dC5hdXRob3JpemVyICYmIHRoaXMuZXZlbnQucmVxdWVzdENvbnRleHQuYXV0aG9yaXplci5jbGFpbXMpIHtcbiAgICAgIHRoaXMuY2xhaW1zID0gdGhpcy5ldmVudC5yZXF1ZXN0Q29udGV4dC5hdXRob3JpemVyLmNsYWltcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jbGFpbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhdXRoSGVhZGVyID0gdGhpcy5ldmVudC5oZWFkZXJzLmF1dGhvcml6YXRpb247XG4gICAgaWYgKCFhdXRoSGVhZGVyIHx8ICFhdXRoSGVhZGVyLnN0YXJ0c1dpdGgoJ0JlYXJlciAnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0b2tlbiA9IGF1dGhIZWFkZXIuc3Vic3RyaW5nKCdCZWFyZXIgJy5sZW5ndGgpO1xuXG4gICAgLy8gVmVyaWZ5IHRoZSB0b2tlbiBhbmQgc2V0IHRoZSBjbGFpbXMgb24gdGhlIGV2ZW50IGFuZCB0aGlzIG9iamVjdFxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjbGFpbXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9ID0gYXdhaXQgcHJvbWlzZWRWZXJpZnkodG9rZW4sIHRoaXMuaXNzdWVyVXJsLCB0aGlzLmp3a3NVcmwpO1xuICAgICAgdGhpcy5fbG9nZ2VyLmRlYnVnKEpTT04uc3RyaW5naWZ5KGNsYWltcykpO1xuXG4gICAgICB0aGlzLmV2ZW50LnJlcXVlc3RDb250ZXh0LmF1dGhvcml6ZXIgPSB7IGNsYWltcyB9O1xuICAgICAgdGhpcy5jbGFpbXMgPSBjbGFpbXM7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIHRoaXMuX2xvZ2dlci5lcnJvcihlcnIpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEltcGxlbWVudHMgSldUIEF1dGhvcml6YXRpb24gb24gQVBJIEdhdGV3YXkgdjIgKEhUVFAgQVBJKS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwaUdhdGV3YXl2Mkp3dEF1dGhvcml6ZXIgZXh0ZW5kcyBKd3RBdXRob3JpemVyIHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGV2ZW50OiBBV1NMYW1iZGEuQVBJR2F0ZXdheVByb3h5RXZlbnRWMldpdGhKV1RBdXRob3JpemVyLCBwcm90ZWN0ZWQgX2xvZ2dlcjogbG9nZ2VyLkxhbWJkYUxvZykge1xuICAgIHN1cGVyKGp3dElzc3VlclVybCwgJ2NvZ25pdG86Z3JvdXBzJywgJ2FkbWluJywgand0Sndrc1VybCk7XG4gIH1cblxuICAvKipcbiAgICogQXV0aGVudGljYXRlcyB0aGUgdXNlciB1c2luZyB0aGUgY2xhaW1zIHByb3ZpZGVkIGJ5IHRoZSBBUEkgR2F0ZXdheSBldmVudCBvclxuICAgKiBieSBkZWNvZGluZyBhIEpXVCB0b2tlbiBmcm9tIHRoZSAnQXV0aG9yaXphdGlvbicgaGVhZGVyLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGF1dGhlbnRpY2F0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBUcnkgdG8gZ2V0IHRoZSBjbGFpbXMgZnJvbSB0aGUgZXZlbnRcbiAgICB0aGlzLmNsYWltcyA9IHRoaXMuZXZlbnQucmVxdWVzdENvbnRleHQuYXV0aG9yaXplcj8uand0Py5jbGFpbXM7XG5cbiAgICAvLyBJZiBubyBwb29sIElEIGlzIGRlZmluZWQgb3IgY2xhaW1zIGV4aXN0LCByZXR1cm4gZWFybHlcbiAgICBpZiAoIWNvZ25pdG9Qb29sSWQgfHwgdGhpcy5jbGFpbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFeHRyYWN0IHRoZSB0b2tlbiBmcm9tIHRoZSBBdXRob3JpemF0aW9uIGhlYWRlclxuICAgIGNvbnN0IGF1dGhIZWFkZXIgPSB0aGlzLmV2ZW50LmhlYWRlcnMuYXV0aG9yaXphdGlvbjtcbiAgICBpZiAoIWF1dGhIZWFkZXIgfHwgIWF1dGhIZWFkZXIuc3RhcnRzV2l0aCgnQmVhcmVyICcpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gYXV0aEhlYWRlci5zdWJzdHJpbmcoJ0JlYXJlciAnLmxlbmd0aCk7XG5cbiAgICAvLyBWZXJpZnkgdGhlIHRva2VuIGFuZCBzZXQgdGhlIGNsYWltcyBvbiB0aGUgZXZlbnQgYW5kIHRoaXMgb2JqZWN0XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNsYWltczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0gPSBhd2FpdCBwcm9taXNlZFZlcmlmeSh0b2tlbiwgdGhpcy5pc3N1ZXJVcmwsIHRoaXMuandrc1VybCk7XG4gICAgICB0aGlzLl9sb2dnZXIuZGVidWcoSlNPTi5zdHJpbmdpZnkoY2xhaW1zKSk7XG5cbiAgICAgIHRoaXMuZXZlbnQucmVxdWVzdENvbnRleHQuYXV0aG9yaXplciA9IHtcbiAgICAgICAgand0OiB7XG4gICAgICAgICAgY2xhaW1zLFxuICAgICAgICAgIHNjb3BlczogWydvcGVuaWQnLCAnZW1haWwnXSxcbiAgICAgICAgfSxcbiAgICAgICAgaW50ZWdyYXRpb25MYXRlbmN5OiAwLFxuICAgICAgICBwcmluY2lwYWxJZDogJ3Rvb2xib3gnLFxuICAgICAgfTtcbiAgICAgIHRoaXMuY2xhaW1zID0gY2xhaW1zO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICB0aGlzLl9sb2dnZXIuZXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBcGlHYXRld2F5djFDb2duaXRvQXV0aG9yaXplciBpcyBhIHNwZWNpYWxpemF0aW9uIG9mIGFuIEFwaUdhdGV3YXl2MUp3dEF1dGhvcml6ZXJcbiAqIGFuZCBpbXBsZW1lbnRzIGF1dGhlbnRpY2F0aW9uIGxvZ2ljIGZvciBBUEkgR2F0ZXdheSB2MSByZXF1ZXN0cyB3aGVuIHVzaW5nIENvZ25pdG8uLlxuICovXG5leHBvcnQgY2xhc3MgQXBpR2F0ZXdheXYxQ29nbml0b0F1dGhvcml6ZXIgZXh0ZW5kcyBBcGlHYXRld2F5djFKd3RBdXRob3JpemVyIHtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBhdXRob3JpemF0aW9uIGNoZWNrLlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGV2ZW50OiBBV1NMYW1iZGEuQVBJR2F0ZXdheVByb3h5V2l0aENvZ25pdG9BdXRob3JpemVyRXZlbnQsIHByb3RlY3RlZCBfbG9nZ2VyOiBsb2dnZXIuTGFtYmRhTG9nKSB7XG4gICAgc3VwZXIoZXZlbnQsICdhZG1pbicsIF9sb2dnZXIpO1xuICB9XG59XG5cbi8qKlxuICogQXBpR2F0ZXdheXYyQ29nbml0b0F1dGhvcml6ZXIgaXMgYSBjbGFzcyB0aGF0IGV4dGVuZHMgQ29nbml0b0F1dGhvcml6ZXJcbiAqIGFuZCBpbXBsZW1lbnRzIGF1dGhlbnRpY2F0aW9uIGxvZ2ljIGZvciBBUEkgR2F0ZXdheSB2MiByZXF1ZXN0cyB3aXRoIGFcbiAqIEpXVCBhdXRob3JpemVyLlxuICovXG5leHBvcnQgY2xhc3MgQXBpR2F0ZXdheXYyQ29nbml0b0F1dGhvcml6ZXIgZXh0ZW5kcyBBcGlHYXRld2F5djJKd3RBdXRob3JpemVyIHtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBhdXRob3JpemF0aW9uIGNoZWNrLlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGV2ZW50OiBBV1NMYW1iZGEuQVBJR2F0ZXdheVByb3h5RXZlbnRWMldpdGhKV1RBdXRob3JpemVyLCBwcm90ZWN0ZWQgX2xvZ2dlcjogbG9nZ2VyLkxhbWJkYUxvZykge1xuICAgIHN1cGVyKGV2ZW50LCBfbG9nZ2VyKTtcbiAgfVxufVxuXG4vKipcbiAqIEFwcFN5bmNDb2duaXRvQXV0aG9yaXplciBpcyBhIGNsYXNzIHRoYXQgZXh0ZW5kcyBDb2duaXRvQXV0aG9yaXplclxuICogYW5kIGltcGxlbWVudHMgYXV0aGVudGljYXRpb24gbG9naWMgZm9yIEFwcFN5bmMgcmVzb2x2ZXIgZXZlbnRzIHdpdGggYVxuICogQ29nbml0byBhdXRob3JpemVyLlxuICovXG5leHBvcnQgY2xhc3MgQXBwU3luY0NvZ25pdG9BdXRob3JpemVyIGV4dGVuZHMgQ29nbml0b0F1dGhvcml6ZXIge1xuXG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGF1dGhvcml6YXRpb24gY2hlY2suXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZXZlbnQ6IEFXU0xhbWJkYS5BcHBTeW5jUmVzb2x2ZXJFdmVudDxhbnk+KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdXRoZW50aWNhdGVzIHRoZSB1c2VyIHVzaW5nIHRoZSBjbGFpbXMgcHJvdmlkZWQgYnkgdGhlIEFwcFN5bmMgZXZlbnQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYXV0aGVudGljYXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFRyeSB0byBnZXQgdGhlIGNsYWltcyBmcm9tIHRoZSBldmVudFxuICAgIGlmICh0aGlzLmV2ZW50LmlkZW50aXR5KSB7XG4gICAgICB0aGlzLmNsYWltcyA9ICh0aGlzLmV2ZW50LmlkZW50aXR5IGFzIEFXU0xhbWJkYS5BcHBTeW5jSWRlbnRpdHlDb2duaXRvKS5jbGFpbXM7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,48 @@
1
+ /**
2
+ * A minimal HTTP client used by IntegTestUtil, backed by the native `fetch`
3
+ * API. It exists to keep the integration-test API stable while removing the
4
+ * `axios` runtime dependency.
5
+ */
6
+ export interface HttpClientConfig {
7
+ /**
8
+ * Base URL prepended to relative paths passed to client methods.
9
+ */
10
+ readonly baseURL?: string;
11
+ /**
12
+ * Default headers applied to every request issued by this client.
13
+ * Per-request headers override these on collision.
14
+ */
15
+ readonly headers?: Record<string, string>;
16
+ }
17
+ export interface HttpClientRequestOptions {
18
+ /**
19
+ * Per-request headers, merged on top of the client's default headers.
20
+ */
21
+ readonly headers?: Record<string, string>;
22
+ }
23
+ /**
24
+ * Response wrapper returned by every `HttpClient` request method.
25
+ */
26
+ export declare class HttpClientResponse {
27
+ readonly status: number;
28
+ readonly ok: boolean;
29
+ readonly headers: Headers;
30
+ readonly body: string;
31
+ constructor(status: number, ok: boolean, headers: Headers, body: string);
32
+ /**
33
+ * Parse the response body as JSON. Throws if the body is not valid JSON.
34
+ */
35
+ json<T = unknown>(): T;
36
+ }
37
+ export declare class HttpClient {
38
+ private readonly baseURL?;
39
+ private readonly defaultHeaders;
40
+ constructor(config?: HttpClientConfig);
41
+ get(path: string, options?: HttpClientRequestOptions): Promise<HttpClientResponse>;
42
+ delete(path: string, options?: HttpClientRequestOptions): Promise<HttpClientResponse>;
43
+ post(path: string, body?: unknown, options?: HttpClientRequestOptions): Promise<HttpClientResponse>;
44
+ put(path: string, body?: unknown, options?: HttpClientRequestOptions): Promise<HttpClientResponse>;
45
+ patch(path: string, body?: unknown, options?: HttpClientRequestOptions): Promise<HttpClientResponse>;
46
+ private request;
47
+ private resolveUrl;
48
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ /**
3
+ * A minimal HTTP client used by IntegTestUtil, backed by the native `fetch`
4
+ * API. It exists to keep the integration-test API stable while removing the
5
+ * `axios` runtime dependency.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.HttpClient = exports.HttpClientResponse = void 0;
9
+ /**
10
+ * Response wrapper returned by every `HttpClient` request method.
11
+ */
12
+ class HttpClientResponse {
13
+ constructor(status, ok, headers, body) {
14
+ this.status = status;
15
+ this.ok = ok;
16
+ this.headers = headers;
17
+ this.body = body;
18
+ }
19
+ /**
20
+ * Parse the response body as JSON. Throws if the body is not valid JSON.
21
+ */
22
+ json() {
23
+ return JSON.parse(this.body);
24
+ }
25
+ }
26
+ exports.HttpClientResponse = HttpClientResponse;
27
+ class HttpClient {
28
+ constructor(config = {}) {
29
+ this.baseURL = config.baseURL;
30
+ this.defaultHeaders = { ...(config.headers ?? {}) };
31
+ }
32
+ get(path, options) {
33
+ return this.request('GET', path, undefined, options);
34
+ }
35
+ delete(path, options) {
36
+ return this.request('DELETE', path, undefined, options);
37
+ }
38
+ post(path, body, options) {
39
+ return this.request('POST', path, body, options);
40
+ }
41
+ put(path, body, options) {
42
+ return this.request('PUT', path, body, options);
43
+ }
44
+ patch(path, body, options) {
45
+ return this.request('PATCH', path, body, options);
46
+ }
47
+ async request(method, path, body, options) {
48
+ const url = this.resolveUrl(path);
49
+ const headers = {
50
+ ...this.defaultHeaders,
51
+ ...(options?.headers ?? {}),
52
+ };
53
+ let requestBody;
54
+ if (body !== undefined && body !== null) {
55
+ if (typeof body === 'string') {
56
+ requestBody = body;
57
+ }
58
+ else {
59
+ requestBody = JSON.stringify(body);
60
+ if (!Object.keys(headers).some((h) => h.toLowerCase() === 'content-type')) {
61
+ headers['Content-Type'] = 'application/json';
62
+ }
63
+ }
64
+ }
65
+ const res = await fetch(url, { method, headers, body: requestBody });
66
+ const responseBody = await res.text();
67
+ return new HttpClientResponse(res.status, res.ok, res.headers, responseBody);
68
+ }
69
+ resolveUrl(path) {
70
+ if (!this.baseURL) {
71
+ return path;
72
+ }
73
+ if (/^https?:\/\//i.test(path)) {
74
+ return path;
75
+ }
76
+ const base = this.baseURL.endsWith('/') ? this.baseURL.slice(0, -1) : this.baseURL;
77
+ const suffix = path.startsWith('/') ? path : `/${path}`;
78
+ return `${base}${suffix}`;
79
+ }
80
+ }
81
+ exports.HttpClient = HttpClient;
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvaHR0cC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQXNCSDs7R0FFRztBQUNILE1BQWEsa0JBQWtCO0lBTTdCLFlBQVksTUFBYyxFQUFFLEVBQVcsRUFBRSxPQUFnQixFQUFFLElBQVk7UUFDckUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxJQUFJO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sQ0FBQztJQUNwQyxDQUFDO0NBQ0Y7QUFuQkQsZ0RBbUJDO0FBRUQsTUFBYSxVQUFVO0lBSXJCLFlBQVksU0FBMkIsRUFBRTtRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVNLEdBQUcsQ0FBQyxJQUFZLEVBQUUsT0FBa0M7UUFDekQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTSxNQUFNLENBQUMsSUFBWSxFQUFFLE9BQWtDO1FBQzVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sSUFBSSxDQUFDLElB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Y2VzQ29udGVudCI6WyIvKipcbiAqIEEgbWluaW1hbCBIVFRQIGNsaWVudCB1c2VkIGJ5IEludGVnVGVzdFV0aWwsIGJhY2tlZCBieSB0aGUgbmF0aXZlIGBmZXRjaGBcbiAqIEFQSS4gSXQgZXhpc3RzIHRvIGtlZXAgdGhlIGludGVncmF0aW9uLXRlc3QgQVBJIHN0YWJsZSB3aGlsZSByZW1vdmluZyB0aGVcbiAqIGBheGlvc2AgcnVudGltZSBkZXBlbmRlbmN5LlxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENsaWVudENvbmZpZyB7XG4gIC8qKlxuICAgKiBCYXNlIFVSTCBwcmVwZW5kZWQgdG8gcmVsYXRpdmUgcGF0aHMgcGFzc2VkIHRvIGNsaWVudCBtZXRob2RzLlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZVVSTD86IHN0cmluZztcblxuICAvKipcbiAgICogRGVmYXVsdCBoZWFkZXJzIGFwcGxpZWQgdG8gZXZlcnkgcmVxdWVzdCBpc3N1ZWQgYnkgdGhpcyBjbGllbnQuXG4gICAqIFBlci1yZXF1ZXN0IGhlYWRlcnMgb3ZlcnJpZGUgdGhlc2Ugb24gY29sbGlzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENsaWVudFJlcXVlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBlci1yZXF1ZXN0IGhlYWRlcnMsIG1lcmdlZCBvbiB0b3Agb2YgdGhlIGNsaWVudCdzIGRlZmF1bHQgaGVhZGVycy5cbiAgICovXG4gIHJlYWRvbmx5IGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIHdyYXBwZXIgcmV0dXJuZWQgYnkgZXZlcnkgYEh0dHBDbGllbnRgIHJlcXVlc3QgbWV0aG9kLlxuICovXG5leHBvcnQgY2xhc3MgSHR0cENsaWVudFJlc3BvbnNlIHtcbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1czogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgb2s6IGJvb2xlYW47XG4gIHB1YmxpYyByZWFkb25seSBoZWFkZXJzOiBIZWFkZXJzO1xuICBwdWJsaWMgcmVhZG9ubHkgYm9keTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHN0YXR1czogbnVtYmVyLCBvazogYm9vbGVhbiwgaGVhZGVyczogSGVhZGVycywgYm9keTogc3RyaW5nKSB7XG4gICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XG4gICAgdGhpcy5vayA9IG9rO1xuICAgIHRoaXMuaGVhZGVycyA9IGhlYWRlcnM7XG4gICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSB0aGUgcmVzcG9uc2UgYm9keSBhcyBKU09OLiBUaHJvd3MgaWYgdGhlIGJvZHkgaXMgbm90IHZhbGlkIEpTT04uXG4gICAqL1xuICBwdWJsaWMganNvbjxUID0gdW5rbm93bj4oKTogVCB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy5ib2R5KSBhcyBUO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBIdHRwQ2xpZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlVVJMPzogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRIZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogSHR0cENsaWVudENvbmZpZyA9IHt9KSB7XG4gICAgdGhpcy5iYXNlVVJMID0gY29uZmlnLmJhc2VVUkw7XG4gICAgdGhpcy5kZWZhdWx0SGVhZGVycyA9IHsgLi4uKGNvbmZpZy5oZWFkZXJzID8/IHt9KSB9O1xuICB9XG5cbiAgcHVibGljIGdldChwYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiBIdHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPEh0dHBDbGllbnRSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3QoJ0dFVCcsIHBhdGgsIHVuZGVmaW5lZCwgb3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKHBhdGg6IHN0cmluZywgb3B0aW9ucz86IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8SHR0cENsaWVudFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdCgnREVMRVRFJywgcGF0aCwgdW5kZWZpbmVkLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBwb3N0KHBhdGg6IHN0cmluZywgYm9keT86IHVua25vd24sIG9wdGlvbnM/OiBIdHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPEh0dHBDbGllbnRSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3QoJ1BPU1QnLCBwYXRoLCBib2R5LCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBwdXQocGF0aDogc3RyaW5nLCBib2R5PzogdW5rbm93biwgb3B0aW9ucz86IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8SHR0cENsaWVudFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdCgnUFVUJywgcGF0aCwgYm9keSwgb3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgcGF0Y2gocGF0aDogc3RyaW5nLCBib2R5PzogdW5rbm93biwgb3B0aW9ucz86IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8SHR0cENsaWVudFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdCgnUEFUQ0gnLCBwYXRoLCBib2R5LCBvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVxdWVzdChtZXRob2Q6IHN0cmluZywgcGF0aDogc3RyaW5nLCBib2R5OiB1bmtub3duLCBvcHRpb25zPzogSHR0cENsaWVudFJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxIdHRwQ2xpZW50UmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnJlc29sdmVVcmwocGF0aCk7XG4gICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIC4uLnRoaXMuZGVmYXVsdEhlYWRlcnMsXG4gICAgICAuLi4ob3B0aW9ucz8uaGVhZGVycyA/PyB7fSksXG4gICAgfTtcblxuICAgIGxldCByZXF1ZXN0Qm9keTogQm9keUluaXQgfCB1bmRlZmluZWQ7XG4gICAgaWYgKGJvZHkgIT09IHVuZGVmaW5lZCAmJiBib2R5ICE9PSBudWxsKSB7XG4gICAgICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJlcXVlc3RCb2R5ID0gYm9keTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcXVlc3RCb2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSk7XG4gICAgICAgIGlmICghT2JqZWN0LmtleXMoaGVhZGVycykuc29tZSgoaCkgPT4gaC50b0xvd2VyQ2FzZSgpID09PSAnY29udGVudC10eXBlJykpIHtcbiAgICAgICAgICBoZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHVybCwgeyBtZXRob2QsIGhlYWRlcnMsIGJvZHk6IHJlcXVlc3RCb2R5IH0pO1xuICAgIGNvbnN0IHJlc3BvbnNlQm9keSA9IGF3YWl0IHJlcy50ZXh0KCk7XG4gICAgcmV0dXJuIG5ldyBIdHRwQ2xpZW50UmVzcG9uc2UocmVzLnN0YXR1cywgcmVzLm9rLCByZXMuaGVhZGVycywgcmVzcG9uc2VCb2R5KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVVybChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5iYXNlVVJMKSB7XG4gICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG4gICAgaWYgKC9eaHR0cHM/OlxcL1xcLy9pLnRlc3QocGF0aCkpIHtcbiAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgICBjb25zdCBiYXNlID0gdGhpcy5iYXNlVVJMLmVuZHNXaXRoKCcvJykgPyB0aGlzLmJhc2VVUkwuc2xpY2UoMCwgLTEpIDogdGhpcy5iYXNlVVJMO1xuICAgIGNvbnN0IHN1ZmZpeCA9IHBhdGguc3RhcnRzV2l0aCgnLycpID8gcGF0aCA6IGAvJHtwYXRofWA7XG4gICAgcmV0dXJuIGAke2Jhc2V9JHtzdWZmaXh9YDtcbiAgfVxufVxuIl19
@@ -1,2 +1,3 @@
1
+ export * from './http-client';
1
2
  export * from './integ-test-util';
2
3
  export * from './lambda-test-utils';
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./http-client"), exports);
17
18
  __exportStar(require("./integ-test-util"), exports);
18
19
  __exportStar(require("./lambda-test-utils"), exports);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUFrQztBQUNsQyxzREFBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ludGVnLXRlc3QtdXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2xhbWJkYS10ZXN0LXV0aWxzJzsiXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUE4QjtBQUM5QixvREFBa0M7QUFDbEMsc0RBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9odHRwLWNsaWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVnLXRlc3QtdXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2xhbWJkYS10ZXN0LXV0aWxzJzsiXX0=
@@ -1,6 +1,7 @@
1
1
  import { NativeAttributeValue } from '@aws-sdk/lib-dynamodb';
2
- import { Axios, AxiosRequestConfig } from 'axios';
3
2
  import { JwtPayload } from 'jsonwebtoken';
3
+ import { HttpClient, HttpClientConfig } from './http-client';
4
+ export { HttpClient, HttpClientConfig, HttpClientResponse } from './http-client';
4
5
  export interface IntegTestUtilOptions {
5
6
  readonly region: string;
6
7
  readonly apiOptions?: {
@@ -28,8 +29,8 @@ export declare class IntegTestUtil {
28
29
  private apiTokens;
29
30
  private itemsToDelete;
30
31
  constructor(options: IntegTestUtilOptions);
31
- getClient(config?: AxiosRequestConfig): Axios;
32
- getAuthenticatedClient(email: string, password?: string, config?: AxiosRequestConfig): Promise<Axios>;
32
+ getClient(config?: HttpClientConfig): HttpClient;
33
+ getAuthenticatedClient(email: string, password?: string, config?: HttpClientConfig): Promise<HttpClient>;
33
34
  initializeItemsToCleanup(): void;
34
35
  addItemToDeleteAfterTest(key: Record<string, NativeAttributeValue>): void;
35
36
  cleanupItems(): Promise<void>;
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IntegTestUtil = void 0;
3
+ exports.IntegTestUtil = exports.HttpClientResponse = exports.HttpClient = void 0;
4
4
  exports.parseCfnOutputs = parseCfnOutputs;
5
5
  const client_cognito_identity_provider_1 = require("@aws-sdk/client-cognito-identity-provider");
6
6
  const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
7
7
  const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
8
- const axios_1 = require("axios");
9
8
  const jsonwebtoken_1 = require("jsonwebtoken");
9
+ const http_client_1 = require("./http-client");
10
10
  const outputs_1 = require("../shared/outputs");
11
+ var http_client_2 = require("./http-client");
12
+ Object.defineProperty(exports, "HttpClient", { enumerable: true, get: function () { return http_client_2.HttpClient; } });
13
+ Object.defineProperty(exports, "HttpClientResponse", { enumerable: true, get: function () { return http_client_2.HttpClientResponse; } });
11
14
  function parseCfnOutputs(output, stackName, config) {
12
15
  const outputs = output[stackName];
13
16
  return {
@@ -39,24 +42,8 @@ class IntegTestUtil {
39
42
  }
40
43
  // AUTH
41
44
  getClient(config) {
42
- return new axios_1.Axios({
45
+ return new http_client_1.HttpClient({
43
46
  baseURL: this.options.apiOptions?.baseURL,
44
- transformResponse: (data) => {
45
- try {
46
- return JSON.parse(data);
47
- }
48
- catch (error) {
49
- return data;
50
- }
51
- },
52
- transformRequest: (data) => {
53
- try {
54
- return JSON.stringify(data);
55
- }
56
- catch (error) {
57
- return data;
58
- }
59
- },
60
47
  ...config,
61
48
  });
62
49
  }
@@ -68,11 +55,11 @@ class IntegTestUtil {
68
55
  await this.loginUser(email, password);
69
56
  }
70
57
  return this.getClient({
58
+ ...config,
71
59
  headers: {
72
60
  Authorization: `Bearer ${this.apiTokens[email].token}`,
73
61
  ...(config?.headers ?? {}),
74
62
  },
75
- ...config,
76
63
  });
77
64
  }
78
65
  // DATASTORE
@@ -153,31 +140,31 @@ class IntegTestUtil {
153
140
  if (!this.options.authOptions?.userPoolClientId) {
154
141
  throw new Error('No userPoolClientId configured');
155
142
  }
156
- const cognitoClient = new axios_1.Axios({
143
+ const cognitoClient = new http_client_1.HttpClient({
157
144
  baseURL: `https://cognito-idp.${this.options.region}.amazonaws.com/`,
158
145
  });
159
- const auth = await cognitoClient.post('/', JSON.stringify({
146
+ const auth = await cognitoClient.post('/', {
160
147
  AuthParameters: {
161
148
  USERNAME: email,
162
149
  PASSWORD: password,
163
150
  },
164
151
  AuthFlow: 'USER_PASSWORD_AUTH',
165
152
  ClientId: this.options.authOptions.userPoolClientId,
166
- }), {
153
+ }, {
167
154
  headers: {
168
155
  'Content-Type': 'application/x-amz-json-1.1',
169
156
  'X-Amz-Target': 'AWSCognitoIdentityProviderService.InitiateAuth',
170
157
  },
171
158
  });
172
- if (auth.status !== axios_1.HttpStatusCode.Ok) {
159
+ if (!auth.ok) {
173
160
  throw new Error(`Failed to authenticate user ${email}`);
174
161
  }
175
- const token = JSON.parse(auth.data).AuthenticationResult.IdToken;
162
+ const token = (await auth.json()).AuthenticationResult.IdToken;
176
163
  this.apiTokens[email] = {
177
164
  token,
178
- payload: (0, jsonwebtoken_1.decode)(this.apiTokens[email].token),
165
+ payload: (0, jsonwebtoken_1.decode)(token),
179
166
  };
180
167
  }
181
168
  }
182
169
  exports.IntegTestUtil = IntegTestUtil;
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWctdGVzdC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL2ludGVnLXRlc3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQ0EsMENBZ0JDO0FBcERELGdHQUFzTjtBQUN0Tiw4REFBMEQ7QUFDMUQsd0RBQW9HO0FBQ3BHLGlDQUFrRTtBQUNsRSwrQ0FBa0Q7QUFDbEQsK0NBQThOO0FBK0I5TixTQUFnQixlQUFlLENBQUMsTUFBVyxFQUFFLFNBQWlCLEVBQUUsTUFBdUI7SUFDckYsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLE9BQU87UUFDTCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsVUFBVSxFQUFFO1lBQ1YsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsdUNBQTZCLEVBQUUsQ0FBQztTQUN0RTtRQUNELFdBQVcsRUFBRTtZQUNYLFVBQVUsRUFBRSxPQUFPLENBQUMsMkNBQWlDLENBQUM7WUFDdEQsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGtEQUF3QyxDQUFDO1lBQ25FLGNBQWMsRUFBRSxPQUFPLENBQUMsZ0RBQXNDLENBQUM7U0FDaEU7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQywrQ0FBcUMsQ0FBQyxFQUFFO1NBQ3RGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFPRCxNQUFhLGFBQWE7SUFPeEIsWUFBc0IsT0FBNkI7UUFBN0IsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFIM0MsY0FBUyxHQUFtQyxFQUFFLENBQUM7UUFDL0Msa0JBQWEsR0FBMkMsRUFBRSxDQUFDO1FBR2pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0Is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dEIsS0FBSztZQUNMLE9BQU8sRUFBRSxJQUFBLHFCQUFNLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQWU7U0FDM0QsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXpLRCxzQ0F5S0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZG1pbkFkZFVzZXJUb0dyb3VwQ29tbWFuZCwgQWRtaW5DcmVhdGVVc2VyQ29tbWFuZCwgQWRtaW5EZWxldGVVc2VyQ29tbWFuZCwgQWRtaW5TZXRVc2VyUGFzc3dvcmRDb21tYW5kLCBDb2duaXRvSWRlbnRpdHlQcm92aWRlckNsaWVudCwgTWVzc2FnZUFjdGlvblR5cGUgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY29nbml0by1pZGVudGl0eS1wcm92aWRlcic7XG5pbXBvcnQgeyBEeW5hbW9EQkNsaWVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYic7XG5pbXBvcnQgeyBEZWxldGVDb21tYW5kLCBEeW5hbW9EQkRvY3VtZW50Q2xpZW50LCBOYXRpdmVBdHRyaWJ1dGVWYWx1ZSB9IGZyb20gJ0Bhd3Mtc2RrL2xpYi1keW5hbW9kYic7XG5pbXBvcnQgeyBBeGlvcywgQXhpb3NSZXF1ZXN0Q29uZmlnLCBIdHRwU3RhdHVzQ29kZSB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGRlY29kZSwgSnd0UGF5bG9hZCB9IGZyb20gJ2pzb253ZWJ0b2tlbic7XG5pbXBvcnQgeyBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX0lERU5USVRZUE9PTF9JRCwgQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9VU0VSUE9PTElELCBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MX0NMSUVOVElELCBDRk5fT1VUUFVUX1NVRkZJWF9EQVRBU1RPUkVfVEFCTEVOQU1FLCBDRk5fT1VUUFVUX1NVRkZJWF9SRVNUQVBJX1VSTCB9IGZyb20gJy4uL3NoYXJlZC9vdXRwdXRzJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnRlZ1Rlc3RVdGlsT3B0aW9ucyB7XG5cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgYXBpT3B0aW9ucz86IHtcbiAgICByZWFkb25seSBiYXNlVVJMPzogc3RyaW5nO1xuICB9O1xuXG4gIHJlYWRvbmx5IGF1dGhPcHRpb25zPzoge1xuICAgIHJlYWRvbmx5IHVzZXJQb29sSWQ/OiBzdHJpbmc7XG5cbiAgICByZWFkb25seSB1c2VyUG9vbENsaWVudElkPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHVzZXJQb29sQ2xpZW50U2VjcmV0Pzogc3RyaW5nO1xuXG4gICAgcmVhZG9ubHkgaWRlbnRpdHlQb29sSWQ/OiBzdHJpbmc7XG4gIH07XG5cbiAgcmVhZG9ubHkgZGF0YXN0b3JlT3B0aW9ucz86IHtcbiAgICByZWFkb25seSB0YWJsZU5hbWU/OiBzdHJpbmc7XG4gIH07XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZm5PdXRwdXRDb25maWcge1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcbiAgcmVhZG9ubHkgYXBpTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBkYXRhc3RvcmVOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNmbk91dHB1dHMob3V0cHV0OiBhbnksIHN0YWNrTmFtZTogc3RyaW5nLCBjb25maWc6IENmbk91dHB1dENvbmZpZyk6IEludGVnVGVzdFV0aWxPcHRpb25zIHtcbiAgY29uc3Qgb3V0cHV0cyA9IG91dHB1dFtzdGFja05hbWVdO1xuICByZXR1cm4ge1xuICAgIHJlZ2lvbjogY29uZmlnLnJlZ2lvbixcbiAgICBhcGlPcHRpb25zOiB7XG4gICAgICBiYXNlVVJMOiBvdXRwdXRzW2Ake2NvbmZpZy5hcGlOYW1lfSR7Q0ZOX09VVFBVVF9TVUZGSVhfUkVTVEFQSV9VUkx9YF0sXG4gICAgfSxcbiAgICBhdXRoT3B0aW9uczoge1xuICAgICAgdXNlclBvb2xJZDogb3V0cHV0c1tDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MSURdLFxuICAgICAgdXNlclBvb2xDbGllbnRJZDogb3V0cHV0c1tDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MX0NMSUVOVElEXSxcbiAgICAgIGlkZW50aXR5UG9vbElkOiBvdXRwdXRzW0NGTl9PVVRQVVRfU1VGRklYX0FVVEhfSURFTlRJVFlQT09MX0lEXSxcbiAgICB9LFxuICAgIGRhdGFzdG9yZU9wdGlvbnM6IHtcbiAgICAgIHRhYmxlTmFtZTogYCR7Y29uZmlnLmRhdGFzdG9yZU5hbWV9JHtvdXRwdXRzW0NGTl9PVVRQVVRfU1VGRklYX0RBVEFTVE9SRV9UQUJMRU5BTUVdfWAsXG4gICAgfSxcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFRva2VuSW5mbyB7XG4gIHJlYWRvbmx5IHRva2VuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBheWxvYWQ6IEp3dFBheWxvYWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBJbnRlZ1Rlc3RVdGlsIHtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVOYW1lPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgYXBpVG9rZW5zOiB7IFtlbWFpbDogc3RyaW5nXTogVG9rZW5JbmZvIH0gPSB7fTtcbiAgcHJpdmF0ZSBpdGVtc1RvRGVsZXRlOiBSZWNvcmQ8c3RyaW5nLCBOYXRpdmVBdHRyaWJ1dGVWYWx1ZT5bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvcHRpb25zOiBJbnRlZ1Rlc3RVdGlsT3B0aW9ucykge1xuICAgIHByb2Nlc3MuZW52LkFXU19SRUdJT04gPSBvcHRpb25zLnJlZ2lvbjtcbiAgICBwcm9jZXNzLmVudi5BV1NfREVGQVVMVF9SRUdJT04gPSBvcHRpb25zLnJlZ2lvbjtcbiAgICBpZiAob3B0aW9ucy5kYXRhc3RvcmVPcHRpb25zPy50YWJsZU5hbWUpIHtcbiAgICAgIHByb2Nlc3MuZW52LlRBQkxFID0gb3B0aW9ucy5kYXRhc3RvcmVPcHRpb25zLnRhYmxlTmFtZTtcbiAgICAgIHRoaXMudGFibGVOYW1lID0gb3B0aW9ucy5kYXRhc3RvcmVPcHRpb25zLnRhYmxlTmFtZTtcbiAgICB9XG4gIH1cblxuICAvLyBBVVRIXG5cbiAgcHVibGljIGdldENsaWVudChjb25maWc/OiBBeGlvc1JlcXVlc3RDb25maWcpIHtcbiAgICByZXR1cm4gbmV3IEF4aW9zKHtcbiAgICAgIGJhc2VVUkw6IHRoaXMub3B0aW9ucy5hcGlPcHRpb25zPy5iYXNlVVJMLFxuICAgICAgdHJhbnNmb3JtUmVzcG9uc2U6IChkYXRhKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB0cmFuc2Zvcm1SZXF1ZXN0OiAoZGF0YSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRBdXRoZW50aWNhdGVkQ2xpZW50KGVtYWlsOiBzdHJpbmcsIHBhc3N3b3JkPzogc3RyaW5nLCBjb25maWc/OiBBeGlvc1JlcXVlc3RDb25maWcpIHtcbiAgICBpZiAoIXRoaXMuYXBpVG9rZW5zW2VtYWlsXSkge1xuICAgICAgaWYgKCFwYXNzd29yZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHBhc3N3b3JkIHByb3ZpZGVkOyBZb3UgY2FuIG9ubHkgbGVhdmUgcGFzc3dvcmQgYmxhbmsgZm9yIHVzZXJzIGNyZWF0ZWQgYnkgdGhpcyB1dGlsaXR5Jyk7XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLmxvZ2luVXNlcihlbWFpbCwgcGFzc3dvcmQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRDbGllbnQoe1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5hcGlUb2tlbnNbZW1haWxdLnRva2VufWAsXG4gICAgICAgIC4uLihjb25maWc/LmhlYWRlcnMgPz8ge30pLFxuICAgICAgfSxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIERBVEFTVE9SRVxuXG4gIHB1YmxpYyBpbml0aWFsaXplSXRlbXNUb0NsZWFudXAoKSB7XG4gICAgdGhpcy5pdGVtc1RvRGVsZXRlID0gW107XG4gIH1cblxuICBwdWJsaWMgYWRkSXRlbVRvRGVsZXRlQWZ0ZXJUZXN0KGtleTogUmVjb3JkPHN0cmluZywgTmF0aXZlQXR0cmlidXRlVmFsdWU+KSB7XG4gICAgdGhpcy5pdGVtc1RvRGVsZXRlLnB1c2goa2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjbGVhbnVwSXRlbXMoKSB7XG4gICAgY29uc3QgZGRiID0gRHluYW1vREJEb2N1bWVudENsaWVudC5mcm9tKG5ldyBEeW5hbW9EQkNsaWVudCh7IHJlZ2lvbjogdGhpcy5vcHRpb25zLnJlZ2lvbiB9KSk7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXNUb0RlbGV0ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZGRiLnNlbmQobmV3IERlbGV0ZUNvbW1hbmQoeyBUYWJsZU5hbWU6IHRoaXMudGFibGVOYW1lLCBLZXk6IGl0ZW0gfSkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEFVVEhcblxuICBwdWJsaWMgZ2V0VG9rZW5QYXlsb2FkKGVtYWlsOiBzdHJpbmcpOiBKd3RQYXlsb2FkIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hcGlUb2tlbnNbZW1haWxdPy5wYXlsb2FkO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZVVzZXIoZW1haWw6IHN0cmluZywgYXR0cmlidXRlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgZ3JvdXBzOiBzdHJpbmdbXSkge1xuICAgIGlmICghdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHVzZXJQb29sSWQgY29uZmlndXJlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkOiBzdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgtMTYpO1xuXG4gICAgY29uc3QgY29nbml0b0NsaWVudDogQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQgPSBuZXcgQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQoeyByZWdpb246IHRoaXMub3B0aW9ucy5yZWdpb24gfSk7XG4gICAgLy8gQ3JlYXRlIGEgbmV3IHVzZXIgaW4gQ29nbml0b1xuICAgIGF3YWl0IGNvZ25pdG9DbGllbnQuc2VuZChuZXcgQWRtaW5DcmVhdGVVc2VyQ29tbWFuZCh7XG4gICAgICBVc2VyUG9vbElkOiB0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sSWQsXG4gICAgICBVc2VybmFtZTogZW1haWwsXG4gICAgICBNZXNzYWdlQWN0aW9uOiBNZXNzYWdlQWN0aW9uVHlwZS5TVVBQUkVTUyxcbiAgICAgIFRlbXBvcmFyeVBhc3N3b3JkOiByYW5kb21QYXNzd29yZCxcbiAgICAgIFVzZXJBdHRyaWJ1dGVzOiBbe1xuICAgICAgICBOYW1lOiAnZW1haWwnLFxuICAgICAgICBWYWx1ZTogZW1haWwsXG4gICAgICB9LCB7XG4gICAgICAgIE5hbWU6ICdlbWFpbF92ZXJpZmllZCcsXG4gICAgICAgIFZhbHVlOiAndHJ1ZScsXG4gICAgICB9LFxuICAgICAgLi4uT2JqZWN0LmVudHJpZXMoYXR0cmlidXRlcykubWFwKChhdHRyKSA9PiAoe1xuICAgICAgICBOYW1lOiBhdHRyWzBdLFxuICAgICAgICBWYWx1ZTogYXR0clsxXSxcbiAgICAgIH0pKV0sXG4gICAgfSkpO1xuICAgIC8vIE1ha2UgcGFzc3dvcmQgcGVybWFuZW50IHRvIGdldCB1c2VyIG91dCBvZiBGT1JDRV9DSEFOR0VfUEFTU1dPUkRcbiAgICBhd2FpdCBjb2duaXRvQ2xpZW50LnNlbmQobmV3IEFkbWluU2V0VXNlclBhc3N3b3JkQ29tbWFuZCh7XG4gICAgICBVc2VyUG9vbElkOiB0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sSWQsXG4gICAgICBVc2VybmFtZTogZW1haWwsXG4gICAgICBQYXNzd29yZDogcmFuZG9tUGFzc3dvcmQsXG4gICAgICBQZXJtYW5lbnQ6IHRydWUsXG4gICAgfSkpO1xuICAgIC8vIEFkZCB1c2VyIHRvIGdyb3Vwc1xuICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgZ3JvdXBzKSB7XG4gICAgICBhd2FpdCBjb2duaXRvQ2xpZW50LnNlbmQobmV3IEFkbWluQWRkVXNlclRvR3JvdXBDb21tYW5kKHtcbiAgICAgICAgVXNlclBvb2xJZDogdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbElkLFxuICAgICAgICBVc2VybmFtZTogZW1haWwsXG4gICAgICAgIEdyb3VwTmFtZTogZ3JvdXAsXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5sb2dpblVzZXIoZW1haWwsIHJhbmRvbVBhc3N3b3JkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZW1vdmVVc2VyKGVtYWlsOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5hdXRoT3B0aW9ucz8udXNlclBvb2xJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB1c2VyUG9vbElkIGNvbmZpZ3VyZWQnKTtcbiAgICB9XG4gICAgY29uc3QgY29nbml0b0NsaWVudDogQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQgPSBuZXcgQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQoeyByZWdpb246IHRoaXMub3B0aW9ucy5yZWdpb24gfSk7XG4gICAgYXdhaXQgY29nbml0b0NsaWVudC5zZW5kKG5ldyBBZG1pbkRlbGV0ZVVzZXJDb21tYW5kKHtcbiAgICAgIFVzZXJQb29sSWQ6IHRoaXMub3B0aW9ucy5hdXRoT3B0aW9ucz8udXNlclBvb2xJZCxcbiAgICAgIFVzZXJuYW1lOiBlbWFpbCxcbiAgICB9KSk7XG4gICAgZGVsZXRlIHRoaXMuYXBpVG9rZW5zW2VtYWlsXTtcbiAgfVxuXG5cbiAgcHJvdGVjdGVkIGFzeW5jIGxvZ2luVXNlcihlbWFpbDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sQ2xpZW50SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdXNlclBvb2xDbGllbnRJZCBjb25maWd1cmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGNvZ25pdG9DbGllbnQgPSBuZXcgQXhpb3Moe1xuICAgICAgYmFzZVVSTDogYGh0dHBzOi8vY29nbml0by1pZHAuJHt0aGlzLm9wdGlvbnMucmVnaW9ufS5hbWF6b25hd3MuY29tL2AsXG4gICAgfSk7XG4gICAgY29uc3QgYXV0aCA9IGF3YWl0IGNvZ25pdG9DbGllbnQucG9zdCgnLycsIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIEF1dGhQYXJhbWV0ZXJzOiB7XG4gICAgICAgIFVTRVJOQU1FOiBlbWFpbCxcbiAgICAgICAgUEFTU1dPUkQ6IHBhc3N3b3JkLFxuICAgICAgfSxcbiAgICAgIEF1dGhGbG93OiAnVVNFUl9QQVNTV09SRF9BVVRIJyxcbiAgICAgIENsaWVudElkOiB0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnMudXNlclBvb2xDbGllbnRJZCxcbiAgICB9KSwge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtYW16LWpzb24tMS4xJyxcbiAgICAgICAgJ1gtQW16LVRhcmdldCc6ICdBV1NDb2duaXRvSWRlbnRpdHlQcm92aWRlclNlcnZpY2UuSW5pdGlhdGVBdXRoJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgaWYgKGF1dGguc3RhdHVzICE9PSBIdHRwU3RhdHVzQ29kZS5Paykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gYXV0aGVudGljYXRlIHVzZXIgJHtlbWFpbH1gKTtcbiAgICB9XG4gICAgY29uc3QgdG9rZW4gPSBKU09OLnBhcnNlKGF1dGguZGF0YSkuQXV0aGVudGljYXRpb25SZXN1bHQuSWRUb2tlbjtcbiAgICB0aGlzLmFwaVRva2Vuc1tlbWFpbF0gPSB7XG4gICAgICB0b2tlbixcbiAgICAgIHBheWxvYWQ6IGRlY29kZSh0aGlzLmFwaVRva2Vuc1tlbWFpbF0udG9rZW4pIGFzIEp3dFBheWxvYWQsXG4gICAgfTtcbiAgfVxufSJdfQ==
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWctdGVzdC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL2ludGVnLXRlc3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFzQ0EsMENBZ0JDO0FBdERELGdHQUFzTjtBQUN0Tiw4REFBMEQ7QUFDMUQsd0RBQW9HO0FBQ3BHLCtDQUFrRDtBQUNsRCwrQ0FBNkQ7QUFDN0QsK0NBQThOO0FBRTlOLDZDQUFpRjtBQUF4RSx5R0FBQSxVQUFVLE9BQUE7QUFBb0IsaUhBQUEsa0JBQWtCLE9BQUE7QUErQnpELFNBQWdCLGVBQWUsQ0FBQyxNQUFXLEVBQUUsU0FBaUIsRUFBRSxNQUF1QjtJQUNyRixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsT0FBTztRQUNMLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtRQUNyQixVQUFVLEVBQUU7WUFDVixPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyx1Q0FBNkIsRUFBRSxDQUFDO1NBQ3RFO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsVUFBVSxFQUFFLE9BQU8sQ0FBQywyQ0FBaUMsQ0FBQztZQUN0RCxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsa0RBQXdDLENBQUM7WUFDbkUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxnREFBc0MsQ0FBQztTQUNoRTtRQUNELGdCQUFnQixFQUFFO1lBQ2hCLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLCtDQUFxQyxDQUFDLEVBQUU7U0FDdEY7S0FDRixDQUFDO0FBQ0osQ0FBQztBQU9ELE1BQWEsYUFBYTtJQU94QixZQUFzQixPQUE2QjtRQUE3QixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUgzQyxjQUFTLEdBQW1DLEVBQUUsQ0FBQztRQUMvQyxrQkFBYSxHQUEyQyxFQUFFLENBQUM7UUFHakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDaEQsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztZQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO0lBRUEsU0FBUyxDQUFDLE1BQXlCO1FBQ3hDLE9BQU8sSUFBSSx3QkFBVSxDQUFDO1lBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxPQUFPO1lBQ3pDLEdBQUcsTUFBTTtTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsc0JBQXNCLENBQUMsS0FBYSxFQUFFLFFBQWlCLEVBQUUsTUFBeUI7UUFDN0YsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQywyRkFBMkYsQ0FBQyxDQUFDO1lBQy9HLENBQUM7WUFDRCxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEIsR0FBRyxNQUFNO1lBQ1QsT0FBTyxFQUFFO2dCQUNQLGFBQWEsRUFBRSxVQUFVLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUN0RCxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUM7YUFDM0I7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWTtJQUVMLHdCQUF3QjtRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sd0JBQXdCLENBQUMsR0FBeUM7UUFDdkUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxZQUFZO1FBQ3ZCLE1BQU0sR0FBRyxHQUFHLHFDQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLGdDQUFjLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0YsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDO2dCQUNILE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLDRCQUFhLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzlFLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztJQUVBLGVBQWUsQ0FBQyxLQUFhO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDeEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBYSxFQUFFLFVBQXFDLEVBQUUsTUFBZ0I7UUFDNUYsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsTUFBTSxjQUFjLEdBQVcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVyRSxNQUFNLGFBQWEsR0FBa0MsSUFBSSxnRUFBNkIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDeEgsK0JBQStCO1FBQy9CLE1BQU0sYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLHlEQUFzQixDQUFDO1lBQ2xELFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxVQUFVO1lBQ2hELFFBQVEsRUFBRSxLQUFLO1lBQ2YsYUFBYSxFQUFFLG9EQUFpQixDQUFDLFFBQVE7WUFDekMsaUJBQWlCLEVBQUUsY0FBYztZQUNqQyxjQUFjLEVBQUUsQ0FBQztvQkFDZixJQUFJLEVBQUUsT0FBTztvQkFDYixLQUFLLEVBQUUsS0FBSztpQkFDYixFQUFFO29CQUNELElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLEtBQUssRUFBRSxNQUFNO2lCQUNkO2dCQUNELEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzNDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUNmLENBQUMsQ0FBQyxDQUFDO1NBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSixtRUFBbUU7UUFDbkUsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksOERBQTJCLENBQUM7WUFDdkQsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFVBQVU7WUFDaEQsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDLENBQUMsQ0FBQztRQUNKLHFCQUFxQjtRQUNyQixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzNCLE1BQU0sYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLDZEQUEwQixDQUFDO2dCQUN0RCxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsVUFBVTtnQkFDaEQsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsU0FBUyxFQUFFLEtBQUs7YUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDO1FBRUQsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFhO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELE1BQU0sYUFBYSxHQUFrQyxJQUFJLGdFQUE2QixDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN4SCxNQUFNLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSx5REFBc0IsQ0FBQztZQUNsRCxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsVUFBVTtZQUNoRCxRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBR1MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFhLEVBQUUsUUFBZ0I7UUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFJLHdCQUFVLENBQUM7WUFDbkMsT0FBTyxFQUFFLHVCQUF1QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0saUJBQWlCO1NBQ3JFLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFHLE1BQU0sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDekMsY0FBYyxFQUFFO2dCQUNkLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFFBQVEsRUFBRSxRQUFRO2FBQ25CO1lBQ0QsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCO1NBQ3BELEVBQUU7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLDRCQUE0QjtnQkFDNUMsY0FBYyxFQUFFLGdEQUFnRDthQUNqRTtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBaUQsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQztRQUM5RyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHO1lBQ3RCLEtBQUs7WUFDTCxPQUFPLEVBQUUsSUFBQSxxQkFBTSxFQUFDLEtBQUssQ0FBZTtTQUNyQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBM0pELHNDQTJKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkbWluQWRkVXNlclRvR3JvdXBDb21tYW5kLCBBZG1pbkNyZWF0ZVVzZXJDb21tYW5kLCBBZG1pbkRlbGV0ZVVzZXJDb21tYW5kLCBBZG1pblNldFVzZXJQYXNzd29yZENvbW1hbmQsIENvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50LCBNZXNzYWdlQWN0aW9uVHlwZSB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jb2duaXRvLWlkZW50aXR5LXByb3ZpZGVyJztcbmltcG9ydCB7IER5bmFtb0RCQ2xpZW50IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiJztcbmltcG9ydCB7IERlbGV0ZUNvbW1hbmQsIER5bmFtb0RCRG9jdW1lbnRDbGllbnQsIE5hdGl2ZUF0dHJpYnV0ZVZhbHVlIH0gZnJvbSAnQGF3cy1zZGsvbGliLWR5bmFtb2RiJztcbmltcG9ydCB7IGRlY29kZSwgSnd0UGF5bG9hZCB9IGZyb20gJ2pzb253ZWJ0b2tlbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwQ2xpZW50Q29uZmlnIH0gZnJvbSAnLi9odHRwLWNsaWVudCc7XG5pbXBvcnQgeyBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX0lERU5USVRZUE9PTF9JRCwgQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9VU0VSUE9PTElELCBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MX0NMSUVOVElELCBDRk5fT1VUUFVUX1NVRkZJWF9EQVRBU1RPUkVfVEFCTEVOQU1FLCBDRk5fT1VUUFVUX1NVRkZJWF9SRVNUQVBJX1VSTCB9IGZyb20gJy4uL3NoYXJlZC9vdXRwdXRzJztcblxuZXhwb3J0IHsgSHR0cENsaWVudCwgSHR0cENsaWVudENvbmZpZywgSHR0cENsaWVudFJlc3BvbnNlIH0gZnJvbSAnLi9odHRwLWNsaWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZWdUZXN0VXRpbE9wdGlvbnMge1xuXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IGFwaU9wdGlvbnM/OiB7XG4gICAgcmVhZG9ubHkgYmFzZVVSTD86IHN0cmluZztcbiAgfTtcblxuICByZWFkb25seSBhdXRoT3B0aW9ucz86IHtcbiAgICByZWFkb25seSB1c2VyUG9vbElkPzogc3RyaW5nO1xuXG4gICAgcmVhZG9ubHkgdXNlclBvb2xDbGllbnRJZD86IHN0cmluZztcbiAgICByZWFkb25seSB1c2VyUG9vbENsaWVudFNlY3JldD86IHN0cmluZztcblxuICAgIHJlYWRvbmx5IGlkZW50aXR5UG9vbElkPzogc3RyaW5nO1xuICB9O1xuXG4gIHJlYWRvbmx5IGRhdGFzdG9yZU9wdGlvbnM/OiB7XG4gICAgcmVhZG9ubHkgdGFibGVOYW1lPzogc3RyaW5nO1xuICB9O1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuT3V0cHV0Q29uZmlnIHtcbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFwaU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZGF0YXN0b3JlTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDZm5PdXRwdXRzKG91dHB1dDogYW55LCBzdGFja05hbWU6IHN0cmluZywgY29uZmlnOiBDZm5PdXRwdXRDb25maWcpOiBJbnRlZ1Rlc3RVdGlsT3B0aW9ucyB7XG4gIGNvbnN0IG91dHB1dHMgPSBvdXRwdXRbc3RhY2tOYW1lXTtcbiAgcmV0dXJuIHtcbiAgICByZWdpb246IGNvbmZpZy5yZWdpb24sXG4gICAgYXBpT3B0aW9uczoge1xuICAgICAgYmFzZVVSTDogb3V0cHV0c1tgJHtjb25maWcuYXBpTmFtZX0ke0NGTl9PVVRQVVRfU1VGRklYX1JFU1RBUElfVVJMfWBdLFxuICAgIH0sXG4gICAgYXV0aE9wdGlvbnM6IHtcbiAgICAgIHVzZXJQb29sSWQ6IG91dHB1dHNbQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9VU0VSUE9PTElEXSxcbiAgICAgIHVzZXJQb29sQ2xpZW50SWQ6IG91dHB1dHNbQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9VU0VSUE9PTF9DTElFTlRJRF0sXG4gICAgICBpZGVudGl0eVBvb2xJZDogb3V0cHV0c1tDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX0lERU5USVRZUE9PTF9JRF0sXG4gICAgfSxcbiAgICBkYXRhc3RvcmVPcHRpb25zOiB7XG4gICAgICB0YWJsZU5hbWU6IGAke2NvbmZpZy5kYXRhc3RvcmVOYW1lfSR7b3V0cHV0c1tDRk5fT1VUUFVUX1NVRkZJWF9EQVRBU1RPUkVfVEFCTEVOQU1FXX1gLFxuICAgIH0sXG4gIH07XG59XG5cbmludGVyZmFjZSBUb2tlbkluZm8ge1xuICByZWFkb25seSB0b2tlbjogc3RyaW5nO1xuICByZWFkb25seSBwYXlsb2FkOiBKd3RQYXlsb2FkO1xufVxuXG5leHBvcnQgY2xhc3MgSW50ZWdUZXN0VXRpbCB7XG5cbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlTmFtZT86IHN0cmluZztcblxuICBwcml2YXRlIGFwaVRva2VuczogeyBbZW1haWw6IHN0cmluZ106IFRva2VuSW5mbyB9ID0ge307XG4gIHByaXZhdGUgaXRlbXNUb0RlbGV0ZTogUmVjb3JkPHN0cmluZywgTmF0aXZlQXR0cmlidXRlVmFsdWU+W10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3B0aW9uczogSW50ZWdUZXN0VXRpbE9wdGlvbnMpIHtcbiAgICBwcm9jZXNzLmVudi5BV1NfUkVHSU9OID0gb3B0aW9ucy5yZWdpb247XG4gICAgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUkVHSU9OID0gb3B0aW9ucy5yZWdpb247XG4gICAgaWYgKG9wdGlvbnMuZGF0YXN0b3JlT3B0aW9ucz8udGFibGVOYW1lKSB7XG4gICAgICBwcm9jZXNzLmVudi5UQUJMRSA9IG9wdGlvbnMuZGF0YXN0b3JlT3B0aW9ucy50YWJsZU5hbWU7XG4gICAgICB0aGlzLnRhYmxlTmFtZSA9IG9wdGlvbnMuZGF0YXN0b3JlT3B0aW9ucy50YWJsZU5hbWU7XG4gICAgfVxuICB9XG5cbiAgLy8gQVVUSFxuXG4gIHB1YmxpYyBnZXRDbGllbnQoY29uZmlnPzogSHR0cENsaWVudENvbmZpZyk6IEh0dHBDbGllbnQge1xuICAgIHJldHVybiBuZXcgSHR0cENsaWVudCh7XG4gICAgICBiYXNlVVJMOiB0aGlzLm9wdGlvbnMuYXBpT3B0aW9ucz8uYmFzZVVSTCxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRBdXRoZW50aWNhdGVkQ2xpZW50KGVtYWlsOiBzdHJpbmcsIHBhc3N3b3JkPzogc3RyaW5nLCBjb25maWc/OiBIdHRwQ2xpZW50Q29uZmlnKTogUHJvbWlzZTxIdHRwQ2xpZW50PiB7XG4gICAgaWYgKCF0aGlzLmFwaVRva2Vuc1tlbWFpbF0pIHtcbiAgICAgIGlmICghcGFzc3dvcmQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBwYXNzd29yZCBwcm92aWRlZDsgWW91IGNhbiBvbmx5IGxlYXZlIHBhc3N3b3JkIGJsYW5rIGZvciB1c2VycyBjcmVhdGVkIGJ5IHRoaXMgdXRpbGl0eScpO1xuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5sb2dpblVzZXIoZW1haWwsIHBhc3N3b3JkKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2xpZW50KHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuYXBpVG9rZW5zW2VtYWlsXS50b2tlbn1gLFxuICAgICAgICAuLi4oY29uZmlnPy5oZWFkZXJzID8/IHt9KSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvLyBEQVRBU1RPUkVcblxuICBwdWJsaWMgaW5pdGlhbGl6ZUl0ZW1zVG9DbGVhbnVwKCkge1xuICAgIHRoaXMuaXRlbXNUb0RlbGV0ZSA9IFtdO1xuICB9XG5cbiAgcHVibGljIGFkZEl0ZW1Ub0RlbGV0ZUFmdGVyVGVzdChrZXk6IFJlY29yZDxzdHJpbmcsIE5hdGl2ZUF0dHJpYnV0ZVZhbHVlPikge1xuICAgIHRoaXMuaXRlbXNUb0RlbGV0ZS5wdXNoKGtleSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2xlYW51cEl0ZW1zKCkge1xuICAgIGNvbnN0IGRkYiA9IER5bmFtb0RCRG9jdW1lbnRDbGllbnQuZnJvbShuZXcgRHluYW1vREJDbGllbnQoeyByZWdpb246IHRoaXMub3B0aW9ucy5yZWdpb24gfSkpO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLml0ZW1zVG9EZWxldGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGRkYi5zZW5kKG5ldyBEZWxldGVDb21tYW5kKHsgVGFibGVOYW1lOiB0aGlzLnRhYmxlTmFtZSwgS2V5OiBpdGVtIH0pKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBBVVRIXG5cbiAgcHVibGljIGdldFRva2VuUGF5bG9hZChlbWFpbDogc3RyaW5nKTogSnd0UGF5bG9hZCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYXBpVG9rZW5zW2VtYWlsXT8ucGF5bG9hZDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVVc2VyKGVtYWlsOiBzdHJpbmcsIGF0dHJpYnV0ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGdyb3Vwczogc3RyaW5nW10pIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5hdXRoT3B0aW9ucz8udXNlclBvb2xJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB1c2VyUG9vbElkIGNvbmZpZ3VyZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCByYW5kb21QYXNzd29yZDogc3RyaW5nID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoLTE2KTtcblxuICAgIGNvbnN0IGNvZ25pdG9DbGllbnQ6IENvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50ID0gbmV3IENvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50KHsgcmVnaW9uOiB0aGlzLm9wdGlvbnMucmVnaW9uIH0pO1xuICAgIC8vIENyZWF0ZSBhIG5ldyB1c2VyIGluIENvZ25pdG9cbiAgICBhd2FpdCBjb2duaXRvQ2xpZW50LnNlbmQobmV3IEFkbWluQ3JlYXRlVXNlckNvbW1hbmQoe1xuICAgICAgVXNlclBvb2xJZDogdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbElkLFxuICAgICAgVXNlcm5hbWU6IGVtYWlsLFxuICAgICAgTWVzc2FnZUFjdGlvbjogTWVzc2FnZUFjdGlvblR5cGUuU1VQUFJFU1MsXG4gICAgICBUZW1wb3JhcnlQYXNzd29yZDogcmFuZG9tUGFzc3dvcmQsXG4gICAgICBVc2VyQXR0cmlidXRlczogW3tcbiAgICAgICAgTmFtZTogJ2VtYWlsJyxcbiAgICAgICAgVmFsdWU6IGVtYWlsLFxuICAgICAgfSwge1xuICAgICAgICBOYW1lOiAnZW1haWxfdmVyaWZpZWQnLFxuICAgICAgICBWYWx1ZTogJ3RydWUnLFxuICAgICAgfSxcbiAgICAgIC4uLk9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZXMpLm1hcCgoYXR0cikgPT4gKHtcbiAgICAgICAgTmFtZTogYXR0clswXSxcbiAgICAgICAgVmFsdWU6IGF0dHJbMV0sXG4gICAgICB9KSldLFxuICAgIH0pKTtcbiAgICAvLyBNYWtlIHBhc3N3b3JkIHBlcm1hbmVudCB0byBnZXQgdXNlciBvdXQgb2YgRk9SQ0VfQ0hBTkdFX1BBU1NXT1JEXG4gICAgYXdhaXQgY29nbml0b0NsaWVudC5zZW5kKG5ldyBBZG1pblNldFVzZXJQYXNzd29yZENvbW1hbmQoe1xuICAgICAgVXNlclBvb2xJZDogdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbElkLFxuICAgICAgVXNlcm5hbWU6IGVtYWlsLFxuICAgICAgUGFzc3dvcmQ6IHJhbmRvbVBhc3N3b3JkLFxuICAgICAgUGVybWFuZW50OiB0cnVlLFxuICAgIH0pKTtcbiAgICAvLyBBZGQgdXNlciB0byBncm91cHNcbiAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIGdyb3Vwcykge1xuICAgICAgYXdhaXQgY29nbml0b0NsaWVudC5zZW5kKG5ldyBBZG1pbkFkZFVzZXJUb0dyb3VwQ29tbWFuZCh7XG4gICAgICAgIFVzZXJQb29sSWQ6IHRoaXMub3B0aW9ucy5hdXRoT3B0aW9ucz8udXNlclBvb2xJZCxcbiAgICAgICAgVXNlcm5hbWU6IGVtYWlsLFxuICAgICAgICBHcm91cE5hbWU6IGdyb3VwLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMubG9naW5Vc2VyKGVtYWlsLCByYW5kb21QYXNzd29yZCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVtb3ZlVXNlcihlbWFpbDogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdXNlclBvb2xJZCBjb25maWd1cmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGNvZ25pdG9DbGllbnQ6IENvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50ID0gbmV3IENvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50KHsgcmVnaW9uOiB0aGlzLm9wdGlvbnMucmVnaW9uIH0pO1xuICAgIGF3YWl0IGNvZ25pdG9DbGllbnQuc2VuZChuZXcgQWRtaW5EZWxldGVVc2VyQ29tbWFuZCh7XG4gICAgICBVc2VyUG9vbElkOiB0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sSWQsXG4gICAgICBVc2VybmFtZTogZW1haWwsXG4gICAgfSkpO1xuICAgIGRlbGV0ZSB0aGlzLmFwaVRva2Vuc1tlbWFpbF07XG4gIH1cblxuXG4gIHByb3RlY3RlZCBhc3luYyBsb2dpblVzZXIoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbENsaWVudElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHVzZXJQb29sQ2xpZW50SWQgY29uZmlndXJlZCcpO1xuICAgIH1cbiAgICBjb25zdCBjb2duaXRvQ2xpZW50ID0gbmV3IEh0dHBDbGllbnQoe1xuICAgICAgYmFzZVVSTDogYGh0dHBzOi8vY29nbml0by1pZHAuJHt0aGlzLm9wdGlvbnMucmVnaW9ufS5hbWF6b25hd3MuY29tL2AsXG4gICAgfSk7XG4gICAgY29uc3QgYXV0aCA9IGF3YWl0IGNvZ25pdG9DbGllbnQucG9zdCgnLycsIHtcbiAgICAgIEF1dGhQYXJhbWV0ZXJzOiB7XG4gICAgICAgIFVTRVJOQU1FOiBlbWFpbCxcbiAgICAgICAgUEFTU1dPUkQ6IHBhc3N3b3JkLFxuICAgICAgfSxcbiAgICAgIEF1dGhGbG93OiAnVVNFUl9QQVNTV09SRF9BVVRIJyxcbiAgICAgIENsaWVudElkOiB0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnMudXNlclBvb2xDbGllbnRJZCxcbiAgICB9LCB7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC1hbXotanNvbi0xLjEnLFxuICAgICAgICAnWC1BbXotVGFyZ2V0JzogJ0FXU0NvZ25pdG9JZGVudGl0eVByb3ZpZGVyU2VydmljZS5Jbml0aWF0ZUF1dGgnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBpZiAoIWF1dGgub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGF1dGhlbnRpY2F0ZSB1c2VyICR7ZW1haWx9YCk7XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gKGF3YWl0IGF1dGguanNvbjx7IEF1dGhlbnRpY2F0aW9uUmVzdWx0OiB7IElkVG9rZW46IHN0cmluZyB9IH0+KCkpLkF1dGhlbnRpY2F0aW9uUmVzdWx0LklkVG9rZW47XG4gICAgdGhpcy5hcGlUb2tlbnNbZW1haWxdID0ge1xuICAgICAgdG9rZW4sXG4gICAgICBwYXlsb2FkOiBkZWNvZGUodG9rZW4pIGFzIEp3dFBheWxvYWQsXG4gICAgfTtcbiAgfVxufSJdfQ==
package/package.json CHANGED
@@ -74,7 +74,6 @@
74
74
  },
75
75
  "dependencies": {
76
76
  "@types/aws-lambda": "^8.10.161",
77
- "axios": "^1.15.0",
78
77
  "constructs": "^10.5.1",
79
78
  "date-fns": "^4.1.0",
80
79
  "js-yaml": "^4.1.1",
@@ -100,7 +99,7 @@
100
99
  "publishConfig": {
101
100
  "access": "public"
102
101
  },
103
- "version": "2.22.5",
102
+ "version": "3.0.0",
104
103
  "jest": {
105
104
  "coverageProvider": "v8",
106
105
  "testMatch": [