@restatedev/restate-cdk 0.7.0 → 0.8.1

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.
@@ -33,12 +33,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
33
33
  return result;
34
34
  };
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.SingleNodeRestateDeployment = exports.TracingMode = void 0;
36
+ exports.SingleNodeRestateDeployment = void 0;
37
37
  const constructs_1 = require("constructs");
38
+ const logs = __importStar(require("aws-cdk-lib/aws-logs"));
39
+ const aws_logs_1 = require("aws-cdk-lib/aws-logs");
38
40
  const ec2 = __importStar(require("aws-cdk-lib/aws-ec2"));
39
41
  const iam = __importStar(require("aws-cdk-lib/aws-iam"));
40
- const cdk = __importStar(require("aws-cdk-lib"));
41
- const registration_provider_1 = require("./registration-provider");
42
+ const deployments_common_1 = require("./deployments-common");
43
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
42
44
  const PUBLIC_INGRESS_PORT = 443;
43
45
  const PUBLIC_ADMIN_PORT = 9073;
44
46
  const RESTATE_INGRESS_PORT = 8080;
@@ -46,30 +48,27 @@ const RESTATE_ADMIN_PORT = 9070;
46
48
  const RESTATE_IMAGE_DEFAULT = "docker.io/restatedev/restate";
47
49
  const RESTATE_DOCKER_DEFAULT_TAG = "latest";
48
50
  const ADOT_DOCKER_DEFAULT_TAG = "latest";
49
- var TracingMode;
50
- (function (TracingMode) {
51
- TracingMode["DISABLED"] = "DISABLED";
52
- TracingMode["AWS_XRAY"] = "AWS_XRAY";
53
- })(TracingMode || (exports.TracingMode = TracingMode = {}));
54
51
  /**
55
- * Creates a Restate service deployment backed by a single EC2 instance,
56
- * suitable for development and testing purposes. The instance will be created
57
- * in a dedicated VPC (unless one is provided). EC2 instance will be allocated
58
- * a public IP address.
52
+ * Creates a Restate service deployment backed by a single EC2 instance, and is suitable for
53
+ * development and testing purposes.
54
+ * The EC2 instance will be created in the default VPC unless otherwise specified.
55
+ * The instance will be assigned a public IP address.
59
56
  */
60
57
  class SingleNodeRestateDeployment extends constructs_1.Construct {
61
58
  constructor(scope, id, props) {
62
59
  super(scope, id);
63
- this.vpc = new ec2.Vpc(this, "Vpc", {
64
- maxAzs: 3,
65
- createInternetGateway: true,
66
- natGateways: 0,
67
- });
60
+ this.vpc = props.vpc ?? ec2.Vpc.fromLookup(this, "Vpc", { isDefault: true });
68
61
  this.invokerRole = new iam.Role(this, "InstanceRole", {
69
62
  assumedBy: new iam.ServicePrincipal("ec2.amazonaws.com"),
70
63
  managedPolicies: [iam.ManagedPolicy.fromAwsManagedPolicyName("AmazonSSMManagedInstanceCore")],
71
64
  });
72
- props.logGroup.grantWrite(this.invokerRole);
65
+ const logGroup = props.logGroup ??
66
+ new logs.LogGroup(this, "Logs", {
67
+ logGroupName: `/restate/${id}`,
68
+ retention: aws_logs_1.RetentionDays.ONE_MONTH,
69
+ removalPolicy: props.removalPolicy ?? aws_cdk_lib_1.RemovalPolicy.DESTROY,
70
+ });
71
+ logGroup.grantWrite(this.invokerRole);
73
72
  const restateImage = props.restateImage ?? RESTATE_IMAGE_DEFAULT;
74
73
  const restateTag = props.restateTag ?? RESTATE_DOCKER_DEFAULT_TAG;
75
74
  const adotTag = props.adotTag ?? ADOT_DOCKER_DEFAULT_TAG;
@@ -83,7 +82,7 @@ class SingleNodeRestateDeployment extends constructs_1.Construct {
83
82
  " --volume /var/restate:/target --network=host",
84
83
  " -e RESTATE_OBSERVABILITY__LOG__FORMAT=Json -e RUST_LOG=info,restate_worker::partition=warn",
85
84
  " -e RESTATE_OBSERVABILITY__TRACING__ENDPOINT=http://localhost:4317",
86
- ` --log-driver=awslogs --log-opt awslogs-group=${props.logGroup.logGroupName}`,
85
+ ` --log-driver=awslogs --log-opt awslogs-group=${logGroup.logGroupName}`,
87
86
  ` ${restateImage}:${restateTag}`,
88
87
  ].join(""), "mkdir -p /etc/pki/private", [
89
88
  "openssl req -new -x509 -nodes -sha256 -days 365 -extensions v3_ca",
@@ -103,7 +102,7 @@ class SingleNodeRestateDeployment extends constructs_1.Construct {
103
102
  this.instance = restateInstance;
104
103
  // We start the ADOT collector regardless, and only control whether they will be published to X-Ray via instance
105
104
  // role permissions. This way historic traces will be buffered on the host, even if tracing is disabled initially.
106
- if (props.tracing === TracingMode.AWS_XRAY) {
105
+ if (props.tracing === deployments_common_1.TracingMode.AWS_XRAY) {
107
106
  restateInstance.role.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName("AWSXrayWriteOnlyAccess"));
108
107
  }
109
108
  const restateInstanceSecurityGroup = new ec2.SecurityGroup(this, "RestateSecurityGroup", {
@@ -114,12 +113,6 @@ class SingleNodeRestateDeployment extends constructs_1.Construct {
114
113
  restateInstance.addSecurityGroup(restateInstanceSecurityGroup);
115
114
  restateInstanceSecurityGroup.addIngressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(443), "Allow traffic from anywhere to Restate ingress port");
116
115
  restateInstanceSecurityGroup.addIngressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(9073), "Allow traffic from anywhere to Restate admin port");
117
- const registrationProvider = new registration_provider_1.RegistrationProvider(this, "RegistrationProvider", {});
118
- this.registrationProviderToken = new cdk.CfnOutput(this, "RegistrationProviderToken", {
119
- description: "Custom resource provider service token, needed by the Restate service registry component to trigger discovery",
120
- exportName: [props.prefix, "RegistrationProviderToken"].join("-"),
121
- value: registrationProvider.serviceToken,
122
- });
123
116
  this.ingressUrl = `https://${restateInstance.instancePublicDnsName}${PUBLIC_INGRESS_PORT == 443 ? "" : `:${PUBLIC_INGRESS_PORT}`}`;
124
117
  this.adminUrl = `https://${restateInstance.instancePublicDnsName}:${PUBLIC_ADMIN_PORT}`;
125
118
  }
@@ -162,4 +155,4 @@ const NGINX_REVERSE_PROXY_CONFIG = [
162
155
  " }",
163
156
  "}",
164
157
  ].join("\n");
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLW5vZGUtcmVzdGF0ZS1kZXBsb3ltZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL3Jlc3RhdGUtY29uc3RydWN0cy9zaW5nbGUtbm9kZS1yZXN0YXRlLWRlcGxveW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7R0FTRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCwyQ0FBdUM7QUFFdkMseURBQTJDO0FBQzNDLHlEQUEyQztBQUMzQyxpREFBbUM7QUFFbkMsbUVBQStEO0FBRS9ELE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBQ2hDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDO0FBQy9CLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDO0FBQ2xDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0FBQ2hDLE1BQU0scUJBQXFCLEdBQUcsOEJBQThCLENBQUM7QUFDN0QsTUFBTSwwQkFBMEIsR0FBRyxRQUFRLENBQUM7QUFDNUMsTUFBTSx1QkFBdUIsR0FBRyxRQUFRLENBQUM7QUFFekMsSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLG9DQUFxQixDQUFBO0lBQ3JCLG9DQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxXQUFXLDJCQUFYLFdBQVcsUUFHdEI7QUFzQkQ7Ozs7O0dBS0c7QUFDSCxNQUFhLDJCQUE0QixTQUFRLHNCQUFTO0lBU3hELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQ2xDLE1BQU0sRUFBRSxDQUFDO1lBQ1QscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixXQUFXLEVBQUUsQ0FBQztTQUNmLENBQUMsQ0FBQztRQUVILElBQUksQ0FB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O0lBQ2xFLG9DQUFvQztJQUNwQyw0QkFBNEI7SUFDNUIsK0JBQStCO0lBQy9CLGlDQUFpQztJQUNqQyxFQUFFO0lBQ0YsZ0JBQWdCO0lBQ2hCLG1DQUFtQyxvQkFBb0IsR0FBRztJQUMxRCxLQUFLO0lBQ0wsR0FBRztJQUNILEVBQUU7SUFDRixVQUFVO0lBQ1YsMEJBQTBCO0lBQzFCLCtCQUErQjtJQUMvQixrQkFBa0I7SUFDbEIsK0JBQStCO0lBQy9CLEVBQUU7SUFDRiw4REFBOEQ7SUFDOUQsa0VBQWtFO0lBQ2xFLG9DQUFvQztJQUNwQyw0QkFBNEI7SUFDNUIsK0JBQStCO0lBQy9CLGlDQUFpQztJQUNqQyxFQUFFO0lBQ0YsZ0JBQWdCO0lBQ2hCLG1DQUFtQyxrQkFBa0IsR0FBRztJQUN4RCxLQUFLO0lBQ0wsR0FBRztDQUNKLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMyAtIFJlc3RhdGUgU29mdHdhcmUsIEluYy4sIFJlc3RhdGUgR21iSFxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBSZXN0YXRlIFNESyBmb3IgTm9kZS5qcy9UeXBlU2NyaXB0LFxuICogd2hpY2ggaXMgcmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICpcbiAqIFlvdSBjYW4gZmluZCBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgaW4gZmlsZSBMSUNFTlNFIGluIHRoZSByb290XG4gKiBkaXJlY3Rvcnkgb2YgdGhpcyByZXBvc2l0b3J5IG9yIHBhY2thZ2UsIG9yIGF0XG4gKiBodHRwczovL2dpdGh1Yi5jb20vcmVzdGF0ZWRldi9zZGstdHlwZXNjcmlwdC9ibG9iL21haW4vTElDRU5TRVxuICovXG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IFJlc3RhdGVFbnZpcm9ubWVudCB9IGZyb20gXCIuL3Jlc3RhdGUtZW52aXJvbm1lbnRcIjtcbmltcG9ydCB7IFJlZ2lzdHJhdGlvblByb3ZpZGVyIH0gZnJvbSBcIi4vcmVnaXN0cmF0aW9uLXByb3ZpZGVyXCI7XG5cbmNvbnN0IFBVQkxJQ19JTkdSRVNTX1BPUlQgPSA0NDM7XG5jb25zdCBQVUJMSUNfQURNSU5fUE9SVCA9IDkwNzM7XG5jb25zdCBSRVNUQVRFX0lOR1JFU1NfUE9SVCA9IDgwODA7XG5jb25zdCBSRVNUQVRFX0FETUlOX1BPUlQgPSA5MDcwO1xuY29uc3QgUkVTVEFURV9JTUFHRV9ERUZBVUxUID0gXCJkb2NrZXIuaW8vcmVzdGF0ZWRldi9yZXN0YXRlXCI7XG5jb25zdCBSRVNUQVRFX0RPQ0tFUl9ERUZBVUxUX1RBRyA9IFwibGF0ZXN0XCI7XG5jb25zdCBBRE9UX0RPQ0tFUl9ERUZBVUxUX1RBRyA9IFwibGF0ZXN0XCI7XG5cbmV4cG9ydCBlbnVtIFRyYWNpbmdNb2RlIHtcbiAgRElTQUJMRUQgPSBcIkRJU0FCTEVEXCIsXG4gIEFXU19YUkFZID0gXCJBV1NfWFJBWVwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RhdGVJbnN0YW5jZVByb3BzIHtcbiAgLyoqIExvZyBncm91cCBmb3IgUmVzdGF0ZSBzZXJ2aWNlIGxvZ3MuICovXG4gIGxvZ0dyb3VwOiBsb2dzLkxvZ0dyb3VwO1xuXG4gIC8qKiBUcmFjaW5nIG1vZGUgZm9yIFJlc3RhdGUgc2VydmljZXMuIERlZmF1bHRzIHRvIHtAbGluayBUcmFjaW5nTW9kZS5ESVNBQkxFRH0uICovXG4gIHRyYWNpbmc/OiBUcmFjaW5nTW9kZTtcblxuICAvKiogUHJlZml4IGZvciByZXNvdXJjZXMgY3JlYXRlZCBieSB0aGlzIGNvbnN0cnVjdCB0aGF0IHJlcXVpcmUgdW5pcXVlIG5hbWVzLiAqL1xuICBwcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqIFJlc3RhdGUgRG9ja2VyIGltYWdlIG5hbWUuIERlZmF1bHRzIHRvIGBsYXRlc3RgLiAqL1xuICByZXN0YXRlSW1hZ2U/OiBzdHJpbmc7XG5cbiAgLyoqIFJlc3RhdGUgRG9ja2VyIGltYWdlIHRhZy4gRGVmYXVsdHMgdG8gYGxhdGVzdGAuICovXG4gIHJlc3RhdGVUYWc/OiBzdHJpbmc7XG5cbiAgLyoqIEFtYXpvbiBEaXN0cm8gZm9yIE9wZW4gVGVsZW1ldHJ5IERvY2tlciBpbWFnZSB0YWcuIERlZmF1bHRzIHRvIGBsYXRlc3RgLiAqL1xuICBhZG90VGFnPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBSZXN0YXRlIHNlcnZpY2UgZGVwbG95bWVudCBiYWNrZWQgYnkgYSBzaW5nbGUgRUMyIGluc3RhbmNlLFxuICogc3VpdGFibGUgZm9yIGRldmVsb3BtZW50IGFuZCB0ZXN0aW5nIHB1cnBvc2VzLiBUaGUgaW5zdGFuY2Ugd2lsbCBiZSBjcmVhdGVkXG4gKiBpbiBhIGRlZGljYXRlZCBWUEMgKHVubGVzcyBvbmUgaXMgcHJvdmlkZWQpLiBFQzIgaW5zdGFuY2Ugd2lsbCBiZSBhbGxvY2F0ZWRcbiAqIGEgcHVibGljIElQIGFkZHJlc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBTaW5nbGVOb2RlUmVzdGF0ZURlcGxveW1lbnQgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBSZXN0YXRlRW52aXJvbm1lbnQge1xuICByZWFkb25seSBpbnN0YW5jZTogZWMyLkluc3RhbmNlO1xuICByZWFkb25seSBpbnZva2VyUm9sZTogaWFtLklSb2xlO1xuICByZWFkb25seSB2cGM6IGVjMi5WcGM7XG5cbiAgcmVhZG9ubHkgaW5ncmVzc1VybDogc3RyaW5nO1xuICByZWFkb25seSBhZG1pblVybDogc3RyaW5nO1xuICByZWFkb25seSByZWdpc3RyYXRpb25Qcm92aWRlclRva2VuOiBjZGsuQ2ZuT3V0cHV0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSZXN0YXRlSW5zdGFuY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnZwYyA9IG5ldyBlYzIuVnBjKHRoaXMsIFwiVnBjXCIsIHtcbiAgICAgIG1heEF6czogMyxcbiAgICAgIGNyZWF0ZUludGVybmV0R2F0ZXdheTogdHJ1ZSxcbiAgICAgIG5hdEdhdGV3YXlzOiAwLFxuICAgIH0pO1xuXG4gICAgdGhpcy5pbnZva2VyUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCBcIkluc3RhbmNlUm9sZVwiLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcImVjMi5hbWF6b25hd3MuY29tXCIpLFxuICAgICAgbWFuYWdlZFBvbGljaWVzOiBbaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFwiQW1hem9uU1NNTWFuYWdlZEluc3RhbmNlQ29yZVwiKV0sXG4gICAgfSk7XG4gICAgcHJvcHMubG9nR3JvdXAuZ3JhbnRXcml0ZSh0aGlzLmludm9rZXJSb2xlKTtcblxuICAgIGNvbnN0IHJlc3RhdGVJbWFnZSA9IHByb3BzLnJlc3RhdGVJbWFnZSA/PyBSRVNUQVRFX0lNQUdFX0RFRkFVTFQ7XG4gICAgY29uc3QgcmVzdGF0ZVRhZyA9IHByb3BzLnJlc3RhdGVUYWcgPz8gUkVTVEFURV9ET0NLRVJfREVGQVVMVF9UQUc7XG4gICAgY29uc3QgYWRvdFRhZyA9IHByb3BzLmFkb3RUYWcgPz8gQURPVF9ET0NLRVJfREVGQVVMVF9UQUc7XG4gICAgY29uc3QgcmVzdGF0ZUluaXRDb21tYW5kcyA9IGVjMi5Vc2VyRGF0YS5mb3JMaW51eCgpO1xuICAgIHJlc3RhdGVJbml0Q29tbWFuZHMuYWRkQ29tbWFuZHMoXG4gICAgICBcInl1bSB1cGRhdGUgLXlcIixcbiAgICAgIFwieXVtIGluc3RhbGwgLXkgZG9ja2VyIG5naW54XCIsXG5cbiAgICAgIFwic3lzdGVtY3RsIGVuYWJsZSBkb2NrZXIuc2VydmljZVwiLFxuICAgICAgXCJzeXN0ZW1jdGwgc3RhcnQgZG9ja2VyLnNlcnZpY2VcIixcbiAgICAgIFtcbiAgICAgICAgXCJkb2NrZXIgcnVuIC0tbmFtZSBhZG90IC0tcmVzdGFydCB1bmxlc3Mtc3RvcHBlZCAtLWRldGFjaFwiLFxuICAgICAgICBcIiAtcCA0MzE3OjQzMTcgLXAgNTU2ODA6NTU2ODAgLXAgODg4OTo4ODg4XCIsXG4gICAgICAgIGAgcHVibGljLmVjci5hd3MvYXdzLW9ic2VydmFiaWxpdHkvYXdzLW90ZWwtY29sbGVjdG9yOiR7YWRvdFRhZ31gLFxuICAgICAgXS5qb2luKFwiXCIpLFxuICAgICAgW1xuICAgICAgICBcImRvY2tlciBydW4gLS1uYW1lIHJlc3RhdGUgLS1yZXN0YXJ0IHVubGVzcy1zdG9wcGVkIC0tZGV0YWNoXCIsXG4gICAgICAgIFwiIC0tdm9sdW1lIC92YXIvcmVzdGF0ZTovdGFyZ2V0IC0tbmV0d29yaz1ob3N0XCIsXG4gICAgICAgIFwiIC1lIFJFU1RBVEVfT0JTRVJWQUJJTElUWV9fTE9HX19GT1JNQVQ9SnNvbiAtZSBSVVNUX0xPRz1pbmZvLHJlc3RhdGVfd29ya2VyOjpwYXJ0aXRpb249d2FyblwiLFxuICAgICAgICBcIiAtZSBSRVNUQVRFX09CU0VSVkFCSUxJVFlfX1RSQUNJTkdfX0VORFBPSU5UPWh0dHA6Ly9sb2NhbGhvc3Q6NDMxN1wiLFxuICAgICAgICBgIC0tbG9nLWRyaXZlcj1hd3Nsb2dzIC0tbG9nLW9wdCBhd3Nsb2dzLWdyb3VwPSR7cHJvcHMubG9nR3JvdXAubG9nR3JvdXBOYW1lfWAsXG4gICAgICAgIGAgJHtyZXN0YXRlSW1hZ2V9OiR7cmVzdGF0ZVRhZ31gLFxuICAgICAgXS5qb2luKFwiXCIpLFxuXG4gICAgICBcIm1rZGlyIC1wIC9ldGMvcGtpL3ByaXZhdGVcIixcbiAgICAgIFtcbiAgICAgICAgXCJvcGVuc3NsIHJlcSAtbmV3IC14NTA5IC1ub2RlcyAtc2hhMjU2IC1kYXlzIDM2NSAtZXh0ZW5zaW9ucyB2M19jYVwiLFxuICAgICAgICBcIiAtc3ViaiAnL0M9REUvU1Q9QmVybGluL0w9QmVybGluL089cmVzdGF0ZS5kZXYvT1U9ZGVtby9DTj1yZXN0YXRlLmV4YW1wbGUuY29tJ1wiLFxuICAgICAgICBcIiAtbmV3a2V5IHJzYToyMDQ4IC1rZXlvdXQgL2V0Yy9wa2kvcHJpdmF0ZS9yZXN0YXRlLXNlbGZzaWduZWQua2V5IC1vdXQgL2V0Yy9wa2kvcHJpdmF0ZS9yZXN0YXRlLXNlbGZzaWduZWQuY3J0XCIsXG4gICAgICBdLmpvaW4oXCJcIiksXG4gICAgICBbXCJjYXQgPDwgRU9GID4gL2V0Yy9uZ2lueC9jb25mLmQvcmVzdGF0ZS1pbmdyZXNzLmNvbmZcIiwgTkdJTlhfUkVWRVJTRV9QUk9YWV9DT05GSUcsIFwiRU9GXCJdLmpvaW4oXCJcXG5cIiksXG4gICAgICBcInN5c3RlbWN0bCBlbmFibGUgbmdpbnhcIixcbiAgICAgIFwic3lzdGVtY3RsIHN0YXJ0IG5naW54XCIsXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc3RhdGVJbnN0YW5jZSA9IG5ldyBlYzIuSW5zdGFuY2UodGhpcywgXCJIb3N0XCIsIHtcbiAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICB2cGNTdWJuZXRzOiB7IHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBVQkxJQyB9LFxuICAgICAgaW5zdGFuY2VUeXBlOiBuZXcgZWMyLkluc3RhbmNlVHlwZShcInQ0Zy5taWNyb1wiKSxcbiAgICAgIG1hY2hpbmVJbWFnZTogZWMyLk1hY2hpbmVJbWFnZS5sYXRlc3RBbWF6b25MaW51eDIwMjMoe1xuICAgICAgICBjcHVUeXBlOiBlYzIuQW1hem9uTGludXhDcHVUeXBlLkFSTV82NCxcbiAgICAgIH0pLFxuICAgICAgcm9sZTogdGhpcy5pbnZva2VyUm9sZSxcbiAgICAgIHVzZXJEYXRhOiByZXN0YXRlSW5pdENvbW1hbmRzLFxuICAgIH0pO1xuICAgIHRoaXMuaW5zdGFuY2UgPSByZXN0YXRlSW5zdGFuY2U7XG5cbiAgICAvLyBXZSBzdGFydCB0aGUgQURPVCBjb2xsZWN0b3IgcmVnYXJkbGVzcywgYW5kIG9ubHkgY29udHJvbCB3aGV0aGVyIHRoZXkgd2lsbCBiZSBwdWJsaXNoZWQgdG8gWC1SYXkgdmlhIGluc3RhbmNlXG4gICAgLy8gcm9sZSBwZXJtaXNzaW9ucy4gVGhpcyB3YXkgaGlzdG9yaWMgdHJhY2VzIHdpbGwgYmUgYnVmZmVyZWQgb24gdGhlIGhvc3QsIGV2ZW4gaWYgdHJhY2luZyBpcyBkaXNhYmxlZCBpbml0aWFsbHkuXG4gICAgaWYgKHByb3BzLnRyYWNpbmcgPT09IFRyYWNpbmdNb2RlLkFXU19YUkFZKSB7XG4gICAgICByZXN0YXRlSW5zdGFuY2Uucm9sZS5hZGRNYW5hZ2VkUG9saWN5KGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcIkFXU1hyYXlXcml0ZU9ubHlBY2Nlc3NcIikpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3RhdGVJbnN0YW5jZVNlY3VyaXR5R3JvdXAgPSBuZXcgZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgXCJSZXN0YXRlU2VjdXJpdHlHcm91cFwiLCB7XG4gICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgc2VjdXJpdHlHcm91cE5hbWU6IFwiUmVzdGF0ZVNlY3VyaXR5R3JvdXBcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlJlc3RhdGUgc2VydmljZSBBQ0xzXCIsXG4gICAgfSk7XG4gICAgcmVzdGF0ZUluc3RhbmNlLmFkZFNlY3VyaXR5R3JvdXAocmVzdGF0ZUluc3RhbmNlU2VjdXJpdHlHcm91cCk7XG5cbiAgICByZXN0YXRlSW5zdGFuY2VTZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKFxuICAgICAgZWMyLlBlZXIuYW55SXB2NCgpLFxuICAgICAgZWMyLlBvcnQudGNwKDQ0MyksXG4gICAgICBcIkFsbG93IHRyYWZmaWMgZnJvbSBhbnl3aGVyZSB0byBSZXN0YXRlIGluZ3Jlc3MgcG9ydFwiLFxuICAgICk7XG4gICAgcmVzdGF0ZUluc3RhbmNlU2VjdXJpdHlHcm91cC5hZGRJbmdyZXNzUnVsZShcbiAgICAgIGVjMi5QZWVyLmFueUlwdjQoKSxcbiAgICAgIGVjMi5Qb3J0LnRjcCg5MDczKSxcbiAgICAgIFwiQWxsb3cgdHJhZmZpYyBmcm9tIGFueXdoZXJlIHRvIFJlc3RhdGUgYWRtaW4gcG9ydFwiLFxuICAgICk7XG5cbiAgICBjb25zdCByZWdpc3RyYXRpb25Qcm92aWRlciA9IG5ldyBSZWdpc3RyYXRpb25Qcm92aWRlcih0aGlzLCBcIlJlZ2lzdHJhdGlvblByb3ZpZGVyXCIsIHt9KTtcbiAgICB0aGlzLnJlZ2lzdHJhdGlvblByb3ZpZGVyVG9rZW4gPSBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCBcIlJlZ2lzdHJhdGlvblByb3ZpZGVyVG9rZW5cIiwge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiQ3VzdG9tIHJlc291cmNlIHByb3ZpZGVyIHNlcnZpY2UgdG9rZW4sIG5lZWRlZCBieSB0aGUgUmVzdGF0ZSBzZXJ2aWNlIHJlZ2lzdHJ5IGNvbXBvbmVudCB0byB0cmlnZ2VyIGRpc2NvdmVyeVwiLFxuICAgICAgZXhwb3J0TmFtZTogW3Byb3BzLnByZWZpeCwgXCJSZWdpc3RyYXRpb25Qcm92aWRlclRva2VuXCJdLmpvaW4oXCItXCIpLFxuICAgICAgdmFsdWU6IHJlZ2lzdHJhdGlvblByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICB9KTtcblxuICAgIHRoaXMuaW5ncmVzc1VybCA9IGBodHRwczovLyR7cmVzdGF0ZUluc3RhbmNlLmluc3RhbmNlUHVibGljRG5zTmFtZX0ke1xuICAgICAgUFVCTElDX0lOR1JFU1NfUE9SVCA9PSA0NDMgPyBcIlwiIDogYDoke1BVQkxJQ19JTkdSRVNTX1BPUlR9YFxuICAgIH1gO1xuICAgIHRoaXMuYWRtaW5VcmwgPSBgaHR0cHM6Ly8ke3Jlc3RhdGVJbnN0YW5jZS5pbnN0YW5jZVB1YmxpY0Ruc05hbWV9OiR7UFVCTElDX0FETUlOX1BPUlR9YDtcbiAgfVxufVxuXG5jb25zdCBOR0lOWF9SRVZFUlNFX1BST1hZX0NPTkZJRyA9IFtcbiAgXCJzZXJ2ZXIge1wiLFxuICBcIiAgbGlzdGVuIDQ0MyBzc2wgaHR0cDI7XCIsXG4gIFwiICBsaXN0ZW4gWzo6XTo0NDMgc3NsIGh0dHAyO1wiLFxuICBcIiAgc2VydmVyX25hbWUgXztcIixcbiAgXCIgIHJvb3QgL3Vzci9zaGFyZS9uZ2lueC9odG1sO1wiLFxuICBcIlwiLFxuICAnICBzc2xfY2VydGlmaWNhdGUgXCIvZXRjL3BraS9wcml2YXRlL3Jlc3RhdGUtc2VsZnNpZ25lZC5jcnRcIjsnLFxuICAnICBzc2xfY2VydGlmaWNhdGVfa2V5IFwiL2V0Yy9wa2kvcHJpdmF0ZS9yZXN0YXRlLXNlbGZzaWduZWQua2V5XCI7JyxcbiAgXCIgIHNzbF9zZXNzaW9uX2NhY2hlIHNoYXJlZDpTU0w6MW07XCIsXG4gIFwiICBzc2xfc2Vzc2lvbl90aW1lb3V0IDEwbTtcIixcbiAgXCIgIHNzbF9jaXBoZXJzIFBST0ZJTEU9U1lTVEVNO1wiLFxuICBcIiAgc3NsX3ByZWZlcl9zZXJ2ZXJfY2lwaGVycyBvbjtcIixcbiAgXCJcIixcbiAgXCIgIGxvY2F0aW9uIC8ge1wiLFxuICBgICAgIHByb3h5X3Bhc3MgaHR0cDovL2xvY2FsaG9zdDoke1JFU1RBVEVfSU5HUkVTU19QT1JUfTtgLFxuICBcIiAgfVwiLFxuICBcIn1cIixcbiAgXCJcIixcbiAgXCJzZXJ2ZXIge1wiLFxuICBcIiAgbGlzdGVuIDkwNzMgc3NsIGh0dHAyO1wiLFxuICBcIiAgbGlzdGVuIFs6Ol06OTA3MyBzc2wgaHR0cDI7XCIsXG4gIFwiICBzZXJ2ZXJfbmFtZSBfO1wiLFxuICBcIiAgcm9vdCAvdXNyL3NoYXJlL25naW54L2h0bWw7XCIsXG4gIFwiXCIsXG4gICcgIHNzbF9jZXJ0aWZpY2F0ZSBcIi9ldGMvcGtpL3ByaXZhdGUvcmVzdGF0ZS1zZWxmc2lnbmVkLmNydFwiOycsXG4gICcgIHNzbF9jZXJ0aWZpY2F0ZV9rZXkgXCIvZXRjL3BraS9wcml2YXRlL3Jlc3RhdGUtc2VsZnNpZ25lZC5rZXlcIjsnLFxuICBcIiAgc3NsX3Nlc3Npb25fY2FjaGUgc2hhcmVkOlNTTDoxbTtcIixcbiAgXCIgIHNzbF9zZXNzaW9uX3RpbWVvdXQgMTBtO1wiLFxuICBcIiAgc3NsX2NpcGhlcnMgUFJPRklMRT1TWVNURU07XCIsXG4gIFwiICBzc2xfcHJlZmVyX3NlcnZlcl9jaXBoZXJzIG9uO1wiLFxuICBcIlwiLFxuICBcIiAgbG9jYXRpb24gLyB7XCIsXG4gIGAgICAgcHJveHlfcGFzcyBodHRwOi8vbG9jYWxob3N0OiR7UkVTVEFURV9BRE1JTl9QT1JUfTtgLFxuICBcIiAgfVwiLFxuICBcIn1cIixcbl0uam9pbihcIlxcblwiKTtcbiJdfQ==
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLW5vZGUtcmVzdGF0ZS1kZXBsb3ltZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL3Jlc3RhdGUtY29uc3RydWN0cy9zaW5nbGUtbm9kZS1yZXN0YXRlLWRlcGxveW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7R0FTRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCwyQ0FBdUM7QUFDdkMsMkRBQTZDO0FBQzdDLG1EQUFxRDtBQUNyRCx5REFBMkM7QUFDM0MseURBQTJDO0FBRTNDLDZEQUFtRDtBQUVuRCw2Q0FBNEM7QUFFNUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFDaEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUM7QUFDL0IsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUM7QUFDbEMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUM7QUFDaEMsTUFBTSxxQkFBcUIsR0FBRyw4QkFBOEIsQ0FBQztBQUM3RCxNQUFNLDBCQUEwQixHQUFHLFFBQVEsQ0FBQztBQUM1QyxNQUFNLHVCQUF1QixHQUFHLFFBQVEsQ0FBQztBQThCekM7Ozs7O0dBS0c7QUFDSCxNQUFhLDJCQUE0QixTQUFRLHNCQUFTO0lBUXhELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTdFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDcEQsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixD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QixFQUFFO0lBQ0YsOERBQThEO0lBQzlELGtFQUFrRTtJQUNsRSxvQ0FBb0M7SUFDcEMsNEJBQTRCO0lBQzVCLCtCQUErQjtJQUMvQixpQ0FBaUM7SUFDakMsRUFBRTtJQUNGLGdCQUFnQjtJQUNoQixtQ0FBbUMsa0JBQWtCLEdBQUc7SUFDeEQsS0FBSztJQUNMLEdBQUc7Q0FDSixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjMgLSBSZXN0YXRlIFNvZnR3YXJlLCBJbmMuLCBSZXN0YXRlIEdtYkhcbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgUmVzdGF0ZSBTREsgZm9yIE5vZGUuanMvVHlwZVNjcmlwdCxcbiAqIHdoaWNoIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqXG4gKiBZb3UgY2FuIGZpbmQgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGluIGZpbGUgTElDRU5TRSBpbiB0aGUgcm9vdFxuICogZGlyZWN0b3J5IG9mIHRoaXMgcmVwb3NpdG9yeSBvciBwYWNrYWdlLCBvciBhdFxuICogaHR0cHM6Ly9naXRodWIuY29tL3Jlc3RhdGVkZXYvc2RrLXR5cGVzY3JpcHQvYmxvYi9tYWluL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcbmltcG9ydCB7IFJldGVudGlvbkRheXMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcbmltcG9ydCAqIGFzIGVjMiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBJUmVzdGF0ZUVudmlyb25tZW50IH0gZnJvbSBcIi4vcmVzdGF0ZS1lbnZpcm9ubWVudFwiO1xuaW1wb3J0IHsgVHJhY2luZ01vZGUgfSBmcm9tIFwiLi9kZXBsb3ltZW50cy1jb21tb25cIjtcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuY29uc3QgUFVCTElDX0lOR1JFU1NfUE9SVCA9IDQ0MztcbmNvbnN0IFBVQkxJQ19BRE1JTl9QT1JUID0gOTA3MztcbmNvbnN0IFJFU1RBVEVfSU5HUkVTU19QT1JUID0gODA4MDtcbmNvbnN0IFJFU1RBVEVfQURNSU5fUE9SVCA9IDkwNzA7XG5jb25zdCBSRVNUQVRFX0lNQUdFX0RFRkFVTFQgPSBcImRvY2tlci5pby9yZXN0YXRlZGV2L3Jlc3RhdGVcIjtcbmNvbnN0IFJFU1RBVEVfRE9DS0VSX0RFRkFVTFRfVEFHID0gXCJsYXRlc3RcIjtcbmNvbnN0IEFET1RfRE9DS0VSX0RFRkFVTFRfVEFHID0gXCJsYXRlc3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTaW5nbGVOb2RlUmVzdGF0ZVByb3BzIHtcbiAgLyoqIFRoZSBWUEMgaW4gd2hpY2ggdG8gbGF1bmNoIHRoZSBSZXN0YXRlIGhvc3QuICovXG4gIHZwYz86IGVjMi5JVnBjO1xuXG4gIC8qKiBMb2cgZ3JvdXAgZm9yIFJlc3RhdGUgc2VydmljZSBsb2dzLiAqL1xuICBsb2dHcm91cD86IGxvZ3MuTG9nR3JvdXA7XG5cbiAgLyoqIFRyYWNpbmcgbW9kZSBmb3IgUmVzdGF0ZSBzZXJ2aWNlcy4gRGVmYXVsdHMgdG8ge0BsaW5rIFRyYWNpbmdNb2RlLkRJU0FCTEVEfS4gKi9cbiAgdHJhY2luZz86IFRyYWNpbmdNb2RlO1xuXG4gIC8qKiBQcmVmaXggZm9yIHJlc291cmNlcyBjcmVhdGVkIGJ5IHRoaXMgY29uc3RydWN0IHRoYXQgcmVxdWlyZSB1bmlxdWUgbmFtZXMuICovXG4gIHByZWZpeD86IHN0cmluZztcblxuICAvKiogUmVzdGF0ZSBEb2NrZXIgaW1hZ2UgbmFtZS4gRGVmYXVsdHMgdG8gYGxhdGVzdGAuICovXG4gIHJlc3RhdGVJbWFnZT86IHN0cmluZztcblxuICAvKiogUmVzdGF0ZSBEb2NrZXIgaW1hZ2UgdGFnLiBEZWZhdWx0cyB0byBgbGF0ZXN0YC4gKi9cbiAgcmVzdGF0ZVRhZz86IHN0cmluZztcblxuICAvKiogQW1hem9uIERpc3RybyBmb3IgT3BlbiBUZWxlbWV0cnkgRG9ja2VyIGltYWdlIHRhZy4gRGVmYXVsdHMgdG8gYGxhdGVzdGAuICovXG4gIGFkb3RUYWc/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlbW92YWwgcG9saWN5IGZvciBsb25nLWxpdmVkIHJlc291cmNlcyAoc3RvcmFnZSwgbG9ncykuIERlZmF1bHQ6IGBjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZYC5cbiAgICovXG4gIHJlbW92YWxQb2xpY3k/OiBjZGsuUmVtb3ZhbFBvbGljeTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgUmVzdGF0ZSBzZXJ2aWNlIGRlcGxveW1lbnQgYmFja2VkIGJ5IGEgc2luZ2xlIEVDMiBpbnN0YW5jZSwgYW5kIGlzIHN1aXRhYmxlIGZvclxuICogZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcgcHVycG9zZXMuXG4gKiBUaGUgRUMyIGluc3RhbmNlIHdpbGwgYmUgY3JlYXRlZCBpbiB0aGUgZGVmYXVsdCBWUEMgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQuXG4gKiBUaGUgaW5zdGFuY2Ugd2lsbCBiZSBhc3NpZ25lZCBhIHB1YmxpYyBJUCBhZGRyZXNzLlxuICovXG5leHBvcnQgY2xhc3MgU2luZ2xlTm9kZVJlc3RhdGVEZXBsb3ltZW50IGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSVJlc3RhdGVFbnZpcm9ubWVudCB7XG4gIHJlYWRvbmx5IGluc3RhbmNlOiBlYzIuSW5zdGFuY2U7XG4gIHJlYWRvbmx5IGludm9rZXJSb2xlOiBpYW0uSVJvbGU7XG4gIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG5cbiAgcmVhZG9ubHkgaW5ncmVzc1VybDogc3RyaW5nO1xuICByZWFkb25seSBhZG1pblVybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTaW5nbGVOb2RlUmVzdGF0ZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMudnBjID0gcHJvcHMudnBjID8/IGVjMi5WcGMuZnJvbUxvb2t1cCh0aGlzLCBcIlZwY1wiLCB7IGlzRGVmYXVsdDogdHJ1ZSB9KTtcblxuICAgIHRoaXMuaW52b2tlclJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgXCJJbnN0YW5jZVJvbGVcIiwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJlYzIuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW2lhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcIkFtYXpvblNTTU1hbmFnZWRJbnN0YW5jZUNvcmVcIildLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbG9nR3JvdXAgPVxuICAgICAgcHJvcHMubG9nR3JvdXAgPz9cbiAgICAgIG5ldyBsb2dzLkxvZ0dyb3VwKHRoaXMsIFwiTG9nc1wiLCB7XG4gICAgICAgIGxvZ0dyb3VwTmFtZTogYC9yZXN0YXRlLyR7aWR9YCxcbiAgICAgICAgcmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzLk9ORV9NT05USCxcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogcHJvcHMucmVtb3ZhbFBvbGljeSA/PyBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICB9KTtcbiAgICBsb2dHcm91cC5ncmFudFdyaXRlKHRoaXMuaW52b2tlclJvbGUpO1xuXG4gICAgY29uc3QgcmVzdGF0ZUltYWdlID0gcHJvcHMucmVzdGF0ZUltYWdlID8/IFJFU1RBVEVfSU1BR0VfREVGQVVMVDtcbiAgICBjb25zdCByZXN0YXRlVGFnID0gcHJvcHMucmVzdGF0ZVRhZyA/PyBSRVNUQVRFX0RPQ0tFUl9ERUZBVUxUX1RBRztcbiAgICBjb25zdCBhZG90VGFnID0gcHJvcHMuYWRvdFRhZyA/PyBBRE9UX0RPQ0tFUl9ERUZBVUxUX1RBRztcbiAgICBjb25zdCByZXN0YXRlSW5pdENvbW1hbmRzID0gZWMyLlVzZXJEYXRhLmZvckxpbnV4KCk7XG4gICAgcmVzdGF0ZUluaXRDb21tYW5kcy5hZGRDb21tYW5kcyhcbiAgICAgIFwieXVtIHVwZGF0ZSAteVwiLFxuICAgICAgXCJ5dW0gaW5zdGFsbCAteSBkb2NrZXIgbmdpbnhcIixcblxuICAgICAgXCJzeXN0ZW1jdGwgZW5hYmxlIGRvY2tlci5zZXJ2aWNlXCIsXG4gICAgICBcInN5c3RlbWN0bCBzdGFydCBkb2NrZXIuc2VydmljZVwiLFxuICAgICAgW1xuICAgICAgICBcImRvY2tlciBydW4gLS1uYW1lIGFkb3QgLS1yZXN0YXJ0IHVubGVzcy1zdG9wcGVkIC0tZGV0YWNoXCIsXG4gICAgICAgIFwiIC1wIDQzMTc6NDMxNyAtcCA1NTY4MDo1NTY4MCAtcCA4ODg5Ojg4ODhcIixcbiAgICAgICAgYCBwdWJsaWMuZWNyLmF3cy9hd3Mtb2JzZXJ2YWJpbGl0eS9hd3Mtb3RlbC1jb2xsZWN0b3I6JHthZG90VGFnfWAsXG4gICAgICBdLmpvaW4oXCJcIiksXG4gICAgICBbXG4gICAgICAgIFwiZG9ja2VyIHJ1biAtLW5hbWUgcmVzdGF0ZSAtLXJlc3RhcnQgdW5sZXNzLXN0b3BwZWQgLS1kZXRhY2hcIixcbiAgICAgICAgXCIgLS12b2x1bWUgL3Zhci9yZXN0YXRlOi90YXJnZXQgLS1uZXR3b3JrPWhvc3RcIixcbiAgICAgICAgXCIgLWUgUkVTVEFURV9PQlNFUlZBQklMSVRZX19MT0dfX0ZPUk1BVD1Kc29uIC1lIFJVU1RfTE9HPWluZm8scmVzdGF0ZV93b3JrZXI6OnBhcnRpdGlvbj13YXJuXCIsXG4gICAgICAgIFwiIC1lIFJFU1RBVEVfT0JTRVJWQUJJTElUWV9fVFJBQ0lOR19fRU5EUE9JTlQ9aHR0cDovL2xvY2FsaG9zdDo0MzE3XCIsXG4gICAgICAgIGAgLS1sb2ctZHJpdmVyPWF3c2xvZ3MgLS1sb2ctb3B0IGF3c2xvZ3MtZ3JvdXA9JHtsb2dHcm91cC5sb2dHcm91cE5hbWV9YCxcbiAgICAgICAgYCAke3Jlc3RhdGVJbWFnZX06JHtyZXN0YXRlVGFnfWAsXG4gICAgICBdLmpvaW4oXCJcIiksXG5cbiAgICAgIFwibWtkaXIgLXAgL2V0Yy9wa2kvcHJpdmF0ZVwiLFxuICAgICAgW1xuICAgICAgICBcIm9wZW5zc2wgcmVxIC1uZXcgLXg1MDkgLW5vZGVzIC1zaGEyNTYgLWRheXMgMzY1IC1leHRlbnNpb25zIHYzX2NhXCIsXG4gICAgICAgIFwiIC1zdWJqICcvQz1ERS9TVD1CZXJsaW4vTD1CZXJsaW4vTz1yZXN0YXRlLmRldi9PVT1kZW1vL0NOPXJlc3RhdGUuZXhhbXBsZS5jb20nXCIsXG4gICAgICAgIFwiIC1uZXdrZXkgcnNhOjIwNDggLWtleW91dCAvZXRjL3BraS9wcml2YXRlL3Jlc3RhdGUtc2VsZnNpZ25lZC5rZXkgLW91dCAvZXRjL3BraS9wcml2YXRlL3Jlc3RhdGUtc2VsZnNpZ25lZC5jcnRcIixcbiAgICAgIF0uam9pbihcIlwiKSxcbiAgICAgIFtcImNhdCA8PCBFT0YgPiAvZXRjL25naW54L2NvbmYuZC9yZXN0YXRlLWluZ3Jlc3MuY29uZlwiLCBOR0lOWF9SRVZFUlNFX1BST1hZX0NPTkZJRywgXCJFT0ZcIl0uam9pbihcIlxcblwiKSxcbiAgICAgIFwic3lzdGVtY3RsIGVuYWJsZSBuZ2lueFwiLFxuICAgICAgXCJzeXN0ZW1jdGwgc3RhcnQgbmdpbnhcIixcbiAgICApO1xuXG4gICAgY29uc3QgcmVzdGF0ZUluc3RhbmNlID0gbmV3IGVjMi5JbnN0YW5jZSh0aGlzLCBcIkhvc3RcIiwge1xuICAgICAgdnBjOiB0aGlzLnZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHsgc3VibmV0VHlwZTogZWMyLlN1Ym5ldFR5cGUuUFVCTElDIH0sXG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldyBlYzIuSW5zdGFuY2VUeXBlKFwidDRnLm1pY3JvXCIpLFxuICAgICAgbWFjaGluZUltYWdlOiBlYzIuTWFjaGluZUltYWdlLmxhdGVzdEFtYXpvbkxpbnV4MjAyMyh7XG4gICAgICAgIGNwdVR5cGU6IGVjMi5BbWF6b25MaW51eENwdVR5cGUuQVJNXzY0LFxuICAgICAgfSksXG4gICAgICByb2xlOiB0aGlzLmludm9rZXJSb2xlLFxuICAgICAgdXNlckRhdGE6IHJlc3RhdGVJbml0Q29tbWFuZHMsXG4gICAgfSk7XG4gICAgdGhpcy5pbnN0YW5jZSA9IHJlc3RhdGVJbnN0YW5jZTtcblxuICAgIC8vIFdlIHN0YXJ0IHRoZSBBRE9UIGNvbGxlY3RvciByZWdhcmRsZXNzLCBhbmQgb25seSBjb250cm9sIHdoZXRoZXIgdGhleSB3aWxsIGJlIHB1Ymxpc2hlZCB0byBYLVJheSB2aWEgaW5zdGFuY2VcbiAgICAvLyByb2xlIHBlcm1pc3Npb25zLiBUaGlzIHdheSBoaXN0b3JpYyB0cmFjZXMgd2lsbCBiZSBidWZmZXJlZCBvbiB0aGUgaG9zdCwgZXZlbiBpZiB0cmFjaW5nIGlzIGRpc2FibGVkIGluaXRpYWxseS5cbiAgICBpZiAocHJvcHMudHJhY2luZyA9PT0gVHJhY2luZ01vZGUuQVdTX1hSQVkpIHtcbiAgICAgIHJlc3RhdGVJbnN0YW5jZS5yb2xlLmFkZE1hbmFnZWRQb2xpY3koaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFwiQVdTWHJheVdyaXRlT25seUFjY2Vzc1wiKSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdGF0ZUluc3RhbmNlU2VjdXJpdHlHcm91cCA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLCBcIlJlc3RhdGVTZWN1cml0eUdyb3VwXCIsIHtcbiAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICBzZWN1cml0eUdyb3VwTmFtZTogXCJSZXN0YXRlU2VjdXJpdHlHcm91cFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiUmVzdGF0ZSBzZXJ2aWNlIEFDTHNcIixcbiAgICB9KTtcbiAgICByZXN0YXRlSW5zdGFuY2UuYWRkU2VjdXJpdHlHcm91cChyZXN0YXRlSW5zdGFuY2VTZWN1cml0eUdyb3VwKTtcblxuICAgIHJlc3RhdGVJbnN0YW5jZVNlY3VyaXR5R3JvdXAuYWRkSW5ncmVzc1J1bGUoXG4gICAgICBlYzIuUGVlci5hbnlJcHY0KCksXG4gICAgICBlYzIuUG9ydC50Y3AoNDQzKSxcbiAgICAgIFwiQWxsb3cgdHJhZmZpYyBmcm9tIGFueXdoZXJlIHRvIFJlc3RhdGUgaW5ncmVzcyBwb3J0XCIsXG4gICAgKTtcbiAgICByZXN0YXRlSW5zdGFuY2VTZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKFxuICAgICAgZWMyLlBlZXIuYW55SXB2NCgpLFxuICAgICAgZWMyLlBvcnQudGNwKDkwNzMpLFxuICAgICAgXCJBbGxvdyB0cmFmZmljIGZyb20gYW55d2hlcmUgdG8gUmVzdGF0ZSBhZG1pbiBwb3J0XCIsXG4gICAgKTtcblxuICAgIHRoaXMuaW5ncmVzc1VybCA9IGBodHRwczovLyR7cmVzdGF0ZUluc3RhbmNlLmluc3RhbmNlUHVibGljRG5zTmFtZX0ke1xuICAgICAgUFVCTElDX0lOR1JFU1NfUE9SVCA9PSA0NDMgPyBcIlwiIDogYDoke1BVQkxJQ19JTkdSRVNTX1BPUlR9YFxuICAgIH1gO1xuICAgIHRoaXMuYWRtaW5VcmwgPSBgaHR0cHM6Ly8ke3Jlc3RhdGVJbnN0YW5jZS5pbnN0YW5jZVB1YmxpY0Ruc05hbWV9OiR7UFVCTElDX0FETUlOX1BPUlR9YDtcbiAgfVxufVxuXG5jb25zdCBOR0lOWF9SRVZFUlNFX1BST1hZX0NPTkZJRyA9IFtcbiAgXCJzZXJ2ZXIge1wiLFxuICBcIiAgbGlzdGVuIDQ0MyBzc2wgaHR0cDI7XCIsXG4gIFwiICBsaXN0ZW4gWzo6XTo0NDMgc3NsIGh0dHAyO1wiLFxuICBcIiAgc2VydmVyX25hbWUgXztcIixcbiAgXCIgIHJvb3QgL3Vzci9zaGFyZS9uZ2lueC9odG1sO1wiLFxuICBcIlwiLFxuICAnICBzc2xfY2VydGlmaWNhdGUgXCIvZXRjL3BraS9wcml2YXRlL3Jlc3RhdGUtc2VsZnNpZ25lZC5jcnRcIjsnLFxuICAnICBzc2xfY2VydGlmaWNhdGVfa2V5IFwiL2V0Yy9wa2kvcHJpdmF0ZS9yZXN0YXRlLXNlbGZzaWduZWQua2V5XCI7JyxcbiAgXCIgIHNzbF9zZXNzaW9uX2NhY2hlIHNoYXJlZDpTU0w6MW07XCIsXG4gIFwiICBzc2xfc2Vzc2lvbl90aW1lb3V0IDEwbTtcIixcbiAgXCIgIHNzbF9jaXBoZXJzIFBST0ZJTEU9U1lTVEVNO1wiLFxuICBcIiAgc3NsX3ByZWZlcl9zZXJ2ZXJfY2lwaGVycyBvbjtcIixcbiAgXCJcIixcbiAgXCIgIGxvY2F0aW9uIC8ge1wiLFxuICBgICAgIHByb3h5X3Bhc3MgaHR0cDovL2xvY2FsaG9zdDoke1JFU1RBVEVfSU5HUkVTU19QT1JUfTtgLFxuICBcIiAgfVwiLFxuICBcIn1cIixcbiAgXCJcIixcbiAgXCJzZXJ2ZXIge1wiLFxuICBcIiAgbGlzdGVuIDkwNzMgc3NsIGh0dHAyO1wiLFxuICBcIiAgbGlzdGVuIFs6Ol06OTA3MyBzc2wgaHR0cDI7XCIsXG4gIFwiICBzZXJ2ZXJfbmFtZSBfO1wiLFxuICBcIiAgcm9vdCAvdXNyL3NoYXJlL25naW54L2h0bWw7XCIsXG4gIFwiXCIsXG4gICcgIHNzbF9jZXJ0aWZpY2F0ZSBcIi9ldGMvcGtpL3ByaXZhdGUvcmVzdGF0ZS1zZWxmc2lnbmVkLmNydFwiOycsXG4gICcgIHNzbF9jZXJ0aWZpY2F0ZV9rZXkgXCIvZXRjL3BraS9wcml2YXRlL3Jlc3RhdGUtc2VsZnNpZ25lZC5rZXlcIjsnLFxuICBcIiAgc3NsX3Nlc3Npb25fY2FjaGUgc2hhcmVkOlNTTDoxbTtcIixcbiAgXCIgIHNzbF9zZXNzaW9uX3RpbWVvdXQgMTBtO1wiLFxuICBcIiAgc3NsX2NpcGhlcnMgUFJPRklMRT1TWVNURU07XCIsXG4gIFwiICBzc2xfcHJlZmVyX3NlcnZlcl9jaXBoZXJzIG9uO1wiLFxuICBcIlwiLFxuICBcIiAgbG9jYXRpb24gLyB7XCIsXG4gIGAgICAgcHJveHlfcGFzcyBodHRwOi8vbG9jYWxob3N0OiR7UkVTVEFURV9BRE1JTl9QT1JUfTtgLFxuICBcIiAgfVwiLFxuICBcIn1cIixcbl0uam9pbihcIlxcblwiKTtcbiJdfQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@restatedev/restate-cdk",
3
3
  "description": "Restate.dev CDK constructs",
4
- "version": "0.7.0",
4
+ "version": "0.8.1",
5
5
  "author": "Restate Developers",
6
6
  "license": "MIT",
7
7
  "email": "code@restate.dev",
@@ -19,28 +19,29 @@
19
19
  "prebundle": "rm -rf dist",
20
20
  "postbundle": "cd dist && zip -r index.zip index.js*",
21
21
  "watch": "tsc -w",
22
- "test": "jest --passWithNoTests",
22
+ "test": "jest",
23
23
  "cdk": "cdk"
24
24
  },
25
25
  "devDependencies": {
26
- "@types/aws-lambda": "^8.10.131",
26
+ "@types/aws-lambda": "^8.10.133",
27
27
  "@types/jest": "^29.5.11",
28
- "@types/node": "^20.11.0",
28
+ "@types/node": "^20.11.11",
29
29
  "@types/source-map-support": "^0.5.10",
30
- "aws-cdk": "^2.121.1",
31
- "esbuild": "^0.19.11",
30
+ "esbuild": "^0.20.0",
32
31
  "jest": "^29.7.0",
33
- "prettier": "^3.1.1",
34
- "ts-jest": "^29.1.1",
32
+ "jest-cdk-snapshot": "^2.1.1",
33
+ "prettier": "^3.2.4",
34
+ "source-map-support": "^0.5.21",
35
+ "ts-jest": "^29.1.2",
35
36
  "ts-node": "^10.9.2",
36
37
  "typescript": "^5.3.3"
37
38
  },
38
39
  "peerDependencies": {
39
- "@aws-sdk/client-secrets-manager": "^3.462.0",
40
- "aws-cdk-lib": "^2.121.0",
40
+ "@aws-sdk/client-secrets-manager": "^3.556.0",
41
+ "aws-cdk": "^2.138.0",
42
+ "aws-cdk-lib": "^2.138.0",
41
43
  "constructs": "^10.0.0",
42
- "node-fetch": "^3.3.2",
43
- "source-map-support": "^0.5.21"
44
+ "node-fetch": "^3.3.2"
44
45
  },
45
46
  "directories": {
46
47
  "lib": "lib",