@sylvesterllc/aws-constructs 1.0.4 → 1.0.6

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.
@@ -25,6 +25,7 @@ class CreateMicroServiceBundle {
25
25
  // Create Authorizer
26
26
  if (this.requireAuthorizer) {
27
27
  authorizer = new createAuthorizer_1.CreateAuthorizer(scope, this.appConfig, this.props.RESOURCES.AUTHORIZER).JwtAuthorizer;
28
+ authorizer._attachToApi(this.gatewayApi);
28
29
  }
29
30
  // Create Lambdas
30
31
  const lambdaProp = {
@@ -106,7 +107,7 @@ class CreateMicroServiceBundle {
106
107
  }
107
108
  AddRoutes(props, gateway, lambdas, authorizer) {
108
109
  this.appConfig.lambdaConfigs?.forEach((prop) => {
109
- const lambdaId = createLambda_1.CreateLambda.getIdForLambda(prop);
110
+ const lambdaId = createLambda_1.CreateLambda.getIdForLambda(prop, this.appConfig);
110
111
  if (!lambdaId) {
111
112
  throw new Error(`Can't find lambda`);
112
113
  }
@@ -120,9 +121,8 @@ class CreateMicroServiceBundle {
120
121
  AssignAccessToSecretManager(secret, lambdas) {
121
122
  lambdas.forEach((lambda) => {
122
123
  const result = secret.grantRead(lambda);
123
- console.log('Assigning Access to Secret Manager: ', result);
124
124
  });
125
125
  }
126
126
  }
127
127
  exports.CreateMicroServiceBundle = CreateMicroServiceBundle;
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTWljcm9TZXJ2aWNlQnVuZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9nYXRld2F5L2NyZWF0ZU1pY3JvU2VydmljZUJ1bmRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyREFBeUQ7QUFFekQsaURBQThEO0FBSzlELGtFQUErRDtBQUMvRCwwREFBaUQ7QUFDakQseURBQXNEO0FBQ3RELDZDQUE4QztBQUM5QywyREFBMEQ7QUFNMUQsTUFBYSx3QkFBd0I7SUFLakMsWUFBWSxLQUFnQixFQUNQLFVBQW9CLEVBQ3BCLEtBQXdCLEVBQ3hCLFNBQW9CLEVBQ3BCLE1BQWdCLEVBQ2hCLFNBQW1CLEVBQ25CLE1BQXVCO1FBTHZCLGVBQVUsR0FBVixVQUFVLENBQVU7UUFDcEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixXQUFNLEdBQU4sTUFBTSxDQUFVO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFHeEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ25HLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxLQUFnQjtRQUczQixJQUFJLFVBQVUsR0FBOEIsU0FBUyxDQUFDO1FBRXRELG9CQUFvQjtRQUNwQixJ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LE9BQU8sQ0FBQyxDQUFDLElBQW1CLEVBQUUsRUFBRTtZQUUxRCxNQUFNLFFBQVEsR0FBRywyQkFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVuRCxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQzthQUN4QztZQUNELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQztZQUU3RCxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQzthQUN4RDtZQUVELHFCQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRWpFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLDJCQUEyQixDQUFDLE1BQWUsRUFBRSxPQUF5QjtRQUUxRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDdkIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztDQUVKO0FBeEtELDREQXdLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSZXN0QXBpLCBUb2tlbkF1dGhvcml6ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcbmltcG9ydCB7IElUYWJsZSwgVGFibGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiXCI7XG5pbXBvcnQgeyBOb2RlanNGdW5jdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqc1wiO1xuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRzZ0R5bmFtb1RhYmxlUmVmLCBUc2dMYW1iZGFQcm9wIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy90eXBlc1wiO1xuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcHMgfSBmcm9tIFwiLi4vLi4vY29uZmlnL3R5cGVzL1RzZ0xhbWJkYVByb3BzXCI7XG5pbXBvcnQgeyBNaWNyb3NlcnZpY2VQcm9wcyB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL01pY3Jvc2VydmljZVByb3BzXCI7XG5pbXBvcnQgeyBDcmVhdGVBdXRob3JpemVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvY3JlYXRlQXV0aG9yaXplclwiO1xuaW1wb3J0IHsgUm91dGVzIH0gZnJvbSBcIi4uL2hlbHBlcnMvY3JlYXRlUm91dGVzXCI7XG5pbXBvcnQgeyBDcmVhdGVMYW1iZGEgfSBmcm9tIFwiLi4vbGFtYmRhL2NyZWF0ZUxhbWJkYVwiO1xuaW1wb3J0IHsgRHVyYXRpb24sIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDcmVhdGVEeW5hbW9EYiB9IGZyb20gXCIuLi9keW5hbW9kYi9DcmVhdGVEeW5hbW9cIjtcbmltcG9ydCB7IElTZWNyZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5pbXBvcnQgeyBMYXllclZlcnNpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9BcHBDb25maWdcIjtcbmltcG9ydCB7IE1ldHJpY09wdGlvbnMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcblxuZXhwb3J0IGNsYXNzIENyZWF0ZU1pY3JvU2VydmljZUJ1bmRsZSB7XG4gICAgXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlcXVpcmVEeW5hbW9UYWJsZVJlZnM6IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlcXVpcmVBdXRob3JpemVyOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZ2F0ZXdheUFwaTogSVJlc3RBcGksIFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBNaWNyb3NlcnZpY2VQcm9wcywgICAgICAgIFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQXBwQ29uZmlnLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRhYmxlcz86IFRhYmxlW10sIFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNlY3JldE1ncj86IElTZWNyZXQsIFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxheWVycz86IExheWVyVmVyc2lvbltdLCAgICAgICAgXG4gICAgICAgICkge1xuICAgICAgICBcbiAgICAgICAgdGhpcy5yZXF1aXJlRHluYW1vVGFibGVSZWZzID0gKHByb3BzLlJFU09VUkNFUy5EWU5BTU8/LlRBQkxFX1JFRlM/Lmxlbmd0aCA/PyAwID4gMCkgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHRoaXMucmVxdWlyZUF1dGhvcml6ZXIgPSAocHJvcHMuUkVTT1VSQ0VTLkFVVEhPUklaRVIpID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLm9uSW5pdChzY29wZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkluaXQoc2NvcGU6IENvbnN0cnVjdCkge1xuXG4gICAgICAgIFxuICAgICAgICBsZXQgYXV0aG9yaXplcjogVG9rZW5BdXRob3JpemVyfHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgICAgICAvLyBDcmVhdGUgQXV0aG9yaXplclxuICAgICAgICBpZiAodGhpcy5yZXF1aXJlQXV0aG9yaXplcikge1xuICAgICAgICAgICAgYXV0aG9yaXplciA9IG5ldyBDcmVhdGVBdXRob3JpemVyKHNjb3BlLCB0aGlzLmFwcENvbmZpZywgdGhpcy5wcm9wcy5SRVNPVVJDRVMuQVVUSE9SSVpFUiEpLkp3dEF1dGhvcml6ZXI7ICAgXG4gICAgICAgIH0gICAgICAgIFxuXG4gICAgICAgIC8vIENyZWF0ZSBMYW1iZGFzXG4gICAgICAgIGNvbnN0IGxhbWJkYVByb3A6IFRzZ0xhbWJkYVByb3BzID0ge1xuICAgICAgICAgICAgc2NvcGUsXG4gICAgICAgICAgICBwcm9wOiB0aGlzLnByb3BzLCAgICAgICAgICAgIFxuICAgICAgICAgICAgbGF5ZXJzOiB0aGlzLmxheWVycyxcbiAgICAgICAgICAgIGFwcENvbmZpZzogdGhpcy5hcHBDb25maWdcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBsYW1iZGFzID0gbmV3IENyZWF0ZUxhbWJkYShsYW1iZGFQcm9wLCB0aGlzLmFwcENvbmZpZyk7XG5cbiAgICAgICAgaWYgKHRoaXMudGFibGVzKSB7XG4gICAgICAgICAgICB0aGlzLkFzc2lnbkFjY2Vzc1RvVGFibGVzKHRoaXMudGFibGVzLCBsYW1iZGFzLkxhbWJkYXMpO1xuICAgICAgICB9ICAgICAgICBcblxuICAgICAgICAvLyBBbGxvdyBhY2Nlc3MgdG8gZXhpc3RpbmcgdGFibGVzXG4gICAgICAgIGlmICh0aGlzLnJlcXVpcmVEeW5hbW9UYWJsZVJlZnMpIHtcbiAgICAgICAgICAgIHRoaXMuQXNzaWduQWNjZXNzVG9UYWJsZVJlZnMoc2NvcGUsIHRoaXMucHJvcHMuUkVTT1VSQ0VTLkRZTkFNTz8uVEFCTEVfUkVGUywgbGFtYmRhcy5MYW1iZGFzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNlY3JldE1ncikge1xuICAgICAgICAgICAgdGhpcy5Bc3NpZ25BY2Nlc3NUb1NlY3JldE1hbmFnZXIodGhpcy5zZWNyZXRNZ3IsIGxhbWJkYXMuTGFtYmRhcyk7XG4gICAgICAgIH0gICAgICAgIFxuXG4gICAgICAgIGxhbWJkYXMuTGFtYmRhcy5tYXAoKGxhbWJkYSkgPT4ge1xuICAgICAgICAgICAgbGFtYmRhLm1ldHJpY0Vycm9ycyh7ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogYCR7bGFtYmRhLmZ1bmN0aW9uTmFtZX0tZXJyb3JzYCwgXG4gICAgICAgICAgICAgICAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygzKSAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLkFkZFJvdXRlcyh0aGlzLnByb3BzLCB0aGlzLmdhdGV3YXlBcGksIGxhbWJkYXMuTGFtYmRhcywgYXV0aG9yaXplcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBBc3NpZ25BY2Nlc3NUb1RhYmxlcyh0YWJsZXM6IFRhYmxlW10sIGxhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10pIHtcblxuICAgICAgICBpZiAodGFibGVzKSB7XG4gICAgICAgICAgICB0YWJsZXMuZm9yRWFjaCgodGFibGU6IElUYWJsZSkgPT4ge1xuXG4gICAgICAgICAgICAgICAgbGFtYmRhcy5mb3JFYWNoKChsYW1iZGE6IE5vZGVqc0Z1bmN0aW9uKSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gIFRoaXMgaXMgYSBDREsgYnVnOiBJdCBkb2Vzbid0IHByb3ZpZGVcbiAgICAgICAgICAgICAgICAgICAgLy8gIGFjY2VzcyB0byB0aGUgaW5kZXhlcy5cbiAgICAgICAgICAgICAgICAgICAgLy90YWJsZS5ncmFudFJlYWRXcml0ZURhdGEobGFtYmRhKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyAgV29ya2Fyb3VuZDpcbiAgICAgICAgICAgICAgICAgICAgbGFtYmRhLmFkZFRvUm9sZVBvbGljeShcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IENyZWF0ZUR5bmFtb0RiLlJlYWRXcml0ZUFjdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLnRhYmxlQXJuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHt0YWJsZS50YWJsZUFybn0vKmAsIC8vIFRoaXMgaXMgbm90IHJlY29nbml6ZWQgYnkgY2RrLCBidXQgdGFibGUgaXMuICB3aHk/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgQXNzaWduQWNjZXNzVG9UYWJsZVJlZnMoc2NvcGU6IENvbnN0cnVjdCwgdGFibGVSZWZzOiBUc2dEeW5hbW9UYWJsZVJlZltdIHwgdW5kZWZpbmVkLCBsYW1iZGFzOiBOb2RlanNGdW5jdGlvbltdKSB7XG5cbiAgICAgICAgaWYgKHRhYmxlUmVmcykge1xuICAgICAgICAgICAgdGFibGVSZWZzLmZvckVhY2goKHRhYmxlUmVmOiBUc2dEeW5hbW9UYWJsZVJlZikgPT4ge1xuXG4gICAgICAgICAgICAgICAgaWYgKHRhYmxlUmVmLnJlZ2lvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkFzc2lnblJlYWRXcml0ZUFjY2Vzc1RvVGFibGVJblJlZ2lvbihzY29wZSwgdGFibGVSZWYsIGxhbWJkYXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Bc3NpZ25SZWFkV3JpdGVBY2Nlc3NUb1RhYmxlKHNjb3BlLCB0YWJsZVJlZiwgbGFtYmRhcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIEFzc2lnblJlYWRXcml0ZUFjY2Vzc1RvVGFibGVJblJlZ2lvbihzY29wZTogQ29uc3RydWN0LCB0YWJsZVJlZjogVHNnRHluYW1vVGFibGVSZWYsIGxhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10pIHtcbiAgICAgICAgbGFtYmRhcy5mb3JFYWNoKChsYW1iZGE6IE5vZGVqc0Z1bmN0aW9uKSA9PiB7XG5cbiAgICAgICAgICAgIGxldCB0YWJsZUFybiA9IFwiYXJuOmF3czpkeW5hbW9kYjpcIiArIHRhYmxlUmVmLnJlZ2lvbiArIFwiOlwiICsgKChzY29wZSBhcyBTdGFjaykuYWNjb3VudCkgKyBcIjp0YWJsZS9cIiArIHRhYmxlUmVmLnRhYmxlTmFtZTtcbiAgICAgICAgICAgIGxldCBzdGF0ZW1lbnQgPSBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgdGFibGVBcm4sXG4gICAgICAgICAgICAgICAgICAgIHRhYmxlQXJuICsgXCIvaW5kZXgvKlwiLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgYWN0aW9uczogQ3JlYXRlRHluYW1vRGIuUmVhZFdyaXRlQWN0aW9ucyxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBsYW1iZGEucm9sZT8uYWRkVG9QcmluY2lwYWxQb2xpY3koc3RhdGVtZW50KTtcbiAgICAgICAgICAgIFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIEFzc2lnblJlYWRXcml0ZUFjY2Vzc1RvVGFibGUoc2NvcGU6IENvbnN0cnVjdCwgdGFibGVSZWY6IFRzZ0R5bmFtb1RhYmxlUmVmLCBsYW1iZGFzOiBOb2RlanNGdW5jdGlvbltdKSB7XG4gICAgICAgIGxldCB0YWJsZTogSVRhYmxlID0gVGFibGUuZnJvbVRhYmxlTmFtZShzY29wZSwgdGFibGVSZWYudGFibGVOYW1lLCB0YWJsZVJlZi50YWJsZU5hbWUpO1xuXG4gICAgICAgIGxhbWJkYXMuZm9yRWFjaCgobGFtYmRhOiBOb2RlanNGdW5jdGlvbikgPT4ge1xuICAgICAgICAgICAgdGFibGUuZ3JhbnRSZWFkV3JpdGVEYXRhKGxhbWJkYSlcbiAgICAgICAgICAgIFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIEFkZFJvdXRlcyhwcm9wczogTWljcm9zZXJ2aWNlUHJvcHMsIFxuICAgICAgICBnYXRld2F5OiBJUmVzdEFwaSwgXG4gICAgICAgIGxhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10sIFxuICAgICAgICBhdXRob3JpemVyPzogVG9rZW5BdXRob3JpemVyKSB7XG5cbiAgICAgICAgdGhpcy5hcHBDb25maWcubGFtYmRhQ29uZmlncz8uZm9yRWFjaCgocHJvcDogVHNnTGFtYmRhUHJvcCkgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCBsYW1iZGFJZCA9IENyZWF0ZUxhbWJkYS5nZXRJZEZvckxhbWJkYShwcm9wKTtcblxuICAgICAgICAgICAgaWYgKCFsYW1iZGFJZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2FuJ3QgZmluZCBsYW1iZGFgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxhbWJkYU5vZGUgPSBsYW1iZGFzLmZpbmQoeCA9PiB4Lm5vZGUuaWQgPT09IGxhbWJkYUlkKTtcblxuICAgICAgICAgICAgaWYgKCFsYW1iZGFOb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2FuJ3QgZmluZCB0aGUgTGFtYmRhIEludGVncmF0aW9uXCIpOyAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgUm91dGVzLmNyZWF0ZVJlc291cmNlKHByb3AsIGdhdGV3YXksIGxhbWJkYU5vZGUsIGF1dGhvcml6ZXIpO1xuICAgICAgICBcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBBc3NpZ25BY2Nlc3NUb1NlY3JldE1hbmFnZXIoc2VjcmV0OiBJU2VjcmV0LCBsYW1iZGFzOiBOb2RlanNGdW5jdGlvbltdKSB7XG5cbiAgICAgICAgbGFtYmRhcy5mb3JFYWNoKChsYW1iZGEpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHNlY3JldC5ncmFudFJlYWQobGFtYmRhKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBc3NpZ25pbmcgQWNjZXNzIHRvIFNlY3JldCBNYW5hZ2VyOiAnLHJlc3VsdCk7XG4gICAgICAgIH0pO1xuICAgICAgICBcbiAgICB9XG5cbn0iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTWljcm9TZXJ2aWNlQnVuZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9nYXRld2F5L2NyZWF0ZU1pY3JvU2VydmljZUJ1bmRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyREFBeUQ7QUFFekQsaURBQThEO0FBSzlELGtFQUErRDtBQUMvRCwwREFBaUQ7QUFDakQseURBQXNEO0FBQ3RELDZDQUE4QztBQUM5QywyREFBMEQ7QUFNMUQsTUFBYSx3QkFBd0I7SUFLakMsWUFBWSxLQUFnQixFQUNQLFVBQW9CLEVBQ3BCLEtBQXdCLEVBQ3hCLFNBQW9CLEVBQ3BCLE1BQWdCLEVBQ2hCLFNBQW1CLEVBQ25CLE1BQXVCO1FBTHZCLGVBQVUsR0FBVixVQUFVLENBQVU7UUFDcEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixXQUFNLEdBQU4sTUFBTSxDQUFVO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFHeEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ25HLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxLQUFnQjtRQUczQixJQUFJLFVBQVUsR0FBOEIsU0FBUyxDQUFDO1FBRXRELG9CQUFvQjtRQUNwQixJ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QXlCLEVBQ3pCLFVBQTRCO1FBRTVCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQW1CLEVBQUUsRUFBRTtZQUUxRCxNQUFNLFFBQVEsR0FBRywyQkFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRW5FLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQ3hDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1lBRTdELElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO2FBQ3hEO1lBRUQscUJBQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFakUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sMkJBQTJCLENBQUMsTUFBZSxFQUFFLE9BQXlCO1FBRTFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN2QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVDLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztDQUVKO0FBektELDREQXlLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSZXN0QXBpLCBUb2tlbkF1dGhvcml6ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcbmltcG9ydCB7IElUYWJsZSwgVGFibGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiXCI7XG5pbXBvcnQgeyBOb2RlanNGdW5jdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqc1wiO1xuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRzZ0R5bmFtb1RhYmxlUmVmLCBUc2dMYW1iZGFQcm9wIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy90eXBlc1wiO1xuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcHMgfSBmcm9tIFwiLi4vLi4vY29uZmlnL3R5cGVzL1RzZ0xhbWJkYVByb3BzXCI7XG5pbXBvcnQgeyBNaWNyb3NlcnZpY2VQcm9wcyB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL01pY3Jvc2VydmljZVByb3BzXCI7XG5pbXBvcnQgeyBDcmVhdGVBdXRob3JpemVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvY3JlYXRlQXV0aG9yaXplclwiO1xuaW1wb3J0IHsgUm91dGVzIH0gZnJvbSBcIi4uL2hlbHBlcnMvY3JlYXRlUm91dGVzXCI7XG5pbXBvcnQgeyBDcmVhdGVMYW1iZGEgfSBmcm9tIFwiLi4vbGFtYmRhL2NyZWF0ZUxhbWJkYVwiO1xuaW1wb3J0IHsgRHVyYXRpb24sIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDcmVhdGVEeW5hbW9EYiB9IGZyb20gXCIuLi9keW5hbW9kYi9DcmVhdGVEeW5hbW9cIjtcbmltcG9ydCB7IElTZWNyZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5pbXBvcnQgeyBMYXllclZlcnNpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9BcHBDb25maWdcIjtcbmltcG9ydCB7IE1ldHJpY09wdGlvbnMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcblxuZXhwb3J0IGNsYXNzIENyZWF0ZU1pY3JvU2VydmljZUJ1bmRsZSB7XG4gICAgXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlcXVpcmVEeW5hbW9UYWJsZVJlZnM6IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlcXVpcmVBdXRob3JpemVyOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZ2F0ZXdheUFwaTogSVJlc3RBcGksIFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBNaWNyb3NlcnZpY2VQcm9wcywgICAgICAgIFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQXBwQ29uZmlnLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRhYmxlcz86IFRhYmxlW10sIFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNlY3JldE1ncj86IElTZWNyZXQsIFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxheWVycz86IExheWVyVmVyc2lvbltdLCAgICAgICAgXG4gICAgICAgICkge1xuICAgICAgICBcbiAgICAgICAgdGhpcy5yZXF1aXJlRHluYW1vVGFibGVSZWZzID0gKHByb3BzLlJFU09VUkNFUy5EWU5BTU8/LlRBQkxFX1JFRlM/Lmxlbmd0aCA/PyAwID4gMCkgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHRoaXMucmVxdWlyZUF1dGhvcml6ZXIgPSAocHJvcHMuUkVTT1VSQ0VTLkFVVEhPUklaRVIpID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLm9uSW5pdChzY29wZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkluaXQoc2NvcGU6IENvbnN0cnVjdCkge1xuXG4gICAgICAgIFxuICAgICAgICBsZXQgYXV0aG9yaXplcjogVG9rZW5BdXRob3JpemVyfHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgICAgICAvLyBDcmVhdGUgQXV0aG9yaXplclxuICAgICAgICBpZiAodGhpcy5yZXF1aXJlQXV0aG9yaXplcikge1xuICAgICAgICAgICAgYXV0aG9yaXplciA9IG5ldyBDcmVhdGVBdXRob3JpemVyKHNjb3BlLCB0aGlzLmFwcENvbmZpZywgdGhpcy5wcm9wcy5SRVNPVVJDRVMuQVVUSE9SSVpFUiEpLkp3dEF1dGhvcml6ZXI7XG4gICAgICAgICAgICBhdXRob3JpemVyLl9hdHRhY2hUb0FwaSh0aGlzLmdhdGV3YXlBcGkpOyAgIFxuICAgICAgICB9ICAgICAgICBcblxuICAgICAgICAvLyBDcmVhdGUgTGFtYmRhc1xuICAgICAgICBjb25zdCBsYW1iZGFQcm9wOiBUc2dMYW1iZGFQcm9wcyA9IHtcbiAgICAgICAgICAgIHNjb3BlLFxuICAgICAgICAgICAgcHJvcDogdGhpcy5wcm9wcywgICAgICAgICAgICBcbiAgICAgICAgICAgIGxheWVyczogdGhpcy5sYXllcnMsXG4gICAgICAgICAgICBhcHBDb25maWc6IHRoaXMuYXBwQ29uZmlnXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgbGFtYmRhcyA9IG5ldyBDcmVhdGVMYW1iZGEobGFtYmRhUHJvcCwgdGhpcy5hcHBDb25maWcpO1xuXG4gICAgICAgIGlmICh0aGlzLnRhYmxlcykge1xuICAgICAgICAgICAgdGhpcy5Bc3NpZ25BY2Nlc3NUb1RhYmxlcyh0aGlzLnRhYmxlcywgbGFtYmRhcy5MYW1iZGFzKTtcbiAgICAgICAgfSAgICAgICAgXG5cbiAgICAgICAgLy8gQWxsb3cgYWNjZXNzIHRvIGV4aXN0aW5nIHRhYmxlc1xuICAgICAgICBpZiAodGhpcy5yZXF1aXJlRHluYW1vVGFibGVSZWZzKSB7XG4gICAgICAgICAgICB0aGlzLkFzc2lnbkFjY2Vzc1RvVGFibGVSZWZzKHNjb3BlLCB0aGlzLnByb3BzLlJFU09VUkNFUy5EWU5BTU8/LlRBQkxFX1JFRlMsIGxhbWJkYXMuTGFtYmRhcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWNyZXRNZ3IpIHtcbiAgICAgICAgICAgIHRoaXMuQXNzaWduQWNjZXNzVG9TZWNyZXRNYW5hZ2VyKHRoaXMuc2VjcmV0TWdyLCBsYW1iZGFzLkxhbWJkYXMpO1xuICAgICAgICB9ICAgICAgICBcblxuICAgICAgICBsYW1iZGFzLkxhbWJkYXMubWFwKChsYW1iZGEpID0+IHtcbiAgICAgICAgICAgIGxhbWJkYS5tZXRyaWNFcnJvcnMoeyAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGAke2xhbWJkYS5mdW5jdGlvbk5hbWV9LWVycm9yc2AsIFxuICAgICAgICAgICAgICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMykgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5BZGRSb3V0ZXModGhpcy5wcm9wcywgdGhpcy5nYXRld2F5QXBpLCBsYW1iZGFzLkxhbWJkYXMsIGF1dGhvcml6ZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgQXNzaWduQWNjZXNzVG9UYWJsZXModGFibGVzOiBUYWJsZVtdLCBsYW1iZGFzOiBOb2RlanNGdW5jdGlvbltdKSB7XG5cbiAgICAgICAgaWYgKHRhYmxlcykge1xuICAgICAgICAgICAgdGFibGVzLmZvckVhY2goKHRhYmxlOiBJVGFibGUpID0+IHtcblxuICAgICAgICAgICAgICAgIGxhbWJkYXMuZm9yRWFjaCgobGFtYmRhOiBOb2RlanNGdW5jdGlvbikgPT4ge1xuXG4gICAgICAgICAgICAgICAgICAgIC8vICBUaGlzIGlzIGEgQ0RLIGJ1ZzogSXQgZG9lc24ndCBwcm92aWRlXG4gICAgICAgICAgICAgICAgICAgIC8vICBhY2Nlc3MgdG8gdGhlIGluZGV4ZXMuXG4gICAgICAgICAgICAgICAgICAgIC8vdGFibGUuZ3JhbnRSZWFkV3JpdGVEYXRhKGxhbWJkYSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gIFdvcmthcm91bmQ6XG4gICAgICAgICAgICAgICAgICAgIGxhbWJkYS5hZGRUb1JvbGVQb2xpY3koXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zOiBDcmVhdGVEeW5hbW9EYi5SZWFkV3JpdGVBY3Rpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZS50YWJsZUFybixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGFibGUudGFibGVBcm59LypgLCAvLyBUaGlzIGlzIG5vdCByZWNvZ25pemVkIGJ5IGNkaywgYnV0IHRhYmxlIGlzLiAgd2h5P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIEFzc2lnbkFjY2Vzc1RvVGFibGVSZWZzKHNjb3BlOiBDb25zdHJ1Y3QsIHRhYmxlUmVmczogVHNnRHluYW1vVGFibGVSZWZbXSB8IHVuZGVmaW5lZCwgbGFtYmRhczogTm9kZWpzRnVuY3Rpb25bXSkge1xuXG4gICAgICAgIGlmICh0YWJsZVJlZnMpIHtcbiAgICAgICAgICAgIHRhYmxlUmVmcy5mb3JFYWNoKCh0YWJsZVJlZjogVHNnRHluYW1vVGFibGVSZWYpID0+IHtcblxuICAgICAgICAgICAgICAgIGlmICh0YWJsZVJlZi5yZWdpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Bc3NpZ25SZWFkV3JpdGVBY2Nlc3NUb1RhYmxlSW5SZWdpb24oc2NvcGUsIHRhYmxlUmVmLCBsYW1iZGFzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQXNzaWduUmVhZFdyaXRlQWNjZXNzVG9UYWJsZShzY29wZSwgdGFibGVSZWYsIGxhbWJkYXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBBc3NpZ25SZWFkV3JpdGVBY2Nlc3NUb1RhYmxlSW5SZWdpb24oc2NvcGU6IENvbnN0cnVjdCwgdGFibGVSZWY6IFRzZ0R5bmFtb1RhYmxlUmVmLCBsYW1iZGFzOiBOb2RlanNGdW5jdGlvbltdKSB7XG4gICAgICAgIGxhbWJkYXMuZm9yRWFjaCgobGFtYmRhOiBOb2RlanNGdW5jdGlvbikgPT4ge1xuXG4gICAgICAgICAgICBsZXQgdGFibGVBcm4gPSBcImFybjphd3M6ZHluYW1vZGI6XCIgKyB0YWJsZVJlZi5yZWdpb24gKyBcIjpcIiArICgoc2NvcGUgYXMgU3RhY2spLmFjY291bnQpICsgXCI6dGFibGUvXCIgKyB0YWJsZVJlZi50YWJsZU5hbWU7XG4gICAgICAgICAgICBsZXQgc3RhdGVtZW50ID0gbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICAgICAgICAgIHRhYmxlQXJuLFxuICAgICAgICAgICAgICAgICAgICB0YWJsZUFybiArIFwiL2luZGV4LypcIixcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGFjdGlvbnM6IENyZWF0ZUR5bmFtb0RiLlJlYWRXcml0ZUFjdGlvbnMsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgbGFtYmRhLnJvbGU/LmFkZFRvUHJpbmNpcGFsUG9saWN5KHN0YXRlbWVudCk7XG4gICAgICAgICAgICBcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBBc3NpZ25SZWFkV3JpdGVBY2Nlc3NUb1RhYmxlKHNjb3BlOiBDb25zdHJ1Y3QsIHRhYmxlUmVmOiBUc2dEeW5hbW9UYWJsZVJlZiwgbGFtYmRhczogTm9kZWpzRnVuY3Rpb25bXSkge1xuICAgICAgICBsZXQgdGFibGU6IElUYWJsZSA9IFRhYmxlLmZyb21UYWJsZU5hbWUoc2NvcGUsIHRhYmxlUmVmLnRhYmxlTmFtZSwgdGFibGVSZWYudGFibGVOYW1lKTtcblxuICAgICAgICBsYW1iZGFzLmZvckVhY2goKGxhbWJkYTogTm9kZWpzRnVuY3Rpb24pID0+IHtcbiAgICAgICAgICAgIHRhYmxlLmdyYW50UmVhZFdyaXRlRGF0YShsYW1iZGEpXG4gICAgICAgICAgICBcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBBZGRSb3V0ZXMocHJvcHM6IE1pY3Jvc2VydmljZVByb3BzLCBcbiAgICAgICAgZ2F0ZXdheTogSVJlc3RBcGksIFxuICAgICAgICBsYW1iZGFzOiBOb2RlanNGdW5jdGlvbltdLCBcbiAgICAgICAgYXV0aG9yaXplcj86IFRva2VuQXV0aG9yaXplcikge1xuXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnLmxhbWJkYUNvbmZpZ3M/LmZvckVhY2goKHByb3A6IFRzZ0xhbWJkYVByb3ApID0+IHtcblxuICAgICAgICAgICAgY29uc3QgbGFtYmRhSWQgPSBDcmVhdGVMYW1iZGEuZ2V0SWRGb3JMYW1iZGEocHJvcCwgdGhpcy5hcHBDb25maWcpO1xuXG4gICAgICAgICAgICBpZiAoIWxhbWJkYUlkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW4ndCBmaW5kIGxhbWJkYWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGFtYmRhTm9kZSA9IGxhbWJkYXMuZmluZCh4ID0+IHgubm9kZS5pZCA9PT0gbGFtYmRhSWQpO1xuXG4gICAgICAgICAgICBpZiAoIWxhbWJkYU5vZGUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBmaW5kIHRoZSBMYW1iZGEgSW50ZWdyYXRpb25cIik7ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBSb3V0ZXMuY3JlYXRlUmVzb3VyY2UocHJvcCwgZ2F0ZXdheSwgbGFtYmRhTm9kZSwgYXV0aG9yaXplcik7XG4gICAgICAgIFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIEFzc2lnbkFjY2Vzc1RvU2VjcmV0TWFuYWdlcihzZWNyZXQ6IElTZWNyZXQsIGxhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10pIHtcblxuICAgICAgICBsYW1iZGFzLmZvckVhY2goKGxhbWJkYSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gc2VjcmV0LmdyYW50UmVhZChsYW1iZGEpO1xuICAgICAgICAgICAgXG4gICAgICAgIH0pO1xuICAgICAgICBcbiAgICB9XG5cbn0iXX0=
@@ -26,18 +26,19 @@ class CreateAuthorizer extends baseResource_1.BaseResource {
26
26
  createLambdaAuthorizer(scope, lambdaConfig) {
27
27
  //console.log("ENTER createLambdaAuthorizer");
28
28
  const authorizerProps = this.createLambdaFunctionProps(lambdaConfig);
29
- const lambdaId = createLambda_1.CreateLambda.getIdForLambda(lambdaConfig);
29
+ const lambdaId = createLambda_1.CreateLambda.getIdForLambda(lambdaConfig, this.config);
30
30
  const lambda = new aws_lambda_nodejs_1.NodejsFunction(scope, lambdaId, authorizerProps);
31
31
  lambda.grantInvoke(new aws_iam_1.ServicePrincipal('apigateway.amazonaws.com'));
32
32
  if (lambdaConfig?.managedPolicies && lambdaConfig.managedPolicies.length > 0) {
33
33
  this.assignManagedPolicies(lambda, lambdaConfig.managedPolicies);
34
34
  }
35
- const lambdaAuthorizer = new aws_apigateway_1.TokenAuthorizer(scope, `${lambdaConfig.name}-authorizer`, {
35
+ const props = {
36
36
  handler: lambda,
37
37
  authorizerName: lambdaConfig.name,
38
38
  resultsCacheTtl: aws_cdk_lib_1.Duration.seconds(0),
39
39
  identitySource: aws_apigateway_1.IdentitySource.header('Authorization'),
40
- });
40
+ };
41
+ const lambdaAuthorizer = new aws_apigateway_1.TokenAuthorizer(scope, `${lambdaConfig.name}-authorizer`, props);
41
42
  return lambdaAuthorizer;
42
43
  }
43
44
  createOutput(scope, createdAssets) {
@@ -77,4 +78,4 @@ class CreateAuthorizer extends baseResource_1.BaseResource {
77
78
  }
78
79
  }
79
80
  exports.CreateAuthorizer = CreateAuthorizer;
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQXV0aG9yaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXNvdXJjZXMvaGVscGVycy9jcmVhdGVBdXRob3JpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFrRDtBQUNsRCwrREFBNkU7QUFDN0UsaURBQXNFO0FBQ3RFLHFFQUFtRztBQUVuRyw2QkFBNkI7QUFLN0IsdURBQW9EO0FBQ3BELHlEQUFzRDtBQUV0RCxNQUFhLGdCQUFpQixTQUFRLDJCQUE2QjtJQUUvRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLEtBQWdCLEVBQVksU0FBd0I7UUFFOUUsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUZrQyxjQUFTLEdBQVQsU0FBUyxDQUFlO1FBSTlFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBRSxDQUFDO1FBRXBELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQWtCLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNwRTtJQUVMLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBZ0I7UUFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQWdCLEVBQUUsWUFBMkI7UUFDeEUsOENBQThDO1FBRTlDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFhLENBQUMsQ0FBQztRQUV0RSxNQUFNLFFBQVEsR0FBRywyQkFBWSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGtDQUFjLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUVwRSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksMEJBQWdCLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1FBRXJFLElBQUksWUFBWSxFQUFFLGVBQWUsSUFBSSxZQUFZLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDMUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDcEU7UUFFRCxNQUFNLGdCQUFnQixHQUFHLElBQUksZ0NBQWUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxZQUFZLENBQUMsSUFBSSxhQUFhLEVBQUU7WUFDbkYsT0FBTyxFQUFFLE1BQU07WUFDZixjQUFjLEVBQUUsWUFBWSxDQUFDLElBQUk7WUFDakMsZUFBZSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNwQyxjQUFjLEVBQUUsK0JBQWMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO1NBRXpELENBQUMsQ0FBQztRQUVILE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztJQUVTLFlBQVksQ0FBSSxLQUFnQixFQUFFLGFBQWtCO1FBRTFELE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoQyx1Q0FBdUM7UUFDdkMsdURBQXVEO1FBQ3ZELE1BQU07SUFFVixDQUFDO0lBRU8seUJBQXlCLENBQUMsSUFBbUI7UUFFakQsTUFBTSxVQUFVLEdBQXdCO1lBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDL0IsWUFBWSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZO1lBQ3pELE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUM3QyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxHQUFHO1lBQzlCLFdBQVcsRUFBRTtnQkFDVCxpQkFBaUIsRUFBRSxNQUFNO2dCQUN6QixHQUFHLElBQUksQ0FBQyxXQUFXO2FBQ3RCO1lBQ0QsUUFBUSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxLQUFLO2dCQUNiLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixTQUFTLEVBQUUsSUFBSTtnQkFDZixhQUFhLEVBQUUsaUNBQWEsQ0FBQyxNQUFNO2dCQUNuQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVzthQUNwRDtTQUNKLENBQUE7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0lBQUEsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE1BQXNCLEVBQUUsa0JBQTRCO1FBRTlFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLGlCQUF5QixFQUFFLEVBQUU7WUFFckQsSUFBSSxNQUFNLEdBQUcsdUJBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBRXZFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFFUCxDQUFDO0NBRUo7QUE1RkQsNENBNEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuT3V0cHV0LCBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgSWRlbnRpdHlTb3VyY2UsIFRva2VuQXV0aG9yaXplciB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheVwiO1xuaW1wb3J0IHsgTWFuYWdlZFBvbGljeSwgU2VydmljZVByaW5jaXBhbCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBOb2RlanNGdW5jdGlvbiwgTm9kZWpzRnVuY3Rpb25Qcm9wcywgU291cmNlTWFwTW9kZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tIFwiLi4vLi4vY29uZmlnL0FwcENvbmZpZ1wiO1xuXG5pbXBvcnQgeyBUc2dMYW1iZGFQcm9wIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy90eXBlc1wiO1xuaW1wb3J0IHsgTWljcm9zZXJ2aWNlUHJvcHMgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9NaWNyb3NlcnZpY2VQcm9wc1wiO1xuaW1wb3J0IHsgQmFzZVJlc291cmNlIH0gZnJvbSBcIi4uL2Jhc2UvYmFzZVJlc291cmNlXCI7XG5pbXBvcnQgeyBDcmVhdGVMYW1iZGEgfSBmcm9tIFwiLi4vbGFtYmRhL2NyZWF0ZUxhbWJkYVwiO1xuXG5leHBvcnQgY2xhc3MgQ3JlYXRlQXV0aG9yaXplciBleHRlbmRzIEJhc2VSZXNvdXJjZTxUb2tlbkF1dGhvcml6ZXI+IHtcblxuICAgIGdldCBKd3RBdXRob3JpemVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVkUmVzb3VyY2VzWzBdO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzOiBBcHBDb25maWcsIHByb3RlY3RlZCBhdXRoUHJvcHM6IFRzZ0xhbWJkYVByb3ApIHtcblxuICAgICAgICBzdXBlcihzY29wZSwgcHJvcHMpO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlZFJlc291cmNlcyA9IHRoaXMuY3JlYXRlUmVzb3VyY2Uoc2NvcGUpITtcblxuICAgICAgICBpZiAodGhpcy5jcmVhdGVkUmVzb3VyY2VzKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU91dHB1dDxUb2tlbkF1dGhvcml6ZXI+KHNjb3BlLCB0aGlzLmNyZWF0ZWRSZXNvdXJjZXMpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2Uoc2NvcGU6IENvbnN0cnVjdCk6IFRva2VuQXV0aG9yaXplcltdIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBbdGhpcy5jcmVhdGVMYW1iZGFBdXRob3JpemVyKHNjb3BlLCB0aGlzLmF1dGhQcm9wcyldO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlTGFtYmRhQXV0aG9yaXplcihzY29wZTogQ29uc3RydWN0LCBsYW1iZGFDb25maWc6IFRzZ0xhbWJkYVByb3ApIHtcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcIkVOVEVSIGNyZWF0ZUxhbWJkYUF1dGhvcml6ZXJcIik7XG5cbiAgICAgICAgY29uc3QgYXV0aG9yaXplclByb3BzID0gdGhpcy5jcmVhdGVMYW1iZGFGdW5jdGlvblByb3BzKGxhbWJkYUNvbmZpZyEpO1xuXG4gICAgICAgIGNvbnN0IGxhbWJkYUlkID0gQ3JlYXRlTGFtYmRhLmdldElkRm9yTGFtYmRhKGxhbWJkYUNvbmZpZyk7XG4gICAgICAgIGNvbnN0IGxhbWJkYSA9IG5ldyBOb2RlanNGdW5jdGlvbihzY29wZSwgbGFtYmRhSWQsIGF1dGhvcml6ZXJQcm9wcyk7XG5cbiAgICAgICAgbGFtYmRhLmdyYW50SW52b2tlKG5ldyBTZXJ2aWNlUHJpbmNpcGFsKCdhcGlnYXRld2F5LmFtYXpvbmF3cy5jb20nKSk7XG5cbiAgICAgICAgaWYgKGxhbWJkYUNvbmZpZz8ubWFuYWdlZFBvbGljaWVzICYmIGxhbWJkYUNvbmZpZy5tYW5hZ2VkUG9saWNpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5hc3NpZ25NYW5hZ2VkUG9saWNpZXMobGFtYmRhLCBsYW1iZGFDb25maWcubWFuYWdlZFBvbGljaWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxhbWJkYUF1dGhvcml6ZXIgPSBuZXcgVG9rZW5BdXRob3JpemVyKHNjb3BlLCBgJHtsYW1iZGFDb25maWcubmFtZX0tYXV0aG9yaXplcmAsIHtcbiAgICAgICAgICAgIGhhbmRsZXI6IGxhbWJkYSxcbiAgICAgICAgICAgIGF1dGhvcml6ZXJOYW1lOiBsYW1iZGFDb25maWcubmFtZSxcbiAgICAgICAgICAgIHJlc3VsdHNDYWNoZVR0bDogRHVyYXRpb24uc2Vjb25kcygwKSwgXG4gICAgICAgICAgICBpZGVudGl0eVNvdXJjZTogSWRlbnRpdHlTb3VyY2UuaGVhZGVyKCdBdXRob3JpemF0aW9uJyksXG4gICAgICAgICAgICBcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGxhbWJkYUF1dGhvcml6ZXI7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZU91dHB1dDxUPihzY29wZTogQ29uc3RydWN0LCBjcmVhdGVkQXNzZXRzOiBUW10pOiB2b2lkIHtcblxuICAgICAgICBjb25zdCBlbnRpdHkgPSBjcmVhdGVkQXNzZXRzWzBdO1xuXG4gICAgICAgIC8vIG5ldyBDZm5PdXRwdXQoc2NvcGUsIGBhdXRob3JpemVyYCwge1xuICAgICAgICAvLyAgICAgdmFsdWU6IChlbnRpdHkgYXMgVG9rZW5BdXRob3JpemVyKS5hdXRob3JpemVyQXJuXG4gICAgICAgIC8vIH0pO1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVMYW1iZGFGdW5jdGlvblByb3BzKHByb3A6IFRzZ0xhbWJkYVByb3ApIHsgICAgICAgXG5cbiAgICAgICAgY29uc3QgbGFtYmRhUHJvcDogTm9kZWpzRnVuY3Rpb25Qcm9wcyA9IHtcbiAgICAgICAgICAgIGVudHJ5OiBwYXRoLmpvaW4ocHJvcC5jb2RlUGF0aCksXG4gICAgICAgICAgICBmdW5jdGlvbk5hbWU6IHByb3AubmFtZSxcbiAgICAgICAgICAgIGhhbmRsZXI6IHByb3AuaGFuZGxlcixcbiAgICAgICAgICAgIHJ1bnRpbWU6IHByb3AucnVudGltZSB8fCB0aGlzLmNvbmZpZy5HTE9CQUxTLnN0YWNrUnVudGltZSxcbiAgICAgICAgICAgIHRpbWVvdXQ6IHByb3AuZHVyYXRpb24gfHwgRHVyYXRpb24ubWludXRlcygyKSxcbiAgICAgICAgICAgIG1lbW9yeVNpemU6IHByb3AubWVtb3J5IHx8IDUxMixcbiAgICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICAgICAgXCJWRVJCT1NFX0xPR0dJTkdcIjogXCJ0cnVlXCIsICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC4uLnByb3AuZW52aXJvbm1lbnRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidW5kbGluZzoge1xuICAgICAgICAgICAgICAgIG1pbmlmeTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdGFyZ2V0OiAnZXMyMDIwJyxcbiAgICAgICAgICAgICAgICBzb3VyY2VNYXA6IHRydWUsXG4gICAgICAgICAgICAgICAgc291cmNlTWFwTW9kZTogU291cmNlTWFwTW9kZS5JTkxJTkUsXG4gICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHByb3AuZW52aXJvbm1lbnQgfHwgcHJvcC5lbnZpcm9ubWVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxhbWJkYVByb3A7XG4gICAgfTtcblxuICAgIHByaXZhdGUgYXNzaWduTWFuYWdlZFBvbGljaWVzKGxhbWJkYTogTm9kZWpzRnVuY3Rpb24sIG1hbmFnZWRQb2xpY3lOYW1lczogc3RyaW5nW10pIHtcblxuICAgICAgICBtYW5hZ2VkUG9saWN5TmFtZXMuZm9yRWFjaCgobWFuYWdlZFBvbGljeU5hbWU6IHN0cmluZykgPT4ge1xuXG4gICAgICAgICAgICBsZXQgcG9saWN5ID0gTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUobWFuYWdlZFBvbGljeU5hbWUpO1xuXG4gICAgICAgICAgICBsYW1iZGEucm9sZT8uYWRkTWFuYWdlZFBvbGljeShwb2xpY3kpO1xuICAgICAgICB9KTtcblxuICAgIH1cblxufSJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQXV0aG9yaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXNvdXJjZXMvaGVscGVycy9jcmVhdGVBdXRob3JpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFrRDtBQUNsRCwrREFBbUc7QUFDbkcsaURBQXNFO0FBQ3RFLHFFQUFtRztBQUVuRyw2QkFBNkI7QUFLN0IsdURBQW9EO0FBQ3BELHlEQUFzRDtBQUV0RCxNQUFhLGdCQUFpQixTQUFRLDJCQUE2QjtJQUUvRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLEtBQWdCLEVBQVksU0FBd0I7UUFFOUUsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUZrQyxjQUFTLEdBQVQsU0FBUyxDQUFlO1FBSTlFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBRSxDQUFDO1FBRXBELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQWtCLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNwRTtJQUVMLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBZ0I7UUFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQWdCLEVBQUUsWUFBMkI7UUFDeEUsOENBQThDO1FBRTlDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFhLENBQUMsQ0FBQztRQUV0RSxNQUFNLFFBQVEsR0FBRywyQkFBWSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sTUFBTSxHQUFHLElBQUksa0NBQWMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRXBFLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSwwQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7UUFFckUsSUFBSSxZQUFZLEVBQUUsZUFBZSxJQUFJLFlBQVksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMxRSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNwRTtRQUVELE1BQU0sS0FBSyxHQUF5QjtZQUNoQyxPQUFPLEVBQUUsTUFBTTtZQUNmLGNBQWMsRUFBRSxZQUFZLENBQUMsSUFBSTtZQUNqQyxlQUFlLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLGNBQWMsRUFBRSwrQkFBYyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUM7U0FFekQsQ0FBQztRQUVGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxnQ0FBZSxDQUFDLEtBQUssRUFBRSxHQUFHLFlBQVksQ0FBQyxJQUFJLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU5RixPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7SUFFUyxZQUFZLENBQUksS0FBZ0IsRUFBRSxhQUFrQjtRQUUxRCxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFaEMsdUNBQXVDO1FBQ3ZDLHVEQUF1RDtRQUN2RCxNQUFNO0lBRVYsQ0FBQztJQUVPLHlCQUF5QixDQUFDLElBQW1CO1FBRWpELE1BQU0sVUFBVSxHQUF3QjtZQUNwQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQy9CLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWTtZQUN6RCxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0MsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksR0FBRztZQUM5QixXQUFXLEVBQUU7Z0JBQ1QsaUJBQWlCLEVBQUUsTUFBTTtnQkFDekIsR0FBRyxJQUFJLENBQUMsV0FBVzthQUN0QjtZQUNELFFBQVEsRUFBRTtnQkFDTixNQUFNLEVBQUUsS0FBSztnQkFDYixNQUFNLEVBQUUsUUFBUTtnQkFDaEIsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsYUFBYSxFQUFFLGlDQUFhLENBQUMsTUFBTTtnQkFDbkMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVc7YUFDcEQ7U0FDSixDQUFBO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUFBLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxNQUFzQixFQUFFLGtCQUE0QjtRQUU5RSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxpQkFBeUIsRUFBRSxFQUFFO1lBRXJELElBQUksTUFBTSxHQUFHLHVCQUFhLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUV2RSxNQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztDQUVKO0FBOUZELDRDQThGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk91dHB1dCwgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IElkZW50aXR5U291cmNlLCBUb2tlbkF1dGhvcml6ZXIsIFRva2VuQXV0aG9yaXplclByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5XCI7XG5pbXBvcnQgeyBNYW5hZ2VkUG9saWN5LCBTZXJ2aWNlUHJpbmNpcGFsIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uLCBOb2RlanNGdW5jdGlvblByb3BzLCBTb3VyY2VNYXBNb2RlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gXCIuLi8uLi9jb25maWcvQXBwQ29uZmlnXCI7XG5cbmltcG9ydCB7IFRzZ0xhbWJkYVByb3AgfSBmcm9tIFwiLi4vLi4vY29uZmlnL3R5cGVzXCI7XG5pbXBvcnQgeyBNaWNyb3NlcnZpY2VQcm9wcyB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL01pY3Jvc2VydmljZVByb3BzXCI7XG5pbXBvcnQgeyBCYXNlUmVzb3VyY2UgfSBmcm9tIFwiLi4vYmFzZS9iYXNlUmVzb3VyY2VcIjtcbmltcG9ydCB7IENyZWF0ZUxhbWJkYSB9IGZyb20gXCIuLi9sYW1iZGEvY3JlYXRlTGFtYmRhXCI7XG5cbmV4cG9ydCBjbGFzcyBDcmVhdGVBdXRob3JpemVyIGV4dGVuZHMgQmFzZVJlc291cmNlPFRva2VuQXV0aG9yaXplcj4ge1xuXG4gICAgZ2V0IEp3dEF1dGhvcml6ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZWRSZXNvdXJjZXNbMF07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IEFwcENvbmZpZywgcHJvdGVjdGVkIGF1dGhQcm9wczogVHNnTGFtYmRhUHJvcCkge1xuXG4gICAgICAgIHN1cGVyKHNjb3BlLCBwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5jcmVhdGVkUmVzb3VyY2VzID0gdGhpcy5jcmVhdGVSZXNvdXJjZShzY29wZSkhO1xuXG4gICAgICAgIGlmICh0aGlzLmNyZWF0ZWRSZXNvdXJjZXMpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0PFRva2VuQXV0aG9yaXplcj4oc2NvcGUsIHRoaXMuY3JlYXRlZFJlc291cmNlcyk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZShzY29wZTogQ29uc3RydWN0KTogVG9rZW5BdXRob3JpemVyW10gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIFt0aGlzLmNyZWF0ZUxhbWJkYUF1dGhvcml6ZXIoc2NvcGUsIHRoaXMuYXV0aFByb3BzKV07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVMYW1iZGFBdXRob3JpemVyKHNjb3BlOiBDb25zdHJ1Y3QsIGxhbWJkYUNvbmZpZzogVHNnTGFtYmRhUHJvcCkge1xuICAgICAgICAvL2NvbnNvbGUubG9nKFwiRU5URVIgY3JlYXRlTGFtYmRhQXV0aG9yaXplclwiKTtcblxuICAgICAgICBjb25zdCBhdXRob3JpemVyUHJvcHMgPSB0aGlzLmNyZWF0ZUxhbWJkYUZ1bmN0aW9uUHJvcHMobGFtYmRhQ29uZmlnISk7XG5cbiAgICAgICAgY29uc3QgbGFtYmRhSWQgPSBDcmVhdGVMYW1iZGEuZ2V0SWRGb3JMYW1iZGEobGFtYmRhQ29uZmlnLCB0aGlzLmNvbmZpZyk7XG4gICAgICAgIGNvbnN0IGxhbWJkYSA9IG5ldyBOb2RlanNGdW5jdGlvbihzY29wZSwgbGFtYmRhSWQsIGF1dGhvcml6ZXJQcm9wcyk7XG5cbiAgICAgICAgbGFtYmRhLmdyYW50SW52b2tlKG5ldyBTZXJ2aWNlUHJpbmNpcGFsKCdhcGlnYXRld2F5LmFtYXpvbmF3cy5jb20nKSk7XG5cbiAgICAgICAgaWYgKGxhbWJkYUNvbmZpZz8ubWFuYWdlZFBvbGljaWVzICYmIGxhbWJkYUNvbmZpZy5tYW5hZ2VkUG9saWNpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5hc3NpZ25NYW5hZ2VkUG9saWNpZXMobGFtYmRhLCBsYW1iZGFDb25maWcubWFuYWdlZFBvbGljaWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb3BzOiBUb2tlbkF1dGhvcml6ZXJQcm9wcyA9IHtcbiAgICAgICAgICAgIGhhbmRsZXI6IGxhbWJkYSxcbiAgICAgICAgICAgIGF1dGhvcml6ZXJOYW1lOiBsYW1iZGFDb25maWcubmFtZSxcbiAgICAgICAgICAgIHJlc3VsdHNDYWNoZVR0bDogRHVyYXRpb24uc2Vjb25kcygwKSwgXG4gICAgICAgICAgICBpZGVudGl0eVNvdXJjZTogSWRlbnRpdHlTb3VyY2UuaGVhZGVyKCdBdXRob3JpemF0aW9uJyksXG4gICAgICAgICAgICBcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBsYW1iZGFBdXRob3JpemVyID0gbmV3IFRva2VuQXV0aG9yaXplcihzY29wZSwgYCR7bGFtYmRhQ29uZmlnLm5hbWV9LWF1dGhvcml6ZXJgLCBwcm9wcyk7XG5cbiAgICAgICAgcmV0dXJuIGxhbWJkYUF1dGhvcml6ZXI7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZU91dHB1dDxUPihzY29wZTogQ29uc3RydWN0LCBjcmVhdGVkQXNzZXRzOiBUW10pOiB2b2lkIHtcblxuICAgICAgICBjb25zdCBlbnRpdHkgPSBjcmVhdGVkQXNzZXRzWzBdO1xuXG4gICAgICAgIC8vIG5ldyBDZm5PdXRwdXQoc2NvcGUsIGBhdXRob3JpemVyYCwge1xuICAgICAgICAvLyAgICAgdmFsdWU6IChlbnRpdHkgYXMgVG9rZW5BdXRob3JpemVyKS5hdXRob3JpemVyQXJuXG4gICAgICAgIC8vIH0pO1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVMYW1iZGFGdW5jdGlvblByb3BzKHByb3A6IFRzZ0xhbWJkYVByb3ApIHsgICAgICAgXG5cbiAgICAgICAgY29uc3QgbGFtYmRhUHJvcDogTm9kZWpzRnVuY3Rpb25Qcm9wcyA9IHtcbiAgICAgICAgICAgIGVudHJ5OiBwYXRoLmpvaW4ocHJvcC5jb2RlUGF0aCksXG4gICAgICAgICAgICBmdW5jdGlvbk5hbWU6IHByb3AubmFtZSxcbiAgICAgICAgICAgIGhhbmRsZXI6IHByb3AuaGFuZGxlcixcbiAgICAgICAgICAgIHJ1bnRpbWU6IHByb3AucnVudGltZSB8fCB0aGlzLmNvbmZpZy5HTE9CQUxTLnN0YWNrUnVudGltZSxcbiAgICAgICAgICAgIHRpbWVvdXQ6IHByb3AuZHVyYXRpb24gfHwgRHVyYXRpb24ubWludXRlcygyKSxcbiAgICAgICAgICAgIG1lbW9yeVNpemU6IHByb3AubWVtb3J5IHx8IDUxMixcbiAgICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICAgICAgXCJWRVJCT1NFX0xPR0dJTkdcIjogXCJ0cnVlXCIsICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC4uLnByb3AuZW52aXJvbm1lbnRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidW5kbGluZzoge1xuICAgICAgICAgICAgICAgIG1pbmlmeTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdGFyZ2V0OiAnZXMyMDIwJyxcbiAgICAgICAgICAgICAgICBzb3VyY2VNYXA6IHRydWUsXG4gICAgICAgICAgICAgICAgc291cmNlTWFwTW9kZTogU291cmNlTWFwTW9kZS5JTkxJTkUsXG4gICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHByb3AuZW52aXJvbm1lbnQgfHwgcHJvcC5lbnZpcm9ubWVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxhbWJkYVByb3A7XG4gICAgfTtcblxuICAgIHByaXZhdGUgYXNzaWduTWFuYWdlZFBvbGljaWVzKGxhbWJkYTogTm9kZWpzRnVuY3Rpb24sIG1hbmFnZWRQb2xpY3lOYW1lczogc3RyaW5nW10pIHtcblxuICAgICAgICBtYW5hZ2VkUG9saWN5TmFtZXMuZm9yRWFjaCgobWFuYWdlZFBvbGljeU5hbWU6IHN0cmluZykgPT4ge1xuXG4gICAgICAgICAgICBsZXQgcG9saWN5ID0gTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUobWFuYWdlZFBvbGljeU5hbWUpO1xuXG4gICAgICAgICAgICBsYW1iZGEucm9sZT8uYWRkTWFuYWdlZFBvbGljeShwb2xpY3kpO1xuICAgICAgICB9KTtcblxuICAgIH1cblxufSJdfQ==
@@ -16,5 +16,5 @@ export declare class CreateLambda extends BaseResource<NodejsFunction> {
16
16
  private createLambdaFunctionProps;
17
17
  private assignManagedPolicies;
18
18
  private createAlarmsForLambdas;
19
- static getIdForLambda(lambdaProp: TsgLambdaProp): string;
19
+ static getIdForLambda(lambdaProp: TsgLambdaProp, appConfig: AppConfig): string;
20
20
  }
@@ -38,7 +38,7 @@ class CreateLambda extends baseResource_1.BaseResource {
38
38
  const createdLambdas = this.props.prop.RESOURCES.LAMBDA.map((config) => {
39
39
  //console.log("ENTER createLambdaFunctions.map for " + config.name);
40
40
  let lambdaProps = this.createLambdaProps(config, role, layers);
41
- const lambdaId = CreateLambda.getIdForLambda(config);
41
+ const lambdaId = CreateLambda.getIdForLambda(config, this.config);
42
42
  let fctn = new aws_lambda_nodejs_1.NodejsFunction(scope, lambdaId, lambdaProps);
43
43
  // If we have managed policies, we add them.
44
44
  if (config.managedPolicies && config.managedPolicies?.length > 0) {
@@ -127,9 +127,9 @@ class CreateLambda extends baseResource_1.BaseResource {
127
127
  // invocationAlarm.addAlarmAction(alarmAction);
128
128
  });
129
129
  }
130
- static getIdForLambda(lambdaProp) {
131
- return `${lambdaProp.name}`.toLowerCase();
130
+ static getIdForLambda(lambdaProp, appConfig) {
131
+ return `${appConfig.AppPrefix}-${lambdaProp.name}`.toLowerCase();
132
132
  }
133
133
  }
134
134
  exports.CreateLambda = CreateLambda;
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9sYW1iZGEvY3JlYXRlTGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFrRDtBQUVsRCwrREFBcUY7QUFDckYsaURBQTJEO0FBRTNELHFFQUFtRztBQUVuRyw2QkFBNkI7QUFNN0IsdURBQW9EO0FBR3BELE1BQWEsWUFBYSxTQUFRLDJCQUE0QjtJQUsxRCxZQUFvQixLQUFxQixFQUFFLE1BQWlCO1FBQ3hELEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRFgsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFIbEMsWUFBTyxHQUFxQixFQUFFLENBQUM7UUFNbEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFFOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLGNBQWMsQ0FBQyxLQUFnQjtRQUVyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRVMsWUFBWSxDQUFJLEtBQWdCLEVBQUUsYUFBa0I7UUFDMUQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUU3QixJQUFJLHVCQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRyxFQUFFLEVBQUU7Z0JBQ2xDLGFBQWE7Z0JBQ2IsS0FBSyxFQUFFLENBQUMsQ0FBQyxZQUFZO2FBQ3hCLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUFxQjtRQUV2QyxNQUFNLGNBQWMsR0FBcUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFMUcsT0FBTyxjQUFjLENBQUM7SUFDMUIsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQWdCLEVBQUUsSUFBWSxFQUFFLE1BQXVCO1FBRWpGLDZDQUE2QztRQUM3QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQW9CLEVBQUUsRUFBRTtZQUVqRixvRUFBb0U7WUFDcEUsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFFL0QsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyRCxJQUFJLElBQUksR0FBRyxJQUFJLGtDQUFjLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUU1RCw2Q0FBNkM7WUFDN0MsSUFBSSxNQUFNLENBQUMsZUFBZSxJQUFJLE1BQU0sQ0FBQyxlQUFlLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFFOUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDNUQ7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sY0FBYyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBbUIsRUFBRSxJQUFZLEVBQUUsTUFBdUIsRUFBRSxLQUFzQjtRQUV4RyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztZQUNsQyxJQUFJO1lBQ0osSUFBSTtZQUNKLE1BQU07WUFDTixLQUFLO1NBQ1IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHlCQUF5QixDQUFDLEtBQWdDO1FBQzlELE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUVyQyxNQUFNLFVBQVUsR0FBd0I7WUFDcEMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUMvQixZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUM5RCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWTtZQUN6RCxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0MsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksR0FBRztZQUM5QixXQUFXLEVBQUU7Z0JBQ1QsaUJBQWlCLEVBQUUsTUFBTTtnQkFDekIsR0FBRyxJQUFJLENBQUMsV0FBVzthQUN0QjtZQUNELFFBQVEsRUFBRTtnQkFDTixNQUFNLEVBQUUsS0FBSztnQkFDYixNQUFNLEVBQUUsUUFBUTtnQkFDaEIsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsYUFBYSxFQUFFLGlDQUFhLENBQUMsTUFBTTtnQkFDbkMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVc7YUFDcEQ7WUFDRCxJQUFJO1lBQ0osTUFBTTtTQUVULENBQUE7UUFHRCxPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0lBQUEsQ0FBQztJQUVNLHFCQUFxQixDQUFDLE1BQXNCLEVBQUUsa0JBQTRCO1FBRTlFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLGlCQUF5QixFQUFFLEVBQUU7WUFFckQsSUFBSSxNQUFNLEdBQUcsdUJBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBRXZFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFFUCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsT0FBeUI7UUFFcEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUU1QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO2dCQUNwQyxNQUFNLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBRTlCLENBQUMsQ0FBQztZQUVILE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7Z0JBQ3pDLE1BQU0sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDOUIsQ0FBQyxDQUFDO1lBRUgsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUM7Z0JBQzlDLE1BQU0sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDOUIsQ0FBQyxDQUFDO1lBRUgsSUFBSSxzQkFBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksR0FBRyxjQUFjLEVBQUU7Z0JBQ3ZFLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixTQUFTLEVBQUUsQ0FBQztnQkFDWixrQkFBa0IsRUFBRSxtQ0FBa0IsQ0FBQyxrQ0FBa0M7Z0JBQ3pFLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksR0FBRywyQkFBMkI7Z0JBQzVFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLEdBQUcsY0FBYzthQUMzRCxDQUFDLENBQUM7WUFFSCxJQUFJLHNCQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxHQUFHLGlCQUFpQixFQUFFO2dCQUMxRSxNQUFNLEVBQUUsY0FBYztnQkFDdEIsU0FBUyxFQUFFLENBQUM7Z0JBQ1osa0JBQWtCLEVBQUUsbUNBQWtCLENBQUMsa0NBQWtDO2dCQUN6RSxpQkFBaUIsRUFBRSxDQUFDO2dCQUNwQixnQkFBZ0IsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLEdBQUcsb0NBQW9DO2dCQUNyRixTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxHQUFHLGlCQUFpQjthQUM5RCxDQUFDLENBQUM7WUFFSCxNQUFNLGVBQWUsR0FBRyxJQUFJLHNCQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxHQUFHLG1CQUFtQixFQUFFO2dCQUNwRyxNQUFNLEVBQUUsV0FBVztnQkFDbkIsU0FBUyxFQUFFLElBQUk7Z0JBQ2Ysa0JBQWtCLEVBQUUsbUNBQWtCLENBQUMsa0NBQWtDO2dCQUN6RSxpQkFBaUIsRUFBRSxDQUFDO2dCQUNwQixnQkFBZ0IsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLEdBQUcsMkJBQTJCO2dCQUM1RSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxHQUFHLDBCQUEwQjthQUN2RSxDQUFDLENBQUM7WUFFSCx3Q0FBd0M7WUFDeEMsK0NBQStDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBeUI7UUFDbEQsT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0NBQ0o7QUF2S0Qsb0NBdUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuT3V0cHV0LCBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgVG9rZW5BdXRob3JpemVyIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5XCI7XG5pbXBvcnQgeyBBbGFybSwgQ29tcGFyaXNvbk9wZXJhdG9yLCBJQWxhcm1BY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcbmltcG9ydCB7IElSb2xlLCBNYW5hZ2VkUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IExheWVyVmVyc2lvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBOb2RlanNGdW5jdGlvbiwgTm9kZWpzRnVuY3Rpb25Qcm9wcywgU291cmNlTWFwTW9kZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tIFwiLi4vLi4vY29uZmlnL0FwcENvbmZpZ1wiO1xuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcCB9IGZyb20gXCIuLi8uLi9jb25maWcvdHlwZXNcIjtcblxuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcHMgfSBmcm9tIFwiLi4vLi4vY29uZmlnL3R5cGVzL1RzZ0xhbWJkYVByb3BzXCI7XG5pbXBvcnQgeyBDcmVhdGVMYW1iZGFGdW5jdGlvbklucHV0IH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvQ3JlYXRlTGFtYmRhRnVuY3Rpb25JbnB1dFwiO1xuaW1wb3J0IHsgQmFzZVJlc291cmNlIH0gZnJvbSBcIi4uL2Jhc2UvYmFzZVJlc291cmNlXCI7XG5cblxuZXhwb3J0IGNsYXNzIENyZWF0ZUxhbWJkYSBleHRlbmRzIEJhc2VSZXNvdXJjZTxOb2RlanNGdW5jdGlvbj4ge1xuXG4gICAgcHVibGljIExhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10gPSBbXTtcbiAgICBcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJvcHM6IFRzZ0xhbWJkYVByb3BzLCBjb25maWc6IEFwcENvbmZpZykge1xuICAgICAgICBzdXBlcihwcm9wcy5zY29wZSwgY29uZmlnKTtcblxuICAgICAgICBjb25zdCByZXNvdXJjZXMgPSB0aGlzLmNyZWF0ZVJlc291cmNlKHByb3BzLnNjb3BlKTtcblxuICAgICAgICB0aGlzLkxhbWJkYXMgPSBbLi4ucmVzb3VyY2VzXTtcblxuICAgICAgICB0aGlzLmNyZWF0ZUFsYXJtc0ZvckxhbWJkYXModGhpcy5MYW1iZGFzKTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0KHByb3BzLnNjb3BlLCByZXNvdXJjZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZShzY29wZTogQ29uc3RydWN0KTogTm9kZWpzRnVuY3Rpb25bXSB7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5jcmVhdGVMYW1iZGFzKHRoaXMucHJvcHMpO1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlT3V0cHV0PFQ+KHNjb3BlOiBDb25zdHJ1Y3QsIGNyZWF0ZWRBc3NldHM6IFRbXSk6IHZvaWQge1xuICAgICAgICBjcmVhdGVkQXNzZXRzLmZvckVhY2goKHgsIGlkeCkgPT4ge1xuXG4gICAgICAgICAgICBuZXcgQ2ZuT3V0cHV0KHNjb3BlLCBgbGFtYmRhLSR7aWR4fWAsIHtcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgdmFsdWU6IHguZnVuY3Rpb25OYW1lXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVMYW1iZGFzKHByb3BzOiBUc2dMYW1iZGFQcm9wcyk6IE5vZGVqc0Z1bmN0aW9uW10ge1xuICAgICAgICBcbiAgICAgICAgY29uc3QgY3JlYXRlZExhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10gPSB0aGlzLmNyZWF0ZUxhbWJkYUZ1bmN0aW9ucyh0aGlzLnNjb3BlLCBwcm9wcy5yb2xlLCBwcm9wcy5sYXllcnMpO1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVkTGFtYmRhcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxhbWJkYUZ1bmN0aW9ucyhzY29wZTogQ29uc3RydWN0LCByb2xlPzogSVJvbGUsIGxheWVycz86IExheWVyVmVyc2lvbltdKSB7XG5cbiAgICAgICAgLy9jb25zb2xlLmxvZyhcIkVOVEVSIGNyZWF0ZUxhbWJkYUZ1bmN0aW9uc1wiKTtcbiAgICAgICAgY29uc3QgY3JlYXRlZExhbWJkYXMgPSB0aGlzLnByb3BzLnByb3AuUkVTT1VSQ0VTLkxBTUJEQS5tYXAoKGNvbmZpZzpUc2dMYW1iZGFQcm9wKSA9PiB7XG5cbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJFTlRFUiBjcmVhdGVMYW1iZGFGdW5jdGlvbnMubWFwIGZvciBcIiArIGNvbmZpZy5uYW1lKTtcbiAgICAgICAgICAgIGxldCBsYW1iZGFQcm9wcyA9IHRoaXMuY3JlYXRlTGFtYmRhUHJvcHMoY29uZmlnLCByb2xlLCBsYXllcnMpO1xuXG4gICAgICAgICAgICBjb25zdCBsYW1iZGFJZCA9IENyZWF0ZUxhbWJkYS5nZXRJZEZvckxhbWJkYShjb25maWcpO1xuICAgICAgICAgICAgbGV0IGZjdG4gPSBuZXcgTm9kZWpzRnVuY3Rpb24oc2NvcGUsIGxhbWJkYUlkLCBsYW1iZGFQcm9wcyk7XG5cbiAgICAgICAgICAgIC8vICBJZiB3ZSBoYXZlIG1hbmFnZWQgcG9saWNpZXMsIHdlIGFkZCB0aGVtLlxuICAgICAgICAgICAgaWYgKGNvbmZpZy5tYW5hZ2VkUG9saWNpZXMgJiYgY29uZmlnLm1hbmFnZWRQb2xpY2llcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHRoaXMuYXNzaWduTWFuYWdlZFBvbGljaWVzKGZjdG4sIGNvbmZpZy5tYW5hZ2VkUG9saWNpZXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmN0bjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGNyZWF0ZWRMYW1iZGFzIHx8IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlTGFtYmRhUHJvcHMocHJvcDogVHNnTGFtYmRhUHJvcCwgcm9sZT86IElSb2xlLCBsYXllcnM/OiBMYXllclZlcnNpb25bXSwgcHJvcHM/OiBUc2dMYW1iZGFQcm9wcykge1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUxhbWJkYUZ1bmN0aW9uUHJvcHMoe1xuICAgICAgICAgICAgcHJvcCwgXG4gICAgICAgICAgICByb2xlLFxuICAgICAgICAgICAgbGF5ZXJzLCBcbiAgICAgICAgICAgIHByb3BzXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlTGFtYmRhRnVuY3Rpb25Qcm9wcyhwcm9wczogQ3JlYXRlTGFtYmRhRnVuY3Rpb25JbnB1dCkge1xuICAgICAgICBjb25zdCB7IHByb3AsIHJvbGUsIGxheWVycyB9ID0gcHJvcHM7XG5cbiAgICAgICAgY29uc3QgbGFtYmRhUHJvcDogTm9kZWpzRnVuY3Rpb25Qcm9wcyA9IHtcbiAgICAgICAgICAgIGVudHJ5OiBwYXRoLmpvaW4ocHJvcC5jb2RlUGF0aCksXG4gICAgICAgICAgICBmdW5jdGlvbk5hbWU6IGAke3RoaXMucHJvcHMuYXBwQ29uZmlnLkFwcFByZWZpeH0tJHtwcm9wLm5hbWV9YCxcbiAgICAgICAgICAgIGhhbmRsZXI6IHByb3AuaGFuZGxlcixcbiAgICAgICAgICAgIHJ1bnRpbWU6IHByb3AucnVudGltZSB8fCB0aGlzLmNvbmZpZy5HTE9CQUxTLnN0YWNrUnVudGltZSxcbiAgICAgICAgICAgIHRpbWVvdXQ6IHByb3AuZHVyYXRpb24gfHwgRHVyYXRpb24ubWludXRlcygyKSxcbiAgICAgICAgICAgIG1lbW9yeVNpemU6IHByb3AubWVtb3J5IHx8IDUxMixcbiAgICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICAgICAgXCJWRVJCT1NFX0xPR0dJTkdcIjogXCJ0cnVlXCIsICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC4uLnByb3AuZW52aXJvbm1lbnRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidW5kbGluZzoge1xuICAgICAgICAgICAgICAgIG1pbmlmeTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdGFyZ2V0OiAnZXMyMDIwJyxcbiAgICAgICAgICAgICAgICBzb3VyY2VNYXA6IHRydWUsXG4gICAgICAgICAgICAgICAgc291cmNlTWFwTW9kZTogU291cmNlTWFwTW9kZS5JTkxJTkUsXG4gICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHByb3AuZW52aXJvbm1lbnQgfHwgcHJvcC5lbnZpcm9ubWVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByb2xlLFxuICAgICAgICAgICAgbGF5ZXJzXG5cbiAgICAgICAgfVxuXG4gICAgICAgIFxuICAgICAgICByZXR1cm4gbGFtYmRhUHJvcDtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBhc3NpZ25NYW5hZ2VkUG9saWNpZXMobGFtYmRhOiBOb2RlanNGdW5jdGlvbiwgbWFuYWdlZFBvbGljeU5hbWVzOiBzdHJpbmdbXSkge1xuXG4gICAgICAgIG1hbmFnZWRQb2xpY3lOYW1lcy5mb3JFYWNoKChtYW5hZ2VkUG9saWN5TmFtZTogc3RyaW5nKSA9PiB7XG5cbiAgICAgICAgICAgIGxldCBwb2xpY3kgPSBNYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShtYW5hZ2VkUG9saWN5TmFtZSk7XG5cbiAgICAgICAgICAgIGxhbWJkYS5yb2xlPy5hZGRNYW5hZ2VkUG9saWN5KHBvbGljeSk7XG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVBbGFybXNGb3JMYW1iZGFzKGxhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10pIHsgICAgICAgIFxuXG4gICAgICAgIGxhbWJkYXMuZm9yRWFjaCgobGFtYmRhLCBpZHgpID0+IHtcblxuICAgICAgICAgICAgY29uc3QgZXJyb3JNZXRyaWMgPSBsYW1iZGEubWV0cmljRXJyb3JzKHtcbiAgICAgICAgICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMyksXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgZHVyYXRpb25NZXRyaWMgPSBsYW1iZGEubWV0cmljRHVyYXRpb24oe1xuICAgICAgICAgICAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygzKSwgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgaW52b2NhdGlvbk1ldHJpYyA9IGxhbWJkYS5tZXRyaWNJbnZvY2F0aW9ucyh7XG4gICAgICAgICAgICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDMpLCAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBuZXcgQWxhcm0odGhpcy5wcm9wcy5zY29wZSwgYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke2lkeH0tZXJyb3ItYWxhcm1gLCB7XG4gICAgICAgICAgICAgICAgbWV0cmljOiBlcnJvck1ldHJpYywgXG4gICAgICAgICAgICAgICAgdGhyZXNob2xkOiA1LFxuICAgICAgICAgICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICAgICAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDMsXG4gICAgICAgICAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke2lkeH0gZXJyb3JzIG92ZXIgMyBtaW4gcGVyaW9kYCxcbiAgICAgICAgICAgICAgICBhbGFybU5hbWU6IGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9LWVycm9yLWFsYXJtYFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG5ldyBBbGFybSh0aGlzLnByb3BzLnNjb3BlLCBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7aWR4fS1kdXJhdGlvbi1hbGFybWAsIHtcbiAgICAgICAgICAgICAgICBtZXRyaWM6IGR1cmF0aW9uTWV0cmljLCBcbiAgICAgICAgICAgICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICAgICAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBDb21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICAgICAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogMyxcbiAgICAgICAgICAgICAgICBhbGFybURlc2NyaXB0aW9uOiBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7aWR4fSBkdXJhdGlvbiBlcnJvcnMgb3ZlciAzIG1pbiBwZXJpb2RgLFxuICAgICAgICAgICAgICAgIGFsYXJtTmFtZTogYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke2lkeH0tZHVyYXRpb24tYWxhcm1gXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgaW52b2NhdGlvbkFsYXJtID0gbmV3IEFsYXJtKHRoaXMucHJvcHMuc2NvcGUsIGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9LWludm9jYXRpb24tYWxhcm1gLCB7XG4gICAgICAgICAgICAgICAgbWV0cmljOiBlcnJvck1ldHJpYywgXG4gICAgICAgICAgICAgICAgdGhyZXNob2xkOiAxMDAwLFxuICAgICAgICAgICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICAgICAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDMsXG4gICAgICAgICAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke2lkeH0gZXJyb3JzIG92ZXIgMyBtaW4gcGVyaW9kYCxcbiAgICAgICAgICAgICAgICBhbGFybU5hbWU6IGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9LWludm9jYXRpb24tTWV0cmljLWFsYXJtYFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIGNvbnN0IGFsYXJtQWN0aW9uOiBJQWxhcm1BY3Rpb24gPSB7fTtcbiAgICAgICAgICAgIC8vIGludm9jYXRpb25BbGFybS5hZGRBbGFybUFjdGlvbihhbGFybUFjdGlvbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0SWRGb3JMYW1iZGEobGFtYmRhUHJvcDogVHNnTGFtYmRhUHJvcCkgeyAgICAgICBcbiAgICAgICAgcmV0dXJuIGAke2xhbWJkYVByb3AubmFtZX1gLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxufSJdfQ==
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9sYW1iZGEvY3JlYXRlTGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFrRDtBQUVsRCwrREFBcUY7QUFDckYsaURBQTJEO0FBRTNELHFFQUFtRztBQUVuRyw2QkFBNkI7QUFNN0IsdURBQW9EO0FBR3BELE1BQWEsWUFBYSxTQUFRLDJCQUE0QjtJQUsxRCxZQUFvQixLQUFxQixFQUFFLE1BQWlCO1FBQ3hELEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRFgsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFIbEMsWUFBTyxHQUFxQixFQUFFLENBQUM7UUFNbEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFFOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLGNBQWMsQ0FBQyxLQUFnQjtRQUVyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRVMsWUFBWSxDQUFJLEtBQWdCLEVBQUUsYUFBa0I7UUFDMUQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUU3QixJQUFJLHVCQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRyxFQUFFLEVBQUU7Z0JBQ2xDLGFBQWE7Z0JBQ2IsS0FB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LENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0NBQ0o7QUF2S0Qsb0NBdUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuT3V0cHV0LCBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgVG9rZW5BdXRob3JpemVyIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5XCI7XG5pbXBvcnQgeyBBbGFybSwgQ29tcGFyaXNvbk9wZXJhdG9yLCBJQWxhcm1BY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcbmltcG9ydCB7IElSb2xlLCBNYW5hZ2VkUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IExheWVyVmVyc2lvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBOb2RlanNGdW5jdGlvbiwgTm9kZWpzRnVuY3Rpb25Qcm9wcywgU291cmNlTWFwTW9kZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tIFwiLi4vLi4vY29uZmlnL0FwcENvbmZpZ1wiO1xuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcCB9IGZyb20gXCIuLi8uLi9jb25maWcvdHlwZXNcIjtcblxuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcHMgfSBmcm9tIFwiLi4vLi4vY29uZmlnL3R5cGVzL1RzZ0xhbWJkYVByb3BzXCI7XG5pbXBvcnQgeyBDcmVhdGVMYW1iZGFGdW5jdGlvbklucHV0IH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvQ3JlYXRlTGFtYmRhRnVuY3Rpb25JbnB1dFwiO1xuaW1wb3J0IHsgQmFzZVJlc291cmNlIH0gZnJvbSBcIi4uL2Jhc2UvYmFzZVJlc291cmNlXCI7XG5cblxuZXhwb3J0IGNsYXNzIENyZWF0ZUxhbWJkYSBleHRlbmRzIEJhc2VSZXNvdXJjZTxOb2RlanNGdW5jdGlvbj4ge1xuXG4gICAgcHVibGljIExhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10gPSBbXTtcbiAgICBcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJvcHM6IFRzZ0xhbWJkYVByb3BzLCBjb25maWc6IEFwcENvbmZpZykge1xuICAgICAgICBzdXBlcihwcm9wcy5zY29wZSwgY29uZmlnKTtcblxuICAgICAgICBjb25zdCByZXNvdXJjZXMgPSB0aGlzLmNyZWF0ZVJlc291cmNlKHByb3BzLnNjb3BlKTtcblxuICAgICAgICB0aGlzLkxhbWJkYXMgPSBbLi4ucmVzb3VyY2VzXTtcblxuICAgICAgICB0aGlzLmNyZWF0ZUFsYXJtc0ZvckxhbWJkYXModGhpcy5MYW1iZGFzKTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0KHByb3BzLnNjb3BlLCByZXNvdXJjZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZShzY29wZTogQ29uc3RydWN0KTogTm9kZWpzRnVuY3Rpb25bXSB7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5jcmVhdGVMYW1iZGFzKHRoaXMucHJvcHMpO1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlT3V0cHV0PFQ+KHNjb3BlOiBDb25zdHJ1Y3QsIGNyZWF0ZWRBc3NldHM6IFRbXSk6IHZvaWQge1xuICAgICAgICBjcmVhdGVkQXNzZXRzLmZvckVhY2goKHgsIGlkeCkgPT4ge1xuXG4gICAgICAgICAgICBuZXcgQ2ZuT3V0cHV0KHNjb3BlLCBgbGFtYmRhLSR7aWR4fWAsIHtcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgdmFsdWU6IHguZnVuY3Rpb25OYW1lXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVMYW1iZGFzKHByb3BzOiBUc2dMYW1iZGFQcm9wcyk6IE5vZGVqc0Z1bmN0aW9uW10ge1xuICAgICAgICBcbiAgICAgICAgY29uc3QgY3JlYXRlZExhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10gPSB0aGlzLmNyZWF0ZUxhbWJkYUZ1bmN0aW9ucyh0aGlzLnNjb3BlLCBwcm9wcy5yb2xlLCBwcm9wcy5sYXllcnMpO1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVkTGFtYmRhcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxhbWJkYUZ1bmN0aW9ucyhzY29wZTogQ29uc3RydWN0LCByb2xlPzogSVJvbGUsIGxheWVycz86IExheWVyVmVyc2lvbltdKSB7XG5cbiAgICAgICAgLy9jb25zb2xlLmxvZyhcIkVOVEVSIGNyZWF0ZUxhbWJkYUZ1bmN0aW9uc1wiKTtcbiAgICAgICAgY29uc3QgY3JlYXRlZExhbWJkYXMgPSB0aGlzLnByb3BzLnByb3AuUkVTT1VSQ0VTLkxBTUJEQS5tYXAoKGNvbmZpZzpUc2dMYW1iZGFQcm9wKSA9PiB7XG5cbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJFTlRFUiBjcmVhdGVMYW1iZGFGdW5jdGlvbnMubWFwIGZvciBcIiArIGNvbmZpZy5uYW1lKTtcbiAgICAgICAgICAgIGxldCBsYW1iZGFQcm9wcyA9IHRoaXMuY3JlYXRlTGFtYmRhUHJvcHMoY29uZmlnLCByb2xlLCBsYXllcnMpO1xuXG4gICAgICAgICAgICBjb25zdCBsYW1iZGFJZCA9IENyZWF0ZUxhbWJkYS5nZXRJZEZvckxhbWJkYShjb25maWcsIHRoaXMuY29uZmlnKTtcbiAgICAgICAgICAgIGxldCBmY3RuID0gbmV3IE5vZGVqc0Z1bmN0aW9uKHNjb3BlLCBsYW1iZGFJZCwgbGFtYmRhUHJvcHMpO1xuXG4gICAgICAgICAgICAvLyAgSWYgd2UgaGF2ZSBtYW5hZ2VkIHBvbGljaWVzLCB3ZSBhZGQgdGhlbS5cbiAgICAgICAgICAgIGlmIChjb25maWcubWFuYWdlZFBvbGljaWVzICYmIGNvbmZpZy5tYW5hZ2VkUG9saWNpZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB0aGlzLmFzc2lnbk1hbmFnZWRQb2xpY2llcyhmY3RuLCBjb25maWcubWFuYWdlZFBvbGljaWVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZjdG47XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVkTGFtYmRhcyB8fCBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxhbWJkYVByb3BzKHByb3A6IFRzZ0xhbWJkYVByb3AsIHJvbGU/OiBJUm9sZSwgbGF5ZXJzPzogTGF5ZXJWZXJzaW9uW10sIHByb3BzPzogVHNnTGFtYmRhUHJvcHMpIHtcblxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVMYW1iZGFGdW5jdGlvblByb3BzKHtcbiAgICAgICAgICAgIHByb3AsIFxuICAgICAgICAgICAgcm9sZSxcbiAgICAgICAgICAgIGxheWVycywgXG4gICAgICAgICAgICBwcm9wc1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxhbWJkYUZ1bmN0aW9uUHJvcHMocHJvcHM6IENyZWF0ZUxhbWJkYUZ1bmN0aW9uSW5wdXQpIHtcbiAgICAgICAgY29uc3QgeyBwcm9wLCByb2xlLCBsYXllcnMgfSA9IHByb3BzO1xuXG4gICAgICAgIGNvbnN0IGxhbWJkYVByb3A6IE5vZGVqc0Z1bmN0aW9uUHJvcHMgPSB7XG4gICAgICAgICAgICBlbnRyeTogcGF0aC5qb2luKHByb3AuY29kZVBhdGgpLFxuICAgICAgICAgICAgZnVuY3Rpb25OYW1lOiBgJHt0aGlzLnByb3BzLmFwcENvbmZpZy5BcHBQcmVmaXh9LSR7cHJvcC5uYW1lfWAsXG4gICAgICAgICAgICBoYW5kbGVyOiBwcm9wLmhhbmRsZXIsXG4gICAgICAgICAgICBydW50aW1lOiBwcm9wLnJ1bnRpbWUgfHwgdGhpcy5jb25maWcuR0xPQkFMUy5zdGFja1J1bnRpbWUsXG4gICAgICAgICAgICB0aW1lb3V0OiBwcm9wLmR1cmF0aW9uIHx8IER1cmF0aW9uLm1pbnV0ZXMoMiksXG4gICAgICAgICAgICBtZW1vcnlTaXplOiBwcm9wLm1lbW9yeSB8fCA1MTIsXG4gICAgICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgICAgICAgIFwiVkVSQk9TRV9MT0dHSU5HXCI6IFwidHJ1ZVwiLCAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAuLi5wcm9wLmVudmlyb25tZW50XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgICAgICAgICBtaW5pZnk6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHRhcmdldDogJ2VzMjAyMCcsXG4gICAgICAgICAgICAgICAgc291cmNlTWFwOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvdXJjZU1hcE1vZGU6IFNvdXJjZU1hcE1vZGUuSU5MSU5FLFxuICAgICAgICAgICAgICAgIGVudmlyb25tZW50OiBwcm9wLmVudmlyb25tZW50IHx8IHByb3AuZW52aXJvbm1lbnQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcm9sZSxcbiAgICAgICAgICAgIGxheWVyc1xuXG4gICAgICAgIH1cblxuICAgICAgICBcbiAgICAgICAgcmV0dXJuIGxhbWJkYVByb3A7XG4gICAgfTtcblxuICAgIHByaXZhdGUgYXNzaWduTWFuYWdlZFBvbGljaWVzKGxhbWJkYTogTm9kZWpzRnVuY3Rpb24sIG1hbmFnZWRQb2xpY3lOYW1lczogc3RyaW5nW10pIHtcblxuICAgICAgICBtYW5hZ2VkUG9saWN5TmFtZXMuZm9yRWFjaCgobWFuYWdlZFBvbGljeU5hbWU6IHN0cmluZykgPT4ge1xuXG4gICAgICAgICAgICBsZXQgcG9saWN5ID0gTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUobWFuYWdlZFBvbGljeU5hbWUpO1xuXG4gICAgICAgICAgICBsYW1iZGEucm9sZT8uYWRkTWFuYWdlZFBvbGljeShwb2xpY3kpO1xuICAgICAgICB9KTtcblxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQWxhcm1zRm9yTGFtYmRhcyhsYW1iZGFzOiBOb2RlanNGdW5jdGlvbltdKSB7ICAgICAgICBcblxuICAgICAgICBsYW1iZGFzLmZvckVhY2goKGxhbWJkYSwgaWR4KSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWV0cmljID0gbGFtYmRhLm1ldHJpY0Vycm9ycyh7XG4gICAgICAgICAgICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDMpLFxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGR1cmF0aW9uTWV0cmljID0gbGFtYmRhLm1ldHJpY0R1cmF0aW9uKHtcbiAgICAgICAgICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMyksICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGludm9jYXRpb25NZXRyaWMgPSBsYW1iZGEubWV0cmljSW52b2NhdGlvbnMoe1xuICAgICAgICAgICAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygzKSwgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgbmV3IEFsYXJtKHRoaXMucHJvcHMuc2NvcGUsIGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9LWVycm9yLWFsYXJtYCwge1xuICAgICAgICAgICAgICAgIG1ldHJpYzogZXJyb3JNZXRyaWMsIFxuICAgICAgICAgICAgICAgIHRocmVzaG9sZDogNSxcbiAgICAgICAgICAgICAgICBjb21wYXJpc29uT3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgICAgICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAzLFxuICAgICAgICAgICAgICAgIGFsYXJtRGVzY3JpcHRpb246IGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9IGVycm9ycyBvdmVyIDMgbWluIHBlcmlvZGAsXG4gICAgICAgICAgICAgICAgYWxhcm1OYW1lOiBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7aWR4fS1lcnJvci1hbGFybWBcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBuZXcgQWxhcm0odGhpcy5wcm9wcy5zY29wZSwgYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke2lkeH0tZHVyYXRpb24tYWxhcm1gLCB7XG4gICAgICAgICAgICAgICAgbWV0cmljOiBkdXJhdGlvbk1ldHJpYywgXG4gICAgICAgICAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICAgICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICAgICAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDMsXG4gICAgICAgICAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke2lkeH0gZHVyYXRpb24gZXJyb3JzIG92ZXIgMyBtaW4gcGVyaW9kYCxcbiAgICAgICAgICAgICAgICBhbGFybU5hbWU6IGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9LWR1cmF0aW9uLWFsYXJtYFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGludm9jYXRpb25BbGFybSA9IG5ldyBBbGFybSh0aGlzLnByb3BzLnNjb3BlLCBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7aWR4fS1pbnZvY2F0aW9uLWFsYXJtYCwge1xuICAgICAgICAgICAgICAgIG1ldHJpYzogZXJyb3JNZXRyaWMsIFxuICAgICAgICAgICAgICAgIHRocmVzaG9sZDogMTAwMCxcbiAgICAgICAgICAgICAgICBjb21wYXJpc29uT3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgICAgICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAzLFxuICAgICAgICAgICAgICAgIGFsYXJtRGVzY3JpcHRpb246IGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9IGVycm9ycyBvdmVyIDMgbWluIHBlcmlvZGAsXG4gICAgICAgICAgICAgICAgYWxhcm1OYW1lOiBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7aWR4fS1pbnZvY2F0aW9uLU1ldHJpYy1hbGFybWBcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBjb25zdCBhbGFybUFjdGlvbjogSUFsYXJtQWN0aW9uID0ge307XG4gICAgICAgICAgICAvLyBpbnZvY2F0aW9uQWxhcm0uYWRkQWxhcm1BY3Rpb24oYWxhcm1BY3Rpb24pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldElkRm9yTGFtYmRhKGxhbWJkYVByb3A6IFRzZ0xhbWJkYVByb3AsIGFwcENvbmZpZzogQXBwQ29uZmlnKSB7ICAgICAgIFxuICAgICAgICByZXR1cm4gYCR7YXBwQ29uZmlnLkFwcFByZWZpeH0tJHtsYW1iZGFQcm9wLm5hbWV9YC50b0xvd2VyQ2FzZSgpO1xuICAgIH1cbn0iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sylvesterllc/aws-constructs",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "AWS Constructs",
5
5
  "main": "dist/index.js",
6
6
  "keywords": [
@@ -42,7 +42,8 @@ export class CreateMicroServiceBundle {
42
42
 
43
43
  // Create Authorizer
44
44
  if (this.requireAuthorizer) {
45
- authorizer = new CreateAuthorizer(scope, this.appConfig, this.props.RESOURCES.AUTHORIZER!).JwtAuthorizer;
45
+ authorizer = new CreateAuthorizer(scope, this.appConfig, this.props.RESOURCES.AUTHORIZER!).JwtAuthorizer;
46
+ authorizer._attachToApi(this.gatewayApi);
46
47
  }
47
48
 
48
49
  // Create Lambdas
@@ -159,7 +160,7 @@ export class CreateMicroServiceBundle {
159
160
 
160
161
  this.appConfig.lambdaConfigs?.forEach((prop: TsgLambdaProp) => {
161
162
 
162
- const lambdaId = CreateLambda.getIdForLambda(prop);
163
+ const lambdaId = CreateLambda.getIdForLambda(prop, this.appConfig);
163
164
 
164
165
  if (!lambdaId) {
165
166
  throw new Error(`Can't find lambda`);
@@ -179,7 +180,7 @@ export class CreateMicroServiceBundle {
179
180
 
180
181
  lambdas.forEach((lambda) => {
181
182
  const result = secret.grantRead(lambda);
182
- console.log('Assigning Access to Secret Manager: ',result);
183
+
183
184
  });
184
185
 
185
186
  }
@@ -1,5 +1,5 @@
1
1
  import { CfnOutput, Duration } from "aws-cdk-lib";
2
- import { IdentitySource, TokenAuthorizer } from "aws-cdk-lib/aws-apigateway";
2
+ import { IdentitySource, TokenAuthorizer, TokenAuthorizerProps } from "aws-cdk-lib/aws-apigateway";
3
3
  import { ManagedPolicy, ServicePrincipal } from "aws-cdk-lib/aws-iam";
4
4
  import { NodejsFunction, NodejsFunctionProps, SourceMapMode } from "aws-cdk-lib/aws-lambda-nodejs";
5
5
  import { Construct } from "constructs";
@@ -38,7 +38,7 @@ export class CreateAuthorizer extends BaseResource<TokenAuthorizer> {
38
38
 
39
39
  const authorizerProps = this.createLambdaFunctionProps(lambdaConfig!);
40
40
 
41
- const lambdaId = CreateLambda.getIdForLambda(lambdaConfig);
41
+ const lambdaId = CreateLambda.getIdForLambda(lambdaConfig, this.config);
42
42
  const lambda = new NodejsFunction(scope, lambdaId, authorizerProps);
43
43
 
44
44
  lambda.grantInvoke(new ServicePrincipal('apigateway.amazonaws.com'));
@@ -47,13 +47,15 @@ export class CreateAuthorizer extends BaseResource<TokenAuthorizer> {
47
47
  this.assignManagedPolicies(lambda, lambdaConfig.managedPolicies);
48
48
  }
49
49
 
50
- const lambdaAuthorizer = new TokenAuthorizer(scope, `${lambdaConfig.name}-authorizer`, {
50
+ const props: TokenAuthorizerProps = {
51
51
  handler: lambda,
52
52
  authorizerName: lambdaConfig.name,
53
53
  resultsCacheTtl: Duration.seconds(0),
54
54
  identitySource: IdentitySource.header('Authorization'),
55
55
 
56
- });
56
+ };
57
+
58
+ const lambdaAuthorizer = new TokenAuthorizer(scope, `${lambdaConfig.name}-authorizer`, props);
57
59
 
58
60
  return lambdaAuthorizer;
59
61
  }
@@ -63,7 +63,7 @@ export class CreateLambda extends BaseResource<NodejsFunction> {
63
63
  //console.log("ENTER createLambdaFunctions.map for " + config.name);
64
64
  let lambdaProps = this.createLambdaProps(config, role, layers);
65
65
 
66
- const lambdaId = CreateLambda.getIdForLambda(config);
66
+ const lambdaId = CreateLambda.getIdForLambda(config, this.config);
67
67
  let fctn = new NodejsFunction(scope, lambdaId, lambdaProps);
68
68
 
69
69
  // If we have managed policies, we add them.
@@ -178,7 +178,7 @@ export class CreateLambda extends BaseResource<NodejsFunction> {
178
178
  });
179
179
  }
180
180
 
181
- public static getIdForLambda(lambdaProp: TsgLambdaProp) {
182
- return `${lambdaProp.name}`.toLowerCase();
181
+ public static getIdForLambda(lambdaProp: TsgLambdaProp, appConfig: AppConfig) {
182
+ return `${appConfig.AppPrefix}-${lambdaProp.name}`.toLowerCase();
183
183
  }
184
184
  }