@aws-solutions-constructs/core 2.73.0 → 2.75.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 +61 -66
- package/lib/pipes-defaults.d.ts +1 -0
- package/lib/pipes-defaults.js +11 -2
- package/lib/pipes-helper.d.ts +10 -0
- package/lib/pipes-helper.js +58 -2
- package/lib/step-function-helper.d.ts +2 -1
- package/lib/step-function-helper.js +9 -1
- package/package.json +3 -4
- package/test/lambda/index.js +13 -0
- package/test/lambda-test/index.js +13 -0
- package/test/pipes-helper.test.js +93 -1
- package/test/step-function-helper.test.js +35 -1
package/.jsii
CHANGED
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
"npmlog": "^7.0.0"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"
|
|
17
|
-
"aws-cdk-lib": "^2.161.0",
|
|
16
|
+
"aws-cdk-lib": "^2.163.1",
|
|
18
17
|
"constructs": "^10.0.0"
|
|
19
18
|
},
|
|
20
19
|
"dependencyClosure": {
|
|
@@ -126,37 +125,6 @@
|
|
|
126
125
|
}
|
|
127
126
|
}
|
|
128
127
|
},
|
|
129
|
-
"@aws-cdk/integ-tests-alpha": {
|
|
130
|
-
"targets": {
|
|
131
|
-
"dotnet": {
|
|
132
|
-
"iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/main/logo/default-256-dark.png",
|
|
133
|
-
"namespace": "Amazon.CDK.IntegTests.Alpha",
|
|
134
|
-
"packageId": "Amazon.CDK.IntegTests.Alpha"
|
|
135
|
-
},
|
|
136
|
-
"go": {
|
|
137
|
-
"moduleName": "github.com/aws/aws-cdk-go",
|
|
138
|
-
"packageName": "awscdkintegtestsalpha"
|
|
139
|
-
},
|
|
140
|
-
"java": {
|
|
141
|
-
"maven": {
|
|
142
|
-
"artifactId": "cdk-integ-tests-alpha",
|
|
143
|
-
"groupId": "software.amazon.awscdk"
|
|
144
|
-
},
|
|
145
|
-
"package": "software.amazon.awscdk.integtests.alpha"
|
|
146
|
-
},
|
|
147
|
-
"js": {
|
|
148
|
-
"npm": "@aws-cdk/integ-tests-alpha"
|
|
149
|
-
},
|
|
150
|
-
"python": {
|
|
151
|
-
"classifiers": [
|
|
152
|
-
"Framework :: AWS CDK",
|
|
153
|
-
"Framework :: AWS CDK :: 2"
|
|
154
|
-
],
|
|
155
|
-
"distName": "aws-cdk.integ-tests-alpha",
|
|
156
|
-
"module": "aws_cdk.integ_tests_alpha"
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
},
|
|
160
128
|
"aws-cdk-lib": {
|
|
161
129
|
"submodules": {
|
|
162
130
|
"aws-cdk-lib.alexa_ask": {
|
|
@@ -3895,7 +3863,7 @@
|
|
|
3895
3863
|
},
|
|
3896
3864
|
"description": "Core CDK Construct for patterns library",
|
|
3897
3865
|
"homepage": "https://github.com/awslabs/aws-solutions-constructs.git",
|
|
3898
|
-
"jsiiVersion": "5.4.
|
|
3866
|
+
"jsiiVersion": "5.4.46 (build 1a0b9d7)",
|
|
3899
3867
|
"license": "Apache-2.0",
|
|
3900
3868
|
"metadata": {
|
|
3901
3869
|
"jsii": {
|
|
@@ -5151,7 +5119,7 @@
|
|
|
5151
5119
|
"kind": "interface",
|
|
5152
5120
|
"locationInModule": {
|
|
5153
5121
|
"filename": "lib/pipes-helper.ts",
|
|
5154
|
-
"line":
|
|
5122
|
+
"line": 40
|
|
5155
5123
|
},
|
|
5156
5124
|
"name": "BuildPipesProps",
|
|
5157
5125
|
"properties": [
|
|
@@ -5160,7 +5128,7 @@
|
|
|
5160
5128
|
"immutable": true,
|
|
5161
5129
|
"locationInModule": {
|
|
5162
5130
|
"filename": "lib/pipes-helper.ts",
|
|
5163
|
-
"line":
|
|
5131
|
+
"line": 41
|
|
5164
5132
|
},
|
|
5165
5133
|
"name": "source",
|
|
5166
5134
|
"type": {
|
|
@@ -5172,7 +5140,7 @@
|
|
|
5172
5140
|
"immutable": true,
|
|
5173
5141
|
"locationInModule": {
|
|
5174
5142
|
"filename": "lib/pipes-helper.ts",
|
|
5175
|
-
"line":
|
|
5143
|
+
"line": 42
|
|
5176
5144
|
},
|
|
5177
5145
|
"name": "target",
|
|
5178
5146
|
"type": {
|
|
@@ -5184,7 +5152,7 @@
|
|
|
5184
5152
|
"immutable": true,
|
|
5185
5153
|
"locationInModule": {
|
|
5186
5154
|
"filename": "lib/pipes-helper.ts",
|
|
5187
|
-
"line":
|
|
5155
|
+
"line": 45
|
|
5188
5156
|
},
|
|
5189
5157
|
"name": "clientProps",
|
|
5190
5158
|
"optional": true,
|
|
@@ -5197,7 +5165,7 @@
|
|
|
5197
5165
|
"immutable": true,
|
|
5198
5166
|
"locationInModule": {
|
|
5199
5167
|
"filename": "lib/pipes-helper.ts",
|
|
5200
|
-
"line":
|
|
5168
|
+
"line": 43
|
|
5201
5169
|
},
|
|
5202
5170
|
"name": "enrichmentFunction",
|
|
5203
5171
|
"optional": true,
|
|
@@ -5210,7 +5178,7 @@
|
|
|
5210
5178
|
"immutable": true,
|
|
5211
5179
|
"locationInModule": {
|
|
5212
5180
|
"filename": "lib/pipes-helper.ts",
|
|
5213
|
-
"line":
|
|
5181
|
+
"line": 44
|
|
5214
5182
|
},
|
|
5215
5183
|
"name": "enrichmentStateMachine",
|
|
5216
5184
|
"optional": true,
|
|
@@ -5223,7 +5191,7 @@
|
|
|
5223
5191
|
"immutable": true,
|
|
5224
5192
|
"locationInModule": {
|
|
5225
5193
|
"filename": "lib/pipes-helper.ts",
|
|
5226
|
-
"line":
|
|
5194
|
+
"line": 46
|
|
5227
5195
|
},
|
|
5228
5196
|
"name": "logLevel",
|
|
5229
5197
|
"optional": true,
|
|
@@ -5236,7 +5204,7 @@
|
|
|
5236
5204
|
"immutable": true,
|
|
5237
5205
|
"locationInModule": {
|
|
5238
5206
|
"filename": "lib/pipes-helper.ts",
|
|
5239
|
-
"line":
|
|
5207
|
+
"line": 47
|
|
5240
5208
|
},
|
|
5241
5209
|
"name": "pipeLogProps",
|
|
5242
5210
|
"optional": true,
|
|
@@ -5254,7 +5222,7 @@
|
|
|
5254
5222
|
"kind": "interface",
|
|
5255
5223
|
"locationInModule": {
|
|
5256
5224
|
"filename": "lib/pipes-helper.ts",
|
|
5257
|
-
"line":
|
|
5225
|
+
"line": 50
|
|
5258
5226
|
},
|
|
5259
5227
|
"name": "BuildPipesResponse",
|
|
5260
5228
|
"properties": [
|
|
@@ -5263,7 +5231,7 @@
|
|
|
5263
5231
|
"immutable": true,
|
|
5264
5232
|
"locationInModule": {
|
|
5265
5233
|
"filename": "lib/pipes-helper.ts",
|
|
5266
|
-
"line":
|
|
5234
|
+
"line": 51
|
|
5267
5235
|
},
|
|
5268
5236
|
"name": "pipe",
|
|
5269
5237
|
"type": {
|
|
@@ -5275,7 +5243,7 @@
|
|
|
5275
5243
|
"immutable": true,
|
|
5276
5244
|
"locationInModule": {
|
|
5277
5245
|
"filename": "lib/pipes-helper.ts",
|
|
5278
|
-
"line":
|
|
5246
|
+
"line": 52
|
|
5279
5247
|
},
|
|
5280
5248
|
"name": "pipeRole",
|
|
5281
5249
|
"type": {
|
|
@@ -7215,7 +7183,7 @@
|
|
|
7215
7183
|
"kind": "interface",
|
|
7216
7184
|
"locationInModule": {
|
|
7217
7185
|
"filename": "lib/pipes-helper.ts",
|
|
7218
|
-
"line":
|
|
7186
|
+
"line": 32
|
|
7219
7187
|
},
|
|
7220
7188
|
"name": "CreateSourceResponse",
|
|
7221
7189
|
"properties": [
|
|
@@ -7224,7 +7192,7 @@
|
|
|
7224
7192
|
"immutable": true,
|
|
7225
7193
|
"locationInModule": {
|
|
7226
7194
|
"filename": "lib/pipes-helper.ts",
|
|
7227
|
-
"line":
|
|
7195
|
+
"line": 34
|
|
7228
7196
|
},
|
|
7229
7197
|
"name": "sourceArn",
|
|
7230
7198
|
"type": {
|
|
@@ -7236,7 +7204,7 @@
|
|
|
7236
7204
|
"immutable": true,
|
|
7237
7205
|
"locationInModule": {
|
|
7238
7206
|
"filename": "lib/pipes-helper.ts",
|
|
7239
|
-
"line":
|
|
7207
|
+
"line": 33
|
|
7240
7208
|
},
|
|
7241
7209
|
"name": "sourceParameters",
|
|
7242
7210
|
"type": {
|
|
@@ -7248,12 +7216,25 @@
|
|
|
7248
7216
|
"immutable": true,
|
|
7249
7217
|
"locationInModule": {
|
|
7250
7218
|
"filename": "lib/pipes-helper.ts",
|
|
7251
|
-
"line":
|
|
7219
|
+
"line": 35
|
|
7252
7220
|
},
|
|
7253
7221
|
"name": "sourcePolicy",
|
|
7254
7222
|
"type": {
|
|
7255
7223
|
"fqn": "aws-cdk-lib.aws_iam.PolicyDocument"
|
|
7256
7224
|
}
|
|
7225
|
+
},
|
|
7226
|
+
{
|
|
7227
|
+
"abstract": true,
|
|
7228
|
+
"immutable": true,
|
|
7229
|
+
"locationInModule": {
|
|
7230
|
+
"filename": "lib/pipes-helper.ts",
|
|
7231
|
+
"line": 37
|
|
7232
|
+
},
|
|
7233
|
+
"name": "dlq",
|
|
7234
|
+
"optional": true,
|
|
7235
|
+
"type": {
|
|
7236
|
+
"fqn": "aws-cdk-lib.aws_sqs.Queue"
|
|
7237
|
+
}
|
|
7257
7238
|
}
|
|
7258
7239
|
],
|
|
7259
7240
|
"symbolId": "lib/pipes-helper:CreateSourceResponse"
|
|
@@ -7316,7 +7297,7 @@
|
|
|
7316
7297
|
"kind": "interface",
|
|
7317
7298
|
"locationInModule": {
|
|
7318
7299
|
"filename": "lib/pipes-helper.ts",
|
|
7319
|
-
"line":
|
|
7300
|
+
"line": 259
|
|
7320
7301
|
},
|
|
7321
7302
|
"name": "CreateTargetResponse",
|
|
7322
7303
|
"properties": [
|
|
@@ -7325,7 +7306,7 @@
|
|
|
7325
7306
|
"immutable": true,
|
|
7326
7307
|
"locationInModule": {
|
|
7327
7308
|
"filename": "lib/pipes-helper.ts",
|
|
7328
|
-
"line":
|
|
7309
|
+
"line": 261
|
|
7329
7310
|
},
|
|
7330
7311
|
"name": "targetArn",
|
|
7331
7312
|
"type": {
|
|
@@ -7337,7 +7318,7 @@
|
|
|
7337
7318
|
"immutable": true,
|
|
7338
7319
|
"locationInModule": {
|
|
7339
7320
|
"filename": "lib/pipes-helper.ts",
|
|
7340
|
-
"line":
|
|
7321
|
+
"line": 260
|
|
7341
7322
|
},
|
|
7342
7323
|
"name": "targetParameters",
|
|
7343
7324
|
"type": {
|
|
@@ -7349,7 +7330,7 @@
|
|
|
7349
7330
|
"immutable": true,
|
|
7350
7331
|
"locationInModule": {
|
|
7351
7332
|
"filename": "lib/pipes-helper.ts",
|
|
7352
|
-
"line":
|
|
7333
|
+
"line": 262
|
|
7353
7334
|
},
|
|
7354
7335
|
"name": "targetPolicy",
|
|
7355
7336
|
"type": {
|
|
@@ -8139,7 +8120,7 @@
|
|
|
8139
8120
|
"kind": "enum",
|
|
8140
8121
|
"locationInModule": {
|
|
8141
8122
|
"filename": "lib/pipes-helper.ts",
|
|
8142
|
-
"line":
|
|
8123
|
+
"line": 25
|
|
8143
8124
|
},
|
|
8144
8125
|
"members": [
|
|
8145
8126
|
{
|
|
@@ -8165,7 +8146,7 @@
|
|
|
8165
8146
|
"kind": "interface",
|
|
8166
8147
|
"locationInModule": {
|
|
8167
8148
|
"filename": "lib/pipes-helper.ts",
|
|
8168
|
-
"line":
|
|
8149
|
+
"line": 306
|
|
8169
8150
|
},
|
|
8170
8151
|
"name": "PipesProps",
|
|
8171
8152
|
"properties": [
|
|
@@ -8174,7 +8155,7 @@
|
|
|
8174
8155
|
"immutable": true,
|
|
8175
8156
|
"locationInModule": {
|
|
8176
8157
|
"filename": "lib/pipes-helper.ts",
|
|
8177
|
-
"line":
|
|
8158
|
+
"line": 307
|
|
8178
8159
|
},
|
|
8179
8160
|
"name": "pipesProps",
|
|
8180
8161
|
"optional": true,
|
|
@@ -8963,11 +8944,12 @@
|
|
|
8963
8944
|
"immutable": true,
|
|
8964
8945
|
"locationInModule": {
|
|
8965
8946
|
"filename": "lib/step-function-helper.ts",
|
|
8966
|
-
"line":
|
|
8947
|
+
"line": 173
|
|
8967
8948
|
},
|
|
8968
|
-
"name": "
|
|
8949
|
+
"name": "cloudWatchAlarmsPrefix",
|
|
8950
|
+
"optional": true,
|
|
8969
8951
|
"type": {
|
|
8970
|
-
"
|
|
8952
|
+
"primitive": "string"
|
|
8971
8953
|
}
|
|
8972
8954
|
},
|
|
8973
8955
|
{
|
|
@@ -8977,10 +8959,10 @@
|
|
|
8977
8959
|
"filename": "lib/step-function-helper.ts",
|
|
8978
8960
|
"line": 172
|
|
8979
8961
|
},
|
|
8980
|
-
"name": "
|
|
8962
|
+
"name": "createCloudWatchAlarms",
|
|
8981
8963
|
"optional": true,
|
|
8982
8964
|
"type": {
|
|
8983
|
-
"primitive": "
|
|
8965
|
+
"primitive": "boolean"
|
|
8984
8966
|
}
|
|
8985
8967
|
},
|
|
8986
8968
|
{
|
|
@@ -8990,10 +8972,10 @@
|
|
|
8990
8972
|
"filename": "lib/step-function-helper.ts",
|
|
8991
8973
|
"line": 171
|
|
8992
8974
|
},
|
|
8993
|
-
"name": "
|
|
8975
|
+
"name": "existingStateMachineObj",
|
|
8994
8976
|
"optional": true,
|
|
8995
8977
|
"type": {
|
|
8996
|
-
"
|
|
8978
|
+
"fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine"
|
|
8997
8979
|
}
|
|
8998
8980
|
},
|
|
8999
8981
|
{
|
|
@@ -9001,13 +8983,26 @@
|
|
|
9001
8983
|
"immutable": true,
|
|
9002
8984
|
"locationInModule": {
|
|
9003
8985
|
"filename": "lib/step-function-helper.ts",
|
|
9004
|
-
"line":
|
|
8986
|
+
"line": 174
|
|
9005
8987
|
},
|
|
9006
8988
|
"name": "logGroupProps",
|
|
9007
8989
|
"optional": true,
|
|
9008
8990
|
"type": {
|
|
9009
8991
|
"fqn": "aws-cdk-lib.aws_logs.LogGroupProps"
|
|
9010
8992
|
}
|
|
8993
|
+
},
|
|
8994
|
+
{
|
|
8995
|
+
"abstract": true,
|
|
8996
|
+
"immutable": true,
|
|
8997
|
+
"locationInModule": {
|
|
8998
|
+
"filename": "lib/step-function-helper.ts",
|
|
8999
|
+
"line": 170
|
|
9000
|
+
},
|
|
9001
|
+
"name": "stateMachineProps",
|
|
9002
|
+
"optional": true,
|
|
9003
|
+
"type": {
|
|
9004
|
+
"fqn": "aws-cdk-lib.aws_stepfunctions.StateMachineProps"
|
|
9005
|
+
}
|
|
9011
9006
|
}
|
|
9012
9007
|
],
|
|
9013
9008
|
"symbolId": "lib/step-function-helper:StateMachineProps"
|
|
@@ -9104,6 +9099,6 @@
|
|
|
9104
9099
|
"symbolId": "lib/waf-helper:WafWebAclProps"
|
|
9105
9100
|
}
|
|
9106
9101
|
},
|
|
9107
|
-
"version": "2.
|
|
9108
|
-
"fingerprint": "
|
|
9102
|
+
"version": "2.75.0",
|
|
9103
|
+
"fingerprint": "fLGB+R+WwgWxCBe8wVcSPQ2L+xhH+kXUbXBdMWGMRso="
|
|
9109
9104
|
}
|
package/lib/pipes-defaults.d.ts
CHANGED
|
@@ -12,4 +12,5 @@
|
|
|
12
12
|
*/
|
|
13
13
|
export declare function defaultPipesProps(): any;
|
|
14
14
|
export declare function defaultSqsSourceProps(): any;
|
|
15
|
+
export declare function defaultDynamoDBStreamsSourceProps(deployDlq: boolean): any;
|
|
15
16
|
export declare function defaultStateMachineTargetProps(): any;
|
package/lib/pipes-defaults.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* and limitations under the License.
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.defaultStateMachineTargetProps = exports.defaultSqsSourceProps = exports.defaultPipesProps = void 0;
|
|
15
|
+
exports.defaultStateMachineTargetProps = exports.defaultDynamoDBStreamsSourceProps = exports.defaultSqsSourceProps = exports.defaultPipesProps = void 0;
|
|
16
16
|
// import * as pipes from 'aws-cdk-lib/aws-pipes';
|
|
17
17
|
function defaultPipesProps() {
|
|
18
18
|
return {};
|
|
@@ -22,6 +22,15 @@ function defaultSqsSourceProps() {
|
|
|
22
22
|
return {};
|
|
23
23
|
}
|
|
24
24
|
exports.defaultSqsSourceProps = defaultSqsSourceProps;
|
|
25
|
+
function defaultDynamoDBStreamsSourceProps(deployDlq) {
|
|
26
|
+
return {
|
|
27
|
+
dynamoDbStreamParameters: {
|
|
28
|
+
startingPosition: "LATEST",
|
|
29
|
+
maximumRetryAttempts: deployDlq ? 3 : undefined,
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
exports.defaultDynamoDBStreamsSourceProps = defaultDynamoDBStreamsSourceProps;
|
|
25
34
|
function defaultStateMachineTargetProps() {
|
|
26
35
|
return {
|
|
27
36
|
stepFunctionStateMachineParameters: {
|
|
@@ -30,4 +39,4 @@ function defaultStateMachineTargetProps() {
|
|
|
30
39
|
};
|
|
31
40
|
}
|
|
32
41
|
exports.defaultStateMachineTargetProps = defaultStateMachineTargetProps;
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMtZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwaXBlcy1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVILGtEQUFrRDtBQUVsRCxTQUFnQixpQkFBaUI7SUFDL0IsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQixxQkFBcUI7SUFDbkMsT0FBTyxFQUNOLENBQUM7QUFDSixDQUFDO0FBSEQsc0RBR0M7QUFFRCxTQUFnQixpQ0FBaUMsQ0FBQyxTQUFrQjtJQUNsRSxPQUFPO1FBQ0wsd0JBQXdCLEVBQUU7WUFDeEIsZ0JBQWdCLEVBQUUsUUFBUTtZQUMxQixvQkFBb0IsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUNoRDtLQUNGLENBQUM7QUFDSixDQUFDO0FBUEQsOEVBT0M7QUFFRCxTQUFnQiw4QkFBOEI7SUFDNUMsT0FBTztRQUNMLGtDQUFrQyxFQUFFO1lBQ2xDLGNBQWMsRUFBRSxpQkFBaUI7U0FDbEM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQU5ELHdFQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLy8gaW1wb3J0ICogYXMgcGlwZXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXBpcGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRQaXBlc1Byb3BzKCk6IGFueSB7XG4gIHJldHVybiB7fTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRTcXNTb3VyY2VQcm9wcygpOiBhbnkge1xuICByZXR1cm4ge1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdER5bmFtb0RCU3RyZWFtc1NvdXJjZVByb3BzKGRlcGxveURscTogYm9vbGVhbik6IGFueSB7XG4gIHJldHVybiB7XG4gICAgZHluYW1vRGJTdHJlYW1QYXJhbWV0ZXJzOiB7XG4gICAgICBzdGFydGluZ1Bvc2l0aW9uOiBcIkxBVEVTVFwiLFxuICAgICAgbWF4aW11bVJldHJ5QXR0ZW1wdHM6IGRlcGxveURscSA/IDMgOiB1bmRlZmluZWQsXG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdFN0YXRlTWFjaGluZVRhcmdldFByb3BzKCk6IGFueSB7XG4gIHJldHVybiB7XG4gICAgc3RlcEZ1bmN0aW9uU3RhdGVNYWNoaW5lUGFyYW1ldGVyczoge1xuICAgICAgaW52b2NhdGlvblR5cGU6ICdGSVJFX0FORF9GT1JHRVQnXG4gICAgfVxuICB9O1xufVxuIl19
|
package/lib/pipes-helper.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ import * as pipes from 'aws-cdk-lib/aws-pipes';
|
|
|
14
14
|
import * as sqs from 'aws-cdk-lib/aws-sqs';
|
|
15
15
|
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
16
16
|
import * as logs from 'aws-cdk-lib/aws-logs';
|
|
17
|
+
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
|
|
17
18
|
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
18
19
|
import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
|
|
19
20
|
import * as cdk from 'aws-cdk-lib';
|
|
@@ -28,6 +29,7 @@ export interface CreateSourceResponse {
|
|
|
28
29
|
readonly sourceParameters: pipes.CfnPipe.PipeSourceParametersProperty;
|
|
29
30
|
readonly sourceArn: string;
|
|
30
31
|
readonly sourcePolicy: iam.PolicyDocument;
|
|
32
|
+
readonly dlq?: sqs.Queue;
|
|
31
33
|
}
|
|
32
34
|
export interface BuildPipesProps {
|
|
33
35
|
readonly source: CreateSourceResponse;
|
|
@@ -44,6 +46,13 @@ export interface BuildPipesResponse {
|
|
|
44
46
|
}
|
|
45
47
|
export declare function BuildPipe(scope: Construct, id: string, props: BuildPipesProps): BuildPipesResponse;
|
|
46
48
|
export declare function CreateSqsSource(queue: sqs.IQueue, clientProps?: pipes.CfnPipe.PipeSourceParametersProperty | cdk.IResolvable): CreateSourceResponse;
|
|
49
|
+
interface CreateDynamoDBStreamsSourceProps {
|
|
50
|
+
table: dynamodb.ITable;
|
|
51
|
+
deploySqsDlqQueue?: boolean;
|
|
52
|
+
sqsDlqQueueProps?: sqs.QueueProps;
|
|
53
|
+
clientProps?: pipes.CfnPipe.PipeSourceParametersProperty | cdk.IResolvable;
|
|
54
|
+
}
|
|
55
|
+
export declare function CreateDynamoDBStreamsSource(scope: Construct, props: CreateDynamoDBStreamsSourceProps): CreateSourceResponse;
|
|
47
56
|
export interface CreateTargetResponse {
|
|
48
57
|
readonly targetParameters: pipes.CfnPipe.PipeTargetParametersProperty;
|
|
49
58
|
readonly targetArn: string;
|
|
@@ -54,3 +63,4 @@ export interface PipesProps {
|
|
|
54
63
|
readonly pipesProps?: pipes.CfnPipeProps;
|
|
55
64
|
}
|
|
56
65
|
export declare function CheckPipesProps(propsObject: PipesProps | any): void;
|
|
66
|
+
export {};
|
package/lib/pipes-helper.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* and limitations under the License.
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.CheckPipesProps = exports.CreateStateMachineTarget = exports.CreateSqsSource = exports.BuildPipe = exports.PipesLogLevel = void 0;
|
|
15
|
+
exports.CheckPipesProps = exports.CreateStateMachineTarget = exports.CreateDynamoDBStreamsSource = exports.CreateSqsSource = exports.BuildPipe = exports.PipesLogLevel = void 0;
|
|
16
16
|
const pipes = require("aws-cdk-lib/aws-pipes");
|
|
17
17
|
const iam = require("aws-cdk-lib/aws-iam");
|
|
18
18
|
const defaults = require("..");
|
|
@@ -142,6 +142,62 @@ function CreateSqsSource(queue, clientProps) {
|
|
|
142
142
|
};
|
|
143
143
|
}
|
|
144
144
|
exports.CreateSqsSource = CreateSqsSource;
|
|
145
|
+
function CreateDynamoDBStreamsSource(scope, props) {
|
|
146
|
+
if (!props.table.tableStreamArn) {
|
|
147
|
+
throw new Error("ERROR - DynamoDB Table must have an associated stream");
|
|
148
|
+
}
|
|
149
|
+
const deployDlq = defaults.CheckBooleanWithDefault(props.deploySqsDlqQueue, true);
|
|
150
|
+
let sourceParameters = defaults.consolidateProps(defaults.defaultDynamoDBStreamsSourceProps(deployDlq), props.clientProps);
|
|
151
|
+
const sourcePolicy = new iam.PolicyDocument({
|
|
152
|
+
statements: [
|
|
153
|
+
new iam.PolicyStatement({
|
|
154
|
+
resources: [props.table.tableStreamArn],
|
|
155
|
+
actions: [
|
|
156
|
+
"dynamodb:DescribeStream",
|
|
157
|
+
"dynamodb:GetRecords",
|
|
158
|
+
"dynamodb:GetShardIterator",
|
|
159
|
+
"dynamodb:ListStreams"
|
|
160
|
+
],
|
|
161
|
+
effect: iam.Effect.ALLOW,
|
|
162
|
+
})
|
|
163
|
+
]
|
|
164
|
+
});
|
|
165
|
+
let buildQueueResponse;
|
|
166
|
+
// Default to setting up DLQ for failed messages
|
|
167
|
+
if (deployDlq) {
|
|
168
|
+
buildQueueResponse = defaults.buildQueue(scope, 'dlq', {
|
|
169
|
+
deployDeadLetterQueue: false,
|
|
170
|
+
queueProps: props.sqsDlqQueueProps
|
|
171
|
+
});
|
|
172
|
+
sourceParameters = defaults.consolidateProps(sourceParameters, {
|
|
173
|
+
dynamoDbStreamParameters: {
|
|
174
|
+
deadLetterConfig: {
|
|
175
|
+
arn: buildQueueResponse.queue.queueArn
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
sourcePolicy.addStatements(new iam.PolicyStatement({
|
|
180
|
+
resources: [buildQueueResponse.queue.queueArn],
|
|
181
|
+
actions: [
|
|
182
|
+
"sqs:SendMessage"
|
|
183
|
+
],
|
|
184
|
+
effect: iam.Effect.ALLOW,
|
|
185
|
+
}));
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
if ((sourceParameters.dynamoDbStreamParameters?.maximumRecordAgeInSeconds) ||
|
|
189
|
+
(sourceParameters.dynamoDbStreamParameters?.maximumRetryAttempts)) {
|
|
190
|
+
throw new Error('ERROR - retry and record age constraints cannot be specified with no DLQ\n');
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
sourceParameters,
|
|
195
|
+
sourceArn: props.table.tableStreamArn,
|
|
196
|
+
sourcePolicy,
|
|
197
|
+
dlq: buildQueueResponse?.queue ?? undefined
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
exports.CreateDynamoDBStreamsSource = CreateDynamoDBStreamsSource;
|
|
145
201
|
function CreateStateMachineTarget(stateMachine, clientProps) {
|
|
146
202
|
const targetParameters = defaults.consolidateProps(defaults.defaultStateMachineTargetProps(), clientProps);
|
|
147
203
|
return {
|
|
@@ -194,4 +250,4 @@ function CheckPipesProps(propsObject) {
|
|
|
194
250
|
}
|
|
195
251
|
}
|
|
196
252
|
exports.CheckPipesProps = CheckPipesProps;
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGlwZXMtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUgsK0NBQStDO0FBRS9DLDJDQUEyQztBQUkzQywrQkFBK0I7QUFDL0IsbUNBQW1DO0FBR25DLElBQVksYUFLWDtBQUxELFdBQVksYUFBYTtJQUN2Qiw0QkFBVyxDQUFBO0lBQ1gsZ0NBQWUsQ0FBQTtJQUNmLDhCQUFhLENBQUE7SUFDYixnQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxhQUFhLDZCQUFiLGFBQWEsUUFLeEI7QUF1QkQsU0FBZ0IsU0FBUyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO0lBQzVFLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTNCLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRTtRQUN0RCxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUM7UUFDMUQsY0FBYyxFQUFFO1lBQ2QsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWTtZQUN2QyxZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZO1NBQ3hDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsb0VBQW9FO0lBQ3BFLDZEQUE2RDtJQUM3RCxJQUFJLGNBQWMsR0FBdUI7UUFDdkMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO1FBQ3pCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7UUFDOUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztRQUM5QixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQjtRQUMvQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQjtLQUNo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Q25DLGFBQWEsSUFBSSxnRUFBZ0UsQ0FBQztRQUNsRixVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqQyxDQUFDO0FBQ0gsQ0FBQztBQWpCRCwwQ0FpQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBwaXBlcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtcGlwZXMnO1xuaW1wb3J0ICogYXMgc3FzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zcXMnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBzZm4gZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMnO1xuaW1wb3J0ICogYXMgZGVmYXVsdHMgZnJvbSBcIi4uXCI7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBlbnVtIFBpcGVzTG9nTGV2ZWwge1xuICBPRkYgPSBcIk9GRlwiLFxuICBUUkFDRSA9IFwiVFJBQ0VcIixcbiAgSU5GTyA9IFwiSU5GT1wiLFxuICBFUlJPUiA9IFwiRVJST1JcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVTb3VyY2VSZXNwb25zZSB7XG4gIHJlYWRvbmx5IHNvdXJjZVBhcmFtZXRlcnM6IHBpcGVzLkNmblBpcGUuUGlwZVNvdXJjZVBhcmFtZXRlcnNQcm9wZXJ0eSxcbiAgcmVhZG9ubHkgc291cmNlQXJuOiBzdHJpbmcsXG4gIHJlYWRvbmx5IHNvdXJjZVBvbGljeTogaWFtLlBvbGljeURvY3VtZW50XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRQaXBlc1Byb3BzIHtcbiAgcmVhZG9ubHkgc291cmNlOiBDcmVhdGVTb3VyY2VSZXNwb25zZSxcbiAgcmVhZG9ubHkgdGFyZ2V0OiBDcmVhdGVUYXJnZXRSZXNwb25zZSxcbiAgcmVhZG9ubHkgZW5yaWNobWVudEZ1bmN0aW9uPzogbGFtYmRhLkZ1bmN0aW9uLFxuICByZWFkb25seSBlbnJpY2htZW50U3RhdGVNYWNoaW5lPzogc2ZuLlN0YXRlTWFjaGluZSxcbiAgcmVhZG9ubHkgY2xpZW50UHJvcHM/OiBhbnkgfCBwaXBlcy5DZm5QaXBlUHJvcHNcbiAgcmVhZG9ubHkgbG9nTGV2ZWw/OiBQaXBlc0xvZ0xldmVsLFxuICByZWFkb25seSBwaXBlTG9nUHJvcHM/OiBsb2dzLkxvZ0dyb3VwUHJvcHNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFBpcGVzUmVzcG9uc2Uge1xuICByZWFkb25seSBwaXBlOiBwaXBlcy5DZm5QaXBlLFxuICByZWFkb25seSBwaXBlUm9sZTogaWFtLlJvbGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEJ1aWxkUGlwZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQnVpbGRQaXBlc1Byb3BzKTogQnVpbGRQaXBlc1Jlc3BvbnNlIHtcbiAgQ2hlY2tCdWlsZFBpcGVQcm9wcyhwcm9wcyk7XG5cbiAgY29uc3QgcGlwZVJvbGUgPSBuZXcgaWFtLlJvbGUoc2NvcGUsIGBQaXBlUm9sZS0tJHtpZH1gLCB7XG4gICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ3BpcGVzLmFtYXpvbmF3cy5jb20nKSxcbiAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgc291cmNlUG9saWN5OiBwcm9wcy5zb3VyY2Uuc291cmNlUG9saWN5LFxuICAgICAgdGFyZ2V0UG9saWN5OiBwcm9wcy50YXJnZXQudGFyZ2V0UG9saWN5LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIEF0IHRoaXMgcG9pbnQgd2UgaGF2ZSB0aGUgbWluaW11bSB2YWx1ZXMgZm9yIENmblBpcGVQcm9wcyAtIGxldCdzXG4gIC8vIGNyZWF0ZSBpdCBhbmQgZm9sZCBpbiBhbnkgYWRkaXRpb25hbCB2YWx1ZXMgYXMgd2UgZ28gYWxvbmdcbiAgbGV0IGNvbnN0cnVjdFByb3BzOiBwaXBlcy5DZm5QaXBlUHJvcHMgPSB7XG4gICAgcm9sZUFybjogcGlwZVJvbGUucm9sZUFybixcbiAgICBzb3VyY2U6IHByb3BzLnNvdXJjZS5zb3VyY2VBcm4sXG4gICAgdGFyZ2V0OiBwcm9wcy50YXJnZXQudGFyZ2V0QXJuLFxuICAgIHNvdXJjZVBhcmFtZXRlcnM6IHByb3BzLnNvdXJjZS5zb3VyY2VQYXJhbWV0ZXJzLFxuICAgIHRhcmdldFBhcmFtZXRlcnM6IHByb3BzLnRhcmdldC50YXJnZXRQYXJhbWV0ZXJzLFxuICB9O1xuXG4gIC8vIERvIHdlIGhhdmUgYW55IGVucmljaG1lbnQgZnVuY3Rpb25hbGl0eT9cbiAgaWYgKHByb3BzLmVucmljaG1lbnRGdW5jdGlvbikge1xuICAgIGNvbnN0IGVucmljaG1lbnRTZXR0aW5ncyA9IGNyZWF0ZUxhbWJkYUVucmljaG1lbnQoc2NvcGUsIGlkLCBwcm9wcy5lbnJpY2htZW50RnVuY3Rpb24pO1xuICAgIHBpcGVSb2xlLmF0dGFjaElubGluZVBvbGljeShlbnJpY2htZW50U2V0dGluZ3MucGlwZVJvbGVQb2xpY3kpO1xuICAgIGNvbnN0cnVjdFByb3BzID0gZGVmYXVsdHMuY29uc29saWRhdGVQcm9wcyhjb25zdHJ1Y3RQcm9wcywgeyBlbnJpY2htZW50OiBlbnJpY2htZW50U2V0dGluZ3MuZW5yaWNobWVudEFybiB9KTtcbiAgfSBlbHNlIGlmIChwcm9wcy5lbnJpY2htZW50U3RhdGVNYWNoaW5lKSB7XG4gICAgY29uc3QgZW5yaWNobWVudFNldHRpbmdzID0gY3JlYXRlU3RhdGVNYWNoaW5lRW5yaWNobWVudChzY29wZSwgaWQsIHByb3BzLmVucmljaG1lbnRTdGF0ZU1hY2hpbmUpO1xuICAgIHBpcGVSb2xlLmF0dGFjaElubGluZVBvbGljeShlbnJpY2htZW50U2V0dGluZ3MucGlwZVJvbGVQb2xpY3kpO1xuICAgIGNvbnN0cnVjdFByb3BzID0gZGVmYXVsdHMuY29uc29saWRhdGVQcm9wcyhjb25zdHJ1Y3RQcm9wcywgeyBlbnJpY2htZW50OiBlbnJpY2htZW50U2V0dGluZ3MuZW5yaWNobWVudEFybiB9KTtcbiAgfVxuXG4gIC8vIEFyZSB3ZSByZXNwb25zaWJsZSB0byBjcmVhdGUgdGhlIGxvZ2dpbmcgbWVjaGFuaXNtP1xuICBpZiAoIXByb3BzLmNsaWVudFByb3BzPy5sb2dDb25maWd1cmF0aW9uKSB7XG5cbiAgICBjb25zdCBsb2dMZXZlbCA9IGRlZmF1bHRzLkNoZWNrU3RyaW5nV2l0aERlZmF1bHQocHJvcHMubG9nTGV2ZWwsIFBpcGVzTG9nTGV2ZWwuSU5GTyk7XG4gICAgaWYgKGxvZ0xldmVsICE9PSBQaXBlc0xvZ0xldmVsLk9GRikge1xuXG4gICAgICBjb25zdCBkZWZhdWx0TG9nR3JvdXBQcm9wcyA9IHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiBjcmVhdGVQaXBlc0xvZ0dyb3VwTmFtZShzY29wZSwgaWQpLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGNvbnNvbGlkYXRlZExvZ0dyb3VwUHJvcHMgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRMb2dHcm91cFByb3BzLCBwcm9wcy5waXBlTG9nUHJvcHMpO1xuICAgICAgY29uc3QgbmV3TG9nR3JvdXAgPSBkZWZhdWx0cy5idWlsZExvZ0dyb3VwKHNjb3BlLCBgTG9nR3JvdXAtJHtpZH1gLCBjb25zb2xpZGF0ZWRMb2dHcm91cFByb3BzKTtcbiAgICAgIGNvbnN0IGxvZ0NvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAgIGNsb3Vkd2F0Y2hMb2dzTG9nRGVzdGluYXRpb246IHtcbiAgICAgICAgICBsb2dHcm91cEFybjogbmV3TG9nR3JvdXAubG9nR3JvdXBBcm5cbiAgICAgICAgfSxcbiAgICAgICAgbGV2ZWw6IGxvZ0xldmVsXG4gICAgICB9O1xuXG4gICAgICBjb25zdHJ1Y3RQcm9wcyA9IGRlZmF1bHRzLmNvbnNvbGlkYXRlUHJvcHMoY29uc3RydWN0UHJvcHMsIHtcbiAgICAgICAgbG9nQ29uZmlndXJhdGlvbixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNvbnNvbGlkYXRlUHJvcHMgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRzLmRlZmF1bHRQaXBlc1Byb3BzKCksIHByb3BzLmNsaWVudFByb3BzLCBjb25zdHJ1Y3RQcm9wcyk7XG5cbiAgY29uc3QgbmV3UGlwZSA9IG5ldyBwaXBlcy5DZm5QaXBlKHNjb3BlLCBgcGlwZS0ke2lkfWAsIGNvbnNvbGlkYXRlUHJvcHMpO1xuXG4gIHJldHVybiB7XG4gICAgcGlwZTogbmV3UGlwZSxcbiAgICBwaXBlUm9sZVxuICB9O1xufVxuXG5pbnRlcmZhY2UgQ3JlYXRlRW5yaWNobWVudFJlc3BvbnNlIHtcbiAgcmVhZG9ubHkgZW5yaWNobWVudEFybjogc3RyaW5nLFxuICByZWFkb25seSBwaXBlUm9sZVBvbGljeTogaWFtLlBvbGljeVxufVxuXG5mdW5jdGlvbiBjcmVhdGVMYW1iZGFFbnJpY2htZW50KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGxhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb24pOiBDcmVhdGVFbnJpY2htZW50UmVzcG9uc2Uge1xuICByZXR1cm4ge1xuICAgIGVucmljaG1lbnRBcm46IGxhbWJkYUZ1bmN0aW9uLmZ1bmN0aW9uQXJuLFxuICAgIHBpcGVSb2xlUG9saWN5OiBuZXcgaWFtLlBvbGljeShzY29wZSwgYGVucmljaG1lbnRwb2xpY3kke2lkfWAsIHtcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIHJlc291cmNlczogW2xhbWJkYUZ1bmN0aW9uLmZ1bmN0aW9uQXJuXSxcbiAgICAgICAgICBhY3Rpb25zOiBbJ2xhbWJkYTpJbnZva2VGdW5jdGlvbiddLFxuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgfSlcbiAgICAgIF1cbiAgICB9KVxuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVTdGF0ZU1hY2hpbmVFbnJpY2htZW50KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHN0YXRlTWFjaGluZTogc2ZuLlN0YXRlTWFjaGluZSk6IENyZWF0ZUVucmljaG1lbnRSZXNwb25zZSB7XG4gIHJldHVybiB7XG4gICAgZW5yaWNobWVudEFybjogc3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZUFybixcbiAgICBwaXBlUm9sZVBvbGljeTogbmV3IGlhbS5Qb2xpY3koc2NvcGUsIGBlbnJpY2htZW50cG9saWN5JHtpZH1gLCB7XG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICByZXNvdXJjZXM6IFtzdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuXSxcbiAgICAgICAgICBhY3Rpb25zOiBbJ3N0YXRlczpTdGFydFN5bmNFeGVjdXRpb24nXSxcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIH0pXG4gICAgICBdXG4gICAgfSlcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlUGlwZXNMb2dHcm91cE5hbWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGxvZ0dyb3VwUHJlZml4ID0gJy9hd3MvdmVuZGVkbG9ncy9waXBlcy9jb25zdHJ1Y3RzLyc7XG4gIGNvbnN0IG5hbWVQYXJ0czogc3RyaW5nW10gPSBbXG4gICAgY2RrLlN0YWNrLm9mKHNjb3BlKS5zdGFja05hbWUsXG4gICAgaWQsXG4gICAgJ1BpcGVzTG9nJ1xuICBdO1xuICByZXR1cm4gZGVmYXVsdHMuZ2VuZXJhdGVQaHlzaWNhbExvZ0dyb3VwTmFtZShsb2dHcm91cFByZWZpeCwgbmFtZVBhcnRzKTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNvdXJjZSBhbmQgVGFyZ2V0IGNvZGUgLSBhcyBuZXcgc291cmNlcyBhbmQgdGFyZ2V0cyBhcmUgcmVxdWlyZWQsIGltcGxlbWVudCB0aGVtXG4vLyBoZXJlIGFuZCB0ZXN0IHRoZSBuZXcgZnVuY3Rpb25zLlxuXG5leHBvcnQgZnVuY3Rpb24gQ3JlYXRlU3FzU291cmNlKHF1ZXVlOiBzcXMuSVF1ZXVlLCBjbGllbnRQcm9wcz86IHBpcGVzLkNmblBpcGUuUGlwZVNvdXJjZVBhcmFtZXRlcnNQcm9wZXJ0eSB8IGNkay5JUmVzb2x2YWJsZSk6IENyZWF0ZVNvdXJjZVJlc3BvbnNlIHtcbiAgY29uc3Qgc291cmNlUGFyYW1ldGVyczogcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlUGFyYW1ldGVyc1Byb3BlcnR5ID0gZGVmYXVsdHMuY29uc29saWRhdGVQcm9wcyhkZWZhdWx0cy5kZWZhdWx0U3FzU291cmNlUHJvcHMoKSwgY2xpZW50UHJvcHMpO1xuICByZXR1cm4ge1xuICAgIHNvdXJjZVBhcmFtZXRlcnMsXG4gICAgc291cmNlQXJuOiBxdWV1ZS5xdWV1ZUFybixcbiAgICBzb3VyY2VQb2xpY3k6IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBbcXVldWUucXVldWVBcm4hXSxcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICBcInNxczpSZWNlaXZlTWVzc2FnZVwiLFxuICAgICAgICAgICAgXCJzcXM6RGVsZXRlTWVzc2FnZVwiLFxuICAgICAgICAgICAgXCJzcXM6R2V0UXVldWVBdHRyaWJ1dGVzXCIsXG4gICAgICAgICAgXSxcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIH0pXG4gICAgICBdXG4gICAgfSlcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVUYXJnZXRSZXNwb25zZSB7XG4gIHJlYWRvbmx5IHRhcmdldFBhcmFtZXRlcnM6IHBpcGVzLkNmblBpcGUuUGlwZVRhcmdldFBhcmFtZXRlcnNQcm9wZXJ0eSxcbiAgcmVhZG9ubHkgdGFyZ2V0QXJuOiBzdHJpbmcsXG4gIHJlYWRvbmx5IHRhcmdldFBvbGljeTogaWFtLlBvbGljeURvY3VtZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDcmVhdGVTdGF0ZU1hY2hpbmVUYXJnZXQoc3RhdGVNYWNoaW5lOiBzZm4uSVN0YXRlTWFjaGluZSxcbiAgY2xpZW50UHJvcHM/OiBwaXBlcy5DZm5QaXBlLlBpcGVUYXJnZXRQYXJhbWV0ZXJzUHJvcGVydHkgfCBjZGsuSVJlc29sdmFibGUpOiBDcmVhdGVUYXJnZXRSZXNwb25zZSB7XG5cbiAgY29uc3QgdGFyZ2V0UGFyYW1ldGVyczogcGlwZXMuQ2ZuUGlwZS5QaXBlVGFyZ2V0UGFyYW1ldGVyc1Byb3BlcnR5ID1cbiAgICBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRzLmRlZmF1bHRTdGF0ZU1hY2hpbmVUYXJnZXRQcm9wcygpLCBjbGllbnRQcm9wcyk7XG4gIHJldHVybiB7XG4gICAgdGFyZ2V0UGFyYW1ldGVycyxcbiAgICB0YXJnZXRBcm46IHN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm4sXG4gICAgdGFyZ2V0UG9saWN5OiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIHJlc291cmNlczogW3N0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm5dLFxuICAgICAgICAgIGFjdGlvbnM6IFsnc3RhdGVzOlN0YXJ0RXhlY3V0aW9uJ10sXG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSlcbiAgfTtcbn1cblxuLy8gVGhpcyBpcyBjYWxsZWQgYnkgQnVpbGRQaXBlIHRvIHZhbGlkYXRlIGFyZ3VtZW50cyBzZW50IHRvIEJ1aWxkUGlwZVxuZnVuY3Rpb24gQ2hlY2tCdWlsZFBpcGVQcm9wcyhwcm9wczogQnVpbGRQaXBlc1Byb3BzKSB7XG4gIGlmIChwcm9wcy5lbnJpY2htZW50RnVuY3Rpb24gJiYgcHJvcHMuZW5yaWNobWVudFN0YXRlTWFjaGluZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkVSUk9SIC0gT25seSBvbmUgb2YgZW5yaWNobWVudEZ1bmN0aW9uIG9yIGVucmljaG1lbnRTdGF0ZU1hY2hpbmUgY2FuIGJlIHByb3ZpZGVkXCIpO1xuICB9XG5cbiAgaWYgKHByb3BzLmNsaWVudFByb3BzICYmIChwcm9wcy5jbGllbnRQcm9wcy5zb3VyY2UgfHwgcHJvcHMuY2xpZW50UHJvcHMudGFyZ2V0IHx8IHByb3BzLmNsaWVudFByb3BzLnJvbGVBcm4gfHwgcHJvcHMuY2xpZW50UHJvcHMuZW5yaWNobWVudCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IHNvdXJjZSwgdGFyZ2V0LCByb2xlQXJuLCBvciBlbnJpY2htZW50XCIpO1xuICB9XG5cbiAgaWYgKHByb3BzLmxvZ0xldmVsICYmIHByb3BzLmNsaWVudFByb3BzPy5sb2dDb25maWd1cmF0aW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IGxvZ0xldmVsIGFuZCBsb2dDb25maWd1cmF0aW9uJyk7XG4gIH1cbiAgaWYgKHByb3BzLnBpcGVMb2dQcm9wcyAmJiBwcm9wcy5jbGllbnRQcm9wcz8ubG9nQ29uZmlndXJhdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcignRVJST1IgLSBCdWlsZFBpcGVQcm9wcyBjYW5ub3Qgc3BlY2lmeSBwaXBlTG9nUHJvcHMgYW5kIGxvZ0NvbmZpZ3VyYXRpb24nKTtcbiAgfVxuICBpZiAocHJvcHMucGlwZUxvZ1Byb3BzICYmIChwcm9wcy5sb2dMZXZlbCA9PT0gUGlwZXNMb2dMZXZlbC5PRkYpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IHBpcGVMb2dQcm9wcyBhbmQgbG9nIGxldmVsIE9GRicpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZXNQcm9wcyB7XG4gIHJlYWRvbmx5IHBpcGVzUHJvcHM/OiBwaXBlcy5DZm5QaXBlUHJvcHNcbn1cblxuLy8gVGhpcyBpcyBjYWxsZWQgYnkgY29uc3RydWN0cyB0byB2YWxpZGF0ZSBpbnB1dHMgdG8gdGhlIGNvbnN0cnVjdFxuZXhwb3J0IGZ1bmN0aW9uIENoZWNrUGlwZXNQcm9wcyhwcm9wc09iamVjdDogUGlwZXNQcm9wcyB8IGFueSkge1xuICBsZXQgZXJyb3JNZXNzYWdlcyA9ICcnO1xuICBsZXQgZXJyb3JGb3VuZCA9IGZhbHNlO1xuXG4gIGlmIChwcm9wc09iamVjdC5waXBlc1Byb3BzPy5zb3VyY2UpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdEbyBub3Qgc2V0IHNvdXJjZSBpbiBwaXBlc1Byb3BzLiBJdCBpcyBzZXQgYnkgdGhlIGNvbnN0cnVjdC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LnBpcGVzUHJvcHM/LnRhcmdldCkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0RvIG5vdCBzZXQgdGFyZ2V0IGluIHBpcGVzUHJvcHMuIEl0IGlzIHNldCBieSB0aGUgY29uc3RydWN0Llxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAoZXJyb3JGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2VzKTtcbiAgfVxufVxuIl19
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGlwZXMtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUgsK0NBQStDO0FBRS9DLDJDQUEyQztBQUszQywrQkFBK0I7QUFDL0IsbUNBQW1DO0FBR25DLElBQVksYUFLWDtBQUxELFdBQVksYUFBYTtJQUN2Qiw0QkFBVyxDQUFBO0lBQ1gsZ0NBQWUsQ0FBQTtJQUNmLDhCQUFhLENBQUE7SUFDYixnQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxhQUFhLDZCQUFiLGFBQWEsUUFLeEI7QUF5QkQsU0FBZ0IsU0FBUyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO0lBQzVFLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTNCLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRTtRQUN0RCxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUM7UUFDMUQsY0FBYyxFQUFFO1lBQ2QsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWTtZQUN2QyxZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZO1NBQ3hDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsb0VBQW9FO0lBQ3BFLDZEQUE2RDtJQUM3RCxJQUFJLGNBQWMsR0FBdUI7UUFDdkMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO1FBQ3pCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7UUFDOUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztRQUM5QixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQjtRQUMvQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQjtLQUNoRCxDQUFDO0lBRUYsMkNBQTJDO0lBQzNDLElBQUksS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDN0IsTUFBTSxrQkFBa0IsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3ZGLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvRCxjQUFjLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLENBQUM7U0FBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sa0JBQWtCLEdBQUcsNEJBQTRCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNqRyxRQUFRLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0QsY0FBYyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQsc0RBQXNEO0lBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7UUFFekMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JGLElBQUksUUFBUSxLQUFLLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVuQyxNQUFNLG9CQUFvQixHQUFHO2dCQUMzQixZQUFZLEVBQUUsdUJBQXVCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQzthQUNqRCxDQUFDO1lBQ0YsTUFBTSx5QkFBeUIsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3RHLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUseUJBQXlCLENBQUMsQ0FBQztZQUMvRixNQUFNLGdCQUFnQixHQUFHO2dCQUN2Qiw0QkFBNEIsRUFBRTtvQkFDNUIsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXO2lCQUNyQztnQkFDRCxLQUFLLEVBQUUsUUFBUTthQUNoQixDQUFDO1lBRUYsY0FBYyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUU7Z0JBQ3pELGdCQUFnQjthQUNqQixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFFcEgsTUFBTSxPQUFPLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFFekUsT0FBTztRQUNMLElBQUksRUFBRSxPQUFPO1FBQ2IsUUFBUTtLQUNULENBQUM7QUFDSixDQUFDO0FBaEVELDhCQWdFQztBQU9ELFNBQVMsc0JBQXNCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsY0FBK0I7SUFDM0YsT0FBTztRQUNMLGFBQWEsRUFBRSxjQUFjLENBQUMsV0FBVztRQUN6QyxjQUFjLEVBQUUsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxFQUFFLEVBQUU7WUFDN0QsVUFBVSxFQUFFO2dCQUNWLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztvQkFDdEIsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztvQkFDdkMsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ2xDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7aUJBQ3pCLENBQUM7YUFDSDtTQUNGLENBQUM7S0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsNEJBQTRCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsWUFBOEI7SUFDaEcsT0FBTztRQUNMLGFBQWEsRUFBRSxZQUFZLENBQUMsZUFBZTtRQUMzQyxjQUFjLEVBQUUsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxFQUFFLEVBQUU7WUFDN0QsVUFBVSxFQUFFO2dCQUNWLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztvQkFDdEIsU0FBUyxFQUFFLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQztvQkFDekMsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQ3RDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7aUJBQ3pCLENBQUM7YUFDSDtTQUNGLENBQUM7S0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsdUJBQXVCLENBQUMsS0FBZ0IsRUFBRSxFQUFVO0lBQzNELE1BQU0sY0FBYyxHQUFHLG1DQUFtQyxDQUFDO0lBQzNELE1BQU0sU0FBUyxHQUFhO1FBQzFCLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVM7UUFDN0IsRUFBRTtRQUNGLFVBQVU7S0FDWCxDQUFDO0lBQ0YsT0FBTyxRQUFRLENBQUMsNEJBQTRCLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzFFLENBQUM7QUFFRCw2QkFBNkI7QUFDN0IsbUZBQW1GO0FBQ25GLG1DQUFtQztBQUVuQyxTQUFnQixlQUFlLENBQUMsS0FBaUIsRUFBRSxXQUEwRTtJQUMzSCxNQUFNLGdCQUFnQixHQUErQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDOUksT0FBTztRQUNMLGdCQUFnQjtRQUNoQixTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVE7UUFDekIsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQztZQUNuQyxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO29CQUN0QixTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUyxDQUFDO29CQUM1QixPQUFPLEVBQUU7d0JBQ1Asb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLHdCQUF3QjtxQkFDekI7b0JBQ0QsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztpQkFDekIsQ0FBQzthQUNIO1NBQ0YsQ0FBQztLQUNILENBQUM7QUFDSixDQUFDO0FBbkJELDBDQW1CQztBQVNELFNBQWdCLDJCQUEyQixDQUN6QyxLQUFnQixFQUFFLEtBQXVDO0lBQ3pELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBQ0QsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRixJQUFJLGdCQUFnQixHQUNsQixRQUFRLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGlDQUFpQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV0RyxNQUFNLFlBQVksR0FBdUIsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDO1FBQzlELFVBQVUsRUFBRTtZQUNWLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDdEIsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7Z0JBQ3ZDLE9BQU8sRUFBRTtvQkFDUCx5QkFBeUI7b0JBQ3pCLHFCQUFxQjtvQkFDckIsMkJBQTJCO29CQUMzQixzQkFBc0I7aUJBQ3ZCO2dCQUNELE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7YUFDekIsQ0FBQztTQUNIO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxrQkFBMkQsQ0FBQztJQUNoRSxnREFBZ0Q7SUFDaEQsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUNyRCxxQkFBcUIsRUFBRSxLQUFLO1lBQzVCLFVBQVUsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1NBQ25DLENBQUMsQ0FBQztRQUNILGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRTtZQUM3RCx3QkFBd0IsRUFBRTtnQkFDeEIsZ0JBQWdCLEVBQUU7b0JBQ2hCLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsUUFBUTtpQkFDdkM7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxhQUFhLENBQ3hCLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQzlDLE9BQU8sRUFBRTtnQkFDUCxpQkFBaUI7YUFDbEI7WUFDRCxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1NBQ3pCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLENBQUUsZ0JBQWdCLENBQUMsd0JBQXFGLEVBQUUseUJBQXlCLENBQUM7WUFDdEksQ0FBRSxnQkFBZ0IsQ0FBQyx3QkFBcUYsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7WUFDbEksTUFBTSxJQUFJLEtBQUssQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDO1FBQ2hHLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLGdCQUFnQjtRQUNoQixTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFlO1FBQ3RDLFlBQVk7UUFDWixHQUFHLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxJQUFJLFNBQVM7S0FDNUMsQ0FBQztBQUNKLENBQUM7QUEzREQsa0VBMkRDO0FBUUQsU0FBZ0Isd0JBQXdCLENBQUMsWUFBK0IsRUFDdEUsV0FBMEU7SUFFMUUsTUFBTSxnQkFBZ0IsR0FDcEIsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyw4QkFBOEIsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3BGLE9BQU87UUFDTCxnQkFBZ0I7UUFDaEIsU0FBUyxFQUFFLFlBQVksQ0FBQyxlQUFlO1FBQ3ZDLFlBQVksRUFBRSxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUM7WUFDbkMsVUFBVSxFQUFFO2dCQUNWLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztvQkFDdEIsU0FBUyxFQUFFLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQztvQkFDekMsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ2xDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7aUJBQ3pCLENBQUM7YUFDSDtTQUNGLENBQUM7S0FDSCxDQUFDO0FBQ0osQ0FBQztBQWxCRCw0REFrQkM7QUFFRCxzRUFBc0U7QUFDdEUsU0FBUyxtQkFBbUIsQ0FBQyxLQUFzQjtJQUNqRCxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxLQUFLLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM3RCxNQUFNLElBQUksS0FBSyxDQUFDLGtGQUFrRixDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUM3SSxNQUFNLElBQUksS0FBSyxDQUFDLDhFQUE4RSxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7UUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQzlELE1BQU0sSUFBSSxLQUFLLENBQUMseUVBQXlFLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqRSxNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztBQUNILENBQUM7QUFNRCxtRUFBbUU7QUFDbkUsU0FBZ0IsZUFBZSxDQUFDLFdBQTZCO0lBQzNELElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUN2QixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFdkIsSUFBSSxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ25DLGFBQWEsSUFBSSxnRUFBZ0UsQ0FBQztRQUNsRixVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDbkMsYUFBYSxJQUFJLGdFQUFnRSxDQUFDO1FBQ2xGLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7QUFDSCxDQUFDO0FBakJELDBDQWlCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAqIGFzIHBpcGVzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1waXBlcyc7XG5pbXBvcnQgKiBhcyBzcXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNxcyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCAqIGFzIGR5bmFtb2RiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBzZm4gZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMnO1xuaW1wb3J0ICogYXMgZGVmYXVsdHMgZnJvbSBcIi4uXCI7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBlbnVtIFBpcGVzTG9nTGV2ZWwge1xuICBPRkYgPSBcIk9GRlwiLFxuICBUUkFDRSA9IFwiVFJBQ0VcIixcbiAgSU5GTyA9IFwiSU5GT1wiLFxuICBFUlJPUiA9IFwiRVJST1JcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVTb3VyY2VSZXNwb25zZSB7XG4gIHJlYWRvbmx5IHNvdXJjZVBhcmFtZXRlcnM6IHBpcGVzLkNmblBpcGUuUGlwZVNvdXJjZVBhcmFtZXRlcnNQcm9wZXJ0eSxcbiAgcmVhZG9ubHkgc291cmNlQXJuOiBzdHJpbmcsXG4gIHJlYWRvbmx5IHNvdXJjZVBvbGljeTogaWFtLlBvbGljeURvY3VtZW50LFxuICAvLyBOb3QgcG9wdWxhdGVkIGZvciBldmVyeSBzb3VyY2UsIG5vdCBwb3B1bGF0ZWQgaWYgZXhpc3RpbmcgcXVldWUgaXMgcGFzc2VkIGluIHNvbWVkYXlcbiAgcmVhZG9ubHkgZGxxPzogc3FzLlF1ZXVlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRQaXBlc1Byb3BzIHtcbiAgcmVhZG9ubHkgc291cmNlOiBDcmVhdGVTb3VyY2VSZXNwb25zZSxcbiAgcmVhZG9ubHkgdGFyZ2V0OiBDcmVhdGVUYXJnZXRSZXNwb25zZSxcbiAgcmVhZG9ubHkgZW5yaWNobWVudEZ1bmN0aW9uPzogbGFtYmRhLkZ1bmN0aW9uLFxuICByZWFkb25seSBlbnJpY2htZW50U3RhdGVNYWNoaW5lPzogc2ZuLlN0YXRlTWFjaGluZSxcbiAgcmVhZG9ubHkgY2xpZW50UHJvcHM/OiBhbnkgfCBwaXBlcy5DZm5QaXBlUHJvcHNcbiAgcmVhZG9ubHkgbG9nTGV2ZWw/OiBQaXBlc0xvZ0xldmVsLFxuICByZWFkb25seSBwaXBlTG9nUHJvcHM/OiBsb2dzLkxvZ0dyb3VwUHJvcHNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFBpcGVzUmVzcG9uc2Uge1xuICByZWFkb25seSBwaXBlOiBwaXBlcy5DZm5QaXBlLFxuICByZWFkb25seSBwaXBlUm9sZTogaWFtLlJvbGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEJ1aWxkUGlwZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQnVpbGRQaXBlc1Byb3BzKTogQnVpbGRQaXBlc1Jlc3BvbnNlIHtcbiAgQ2hlY2tCdWlsZFBpcGVQcm9wcyhwcm9wcyk7XG5cbiAgY29uc3QgcGlwZVJvbGUgPSBuZXcgaWFtLlJvbGUoc2NvcGUsIGBQaXBlUm9sZS0tJHtpZH1gLCB7XG4gICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ3BpcGVzLmFtYXpvbmF3cy5jb20nKSxcbiAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgc291cmNlUG9saWN5OiBwcm9wcy5zb3VyY2Uuc291cmNlUG9saWN5LFxuICAgICAgdGFyZ2V0UG9saWN5OiBwcm9wcy50YXJnZXQudGFyZ2V0UG9saWN5LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIEF0IHRoaXMgcG9pbnQgd2UgaGF2ZSB0aGUgbWluaW11bSB2YWx1ZXMgZm9yIENmblBpcGVQcm9wcyAtIGxldCdzXG4gIC8vIGNyZWF0ZSBpdCBhbmQgZm9sZCBpbiBhbnkgYWRkaXRpb25hbCB2YWx1ZXMgYXMgd2UgZ28gYWxvbmdcbiAgbGV0IGNvbnN0cnVjdFByb3BzOiBwaXBlcy5DZm5QaXBlUHJvcHMgPSB7XG4gICAgcm9sZUFybjogcGlwZVJvbGUucm9sZUFybixcbiAgICBzb3VyY2U6IHByb3BzLnNvdXJjZS5zb3VyY2VBcm4sXG4gICAgdGFyZ2V0OiBwcm9wcy50YXJnZXQudGFyZ2V0QXJuLFxuICAgIHNvdXJjZVBhcmFtZXRlcnM6IHByb3BzLnNvdXJjZS5zb3VyY2VQYXJhbWV0ZXJzLFxuICAgIHRhcmdldFBhcmFtZXRlcnM6IHByb3BzLnRhcmdldC50YXJnZXRQYXJhbWV0ZXJzLFxuICB9O1xuXG4gIC8vIERvIHdlIGhhdmUgYW55IGVucmljaG1lbnQgZnVuY3Rpb25hbGl0eT9cbiAgaWYgKHByb3BzLmVucmljaG1lbnRGdW5jdGlvbikge1xuICAgIGNvbnN0IGVucmljaG1lbnRTZXR0aW5ncyA9IGNyZWF0ZUxhbWJkYUVucmljaG1lbnQoc2NvcGUsIGlkLCBwcm9wcy5lbnJpY2htZW50RnVuY3Rpb24pO1xuICAgIHBpcGVSb2xlLmF0dGFjaElubGluZVBvbGljeShlbnJpY2htZW50U2V0dGluZ3MucGlwZVJvbGVQb2xpY3kpO1xuICAgIGNvbnN0cnVjdFByb3BzID0gZGVmYXVsdHMuY29uc29saWRhdGVQcm9wcyhjb25zdHJ1Y3RQcm9wcywgeyBlbnJpY2htZW50OiBlbnJpY2htZW50U2V0dGluZ3MuZW5yaWNobWVudEFybiB9KTtcbiAgfSBlbHNlIGlmIChwcm9wcy5lbnJpY2htZW50U3RhdGVNYWNoaW5lKSB7XG4gICAgY29uc3QgZW5yaWNobWVudFNldHRpbmdzID0gY3JlYXRlU3RhdGVNYWNoaW5lRW5yaWNobWVudChzY29wZSwgaWQsIHByb3BzLmVucmljaG1lbnRTdGF0ZU1hY2hpbmUpO1xuICAgIHBpcGVSb2xlLmF0dGFjaElubGluZVBvbGljeShlbnJpY2htZW50U2V0dGluZ3MucGlwZVJvbGVQb2xpY3kpO1xuICAgIGNvbnN0cnVjdFByb3BzID0gZGVmYXVsdHMuY29uc29saWRhdGVQcm9wcyhjb25zdHJ1Y3RQcm9wcywgeyBlbnJpY2htZW50OiBlbnJpY2htZW50U2V0dGluZ3MuZW5yaWNobWVudEFybiB9KTtcbiAgfVxuXG4gIC8vIEFyZSB3ZSByZXNwb25zaWJsZSB0byBjcmVhdGUgdGhlIGxvZ2dpbmcgbWVjaGFuaXNtP1xuICBpZiAoIXByb3BzLmNsaWVudFByb3BzPy5sb2dDb25maWd1cmF0aW9uKSB7XG5cbiAgICBjb25zdCBsb2dMZXZlbCA9IGRlZmF1bHRzLkNoZWNrU3RyaW5nV2l0aERlZmF1bHQocHJvcHMubG9nTGV2ZWwsIFBpcGVzTG9nTGV2ZWwuSU5GTyk7XG4gICAgaWYgKGxvZ0xldmVsICE9PSBQaXBlc0xvZ0xldmVsLk9GRikge1xuXG4gICAgICBjb25zdCBkZWZhdWx0TG9nR3JvdXBQcm9wcyA9IHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiBjcmVhdGVQaXBlc0xvZ0dyb3VwTmFtZShzY29wZSwgaWQpLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGNvbnNvbGlkYXRlZExvZ0dyb3VwUHJvcHMgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRMb2dHcm91cFByb3BzLCBwcm9wcy5waXBlTG9nUHJvcHMpO1xuICAgICAgY29uc3QgbmV3TG9nR3JvdXAgPSBkZWZhdWx0cy5idWlsZExvZ0dyb3VwKHNjb3BlLCBgTG9nR3JvdXAtJHtpZH1gLCBjb25zb2xpZGF0ZWRMb2dHcm91cFByb3BzKTtcbiAgICAgIGNvbnN0IGxvZ0NvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAgIGNsb3Vkd2F0Y2hMb2dzTG9nRGVzdGluYXRpb246IHtcbiAgICAgICAgICBsb2dHcm91cEFybjogbmV3TG9nR3JvdXAubG9nR3JvdXBBcm5cbiAgICAgICAgfSxcbiAgICAgICAgbGV2ZWw6IGxvZ0xldmVsXG4gICAgICB9O1xuXG4gICAgICBjb25zdHJ1Y3RQcm9wcyA9IGRlZmF1bHRzLmNvbnNvbGlkYXRlUHJvcHMoY29uc3RydWN0UHJvcHMsIHtcbiAgICAgICAgbG9nQ29uZmlndXJhdGlvbixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNvbnNvbGlkYXRlUHJvcHMgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRzLmRlZmF1bHRQaXBlc1Byb3BzKCksIHByb3BzLmNsaWVudFByb3BzLCBjb25zdHJ1Y3RQcm9wcyk7XG5cbiAgY29uc3QgbmV3UGlwZSA9IG5ldyBwaXBlcy5DZm5QaXBlKHNjb3BlLCBgcGlwZS0ke2lkfWAsIGNvbnNvbGlkYXRlUHJvcHMpO1xuXG4gIHJldHVybiB7XG4gICAgcGlwZTogbmV3UGlwZSxcbiAgICBwaXBlUm9sZVxuICB9O1xufVxuXG5pbnRlcmZhY2UgQ3JlYXRlRW5yaWNobWVudFJlc3BvbnNlIHtcbiAgcmVhZG9ubHkgZW5yaWNobWVudEFybjogc3RyaW5nLFxuICByZWFkb25seSBwaXBlUm9sZVBvbGljeTogaWFtLlBvbGljeVxufVxuXG5mdW5jdGlvbiBjcmVhdGVMYW1iZGFFbnJpY2htZW50KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGxhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb24pOiBDcmVhdGVFbnJpY2htZW50UmVzcG9uc2Uge1xuICByZXR1cm4ge1xuICAgIGVucmljaG1lbnRBcm46IGxhbWJkYUZ1bmN0aW9uLmZ1bmN0aW9uQXJuLFxuICAgIHBpcGVSb2xlUG9saWN5OiBuZXcgaWFtLlBvbGljeShzY29wZSwgYGVucmljaG1lbnRwb2xpY3kke2lkfWAsIHtcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIHJlc291cmNlczogW2xhbWJkYUZ1bmN0aW9uLmZ1bmN0aW9uQXJuXSxcbiAgICAgICAgICBhY3Rpb25zOiBbJ2xhbWJkYTpJbnZva2VGdW5jdGlvbiddLFxuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgfSlcbiAgICAgIF1cbiAgICB9KVxuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVTdGF0ZU1hY2hpbmVFbnJpY2htZW50KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHN0YXRlTWFjaGluZTogc2ZuLlN0YXRlTWFjaGluZSk6IENyZWF0ZUVucmljaG1lbnRSZXNwb25zZSB7XG4gIHJldHVybiB7XG4gICAgZW5yaWNobWVudEFybjogc3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZUFybixcbiAgICBwaXBlUm9sZVBvbGljeTogbmV3IGlhbS5Qb2xpY3koc2NvcGUsIGBlbnJpY2htZW50cG9saWN5JHtpZH1gLCB7XG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICByZXNvdXJjZXM6IFtzdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuXSxcbiAgICAgICAgICBhY3Rpb25zOiBbJ3N0YXRlczpTdGFydFN5bmNFeGVjdXRpb24nXSxcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIH0pXG4gICAgICBdXG4gICAgfSlcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlUGlwZXNMb2dHcm91cE5hbWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGxvZ0dyb3VwUHJlZml4ID0gJy9hd3MvdmVuZGVkbG9ncy9waXBlcy9jb25zdHJ1Y3RzLyc7XG4gIGNvbnN0IG5hbWVQYXJ0czogc3RyaW5nW10gPSBbXG4gICAgY2RrLlN0YWNrLm9mKHNjb3BlKS5zdGFja05hbWUsXG4gICAgaWQsXG4gICAgJ1BpcGVzTG9nJ1xuICBdO1xuICByZXR1cm4gZGVmYXVsdHMuZ2VuZXJhdGVQaHlzaWNhbExvZ0dyb3VwTmFtZShsb2dHcm91cFByZWZpeCwgbmFtZVBhcnRzKTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNvdXJjZSBhbmQgVGFyZ2V0IGNvZGUgLSBhcyBuZXcgc291cmNlcyBhbmQgdGFyZ2V0cyBhcmUgcmVxdWlyZWQsIGltcGxlbWVudCB0aGVtXG4vLyBoZXJlIGFuZCB0ZXN0IHRoZSBuZXcgZnVuY3Rpb25zLlxuXG5leHBvcnQgZnVuY3Rpb24gQ3JlYXRlU3FzU291cmNlKHF1ZXVlOiBzcXMuSVF1ZXVlLCBjbGllbnRQcm9wcz86IHBpcGVzLkNmblBpcGUuUGlwZVNvdXJjZVBhcmFtZXRlcnNQcm9wZXJ0eSB8IGNkay5JUmVzb2x2YWJsZSk6IENyZWF0ZVNvdXJjZVJlc3BvbnNlIHtcbiAgY29uc3Qgc291cmNlUGFyYW1ldGVyczogcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlUGFyYW1ldGVyc1Byb3BlcnR5ID0gZGVmYXVsdHMuY29uc29saWRhdGVQcm9wcyhkZWZhdWx0cy5kZWZhdWx0U3FzU291cmNlUHJvcHMoKSwgY2xpZW50UHJvcHMpO1xuICByZXR1cm4ge1xuICAgIHNvdXJjZVBhcmFtZXRlcnMsXG4gICAgc291cmNlQXJuOiBxdWV1ZS5xdWV1ZUFybixcbiAgICBzb3VyY2VQb2xpY3k6IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBbcXVldWUucXVldWVBcm4hXSxcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICBcInNxczpSZWNlaXZlTWVzc2FnZVwiLFxuICAgICAgICAgICAgXCJzcXM6RGVsZXRlTWVzc2FnZVwiLFxuICAgICAgICAgICAgXCJzcXM6R2V0UXVldWVBdHRyaWJ1dGVzXCIsXG4gICAgICAgICAgXSxcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIH0pXG4gICAgICBdXG4gICAgfSlcbiAgfTtcbn1cblxuaW50ZXJmYWNlIENyZWF0ZUR5bmFtb0RCU3RyZWFtc1NvdXJjZVByb3BzIHtcbiAgdGFibGU6IGR5bmFtb2RiLklUYWJsZSxcbiAgZGVwbG95U3FzRGxxUXVldWU/OiBib29sZWFuLFxuICBzcXNEbHFRdWV1ZVByb3BzPzogc3FzLlF1ZXVlUHJvcHMsXG4gIGNsaWVudFByb3BzPzogcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlUGFyYW1ldGVyc1Byb3BlcnR5IHwgY2RrLklSZXNvbHZhYmxlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDcmVhdGVEeW5hbW9EQlN0cmVhbXNTb3VyY2UoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzOiBDcmVhdGVEeW5hbW9EQlN0cmVhbXNTb3VyY2VQcm9wcyk6IENyZWF0ZVNvdXJjZVJlc3BvbnNlIHtcbiAgaWYgKCFwcm9wcy50YWJsZS50YWJsZVN0cmVhbUFybikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkVSUk9SIC0gRHluYW1vREIgVGFibGUgbXVzdCBoYXZlIGFuIGFzc29jaWF0ZWQgc3RyZWFtXCIpO1xuICB9XG4gIGNvbnN0IGRlcGxveURscSA9IGRlZmF1bHRzLkNoZWNrQm9vbGVhbldpdGhEZWZhdWx0KHByb3BzLmRlcGxveVNxc0RscVF1ZXVlLCB0cnVlKTtcbiAgbGV0IHNvdXJjZVBhcmFtZXRlcnM6IHBpcGVzLkNmblBpcGUuUGlwZVNvdXJjZVBhcmFtZXRlcnNQcm9wZXJ0eSA9XG4gICAgZGVmYXVsdHMuY29uc29saWRhdGVQcm9wcyhkZWZhdWx0cy5kZWZhdWx0RHluYW1vREJTdHJlYW1zU291cmNlUHJvcHMoZGVwbG95RGxxKSwgcHJvcHMuY2xpZW50UHJvcHMpO1xuXG4gIGNvbnN0IHNvdXJjZVBvbGljeTogaWFtLlBvbGljeURvY3VtZW50ID0gbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgc3RhdGVtZW50czogW1xuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICByZXNvdXJjZXM6IFtwcm9wcy50YWJsZS50YWJsZVN0cmVhbUFybl0sXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICBcImR5bmFtb2RiOkRlc2NyaWJlU3RyZWFtXCIsXG4gICAgICAgICAgXCJkeW5hbW9kYjpHZXRSZWNvcmRzXCIsXG4gICAgICAgICAgXCJkeW5hbW9kYjpHZXRTaGFyZEl0ZXJhdG9yXCIsXG4gICAgICAgICAgXCJkeW5hbW9kYjpMaXN0U3RyZWFtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIH0pXG4gICAgXVxuICB9KTtcbiAgbGV0IGJ1aWxkUXVldWVSZXNwb25zZTogZGVmYXVsdHMuQnVpbGRRdWV1ZVJlc3BvbnNlIHwgdW5kZWZpbmVkO1xuICAvLyBEZWZhdWx0IHRvIHNldHRpbmcgdXAgRExRIGZvciBmYWlsZWQgbWVzc2FnZXNcbiAgaWYgKGRlcGxveURscSkge1xuICAgIGJ1aWxkUXVldWVSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkUXVldWUoc2NvcGUsICdkbHEnLCB7XG4gICAgICBkZXBsb3lEZWFkTGV0dGVyUXVldWU6IGZhbHNlLFxuICAgICAgcXVldWVQcm9wczogcHJvcHMuc3FzRGxxUXVldWVQcm9wc1xuICAgIH0pO1xuICAgIHNvdXJjZVBhcmFtZXRlcnMgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKHNvdXJjZVBhcmFtZXRlcnMsIHtcbiAgICAgIGR5bmFtb0RiU3RyZWFtUGFyYW1ldGVyczoge1xuICAgICAgICBkZWFkTGV0dGVyQ29uZmlnOiB7XG4gICAgICAgICAgYXJuOiBidWlsZFF1ZXVlUmVzcG9uc2UucXVldWUucXVldWVBcm5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHNvdXJjZVBvbGljeS5hZGRTdGF0ZW1lbnRzKFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICByZXNvdXJjZXM6IFtidWlsZFF1ZXVlUmVzcG9uc2UucXVldWUucXVldWVBcm5dLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJzcXM6U2VuZE1lc3NhZ2VcIlxuICAgICAgICBdLFxuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICB9KVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKCgoc291cmNlUGFyYW1ldGVycy5keW5hbW9EYlN0cmVhbVBhcmFtZXRlcnMgYXMgcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlRHluYW1vREJTdHJlYW1QYXJhbWV0ZXJzUHJvcGVydHkpPy5tYXhpbXVtUmVjb3JkQWdlSW5TZWNvbmRzKSB8fFxuICAgICAgKChzb3VyY2VQYXJhbWV0ZXJzLmR5bmFtb0RiU3RyZWFtUGFyYW1ldGVycyBhcyBwaXBlcy5DZm5QaXBlLlBpcGVTb3VyY2VEeW5hbW9EQlN0cmVhbVBhcmFtZXRlcnNQcm9wZXJ0eSk/Lm1heGltdW1SZXRyeUF0dGVtcHRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFUlJPUiAtIHJldHJ5IGFuZCByZWNvcmQgYWdlIGNvbnN0cmFpbnRzIGNhbm5vdCBiZSBzcGVjaWZpZWQgd2l0aCBubyBETFFcXG4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHNvdXJjZVBhcmFtZXRlcnMsXG4gICAgc291cmNlQXJuOiBwcm9wcy50YWJsZS50YWJsZVN0cmVhbUFybiEsXG4gICAgc291cmNlUG9saWN5LFxuICAgIGRscTogYnVpbGRRdWV1ZVJlc3BvbnNlPy5xdWV1ZSA/PyB1bmRlZmluZWRcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVUYXJnZXRSZXNwb25zZSB7XG4gIHJlYWRvbmx5IHRhcmdldFBhcmFtZXRlcnM6IHBpcGVzLkNmblBpcGUuUGlwZVRhcmdldFBhcmFtZXRlcnNQcm9wZXJ0eSxcbiAgcmVhZG9ubHkgdGFyZ2V0QXJuOiBzdHJpbmcsXG4gIHJlYWRvbmx5IHRhcmdldFBvbGljeTogaWFtLlBvbGljeURvY3VtZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDcmVhdGVTdGF0ZU1hY2hpbmVUYXJnZXQoc3RhdGVNYWNoaW5lOiBzZm4uSVN0YXRlTWFjaGluZSxcbiAgY2xpZW50UHJvcHM/OiBwaXBlcy5DZm5QaXBlLlBpcGVUYXJnZXRQYXJhbWV0ZXJzUHJvcGVydHkgfCBjZGsuSVJlc29sdmFibGUpOiBDcmVhdGVUYXJnZXRSZXNwb25zZSB7XG5cbiAgY29uc3QgdGFyZ2V0UGFyYW1ldGVyczogcGlwZXMuQ2ZuUGlwZS5QaXBlVGFyZ2V0UGFyYW1ldGVyc1Byb3BlcnR5ID1cbiAgICBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRzLmRlZmF1bHRTdGF0ZU1hY2hpbmVUYXJnZXRQcm9wcygpLCBjbGllbnRQcm9wcyk7XG4gIHJldHVybiB7XG4gICAgdGFyZ2V0UGFyYW1ldGVycyxcbiAgICB0YXJnZXRBcm46IHN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm4sXG4gICAgdGFyZ2V0UG9saWN5OiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIHJlc291cmNlczogW3N0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm5dLFxuICAgICAgICAgIGFjdGlvbnM6IFsnc3RhdGVzOlN0YXJ0RXhlY3V0aW9uJ10sXG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSlcbiAgfTtcbn1cblxuLy8gVGhpcyBpcyBjYWxsZWQgYnkgQnVpbGRQaXBlIHRvIHZhbGlkYXRlIGFyZ3VtZW50cyBzZW50IHRvIEJ1aWxkUGlwZVxuZnVuY3Rpb24gQ2hlY2tCdWlsZFBpcGVQcm9wcyhwcm9wczogQnVpbGRQaXBlc1Byb3BzKSB7XG4gIGlmIChwcm9wcy5lbnJpY2htZW50RnVuY3Rpb24gJiYgcHJvcHMuZW5yaWNobWVudFN0YXRlTWFjaGluZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkVSUk9SIC0gT25seSBvbmUgb2YgZW5yaWNobWVudEZ1bmN0aW9uIG9yIGVucmljaG1lbnRTdGF0ZU1hY2hpbmUgY2FuIGJlIHByb3ZpZGVkXCIpO1xuICB9XG5cbiAgaWYgKHByb3BzLmNsaWVudFByb3BzICYmIChwcm9wcy5jbGllbnRQcm9wcy5zb3VyY2UgfHwgcHJvcHMuY2xpZW50UHJvcHMudGFyZ2V0IHx8IHByb3BzLmNsaWVudFByb3BzLnJvbGVBcm4gfHwgcHJvcHMuY2xpZW50UHJvcHMuZW5yaWNobWVudCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IHNvdXJjZSwgdGFyZ2V0LCByb2xlQXJuLCBvciBlbnJpY2htZW50XCIpO1xuICB9XG5cbiAgaWYgKHByb3BzLmxvZ0xldmVsICYmIHByb3BzLmNsaWVudFByb3BzPy5sb2dDb25maWd1cmF0aW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IGxvZ0xldmVsIGFuZCBsb2dDb25maWd1cmF0aW9uJyk7XG4gIH1cbiAgaWYgKHByb3BzLnBpcGVMb2dQcm9wcyAmJiBwcm9wcy5jbGllbnRQcm9wcz8ubG9nQ29uZmlndXJhdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcignRVJST1IgLSBCdWlsZFBpcGVQcm9wcyBjYW5ub3Qgc3BlY2lmeSBwaXBlTG9nUHJvcHMgYW5kIGxvZ0NvbmZpZ3VyYXRpb24nKTtcbiAgfVxuICBpZiAocHJvcHMucGlwZUxvZ1Byb3BzICYmIChwcm9wcy5sb2dMZXZlbCA9PT0gUGlwZXNMb2dMZXZlbC5PRkYpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IHBpcGVMb2dQcm9wcyBhbmQgbG9nIGxldmVsIE9GRicpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZXNQcm9wcyB7XG4gIHJlYWRvbmx5IHBpcGVzUHJvcHM/OiBwaXBlcy5DZm5QaXBlUHJvcHNcbn1cblxuLy8gVGhpcyBpcyBjYWxsZWQgYnkgY29uc3RydWN0cyB0byB2YWxpZGF0ZSBpbnB1dHMgdG8gdGhlIGNvbnN0cnVjdFxuZXhwb3J0IGZ1bmN0aW9uIENoZWNrUGlwZXNQcm9wcyhwcm9wc09iamVjdDogUGlwZXNQcm9wcyB8IGFueSkge1xuICBsZXQgZXJyb3JNZXNzYWdlcyA9ICcnO1xuICBsZXQgZXJyb3JGb3VuZCA9IGZhbHNlO1xuXG4gIGlmIChwcm9wc09iamVjdC5waXBlc1Byb3BzPy5zb3VyY2UpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdEbyBub3Qgc2V0IHNvdXJjZSBpbiBwaXBlc1Byb3BzLiBJdCBpcyBzZXQgYnkgdGhlIGNvbnN0cnVjdC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LnBpcGVzUHJvcHM/LnRhcmdldCkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0RvIG5vdCBzZXQgdGFyZ2V0IGluIHBpcGVzUHJvcHMuIEl0IGlzIHNldCBieSB0aGUgY29uc3RydWN0Llxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAoZXJyb3JGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2VzKTtcbiAgfVxufVxuIl19
|
|
@@ -39,7 +39,8 @@ export declare function buildStateMachine(scope: Construct, id: string | undefin
|
|
|
39
39
|
*/
|
|
40
40
|
export declare function buildStepFunctionCWAlarms(scope: Construct, id: string | undefined, sm: sfn.StateMachine): cloudwatch.Alarm[];
|
|
41
41
|
export interface StateMachineProps {
|
|
42
|
-
readonly stateMachineProps
|
|
42
|
+
readonly stateMachineProps?: sfn.StateMachineProps;
|
|
43
|
+
readonly existingStateMachineObj?: sfn.StateMachine;
|
|
43
44
|
readonly createCloudWatchAlarms?: boolean;
|
|
44
45
|
readonly cloudWatchAlarmsPrefix?: string;
|
|
45
46
|
readonly logGroupProps?: logs.LogGroupProps;
|