cdk-serverless 2.11.23 → 2.11.25

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.
Files changed (66) hide show
  1. package/README.md +39 -0
  2. package/docs/constructs/assets/highlight.css +12 -12
  3. package/docs/constructs/classes/AssetCdn.html +31 -7
  4. package/docs/constructs/classes/BaseApi.html +4 -0
  5. package/docs/constructs/classes/CognitoAuthentication.html +35 -9
  6. package/docs/constructs/classes/GraphQlApi.html +47 -11
  7. package/docs/constructs/classes/LambdaFunction.html +34 -12
  8. package/docs/constructs/classes/RestApi.html +47 -11
  9. package/docs/constructs/classes/SingleTableDatastore.html +26 -5
  10. package/docs/constructs/classes/Workflow.html +34 -7
  11. package/docs/constructs/index.html +13 -0
  12. package/docs/constructs/interfaces/AssetCdnProps.html +4 -0
  13. package/docs/constructs/interfaces/BaseApiProps.html +7 -7
  14. package/docs/constructs/interfaces/CognitoAuthenticationProps.html +3 -3
  15. package/docs/constructs/interfaces/GraphQlApiProps.html +7 -7
  16. package/docs/constructs/interfaces/JsResolverOptions.html +2 -2
  17. package/docs/constructs/interfaces/LambdaFunctionProps.html +2 -2
  18. package/docs/constructs/interfaces/LambdaTracingOptions.html +1 -1
  19. package/docs/constructs/interfaces/RestApiProps.html +8 -8
  20. package/docs/constructs/interfaces/SingleTableDatastoreProps.html +1 -1
  21. package/docs/constructs/interfaces/SingleTableDesign.html +1 -1
  22. package/docs/constructs/interfaces/VtlResolverOptions.html +1 -1
  23. package/docs/lambda/assets/highlight.css +35 -0
  24. package/docs/lambda/classes/errors.BadRequestError.html +15 -3
  25. package/docs/lambda/classes/errors.ForbiddenError.html +15 -3
  26. package/docs/lambda/classes/errors.HttpError.html +18 -4
  27. package/docs/lambda/classes/errors.NotFoundError.html +15 -3
  28. package/docs/lambda/classes/errors.UnauthenticatedError.html +15 -3
  29. package/docs/lambda/index.html +13 -0
  30. package/docs/projen/assets/highlight.css +19 -12
  31. package/docs/projen/classes/Datastore.html +9 -0
  32. package/docs/projen/classes/GraphQlApi.html +9 -0
  33. package/docs/projen/classes/RestApi.html +79 -19
  34. package/docs/projen/classes/ServerlessProject.html +16 -2
  35. package/docs/projen/classes/Workflow.html +46 -10
  36. package/docs/projen/index.html +13 -0
  37. package/docs/projen/interfaces/ServerlessProjectOptions.html +74 -74
  38. package/lib/constructs/asset-cdn.d.ts +24 -0
  39. package/lib/constructs/asset-cdn.js +13 -1
  40. package/lib/constructs/authentication.d.ts +26 -0
  41. package/lib/constructs/authentication.js +12 -1
  42. package/lib/constructs/base-api.d.ts +3 -0
  43. package/lib/constructs/base-api.js +4 -1
  44. package/lib/constructs/func.d.ts +31 -0
  45. package/lib/constructs/func.js +32 -1
  46. package/lib/constructs/graphql.d.ts +41 -0
  47. package/lib/constructs/graphql.js +33 -1
  48. package/lib/constructs/rest-api.d.ts +41 -0
  49. package/lib/constructs/rest-api.js +36 -1
  50. package/lib/constructs/table.d.ts +40 -0
  51. package/lib/constructs/table.js +38 -1
  52. package/lib/constructs/workflow.d.ts +46 -0
  53. package/lib/constructs/workflow.js +38 -1
  54. package/lib/lambda/errors.d.ts +41 -0
  55. package/lib/lambda/errors.js +42 -1
  56. package/lib/projen/core.d.ts +19 -0
  57. package/lib/projen/core.js +21 -1
  58. package/lib/projen/datastore.d.ts +11 -0
  59. package/lib/projen/datastore.js +12 -1
  60. package/lib/projen/graphql.d.ts +11 -0
  61. package/lib/projen/graphql.js +12 -1
  62. package/lib/projen/rest-api.d.ts +52 -0
  63. package/lib/projen/rest-api.js +53 -1
  64. package/lib/projen/workflow.d.ts +34 -0
  65. package/lib/projen/workflow.js +35 -1
  66. package/package.json +1 -1
@@ -1,5 +1,8 @@
1
1
  import { aws_route53 as route53, aws_s3 as s3 } from 'aws-cdk-lib';
2
2
  import { Construct } from 'constructs';
3
+ /**
4
+ * Properties for AssetCdn L3 construct
5
+ */
3
6
  export interface AssetCdnProps {
4
7
  /**
5
8
  * Domain name of the asset content delivery network (e.g. example.com)
@@ -10,9 +13,30 @@ export interface AssetCdnProps {
10
13
  */
11
14
  hostName: string;
12
15
  }
16
+ /**
17
+ * The AssetCdn construct is responsible for setting up an S3 bucket for asset storage
18
+ * and a CloudFront distribution to serve the assets securely with HTTPS. It also
19
+ * configures a Route 53 DNS record to point to the CloudFront distribution.
20
+ */
13
21
  export declare class AssetCdn extends Construct {
22
+ /**
23
+ * The Route 53 hosted zone for the asset domain.
24
+ */
14
25
  readonly zone: route53.IHostedZone;
26
+ /**
27
+ * The S3 bucket used to store the assets.
28
+ */
15
29
  readonly assetBucket: s3.Bucket;
30
+ /**
31
+ * The domain name used for accessing the assets.
32
+ */
16
33
  readonly assetDomainName: string;
34
+ /**
35
+ * Creates an instance of AssetCdn.
36
+ *
37
+ * @param scope - The scope in which this construct is defined.
38
+ * @param id - The scoped construct ID.
39
+ * @param props - The properties of the AssetCdn construct.
40
+ */
17
41
  constructor(scope: Construct, id: string, props: AssetCdnProps);
18
42
  }
@@ -3,7 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AssetCdn = void 0;
4
4
  const aws_cdk_lib_1 = require("aws-cdk-lib");
5
5
  const constructs_1 = require("constructs");
6
+ /**
7
+ * The AssetCdn construct is responsible for setting up an S3 bucket for asset storage
8
+ * and a CloudFront distribution to serve the assets securely with HTTPS. It also
9
+ * configures a Route 53 DNS record to point to the CloudFront distribution.
10
+ */
6
11
  class AssetCdn extends constructs_1.Construct {
12
+ /**
13
+ * Creates an instance of AssetCdn.
14
+ *
15
+ * @param scope - The scope in which this construct is defined.
16
+ * @param id - The scoped construct ID.
17
+ * @param props - The properties of the AssetCdn construct.
18
+ */
7
19
  constructor(scope, id, props) {
8
20
  super(scope, id);
9
21
  this.zone = aws_cdk_lib_1.aws_route53.HostedZone.fromLookup(this, 'HostedZone', {
@@ -51,4 +63,4 @@ class AssetCdn extends constructs_1.Construct {
51
63
  }
52
64
  }
53
65
  exports.AssetCdn = AssetCdn;
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtY2RuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvYXNzZXQtY2RuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQU1xQjtBQUNyQiwyQ0FBdUM7QUFjdkMsTUFBYSxRQUFTLFNBQVEsc0JBQVM7SUFNckMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjtRQUM1RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxJQUFJLEdBQUcseUJBQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDNUQsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1NBQzdCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxvQkFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ3BELGlCQUFpQixFQUFFLG9CQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUztTQUNsRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQztZQUMzQixjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDckIsY0FBYyxFQUFFLENBQUMsb0JBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQ3BDLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUN0QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFL0QseURBQXlEO1FBQ3pELE1BQU0sSUFBSSxHQUFHLElBQUksb0NBQWtCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUMvRSxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDckIsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ2hDLE1BQU0sRUFBRSxXQUFXO1NBQ3BCLENBQUMsQ0FBQztRQUVILE1BQU0sb0JBQW9CLEdBQUcsSUFBSSw0QkFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFakQsTUFBTSxZQUFZLEdBQUcsSUFBSSw0QkFBVSxDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDbEYsYUFBYSxFQUFFO2dCQUNiO29CQUNFLFNBQVMsRUFBRSxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7b0JBQ3hDLGNBQWMsRUFBRTt3QkFDZCxjQUFjLEVBQUUsSUFBSSxDQUFDLFdBQVc7d0JBQ2hDLG9CQUFvQjtxQkFDckI7aUJBQ0Y7YUFDRjtZQUNELGlCQUFpQixFQUFFLDRCQUFVLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO2dCQUN2RSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO2FBQ2hDLENBQUM7WUFDRixPQUFPLEVBQUUsc0JBQXNCLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDckQsVUFBVSxFQUFFLDRCQUFVLENBQUMsVUFBVSxDQUFDLGVBQWU7WUFDakQsb0JBQW9CLEVBQUUsNEJBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUI7U0FDeEUsQ0FBQyxDQUFDO1FBRUgsSUFBSSx5QkFBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ3ZDLFVBQVUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNoQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixNQUFNLEVBQUUseUJBQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksaUNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMxRixDQUFDLENBQUM7SUFFTCxDQUFDO0NBQ0Y7QUEzREQsNEJBMkRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXdzX2NlcnRpZmljYXRlbWFuYWdlciBhcyBjZXJ0aWZpY2F0ZW1hbmFnZXIsXG4gIGF3c19jbG91ZGZyb250IGFzIGNsb3VkZnJvbnQsXG4gIGF3c19yb3V0ZTUzIGFzIHJvdXRlNTMsXG4gIGF3c19yb3V0ZTUzX3RhcmdldHMgYXMgcm91dGU1M1RhcmdldHMsXG4gIGF3c19zMyBhcyBzMyxcbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXRDZG5Qcm9wcyB7XG4gIC8qKlxuICAgKiBEb21haW4gbmFtZSBvZiB0aGUgYXNzZXQgY29udGVudCBkZWxpdmVyeSBuZXR3b3JrIChlLmcuIGV4YW1wbGUuY29tKVxuICAgKi9cbiAgZG9tYWluTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3N0bmFtZSBvZiB0aGUgYXNzZXQgY29udGVudCBkZWxpdmVyeSBuZXR3b3JrIChlLmcuIGNkbilcbiAgICovXG4gIGhvc3ROYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBBc3NldENkbiBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgcHVibGljIHJlYWRvbmx5IHpvbmU6IHJvdXRlNTMuSUhvc3RlZFpvbmU7XG4gIHB1YmxpYyByZWFkb25seSBhc3NldEJ1Y2tldDogczMuQnVja2V0O1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXREb21haW5OYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFzc2V0Q2RuUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy56b25lID0gcm91dGU1My5Ib3N0ZWRab25lLmZyb21Mb29rdXAodGhpcywgJ0hvc3RlZFpvbmUnLCB7XG4gICAgICBkb21haW5OYW1lOiBwcm9wcy5kb21haW5OYW1lLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hc3NldEJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgJ0Fzc2V0QnVja2V0Jywge1xuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IHMzLkJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICB9KTtcbiAgICB0aGlzLmFzc2V0QnVja2V0LmFkZENvcnNSdWxlKHtcbiAgICAgIGFsbG93ZWRIZWFkZXJzOiBbJyonXSxcbiAgICAgIGFsbG93ZWRNZXRob2RzOiBbczMuSHR0cE1ldGhvZHMuUFVUXSxcbiAgICAgIGFsbG93ZWRPcmlnaW5zOiBbJyonXSxcbiAgICB9KTtcblxuICAgIHRoaXMuYXNzZXREb21haW5OYW1lID0gYCR7cHJvcHMuaG9zdE5hbWV9LiR7cHJvcHMuZG9tYWluTmFtZX1gO1xuXG4gICAgLy8gVE9ETyB0aGlzIHdpbGwgYmUgZGVwcmVjYXRlZCBzb29uOyBmaW5kIG90aGVyIHNvbHV0aW9uXG4gICAgY29uc3QgY2VydCA9IG5ldyBjZXJ0aWZpY2F0ZW1hbmFnZXIuRG5zVmFsaWRhdGVkQ2VydGlmaWNhdGUodGhpcywgJ0NlcnRpZmljYXRlJywge1xuICAgICAgaG9zdGVkWm9uZTogdGhpcy56b25lLFxuICAgICAgZG9tYWluTmFtZTogdGhpcy5hc3NldERvbWFpbk5hbWUsXG4gICAgICByZWdpb246ICd1cy1lYXN0LTEnLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgb3JpZ2luQWNjZXNzSWRlbnRpdHkgPSBuZXcgY2xvdWRmcm9udC5PcmlnaW5BY2Nlc3NJZGVudGl0eSh0aGlzLCAnT0FJJywgeyBjb21tZW50OiBgUzMgRnJvbnRlbmQgJHt0aGlzLmFzc2V0RG9tYWluTmFtZX1gIH0pO1xuICAgIHRoaXMuYXNzZXRCdWNrZXQuZ3JhbnRSZWFkKG9yaWdpbkFjY2Vzc0lkZW50aXR5KTtcblxuICAgIGNvbnN0IGRpc3RyaWJ1dGlvbiA9IG5ldyBjbG91ZGZyb250LkNsb3VkRnJvbnRXZWJEaXN0cmlidXRpb24odGhpcywgJ0Rpc3RyaWJ1dGlvbicsIHtcbiAgICAgIG9yaWdpbkNvbmZpZ3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlaGF2aW9yczogW3sgaXNEZWZhdWx0QmVoYXZpb3I6IHRydWUgfV0sXG4gICAgICAgICAgczNPcmlnaW5Tb3VyY2U6IHtcbiAgICAgICAgICAgIHMzQnVja2V0U291cmNlOiB0aGlzLmFzc2V0QnVja2V0LFxuICAgICAgICAgICAgb3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB2aWV3ZXJDZXJ0aWZpY2F0ZTogY2xvdWRmcm9udC5WaWV3ZXJDZXJ0aWZpY2F0ZS5mcm9tQWNtQ2VydGlmaWNhdGUoY2VydCwge1xuICAgICAgICBhbGlhc2VzOiBbdGhpcy5hc3NldERvbWFpbk5hbWVdLFxuICAgICAgfSksXG4gICAgICBjb21tZW50OiBgQXNzZXQgZW5kcG9pbnQgZm9yICR7dGhpcy5hc3NldERvbWFpbk5hbWV9YCxcbiAgICAgIHByaWNlQ2xhc3M6IGNsb3VkZnJvbnQuUHJpY2VDbGFzcy5QUklDRV9DTEFTU19BTEwsXG4gICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogY2xvdWRmcm9udC5WaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICB9KTtcblxuICAgIG5ldyByb3V0ZTUzLkFSZWNvcmQodGhpcywgJ0FsaWFzUmVjb3JkJywge1xuICAgICAgcmVjb3JkTmFtZTogdGhpcy5hc3NldERvbWFpbk5hbWUsXG4gICAgICB6b25lOiB0aGlzLnpvbmUsXG4gICAgICB0YXJnZXQ6IHJvdXRlNTMuUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgcm91dGU1M1RhcmdldHMuQ2xvdWRGcm9udFRhcmdldChkaXN0cmlidXRpb24pKSxcbiAgICB9KTtcblxuICB9XG59Il19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtY2RuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvYXNzZXQtY2RuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQU1xQjtBQUNyQiwyQ0FBdUM7QUFpQnZDOzs7O0dBSUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxzQkFBUztJQWlCckM7Ozs7OztPQU1HO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjtRQUM1RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxJQUFJLEdBQUcseUJBQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDNUQsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1NBQzdCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxvQkFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ3BELGlCQUFpQixFQUFFLG9CQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUztTQUNsRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQztZQUMzQixjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDckIsY0FBYyxFQUFFLENBQUMsb0JBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQ3BDLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUN0QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFL0QseURBQXlEO1FBQ3pELE1BQU0sSUFBSSxHQUFHLElBQUksb0NBQWtCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUMvRSxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDckIsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ2hDLE1BQU0sRUFBRSxXQUFXO1NBQ3BCLENBQUMsQ0FBQztRQUVILE1BQU0sb0JBQW9CLEdBQUcsSUFBSSw0QkFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFakQsTUFBTSxZQUFZLEdBQUcsSUFBSSw0QkFBVSxDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDbEYsYUFBYSxFQUFFO2dCQUNiO29CQUNFLFNBQVMsRUFBRSxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7b0JBQ3hDLGNBQWMsRUFBRTt3QkFDZCxjQUFjLEVBQUUsSUFBSSxDQUFDLFdBQVc7d0JBQ2hDLG9CQUFvQjtxQkFDckI7aUJBQ0Y7YUFDRjtZQUNELGlCQUFpQixFQUFFLDRCQUFVLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO2dCQUN2RSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO2FBQ2hDLENBQUM7WUFDRixPQUFPLEVBQUUsc0JBQXNCLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDckQsVUFBVSxFQUFFLDRCQUFVLENBQUMsVUFBVSxDQUFDLGVBQWU7WUFDakQsb0JBQW9CLEVBQUUsNEJBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUI7U0FDeEUsQ0FBQyxDQUFDO1FBRUgsSUFBSSx5QkFBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ3ZDLFVBQVUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNoQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixNQUFNLEVBQUUseUJBQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksaUNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMxRixDQUFDLENBQUM7SUFFTCxDQUFDO0NBQ0Y7QUE3RUQsNEJBNkVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXdzX2NlcnRpZmljYXRlbWFuYWdlciBhcyBjZXJ0aWZpY2F0ZW1hbmFnZXIsXG4gIGF3c19jbG91ZGZyb250IGFzIGNsb3VkZnJvbnQsXG4gIGF3c19yb3V0ZTUzIGFzIHJvdXRlNTMsXG4gIGF3c19yb3V0ZTUzX3RhcmdldHMgYXMgcm91dGU1M1RhcmdldHMsXG4gIGF3c19zMyBhcyBzMyxcbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgQXNzZXRDZG4gTDMgY29uc3RydWN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXRDZG5Qcm9wcyB7XG4gIC8qKlxuICAgKiBEb21haW4gbmFtZSBvZiB0aGUgYXNzZXQgY29udGVudCBkZWxpdmVyeSBuZXR3b3JrIChlLmcuIGV4YW1wbGUuY29tKVxuICAgKi9cbiAgZG9tYWluTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3N0bmFtZSBvZiB0aGUgYXNzZXQgY29udGVudCBkZWxpdmVyeSBuZXR3b3JrIChlLmcuIGNkbilcbiAgICovXG4gIGhvc3ROYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIEFzc2V0Q2RuIGNvbnN0cnVjdCBpcyByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB1cCBhbiBTMyBidWNrZXQgZm9yIGFzc2V0IHN0b3JhZ2VcbiAqIGFuZCBhIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIHRvIHNlcnZlIHRoZSBhc3NldHMgc2VjdXJlbHkgd2l0aCBIVFRQUy4gSXQgYWxzb1xuICogY29uZmlndXJlcyBhIFJvdXRlIDUzIEROUyByZWNvcmQgdG8gcG9pbnQgdG8gdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQXNzZXRDZG4gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIC8qKlxuICAgKiBUaGUgUm91dGUgNTMgaG9zdGVkIHpvbmUgZm9yIHRoZSBhc3NldCBkb21haW4uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgem9uZTogcm91dGU1My5JSG9zdGVkWm9uZTtcblxuICAvKipcbiAgICogVGhlIFMzIGJ1Y2tldCB1c2VkIHRvIHN0b3JlIHRoZSBhc3NldHMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRCdWNrZXQ6IHMzLkJ1Y2tldDtcblxuICAvKipcbiAgICogVGhlIGRvbWFpbiBuYW1lIHVzZWQgZm9yIGFjY2Vzc2luZyB0aGUgYXNzZXRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFzc2V0RG9tYWluTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEFzc2V0Q2RuLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdGhpcyBjb25zdHJ1Y3QgaXMgZGVmaW5lZC5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHNjb3BlZCBjb25zdHJ1Y3QgSUQuXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBBc3NldENkbiBjb25zdHJ1Y3QuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXNzZXRDZG5Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnpvbmUgPSByb3V0ZTUzLkhvc3RlZFpvbmUuZnJvbUxvb2t1cCh0aGlzLCAnSG9zdGVkWm9uZScsIHtcbiAgICAgIGRvbWFpbk5hbWU6IHByb3BzLmRvbWFpbk5hbWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmFzc2V0QnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnQXNzZXRCdWNrZXQnLCB7XG4gICAgICBibG9ja1B1YmxpY0FjY2VzczogczMuQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgIH0pO1xuICAgIHRoaXMuYXNzZXRCdWNrZXQuYWRkQ29yc1J1bGUoe1xuICAgICAgYWxsb3dlZEhlYWRlcnM6IFsnKiddLFxuICAgICAgYWxsb3dlZE1ldGhvZHM6IFtzMy5IdHRwTWV0aG9kcy5QVVRdLFxuICAgICAgYWxsb3dlZE9yaWdpbnM6IFsnKiddLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hc3NldERvbWFpbk5hbWUgPSBgJHtwcm9wcy5ob3N0TmFtZX0uJHtwcm9wcy5kb21haW5OYW1lfWA7XG5cbiAgICAvLyBUT0RPIHRoaXMgd2lsbCBiZSBkZXByZWNhdGVkIHNvb247IGZpbmQgb3RoZXIgc29sdXRpb25cbiAgICBjb25zdCBjZXJ0ID0gbmV3IGNlcnRpZmljYXRlbWFuYWdlci5EbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZSh0aGlzLCAnQ2VydGlmaWNhdGUnLCB7XG4gICAgICBob3N0ZWRab25lOiB0aGlzLnpvbmUsXG4gICAgICBkb21haW5OYW1lOiB0aGlzLmFzc2V0RG9tYWluTmFtZSxcbiAgICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gICAgfSk7XG5cbiAgICBjb25zdCBvcmlnaW5BY2Nlc3NJZGVudGl0eSA9IG5ldyBjbG91ZGZyb250Lk9yaWdpbkFjY2Vzc0lkZW50aXR5KHRoaXMsICdPQUknLCB7IGNvbW1lbnQ6IGBTMyBGcm9udGVuZCAke3RoaXMuYXNzZXREb21haW5OYW1lfWAgfSk7XG4gICAgdGhpcy5hc3NldEJ1Y2tldC5ncmFudFJlYWQob3JpZ2luQWNjZXNzSWRlbnRpdHkpO1xuXG4gICAgY29uc3QgZGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuQ2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbih0aGlzLCAnRGlzdHJpYnV0aW9uJywge1xuICAgICAgb3JpZ2luQ29uZmlnczogW1xuICAgICAgICB7XG4gICAgICAgICAgYmVoYXZpb3JzOiBbeyBpc0RlZmF1bHRCZWhhdmlvcjogdHJ1ZSB9XSxcbiAgICAgICAgICBzM09yaWdpblNvdXJjZToge1xuICAgICAgICAgICAgczNCdWNrZXRTb3VyY2U6IHRoaXMuYXNzZXRCdWNrZXQsXG4gICAgICAgICAgICBvcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHZpZXdlckNlcnRpZmljYXRlOiBjbG91ZGZyb250LlZpZXdlckNlcnRpZmljYXRlLmZyb21BY21DZXJ0aWZpY2F0ZShjZXJ0LCB7XG4gICAgICAgIGFsaWFzZXM6IFt0aGlzLmFzc2V0RG9tYWluTmFtZV0sXG4gICAgICB9KSxcbiAgICAgIGNvbW1lbnQ6IGBBc3NldCBlbmRwb2ludCBmb3IgJHt0aGlzLmFzc2V0RG9tYWluTmFtZX1gLFxuICAgICAgcHJpY2VDbGFzczogY2xvdWRmcm9udC5QcmljZUNsYXNzLlBSSUNFX0NMQVNTX0FMTCxcbiAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBjbG91ZGZyb250LlZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTLFxuICAgIH0pO1xuXG4gICAgbmV3IHJvdXRlNTMuQVJlY29yZCh0aGlzLCAnQWxpYXNSZWNvcmQnLCB7XG4gICAgICByZWNvcmROYW1lOiB0aGlzLmFzc2V0RG9tYWluTmFtZSxcbiAgICAgIHpvbmU6IHRoaXMuem9uZSxcbiAgICAgIHRhcmdldDogcm91dGU1My5SZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyByb3V0ZTUzVGFyZ2V0cy5DbG91ZEZyb250VGFyZ2V0KGRpc3RyaWJ1dGlvbikpLFxuICAgIH0pO1xuXG4gIH1cbn1cbiJdfQ==
@@ -87,11 +87,37 @@ export interface CognitoAuthenticationProps {
87
87
  readonly poolConfig?: identitypool.IdentityPoolProps;
88
88
  };
89
89
  }
90
+ /**
91
+ * The CognitoAuthentication construct sets up a Cognito User Pool with optional triggers and an optional Cognito Identity Pool.
92
+ * It also configures various Lambda triggers for custom message, pre-sign up, and pre-token generation events.
93
+ */
90
94
  export declare class CognitoAuthentication extends Construct implements ICognitoAuthentication {
95
+ /**
96
+ * The Cognito User Pool for user authentication.
97
+ */
91
98
  readonly userpool: cognito.UserPool;
99
+ /**
100
+ * The optional Cognito Identity Pool for federated identities.
101
+ */
92
102
  readonly identityPool?: identitypool.IdentityPool;
103
+ /**
104
+ * The optional Lambda function for custom message trigger.
105
+ */
93
106
  readonly customMessageFunction?: LambdaFunction;
107
+ /**
108
+ * The optional Lambda function for pre-sign up trigger.
109
+ */
94
110
  readonly preSignUpFunction?: LambdaFunction;
111
+ /**
112
+ * The optional Lambda function for pre-token generation trigger.
113
+ */
95
114
  readonly preTokenGenerationFunction?: LambdaFunction;
115
+ /**
116
+ * Creates an instance of CognitoAuthentication.
117
+ *
118
+ * @param scope - The scope in which this construct is defined.
119
+ * @param id - The scoped construct ID.
120
+ * @param props - The properties of the CognitoAuthentication construct.
121
+ */
96
122
  constructor(scope: Construct, id: string, props: CognitoAuthenticationProps);
97
123
  }
@@ -29,7 +29,18 @@ const identitypool = __importStar(require("@aws-cdk/aws-cognito-identitypool-alp
29
29
  const aws_cdk_lib_1 = require("aws-cdk-lib");
30
30
  const constructs_1 = require("constructs");
31
31
  const func_1 = require("./func");
32
+ /**
33
+ * The CognitoAuthentication construct sets up a Cognito User Pool with optional triggers and an optional Cognito Identity Pool.
34
+ * It also configures various Lambda triggers for custom message, pre-sign up, and pre-token generation events.
35
+ */
32
36
  class CognitoAuthentication extends constructs_1.Construct {
37
+ /**
38
+ * Creates an instance of CognitoAuthentication.
39
+ *
40
+ * @param scope - The scope in which this construct is defined.
41
+ * @param id - The scoped construct ID.
42
+ * @param props - The properties of the CognitoAuthentication construct.
43
+ */
33
44
  constructor(scope, id, props) {
34
45
  var _a, _b, _c, _d, _e;
35
46
  super(scope, id);
@@ -180,4 +191,4 @@ class CognitoAuthentication extends constructs_1.Construct {
180
191
  }
181
192
  }
182
193
  exports.CognitoAuthentication = CognitoAuthentication;
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9hdXRoZW50aWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QixzRkFBd0U7QUFDeEUsNkNBR3FCO0FBQ3JCLDJDQUF1QztBQUN2QyxpQ0FBd0M7QUFpR3hDLE1BQWEscUJBQXNCLFNBQVEsc0JBQVM7SUFTbEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQzs7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUkseUJBQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNyRCxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUMzQixjQUFjLEVBQUU7Z0JBQ2QsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsYUFBYSxFQUFFLEtBQUs7Z0JBQ3BCLGdCQUFnQixFQUFFLEtBQUs7Z0JBQ3ZCLGNBQWMsRUFBRSxLQUFLO2dCQUNyQixnQkFBZ0IsRUFBRSxLQUFLO2FBQ3hCO1lBQ0Qsa0JBQWtCLEVBQUU7Z0JBQ2xCLFFBQVEsRUFBRTtvQkFDUixPQUFPLEVBQUUsSUFBSTtvQkFDYixRQUFRLEVBQUUsSUFBSTtpQkFDZjtnQkFDRCxLQUFLLEVBQUU7b0JBQ0wsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7YUFDRjtZQUNELGlCQUFpQixFQUFFLEtBQUs7WUFDeEIsYUFBYSxFQUFFO2dCQUNiLEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRCxtQkFBbUIsRUFBRSxLQUFLO1lBQzFCLEdBQUcsS0FBSyxDQUFDLGFBQWE7U0FDdkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxN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QUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO29CQUN6RixHQUFHLE1BQUEsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFVLDBDQUFFLHVCQUF1QjtpQkFDMUQ7YUFDRixDQUFDLENBQUM7WUFDSCxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUNuRixJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLHlCQUF5QixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN2RyxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLDJCQUEyQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUM1RztJQUNILENBQUM7Q0FFRjtBQTNLRCxzREEyS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBpZGVudGl0eXBvb2wgZnJvbSAnQGF3cy1jZGsvYXdzLWNvZ25pdG8taWRlbnRpdHlwb29sLWFscGhhJztcbmltcG9ydCB7XG4gIGF3c19jb2duaXRvIGFzIGNvZ25pdG8sIENmbk91dHB1dCwgRHVyYXRpb24sIFN0YWNrLFxuXG59IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICcuL2Z1bmMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb2duaXRvQXV0aGVudGljYXRpb24ge1xuICAvKiogVGhlIENvZ25pdG8gdXNlciBwb29sIHRoYXQgaG9sZHMgdXNlciBpbmZvcm1hdGlvbiAqL1xuICByZWFkb25seSB1c2VycG9vbDogY29nbml0by5JVXNlclBvb2w7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUp3dEF1dGhlbnRpY2F0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBKV1QgaXNzdWVyIGVuZHBvaW50IFVSTFxuICAgKi9cbiAgcmVhZG9ubHkgaXNzdWVyVXJsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZW5kcG9pbnQncyBhdWRpZW5jZS4gV2lsbCBvbmx5IGJlIGNoZWNrZWQgaWYgcHJlc2VudC5cbiAgICovXG4gIHJlYWRvbmx5IGF1ZGllbmNlPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgSldUIGVuZHBvaW50cyBKV0tTIHN0b3JlLiBVbmxlc3MgdGhpcyBpcyBwcm92aWRlZCwgT0lEQyBkaXNjb3Zlcnkgd2lsbCBiZSB1c2VkIHRvIGZpbmQgdGhpcy5cbiAgICovXG4gIHJlYWRvbmx5IGp3a3NVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29nbml0b0F1dGhlbnRpY2F0aW9uUHJvcHMge1xuXG4gIC8qKiBOYW1lIGZvciB0aGUgQ29nbml0byB1c2VyIHBvb2wgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBDb2duaXRvIExhbWJkYSB0cmlnZ2Vyc1xuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcnM/OiB7XG4gICAgLyoqXG4gICAgICogQXR0YWNoZXMgYSBsYW1iZGEgZnVuY3Rpb24gdG8gdGhlIGN1c3RvbSBtZXNzYWdlIHRyaWdnZXJcbiAgICAgKlxuICAgICAqIENvZGUgaGFzIHRvIHJlc2lkZSBpbiAnLi9zcmMvbGFtYmRhL2NvZ25pdG8uY3VzdG9tLW1lc3NhZ2UudHMnIHdpdGggYSBtZXRob2QgJ2hhbmRsZXInXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGN1c3RvbU1lc3NhZ2VzPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEF0dGFjaGVzIGEgbGFtYmRhIGZ1bmN0aW9uIHRvIHRoZSBwcmUgdG9rZW4gZ2VuZXJhdGlvbiB0cmlnZ2VyXG4gICAgICpcbiAgICAgKiBDb2RlIGhhcyB0byByZXNpZGUgaW4gJy4vc3JjL2xhbWJkYS9jb2duaXRvLnByZS10b2tlbi1nZW5lcmF0aW9uLnRzJyB3aXRoIGEgbWV0aG9kICdoYW5kbGVyJ1xuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBwcmVUb2tlbkdlbmVyYXRpb24/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEF0dGFjaGVzIGEgbGFtYmRhIGZ1bmN0aW9uIHRvIHRoZSBwcmUgc2lnbi11cCB0cmlnZ2VyXG4gICAgICpcbiAgICAgKiBDb2RlIGhhcyB0byByZXNpZGUgaW4gJy4vc3JjL2xhbWJkYS9jb2duaXRvLnByZS1zaWdudXAudHMnIHdpdGggYSBtZXRob2QgJ2hhbmRsZXInXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHByZVNpZ25VcD86IGJvb2xlYW47XG4gIH07XG5cbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgb2YgdGhlIENvZ25pdG8gdXNlciBwb29sXG4gICAqL1xuICByZWFkb25seSB1c2VyUG9vbFByb3BzPzogY29nbml0by5Vc2VyUG9vbFByb3BzO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgU0VTIG1haWwgc2VuZGluZ1xuICAgKi9cbiAgcmVhZG9ubHkgc2VzRW1haWxTZW5kZXI/OiB7XG4gICAgLyoqXG4gICAgICogQVdTIHJlZ2lvbiB0byB1c2UgZm9yIFNFU1xuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFNlbmRlciBuYW1lXG4gICAgICovXG4gICAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFNlbmRlciBlbWFpbC4gTmVlZHMgdG8gYmUgYWxyZWFkeSB2ZXJpZmllZCBpbiBTRVNcbiAgICAgKi9cbiAgICByZWFkb25seSBlbWFpbDogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHcm91cHMgdG8gY3JlYXRlIGluIENvZ25pdG8gdXNlciBwb29sXG4gICAqIEtleTogZ3JvdXAgbmFtZVxuICAgKiBWYWx1ZTogZ3JvdXAgZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGdyb3Vwcz86IHtcbiAgICByZWFkb25seSBbbmFtZTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xuXG4gIC8qKiBDcmVhdGUgYSBuZXcgQ29nbml0byBJZGVudGl0eSBQb29sIGZvciB0aGUgVXNlciBwb29sICovXG4gIHJlYWRvbmx5IGlkZW50aXR5UG9vbD86IHtcbiAgICAvKiogY29uZmlndXJhdGlvbiBvZiB0aGUgaWRlbnRpdHkgcG9vbCAqL1xuICAgIHJlYWRvbmx5IHBvb2xDb25maWc/OiBpZGVudGl0eXBvb2wuSWRlbnRpdHlQb29sUHJvcHM7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBDb2duaXRvQXV0aGVudGljYXRpb24gZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJQ29nbml0b0F1dGhlbnRpY2F0aW9uIHtcblxuICBwdWJsaWMgcmVhZG9ubHkgdXNlcnBvb2w6IGNvZ25pdG8uVXNlclBvb2w7XG4gIHB1YmxpYyByZWFkb25seSBpZGVudGl0eVBvb2w/OiBpZGVudGl0eXBvb2wuSWRlbnRpdHlQb29sO1xuXG4gIHB1YmxpYyByZWFkb25seSBjdXN0b21NZXNzYWdlRnVuY3Rpb24/OiBMYW1iZGFGdW5jdGlvbjtcbiAgcHVibGljIHJlYWRvbmx5IHByZVNpZ25VcEZ1bmN0aW9uPzogTGFtYmRhRnVuY3Rpb247XG4gIHB1YmxpYyByZWFkb25seSBwcmVUb2tlbkdlbmVyYXRpb25GdW5jdGlvbj86IExhbWJkYUZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDb2duaXRvQXV0aGVudGljYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnVzZXJwb29sID0gbmV3IGNvZ25pdG8uVXNlclBvb2wodGhpcywgJ1VzZXJQb29sJywge1xuICAgICAgdXNlclBvb2xOYW1lOiBwcm9wcy51c2VyUG9vbE5hbWUsXG4gICAgICBhdXRvVmVyaWZ5OiB7IGVtYWlsOiB0cnVlIH0sXG4gICAgICBwYXNzd29yZFBvbGljeToge1xuICAgICAgICBtaW5MZW5ndGg6IDEyLFxuICAgICAgICByZXF1aXJlRGlnaXRzOiBmYWxzZSxcbiAgICAgICAgcmVxdWlyZUxvd2VyY2FzZTogZmFsc2UsXG4gICAgICAgIHJlcXVpcmVTeW1ib2xzOiBmYWxzZSxcbiAgICAgICAgcmVxdWlyZVVwcGVyY2FzZTogZmFsc2UsXG4gICAgICB9LFxuICAgICAgc3RhbmRhcmRBdHRyaWJ1dGVzOiB7XG4gICAgICAgIGZ1bGxuYW1lOiB7XG4gICAgICAgICAgbXV0YWJsZTogdHJ1ZSxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZW1haWw6IHtcbiAgICAgICAgICBtdXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzZWxmU2lnblVwRW5hYmxlZDogZmFsc2UsXG4gICAgICBzaWduSW5BbGlhc2VzOiB7XG4gICAgICAgIGVtYWlsOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHNpZ25JbkNhc2VTZW5zaXRpdmU6IGZhbHNlLFxuICAgICAgLi4ucHJvcHMudXNlclBvb2xQcm9wcyxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy50cmlnZ2Vycz8uY3VzdG9tTWVzc2FnZXMpIHtcbiAgICAgIGNvbnN0IGVudHJ5RmlsZSA9ICcuL3NyYy9sYW1iZGEvY29nbml0by5jdXN0b20tbWVzc2FnZS50cyc7XG5cbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhlbnRyeUZpbGUpKSB7XG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZW50cnlGaWxlLCBgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQ6IEFXU0xhbWJkYS5DdXN0b21NZXNzYWdlVHJpZ2dlckV2ZW50KTogUHJvbWlzZTxBV1NMYW1iZGEuQ3VzdG9tTWVzc2FnZVRyaWdnZXJFdmVudD4ge1xuICBjb25zb2xlLmxvZyhldmVudCk7XG5cbiAgaWYgKGV2ZW50LnRyaWdnZXJTb3VyY2UgPT09ICdDdXN0b21NZXNzYWdlX0FkbWluQ3JlYXRlVXNlcicpIHtcbiAgICAvLyBldmVudC5yZXNwb25zZS5lbWFpbFN1YmplY3QgPSAnJztcbiAgICAvLyBldmVudC5yZXNwb25zZS5lbWFpbE1lc3NhZ2UgPSAnJztcbiAgfSBlbHNlIGlmIChldmVudC50cmlnZ2VyU291cmNlID09PSAnQ3VzdG9tTWVzc2FnZV9Gb3Jnb3RQYXNzd29yZCcpIHtcbiAgICAvLyBldmVudC5yZXNwb25zZS5lbWFpbFN1YmplY3QgPSAnJztcbiAgICAvLyBldmVudC5yZXNwb25zZS5lbWFpbE1lc3NhZ2UgPSAnJztcbiAgfSAvLyAuLi5cblxuICByZXR1cm4gZXZlbnQ7XG59YCwge1xuICAgICAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jdXN0b21NZXNzYWdlRnVuY3Rpb24gPSBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcywgJ0N1c3RvbU1lc3NhZ2VGdW5jdGlvbicsIHtcbiAgICAgICAgZW50cnk6IGVudHJ5RmlsZSxcbiAgICAgICAgbGFtYmRhT3B0aW9uczoge1xuICAgICAgICAgIGJ1bmRsaW5nOiB7XG4gICAgICAgICAgICBsb2FkZXI6IHtcbiAgICAgICAgICAgICAgJy5odG1sJzogJ3RleHQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNSksXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIHRoaXMudXNlcnBvb2wuYWRkVHJpZ2dlcihjb2duaXRvLlVzZXJQb29sT3BlcmF0aW9uLkNVU1RPTV9NRVNTQUdFLCB0aGlzLmN1c3RvbU1lc3NhZ2VGdW5jdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnRyaWdnZXJzPy5wcmVUb2tlbkdlbmVyYXRpb24pIHtcbiAgICAgIGNvbnN0IGVudHJ5RmlsZSA9ICcuL3NyYy9sYW1iZGEvY29nbml0by5wcmUtdG9rZW4tZ2VuZXJhdGlvbi50cyc7XG5cbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhlbnRyeUZpbGUpKSB7XG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZW50cnlGaWxlLCBgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQ6IEFXU0xhbWJkYS5QcmVUb2tlbkdlbmVyYXRpb25UcmlnZ2VyRXZlbnQpOiBQcm9taXNlPEFXU0xhbWJkYS5QcmVUb2tlbkdlbmVyYXRpb25UcmlnZ2VyRXZlbnQ+IHtcbiAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZXZlbnQpKTtcblxuICAvLyBtb2RpZnkgZXZlbnQucmVzcG9uc2UgaGVyZSAuLi5cblxuICByZXR1cm4gZXZlbnQ7XG59YCwge1xuICAgICAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5wcmVUb2tlbkdlbmVyYXRpb25GdW5jdGlvbiA9IG5ldyBMYW1iZGFGdW5jdGlvbih0aGlzLCAnUHJlVG9rZW5HZW5lcmF0aW9uRnVuY3Rpb24nLCB7XG4gICAgICAgIGxhbWJkYU9wdGlvbnM6IHtcbiAgICAgICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDUpLFxuICAgICAgICB9LFxuICAgICAgICBlbnRyeTogZW50cnlGaWxlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnVzZXJwb29sLmFkZFRyaWdnZXIoY29nbml0by5Vc2VyUG9vbE9wZXJhdGlvbi5QUkVfVE9LRU5fR0VORVJBVElPTiwgdGhpcy5wcmVUb2tlbkdlbmVyYXRpb25GdW5jdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnRyaWdnZXJzPy5wcmVTaWduVXApIHtcbiAgICAgIGNvbnN0IGVudHJ5RmlsZSA9ICcuL3NyYy9sYW1iZGEvY29nbml0by5wcmUtc2lnbnVwLnRzJztcblxuICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKGVudHJ5RmlsZSkpIHtcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhlbnRyeUZpbGUsIGBleHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlcihldmVudDogQVdTTGFtYmRhLlByZVNpZ25VcFRyaWdnZXJFdmVudCk6IFByb21pc2U8QVdTTGFtYmRhLlByZVNpZ25VcFRyaWdnZXJFdmVudD4ge1xuICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShldmVudCkpO1xuXG4gIC8vIENvbmZpcm0gdGhlIHVzZXJcbiAgLy8gZXZlbnQucmVzcG9uc2UuYXV0b0NvbmZpcm1Vc2VyID0gdHJ1ZTtcblxuICAvLyBTZXQgdGhlIGVtYWlsIGFzIHZlcmlmaWVkIGlmIGl0IGlzIGluIHRoZSByZXF1ZXN0XG4gIC8vIGlmIChldmVudC5yZXF1ZXN0LnVzZXJBdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KCdlbWFpbCcpKSB7XG4gIC8vICAgZXZlbnQucmVzcG9uc2UuYXV0b1ZlcmlmeUVtYWlsID0gdHJ1ZTtcbiAgLy8gfVxuXG4gIC8vIFNldCB0aGUgcGhvbmUgbnVtYmVyIGFzIHZlcmlmaWVkIGlmIGl0IGlzIGluIHRoZSByZXF1ZXN0XG4gIC8vIGlmIChldmVudC5yZXF1ZXN0LnVzZXJBdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KCdwaG9uZV9udW1iZXInKSkge1xuICAvLyAgIGV2ZW50LnJlc3BvbnNlLmF1dG9WZXJpZnlQaG9uZSA9IHRydWU7XG4gIC8vIH1cblxuICByZXR1cm4gZXZlbnQ7XG59YCwge1xuICAgICAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5wcmVTaWduVXBGdW5jdGlvbiA9IG5ldyBMYW1iZGFGdW5jdGlvbih0aGlzLCAnUHJlU2lnblVwRnVuY3Rpb24nLCB7XG4gICAgICAgIGxhbWJkYU9wdGlvbnM6IHtcbiAgICAgICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDUpLFxuICAgICAgICB9LFxuICAgICAgICBlbnRyeTogZW50cnlGaWxlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnVzZXJwb29sLmFkZFRyaWdnZXIoY29nbml0by5Vc2VyUG9vbE9wZXJhdGlvbi5QUkVfU0lHTl9VUCwgdGhpcy5wcmVTaWduVXBGdW5jdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnNlc0VtYWlsU2VuZGVyKSB7XG4gICAgICAodGhpcy51c2VycG9vbC5ub2RlLmRlZmF1bHRDaGlsZCBhcyBjb2duaXRvLkNmblVzZXJQb29sKS5lbWFpbENvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAgIGVtYWlsU2VuZGluZ0FjY291bnQ6ICdERVZFTE9QRVInLFxuICAgICAgICBmcm9tOiBgJHtwcm9wcy5zZXNFbWFpbFNlbmRlci5uYW1lfSA8JHtwcm9wcy5zZXNFbWFpbFNlbmRlci5lbWFpbH0+YCxcbiAgICAgICAgc291cmNlQXJuOiBgYXJuOmF3czpzZXM6JHtwcm9wcy5zZXNFbWFpbFNlbmRlci5yZWdpb24gPz8gU3RhY2sub2YodGhpcykucmVnaW9ufToke1N0YWNrLm9mKHRoaXMpLmFjY291bnR9OmlkZW50aXR5LyR7cHJvcHMuc2VzRW1haWxTZW5kZXIuZW1haWx9YCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBncm91cE5hbWUgaW4gcHJvcHMuZ3JvdXBzKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLmdyb3VwcywgZ3JvdXBOYW1lKSkge1xuICAgICAgICBjb25zdCBncm91cERlc2NyaXB0aW9uID0gcHJvcHMuZ3JvdXBzW2dyb3VwTmFtZV07XG4gICAgICAgIG5ldyBjb2duaXRvLkNmblVzZXJQb29sR3JvdXAodGhpcywgYEdyb3VwJHtncm91cE5hbWV9YCwge1xuICAgICAgICAgIHVzZXJQb29sSWQ6IHRoaXMudXNlcnBvb2wudXNlclBvb2xJZCxcbiAgICAgICAgICBncm91cE5hbWUsXG4gICAgICAgICAgZGVzY3JpcHRpb246IGdyb3VwRGVzY3JpcHRpb24sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgJ1VzZXJQb29sSWQnLCB7IHZhbHVlOiB0aGlzLnVzZXJwb29sLnVzZXJQb29sSWQgfSk7XG5cbiAgICBpZiAocHJvcHMuaWRlbnRpdHlQb29sKSB7XG4gICAgICB0aGlzLmlkZW50aXR5UG9vbCA9IG5ldyBpZGVudGl0eXBvb2wuSWRlbnRpdHlQb29sKHRoaXMsICdJZGVudGl0eVBvb2wnLCB7XG4gICAgICAgIGFsbG93VW5hdXRoZW50aWNhdGVkSWRlbnRpdGllczogdHJ1ZSxcbiAgICAgICAgaWRlbnRpdHlQb29sTmFtZTogcHJvcHMudXNlclBvb2xOYW1lICsgJy1pZGVudGl0eScsXG4gICAgICAgIC4uLnByb3BzLmlkZW50aXR5UG9vbC5wb29sQ29uZmlnLFxuICAgICAgICBhdXRoZW50aWNhdGlvblByb3ZpZGVyczoge1xuICAgICAgICAgIHVzZXJQb29sczogW25ldyBpZGVudGl0eXBvb2wuVXNlclBvb2xBdXRoZW50aWNhdGlvblByb3ZpZGVyKHsgdXNlclBvb2w6IHRoaXMudXNlcnBvb2wgfSldLFxuICAgICAgICAgIC4uLnByb3BzLmlkZW50aXR5UG9vbC5wb29sQ29uZmlnPy5hdXRoZW50aWNhdGlvblByb3ZpZGVycyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCAnSWRlbnRpdHlQb29sSWQnLCB7IHZhbHVlOiB0aGlzLmlkZW50aXR5UG9vbC5pZGVudGl0eVBvb2xJZCB9KTtcbiAgICAgIG5ldyBDZm5PdXRwdXQodGhpcywgJ0lkZW50aXR5UG9vbEF1dGhSb2xlQXJuJywgeyB2YWx1ZTogdGhpcy5pZGVudGl0eVBvb2wuYXV0aGVudGljYXRlZFJvbGUucm9sZUFybiB9KTtcbiAgICAgIG5ldyBDZm5PdXRwdXQodGhpcywgJ0lkZW50aXR5UG9vbFVuQXV0aFJvbGVBcm4nLCB7IHZhbHVlOiB0aGlzLmlkZW50aXR5UG9vbC51bmF1dGhlbnRpY2F0ZWRSb2xlLnJvbGVBcm4gfSk7XG4gICAgfVxuICB9XG5cbn0iXX0=
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9hdXRoZW50aWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QixzRkFBd0U7QUFDeEUsNkNBR3FCO0FBQ3JCLDJDQUF1QztBQUN2QyxpQ0FBd0M7QUFpR3hDOzs7R0FHRztBQUNILE1BQWEscUJBQXNCLFNBQVEsc0JBQVM7SUEyQmxEOzs7Ozs7T0FNRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7O1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHlCQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDckQsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDM0IsY0FBYyxFQUFFO2dCQUNkLFNBQVMsRUFBRSxFQUFFO2dCQUNiLGFBQWEsRUFBRSxLQUFLO2dCQUNwQixnQkFBZ0IsRUFBRSxLQUFLO2dCQUN2QixjQUFjLEVBQUUsS0FBSztnQkFDckIsZ0JBQWdCLEVBQUUsS0FBSzthQUN4QjtZQUNELGtCQUFrQixFQUFFO2dCQUNsQixRQUFRLEVBQUU7b0JBQ1IsT0FBTyxFQUFFLElBQUk7b0JBQ2IsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7Z0JBQ0QsS0FBSyxFQUFFO29CQUNMLE9BQU8sRUFBRSxLQUFLO29CQUNkLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2FBQ0Y7WUFDRCxpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLGFBQWEsRUFBRTtnQkFDYixLQUFLLEVBQUUsSUFBSTthQUNaO1lBQ0QsbUJBQW1CLEVBQUUsS0FBSztZQUMxQixHQUFHLEtBQUssQ0FBQyxhQUFh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QUFJLFlBQVksQ0FBQyw4QkFBOEIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztvQkFDekYsR0FBRyxNQUFBLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSwwQ0FBRSx1QkFBdUI7aUJBQzFEO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFDbkYsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSx5QkFBeUIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDdkcsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSwyQkFBMkIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDNUc7SUFDSCxDQUFDO0NBRUY7QUFwTUQsc0RBb01DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgaWRlbnRpdHlwb29sIGZyb20gJ0Bhd3MtY2RrL2F3cy1jb2duaXRvLWlkZW50aXR5cG9vbC1hbHBoYSc7XG5pbXBvcnQge1xuICBhd3NfY29nbml0byBhcyBjb2duaXRvLCBDZm5PdXRwdXQsIER1cmF0aW9uLCBTdGFjayxcblxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IExhbWJkYUZ1bmN0aW9uIH0gZnJvbSAnLi9mdW5jJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ29nbml0b0F1dGhlbnRpY2F0aW9uIHtcbiAgLyoqIFRoZSBDb2duaXRvIHVzZXIgcG9vbCB0aGF0IGhvbGRzIHVzZXIgaW5mb3JtYXRpb24gKi9cbiAgcmVhZG9ubHkgdXNlcnBvb2w6IGNvZ25pdG8uSVVzZXJQb29sO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElKd3RBdXRoZW50aWNhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgSldUIGlzc3VlciBlbmRwb2ludCBVUkxcbiAgICovXG4gIHJlYWRvbmx5IGlzc3VlclVybDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGVuZHBvaW50J3MgYXVkaWVuY2UuIFdpbGwgb25seSBiZSBjaGVja2VkIGlmIHByZXNlbnQuXG4gICAqL1xuICByZWFkb25seSBhdWRpZW5jZT86IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIEpXVCBlbmRwb2ludHMgSldLUyBzdG9yZS4gVW5sZXNzIHRoaXMgaXMgcHJvdmlkZWQsIE9JREMgZGlzY292ZXJ5IHdpbGwgYmUgdXNlZCB0byBmaW5kIHRoaXMuXG4gICAqL1xuICByZWFkb25seSBqd2tzVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvZ25pdG9BdXRoZW50aWNhdGlvblByb3BzIHtcblxuICAvKiogTmFtZSBmb3IgdGhlIENvZ25pdG8gdXNlciBwb29sICovXG4gIHJlYWRvbmx5IHVzZXJQb29sTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgQ29nbml0byBMYW1iZGEgdHJpZ2dlcnNcbiAgICovXG4gIHJlYWRvbmx5IHRyaWdnZXJzPzoge1xuICAgIC8qKlxuICAgICAqIEF0dGFjaGVzIGEgbGFtYmRhIGZ1bmN0aW9uIHRvIHRoZSBjdXN0b20gbWVzc2FnZSB0cmlnZ2VyXG4gICAgICpcbiAgICAgKiBDb2RlIGhhcyB0byByZXNpZGUgaW4gJy4vc3JjL2xhbWJkYS9jb2duaXRvLmN1c3RvbS1tZXNzYWdlLnRzJyB3aXRoIGEgbWV0aG9kICdoYW5kbGVyJ1xuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBjdXN0b21NZXNzYWdlcz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBBdHRhY2hlcyBhIGxhbWJkYSBmdW5jdGlvbiB0byB0aGUgcHJlIHRva2VuIGdlbmVyYXRpb24gdHJpZ2dlclxuICAgICAqXG4gICAgICogQ29kZSBoYXMgdG8gcmVzaWRlIGluICcuL3NyYy9sYW1iZGEvY29nbml0by5wcmUtdG9rZW4tZ2VuZXJhdGlvbi50cycgd2l0aCBhIG1ldGhvZCAnaGFuZGxlcidcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgcHJlVG9rZW5HZW5lcmF0aW9uPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBBdHRhY2hlcyBhIGxhbWJkYSBmdW5jdGlvbiB0byB0aGUgcHJlIHNpZ24tdXAgdHJpZ2dlclxuICAgICAqXG4gICAgICogQ29kZSBoYXMgdG8gcmVzaWRlIGluICcuL3NyYy9sYW1iZGEvY29nbml0by5wcmUtc2lnbnVwLnRzJyB3aXRoIGEgbWV0aG9kICdoYW5kbGVyJ1xuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBwcmVTaWduVXA/OiBib29sZWFuO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIG9mIHRoZSBDb2duaXRvIHVzZXIgcG9vbFxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xQcm9wcz86IGNvZ25pdG8uVXNlclBvb2xQcm9wcztcblxuICAvKipcbiAgICogQ29uZmlndXJlIFNFUyBtYWlsIHNlbmRpbmdcbiAgICovXG4gIHJlYWRvbmx5IHNlc0VtYWlsU2VuZGVyPzoge1xuICAgIC8qKlxuICAgICAqIEFXUyByZWdpb24gdG8gdXNlIGZvciBTRVNcbiAgICAgKi9cbiAgICByZWFkb25seSByZWdpb246IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBTZW5kZXIgbmFtZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBTZW5kZXIgZW1haWwuIE5lZWRzIHRvIGJlIGFscmVhZHkgdmVyaWZpZWQgaW4gU0VTXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW1haWw6IHN0cmluZztcbiAgfTtcblxuICAvKipcbiAgICogR3JvdXBzIHRvIGNyZWF0ZSBpbiBDb2duaXRvIHVzZXIgcG9vbFxuICAgKiBLZXk6IGdyb3VwIG5hbWVcbiAgICogVmFsdWU6IGdyb3VwIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBncm91cHM/OiB7XG4gICAgcmVhZG9ubHkgW25hbWU6IHN0cmluZ106IHN0cmluZztcbiAgfTtcblxuICAvKiogQ3JlYXRlIGEgbmV3IENvZ25pdG8gSWRlbnRpdHkgUG9vbCBmb3IgdGhlIFVzZXIgcG9vbCAqL1xuICByZWFkb25seSBpZGVudGl0eVBvb2w/OiB7XG4gICAgLyoqIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGlkZW50aXR5IHBvb2wgKi9cbiAgICByZWFkb25seSBwb29sQ29uZmlnPzogaWRlbnRpdHlwb29sLklkZW50aXR5UG9vbFByb3BzO1xuICB9O1xufVxuXG4vKipcbiAqIFRoZSBDb2duaXRvQXV0aGVudGljYXRpb24gY29uc3RydWN0IHNldHMgdXAgYSBDb2duaXRvIFVzZXIgUG9vbCB3aXRoIG9wdGlvbmFsIHRyaWdnZXJzIGFuZCBhbiBvcHRpb25hbCBDb2duaXRvIElkZW50aXR5IFBvb2wuXG4gKiBJdCBhbHNvIGNvbmZpZ3VyZXMgdmFyaW91cyBMYW1iZGEgdHJpZ2dlcnMgZm9yIGN1c3RvbSBtZXNzYWdlLCBwcmUtc2lnbiB1cCwgYW5kIHByZS10b2tlbiBnZW5lcmF0aW9uIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIENvZ25pdG9BdXRoZW50aWNhdGlvbiBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElDb2duaXRvQXV0aGVudGljYXRpb24ge1xuXG4gIC8qKlxuICAgKiBUaGUgQ29nbml0byBVc2VyIFBvb2wgZm9yIHVzZXIgYXV0aGVudGljYXRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlcnBvb2w6IGNvZ25pdG8uVXNlclBvb2w7XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBDb2duaXRvIElkZW50aXR5IFBvb2wgZm9yIGZlZGVyYXRlZCBpZGVudGl0aWVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlkZW50aXR5UG9vbD86IGlkZW50aXR5cG9vbC5JZGVudGl0eVBvb2w7XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBMYW1iZGEgZnVuY3Rpb24gZm9yIGN1c3RvbSBtZXNzYWdlIHRyaWdnZXIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3VzdG9tTWVzc2FnZUZ1bmN0aW9uPzogTGFtYmRhRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBMYW1iZGEgZnVuY3Rpb24gZm9yIHByZS1zaWduIHVwIHRyaWdnZXIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJlU2lnblVwRnVuY3Rpb24/OiBMYW1iZGFGdW5jdGlvbjtcblxuICAvKipcbiAgICogVGhlIG9wdGlvbmFsIExhbWJkYSBmdW5jdGlvbiBmb3IgcHJlLXRva2VuIGdlbmVyYXRpb24gdHJpZ2dlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcmVUb2tlbkdlbmVyYXRpb25GdW5jdGlvbj86IExhbWJkYUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIENvZ25pdG9BdXRoZW50aWNhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRoaXMgY29uc3RydWN0IGlzIGRlZmluZWQuXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBzY29wZWQgY29uc3RydWN0IElELlxuICAgKiBAcGFyYW0gcHJvcHMgLSBUaGUgcHJvcGVydGllcyBvZiB0aGUgQ29nbml0b0F1dGhlbnRpY2F0aW9uIGNvbnN0cnVjdC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDb2duaXRvQXV0aGVudGljYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnVzZXJwb29sID0gbmV3IGNvZ25pdG8uVXNlclBvb2wodGhpcywgJ1VzZXJQb29sJywge1xuICAgICAgdXNlclBvb2xOYW1lOiBwcm9wcy51c2VyUG9vbE5hbWUsXG4gICAgICBhdXRvVmVyaWZ5OiB7IGVtYWlsOiB0cnVlIH0sXG4gICAgICBwYXNzd29yZFBvbGljeToge1xuICAgICAgICBtaW5MZW5ndGg6IDEyLFxuICAgICAgICByZXF1aXJlRGlnaXRzOiBmYWxzZSxcbiAgICAgICAgcmVxdWlyZUxvd2VyY2FzZTogZmFsc2UsXG4gICAgICAgIHJlcXVpcmVTeW1ib2xzOiBmYWxzZSxcbiAgICAgICAgcmVxdWlyZVVwcGVyY2FzZTogZmFsc2UsXG4gICAgICB9LFxuICAgICAgc3RhbmRhcmRBdHRyaWJ1dGVzOiB7XG4gICAgICAgIGZ1bGxuYW1lOiB7XG4gICAgICAgICAgbXV0YWJsZTogdHJ1ZSxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZW1haWw6IHtcbiAgICAgICAgICBtdXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzZWxmU2lnblVwRW5hYmxlZDogZmFsc2UsXG4gICAgICBzaWduSW5BbGlhc2VzOiB7XG4gICAgICAgIGVtYWlsOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHNpZ25JbkNhc2VTZW5zaXRpdmU6IGZhbHNlLFxuICAgICAgLi4ucHJvcHMudXNlclBvb2xQcm9wcyxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy50cmlnZ2Vycz8uY3VzdG9tTWVzc2FnZXMpIHtcbiAgICAgIGNvbnN0IGVudHJ5RmlsZSA9ICcuL3NyYy9sYW1iZGEvY29nbml0by5jdXN0b20tbWVzc2FnZS50cyc7XG5cbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhlbnRyeUZpbGUpKSB7XG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZW50cnlGaWxlLCBgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQ6IEFXU0xhbWJkYS5DdXN0b21NZXNzYWdlVHJpZ2dlckV2ZW50KTogUHJvbWlzZTxBV1NMYW1iZGEuQ3VzdG9tTWVzc2FnZVRyaWdnZXJFdmVudD4ge1xuICBjb25zb2xlLmxvZyhldmVudCk7XG5cbiAgaWYgKGV2ZW50LnRyaWdnZXJTb3VyY2UgPT09ICdDdXN0b21NZXNzYWdlX0FkbWluQ3JlYXRlVXNlcicpIHtcbiAgICAvLyBldmVudC5yZXNwb25zZS5lbWFpbFN1YmplY3QgPSAnJztcbiAgICAvLyBldmVudC5yZXNwb25zZS5lbWFpbE1lc3NhZ2UgPSAnJztcbiAgfSBlbHNlIGlmIChldmVudC50cmlnZ2VyU291cmNlID09PSAnQ3VzdG9tTWVzc2FnZV9Gb3Jnb3RQYXNzd29yZCcpIHtcbiAgICAvLyBldmVudC5yZXNwb25zZS5lbWFpbFN1YmplY3QgPSAnJztcbiAgICAvLyBldmVudC5yZXNwb25zZS5lbWFpbE1lc3NhZ2UgPSAnJztcbiAgfSAvLyAuLi5cblxuICByZXR1cm4gZXZlbnQ7XG59YCwge1xuICAgICAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jdXN0b21NZXNzYWdlRnVuY3Rpb24gPSBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcywgJ0N1c3RvbU1lc3NhZ2VGdW5jdGlvbicsIHtcbiAgICAgICAgZW50cnk6IGVudHJ5RmlsZSxcbiAgICAgICAgbGFtYmRhT3B0aW9uczoge1xuICAgICAgICAgIGJ1bmRsaW5nOiB7XG4gICAgICAgICAgICBsb2FkZXI6IHtcbiAgICAgICAgICAgICAgJy5odG1sJzogJ3RleHQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNSksXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIHRoaXMudXNlcnBvb2wuYWRkVHJpZ2dlcihjb2duaXRvLlVzZXJQb29sT3BlcmF0aW9uLkNVU1RPTV9NRVNTQUdFLCB0aGlzLmN1c3RvbU1lc3NhZ2VGdW5jdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnRyaWdnZXJzPy5wcmVUb2tlbkdlbmVyYXRpb24pIHtcbiAgICAgIGNvbnN0IGVudHJ5RmlsZSA9ICcuL3NyYy9sYW1iZGEvY29nbml0by5wcmUtdG9rZW4tZ2VuZXJhdGlvbi50cyc7XG5cbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhlbnRyeUZpbGUpKSB7XG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZW50cnlGaWxlLCBgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQ6IEFXU0xhbWJkYS5QcmVUb2tlbkdlbmVyYXRpb25UcmlnZ2VyRXZlbnQpOiBQcm9taXNlPEFXU0xhbWJkYS5QcmVUb2tlbkdlbmVyYXRpb25UcmlnZ2VyRXZlbnQ+IHtcbiAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZXZlbnQpKTtcblxuICAvLyBtb2RpZnkgZXZlbnQucmVzcG9uc2UgaGVyZSAuLi5cblxuICByZXR1cm4gZXZlbnQ7XG59YCwge1xuICAgICAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5wcmVUb2tlbkdlbmVyYXRpb25GdW5jdGlvbiA9IG5ldyBMYW1iZGFGdW5jdGlvbih0aGlzLCAnUHJlVG9rZW5HZW5lcmF0aW9uRnVuY3Rpb24nLCB7XG4gICAgICAgIGxhbWJkYU9wdGlvbnM6IHtcbiAgICAgICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDUpLFxuICAgICAgICB9LFxuICAgICAgICBlbnRyeTogZW50cnlGaWxlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnVzZXJwb29sLmFkZFRyaWdnZXIoY29nbml0by5Vc2VyUG9vbE9wZXJhdGlvbi5QUkVfVE9LRU5fR0VORVJBVElPTiwgdGhpcy5wcmVUb2tlbkdlbmVyYXRpb25GdW5jdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnRyaWdnZXJzPy5wcmVTaWduVXApIHtcbiAgICAgIGNvbnN0IGVudHJ5RmlsZSA9ICcuL3NyYy9sYW1iZGEvY29nbml0by5wcmUtc2lnbnVwLnRzJztcblxuICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKGVudHJ5RmlsZSkpIHtcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhlbnRyeUZpbGUsIGBleHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlcihldmVudDogQVdTTGFtYmRhLlByZVNpZ25VcFRyaWdnZXJFdmVudCk6IFByb21pc2U8QVdTTGFtYmRhLlByZVNpZ25VcFRyaWdnZXJFdmVudD4ge1xuICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShldmVudCkpO1xuXG4gIC8vIENvbmZpcm0gdGhlIHVzZXJcbiAgLy8gZXZlbnQucmVzcG9uc2UuYXV0b0NvbmZpcm1Vc2VyID0gdHJ1ZTtcblxuICAvLyBTZXQgdGhlIGVtYWlsIGFzIHZlcmlmaWVkIGlmIGl0IGlzIGluIHRoZSByZXF1ZXN0XG4gIC8vIGlmIChldmVudC5yZXF1ZXN0LnVzZXJBdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KCdlbWFpbCcpKSB7XG4gIC8vICAgZXZlbnQucmVzcG9uc2UuYXV0b1ZlcmlmeUVtYWlsID0gdHJ1ZTtcbiAgLy8gfVxuXG4gIC8vIFNldCB0aGUgcGhvbmUgbnVtYmVyIGFzIHZlcmlmaWVkIGlmIGl0IGlzIGluIHRoZSByZXF1ZXN0XG4gIC8vIGlmIChldmVudC5yZXF1ZXN0LnVzZXJBdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KCdwaG9uZV9udW1iZXInKSkge1xuICAvLyAgIGV2ZW50LnJlc3BvbnNlLmF1dG9WZXJpZnlQaG9uZSA9IHRydWU7XG4gIC8vIH1cblxuICByZXR1cm4gZXZlbnQ7XG59YCwge1xuICAgICAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5wcmVTaWduVXBGdW5jdGlvbiA9IG5ldyBMYW1iZGFGdW5jdGlvbih0aGlzLCAnUHJlU2lnblVwRnVuY3Rpb24nLCB7XG4gICAgICAgIGxhbWJkYU9wdGlvbnM6IHtcbiAgICAgICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDUpLFxuICAgICAgICB9LFxuICAgICAgICBlbnRyeTogZW50cnlGaWxlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnVzZXJwb29sLmFkZFRyaWdnZXIoY29nbml0by5Vc2VyUG9vbE9wZXJhdGlvbi5QUkVfU0lHTl9VUCwgdGhpcy5wcmVTaWduVXBGdW5jdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnNlc0VtYWlsU2VuZGVyKSB7XG4gICAgICAodGhpcy51c2VycG9vbC5ub2RlLmRlZmF1bHRDaGlsZCBhcyBjb2duaXRvLkNmblVzZXJQb29sKS5lbWFpbENvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAgIGVtYWlsU2VuZGluZ0FjY291bnQ6ICdERVZFTE9QRVInLFxuICAgICAgICBmcm9tOiBgJHtwcm9wcy5zZXNFbWFpbFNlbmRlci5uYW1lfSA8JHtwcm9wcy5zZXNFbWFpbFNlbmRlci5lbWFpbH0+YCxcbiAgICAgICAgc291cmNlQXJuOiBgYXJuOmF3czpzZXM6JHtwcm9wcy5zZXNFbWFpbFNlbmRlci5yZWdpb24gPz8gU3RhY2sub2YodGhpcykucmVnaW9ufToke1N0YWNrLm9mKHRoaXMpLmFjY291bnR9OmlkZW50aXR5LyR7cHJvcHMuc2VzRW1haWxTZW5kZXIuZW1haWx9YCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBncm91cE5hbWUgaW4gcHJvcHMuZ3JvdXBzKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLmdyb3VwcywgZ3JvdXBOYW1lKSkge1xuICAgICAgICBjb25zdCBncm91cERlc2NyaXB0aW9uID0gcHJvcHMuZ3JvdXBzW2dyb3VwTmFtZV07XG4gICAgICAgIG5ldyBjb2duaXRvLkNmblVzZXJQb29sR3JvdXAodGhpcywgYEdyb3VwJHtncm91cE5hbWV9YCwge1xuICAgICAgICAgIHVzZXJQb29sSWQ6IHRoaXMudXNlcnBvb2wudXNlclBvb2xJZCxcbiAgICAgICAgICBncm91cE5hbWUsXG4gICAgICAgICAgZGVzY3JpcHRpb246IGdyb3VwRGVzY3JpcHRpb24sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgJ1VzZXJQb29sSWQnLCB7IHZhbHVlOiB0aGlzLnVzZXJwb29sLnVzZXJQb29sSWQgfSk7XG5cbiAgICBpZiAocHJvcHMuaWRlbnRpdHlQb29sKSB7XG4gICAgICB0aGlzLmlkZW50aXR5UG9vbCA9IG5ldyBpZGVudGl0eXBvb2wuSWRlbnRpdHlQb29sKHRoaXMsICdJZGVudGl0eVBvb2wnLCB7XG4gICAgICAgIGFsbG93VW5hdXRoZW50aWNhdGVkSWRlbnRpdGllczogdHJ1ZSxcbiAgICAgICAgaWRlbnRpdHlQb29sTmFtZTogcHJvcHMudXNlclBvb2xOYW1lICsgJy1pZGVudGl0eScsXG4gICAgICAgIC4uLnByb3BzLmlkZW50aXR5UG9vbC5wb29sQ29uZmlnLFxuICAgICAgICBhdXRoZW50aWNhdGlvblByb3ZpZGVyczoge1xuICAgICAgICAgIHVzZXJQb29sczogW25ldyBpZGVudGl0eXBvb2wuVXNlclBvb2xBdXRoZW50aWNhdGlvblByb3ZpZGVyKHsgdXNlclBvb2w6IHRoaXMudXNlcnBvb2wgfSldLFxuICAgICAgICAgIC4uLnByb3BzLmlkZW50aXR5UG9vbC5wb29sQ29uZmlnPy5hdXRoZW50aWNhdGlvblByb3ZpZGVycyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCAnSWRlbnRpdHlQb29sSWQnLCB7IHZhbHVlOiB0aGlzLmlkZW50aXR5UG9vbC5pZGVudGl0eVBvb2xJZCB9KTtcbiAgICAgIG5ldyBDZm5PdXRwdXQodGhpcywgJ0lkZW50aXR5UG9vbEF1dGhSb2xlQXJuJywgeyB2YWx1ZTogdGhpcy5pZGVudGl0eVBvb2wuYXV0aGVudGljYXRlZFJvbGUucm9sZUFybiB9KTtcbiAgICAgIG5ldyBDZm5PdXRwdXQodGhpcywgJ0lkZW50aXR5UG9vbFVuQXV0aFJvbGVBcm4nLCB7IHZhbHVlOiB0aGlzLmlkZW50aXR5UG9vbC51bmF1dGhlbnRpY2F0ZWRSb2xlLnJvbGVBcm4gfSk7XG4gICAgfVxuICB9XG5cbn0iXX0=
@@ -74,6 +74,9 @@ export interface BaseApiProps {
74
74
  */
75
75
  apiHostname?: string;
76
76
  }
77
+ /**
78
+ * Base class for different types of APIs
79
+ */
77
80
  export declare abstract class BaseApi extends Construct {
78
81
  protected readonly hostedZone?: aws_route53.IHostedZone;
79
82
  protected readonly apiHostName?: string;
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseApi = void 0;
4
4
  const aws_cdk_lib_1 = require("aws-cdk-lib");
5
5
  const constructs_1 = require("constructs");
6
+ /**
7
+ * Base class for different types of APIs
8
+ */
6
9
  class BaseApi extends constructs_1.Construct {
7
10
  constructor(scope, id, props) {
8
11
  var _a, _b;
@@ -22,4 +25,4 @@ class BaseApi extends constructs_1.Construct {
22
25
  }
23
26
  }
24
27
  exports.BaseApi = BaseApi;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9iYXNlLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMEM7QUFDMUMsMkNBQXVDO0FBd0Z2QyxNQUFzQixPQUFRLFNBQVEsc0JBQVM7SUFPN0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFtQjs7UUFDM0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7U0FDOUU7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcseUJBQVcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDckc7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsUUFBUSxDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBQSxLQUFLLENBQUMsV0FBVyxtQ0FBSSxLQUFLLENBQUM7UUFDOUMsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzVEO0lBRUgsQ0FBQztDQUVGO0FBMUJELDBCQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c19yb3V0ZTUzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBBc3NldENkbiB9IGZyb20gJy4vYXNzZXQtY2RuJztcbmltcG9ydCB7IElDb2duaXRvQXV0aGVudGljYXRpb24sIElKd3RBdXRoZW50aWNhdGlvbiB9IGZyb20gJy4vYXV0aGVudGljYXRpb24nO1xuaW1wb3J0IHsgTGFtYmRhT3B0aW9ucywgTGFtYmRhVHJhY2luZ09wdGlvbnMgfSBmcm9tICcuL2Z1bmMnO1xuaW1wb3J0IHsgU2luZ2xlVGFibGVEYXRhc3RvcmUgfSBmcm9tICcuL3RhYmxlJztcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlQXBpUHJvcHMge1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBBUElcbiAgICovXG4gIGFwaU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRGVwbG95bWVudCBzdGFnZSAoZS5nLiBkZXYpXG4gICAqL1xuICBzdGFnZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQ29uZmlndXJlIENsb3VkV2F0Y2ggRGFzaGJvYXJkIGZvciB0aGUgQVBJIGFuZCB0aGUgTGFtYmRhIGZ1bmN0aW9uc1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBtb25pdG9yaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQGRlZmF1bHQgbm9uZVxuICAgKi9cbiAgc2luZ2xlVGFibGVEYXRhc3RvcmU/OiBTaW5nbGVUYWJsZURhdGFzdG9yZTtcblxuICAvKipcbiAgICogVXNlIGEgQ29nbml0byB1c2VyIHBvb2wgZm9yIGF1dGhvcml6YXRpb24uXG4gICAqIEFsdGVybmF0aXZlbHkgc3VwcGx5IGEgSldUIGlzc3VlciBhbmQgYXVkaWVuY2VcbiAgICogdG8gdXNlIGFueSBvdGhlciBKV1QtYmFzZWQgYXV0aG9yaXphdGlvbiBzZXJ2aWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBub25lXG4gICAqL1xuICBhdXRoZW50aWNhdGlvbj86IElKd3RBdXRoZW50aWNhdGlvbiB8IElDb2duaXRvQXV0aGVudGljYXRpb247XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBhIGNvbnRlbnQgZGVsaXZlcnkgbmV0d29yayBmb3Igc3RhdGljIGFzc2V0c1xuICAgKlxuICAgKiBAZGVmYXVsdCBub25lXG4gICAqL1xuICBhc3NldENkbj86IEFzc2V0Q2RuO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlcyBvZiBhbGwgTGFtYmRhIGZ1bmN0aW9uc1xuICAgKi9cbiAgYWRkaXRpb25hbEVudj86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqXG4gICAqIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIHVuZGVybHlpbmcgTGFtYmRhIGZ1bmN0aW9uIGNvbnN0cnVjdFxuICAgKi9cbiAgbGFtYmRhT3B0aW9ucz86IExhbWJkYU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRyYWNpbmcgY29uZmlnIGZvciB0aGUgZ2VuZXJhdGVkIExhbWJkYSBmdW5jdGlvbnNcbiAgICovXG4gIGxhbWJkYVRyYWNpbmc/OiBMYW1iZGFUcmFjaW5nT3B0aW9ucztcblxuICAvKipcbiAgICogRG9tYWluIG5hbWUgb2YgdGhlIEFQSSAoZS5nLiBleGFtcGxlLmNvbSlcbiAgICpcbiAgICogb25seSBvbmUgb2YgaG9zdGVkWm9uZSBhbmQgZG9tYWluTmFtZSBjYW4gYmUgc3BlY2lmaWVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gY3VzdG9tIGRvbWFpbiBpcyBjb25maWd1cmVkXG4gICAqL1xuICBkb21haW5OYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogSG9zdGVkIFpvbmUgb2YgdGhlIEFQSSAoZS5nLiBleGFtcGxlLmNvbSlcbiAgICpcbiAgICogb25seSBvbmUgb2YgaG9zdGVkWm9uZSBhbmQgZG9tYWluTmFtZSBjYW4gYmUgc3BlY2lmaWVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gY3VzdG9tIGRvbWFpbiBpcyBjb25maWd1cmVkXG4gICAqL1xuICBob3N0ZWRab25lPzogYXdzX3JvdXRlNTMuSUhvc3RlZFpvbmU7XG5cbiAgLyoqXG4gICAqIEhvc3RuYW1lIG9mIHRoZSBBUEkgaWYgYSBkb21haW4gbmFtZSBpcyBzcGVjaWZpZWRcbiAgICpcbiAgICogQGRlZmF1bHQgYXBpXG4gICAqL1xuICBhcGlIb3N0bmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VBcGkgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBob3N0ZWRab25lPzogYXdzX3JvdXRlNTMuSUhvc3RlZFpvbmU7XG4gIHByb3RlY3RlZCByZWFkb25seSBhcGlIb3N0TmFtZT86IHN0cmluZztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFwaURvbWFpbk5hbWU/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBhcGlGUUROPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCYXNlQXBpUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKHByb3BzLmhvc3RlZFpvbmUgJiYgcHJvcHMuZG9tYWluTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3Qgc3BlY2lmeSBob3N0ZWRab25lIGFuZCBkb21haW5OYW1lIGF0IHRoZSBzYW1lIHRpbWUnKTtcbiAgICB9XG5cbiAgICB0aGlzLmhvc3RlZFpvbmUgPSBwcm9wcy5ob3N0ZWRab25lO1xuICAgIGlmIChwcm9wcy5kb21haW5OYW1lKSB7XG4gICAgICB0aGlzLmhvc3RlZFpvbmUgPSBhd3Nfcm91dGU1My5Ib3N0ZWRab25lLmZyb21Mb29rdXAodGhpcywgJ1pvbmUnLCB7IGRvbWFpbk5hbWU6IHByb3BzLmRvbWFpbk5hbWUgfSk7XG4gICAgfVxuICAgIHRoaXMuYXBpRG9tYWluTmFtZSA9IHRoaXMuaG9zdGVkWm9uZT8uem9uZU5hbWU7XG4gICAgdGhpcy5hcGlIb3N0TmFtZSA9IHByb3BzLmFwaUhvc3RuYW1lID8/ICdhcGknO1xuICAgIGlmICh0aGlzLmFwaURvbWFpbk5hbWUgJiYgdGhpcy5hcGlIb3N0TmFtZSkge1xuICAgICAgdGhpcy5hcGlGUUROID0gYCR7dGhpcy5hcGlIb3N0TmFtZX0uJHt0aGlzLmFwaURvbWFpbk5hbWV9YDtcbiAgICB9XG5cbiAgfVxuXG59XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9iYXNlLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMEM7QUFDMUMsMkNBQXVDO0FBd0Z2Qzs7R0FFRztBQUNILE1BQXNCLE9BQVEsU0FBUSxzQkFBUztJQU83QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1COztRQUMzRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztTQUM5RTtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyx5QkFBVyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztTQUNyRztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxRQUFRLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFBLEtBQUssQ0FBQyxXQUFXLG1DQUFJLEtBQUssQ0FBQztRQUM5QyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDNUQ7SUFFSCxDQUFDO0NBRUY7QUExQkQsMEJBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzX3JvdXRlNTMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEFzc2V0Q2RuIH0gZnJvbSAnLi9hc3NldC1jZG4nO1xuaW1wb3J0IHsgSUNvZ25pdG9BdXRoZW50aWNhdGlvbiwgSUp3dEF1dGhlbnRpY2F0aW9uIH0gZnJvbSAnLi9hdXRoZW50aWNhdGlvbic7XG5pbXBvcnQgeyBMYW1iZGFPcHRpb25zLCBMYW1iZGFUcmFjaW5nT3B0aW9ucyB9IGZyb20gJy4vZnVuYyc7XG5pbXBvcnQgeyBTaW5nbGVUYWJsZURhdGFzdG9yZSB9IGZyb20gJy4vdGFibGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VBcGlQcm9wcyB7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIEFQSVxuICAgKi9cbiAgYXBpTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXBsb3ltZW50IHN0YWdlIChlLmcuIGRldilcbiAgICovXG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgQ2xvdWRXYXRjaCBEYXNoYm9hcmQgZm9yIHRoZSBBUEkgYW5kIHRoZSBMYW1iZGEgZnVuY3Rpb25zXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIG1vbml0b3Jpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCBub25lXG4gICAqL1xuICBzaW5nbGVUYWJsZURhdGFzdG9yZT86IFNpbmdsZVRhYmxlRGF0YXN0b3JlO1xuXG4gIC8qKlxuICAgKiBVc2UgYSBDb2duaXRvIHVzZXIgcG9vbCBmb3IgYXV0aG9yaXphdGlvbi5cbiAgICogQWx0ZXJuYXRpdmVseSBzdXBwbHkgYSBKV1QgaXNzdWVyIGFuZCBhdWRpZW5jZVxuICAgKiB0byB1c2UgYW55IG90aGVyIEpXVC1iYXNlZCBhdXRob3JpemF0aW9uIHNlcnZpY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIGF1dGhlbnRpY2F0aW9uPzogSUp3dEF1dGhlbnRpY2F0aW9uIHwgSUNvZ25pdG9BdXRoZW50aWNhdGlvbjtcblxuICAvKipcbiAgICogQ29uZmlndXJlIGEgY29udGVudCBkZWxpdmVyeSBuZXR3b3JrIGZvciBzdGF0aWMgYXNzZXRzXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIGFzc2V0Q2RuPzogQXNzZXRDZG47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9mIGFsbCBMYW1iZGEgZnVuY3Rpb25zXG4gICAqL1xuICBhZGRpdGlvbmFsRW52Pzoge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgfTtcblxuICAvKipcbiAgICogYWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgdW5kZXJseWluZyBMYW1iZGEgZnVuY3Rpb24gY29uc3RydWN0XG4gICAqL1xuICBsYW1iZGFPcHRpb25zPzogTGFtYmRhT3B0aW9ucztcblxuICAvKipcbiAgICogVHJhY2luZyBjb25maWcgZm9yIHRoZSBnZW5lcmF0ZWQgTGFtYmRhIGZ1bmN0aW9uc1xuICAgKi9cbiAgbGFtYmRhVHJhY2luZz86IExhbWJkYVRyYWNpbmdPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBEb21haW4gbmFtZSBvZiB0aGUgQVBJIChlLmcuIGV4YW1wbGUuY29tKVxuICAgKlxuICAgKiBvbmx5IG9uZSBvZiBob3N0ZWRab25lIGFuZCBkb21haW5OYW1lIGNhbiBiZSBzcGVjaWZpZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBjdXN0b20gZG9tYWluIGlzIGNvbmZpZ3VyZWRcbiAgICovXG4gIGRvbWFpbk5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBIb3N0ZWQgWm9uZSBvZiB0aGUgQVBJIChlLmcuIGV4YW1wbGUuY29tKVxuICAgKlxuICAgKiBvbmx5IG9uZSBvZiBob3N0ZWRab25lIGFuZCBkb21haW5OYW1lIGNhbiBiZSBzcGVjaWZpZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBjdXN0b20gZG9tYWluIGlzIGNvbmZpZ3VyZWRcbiAgICovXG4gIGhvc3RlZFpvbmU/OiBhd3Nfcm91dGU1My5JSG9zdGVkWm9uZTtcblxuICAvKipcbiAgICogSG9zdG5hbWUgb2YgdGhlIEFQSSBpZiBhIGRvbWFpbiBuYW1lIGlzIHNwZWNpZmllZFxuICAgKlxuICAgKiBAZGVmYXVsdCBhcGlcbiAgICovXG4gIGFwaUhvc3RuYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBBUElzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQXBpIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaG9zdGVkWm9uZT86IGF3c19yb3V0ZTUzLklIb3N0ZWRab25lO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBpSG9zdE5hbWU/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBhcGlEb21haW5OYW1lPzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBpRlFETj86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmFzZUFwaVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmIChwcm9wcy5ob3N0ZWRab25lICYmIHByb3BzLmRvbWFpbk5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHNwZWNpZnkgaG9zdGVkWm9uZSBhbmQgZG9tYWluTmFtZSBhdCB0aGUgc2FtZSB0aW1lJyk7XG4gICAgfVxuXG4gICAgdGhpcy5ob3N0ZWRab25lID0gcHJvcHMuaG9zdGVkWm9uZTtcbiAgICBpZiAocHJvcHMuZG9tYWluTmFtZSkge1xuICAgICAgdGhpcy5ob3N0ZWRab25lID0gYXdzX3JvdXRlNTMuSG9zdGVkWm9uZS5mcm9tTG9va3VwKHRoaXMsICdab25lJywgeyBkb21haW5OYW1lOiBwcm9wcy5kb21haW5OYW1lIH0pO1xuICAgIH1cbiAgICB0aGlzLmFwaURvbWFpbk5hbWUgPSB0aGlzLmhvc3RlZFpvbmU/LnpvbmVOYW1lO1xuICAgIHRoaXMuYXBpSG9zdE5hbWUgPSBwcm9wcy5hcGlIb3N0bmFtZSA/PyAnYXBpJztcbiAgICBpZiAodGhpcy5hcGlEb21haW5OYW1lICYmIHRoaXMuYXBpSG9zdE5hbWUpIHtcbiAgICAgIHRoaXMuYXBpRlFETiA9IGAke3RoaXMuYXBpSG9zdE5hbWV9LiR7dGhpcy5hcGlEb21haW5OYW1lfWA7XG4gICAgfVxuXG4gIH1cblxufVxuIl19
@@ -80,8 +80,39 @@ export interface LambdaFunctionProps {
80
80
  */
81
81
  lambdaTracing?: LambdaTracingOptions;
82
82
  }
83
+ /**
84
+ * The LambdaFunction construct extends the AWS CDK NodejsFunction to provide additional configurations and environment settings for AWS Lambda functions.
85
+ * This construct facilitates setting up a Lambda function with various custom options, environment variables, and permissions required to interact with AWS services
86
+ * such as DynamoDB, Cognito, and S3. It supports setting up Lambda functions with pre-defined bundles, custom handlers, and integrations with AWS services.
87
+ * The construct also provides methods to dynamically update the configuration and permissions of the Lambda function after it has been created.
88
+ *
89
+ * @example
90
+ * const lambdaFunction = new LambdaFunction(this, 'MyLambdaFunction', {
91
+ * entry: 'path/to/lambda/handler.ts',
92
+ * handler: 'main',
93
+ * stageName: 'dev',
94
+ * table: myDynamoDBTable,
95
+ * userPool: myCognitoUserPool,
96
+ * assetBucket: myS3Bucket,
97
+ * lambdaOptions: {
98
+ * timeout: Duration.seconds(30),
99
+ * memorySize: 512,
100
+ * },
101
+ * });
102
+ *
103
+ * // Add additional permissions
104
+ * lambdaFunction.grantSendEmails();
105
+ * lambdaFunction.grantTableWrite();
106
+ */
83
107
  export declare class LambdaFunction extends lambdaNodejs.NodejsFunction {
84
108
  private props;
109
+ /**
110
+ * Creates an instance of LambdaFunction.
111
+ *
112
+ * @param scope - The scope in which this construct is defined.
113
+ * @param id - The scoped construct ID.
114
+ * @param props - The properties of the LambdaFunction construct.
115
+ */
85
116
  constructor(scope: Construct, id: string, props: LambdaFunctionProps);
86
117
  setTable(table: dynamodb.ITable, tableWrites?: boolean): LambdaFunction;
87
118
  setUserPool(userPool: cognito.IUserPool): LambdaFunction;
@@ -3,7 +3,38 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LambdaFunction = void 0;
4
4
  const aws_cdk_lib_1 = require("aws-cdk-lib");
5
5
  const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
6
+ /**
7
+ * The LambdaFunction construct extends the AWS CDK NodejsFunction to provide additional configurations and environment settings for AWS Lambda functions.
8
+ * This construct facilitates setting up a Lambda function with various custom options, environment variables, and permissions required to interact with AWS services
9
+ * such as DynamoDB, Cognito, and S3. It supports setting up Lambda functions with pre-defined bundles, custom handlers, and integrations with AWS services.
10
+ * The construct also provides methods to dynamically update the configuration and permissions of the Lambda function after it has been created.
11
+ *
12
+ * @example
13
+ * const lambdaFunction = new LambdaFunction(this, 'MyLambdaFunction', {
14
+ * entry: 'path/to/lambda/handler.ts',
15
+ * handler: 'main',
16
+ * stageName: 'dev',
17
+ * table: myDynamoDBTable,
18
+ * userPool: myCognitoUserPool,
19
+ * assetBucket: myS3Bucket,
20
+ * lambdaOptions: {
21
+ * timeout: Duration.seconds(30),
22
+ * memorySize: 512,
23
+ * },
24
+ * });
25
+ *
26
+ * // Add additional permissions
27
+ * lambdaFunction.grantSendEmails();
28
+ * lambdaFunction.grantTableWrite();
29
+ */
6
30
  class LambdaFunction extends aws_cdk_lib_1.aws_lambda_nodejs.NodejsFunction {
31
+ /**
32
+ * Creates an instance of LambdaFunction.
33
+ *
34
+ * @param scope - The scope in which this construct is defined.
35
+ * @param id - The scoped construct ID.
36
+ * @param props - The properties of the LambdaFunction construct.
37
+ */
7
38
  constructor(scope, id, props) {
8
39
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
9
40
  super(scope, id, {
@@ -154,4 +185,4 @@ class LambdaFunction extends aws_cdk_lib_1.aws_lambda_nodejs.NodejsFunction {
154
185
  }
155
186
  }
156
187
  exports.LambdaFunction = LambdaFunction;
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL2Z1bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBT3FCO0FBRXJCLHVEQUFpRDtBQWtHakQsTUFBYSxjQUFlLFNBQVEsK0JBQVksQ0FBQyxjQUFjO0lBRTdELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQVUsS0FBMEI7O1FBQzFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLLENBQUMsYUFBYTtZQUN0QixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztZQUM1QixRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxNQUFBLEtBQUssQ0FBQyxhQUFhLDBDQUFFLFFBQVE7Z0JBQ2hDLGVBQWUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2xELE1BQU0sRUFBRTtvQkFDTixHQUFHLE1BQUEsTUFBQSxLQUFLLENBQUMsYUFBYSwwQ0FBRSxRQUFRLDBDQUFFLE1BQU07b0JBQ3hDLE9BQU8sRUFBRSxNQUFNO2lCQUNoQjthQUNGO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLEdBQUcsTUFBQSxLQUFLLENBQUMsYUFBYSwwQ0FBRSxXQUFXO2dCQUNuQyxHQUFHLEtBQUssQ0FBQyxTQUFTLElBQUk7b0JBQ3BCLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUztpQkFDdkI7Z0JBQ0QsR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJO29CQUNoQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTO2lCQUM3QjtnQkFDRCxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUk7b0JBQ2QsY0FBYyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUztpQkFDcEM7Z0JBQ0QsR0FBRyxDQUFBLE1BQUEsS0FBSyxDQUFDLEdB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QztRQUNKLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLHNCQUFzQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLHFCQUFHLENBQUMsZUFBZSxDQUFDO1lBQy9ELE9BQU8sRUFBRTtnQkFDUCx1Q0FBdUM7Z0JBQ3ZDLGlDQUFpQztnQkFDakMsc0NBQXNDO2dCQUN0Qyw2QkFBNkI7Z0JBQzdCLDZCQUE2QjthQUM5QjtZQUNELFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztTQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFxQjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQW1DLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ25HLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUVGO0FBaEtELHdDQWdLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGF3c19keW5hbW9kYiBhcyBkeW5hbW9kYixcbiAgYXdzX3MzIGFzIHMzLFxuICBhd3NfaWFtIGFzIGlhbSxcbiAgYXdzX2NvZ25pdG8gYXMgY29nbml0byxcbiAgYXdzX2xhbWJkYSBhcyBsYW1iZGEsXG4gIGF3c19sYW1iZGFfbm9kZWpzIGFzIGxhbWJkYU5vZGVqcyxcbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSUp3dEF1dGhlbnRpY2F0aW9uIH0gZnJvbSAnLi9hdXRoZW50aWNhdGlvbic7XG5cbmV4cG9ydCB0eXBlIExhbWJkYU9wdGlvbnMgPSBPbWl0PGxhbWJkYU5vZGVqcy5Ob2RlanNGdW5jdGlvblByb3BzLCAnZW50cnknIHwgJ2hhbmRsZXInIHwgJ2Rlc2NyaXB0aW9uJz5cblxuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFUcmFjaW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBY3RpdmF0ZSB0cmFjaW5nIHdpdGggWC1SYXlcbiAgICpcbiAgICogQGRlZmF1bHQgbGFtYmRhLlRyYWNpbmcuRElTQUJMRURcbiAgICovXG4gIHhSYXlUcmFjaW5nPzogbGFtYmRhLlRyYWNpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRnVuY3Rpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBEZXBsb3ltZW50IHN0YWdlIChlLmcuIGRldilcbiAgICovXG4gIHN0YWdlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogZW50cnkgZmlsZSBuYW1lXG4gICAqL1xuICBlbnRyeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBuYW1lIG9mIHRoZSBleHBvcnRlZCBoYW5kbGVyIGZ1bmN0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGhhbmRsZXJcbiAgICovXG4gIGhhbmRsZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGRlc2NyaXB0aW9uIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEeW5hbW9EQiB0aGF0IGlzIHVzZWQgYXMgZGF0YXN0b3JlXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gd2lsbCBoYXZlIHJlYWQgYWNjZXNzIHRvIHRoaXMgdGFibGUgYXV0b21hdGljYWxseVxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGFibGUgaXMgYXZhaWxhYmxlIGFzIHByb2Nlc3MuZW52LlRBQkxFXG4gICAqL1xuICB0YWJsZT86IGR5bmFtb2RiLklUYWJsZTtcblxuICAvKipcbiAgICogQWN0aXZhdGUgd3JpdGUgcGVybWlzc2lvbnMgdG8gdGhlIER5bmFtb0RCIHRhYmxlXG4gICAqL1xuICB0YWJsZVdyaXRlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvZ25pdG8gdXNlciBwb29sXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwb29sIGlzIGF2YWlsYWJsZSBhcyBwcm9jZXNzLmVudi5VU0VSX1BPT0xfSURcbiAgICovXG4gIHVzZXJQb29sPzogY29nbml0by5JVXNlclBvb2w7XG5cbiAgLyoqXG4gICAqIEp3dEF1dGhlbnRpY2F0aW9uIHNldHRpbmdzXG4gICAqL1xuICBqd3Q/OiBJSnd0QXV0aGVudGljYXRpb247XG5cbiAgLyoqXG4gICAqIEJ1Y2tldCB0aGF0IGlzIHVzZWQgZm9yIGFzc2V0cyBhbmQgcHVibGlzaGVkIHVzaW5nIHRoZSBhc3NldCBDRE5cbiAgICogVGhlIG5hbWUgb2YgdGhlIGJ1Y2tldCBpcyBhdmFpbGFibGUgYXMgcHJvY2Vzcy5lbnYuQVNTRVRfQlVDS0VUXG4gICAqL1xuICBhc3NldEJ1Y2tldD86IHMzLkJ1Y2tldDtcblxuICAvKipcbiAgICogRnVsbHkgcXVhbGlmaWVkIGRvbWFpbiBuYW1lIG9mIHRoZSBhc3NldCBDRE5cbiAgICogSXQgaXMgYXZhaWxhYmxlIGFzIHByb2Nlc3MuZW52LkFTU0VUX0RPTUFJTl9OQU1FXG4gICAqL1xuICBhc3NldERvbWFpbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNob3VsZCB0aGUgQVdTLVNESyBiZSBwYWNrYWdlZCB3aXRoIHRoZSBMYW1iZGEgY29kZSBvciBleGNsdWRlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZSAoZXhjbHVkZSBTREsgYW5kIHVzZSBydW50aW1lIHByb3ZpZGVkIG9uZSlcbiAgICovXG4gIGluY2x1ZGVTREs/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBhZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlcyBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uXG4gICAqL1xuICBhZGRpdGlvbmFsRW52Pzoge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgfTtcblxuICAvKipcbiAgICogYWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgdW5kZXJseWluZyBMYW1iZGEgZnVuY3Rpb24gY29uc3RydWN0XG4gICAqL1xuICBsYW1iZGFPcHRpb25zPzogTGFtYmRhT3B0aW9ucztcblxuICAvKipcbiAgICogVHJhY2luZyBjb25maWdcbiAgICovXG4gIGxhbWJkYVRyYWNpbmc/OiBMYW1iZGFUcmFjaW5nT3B0aW9ucztcbn1cblxuZXhwb3J0IGNsYXNzIExhbWJkYUZ1bmN0aW9uIGV4dGVuZHMgbGFtYmRhTm9kZWpzLk5vZGVqc0Z1bmN0aW9uIHtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcml2YXRlIHByb3BzOiBMYW1iZGFGdW5jdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcy5sYW1iZGFPcHRpb25zLFxuICAgICAgZW50cnk6IHByb3BzLmVudHJ5LFxuICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMThfWCxcbiAgICAgIGJ1bmRsaW5nOiB7XG4gICAgICAgIC4uLnByb3BzLmxhbWJkYU9wdGlvbnM/LmJ1bmRsaW5nLFxuICAgICAgICBleHRlcm5hbE1vZHVsZXM6IHByb3BzLmluY2x1ZGVTREsgPyBbXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgbG9hZGVyOiB7XG4gICAgICAgICAgLi4ucHJvcHMubGFtYmRhT3B0aW9ucz8uYnVuZGxpbmc/LmxvYWRlcixcbiAgICAgICAgICAnLnlhbWwnOiAndGV4dCcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgLi4ucHJvcHMubGFtYmRhT3B0aW9ucz8uZW52aXJvbm1lbnQsXG4gICAgICAgIC4uLnByb3BzLnN0YWdlTmFtZSAmJiB7XG4gICAgICAgICAgU1RBR0U6IHByb3BzLnN0YWdlTmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4ucHJvcHMudGFibGUgJiYge1xuICAgICAgICAgIFRBQkxFOiBwcm9wcy50YWJsZS50YWJsZU5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3BzLmp3dCAmJiB7XG4gICAgICAgICAgSldUX0lTU1VFUl9VUkw6IHByb3BzLmp3dC5pc3N1ZXJVcmwsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3BzLmp3dD8uandrc1VybCAmJiB7XG4gICAgICAgICAgSldUX0pXS1NfVVJMOiBwcm9wcy5qd3Quandrc1VybCxcbiAgICAgICAgfSxcbiAgICAgICAgLi4ucHJvcHMuand0Py5hdWRpZW5jZSAmJiB7XG4gICAgICAgICAgSldUX0FVRElFTkNFX1VSTDogcHJvcHMuand0LmF1ZGllbmNlLmpvaW4oJ3x8JyksXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3BzLnVzZXJQb29sICYmIHtcbiAgICAgICAgICBVU0VSX1BPT0xfSUQ6IHByb3BzLnVzZXJQb29sLnVzZXJQb29sSWQsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3BzLmFzc2V0QnVja2V0ICYmIHtcbiAgICAgICAgICBBU1NFVF9CVUNLRVQ6IHByb3BzLmFzc2V0QnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3BzLmFzc2V0RG9tYWluTmFtZSAmJiB7XG4gICAgICAgICAgQVNTRVRfRE9NQUlOX05BTUU6IHByb3BzLmFzc2V0RG9tYWluTmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4ucHJvcHMuYWRkaXRpb25hbEVudixcbiAgICAgIH0sXG4gICAgICBoYW5kbGVyOiBwcm9wcy5oYW5kbGVyID8/ICdoYW5kbGVyJyxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIHRyYWNpbmc6IHByb3BzLmxhbWJkYVRyYWNpbmc/LnhSYXlUcmFjaW5nLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLnRhYmxlKSB7XG4gICAgICBpZiAocHJvcHMudGFibGVXcml0ZXMgPz8gdHJ1ZSkge1xuICAgICAgICBwcm9wcy50YWJsZS5ncmFudFJlYWRXcml0ZURhdGEodGhpcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9wcy50YWJsZS5ncmFudFJlYWREYXRhKHRoaXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRUYWJsZSh0YWJsZTogZHluYW1vZGIuSVRhYmxlLCB0YWJsZVdyaXRlcz86IGJvb2xlYW4pOiBMYW1iZGFGdW5jdGlvbiB7XG4gICAgdGhpcy5wcm9wcy50YWJsZSA9IHRhYmxlO1xuICAgIHRoaXMucHJvcHMudGFibGVXcml0ZXMgPSB0YWJsZVdyaXRlcztcblxuICAgIHRoaXMuYWRkRW52aXJvbm1lbnQoJ1RBQkxFJywgdGFibGUudGFibGVOYW1lKTtcbiAgICBpZiAodGFibGVXcml0ZXMgPz8gdHJ1ZSkge1xuICAgICAgdGFibGUuZ3JhbnRSZWFkV3JpdGVEYXRhKHRoaXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YWJsZS5ncmFudFJlYWREYXRhKHRoaXMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNldFVzZXJQb29sKHVzZXJQb29sOiBjb2duaXRvLklVc2VyUG9vbCk6IExhbWJkYUZ1bmN0aW9uIHtcbiAgICB0aGlzLnByb3BzLnVzZXJQb29sID0gdXNlclBvb2w7XG4gICAgdGhpcy5hZGRFbnZpcm9ubWVudCgnVVNFUl9QT09MX0lEJywgdXNlclBvb2wudXNlclBvb2xJZCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRUYWJsZVdyaXRlKCk6IExhbWJkYUZ1bmN0aW9uIHtcbiAgICBpZiAoIXRoaXMucHJvcHMudGFibGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdGFibGUgY29uZmlndXJlZCcpO1xuICAgIH1cbiAgICB0aGlzLnByb3BzLnRhYmxlLmdyYW50UmVhZFdyaXRlRGF0YSh0aGlzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBncmFudFNlbmRFbWFpbHMoKTogTGFtYmRhRnVuY3Rpb24ge1xuICAgIHRoaXMuZ3JhbnRQcmluY2lwYWwuYWRkVG9QcmluY2lwYWxQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnc2VzOlNlbmRFbWFpbCcsXG4gICAgICAgICdzZXM6U2VuZFRlbXBsYXRlZEVtYWlsJyxcbiAgICAgICAgJ3NlczpTZW5kQnVsa1RlbXBsYXRlZEVtYWlsJyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBncmFudFVwbG9hZEFzc2V0cygpOiBMYW1iZGFGdW5jdGlvbiB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmFzc2V0QnVja2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGFzc2V0IGJ1Y2tldCBjb25maWd1cmVkJyk7XG4gICAgfVxuICAgIHRoaXMucHJvcHMuYXNzZXRCdWNrZXQuZ3JhbnRQdXQodGhpcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnREZWxldGVBc3NldCgpOiBMYW1iZGFGdW5jdGlvbiB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmFzc2V0QnVja2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGFzc2V0IGJ1Y2tldCBjb25maWd1cmVkJyk7XG4gICAgfVxuICAgIHRoaXMucHJvcHMuYXNzZXRCdWNrZXQuZ3JhbnREZWxldGUodGhpcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRSZWFkQXNzZXRzKCk6IExhbWJkYUZ1bmN0aW9uIHtcbiAgICBpZiAoIXRoaXMucHJvcHMuYXNzZXRCdWNrZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gYXNzZXQgYnVja2V0IGNvbmZpZ3VyZWQnKTtcbiAgICB9XG4gICAgdGhpcy5wcm9wcy5hc3NldEJ1Y2tldC5ncmFudFJlYWQodGhpcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRVc2VycG9vbFJlYWQoKTogTGFtYmRhRnVuY3Rpb24ge1xuICAgIGlmICghdGhpcy5wcm9wcy51c2VyUG9vbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB1c2VyIHBvb2wgY29uZmlndXJlZCcpO1xuICAgIH1cbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgJ2NvZ25pdG8taWRwOkxpc3RVc2VycycsXG4gICAgICAgICdjb2duaXRvLWlkcDpMaXN0VXNlcnNJbkdyb3VwJyxcbiAgICAgICAgJ2NvZ25pdG8taWRwOkFkbWluR2V0VXNlcicsXG4gICAgICAgICdjb2duaXRvLWlkcDpBZG1pbkxpc3RHcm91cHNGb3JVc2VyJyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFt0aGlzLnByb3BzLnVzZXJQb29sLnVzZXJQb29sQXJuXSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRVc2VycG9vbFJlYWRXcml0ZSgpOiBMYW1iZGFGdW5jdGlvbiB7XG4gICAgaWYgKCF0aGlzLnByb3BzLnVzZXJQb29sKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHVzZXIgcG9vbCBjb25maWd1cmVkJyk7XG4gICAgfVxuICAgIHRoaXMuZ3JhbnRVc2VycG9vbFJlYWQoKTtcbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgJ2NvZ25pdG8taWRwOkFkbWluVXBkYXRlVXNlckF0dHJpYnV0ZXMnLFxuICAgICAgICAnY29nbml0by1pZHA6QWRtaW5BZGRVc2VyVG9Hcm91cCcsXG4gICAgICAgICdjb2duaXRvLWlkcDpBZG1pblJlbW92ZVVzZXJGcm9tR3JvdXAnLFxuICAgICAgICAnY29nbml0by1pZHA6QWRtaW5DcmVhdGVVc2VyJyxcbiAgICAgICAgJ2NvZ25pdG8taWRwOkFkbWluRGVsZXRlVXNlcicsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbdGhpcy5wcm9wcy51c2VyUG9vbC51c2VyUG9vbEFybl0sXG4gICAgfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNldFRpbWVvdXQodGltZW91dDogY2RrLkR1cmF0aW9uKTogTGFtYmRhRnVuY3Rpb24ge1xuICAgICh0aGlzLm5vZGUuZGVmYXVsdENoaWxkIGFzIGxhbWJkYS5DZm5GdW5jdGlvbikuYWRkUHJvcGVydHlPdmVycmlkZSgnVGltZW91dCcsIHRpbWVvdXQudG9TZWNvbmRzKCkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbn0iXX0=
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL2Z1bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBT3FCO0FBRXJCLHVEQUFpRDtBQWtHakQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsK0JBQVksQ0FBQyxjQUFjO0lBRTdEOzs7Ozs7T0FNRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQVUsS0FBMEI7O1FBQzFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLLENBQUMsYUFBYTtZQUN0QixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztZQUM1QixRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxNQUFBLEtBQUssQ0FBQyxhQUFhLDBDQUFFLFFBQVE7Z0JBQ2hDLGVBQWUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2xELE1BQU0sRUFBRTtvQkFDTixHQUFHLE1BQUEsTUFBQSxLQUFLLENBQUMsYUFBYSwwQ0FBRSxRQUFRLDBDQUFFLE1BQU07b0JBQ3hDLE9BQU8sRUFBRSxNQUFNO2lCQUNoQjthQUNGO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLEdBQUcsTUFBQSxLQUFLLENBQUMsYUFBYSwwQ0FBRSxXQUFXO2dCQUNuQyxHQUFHLEtBQUssQ0FBQyxTQUFTLElBQUk7b0JBQ3BCLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUztpQkFDdkI7Z0JBQ0QsR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJO29CQUNoQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTO2lCQUM3QjtnQkFDRCxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUk7b0JBQ2QsY0FBYyxFQUFFLEtBQUssQ0FBQyxHQUFHLENB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QUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztTQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLHNCQUFzQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLHFCQUFHLENBQUMsZUFBZSxDQUFDO1lBQy9ELE9BQU8sRUFBRTtnQkFDUCx1Q0FBdUM7Z0JBQ3ZDLGlDQUFpQztnQkFDakMsc0NBQXNDO2dCQUN0Qyw2QkFBNkI7Z0JBQzdCLDZCQUE2QjthQUM5QjtZQUNELFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztTQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFxQjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQW1DLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ25HLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUVGO0FBdktELHdDQXVLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGF3c19keW5hbW9kYiBhcyBkeW5hbW9kYixcbiAgYXdzX3MzIGFzIHMzLFxuICBhd3NfaWFtIGFzIGlhbSxcbiAgYXdzX2NvZ25pdG8gYXMgY29nbml0byxcbiAgYXdzX2xhbWJkYSBhcyBsYW1iZGEsXG4gIGF3c19sYW1iZGFfbm9kZWpzIGFzIGxhbWJkYU5vZGVqcyxcbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSUp3dEF1dGhlbnRpY2F0aW9uIH0gZnJvbSAnLi9hdXRoZW50aWNhdGlvbic7XG5cbmV4cG9ydCB0eXBlIExhbWJkYU9wdGlvbnMgPSBPbWl0PGxhbWJkYU5vZGVqcy5Ob2RlanNGdW5jdGlvblByb3BzLCAnZW50cnknIHwgJ2hhbmRsZXInIHwgJ2Rlc2NyaXB0aW9uJz5cblxuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFUcmFjaW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBY3RpdmF0ZSB0cmFjaW5nIHdpdGggWC1SYXlcbiAgICpcbiAgICogQGRlZmF1bHQgbGFtYmRhLlRyYWNpbmcuRElTQUJMRURcbiAgICovXG4gIHhSYXlUcmFjaW5nPzogbGFtYmRhLlRyYWNpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRnVuY3Rpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBEZXBsb3ltZW50IHN0YWdlIChlLmcuIGRldilcbiAgICovXG4gIHN0YWdlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogZW50cnkgZmlsZSBuYW1lXG4gICAqL1xuICBlbnRyeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBuYW1lIG9mIHRoZSBleHBvcnRlZCBoYW5kbGVyIGZ1bmN0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGhhbmRsZXJcbiAgICovXG4gIGhhbmRsZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGRlc2NyaXB0aW9uIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEeW5hbW9EQiB0aGF0IGlzIHVzZWQgYXMgZGF0YXN0b3JlXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gd2lsbCBoYXZlIHJlYWQgYWNjZXNzIHRvIHRoaXMgdGFibGUgYXV0b21hdGljYWxseVxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGFibGUgaXMgYXZhaWxhYmxlIGFzIHByb2Nlc3MuZW52LlRBQkxFXG4gICAqL1xuICB0YWJsZT86IGR5bmFtb2RiLklUYWJsZTtcblxuICAvKipcbiAgICogQWN0aXZhdGUgd3JpdGUgcGVybWlzc2lvbnMgdG8gdGhlIER5bmFtb0RCIHRhYmxlXG4gICAqL1xuICB0YWJsZVdyaXRlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvZ25pdG8gdXNlciBwb29sXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwb29sIGlzIGF2YWlsYWJsZSBhcyBwcm9jZXNzLmVudi5VU0VSX1BPT0xfSURcbiAgICovXG4gIHVzZXJQb29sPzogY29nbml0by5JVXNlclBvb2w7XG5cbiAgLyoqXG4gICAqIEp3dEF1dGhlbnRpY2F0aW9uIHNldHRpbmdzXG4gICAqL1xuICBqd3Q/OiBJSnd0QXV0aGVudGljYXRpb247XG5cbiAgLyoqXG4gICAqIEJ1Y2tldCB0aGF0IGlzIHVzZWQgZm9yIGFzc2V0cyBhbmQgcHVibGlzaGVkIHVzaW5nIHRoZSBhc3NldCBDRE5cbiAgICogVGhlIG5hbWUgb2YgdGhlIGJ1Y2tldCBpcyBhdmFpbGFibGUgYXMgcHJvY2Vzcy5lbnYuQVNTRVRfQlVDS0VUXG4gICAqL1xuICBhc3NldEJ1Y2tldD86IHMzLkJ1Y2tldDtcblxuICAvKipcbiAgICogRnVsbHkgcXVhbGlmaWVkIGRvbWFpbiBuYW1lIG9mIHRoZSBhc3NldCBDRE5cbiAgICogSXQgaXMgYXZhaWxhYmxlIGFzIHByb2Nlc3MuZW52LkFTU0VUX0RPTUFJTl9OQU1FXG4gICAqL1xuICBhc3NldERvbWFpbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNob3VsZCB0aGUgQVdTLVNESyBiZSBwYWNrYWdlZCB3aXRoIHRoZSBMYW1iZGEgY29kZSBvciBleGNsdWRlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZSAoZXhjbHVkZSBTREsgYW5kIHVzZSBydW50aW1lIHByb3ZpZGVkIG9uZSlcbiAgICovXG4gIGluY2x1ZGVTREs/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBhZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlcyBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uXG4gICAqL1xuICBhZGRpdGlvbmFsRW52Pzoge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgfTtcblxuICAvKipcbiAgICogYWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgdW5kZXJseWluZyBMYW1iZGEgZnVuY3Rpb24gY29uc3RydWN0XG4gICAqL1xuICBsYW1iZGFPcHRpb25zPzogTGFtYmRhT3B0aW9ucztcblxuICAvKipcbiAgICogVHJhY2luZyBjb25maWdcbiAgICovXG4gIGxhbWJkYVRyYWNpbmc/OiBMYW1iZGFUcmFjaW5nT3B0aW9ucztcbn1cblxuLyoqXG4gKiBUaGUgTGFtYmRhRnVuY3Rpb24gY29uc3RydWN0IGV4dGVuZHMgdGhlIEFXUyBDREsgTm9kZWpzRnVuY3Rpb24gdG8gcHJvdmlkZSBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb25zIGFuZCBlbnZpcm9ubWVudCBzZXR0aW5ncyBmb3IgQVdTIExhbWJkYSBmdW5jdGlvbnMuXG4gKiBUaGlzIGNvbnN0cnVjdCBmYWNpbGl0YXRlcyBzZXR0aW5nIHVwIGEgTGFtYmRhIGZ1bmN0aW9uIHdpdGggdmFyaW91cyBjdXN0b20gb3B0aW9ucywgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBhbmQgcGVybWlzc2lvbnMgcmVxdWlyZWQgdG8gaW50ZXJhY3Qgd2l0aCBBV1Mgc2VydmljZXNcbiAqIHN1Y2ggYXMgRHluYW1vREIsIENvZ25pdG8sIGFuZCBTMy4gSXQgc3VwcG9ydHMgc2V0dGluZyB1cCBMYW1iZGEgZnVuY3Rpb25zIHdpdGggcHJlLWRlZmluZWQgYnVuZGxlcywgY3VzdG9tIGhhbmRsZXJzLCBhbmQgaW50ZWdyYXRpb25zIHdpdGggQVdTIHNlcnZpY2VzLlxuICogVGhlIGNvbnN0cnVjdCBhbHNvIHByb3ZpZGVzIG1ldGhvZHMgdG8gZHluYW1pY2FsbHkgdXBkYXRlIHRoZSBjb25maWd1cmF0aW9uIGFuZCBwZXJtaXNzaW9ucyBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uIGFmdGVyIGl0IGhhcyBiZWVuIGNyZWF0ZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGxhbWJkYUZ1bmN0aW9uID0gbmV3IExhbWJkYUZ1bmN0aW9uKHRoaXMsICdNeUxhbWJkYUZ1bmN0aW9uJywge1xuICogICBlbnRyeTogJ3BhdGgvdG8vbGFtYmRhL2hhbmRsZXIudHMnLFxuICogICBoYW5kbGVyOiAnbWFpbicsXG4gKiAgIHN0YWdlTmFtZTogJ2RldicsXG4gKiAgIHRhYmxlOiBteUR5bmFtb0RCVGFibGUsXG4gKiAgIHVzZXJQb29sOiBteUNvZ25pdG9Vc2VyUG9vbCxcbiAqICAgYXNzZXRCdWNrZXQ6IG15UzNCdWNrZXQsXG4gKiAgIGxhbWJkYU9wdGlvbnM6IHtcbiAqICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAqICAgICBtZW1vcnlTaXplOiA1MTIsXG4gKiAgIH0sXG4gKiB9KTtcbiAqXG4gKiAvLyBBZGQgYWRkaXRpb25hbCBwZXJtaXNzaW9uc1xuICogbGFtYmRhRnVuY3Rpb24uZ3JhbnRTZW5kRW1haWxzKCk7XG4gKiBsYW1iZGFGdW5jdGlvbi5ncmFudFRhYmxlV3JpdGUoKTtcbiAqL1xuZXhwb3J0IGNsYXNzIExhbWJkYUZ1bmN0aW9uIGV4dGVuZHMgbGFtYmRhTm9kZWpzLk5vZGVqc0Z1bmN0aW9uIHtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBMYW1iZGFGdW5jdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRoaXMgY29uc3RydWN0IGlzIGRlZmluZWQuXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBzY29wZWQgY29uc3RydWN0IElELlxuICAgKiBAcGFyYW0gcHJvcHMgLSBUaGUgcHJvcGVydGllcyBvZiB0aGUgTGFtYmRhRnVuY3Rpb24gY29uc3RydWN0LlxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJpdmF0ZSBwcm9wczogTGFtYmRhRnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMubGFtYmRhT3B0aW9ucyxcbiAgICAgIGVudHJ5OiBwcm9wcy5lbnRyeSxcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgICBidW5kbGluZzoge1xuICAgICAgICAuLi5wcm9wcy5sYW1iZGFPcHRpb25zPy5idW5kbGluZyxcbiAgICAgICAgZXh0ZXJuYWxNb2R1bGVzOiBwcm9wcy5pbmNsdWRlU0RLID8gW10gOiB1bmRlZmluZWQsXG4gICAgICAgIGxvYWRlcjoge1xuICAgICAgICAgIC4uLnByb3BzLmxhbWJkYU9wdGlvbnM/LmJ1bmRsaW5nPy5sb2FkZXIsXG4gICAgICAgICAgJy55YW1sJzogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIC4uLnByb3BzLmxhbWJkYU9wdGlvbnM/LmVudmlyb25tZW50LFxuICAgICAgICAuLi5wcm9wcy5zdGFnZU5hbWUgJiYge1xuICAgICAgICAgIFNUQUdFOiBwcm9wcy5zdGFnZU5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3BzLnRhYmxlICYmIHtcbiAgICAgICAgICBUQUJMRTogcHJvcHMudGFibGUudGFibGVOYW1lLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wcm9wcy5qd3QgJiYge1xuICAgICAgICAgIEpXVF9JU1NVRVJfVVJMOiBwcm9wcy5qd3QuaXNzdWVyVXJsLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wcm9wcy5qd3Q/Lmp3a3NVcmwgJiYge1xuICAgICAgICAgIEpXVF9KV0tTX1VSTDogcHJvcHMuand0Lmp3a3NVcmwsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3BzLmp3dD8uYXVkaWVuY2UgJiYge1xuICAgICAgICAgIEpXVF9BVURJRU5DRV9VUkw6IHByb3BzLmp3dC5hdWRpZW5jZS5qb2luKCd8fCcpLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wcm9wcy51c2VyUG9vbCAmJiB7XG4gICAgICAgICAgVVNFUl9QT09MX0lEOiBwcm9wcy51c2VyUG9vbC51c2VyUG9vbElkLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wcm9wcy5hc3NldEJ1Y2tldCAmJiB7XG4gICAgICAgICAgQVNTRVRfQlVDS0VUOiBwcm9wcy5hc3NldEJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wcm9wcy5hc3NldERvbWFpbk5hbWUgJiYge1xuICAgICAgICAgIEFTU0VUX0RPTUFJTl9OQU1FOiBwcm9wcy5hc3NldERvbWFpbk5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3BzLmFkZGl0aW9uYWxFbnYsXG4gICAgICB9LFxuICAgICAgaGFuZGxlcjogcHJvcHMuaGFuZGxlciA/PyAnaGFuZGxlcicsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICB0cmFjaW5nOiBwcm9wcy5sYW1iZGFUcmFjaW5nPy54UmF5VHJhY2luZyxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy50YWJsZSkge1xuICAgICAgaWYgKHByb3BzLnRhYmxlV3JpdGVzID8/IHRydWUpIHtcbiAgICAgICAgcHJvcHMudGFibGUuZ3JhbnRSZWFkV3JpdGVEYXRhKHRoaXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvcHMudGFibGUuZ3JhbnRSZWFkRGF0YSh0aGlzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0VGFibGUodGFibGU6IGR5bmFtb2RiLklUYWJsZSwgdGFibGVXcml0ZXM/OiBib29sZWFuKTogTGFtYmRhRnVuY3Rpb24ge1xuICAgIHRoaXMucHJvcHMudGFibGUgPSB0YWJsZTtcbiAgICB0aGlzLnByb3BzLnRhYmxlV3JpdGVzID0gdGFibGVXcml0ZXM7XG5cbiAgICB0aGlzLmFkZEVudmlyb25tZW50KCdUQUJMRScsIHRhYmxlLnRhYmxlTmFtZSk7XG4gICAgaWYgKHRhYmxlV3JpdGVzID8/IHRydWUpIHtcbiAgICAgIHRhYmxlLmdyYW50UmVhZFdyaXRlRGF0YSh0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGFibGUuZ3JhbnRSZWFkRGF0YSh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBzZXRVc2VyUG9vbCh1c2VyUG9vbDogY29nbml0by5JVXNlclBvb2wpOiBMYW1iZGFGdW5jdGlvbiB7XG4gICAgdGhpcy5wcm9wcy51c2VyUG9vbCA9IHVzZXJQb29sO1xuICAgIHRoaXMuYWRkRW52aXJvbm1lbnQoJ1VTRVJfUE9PTF9JRCcsIHVzZXJQb29sLnVzZXJQb29sSWQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdyYW50VGFibGVXcml0ZSgpOiBMYW1iZGFGdW5jdGlvbiB7XG4gICAgaWYgKCF0aGlzLnByb3BzLnRhYmxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHRhYmxlIGNvbmZpZ3VyZWQnKTtcbiAgICB9XG4gICAgdGhpcy5wcm9wcy50YWJsZS5ncmFudFJlYWRXcml0ZURhdGEodGhpcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRTZW5kRW1haWxzKCk6IExhbWJkYUZ1bmN0aW9uIHtcbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgJ3NlczpTZW5kRW1haWwnLFxuICAgICAgICAnc2VzOlNlbmRUZW1wbGF0ZWRFbWFpbCcsXG4gICAgICAgICdzZXM6U2VuZEJ1bGtUZW1wbGF0ZWRFbWFpbCcsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRVcGxvYWRBc3NldHMoKTogTGFtYmRhRnVuY3Rpb24ge1xuICAgIGlmICghdGhpcy5wcm9wcy5hc3NldEJ1Y2tldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBhc3NldCBidWNrZXQgY29uZmlndXJlZCcpO1xuICAgIH1cbiAgICB0aGlzLnByb3BzLmFzc2V0QnVja2V0LmdyYW50UHV0KHRoaXMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdyYW50RGVsZXRlQXNzZXQoKTogTGFtYmRhRnVuY3Rpb24ge1xuICAgIGlmICghdGhpcy5wcm9wcy5hc3NldEJ1Y2tldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBhc3NldCBidWNrZXQgY29uZmlndXJlZCcpO1xuICAgIH1cbiAgICB0aGlzLnByb3BzLmFzc2V0QnVja2V0LmdyYW50RGVsZXRlKHRoaXMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdyYW50UmVhZEFzc2V0cygpOiBMYW1iZGFGdW5jdGlvbiB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmFzc2V0QnVja2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGFzc2V0IGJ1Y2tldCBjb25maWd1cmVkJyk7XG4gICAgfVxuICAgIHRoaXMucHJvcHMuYXNzZXRCdWNrZXQuZ3JhbnRSZWFkKHRoaXMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdyYW50VXNlcnBvb2xSZWFkKCk6IExhbWJkYUZ1bmN0aW9uIHtcbiAgICBpZiAoIXRoaXMucHJvcHMudXNlclBvb2wpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdXNlciBwb29sIGNvbmZpZ3VyZWQnKTtcbiAgICB9XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbC5hZGRUb1ByaW5jaXBhbFBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdjb2duaXRvLWlkcDpMaXN0VXNlcnMnLFxuICAgICAgICAnY29nbml0by1pZHA6TGlzdFVzZXJzSW5Hcm91cCcsXG4gICAgICAgICdjb2duaXRvLWlkcDpBZG1pbkdldFVzZXInLFxuICAgICAgICAnY29nbml0by1pZHA6QWRtaW5MaXN0R3JvdXBzRm9yVXNlcicsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbdGhpcy5wcm9wcy51c2VyUG9vbC51c2VyUG9vbEFybl0sXG4gICAgfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdyYW50VXNlcnBvb2xSZWFkV3JpdGUoKTogTGFtYmRhRnVuY3Rpb24ge1xuICAgIGlmICghdGhpcy5wcm9wcy51c2VyUG9vbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB1c2VyIHBvb2wgY29uZmlndXJlZCcpO1xuICAgIH1cbiAgICB0aGlzLmdyYW50VXNlcnBvb2xSZWFkKCk7XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbC5hZGRUb1ByaW5jaXBhbFBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdjb2duaXRvLWlkcDpBZG1pblVwZGF0ZVVzZXJBdHRyaWJ1dGVzJyxcbiAgICAgICAgJ2NvZ25pdG8taWRwOkFkbWluQWRkVXNlclRvR3JvdXAnLFxuICAgICAgICAnY29nbml0by1pZHA6QWRtaW5SZW1vdmVVc2VyRnJvbUdyb3VwJyxcbiAgICAgICAgJ2NvZ25pdG8taWRwOkFkbWluQ3JlYXRlVXNlcicsXG4gICAgICAgICdjb2duaXRvLWlkcDpBZG1pbkRlbGV0ZVVzZXInLFxuICAgICAgXSxcbiAgICAgIHJlc291cmNlczogW3RoaXMucHJvcHMudXNlclBvb2wudXNlclBvb2xBcm5dLFxuICAgIH0pKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBzZXRUaW1lb3V0KHRpbWVvdXQ6IGNkay5EdXJhdGlvbik6IExhbWJkYUZ1bmN0aW9uIHtcbiAgICAodGhpcy5ub2RlLmRlZmF1bHRDaGlsZCBhcyBsYW1iZGEuQ2ZuRnVuY3Rpb24pLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ1RpbWVvdXQnLCB0aW1lb3V0LnRvU2Vjb25kcygpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG59Il19
@@ -35,12 +35,53 @@ export interface JsResolverOptions {
35
35
  */
36
36
  readonly pipelineStepNames?: string[];
37
37
  }
38
+ /**
39
+ * The GraphQlApi construct sets up an AWS AppSync GraphQL API integrated with Cognito for authentication and DynamoDB for data storage.
40
+ * This construct facilitates the creation of a GraphQL API with various configurations, including custom domain, logging, schema definition,
41
+ * and authorization using Cognito User Pool and Identity Pool. It also provides methods to dynamically add resolvers and grant access to specific fields.
42
+ *
43
+ * @template RESOLVERS - The type definition for the GraphQL resolvers.
44
+ *
45
+ * @example
46
+ * const api = new GraphQlApi(this, 'MyGraphQlApi', {
47
+ * apiName: 'MyAPI',
48
+ * stageName: 'dev',
49
+ * definitionFileName: 'schema.graphql',
50
+ * authentication: myCognitoAuth,
51
+ * singleTableDatastore: myDynamoDBTable,
52
+ * });
53
+ *
54
+ * // Add a Lambda resolver
55
+ * api.addLambdaResolver('Query', 'getItem');
56
+ *
57
+ * // Grant access to unauthenticated users for a specific query
58
+ * api.grantAccessUnAuth('Query', 'getItem');
59
+ */
38
60
  export declare class GraphQlApi<RESOLVERS> extends BaseApi {
39
61
  private props;
62
+ /**
63
+ * The AWS AppSync GraphQL API instance.
64
+ */
40
65
  readonly api: aws_appsync.GraphqlApi;
66
+ /**
67
+ * The optional DynamoDB data source for the GraphQL API.
68
+ */
41
69
  readonly tableDataSource?: aws_appsync.DynamoDbDataSource;
70
+ /**
71
+ * A collection of Lambda functions used as resolvers for the GraphQL API.
72
+ */
42
73
  private _functions;
74
+ /**
75
+ * The Cognito authentication configuration.
76
+ */
43
77
  private cognitoAuth;
78
+ /**
79
+ * Creates an instance of GraphQlApi.
80
+ *
81
+ * @param scope - The scope in which this construct is defined.
82
+ * @param id - The scoped construct ID.
83
+ * @param props - The properties of the GraphQlApi construct.
84
+ */
44
85
  constructor(scope: Construct, id: string, props: GraphQlApiProps);
45
86
  /**
46
87
  *