@cxbuilder/flow-config 1.0.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +145 -68
- package/CHANGELOG.md +38 -0
- package/README.md +8 -5
- package/dist/backend/FlowConfig/index.js +111 -16
- package/dist/backend/FlowConfig/index.js.map +3 -3
- package/dist/backend/GetConfig/index.js +1 -1
- package/dist/backend/GetConfig/index.js.map +2 -2
- package/dist/backend/Init/index.js +2 -1
- package/dist/backend/Init/index.js.map +2 -2
- package/dist/backend/Settings/index.js +255 -0
- package/dist/backend/Settings/index.js.map +7 -0
- package/dist/backend/Static/static/assets/index-Cejunttu.js +61 -0
- package/dist/backend/Static/static/assets/{index-NRh8x3FI.css → index-SZuscj14.css} +1 -1
- package/dist/backend/Static/static/index.html +3 -3
- package/dist/infrastructure/FlowConfigStack.d.ts +36 -14
- package/dist/infrastructure/FlowConfigStack.js +54 -18
- package/dist/infrastructure/GetConfig/index.js +2 -2
- package/dist/infrastructure/api/Api.d.ts +5 -2
- package/dist/infrastructure/api/Api.js +21 -15
- package/dist/infrastructure/api/Init/Init.interface.d.ts +4 -0
- package/dist/infrastructure/api/Init/Init.interface.js +1 -1
- package/dist/infrastructure/api/Init/index.js +2 -1
- package/dist/infrastructure/api/Settings/Settings.interface.d.ts +3 -0
- package/dist/infrastructure/api/Settings/Settings.interface.js +3 -0
- package/dist/infrastructure/api/Settings/index.d.ts +7 -0
- package/dist/infrastructure/api/Settings/index.js +21 -0
- package/dist/infrastructure/api/spec.yaml +122 -0
- package/dist/infrastructure/createLambda.js +1 -1
- package/dist/infrastructure/index.d.ts +1 -1
- package/dist/infrastructure/index.js +1 -1
- package/dist/infrastructure/tsconfig.tsbuildinfo +1 -1
- package/docs/Permissions-v1.md +132 -0
- package/docs/{Permissions.md → Permissions-v2.md} +15 -15
- package/package.json +1 -1
- package/dist/backend/Static/static/assets/index-Bx9Z3cF9.js +0 -61
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<title>
|
|
7
|
-
<script type="module" crossorigin src="/prod/assets/index-
|
|
8
|
-
<link rel="stylesheet" crossorigin href="/prod/assets/index-
|
|
6
|
+
<title>Flow Config</title>
|
|
7
|
+
<script type="module" crossorigin src="/prod/assets/index-Cejunttu.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="/prod/assets/index-SZuscj14.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<div id="root" style="width: 100%;"></div>
|
|
@@ -18,9 +18,23 @@ export interface CognitoConfig {
|
|
|
18
18
|
readonly ssoProviderName?: string;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
* VPC configuration for
|
|
21
|
+
* VPC configuration for API Gateway
|
|
22
|
+
* If provided, the API will be deployed in a private VPC.
|
|
22
23
|
*/
|
|
23
|
-
export interface
|
|
24
|
+
export interface ApiVpcConfig {
|
|
25
|
+
/**
|
|
26
|
+
* The VPC ID to use for the API
|
|
27
|
+
*/
|
|
28
|
+
readonly vpcId: string;
|
|
29
|
+
/**
|
|
30
|
+
* The VPC endpoint ID to use for the API
|
|
31
|
+
*/
|
|
32
|
+
readonly vpcEndpointId: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Lambda VPC configuration
|
|
36
|
+
*/
|
|
37
|
+
export interface LambdaVpcConfig {
|
|
24
38
|
/**
|
|
25
39
|
* The VPC ID to deploy resources into
|
|
26
40
|
*/
|
|
@@ -28,15 +42,11 @@ export interface VpcConfig {
|
|
|
28
42
|
/**
|
|
29
43
|
* Security group IDs for Lambda functions
|
|
30
44
|
*/
|
|
31
|
-
readonly
|
|
45
|
+
readonly securityGroupIds: string[];
|
|
32
46
|
/**
|
|
33
47
|
* Private subnet IDs for Lambda functions
|
|
34
48
|
*/
|
|
35
|
-
readonly
|
|
36
|
-
/**
|
|
37
|
-
* Security group IDs for VPC endpoints
|
|
38
|
-
*/
|
|
39
|
-
readonly vpcEndpointSecurityGroupIds: string[];
|
|
49
|
+
readonly subnetIds: string[];
|
|
40
50
|
}
|
|
41
51
|
/**
|
|
42
52
|
* Global table configuration for multi-region deployments
|
|
@@ -59,11 +69,11 @@ export interface ResolvedVpcConfig {
|
|
|
59
69
|
readonly vpc: IVpc;
|
|
60
70
|
readonly lambdaSecurityGroups: ISecurityGroup[];
|
|
61
71
|
readonly privateSubnets: ISubnet[];
|
|
62
|
-
readonly vpcEndpointSecurityGroups: ISecurityGroup[];
|
|
63
72
|
}
|
|
64
73
|
export interface FlowConfigStackProps extends cdk.StackProps {
|
|
65
74
|
/**
|
|
66
|
-
* Used for resource naming
|
|
75
|
+
* Used for resource naming. Will also be the name of the Connect Lambda
|
|
76
|
+
* @example `cxbuilder-flow-config`
|
|
67
77
|
*/
|
|
68
78
|
readonly prefix: string;
|
|
69
79
|
readonly cognito: CognitoConfig;
|
|
@@ -74,17 +84,25 @@ export interface FlowConfigStackProps extends cdk.StackProps {
|
|
|
74
84
|
readonly alertEmails: string[];
|
|
75
85
|
readonly prod?: boolean;
|
|
76
86
|
/**
|
|
77
|
-
*
|
|
78
|
-
|
|
79
|
-
|
|
87
|
+
* If provided, the API will be deployed in a VPC.
|
|
88
|
+
*/
|
|
89
|
+
readonly apiVpcConfig?: ApiVpcConfig;
|
|
90
|
+
/**
|
|
91
|
+
* If provided, the Lambda functions will be deployed in a VPC.
|
|
92
|
+
* Note: VPC should contain endpoints to: CloudFormation, Lambda, DynamoDB, SNS, and Polly.
|
|
80
93
|
*/
|
|
81
|
-
readonly
|
|
94
|
+
readonly lambdaVpcConfig?: LambdaVpcConfig;
|
|
82
95
|
/**
|
|
83
96
|
* Global table configuration for multi-region deployments.
|
|
84
97
|
* If provided, enables global table support.
|
|
85
98
|
* If undefined, creates a single-region table.
|
|
86
99
|
*/
|
|
87
100
|
readonly globalTable?: GlobalTableConfig;
|
|
101
|
+
/**
|
|
102
|
+
* Set to false to remove CXBuilder branding from the web app.
|
|
103
|
+
* @default true
|
|
104
|
+
*/
|
|
105
|
+
readonly branding?: boolean;
|
|
88
106
|
}
|
|
89
107
|
export declare class FlowConfigStack extends cdk.Stack {
|
|
90
108
|
props: FlowConfigStackProps;
|
|
@@ -105,6 +123,10 @@ export declare class FlowConfigStack extends cdk.Stack {
|
|
|
105
123
|
get appUrl(): string;
|
|
106
124
|
constructor(scope: Construct, id: string, props: FlowConfigStackProps);
|
|
107
125
|
createUserPoolClient(): UserPoolClient;
|
|
126
|
+
/**
|
|
127
|
+
* Create Cognito User Groups for role-based access control
|
|
128
|
+
*/
|
|
129
|
+
createUserPoolGroups(): void;
|
|
108
130
|
/**
|
|
109
131
|
* Associated Voicemail as Agent Workspace app
|
|
110
132
|
*/
|
|
@@ -23,11 +23,10 @@ class FlowConfigStack extends cdk.Stack {
|
|
|
23
23
|
return this._resolvedVpcConfig;
|
|
24
24
|
}
|
|
25
25
|
get appUrl() {
|
|
26
|
-
|
|
27
|
-
return `https://${this.api.restApi.restApiId}.execute-api.${region}.amazonaws.com/prod`;
|
|
26
|
+
return this.api.url;
|
|
28
27
|
}
|
|
29
28
|
constructor(scope, id, props) {
|
|
30
|
-
const { prefix, cognito, alertEmails, prod = false,
|
|
29
|
+
const { prefix, cognito, alertEmails, prod = false, lambdaVpcConfig, globalTable, } = props;
|
|
31
30
|
super(scope, id, {
|
|
32
31
|
...props,
|
|
33
32
|
stackName: props.stackName ?? prefix,
|
|
@@ -37,7 +36,9 @@ class FlowConfigStack extends cdk.Stack {
|
|
|
37
36
|
});
|
|
38
37
|
this.props = props;
|
|
39
38
|
// Resolve VPC configuration if provided
|
|
40
|
-
this._resolvedVpcConfig =
|
|
39
|
+
this._resolvedVpcConfig = lambdaVpcConfig
|
|
40
|
+
? this.resolveVpcConfig(lambdaVpcConfig)
|
|
41
|
+
: undefined;
|
|
41
42
|
// DynamoDB table for storing flow configs
|
|
42
43
|
this.table = this.createTable(prefix, prod, globalTable);
|
|
43
44
|
this.alertTopic = new aws_sns_1.Topic(this, 'AlertTopic', {
|
|
@@ -48,6 +49,7 @@ class FlowConfigStack extends cdk.Stack {
|
|
|
48
49
|
const getConfig = new GetConfig_1.GetConfig(this);
|
|
49
50
|
this.api = new Api_1.Api(this);
|
|
50
51
|
this.userPoolClient = this.createUserPoolClient();
|
|
52
|
+
this.createUserPoolGroups();
|
|
51
53
|
this.associate3pApp();
|
|
52
54
|
new cdk.CfnOutput(this, 'AppUrl', {
|
|
53
55
|
value: this.appUrl,
|
|
@@ -83,6 +85,32 @@ class FlowConfigStack extends cdk.Stack {
|
|
|
83
85
|
});
|
|
84
86
|
return client;
|
|
85
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Create Cognito User Groups for role-based access control
|
|
90
|
+
*/
|
|
91
|
+
createUserPoolGroups() {
|
|
92
|
+
// FlowConfigAdmin - Full CRUD access
|
|
93
|
+
new aws_cognito_1.CfnUserPoolGroup(this, 'FlowConfigAdminGroup', {
|
|
94
|
+
userPoolId: this.userPool.userPoolId,
|
|
95
|
+
groupName: 'FlowConfigAdmin',
|
|
96
|
+
description: 'Full administrative access to all flow configs - can create, read, update, and delete flow configs and all their properties',
|
|
97
|
+
precedence: 1,
|
|
98
|
+
});
|
|
99
|
+
// FlowConfigEdit - Edit variable/prompt values only
|
|
100
|
+
new aws_cognito_1.CfnUserPoolGroup(this, 'FlowConfigEditGroup', {
|
|
101
|
+
userPoolId: this.userPool.userPoolId,
|
|
102
|
+
groupName: 'FlowConfigEdit',
|
|
103
|
+
description: 'Edit access to flow configs - can read and modify variable values and prompt content but cannot add/remove fields or delete configs',
|
|
104
|
+
precedence: 2,
|
|
105
|
+
});
|
|
106
|
+
// FlowConfigRead - Read-only access
|
|
107
|
+
new aws_cognito_1.CfnUserPoolGroup(this, 'FlowConfigReadGroup', {
|
|
108
|
+
userPoolId: this.userPool.userPoolId,
|
|
109
|
+
groupName: 'FlowConfigRead',
|
|
110
|
+
description: 'Read-only access to all flow configs for reporting and reference purposes',
|
|
111
|
+
precedence: 3,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
86
114
|
/**
|
|
87
115
|
* Associated Voicemail as Agent Workspace app
|
|
88
116
|
*/
|
|
@@ -133,13 +161,13 @@ class FlowConfigStack extends cdk.Stack {
|
|
|
133
161
|
const tableName = prefix;
|
|
134
162
|
if (!globalTable) {
|
|
135
163
|
// Single-region table
|
|
136
|
-
return new dynamodb.
|
|
164
|
+
return new dynamodb.TableV2(this, 'Table', {
|
|
137
165
|
tableName,
|
|
138
166
|
partitionKey: {
|
|
139
167
|
name: 'id',
|
|
140
168
|
type: dynamodb.AttributeType.STRING,
|
|
141
169
|
},
|
|
142
|
-
|
|
170
|
+
billing: dynamodb.Billing.onDemand(),
|
|
143
171
|
pointInTimeRecoverySpecification: {
|
|
144
172
|
pointInTimeRecoveryEnabled: true,
|
|
145
173
|
},
|
|
@@ -151,50 +179,58 @@ class FlowConfigStack extends cdk.Stack {
|
|
|
151
179
|
}
|
|
152
180
|
if (globalTable.isPrimaryRegion) {
|
|
153
181
|
// Primary region creates global table with replicas
|
|
154
|
-
|
|
182
|
+
const table = new dynamodb.TableV2(this, 'Table', {
|
|
155
183
|
tableName,
|
|
156
184
|
partitionKey: {
|
|
157
185
|
name: 'id',
|
|
158
186
|
type: dynamodb.AttributeType.STRING,
|
|
159
187
|
},
|
|
160
|
-
|
|
188
|
+
billing: dynamodb.Billing.onDemand(),
|
|
161
189
|
pointInTimeRecoverySpecification: {
|
|
162
190
|
pointInTimeRecoveryEnabled: true,
|
|
163
191
|
},
|
|
164
|
-
replicationRegions: globalTable.replicaRegions || [],
|
|
165
192
|
deletionProtection: prod,
|
|
166
193
|
removalPolicy: prod
|
|
167
194
|
? cdk.RemovalPolicy.RETAIN
|
|
168
195
|
: cdk.RemovalPolicy.DESTROY,
|
|
169
196
|
});
|
|
197
|
+
if (globalTable.replicaRegions) {
|
|
198
|
+
for (const region of globalTable.replicaRegions) {
|
|
199
|
+
table.addReplica({
|
|
200
|
+
region,
|
|
201
|
+
deletionProtection: prod,
|
|
202
|
+
pointInTimeRecoverySpecification: {
|
|
203
|
+
pointInTimeRecoveryEnabled: true,
|
|
204
|
+
},
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return table;
|
|
170
209
|
}
|
|
171
210
|
else {
|
|
172
211
|
// Secondary region references existing global table
|
|
173
|
-
return dynamodb.Table.fromTableArn(this, '
|
|
212
|
+
return dynamodb.Table.fromTableArn(this, 'Table', `arn:aws:dynamodb:${this.region}:${this.account}:table/${tableName}`);
|
|
174
213
|
}
|
|
175
214
|
}
|
|
176
215
|
/**
|
|
177
216
|
* Resolve VPC configuration string IDs to CDK objects
|
|
178
217
|
*/
|
|
179
218
|
resolveVpcConfig(vpcConfig) {
|
|
180
|
-
const { vpcId,
|
|
219
|
+
const { vpcId, securityGroupIds, subnetIds } = vpcConfig;
|
|
181
220
|
// Resolve VPC
|
|
182
221
|
const vpc = ec2.Vpc.fromLookup(this, 'ResolvedVpc', { vpcId });
|
|
183
222
|
// Resolve Lambda security groups
|
|
184
|
-
const lambdaSecurityGroups =
|
|
223
|
+
const lambdaSecurityGroups = securityGroupIds.map((sgId, index) => ec2.SecurityGroup.fromSecurityGroupId(this, `LambdaSecurityGroup${index}`, sgId));
|
|
185
224
|
// Resolve private subnets
|
|
186
|
-
const privateSubnets =
|
|
187
|
-
// Resolve VPC endpoint security groups
|
|
188
|
-
const vpcEndpointSecurityGroups = vpcEndpointSecurityGroupIds.map((sgId, index) => ec2.SecurityGroup.fromSecurityGroupId(this, `VpcEndpointSecurityGroup${index}`, sgId));
|
|
225
|
+
const privateSubnets = subnetIds.map((subnetId, index) => ec2.Subnet.fromSubnetId(this, `PrivateSubnet${index}`, subnetId));
|
|
189
226
|
return {
|
|
190
227
|
vpc,
|
|
191
228
|
lambdaSecurityGroups,
|
|
192
229
|
privateSubnets,
|
|
193
|
-
vpcEndpointSecurityGroups,
|
|
194
230
|
};
|
|
195
231
|
}
|
|
196
232
|
}
|
|
197
233
|
exports.FlowConfigStack = FlowConfigStack;
|
|
198
234
|
_a = JSII_RTTI_SYMBOL_1;
|
|
199
|
-
FlowConfigStack[_a] = { fqn: "@cxbuilder/flow-config.FlowConfigStack", version: "
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0NvbmZpZ1N0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmFzdHJ1Y3R1cmUvRmxvd0NvbmZpZ1N0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLHlEQUtpQztBQUNqQyxxREFBcUQ7QUFFckQsMkNBQTJDO0FBRTNDLG1DQUFnQztBQUNoQyxpREFBNEM7QUFDNUMsNkVBQXNFO0FBQ3RFLHVFQUFvRTtBQUNwRSx5REFBb0U7QUFDcEUseUVBQWlFO0FBQ2pFLDJDQUF3QztBQW1HeEMsTUFBYSxlQUFnQixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBWTVDOzs7T0FHRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sV0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLGdCQUFnQixNQUFNLHFCQUFxQixDQUFDO0lBQzFGLENBQUM7SUFFRCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDSCxLQUEyQjtRQUVsQyxNQUFNLEVBQ0osTUFBTSxFQUNOLE9BQU8sRUFDUCxXQUFXLEVBQ1gsSUFBSSxHQUFHLEtBQUssRUFDWixHQUFHLEVBQ0gsV0FBVyxHQUNaLEdBQUcsS0FBSyxDQUFDO1FBQ1YsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxNQUFNO1lBQ3BDLFdBQVcsRUFDVCxLQUFLLENBQUMsV0FBVztnQkFDakIsMklBQTJJO1lBQzdJLHFCQUFxQixFQUFFLElBQUk7U0FDNUIsQ0FBQyxDQUFDO1FBakJJLFVBQUssR0FBTCxLQUFLLENBQXNCO1FBbUJsQyx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFdkUsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxlQUFLLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUM5QyxTQUFTLEVBQUUsR0FBRyxNQUFNLGVBQWU7U0FDcEMsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUkseUNBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDMUQsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsc0JBQVEsQ0FBQyxjQUFjLENBQ3JDLElBQUksRUFDSixVQUFVLEVBQ1YsT0FBTyxDQUFDLFVBQVUsQ0FDbkIsQ0FBQztRQUVGLE1BQU0sU0FBUyxHQUFHLElBQUkscUJBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksU0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFFbEQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ2hDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNsQixXQUFXLEVBQUUsMENBQTBDO1NBQ3hELENBQUMsQ0FBQztRQUNILElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ2hDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLE1BQU07WUFDM0IsV0FBVyxFQUFFLGtDQUFrQztTQUNoRCxDQUFDLENBQUM7UUFDSCxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFO1lBQzdDLEtBQUssRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVk7WUFDdEMsV0FBVyxFQUNULDhEQUE4RDtTQUNqRSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUV2QyxNQUFNLE9BQU8sR0FBRyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2RCxNQUFNLEtBQUssR0FBRztZQUNaLFlBQVksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO1lBQ25ELFVBQVUsRUFBRSxPQUFPO1NBQ3BCLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3hELGtCQUFrQixFQUFFLE1BQU07WUFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLDBCQUEwQixFQUFFLE9BQU8sQ0FBQyxlQUFlO2dCQUNqRCxDQUFDLENBQUMsQ0FBQyw0Q0FBOEIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUNsRSxDQUFDLENBQUMsQ0FBQyw0Q0FBOEIsQ0FBQyxPQUFPLENBQUM7WUFDNUMsY0FBYyxFQUFFLEtBQUs7WUFDckIsS0FBSztTQUNOLENBQUMsQ0FBQztRQUVILElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDMUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7U0FDL0IsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYztRQUNaLE1BQU0sRUFDSixLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsRUFDckMsTUFBTSxFQUFFLEdBQUcsR0FDWixHQUFHLElBQUksQ0FBQztRQUNULElBQUksU0FBUyxHQUFHLGFBQWEsTUFBTSxFQUFFLENBQUM7UUFDdEMsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDaEUsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLG9DQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUM1QyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ3ZCLFdBQVcsRUFDVCx3RUFBd0U7WUFDMUUsU0FBUztZQUNULHVCQUF1QixFQUFFO2dCQUN2QixpQkFBaUIsRUFBRTtvQkFDakIsU0FBUyxFQUFFLEdBQUc7aUJBQ2Y7YUFDRjtZQUNELDJGQUEyRjtZQUMzRixXQUFXLEVBQUU7Z0JBQ1gsbUJBQW1CO2dCQUNuQix5QkFBeUI7Z0JBQ3pCLGtCQUFrQjtnQkFDbEIsc0JBQXNCO2dCQUN0Qiw4QkFBOEI7Z0JBQzlCLHdCQUF3QjthQUN6QjtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0sV0FBVyxHQUFHLElBQUksdUNBQXlCLENBQy9DLElBQUksRUFDSixrQkFBa0IsRUFDbEI7WUFDRSxVQUFVLEVBQUUsa0JBQWtCO1lBQzlCLGVBQWUsRUFBRSxhQUFhO1lBQzlCLGNBQWMsRUFBRSxHQUFHLENBQUMsa0JBQWtCO1NBQ3ZDLENBQ0YsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFHLElBQUksaURBQXVCLENBQzFDLElBQUksRUFDSix5QkFBeUIsRUFDekI7WUFDRSxrQkFBa0I7U0FDbkIsQ0FDRixDQUFDO1FBQ0YsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFekMsaURBQWlEO1FBQ2pELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxLQUFLLE1BQU0sT0FBTyxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDdkMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxXQUFXLENBQ2pCLE1BQWMsRUFDZCxJQUFhLEVBQ2IsV0FBK0I7UUFFL0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDO1FBRXpCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixzQkFBc0I7WUFDdEIsT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO2dCQUNsRCxTQUFTO2dCQUNULFlBQVksRUFBRTtvQkFDWixJQUFJLEVBQUUsSUFBSTtvQkFDVixJQUFJLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNO2lCQUNwQztnQkFDRCxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlO2dCQUNqRCxnQ0FBZ0MsRUFBRTtvQkFDaEMsMEJBQTBCLEVBQUUsSUFBSTtpQkFDakM7Z0JBQ0Qsa0JBQWtCLEVBQUUsSUFBSTtnQkFDeEIsYUFBYSxFQUFFLElBQUk7b0JBQ2pCLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU07b0JBQzFCLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU87YUFDOUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2hDLG9EQUFvRDtZQUNwRCxPQUFPLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7Z0JBQ2xELFNBQVM7Z0JBQ1QsWUFBWSxFQUFFO29CQUNaLElBQUksRUFBRSxJQUFJO29CQUNWLElBQUksRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU07aUJBQ3BDO2dCQUNELFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLGVBQWU7Z0JBQ2pELGdDQUFnQyxFQUFFO29CQUNoQywwQkFBMEIsRUFBRSxJQUFJO2lCQUNqQztnQkFDRCxrQkFBa0IsRUFBRSxXQUFXLENBQUMsY0FBYyxJQUFJLEVBQUU7Z0JBQ3BELGtCQUFrQixFQUFFLElBQUk7Z0JBQ3hCLGFBQWEsRUFBRSxJQUFJO29CQUNqQixDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNO29CQUMxQixDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPO2FBQzlCLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sb0RBQW9EO1lBQ3BELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQ2hDLElBQUksRUFDSixrQkFBa0IsRUFDbEIsb0JBQW9CLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sVUFBVSxTQUFTLEVBQUUsQ0FDckUsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0IsQ0FBQyxTQUFvQjtRQUMzQyxNQUFNLEVBQ0osS0FBSyxFQUNMLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsMkJBQTJCLEdBQzVCLEdBQUcsU0FBUyxDQUFDO1FBRWQsY0FBYztRQUNkLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRS9ELGlDQUFpQztRQUNqQyxNQUFNLG9CQUFvQixHQUFHLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUN0RSxHQUFHLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUNuQyxJQUFJLEVBQ0osc0JBQXNCLEtBQUssRUFBRSxFQUM3QixJQUFJLENBQ0wsQ0FDRixDQUFDO1FBRUYsMEJBQTBCO1FBQzFCLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUM5RCxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEtBQUssRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUNqRSxDQUFDO1FBRUYsdUNBQXVDO1FBQ3ZDLE1BQU0seUJBQXlCLEdBQUcsMkJBQTJCLENBQUMsR0FBRyxDQUMvRCxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUNkLEdBQUcsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQ25DLElBQUksRUFDSiwyQkFBMkIsS0FBSyxFQUFFLEVBQ2xDLElBQUksQ0FDTCxDQUNKLENBQUM7UUFFRixPQUFPO1lBQ0wsR0FBRztZQUNILG9CQUFvQjtZQUNwQixjQUFjO1lBQ2QseUJBQXlCO1NBQzFCLENBQUM7SUFDSixDQUFDOztBQWxSSCwwQ0FtUkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgSVVzZXJQb29sLFxuICBVc2VyUG9vbCxcbiAgVXNlclBvb2xDbGllbnQsXG4gIFVzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlcixcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZ25pdG8nO1xuaW1wb3J0ICogYXMgZHluYW1vZGIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcbmltcG9ydCB7IElWcGMsIElTZWN1cml0eUdyb3VwLCBJU3VibmV0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEFwaSB9IGZyb20gJy4vYXBpL0FwaSc7XG5pbXBvcnQgeyBUb3BpYyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuaW1wb3J0IHsgRW1haWxTdWJzY3JpcHRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zLXN1YnNjcmlwdGlvbnMnO1xuaW1wb3J0IHsgU2VjdXJpdHlQcm9maWxlUHJvdmlkZXIgfSBmcm9tICcuL1NlY3VyaXR5UHJvZmlsZVByb3ZpZGVyJztcbmltcG9ydCB7IENmbkludGVncmF0aW9uQXNzb2NpYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29ubmVjdCc7XG5pbXBvcnQgeyBDZm5BcHBsaWNhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcHBpbnRlZ3JhdGlvbnMnO1xuaW1wb3J0IHsgR2V0Q29uZmlnIH0gZnJvbSAnLi9HZXRDb25maWcnO1xuXG4vKipcbiAqIENvZ25pdG8gY29uZmlndXJhdGlvbiBmb3IgRmxvd0NvbmZpZyBzdGFja1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZ25pdG9Db25maWcge1xuICByZWFkb25seSB1c2VyUG9vbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZ1bGwgZG9tYWluIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBwcm92aWRlZCwgY2xpZW50IHdpbGwgYXV0aCB0byBTU08uIE90aGVyd2lzZSB3aWxsIGF1dGggdG8gdXNlciBwb29sXG4gICAqL1xuICByZWFkb25seSBzc29Qcm92aWRlck5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVlBDIGNvbmZpZ3VyYXRpb24gZm9yIHByaXZhdGUgZGVwbG95bWVudCB1c2luZyBzdHJpbmcgSURzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBWUEMgSUQgdG8gZGVwbG95IHJlc291cmNlcyBpbnRvXG4gICAqL1xuICByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cCBJRHMgZm9yIExhbWJkYSBmdW5jdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYVNlY3VyaXR5R3JvdXBJZHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBQcml2YXRlIHN1Ym5ldCBJRHMgZm9yIExhbWJkYSBmdW5jdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVTdWJuZXRJZHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cCBJRHMgZm9yIFZQQyBlbmRwb2ludHNcbiAgICovXG4gIHJlYWRvbmx5IHZwY0VuZHBvaW50U2VjdXJpdHlHcm91cElkczogc3RyaW5nW107XG59XG5cbi8qKlxuICogR2xvYmFsIHRhYmxlIGNvbmZpZ3VyYXRpb24gZm9yIG11bHRpLXJlZ2lvbiBkZXBsb3ltZW50c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbFRhYmxlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBpcyB0aGUgcHJpbWFyeSByZWdpb24gdGhhdCBjcmVhdGVzIHRoZSBnbG9iYWwgdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGlzUHJpbWFyeVJlZ2lvbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogTGlzdCBvZiBhbGwgcmVnaW9ucyB0aGF0IHNob3VsZCBoYXZlIHJlcGxpY2FzXG4gICAqIE9ubHkgdXNlZCBieSB0aGUgcHJpbWFyeSByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2FSZWdpb25zPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogSW50ZXJuYWwgaW50ZXJmYWNlIGZvciByZXNvbHZlZCBWUEMgcmVzb3VyY2VzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRWcGNDb25maWcge1xuICByZWFkb25seSB2cGM6IElWcGM7XG4gIHJlYWRvbmx5IGxhbWJkYVNlY3VyaXR5R3JvdXBzOiBJU2VjdXJpdHlHcm91cFtdO1xuICByZWFkb25seSBwcml2YXRlU3VibmV0czogSVN1Ym5ldFtdO1xuICByZWFkb25seSB2cGNFbmRwb2ludFNlY3VyaXR5R3JvdXBzOiBJU2VjdXJpdHlHcm91cFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dDb25maWdTdGFja1Byb3BzIGV4dGVuZHMgY2RrLlN0YWNrUHJvcHMge1xuICAvKipcbiAgICogVXNlZCBmb3IgcmVzb3VyY2UgbmFtaW5nXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgY29nbml0bzogQ29nbml0b0NvbmZpZztcbiAgcmVhZG9ubHkgY29ubmVjdEluc3RhbmNlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdobyB0byBub3RpZnkgZm9yIHVuaGFuZGxlZCBleGNlcHRpb25zXG4gICAqL1xuICByZWFkb25seSBhbGVydEVtYWlsczogc3RyaW5nW107XG4gIHJlYWRvbmx5IHByb2Q/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBWUEMgY29uZmlndXJhdGlvbiBmb3IgcHJpdmF0ZSBkZXBsb3ltZW50LlxuICAgKiBJZiBwcm92aWRlZCwgdGhlIGFwcGxpY2F0aW9uIHdpbGwgYmUgY29uZmlndXJlZCBmb3IgVlBDLW9ubHkgYWNjZXNzLlxuICAgKiBJZiB1bmRlZmluZWQsIHVzZXMgdGhlIGN1cnJlbnQgcHVibGljIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICByZWFkb25seSB2cGM/OiBWcGNDb25maWc7XG5cbiAgLyoqXG4gICAqIEdsb2JhbCB0YWJsZSBjb25maWd1cmF0aW9uIGZvciBtdWx0aS1yZWdpb24gZGVwbG95bWVudHMuXG4gICAqIElmIHByb3ZpZGVkLCBlbmFibGVzIGdsb2JhbCB0YWJsZSBzdXBwb3J0LlxuICAgKiBJZiB1bmRlZmluZWQsIGNyZWF0ZXMgYSBzaW5nbGUtcmVnaW9uIHRhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2xvYmFsVGFibGU/OiBHbG9iYWxUYWJsZUNvbmZpZztcbn1cblxuZXhwb3J0IGNsYXNzIEZsb3dDb25maWdTdGFjayBleHRlbmRzIGNkay5TdGFjayB7XG4gIHVzZXJQb29sOiBJVXNlclBvb2w7XG4gIHByaXZhdGUgYXBpOiBBcGk7XG4gIHVzZXJQb29sQ2xpZW50OiBVc2VyUG9vbENsaWVudDtcbiAgYWxlcnRUb3BpYzogVG9waWM7XG4gIHRhYmxlOiBjZGsuYXdzX2R5bmFtb2RiLklUYWJsZTtcblxuICAvKipcbiAgICogUmVzb2x2ZWQgVlBDIGNvbmZpZ3VyYXRpb24gaWYgcHJpdmF0ZSBkZXBsb3ltZW50IGlzIGVuYWJsZWRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc29sdmVkVnBjQ29uZmlnPzogUmVzb2x2ZWRWcGNDb25maWc7XG5cbiAgLyoqXG4gICAqIEdldCByZXNvbHZlZCBWUEMgY29uZmlndXJhdGlvbiBmb3IgY2hpbGQgY29uc3RydWN0c1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfZ2V0UmVzb2x2ZWRWcGNDb25maWcoKTogUmVzb2x2ZWRWcGNDb25maWcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9yZXNvbHZlZFZwY0NvbmZpZztcbiAgfVxuXG4gIGdldCBhcHBVcmwoKTogc3RyaW5nIHtcbiAgICBjb25zdCB7IHJlZ2lvbiB9ID0gY2RrLlN0YWNrLm9mKHRoaXMpO1xuICAgIHJldHVybiBgaHR0cHM6Ly8ke3RoaXMuYXBpLnJlc3RBcGkucmVzdEFwaUlkfS5leGVjdXRlLWFwaS4ke3JlZ2lvbn0uYW1hem9uYXdzLmNvbS9wcm9kYDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcHJvcHM6IEZsb3dDb25maWdTdGFja1Byb3BzXG4gICkge1xuICAgIGNvbnN0IHtcbiAgICAgIHByZWZpeCxcbiAgICAgIGNvZ25pdG8sXG4gICAgICBhbGVydEVtYWlscyxcbiAgICAgIHByb2QgPSBmYWxzZSxcbiAgICAgIHZwYyxcbiAgICAgIGdsb2JhbFRhYmxlLFxuICAgIH0gPSBwcm9wcztcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgc3RhY2tOYW1lOiBwcm9wcy5zdGFja05hbWUgPz8gcHJlZml4LFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIHByb3BzLmRlc2NyaXB0aW9uID8/XG4gICAgICAgICdXZWItYmFzZWQgaW50ZXJmYWNlIGZvciBtYW5hZ2luZyBmbG93IHZhcmlhYmxlcyBhbmQgcHJvbXB0cyB0aGF0IGFyZSBkeW5hbWljYWxseSByZXRyaWV2ZWQgYnkgQW1hem9uIENvbm5lY3QgZHVyaW5nIGN1c3RvbWVyIGludGVyYWN0aW9ucycsXG4gICAgICB0ZXJtaW5hdGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgfSk7XG5cbiAgICAvLyBSZXNvbHZlIFZQQyBjb25maWd1cmF0aW9uIGlmIHByb3ZpZGVkXG4gICAgdGhpcy5fcmVzb2x2ZWRWcGNDb25maWcgPSB2cGMgPyB0aGlzLnJlc29sdmVWcGNDb25maWcodnBjKSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIER5bmFtb0RCIHRhYmxlIGZvciBzdG9yaW5nIGZsb3cgY29uZmlnc1xuICAgIHRoaXMudGFibGUgPSB0aGlzLmNyZWF0ZVRhYmxlKHByZWZpeCwgcHJvZCwgZ2xvYmFsVGFibGUpO1xuXG4gICAgdGhpcy5hbGVydFRvcGljID0gbmV3IFRvcGljKHRoaXMsICdBbGVydFRvcGljJywge1xuICAgICAgdG9waWNOYW1lOiBgJHtwcmVmaXh9LWVycm9yLWFsZXJ0c2AsXG4gICAgfSk7XG4gICAgYWxlcnRFbWFpbHMuZm9yRWFjaCgoZSkgPT5cbiAgICAgIHRoaXMuYWxlcnRUb3BpYy5hZGRTdWJzY3JpcHRpb24obmV3IEVtYWlsU3Vic2NyaXB0aW9uKGUpKVxuICAgICk7XG5cbiAgICB0aGlzLnVzZXJQb29sID0gVXNlclBvb2wuZnJvbVVzZXJQb29sSWQoXG4gICAgICB0aGlzLFxuICAgICAgJ1VzZXJQb29sJyxcbiAgICAgIGNvZ25pdG8udXNlclBvb2xJZFxuICAgICk7XG5cbiAgICBjb25zdCBnZXRDb25maWcgPSBuZXcgR2V0Q29uZmlnKHRoaXMpO1xuICAgIHRoaXMuYXBpID0gbmV3IEFwaSh0aGlzKTtcblxuICAgIHRoaXMudXNlclBvb2xDbGllbnQgPSB0aGlzLmNyZWF0ZVVzZXJQb29sQ2xpZW50KCk7XG5cbiAgICB0aGlzLmFzc29jaWF0ZTNwQXBwKCk7XG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnQXBwVXJsJywge1xuICAgICAgdmFsdWU6IHRoaXMuYXBwVXJsLFxuICAgICAgZGVzY3JpcHRpb246ICdCYXNlIFVSTCBmb3IgdGhlIEZsb3cgQ29uZmlnIGFwcGxpY2F0aW9uJyxcbiAgICB9KTtcbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnQXBpVXJsJywge1xuICAgICAgdmFsdWU6IGAke3RoaXMuYXBwVXJsfS9hcGlgLFxuICAgICAgZGVzY3JpcHRpb246ICdCYXNlIFVSTCBmb3IgdGhlIEZsb3cgQ29uZmlnIEFQSScsXG4gICAgfSk7XG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ0dldENvbmZpZ0xhbWJkYU5hbWUnLCB7XG4gICAgICB2YWx1ZTogZ2V0Q29uZmlnLmZ1bmN0aW9uLmZ1bmN0aW9uTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnTGFtYmRhIGZ1bmN0aW9uIG5hbWUgZm9yIGFjY2Vzc2luZyBmbG93IGNvbmZpZ3MgZnJvbSBDb25uZWN0JyxcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZVVzZXJQb29sQ2xpZW50KCk6IFVzZXJQb29sQ2xpZW50IHtcbiAgICBjb25zdCB7IHByZWZpeCwgY29nbml0byB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGRvbWFpbnMgPSBbJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIHRoaXMuYXBwVXJsXTtcblxuICAgIGNvbnN0IG9BdXRoID0ge1xuICAgICAgY2FsbGJhY2tVcmxzOiBkb21haW5zLm1hcCgoeCkgPT4gYCR7eH0vcG9wdXAuaHRtbGApLFxuICAgICAgbG9nb3V0VXJsczogZG9tYWlucyxcbiAgICB9O1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBVc2VyUG9vbENsaWVudCh0aGlzLCAnVXNlclBvb2xDbGllbnQnLCB7XG4gICAgICB1c2VyUG9vbENsaWVudE5hbWU6IHByZWZpeCxcbiAgICAgIHVzZXJQb29sOiB0aGlzLnVzZXJQb29sLFxuICAgICAgc3VwcG9ydGVkSWRlbnRpdHlQcm92aWRlcnM6IGNvZ25pdG8uc3NvUHJvdmlkZXJOYW1lXG4gICAgICAgID8gW1VzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlci5jdXN0b20oY29nbml0by5zc29Qcm92aWRlck5hbWUpXVxuICAgICAgICA6IFtVc2VyUG9vbENsaWVudElkZW50aXR5UHJvdmlkZXIuQ09HTklUT10sXG4gICAgICBnZW5lcmF0ZVNlY3JldDogZmFsc2UsXG4gICAgICBvQXV0aCxcbiAgICB9KTtcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdVc2VyUG9vbENsaWVudElkJywge1xuICAgICAgdmFsdWU6IGNsaWVudC51c2VyUG9vbENsaWVudElkLFxuICAgIH0pO1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxuICAvKipcbiAgICogQXNzb2NpYXRlZCBWb2ljZW1haWwgYXMgQWdlbnQgV29ya3NwYWNlIGFwcFxuICAgKi9cbiAgYXNzb2NpYXRlM3BBcHAoKSB7XG4gICAgY29uc3Qge1xuICAgICAgcHJvcHM6IHsgcHJlZml4LCBjb25uZWN0SW5zdGFuY2VBcm4gfSxcbiAgICAgIGFwcFVybDogdXJsLFxuICAgIH0gPSB0aGlzO1xuICAgIGxldCBuYW1lc3BhY2UgPSBgY3hidWlsZGVyLiR7cHJlZml4fWA7XG4gICAgaWYgKG5hbWVzcGFjZS5sZW5ndGggPiAzMiAmJiAhY2RrLlRva2VuLmlzVW5yZXNvbHZlZChuYW1lc3BhY2UpKSB7XG4gICAgICBuYW1lc3BhY2UgPSBuYW1lc3BhY2Uuc3Vic3RyaW5nKDAsIDMyKTtcbiAgICB9XG5cbiAgICBjb25zdCBhcHAgPSBuZXcgQ2ZuQXBwbGljYXRpb24odGhpcywgJzNwQXBwJywge1xuICAgICAgbmFtZTogdGhpcy5wcm9wcy5wcmVmaXgsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0FnZW50IFdvcmtzcGFjZSBhcHAgZm9yIGNvbmZpZ3VyaW5nIGNvbnRhY3QgZmxvdyB2YXJpYWJsZXMgYW5kIHByb21wdHMnLFxuICAgICAgbmFtZXNwYWNlLFxuICAgICAgYXBwbGljYXRpb25Tb3VyY2VDb25maWc6IHtcbiAgICAgICAgZXh0ZXJuYWxVcmxDb25maWc6IHtcbiAgICAgICAgICBhY2Nlc3NVcmw6IHVybCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAvLyBkb2NzOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29ubmVjdC9sYXRlc3QvYWRtaW5ndWlkZS8zcC1hcHBzLWV2ZW50cy1yZXF1ZXN0cy5odG1sXG4gICAgICBwZXJtaXNzaW9uczogW1xuICAgICAgICAnVXNlci5EZXRhaWxzLlZpZXcnLFxuICAgICAgICAnVXNlci5Db25maWd1cmF0aW9uLlZpZXcnLFxuICAgICAgICAnVXNlci5TdGF0dXMuVmlldycsXG4gICAgICAgICdDb250YWN0LkRldGFpbHMuVmlldycsXG4gICAgICAgICdDb250YWN0LkN1c3RvbWVyRGV0YWlscy5WaWV3JyxcbiAgICAgICAgJ0NvbnRhY3QuVmFyaWFibGVzLlZpZXcnLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFzc29jaWF0aW9uID0gbmV3IENmbkludGVncmF0aW9uQXNzb2NpYXRpb24oXG4gICAgICB0aGlzLFxuICAgICAgJzNwQXBwQXNzb2NpYXRpb24nLFxuICAgICAge1xuICAgICAgICBpbnN0YW5jZUlkOiBjb25uZWN0SW5zdGFuY2VBcm4sXG4gICAgICAgIGludGVncmF0aW9uVHlwZTogJ0FQUExJQ0FUSU9OJyxcbiAgICAgICAgaW50ZWdyYXRpb25Bcm46IGFwcC5hdHRyQXBwbGljYXRpb25Bcm4sXG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFNlY3VyaXR5UHJvZmlsZVByb3ZpZGVyKFxuICAgICAgdGhpcyxcbiAgICAgICdTZWN1cml0eVByb2ZpbGVQcm92aWRlcicsXG4gICAgICB7XG4gICAgICAgIGNvbm5lY3RJbnN0YW5jZUFybixcbiAgICAgIH1cbiAgICApO1xuICAgIHByb3ZpZGVyLm5vZGUuYWRkRGVwZW5kZW5jeShhc3NvY2lhdGlvbik7XG5cbiAgICAvLyBBdXRvbWF0aWNhbGx5IGFzc29jaWF0ZSB3aXRoIHNlY3VyaXR5IHByb2ZpbGVzXG4gICAgY29uc3Qgc2VjdXJpdHlQcm9maWxlcyA9IFsnQWRtaW4nXTtcbiAgICBmb3IgKGNvbnN0IHByb2ZpbGUgb2Ygc2VjdXJpdHlQcm9maWxlcykge1xuICAgICAgcHJvdmlkZXIuYWxsb3dBcHBsaWNhdGlvbihgQWxsb3cke3Byb2ZpbGV9YCwgcHJvZmlsZSwgbmFtZXNwYWNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIER5bmFtb0RCIHRhYmxlIHdpdGggb3B0aW9uYWwgZ2xvYmFsIHRhYmxlIHN1cHBvcnRcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlVGFibGUoXG4gICAgcHJlZml4OiBzdHJpbmcsXG4gICAgcHJvZDogYm9vbGVhbixcbiAgICBnbG9iYWxUYWJsZT86IEdsb2JhbFRhYmxlQ29uZmlnXG4gICk6IGR5bmFtb2RiLklUYWJsZSB7XG4gICAgY29uc3QgdGFibGVOYW1lID0gcHJlZml4O1xuXG4gICAgaWYgKCFnbG9iYWxUYWJsZSkge1xuICAgICAgLy8gU2luZ2xlLXJlZ2lvbiB0YWJsZVxuICAgICAgcmV0dXJuIG5ldyBkeW5hbW9kYi5UYWJsZSh0aGlzLCAnRmxvd0NvbmZpZ3NUYWJsZScsIHtcbiAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICBwYXJ0aXRpb25LZXk6IHtcbiAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HLFxuICAgICAgICB9LFxuICAgICAgICBiaWxsaW5nTW9kZTogZHluYW1vZGIuQmlsbGluZ01vZGUuUEFZX1BFUl9SRVFVRVNULFxuICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbjoge1xuICAgICAgICAgIHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgICAgIHJlbW92YWxQb2xpY3k6IHByb2RcbiAgICAgICAgICA/IGNkay5SZW1vdmFsUG9saWN5LlJFVEFJTlxuICAgICAgICAgIDogY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChnbG9iYWxUYWJsZS5pc1ByaW1hcnlSZWdpb24pIHtcbiAgICAgIC8vIFByaW1hcnkgcmVnaW9uIGNyZWF0ZXMgZ2xvYmFsIHRhYmxlIHdpdGggcmVwbGljYXNcbiAgICAgIHJldHVybiBuZXcgZHluYW1vZGIuVGFibGUodGhpcywgJ0Zsb3dDb25maWdzVGFibGUnLCB7XG4gICAgICAgIHRhYmxlTmFtZSxcbiAgICAgICAgcGFydGl0aW9uS2V5OiB7XG4gICAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgICB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgfSxcbiAgICAgICAgYmlsbGluZ01vZGU6IGR5bmFtb2RiLkJpbGxpbmdNb2RlLlBBWV9QRVJfUkVRVUVTVCxcbiAgICAgICAgcG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb246IHtcbiAgICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVwbGljYXRpb25SZWdpb25zOiBnbG9iYWxUYWJsZS5yZXBsaWNhUmVnaW9ucyB8fCBbXSxcbiAgICAgICAgZGVsZXRpb25Qcm90ZWN0aW9uOiBwcm9kLFxuICAgICAgICByZW1vdmFsUG9saWN5OiBwcm9kXG4gICAgICAgICAgPyBjZGsuUmVtb3ZhbFBvbGljeS5SRVRBSU5cbiAgICAgICAgICA6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2Vjb25kYXJ5IHJlZ2lvbiByZWZlcmVuY2VzIGV4aXN0aW5nIGdsb2JhbCB0YWJsZVxuICAgICAgcmV0dXJuIGR5bmFtb2RiLlRhYmxlLmZyb21UYWJsZUFybihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ0Zsb3dDb25maWdzVGFibGUnLFxuICAgICAgICBgYXJuOmF3czpkeW5hbW9kYjoke3RoaXMucmVnaW9ufToke3RoaXMuYWNjb3VudH06dGFibGUvJHt0YWJsZU5hbWV9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSBWUEMgY29uZmlndXJhdGlvbiBzdHJpbmcgSURzIHRvIENESyBvYmplY3RzXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVWcGNDb25maWcodnBjQ29uZmlnOiBWcGNDb25maWcpOiBSZXNvbHZlZFZwY0NvbmZpZyB7XG4gICAgY29uc3Qge1xuICAgICAgdnBjSWQsXG4gICAgICBsYW1iZGFTZWN1cml0eUdyb3VwSWRzLFxuICAgICAgcHJpdmF0ZVN1Ym5ldElkcyxcbiAgICAgIHZwY0VuZHBvaW50U2VjdXJpdHlHcm91cElkcyxcbiAgICB9ID0gdnBjQ29uZmlnO1xuXG4gICAgLy8gUmVzb2x2ZSBWUENcbiAgICBjb25zdCB2cGMgPSBlYzIuVnBjLmZyb21Mb29rdXAodGhpcywgJ1Jlc29sdmVkVnBjJywgeyB2cGNJZCB9KTtcblxuICAgIC8vIFJlc29sdmUgTGFtYmRhIHNlY3VyaXR5IGdyb3Vwc1xuICAgIGNvbnN0IGxhbWJkYVNlY3VyaXR5R3JvdXBzID0gbGFtYmRhU2VjdXJpdHlHcm91cElkcy5tYXAoKHNnSWQsIGluZGV4KSA9PlxuICAgICAgZWMyLlNlY3VyaXR5R3JvdXAuZnJvbVNlY3VyaXR5R3JvdXBJZChcbiAgICAgICAgdGhpcyxcbiAgICAgICAgYExhbWJkYVNlY3VyaXR5R3JvdXAke2luZGV4fWAsXG4gICAgICAgIHNnSWRcbiAgICAgIClcbiAgICApO1xuXG4gICAgLy8gUmVzb2x2ZSBwcml2YXRlIHN1Ym5ldHNcbiAgICBjb25zdCBwcml2YXRlU3VibmV0cyA9IHByaXZhdGVTdWJuZXRJZHMubWFwKChzdWJuZXRJZCwgaW5kZXgpID0+XG4gICAgICBlYzIuU3VibmV0LmZyb21TdWJuZXRJZCh0aGlzLCBgUHJpdmF0ZVN1Ym5ldCR7aW5kZXh9YCwgc3VibmV0SWQpXG4gICAgKTtcblxuICAgIC8vIFJlc29sdmUgVlBDIGVuZHBvaW50IHNlY3VyaXR5IGdyb3Vwc1xuICAgIGNvbnN0IHZwY0VuZHBvaW50U2VjdXJpdHlHcm91cHMgPSB2cGNFbmRwb2ludFNlY3VyaXR5R3JvdXBJZHMubWFwKFxuICAgICAgKHNnSWQsIGluZGV4KSA9PlxuICAgICAgICBlYzIuU2VjdXJpdHlHcm91cC5mcm9tU2VjdXJpdHlHcm91cElkKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgYFZwY0VuZHBvaW50U2VjdXJpdHlHcm91cCR7aW5kZXh9YCxcbiAgICAgICAgICBzZ0lkXG4gICAgICAgIClcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZwYyxcbiAgICAgIGxhbWJkYVNlY3VyaXR5R3JvdXBzLFxuICAgICAgcHJpdmF0ZVN1Ym5ldHMsXG4gICAgICB2cGNFbmRwb2ludFNlY3VyaXR5R3JvdXBzLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
235
|
+
FlowConfigStack[_a] = { fqn: "@cxbuilder/flow-config.FlowConfigStack", version: "2.0.0" };
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0NvbmZpZ1N0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmFzdHJ1Y3R1cmUvRmxvd0NvbmZpZ1N0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLHlEQU1pQztBQUNqQyxxREFBcUQ7QUFFckQsMkNBQTJDO0FBRTNDLG1DQUFnQztBQUNoQyxpREFBNEM7QUFDNUMsNkVBQXNFO0FBQ3RFLHVFQUFvRTtBQUNwRSx5REFBb0U7QUFDcEUseUVBQWlFO0FBQ2pFLDJDQUF3QztBQXVIeEMsTUFBYSxlQUFnQixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBWTVDOzs7T0FHRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ0gsS0FBMkI7UUFFbEMsTUFBTSxFQUNKLE1BQU0sRUFDTixPQUFPLEVBQ1AsV0FBVyxFQUNYLElBQUksR0FBRyxLQUFLLEVBQ1osZUFBZSxFQUNmLFdBQVcsR0FDWixHQUFHLEtBQUssQ0FBQztRQUNWLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksTUFBTTtZQUNwQyxXQUFXLEVBQ1QsS0FBSyxDQUFDLFdBQVc7Z0JBQ2pCLDJJQUEySTtZQUM3SSxxQkFBcUIsRUFBRSxJQUFJO1NBQzVCLENBQUMsQ0FBQztRQWpCSSxVQUFLLEdBQUwsS0FBSyxDQUFzQjtRQW1CbEMsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxlQUFlO1lBQ3ZDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO1lBQ3hDLENBQUMs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RSxnQkFBZ0IsS0FBSyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQ2pFLENBQUM7UUFFRixPQUFPO1lBQ0wsR0FBRztZQUNILG9CQUFvQjtZQUNwQixjQUFjO1NBQ2YsQ0FBQztJQUNKLENBQUM7O0FBL1NILDBDQWdUQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge1xuICBJVXNlclBvb2wsXG4gIFVzZXJQb29sLFxuICBVc2VyUG9vbENsaWVudCxcbiAgVXNlclBvb2xDbGllbnRJZGVudGl0eVByb3ZpZGVyLFxuICBDZm5Vc2VyUG9vbEdyb3VwLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29nbml0byc7XG5pbXBvcnQgKiBhcyBkeW5hbW9kYiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0IHsgSVZwYywgSVNlY3VyaXR5R3JvdXAsIElTdWJuZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQXBpIH0gZnJvbSAnLi9hcGkvQXBpJztcbmltcG9ydCB7IFRvcGljIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5pbXBvcnQgeyBFbWFpbFN1YnNjcmlwdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMtc3Vic2NyaXB0aW9ucyc7XG5pbXBvcnQgeyBTZWN1cml0eVByb2ZpbGVQcm92aWRlciB9IGZyb20gJy4vU2VjdXJpdHlQcm9maWxlUHJvdmlkZXInO1xuaW1wb3J0IHsgQ2ZuSW50ZWdyYXRpb25Bc3NvY2lhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb25uZWN0JztcbmltcG9ydCB7IENmbkFwcGxpY2F0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwcGludGVncmF0aW9ucyc7XG5pbXBvcnQgeyBHZXRDb25maWcgfSBmcm9tICcuL0dldENvbmZpZyc7XG5cbi8qKlxuICogQ29nbml0byBjb25maWd1cmF0aW9uIGZvciBGbG93Q29uZmlnIHN0YWNrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29nbml0b0NvbmZpZyB7XG4gIHJlYWRvbmx5IHVzZXJQb29sSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogRnVsbCBkb21haW4gbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHByb3ZpZGVkLCBjbGllbnQgd2lsbCBhdXRoIHRvIFNTTy4gT3RoZXJ3aXNlIHdpbGwgYXV0aCB0byB1c2VyIHBvb2xcbiAgICovXG4gIHJlYWRvbmx5IHNzb1Byb3ZpZGVyTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBWUEMgY29uZmlndXJhdGlvbiBmb3IgQVBJIEdhdGV3YXlcbiAqIElmIHByb3ZpZGVkLCB0aGUgQVBJIHdpbGwgYmUgZGVwbG95ZWQgaW4gYSBwcml2YXRlIFZQQy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlWcGNDb25maWcge1xuICAvKipcbiAgICogVGhlIFZQQyBJRCB0byB1c2UgZm9yIHRoZSBBUElcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgVlBDIGVuZHBvaW50IElEIHRvIHVzZSBmb3IgdGhlIEFQSVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjRW5kcG9pbnRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIExhbWJkYSBWUEMgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYVZwY0NvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIElEIHRvIGRlcGxveSByZXNvdXJjZXMgaW50b1xuICAgKi9cbiAgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogU2VjdXJpdHkgZ3JvdXAgSURzIGZvciBMYW1iZGEgZnVuY3Rpb25zXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3VwSWRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUHJpdmF0ZSBzdWJuZXQgSURzIGZvciBMYW1iZGEgZnVuY3Rpb25zXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRJZHM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEdsb2JhbCB0YWJsZSBjb25maWd1cmF0aW9uIGZvciBtdWx0aS1yZWdpb24gZGVwbG95bWVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHbG9iYWxUYWJsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgaXMgdGhlIHByaW1hcnkgcmVnaW9uIHRoYXQgY3JlYXRlcyB0aGUgZ2xvYmFsIHRhYmxlXG4gICAqL1xuICByZWFkb25seSBpc1ByaW1hcnlSZWdpb246IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgYWxsIHJlZ2lvbnMgdGhhdCBzaG91bGQgaGF2ZSByZXBsaWNhc1xuICAgKiBPbmx5IHVzZWQgYnkgdGhlIHByaW1hcnkgcmVnaW9uXG4gICAqL1xuICByZWFkb25seSByZXBsaWNhUmVnaW9ucz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEludGVybmFsIGludGVyZmFjZSBmb3IgcmVzb2x2ZWQgVlBDIHJlc291cmNlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkVnBjQ29uZmlnIHtcbiAgcmVhZG9ubHkgdnBjOiBJVnBjO1xuICByZWFkb25seSBsYW1iZGFTZWN1cml0eUdyb3VwczogSVNlY3VyaXR5R3JvdXBbXTtcbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldHM6IElTdWJuZXRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93Q29uZmlnU3RhY2tQcm9wcyBleHRlbmRzIGNkay5TdGFja1Byb3BzIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIHJlc291cmNlIG5hbWluZy4gV2lsbCBhbHNvIGJlIHRoZSBuYW1lIG9mIHRoZSBDb25uZWN0IExhbWJkYVxuICAgKiBAZXhhbXBsZSBgY3hidWlsZGVyLWZsb3ctY29uZmlnYFxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvZ25pdG86IENvZ25pdG9Db25maWc7XG4gIHJlYWRvbmx5IGNvbm5lY3RJbnN0YW5jZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaG8gdG8gbm90aWZ5IGZvciB1bmhhbmRsZWQgZXhjZXB0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgYWxlcnRFbWFpbHM6IHN0cmluZ1tdO1xuICByZWFkb25seSBwcm9kPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgcHJvdmlkZWQsIHRoZSBBUEkgd2lsbCBiZSBkZXBsb3llZCBpbiBhIFZQQy5cbiAgICovXG4gIHJlYWRvbmx5IGFwaVZwY0NvbmZpZz86IEFwaVZwY0NvbmZpZztcblxuICAvKipcbiAgICogSWYgcHJvdmlkZWQsIHRoZSBMYW1iZGEgZnVuY3Rpb25zIHdpbGwgYmUgZGVwbG95ZWQgaW4gYSBWUEMuXG4gICAqIE5vdGU6IFZQQyBzaG91bGQgY29udGFpbiBlbmRwb2ludHMgdG86IENsb3VkRm9ybWF0aW9uLCBMYW1iZGEsIER5bmFtb0RCLCBTTlMsIGFuZCBQb2xseS5cbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYVZwY0NvbmZpZz86IExhbWJkYVZwY0NvbmZpZztcblxuICAvKipcbiAgICogR2xvYmFsIHRhYmxlIGNvbmZpZ3VyYXRpb24gZm9yIG11bHRpLXJlZ2lvbiBkZXBsb3ltZW50cy5cbiAgICogSWYgcHJvdmlkZWQsIGVuYWJsZXMgZ2xvYmFsIHRhYmxlIHN1cHBvcnQuXG4gICAqIElmIHVuZGVmaW5lZCwgY3JlYXRlcyBhIHNpbmdsZS1yZWdpb24gdGFibGUuXG4gICAqL1xuICByZWFkb25seSBnbG9iYWxUYWJsZT86IEdsb2JhbFRhYmxlQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBTZXQgdG8gZmFsc2UgdG8gcmVtb3ZlIENYQnVpbGRlciBicmFuZGluZyBmcm9tIHRoZSB3ZWIgYXBwLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBicmFuZGluZz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBGbG93Q29uZmlnU3RhY2sgZXh0ZW5kcyBjZGsuU3RhY2sge1xuICB1c2VyUG9vbDogSVVzZXJQb29sO1xuICBwcml2YXRlIGFwaTogQXBpO1xuICB1c2VyUG9vbENsaWVudDogVXNlclBvb2xDbGllbnQ7XG4gIGFsZXJ0VG9waWM6IFRvcGljO1xuICB0YWJsZTogY2RrLmF3c19keW5hbW9kYi5JVGFibGU7XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIFZQQyBjb25maWd1cmF0aW9uIGlmIHByaXZhdGUgZGVwbG95bWVudCBpcyBlbmFibGVkXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNvbHZlZFZwY0NvbmZpZz86IFJlc29sdmVkVnBjQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBHZXQgcmVzb2x2ZWQgVlBDIGNvbmZpZ3VyYXRpb24gZm9yIGNoaWxkIGNvbnN0cnVjdHNcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX2dldFJlc29sdmVkVnBjQ29uZmlnKCk6IFJlc29sdmVkVnBjQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzb2x2ZWRWcGNDb25maWc7XG4gIH1cblxuICBnZXQgYXBwVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXBpLnVybDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcHJvcHM6IEZsb3dDb25maWdTdGFja1Byb3BzXG4gICkge1xuICAgIGNvbnN0IHtcbiAgICAgIHByZWZpeCxcbiAgICAgIGNvZ25pdG8sXG4gICAgICBhbGVydEVtYWlscyxcbiAgICAgIHByb2QgPSBmYWxzZSxcbiAgICAgIGxhbWJkYVZwY0NvbmZpZyxcbiAgICAgIGdsb2JhbFRhYmxlLFxuICAgIH0gPSBwcm9wcztcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgc3RhY2tOYW1lOiBwcm9wcy5zdGFja05hbWUgPz8gcHJlZml4LFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIHByb3BzLmRlc2NyaXB0aW9uID8/XG4gICAgICAgICdXZWItYmFzZWQgaW50ZXJmYWNlIGZvciBtYW5hZ2luZyBmbG93IHZhcmlhYmxlcyBhbmQgcHJvbXB0cyB0aGF0IGFyZSBkeW5hbWljYWxseSByZXRyaWV2ZWQgYnkgQW1hem9uIENvbm5lY3QgZHVyaW5nIGN1c3RvbWVyIGludGVyYWN0aW9ucycsXG4gICAgICB0ZXJtaW5hdGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgfSk7XG5cbiAgICAvLyBSZXNvbHZlIFZQQyBjb25maWd1cmF0aW9uIGlmIHByb3ZpZGVkXG4gICAgdGhpcy5fcmVzb2x2ZWRWcGNDb25maWcgPSBsYW1iZGFWcGNDb25maWdcbiAgICAgID8gdGhpcy5yZXNvbHZlVnBjQ29uZmlnKGxhbWJkYVZwY0NvbmZpZylcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gRHluYW1vREIgdGFibGUgZm9yIHN0b3JpbmcgZmxvdyBjb25maWdzXG4gICAgdGhpcy50YWJsZSA9IHRoaXMuY3JlYXRlVGFibGUocHJlZml4LCBwcm9kLCBnbG9iYWxUYWJsZSk7XG5cbiAgICB0aGlzLmFsZXJ0VG9waWMgPSBuZXcgVG9waWModGhpcywgJ0FsZXJ0VG9waWMnLCB7XG4gICAgICB0b3BpY05hbWU6IGAke3ByZWZpeH0tZXJyb3ItYWxlcnRzYCxcbiAgICB9KTtcbiAgICBhbGVydEVtYWlscy5mb3JFYWNoKChlKSA9PlxuICAgICAgdGhpcy5hbGVydFRvcGljLmFkZFN1YnNjcmlwdGlvbihuZXcgRW1haWxTdWJzY3JpcHRpb24oZSkpXG4gICAgKTtcblxuICAgIHRoaXMudXNlclBvb2wgPSBVc2VyUG9vbC5mcm9tVXNlclBvb2xJZChcbiAgICAgIHRoaXMsXG4gICAgICAnVXNlclBvb2wnLFxuICAgICAgY29nbml0by51c2VyUG9vbElkXG4gICAgKTtcblxuICAgIGNvbnN0IGdldENvbmZpZyA9IG5ldyBHZXRDb25maWcodGhpcyk7XG4gICAgdGhpcy5hcGkgPSBuZXcgQXBpKHRoaXMpO1xuXG4gICAgdGhpcy51c2VyUG9vbENsaWVudCA9IHRoaXMuY3JlYXRlVXNlclBvb2xDbGllbnQoKTtcbiAgICB0aGlzLmNyZWF0ZVVzZXJQb29sR3JvdXBzKCk7XG5cbiAgICB0aGlzLmFzc29jaWF0ZTNwQXBwKCk7XG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnQXBwVXJsJywge1xuICAgICAgdmFsdWU6IHRoaXMuYXBwVXJsLFxuICAgICAgZGVzY3JpcHRpb246ICdCYXNlIFVSTCBmb3IgdGhlIEZsb3cgQ29uZmlnIGFwcGxpY2F0aW9uJyxcbiAgICB9KTtcbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnQXBpVXJsJywge1xuICAgICAgdmFsdWU6IGAke3RoaXMuYXBwVXJsfS9hcGlgLFxuICAgICAgZGVzY3JpcHRpb246ICdCYXNlIFVSTCBmb3IgdGhlIEZsb3cgQ29uZmlnIEFQSScsXG4gICAgfSk7XG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ0dldENvbmZpZ0xhbWJkYU5hbWUnLCB7XG4gICAgICB2YWx1ZTogZ2V0Q29uZmlnLmZ1bmN0aW9uLmZ1bmN0aW9uTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnTGFtYmRhIGZ1bmN0aW9uIG5hbWUgZm9yIGFjY2Vzc2luZyBmbG93IGNvbmZpZ3MgZnJvbSBDb25uZWN0JyxcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZVVzZXJQb29sQ2xpZW50KCk6IFVzZXJQb29sQ2xpZW50IHtcbiAgICBjb25zdCB7IHByZWZpeCwgY29nbml0byB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGRvbWFpbnMgPSBbJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIHRoaXMuYXBwVXJsXTtcblxuICAgIGNvbnN0IG9BdXRoID0ge1xuICAgICAgY2FsbGJhY2tVcmxzOiBkb21haW5zLm1hcCgoeCkgPT4gYCR7eH0vcG9wdXAuaHRtbGApLFxuICAgICAgbG9nb3V0VXJsczogZG9tYWlucyxcbiAgICB9O1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBVc2VyUG9vbENsaWVudCh0aGlzLCAnVXNlclBvb2xDbGllbnQnLCB7XG4gICAgICB1c2VyUG9vbENsaWVudE5hbWU6IHByZWZpeCxcbiAgICAgIHVzZXJQb29sOiB0aGlzLnVzZXJQb29sLFxuICAgICAgc3VwcG9ydGVkSWRlbnRpdHlQcm92aWRlcnM6IGNvZ25pdG8uc3NvUHJvdmlkZXJOYW1lXG4gICAgICAgID8gW1VzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlci5jdXN0b20oY29nbml0by5zc29Qcm92aWRlck5hbWUpXVxuICAgICAgICA6IFtVc2VyUG9vbENsaWVudElkZW50aXR5UHJvdmlkZXIuQ09HTklUT10sXG4gICAgICBnZW5lcmF0ZVNlY3JldDogZmFsc2UsXG4gICAgICBvQXV0aCxcbiAgICB9KTtcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdVc2VyUG9vbENsaWVudElkJywge1xuICAgICAgdmFsdWU6IGNsaWVudC51c2VyUG9vbENsaWVudElkLFxuICAgIH0pO1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIENvZ25pdG8gVXNlciBHcm91cHMgZm9yIHJvbGUtYmFzZWQgYWNjZXNzIGNvbnRyb2xcbiAgICovXG4gIGNyZWF0ZVVzZXJQb29sR3JvdXBzKCk6IHZvaWQge1xuICAgIC8vIEZsb3dDb25maWdBZG1pbiAtIEZ1bGwgQ1JVRCBhY2Nlc3NcbiAgICBuZXcgQ2ZuVXNlclBvb2xHcm91cCh0aGlzLCAnRmxvd0NvbmZpZ0FkbWluR3JvdXAnLCB7XG4gICAgICB1c2VyUG9vbElkOiB0aGlzLnVzZXJQb29sLnVzZXJQb29sSWQsXG4gICAgICBncm91cE5hbWU6ICdGbG93Q29uZmlnQWRtaW4nLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdGdWxsIGFkbWluaXN0cmF0aXZlIGFjY2VzcyB0byBhbGwgZmxvdyBjb25maWdzIC0gY2FuIGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQgZGVsZXRlIGZsb3cgY29uZmlncyBhbmQgYWxsIHRoZWlyIHByb3BlcnRpZXMnLFxuICAgICAgcHJlY2VkZW5jZTogMSxcbiAgICB9KTtcblxuICAgIC8vIEZsb3dDb25maWdFZGl0IC0gRWRpdCB2YXJpYWJsZS9wcm9tcHQgdmFsdWVzIG9ubHlcbiAgICBuZXcgQ2ZuVXNlclBvb2xHcm91cCh0aGlzLCAnRmxvd0NvbmZpZ0VkaXRHcm91cCcsIHtcbiAgICAgIHVzZXJQb29sSWQ6IHRoaXMudXNlclBvb2wudXNlclBvb2xJZCxcbiAgICAgIGdyb3VwTmFtZTogJ0Zsb3dDb25maWdFZGl0JyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnRWRpdCBhY2Nlc3MgdG8gZmxvdyBjb25maWdzIC0gY2FuIHJlYWQgYW5kIG1vZGlmeSB2YXJpYWJsZSB2YWx1ZXMgYW5kIHByb21wdCBjb250ZW50IGJ1dCBjYW5ub3QgYWRkL3JlbW92ZSBmaWVsZHMgb3IgZGVsZXRlIGNvbmZpZ3MnLFxuICAgICAgcHJlY2VkZW5jZTogMixcbiAgICB9KTtcblxuICAgIC8vIEZsb3dDb25maWdSZWFkIC0gUmVhZC1vbmx5IGFjY2Vzc1xuICAgIG5ldyBDZm5Vc2VyUG9vbEdyb3VwKHRoaXMsICdGbG93Q29uZmlnUmVhZEdyb3VwJywge1xuICAgICAgdXNlclBvb2xJZDogdGhpcy51c2VyUG9vbC51c2VyUG9vbElkLFxuICAgICAgZ3JvdXBOYW1lOiAnRmxvd0NvbmZpZ1JlYWQnLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdSZWFkLW9ubHkgYWNjZXNzIHRvIGFsbCBmbG93IGNvbmZpZ3MgZm9yIHJlcG9ydGluZyBhbmQgcmVmZXJlbmNlIHB1cnBvc2VzJyxcbiAgICAgIHByZWNlZGVuY2U6IDMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXNzb2NpYXRlZCBWb2ljZW1haWwgYXMgQWdlbnQgV29ya3NwYWNlIGFwcFxuICAgKi9cbiAgYXNzb2NpYXRlM3BBcHAoKSB7XG4gICAgY29uc3Qge1xuICAgICAgcHJvcHM6IHsgcHJlZml4LCBjb25uZWN0SW5zdGFuY2VBcm4gfSxcbiAgICAgIGFwcFVybDogdXJsLFxuICAgIH0gPSB0aGlzO1xuICAgIGxldCBuYW1lc3BhY2UgPSBgY3hidWlsZGVyLiR7cHJlZml4fWA7XG4gICAgaWYgKG5hbWVzcGFjZS5sZW5ndGggPiAzMiAmJiAhY2RrLlRva2VuLmlzVW5yZXNvbHZlZChuYW1lc3BhY2UpKSB7XG4gICAgICBuYW1lc3BhY2UgPSBuYW1lc3BhY2Uuc3Vic3RyaW5nKDAsIDMyKTtcbiAgICB9XG5cbiAgICBjb25zdCBhcHAgPSBuZXcgQ2ZuQXBwbGljYXRpb24odGhpcywgJzNwQXBwJywge1xuICAgICAgbmFtZTogdGhpcy5wcm9wcy5wcmVmaXgsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0FnZW50IFdvcmtzcGFjZSBhcHAgZm9yIGNvbmZpZ3VyaW5nIGNvbnRhY3QgZmxvdyB2YXJpYWJsZXMgYW5kIHByb21wdHMnLFxuICAgICAgbmFtZXNwYWNlLFxuICAgICAgYXBwbGljYXRpb25Tb3VyY2VDb25maWc6IHtcbiAgICAgICAgZXh0ZXJuYWxVcmxDb25maWc6IHtcbiAgICAgICAgICBhY2Nlc3NVcmw6IHVybCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAvLyBkb2NzOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29ubmVjdC9sYXRlc3QvYWRtaW5ndWlkZS8zcC1hcHBzLWV2ZW50cy1yZXF1ZXN0cy5odG1sXG4gICAgICBwZXJtaXNzaW9uczogW1xuICAgICAgICAnVXNlci5EZXRhaWxzLlZpZXcnLFxuICAgICAgICAnVXNlci5Db25maWd1cmF0aW9uLlZpZXcnLFxuICAgICAgICAnVXNlci5TdGF0dXMuVmlldycsXG4gICAgICAgICdDb250YWN0LkRldGFpbHMuVmlldycsXG4gICAgICAgICdDb250YWN0LkN1c3RvbWVyRGV0YWlscy5WaWV3JyxcbiAgICAgICAgJ0NvbnRhY3QuVmFyaWFibGVzLlZpZXcnLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFzc29jaWF0aW9uID0gbmV3IENmbkludGVncmF0aW9uQXNzb2NpYXRpb24oXG4gICAgICB0aGlzLFxuICAgICAgJzNwQXBwQXNzb2NpYXRpb24nLFxuICAgICAge1xuICAgICAgICBpbnN0YW5jZUlkOiBjb25uZWN0SW5zdGFuY2VBcm4sXG4gICAgICAgIGludGVncmF0aW9uVHlwZTogJ0FQUExJQ0FUSU9OJyxcbiAgICAgICAgaW50ZWdyYXRpb25Bcm46IGFwcC5hdHRyQXBwbGljYXRpb25Bcm4sXG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFNlY3VyaXR5UHJvZmlsZVByb3ZpZGVyKFxuICAgICAgdGhpcyxcbiAgICAgICdTZWN1cml0eVByb2ZpbGVQcm92aWRlcicsXG4gICAgICB7XG4gICAgICAgIGNvbm5lY3RJbnN0YW5jZUFybixcbiAgICAgIH1cbiAgICApO1xuICAgIHByb3ZpZGVyLm5vZGUuYWRkRGVwZW5kZW5jeShhc3NvY2lhdGlvbik7XG5cbiAgICAvLyBBdXRvbWF0aWNhbGx5IGFzc29jaWF0ZSB3aXRoIHNlY3VyaXR5IHByb2ZpbGVzXG4gICAgY29uc3Qgc2VjdXJpdHlQcm9maWxlcyA9IFsnQWRtaW4nXTtcbiAgICBmb3IgKGNvbnN0IHByb2ZpbGUgb2Ygc2VjdXJpdHlQcm9maWxlcykge1xuICAgICAgcHJvdmlkZXIuYWxsb3dBcHBsaWNhdGlvbihgQWxsb3cke3Byb2ZpbGV9YCwgcHJvZmlsZSwgbmFtZXNwYWNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIER5bmFtb0RCIHRhYmxlIHdpdGggb3B0aW9uYWwgZ2xvYmFsIHRhYmxlIHN1cHBvcnRcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlVGFibGUoXG4gICAgcHJlZml4OiBzdHJpbmcsXG4gICAgcHJvZDogYm9vbGVhbixcbiAgICBnbG9iYWxUYWJsZT86IEdsb2JhbFRhYmxlQ29uZmlnXG4gICk6IGR5bmFtb2RiLklUYWJsZSB7XG4gICAgY29uc3QgdGFibGVOYW1lID0gcHJlZml4O1xuXG4gICAgaWYgKCFnbG9iYWxUYWJsZSkge1xuICAgICAgLy8gU2luZ2xlLXJlZ2lvbiB0YWJsZVxuICAgICAgcmV0dXJuIG5ldyBkeW5hbW9kYi5UYWJsZVYyKHRoaXMsICdUYWJsZScsIHtcbiAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICBwYXJ0aXRpb25LZXk6IHtcbiAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HLFxuICAgICAgICB9LFxuICAgICAgICBiaWxsaW5nOiBkeW5hbW9kYi5CaWxsaW5nLm9uRGVtYW5kKCksXG4gICAgICAgIHBvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uOiB7XG4gICAgICAgICAgcG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRlbGV0aW9uUHJvdGVjdGlvbjogcHJvZCxcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogcHJvZFxuICAgICAgICAgID8gY2RrLlJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAgICAgICAgOiBjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGdsb2JhbFRhYmxlLmlzUHJpbWFyeVJlZ2lvbikge1xuICAgICAgLy8gUHJpbWFyeSByZWdpb24gY3JlYXRlcyBnbG9iYWwgdGFibGUgd2l0aCByZXBsaWNhc1xuICAgICAgY29uc3QgdGFibGUgPSBuZXcgZHluYW1vZGIuVGFibGVWMih0aGlzLCAnVGFibGUnLCB7XG4gICAgICAgIHRhYmxlTmFtZSxcbiAgICAgICAgcGFydGl0aW9uS2V5OiB7XG4gICAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgICB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgfSxcbiAgICAgICAgYmlsbGluZzogZHluYW1vZGIuQmlsbGluZy5vbkRlbWFuZCgpLFxuICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbjoge1xuICAgICAgICAgIHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgICAgIHJlbW92YWxQb2xpY3k6IHByb2RcbiAgICAgICAgICA/IGNkay5SZW1vdmFsUG9saWN5LlJFVEFJTlxuICAgICAgICAgIDogY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIH0pO1xuICAgICAgaWYgKGdsb2JhbFRhYmxlLnJlcGxpY2FSZWdpb25zKSB7XG4gICAgICAgIGZvciAoY29uc3QgcmVnaW9uIG9mIGdsb2JhbFRhYmxlLnJlcGxpY2FSZWdpb25zKSB7XG4gICAgICAgICAgdGFibGUuYWRkUmVwbGljYSh7XG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbjoge1xuICAgICAgICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0YWJsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2Vjb25kYXJ5IHJlZ2lvbiByZWZlcmVuY2VzIGV4aXN0aW5nIGdsb2JhbCB0YWJsZVxuICAgICAgcmV0dXJuIGR5bmFtb2RiLlRhYmxlLmZyb21UYWJsZUFybihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ1RhYmxlJyxcbiAgICAgICAgYGFybjphd3M6ZHluYW1vZGI6JHt0aGlzLnJlZ2lvbn06JHt0aGlzLmFjY291bnR9OnRhYmxlLyR7dGFibGVOYW1lfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgVlBDIGNvbmZpZ3VyYXRpb24gc3RyaW5nIElEcyB0byBDREsgb2JqZWN0c1xuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlVnBjQ29uZmlnKHZwY0NvbmZpZzogTGFtYmRhVnBjQ29uZmlnKTogUmVzb2x2ZWRWcGNDb25maWcge1xuICAgIGNvbnN0IHsgdnBjSWQsIHNlY3VyaXR5R3JvdXBJZHMsIHN1Ym5ldElkcyB9ID0gdnBjQ29uZmlnO1xuXG4gICAgLy8gUmVzb2x2ZSBWUENcbiAgICBjb25zdCB2cGMgPSBlYzIuVnBjLmZyb21Mb29rdXAodGhpcywgJ1Jlc29sdmVkVnBjJywgeyB2cGNJZCB9KTtcblxuICAgIC8vIFJlc29sdmUgTGFtYmRhIHNlY3VyaXR5IGdyb3Vwc1xuICAgIGNvbnN0IGxhbWJkYVNlY3VyaXR5R3JvdXBzID0gc2VjdXJpdHlHcm91cElkcy5tYXAoKHNnSWQsIGluZGV4KSA9PlxuICAgICAgZWMyLlNlY3VyaXR5R3JvdXAuZnJvbVNlY3VyaXR5R3JvdXBJZChcbiAgICAgICAgdGhpcyxcbiAgICAgICAgYExhbWJkYVNlY3VyaXR5R3JvdXAke2luZGV4fWAsXG4gICAgICAgIHNnSWRcbiAgICAgIClcbiAgICApO1xuXG4gICAgLy8gUmVzb2x2ZSBwcml2YXRlIHN1Ym5ldHNcbiAgICBjb25zdCBwcml2YXRlU3VibmV0cyA9IHN1Ym5ldElkcy5tYXAoKHN1Ym5ldElkLCBpbmRleCkgPT5cbiAgICAgIGVjMi5TdWJuZXQuZnJvbVN1Ym5ldElkKHRoaXMsIGBQcml2YXRlU3VibmV0JHtpbmRleH1gLCBzdWJuZXRJZClcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZwYyxcbiAgICAgIGxhbWJkYVNlY3VyaXR5R3JvdXBzLFxuICAgICAgcHJpdmF0ZVN1Ym5ldHMsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -10,7 +10,7 @@ class GetConfig extends constructs_1.Construct {
|
|
|
10
10
|
super(stack, 'GetConfig');
|
|
11
11
|
const { connectInstanceArn, prefix } = stack.props;
|
|
12
12
|
this.function = (0, createLambda_1.createLambda)(this, 'Handler', {
|
|
13
|
-
functionName:
|
|
13
|
+
functionName: prefix,
|
|
14
14
|
environment: {
|
|
15
15
|
FLOW_CONFIGS_TABLE_NAME: stack.table.tableName,
|
|
16
16
|
},
|
|
@@ -31,4 +31,4 @@ class GetConfig extends constructs_1.Construct {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
exports.GetConfig = GetConfig;
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9pbmZyYXN0cnVjdHVyZS9HZXRDb25maWcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBQ3ZDLGtEQUErQztBQUkvQyx5REFBb0U7QUFDcEUsbUNBQW1DO0FBRW5DLE1BQWEsU0FBVSxTQUFRLHNCQUFTO0lBRXRDLFlBQVksS0FBc0I7UUFDaEMsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztRQUUxQixNQUFNLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUVuRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUEsMkJBQVksRUFBZSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQzFELFlBQVksRUFBRSxNQUFNO1lBQ3BCLFdBQVcsRUFBRTtnQkFDWCx1QkFBdUIsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVM7YUFDL0M7WUFDRCxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7U0FDN0IsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFOUMsNEVBQTRFO1FBQzVFLElBQUksdUNBQXlCLENBQUMsSUFBSSxFQUFFLDBCQUEwQixFQUFFO1lBQzlELFVBQVUsRUFBRSxrQkFBa0I7WUFDOUIsZUFBZSxFQUFFLGlCQUFpQjtZQUNsQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXO1NBQzFDLENBQUMsQ0FBQztRQUVILGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsRUFBRTtZQUNyRCxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDO1lBQ3BFLFNBQVMsRUFBRSxrQkFBa0I7U0FDOUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBOUJELDhCQThCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgY3JlYXRlTGFtYmRhIH0gZnJvbSAnLi4vY3JlYXRlTGFtYmRhJztcbmltcG9ydCB7IEZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBGbG93Q29uZmlnU3RhY2sgfSBmcm9tICcuLi9GbG93Q29uZmlnU3RhY2snO1xuaW1wb3J0IHsgR2V0Q29uZmlnRW52IH0gZnJvbSAnLi9HZXRDb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IENmbkludGVncmF0aW9uQXNzb2NpYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29ubmVjdCc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuXG5leHBvcnQgY2xhc3MgR2V0Q29uZmlnIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgZnVuY3Rpb246IEZ1bmN0aW9uO1xuICBjb25zdHJ1Y3RvcihzdGFjazogRmxvd0NvbmZpZ1N0YWNrKSB7XG4gICAgc3VwZXIoc3RhY2ssICdHZXRDb25maWcnKTtcblxuICAgIGNvbnN0IHsgY29ubmVjdEluc3RhbmNlQXJuLCBwcmVmaXggfSA9IHN0YWNrLnByb3BzO1xuXG4gICAgdGhpcy5mdW5jdGlvbiA9IGNyZWF0ZUxhbWJkYTxHZXRDb25maWdFbnY+KHRoaXMsICdIYW5kbGVyJywge1xuICAgICAgZnVuY3Rpb25OYW1lOiBwcmVmaXgsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBGTE9XX0NPTkZJR1NfVEFCTEVfTkFNRTogc3RhY2sudGFibGUudGFibGVOYW1lLFxuICAgICAgfSxcbiAgICAgIGFsZXJ0VG9waWM6IHN0YWNrLmFsZXJ0VG9waWMsXG4gICAgfSk7XG5cbiAgICBzdGFjay50YWJsZS5ncmFudFJlYWRXcml0ZURhdGEodGhpcy5mdW5jdGlvbik7XG5cbiAgICAvLyBBc3NvY2lhdGUgTGFtYmRhIHdpdGggQ29ubmVjdCBpbnN0YW5jZSBzbyBpdCBjYW4gYmUgdXNlZCBpbiBjb250YWN0IGZsb3dzXG4gICAgbmV3IENmbkludGVncmF0aW9uQXNzb2NpYXRpb24odGhpcywgJ0Nvbm5lY3RMYW1iZGFBc3NvY2lhdGlvbicsIHtcbiAgICAgIGluc3RhbmNlSWQ6IGNvbm5lY3RJbnN0YW5jZUFybixcbiAgICAgIGludGVncmF0aW9uVHlwZTogJ0xBTUJEQV9GVU5DVElPTicsXG4gICAgICBpbnRlZ3JhdGlvbkFybjogdGhpcy5mdW5jdGlvbi5mdW5jdGlvbkFybixcbiAgICB9KTtcblxuICAgIC8vIEdyYW50IENvbm5lY3QgcGVybWlzc2lvbiB0byBpbnZva2UgdGhlIExhbWJkYVxuICAgIHRoaXMuZnVuY3Rpb24uYWRkUGVybWlzc2lvbignQ29ubmVjdEludm9rZVBlcm1pc3Npb24nLCB7XG4gICAgICBwcmluY2lwYWw6IG5ldyBjZGsuYXdzX2lhbS5TZXJ2aWNlUHJpbmNpcGFsKCdjb25uZWN0LmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIHNvdXJjZUFybjogY29ubmVjdEluc3RhbmNlQXJuLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { Construct } from 'constructs';
|
|
2
2
|
import { SpecRestApi } from 'aws-cdk-lib/aws-apigateway';
|
|
3
|
+
import { IInterfaceVpcEndpoint } from 'aws-cdk-lib/aws-ec2';
|
|
3
4
|
import { FlowConfigStack } from '../FlowConfigStack';
|
|
4
5
|
import { Static } from './Static';
|
|
5
6
|
export declare class Api extends Construct {
|
|
6
7
|
stack: FlowConfigStack;
|
|
7
|
-
staticHosting: Static;
|
|
8
|
-
restApi: SpecRestApi;
|
|
8
|
+
readonly staticHosting: Static;
|
|
9
|
+
readonly restApi: SpecRestApi;
|
|
10
|
+
readonly vpcEndpoint?: IInterfaceVpcEndpoint;
|
|
11
|
+
readonly url: string;
|
|
9
12
|
constructor(stack: FlowConfigStack);
|
|
10
13
|
/**
|
|
11
14
|
* Create a resource policy for the VPC endpoint to restrict access to the specific VPC
|
|
@@ -9,6 +9,7 @@ const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
|
|
|
9
9
|
const Init_1 = require("./Init");
|
|
10
10
|
const FlowConfig_1 = require("./FlowConfig");
|
|
11
11
|
const PreviewSpeech_1 = require("./PreviewSpeech");
|
|
12
|
+
const Settings_1 = require("./Settings");
|
|
12
13
|
const yaml_1 = require("yaml");
|
|
13
14
|
const fs_1 = require("fs");
|
|
14
15
|
const Users_1 = require("./Users");
|
|
@@ -19,32 +20,31 @@ class Api extends constructs_1.Construct {
|
|
|
19
20
|
this.stack = stack;
|
|
20
21
|
// Create static hosting construct first
|
|
21
22
|
this.staticHosting = new Static_1.Static(this);
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
const { prefix, apiVpcConfig: apiVpcEndpoint } = stack.props;
|
|
24
|
+
this.vpcEndpoint = apiVpcEndpoint
|
|
25
|
+
? aws_ec2_1.InterfaceVpcEndpoint.fromInterfaceVpcEndpointAttributes(this, 'ExistingVpcEndpoint', {
|
|
26
|
+
vpcEndpointId: apiVpcEndpoint.vpcEndpointId,
|
|
27
|
+
port: 443,
|
|
28
|
+
})
|
|
29
|
+
: undefined;
|
|
30
|
+
const apiGatewayProps = this.vpcEndpoint && apiVpcEndpoint?.vpcId
|
|
25
31
|
? {
|
|
26
|
-
restApiName:
|
|
32
|
+
restApiName: prefix,
|
|
27
33
|
endpointConfiguration: {
|
|
28
34
|
types: [aws_apigateway_1.EndpointType.PRIVATE],
|
|
29
|
-
vpcEndpoints: [
|
|
30
|
-
new aws_ec2_1.InterfaceVpcEndpoint(this, 'ApiVpcEndpoint', {
|
|
31
|
-
vpc: vpcConfig.vpc,
|
|
32
|
-
service: aws_ec2_1.InterfaceVpcEndpointAwsService.APIGATEWAY,
|
|
33
|
-
subnets: { subnets: vpcConfig.privateSubnets },
|
|
34
|
-
securityGroups: vpcConfig.vpcEndpointSecurityGroups,
|
|
35
|
-
}),
|
|
36
|
-
],
|
|
35
|
+
vpcEndpoints: [this.vpcEndpoint],
|
|
37
36
|
},
|
|
38
|
-
policy: this.createVpcEndpointPolicy(
|
|
37
|
+
policy: this.createVpcEndpointPolicy(apiVpcEndpoint.vpcId),
|
|
39
38
|
}
|
|
40
39
|
: {
|
|
41
|
-
restApiName:
|
|
40
|
+
restApiName: prefix,
|
|
42
41
|
};
|
|
43
42
|
// Create Lambda functions
|
|
44
43
|
const initLambda = new Init_1.Init(this).lambda;
|
|
45
44
|
const usersLambda = new Users_1.Users(this).lambda;
|
|
46
45
|
const flowConfigLambda = new FlowConfig_1.FlowConfig(this).lambda;
|
|
47
46
|
const previewSpeechLambda = new PreviewSpeech_1.PreviewSpeech(this).lambda;
|
|
47
|
+
const settingsLambda = new Settings_1.Settings(this).lambda;
|
|
48
48
|
const staticLambda = this.staticHosting.handler;
|
|
49
49
|
// Update Authorizer Provider ARN
|
|
50
50
|
const sourceFileName = (0, path_1.join)(__dirname, 'spec.yaml');
|
|
@@ -67,6 +67,8 @@ class Api extends constructs_1.Construct {
|
|
|
67
67
|
setLambdaIntegration('/api/flow-config/{id}', 'delete', flowConfigLambda);
|
|
68
68
|
setLambdaIntegration('/api/flow-config/preview', 'post', flowConfigLambda);
|
|
69
69
|
setLambdaIntegration('/api/preview-speech', 'post', previewSpeechLambda);
|
|
70
|
+
setLambdaIntegration('/api/settings', 'get', settingsLambda);
|
|
71
|
+
setLambdaIntegration('/api/settings', 'post', settingsLambda);
|
|
70
72
|
setLambdaIntegration('/{proxy+}', 'get', staticLambda);
|
|
71
73
|
setLambdaIntegration('/', 'get', staticLambda);
|
|
72
74
|
// Create API Gateway from updated OpenAPI spec
|
|
@@ -80,7 +82,11 @@ class Api extends constructs_1.Construct {
|
|
|
80
82
|
usersLambda.grantInvoke(apiGatewayPrincipal);
|
|
81
83
|
flowConfigLambda.grantInvoke(apiGatewayPrincipal);
|
|
82
84
|
previewSpeechLambda.grantInvoke(apiGatewayPrincipal);
|
|
85
|
+
settingsLambda.grantInvoke(apiGatewayPrincipal);
|
|
83
86
|
staticLambda.grantInvoke(apiGatewayPrincipal);
|
|
87
|
+
this.url = this.vpcEndpoint
|
|
88
|
+
? `https://${this.restApi.restApiId}-${this.vpcEndpoint.vpcEndpointId}.execute-api.${stack.region}.amazonaws.com/prod`
|
|
89
|
+
: `https://${this.restApi.restApiId}.execute-api.${stack.region}.amazonaws.com/prod`;
|
|
84
90
|
}
|
|
85
91
|
/**
|
|
86
92
|
* Create a resource policy for the VPC endpoint to restrict access to the specific VPC
|
|
@@ -104,4 +110,4 @@ class Api extends constructs_1.Construct {
|
|
|
104
110
|
}
|
|
105
111
|
}
|
|
106
112
|
exports.Api = Api;
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vaW5mcmFzdHJ1Y3R1cmUvYXBpL0FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFDdkMsK0JBQTRCO0FBQzVCLCtEQUtvQztBQUNwQyxpREFNNkI7QUFDN0IsaURBRzZCO0FBQzdCLGlDQUE4QjtBQUM5Qiw2Q0FBMEM7QUFDMUMsbURBQWdEO0FBQ2hELCtCQUE2QjtBQUM3QiwyQkFBa0M7QUFFbEMsbUNBQWdDO0FBQ2hDLHFDQUFrQztBQUVsQyxNQUFhLEdBQUksU0FBUSxzQkFBUztJQUloQyxZQUFtQixLQUFzQjtRQUN2QyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBREgsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFHdkMsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsOENBQThDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2hELE1BQU0sZUFBZSxHQUFxQixTQUFTO1lBQ2pELENBQUMsQ0FBQztnQkFDRSxXQUFXLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNO2dCQUMvQixxQkFBcUIsRUFBRTtvQkFDckIsS0FBSyxFQUFFLENBQUMsNkJBQVksQ0FBQyxPQUFPLENBQUM7b0JBQzdCLFlBQVksRUFBRTt3QkFDWixJQUFJLDhCQUFvQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTs0QkFDL0MsR0FBRyxFQUFFLFNBQVMsQ0FBQyxHQUFHOzRCQUNsQixPQUFPLEVBQUUsd0NBQThCLENBQUMsVUFBVTs0QkFDbEQsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxjQUFjLEVBQUU7NEJBQzlDLGNBQWMsRUFBRSxTQUFTLENBQUMseUJBQXlCO3lCQUNwRCxDQUFDO3FCQUNIO2lCQUNG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MEJBQTBCLENBQzNCLENBQUM7UUFDRixVQUFVLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDNUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xELG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3JELFlBQVksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSyx1QkFBdUIsQ0FBQyxLQUFhO1FBQzNDLE9BQU8sSUFBSSx3QkFBYyxDQUFDO1lBQ3hCLFVBQVUsRUFBRTtnQkFDVixJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7b0JBQ3BCLFVBQVUsRUFBRSxDQUFDLElBQUksc0JBQVksRUFBRSxDQUFDO29CQUNoQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzFCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztvQkFDaEIsVUFBVSxFQUFFO3dCQUNWLFlBQVksRUFBRTs0QkFDWixlQUFlLEVBQUUsS0FBSzt5QkFDdkI7cUJBQ0Y7aUJBQ0YsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBN0dELGtCQTZHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtcbiAgRW5kcG9pbnRUeXBlLFxuICBSZXN0QXBpQmFzZVByb3BzLFxuICBTcGVjUmVzdEFwaSxcbiAgQXBpRGVmaW5pdGlvbixcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXknO1xuaW1wb3J0IHtcbiAgUG9saWN5RG9jdW1lbnQsXG4gIFBvbGljeVN0YXRlbWVudCxcbiAgRWZmZWN0LFxuICBBbnlQcmluY2lwYWwsXG4gIFNlcnZpY2VQcmluY2lwYWwsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHtcbiAgSW50ZXJmYWNlVnBjRW5kcG9pbnQsXG4gIEludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZSxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBJbml0IH0gZnJvbSAnLi9Jbml0JztcbmltcG9ydCB7IEZsb3dDb25maWcgfSBmcm9tICcuL0Zsb3dDb25maWcnO1xuaW1wb3J0IHsgUHJldmlld1NwZWVjaCB9IGZyb20gJy4vUHJldmlld1NwZWVjaCc7XG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gJ3lhbWwnO1xuaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgRmxvd0NvbmZpZ1N0YWNrIH0gZnJvbSAnLi4vRmxvd0NvbmZpZ1N0YWNrJztcbmltcG9ydCB7IFVzZXJzIH0gZnJvbSAnLi9Vc2Vycyc7XG5pbXBvcnQgeyBTdGF0aWMgfSBmcm9tICcuL1N0YXRpYyc7XG5cbmV4cG9ydCBjbGFzcyBBcGkgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBzdGF0aWNIb3N0aW5nOiBTdGF0aWM7XG4gIHJlc3RBcGk6IFNwZWNSZXN0QXBpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzdGFjazogRmxvd0NvbmZpZ1N0YWNrKSB7XG4gICAgc3VwZXIoc3RhY2ssICdBcGknKTtcblxuICAgIC8vIENyZWF0ZSBzdGF0aWMgaG9zdGluZyBjb25zdHJ1Y3QgZmlyc3RcbiAgICB0aGlzLnN0YXRpY0hvc3RpbmcgPSBuZXcgU3RhdGljKHRoaXMpO1xuXG4gICAgLy8gQ29uZmlndXJlIEFQSSBHYXRld2F5IGJhc2VkIG9uIFZQQyBzZXR0aW5nc1xuICAgIGNvbnN0IHZwY0NvbmZpZyA9IHN0YWNrLl9nZXRSZXNvbHZlZFZwY0NvbmZpZygpO1xuICAgIGNvbnN0IGFwaUdhdGV3YXlQcm9wczogUmVzdEFwaUJhc2VQcm9wcyA9IHZwY0NvbmZpZ1xuICAgICAgPyB7XG4gICAgICAgICAgcmVzdEFwaU5hbWU6IHN0YWNrLnByb3BzLnByZWZpeCxcbiAgICAgICAgICBlbmRwb2ludENvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgIHR5cGVzOiBbRW5kcG9pbnRUeXBlLlBSSVZBVEVdLFxuICAgICAgICAgICAgdnBjRW5kcG9pbnRzOiBbXG4gICAgICAgICAgICAgIG5ldyBJbnRlcmZhY2VWcGNFbmRwb2ludCh0aGlzLCAnQXBpVnBjRW5kcG9pbnQnLCB7XG4gICAgICAgICAgICAgICAgdnBjOiB2cGNDb25maWcudnBjLFxuICAgICAgICAgICAgICAgIHNlcnZpY2U6IEludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5BUElHQVRFV0FZLFxuICAgICAgICAgICAgICAgIHN1Ym5ldHM6IHsgc3VibmV0czogdnBjQ29uZmlnLnByaXZhdGVTdWJuZXRzIH0sXG4gICAgICAgICAgICAgICAgc2VjdXJpdHlHcm91cHM6IHZwY0NvbmZpZy52cGNFbmRwb2ludFNlY3VyaXR5R3JvdXBzLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwb2xpY3k6IHRoaXMuY3JlYXRlVnBjRW5kcG9pbnRQb2xpY3kodnBjQ29uZmlnLnZwYy52cGNJZCksXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIHJlc3RBcGlOYW1lOiBzdGFjay5wcm9wcy5wcmVmaXgsXG4gICAgICAgIH07XG5cbiAgICAvLyBDcmVhdGUgTGFtYmRhIGZ1bmN0aW9uc1xuICAgIGNvbnN0IGluaXRMYW1iZGEgPSBuZXcgSW5pdCh0aGlzKS5sYW1iZGE7XG4gICAgY29uc3QgdXNlcnNMYW1iZGEgPSBuZXcgVXNlcnModGhpcykubGFtYmRhO1xuICAgIGNvbnN0IGZsb3dDb25maWdMYW1iZGEgPSBuZXcgRmxvd0NvbmZpZyh0aGlzKS5sYW1iZGE7XG4gICAgY29uc3QgcHJldmlld1NwZWVjaExhbWJkYSA9IG5ldyBQcmV2aWV3U3BlZWNoKHRoaXMpLmxhbWJkYTtcbiAgICBjb25zdCBzdGF0aWNMYW1iZGEgPSB0aGlzLnN0YXRpY0hvc3RpbmcuaGFuZGxlcjtcblxuICAgIC8vIFVwZGF0ZSBBdXRob3JpemVyIFByb3ZpZGVyIEFSTlxuICAgIGNvbnN0IHNvdXJjZUZpbGVOYW1lID0gam9pbihfX2Rpcm5hbWUsICdzcGVjLnlhbWwnKTtcbiAgICBjb25zdCB5bWwgPSByZWFkRmlsZVN5bmMoc291cmNlRmlsZU5hbWUpLnRvU3RyaW5nKCk7XG4gICAgY29uc3Qgc3BlYyA9IHBhcnNlKHltbCk7XG5cbiAgICBjb25zdCBhdXRob3JpemVyID0gc3BlYy5jb21wb25lbnRzLnNlY3VyaXR5U2NoZW1lcy5Db2duaXRvQXV0aG9yaXplcjtcbiAgICBhdXRob3JpemVyWyd4LWFtYXpvbi1hcGlnYXRld2F5LWF1dGhvcml6ZXInXS5wcm92aWRlckFSTnMgPSBbXG4gICAgICBzdGFjay51c2VyUG9vbC51c2VyUG9vbEFybixcbiAgICBdO1xuXG4gICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHNldCBMYW1iZGEgaW50ZWdyYXRpb24gVVJJXG4gICAgY29uc3Qgc2V0TGFtYmRhSW50ZWdyYXRpb24gPSAoXG4gICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICBtZXRob2Q6IHN0cmluZyxcbiAgICAgIGxhbWJkYTogYW55XG4gICAgKSA9PiB7XG4gICAgICBzcGVjLnBhdGhzW3BhdGhdW21ldGhvZF1bXG4gICAgICAgICd4LWFtYXpvbi1hcGlnYXRld2F5LWludGVncmF0aW9uJ1xuICAgICAgXS51cmkgPSBgYXJuOmF3czphcGlnYXRld2F5OiR7c3RhY2sucmVnaW9ufTpsYW1iZGE6cGF0aC8yMDE1LTAzLTMxL2Z1bmN0aW9ucy8ke2xhbWJkYS5mdW5jdGlvbkFybn0vaW52b2NhdGlvbnNgO1xuICAgIH07XG5cbiAgICAvLyBVcGRhdGUgdGhlIHNwZWMgdG8gcmVwbGFjZSBoYW5kbGVyIFVSSXMgd2l0aCBhY3R1YWwgTGFtYmRhIEFSTnNcbiAgICBzZXRMYW1iZGFJbnRlZ3JhdGlvbignL2FwaS9pbml0JywgJ2dldCcsIGluaXRMYW1iZGEpO1xuICAgIHNldExhbWJkYUludGVncmF0aW9uKCcvYXBpL3VzZXJzL3t1c2VySWR9JywgJ2dldCcsIHVzZXJzTGFtYmRhKTtcbiAgICBzZXRMYW1iZGFJbnRlZ3JhdGlvbignL2FwaS9mbG93LWNvbmZpZycsICdnZXQnLCBmbG93Q29uZmlnTGFtYmRhKTtcbiAgICBzZXRMYW1iZGFJbnRlZ3JhdGlvbignL2FwaS9mbG93LWNvbmZpZy97aWR9JywgJ2dldCcsIGZsb3dDb25maWdMYW1iZGEpO1xuICAgIHNldExhbWJkYUludGVncmF0aW9uKCcvYXBpL2Zsb3ctY29uZmlnL3tpZH0nLCAncG9zdCcsIGZsb3dDb25maWdMYW1iZGEpO1xuICAgIHNldExhbWJkYUludGVncmF0aW9uKCcvYXBpL2Zsb3ctY29uZmlnL3tpZH0nLCAnZGVsZXRlJywgZmxvd0NvbmZpZ0xhbWJkYSk7XG4gICAgc2V0TGFtYmRhSW50ZWdyYXRpb24oJy9hcGkvZmxvdy1jb25maWcvcHJldmlldycsICdwb3N0JywgZmxvd0NvbmZpZ0xhbWJkYSk7XG4gICAgc2V0TGFtYmRhSW50ZWdyYXRpb24oJy9hcGkvcHJldmlldy1zcGVlY2gnLCAncG9zdCcsIHByZXZpZXdTcGVlY2hMYW1iZGEpO1xuICAgIHNldExhbWJkYUludGVncmF0aW9uKCcve3Byb3h5K30nLCAnZ2V0Jywgc3RhdGljTGFtYmRhKTtcbiAgICBzZXRMYW1iZGFJbnRlZ3JhdGlvbignLycsICdnZXQnLCBzdGF0aWNMYW1iZGEpO1xuXG4gICAgLy8gQ3JlYXRlIEFQSSBHYXRld2F5IGZyb20gdXBkYXRlZCBPcGVuQVBJIHNwZWNcbiAgICB0aGlzLnJlc3RBcGkgPSBuZXcgU3BlY1Jlc3RBcGkodGhpcywgJ1Jlc3RBcGknLCB7XG4gICAgICAuLi5hcGlHYXRld2F5UHJvcHMsXG4gICAgICBhcGlEZWZpbml0aW9uOiBBcGlEZWZpbml0aW9uLmZyb21JbmxpbmUoc3BlYyksXG4gICAgfSk7XG5cbiAgICAvLyBHcmFudCBBUEkgR2F0ZXdheSBwZXJtaXNzaW9uIHRvIGludm9rZSBMYW1iZGEgZnVuY3Rpb25zXG4gICAgY29uc3QgYXBpR2F0ZXdheVByaW5jaXBhbCA9IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKFxuICAgICAgJ2FwaWdhdGV3YXkuYW1hem9uYXdzLmNvbSdcbiAgICApO1xuICAgIGluaXRMYW1iZGEuZ3JhbnRJbnZva2UoYXBpR2F0ZXdheVByaW5jaXBhbCk7XG4gICAgdXNlcnNMYW1iZGEuZ3JhbnRJbnZva2UoYXBpR2F0ZXdheVByaW5jaXBhbCk7XG4gICAgZmxvd0NvbmZpZ0xhbWJkYS5ncmFudEludm9rZShhcGlHYXRld2F5UHJpbmNpcGFsKTtcbiAgICBwcmV2aWV3U3BlZWNoTGFtYmRhLmdyYW50SW52b2tlKGFwaUdhdGV3YXlQcmluY2lwYWwpO1xuICAgIHN0YXRpY0xhbWJkYS5ncmFudEludm9rZShhcGlHYXRld2F5UHJpbmNpcGFsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSByZXNvdXJjZSBwb2xpY3kgZm9yIHRoZSBWUEMgZW5kcG9pbnQgdG8gcmVzdHJpY3QgYWNjZXNzIHRvIHRoZSBzcGVjaWZpYyBWUENcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlVnBjRW5kcG9pbnRQb2xpY3kodnBjSWQ6IHN0cmluZyk6IFBvbGljeURvY3VtZW50IHtcbiAgICByZXR1cm4gbmV3IFBvbGljeURvY3VtZW50KHtcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgcHJpbmNpcGFsczogW25ldyBBbnlQcmluY2lwYWwoKV0sXG4gICAgICAgICAgYWN0aW9uczogWydleGVjdXRlLWFwaToqJ10sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgICAgJ2F3czpTb3VyY2VWcGMnOiB2cGNJZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vaW5mcmFzdHJ1Y3R1cmUvYXBpL0FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFDdkMsK0JBQTRCO0FBQzVCLCtEQUtvQztBQUNwQyxpREFNNkI7QUFDN0IsaURBRzZCO0FBQzdCLGlDQUE4QjtBQUM5Qiw2Q0FBMEM7QUFDMUMsbURBQWdEO0FBQ2hELHlDQUFzQztBQUN0QywrQkFBNkI7QUFDN0IsMkJBQWtDO0FBRWxDLG1DQUFnQztBQUNoQyxxQ0FBa0M7QUFFbEMsTUFBYSxHQUFJLFNBQVEsc0JBQVM7SUFNaEMsWUFBbUIsS0FBc0I7UUFDdkMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQURILFVBQUssR0FBTCxLQUFLLENBQWlCO1FBR3ZDLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksZUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRDLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFFN0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjO1lBQy9CLENBQUMsQ0FBQyw4QkFBb0IsQ0FBQyxrQ0FBa0MsQ0FDckQsSUFBSSxFQUNKLHFCQUFxQixFQUNyQjtnQkFDRSxhQUFhLEVBQUUsY0FBYyxDQUFDLGFBQWE7Z0JBQzNDLElBQUksRUFBRSxHQUFHO2FBQ1YsQ0FDRjtZQUNILENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFZCxNQUFNLGVBQWUsR0FDbkIsSUFBSSxDQUFDLFdBQVcsSUFBSSxjQUFjLEVBQUUsS0FBSztZQUN2QyxDQUFDLENBQUM7Z0JBQ0UsV0FBVyxFQUFFLE1BQU07Z0JBQ25CLHFCQUFxQixFQUFFO29CQUNyQixLQUFLLEVBQUUsQ0FBQyw2QkFBWSxDQUFDLE9BQU8sQ0FBQztvQkFDN0IsWUFBWSxFQUFFLENBQUMs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QUUsQ0FBQyxHQUFHLENBQUM7b0JBQ2hCLFVBQVUsRUFBRTt3QkFDVixZQUFZLEVBQUU7NEJBQ1osZUFBZSxFQUFFLEtBQUs7eUJBQ3ZCO3FCQUNGO2lCQUNGLENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTVIRCxrQkE0SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCB7XG4gIEVuZHBvaW50VHlwZSxcbiAgUmVzdEFwaUJhc2VQcm9wcyxcbiAgU3BlY1Jlc3RBcGksXG4gIEFwaURlZmluaXRpb24sXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5JztcbmltcG9ydCB7XG4gIFBvbGljeURvY3VtZW50LFxuICBQb2xpY3lTdGF0ZW1lbnQsXG4gIEVmZmVjdCxcbiAgQW55UHJpbmNpcGFsLFxuICBTZXJ2aWNlUHJpbmNpcGFsLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7XG4gIElJbnRlcmZhY2VWcGNFbmRwb2ludCxcbiAgSW50ZXJmYWNlVnBjRW5kcG9pbnQsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgSW5pdCB9IGZyb20gJy4vSW5pdCc7XG5pbXBvcnQgeyBGbG93Q29uZmlnIH0gZnJvbSAnLi9GbG93Q29uZmlnJztcbmltcG9ydCB7IFByZXZpZXdTcGVlY2ggfSBmcm9tICcuL1ByZXZpZXdTcGVlY2gnO1xuaW1wb3J0IHsgU2V0dGluZ3MgfSBmcm9tICcuL1NldHRpbmdzJztcbmltcG9ydCB7IHBhcnNlIH0gZnJvbSAneWFtbCc7XG5pbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyBGbG93Q29uZmlnU3RhY2sgfSBmcm9tICcuLi9GbG93Q29uZmlnU3RhY2snO1xuaW1wb3J0IHsgVXNlcnMgfSBmcm9tICcuL1VzZXJzJztcbmltcG9ydCB7IFN0YXRpYyB9IGZyb20gJy4vU3RhdGljJztcblxuZXhwb3J0IGNsYXNzIEFwaSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IHN0YXRpY0hvc3Rpbmc6IFN0YXRpYztcbiAgcmVhZG9ubHkgcmVzdEFwaTogU3BlY1Jlc3RBcGk7XG4gIHJlYWRvbmx5IHZwY0VuZHBvaW50PzogSUludGVyZmFjZVZwY0VuZHBvaW50O1xuICByZWFkb25seSB1cmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc3RhY2s6IEZsb3dDb25maWdTdGFjaykge1xuICAgIHN1cGVyKHN0YWNrLCAnQXBpJyk7XG5cbiAgICAvLyBDcmVhdGUgc3RhdGljIGhvc3RpbmcgY29uc3RydWN0IGZpcnN0XG4gICAgdGhpcy5zdGF0aWNIb3N0aW5nID0gbmV3IFN0YXRpYyh0aGlzKTtcblxuICAgIGNvbnN0IHsgcHJlZml4LCBhcGlWcGNDb25maWc6IGFwaVZwY0VuZHBvaW50IH0gPSBzdGFjay5wcm9wcztcblxuICAgIHRoaXMudnBjRW5kcG9pbnQgPSBhcGlWcGNFbmRwb2ludFxuICAgICAgPyBJbnRlcmZhY2VWcGNFbmRwb2ludC5mcm9tSW50ZXJmYWNlVnBjRW5kcG9pbnRBdHRyaWJ1dGVzKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgJ0V4aXN0aW5nVnBjRW5kcG9pbnQnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZwY0VuZHBvaW50SWQ6IGFwaVZwY0VuZHBvaW50LnZwY0VuZHBvaW50SWQsXG4gICAgICAgICAgICBwb3J0OiA0NDMsXG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGFwaUdhdGV3YXlQcm9wczogUmVzdEFwaUJhc2VQcm9wcyA9XG4gICAgICB0aGlzLnZwY0VuZHBvaW50ICYmIGFwaVZwY0VuZHBvaW50Py52cGNJZFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIHJlc3RBcGlOYW1lOiBwcmVmaXgsXG4gICAgICAgICAgICBlbmRwb2ludENvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgICAgdHlwZXM6IFtFbmRwb2ludFR5cGUuUFJJVkFURV0sXG4gICAgICAgICAgICAgIHZwY0VuZHBvaW50czogW3RoaXMudnBjRW5kcG9pbnRdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBvbGljeTogdGhpcy5jcmVhdGVWcGNFbmRwb2ludFBvbGljeShhcGlWcGNFbmRwb2ludC52cGNJZCksXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIHJlc3RBcGlOYW1lOiBwcmVmaXgsXG4gICAgICAgICAgfTtcblxuICAgIC8vIENyZWF0ZSBMYW1iZGEgZnVuY3Rpb25zXG4gICAgY29uc3QgaW5pdExhbWJkYSA9IG5ldyBJbml0KHRoaXMpLmxhbWJkYTtcbiAgICBjb25zdCB1c2Vyc0xhbWJkYSA9IG5ldyBVc2Vycyh0aGlzKS5sYW1iZGE7XG4gICAgY29uc3QgZmxvd0NvbmZpZ0xhbWJkYSA9IG5ldyBGbG93Q29uZmlnKHRoaXMpLmxhbWJkYTtcbiAgICBjb25zdCBwcmV2aWV3U3BlZWNoTGFtYmRhID0gbmV3IFByZXZpZXdTcGVlY2godGhpcykubGFtYmRhO1xuICAgIGNvbnN0IHNldHRpbmdzTGFtYmRhID0gbmV3IFNldHRpbmdzKHRoaXMpLmxhbWJkYTtcbiAgICBjb25zdCBzdGF0aWNMYW1iZGEgPSB0aGlzLnN0YXRpY0hvc3RpbmcuaGFuZGxlcjtcblxuICAgIC8vIFVwZGF0ZSBBdXRob3JpemVyIFByb3ZpZGVyIEFSTlxuICAgIGNvbnN0IHNvdXJjZUZpbGVOYW1lID0gam9pbihfX2Rpcm5hbWUsICdzcGVjLnlhbWwnKTtcbiAgICBjb25zdCB5bWwgPSByZWFkRmlsZVN5bmMoc291cmNlRmlsZU5hbWUpLnRvU3RyaW5nKCk7XG4gICAgY29uc3Qgc3BlYyA9IHBhcnNlKHltbCk7XG5cbiAgICBjb25zdCBhdXRob3JpemVyID0gc3BlYy5jb21wb25lbnRzLnNlY3VyaXR5U2NoZW1lcy5Db2duaXRvQXV0aG9yaXplcjtcbiAgICBhdXRob3JpemVyWyd4LWFtYXpvbi1hcGlnYXRld2F5LWF1dGhvcml6ZXInXS5wcm92aWRlckFSTnMgPSBbXG4gICAgICBzdGFjay51c2VyUG9vbC51c2VyUG9vbEFybixcbiAgICBdO1xuXG4gICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHNldCBMYW1iZGEgaW50ZWdyYXRpb24gVVJJXG4gICAgY29uc3Qgc2V0TGFtYmRhSW50ZWdyYXRpb24gPSAoXG4gICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICBtZXRob2Q6IHN0cmluZyxcbiAgICAgIGxhbWJkYTogYW55XG4gICAgKSA9PiB7XG4gICAgICBzcGVjLnBhdGhzW3BhdGhdW21ldGhvZF1bXG4gICAgICAgICd4LWFtYXpvbi1hcGlnYXRld2F5LWludGVncmF0aW9uJ1xuICAgICAgXS51cmkgPSBgYXJuOmF3czphcGlnYXRld2F5OiR7c3RhY2sucmVnaW9ufTpsYW1iZGE6cGF0aC8yMDE1LTAzLTMxL2Z1bmN0aW9ucy8ke2xhbWJkYS5mdW5jdGlvbkFybn0vaW52b2NhdGlvbnNgO1xuICAgIH07XG5cbiAgICAvLyBVcGRhdGUgdGhlIHNwZWMgdG8gcmVwbGFjZSBoYW5kbGVyIFVSSXMgd2l0aCBhY3R1YWwgTGFtYmRhIEFSTnNcbiAgICBzZXRMYW1iZGFJbnRlZ3JhdGlvbignL2FwaS9pbml0JywgJ2dldCcsIGluaXRMYW1iZGEpO1xuICAgIHNldExhbWJkYUludGVncmF0aW9uKCcvYXBpL3VzZXJzL3t1c2VySWR9JywgJ2dldCcsIHVzZXJzTGFtYmRhKTtcbiAgICBzZXRMYW1iZGFJbnRlZ3JhdGlvbignL2FwaS9mbG93LWNvbmZpZycsICdnZXQnLCBmbG93Q29uZmlnTGFtYmRhKTtcbiAgICBzZXRMYW1iZGFJbnRlZ3JhdGlvbignL2FwaS9mbG93LWNvbmZpZy97aWR9JywgJ2dldCcsIGZsb3dDb25maWdMYW1iZGEpO1xuICAgIHNldExhbWJkYUludGVncmF0aW9uKCcvYXBpL2Zsb3ctY29uZmlnL3tpZH0nLCAncG9zdCcsIGZsb3dDb25maWdMYW1iZGEpO1xuICAgIHNldExhbWJkYUludGVncmF0aW9uKCcvYXBpL2Zsb3ctY29uZmlnL3tpZH0nLCAnZGVsZXRlJywgZmxvd0NvbmZpZ0xhbWJkYSk7XG4gICAgc2V0TGFtYmRhSW50ZWdyYXRpb24oJy9hcGkvZmxvdy1jb25maWcvcHJldmlldycsICdwb3N0JywgZmxvd0NvbmZpZ0xhbWJkYSk7XG4gICAgc2V0TGFtYmRhSW50ZWdyYXRpb24oJy9hcGkvcHJldmlldy1zcGVlY2gnLCAncG9zdCcsIHByZXZpZXdTcGVlY2hMYW1iZGEpO1xuICAgIHNldExhbWJkYUludGVncmF0aW9uKCcvYXBpL3NldHRpbmdzJywgJ2dldCcsIHNldHRpbmdzTGFtYmRhKTtcbiAgICBzZXRMYW1iZGFJbnRlZ3JhdGlvbignL2FwaS9zZXR0aW5ncycsICdwb3N0Jywgc2V0dGluZ3NMYW1iZGEpO1xuICAgIHNldExhbWJkYUludGVncmF0aW9uKCcve3Byb3h5K30nLCAnZ2V0Jywgc3RhdGljTGFtYmRhKTtcbiAgICBzZXRMYW1iZGFJbnRlZ3JhdGlvbignLycsICdnZXQnLCBzdGF0aWNMYW1iZGEpO1xuXG4gICAgLy8gQ3JlYXRlIEFQSSBHYXRld2F5IGZyb20gdXBkYXRlZCBPcGVuQVBJIHNwZWNcbiAgICB0aGlzLnJlc3RBcGkgPSBuZXcgU3BlY1Jlc3RBcGkodGhpcywgJ1Jlc3RBcGknLCB7XG4gICAgICAuLi5hcGlHYXRld2F5UHJvcHMsXG4gICAgICBhcGlEZWZpbml0aW9uOiBBcGlEZWZpbml0aW9uLmZyb21JbmxpbmUoc3BlYyksXG4gICAgfSk7XG5cbiAgICAvLyBHcmFudCBBUEkgR2F0ZXdheSBwZXJtaXNzaW9uIHRvIGludm9rZSBMYW1iZGEgZnVuY3Rpb25zXG4gICAgY29uc3QgYXBpR2F0ZXdheVByaW5jaXBhbCA9IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKFxuICAgICAgJ2FwaWdhdGV3YXkuYW1hem9uYXdzLmNvbSdcbiAgICApO1xuICAgIGluaXRMYW1iZGEuZ3JhbnRJbnZva2UoYXBpR2F0ZXdheVByaW5jaXBhbCk7XG4gICAgdXNlcnNMYW1iZGEuZ3JhbnRJbnZva2UoYXBpR2F0ZXdheVByaW5jaXBhbCk7XG4gICAgZmxvd0NvbmZpZ0xhbWJkYS5ncmFudEludm9rZShhcGlHYXRld2F5UHJpbmNpcGFsKTtcbiAgICBwcmV2aWV3U3BlZWNoTGFtYmRhLmdyYW50SW52b2tlKGFwaUdhdGV3YXlQcmluY2lwYWwpO1xuICAgIHNldHRpbmdzTGFtYmRhLmdyYW50SW52b2tlKGFwaUdhdGV3YXlQcmluY2lwYWwpO1xuICAgIHN0YXRpY0xhbWJkYS5ncmFudEludm9rZShhcGlHYXRld2F5UHJpbmNpcGFsKTtcblxuICAgIHRoaXMudXJsID0gdGhpcy52cGNFbmRwb2ludFxuICAgICAgPyBgaHR0cHM6Ly8ke3RoaXMucmVzdEFwaS5yZXN0QXBpSWR9LSR7dGhpcy52cGNFbmRwb2ludC52cGNFbmRwb2ludElkfS5leGVjdXRlLWFwaS4ke3N0YWNrLnJlZ2lvbn0uYW1hem9uYXdzLmNvbS9wcm9kYFxuICAgICAgOiBgaHR0cHM6Ly8ke3RoaXMucmVzdEFwaS5yZXN0QXBpSWR9LmV4ZWN1dGUtYXBpLiR7c3RhY2sucmVnaW9ufS5hbWF6b25hd3MuY29tL3Byb2RgO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHJlc291cmNlIHBvbGljeSBmb3IgdGhlIFZQQyBlbmRwb2ludCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHNwZWNpZmljIFZQQ1xuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVWcGNFbmRwb2ludFBvbGljeSh2cGNJZDogc3RyaW5nKTogUG9saWN5RG9jdW1lbnQge1xuICAgIHJldHVybiBuZXcgUG9saWN5RG9jdW1lbnQoe1xuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICBwcmluY2lwYWxzOiBbbmV3IEFueVByaW5jaXBhbCgpXSxcbiAgICAgICAgICBhY3Rpb25zOiBbJ2V4ZWN1dGUtYXBpOionXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICAgICAnYXdzOlNvdXJjZVZwYyc6IHZwY0lkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5pdC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9pbmZyYXN0cnVjdHVyZS9hcGkvSW5pdC9Jbml0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJbml0RW52IHtcbiAgc3RhY2tOYW1lOiBzdHJpbmc7XG4gIHVzZXJQb29sSWQ6IHN0cmluZztcbiAgQVdTX1JFR0lPTj86IHN0cmluZztcbiAgLyoqXG4gICAqIHRydWUvZmFsc2UgZmxhZyB0byBlbmFibGUvZGlzYWJsZSBDWEJ1aWxkZXIgYnJhbmRpbmcgaW4gdGhlIHdlYiBhcHAuXG4gICAqL1xuICBicmFuZGluZzogc3RyaW5nO1xufVxuIl19
|
|
@@ -16,6 +16,7 @@ class Init extends constructs_1.Construct {
|
|
|
16
16
|
environment: {
|
|
17
17
|
stackName: stackName,
|
|
18
18
|
userPoolId: api.stack.props.cognito.userPoolId,
|
|
19
|
+
branding: (api.stack.props.branding ?? true).toString(),
|
|
19
20
|
},
|
|
20
21
|
timeout: aws_cdk_lib_1.Duration.seconds(15),
|
|
21
22
|
initialPolicy: [
|
|
@@ -32,4 +33,4 @@ class Init extends constructs_1.Construct {
|
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
exports.Init = Init;
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9pbmZyYXN0cnVjdHVyZS9hcGkvSW5pdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFJdkMsNkNBQThDO0FBQzlDLGlEQUE4RDtBQUM5RCxxREFBa0Q7QUFFbEQ7O0dBRUc7QUFDSCxNQUFhLElBQUssU0FBUSxzQkFBUztJQUVqQyxZQUFZLEdBQVE7UUFDbEIsS0FBSyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVuQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUEsMkJBQVksRUFBVSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ25ELFdBQVcsRUFBRTtnQkFDWCxTQUFTLEVBQUUsU0FBUztnQkFDcEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVO2dCQUM5QyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO2FBQ3hEO1lBQ0QsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixhQUFhLEVBQUU7Z0JBQ2IsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO29CQUNwQixPQUFPLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDMUMsU0FBUyxFQUFFO3dCQUNULDBCQUEwQixNQUFNLElBQUksT0FBTyxVQUFVLFNBQVMsSUFBSTtxQkFDbkU7aUJBQ0YsQ0FBQzthQUNIO1lBQ0QsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVTtTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUExQkQsb0JBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgSW5pdEVudiB9IGZyb20gJy4vSW5pdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBpIH0gZnJvbSAnLi4vQXBpJztcbmltcG9ydCB7IER1cmF0aW9uLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEVmZmVjdCwgUG9saWN5U3RhdGVtZW50IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBjcmVhdGVMYW1iZGEgfSBmcm9tICcuLi8uLi9jcmVhdGVMYW1iZGEnO1xuXG4vKipcbiAqIFByb3ZpZGVzIHJ1bi10aW1lIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBBUEkgc3VjaCBhcyBBdXRoLlxuICovXG5leHBvcnQgY2xhc3MgSW5pdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IGxhbWJkYTogRnVuY3Rpb247XG4gIGNvbnN0cnVjdG9yKGFwaTogQXBpKSB7XG4gICAgc3VwZXIoYXBpLCAnSW5pdCcpO1xuXG4gICAgY29uc3QgeyBzdGFja05hbWUsIHJlZ2lvbiwgYWNjb3VudCB9ID0gU3RhY2sub2YodGhpcyk7XG5cbiAgICB0aGlzLmxhbWJkYSA9IGNyZWF0ZUxhbWJkYTxJbml0RW52Pih0aGlzLCAnSGFuZGxlcicsIHtcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIHN0YWNrTmFtZTogc3RhY2tOYW1lLFxuICAgICAgICB1c2VyUG9vbElkOiBhcGkuc3RhY2sucHJvcHMuY29nbml0by51c2VyUG9vbElkLFxuICAgICAgICBicmFuZGluZzogKGFwaS5zdGFjay5wcm9wcy5icmFuZGluZyA/PyB0cnVlKS50b1N0cmluZygpLFxuICAgICAgfSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMTUpLFxuICAgICAgaW5pdGlhbFBvbGljeTogW1xuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbJ2Nsb3VkZm9ybWF0aW9uOkRlc2NyaWJlU3RhY2tzJ10sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICBgYXJuOmF3czpjbG91ZGZvcm1hdGlvbjoke3JlZ2lvbn06JHthY2NvdW50fTpzdGFjay8ke3N0YWNrTmFtZX0vKmAsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgICAgYWxlcnRUb3BpYzogYXBpLnN0YWNrLmFsZXJ0VG9waWMsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2V0dGluZ3MuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vaW5mcmFzdHJ1Y3R1cmUvYXBpL1NldHRpbmdzL1NldHRpbmdzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTZXR0aW5nc0VudiB7XG4gIFRBQkxFX05BTUU6IHN0cmluZztcbn1cbiJdfQ==
|