@aws-solutions-constructs/core 2.5.0 → 2.6.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 CHANGED
@@ -13,7 +13,7 @@
13
13
  "npmlog": "^4.1.2"
14
14
  },
15
15
  "dependencies": {
16
- "aws-cdk-lib": "^2.15.0",
16
+ "aws-cdk-lib": "^2.20.0",
17
17
  "constructs": "^10.0.0"
18
18
  },
19
19
  "dependencyClosure": {
@@ -383,6 +383,19 @@
383
383
  }
384
384
  }
385
385
  },
386
+ "aws-cdk-lib.aws_billingconductor": {
387
+ "targets": {
388
+ "dotnet": {
389
+ "namespace": "Amazon.CDK.AWS.BillingConductor"
390
+ },
391
+ "java": {
392
+ "package": "software.amazon.awscdk.services.billingconductor"
393
+ },
394
+ "python": {
395
+ "module": "aws_cdk.aws_billingconductor"
396
+ }
397
+ }
398
+ },
386
399
  "aws-cdk-lib.aws_budgets": {
387
400
  "targets": {
388
401
  "dotnet": {
@@ -2048,6 +2061,19 @@
2048
2061
  }
2049
2062
  }
2050
2063
  },
2064
+ "aws-cdk-lib.aws_personalize": {
2065
+ "targets": {
2066
+ "dotnet": {
2067
+ "namespace": "Amazon.CDK.AWS.Personalize"
2068
+ },
2069
+ "java": {
2070
+ "package": "software.amazon.awscdk.services.personalize"
2071
+ },
2072
+ "python": {
2073
+ "module": "aws_cdk.aws_personalize"
2074
+ }
2075
+ }
2076
+ },
2051
2077
  "aws-cdk-lib.aws_pinpoint": {
2052
2078
  "targets": {
2053
2079
  "dotnet": {
@@ -2935,7 +2961,7 @@
2935
2961
  },
2936
2962
  "description": "Core CDK Construct for patterns library",
2937
2963
  "homepage": "https://github.com/awslabs/aws-solutions-constructs.git",
2938
- "jsiiVersion": "1.55.1 (build 07d2d90)",
2964
+ "jsiiVersion": "1.58.0 (build f8ba112)",
2939
2965
  "license": "Apache-2.0",
2940
2966
  "metadata": {
2941
2967
  "jsii": {
@@ -3257,6 +3283,24 @@
3257
3283
  "fqn": "aws-cdk-lib.aws_dynamodb.TableProps"
3258
3284
  }
3259
3285
  },
3286
+ {
3287
+ "abstract": true,
3288
+ "docs": {
3289
+ "default": "- None",
3290
+ "remarks": "Providing both this and `dynamoTableProps` will cause an error.",
3291
+ "summary": "Existing instance of dynamodb interface."
3292
+ },
3293
+ "immutable": true,
3294
+ "locationInModule": {
3295
+ "filename": "lib/dynamodb-table-helper.ts",
3296
+ "line": 40
3297
+ },
3298
+ "name": "existingTableInterface",
3299
+ "optional": true,
3300
+ "type": {
3301
+ "fqn": "aws-cdk-lib.aws_dynamodb.ITable"
3302
+ }
3303
+ },
3260
3304
  {
3261
3305
  "abstract": true,
3262
3306
  "docs": {
@@ -3285,7 +3329,7 @@
3285
3329
  "kind": "interface",
3286
3330
  "locationInModule": {
3287
3331
  "filename": "lib/dynamodb-table-helper.ts",
3288
- "line": 36
3332
+ "line": 43
3289
3333
  },
3290
3334
  "name": "BuildDynamoDBTableWithStreamProps",
3291
3335
  "properties": [
@@ -3298,7 +3342,7 @@
3298
3342
  "immutable": true,
3299
3343
  "locationInModule": {
3300
3344
  "filename": "lib/dynamodb-table-helper.ts",
3301
- "line": 42
3345
+ "line": 49
3302
3346
  },
3303
3347
  "name": "dynamoTableProps",
3304
3348
  "optional": true,
@@ -3316,7 +3360,7 @@
3316
3360
  "immutable": true,
3317
3361
  "locationInModule": {
3318
3362
  "filename": "lib/dynamodb-table-helper.ts",
3319
- "line": 49
3363
+ "line": 56
3320
3364
  },
3321
3365
  "name": "existingTableInterface",
3322
3366
  "optional": true,
@@ -4441,6 +4485,84 @@
4441
4485
  ],
4442
4486
  "symbolId": "lib/lambda-event-source-mapping-defaults:EventSourceProps"
4443
4487
  },
4488
+ "@aws-solutions-constructs/core.ObtainMemcachedClusterProps": {
4489
+ "assembly": "@aws-solutions-constructs/core",
4490
+ "datatype": true,
4491
+ "fqn": "@aws-solutions-constructs/core.ObtainMemcachedClusterProps",
4492
+ "kind": "interface",
4493
+ "locationInModule": {
4494
+ "filename": "lib/elasticache-helper.ts",
4495
+ "line": 20
4496
+ },
4497
+ "name": "ObtainMemcachedClusterProps",
4498
+ "properties": [
4499
+ {
4500
+ "abstract": true,
4501
+ "immutable": true,
4502
+ "locationInModule": {
4503
+ "filename": "lib/elasticache-helper.ts",
4504
+ "line": 22
4505
+ },
4506
+ "name": "cacheSecurityGroupId",
4507
+ "type": {
4508
+ "primitive": "string"
4509
+ }
4510
+ },
4511
+ {
4512
+ "abstract": true,
4513
+ "immutable": true,
4514
+ "locationInModule": {
4515
+ "filename": "lib/elasticache-helper.ts",
4516
+ "line": 21
4517
+ },
4518
+ "name": "cachePort",
4519
+ "optional": true,
4520
+ "type": {
4521
+ "primitive": "any"
4522
+ }
4523
+ },
4524
+ {
4525
+ "abstract": true,
4526
+ "immutable": true,
4527
+ "locationInModule": {
4528
+ "filename": "lib/elasticache-helper.ts",
4529
+ "line": 23
4530
+ },
4531
+ "name": "cacheProps",
4532
+ "optional": true,
4533
+ "type": {
4534
+ "primitive": "any"
4535
+ }
4536
+ },
4537
+ {
4538
+ "abstract": true,
4539
+ "immutable": true,
4540
+ "locationInModule": {
4541
+ "filename": "lib/elasticache-helper.ts",
4542
+ "line": 24
4543
+ },
4544
+ "name": "existingCache",
4545
+ "optional": true,
4546
+ "type": {
4547
+ "fqn": "aws-cdk-lib.aws_elasticache.CfnCacheCluster"
4548
+ }
4549
+ },
4550
+ {
4551
+ "abstract": true,
4552
+ "immutable": true,
4553
+ "locationInModule": {
4554
+ "filename": "lib/elasticache-helper.ts",
4555
+ "line": 25
4556
+ },
4557
+ "name": "vpc",
4558
+ "optional": true,
4559
+ "type": {
4560
+ "fqn": "aws-cdk-lib.aws_ec2.IVpc"
4561
+ }
4562
+ }
4563
+ ],
4564
+ "symbolId": "lib/elasticache-helper:ObtainMemcachedClusterProps"
4565
+ },
4444
4566
  "@aws-solutions-constructs/core.SecurityGroupRuleDefinition": {
4445
4567
  "assembly": "@aws-solutions-constructs/core",
4446
4568
  "datatype": true,
@@ -4511,7 +4633,7 @@
4511
4633
  "kind": "enum",
4512
4634
  "locationInModule": {
4513
4635
  "filename": "lib/vpc-helper.ts",
4514
- "line": 77
4636
+ "line": 60
4515
4637
  },
4516
4638
  "members": [
4517
4639
  {
@@ -5120,6 +5242,6 @@
5120
5242
  "symbolId": "lib/input-validation:VerifiedProps"
5121
5243
  }
5122
5244
  },
5123
- "version": "2.5.0",
5124
- "fingerprint": "WU1KwUpvoepQ7t2Eee9YSaqccwBXEjXKrKtnnszAc3E="
5245
+ "version": "2.6.0",
5246
+ "fingerprint": "MMRgoXlV8AMGoBKAm0K4FCuIsFZaIsX6ZnFhcPrX9x8="
5125
5247
  }
package/index.d.ts CHANGED
@@ -15,6 +15,8 @@ export * from './lib/alb-helper';
15
15
  export * from './lib/apigateway-defaults';
16
16
  export * from './lib/apigateway-helper';
17
17
  export * from './lib/dynamodb-table-defaults';
18
+ export * from './lib/elasticache-defaults';
19
+ export * from './lib/elasticache-helper';
18
20
  export * from './lib/fargate-defaults';
19
21
  export * from './lib/fargate-helper';
20
22
  export * from './lib/iot-topic-rule-defaults';
package/index.js CHANGED
@@ -27,6 +27,8 @@ __exportStar(require("./lib/alb-helper"), exports);
27
27
  __exportStar(require("./lib/apigateway-defaults"), exports);
28
28
  __exportStar(require("./lib/apigateway-helper"), exports);
29
29
  __exportStar(require("./lib/dynamodb-table-defaults"), exports);
30
+ __exportStar(require("./lib/elasticache-defaults"), exports);
31
+ __exportStar(require("./lib/elasticache-helper"), exports);
30
32
  __exportStar(require("./lib/fargate-defaults"), exports);
31
33
  __exportStar(require("./lib/fargate-helper"), exports);
32
34
  __exportStar(require("./lib/iot-topic-rule-defaults"), exports);
@@ -79,4 +81,4 @@ __exportStar(require("./lib/ssm-string-parameter-helper"), exports);
79
81
  __exportStar(require("./lib/eventbridge-helper"), exports);
80
82
  __exportStar(require("./lib/waf-defaults"), exports);
81
83
  __exportStar(require("./lib/waf-helper"), exports);
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7Ozs7Ozs7Ozs7OztBQUVILHFEQUFtQztBQUNuQyxtREFBaUM7QUFDakMsNERBQTBDO0FBQzFDLDBEQUF3QztBQUN4QyxnRUFBOEM7QUFDOUMseURBQXVDO0FBQ3ZDLHVEQUFxQztBQUNyQyxnRUFBOEM7QUFDOUMsbUVBQWlEO0FBQ2pELGlFQUErQztBQUMvQyxpRUFBK0M7QUFDL0MsK0RBQTZDO0FBQzdDLHFFQUFtRDtBQUNuRCw2RUFBMkQ7QUFDM0QscURBQW1DO0FBQ25DLG1EQUFpQztBQUNqQyx3REFBc0M7QUFDdEMsc0RBQW9DO0FBQ3BDLDREQUEwQztBQUMxQywwREFBd0M7QUFDeEMsMkRBQXlDO0FBQ3pDLHlEQUF1QztBQUN2QyxnRUFBOEM7QUFDOUMsOERBQTRDO0FBQzVDLDhEQUE0QztBQUM1QyxxREFBbUM7QUFDbkMsbURBQWlDO0FBQ2pDLHFEQUFtQztBQUNuQyxtREFBaUM7QUFDakMsdUVBQXFEO0FBQ3JELHlFQUF1RDtBQUN2RCw4Q0FBNEI7QUFDNUIsNkRBQTJDO0FBQzNDLHlEQUF1QztBQUN2Qyx1REFBcUM7QUFDckMsK0RBQTZDO0FBQzdDLDZEQUEyQztBQUMzQywrREFBNkM7QUFDN0MsNkRBQTJDO0FBQzNDLDhEQUE0QztBQUM1QyxxREFBbUM7QUFDbkMsbURBQWlDO0FBQ2pDLDJEQUF5QztBQUN6Qyx5REFBdUM7QUFDdkMsb0VBQWtEO0FBQ2xELDBEQUF3QztBQUN4Qyx3REFBc0M7QUFDdEMsNERBQTBDO0FBQzFDLDBEQUF3QztBQUN4QywrREFBNkM7QUFDN0MsNkRBQTJDO0FBQzNDLHlEQUF1QztBQUN2QyxxREFBbUM7QUFDbkMsb0VBQWtEO0FBQ2xELDJEQUF5QztBQUN6QyxxREFBbUM7QUFDbkMsbURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IDIwMjIgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbGItZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWxiLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlnYXRld2F5LWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaWdhdGV3YXktaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2R5bmFtb2RiLXRhYmxlLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZhcmdhdGUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmFyZ2F0ZS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW90LXRvcGljLXJ1bGUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva2luZXNpcy1hbmFseXRpY3MtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva2luZXNpcy1hbmFseXRpY3MtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tpbmVzaXMtc3RyZWFtcy1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9raW5lc2lzLXN0cmVhbXMtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tpbmVzaXMtZmlyZWhvc2UtczMtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGFtYmRhLWV2ZW50LXNvdXJjZS1tYXBwaW5nLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ttcy1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9rbXMtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xhbWJkYS1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYW1iZGEtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lZGlhc3RvcmUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVkaWFzdG9yZS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvczMtYnVja2V0LWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3MzLWJ1Y2tldC1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VjcmV0c21hbmFnZXItZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VjcmV0c21hbmFnZXItaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlY3VyaXR5LWdyb3VwLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zbnMtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc25zLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zcXMtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3FzLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbG91ZGZyb250LWRpc3RyaWJ1dGlvbi1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xvdWRmcm9udC1kaXN0cmlidXRpb24tZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZXZlbnRzLXJ1bGUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29nbml0by1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2duaXRvLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGFzdGljc2VhcmNoLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsYXN0aWNzZWFyY2gtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0ZXAtZnVuY3Rpb24tZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RlcC1mdW5jdGlvbi1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZHluYW1vZGItdGFibGUtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZwYy1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92cGMtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NhZ2VtYWtlci1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zYWdlbWFrZXItaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Nsb3Vkd2F0Y2gtbG9nLWdyb3VwLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHVlLWpvYi1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHVlLWpvYi1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2x1ZS10YWJsZS1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHVlLXRhYmxlLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHVlLWRhdGFiYXNlLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dsdWUtZGF0YWJhc2UtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lucHV0LXZhbGlkYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi90ZXN0L3Rlc3QtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NzbS1zdHJpbmctcGFyYW1ldGVyLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ldmVudGJyaWRnZS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd2FmLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dhZi1oZWxwZXInOyJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7Ozs7Ozs7Ozs7OztBQUVILHFEQUFtQztBQUNuQyxtREFBaUM7QUFDakMsNERBQTBDO0FBQzFDLDBEQUF3QztBQUN4QyxnRUFBOEM7QUFDOUMsNkRBQTJDO0FBQzNDLDJEQUF5QztBQUN6Qyx5REFBdUM7QUFDdkMsdURBQXFDO0FBQ3JDLGdFQUE4QztBQUM5QyxtRUFBaUQ7QUFDakQsaUVBQStDO0FBQy9DLGlFQUErQztBQUMvQywrREFBNkM7QUFDN0MscUVBQW1EO0FBQ25ELDZFQUEyRDtBQUMzRCxxREFBbUM7QUFDbkMsbURBQWlDO0FBQ2pDLHdEQUFzQztBQUN0QyxzREFBb0M7QUFDcEMsNERBQTBDO0FBQzFDLDBEQUF3QztBQUN4QywyREFBeUM7QUFDekMseURBQXVDO0FBQ3ZDLGdFQUE4QztBQUM5Qyw4REFBNEM7QUFDNUMsOERBQTRDO0FBQzVDLHFEQUFtQztBQUNuQyxtREFBaUM7QUFDakMscURBQW1DO0FBQ25DLG1EQUFpQztBQUNqQyx1RUFBcUQ7QUFDckQseUVBQXVEO0FBQ3ZELDhDQUE0QjtBQUM1Qiw2REFBMkM7QUFDM0MseURBQXVDO0FBQ3ZDLHVEQUFxQztBQUNyQywrREFBNkM7QUFDN0MsNkRBQTJDO0FBQzNDLCtEQUE2QztBQUM3Qyw2REFBMkM7QUFDM0MsOERBQTRDO0FBQzVDLHFEQUFtQztBQUNuQyxtREFBaUM7QUFDakMsMkRBQXlDO0FBQ3pDLHlEQUF1QztBQUN2QyxvRUFBa0Q7QUFDbEQsMERBQXdDO0FBQ3hDLHdEQUFzQztBQUN0Qyw0REFBMEM7QUFDMUMsMERBQXdDO0FBQ3hDLCtEQUE2QztBQUM3Qyw2REFBMkM7QUFDM0MseURBQXVDO0FBQ3ZDLHFEQUFtQztBQUNuQyxvRUFBa0Q7QUFDbEQsMkRBQXlDO0FBQ3pDLHFEQUFtQztBQUNuQyxtREFBaUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgMjAyMiBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FsYi1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbGItaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaWdhdGV3YXktZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpZ2F0ZXdheS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZHluYW1vZGItdGFibGUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxhc3RpY2FjaGUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxhc3RpY2FjaGUtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZhcmdhdGUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmFyZ2F0ZS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW90LXRvcGljLXJ1bGUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva2luZXNpcy1hbmFseXRpY3MtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva2luZXNpcy1hbmFseXRpY3MtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tpbmVzaXMtc3RyZWFtcy1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9raW5lc2lzLXN0cmVhbXMtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tpbmVzaXMtZmlyZWhvc2UtczMtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGFtYmRhLWV2ZW50LXNvdXJjZS1tYXBwaW5nLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ttcy1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9rbXMtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xhbWJkYS1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYW1iZGEtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lZGlhc3RvcmUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVkaWFzdG9yZS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvczMtYnVja2V0LWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3MzLWJ1Y2tldC1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VjcmV0c21hbmFnZXItZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VjcmV0c21hbmFnZXItaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlY3VyaXR5LWdyb3VwLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zbnMtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc25zLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zcXMtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3FzLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbG91ZGZyb250LWRpc3RyaWJ1dGlvbi1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xvdWRmcm9udC1kaXN0cmlidXRpb24tZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZXZlbnRzLXJ1bGUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29nbml0by1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2duaXRvLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGFzdGljc2VhcmNoLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsYXN0aWNzZWFyY2gtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0ZXAtZnVuY3Rpb24tZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RlcC1mdW5jdGlvbi1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZHluYW1vZGItdGFibGUtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZwYy1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92cGMtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NhZ2VtYWtlci1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zYWdlbWFrZXItaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Nsb3Vkd2F0Y2gtbG9nLWdyb3VwLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHVlLWpvYi1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHVlLWpvYi1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2x1ZS10YWJsZS1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHVlLXRhYmxlLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHVlLWRhdGFiYXNlLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dsdWUtZGF0YWJhc2UtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lucHV0LXZhbGlkYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi90ZXN0L3Rlc3QtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NzbS1zdHJpbmctcGFyYW1ldGVyLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ldmVudGJyaWRnZS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd2FmLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dhZi1oZWxwZXInOyJdfQ==
@@ -26,6 +26,13 @@ export interface BuildDynamoDBTableProps {
26
26
  * @default - None
27
27
  */
28
28
  readonly existingTableObj?: dynamodb.Table;
29
+ /**
30
+ * Existing instance of dynamodb interface.
31
+ * Providing both this and `dynamoTableProps` will cause an error.
32
+ *
33
+ * @default - None
34
+ */
35
+ readonly existingTableInterface?: dynamodb.ITable;
29
36
  }
30
37
  export interface BuildDynamoDBTableWithStreamProps {
31
38
  /**
@@ -42,6 +49,7 @@ export interface BuildDynamoDBTableWithStreamProps {
42
49
  */
43
50
  readonly existingTableInterface?: dynamodb.ITable;
44
51
  }
45
- export declare function buildDynamoDBTable(scope: Construct, props: BuildDynamoDBTableProps): dynamodb.Table;
52
+ export declare function buildDynamoDBTable(scope: Construct, props: BuildDynamoDBTableProps): [dynamodb.ITable, dynamodb.Table?];
53
+ export declare function checkTableProps(props: BuildDynamoDBTableProps): void;
46
54
  export declare function buildDynamoDBTableWithStream(scope: Construct, props: BuildDynamoDBTableWithStreamProps): [dynamodb.ITable, dynamodb.Table?];
47
55
  export declare function getPartitionKeyNameFromTable(table: dynamodb.Table): string;
@@ -12,22 +12,46 @@
12
12
  * and limitations under the License.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.getPartitionKeyNameFromTable = exports.buildDynamoDBTableWithStream = exports.buildDynamoDBTable = void 0;
15
+ exports.getPartitionKeyNameFromTable = exports.buildDynamoDBTableWithStream = exports.checkTableProps = exports.buildDynamoDBTable = void 0;
16
16
  const dynamodb = require("aws-cdk-lib/aws-dynamodb");
17
17
  const dynamodb_table_defaults_1 = require("./dynamodb-table-defaults");
18
18
  const utils_1 = require("./utils");
19
19
  function buildDynamoDBTable(scope, props) {
20
+ checkTableProps(props);
20
21
  // Conditional DynamoDB Table creation
21
- if (!props.existingTableObj) {
22
- // Set the default props for DynamoDB table
23
- const dynamoTableProps = utils_1.consolidateProps(dynamodb_table_defaults_1.DefaultTableProps, props.dynamoTableProps);
24
- return new dynamodb.Table(scope, 'DynamoTable', dynamoTableProps);
22
+ if (props.existingTableObj) {
23
+ return [props.existingTableObj, props.existingTableObj];
24
+ }
25
+ else if (props.existingTableInterface) {
26
+ return [props.existingTableInterface, undefined];
25
27
  }
26
28
  else {
27
- return props.existingTableObj;
29
+ const consolidatedTableProps = utils_1.consolidateProps(dynamodb_table_defaults_1.DefaultTableProps, props.dynamoTableProps);
30
+ const newTable = new dynamodb.Table(scope, 'DynamoTable', consolidatedTableProps);
31
+ return [newTable, newTable];
28
32
  }
29
33
  }
30
34
  exports.buildDynamoDBTable = buildDynamoDBTable;
35
+ function checkTableProps(props) {
36
+ let errorMessages = '';
37
+ let errorFound = false;
38
+ if (props.dynamoTableProps && props.existingTableObj) {
39
+ errorMessages += 'Error - Either provide existingTableObj or dynamoTableProps, but not both.\n';
40
+ errorFound = true;
41
+ }
42
+ if (props.dynamoTableProps && props.existingTableInterface) {
43
+ errorMessages += 'Error - Either provide existingTableInterface or dynamoTableProps, but not both.\n';
44
+ errorFound = true;
45
+ }
46
+ if (props.existingTableObj && props.existingTableInterface) {
47
+ errorMessages += 'Error - Either provide existingTableInterface or existingTableObj, but not both.\n';
48
+ errorFound = true;
49
+ }
50
+ if (errorFound) {
51
+ throw new Error(errorMessages);
52
+ }
53
+ }
54
+ exports.checkTableProps = checkTableProps;
31
55
  function buildDynamoDBTableWithStream(scope, props) {
32
56
  // Conditional DynamoDB Table creation
33
57
  if (!props.existingTableInterface) {
@@ -51,4 +75,4 @@ function getPartitionKeyNameFromTable(table) {
51
75
  return partitionKey.attributeName;
52
76
  }
53
77
  exports.getPartitionKeyNameFromTable = getPartitionKeyNameFromTable;
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1vZGItdGFibGUtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZHluYW1vZGItdGFibGUtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUgscURBQXFEO0FBQ3JELHVFQUEyRjtBQUMzRixtQ0FBMkM7QUFvQzNDLFNBQWdCLGtCQUFrQixDQUFDLEtBQWdCLEVBQUUsS0FBOEI7SUFDakYsc0NBQXNDO0lBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7UUFDM0IsMkNBQTJDO1FBQzNDLE1BQU0sZ0JBQWdCLEdBQUcsd0JBQWdCLENBQUMsMkNBQWlCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDckYsT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0tBQ25FO1NBQU07UUFDTCxPQUFPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztLQUMvQjtBQUNILENBQUM7QUFURCxnREFTQztBQUVELFNBQWdCLDRCQUE0QixDQUFDLEtBQWdCLEVBQUUsS0FBd0M7SUFDckcsc0NBQXNDO0lBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUU7UUFDakMsMkNBQTJDO1FBQzNDLE1BQU0sZ0JBQWdCLEdBQUcsd0JBQWdCLENBQUMscURBQTJCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDL0YsTUFBTSxXQUFXLEdBQW1CLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDL0YsT0FBTyxDQUFDLFdBQThCLEVBQUUsV0FBVyxDQUFDLENBQUM7S0FDdEQ7U0FBTTtRQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsU0FBUyxDQUFDLENBQUM7S0FDbEQ7QUFDSCxDQUFDO0FBVkQsb0VBVUM7QUFFRCxTQUFnQiw0QkFBNEIsQ0FBQyxLQUFxQjtJQUNoRSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQXNCLENBQUM7SUFDdkUsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQWtELENBQUM7SUFDOUUsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUMsQ0FBQztJQUNsRixJQUFJLENBQUMsWUFBWSxFQUFFO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztLQUN4RDtJQUNELE9BQU8sWUFBWSxDQUFDLGFBQWEsQ0FBQztBQUNwQyxDQUFDO0FBUkQsb0VBUUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgMjAyMiBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAqIGFzIGR5bmFtb2RiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgeyBEZWZhdWx0VGFibGVQcm9wcywgRGVmYXVsdFRhYmxlV2l0aFN0cmVhbVByb3BzIH0gZnJvbSAnLi9keW5hbW9kYi10YWJsZS1kZWZhdWx0cyc7XG5pbXBvcnQgeyBjb25zb2xpZGF0ZVByb3BzIH0gZnJvbSAnLi91dGlscyc7XG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZER5bmFtb0RCVGFibGVQcm9wcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCB1c2VyIHByb3ZpZGVkIHByb3BzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHByb3BzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgZHluYW1vVGFibGVQcm9wcz86IGR5bmFtb2RiLlRhYmxlUHJvcHMsXG4gIC8qKlxuICAgKiBFeGlzdGluZyBpbnN0YW5jZSBvZiBkeW5hbW9kYiB0YWJsZSBvYmplY3QuXG4gICAqIFByb3ZpZGluZyBib3RoIHRoaXMgYW5kIGBkeW5hbW9UYWJsZVByb3BzYCB3aWxsIGNhdXNlIGFuIGVycm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nVGFibGVPYmo/OiBkeW5hbW9kYi5UYWJsZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkRHluYW1vREJUYWJsZVdpdGhTdHJlYW1Qcm9wcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCB1c2VyIHByb3ZpZGVkIHByb3BzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHByb3BzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgZHluYW1vVGFibGVQcm9wcz86IGR5bmFtb2RiLlRhYmxlUHJvcHMsXG4gIC8qKlxuICAgKiBFeGlzdGluZyBpbnN0YW5jZSBvZiBkeW5hbW9kYiB0YWJsZSBvYmplY3QuXG4gICAqIFByb3ZpZGluZyBib3RoIHRoaXMgYW5kIGBkeW5hbW9UYWJsZVByb3BzYCB3aWxsIGNhdXNlIGFuIGVycm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nVGFibGVJbnRlcmZhY2U/OiBkeW5hbW9kYi5JVGFibGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRHluYW1vREJUYWJsZShzY29wZTogQ29uc3RydWN0LCBwcm9wczogQnVpbGREeW5hbW9EQlRhYmxlUHJvcHMpOiBkeW5hbW9kYi5UYWJsZSB7XG4gIC8vIENvbmRpdGlvbmFsIER5bmFtb0RCIFRhYmxlIGNyZWF0aW9uXG4gIGlmICghcHJvcHMuZXhpc3RpbmdUYWJsZU9iaikge1xuICAgIC8vIFNldCB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgRHluYW1vREIgdGFibGVcbiAgICBjb25zdCBkeW5hbW9UYWJsZVByb3BzID0gY29uc29saWRhdGVQcm9wcyhEZWZhdWx0VGFibGVQcm9wcywgcHJvcHMuZHluYW1vVGFibGVQcm9wcyk7XG4gICAgcmV0dXJuIG5ldyBkeW5hbW9kYi5UYWJsZShzY29wZSwgJ0R5bmFtb1RhYmxlJywgZHluYW1vVGFibGVQcm9wcyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHByb3BzLmV4aXN0aW5nVGFibGVPYmo7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRHluYW1vREJUYWJsZVdpdGhTdHJlYW0oc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IEJ1aWxkRHluYW1vREJUYWJsZVdpdGhTdHJlYW1Qcm9wcyk6IFtkeW5hbW9kYi5JVGFibGUsIGR5bmFtb2RiLlRhYmxlP10ge1xuICAvLyBDb25kaXRpb25hbCBEeW5hbW9EQiBUYWJsZSBjcmVhdGlvblxuICBpZiAoIXByb3BzLmV4aXN0aW5nVGFibGVJbnRlcmZhY2UpIHtcbiAgICAvLyBTZXQgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIER5bmFtb0RCIHRhYmxlXG4gICAgY29uc3QgZHluYW1vVGFibGVQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoRGVmYXVsdFRhYmxlV2l0aFN0cmVhbVByb3BzLCBwcm9wcy5keW5hbW9UYWJsZVByb3BzKTtcbiAgICBjb25zdCBkeW5hbW9UYWJsZTogZHluYW1vZGIuVGFibGUgPSBuZXcgZHluYW1vZGIuVGFibGUoc2NvcGUsICdEeW5hbW9UYWJsZScsIGR5bmFtb1RhYmxlUHJvcHMpO1xuICAgIHJldHVybiBbZHluYW1vVGFibGUgYXMgZHluYW1vZGIuSVRhYmxlLCBkeW5hbW9UYWJsZV07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFtwcm9wcy5leGlzdGluZ1RhYmxlSW50ZXJmYWNlLCB1bmRlZmluZWRdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXJ0aXRpb25LZXlOYW1lRnJvbVRhYmxlKHRhYmxlOiBkeW5hbW9kYi5UYWJsZSk6IHN0cmluZyB7XG4gIGNvbnN0IGNmblRhYmxlID0gdGFibGUubm9kZS5maW5kQ2hpbGQoJ1Jlc291cmNlJykgYXMgZHluYW1vZGIuQ2ZuVGFibGU7XG4gIGNvbnN0IGtleVNjaGVtYSA9IGNmblRhYmxlLmtleVNjaGVtYSBhcyBkeW5hbW9kYi5DZm5UYWJsZS5LZXlTY2hlbWFQcm9wZXJ0eVtdO1xuICBjb25zdCBwYXJ0aXRpb25LZXkgPSBrZXlTY2hlbWEuZmluZCgoa2V5UGFydDogYW55KSA9PiBrZXlQYXJ0LmtleVR5cGUgPT09ICdIQVNIJyk7XG4gIGlmICghcGFydGl0aW9uS2V5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdQYXJ0aXRpb24ga2V5IGZvciB0YWJsZSBub3QgZGVmaW5lZCcpO1xuICB9XG4gIHJldHVybiBwYXJ0aXRpb25LZXkuYXR0cmlidXRlTmFtZTtcbn1cbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1vZGItdGFibGUtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZHluYW1vZGItdGFibGUtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUgscURBQXFEO0FBQ3JELHVFQUEyRjtBQUMzRixtQ0FBMkM7QUEyQzNDLFNBQWdCLGtCQUFrQixDQUFDLEtBQWdCLEVBQUUsS0FBOEI7SUFDakYsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXZCLHNDQUFzQztJQUN0QyxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRTtRQUMxQixPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBQ3pEO1NBQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLEVBQUU7UUFDdkMsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxTQUFTLENBQUMsQ0FBQztLQUNsRDtTQUFNO1FBQ0wsTUFBTSxzQkFBc0IsR0FBRyx3QkFBZ0IsQ0FBQywyQ0FBaUIsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMzRixNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7S0FDN0I7QUFDSCxDQUFDO0FBYkQsZ0RBYUM7QUFFRCxTQUFnQixlQUFlLENBQUMsS0FBOEI7SUFDNUQsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztJQUV2QixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7UUFDcEQsYUFBYSxJQUFJLDhFQUE4RSxDQUFDO1FBQ2hHLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLLENBQUMsc0JBQXNCLEVBQUU7UUFDMUQsYUFBYSxJQUFJLG9GQUFvRixDQUFDO1FBQ3RHLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLLENBQUMsc0JBQXNCLEVBQUU7UUFDMUQsYUFBYSxJQUFJLG9GQUFvRixDQUFDO1FBQ3RHLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLFVBQVUsRUFBRTtRQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDaEM7QUFDSCxDQUFDO0FBdEJELDBDQXNCQztBQUVELFNBQWdCLDRCQUE0QixDQUFDLEtBQWdCLEVBQUUsS0FBd0M7SUFDckcsc0NBQXNDO0lBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUU7UUFDakMsMkNBQTJDO1FBQzNDLE1BQU0sZ0JBQWdCLEdBQUcsd0JBQWdCLENBQUMscURBQTJCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDL0YsTUFBTSxXQUFXLEdBQW1CLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDL0YsT0FBTyxDQUFDLFdBQThCLEVBQUUsV0FBVyxDQUFDLENBQUM7S0FDdEQ7U0FBTTtRQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsU0FBUyxDQUFDLENBQUM7S0FDbEQ7QUFDSCxDQUFDO0FBVkQsb0VBVUM7QUFFRCxTQUFnQiw0QkFBNEIsQ0FBQyxLQUFxQjtJQUNoRSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQXNCLENBQUM7SUFDdkUsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQWtELENBQUM7SUFDOUUsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUMsQ0FBQztJQUNsRixJQUFJLENBQUMsWUFBWSxFQUFFO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztLQUN4RDtJQUNELE9BQU8sWUFBWSxDQUFDLGFBQWEsQ0FBQztBQUNwQyxDQUFDO0FBUkQsb0VBUUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgMjAyMiBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAqIGFzIGR5bmFtb2RiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgeyBEZWZhdWx0VGFibGVQcm9wcywgRGVmYXVsdFRhYmxlV2l0aFN0cmVhbVByb3BzIH0gZnJvbSAnLi9keW5hbW9kYi10YWJsZS1kZWZhdWx0cyc7XG5pbXBvcnQgeyBjb25zb2xpZGF0ZVByb3BzIH0gZnJvbSAnLi91dGlscyc7XG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZER5bmFtb0RCVGFibGVQcm9wcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCB1c2VyIHByb3ZpZGVkIHByb3BzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHByb3BzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgZHluYW1vVGFibGVQcm9wcz86IGR5bmFtb2RiLlRhYmxlUHJvcHMsXG4gIC8qKlxuICAgKiBFeGlzdGluZyBpbnN0YW5jZSBvZiBkeW5hbW9kYiB0YWJsZSBvYmplY3QuXG4gICAqIFByb3ZpZGluZyBib3RoIHRoaXMgYW5kIGBkeW5hbW9UYWJsZVByb3BzYCB3aWxsIGNhdXNlIGFuIGVycm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nVGFibGVPYmo/OiBkeW5hbW9kYi5UYWJsZVxuICAvKipcbiAgICogRXhpc3RpbmcgaW5zdGFuY2Ugb2YgZHluYW1vZGIgaW50ZXJmYWNlLlxuICAgKiBQcm92aWRpbmcgYm90aCB0aGlzIGFuZCBgZHluYW1vVGFibGVQcm9wc2Agd2lsbCBjYXVzZSBhbiBlcnJvci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBleGlzdGluZ1RhYmxlSW50ZXJmYWNlPzogZHluYW1vZGIuSVRhYmxlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGREeW5hbW9EQlRhYmxlV2l0aFN0cmVhbVByb3BzIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBkeW5hbW9UYWJsZVByb3BzPzogZHluYW1vZGIuVGFibGVQcm9wcyxcbiAgLyoqXG4gICAqIEV4aXN0aW5nIGluc3RhbmNlIG9mIGR5bmFtb2RiIHRhYmxlIG9iamVjdC5cbiAgICogUHJvdmlkaW5nIGJvdGggdGhpcyBhbmQgYGR5bmFtb1RhYmxlUHJvcHNgIHdpbGwgY2F1c2UgYW4gZXJyb3IuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhpc3RpbmdUYWJsZUludGVyZmFjZT86IGR5bmFtb2RiLklUYWJsZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGREeW5hbW9EQlRhYmxlKHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzOiBCdWlsZER5bmFtb0RCVGFibGVQcm9wcyk6IFtkeW5hbW9kYi5JVGFibGUsIGR5bmFtb2RiLlRhYmxlP10ge1xuICBjaGVja1RhYmxlUHJvcHMocHJvcHMpO1xuXG4gIC8vIENvbmRpdGlvbmFsIER5bmFtb0RCIFRhYmxlIGNyZWF0aW9uXG4gIGlmIChwcm9wcy5leGlzdGluZ1RhYmxlT2JqKSB7XG4gICAgcmV0dXJuIFtwcm9wcy5leGlzdGluZ1RhYmxlT2JqLCBwcm9wcy5leGlzdGluZ1RhYmxlT2JqXTtcbiAgfSBlbHNlIGlmIChwcm9wcy5leGlzdGluZ1RhYmxlSW50ZXJmYWNlKSB7XG4gICAgcmV0dXJuIFtwcm9wcy5leGlzdGluZ1RhYmxlSW50ZXJmYWNlLCB1bmRlZmluZWRdO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGNvbnNvbGlkYXRlZFRhYmxlUHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKERlZmF1bHRUYWJsZVByb3BzLCBwcm9wcy5keW5hbW9UYWJsZVByb3BzKTtcbiAgICBjb25zdCBuZXdUYWJsZSA9IG5ldyBkeW5hbW9kYi5UYWJsZShzY29wZSwgJ0R5bmFtb1RhYmxlJywgY29uc29saWRhdGVkVGFibGVQcm9wcyk7XG4gICAgcmV0dXJuIFtuZXdUYWJsZSwgbmV3VGFibGVdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1RhYmxlUHJvcHMocHJvcHM6IEJ1aWxkRHluYW1vREJUYWJsZVByb3BzKSB7XG4gIGxldCBlcnJvck1lc3NhZ2VzID0gJyc7XG4gIGxldCBlcnJvckZvdW5kID0gZmFsc2U7XG5cbiAgaWYgKHByb3BzLmR5bmFtb1RhYmxlUHJvcHMgJiYgcHJvcHMuZXhpc3RpbmdUYWJsZU9iaikge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgZXhpc3RpbmdUYWJsZU9iaiBvciBkeW5hbW9UYWJsZVByb3BzLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wcy5keW5hbW9UYWJsZVByb3BzICYmIHByb3BzLmV4aXN0aW5nVGFibGVJbnRlcmZhY2UpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGV4aXN0aW5nVGFibGVJbnRlcmZhY2Ugb3IgZHluYW1vVGFibGVQcm9wcywgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHMuZXhpc3RpbmdUYWJsZU9iaiAmJiBwcm9wcy5leGlzdGluZ1RhYmxlSW50ZXJmYWNlKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBleGlzdGluZ1RhYmxlSW50ZXJmYWNlIG9yIGV4aXN0aW5nVGFibGVPYmosIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGVycm9yRm91bmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlcyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRHluYW1vREJUYWJsZVdpdGhTdHJlYW0oc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IEJ1aWxkRHluYW1vREJUYWJsZVdpdGhTdHJlYW1Qcm9wcyk6IFtkeW5hbW9kYi5JVGFibGUsIGR5bmFtb2RiLlRhYmxlP10ge1xuICAvLyBDb25kaXRpb25hbCBEeW5hbW9EQiBUYWJsZSBjcmVhdGlvblxuICBpZiAoIXByb3BzLmV4aXN0aW5nVGFibGVJbnRlcmZhY2UpIHtcbiAgICAvLyBTZXQgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIER5bmFtb0RCIHRhYmxlXG4gICAgY29uc3QgZHluYW1vVGFibGVQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoRGVmYXVsdFRhYmxlV2l0aFN0cmVhbVByb3BzLCBwcm9wcy5keW5hbW9UYWJsZVByb3BzKTtcbiAgICBjb25zdCBkeW5hbW9UYWJsZTogZHluYW1vZGIuVGFibGUgPSBuZXcgZHluYW1vZGIuVGFibGUoc2NvcGUsICdEeW5hbW9UYWJsZScsIGR5bmFtb1RhYmxlUHJvcHMpO1xuICAgIHJldHVybiBbZHluYW1vVGFibGUgYXMgZHluYW1vZGIuSVRhYmxlLCBkeW5hbW9UYWJsZV07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFtwcm9wcy5leGlzdGluZ1RhYmxlSW50ZXJmYWNlLCB1bmRlZmluZWRdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXJ0aXRpb25LZXlOYW1lRnJvbVRhYmxlKHRhYmxlOiBkeW5hbW9kYi5UYWJsZSk6IHN0cmluZyB7XG4gIGNvbnN0IGNmblRhYmxlID0gdGFibGUubm9kZS5maW5kQ2hpbGQoJ1Jlc291cmNlJykgYXMgZHluYW1vZGIuQ2ZuVGFibGU7XG4gIGNvbnN0IGtleVNjaGVtYSA9IGNmblRhYmxlLmtleVNjaGVtYSBhcyBkeW5hbW9kYi5DZm5UYWJsZS5LZXlTY2hlbWFQcm9wZXJ0eVtdO1xuICBjb25zdCBwYXJ0aXRpb25LZXkgPSBrZXlTY2hlbWEuZmluZCgoa2V5UGFydDogYW55KSA9PiBrZXlQYXJ0LmtleVR5cGUgPT09ICdIQVNIJyk7XG4gIGlmICghcGFydGl0aW9uS2V5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdQYXJ0aXRpb24ga2V5IGZvciB0YWJsZSBub3QgZGVmaW5lZCcpO1xuICB9XG4gIHJldHVybiBwYXJ0aXRpb25LZXkuYXR0cmlidXRlTmFtZTtcbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
5
+ * with the License. A copy of the License is located at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
10
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
11
+ * and limitations under the License.
12
+ */
13
+ export declare function GetDefaultCachePort(): number;
14
+ export declare function GetMemcachedDefaults(id: string, port: number): {
15
+ clusterName: string;
16
+ cacheNodeType: string;
17
+ engine: string;
18
+ numCacheNodes: number;
19
+ port: number;
20
+ azMode: string;
21
+ };
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
6
+ * with the License. A copy of the License is located at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
11
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
12
+ * and limitations under the License.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.GetMemcachedDefaults = exports.GetDefaultCachePort = void 0;
16
+ function GetDefaultCachePort() {
17
+ // Best practice not to use default port 11211
18
+ return 11222;
19
+ }
20
+ exports.GetDefaultCachePort = GetDefaultCachePort;
21
+ function GetMemcachedDefaults(id, port) {
22
+ return {
23
+ clusterName: `${id}-cdk-cluster`,
24
+ cacheNodeType: "cache.t3.medium",
25
+ engine: "memcached",
26
+ numCacheNodes: 2,
27
+ port,
28
+ azMode: 'cross-az'
29
+ };
30
+ }
31
+ exports.GetMemcachedDefaults = GetMemcachedDefaults;
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY2FjaGUtZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbGFzdGljYWNoZS1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVILFNBQWdCLG1CQUFtQjtJQUNqQyw4Q0FBOEM7SUFDOUMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBSEQsa0RBR0M7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxFQUFVLEVBQUUsSUFBWTtJQUMzRCxPQUFPO1FBQ0wsV0FBVyxFQUFFLEdBQUcsRUFBRSxjQUFjO1FBQ2hDLGFBQWEsRUFBRSxpQkFBaUI7UUFDaEMsTUFBTSxFQUFFLFdBQVc7UUFDbkIsYUFBYSxFQUFFLENBQUM7UUFDaEIsSUFBSTtRQUNKLE1BQU0sRUFBRSxVQUFVO0tBQ25CLENBQUM7QUFDSixDQUFDO0FBVEQsb0RBU0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgMjAyMiBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBHZXREZWZhdWx0Q2FjaGVQb3J0KCkge1xuICAvLyBCZXN0IHByYWN0aWNlIG5vdCB0byB1c2UgZGVmYXVsdCBwb3J0IDExMjExXG4gIHJldHVybiAxMTIyMjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEdldE1lbWNhY2hlZERlZmF1bHRzKGlkOiBzdHJpbmcsIHBvcnQ6IG51bWJlcikge1xuICByZXR1cm4ge1xuICAgIGNsdXN0ZXJOYW1lOiBgJHtpZH0tY2RrLWNsdXN0ZXJgLFxuICAgIGNhY2hlTm9kZVR5cGU6IFwiY2FjaGUudDMubWVkaXVtXCIsXG4gICAgZW5naW5lOiBcIm1lbWNhY2hlZFwiLFxuICAgIG51bUNhY2hlTm9kZXM6IDIsXG4gICAgcG9ydCxcbiAgICBhek1vZGU6ICdjcm9zcy1heidcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
5
+ * with the License. A copy of the License is located at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
10
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
11
+ * and limitations under the License.
12
+ */
13
+ import * as ec2 from "aws-cdk-lib/aws-ec2";
14
+ import * as cache from "aws-cdk-lib/aws-elasticache";
15
+ import { Construct } from "constructs";
16
+ export interface ObtainMemcachedClusterProps {
17
+ readonly cachePort?: any;
18
+ readonly cacheSecurityGroupId: string;
19
+ readonly cacheProps?: cache.CfnCacheClusterProps | any;
20
+ readonly existingCache?: cache.CfnCacheCluster;
21
+ readonly vpc?: ec2.IVpc;
22
+ }
23
+ export declare function obtainMemcachedCluster(scope: Construct, id: string, props: ObtainMemcachedClusterProps): cache.CfnCacheCluster;
24
+ export declare function createCacheSubnetGroup(construct: Construct, vpc: ec2.IVpc, id: string): cache.CfnSubnetGroup;
25
+ export declare function getCachePort(clientCacheProps?: cache.CfnCacheClusterProps | any, existingCache?: cache.CfnCacheCluster): any;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
6
+ * with the License. A copy of the License is located at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
11
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
12
+ * and limitations under the License.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.getCachePort = exports.createCacheSubnetGroup = exports.obtainMemcachedCluster = void 0;
16
+ const cache = require("aws-cdk-lib/aws-elasticache");
17
+ const elasticache_defaults_1 = require("./elasticache-defaults");
18
+ const utils_1 = require("./utils");
19
+ function obtainMemcachedCluster(scope, id, props) {
20
+ var _a;
21
+ if (props.existingCache) {
22
+ (_a = props.existingCache.vpcSecurityGroupIds) === null || _a === void 0 ? void 0 : _a.push(props.cacheSecurityGroupId);
23
+ return props.existingCache;
24
+ }
25
+ else {
26
+ if (!props.cachePort) {
27
+ throw Error('props.cachePort required for new caches');
28
+ }
29
+ // Create the subnet group from all the isolated subnets in the VPC
30
+ const subnetGroup = createCacheSubnetGroup(scope, props.vpc, id);
31
+ const defaultProps = elasticache_defaults_1.GetMemcachedDefaults(id, props.cachePort);
32
+ const requiredConstructProps = {
33
+ vpcSecurityGroupIds: [props.cacheSecurityGroupId],
34
+ cacheSubnetGroupName: subnetGroup.cacheSubnetGroupName,
35
+ };
36
+ const consolidatedProps = utils_1.consolidateProps(defaultProps, props.cacheProps, requiredConstructProps, true);
37
+ const newCache = new cache.CfnCacheCluster(scope, `${id}-cluster`, consolidatedProps);
38
+ newCache.addDependsOn(subnetGroup);
39
+ return newCache;
40
+ }
41
+ }
42
+ exports.obtainMemcachedCluster = obtainMemcachedCluster;
43
+ function createCacheSubnetGroup(construct, vpc, id) {
44
+ // Memcached has no auth, all access control is
45
+ // network based, so, at least initially, we will
46
+ // only launch it in isolated subnets.
47
+ const subnetIds = [];
48
+ vpc.isolatedSubnets.forEach((subnet) => {
49
+ subnetIds.push(subnet.subnetId);
50
+ });
51
+ return new cache.CfnSubnetGroup(construct, `ec-subnetgroup-${id}`, {
52
+ description: "Solutions Constructs generated Cache Subnet Group",
53
+ subnetIds,
54
+ cacheSubnetGroupName: `${id}-subnet-group`,
55
+ });
56
+ }
57
+ exports.createCacheSubnetGroup = createCacheSubnetGroup;
58
+ function getCachePort(clientCacheProps, existingCache) {
59
+ if (existingCache) {
60
+ return existingCache.attrConfigurationEndpointPort;
61
+ }
62
+ else if (clientCacheProps === null || clientCacheProps === void 0 ? void 0 : clientCacheProps.port) {
63
+ return clientCacheProps.port;
64
+ }
65
+ else {
66
+ return elasticache_defaults_1.GetDefaultCachePort();
67
+ }
68
+ }
69
+ exports.getCachePort = getCachePort;
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY2FjaGUtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZWxhc3RpY2FjaGUtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBR0gscURBQXFEO0FBRXJELGlFQUFtRjtBQUNuRixtQ0FBMkM7QUFVM0MsU0FBZ0Isc0JBQXNCLENBQ3BDLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFrQzs7SUFHbEMsSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFFO1FBQ3ZCLE1BQUEsS0FBSyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsMENBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRTtRQUMxRSxPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUM7S0FDNUI7U0FBTTtRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ3BCLE1BQU0sS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDeEQ7UUFFRCxtRUFBbUU7UUFDbkUsTUFBTSxXQUFXLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFbEUsTUFBTSxZQUFZLEdBQUcsMkNBQW9CLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRCxNQUFNLHNCQUFzQixHQUFHO1lBQzdCLG1CQUFtQixFQUFFLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDO1lBQ2pELG9CQUFvQixFQUFFLFdBQVcsQ0FBQyxvQkFBb0I7U0FDdkQsQ0FBQztRQUNGLE1BQU0saUJBQWlCLEdBQUcsd0JBQWdCLENBQ3hDLFlBQVksRUFDWixLQUFLLENBQUMsVUFBVSxFQUNoQixzQkFBc0IsRUFDdEIsSUFBSSxDQUNMLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQ3hDLEtBQUssRUFDTCxHQUFHLEVBQUUsVUFBVSxFQUNmLGlCQUFpQixDQUNsQixDQUFDO1FBQ0YsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQyxPQUFPLFFBQVEsQ0FBQztLQUNqQjtBQUVILENBQUM7QUF0Q0Qsd0RBc0NDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQ3BDLFNBQW9CLEVBQ3BCLEdBQWEsRUFDYixFQUFVO0lBR1YsK0NBQStDO0lBQy9DLGlEQUFpRDtJQUNqRCxzQ0FBc0M7SUFDdEMsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO0lBQy9CLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDckMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxFQUFFO1FBQ2pFLFdBQVcsRUFBRSxtREFBbUQ7UUFDaEUsU0FBUztRQUNULG9CQUFvQixFQUFFLEdBQUcsRUFBRSxlQUFlO0tBQzNDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFuQkQsd0RBbUJDO0FBRUQsU0FBZ0IsWUFBWSxDQUMxQixnQkFBbUQsRUFDbkQsYUFBcUM7SUFFckMsSUFBSSxhQUFhLEVBQUU7UUFDakIsT0FBTyxhQUFhLENBQUMsNkJBQThCLENBQUM7S0FDckQ7U0FBTSxJQUFJLGdCQUFnQixhQUFoQixnQkFBZ0IsdUJBQWhCLGdCQUFnQixDQUFFLElBQUksRUFBRTtRQUNqQyxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQztLQUM5QjtTQUFNO1FBQ0wsT0FBTywwQ0FBbUIsRUFBRSxDQUFDO0tBQzlCO0FBQ0gsQ0FBQztBQVhELG9DQVdDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IDIwMjIgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBlYzIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCAqIGFzIGNhY2hlIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2FjaGVcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBHZXREZWZhdWx0Q2FjaGVQb3J0LCBHZXRNZW1jYWNoZWREZWZhdWx0cyB9IGZyb20gJy4vZWxhc3RpY2FjaGUtZGVmYXVsdHMnO1xuaW1wb3J0IHsgY29uc29saWRhdGVQcm9wcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9idGFpbk1lbWNhY2hlZENsdXN0ZXJQcm9wcyB7XG4gIHJlYWRvbmx5IGNhY2hlUG9ydD86IGFueSxcbiAgcmVhZG9ubHkgY2FjaGVTZWN1cml0eUdyb3VwSWQ6IHN0cmluZyxcbiAgcmVhZG9ubHkgY2FjaGVQcm9wcz86IGNhY2hlLkNmbkNhY2hlQ2x1c3RlclByb3BzIHwgYW55LFxuICByZWFkb25seSBleGlzdGluZ0NhY2hlPzogY2FjaGUuQ2ZuQ2FjaGVDbHVzdGVyLFxuICByZWFkb25seSB2cGM/OiBlYzIuSVZwYyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9idGFpbk1lbWNhY2hlZENsdXN0ZXIoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHByb3BzOiBPYnRhaW5NZW1jYWNoZWRDbHVzdGVyUHJvcHNcbikge1xuXG4gIGlmIChwcm9wcy5leGlzdGluZ0NhY2hlKSB7XG4gICAgcHJvcHMuZXhpc3RpbmdDYWNoZS52cGNTZWN1cml0eUdyb3VwSWRzPy5wdXNoKHByb3BzLmNhY2hlU2VjdXJpdHlHcm91cElkKTtcbiAgICByZXR1cm4gcHJvcHMuZXhpc3RpbmdDYWNoZTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoIXByb3BzLmNhY2hlUG9ydCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ3Byb3BzLmNhY2hlUG9ydCByZXF1aXJlZCBmb3IgbmV3IGNhY2hlcycpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgc3VibmV0IGdyb3VwIGZyb20gYWxsIHRoZSBpc29sYXRlZCBzdWJuZXRzIGluIHRoZSBWUENcbiAgICBjb25zdCBzdWJuZXRHcm91cCA9IGNyZWF0ZUNhY2hlU3VibmV0R3JvdXAoc2NvcGUsIHByb3BzLnZwYyEsIGlkKTtcblxuICAgIGNvbnN0IGRlZmF1bHRQcm9wcyA9IEdldE1lbWNhY2hlZERlZmF1bHRzKGlkLCBwcm9wcy5jYWNoZVBvcnQpO1xuICAgIGNvbnN0IHJlcXVpcmVkQ29uc3RydWN0UHJvcHMgPSB7XG4gICAgICB2cGNTZWN1cml0eUdyb3VwSWRzOiBbcHJvcHMuY2FjaGVTZWN1cml0eUdyb3VwSWRdLFxuICAgICAgY2FjaGVTdWJuZXRHcm91cE5hbWU6IHN1Ym5ldEdyb3VwLmNhY2hlU3VibmV0R3JvdXBOYW1lLFxuICAgIH07XG4gICAgY29uc3QgY29uc29saWRhdGVkUHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKFxuICAgICAgZGVmYXVsdFByb3BzLFxuICAgICAgcHJvcHMuY2FjaGVQcm9wcyxcbiAgICAgIHJlcXVpcmVkQ29uc3RydWN0UHJvcHMsXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIGNvbnN0IG5ld0NhY2hlID0gbmV3IGNhY2hlLkNmbkNhY2hlQ2x1c3RlcihcbiAgICAgIHNjb3BlLFxuICAgICAgYCR7aWR9LWNsdXN0ZXJgLFxuICAgICAgY29uc29saWRhdGVkUHJvcHNcbiAgICApO1xuICAgIG5ld0NhY2hlLmFkZERlcGVuZHNPbihzdWJuZXRHcm91cCk7XG4gICAgcmV0dXJuIG5ld0NhY2hlO1xuICB9XG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNhY2hlU3VibmV0R3JvdXAoXG4gIGNvbnN0cnVjdDogQ29uc3RydWN0LFxuICB2cGM6IGVjMi5JVnBjLFxuICBpZDogc3RyaW5nXG4pOiBjYWNoZS5DZm5TdWJuZXRHcm91cCB7XG5cbiAgLy8gTWVtY2FjaGVkIGhhcyBubyBhdXRoLCBhbGwgYWNjZXNzIGNvbnRyb2wgaXNcbiAgLy8gbmV0d29yayBiYXNlZCwgc28sIGF0IGxlYXN0IGluaXRpYWxseSwgd2Ugd2lsbFxuICAvLyBvbmx5IGxhdW5jaCBpdCBpbiBpc29sYXRlZCBzdWJuZXRzLlxuICBjb25zdCBzdWJuZXRJZHM6IHN0cmluZ1tdID0gW107XG4gIHZwYy5pc29sYXRlZFN1Ym5ldHMuZm9yRWFjaCgoc3VibmV0KSA9PiB7XG4gICAgc3VibmV0SWRzLnB1c2goc3VibmV0LnN1Ym5ldElkKTtcbiAgfSk7XG5cbiAgcmV0dXJuIG5ldyBjYWNoZS5DZm5TdWJuZXRHcm91cChjb25zdHJ1Y3QsIGBlYy1zdWJuZXRncm91cC0ke2lkfWAsIHtcbiAgICBkZXNjcmlwdGlvbjogXCJTb2x1dGlvbnMgQ29uc3RydWN0cyBnZW5lcmF0ZWQgQ2FjaGUgU3VibmV0IEdyb3VwXCIsXG4gICAgc3VibmV0SWRzLFxuICAgIGNhY2hlU3VibmV0R3JvdXBOYW1lOiBgJHtpZH0tc3VibmV0LWdyb3VwYCxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDYWNoZVBvcnQoXG4gIGNsaWVudENhY2hlUHJvcHM/OiBjYWNoZS5DZm5DYWNoZUNsdXN0ZXJQcm9wcyB8IGFueSxcbiAgZXhpc3RpbmdDYWNoZT86IGNhY2hlLkNmbkNhY2hlQ2x1c3RlclxuKTogYW55IHtcbiAgaWYgKGV4aXN0aW5nQ2FjaGUpIHtcbiAgICByZXR1cm4gZXhpc3RpbmdDYWNoZS5hdHRyQ29uZmlndXJhdGlvbkVuZHBvaW50UG9ydCE7XG4gIH0gZWxzZSBpZiAoY2xpZW50Q2FjaGVQcm9wcz8ucG9ydCkge1xuICAgIHJldHVybiBjbGllbnRDYWNoZVByb3BzLnBvcnQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIEdldERlZmF1bHRDYWNoZVBvcnQoKTtcbiAgfVxufVxuIl19
@@ -62,3 +62,4 @@ export interface VerifiedProps {
62
62
  readonly logS3AccessLogs?: boolean;
63
63
  }
64
64
  export declare function CheckProps(propsObject: VerifiedProps | any): void;
65
+ export declare function CheckListValues(allowedPermissions: string[], submittedValues: string[], valueType: string): void;
@@ -12,7 +12,7 @@
12
12
  * and limitations under the License.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.CheckProps = void 0;
15
+ exports.CheckListValues = exports.CheckProps = void 0;
16
16
  function CheckProps(propsObject) {
17
17
  var _a, _b;
18
18
  let errorMessages = '';
@@ -118,4 +118,12 @@ function CheckProps(propsObject) {
118
118
  }
119
119
  }
120
120
  exports.CheckProps = CheckProps;
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlucHV0LXZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFxRUgsU0FBZ0IsVUFBVSxDQUFDLFdBQWdDOztJQUN6RCxJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDdkIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBRXZCLElBQUksV0FBVyxDQUFDLGlCQUFpQixJQUFJLFdBQVcsQ0FBQyx1QkFBdUIsRUFBRTtRQUN4RSxhQUFhLElBQUksc0ZBQXNGLENBQUM7UUFDeEcsVUFBVSxHQUFHLElBQUksQ0FBQztLQUNuQjtJQUVELElBQUksV0FBVyxDQUFDLGdCQUFnQixJQUFJLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRTtRQUNoRSxhQUFhLElBQUksOEVBQThFLENBQUM7UUFDaEcsVUFBVSxHQUFHLElBQUksQ0FBQztLQUNuQjtJQUVELElBQUksV0FBVyxDQUFDLGdCQUFnQixJQUFJLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRTtRQUN0RSxhQUFhLElBQUksb0ZBQW9GLENBQUM7UUFDdEcsVUFBVSxHQUFHLElBQUksQ0FBQztLQUNuQjtJQUVELElBQUksV0FBVyxDQUFDLGlCQUFpQixJQUFLLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRTtRQUNwRSxhQUFhLElBQUksaUZBQWlGLENBQUM7UUFDbkcsVUFBVSxHQUFHLElBQUksQ0FBQztLQUNuQjtJQUVELElBQUksV0FBVyxDQUFDLGlCQUFpQixJQUFJLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRTtRQUNwRSxhQUFhLElBQUksa0ZBQWtGLENBQUM7UUFDcEcsVUFBVSxHQUFHLElBQUksQ0FBQztLQUNuQjtJQUVELElBQUksV0FBVyxDQUFDLGdCQUFnQixJQUFJLFdBQVcsQ0FBQyxVQUFVLEVBQUU7UUFDMUQsYUFBYSxJQUFJLHdFQUF3RSxDQUFDO1FBQzFGLFVBQVUsR0FBRyxJQUFJ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QUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLGdCQUFnQixNQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLEVBQUU7UUFDcEYsYUFBYSxJQUFJLHFGQUFxRixDQUFDO1FBQ3ZHLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLFdBQVcsQ0FBQyx3QkFBd0IsSUFBSSxXQUFXLENBQUMsa0JBQWtCLEVBQUU7UUFDMUUsYUFBYSxJQUFJLHdGQUF3RixDQUFDO1FBQzFHLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLENBQUMsQ0FBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsZUFBZSxNQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixJQUFJLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFO1FBQ3hILGFBQWEsSUFBSSw2R0FBNkcsQ0FBQztRQUMvSCxVQUFVLEdBQUcsSUFBSSxDQUFDO0tBQ25CO0lBRUQsSUFBSSxXQUFXLENBQUMsaUJBQWlCLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLElBQUksV0FBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ3BHLGFBQWEsSUFBSSwwR0FBMEcsQ0FBQztRQUM1SCxVQUFVLEdBQUcsSUFBSSxDQUFDO0tBQ25CO0lBRUQsSUFBSSxVQUFVLEVBQUU7UUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQ2hDO0FBQ0gsQ0FBQztBQS9IRCxnQ0ErSEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgMjAyMiBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAqIGFzIGR5bmFtb2RiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgKiBhcyBraW5lc2lzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1raW5lc2lzJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHNxcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3FzJztcbmltcG9ydCAqIGFzIG1lZGlhc3RvcmUgZnJvbSAnYXdzLWNkay1saWIvYXdzLW1lZGlhc3RvcmUnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGVsYiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mic7XG5pbXBvcnQgKiBhcyBzbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5pbXBvcnQgKiBhcyBnbHVlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1nbHVlJztcbmltcG9ydCAqIGFzIHNhZ2VtYWtlciBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2FnZW1ha2VyJztcbmltcG9ydCAqIGFzIHNlY3JldHNtYW5hZ2VyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcIjtcbmltcG9ydCAqIGFzIGttcyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWttc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZlcmlmaWVkUHJvcHMge1xuICByZWFkb25seSBkeW5hbW9UYWJsZVByb3BzPzogZHluYW1vZGIuVGFibGVQcm9wcyxcbiAgcmVhZG9ubHkgZXhpc3RpbmdUYWJsZU9iaj86IGR5bmFtb2RiLlRhYmxlLFxuICByZWFkb25seSBleGlzdGluZ1RhYmxlSW50ZXJmYWNlPzogZHluYW1vZGIuSVRhYmxlLFxuXG4gIHJlYWRvbmx5IGV4aXN0aW5nU3RyZWFtT2JqPzoga2luZXNpcy5TdHJlYW07XG4gIHJlYWRvbmx5IGtpbmVzaXNTdHJlYW1Qcm9wcz86IGtpbmVzaXMuU3RyZWFtUHJvcHMsXG5cbiAgcmVhZG9ubHkgZXhpc3RpbmdMYW1iZGFPYmo/OiBsYW1iZGEuRnVuY3Rpb24sXG4gIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uUHJvcHM/OiBsYW1iZGEuRnVuY3Rpb25Qcm9wcyxcblxuICByZWFkb25seSBleGlzdGluZ1F1ZXVlT2JqPzogc3FzLlF1ZXVlLFxuICByZWFkb25seSBxdWV1ZVByb3BzPzogc3FzLlF1ZXVlUHJvcHMsXG4gIHJlYWRvbmx5IGRlcGxveURlYWRMZXR0ZXJRdWV1ZT86IGJvb2xlYW4sXG4gIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZVByb3BzPzogc3FzLlF1ZXVlUHJvcHMsXG5cbiAgcmVhZG9ubHkgZXhpc3RpbmdNZWRpYVN0b3JlQ29udGFpbmVyT2JqPzogbWVkaWFzdG9yZS5DZm5Db250YWluZXI7XG4gIHJlYWRvbmx5IG1lZGlhU3RvcmVDb250YWluZXJQcm9wcz86IG1lZGlhc3RvcmUuQ2ZuQ29udGFpbmVyUHJvcHM7XG5cbiAgcmVhZG9ubHkgZXhpc3RpbmdCdWNrZXRPYmo/OiBzMy5CdWNrZXQsXG4gIHJlYWRvbmx5IGV4aXN0aW5nQnVja2V0SW50ZXJmYWNlPzogczMuSUJ1Y2tldCxcbiAgcmVhZG9ubHkgYnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcblxuICByZWFkb25seSB0b3BpY1Byb3BzPzogc25zLlRvcGljUHJvcHMsXG4gIHJlYWRvbmx5IGV4aXN0aW5nVG9waWNPYmo/OiBzbnMuVG9waWMsXG5cbiAgcmVhZG9ubHkgZ2x1ZUpvYlByb3BzPzogZ2x1ZS5DZm5Kb2JQcm9wcyxcbiAgcmVhZG9ubHkgZXhpc3RpbmdHbHVlSm9iPzogZ2x1ZS5DZm5Kb2IsXG5cbiAgcmVhZG9ubHkgZXhpc3RpbmdTYWdlbWFrZXJFbmRwb2ludE9iaj86IHNhZ2VtYWtlci5DZm5FbmRwb2ludCxcbiAgcmVhZG9ubHkgZW5kcG9pbnRQcm9wcz86IHNhZ2VtYWtlci5DZm5FbmRwb2ludFByb3BzLFxuXG4gIHJlYWRvbmx5IGV4aXN0aW5nU2VjcmV0T2JqPzogc2VjcmV0c21hbmFnZXIuU2VjcmV0O1xuICByZWFkb25seSBzZWNyZXRQcm9wcz86IHNlY3JldHNtYW5hZ2VyLlNlY3JldFByb3BzO1xuXG4gIHJlYWRvbmx5IGV4aXN0aW5nVnBjPzogZWMyLklWcGM7XG4gIHJlYWRvbmx5IHZwY1Byb3BzPzogZWMyLlZwY1Byb3BzO1xuICByZWFkb25seSBkZXBsb3lWcGM/OiBib29sZWFuO1xuXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuS2V5LFxuICByZWFkb25seSBlbmNyeXB0aW9uS2V5UHJvcHM/OiBrbXMuS2V5UHJvcHNcblxuICByZWFkb25seSBsb2FkQmFsYW5jZXJQcm9wcz86IGVsYi5BcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzO1xuICByZWFkb25seSBleGlzdGluZ0xvYWRCYWxhbmNlck9iaj86IGVsYi5BcHBsaWNhdGlvbkxvYWRCYWxhbmNlcjtcblxuICByZWFkb25seSBsb2dBbGJBY2Nlc3NMb2dzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgYWxiTG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHM7XG5cbiAgcmVhZG9ubHkgZXhpc3RpbmdMb2dnaW5nQnVja2V0T2JqPzogczMuSUJ1Y2tldDtcbiAgcmVhZG9ubHkgbG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHM7XG4gIHJlYWRvbmx5IGxvZ1MzQWNjZXNzTG9ncz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDaGVja1Byb3BzKHByb3BzT2JqZWN0OiBWZXJpZmllZFByb3BzIHwgYW55KSB7XG4gIGxldCBlcnJvck1lc3NhZ2VzID0gJyc7XG4gIGxldCBlcnJvckZvdW5kID0gZmFsc2U7XG5cbiAgaWYgKHByb3BzT2JqZWN0LmxvYWRCYWxhbmNlclByb3BzICYmIHByb3BzT2JqZWN0LmV4aXN0aW5nTG9hZEJhbGFuY2VyT2JqKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBsb2FkQmFsYW5jZXJQcm9wcyBvciBleGlzdGluZ0xvYWRCYWxhbmNlck9iaiwgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZHluYW1vVGFibGVQcm9wcyAmJiBwcm9wc09iamVjdC5leGlzdGluZ1RhYmxlT2JqKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBleGlzdGluZ1RhYmxlT2JqIG9yIGR5bmFtb1RhYmxlUHJvcHMsIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmR5bmFtb1RhYmxlUHJvcHMgJiYgcHJvcHNPYmplY3QuZXhpc3RpbmdUYWJsZUludGVyZmFjZSkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgZXhpc3RpbmdUYWJsZUludGVyZmFjZSBvciBkeW5hbW9UYWJsZVByb3BzLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5leGlzdGluZ1N0cmVhbU9iaiAgJiYgcHJvcHNPYmplY3Qua2luZXNpc1N0cmVhbVByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBleGlzdGluZ1N0cmVhbU9iaiBvciBraW5lc2lzU3RyZWFtUHJvcHMsIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nTGFtYmRhT2JqICYmIHByb3BzT2JqZWN0LmxhbWJkYUZ1bmN0aW9uUHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGxhbWJkYUZ1bmN0aW9uUHJvcHMgb3IgZXhpc3RpbmdMYW1iZGFPYmosIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nUXVldWVPYmogJiYgcHJvcHNPYmplY3QucXVldWVQcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgcXVldWVQcm9wcyBvciBleGlzdGluZ1F1ZXVlT2JqLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICgocHJvcHNPYmplY3Q/LmRlcGxveURlYWRMZXR0ZXJRdWV1ZSA9PT0gZmFsc2UpICYmIHByb3BzT2JqZWN0LmRlYWRMZXR0ZXJRdWV1ZVByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBJZiBkZXBsb3lEZWFkTGV0dGVyUXVldWUgaXMgZmFsc2UgdGhlbiBkZWFkTGV0dGVyUXVldWVQcm9wcyBjYW5ub3QgYmUgc3BlY2lmaWVkLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBjb25zdCBpc1F1ZXVlRmlmbzogYm9vbGVhbiA9IHByb3BzT2JqZWN0Py5xdWV1ZVByb3BzPy5maWZvO1xuICBjb25zdCBpc0RlYWRMZXR0ZXJRdWV1ZUZpZm86IGJvb2xlYW4gPSBwcm9wc09iamVjdD8uZGVhZExldHRlclF1ZXVlUHJvcHM/LmZpZm87XG4gIGNvbnN0IGRlcGxveURlYWRMZXR0ZXJRdWV1ZTogYm9vbGVhbiA9IHByb3BzT2JqZWN0LmRlcGxveURlYWRMZXR0ZXJRdWV1ZSB8fCBwcm9wc09iamVjdC5kZXBsb3lEZWFkTGV0dGVyUXVldWUgPT09IHVuZGVmaW5lZDtcblxuICBpZiAoZGVwbG95RGVhZExldHRlclF1ZXVlICYmIChpc1F1ZXVlRmlmbyAhPT0gaXNEZWFkTGV0dGVyUXVldWVGaWZvKSkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gSWYgeW91IHNwZWNpZnkgYSBmaWZvOiB0cnVlIGluIGVpdGhlciBxdWV1ZVByb3BzIG9yIGRlYWRMZXR0ZXJRdWV1ZVByb3BzLCB5b3UgbXVzdCBhbHNvIHNldCBmaWZvOiB0cnVlIGluIHRoZSBvdGhlciBwcm9wcyBvYmplY3QuIFxcXG4gICAgRmlmbyBtdXN0IG1hdGNoIGZvciB0aGUgUXVldWUgYW5kIHRoZSBEZWFkIExldHRlciBRdWV1ZS5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nTWVkaWFTdG9yZUNvbnRhaW5lck9iaiAmJiBwcm9wc09iamVjdC5tZWRpYVN0b3JlQ29udGFpbmVyUHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIG1lZGlhU3RvcmVDb250YWluZXJQcm9wcyBvciBleGlzdGluZ01lZGlhU3RvcmVDb250YWluZXJPYmosIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nQnVja2V0T2JqICYmIHByb3BzT2JqZWN0LmJ1Y2tldFByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBidWNrZXRQcm9wcyBvciBleGlzdGluZ0J1Y2tldE9iaiwgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdCdWNrZXRJbnRlcmZhY2UgJiYgcHJvcHNPYmplY3QuYnVja2V0UHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGJ1Y2tldFByb3BzIG9yIGV4aXN0aW5nQnVja2V0SW50ZXJmYWNlLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICgocHJvcHNPYmplY3QudG9waWNQcm9wcykgJiYgcHJvcHNPYmplY3QuZXhpc3RpbmdUb3BpY09iaikge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgdG9waWNQcm9wcyBvciBleGlzdGluZ1RvcGljT2JqLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5nbHVlSm9iUHJvcHMgJiYgcHJvcHNPYmplY3QuZXhpc3RpbmdHbHVlSm9iKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBnbHVlSm9iUHJvcHMgb3IgZXhpc3RpbmdHbHVlSm9iLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5leGlzdGluZ1NhZ2VtYWtlckVuZHBvaW50T2JqICYmIHByb3BzT2JqZWN0LmVuZHBvaW50UHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGVuZHBvaW50UHJvcHMgb3IgZXhpc3RpbmdTYWdlbWFrZXJFbmRwb2ludE9iaiwgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdTZWNyZXRPYmogJiYgcHJvcHNPYmplY3Quc2VjcmV0UHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIHNlY3JldFByb3BzIG9yIGV4aXN0aW5nU2VjcmV0T2JqLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICgocHJvcHNPYmplY3QuZGVwbG95VnBjIHx8IHByb3BzT2JqZWN0LnZwY1Byb3BzKSAmJiBwcm9wc09iamVjdC5leGlzdGluZ1ZwYykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgYW4gZXhpc3RpbmdWcGMgb3Igc29tZSBjb21iaW5hdGlvbiBvZiBkZXBsb3lWcGMgYW5kIHZwY1Byb3BzLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5lbmNyeXB0aW9uS2V5ICYmIHByb3BzT2JqZWN0LmVuY3J5cHRpb25LZXlQcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgZW5jcnlwdGlvbktleSBvciBlbmNyeXB0aW9uS2V5UHJvcHMsIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nRXZlbnRCdXNJbnRlcmZhY2UgJiYgcHJvcHNPYmplY3QuZXZlbnRCdXNQcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgZXhpc3RpbmdFdmVudEJ1c0ludGVyZmFjZSBvciBldmVudEJ1c1Byb3BzLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5leGlzdGluZ1dlYmFjbE9iaiAmJiBwcm9wc09iamVjdC53ZWJhY2xQcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgZXhpc3RpbmdXZWJhY2xPYmogb3Igd2ViYWNsUHJvcHMsIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKChwcm9wc09iamVjdD8ubG9nQWxiQWNjZXNzTG9ncyA9PT0gZmFsc2UpICYmIChwcm9wc09iamVjdC5hbGJMb2dnaW5nQnVja2V0UHJvcHMpKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBJZiBsb2dBbGJBY2Nlc3NMb2dzIGlzIGZhbHNlLCBzdXBwbHlpbmcgYWxiTG9nZ2luZ0J1Y2tldFByb3BzIGlzIGludmFsaWQuXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5leGlzdGluZ0xvZ2dpbmdCdWNrZXRPYmogJiYgcHJvcHNPYmplY3QubG9nZ2luZ0J1Y2tldFByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBleGlzdGluZ0xvZ2dpbmdCdWNrZXRPYmogb3IgbG9nZ2luZ0J1Y2tldFByb3BzLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICgocHJvcHNPYmplY3Q/LmxvZ1MzQWNjZXNzTG9ncyA9PT0gZmFsc2UpICYmIChwcm9wc09iamVjdC5sb2dnaW5nQnVja2V0UHJvcHMgfHwgcHJvcHNPYmplY3QuZXhpc3RpbmdMb2dnaW5nQnVja2V0T2JqKSkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gSWYgbG9nUzNBY2Nlc3NMb2dzIGlzIGZhbHNlLCBzdXBwbHlpbmcgbG9nZ2luZ0J1Y2tldFByb3BzIG9yIGV4aXN0aW5nTG9nZ2luZ0J1Y2tldE9iaiBpcyBpbnZhbGlkLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdCdWNrZXRPYmogJiYgKHByb3BzT2JqZWN0LmxvZ2dpbmdCdWNrZXRQcm9wcyB8fCBwcm9wc09iamVjdC5sb2dTM0FjY2Vzc0xvZ3MpKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBJZiBleGlzdGluZ0J1Y2tldE9iaiBpcyBwcm92aWRlZCwgc3VwcGx5aW5nIGxvZ2dpbmdCdWNrZXRQcm9wcyBvciBsb2dTM0FjY2Vzc0xvZ3MgaXMgYW4gZXJyb3IuXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChlcnJvckZvdW5kKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZXMpO1xuICB9XG59Il19
121
+ function CheckListValues(allowedPermissions, submittedValues, valueType) {
122
+ submittedValues.forEach((submittedValue) => {
123
+ if (!allowedPermissions.includes(submittedValue)) {
124
+ throw Error(`Invalid ${valueType} submitted - ${submittedValue}`);
125
+ }
126
+ });
127
+ }
128
+ exports.CheckListValues = CheckListValues;
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlucHV0LXZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFxRUgsU0FBZ0IsVUFBVSxDQUFDLFdBQWdDOztJQUN6RCxJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDdkIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBRXZCLElBQUksV0FBVyxDQUFDLGlCQUFpQixJQUFJLFdBQVcsQ0FBQyx1QkFBdUIsRUFBRTtRQUN4RSxhQUFhLElBQUksc0ZBQXNGLENBQUM7UUFDeEcsVUFBVSxHQUFHLElBQUksQ0FBQztLQUNuQjtJQUVELElBQUksV0FBVyxDQUFDLGdCQUFnQixJQUFJLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRTtRQUNoRSxhQUFhLElBQUksOEVBQThFLENBQUM7UUFDaEcsVUFBVSxHQUFHLElBQUksQ0FBQztLQUNuQjtJQUVELElBQUksV0FBVyxDQUFDLGdCQUFnQixJQUFJLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRTtRQUN0RSxhQUFhLElBQUksb0ZBQW9GLENBQUM7UUFDdEcsVUFBVSxHQUFHLElBQUksQ0FBQztLQUNuQjtJQUVELElBQUksV0FBVyxDQUFDLGlCQUFpQixJQUFLLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRTtRQUNwRSxhQUFhLElBQUksaUZBQWlGLENBQUM7UUFDbkcsVUFBVSxHQUFHLElBQUksQ0FBQztLQUNuQjtJQUVELElBQUksV0FBVyxDQUFDLGlCQUFpQixJQUFJLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRTtRQUNwRSxhQUFhLElBQUksa0ZBQWtGLENBQUM7UUFDcEcsVUFBVSxHQUFHLElBQUksQ0FBQztLQUNuQjtJQUVELElBQUksV0FBVyxDQUFDLGdCQUFnQixJQUFJLFdBQVcsQ0FBQyxVQUFVLEVBQUU7UUFDMUQsYUFBYSxJQUFJLHdFQUF3RSxDQUFDO1FBQzFGLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLENBQUMsQ0FBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUscUJBQXFCLE1BQUssS0FBSyxDQUFDLElBQUksV0FBVyxDQUFDLG9CQUFvQixFQUFFO1FBQ3RGLGFBQWEsSUFBSSw0RkFBNEYsQ0FBQztRQUM5RyxVQUFVLEdBQUcsSUFBSSxDQUFDO0tBQ25CO0lBRUQsTUFBTSxXQUFXLFNBQVksV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLFVBQVUsMENBQUUsSUFBSSxDQUFDO0lBQzNELE1BQU0scUJBQXFCLFNBQVksV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLG9CQUFvQiwwQ0FBRSxJQUFJLENBQUM7SUFDL0UsTUFBTSxxQkFBcUIsR0FBWSxXQUFXLENBQUMscUJBQXFCLElBQUksV0FBVyxDQUFDLHFCQUFxQixLQUFLLFNBQVMsQ0FBQztJQUU1SCxJQUFJLHFCQUFxQixJQUFJLENBQUMsV0FBVyxLQUFLLHFCQUFxQixDQUFDLEVBQUU7UUFDcEUsYUFBYSxJQUFJOytEQUMwQyxDQUFDO1FBQzVELFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLFdBQVcsQ0FBQyw4QkFBOEIsSUFBSSxXQUFXLENBQUMsd0JBQXdCLEVBQUU7UUFDdEYsYUFBYSxJQUFJLG9HQUFvRyxDQUFDO1FBQ3RILFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsSUFBSSxXQUFXLENBQUMsV0FBVyxFQUFFO1FBQzVELGFBQWEsSUFBSSwwRUFBMEUsQ0FBQztRQUM1RixVQUFVLEdBQUcsSUFBSSxDQUFDO0tBQ25CO0lBRUQsSUFBSSxXQUFXLENBQUMsdUJBQXVCLElBQUksV0FBVyxDQUFDLFdBQVcsRUFBRTtRQUNsRSxhQUFhLElBQUksZ0ZBQWdGLENBQUM7UUFDbEcsVUFBVSxHQUFHLElBQUksQ0FBQztLQUNuQjtJQUVELElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksV0FBVyxDQUFDLGdCQUFnQixFQUFFO1FBQzVELGFBQWEsSUFBSSx3RUFBd0UsQ0FBQztRQUMxRixVQUFVLEdBQUcsSUFBSSxDQUFDO0tBQ25CO0lBRUQsSUFBSSxXQUFXLENBQUMsWUFBWSxJQUFJLFdBQVcsQ0FBQyxlQUFlLEVBQUU7UUFDM0QsYUFBYSxJQUFJLHlFQUF5RSxDQUFDO1FBQzNGLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLFdBQVcsQ0FBQyw0QkFBNEIsSUFBSSxXQUFXLENBQUMsYUFBYSxFQUFFO1FBQ3pFLGFBQWEsSUFBSSx1RkFBdUYsQ0FBQztRQUN6RyxVQUFVLEdBQUcsSUFBSSxDQUFDO0tBQ25CO0lBRUQsSUFBSSxXQUFXLENBQUMsaUJBQWlCLElBQUksV0FBVyxDQUFDLFdBQVcsRUFBRTtRQUM1RCxhQUFhLElBQUksMEVBQTBFLENBQUM7UUFDNUYsVUFBVSxHQUFHLElBQUksQ0FBQztLQUNuQjtJQUVELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxXQUFXLENBQUMsV0FBVyxFQUFFO1FBQzlFLGFBQWEsSUFBSSxzR0FBc0csQ0FBQztRQUN4SCxVQUFVLEdBQUcsSUFBSSxDQUFDO0tBQ25CO0lBRUQsSUFBSSxXQUFXLENBQUMsYUFBYSxJQUFJLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRTtRQUMvRCxhQUFhLElBQUksNkVBQTZFLENBQUM7UUFDL0YsVUFBVSxHQUFHLElBQUksQ0FBQztLQUNuQjtJQUVELElBQUksV0FBVyxDQUFDLHlCQUF5QixJQUFJLFdBQVcsQ0FBQyxhQUFhLEVBQUU7UUFDdEUsYUFBYSxJQUFJLG9GQUFvRixDQUFDO1FBQ3RHLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsSUFBSSxXQUFXLENBQUMsV0FBVyxFQUFFO1FBQzVELGFBQWEsSUFBSSwwRUFBMEUsQ0FBQztRQUM1RixVQUFVLEdBQUcsSUFBSSxDQUFDO0tBQ25CO0lBRUQsSUFBSSxDQUFDLENBQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLGdCQUFnQixNQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLEVBQUU7UUFDcEYsYUFBYSxJQUFJLHFGQUFxRixDQUFDO1FBQ3ZHLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLFdBQVcsQ0FBQyx3QkFBd0IsSUFBSSxXQUFXLENBQUMsa0JBQWtCLEVBQUU7UUFDMUUsYUFBYSxJQUFJLHdGQUF3RixDQUFDO1FBQzFHLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLENBQUMsQ0FBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsZUFBZSxNQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixJQUFJLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFO1FBQ3hILGFBQWEsSUFBSSw2R0FBNkcsQ0FBQztRQUMvSCxVQUFVLEdBQUcsSUFBSSxDQUFDO0tBQ25CO0lBRUQsSUFBSSxXQUFXLENBQUMsaUJBQWlCLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLElBQUksV0FBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ3BHLGFBQWEsSUFBSSwwR0FBMEcsQ0FBQztRQUM1SCxVQUFVLEdBQUcsSUFBSSxDQUFDO0tBQ25CO0lBRUQsSUFBSSxVQUFVLEVBQUU7UUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQ2hDO0FBQ0gsQ0FBQztBQS9IRCxnQ0ErSEM7QUFFRCxTQUFnQixlQUFlLENBQUMsa0JBQTRCLEVBQUUsZUFBeUIsRUFBRSxTQUFpQjtJQUN4RyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7UUFDekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNoRCxNQUFNLEtBQUssQ0FBQyxXQUFXLFNBQVMsZ0JBQWdCLGNBQWMsRUFBRSxDQUFFLENBQUM7U0FDcEU7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFORCwwQ0FNQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCAyMDIyIEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0ICogYXMgZHluYW1vZGIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcbmltcG9ydCAqIGFzIGtpbmVzaXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWtpbmVzaXMnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgc3FzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zcXMnO1xuaW1wb3J0ICogYXMgbWVkaWFzdG9yZSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbWVkaWFzdG9yZSc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0ICogYXMgZWxiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyJztcbmltcG9ydCAqIGFzIHNucyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zJztcbmltcG9ydCAqIGFzIGdsdWUgZnJvbSAnYXdzLWNkay1saWIvYXdzLWdsdWUnO1xuaW1wb3J0ICogYXMgc2FnZW1ha2VyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zYWdlbWFrZXInO1xuaW1wb3J0ICogYXMgc2VjcmV0c21hbmFnZXIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlclwiO1xuaW1wb3J0ICogYXMga21zIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mta21zXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZpZWRQcm9wcyB7XG4gIHJlYWRvbmx5IGR5bmFtb1RhYmxlUHJvcHM/OiBkeW5hbW9kYi5UYWJsZVByb3BzLFxuICByZWFkb25seSBleGlzdGluZ1RhYmxlT2JqPzogZHluYW1vZGIuVGFibGUsXG4gIHJlYWRvbmx5IGV4aXN0aW5nVGFibGVJbnRlcmZhY2U/OiBkeW5hbW9kYi5JVGFibGUsXG5cbiAgcmVhZG9ubHkgZXhpc3RpbmdTdHJlYW1PYmo/OiBraW5lc2lzLlN0cmVhbTtcbiAgcmVhZG9ubHkga2luZXNpc1N0cmVhbVByb3BzPzoga2luZXNpcy5TdHJlYW1Qcm9wcyxcblxuICByZWFkb25seSBleGlzdGluZ0xhbWJkYU9iaj86IGxhbWJkYS5GdW5jdGlvbixcbiAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb25Qcm9wcz86IGxhbWJkYS5GdW5jdGlvblByb3BzLFxuXG4gIHJlYWRvbmx5IGV4aXN0aW5nUXVldWVPYmo/OiBzcXMuUXVldWUsXG4gIHJlYWRvbmx5IHF1ZXVlUHJvcHM/OiBzcXMuUXVldWVQcm9wcyxcbiAgcmVhZG9ubHkgZGVwbG95RGVhZExldHRlclF1ZXVlPzogYm9vbGVhbixcbiAgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlUHJvcHM/OiBzcXMuUXVldWVQcm9wcyxcblxuICByZWFkb25seSBleGlzdGluZ01lZGlhU3RvcmVDb250YWluZXJPYmo/OiBtZWRpYXN0b3JlLkNmbkNvbnRhaW5lcjtcbiAgcmVhZG9ubHkgbWVkaWFTdG9yZUNvbnRhaW5lclByb3BzPzogbWVkaWFzdG9yZS5DZm5Db250YWluZXJQcm9wcztcblxuICByZWFkb25seSBleGlzdGluZ0J1Y2tldE9iaj86IHMzLkJ1Y2tldCxcbiAgcmVhZG9ubHkgZXhpc3RpbmdCdWNrZXRJbnRlcmZhY2U/OiBzMy5JQnVja2V0LFxuICByZWFkb25seSBidWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuXG4gIHJlYWRvbmx5IHRvcGljUHJvcHM/OiBzbnMuVG9waWNQcm9wcyxcbiAgcmVhZG9ubHkgZXhpc3RpbmdUb3BpY09iaj86IHNucy5Ub3BpYyxcblxuICByZWFkb25seSBnbHVlSm9iUHJvcHM/OiBnbHVlLkNmbkpvYlByb3BzLFxuICByZWFkb25seSBleGlzdGluZ0dsdWVKb2I/OiBnbHVlLkNmbkpvYixcblxuICByZWFkb25seSBleGlzdGluZ1NhZ2VtYWtlckVuZHBvaW50T2JqPzogc2FnZW1ha2VyLkNmbkVuZHBvaW50LFxuICByZWFkb25seSBlbmRwb2ludFByb3BzPzogc2FnZW1ha2VyLkNmbkVuZHBvaW50UHJvcHMsXG5cbiAgcmVhZG9ubHkgZXhpc3RpbmdTZWNyZXRPYmo/OiBzZWNyZXRzbWFuYWdlci5TZWNyZXQ7XG4gIHJlYWRvbmx5IHNlY3JldFByb3BzPzogc2VjcmV0c21hbmFnZXIuU2VjcmV0UHJvcHM7XG5cbiAgcmVhZG9ubHkgZXhpc3RpbmdWcGM/OiBlYzIuSVZwYztcbiAgcmVhZG9ubHkgdnBjUHJvcHM/OiBlYzIuVnBjUHJvcHM7XG4gIHJlYWRvbmx5IGRlcGxveVZwYz86IGJvb2xlYW47XG5cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5LZXksXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXlQcm9wcz86IGttcy5LZXlQcm9wc1xuXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlclByb3BzPzogZWxiLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHM7XG4gIHJlYWRvbmx5IGV4aXN0aW5nTG9hZEJhbGFuY2VyT2JqPzogZWxiLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyO1xuXG4gIHJlYWRvbmx5IGxvZ0FsYkFjY2Vzc0xvZ3M/OiBib29sZWFuO1xuICByZWFkb25seSBhbGJMb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcztcblxuICByZWFkb25seSBleGlzdGluZ0xvZ2dpbmdCdWNrZXRPYmo/OiBzMy5JQnVja2V0O1xuICByZWFkb25seSBsb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcztcbiAgcmVhZG9ubHkgbG9nUzNBY2Nlc3NMb2dzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENoZWNrUHJvcHMocHJvcHNPYmplY3Q6IFZlcmlmaWVkUHJvcHMgfCBhbnkpIHtcbiAgbGV0IGVycm9yTWVzc2FnZXMgPSAnJztcbiAgbGV0IGVycm9yRm91bmQgPSBmYWxzZTtcblxuICBpZiAocHJvcHNPYmplY3QubG9hZEJhbGFuY2VyUHJvcHMgJiYgcHJvcHNPYmplY3QuZXhpc3RpbmdMb2FkQmFsYW5jZXJPYmopIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGxvYWRCYWxhbmNlclByb3BzIG9yIGV4aXN0aW5nTG9hZEJhbGFuY2VyT2JqLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5keW5hbW9UYWJsZVByb3BzICYmIHByb3BzT2JqZWN0LmV4aXN0aW5nVGFibGVPYmopIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGV4aXN0aW5nVGFibGVPYmogb3IgZHluYW1vVGFibGVQcm9wcywgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZHluYW1vVGFibGVQcm9wcyAmJiBwcm9wc09iamVjdC5leGlzdGluZ1RhYmxlSW50ZXJmYWNlKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBleGlzdGluZ1RhYmxlSW50ZXJmYWNlIG9yIGR5bmFtb1RhYmxlUHJvcHMsIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nU3RyZWFtT2JqICAmJiBwcm9wc09iamVjdC5raW5lc2lzU3RyZWFtUHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGV4aXN0aW5nU3RyZWFtT2JqIG9yIGtpbmVzaXNTdHJlYW1Qcm9wcywgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdMYW1iZGFPYmogJiYgcHJvcHNPYmplY3QubGFtYmRhRnVuY3Rpb25Qcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgbGFtYmRhRnVuY3Rpb25Qcm9wcyBvciBleGlzdGluZ0xhbWJkYU9iaiwgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdRdWV1ZU9iaiAmJiBwcm9wc09iamVjdC5xdWV1ZVByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBxdWV1ZVByb3BzIG9yIGV4aXN0aW5nUXVldWVPYmosIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKChwcm9wc09iamVjdD8uZGVwbG95RGVhZExldHRlclF1ZXVlID09PSBmYWxzZSkgJiYgcHJvcHNPYmplY3QuZGVhZExldHRlclF1ZXVlUHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIElmIGRlcGxveURlYWRMZXR0ZXJRdWV1ZSBpcyBmYWxzZSB0aGVuIGRlYWRMZXR0ZXJRdWV1ZVByb3BzIGNhbm5vdCBiZSBzcGVjaWZpZWQuXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGlzUXVldWVGaWZvOiBib29sZWFuID0gcHJvcHNPYmplY3Q/LnF1ZXVlUHJvcHM/LmZpZm87XG4gIGNvbnN0IGlzRGVhZExldHRlclF1ZXVlRmlmbzogYm9vbGVhbiA9IHByb3BzT2JqZWN0Py5kZWFkTGV0dGVyUXVldWVQcm9wcz8uZmlmbztcbiAgY29uc3QgZGVwbG95RGVhZExldHRlclF1ZXVlOiBib29sZWFuID0gcHJvcHNPYmplY3QuZGVwbG95RGVhZExldHRlclF1ZXVlIHx8IHByb3BzT2JqZWN0LmRlcGxveURlYWRMZXR0ZXJRdWV1ZSA9PT0gdW5kZWZpbmVkO1xuXG4gIGlmIChkZXBsb3lEZWFkTGV0dGVyUXVldWUgJiYgKGlzUXVldWVGaWZvICE9PSBpc0RlYWRMZXR0ZXJRdWV1ZUZpZm8pKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBJZiB5b3Ugc3BlY2lmeSBhIGZpZm86IHRydWUgaW4gZWl0aGVyIHF1ZXVlUHJvcHMgb3IgZGVhZExldHRlclF1ZXVlUHJvcHMsIHlvdSBtdXN0IGFsc28gc2V0IGZpZm86IHRydWUgaW4gdGhlIG90aGVyIHByb3BzIG9iamVjdC4gXFxcbiAgICBGaWZvIG11c3QgbWF0Y2ggZm9yIHRoZSBRdWV1ZSBhbmQgdGhlIERlYWQgTGV0dGVyIFF1ZXVlLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdNZWRpYVN0b3JlQ29udGFpbmVyT2JqICYmIHByb3BzT2JqZWN0Lm1lZGlhU3RvcmVDb250YWluZXJQcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgbWVkaWFTdG9yZUNvbnRhaW5lclByb3BzIG9yIGV4aXN0aW5nTWVkaWFTdG9yZUNvbnRhaW5lck9iaiwgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdCdWNrZXRPYmogJiYgcHJvcHNPYmplY3QuYnVja2V0UHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGJ1Y2tldFByb3BzIG9yIGV4aXN0aW5nQnVja2V0T2JqLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5leGlzdGluZ0J1Y2tldEludGVyZmFjZSAmJiBwcm9wc09iamVjdC5idWNrZXRQcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgYnVja2V0UHJvcHMgb3IgZXhpc3RpbmdCdWNrZXRJbnRlcmZhY2UsIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKChwcm9wc09iamVjdC50b3BpY1Byb3BzKSAmJiBwcm9wc09iamVjdC5leGlzdGluZ1RvcGljT2JqKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSB0b3BpY1Byb3BzIG9yIGV4aXN0aW5nVG9waWNPYmosIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmdsdWVKb2JQcm9wcyAmJiBwcm9wc09iamVjdC5leGlzdGluZ0dsdWVKb2IpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGdsdWVKb2JQcm9wcyBvciBleGlzdGluZ0dsdWVKb2IsIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nU2FnZW1ha2VyRW5kcG9pbnRPYmogJiYgcHJvcHNPYmplY3QuZW5kcG9pbnRQcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgZW5kcG9pbnRQcm9wcyBvciBleGlzdGluZ1NhZ2VtYWtlckVuZHBvaW50T2JqLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5leGlzdGluZ1NlY3JldE9iaiAmJiBwcm9wc09iamVjdC5zZWNyZXRQcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgc2VjcmV0UHJvcHMgb3IgZXhpc3RpbmdTZWNyZXRPYmosIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKChwcm9wc09iamVjdC5kZXBsb3lWcGMgfHwgcHJvcHNPYmplY3QudnBjUHJvcHMpICYmIHByb3BzT2JqZWN0LmV4aXN0aW5nVnBjKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBhbiBleGlzdGluZ1ZwYyBvciBzb21lIGNvbWJpbmF0aW9uIG9mIGRlcGxveVZwYyBhbmQgdnBjUHJvcHMsIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmVuY3J5cHRpb25LZXkgJiYgcHJvcHNPYmplY3QuZW5jcnlwdGlvbktleVByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBlbmNyeXB0aW9uS2V5IG9yIGVuY3J5cHRpb25LZXlQcm9wcywgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdFdmVudEJ1c0ludGVyZmFjZSAmJiBwcm9wc09iamVjdC5ldmVudEJ1c1Byb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBleGlzdGluZ0V2ZW50QnVzSW50ZXJmYWNlIG9yIGV2ZW50QnVzUHJvcHMsIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nV2ViYWNsT2JqICYmIHByb3BzT2JqZWN0LndlYmFjbFByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBleGlzdGluZ1dlYmFjbE9iaiBvciB3ZWJhY2xQcm9wcywgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAoKHByb3BzT2JqZWN0Py5sb2dBbGJBY2Nlc3NMb2dzID09PSBmYWxzZSkgJiYgKHByb3BzT2JqZWN0LmFsYkxvZ2dpbmdCdWNrZXRQcm9wcykpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIElmIGxvZ0FsYkFjY2Vzc0xvZ3MgaXMgZmFsc2UsIHN1cHBseWluZyBhbGJMb2dnaW5nQnVja2V0UHJvcHMgaXMgaW52YWxpZC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nTG9nZ2luZ0J1Y2tldE9iaiAmJiBwcm9wc09iamVjdC5sb2dnaW5nQnVja2V0UHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGV4aXN0aW5nTG9nZ2luZ0J1Y2tldE9iaiBvciBsb2dnaW5nQnVja2V0UHJvcHMsIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKChwcm9wc09iamVjdD8ubG9nUzNBY2Nlc3NMb2dzID09PSBmYWxzZSkgJiYgKHByb3BzT2JqZWN0LmxvZ2dpbmdCdWNrZXRQcm9wcyB8fCBwcm9wc09iamVjdC5leGlzdGluZ0xvZ2dpbmdCdWNrZXRPYmopKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBJZiBsb2dTM0FjY2Vzc0xvZ3MgaXMgZmFsc2UsIHN1cHBseWluZyBsb2dnaW5nQnVja2V0UHJvcHMgb3IgZXhpc3RpbmdMb2dnaW5nQnVja2V0T2JqIGlzIGludmFsaWQuXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5leGlzdGluZ0J1Y2tldE9iaiAmJiAocHJvcHNPYmplY3QubG9nZ2luZ0J1Y2tldFByb3BzIHx8IHByb3BzT2JqZWN0LmxvZ1MzQWNjZXNzTG9ncykpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIElmIGV4aXN0aW5nQnVja2V0T2JqIGlzIHByb3ZpZGVkLCBzdXBwbHlpbmcgbG9nZ2luZ0J1Y2tldFByb3BzIG9yIGxvZ1MzQWNjZXNzTG9ncyBpcyBhbiBlcnJvci5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGVycm9yRm91bmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlcyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENoZWNrTGlzdFZhbHVlcyhhbGxvd2VkUGVybWlzc2lvbnM6IHN0cmluZ1tdLCBzdWJtaXR0ZWRWYWx1ZXM6IHN0cmluZ1tdLCB2YWx1ZVR5cGU6IHN0cmluZykge1xuICBzdWJtaXR0ZWRWYWx1ZXMuZm9yRWFjaCgoc3VibWl0dGVkVmFsdWUpID0+IHtcbiAgICBpZiAoIWFsbG93ZWRQZXJtaXNzaW9ucy5pbmNsdWRlcyhzdWJtaXR0ZWRWYWx1ZSkpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkICR7dmFsdWVUeXBlfSBzdWJtaXR0ZWQgLSAke3N1Ym1pdHRlZFZhbHVlfWAgKTtcbiAgICB9XG4gIH0pO1xufVxuIl19