@restatedev/restate-cdk 1.1.0-rc.2 → 1.1.1-pre.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,22 +14,31 @@ export interface RestateCloudEnvironmentProps {
14
14
  * API key with administrative permissions. Used to manage services to the environment, see {@link ServiceDeployer}.
15
15
  */
16
16
  readonly apiKey: secrets.ISecret;
17
+ /**
18
+ * Region of the environment. Defaults to `us`. Valid values: [`us`, `eu`].
19
+ */
20
+ readonly region?: RestateCloudRegion;
21
+ /**
22
+ * Invoker role that can be assumed by Restate Cloud. If you use {@link ServiceDeployer} to register Lambda functions
23
+ * as handlers, the necessary invoke permissions will be granted automatically.
24
+ */
25
+ readonly invokerRole?: iam.IRole;
17
26
  }
18
27
  /**
19
28
  * A distinct Restate Cloud environment reference. This is a convenience utility for deploying to the
20
29
  * [Restate Cloud](https://cloud.restate.dev/) hosted service.
21
30
  */
22
31
  export declare class RestateCloudEnvironment extends Construct implements IRestateEnvironment {
32
+ readonly environmentId: EnvironmentId;
23
33
  readonly adminUrl: string;
24
34
  readonly ingressUrl: string;
25
35
  readonly authToken: secrets.ISecret;
26
36
  readonly invokerRole: iam.IRole;
37
+ readonly region: RestateCloudRegion;
27
38
  /**
28
39
  * Constructs a Restate Cloud environment reference along with invoker. Note that this construct is only a pointer to
29
- * an existing Restate Cloud environment and does not create it. However, it does create an invoker role that is used
30
- * invoking Lambda service handlers. If you would prefer to directly manage the invoker role permissions, you can
31
- * override the {@link createInvokerRole} method or construct one yourself and define the environment properties with
32
- * {@link RestateEnvironment.fromAttributes} directly.
40
+ * an existing Restate Cloud environment and does not create it. Unless the `invokerRole` property is specified, it
41
+ * does create a new role that can be assumed by Restate Cloud, which is used to the service handlers.
33
42
  *
34
43
  * @param scope parent construct
35
44
  * @param id construct id
@@ -45,3 +54,4 @@ export declare class RestateCloudEnvironment extends Construct implements IResta
45
54
  protected createInvokerRole(scope: Construct, props: RestateCloudEnvironmentProps): iam.IRole;
46
55
  }
47
56
  export type EnvironmentId = `env_${string}`;
57
+ export type RestateCloudRegion = "us" | "eu";
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2024 - Restate Software, Inc., Restate GmbH
3
+ * Copyright (c) 2023-2025 - Restate Software, Inc., Restate GmbH
4
4
  *
5
- * This file is part of the Restate SDK for Node.js/TypeScript,
5
+ * This file is part of the Restate CDK Construct Library,
6
6
  * which is released under the MIT license.
7
7
  *
8
8
  * You can find a copy of the license in file LICENSE in the root
@@ -25,13 +25,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
25
25
  }) : function(o, v) {
26
26
  o["default"] = v;
27
27
  });
28
- var __importStar = (this && this.__importStar) || function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
35
45
  Object.defineProperty(exports, "__esModule", { value: true });
36
46
  exports.RestateCloudEnvironment = void 0;
37
47
  const iam = __importStar(require("aws-cdk-lib/aws-iam"));
@@ -43,10 +53,8 @@ const constructs_1 = require("constructs");
43
53
  class RestateCloudEnvironment extends constructs_1.Construct {
44
54
  /**
45
55
  * Constructs a Restate Cloud environment reference along with invoker. Note that this construct is only a pointer to
46
- * an existing Restate Cloud environment and does not create it. However, it does create an invoker role that is used
47
- * invoking Lambda service handlers. If you would prefer to directly manage the invoker role permissions, you can
48
- * override the {@link createInvokerRole} method or construct one yourself and define the environment properties with
49
- * {@link RestateEnvironment.fromAttributes} directly.
56
+ * an existing Restate Cloud environment and does not create it. Unless the `invokerRole` property is specified, it
57
+ * does create a new role that can be assumed by Restate Cloud, which is used to the service handlers.
50
58
  *
51
59
  * @param scope parent construct
52
60
  * @param id construct id
@@ -55,10 +63,12 @@ class RestateCloudEnvironment extends constructs_1.Construct {
55
63
  */
56
64
  constructor(scope, id, props) {
57
65
  super(scope, id);
58
- this.invokerRole = this.createInvokerRole(this, props);
66
+ this.environmentId = props.environmentId;
67
+ this.region = props.region ?? RESTATE_CLOUD_REGION_US;
68
+ this.invokerRole = props.invokerRole ?? this.createInvokerRole(this, props);
59
69
  this.authToken = props.apiKey;
60
- this.adminUrl = adminEndpoint(RESTATE_CLOUD_REGION_US, props.environmentId);
61
- this.ingressUrl = ingressEndpoint(RESTATE_CLOUD_REGION_US, props.environmentId);
70
+ this.adminUrl = adminEndpoint(this.region, props.environmentId);
71
+ this.ingressUrl = ingressEndpoint(this.region, props.environmentId);
62
72
  }
63
73
  /**
64
74
  * This role is used by Restate to invoke Lambda service handlers; see https://docs.restate.dev/deploy/cloud for
@@ -67,10 +77,10 @@ class RestateCloudEnvironment extends constructs_1.Construct {
67
77
  */
68
78
  createInvokerRole(scope, props) {
69
79
  const invokerRole = new iam.Role(scope, "InvokerRole", {
70
- assumedBy: new iam.AccountPrincipal(CONFIG[RESTATE_CLOUD_REGION_US].accountId).withConditions({
80
+ assumedBy: new iam.AccountPrincipal(CONFIG[this.region].accountId).withConditions({
71
81
  StringEquals: {
72
82
  "sts:ExternalId": props.environmentId,
73
- "aws:PrincipalArn": CONFIG[RESTATE_CLOUD_REGION_US].principalArn,
83
+ "aws:PrincipalArn": CONFIG[this.region].principalArn,
74
84
  },
75
85
  }),
76
86
  });
@@ -96,5 +106,9 @@ const CONFIG = {
96
106
  accountId: "654654156625",
97
107
  principalArn: "arn:aws:iam::654654156625:role/RestateCloud",
98
108
  },
109
+ eu: {
110
+ accountId: "654654156625",
111
+ principalArn: "arn:aws:iam::654654156625:role/RestateCloud",
112
+ },
99
113
  };
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdGF0ZS1jbG91ZC1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9yZXN0YXRlLWNvbnN0cnVjdHMvcmVzdGF0ZS1jbG91ZC1lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILHlEQUEyQztBQUUzQywyQ0FBdUM7QUFtQnZDOzs7R0FHRztBQUNILE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFNcEQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1DO1FBQzNFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRDs7OztPQUlHO0lBQ08saUJBQWlCLENBQUMsS0FBZ0IsRUFBRSxLQUFtQztRQUMvRSxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRTtZQUNyRCxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxDQUFDO2dCQUM1RixZQUFZLEVBQUU7b0JBQ1osZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGFBQWE7b0JBQ3JDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFlBQVk7aUJBQ2pFO2FBQ0YsQ0FBQztTQUNILENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxnQkFBaUIsQ0FBQyxhQUFhLENBQ3pDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixVQUFVLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN0RCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztTQUM1QixDQUFDLENBQ0gsQ0FBQztRQUNGLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQWhERCwwREFnREM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxNQUEwQixFQUFFLGFBQTRCO0lBQzdFLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sV0FBVyxTQUFTLFFBQVEsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsTUFBMEIsRUFBRSxhQUE0QjtJQUMvRSxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyRCxPQUFPLFdBQVcsU0FBUyxRQUFRLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsQ0FBQztBQVVELE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDO0FBRXJDLE1BQU0sTUFBTSxHQUFHO0lBQ2IsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLGNBQWM7UUFDekIsWUFBWSxFQUFFLDZDQUE2QztLQUM1RDtDQUMwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNCAtIFJlc3RhdGUgU29mdHdhcmUsIEluYy4sIFJlc3RhdGUgR21iSFxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBSZXN0YXRlIFNESyBmb3IgTm9kZS5qcy9UeXBlU2NyaXB0LFxuICogd2hpY2ggaXMgcmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICpcbiAqIFlvdSBjYW4gZmluZCBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgaW4gZmlsZSBMSUNFTlNFIGluIHRoZSByb290XG4gKiBkaXJlY3Rvcnkgb2YgdGhpcyByZXBvc2l0b3J5IG9yIHBhY2thZ2UsIG9yIGF0XG4gKiBodHRwczovL2dpdGh1Yi5jb20vcmVzdGF0ZWRldi9zZGstdHlwZXNjcmlwdC9ibG9iL21haW4vTElDRU5TRVxuICovXG5cbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0ICogYXMgc2VjcmV0cyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgSVJlc3RhdGVFbnZpcm9ubWVudCwgUmVzdGF0ZUVudmlyb25tZW50IH0gZnJvbSBcIi4vcmVzdGF0ZS1lbnZpcm9ubWVudFwiO1xuaW1wb3J0IHsgU2VydmljZURlcGxveWVyIH0gZnJvbSBcIi4vc2VydmljZS1kZXBsb3llclwiO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGEgUmVzdGF0ZSBDbG91ZCBlbnZpcm9ubWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXN0YXRlQ2xvdWRFbnZpcm9ubWVudFByb3BzIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBpZCBvZiB0aGUgZW52aXJvbm1lbnQgKGluY2x1ZGluZyB0aGUgYGVudl9gIHByZWZpeCkuXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudElkOiBFbnZpcm9ubWVudElkO1xuXG4gIC8qKlxuICAgKiBBUEkga2V5IHdpdGggYWRtaW5pc3RyYXRpdmUgcGVybWlzc2lvbnMuIFVzZWQgdG8gbWFuYWdlIHNlcnZpY2VzIHRvIHRoZSBlbnZpcm9ubWVudCwgc2VlIHtAbGluayBTZXJ2aWNlRGVwbG95ZXJ9LlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpS2V5OiBzZWNyZXRzLklTZWNyZXQ7XG59XG5cbi8qKlxuICogQSBkaXN0aW5jdCBSZXN0YXRlIENsb3VkIGVudmlyb25tZW50IHJlZmVyZW5jZS4gVGhpcyBpcyBhIGNvbnZlbmllbmNlIHV0aWxpdHkgZm9yIGRlcGxveWluZyB0byB0aGVcbiAqIFtSZXN0YXRlIENsb3VkXShodHRwczovL2Nsb3VkLnJlc3RhdGUuZGV2LykgaG9zdGVkIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXN0YXRlQ2xvdWRFbnZpcm9ubWVudCBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElSZXN0YXRlRW52aXJvbm1lbnQge1xuICByZWFkb25seSBhZG1pblVybDogc3RyaW5nO1xuICByZWFkb25seSBpbmdyZXNzVXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGF1dGhUb2tlbjogc2VjcmV0cy5JU2VjcmV0O1xuICByZWFkb25seSBpbnZva2VyUm9sZTogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgUmVzdGF0ZSBDbG91ZCBlbnZpcm9ubWVudCByZWZlcmVuY2UgYWxvbmcgd2l0aCBpbnZva2VyLiBOb3RlIHRoYXQgdGhpcyBjb25zdHJ1Y3QgaXMgb25seSBhIHBvaW50ZXIgdG9cbiAgICogYW4gZXhpc3RpbmcgUmVzdGF0ZSBDbG91ZCBlbnZpcm9ubWVudCBhbmQgZG9lcyBub3QgY3JlYXRlIGl0LiBIb3dldmVyLCBpdCBkb2VzIGNyZWF0ZSBhbiBpbnZva2VyIHJvbGUgdGhhdCBpcyB1c2VkXG4gICAqIGludm9raW5nIExhbWJkYSBzZXJ2aWNlIGhhbmRsZXJzLiBJZiB5b3Ugd291bGQgcHJlZmVyIHRvIGRpcmVjdGx5IG1hbmFnZSB0aGUgaW52b2tlciByb2xlIHBlcm1pc3Npb25zLCB5b3UgY2FuXG4gICAqIG92ZXJyaWRlIHRoZSB7QGxpbmsgY3JlYXRlSW52b2tlclJvbGV9IG1ldGhvZCBvciBjb25zdHJ1Y3Qgb25lIHlvdXJzZWxmIGFuZCBkZWZpbmUgdGhlIGVudmlyb25tZW50IHByb3BlcnRpZXMgd2l0aFxuICAgKiB7QGxpbmsgUmVzdGF0ZUVudmlyb25tZW50LmZyb21BdHRyaWJ1dGVzfSBkaXJlY3RseS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIHBhcmVudCBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gcHJvcHMgZW52aXJvbm1lbnQgcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyBSZXN0YXRlIENsb3VkIGVudmlyb25tZW50XG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmVzdGF0ZUNsb3VkRW52aXJvbm1lbnRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5pbnZva2VyUm9sZSA9IHRoaXMuY3JlYXRlSW52b2tlclJvbGUodGhpcywgcHJvcHMpO1xuICAgIHRoaXMuYXV0aFRva2VuID0gcHJvcHMuYXBpS2V5O1xuICAgIHRoaXMuYWRtaW5VcmwgPSBhZG1pbkVuZHBvaW50KFJFU1RBVEVfQ0xPVURfUkVHSU9OX1VTLCBwcm9wcy5lbnZpcm9ubWVudElkKTtcbiAgICB0aGlzLmluZ3Jlc3NVcmwgPSBpbmdyZXNzRW5kcG9pbnQoUkVTVEFURV9DTE9VRF9SRUdJT05fVVMsIHByb3BzLmVudmlyb25tZW50SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgcm9sZSBpcyB1c2VkIGJ5IFJlc3RhdGUgdG8gaW52b2tlIExhbWJkYSBzZXJ2aWNlIGhhbmRsZXJzOyBzZWUgaHR0cHM6Ly9kb2NzLnJlc3RhdGUuZGV2L2RlcGxveS9jbG91ZCBmb3JcbiAgICogaW5mb3JtYXRpb24gb24gZGVwbG95aW5nIHNlcnZpY2VzIHRvIFJlc3RhdGUgQ2xvdWQgZW52aXJvbm1lbnRzLiBGb3Igc3RhbmRhbG9uZSBlbnZpcm9ubWVudHMsIHRoZSBFQzIgaW5zdGFuY2VcbiAgICogcHJvZmlsZSBjYW4gYmUgdXNlZCBkaXJlY3RseSBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEgc2VwYXJhdGUgcm9sZS5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVJbnZva2VyUm9sZShzY29wZTogQ29uc3RydWN0LCBwcm9wczogUmVzdGF0ZUNsb3VkRW52aXJvbm1lbnRQcm9wcyk6IGlhbS5JUm9sZSB7XG4gICAgY29uc3QgaW52b2tlclJvbGUgPSBuZXcgaWFtLlJvbGUoc2NvcGUsIFwiSW52b2tlclJvbGVcIiwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLkFjY291bnRQcmluY2lwYWwoQ09ORklHW1JFU1RBVEVfQ0xPVURfUkVHSU9OX1VTXS5hY2NvdW50SWQpLndpdGhDb25kaXRpb25zKHtcbiAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgXCJzdHM6RXh0ZXJuYWxJZFwiOiBwcm9wcy5lbnZpcm9ubWVudElkLFxuICAgICAgICAgIFwiYXdzOlByaW5jaXBhbEFyblwiOiBDT05GSUdbUkVTVEFURV9DTE9VRF9SRUdJT05fVVNdLnByaW5jaXBhbEFybixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICAgIGludm9rZXJSb2xlLmFzc3VtZVJvbGVQb2xpY3khLmFkZFN0YXRlbWVudHMoXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHByaW5jaXBhbHM6IFtuZXcgaWFtLkFjY291bnRQcmluY2lwYWwoXCI2NTQ2NTQxNTY2MjVcIildLFxuICAgICAgICBhY3Rpb25zOiBbXCJzdHM6VGFnU2Vzc2lvblwiXSxcbiAgICAgIH0pLFxuICAgICk7XG4gICAgcmV0dXJuIGludm9rZXJSb2xlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFkbWluRW5kcG9pbnQocmVnaW9uOiBSZXN0YXRlQ2xvdWRSZWdpb24sIGVudmlyb25tZW50SWQ6IEVudmlyb25tZW50SWQpOiBzdHJpbmcge1xuICBjb25zdCBiYXJlRW52SWQgPSBlbnZpcm9ubWVudElkLnJlcGxhY2UoL15lbnZfLywgXCJcIik7XG4gIHJldHVybiBgaHR0cHM6Ly8ke2JhcmVFbnZJZH0uZW52LiR7cmVnaW9ufS5yZXN0YXRlLmNsb3VkOjkwNzBgO1xufVxuXG5mdW5jdGlvbiBpbmdyZXNzRW5kcG9pbnQocmVnaW9uOiBSZXN0YXRlQ2xvdWRSZWdpb24sIGVudmlyb25tZW50SWQ6IEVudmlyb25tZW50SWQpOiBzdHJpbmcge1xuICBjb25zdCBiYXJlRW52SWQgPSBlbnZpcm9ubWVudElkLnJlcGxhY2UoL15lbnZfLywgXCJcIik7XG4gIHJldHVybiBgaHR0cHM6Ly8ke2JhcmVFbnZJZH0uZW52LiR7cmVnaW9ufS5yZXN0YXRlLmNsb3VkYDtcbn1cblxuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnRJZCA9IGBlbnZfJHtzdHJpbmd9YDtcbnR5cGUgUmVzdGF0ZUNsb3VkUmVnaW9uID0gXCJ1c1wiO1xuXG5pbnRlcmZhY2UgUmVnaW9uQ29uZmlnIHtcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIHByaW5jaXBhbEFybjogc3RyaW5nO1xufVxuXG5jb25zdCBSRVNUQVRFX0NMT1VEX1JFR0lPTl9VUyA9IFwidXNcIjtcblxuY29uc3QgQ09ORklHID0ge1xuICB1czoge1xuICAgIGFjY291bnRJZDogXCI2NTQ2NTQxNTY2MjVcIixcbiAgICBwcmluY2lwYWxBcm46IFwiYXJuOmF3czppYW06OjY1NDY1NDE1NjYyNTpyb2xlL1Jlc3RhdGVDbG91ZFwiLFxuICB9LFxufSBhcyBSZWNvcmQ8UmVzdGF0ZUNsb3VkUmVnaW9uLCBSZWdpb25Db25maWc+O1xuIl19
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdGF0ZS1jbG91ZC1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9yZXN0YXRlLWNvbnN0cnVjdHMvcmVzdGF0ZS1jbG91ZC1lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCx5REFBMkM7QUFFM0MsMkNBQXVDO0FBOEJ2Qzs7O0dBR0c7QUFDSCxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBUXBEOzs7Ozs7Ozs7T0FTRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUM7UUFDM0UsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLHVCQUF1QixDQUFDO1FBQ3RELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLGlCQUFpQixDQUFDLEtBQWdCLEVBQUUsS0FBbUM7UUFDL0UsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUU7WUFDckQsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxDQUFDO2dCQUNoRixZQUFZLEVBQUU7b0JBQ1osZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGFBQWE7b0JBQ3JDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWTtpQkFDckQ7YUFDRixDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLGdCQUFpQixDQUFDLGFBQWEsQ0FDekMsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQ3RCLFVBQVUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO1NBQzVCLENBQUMsQ0FDSCxDQUFDO1FBQ0YsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBbERELDBEQWtEQztBQUVELFNBQVMsYUFBYSxDQUFDLE1BQTBCLEVBQUUsYUFBNEI7SUFDN0UsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckQsT0FBTyxXQUFXLFNBQVMsUUFBUSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pFLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxNQUEwQixFQUFFLGFBQTRCO0lBQy9FLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sV0FBVyxTQUFTLFFBQVEsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxDQUFDO0FBVUQsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUM7QUFFckMsTUFBTSxNQUFNLEdBQUc7SUFDYixFQUFFLEVBQUU7UUFDRixTQUFTLEVBQUUsY0FBYztRQUN6QixZQUFZLEVBQUUsNkNBQTZDO0tBQzVEO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLGNBQWM7UUFDekIsWUFBWSxFQUFFLDZDQUE2QztLQUM1RDtDQUMwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMy0yMDI1IC0gUmVzdGF0ZSBTb2Z0d2FyZSwgSW5jLiwgUmVzdGF0ZSBHbWJIXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFJlc3RhdGUgQ0RLIENvbnN0cnVjdCBMaWJyYXJ5LFxuICogd2hpY2ggaXMgcmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICpcbiAqIFlvdSBjYW4gZmluZCBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgaW4gZmlsZSBMSUNFTlNFIGluIHRoZSByb290XG4gKiBkaXJlY3Rvcnkgb2YgdGhpcyByZXBvc2l0b3J5IG9yIHBhY2thZ2UsIG9yIGF0XG4gKiBodHRwczovL2dpdGh1Yi5jb20vcmVzdGF0ZWRldi9zZGstdHlwZXNjcmlwdC9ibG9iL21haW4vTElDRU5TRVxuICovXG5cbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0ICogYXMgc2VjcmV0cyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgSVJlc3RhdGVFbnZpcm9ubWVudCB9IGZyb20gXCIuL3Jlc3RhdGUtZW52aXJvbm1lbnRcIjtcbmltcG9ydCB7IFNlcnZpY2VEZXBsb3llciB9IGZyb20gXCIuL3NlcnZpY2UtZGVwbG95ZXJcIjtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBhIFJlc3RhdGUgQ2xvdWQgZW52aXJvbm1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdGF0ZUNsb3VkRW52aXJvbm1lbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBVbmlxdWUgaWQgb2YgdGhlIGVudmlyb25tZW50IChpbmNsdWRpbmcgdGhlIGBlbnZfYCBwcmVmaXgpLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnRJZDogRW52aXJvbm1lbnRJZDtcblxuICAvKipcbiAgICogQVBJIGtleSB3aXRoIGFkbWluaXN0cmF0aXZlIHBlcm1pc3Npb25zLiBVc2VkIHRvIG1hbmFnZSBzZXJ2aWNlcyB0byB0aGUgZW52aXJvbm1lbnQsIHNlZSB7QGxpbmsgU2VydmljZURlcGxveWVyfS5cbiAgICovXG4gIHJlYWRvbmx5IGFwaUtleTogc2VjcmV0cy5JU2VjcmV0O1xuXG4gIC8qKlxuICAgKiBSZWdpb24gb2YgdGhlIGVudmlyb25tZW50LiBEZWZhdWx0cyB0byBgdXNgLiBWYWxpZCB2YWx1ZXM6IFtgdXNgLCBgZXVgXS5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IFJlc3RhdGVDbG91ZFJlZ2lvbjtcblxuICAvKipcbiAgICogSW52b2tlciByb2xlIHRoYXQgY2FuIGJlIGFzc3VtZWQgYnkgUmVzdGF0ZSBDbG91ZC4gSWYgeW91IHVzZSB7QGxpbmsgU2VydmljZURlcGxveWVyfSB0byByZWdpc3RlciBMYW1iZGEgZnVuY3Rpb25zXG4gICAqIGFzIGhhbmRsZXJzLCB0aGUgbmVjZXNzYXJ5IGludm9rZSBwZXJtaXNzaW9ucyB3aWxsIGJlIGdyYW50ZWQgYXV0b21hdGljYWxseS5cbiAgICovXG4gIHJlYWRvbmx5IGludm9rZXJSb2xlPzogaWFtLklSb2xlO1xufVxuXG4vKipcbiAqIEEgZGlzdGluY3QgUmVzdGF0ZSBDbG91ZCBlbnZpcm9ubWVudCByZWZlcmVuY2UuIFRoaXMgaXMgYSBjb252ZW5pZW5jZSB1dGlsaXR5IGZvciBkZXBsb3lpbmcgdG8gdGhlXG4gKiBbUmVzdGF0ZSBDbG91ZF0oaHR0cHM6Ly9jbG91ZC5yZXN0YXRlLmRldi8pIGhvc3RlZCBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgUmVzdGF0ZUNsb3VkRW52aXJvbm1lbnQgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJUmVzdGF0ZUVudmlyb25tZW50IHtcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnRJZDogRW52aXJvbm1lbnRJZDtcbiAgcmVhZG9ubHkgYWRtaW5Vcmw6IHN0cmluZztcbiAgcmVhZG9ubHkgaW5ncmVzc1VybDogc3RyaW5nO1xuICByZWFkb25seSBhdXRoVG9rZW46IHNlY3JldHMuSVNlY3JldDtcbiAgcmVhZG9ubHkgaW52b2tlclJvbGU6IGlhbS5JUm9sZTtcbiAgcmVhZG9ubHkgcmVnaW9uOiBSZXN0YXRlQ2xvdWRSZWdpb247XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBSZXN0YXRlIENsb3VkIGVudmlyb25tZW50IHJlZmVyZW5jZSBhbG9uZyB3aXRoIGludm9rZXIuIE5vdGUgdGhhdCB0aGlzIGNvbnN0cnVjdCBpcyBvbmx5IGEgcG9pbnRlciB0b1xuICAgKiBhbiBleGlzdGluZyBSZXN0YXRlIENsb3VkIGVudmlyb25tZW50IGFuZCBkb2VzIG5vdCBjcmVhdGUgaXQuIFVubGVzcyB0aGUgYGludm9rZXJSb2xlYCBwcm9wZXJ0eSBpcyBzcGVjaWZpZWQsIGl0XG4gICAqIGRvZXMgY3JlYXRlIGEgbmV3IHJvbGUgdGhhdCBjYW4gYmUgYXNzdW1lZCBieSBSZXN0YXRlIENsb3VkLCB3aGljaCBpcyB1c2VkIHRvIHRoZSBzZXJ2aWNlIGhhbmRsZXJzLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgcGFyZW50IGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgY29uc3RydWN0IGlkXG4gICAqIEBwYXJhbSBwcm9wcyBlbnZpcm9ubWVudCBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIFJlc3RhdGUgQ2xvdWQgZW52aXJvbm1lbnRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSZXN0YXRlQ2xvdWRFbnZpcm9ubWVudFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLmVudmlyb25tZW50SWQgPSBwcm9wcy5lbnZpcm9ubWVudElkO1xuICAgIHRoaXMucmVnaW9uID0gcHJvcHMucmVnaW9uID8/IFJFU1RBVEVfQ0xPVURfUkVHSU9OX1VTO1xuICAgIHRoaXMuaW52b2tlclJvbGUgPSBwcm9wcy5pbnZva2VyUm9sZSA/PyB0aGlzLmNyZWF0ZUludm9rZXJSb2xlKHRoaXMsIHByb3BzKTtcbiAgICB0aGlzLmF1dGhUb2tlbiA9IHByb3BzLmFwaUtleTtcbiAgICB0aGlzLmFkbWluVXJsID0gYWRtaW5FbmRwb2ludCh0aGlzLnJlZ2lvbiwgcHJvcHMuZW52aXJvbm1lbnRJZCk7XG4gICAgdGhpcy5pbmdyZXNzVXJsID0gaW5ncmVzc0VuZHBvaW50KHRoaXMucmVnaW9uLCBwcm9wcy5lbnZpcm9ubWVudElkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHJvbGUgaXMgdXNlZCBieSBSZXN0YXRlIHRvIGludm9rZSBMYW1iZGEgc2VydmljZSBoYW5kbGVyczsgc2VlIGh0dHBzOi8vZG9jcy5yZXN0YXRlLmRldi9kZXBsb3kvY2xvdWQgZm9yXG4gICAqIGluZm9ybWF0aW9uIG9uIGRlcGxveWluZyBzZXJ2aWNlcyB0byBSZXN0YXRlIENsb3VkIGVudmlyb25tZW50cy4gRm9yIHN0YW5kYWxvbmUgZW52aXJvbm1lbnRzLCB0aGUgRUMyIGluc3RhbmNlXG4gICAqIHByb2ZpbGUgY2FuIGJlIHVzZWQgZGlyZWN0bHkgaW5zdGVhZCBvZiBjcmVhdGluZyBhIHNlcGFyYXRlIHJvbGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlSW52b2tlclJvbGUoc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IFJlc3RhdGVDbG91ZEVudmlyb25tZW50UHJvcHMpOiBpYW0uSVJvbGUge1xuICAgIGNvbnN0IGludm9rZXJSb2xlID0gbmV3IGlhbS5Sb2xlKHNjb3BlLCBcIkludm9rZXJSb2xlXCIsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5BY2NvdW50UHJpbmNpcGFsKENPTkZJR1t0aGlzLnJlZ2lvbl0uYWNjb3VudElkKS53aXRoQ29uZGl0aW9ucyh7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgIFwic3RzOkV4dGVybmFsSWRcIjogcHJvcHMuZW52aXJvbm1lbnRJZCxcbiAgICAgICAgICBcImF3czpQcmluY2lwYWxBcm5cIjogQ09ORklHW3RoaXMucmVnaW9uXS5wcmluY2lwYWxBcm4sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9KTtcbiAgICBpbnZva2VyUm9sZS5hc3N1bWVSb2xlUG9saWN5IS5hZGRTdGF0ZW1lbnRzKFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5BY2NvdW50UHJpbmNpcGFsKFwiNjU0NjU0MTU2NjI1XCIpXSxcbiAgICAgICAgYWN0aW9uczogW1wic3RzOlRhZ1Nlc3Npb25cIl0sXG4gICAgICB9KSxcbiAgICApO1xuICAgIHJldHVybiBpbnZva2VyUm9sZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhZG1pbkVuZHBvaW50KHJlZ2lvbjogUmVzdGF0ZUNsb3VkUmVnaW9uLCBlbnZpcm9ubWVudElkOiBFbnZpcm9ubWVudElkKTogc3RyaW5nIHtcbiAgY29uc3QgYmFyZUVudklkID0gZW52aXJvbm1lbnRJZC5yZXBsYWNlKC9eZW52Xy8sIFwiXCIpO1xuICByZXR1cm4gYGh0dHBzOi8vJHtiYXJlRW52SWR9LmVudi4ke3JlZ2lvbn0ucmVzdGF0ZS5jbG91ZDo5MDcwYDtcbn1cblxuZnVuY3Rpb24gaW5ncmVzc0VuZHBvaW50KHJlZ2lvbjogUmVzdGF0ZUNsb3VkUmVnaW9uLCBlbnZpcm9ubWVudElkOiBFbnZpcm9ubWVudElkKTogc3RyaW5nIHtcbiAgY29uc3QgYmFyZUVudklkID0gZW52aXJvbm1lbnRJZC5yZXBsYWNlKC9eZW52Xy8sIFwiXCIpO1xuICByZXR1cm4gYGh0dHBzOi8vJHtiYXJlRW52SWR9LmVudi4ke3JlZ2lvbn0ucmVzdGF0ZS5jbG91ZGA7XG59XG5cbmV4cG9ydCB0eXBlIEVudmlyb25tZW50SWQgPSBgZW52XyR7c3RyaW5nfWA7XG5leHBvcnQgdHlwZSBSZXN0YXRlQ2xvdWRSZWdpb24gPSBcInVzXCIgfCBcImV1XCI7XG5cbmludGVyZmFjZSBSZWdpb25Db25maWcge1xuICBhY2NvdW50SWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsQXJuOiBzdHJpbmc7XG59XG5cbmNvbnN0IFJFU1RBVEVfQ0xPVURfUkVHSU9OX1VTID0gXCJ1c1wiO1xuXG5jb25zdCBDT05GSUcgPSB7XG4gIHVzOiB7XG4gICAgYWNjb3VudElkOiBcIjY1NDY1NDE1NjYyNVwiLFxuICAgIHByaW5jaXBhbEFybjogXCJhcm46YXdzOmlhbTo6NjU0NjU0MTU2NjI1OnJvbGUvUmVzdGF0ZUNsb3VkXCIsXG4gIH0sXG4gIGV1OiB7XG4gICAgYWNjb3VudElkOiBcIjY1NDY1NDE1NjYyNVwiLFxuICAgIHByaW5jaXBhbEFybjogXCJhcm46YXdzOmlhbTo6NjU0NjU0MTU2NjI1OnJvbGUvUmVzdGF0ZUNsb3VkXCIsXG4gIH0sXG59IGFzIFJlY29yZDxSZXN0YXRlQ2xvdWRSZWdpb24sIFJlZ2lvbkNvbmZpZz47XG4iXX0=
@@ -1,7 +1,6 @@
1
1
  import * as iam from "aws-cdk-lib/aws-iam";
2
2
  import * as secrets from "aws-cdk-lib/aws-secretsmanager";
3
3
  import { FunctionOptions } from "aws-cdk-lib/aws-lambda";
4
- import { ServiceDeployer } from "./service-deployer";
5
4
  /**
6
5
  * A Restate environment is a unique deployment of the Restate service. Implementations of this interface may refer to
7
6
  * cloud or self-managed environments.
@@ -31,7 +30,6 @@ export declare class RestateEnvironment implements IRestateEnvironment {
31
30
  readonly adminUrl: string;
32
31
  readonly authToken?: secrets.ISecret;
33
32
  readonly invokerRole?: iam.IRole;
34
- readonly serviceDeployer: ServiceDeployer;
35
33
  private constructor();
36
34
  static fromAttributes(props: IRestateEnvironment): IRestateEnvironment;
37
35
  }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2024 - Restate Software, Inc., Restate GmbH
3
+ * Copyright (c) 2023-2025 - Restate Software, Inc., Restate GmbH
4
4
  *
5
- * This file is part of the Restate SDK for Node.js/TypeScript,
5
+ * This file is part of the Restate CDK Construct Library,
6
6
  * which is released under the MIT license.
7
7
  *
8
8
  * You can find a copy of the license in file LICENSE in the root
@@ -27,4 +27,4 @@ class RestateEnvironment {
27
27
  }
28
28
  }
29
29
  exports.RestateEnvironment = RestateEnvironment;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdGF0ZS1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9yZXN0YXRlLWNvbnN0cnVjdHMvcmVzdGF0ZS1lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOzs7QUFnQ0g7Ozs7R0FJRztBQUNILE1BQWEsa0JBQWtCO0lBTTdCLFlBQW9CLEtBQTBCO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQTBCO1FBQzlDLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFmRCxnREFlQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjQgLSBSZXN0YXRlIFNvZnR3YXJlLCBJbmMuLCBSZXN0YXRlIEdtYkhcbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgUmVzdGF0ZSBTREsgZm9yIE5vZGUuanMvVHlwZVNjcmlwdCxcbiAqIHdoaWNoIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqXG4gKiBZb3UgY2FuIGZpbmQgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGluIGZpbGUgTElDRU5TRSBpbiB0aGUgcm9vdFxuICogZGlyZWN0b3J5IG9mIHRoaXMgcmVwb3NpdG9yeSBvciBwYWNrYWdlLCBvciBhdFxuICogaHR0cHM6Ly9naXRodWIuY29tL3Jlc3RhdGVkZXYvc2RrLXR5cGVzY3JpcHQvYmxvYi9tYWluL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCAqIGFzIHNlY3JldHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlclwiO1xuaW1wb3J0IHsgRnVuY3Rpb25PcHRpb25zIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IFNlcnZpY2VEZXBsb3llciB9IGZyb20gXCIuL3NlcnZpY2UtZGVwbG95ZXJcIjtcbmltcG9ydCB7IFNpbmdsZU5vZGVSZXN0YXRlRGVwbG95bWVudCB9IGZyb20gXCIuL3NpbmdsZS1ub2RlLXJlc3RhdGUtZGVwbG95bWVudFwiO1xuaW1wb3J0IHsgUmVzdGF0ZUNsb3VkRW52aXJvbm1lbnQgfSBmcm9tIFwiLi9yZXN0YXRlLWNsb3VkLWVudmlyb25tZW50XCI7XG5cbi8qKlxuICogQSBSZXN0YXRlIGVudmlyb25tZW50IGlzIGEgdW5pcXVlIGRlcGxveW1lbnQgb2YgdGhlIFJlc3RhdGUgc2VydmljZS4gSW1wbGVtZW50YXRpb25zIG9mIHRoaXMgaW50ZXJmYWNlIG1heSByZWZlciB0b1xuICogY2xvdWQgb3Igc2VsZi1tYW5hZ2VkIGVudmlyb25tZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUmVzdGF0ZUVudmlyb25tZW50IGV4dGVuZHMgUGljazxGdW5jdGlvbk9wdGlvbnMsIFwidnBjXCIgfCBcInZwY1N1Ym5ldHNcIiB8IFwic2VjdXJpdHlHcm91cHNcIj4ge1xuICAvKipcbiAgICogVGhlIGV4dGVybmFsIGludm9rZXIgcm9sZSB0aGF0IFJlc3RhdGUgY2FuIGFzc3VtZSB0byBleGVjdXRlIHNlcnZpY2UgaGFuZGxlcnMuIElmIGxlZnQgdW5zZXQsIGl0J3MgYXNzdW1lZCB0aGF0XG4gICAqIHRoZSBSZXN0YXRlIGRlcGxveW1lbnQgaGFzIHN1ZmZpY2llbnQgcGVybWlzc2lvbnMgdG8gaW52b2tlIHRoZSBzZXJ2aWNlIGhhbmRsZXJzIGRpcmVjdGx5LiBTZXR0aW5nIHRoaXMgcm9sZSBhbGxvd3NcbiAgICogdGhlIGNvbnN0cnVjdHMgdG8gZW5zdXJlIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zIGFyZSBncmFudGVkIHRvIGFueSBkZXBsb3llZCBzZXJ2aWNlIGhhbmRsZXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW52b2tlclJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBhZG1pbiBlbmRwb2ludCBvZiB0aGUgUmVzdGF0ZSBlbnZpcm9ubWVudCB3aGVyZSBzZXJ2aWNlcyB3aWxsIGJlIGRlcGxveWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRtaW5Vcmw6IHN0cmluZztcblxuICAvKipcbiAgICogQXV0aGVudGljYXRpb24gdG9rZW4gdG8gaW5jbHVkZSBhcyBhIGJlYXJlciB0b2tlbiBpbiByZXF1ZXN0cyB0byB0aGUgYWRtaW4gZW5kcG9pbnQuXG4gICAqL1xuICByZWFkb25seSBhdXRoVG9rZW4/OiBzZWNyZXRzLklTZWNyZXQ7XG59XG5cbi8qKlxuICogQSByZWZlcmVuY2UgdG8gYSBSZXN0YXRlIEVudmlyb25tZW50IHRoYXQgY2FuIGJlIHVzZWQgYXMgYSB0YXJnZXQgZm9yIGRlcGxveWluZyBzZXJ2aWNlcy4gVXNlIHtAbGluayBmcm9tQXR0cmlidXRlc31cbiAqIHRvIGluc3RhbnRpYXRlIGFuIGFyYml0cmFyeSBwb2ludGVyIHRvIGFuIGV4aXN0aW5nIGVudmlyb25tZW50LCBvciBvbmUgb2YgdGhlIHtAbGluayBTaW5nbGVOb2RlUmVzdGF0ZURlcGxveW1lbnR9IG9yXG4gKiB7QGxpbmsgUmVzdGF0ZUNsb3VkRW52aXJvbm1lbnR9IGNvbnZlbmllbmNlIGNsYXNzZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXN0YXRlRW52aXJvbm1lbnQgaW1wbGVtZW50cyBJUmVzdGF0ZUVudmlyb25tZW50IHtcbiAgcmVhZG9ubHkgYWRtaW5Vcmw6IHN0cmluZztcbiAgcmVhZG9ubHkgYXV0aFRva2VuPzogc2VjcmV0cy5JU2VjcmV0O1xuICByZWFkb25seSBpbnZva2VyUm9sZT86IGlhbS5JUm9sZTtcbiAgcmVhZG9ubHkgc2VydmljZURlcGxveWVyOiBTZXJ2aWNlRGVwbG95ZXI7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcm9wczogSVJlc3RhdGVFbnZpcm9ubWVudCkge1xuICAgIHRoaXMuYWRtaW5VcmwgPSBwcm9wcy5hZG1pblVybDtcbiAgICB0aGlzLmludm9rZXJSb2xlID0gcHJvcHMuaW52b2tlclJvbGU7XG4gICAgdGhpcy5hdXRoVG9rZW4gPSBwcm9wcy5hdXRoVG9rZW47XG4gIH1cblxuICBzdGF0aWMgZnJvbUF0dHJpYnV0ZXMocHJvcHM6IElSZXN0YXRlRW52aXJvbm1lbnQpOiBJUmVzdGF0ZUVudmlyb25tZW50IHtcbiAgICByZXR1cm4gbmV3IFJlc3RhdGVFbnZpcm9ubWVudChwcm9wcyk7XG4gIH1cbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdGF0ZS1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9yZXN0YXRlLWNvbnN0cnVjdHMvcmVzdGF0ZS1lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOzs7QUErQkg7Ozs7R0FJRztBQUNILE1BQWEsa0JBQWtCO0lBSzdCLFlBQW9CLEtBQTBCO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQTBCO1FBQzlDLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFkRCxnREFjQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjMtMjAyNSAtIFJlc3RhdGUgU29mdHdhcmUsIEluYy4sIFJlc3RhdGUgR21iSFxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBSZXN0YXRlIENESyBDb25zdHJ1Y3QgTGlicmFyeSxcbiAqIHdoaWNoIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqXG4gKiBZb3UgY2FuIGZpbmQgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGluIGZpbGUgTElDRU5TRSBpbiB0aGUgcm9vdFxuICogZGlyZWN0b3J5IG9mIHRoaXMgcmVwb3NpdG9yeSBvciBwYWNrYWdlLCBvciBhdFxuICogaHR0cHM6Ly9naXRodWIuY29tL3Jlc3RhdGVkZXYvc2RrLXR5cGVzY3JpcHQvYmxvYi9tYWluL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCAqIGFzIHNlY3JldHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlclwiO1xuaW1wb3J0IHsgRnVuY3Rpb25PcHRpb25zIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IFNpbmdsZU5vZGVSZXN0YXRlRGVwbG95bWVudCB9IGZyb20gXCIuL3NpbmdsZS1ub2RlLXJlc3RhdGUtZGVwbG95bWVudFwiO1xuaW1wb3J0IHsgUmVzdGF0ZUNsb3VkRW52aXJvbm1lbnQgfSBmcm9tIFwiLi9yZXN0YXRlLWNsb3VkLWVudmlyb25tZW50XCI7XG5cbi8qKlxuICogQSBSZXN0YXRlIGVudmlyb25tZW50IGlzIGEgdW5pcXVlIGRlcGxveW1lbnQgb2YgdGhlIFJlc3RhdGUgc2VydmljZS4gSW1wbGVtZW50YXRpb25zIG9mIHRoaXMgaW50ZXJmYWNlIG1heSByZWZlciB0b1xuICogY2xvdWQgb3Igc2VsZi1tYW5hZ2VkIGVudmlyb25tZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUmVzdGF0ZUVudmlyb25tZW50IGV4dGVuZHMgUGljazxGdW5jdGlvbk9wdGlvbnMsIFwidnBjXCIgfCBcInZwY1N1Ym5ldHNcIiB8IFwic2VjdXJpdHlHcm91cHNcIj4ge1xuICAvKipcbiAgICogVGhlIGV4dGVybmFsIGludm9rZXIgcm9sZSB0aGF0IFJlc3RhdGUgY2FuIGFzc3VtZSB0byBleGVjdXRlIHNlcnZpY2UgaGFuZGxlcnMuIElmIGxlZnQgdW5zZXQsIGl0J3MgYXNzdW1lZCB0aGF0XG4gICAqIHRoZSBSZXN0YXRlIGRlcGxveW1lbnQgaGFzIHN1ZmZpY2llbnQgcGVybWlzc2lvbnMgdG8gaW52b2tlIHRoZSBzZXJ2aWNlIGhhbmRsZXJzIGRpcmVjdGx5LiBTZXR0aW5nIHRoaXMgcm9sZSBhbGxvd3NcbiAgICogdGhlIGNvbnN0cnVjdHMgdG8gZW5zdXJlIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zIGFyZSBncmFudGVkIHRvIGFueSBkZXBsb3llZCBzZXJ2aWNlIGhhbmRsZXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW52b2tlclJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBhZG1pbiBlbmRwb2ludCBvZiB0aGUgUmVzdGF0ZSBlbnZpcm9ubWVudCB3aGVyZSBzZXJ2aWNlcyB3aWxsIGJlIGRlcGxveWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRtaW5Vcmw6IHN0cmluZztcblxuICAvKipcbiAgICogQXV0aGVudGljYXRpb24gdG9rZW4gdG8gaW5jbHVkZSBhcyBhIGJlYXJlciB0b2tlbiBpbiByZXF1ZXN0cyB0byB0aGUgYWRtaW4gZW5kcG9pbnQuXG4gICAqL1xuICByZWFkb25seSBhdXRoVG9rZW4/OiBzZWNyZXRzLklTZWNyZXQ7XG59XG5cbi8qKlxuICogQSByZWZlcmVuY2UgdG8gYSBSZXN0YXRlIEVudmlyb25tZW50IHRoYXQgY2FuIGJlIHVzZWQgYXMgYSB0YXJnZXQgZm9yIGRlcGxveWluZyBzZXJ2aWNlcy4gVXNlIHtAbGluayBmcm9tQXR0cmlidXRlc31cbiAqIHRvIGluc3RhbnRpYXRlIGFuIGFyYml0cmFyeSBwb2ludGVyIHRvIGFuIGV4aXN0aW5nIGVudmlyb25tZW50LCBvciBvbmUgb2YgdGhlIHtAbGluayBTaW5nbGVOb2RlUmVzdGF0ZURlcGxveW1lbnR9IG9yXG4gKiB7QGxpbmsgUmVzdGF0ZUNsb3VkRW52aXJvbm1lbnR9IGNvbnZlbmllbmNlIGNsYXNzZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXN0YXRlRW52aXJvbm1lbnQgaW1wbGVtZW50cyBJUmVzdGF0ZUVudmlyb25tZW50IHtcbiAgcmVhZG9ubHkgYWRtaW5Vcmw6IHN0cmluZztcbiAgcmVhZG9ubHkgYXV0aFRva2VuPzogc2VjcmV0cy5JU2VjcmV0O1xuICByZWFkb25seSBpbnZva2VyUm9sZT86IGlhbS5JUm9sZTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByb3BzOiBJUmVzdGF0ZUVudmlyb25tZW50KSB7XG4gICAgdGhpcy5hZG1pblVybCA9IHByb3BzLmFkbWluVXJsO1xuICAgIHRoaXMuaW52b2tlclJvbGUgPSBwcm9wcy5pbnZva2VyUm9sZTtcbiAgICB0aGlzLmF1dGhUb2tlbiA9IHByb3BzLmF1dGhUb2tlbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQXR0cmlidXRlcyhwcm9wczogSVJlc3RhdGVFbnZpcm9ubWVudCk6IElSZXN0YXRlRW52aXJvbm1lbnQge1xuICAgIHJldHVybiBuZXcgUmVzdGF0ZUVudmlyb25tZW50KHByb3BzKTtcbiAgfVxufVxuIl19
@@ -58,13 +58,14 @@ export interface ServiceRegistrationProps {
58
58
  export declare class ServiceDeployer extends Construct {
59
59
  /** The custom resource provider for handling "deployment" resources. */
60
60
  readonly deploymentResourceProvider: cr.Provider;
61
+ readonly eventHandler: lambda_node.NodejsFunction;
61
62
  private invocationPolicy?;
62
63
  constructor(scope: Construct, id: string,
63
64
  /**
64
65
  * Allows the custom resource event handler properties to be overridden. The main use case for this is specifying
65
66
  * VPC and security group settings for Restate environments that require it.
66
67
  */
67
- props?: Pick<lambda.FunctionOptions, "functionName" | "logGroup" | "timeout" | "vpc" | "vpcSubnets" | "securityGroups" | "allowPublicSubnet"> & Pick<lambda_node.NodejsFunctionProps, "entry"> & Pick<logs.LogGroupProps, "removalPolicy">);
68
+ props?: Pick<lambda_node.NodejsFunctionProps, "allowPublicSubnet" | "architecture" | "runtime" | "bundling" | "depsLockFilePath" | "code" | "entry" | "functionName" | "logGroup" | "securityGroups" | "timeout" | "vpc" | "vpcSubnets"> & Pick<logs.LogGroupProps, "removalPolicy">);
68
69
  /**
69
70
  * Deploy a Lambda-backed Restate handler to a given environment.
70
71
  *
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
3
+ * Copyright (c) 2023-2025 - Restate Software, Inc., Restate GmbH
4
4
  *
5
- * This file is part of the Restate SDK for Node.js/TypeScript,
5
+ * This file is part of the Restate CDK Construct Library,
6
6
  * which is released under the MIT license.
7
7
  *
8
8
  * You can find a copy of the license in file LICENSE in the root
@@ -25,13 +25,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
25
25
  }) : function(o, v) {
26
26
  o["default"] = v;
27
27
  });
28
- var __importStar = (this && this.__importStar) || function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
35
45
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
46
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
47
  };
@@ -67,22 +77,26 @@ class ServiceDeployer extends constructs_1.Construct {
67
77
  */
68
78
  props) {
69
79
  super(scope, id);
70
- const eventHandler = new lambda_node.NodejsFunction(this, "EventHandler", {
80
+ this.eventHandler = new lambda_node.NodejsFunction(this, "EventHandler", {
71
81
  functionName: props?.functionName,
72
82
  logGroup: props?.logGroup,
73
83
  description: "Restate custom registration handler",
74
84
  entry: props?.entry ?? node_path_1.default.join(__dirname, "register-service-handler/index.js"),
75
- architecture: lambda.Architecture.ARM_64,
76
- runtime: lambda.Runtime.NODEJS_LATEST,
85
+ architecture: props?.architecture ?? lambda.Architecture.ARM_64,
86
+ runtime: props?.runtime ?? lambda.Runtime.NODEJS_22_X,
77
87
  memorySize: 128,
78
88
  timeout: props?.timeout ?? DEFAULT_TIMEOUT,
79
89
  environment: {
80
90
  NODE_OPTIONS: "--enable-source-maps",
81
91
  },
82
- bundling: {
92
+ bundling: props?.bundling ?? {
83
93
  minify: false,
84
94
  sourceMap: true,
95
+ externalModules: ["@aws-sdk/*"],
96
+ platform: "node",
97
+ target: "node22",
85
98
  },
99
+ depsLockFilePath: props?.depsLockFilePath,
86
100
  ...(props?.vpc
87
101
  ? {
88
102
  vpc: props?.vpc,
@@ -95,12 +109,14 @@ class ServiceDeployer extends constructs_1.Construct {
95
109
  if (!props?.logGroup) {
96
110
  // By default, Lambda Functions have a log group with never-expiring retention policy.
97
111
  new logs.LogGroup(this, "DeploymentLogs", {
98
- logGroupName: `/aws/lambda/${eventHandler.functionName}`,
112
+ logGroupName: `/aws/lambda/${this.eventHandler.functionName}`,
99
113
  retention: logs.RetentionDays.ONE_MONTH,
100
- removalPolicy: cdk.RemovalPolicy.RETAIN_ON_UPDATE_OR_DELETE,
114
+ removalPolicy: props?.removalPolicy ?? cdk.RemovalPolicy.RETAIN_ON_UPDATE_OR_DELETE,
101
115
  });
102
116
  }
103
- this.deploymentResourceProvider = new cr.Provider(this, "CustomResourceProvider", { onEventHandler: eventHandler });
117
+ this.deploymentResourceProvider = new cr.Provider(this, "CustomResourceProvider", {
118
+ onEventHandler: this.eventHandler,
119
+ });
104
120
  }
105
121
  /**
106
122
  * Deploy a Lambda-backed Restate handler to a given environment.
@@ -148,7 +164,7 @@ class ServiceDeployer extends constructs_1.Construct {
148
164
  authTokenSecretArn: authToken?.secretArn,
149
165
  serviceLambdaArn: handler.functionArn,
150
166
  invokeRoleArn: environment.invokerRole?.roleArn,
151
- removalPolicy: cdk.RemovalPolicy.RETAIN,
167
+ // removalPolicy: "retain",
152
168
  private: (options?.private ?? false).toString(),
153
169
  configurationVersion: options?.configurationVersion || handler.functionArn.endsWith(":$LATEST")
154
170
  ? new Date().toISOString()
@@ -176,4 +192,4 @@ class ServiceDeployer extends constructs_1.Construct {
176
192
  }
177
193
  }
178
194
  exports.ServiceDeployer = ServiceDeployer;
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1kZXBsb3llci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9yZXN0YXRlLWNvbnN0cnVjdHMvc2VydmljZS1kZXBsb3llci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDBEQUE2QjtBQUM3QiwyQ0FBdUM7QUFDdkMsaURBQW1DO0FBQ25DLGlFQUFtRDtBQUNuRCx5REFBMkM7QUFDM0MsK0RBQWlEO0FBQ2pELDJFQUE2RDtBQUM3RCwyREFBNkM7QUFLN0MsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUE2Q2xEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxzQkFBUztJQU01QyxZQUNFLEtBQWdCLEVBQ2hCLEVBQVU7SUFDVjs7O09BR0c7SUFDSCxLQUsyQztRQUUzQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sWUFBWSxHQUFHLElBQUksV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQ3hFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWTtZQUNqQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVE7WUFDekIsV0FBVyxFQUFFLHFDQUFxQztZQUNsRCxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssSUFBSSxtQkFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsbUNBQW1DLENBQUM7WUFDaEYsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUN4QyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhO1lBQ3JDLFVBQVUsRUFBRSxHQUFHO1lBQ2YsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLElBQUksZUFBZTtZQUMxQyxXQUFXLEVBQUU7Z0JBQ1gsWUFBWSxF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RUFBRSxRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFzQjthQUNyQztTQUNuQyxDQUFDLENBQUM7UUFFSCxJQUFJLFdBQVcsQ0FBQyxXQUFXLElBQUksQ0FBQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQztZQUNqRSxrSEFBa0g7WUFDbEgsZ0dBQWdHO1lBQ2hHLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztnQkFDakUsK0dBQStHO2dCQUMvRyxpSEFBaUg7Z0JBQ2pILGtIQUFrSDtnQkFDbEgsNkdBQTZHO2dCQUM3RyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDckQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUQsQ0FBQztZQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQ2pDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDdEIsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ2xDLFNBQVMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLDBCQUEwQjthQUNyRCxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFySkQsMENBcUpDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMy0yMDI0IC0gUmVzdGF0ZSBTb2Z0d2FyZSwgSW5jLiwgUmVzdGF0ZSBHbWJIXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFJlc3RhdGUgU0RLIGZvciBOb2RlLmpzL1R5cGVTY3JpcHQsXG4gKiB3aGljaCBpcyByZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKlxuICogWW91IGNhbiBmaW5kIGEgY29weSBvZiB0aGUgbGljZW5zZSBpbiBmaWxlIExJQ0VOU0UgaW4gdGhlIHJvb3RcbiAqIGRpcmVjdG9yeSBvZiB0aGlzIHJlcG9zaXRvcnkgb3IgcGFja2FnZSwgb3IgYXRcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9yZXN0YXRlZGV2L3Nkay10eXBlc2NyaXB0L2Jsb2IvbWFpbi9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGNyIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0ICogYXMgbGFtYmRhX25vZGUgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzXCI7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0ICogYXMgc2VjcmV0cyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5pbXBvcnQgeyBJUmVzdGF0ZUVudmlyb25tZW50IH0gZnJvbSBcIi4vcmVzdGF0ZS1lbnZpcm9ubWVudFwiO1xuaW1wb3J0IHsgUmVnaXN0cmF0aW9uUHJvcGVydGllcyB9IGZyb20gXCIuL3JlZ2lzdGVyLXNlcnZpY2UtaGFuZGxlclwiO1xuXG5jb25zdCBERUZBVUxUX1RJTUVPVVQgPSBjZGsuRHVyYXRpb24uc2Vjb25kcygxODApO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VSZWdpc3RyYXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IEFSTiBmb3IgdGhlIGF1dGhlbnRpY2F0aW9uIHRva2VuIHRvIHVzZSB3aGVuIGNhbGxpbmcgdGhlIGFkbWluIEFQSS4gVGFrZXMgcHJlY2VkZW5jZVxuICAgKiBvdmVyIHRoZSBlbnZpcm9ubWVudCdzIHRva2VuLlxuICAgKi9cbiAgYXV0aFRva2VuPzogc2VjcmV0cy5JU2VjcmV0O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNraXAgZ3JhbnRpbmcgdGhlIGludm9rZXIgcm9sZSBwZXJtaXNzaW9uIHRvIGludm9rZSB0aGUgc2VydmljZSBoYW5kbGVyLiBUaGUgZGVwbG95ZXIgYnkgZGVmYXVsdFxuICAgKiB3aWxsIGdyYW50IHRoZSBpbnZva2VyIHJvbGUgcGVybWlzc2lvbiB0byBpbnZva2UgdGhlIGhhbmRsZXIsIGJ1dCB5b3UgY2FuIHNldCB0aGlzIHRvIGB0cnVlYCB0byBoYW5kbGUgdGhpc1xuICAgKiBtYW51YWxseS5cbiAgICovXG4gIHNraXBJbnZva2VGdW5jdGlvbkdyYW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJpdmF0ZSBzZXJ2aWNlcyBhcmUgb25seSBhdmFpbGFibGUgdG8gb3RoZXIgUmVzdGF0ZSBzZXJ2aWNlcyBpbiB0aGUgc2FtZSBlbnZpcm9ubWVudCwgYW5kIGFyZSBub3QgYWNjZXNzaWJsZSBmb3JcbiAgICogaW5ncmVzcy1iYXNlZCBpbnZvY2F0aW9uLiBJZiBtdWx0aXBsZSBzZXJ2aWNlcyBhcmUgZXhwb3NlZCBieSB0aGUgc2FtZSBoYW5kbGVyLCBhbGwgb2YgdGhlbSB3aWxsIGJlIHVwZGF0ZWQuXG4gICAqIERlZmF1bHQ6IGBmYWxzZWAsIGkuZS4gc2VydmljZXMgd2lsbCBiZSBtYWRlIHB1YmxpYyBhbmQgcmVhY2hhYmxlIHZpYSBpbmdyZXNzIGJ5IGRlZmF1bHQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnJlc3RhdGUuZGV2L29wZXJhdGUvcmVnaXN0cmF0aW9uI3ByaXZhdGUtc2VydmljZXNcbiAgICovXG4gIHByaXZhdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIGR1bW15IHBhcmFtZXRlciB0byBmb3JjZSBDbG91ZEZvcm1hdGlvbiB0byB1cGRhdGUgdGhlIGRlcGxveW1lbnQgd2hlbiB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLiBVc2VmdWwgaWZcbiAgICogeW91IHdhbnQgdG8gdGFyZ2V0IHRoZSBcImxhdGVzdCB2ZXJzaW9uXCIgb2YgYSBzZXJ2aWNlIGhhbmRsZXIgYW5kIG5lZWQgdG8gZm9yY2UgYSBkZXBsb3ltZW50IGluIG9yZGVyIHRvIHRyaWdnZXJcbiAgICogZGlzY292ZXJ5LiBTZXQgdGhpcyB0byBhIG5ldyB2YWx1ZSBldmVyeSB0aW1lIHlvdSB3YW50IHRvIGZvcmNlIGEgc2VydmljZSByZWdpc3RyYXRpb24gdG8gaGFwcGVuLCBlLmcuIGEgdGltZXN0YW1wLlxuICAgKi9cbiAgY29uZmlndXJhdGlvblZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFjY2VwdCBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZXMuXG4gICAqL1xuICBpbnNlY3VyZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgYSBjdXN0b20gYWRtaW4gZW5kcG9pbnQgVVJMLCBvdmVycmlkaW5nIHRoZSBvbmUgZXhwb3NlZCBieSB0aGUgdGFyZ2V0IGVudmlyb25tZW50LiBZb3UgbWF5IG5lZWQgdGhpcyBpZlxuICAgKiB0aGUgYEVudmlyb25tZW50YCBjb25zdHJ1Y3QgaXMgcmVwb3J0aW5nIGEgZGlmZmVyZW50IFVSTCBmcm9tIHRoZSBvbmUgdGhhdCB0aGUgZGVwbG95ZXIgY2FuIHJlYWNoLCBlLmcuIGlmIHlvdXJcbiAgICogUmVzdGF0ZSBzZXJ2aWNlIGlzIGJlaGluZCBhIGxvYWQgYmFsYW5jZXIuXG4gICAqL1xuICBhZG1pblVybD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBMYW1iZGEtYmFja2VkIHJlc3RhdGUgc2VydmljZXMgd2l0aCBSZXN0YXRlIGVudmlyb25tZW50cy5cbiAqXG4gKiBZb3UgY2FuIHJldXNlIHRoZSBzYW1lIGRlcGxveWVyIHRvIHJlZ2lzdGVyIHRoZSBzZXJ2aWNlcyBleHBvc2VkIGJ5IG11bHRpcGxlIGhhbmRsZXJzLiBZb3UgY2FuIGFsc28gcmV1c2UgdGhlXG4gKiBkZXBsb3llciB0byB0YXJnZXQgbXVsdGlwbGUgUmVzdGF0ZSBlbnZpcm9ubWVudHMsIHByb3ZpZGVkIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIGNvbXBhdGlibGUgKGUuZy4gdGhlIFJlc3RhdGVcbiAqIGVudmlyb25tZW50cyBpdCBuZWVkcyB0byBjb21tdW5pY2F0ZSB3aXRoIGFyZSBhbGwgYWNjZXNzaWJsZSBmcm9tIHRoZSBzYW1lIFZQQyBhbmQgU2VjdXJpdHkgR3JvdXBzLCBhY2NlcHQgdGhlIHNhbWVcbiAqIGF1dGhlbnRpY2F0aW9uIHRva2VuLCBhbmQgc28gb24pLiBDb252ZXJzZWx5LCB5b3UgY2FuIGNyZWF0ZSBtdWx0aXBsZSBkZXBsb3llcnMgaW4gY2FzZXMgd2hlbiB5b3UgbmVlZCB0byBkZXBsb3kgdG9cbiAqIG11bHRpcGxlIGVudmlyb25tZW50cyB0aGF0IHJlcXVpcmUgZGlzdGluY3QgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBEZXBsb3ltZW50IGxvZ3MgYXJlIHJldGFpbmVkIGZvciAzMCBkYXlzIGJ5IGRlZmF1bHQuXG4gKlxuICogQHNlZSB7cmVnaXN0ZXJ9XG4gKi9cbmV4cG9ydCBjbGFzcyBTZXJ2aWNlRGVwbG95ZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKiogVGhlIGN1c3RvbSByZXNvdXJjZSBwcm92aWRlciBmb3IgaGFuZGxpbmcgXCJkZXBsb3ltZW50XCIgcmVzb3VyY2VzLiAqL1xuICByZWFkb25seSBkZXBsb3ltZW50UmVzb3VyY2VQcm92aWRlcjogY3IuUHJvdmlkZXI7XG5cbiAgcHJpdmF0ZSBpbnZvY2F0aW9uUG9saWN5PzogaWFtLlBvbGljeTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogQWxsb3dzIHRoZSBjdXN0b20gcmVzb3VyY2UgZXZlbnQgaGFuZGxlciBwcm9wZXJ0aWVzIHRvIGJlIG92ZXJyaWRkZW4uIFRoZSBtYWluIHVzZSBjYXNlIGZvciB0aGlzIGlzIHNwZWNpZnlpbmdcbiAgICAgKiBWUEMgYW5kIHNlY3VyaXR5IGdyb3VwIHNldHRpbmdzIGZvciBSZXN0YXRlIGVudmlyb25tZW50cyB0aGF0IHJlcXVpcmUgaXQuXG4gICAgICovXG4gICAgcHJvcHM/OiBQaWNrPFxuICAgICAgbGFtYmRhLkZ1bmN0aW9uT3B0aW9ucyxcbiAgICAgIFwiZnVuY3Rpb25OYW1lXCIgfCBcImxvZ0dyb3VwXCIgfCBcInRpbWVvdXRcIiB8IFwidnBjXCIgfCBcInZwY1N1Ym5ldHNcIiB8IFwic2VjdXJpdHlHcm91cHNcIiB8IFwiYWxsb3dQdWJsaWNTdWJuZXRcIlxuICAgID4gJlxuICAgICAgUGljazxsYW1iZGFfbm9kZS5Ob2RlanNGdW5jdGlvblByb3BzLCBcImVudHJ5XCI+ICZcbiAgICAgIFBpY2s8bG9ncy5Mb2dHcm91cFByb3BzLCBcInJlbW92YWxQb2xpY3lcIj4sXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBldmVudEhhbmRsZXIgPSBuZXcgbGFtYmRhX25vZGUuTm9kZWpzRnVuY3Rpb24odGhpcywgXCJFdmVudEhhbmRsZXJcIiwge1xuICAgICAgZnVuY3Rpb25OYW1lOiBwcm9wcz8uZnVuY3Rpb25OYW1lLFxuICAgICAgbG9nR3JvdXA6IHByb3BzPy5sb2dHcm91cCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlJlc3RhdGUgY3VzdG9tIHJlZ2lzdHJhdGlvbiBoYW5kbGVyXCIsXG4gICAgICBlbnRyeTogcHJvcHM/LmVudHJ5ID8/IHBhdGguam9pbihfX2Rpcm5hbWUsIFwicmVnaXN0ZXItc2VydmljZS1oYW5kbGVyL2luZGV4LmpzXCIpLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBsYW1iZGEuQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU19MQVRFU1QsXG4gICAgICBtZW1vcnlTaXplOiAxMjgsXG4gICAgICB0aW1lb3V0OiBwcm9wcz8udGltZW91dCA/PyBERUZBVUxUX1RJTUVPVVQsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBOT0RFX09QVElPTlM6IFwiLS1lbmFibGUtc291cmNlLW1hcHNcIixcbiAgICAgIH0sXG4gICAgICBidW5kbGluZzoge1xuICAgICAgICBtaW5pZnk6IGZhbHNlLFxuICAgICAgICBzb3VyY2VNYXA6IHRydWUsXG4gICAgICB9LFxuICAgICAgLi4uKHByb3BzPy52cGNcbiAgICAgICAgPyAoe1xuICAgICAgICAgICAgdnBjOiBwcm9wcz8udnBjLFxuICAgICAgICAgICAgdnBjU3VibmV0czogcHJvcHM/LnZwY1N1Ym5ldHMsXG4gICAgICAgICAgICBzZWN1cml0eUdyb3VwczogcHJvcHM/LnNlY3VyaXR5R3JvdXBzLFxuICAgICAgICAgIH0gc2F0aXNmaWVzIFBpY2s8bGFtYmRhLkZ1bmN0aW9uT3B0aW9ucywgXCJ2cGNcIiB8IFwidnBjU3VibmV0c1wiIHwgXCJzZWN1cml0eUdyb3Vwc1wiPilcbiAgICAgICAgOiB7fSksXG4gICAgICBhbGxvd1B1YmxpY1N1Ym5ldDogcHJvcHM/LmFsbG93UHVibGljU3VibmV0LFxuICAgIH0pO1xuXG4gICAgaWYgKCFwcm9wcz8ubG9nR3JvdXApIHtcbiAgICAgIC8vIEJ5IGRlZmF1bHQsIExhbWJkYSBGdW5jdGlvbnMgaGF2ZSBhIGxvZyBncm91cCB3aXRoIG5ldmVyLWV4cGlyaW5nIHJldGVudGlvbiBwb2xpY3kuXG4gICAgICBuZXcgbG9ncy5Mb2dHcm91cCh0aGlzLCBcIkRlcGxveW1lbnRMb2dzXCIsIHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiBgL2F3cy9sYW1iZGEvJHtldmVudEhhbmRsZXIuZnVuY3Rpb25OYW1lfWAsXG4gICAgICAgIHJldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9NT05USCxcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogY2RrLlJlbW92YWxQb2xpY3kuUkVUQUlOX09OX1VQREFURV9PUl9ERUxFVEUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmRlcGxveW1lbnRSZXNvdXJjZVByb3ZpZGVyID0gbmV3IGNyLlByb3ZpZGVyKHRoaXMsIFwiQ3VzdG9tUmVzb3VyY2VQcm92aWRlclwiLCB7IG9uRXZlbnRIYW5kbGVyOiBldmVudEhhbmRsZXIgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVwbG95IGEgTGFtYmRhLWJhY2tlZCBSZXN0YXRlIGhhbmRsZXIgdG8gYSBnaXZlbiBlbnZpcm9ubWVudC5cbiAgICpcbiAgICogTm90ZSB0aGF0IGEgY2hhbmdlIGluIHRoZSBoYW5kbGVyIHByb3BlcnRpZXMgaXMgbmVjZXNzYXJ5IHRvIHRyaWdnZXIgcmUtZGlzY292ZXJ5IGR1ZSB0byBob3cgQ2xvdWRGb3JtYXRpb24gdXBkYXRlc1xuICAgKiB3b3JrLiBJZiB5b3UgZGVwbG95IGEgZml4ZWQgTGFtYmRhIGFsaWFzIHN1Y2ggYXMgYCRMQVRFU1RgIHdoaWNoIGlzbid0IGNoYW5naW5nIG9uIGV2ZXJ5IGhhbmRsZXIgY29kZSBvclxuICAgKiBjb25maWd1cmF0aW9uIHVwZGF0ZSwgeW91IHdpbGwgd2FudCB0byBzZXQgdGhlIGBjb25maWd1cmF0aW9uVmVyc2lvbmAgcHJvcGVydHkgaW4gYG9wdGlvbnNgIHRvIGEgbmV3IHZhbHVlIChlLmcuIGFcbiAgICogdGltZXN0YW1wKSB0byBlbnN1cmUgYW4gdXBkYXRlIHRvIHRoZSBSZXN0YXRlIGVudmlyb25tZW50IGlzIHRyaWdnZXJlZCBvbiBzdGFjayBkZXBsb3ltZW50LlxuICAgKlxuICAgKiBAcGFyYW0gaGFuZGxlciBzZXJ2aWNlIGhhbmRsZXIgLSBtdXN0IGJlIGEgc3BlY2lmaWMgZnVuY3Rpb24gdmVyc2lvbiwgdXNlIFwibGF0ZXN0XCIgaWYgeW91IGRvbid0IGNhcmUgYWJvdXQgZXhwbGljaXQgdmVyc2lvbmluZ1xuICAgKiBAcGFyYW0gZW52aXJvbm1lbnQgdGFyZ2V0IFJlc3RhdGUgZW52aXJvbm1lbnRcbiAgICogQHBhcmFtIG9wdGlvbnMgYWRkaXRpb25hbCBvcHRpb25zOyBzZWUgZmllbGQgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlsc1xuICAgKiBAc2VlIHtTZXJ2aWNlUmVnaXN0cmF0aW9uUHJvcHN9XG4gICAqL1xuICByZWdpc3RlcihoYW5kbGVyOiBsYW1iZGEuSVZlcnNpb24sIGVudmlyb25tZW50OiBJUmVzdGF0ZUVudmlyb25tZW50LCBvcHRpb25zPzogU2VydmljZVJlZ2lzdHJhdGlvblByb3BzKSB7XG4gICAgdGhpcy5yZWdpc3RlclNlcnZpY2VJbnRlcm5hbCh1bmRlZmluZWQsIGhhbmRsZXIsIGVudmlyb25tZW50LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXBsb3kgYSBMYW1iZGEtYmFja2VkIFJlc3RhdGUgaGFuZGxlciB0byBhIGdpdmVuIGVudmlyb25tZW50LCBlbnN1cmluZyB0aGF0IGEgcGFydGljdWxhciBzZXJ2aWNlIG5hbWUgZXhpc3RzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgYSBjaGFuZ2UgaW4gdGhlIGhhbmRsZXIgcHJvcGVydGllcyBpcyBuZWNlc3NhcnkgdG8gdHJpZ2dlciByZS1kaXNjb3ZlcnkgZHVlIHRvIGhvdyBDbG91ZEZvcm1hdGlvbiB1cGRhdGVzXG4gICAqIHdvcmsuIElmIHlvdSBkZXBsb3kgYSBmaXhlZCBMYW1iZGEgYWxpYXMgc3VjaCBhcyBgJExBVEVTVGAgd2hpY2ggaXNuJ3QgY2hhbmdpbmcgb24gZXZlcnkgaGFuZGxlciBjb2RlIG9yXG4gICAqIGNvbmZpZ3VyYXRpb24gdXBkYXRlLCB5b3Ugd2lsbCB3YW50IHRvIHNldCB0aGUgYGNvbmZpZ3VyYXRpb25WZXJzaW9uYCBwcm9wZXJ0eSBpbiBgb3B0aW9uc2AgdG8gYSBuZXcgdmFsdWUgKGUuZy4gYVxuICAgKiB0aW1lc3RhbXApIHRvIGVuc3VyZSBhbiB1cGRhdGUgdG8gdGhlIFJlc3RhdGUgZW52aXJvbm1lbnQgaXMgdHJpZ2dlcmVkIG9uIHN0YWNrIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBzZXJ2aWNlTmFtZSB0aGUgc2VydmljZSBuYW1lIHdpdGhpbiBSZXN0YXRlIC0gYXMgYSBzYWZldHkgbWVjaGFuaXNtLCB0aGlzIG11c3QgbWF0Y2ggdGhlIHNlcnZpY2Unc1xuICAgKiAgICAgICAgc2VsZi1yZXBvcnRlZCBuYW1lIGR1cmluZyBkaXNjb3Zlcnk7IGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBzZXJ2aWNlcywgb25lIG9mIHRoZW0gbXVzdCBtYXRjaCBvciB0aGVcbiAgICogICAgICAgIGRlcGxveW1lbnQgZmFpbHNcbiAgICogQHBhcmFtIGhhbmRsZXIgc2VydmljZSBoYW5kbGVyIC0gbXVzdCBiZSBhIHNwZWNpZmljIGZ1bmN0aW9uIHZlcnNpb24sIHVzZSBcImxhdGVzdFwiIGlmIHlvdSBkb24ndCBjYXJlIGFib3V0IGV4cGxpY2l0IHZlcnNpb25pbmdcbiAgICogQHBhcmFtIGVudmlyb25tZW50IHRhcmdldCBSZXN0YXRlIGVudmlyb25tZW50XG4gICAqIEBwYXJhbSBvcHRpb25zIGFkZGl0aW9uYWwgb3B0aW9uczsgc2VlIGZpZWxkIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHNcbiAgICovXG4gIGRlcGxveVNlcnZpY2UoXG4gICAgc2VydmljZU5hbWU6IHN0cmluZyxcbiAgICBoYW5kbGVyOiBsYW1iZGEuSVZlcnNpb24sXG4gICAgZW52aXJvbm1lbnQ6IElSZXN0YXRlRW52aXJvbm1lbnQsXG4gICAgb3B0aW9ucz86IFNlcnZpY2VSZWdpc3RyYXRpb25Qcm9wcyxcbiAgKSB7XG4gICAgdGhpcy5yZWdpc3RlclNlcnZpY2VJbnRlcm5hbChzZXJ2aWNlTmFtZSwgaGFuZGxlciwgZW52aXJvbm1lbnQsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlclNlcnZpY2VJbnRlcm5hbChcbiAgICBzZXJ2aWNlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGhhbmRsZXI6IGxhbWJkYS5JVmVyc2lvbixcbiAgICBlbnZpcm9ubWVudDogSVJlc3RhdGVFbnZpcm9ubWVudCxcbiAgICBvcHRpb25zPzogU2VydmljZVJlZ2lzdHJhdGlvblByb3BzLFxuICApIHtcbiAgICBjb25zdCBhdXRoVG9rZW4gPSBvcHRpb25zPy5hdXRoVG9rZW4gPz8gZW52aXJvbm1lbnQuYXV0aFRva2VuO1xuICAgIGF1dGhUb2tlbj8uZ3JhbnRSZWFkKHRoaXMuZGVwbG95bWVudFJlc291cmNlUHJvdmlkZXIub25FdmVudEhhbmRsZXIpO1xuXG4gICAgY29uc3QgZGVwbG95bWVudCA9IG5ldyBjZGsuQ3VzdG9tUmVzb3VyY2UoaGFuZGxlciwgXCJSZXN0YXRlRGVwbG95bWVudFwiLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHRoaXMuZGVwbG95bWVudFJlc291cmNlUHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6UmVzdGF0ZVNlcnZpY2VEZXBsb3ltZW50XCIsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHNlcnZpY2VQYXRoOiBzZXJ2aWNlTmFtZSxcbiAgICAgICAgYWRtaW5Vcmw6IG9wdGlvbnM/LmFkbWluVXJsID8/IGVudmlyb25tZW50LmFkbWluVXJsLFxuICAgICAgICBhdXRoVG9rZW5TZWNyZXRBcm46IGF1dGhUb2tlbj8uc2VjcmV0QXJuLFxuICAgICAgICBzZXJ2aWNlTGFtYmRhQXJuOiBoYW5kbGVyLmZ1bmN0aW9uQXJuLFxuICAgICAgICBpbnZva2VSb2xlQXJuOiBlbnZpcm9ubWVudC5pbnZva2VyUm9sZT8ucm9sZUFybixcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogY2RrLlJlbW92YWxQb2xpY3kuUkVUQUlOLFxuICAgICAgICBwcml2YXRlOiAob3B0aW9ucz8ucHJpdmF0ZSA/PyBmYWxzZSkudG9TdHJpbmcoKSBhcyBcInRydWVcIiB8IFwiZmFsc2VcIixcbiAgICAgICAgY29uZmlndXJhdGlvblZlcnNpb246XG4gICAgICAgICAgb3B0aW9ucz8uY29uZmlndXJhdGlvblZlcnNpb24gfHwgaGFuZGxlci5mdW5jdGlvbkFybi5lbmRzV2l0aChcIjokTEFURVNUXCIpXG4gICAgICAgICAgICA/IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIGluc2VjdXJlOiAob3B0aW9ucz8uaW5zZWN1cmUgPz8gZmFsc2UpLnRvU3RyaW5nKCkgYXMgXCJ0cnVlXCIgfCBcImZhbHNlXCIsXG4gICAgICB9IHNhdGlzZmllcyBSZWdpc3RyYXRpb25Qcm9wZXJ0aWVzLFxuICAgIH0pO1xuXG4gICAgaWYgKGVudmlyb25tZW50Lmludm9rZXJSb2xlICYmICFvcHRpb25zPy5za2lwSW52b2tlRnVuY3Rpb25HcmFudCkge1xuICAgICAgLy8gV2UgY3JlYXRlIGEgc2VwYXJhdGUgcG9saWN5IHdoaWNoIHdlJ2xsIGF0dGFjaCB0byB0aGUgcHJvdmlkZWQgaW52b2tlciByb2xlLiBUaGlzIGJyZWFrcyBhIGNpcmN1bGFyIGNyb3NzLXN0YWNrXG4gICAgICAvLyBkZXBlbmRlbmN5IHRoYXQgd291bGQgb3RoZXJ3aXNlIGJlIGNyZWF0ZWQgYmV0d2VlbiB0aGUgc2VydmljZSBkZXBsb3llciBhbmQgdGhlIGludm9rZXIgcm9sZS5cbiAgICAgIGlmICghdGhpcy5pbnZvY2F0aW9uUG9saWN5KSB7XG4gICAgICAgIHRoaXMuaW52b2NhdGlvblBvbGljeSA9IG5ldyBpYW0uUG9saWN5KHRoaXMsIFwiSW52b2NhdGlvblBvbGljeVwiKTtcbiAgICAgICAgLy8gRGVzcGl0ZSB0aGUgQVJOIHJlZmVyZW5jZSBhYm92ZSwgQ2xvdWRGb3JtYXRpb24gc29tZXRpbWVzIHRyaWVzIHRvIGludm9rZSB0aGUgY3VzdG9tIHJlc291cmNlIGhhbmRsZXIgYmVmb3JlXG4gICAgICAgIC8vIGFsbCBwZXJtaXNzaW9ucyBhcmUgYXBwbGllZC4gQWRkaW5nIGFuIGV4cGxpY2l0IGRlcGVuZGVuY3kgaW5jbHVkZXMgYSBkZXBlbmRlbmN5IG9uIGFueSBwZW5kaW5nIHBvbGljeSB1cGRhdGVzXG4gICAgICAgIC8vIGRlZmluZWQgaW4gdGhlIHNhbWUgc3RhY2sgYXMgdGhlIHNlcnZpY2UgZGVwbG95ZXIsIHdoaWNoIHNlZW1zIHRvIGhlbHAuIFNvbWUgcHJvcGFnYXRpb24gZGVsYXkgbWlnaHQgc3RpbGwgbWVhblxuICAgICAgICAvLyB3ZSBsZWFuIG9uIHJldHJpZXMgaW4gdGhlIGRlcGxveWVyIGV2ZW50IGhhbmRsZXIgaW4gYW55IGV2ZW50IGJ1dCB0aGlzIHJlZHVjZXMgdGhlIHByb2JhYmlsaXR5IG9mIGZhaWx1cmUuXG4gICAgICAgIGRlcGxveW1lbnQubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMuaW52b2NhdGlvblBvbGljeSk7XG4gICAgICAgIHRoaXMuaW52b2NhdGlvblBvbGljeS5hdHRhY2hUb1JvbGUoZW52aXJvbm1lbnQuaW52b2tlclJvbGUpO1xuICAgICAgfVxuICAgICAgdGhpcy5pbnZvY2F0aW9uUG9saWN5LmFkZFN0YXRlbWVudHMoXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25cIl0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBoYW5kbGVyLmxhbWJkYS5yZXNvdXJjZUFybnNGb3JHcmFudEludm9rZSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1kZXBsb3llci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9yZXN0YXRlLWNvbnN0cnVjdHMvc2VydmljZS1kZXBsb3llci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCwwREFBNkI7QUFDN0IsMkNBQXVDO0FBQ3ZDLGlEQUFtQztBQUNuQyxpRUFBbUQ7QUFDbkQseURBQTJDO0FBQzNDLCtEQUFpRDtBQUNqRCwyRUFBNkQ7QUFDN0QsMkRBQTZDO0FBSzdDLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBNkNsRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsc0JBQVM7SUFPNUMsWUFDRSxLQUFnQixFQUNoQixFQUFVO0lBQ1Y7OztPQUdHO0lBQ0gsS0FnQjJDO1FBRTNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUN2RSxZQUFZLEVBQUUsS0FBSyxFQUFFLFlBQVk7WUFDakMsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRO1lBQ3pCLFdBQVcsRUFBRSxxQ0FBcUM7WUFDbEQsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLElBQUksbUJBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLG1DQUFtQyxDQUFDO1lBQ2hGLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUMvRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDckQsVUFBVSxFQUFFLEdBQUc7WUFDZixPQUFPLEVB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eXJpZ2h0IChjKSAyMDIzLTIwMjUgLSBSZXN0YXRlIFNvZnR3YXJlLCBJbmMuLCBSZXN0YXRlIEdtYkhcbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgUmVzdGF0ZSBDREsgQ29uc3RydWN0IExpYnJhcnksXG4gKiB3aGljaCBpcyByZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKlxuICogWW91IGNhbiBmaW5kIGEgY29weSBvZiB0aGUgbGljZW5zZSBpbiBmaWxlIExJQ0VOU0UgaW4gdGhlIHJvb3RcbiAqIGRpcmVjdG9yeSBvZiB0aGlzIHJlcG9zaXRvcnkgb3IgcGFja2FnZSwgb3IgYXRcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9yZXN0YXRlZGV2L3Nkay10eXBlc2NyaXB0L2Jsb2IvbWFpbi9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIGNyIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0ICogYXMgbGFtYmRhX25vZGUgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzXCI7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0ICogYXMgc2VjcmV0cyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5pbXBvcnQgeyBJUmVzdGF0ZUVudmlyb25tZW50IH0gZnJvbSBcIi4vcmVzdGF0ZS1lbnZpcm9ubWVudFwiO1xuaW1wb3J0IHsgUmVnaXN0cmF0aW9uUHJvcGVydGllcyB9IGZyb20gXCIuL3JlZ2lzdGVyLXNlcnZpY2UtaGFuZGxlclwiO1xuXG5jb25zdCBERUZBVUxUX1RJTUVPVVQgPSBjZGsuRHVyYXRpb24uc2Vjb25kcygxODApO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VSZWdpc3RyYXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IEFSTiBmb3IgdGhlIGF1dGhlbnRpY2F0aW9uIHRva2VuIHRvIHVzZSB3aGVuIGNhbGxpbmcgdGhlIGFkbWluIEFQSS4gVGFrZXMgcHJlY2VkZW5jZVxuICAgKiBvdmVyIHRoZSBlbnZpcm9ubWVudCdzIHRva2VuLlxuICAgKi9cbiAgYXV0aFRva2VuPzogc2VjcmV0cy5JU2VjcmV0O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNraXAgZ3JhbnRpbmcgdGhlIGludm9rZXIgcm9sZSBwZXJtaXNzaW9uIHRvIGludm9rZSB0aGUgc2VydmljZSBoYW5kbGVyLiBUaGUgZGVwbG95ZXIgYnkgZGVmYXVsdFxuICAgKiB3aWxsIGdyYW50IHRoZSBpbnZva2VyIHJvbGUgcGVybWlzc2lvbiB0byBpbnZva2UgdGhlIGhhbmRsZXIsIGJ1dCB5b3UgY2FuIHNldCB0aGlzIHRvIGB0cnVlYCB0byBoYW5kbGUgdGhpc1xuICAgKiBtYW51YWxseS5cbiAgICovXG4gIHNraXBJbnZva2VGdW5jdGlvbkdyYW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJpdmF0ZSBzZXJ2aWNlcyBhcmUgb25seSBhdmFpbGFibGUgdG8gb3RoZXIgUmVzdGF0ZSBzZXJ2aWNlcyBpbiB0aGUgc2FtZSBlbnZpcm9ubWVudCwgYW5kIGFyZSBub3QgYWNjZXNzaWJsZSBmb3JcbiAgICogaW5ncmVzcy1iYXNlZCBpbnZvY2F0aW9uLiBJZiBtdWx0aXBsZSBzZXJ2aWNlcyBhcmUgZXhwb3NlZCBieSB0aGUgc2FtZSBoYW5kbGVyLCBhbGwgb2YgdGhlbSB3aWxsIGJlIHVwZGF0ZWQuXG4gICAqIERlZmF1bHQ6IGBmYWxzZWAsIGkuZS4gc2VydmljZXMgd2lsbCBiZSBtYWRlIHB1YmxpYyBhbmQgcmVhY2hhYmxlIHZpYSBpbmdyZXNzIGJ5IGRlZmF1bHQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnJlc3RhdGUuZGV2L29wZXJhdGUvcmVnaXN0cmF0aW9uI3ByaXZhdGUtc2VydmljZXNcbiAgICovXG4gIHByaXZhdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIGR1bW15IHBhcmFtZXRlciB0byBmb3JjZSBDbG91ZEZvcm1hdGlvbiB0byB1cGRhdGUgdGhlIGRlcGxveW1lbnQgd2hlbiB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLiBVc2VmdWwgaWZcbiAgICogeW91IHdhbnQgdG8gdGFyZ2V0IHRoZSBcImxhdGVzdCB2ZXJzaW9uXCIgb2YgYSBzZXJ2aWNlIGhhbmRsZXIgYW5kIG5lZWQgdG8gZm9yY2UgYSBkZXBsb3ltZW50IGluIG9yZGVyIHRvIHRyaWdnZXJcbiAgICogZGlzY292ZXJ5LiBTZXQgdGhpcyB0byBhIG5ldyB2YWx1ZSBldmVyeSB0aW1lIHlvdSB3YW50IHRvIGZvcmNlIGEgc2VydmljZSByZWdpc3RyYXRpb24gdG8gaGFwcGVuLCBlLmcuIGEgdGltZXN0YW1wLlxuICAgKi9cbiAgY29uZmlndXJhdGlvblZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFjY2VwdCBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZXMuXG4gICAqL1xuICBpbnNlY3VyZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgYSBjdXN0b20gYWRtaW4gZW5kcG9pbnQgVVJMLCBvdmVycmlkaW5nIHRoZSBvbmUgZXhwb3NlZCBieSB0aGUgdGFyZ2V0IGVudmlyb25tZW50LiBZb3UgbWF5IG5lZWQgdGhpcyBpZlxuICAgKiB0aGUgYEVudmlyb25tZW50YCBjb25zdHJ1Y3QgaXMgcmVwb3J0aW5nIGEgZGlmZmVyZW50IFVSTCBmcm9tIHRoZSBvbmUgdGhhdCB0aGUgZGVwbG95ZXIgY2FuIHJlYWNoLCBlLmcuIGlmIHlvdXJcbiAgICogUmVzdGF0ZSBzZXJ2aWNlIGlzIGJlaGluZCBhIGxvYWQgYmFsYW5jZXIuXG4gICAqL1xuICBhZG1pblVybD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBMYW1iZGEtYmFja2VkIHJlc3RhdGUgc2VydmljZXMgd2l0aCBSZXN0YXRlIGVudmlyb25tZW50cy5cbiAqXG4gKiBZb3UgY2FuIHJldXNlIHRoZSBzYW1lIGRlcGxveWVyIHRvIHJlZ2lzdGVyIHRoZSBzZXJ2aWNlcyBleHBvc2VkIGJ5IG11bHRpcGxlIGhhbmRsZXJzLiBZb3UgY2FuIGFsc28gcmV1c2UgdGhlXG4gKiBkZXBsb3llciB0byB0YXJnZXQgbXVsdGlwbGUgUmVzdGF0ZSBlbnZpcm9ubWVudHMsIHByb3ZpZGVkIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIGNvbXBhdGlibGUgKGUuZy4gdGhlIFJlc3RhdGVcbiAqIGVudmlyb25tZW50cyBpdCBuZWVkcyB0byBjb21tdW5pY2F0ZSB3aXRoIGFyZSBhbGwgYWNjZXNzaWJsZSBmcm9tIHRoZSBzYW1lIFZQQyBhbmQgU2VjdXJpdHkgR3JvdXBzLCBhY2NlcHQgdGhlIHNhbWVcbiAqIGF1dGhlbnRpY2F0aW9uIHRva2VuLCBhbmQgc28gb24pLiBDb252ZXJzZWx5LCB5b3UgY2FuIGNyZWF0ZSBtdWx0aXBsZSBkZXBsb3llcnMgaW4gY2FzZXMgd2hlbiB5b3UgbmVlZCB0byBkZXBsb3kgdG9cbiAqIG11bHRpcGxlIGVudmlyb25tZW50cyB0aGF0IHJlcXVpcmUgZGlzdGluY3QgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBEZXBsb3ltZW50IGxvZ3MgYXJlIHJldGFpbmVkIGZvciAzMCBkYXlzIGJ5IGRlZmF1bHQuXG4gKlxuICogQHNlZSB7cmVnaXN0ZXJ9XG4gKi9cbmV4cG9ydCBjbGFzcyBTZXJ2aWNlRGVwbG95ZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKiogVGhlIGN1c3RvbSByZXNvdXJjZSBwcm92aWRlciBmb3IgaGFuZGxpbmcgXCJkZXBsb3ltZW50XCIgcmVzb3VyY2VzLiAqL1xuICByZWFkb25seSBkZXBsb3ltZW50UmVzb3VyY2VQcm92aWRlcjogY3IuUHJvdmlkZXI7XG4gIHJlYWRvbmx5IGV2ZW50SGFuZGxlcjogbGFtYmRhX25vZGUuTm9kZWpzRnVuY3Rpb247XG5cbiAgcHJpdmF0ZSBpbnZvY2F0aW9uUG9saWN5PzogaWFtLlBvbGljeTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogQWxsb3dzIHRoZSBjdXN0b20gcmVzb3VyY2UgZXZlbnQgaGFuZGxlciBwcm9wZXJ0aWVzIHRvIGJlIG92ZXJyaWRkZW4uIFRoZSBtYWluIHVzZSBjYXNlIGZvciB0aGlzIGlzIHNwZWNpZnlpbmdcbiAgICAgKiBWUEMgYW5kIHNlY3VyaXR5IGdyb3VwIHNldHRpbmdzIGZvciBSZXN0YXRlIGVudmlyb25tZW50cyB0aGF0IHJlcXVpcmUgaXQuXG4gICAgICovXG4gICAgcHJvcHM/OiBQaWNrPFxuICAgICAgbGFtYmRhX25vZGUuTm9kZWpzRnVuY3Rpb25Qcm9wcyxcbiAgICAgIHwgXCJhbGxvd1B1YmxpY1N1Ym5ldFwiXG4gICAgICB8IFwiYXJjaGl0ZWN0dXJlXCJcbiAgICAgIHwgXCJydW50aW1lXCJcbiAgICAgIHwgXCJidW5kbGluZ1wiXG4gICAgICB8IFwiZGVwc0xvY2tGaWxlUGF0aFwiXG4gICAgICB8IFwiY29kZVwiXG4gICAgICB8IFwiZW50cnlcIlxuICAgICAgfCBcImZ1bmN0aW9uTmFtZVwiXG4gICAgICB8IFwibG9nR3JvdXBcIlxuICAgICAgfCBcInNlY3VyaXR5R3JvdXBzXCJcbiAgICAgIHwgXCJ0aW1lb3V0XCJcbiAgICAgIHwgXCJ2cGNcIlxuICAgICAgfCBcInZwY1N1Ym5ldHNcIlxuICAgID4gJlxuICAgICAgUGljazxsb2dzLkxvZ0dyb3VwUHJvcHMsIFwicmVtb3ZhbFBvbGljeVwiPixcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuZXZlbnRIYW5kbGVyID0gbmV3IGxhbWJkYV9ub2RlLk5vZGVqc0Z1bmN0aW9uKHRoaXMsIFwiRXZlbnRIYW5kbGVyXCIsIHtcbiAgICAgIGZ1bmN0aW9uTmFtZTogcHJvcHM/LmZ1bmN0aW9uTmFtZSxcbiAgICAgIGxvZ0dyb3VwOiBwcm9wcz8ubG9nR3JvdXAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJSZXN0YXRlIGN1c3RvbSByZWdpc3RyYXRpb24gaGFuZGxlclwiLFxuICAgICAgZW50cnk6IHByb3BzPy5lbnRyeSA/PyBwYXRoLmpvaW4oX19kaXJuYW1lLCBcInJlZ2lzdGVyLXNlcnZpY2UtaGFuZGxlci9pbmRleC5qc1wiKSxcbiAgICAgIGFyY2hpdGVjdHVyZTogcHJvcHM/LmFyY2hpdGVjdHVyZSA/PyBsYW1iZGEuQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgIHJ1bnRpbWU6IHByb3BzPy5ydW50aW1lID8/IGxhbWJkYS5SdW50aW1lLk5PREVKU18yMl9YLFxuICAgICAgbWVtb3J5U2l6ZTogMTI4LFxuICAgICAgdGltZW91dDogcHJvcHM/LnRpbWVvdXQgPz8gREVGQVVMVF9USU1FT1VULFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgTk9ERV9PUFRJT05TOiBcIi0tZW5hYmxlLXNvdXJjZS1tYXBzXCIsXG4gICAgICB9LFxuICAgICAgYnVuZGxpbmc6IHByb3BzPy5idW5kbGluZyA/PyB7XG4gICAgICAgIG1pbmlmeTogZmFsc2UsXG4gICAgICAgIHNvdXJjZU1hcDogdHJ1ZSxcbiAgICAgICAgZXh0ZXJuYWxNb2R1bGVzOiBbXCJAYXdzLXNkay8qXCJdLFxuICAgICAgICBwbGF0Zm9ybTogXCJub2RlXCIsXG4gICAgICAgIHRhcmdldDogXCJub2RlMjJcIixcbiAgICAgIH0sXG4gICAgICBkZXBzTG9ja0ZpbGVQYXRoOiBwcm9wcz8uZGVwc0xvY2tGaWxlUGF0aCxcbiAgICAgIC4uLihwcm9wcz8udnBjXG4gICAgICAgID8gKHtcbiAgICAgICAgICAgIHZwYzogcHJvcHM/LnZwYyxcbiAgICAgICAgICAgIHZwY1N1Ym5ldHM6IHByb3BzPy52cGNTdWJuZXRzLFxuICAgICAgICAgICAgc2VjdXJpdHlHcm91cHM6IHByb3BzPy5zZWN1cml0eUdyb3VwcyxcbiAgICAgICAgICB9IHNhdGlzZmllcyBQaWNrPGxhbWJkYS5GdW5jdGlvbk9wdGlvbnMsIFwidnBjXCIgfCBcInZwY1N1Ym5ldHNcIiB8IFwic2VjdXJpdHlHcm91cHNcIj4pXG4gICAgICAgIDoge30pLFxuICAgICAgYWxsb3dQdWJsaWNTdWJuZXQ6IHByb3BzPy5hbGxvd1B1YmxpY1N1Ym5ldCxcbiAgICB9KTtcblxuICAgIGlmICghcHJvcHM/LmxvZ0dyb3VwKSB7XG4gICAgICAvLyBCeSBkZWZhdWx0LCBMYW1iZGEgRnVuY3Rpb25zIGhhdmUgYSBsb2cgZ3JvdXAgd2l0aCBuZXZlci1leHBpcmluZyByZXRlbnRpb24gcG9saWN5LlxuICAgICAgbmV3IGxvZ3MuTG9nR3JvdXAodGhpcywgXCJEZXBsb3ltZW50TG9nc1wiLCB7XG4gICAgICAgIGxvZ0dyb3VwTmFtZTogYC9hd3MvbGFtYmRhLyR7dGhpcy5ldmVudEhhbmRsZXIuZnVuY3Rpb25OYW1lfWAsXG4gICAgICAgIHJldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9NT05USCxcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogcHJvcHM/LnJlbW92YWxQb2xpY3kgPz8gY2RrLlJlbW92YWxQb2xpY3kuUkVUQUlOX09OX1VQREFURV9PUl9ERUxFVEUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmRlcGxveW1lbnRSZXNvdXJjZVByb3ZpZGVyID0gbmV3IGNyLlByb3ZpZGVyKHRoaXMsIFwiQ3VzdG9tUmVzb3VyY2VQcm92aWRlclwiLCB7XG4gICAgICBvbkV2ZW50SGFuZGxlcjogdGhpcy5ldmVudEhhbmRsZXIsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVwbG95IGEgTGFtYmRhLWJhY2tlZCBSZXN0YXRlIGhhbmRsZXIgdG8gYSBnaXZlbiBlbnZpcm9ubWVudC5cbiAgICpcbiAgICogTm90ZSB0aGF0IGEgY2hhbmdlIGluIHRoZSBoYW5kbGVyIHByb3BlcnRpZXMgaXMgbmVjZXNzYXJ5IHRvIHRyaWdnZXIgcmUtZGlzY292ZXJ5IGR1ZSB0byBob3cgQ2xvdWRGb3JtYXRpb24gdXBkYXRlc1xuICAgKiB3b3JrLiBJZiB5b3UgZGVwbG95IGEgZml4ZWQgTGFtYmRhIGFsaWFzIHN1Y2ggYXMgYCRMQVRFU1RgIHdoaWNoIGlzbid0IGNoYW5naW5nIG9uIGV2ZXJ5IGhhbmRsZXIgY29kZSBvclxuICAgKiBjb25maWd1cmF0aW9uIHVwZGF0ZSwgeW91IHdpbGwgd2FudCB0byBzZXQgdGhlIGBjb25maWd1cmF0aW9uVmVyc2lvbmAgcHJvcGVydHkgaW4gYG9wdGlvbnNgIHRvIGEgbmV3IHZhbHVlIChlLmcuIGFcbiAgICogdGltZXN0YW1wKSB0byBlbnN1cmUgYW4gdXBkYXRlIHRvIHRoZSBSZXN0YXRlIGVudmlyb25tZW50IGlzIHRyaWdnZXJlZCBvbiBzdGFjayBkZXBsb3ltZW50LlxuICAgKlxuICAgKiBAcGFyYW0gaGFuZGxlciBzZXJ2aWNlIGhhbmRsZXIgLSBtdXN0IGJlIGEgc3BlY2lmaWMgZnVuY3Rpb24gdmVyc2lvbiwgdXNlIFwibGF0ZXN0XCIgaWYgeW91IGRvbid0IGNhcmUgYWJvdXQgZXhwbGljaXQgdmVyc2lvbmluZ1xuICAgKiBAcGFyYW0gZW52aXJvbm1lbnQgdGFyZ2V0IFJlc3RhdGUgZW52aXJvbm1lbnRcbiAgICogQHBhcmFtIG9wdGlvbnMgYWRkaXRpb25hbCBvcHRpb25zOyBzZWUgZmllbGQgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlsc1xuICAgKiBAc2VlIHtTZXJ2aWNlUmVnaXN0cmF0aW9uUHJvcHN9XG4gICAqL1xuICByZWdpc3RlcihoYW5kbGVyOiBsYW1iZGEuSVZlcnNpb24sIGVudmlyb25tZW50OiBJUmVzdGF0ZUVudmlyb25tZW50LCBvcHRpb25zPzogU2VydmljZVJlZ2lzdHJhdGlvblByb3BzKSB7XG4gICAgdGhpcy5yZWdpc3RlclNlcnZpY2VJbnRlcm5hbCh1bmRlZmluZWQsIGhhbmRsZXIsIGVudmlyb25tZW50LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXBsb3kgYSBMYW1iZGEtYmFja2VkIFJlc3RhdGUgaGFuZGxlciB0byBhIGdpdmVuIGVudmlyb25tZW50LCBlbnN1cmluZyB0aGF0IGEgcGFydGljdWxhciBzZXJ2aWNlIG5hbWUgZXhpc3RzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgYSBjaGFuZ2UgaW4gdGhlIGhhbmRsZXIgcHJvcGVydGllcyBpcyBuZWNlc3NhcnkgdG8gdHJpZ2dlciByZS1kaXNjb3ZlcnkgZHVlIHRvIGhvdyBDbG91ZEZvcm1hdGlvbiB1cGRhdGVzXG4gICAqIHdvcmsuIElmIHlvdSBkZXBsb3kgYSBmaXhlZCBMYW1iZGEgYWxpYXMgc3VjaCBhcyBgJExBVEVTVGAgd2hpY2ggaXNuJ3QgY2hhbmdpbmcgb24gZXZlcnkgaGFuZGxlciBjb2RlIG9yXG4gICAqIGNvbmZpZ3VyYXRpb24gdXBkYXRlLCB5b3Ugd2lsbCB3YW50IHRvIHNldCB0aGUgYGNvbmZpZ3VyYXRpb25WZXJzaW9uYCBwcm9wZXJ0eSBpbiBgb3B0aW9uc2AgdG8gYSBuZXcgdmFsdWUgKGUuZy4gYVxuICAgKiB0aW1lc3RhbXApIHRvIGVuc3VyZSBhbiB1cGRhdGUgdG8gdGhlIFJlc3RhdGUgZW52aXJvbm1lbnQgaXMgdHJpZ2dlcmVkIG9uIHN0YWNrIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBzZXJ2aWNlTmFtZSB0aGUgc2VydmljZSBuYW1lIHdpdGhpbiBSZXN0YXRlIC0gYXMgYSBzYWZldHkgbWVjaGFuaXNtLCB0aGlzIG11c3QgbWF0Y2ggdGhlIHNlcnZpY2Unc1xuICAgKiAgICAgICAgc2VsZi1yZXBvcnRlZCBuYW1lIGR1cmluZyBkaXNjb3Zlcnk7IGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBzZXJ2aWNlcywgb25lIG9mIHRoZW0gbXVzdCBtYXRjaCBvciB0aGVcbiAgICogICAgICAgIGRlcGxveW1lbnQgZmFpbHNcbiAgICogQHBhcmFtIGhhbmRsZXIgc2VydmljZSBoYW5kbGVyIC0gbXVzdCBiZSBhIHNwZWNpZmljIGZ1bmN0aW9uIHZlcnNpb24sIHVzZSBcImxhdGVzdFwiIGlmIHlvdSBkb24ndCBjYXJlIGFib3V0IGV4cGxpY2l0IHZlcnNpb25pbmdcbiAgICogQHBhcmFtIGVudmlyb25tZW50IHRhcmdldCBSZXN0YXRlIGVudmlyb25tZW50XG4gICAqIEBwYXJhbSBvcHRpb25zIGFkZGl0aW9uYWwgb3B0aW9uczsgc2VlIGZpZWxkIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHNcbiAgICovXG4gIGRlcGxveVNlcnZpY2UoXG4gICAgc2VydmljZU5hbWU6IHN0cmluZyxcbiAgICBoYW5kbGVyOiBsYW1iZGEuSVZlcnNpb24sXG4gICAgZW52aXJvbm1lbnQ6IElSZXN0YXRlRW52aXJvbm1lbnQsXG4gICAgb3B0aW9ucz86IFNlcnZpY2VSZWdpc3RyYXRpb25Qcm9wcyxcbiAgKSB7XG4gICAgdGhpcy5yZWdpc3RlclNlcnZpY2VJbnRlcm5hbChzZXJ2aWNlTmFtZSwgaGFuZGxlciwgZW52aXJvbm1lbnQsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlclNlcnZpY2VJbnRlcm5hbChcbiAgICBzZXJ2aWNlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGhhbmRsZXI6IGxhbWJkYS5JVmVyc2lvbixcbiAgICBlbnZpcm9ubWVudDogSVJlc3RhdGVFbnZpcm9ubWVudCxcbiAgICBvcHRpb25zPzogU2VydmljZVJlZ2lzdHJhdGlvblByb3BzLFxuICApIHtcbiAgICBjb25zdCBhdXRoVG9rZW4gPSBvcHRpb25zPy5hdXRoVG9rZW4gPz8gZW52aXJvbm1lbnQuYXV0aFRva2VuO1xuICAgIGF1dGhUb2tlbj8uZ3JhbnRSZWFkKHRoaXMuZGVwbG95bWVudFJlc291cmNlUHJvdmlkZXIub25FdmVudEhhbmRsZXIpO1xuXG4gICAgY29uc3QgZGVwbG95bWVudCA9IG5ldyBjZGsuQ3VzdG9tUmVzb3VyY2UoaGFuZGxlciwgXCJSZXN0YXRlRGVwbG95bWVudFwiLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHRoaXMuZGVwbG95bWVudFJlc291cmNlUHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6UmVzdGF0ZVNlcnZpY2VEZXBsb3ltZW50XCIsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHNlcnZpY2VQYXRoOiBzZXJ2aWNlTmFtZSxcbiAgICAgICAgYWRtaW5Vcmw6IG9wdGlvbnM/LmFkbWluVXJsID8/IGVudmlyb25tZW50LmFkbWluVXJsLFxuICAgICAgICBhdXRoVG9rZW5TZWNyZXRBcm46IGF1dGhUb2tlbj8uc2VjcmV0QXJuLFxuICAgICAgICBzZXJ2aWNlTGFtYmRhQXJuOiBoYW5kbGVyLmZ1bmN0aW9uQXJuLFxuICAgICAgICBpbnZva2VSb2xlQXJuOiBlbnZpcm9ubWVudC5pbnZva2VyUm9sZT8ucm9sZUFybixcbiAgICAgICAgLy8gcmVtb3ZhbFBvbGljeTogXCJyZXRhaW5cIixcbiAgICAgICAgcHJpdmF0ZTogKG9wdGlvbnM/LnByaXZhdGUgPz8gZmFsc2UpLnRvU3RyaW5nKCkgYXMgXCJ0cnVlXCIgfCBcImZhbHNlXCIsXG4gICAgICAgIGNvbmZpZ3VyYXRpb25WZXJzaW9uOlxuICAgICAgICAgIG9wdGlvbnM/LmNvbmZpZ3VyYXRpb25WZXJzaW9uIHx8IGhhbmRsZXIuZnVuY3Rpb25Bcm4uZW5kc1dpdGgoXCI6JExBVEVTVFwiKVxuICAgICAgICAgICAgPyBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICBpbnNlY3VyZTogKG9wdGlvbnM/Lmluc2VjdXJlID8/IGZhbHNlKS50b1N0cmluZygpIGFzIFwidHJ1ZVwiIHwgXCJmYWxzZVwiLFxuICAgICAgfSBzYXRpc2ZpZXMgUmVnaXN0cmF0aW9uUHJvcGVydGllcyxcbiAgICB9KTtcblxuICAgIGlmIChlbnZpcm9ubWVudC5pbnZva2VyUm9sZSAmJiAhb3B0aW9ucz8uc2tpcEludm9rZUZ1bmN0aW9uR3JhbnQpIHtcbiAgICAgIC8vIFdlIGNyZWF0ZSBhIHNlcGFyYXRlIHBvbGljeSB3aGljaCB3ZSdsbCBhdHRhY2ggdG8gdGhlIHByb3ZpZGVkIGludm9rZXIgcm9sZS4gVGhpcyBicmVha3MgYSBjaXJjdWxhciBjcm9zcy1zdGFja1xuICAgICAgLy8gZGVwZW5kZW5jeSB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBjcmVhdGVkIGJldHdlZW4gdGhlIHNlcnZpY2UgZGVwbG95ZXIgYW5kIHRoZSBpbnZva2VyIHJvbGUuXG4gICAgICBpZiAoIXRoaXMuaW52b2NhdGlvblBvbGljeSkge1xuICAgICAgICB0aGlzLmludm9jYXRpb25Qb2xpY3kgPSBuZXcgaWFtLlBvbGljeSh0aGlzLCBcIkludm9jYXRpb25Qb2xpY3lcIik7XG4gICAgICAgIC8vIERlc3BpdGUgdGhlIEFSTiByZWZlcmVuY2UgYWJvdmUsIENsb3VkRm9ybWF0aW9uIHNvbWV0aW1lcyB0cmllcyB0byBpbnZva2UgdGhlIGN1c3RvbSByZXNvdXJjZSBoYW5kbGVyIGJlZm9yZVxuICAgICAgICAvLyBhbGwgcGVybWlzc2lvbnMgYXJlIGFwcGxpZWQuIEFkZGluZyBhbiBleHBsaWNpdCBkZXBlbmRlbmN5IGluY2x1ZGVzIGEgZGVwZW5kZW5jeSBvbiBhbnkgcGVuZGluZyBwb2xpY3kgdXBkYXRlc1xuICAgICAgICAvLyBkZWZpbmVkIGluIHRoZSBzYW1lIHN0YWNrIGFzIHRoZSBzZXJ2aWNlIGRlcGxveWVyLCB3aGljaCBzZWVtcyB0byBoZWxwLiBTb21lIHByb3BhZ2F0aW9uIGRlbGF5IG1pZ2h0IHN0aWxsIG1lYW5cbiAgICAgICAgLy8gd2UgbGVhbiBvbiByZXRyaWVzIGluIHRoZSBkZXBsb3llciBldmVudCBoYW5kbGVyIGluIGFueSBldmVudCBidXQgdGhpcyByZWR1Y2VzIHRoZSBwcm9iYWJpbGl0eSBvZiBmYWlsdXJlLlxuICAgICAgICBkZXBsb3ltZW50Lm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLmludm9jYXRpb25Qb2xpY3kpO1xuICAgICAgICB0aGlzLmludm9jYXRpb25Qb2xpY3kuYXR0YWNoVG9Sb2xlKGVudmlyb25tZW50Lmludm9rZXJSb2xlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW52b2NhdGlvblBvbGljeS5hZGRTdGF0ZW1lbnRzKFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1wibGFtYmRhOkludm9rZUZ1bmN0aW9uXCJdLFxuICAgICAgICAgIHJlc291cmNlczogaGFuZGxlci5sYW1iZGEucmVzb3VyY2VBcm5zRm9yR3JhbnRJbnZva2UsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -58,6 +58,12 @@ export interface SingleNodeRestateProps {
58
58
  totalMemorySize?: cdk.Size;
59
59
  };
60
60
  };
61
+ /**
62
+ * Environment properties to set for Restate. This is a simple way to pass custom configuration parameters.
63
+ */
64
+ environment?: {
65
+ [key: string]: string;
66
+ };
61
67
  /**
62
68
  * Completely override the Restate server configuration. Note that other Restate configuration options
63
69
  * will effectively be ignored if this is set. See https://docs.restate.dev/operate/configuration/server/