@orcabus/platform-cdk-constructs 0.0.7-alpha.6 → 0.0.7-beta.2
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 +173 -39
- package/api-gateway/api-gateway.js +1 -1
- package/deployment-stack-pipeline/pipeline.d.ts +14 -1
- package/deployment-stack-pipeline/pipeline.js +24 -6
- package/dynamodb/index.js +2 -2
- package/ecs/index.js +1 -1
- package/lambda/config.d.ts +1 -0
- package/lambda/config.js +7 -2
- package/lambda/index.d.ts +25 -0
- package/lambda/index.js +83 -4
- package/lambda/layers/fastapi_tools/poetry.lock +1339 -0
- package/lambda/layers/fastapi_tools/pyproject.toml +32 -0
- package/lambda/layers/fastapi_tools/src/fastapi_tools/__init__.py +20 -0
- package/lambda/layers/fastapi_tools/src/fastapi_tools/globals.py +3 -0
- package/lambda/layers/fastapi_tools/src/fastapi_tools/pagination_helpers.py +102 -0
- package/lambda/layers/icav2_tools/poetry.lock +85 -0
- package/lambda/layers/icav2_tools/pyproject.toml +26 -0
- package/lambda/layers/icav2_tools/src/icav2_tools/__init__.py +19 -0
- package/lambda/layers/icav2_tools/src/icav2_tools/aws_helpers.py +116 -0
- package/lambda/layers/icav2_tools/src/icav2_tools/globals.py +2 -0
- package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/icav2_wes/__init__.py +79 -0
- package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/icav2_wes/create_helpers.py +29 -0
- package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/icav2_wes/globals.py +6 -0
- package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/icav2_wes/models.py +50 -0
- package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/icav2_wes/query_helpers.py +20 -0
- package/lambda/layers/orcabus_api_tools/src/orcabus_api_tools/icav2_wes/update_helpers.py +23 -0
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -4372,7 +4372,7 @@
|
|
|
4372
4372
|
},
|
|
4373
4373
|
"locationInModule": {
|
|
4374
4374
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4375
|
-
"line":
|
|
4375
|
+
"line": 146
|
|
4376
4376
|
},
|
|
4377
4377
|
"parameters": [
|
|
4378
4378
|
{
|
|
@@ -4398,7 +4398,7 @@
|
|
|
4398
4398
|
"kind": "class",
|
|
4399
4399
|
"locationInModule": {
|
|
4400
4400
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4401
|
-
"line":
|
|
4401
|
+
"line": 140
|
|
4402
4402
|
},
|
|
4403
4403
|
"name": "DeploymentStackPipeline",
|
|
4404
4404
|
"namespace": "deploymentPipeline",
|
|
@@ -4411,7 +4411,7 @@
|
|
|
4411
4411
|
"immutable": true,
|
|
4412
4412
|
"locationInModule": {
|
|
4413
4413
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4414
|
-
"line":
|
|
4414
|
+
"line": 144
|
|
4415
4415
|
},
|
|
4416
4416
|
"name": "pipeline",
|
|
4417
4417
|
"type": {
|
|
@@ -4431,7 +4431,7 @@
|
|
|
4431
4431
|
"kind": "interface",
|
|
4432
4432
|
"locationInModule": {
|
|
4433
4433
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4434
|
-
"line":
|
|
4434
|
+
"line": 72
|
|
4435
4435
|
},
|
|
4436
4436
|
"name": "DeploymentStackPipelineProps",
|
|
4437
4437
|
"namespace": "deploymentPipeline",
|
|
@@ -4446,7 +4446,7 @@
|
|
|
4446
4446
|
"immutable": true,
|
|
4447
4447
|
"locationInModule": {
|
|
4448
4448
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4449
|
-
"line":
|
|
4449
|
+
"line": 108
|
|
4450
4450
|
},
|
|
4451
4451
|
"name": "cdkSynthCmd",
|
|
4452
4452
|
"type": {
|
|
@@ -4467,7 +4467,7 @@
|
|
|
4467
4467
|
"immutable": true,
|
|
4468
4468
|
"locationInModule": {
|
|
4469
4469
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4470
|
-
"line":
|
|
4470
|
+
"line": 76
|
|
4471
4471
|
},
|
|
4472
4472
|
"name": "githubBranch",
|
|
4473
4473
|
"type": {
|
|
@@ -4484,7 +4484,7 @@
|
|
|
4484
4484
|
"immutable": true,
|
|
4485
4485
|
"locationInModule": {
|
|
4486
4486
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4487
|
-
"line":
|
|
4487
|
+
"line": 80
|
|
4488
4488
|
},
|
|
4489
4489
|
"name": "githubRepo",
|
|
4490
4490
|
"type": {
|
|
@@ -4500,7 +4500,7 @@
|
|
|
4500
4500
|
"immutable": true,
|
|
4501
4501
|
"locationInModule": {
|
|
4502
4502
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4503
|
-
"line":
|
|
4503
|
+
"line": 97
|
|
4504
4504
|
},
|
|
4505
4505
|
"name": "pipelineName",
|
|
4506
4506
|
"type": {
|
|
@@ -4516,7 +4516,7 @@
|
|
|
4516
4516
|
"immutable": true,
|
|
4517
4517
|
"locationInModule": {
|
|
4518
4518
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4519
|
-
"line":
|
|
4519
|
+
"line": 84
|
|
4520
4520
|
},
|
|
4521
4521
|
"name": "stack",
|
|
4522
4522
|
"type": {
|
|
@@ -4532,7 +4532,7 @@
|
|
|
4532
4532
|
"immutable": true,
|
|
4533
4533
|
"locationInModule": {
|
|
4534
4534
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4535
|
-
"line":
|
|
4535
|
+
"line": 93
|
|
4536
4536
|
},
|
|
4537
4537
|
"name": "stackConfig",
|
|
4538
4538
|
"type": {
|
|
@@ -4549,7 +4549,7 @@
|
|
|
4549
4549
|
"immutable": true,
|
|
4550
4550
|
"locationInModule": {
|
|
4551
4551
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4552
|
-
"line":
|
|
4552
|
+
"line": 89
|
|
4553
4553
|
},
|
|
4554
4554
|
"name": "stackName",
|
|
4555
4555
|
"type": {
|
|
@@ -4566,7 +4566,7 @@
|
|
|
4566
4566
|
"immutable": true,
|
|
4567
4567
|
"locationInModule": {
|
|
4568
4568
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4569
|
-
"line":
|
|
4569
|
+
"line": 114
|
|
4570
4570
|
},
|
|
4571
4571
|
"name": "cdkOut",
|
|
4572
4572
|
"optional": true,
|
|
@@ -4574,6 +4574,24 @@
|
|
|
4574
4574
|
"primitive": "string"
|
|
4575
4575
|
}
|
|
4576
4576
|
},
|
|
4577
|
+
{
|
|
4578
|
+
"abstract": true,
|
|
4579
|
+
"docs": {
|
|
4580
|
+
"default": "True",
|
|
4581
|
+
"stability": "experimental",
|
|
4582
|
+
"summary": "Enable notification to the 'alerts-build' slack channel."
|
|
4583
|
+
},
|
|
4584
|
+
"immutable": true,
|
|
4585
|
+
"locationInModule": {
|
|
4586
|
+
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4587
|
+
"line": 129
|
|
4588
|
+
},
|
|
4589
|
+
"name": "enableSlackNotification",
|
|
4590
|
+
"optional": true,
|
|
4591
|
+
"type": {
|
|
4592
|
+
"primitive": "boolean"
|
|
4593
|
+
}
|
|
4594
|
+
},
|
|
4577
4595
|
{
|
|
4578
4596
|
"abstract": true,
|
|
4579
4597
|
"docs": {
|
|
@@ -4584,7 +4602,7 @@
|
|
|
4584
4602
|
"immutable": true,
|
|
4585
4603
|
"locationInModule": {
|
|
4586
4604
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4587
|
-
"line":
|
|
4605
|
+
"line": 104
|
|
4588
4606
|
},
|
|
4589
4607
|
"name": "filePaths",
|
|
4590
4608
|
"optional": true,
|
|
@@ -4597,6 +4615,30 @@
|
|
|
4597
4615
|
}
|
|
4598
4616
|
}
|
|
4599
4617
|
},
|
|
4618
|
+
{
|
|
4619
|
+
"abstract": true,
|
|
4620
|
+
"docs": {
|
|
4621
|
+
"default": "[PipelineNotificationEvents.PIPELINE_EXECUTION_FAILED] –\nOnly failed pipeline executions will trigger a notification.",
|
|
4622
|
+
"remarks": "Only applies if `enableSlackNotification` is set to true.",
|
|
4623
|
+
"stability": "experimental",
|
|
4624
|
+
"summary": "The pipeline notification events that will trigger a Slack channel notification."
|
|
4625
|
+
},
|
|
4626
|
+
"immutable": true,
|
|
4627
|
+
"locationInModule": {
|
|
4628
|
+
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4629
|
+
"line": 137
|
|
4630
|
+
},
|
|
4631
|
+
"name": "notificationEvents",
|
|
4632
|
+
"optional": true,
|
|
4633
|
+
"type": {
|
|
4634
|
+
"collection": {
|
|
4635
|
+
"elementtype": {
|
|
4636
|
+
"fqn": "aws-cdk-lib.aws_codepipeline.PipelineNotificationEvents"
|
|
4637
|
+
},
|
|
4638
|
+
"kind": "array"
|
|
4639
|
+
}
|
|
4640
|
+
}
|
|
4641
|
+
},
|
|
4600
4642
|
{
|
|
4601
4643
|
"abstract": true,
|
|
4602
4644
|
"docs": {
|
|
@@ -4606,7 +4648,7 @@
|
|
|
4606
4648
|
"immutable": true,
|
|
4607
4649
|
"locationInModule": {
|
|
4608
4650
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4609
|
-
"line":
|
|
4651
|
+
"line": 124
|
|
4610
4652
|
},
|
|
4611
4653
|
"name": "stageEnv",
|
|
4612
4654
|
"optional": true,
|
|
@@ -4625,7 +4667,7 @@
|
|
|
4625
4667
|
"immutable": true,
|
|
4626
4668
|
"locationInModule": {
|
|
4627
4669
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4628
|
-
"line":
|
|
4670
|
+
"line": 120
|
|
4629
4671
|
},
|
|
4630
4672
|
"name": "synthBuildSpec",
|
|
4631
4673
|
"optional": true,
|
|
@@ -4651,7 +4693,7 @@
|
|
|
4651
4693
|
"kind": "interface",
|
|
4652
4694
|
"locationInModule": {
|
|
4653
4695
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4654
|
-
"line":
|
|
4696
|
+
"line": 57
|
|
4655
4697
|
},
|
|
4656
4698
|
"name": "StackConfigProps",
|
|
4657
4699
|
"namespace": "deploymentPipeline",
|
|
@@ -4665,7 +4707,7 @@
|
|
|
4665
4707
|
"immutable": true,
|
|
4666
4708
|
"locationInModule": {
|
|
4667
4709
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4668
|
-
"line":
|
|
4710
|
+
"line": 61
|
|
4669
4711
|
},
|
|
4670
4712
|
"name": "beta",
|
|
4671
4713
|
"type": {
|
|
@@ -4686,7 +4728,7 @@
|
|
|
4686
4728
|
"immutable": true,
|
|
4687
4729
|
"locationInModule": {
|
|
4688
4730
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4689
|
-
"line":
|
|
4731
|
+
"line": 65
|
|
4690
4732
|
},
|
|
4691
4733
|
"name": "gamma",
|
|
4692
4734
|
"type": {
|
|
@@ -4707,7 +4749,7 @@
|
|
|
4707
4749
|
"immutable": true,
|
|
4708
4750
|
"locationInModule": {
|
|
4709
4751
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4710
|
-
"line":
|
|
4752
|
+
"line": 69
|
|
4711
4753
|
},
|
|
4712
4754
|
"name": "prod",
|
|
4713
4755
|
"type": {
|
|
@@ -4732,7 +4774,7 @@
|
|
|
4732
4774
|
"kind": "interface",
|
|
4733
4775
|
"locationInModule": {
|
|
4734
4776
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4735
|
-
"line":
|
|
4777
|
+
"line": 42
|
|
4736
4778
|
},
|
|
4737
4779
|
"name": "StageEnvProps",
|
|
4738
4780
|
"namespace": "deploymentPipeline",
|
|
@@ -4746,7 +4788,7 @@
|
|
|
4746
4788
|
"immutable": true,
|
|
4747
4789
|
"locationInModule": {
|
|
4748
4790
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4749
|
-
"line":
|
|
4791
|
+
"line": 46
|
|
4750
4792
|
},
|
|
4751
4793
|
"name": "beta",
|
|
4752
4794
|
"type": {
|
|
@@ -4762,7 +4804,7 @@
|
|
|
4762
4804
|
"immutable": true,
|
|
4763
4805
|
"locationInModule": {
|
|
4764
4806
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4765
|
-
"line":
|
|
4807
|
+
"line": 50
|
|
4766
4808
|
},
|
|
4767
4809
|
"name": "gamma",
|
|
4768
4810
|
"type": {
|
|
@@ -4778,7 +4820,7 @@
|
|
|
4778
4820
|
"immutable": true,
|
|
4779
4821
|
"locationInModule": {
|
|
4780
4822
|
"filename": "deployment-stack-pipeline/pipeline.ts",
|
|
4781
|
-
"line":
|
|
4823
|
+
"line": 54
|
|
4782
4824
|
},
|
|
4783
4825
|
"name": "prod",
|
|
4784
4826
|
"type": {
|
|
@@ -5258,6 +5300,44 @@
|
|
|
5258
5300
|
],
|
|
5259
5301
|
"symbolId": "ecs/index:FargateEcsTaskConstructProps"
|
|
5260
5302
|
},
|
|
5303
|
+
"@orcabus/platform-cdk-constructs.lambda.Icav2ResourcesProps": {
|
|
5304
|
+
"assembly": "@orcabus/platform-cdk-constructs",
|
|
5305
|
+
"datatype": true,
|
|
5306
|
+
"docs": {
|
|
5307
|
+
"stability": "experimental"
|
|
5308
|
+
},
|
|
5309
|
+
"fqn": "@orcabus/platform-cdk-constructs.lambda.Icav2ResourcesProps",
|
|
5310
|
+
"kind": "interface",
|
|
5311
|
+
"locationInModule": {
|
|
5312
|
+
"filename": "lambda/index.ts",
|
|
5313
|
+
"line": 63
|
|
5314
|
+
},
|
|
5315
|
+
"name": "Icav2ResourcesProps",
|
|
5316
|
+
"namespace": "lambda",
|
|
5317
|
+
"properties": [
|
|
5318
|
+
{
|
|
5319
|
+
"abstract": true,
|
|
5320
|
+
"docs": {
|
|
5321
|
+
"custom": {
|
|
5322
|
+
"DEFAULT_ICAV2_ACCESS_TOKEN_SECRET_ID": "true"
|
|
5323
|
+
},
|
|
5324
|
+
"stability": "experimental",
|
|
5325
|
+
"summary": "The id of the secret that contains the icav2 access token otherwise it will default to."
|
|
5326
|
+
},
|
|
5327
|
+
"immutable": true,
|
|
5328
|
+
"locationInModule": {
|
|
5329
|
+
"filename": "lambda/index.ts",
|
|
5330
|
+
"line": 68
|
|
5331
|
+
},
|
|
5332
|
+
"name": "icav2AccessTokenSecretId",
|
|
5333
|
+
"optional": true,
|
|
5334
|
+
"type": {
|
|
5335
|
+
"primitive": "string"
|
|
5336
|
+
}
|
|
5337
|
+
}
|
|
5338
|
+
],
|
|
5339
|
+
"symbolId": "lambda/index:Icav2ResourcesProps"
|
|
5340
|
+
},
|
|
5261
5341
|
"@orcabus/platform-cdk-constructs.lambda.MartEnvironmentVariables": {
|
|
5262
5342
|
"assembly": "@orcabus/platform-cdk-constructs",
|
|
5263
5343
|
"datatype": true,
|
|
@@ -5268,7 +5348,7 @@
|
|
|
5268
5348
|
"kind": "interface",
|
|
5269
5349
|
"locationInModule": {
|
|
5270
5350
|
"filename": "lambda/index.ts",
|
|
5271
|
-
"line":
|
|
5351
|
+
"line": 46
|
|
5272
5352
|
},
|
|
5273
5353
|
"name": "MartEnvironmentVariables",
|
|
5274
5354
|
"namespace": "lambda",
|
|
@@ -5285,7 +5365,7 @@
|
|
|
5285
5365
|
"immutable": true,
|
|
5286
5366
|
"locationInModule": {
|
|
5287
5367
|
"filename": "lambda/index.ts",
|
|
5288
|
-
"line":
|
|
5368
|
+
"line": 60
|
|
5289
5369
|
},
|
|
5290
5370
|
"name": "athenaDatabaseName",
|
|
5291
5371
|
"optional": true,
|
|
@@ -5305,7 +5385,7 @@
|
|
|
5305
5385
|
"immutable": true,
|
|
5306
5386
|
"locationInModule": {
|
|
5307
5387
|
"filename": "lambda/index.ts",
|
|
5308
|
-
"line":
|
|
5388
|
+
"line": 55
|
|
5309
5389
|
},
|
|
5310
5390
|
"name": "athenaDatasourceName",
|
|
5311
5391
|
"optional": true,
|
|
@@ -5325,7 +5405,7 @@
|
|
|
5325
5405
|
"immutable": true,
|
|
5326
5406
|
"locationInModule": {
|
|
5327
5407
|
"filename": "lambda/index.ts",
|
|
5328
|
-
"line":
|
|
5408
|
+
"line": 50
|
|
5329
5409
|
},
|
|
5330
5410
|
"name": "athenaWorkgroupName",
|
|
5331
5411
|
"optional": true,
|
|
@@ -5346,7 +5426,7 @@
|
|
|
5346
5426
|
"kind": "interface",
|
|
5347
5427
|
"locationInModule": {
|
|
5348
5428
|
"filename": "lambda/index.ts",
|
|
5349
|
-
"line":
|
|
5429
|
+
"line": 34
|
|
5350
5430
|
},
|
|
5351
5431
|
"name": "OrcabusResourcesProps",
|
|
5352
5432
|
"namespace": "lambda",
|
|
@@ -5363,7 +5443,7 @@
|
|
|
5363
5443
|
"immutable": true,
|
|
5364
5444
|
"locationInModule": {
|
|
5365
5445
|
"filename": "lambda/index.ts",
|
|
5366
|
-
"line":
|
|
5446
|
+
"line": 43
|
|
5367
5447
|
},
|
|
5368
5448
|
"name": "hostnameSsmParameterName",
|
|
5369
5449
|
"optional": true,
|
|
@@ -5383,7 +5463,7 @@
|
|
|
5383
5463
|
"immutable": true,
|
|
5384
5464
|
"locationInModule": {
|
|
5385
5465
|
"filename": "lambda/index.ts",
|
|
5386
|
-
"line":
|
|
5466
|
+
"line": 38
|
|
5387
5467
|
},
|
|
5388
5468
|
"name": "orcabusTokenSecretId",
|
|
5389
5469
|
"optional": true,
|
|
@@ -5407,7 +5487,7 @@
|
|
|
5407
5487
|
},
|
|
5408
5488
|
"locationInModule": {
|
|
5409
5489
|
"filename": "lambda/index.ts",
|
|
5410
|
-
"line":
|
|
5490
|
+
"line": 126
|
|
5411
5491
|
},
|
|
5412
5492
|
"parameters": [
|
|
5413
5493
|
{
|
|
@@ -5433,7 +5513,7 @@
|
|
|
5433
5513
|
"kind": "class",
|
|
5434
5514
|
"locationInModule": {
|
|
5435
5515
|
"filename": "lambda/index.ts",
|
|
5436
|
-
"line":
|
|
5516
|
+
"line": 117
|
|
5437
5517
|
},
|
|
5438
5518
|
"name": "PythonUvFunction",
|
|
5439
5519
|
"namespace": "lambda",
|
|
@@ -5452,11 +5532,65 @@
|
|
|
5452
5532
|
"kind": "interface",
|
|
5453
5533
|
"locationInModule": {
|
|
5454
5534
|
"filename": "lambda/index.ts",
|
|
5455
|
-
"line":
|
|
5535
|
+
"line": 72
|
|
5456
5536
|
},
|
|
5457
5537
|
"name": "PythonUvFunctionProps",
|
|
5458
5538
|
"namespace": "lambda",
|
|
5459
5539
|
"properties": [
|
|
5540
|
+
{
|
|
5541
|
+
"abstract": true,
|
|
5542
|
+
"docs": {
|
|
5543
|
+
"custom": {
|
|
5544
|
+
"DEFAULT_ICAV2_ACCESS_TOKEN_SECRET_ID": "for the secret"
|
|
5545
|
+
},
|
|
5546
|
+
"stability": "experimental",
|
|
5547
|
+
"summary": "Provide the icav2Resources, optional, otherwise it will default to."
|
|
5548
|
+
},
|
|
5549
|
+
"immutable": true,
|
|
5550
|
+
"locationInModule": {
|
|
5551
|
+
"filename": "lambda/index.ts",
|
|
5552
|
+
"line": 113
|
|
5553
|
+
},
|
|
5554
|
+
"name": "icav2Resources",
|
|
5555
|
+
"optional": true,
|
|
5556
|
+
"type": {
|
|
5557
|
+
"fqn": "@orcabus/platform-cdk-constructs.lambda.Icav2ResourcesProps"
|
|
5558
|
+
}
|
|
5559
|
+
},
|
|
5560
|
+
{
|
|
5561
|
+
"abstract": true,
|
|
5562
|
+
"docs": {
|
|
5563
|
+
"stability": "experimental",
|
|
5564
|
+
"summary": "Whether or not to include the fastapi layer in the lambda function build."
|
|
5565
|
+
},
|
|
5566
|
+
"immutable": true,
|
|
5567
|
+
"locationInModule": {
|
|
5568
|
+
"filename": "lambda/index.ts",
|
|
5569
|
+
"line": 93
|
|
5570
|
+
},
|
|
5571
|
+
"name": "includeFastApiLayer",
|
|
5572
|
+
"optional": true,
|
|
5573
|
+
"type": {
|
|
5574
|
+
"primitive": "boolean"
|
|
5575
|
+
}
|
|
5576
|
+
},
|
|
5577
|
+
{
|
|
5578
|
+
"abstract": true,
|
|
5579
|
+
"docs": {
|
|
5580
|
+
"stability": "experimental",
|
|
5581
|
+
"summary": "Whether or not to include the icav2 layer in the lambda function build."
|
|
5582
|
+
},
|
|
5583
|
+
"immutable": true,
|
|
5584
|
+
"locationInModule": {
|
|
5585
|
+
"filename": "lambda/index.ts",
|
|
5586
|
+
"line": 88
|
|
5587
|
+
},
|
|
5588
|
+
"name": "includeIcav2Layer",
|
|
5589
|
+
"optional": true,
|
|
5590
|
+
"type": {
|
|
5591
|
+
"primitive": "boolean"
|
|
5592
|
+
}
|
|
5593
|
+
},
|
|
5460
5594
|
{
|
|
5461
5595
|
"abstract": true,
|
|
5462
5596
|
"docs": {
|
|
@@ -5466,7 +5600,7 @@
|
|
|
5466
5600
|
"immutable": true,
|
|
5467
5601
|
"locationInModule": {
|
|
5468
5602
|
"filename": "lambda/index.ts",
|
|
5469
|
-
"line":
|
|
5603
|
+
"line": 83
|
|
5470
5604
|
},
|
|
5471
5605
|
"name": "includeMartLayer",
|
|
5472
5606
|
"optional": true,
|
|
@@ -5483,7 +5617,7 @@
|
|
|
5483
5617
|
"immutable": true,
|
|
5484
5618
|
"locationInModule": {
|
|
5485
5619
|
"filename": "lambda/index.ts",
|
|
5486
|
-
"line":
|
|
5620
|
+
"line": 76
|
|
5487
5621
|
},
|
|
5488
5622
|
"name": "includeOrcabusApiToolsLayer",
|
|
5489
5623
|
"optional": true,
|
|
@@ -5503,7 +5637,7 @@
|
|
|
5503
5637
|
"immutable": true,
|
|
5504
5638
|
"locationInModule": {
|
|
5505
5639
|
"filename": "lambda/index.ts",
|
|
5506
|
-
"line":
|
|
5640
|
+
"line": 107
|
|
5507
5641
|
},
|
|
5508
5642
|
"name": "martEnvironmentVariables",
|
|
5509
5643
|
"optional": true,
|
|
@@ -5524,7 +5658,7 @@
|
|
|
5524
5658
|
"immutable": true,
|
|
5525
5659
|
"locationInModule": {
|
|
5526
5660
|
"filename": "lambda/index.ts",
|
|
5527
|
-
"line":
|
|
5661
|
+
"line": 100
|
|
5528
5662
|
},
|
|
5529
5663
|
"name": "orcabusTokenResources",
|
|
5530
5664
|
"optional": true,
|
|
@@ -5536,6 +5670,6 @@
|
|
|
5536
5670
|
"symbolId": "lambda/index:PythonUvFunctionProps"
|
|
5537
5671
|
}
|
|
5538
5672
|
},
|
|
5539
|
-
"version": "0.0.7-
|
|
5540
|
-
"fingerprint": "
|
|
5673
|
+
"version": "0.0.7-beta.2",
|
|
5674
|
+
"fingerprint": "D4anUpWBuvOwqgBkQ4rZwbFOm/3mvMujnv4AuwgN5Uw="
|
|
5541
5675
|
}
|
|
@@ -15,7 +15,7 @@ const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
|
15
15
|
const aws_route53_targets_1 = require("aws-cdk-lib/aws-route53-targets");
|
|
16
16
|
const config_1 = require("./config");
|
|
17
17
|
class OrcaBusApiGateway extends constructs_1.Construct {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.apigateway.OrcaBusApiGateway", version: "0.0.7-
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.apigateway.OrcaBusApiGateway", version: "0.0.7-beta.2" };
|
|
19
19
|
/**
|
|
20
20
|
* The AWS region where the API Gateway is deployed.
|
|
21
21
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Construct } from "constructs";
|
|
2
2
|
import { Environment } from "aws-cdk-lib";
|
|
3
|
-
import { Pipeline } from "aws-cdk-lib/aws-codepipeline";
|
|
3
|
+
import { Pipeline, PipelineNotificationEvents } from "aws-cdk-lib/aws-codepipeline";
|
|
4
4
|
/**
|
|
5
5
|
* The default partial build spec for the synth step in the pipeline.
|
|
6
6
|
*/
|
|
@@ -94,6 +94,19 @@ export interface DeploymentStackPipelineProps {
|
|
|
94
94
|
* The stage environment for the deployment stack
|
|
95
95
|
*/
|
|
96
96
|
readonly stageEnv?: StageEnvProps;
|
|
97
|
+
/**
|
|
98
|
+
* Enable notification to the 'alerts-build' slack channel.
|
|
99
|
+
* @default True
|
|
100
|
+
*/
|
|
101
|
+
readonly enableSlackNotification?: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* The pipeline notification events that will trigger a Slack channel notification.
|
|
104
|
+
* Only applies if `enableSlackNotification` is set to true.
|
|
105
|
+
*
|
|
106
|
+
* @default [PipelineNotificationEvents.PIPELINE_EXECUTION_FAILED] –
|
|
107
|
+
* Only failed pipeline executions will trigger a notification.
|
|
108
|
+
*/
|
|
109
|
+
readonly notificationEvents?: PipelineNotificationEvents[];
|
|
97
110
|
}
|
|
98
111
|
export declare class DeploymentStackPipeline extends Construct {
|
|
99
112
|
/**
|
|
@@ -9,6 +9,8 @@ const aws_ssm_1 = require("aws-cdk-lib/aws-ssm");
|
|
|
9
9
|
const pipelines_1 = require("aws-cdk-lib/pipelines");
|
|
10
10
|
const aws_codepipeline_1 = require("aws-cdk-lib/aws-codepipeline");
|
|
11
11
|
const config_1 = require("./config");
|
|
12
|
+
const aws_chatbot_1 = require("aws-cdk-lib/aws-chatbot");
|
|
13
|
+
const aws_codestarnotifications_1 = require("aws-cdk-lib/aws-codestarnotifications");
|
|
12
14
|
/**
|
|
13
15
|
* The default partial build spec for the synth step in the pipeline.
|
|
14
16
|
*/
|
|
@@ -22,7 +24,7 @@ exports.DEFAULT_SYNTH_STEP_PARTIAL_BUILD_SPEC = {
|
|
|
22
24
|
},
|
|
23
25
|
};
|
|
24
26
|
class DeploymentStackPipeline extends constructs_1.Construct {
|
|
25
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.DeploymentStackPipeline", version: "0.0.7-
|
|
27
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.DeploymentStackPipeline", version: "0.0.7-beta.2" };
|
|
26
28
|
/**
|
|
27
29
|
* The code pipeline construct that is created.
|
|
28
30
|
*/
|
|
@@ -97,24 +99,40 @@ class DeploymentStackPipeline extends constructs_1.Construct {
|
|
|
97
99
|
prod: config_1.PROD_ENVIRONMENT,
|
|
98
100
|
};
|
|
99
101
|
const stageEnv = props.stageEnv || defaultStageEnv;
|
|
100
|
-
cdkPipeline.addStage(new DeploymentStage(this, "OrcaBusBeta", stageEnv.beta, props.stackName, props.stack, props.stackConfig.beta));
|
|
101
|
-
cdkPipeline.addStage(new DeploymentStage(this, "OrcaBusGamma", stageEnv.gamma, props.stackName, props.stack, props.stackConfig.gamma), { post: [new pipelines_1.ManualApprovalStep("PromoteToProd")] });
|
|
102
|
-
cdkPipeline.addStage(new DeploymentStage(this, "OrcaBusProd", stageEnv.prod, props.stackName, props.stack, props.stackConfig.prod));
|
|
102
|
+
cdkPipeline.addStage(new DeploymentStage(this, "OrcaBusBeta", stageEnv.beta, props.stackName, props.stack, props.stackConfig.beta, props.githubRepo, props.githubBranch));
|
|
103
|
+
cdkPipeline.addStage(new DeploymentStage(this, "OrcaBusGamma", stageEnv.gamma, props.stackName, props.stack, props.stackConfig.gamma, props.githubRepo, props.githubBranch), { post: [new pipelines_1.ManualApprovalStep("PromoteToProd")] });
|
|
104
|
+
cdkPipeline.addStage(new DeploymentStage(this, "OrcaBusProd", stageEnv.prod, props.stackName, props.stack, props.stackConfig.prod, props.githubRepo, props.githubBranch));
|
|
105
|
+
if (props.enableSlackNotification ?? true) {
|
|
106
|
+
const alertsBuildSlackConfigArn = aws_ssm_1.StringParameter.valueForStringParameter(this, "/chatbot_arn/slack/alerts-build");
|
|
107
|
+
const target = aws_chatbot_1.SlackChannelConfiguration.fromSlackChannelConfigurationArn(this, "SlackChannelConfiguration", alertsBuildSlackConfigArn);
|
|
108
|
+
this.pipeline.notifyOn("PipelineSlackNotification", target, {
|
|
109
|
+
events: props.notificationEvents || [
|
|
110
|
+
aws_codepipeline_1.PipelineNotificationEvents.PIPELINE_EXECUTION_FAILED,
|
|
111
|
+
],
|
|
112
|
+
detailType: aws_codestarnotifications_1.DetailType.FULL,
|
|
113
|
+
notificationRuleName: `OrcaBus-${props.pipelineName}`,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
103
116
|
}
|
|
104
117
|
}
|
|
105
118
|
exports.DeploymentStackPipeline = DeploymentStackPipeline;
|
|
106
119
|
class DeploymentStage extends aws_cdk_lib_1.Stage {
|
|
107
|
-
constructor(scope, environmentName, env, stackName, stackClass, appStackProps) {
|
|
120
|
+
constructor(scope, environmentName, env, stackName, stackClass, appStackProps, githubRepo, githubBranch) {
|
|
108
121
|
super(scope, environmentName, { env: env });
|
|
122
|
+
let source = `https://github.com/OrcaBus/${githubRepo}`;
|
|
123
|
+
if (githubBranch !== undefined && githubBranch !== "main") {
|
|
124
|
+
source = `${source}/tree/${githubBranch}`;
|
|
125
|
+
}
|
|
109
126
|
new stackClass(this, stackName, {
|
|
110
127
|
env: env,
|
|
111
128
|
tags: {
|
|
112
129
|
"umccr-org:Product": "OrcaBus",
|
|
113
130
|
"umccr-org:Creator": "CDK",
|
|
114
131
|
"umccr-org:Service": stackName,
|
|
132
|
+
"umccr-org:Source": source,
|
|
115
133
|
},
|
|
116
134
|
...appStackProps,
|
|
117
135
|
});
|
|
118
136
|
}
|
|
119
137
|
}
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwaXBlbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkNBQXVDO0FBQ3ZDLDZDQUF3RDtBQUN4RCw2REFJbUM7QUFDbkMsaURBQXNEO0FBQ3RELHFEQUsrQjtBQUMvQixtRUFJc0M7QUFDdEMscUNBSWtCO0FBRWxCOztHQUVHO0FBQ1UsUUFBQSxxQ0FBcUMsR0FBRztJQUNuRCxNQUFNLEVBQUU7UUFDTixPQUFPLEVBQUU7WUFDUCxrQkFBa0IsRUFBRTtnQkFDbEIsTUFBTSxFQUFFLE1BQU07YUFDZjtTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBdUZGLE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7O0lBQ3BEOztPQUVHO0lBQ00sUUFBUSxDQUFXO0lBRTVCLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQW1DO1FBRW5DLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxXQUFXLEdBQUcseUJBQWUsQ0FBQyx1QkFBdUIsQ0FDekQsSUFBSSxFQUNKLDhCQUE4QixDQUMvQixDQUFDO1FBQ0YsTUFBTSx3QkFBd0IsR0FBRyxjQUFjLENBQUM7UUFDaEQsTUFBTSxVQUFVLEdBQUcsOEJBQWtCLENBQUMsVUFBVSxDQUM5QyxXQUFXLEtBQUssQ0FBQyxVQUFVLEVBQUUsRUFDN0IsS0FBSyxDQUFDLFlBQVksRUFDbEI7WUFDRSxhQUFhLEVBQUUsV0FBVztZQUMxQixVQUFVLEVBQUUsd0JBQXdCO1lBQ3BDLGFBQWEsRUFBRSxJQUFJO1NBQ3BCLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSwyQkFBUSxDQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRTtZQUMzRCxZQUFZLEVBQUUsK0JBQVksQ0FBQyxFQUFFO1lBQzdCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxnQkFBZ0IsRUFBRSxJQUFJO1NBQ3ZCLENBQUMs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QWdCLFNBQVEsbUJBQUs7SUFDakMsWUFDRSxLQUFnQixFQUNoQixlQUF1QixFQUN2QixHQUFnQixFQUNoQixTQUFpQixFQUNqQixVQUFtRSxFQUNuRSxhQUFrQjtRQUVsQixLQUFLLENBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDOUIsR0FBRyxFQUFFLEdBQUc7WUFDUixJQUFJLEVBQUU7Z0JBQ0osbUJBQW1CLEVBQUUsU0FBUztnQkFDOUIsbUJBQW1CLEVBQUUsS0FBSztnQkFDMUIsbUJBQW1CLEVBQUUsU0FBUzthQUMvQjtZQUNELEdBQUcsYUFBYTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQsIFN0YWNrLCBTdGFnZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgQnVpbGRTcGVjLFxuICBDb21wdXRlVHlwZSxcbiAgTGludXhBcm1CdWlsZEltYWdlLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZFwiO1xuaW1wb3J0IHsgU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zc21cIjtcbmltcG9ydCB7XG4gIENvZGVCdWlsZFN0ZXAsXG4gIENvZGVQaXBlbGluZSxcbiAgQ29kZVBpcGVsaW5lU291cmNlLFxuICBNYW51YWxBcHByb3ZhbFN0ZXAsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9waXBlbGluZXNcIjtcbmltcG9ydCB7XG4gIFBpcGVsaW5lLFxuICBDZm5QaXBlbGluZSxcbiAgUGlwZWxpbmVUeXBlLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZVwiO1xuaW1wb3J0IHtcbiAgQkVUQV9FTlZJUk9OTUVOVCxcbiAgR0FNTUFfRU5WSVJPTk1FTlQsXG4gIFBST0RfRU5WSVJPTk1FTlQsXG59IGZyb20gXCIuL2NvbmZpZ1wiO1xuXG4vKipcbiAqIFRoZSBkZWZhdWx0IHBhcnRpYWwgYnVpbGQgc3BlYyBmb3IgdGhlIHN5bnRoIHN0ZXAgaW4gdGhlIHBpcGVsaW5lLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9TWU5USF9TVEVQX1BBUlRJQUxfQlVJTERfU1BFQyA9IHtcbiAgcGhhc2VzOiB7XG4gICAgaW5zdGFsbDoge1xuICAgICAgXCJydW50aW1lLXZlcnNpb25zXCI6IHtcbiAgICAgICAgbm9kZWpzOiBcIjIyLnhcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VFbnZQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgZm9yIHRoZSBiZXRhIHN0YWdlXG4gICAqL1xuICByZWFkb25seSBiZXRhOiBFbnZpcm9ubWVudDtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBmb3IgdGhlIGdhbW1hIHN0YWdlXG4gICAqL1xuICByZWFkb25seSBnYW1tYTogRW52aXJvbm1lbnQ7XG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgZm9yIHRoZSBwcm9kIHN0YWdlXG4gICAqL1xuICByZWFkb25seSBwcm9kOiBFbnZpcm9ubWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFja0NvbmZpZ1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgYmV0YSAoZGV2KSBzdGFnZVxuICAgKi9cbiAgcmVhZG9ubHkgYmV0YTogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgZ2FtbWEgKHN0Zykgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGdhbW1hOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBwcm9kIHN0YWdlXG4gICAqL1xuICByZWFkb25seSBwcm9kOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveW1lbnRTdGFja1BpcGVsaW5lUHJvcHMge1xuICAvKipcbiAgICogVGhlIGdpdGh1YiBicmFuY2ggbmFtZSBpdCB3aWxsIGxpc3RlbiB0by5cbiAgICovXG4gIHJlYWRvbmx5IGdpdGh1YkJyYW5jaDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgbmFtZSB0aGF0IGV4aXN0IGluIHRoZSAnT3JjYUJ1cycgZ2l0aHViIG9yZ2FuaXNhdGlvbi4gZS5nLiBgYS1taWNyby1zZXJ2aWNlLXJlcG9gXG4gICAqL1xuICByZWFkb25seSBnaXRodWJSZXBvOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdG8gd2hpY2ggdGhlIHBpcGVsaW5lIHdpbGwgYmUgZGVwbG95aW5nIHRvIGl0cyByZXNwZWN0aXZlIGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrOiBhbnk7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgbmFtZSAoaW4gY2xvdWRmb3JtYXRpb24pIGZvciB0aGUgc3RhY2sgZGVmaW5lZCBpbiBgc3RhY2tgLiBUaGUgc3RhY2sgbmFtZSB3aWxsIHByZXBlbmQgd2l0aCB0aGUgc3RhZ2VcbiAgICogbmFtZSBlLmcuIGBPcmNhQnVzQmV0YS08c3RhY2tOYW1lPmAsIGBPcmNhQnVzR2FtbWEtPHN0YWNrTmFtZT5gLCBgT3JjYUJ1c1Byb2QtPHN0YWNrTmFtZT5gXG4gICAqL1xuICByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzdGFjayBjb25maWd1cmF0aW9uL2NvbnN0YW50cyB0aGF0IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBzdGFjayBwcm9wcy5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrQ29uZmlnOiBTdGFja0NvbmZpZ1Byb3BzO1xuICAvKipcbiAgICogVGhlIHBpcGVsaW5lIG5hbWUgaW4gdGhlIGJhc3Rpb24gYWNjb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IHBpcGVsaW5lTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGZpbGUgcGF0aHMgdG8gdHJpZ2dlciB0aGUgcGlwZWxpbmUuIGUuZy4gW1wic3RhdGVsZXNzLyoqXCJdXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWNvZGVwaXBlbGluZS1waXBlbGluZS1naXRmaWxlcGF0aGZpbHRlcmNyaXRlcmlhLmh0bWxcbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IGZpbGVQYXRocz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIGNvbW1hbmQgdG8gcnVuIHRvIHN5bnRoIHRoZSBjZGsgc3RhY2sgd2hpY2ggYWxzbyBpbnN0YWxsaW5nIHRoZSBjZGsgZGVwZW5kZW5jaWVzLiBlLmcuIFtcInlhcm4gaW5zdGFsbCAtLWltbXV0YWJsZVwiLCBcInlhcm4gY2RrIHN5bnRoXCJdXG4gICAqL1xuICByZWFkb25seSBjZGtTeW50aENtZDogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gd2hlcmUgdGhlIGNkayBvdXRwdXQgd2lsbCBiZSBzdG9yZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGNkay5vdXRcbiAgICovXG4gIHJlYWRvbmx5IGNka091dD86IHN0cmluZztcbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIENvZGVCdWlsZCBzdGVwIGR1cmluZyB0aGUgQ0RLIHN5bnRoIHBoYXNlLiBJdCB3aWxsIHBhc3NlZCBhcyB0aGUgYHBhcnRpYWxCdWlsZFNwZWNgIHRvIHRoZSBgQ29kZUJ1aWxkU3RlcGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IERFRkFVTFRfU1lOVEhfU1RFUF9QQVJUSUFMX0JVSUxEX1NQRUNcbiAgICovXG4gIHJlYWRvbmx5IHN5bnRoQnVpbGRTcGVjPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqXG4gICAqIFRoZSBzdGFnZSBlbnZpcm9ubWVudCBmb3IgdGhlIGRlcGxveW1lbnQgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IHN0YWdlRW52PzogU3RhZ2VFbnZQcm9wcztcbn1cblxuZXhwb3J0IGNsYXNzIERlcGxveW1lbnRTdGFja1BpcGVsaW5lIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBjb2RlIHBpcGVsaW5lIGNvbnN0cnVjdCB0aGF0IGlzIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBwaXBlbGluZTogUGlwZWxpbmU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBEZXBsb3ltZW50U3RhY2tQaXBlbGluZVByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgY29kZVN0YXJBcm4gPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGb3JTdHJpbmdQYXJhbWV0ZXIoXG4gICAgICB0aGlzLFxuICAgICAgXCIvb3JjYWJ1cy9jb2Rlc3Rhcl9naXRodWJfYXJuXCIsXG4gICAgKTtcbiAgICBjb25zdCBjb2RlU3RhclNvdXJjZUFjdGlvbk5hbWUgPSBcInBpcGVsaW5lLXNyY1wiO1xuICAgIGNvbnN0IHNvdXJjZUZpbGUgPSBDb2RlUGlwZWxpbmVTb3VyY2UuY29ubmVjdGlvbihcbiAgICAgIGBPcmNhQnVzLyR7cHJvcHMuZ2l0aHViUmVwb31gLFxuICAgICAgcHJvcHMuZ2l0aHViQnJhbmNoLFxuICAgICAge1xuICAgICAgICBjb25uZWN0aW9uQXJuOiBjb2RlU3RhckFybixcbiAgICAgICAgYWN0aW9uTmFtZTogY29kZVN0YXJTb3VyY2VBY3Rpb25OYW1lLFxuICAgICAgICB0cmlnZ2VyT25QdXNoOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgdGhpcy5waXBlbGluZSA9IG5ldyBQaXBlbGluZSh0aGlzLCBcIkRlcGxveW1lbnRDb2RlUGlwZWxpbmVcIiwge1xuICAgICAgcGlwZWxpbmVUeXBlOiBQaXBlbGluZVR5cGUuVjIsXG4gICAgICBwaXBlbGluZU5hbWU6IHByb3BzLnBpcGVsaW5lTmFtZSxcbiAgICAgIGNyb3NzQWNjb3VudEtleXM6IHRydWUsXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHMuZmlsZVBhdGhzKSB7XG4gICAgICAvLyBBZGQgZXZlbnQgZmlsdGVyIHRvIG9ubHkgdHJpZ2dlciBpZiB0aGUgcHVzaCBldmVudCBpcyBmcm9tIGBkZXBsb3lgIGRpcmVjdG9yeVxuICAgICAgY29uc3QgY2ZuUGlwZWxpbmUgPSB0aGlzLnBpcGVsaW5lLm5vZGUuZGVmYXVsdENoaWxkIGFzIENmblBpcGVsaW5lO1xuICAgICAgY2ZuUGlwZWxpbmUuYWRkUHJvcGVydHlPdmVycmlkZShcIlRyaWdnZXJzXCIsIFtcbiAgICAgICAge1xuICAgICAgICAgIEdpdENvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgIFB1c2g6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIEJyYW5jaGVzOiB7XG4gICAgICAgICAgICAgICAgICBJbmNsdWRlczogW3Byb3BzLmdpdGh1YkJyYW5jaF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBGaWxlUGF0aHM6IHtcbiAgICAgICAgICAgICAgICAgIEluY2x1ZGVzOiBwcm9wcy5maWxlUGF0aHMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBTb3VyY2VBY3Rpb25OYW1lOiBjb2RlU3RhclNvdXJjZUFjdGlvbk5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBQcm92aWRlclR5cGU6IFwiQ29kZVN0YXJTb3VyY2VDb25uZWN0aW9uXCIsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IHN5bnRoQnVpbGRTcGVjID0gREVGQVVMVF9TWU5USF9TVEVQX1BBUlRJQUxfQlVJTERfU1BFQyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY2RrUGlwZWxpbmUgPSBuZXcgQ29kZVBpcGVsaW5lKHRoaXMsIFwiQ0RLQ29kZVBpcGVsaW5lXCIsIHtcbiAgICAgIGNvZGVQaXBlbGluZTogdGhpcy5waXBlbGluZSxcbiAgICAgIHN5bnRoOiBuZXcgQ29kZUJ1aWxkU3RlcChcIkNka1N5bnRoXCIsIHtcbiAgICAgICAgaW5zdGFsbENvbW1hbmRzOiBbXG4gICAgICAgICAgXCJub2RlIC12XCIsXG4gICAgICAgICAgXCJucG0gaW5zdGFsbCAtLWdsb2JhbCBjb3JlcGFja0BsYXRlc3RcIixcbiAgICAgICAgICBcImNvcmVwYWNrIC0tdmVyc2lvblwiLFxuICAgICAgICAgIFwiY29yZXBhY2sgZW5hYmxlXCIsXG4gICAgICAgIF0sXG4gICAgICAgIGNvbW1hbmRzOiBwcm9wcy5jZGtTeW50aENtZCxcbiAgICAgICAgaW5wdXQ6IHNvdXJjZUZpbGUsXG4gICAgICAgIHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6IHByb3BzLmNka091dCB8fCBcImNkay5vdXRcIixcbiAgICAgICAgcGFydGlhbEJ1aWxkU3BlYzogQnVpbGRTcGVjLmZyb21PYmplY3Qoc3ludGhCdWlsZFNwZWMpLFxuICAgICAgfSksXG4gICAgICBzZWxmTXV0YXRpb246IHRydWUsXG4gICAgICBjb2RlQnVpbGREZWZhdWx0czoge1xuICAgICAgICBidWlsZEVudmlyb25tZW50OiB7XG4gICAgICAgICAgY29tcHV0ZVR5cGU6IENvbXB1dGVUeXBlLkxBUkdFLFxuICAgICAgICAgIGJ1aWxkSW1hZ2U6IExpbnV4QXJtQnVpbGRJbWFnZS5BTUFaT05fTElOVVhfMl9TVEFOREFSRF8zXzAsXG4gICAgICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZXM6IHtcbiAgICAgICAgICAgIE5PREVfT1BUSU9OUzoge1xuICAgICAgICAgICAgICB2YWx1ZTogXCItLW1heC1vbGQtc3BhY2Utc2l6ZT04MTkyXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGVmYXVsdFN0YWdlRW52OiBTdGFnZUVudlByb3BzID0ge1xuICAgICAgYmV0YTogQkVUQV9FTlZJUk9OTUVOVCxcbiAgICAgIGdhbW1hOiBHQU1NQV9FTlZJUk9OTUVOVCxcbiAgICAgIHByb2Q6IFBST0RfRU5WSVJPTk1FTlQsXG4gICAgfTtcbiAgICBjb25zdCBzdGFnZUVudiA9IHByb3BzLnN0YWdlRW52IHx8IGRlZmF1bHRTdGFnZUVudjtcblxuICAgIGNka1BpcGVsaW5lLmFkZFN0YWdlKFxuICAgICAgbmV3IERlcGxveW1lbnRTdGFnZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJPcmNhQnVzQmV0YVwiLFxuICAgICAgICBzdGFnZUVudi5iZXRhLFxuICAgICAgICBwcm9wcy5zdGFja05hbWUsXG4gICAgICAgIHByb3BzLnN0YWNrLFxuICAgICAgICBwcm9wcy5zdGFja0NvbmZpZy5iZXRhLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgY2RrUGlwZWxpbmUuYWRkU3RhZ2UoXG4gICAgICBuZXcgRGVwbG95bWVudFN0YWdlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIk9yY2FCdXNHYW1tYVwiLFxuICAgICAgICBzdGFnZUVudi5nYW1tYSxcbiAgICAgICAgcHJvcHMuc3RhY2tOYW1lLFxuICAgICAgICBwcm9wcy5zdGFjayxcbiAgICAgICAgcHJvcHMuc3RhY2tDb25maWcuZ2FtbWEsXG4gICAgICApLFxuICAgICAgeyBwb3N0OiBbbmV3IE1hbnVhbEFwcHJvdmFsU3RlcChcIlByb21vdGVUb1Byb2RcIildIH0sXG4gICAgKTtcblxuICAgIGNka1BpcGVsaW5lLmFkZFN0YWdlKFxuICAgICAgbmV3IERlcGxveW1lbnRTdGFnZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJPcmNhQnVzUHJvZFwiLFxuICAgICAgICBzdGFnZUVudi5wcm9kLFxuICAgICAgICBwcm9wcy5zdGFja05hbWUsXG4gICAgICAgIHByb3BzLnN0YWNrLFxuICAgICAgICBwcm9wcy5zdGFja0NvbmZpZy5wcm9kLFxuICAgICAgKSxcbiAgICApO1xuICB9XG59XG5cbmNsYXNzIERlcGxveW1lbnRTdGFnZSBleHRlbmRzIFN0YWdlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBlbnZpcm9ubWVudE5hbWU6IHN0cmluZyxcbiAgICBlbnY6IEVudmlyb25tZW50LFxuICAgIHN0YWNrTmFtZTogc3RyaW5nLFxuICAgIHN0YWNrQ2xhc3M6IG5ldyAoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IGFueSkgPT4gU3RhY2ssXG4gICAgYXBwU3RhY2tQcm9wczogYW55LFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgZW52aXJvbm1lbnROYW1lLCB7IGVudjogZW52IH0pO1xuICAgIG5ldyBzdGFja0NsYXNzKHRoaXMsIHN0YWNrTmFtZSwge1xuICAgICAgZW52OiBlbnYsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIFwidW1jY3Itb3JnOlByb2R1Y3RcIjogXCJPcmNhQnVzXCIsXG4gICAgICAgIFwidW1jY3Itb3JnOkNyZWF0b3JcIjogXCJDREtcIixcbiAgICAgICAgXCJ1bWNjci1vcmc6U2VydmljZVwiOiBzdGFja05hbWUsXG4gICAgICB9LFxuICAgICAgLi4uYXBwU3RhY2tQcm9wcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwaXBlbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkNBQXVDO0FBQ3ZDLDZDQUF3RDtBQUN4RCw2REFJbUM7QUFDbkMsaURBQXNEO0FBQ3RELHFEQUsrQjtBQUMvQixtRUFLc0M7QUFDdEMscUNBSWtCO0FBQ2xCLHlEQUFvRTtBQUNwRSxxRkFBbUU7QUFFbkU7O0dBRUc7QUFDVSxRQUFBLHFDQUFxQyxHQUFHO0lBQ25ELE1BQU0sRUFBRTtRQUNOLE9BQU8sRUFBRTtZQUNQLGtCQUFrQixFQUFFO2dCQUNsQixNQUFNLEVBQUUsTUFBTTthQUNmO1NBQ0Y7S0FDRjtDQUNGLENBQUM7QUFvR0YsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUzs7SUFDcEQ7O09BRUc7SUFDTSxRQUFRLENBQVc7SUFFNUIsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFdBQVcsR0FBRyx5QkFBZSxDQUFDLHVCQUF1QixDQUN6RCxJQUFJLEVBQ0osOEJBQThCLENBQy9CLENBQUM7UUFDRixNQUFNLHdCQUF3QixHQUFHLGNBQWMsQ0FBQztRQUNoRCxNQUFNLFVBQVUsR0FBRyw4QkFBa0IsQ0FBQyxVQUFVLENBQzlDLFdBQVcsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUM3QixLQUFLLENBQUMsWUFBWSxFQUNsQjtZQUNFLGFBQWEsRUFBRSxXQUFXO1lBQzFCLFVBQVUsRUFBRSx3QkFBd0I7WUFDcEMsYUFBYSxFQUFFLElBQUk7U0FDcEIsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDJCQUFRLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFO1lBQzNELFlBQVksRUFBRSwrQkFBWSxDQUFDLEVBQUU7WUFDN0IsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLGdC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QU0sU0FBUyxZQUFZLEVBQUUsQ0FBQztRQUM1QyxDQUFDO1FBRUQsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUM5QixHQUFHLEVBQUUsR0FBRztZQUNSLElBQUksRUFBRTtnQkFDSixtQkFBbUIsRUFBRSxTQUFTO2dCQUM5QixtQkFBbUIsRUFBRSxLQUFLO2dCQUMxQixtQkFBbUIsRUFBRSxTQUFTO2dCQUM5QixrQkFBa0IsRUFBRSxNQUFNO2FBQzNCO1lBQ0QsR0FBRyxhQUFhO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCwgU3RhY2ssIFN0YWdlIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBCdWlsZFNwZWMsXG4gIENvbXB1dGVUeXBlLFxuICBMaW51eEFybUJ1aWxkSW1hZ2UsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkXCI7XG5pbXBvcnQgeyBTdHJpbmdQYXJhbWV0ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNzbVwiO1xuaW1wb3J0IHtcbiAgQ29kZUJ1aWxkU3RlcCxcbiAgQ29kZVBpcGVsaW5lLFxuICBDb2RlUGlwZWxpbmVTb3VyY2UsXG4gIE1hbnVhbEFwcHJvdmFsU3RlcCxcbn0gZnJvbSBcImF3cy1jZGstbGliL3BpcGVsaW5lc1wiO1xuaW1wb3J0IHtcbiAgUGlwZWxpbmUsXG4gIENmblBpcGVsaW5lLFxuICBQaXBlbGluZVR5cGUsXG4gIFBpcGVsaW5lTm90aWZpY2F0aW9uRXZlbnRzLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZVwiO1xuaW1wb3J0IHtcbiAgQkVUQV9FTlZJUk9OTUVOVCxcbiAgR0FNTUFfRU5WSVJPTk1FTlQsXG4gIFBST0RfRU5WSVJPTk1FTlQsXG59IGZyb20gXCIuL2NvbmZpZ1wiO1xuaW1wb3J0IHsgU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2hhdGJvdFwiO1xuaW1wb3J0IHsgRGV0YWlsVHlwZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXN0YXJub3RpZmljYXRpb25zXCI7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgcGFydGlhbCBidWlsZCBzcGVjIGZvciB0aGUgc3ludGggc3RlcCBpbiB0aGUgcGlwZWxpbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NZTlRIX1NURVBfUEFSVElBTF9CVUlMRF9TUEVDID0ge1xuICBwaGFzZXM6IHtcbiAgICBpbnN0YWxsOiB7XG4gICAgICBcInJ1bnRpbWUtdmVyc2lvbnNcIjoge1xuICAgICAgICBub2RlanM6IFwiMjIueFwiLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBTdGFnZUVudlByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBmb3IgdGhlIGJldGEgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGJldGE6IEVudmlyb25tZW50O1xuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IGZvciB0aGUgZ2FtbWEgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGdhbW1hOiBFbnZpcm9ubWVudDtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBmb3IgdGhlIHByb2Qgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IHByb2Q6IEVudmlyb25tZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrQ29uZmlnUHJvcHMge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBiZXRhIChkZXYpIHN0YWdlXG4gICAqL1xuICByZWFkb25seSBiZXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBnYW1tYSAoc3RnKSBzdGFnZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2FtbWE6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHByb2Qgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IHByb2Q6IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95bWVudFN0YWNrUGlwZWxpbmVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZ2l0aHViIGJyYW5jaCBuYW1lIGl0IHdpbGwgbGlzdGVuIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViQnJhbmNoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcmVwb3NpdG9yeSBuYW1lIHRoYXQgZXhpc3QgaW4gdGhlICdPcmNhQnVzJyBnaXRodWIgb3JnYW5pc2F0aW9uLiBlLmcuIGBhLW1pY3JvLXNlcnZpY2UtcmVwb2BcbiAgICovXG4gIHJlYWRvbmx5IGdpdGh1YlJlcG86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0byB3aGljaCB0aGUgcGlwZWxpbmUgd2lsbCBiZSBkZXBsb3lpbmcgdG8gaXRzIHJlc3BlY3RpdmUgYWNjb3VudFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGFueTtcbiAgLyoqXG4gICAqIFRoZSBzdGFjayBuYW1lIChpbiBjbG91ZGZvcm1hdGlvbikgZm9yIHRoZSBzdGFjayBkZWZpbmVkIGluIGBzdGFja2AuIFRoZSBzdGFjayBuYW1lIHdpbGwgcHJlcGVuZCB3aXRoIHRoZSBzdGFnZVxuICAgKiBuYW1lIGUuZy4gYE9yY2FCdXNCZXRhLTxzdGFja05hbWU+YCwgYE9yY2FCdXNHYW1tYS08c3RhY2tOYW1lPmAsIGBPcmNhQnVzUHJvZC08c3RhY2tOYW1lPmBcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHN0YWNrIGNvbmZpZ3VyYXRpb24vY29uc3RhbnRzIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHN0YWNrIHByb3BzLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tDb25maWc6IFN0YWNrQ29uZmlnUHJvcHM7XG4gIC8qKlxuICAgKiBUaGUgcGlwZWxpbmUgbmFtZSBpbiB0aGUgYmFzdGlvbiBhY2NvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcGlwZWxpbmVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZmlsZSBwYXRocyB0byB0cmlnZ2VyIHRoZSBwaXBlbGluZS4gZS5nLiBbXCJzdGF0ZWxlc3MvKipcIl1cbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtY29kZXBpcGVsaW5lLXBpcGVsaW5lLWdpdGZpbGVwYXRoZmlsdGVyY3JpdGVyaWEuaHRtbFxuICAgKlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZVBhdGhzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgY29tbWFuZCB0byBydW4gdG8gc3ludGggdGhlIGNkayBzdGFjayB3aGljaCBhbHNvIGluc3RhbGxpbmcgdGhlIGNkayBkZXBlbmRlbmNpZXMuIGUuZy4gW1wieWFybiBpbnN0YWxsIC0taW1tdXRhYmxlXCIsIFwieWFybiBjZGsgc3ludGhcIl1cbiAgICovXG4gIHJlYWRvbmx5IGNka1N5bnRoQ21kOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgY2RrIG91dHB1dCB3aWxsIGJlIHN0b3JlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgY2RrLm91dFxuICAgKi9cbiAgcmVhZG9ubHkgY2RrT3V0Pzogc3RyaW5nO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGUgQ29kZUJ1aWxkIHN0ZXAgZHVyaW5nIHRoZSBDREsgc3ludGggcGhhc2UuIEl0IHdpbGwgcGFzc2VkIGFzIHRoZSBgcGFydGlhbEJ1aWxkU3BlY2AgdG8gdGhlIGBDb2RlQnVpbGRTdGVwYC5cbiAgICpcbiAgICogQGRlZmF1bHQgREVGQVVMVF9TWU5USF9TVEVQX1BBUlRJQUxfQlVJTERfU1BFQ1xuICAgKi9cbiAgcmVhZG9ubHkgc3ludGhCdWlsZFNwZWM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAvKipcbiAgICogVGhlIHN0YWdlIGVudmlyb25tZW50IGZvciB0aGUgZGVwbG95bWVudCBzdGFja1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2VFbnY/OiBTdGFnZUVudlByb3BzO1xuICAvKipcbiAgICogRW5hYmxlIG5vdGlmaWNhdGlvbiB0byB0aGUgJ2FsZXJ0cy1idWlsZCcgc2xhY2sgY2hhbm5lbC5cbiAgICogQGRlZmF1bHQgVHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlU2xhY2tOb3RpZmljYXRpb24/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIHBpcGVsaW5lIG5vdGlmaWNhdGlvbiBldmVudHMgdGhhdCB3aWxsIHRyaWdnZXIgYSBTbGFjayBjaGFubmVsIG5vdGlmaWNhdGlvbi5cbiAgICogT25seSBhcHBsaWVzIGlmIGBlbmFibGVTbGFja05vdGlmaWNhdGlvbmAgaXMgc2V0IHRvIHRydWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtQaXBlbGluZU5vdGlmaWNhdGlvbkV2ZW50cy5QSVBFTElORV9FWEVDVVRJT05fRkFJTEVEXSDigJNcbiAgICogICBPbmx5IGZhaWxlZCBwaXBlbGluZSBleGVjdXRpb25zIHdpbGwgdHJpZ2dlciBhIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkV2ZW50cz86IFBpcGVsaW5lTm90aWZpY2F0aW9uRXZlbnRzW107XG59XG5cbmV4cG9ydCBjbGFzcyBEZXBsb3ltZW50U3RhY2tQaXBlbGluZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgY29kZSBwaXBlbGluZSBjb25zdHJ1Y3QgdGhhdCBpcyBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGlwZWxpbmU6IFBpcGVsaW5lO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogRGVwbG95bWVudFN0YWNrUGlwZWxpbmVQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGNvZGVTdGFyQXJuID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRm9yU3RyaW5nUGFyYW1ldGVyKFxuICAgICAgdGhpcyxcbiAgICAgIFwiL29yY2FidXMvY29kZXN0YXJfZ2l0aHViX2FyblwiLFxuICAgICk7XG4gICAgY29uc3QgY29kZVN0YXJTb3VyY2VBY3Rpb25OYW1lID0gXCJwaXBlbGluZS1zcmNcIjtcbiAgICBjb25zdCBzb3VyY2VGaWxlID0gQ29kZVBpcGVsaW5lU291cmNlLmNvbm5lY3Rpb24oXG4gICAgICBgT3JjYUJ1cy8ke3Byb3BzLmdpdGh1YlJlcG99YCxcbiAgICAgIHByb3BzLmdpdGh1YkJyYW5jaCxcbiAgICAgIHtcbiAgICAgICAgY29ubmVjdGlvbkFybjogY29kZVN0YXJBcm4sXG4gICAgICAgIGFjdGlvbk5hbWU6IGNvZGVTdGFyU291cmNlQWN0aW9uTmFtZSxcbiAgICAgICAgdHJpZ2dlck9uUHVzaDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMucGlwZWxpbmUgPSBuZXcgUGlwZWxpbmUodGhpcywgXCJEZXBsb3ltZW50Q29kZVBpcGVsaW5lXCIsIHtcbiAgICAgIHBpcGVsaW5lVHlwZTogUGlwZWxpbmVUeXBlLlYyLFxuICAgICAgcGlwZWxpbmVOYW1lOiBwcm9wcy5waXBlbGluZU5hbWUsXG4gICAgICBjcm9zc0FjY291bnRLZXlzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLmZpbGVQYXRocykge1xuICAgICAgLy8gQWRkIGV2ZW50IGZpbHRlciB0byBvbmx5IHRyaWdnZXIgaWYgdGhlIHB1c2ggZXZlbnQgaXMgZnJvbSBgZGVwbG95YCBkaXJlY3RvcnlcbiAgICAgIGNvbnN0IGNmblBpcGVsaW5lID0gdGhpcy5waXBlbGluZS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBDZm5QaXBlbGluZTtcbiAgICAgIGNmblBpcGVsaW5lLmFkZFByb3BlcnR5T3ZlcnJpZGUoXCJUcmlnZ2Vyc1wiLCBbXG4gICAgICAgIHtcbiAgICAgICAgICBHaXRDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICBQdXNoOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBCcmFuY2hlczoge1xuICAgICAgICAgICAgICAgICAgSW5jbHVkZXM6IFtwcm9wcy5naXRodWJCcmFuY2hdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgRmlsZVBhdGhzOiB7XG4gICAgICAgICAgICAgICAgICBJbmNsdWRlczogcHJvcHMuZmlsZVBhdGhzLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgU291cmNlQWN0aW9uTmFtZTogY29kZVN0YXJTb3VyY2VBY3Rpb25OYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgUHJvdmlkZXJUeXBlOiBcIkNvZGVTdGFyU291cmNlQ29ubmVjdGlvblwiLFxuICAgICAgICB9LFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBzeW50aEJ1aWxkU3BlYyA9IERFRkFVTFRfU1lOVEhfU1RFUF9QQVJUSUFMX0JVSUxEX1NQRUMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNka1BpcGVsaW5lID0gbmV3IENvZGVQaXBlbGluZSh0aGlzLCBcIkNES0NvZGVQaXBlbGluZVwiLCB7XG4gICAgICBjb2RlUGlwZWxpbmU6IHRoaXMucGlwZWxpbmUsXG4gICAgICBzeW50aDogbmV3IENvZGVCdWlsZFN0ZXAoXCJDZGtTeW50aFwiLCB7XG4gICAgICAgIGluc3RhbGxDb21tYW5kczogW1xuICAgICAgICAgIFwibm9kZSAtdlwiLFxuICAgICAgICAgIFwibnBtIGluc3RhbGwgLS1nbG9iYWwgY29yZXBhY2tAbGF0ZXN0XCIsXG4gICAgICAgICAgXCJjb3JlcGFjayAtLXZlcnNpb25cIixcbiAgICAgICAgICBcImNvcmVwYWNrIGVuYWJsZVwiLFxuICAgICAgICBdLFxuICAgICAgICBjb21tYW5kczogcHJvcHMuY2RrU3ludGhDbWQsXG4gICAgICAgIGlucHV0OiBzb3VyY2VGaWxlLFxuICAgICAgICBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5OiBwcm9wcy5jZGtPdXQgfHwgXCJjZGsub3V0XCIsXG4gICAgICAgIHBhcnRpYWxCdWlsZFNwZWM6IEJ1aWxkU3BlYy5mcm9tT2JqZWN0KHN5bnRoQnVpbGRTcGVjKSxcbiAgICAgIH0pLFxuICAgICAgc2VsZk11dGF0aW9uOiB0cnVlLFxuICAgICAgY29kZUJ1aWxkRGVmYXVsdHM6IHtcbiAgICAgICAgYnVpbGRFbnZpcm9ubWVudDoge1xuICAgICAgICAgIGNvbXB1dGVUeXBlOiBDb21wdXRlVHlwZS5MQVJHRSxcbiAgICAgICAgICBidWlsZEltYWdlOiBMaW51eEFybUJ1aWxkSW1hZ2UuQU1BWk9OX0xJTlVYXzJfU1RBTkRBUkRfM18wLFxuICAgICAgICAgIGVudmlyb25tZW50VmFyaWFibGVzOiB7XG4gICAgICAgICAgICBOT0RFX09QVElPTlM6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IFwiLS1tYXgtb2xkLXNwYWNlLXNpemU9ODE5MlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlZmF1bHRTdGFnZUVudjogU3RhZ2VFbnZQcm9wcyA9IHtcbiAgICAgIGJldGE6IEJFVEFfRU5WSVJPTk1FTlQsXG4gICAgICBnYW1tYTogR0FNTUFfRU5WSVJPTk1FTlQsXG4gICAgICBwcm9kOiBQUk9EX0VOVklST05NRU5ULFxuICAgIH07XG4gICAgY29uc3Qgc3RhZ2VFbnYgPSBwcm9wcy5zdGFnZUVudiB8fCBkZWZhdWx0U3RhZ2VFbnY7XG5cbiAgICBjZGtQaXBlbGluZS5hZGRTdGFnZShcbiAgICAgIG5ldyBEZXBsb3ltZW50U3RhZ2UoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiT3JjYUJ1c0JldGFcIixcbiAgICAgICAgc3RhZ2VFbnYuYmV0YSxcbiAgICAgICAgcHJvcHMuc3RhY2tOYW1lLFxuICAgICAgICBwcm9wcy5zdGFjayxcbiAgICAgICAgcHJvcHMuc3RhY2tDb25maWcuYmV0YSxcbiAgICAgICAgcHJvcHMuZ2l0aHViUmVwbyxcbiAgICAgICAgcHJvcHMuZ2l0aHViQnJhbmNoLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgY2RrUGlwZWxpbmUuYWRkU3RhZ2UoXG4gICAgICBuZXcgRGVwbG95bWVudFN0YWdlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIk9yY2FCdXNHYW1tYVwiLFxuICAgICAgICBzdGFnZUVudi5nYW1tYSxcbiAgICAgICAgcHJvcHMuc3RhY2tOYW1lLFxuICAgICAgICBwcm9wcy5zdGFjayxcbiAgICAgICAgcHJvcHMuc3RhY2tDb25maWcuZ2FtbWEsXG4gICAgICAgIHByb3BzLmdpdGh1YlJlcG8sXG4gICAgICAgIHByb3BzLmdpdGh1YkJyYW5jaCxcbiAgICAgICksXG4gICAgICB7IHBvc3Q6IFtuZXcgTWFudWFsQXBwcm92YWxTdGVwKFwiUHJvbW90ZVRvUHJvZFwiKV0gfSxcbiAgICApO1xuXG4gICAgY2RrUGlwZWxpbmUuYWRkU3RhZ2UoXG4gICAgICBuZXcgRGVwbG95bWVudFN0YWdlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIk9yY2FCdXNQcm9kXCIsXG4gICAgICAgIHN0YWdlRW52LnByb2QsXG4gICAgICAgIHByb3BzLnN0YWNrTmFtZSxcbiAgICAgICAgcHJvcHMuc3RhY2ssXG4gICAgICAgIHByb3BzLnN0YWNrQ29uZmlnLnByb2QsXG4gICAgICAgIHByb3BzLmdpdGh1YlJlcG8sXG4gICAgICAgIHByb3BzLmdpdGh1YkJyYW5jaCxcbiAgICAgICksXG4gICAgKTtcblxuICAgIGlmIChwcm9wcy5lbmFibGVTbGFja05vdGlmaWNhdGlvbiA/PyB0cnVlKSB7XG4gICAgICBjb25zdCBhbGVydHNCdWlsZFNsYWNrQ29uZmlnQXJuID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRm9yU3RyaW5nUGFyYW1ldGVyKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIi9jaGF0Ym90X2Fybi9zbGFjay9hbGVydHMtYnVpbGRcIixcbiAgICAgICk7XG4gICAgICBjb25zdCB0YXJnZXQgPSBTbGFja0NoYW5uZWxDb25maWd1cmF0aW9uLmZyb21TbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIlNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgYWxlcnRzQnVpbGRTbGFja0NvbmZpZ0FybixcbiAgICAgICk7XG5cbiAgICAgIHRoaXMucGlwZWxpbmUubm90aWZ5T24oXCJQaXBlbGluZVNsYWNrTm90aWZpY2F0aW9uXCIsIHRhcmdldCwge1xuICAgICAgICBldmVudHM6IHByb3BzLm5vdGlmaWNhdGlvbkV2ZW50cyB8fCBbXG4gICAgICAgICAgUGlwZWxpbmVOb3RpZmljYXRpb25FdmVudHMuUElQRUxJTkVfRVhFQ1VUSU9OX0ZBSUxFRCxcbiAgICAgICAgXSxcbiAgICAgICAgZGV0YWlsVHlwZTogRGV0YWlsVHlwZS5GVUxMLFxuICAgICAgICBub3RpZmljYXRpb25SdWxlTmFtZTogYE9yY2FCdXMtJHtwcm9wcy5waXBlbGluZU5hbWV9YCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5jbGFzcyBEZXBsb3ltZW50U3RhZ2UgZXh0ZW5kcyBTdGFnZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgZW52aXJvbm1lbnROYW1lOiBzdHJpbmcsXG4gICAgZW52OiBFbnZpcm9ubWVudCxcbiAgICBzdGFja05hbWU6IHN0cmluZyxcbiAgICBzdGFja0NsYXNzOiBuZXcgKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBhbnkpID0+IFN0YWNrLFxuICAgIGFwcFN0YWNrUHJvcHM6IGFueSxcbiAgICBnaXRodWJSZXBvOiBzdHJpbmcsXG4gICAgZ2l0aHViQnJhbmNoPzogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgZW52aXJvbm1lbnROYW1lLCB7IGVudjogZW52IH0pO1xuXG4gICAgbGV0IHNvdXJjZSA9IGBodHRwczovL2dpdGh1Yi5jb20vT3JjYUJ1cy8ke2dpdGh1YlJlcG99YDtcbiAgICBpZiAoZ2l0aHViQnJhbmNoICE9PSB1bmRlZmluZWQgJiYgZ2l0aHViQnJhbmNoICE9PSBcIm1haW5cIikge1xuICAgICAgc291cmNlID0gYCR7c291cmNlfS90cmVlLyR7Z2l0aHViQnJhbmNofWA7XG4gICAgfVxuXG4gICAgbmV3IHN0YWNrQ2xhc3ModGhpcywgc3RhY2tOYW1lLCB7XG4gICAgICBlbnY6IGVudixcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgXCJ1bWNjci1vcmc6UHJvZHVjdFwiOiBcIk9yY2FCdXNcIixcbiAgICAgICAgXCJ1bWNjci1vcmc6Q3JlYXRvclwiOiBcIkNES1wiLFxuICAgICAgICBcInVtY2NyLW9yZzpTZXJ2aWNlXCI6IHN0YWNrTmFtZSxcbiAgICAgICAgXCJ1bWNjci1vcmc6U291cmNlXCI6IHNvdXJjZSxcbiAgICAgIH0sXG4gICAgICAuLi5hcHBTdGFja1Byb3BzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|