@rio-cloud/cdk-v2-constructs 8.0.7 → 8.1.0-alpha.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 +98 -33
- package/lib/ses/ses-observability.d.ts +6 -0
- package/lib/ses/ses-observability.js +25 -19
- package/package.json +2 -2
- package/version.json +1 -1
package/.jsii
CHANGED
|
@@ -628,6 +628,19 @@
|
|
|
628
628
|
}
|
|
629
629
|
}
|
|
630
630
|
},
|
|
631
|
+
"aws-cdk-lib.aws_awsexternalanthropic": {
|
|
632
|
+
"targets": {
|
|
633
|
+
"dotnet": {
|
|
634
|
+
"namespace": "Amazon.CDK.AWS.AWSExternalAnthropic"
|
|
635
|
+
},
|
|
636
|
+
"java": {
|
|
637
|
+
"package": "software.amazon.awscdk.services.awsexternalanthropic"
|
|
638
|
+
},
|
|
639
|
+
"python": {
|
|
640
|
+
"module": "aws_cdk.aws_awsexternalanthropic"
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
},
|
|
631
644
|
"aws-cdk-lib.aws_b2bi": {
|
|
632
645
|
"targets": {
|
|
633
646
|
"dotnet": {
|
|
@@ -4805,6 +4818,22 @@
|
|
|
4805
4818
|
}
|
|
4806
4819
|
}
|
|
4807
4820
|
},
|
|
4821
|
+
"aws-cdk-lib.interfaces.aws_awsexternalanthropic": {
|
|
4822
|
+
"targets": {
|
|
4823
|
+
"dotnet": {
|
|
4824
|
+
"namespace": "Amazon.CDK.Interfaces.AWSExternalAnthropic"
|
|
4825
|
+
},
|
|
4826
|
+
"go": {
|
|
4827
|
+
"packageName": "interfacesawsawsexternalanthropic"
|
|
4828
|
+
},
|
|
4829
|
+
"java": {
|
|
4830
|
+
"package": "software.amazon.awscdk.interfaces.awsexternalanthropic"
|
|
4831
|
+
},
|
|
4832
|
+
"python": {
|
|
4833
|
+
"module": "aws_cdk.interfaces.aws_awsexternalanthropic"
|
|
4834
|
+
}
|
|
4835
|
+
}
|
|
4836
|
+
},
|
|
4808
4837
|
"aws-cdk-lib.interfaces.aws_b2bi": {
|
|
4809
4838
|
"targets": {
|
|
4810
4839
|
"dotnet": {
|
|
@@ -9948,7 +9977,7 @@
|
|
|
9948
9977
|
"kind": "interface",
|
|
9949
9978
|
"locationInModule": {
|
|
9950
9979
|
"filename": "src/ses/ses-observability.ts",
|
|
9951
|
-
"line":
|
|
9980
|
+
"line": 53
|
|
9952
9981
|
},
|
|
9953
9982
|
"name": "BounceThresholdsProps",
|
|
9954
9983
|
"properties": [
|
|
@@ -9960,7 +9989,7 @@
|
|
|
9960
9989
|
"immutable": true,
|
|
9961
9990
|
"locationInModule": {
|
|
9962
9991
|
"filename": "src/ses/ses-observability.ts",
|
|
9963
|
-
"line":
|
|
9992
|
+
"line": 55
|
|
9964
9993
|
},
|
|
9965
9994
|
"name": "critical",
|
|
9966
9995
|
"optional": true,
|
|
@@ -9976,7 +10005,7 @@
|
|
|
9976
10005
|
"immutable": true,
|
|
9977
10006
|
"locationInModule": {
|
|
9978
10007
|
"filename": "src/ses/ses-observability.ts",
|
|
9979
|
-
"line":
|
|
10008
|
+
"line": 54
|
|
9980
10009
|
},
|
|
9981
10010
|
"name": "warning",
|
|
9982
10011
|
"optional": true,
|
|
@@ -10365,7 +10394,7 @@
|
|
|
10365
10394
|
"kind": "interface",
|
|
10366
10395
|
"locationInModule": {
|
|
10367
10396
|
"filename": "src/ses/ses-observability.ts",
|
|
10368
|
-
"line":
|
|
10397
|
+
"line": 58
|
|
10369
10398
|
},
|
|
10370
10399
|
"name": "ComplaintThresholdsProps",
|
|
10371
10400
|
"properties": [
|
|
@@ -10377,7 +10406,7 @@
|
|
|
10377
10406
|
"immutable": true,
|
|
10378
10407
|
"locationInModule": {
|
|
10379
10408
|
"filename": "src/ses/ses-observability.ts",
|
|
10380
|
-
"line":
|
|
10409
|
+
"line": 60
|
|
10381
10410
|
},
|
|
10382
10411
|
"name": "critical",
|
|
10383
10412
|
"optional": true,
|
|
@@ -10393,7 +10422,7 @@
|
|
|
10393
10422
|
"immutable": true,
|
|
10394
10423
|
"locationInModule": {
|
|
10395
10424
|
"filename": "src/ses/ses-observability.ts",
|
|
10396
|
-
"line":
|
|
10425
|
+
"line": 59
|
|
10397
10426
|
},
|
|
10398
10427
|
"name": "warning",
|
|
10399
10428
|
"optional": true,
|
|
@@ -17692,7 +17721,7 @@
|
|
|
17692
17721
|
},
|
|
17693
17722
|
"locationInModule": {
|
|
17694
17723
|
"filename": "src/ses/ses-observability.ts",
|
|
17695
|
-
"line":
|
|
17724
|
+
"line": 162
|
|
17696
17725
|
},
|
|
17697
17726
|
"parameters": [
|
|
17698
17727
|
{
|
|
@@ -17718,7 +17747,7 @@
|
|
|
17718
17747
|
"kind": "class",
|
|
17719
17748
|
"locationInModule": {
|
|
17720
17749
|
"filename": "src/ses/ses-observability.ts",
|
|
17721
|
-
"line":
|
|
17750
|
+
"line": 155
|
|
17722
17751
|
},
|
|
17723
17752
|
"name": "SesObservability",
|
|
17724
17753
|
"properties": [
|
|
@@ -17730,7 +17759,7 @@
|
|
|
17730
17759
|
"immutable": true,
|
|
17731
17760
|
"locationInModule": {
|
|
17732
17761
|
"filename": "src/ses/ses-observability.ts",
|
|
17733
|
-
"line":
|
|
17762
|
+
"line": 157
|
|
17734
17763
|
},
|
|
17735
17764
|
"name": "CONFIGURATION_SET_NAME_SSM_PARAMETER",
|
|
17736
17765
|
"static": true,
|
|
@@ -17746,7 +17775,7 @@
|
|
|
17746
17775
|
"immutable": true,
|
|
17747
17776
|
"locationInModule": {
|
|
17748
17777
|
"filename": "src/ses/ses-observability.ts",
|
|
17749
|
-
"line":
|
|
17778
|
+
"line": 158
|
|
17750
17779
|
},
|
|
17751
17780
|
"name": "SNS_TOPIC_ARN_EXPORT_NAME",
|
|
17752
17781
|
"static": true,
|
|
@@ -17761,7 +17790,7 @@
|
|
|
17761
17790
|
"immutable": true,
|
|
17762
17791
|
"locationInModule": {
|
|
17763
17792
|
"filename": "src/ses/ses-observability.ts",
|
|
17764
|
-
"line":
|
|
17793
|
+
"line": 160
|
|
17765
17794
|
},
|
|
17766
17795
|
"name": "configurationSet",
|
|
17767
17796
|
"type": {
|
|
@@ -17775,7 +17804,7 @@
|
|
|
17775
17804
|
"immutable": true,
|
|
17776
17805
|
"locationInModule": {
|
|
17777
17806
|
"filename": "src/ses/ses-observability.ts",
|
|
17778
|
-
"line":
|
|
17807
|
+
"line": 159
|
|
17779
17808
|
},
|
|
17780
17809
|
"name": "snsTopic",
|
|
17781
17810
|
"type": {
|
|
@@ -17795,7 +17824,7 @@
|
|
|
17795
17824
|
"kind": "interface",
|
|
17796
17825
|
"locationInModule": {
|
|
17797
17826
|
"filename": "src/ses/ses-observability.ts",
|
|
17798
|
-
"line":
|
|
17827
|
+
"line": 63
|
|
17799
17828
|
},
|
|
17800
17829
|
"name": "SesObservabilityProps",
|
|
17801
17830
|
"properties": [
|
|
@@ -17810,7 +17839,7 @@
|
|
|
17810
17839
|
"immutable": true,
|
|
17811
17840
|
"locationInModule": {
|
|
17812
17841
|
"filename": "src/ses/ses-observability.ts",
|
|
17813
|
-
"line":
|
|
17842
|
+
"line": 79
|
|
17814
17843
|
},
|
|
17815
17844
|
"name": "bounceThresholds",
|
|
17816
17845
|
"optional": true,
|
|
@@ -17829,7 +17858,7 @@
|
|
|
17829
17858
|
"immutable": true,
|
|
17830
17859
|
"locationInModule": {
|
|
17831
17860
|
"filename": "src/ses/ses-observability.ts",
|
|
17832
|
-
"line":
|
|
17861
|
+
"line": 89
|
|
17833
17862
|
},
|
|
17834
17863
|
"name": "complaintThresholds",
|
|
17835
17864
|
"optional": true,
|
|
@@ -17837,6 +17866,24 @@
|
|
|
17837
17866
|
"fqn": "@rio-cloud/cdk-v2-constructs.ses.ComplaintThresholdsProps"
|
|
17838
17867
|
}
|
|
17839
17868
|
},
|
|
17869
|
+
{
|
|
17870
|
+
"abstract": true,
|
|
17871
|
+
"docs": {
|
|
17872
|
+
"default": "false",
|
|
17873
|
+
"stability": "stable",
|
|
17874
|
+
"summary": "Enable this if you want the Datadog monitors to create cases in Datadog when an alert is triggered."
|
|
17875
|
+
},
|
|
17876
|
+
"immutable": true,
|
|
17877
|
+
"locationInModule": {
|
|
17878
|
+
"filename": "src/ses/ses-observability.ts",
|
|
17879
|
+
"line": 96
|
|
17880
|
+
},
|
|
17881
|
+
"name": "createCasesFromMonitors",
|
|
17882
|
+
"optional": true,
|
|
17883
|
+
"type": {
|
|
17884
|
+
"primitive": "boolean"
|
|
17885
|
+
}
|
|
17886
|
+
},
|
|
17840
17887
|
{
|
|
17841
17888
|
"abstract": true,
|
|
17842
17889
|
"docs": {
|
|
@@ -17847,7 +17894,7 @@
|
|
|
17847
17894
|
"immutable": true,
|
|
17848
17895
|
"locationInModule": {
|
|
17849
17896
|
"filename": "src/ses/ses-observability.ts",
|
|
17850
|
-
"line":
|
|
17897
|
+
"line": 69
|
|
17851
17898
|
},
|
|
17852
17899
|
"name": "loggedSesEvents",
|
|
17853
17900
|
"optional": true,
|
|
@@ -27528,7 +27575,7 @@
|
|
|
27528
27575
|
"kind": "interface",
|
|
27529
27576
|
"locationInModule": {
|
|
27530
27577
|
"filename": "src/ses/ses-observability.ts",
|
|
27531
|
-
"line":
|
|
27578
|
+
"line": 53
|
|
27532
27579
|
},
|
|
27533
27580
|
"name": "BounceThresholdsProps",
|
|
27534
27581
|
"namespace": "ses",
|
|
@@ -27541,7 +27588,7 @@
|
|
|
27541
27588
|
"immutable": true,
|
|
27542
27589
|
"locationInModule": {
|
|
27543
27590
|
"filename": "src/ses/ses-observability.ts",
|
|
27544
|
-
"line":
|
|
27591
|
+
"line": 55
|
|
27545
27592
|
},
|
|
27546
27593
|
"name": "critical",
|
|
27547
27594
|
"optional": true,
|
|
@@ -27557,7 +27604,7 @@
|
|
|
27557
27604
|
"immutable": true,
|
|
27558
27605
|
"locationInModule": {
|
|
27559
27606
|
"filename": "src/ses/ses-observability.ts",
|
|
27560
|
-
"line":
|
|
27607
|
+
"line": 54
|
|
27561
27608
|
},
|
|
27562
27609
|
"name": "warning",
|
|
27563
27610
|
"optional": true,
|
|
@@ -27578,7 +27625,7 @@
|
|
|
27578
27625
|
"kind": "interface",
|
|
27579
27626
|
"locationInModule": {
|
|
27580
27627
|
"filename": "src/ses/ses-observability.ts",
|
|
27581
|
-
"line":
|
|
27628
|
+
"line": 58
|
|
27582
27629
|
},
|
|
27583
27630
|
"name": "ComplaintThresholdsProps",
|
|
27584
27631
|
"namespace": "ses",
|
|
@@ -27591,7 +27638,7 @@
|
|
|
27591
27638
|
"immutable": true,
|
|
27592
27639
|
"locationInModule": {
|
|
27593
27640
|
"filename": "src/ses/ses-observability.ts",
|
|
27594
|
-
"line":
|
|
27641
|
+
"line": 60
|
|
27595
27642
|
},
|
|
27596
27643
|
"name": "critical",
|
|
27597
27644
|
"optional": true,
|
|
@@ -27607,7 +27654,7 @@
|
|
|
27607
27654
|
"immutable": true,
|
|
27608
27655
|
"locationInModule": {
|
|
27609
27656
|
"filename": "src/ses/ses-observability.ts",
|
|
27610
|
-
"line":
|
|
27657
|
+
"line": 59
|
|
27611
27658
|
},
|
|
27612
27659
|
"name": "warning",
|
|
27613
27660
|
"optional": true,
|
|
@@ -27633,7 +27680,7 @@
|
|
|
27633
27680
|
},
|
|
27634
27681
|
"locationInModule": {
|
|
27635
27682
|
"filename": "src/ses/ses-observability.ts",
|
|
27636
|
-
"line":
|
|
27683
|
+
"line": 162
|
|
27637
27684
|
},
|
|
27638
27685
|
"parameters": [
|
|
27639
27686
|
{
|
|
@@ -27659,7 +27706,7 @@
|
|
|
27659
27706
|
"kind": "class",
|
|
27660
27707
|
"locationInModule": {
|
|
27661
27708
|
"filename": "src/ses/ses-observability.ts",
|
|
27662
|
-
"line":
|
|
27709
|
+
"line": 155
|
|
27663
27710
|
},
|
|
27664
27711
|
"name": "SesObservability",
|
|
27665
27712
|
"namespace": "ses",
|
|
@@ -27672,7 +27719,7 @@
|
|
|
27672
27719
|
"immutable": true,
|
|
27673
27720
|
"locationInModule": {
|
|
27674
27721
|
"filename": "src/ses/ses-observability.ts",
|
|
27675
|
-
"line":
|
|
27722
|
+
"line": 157
|
|
27676
27723
|
},
|
|
27677
27724
|
"name": "CONFIGURATION_SET_NAME_SSM_PARAMETER",
|
|
27678
27725
|
"static": true,
|
|
@@ -27688,7 +27735,7 @@
|
|
|
27688
27735
|
"immutable": true,
|
|
27689
27736
|
"locationInModule": {
|
|
27690
27737
|
"filename": "src/ses/ses-observability.ts",
|
|
27691
|
-
"line":
|
|
27738
|
+
"line": 158
|
|
27692
27739
|
},
|
|
27693
27740
|
"name": "SNS_TOPIC_ARN_EXPORT_NAME",
|
|
27694
27741
|
"static": true,
|
|
@@ -27703,7 +27750,7 @@
|
|
|
27703
27750
|
"immutable": true,
|
|
27704
27751
|
"locationInModule": {
|
|
27705
27752
|
"filename": "src/ses/ses-observability.ts",
|
|
27706
|
-
"line":
|
|
27753
|
+
"line": 160
|
|
27707
27754
|
},
|
|
27708
27755
|
"name": "configurationSet",
|
|
27709
27756
|
"type": {
|
|
@@ -27717,7 +27764,7 @@
|
|
|
27717
27764
|
"immutable": true,
|
|
27718
27765
|
"locationInModule": {
|
|
27719
27766
|
"filename": "src/ses/ses-observability.ts",
|
|
27720
|
-
"line":
|
|
27767
|
+
"line": 159
|
|
27721
27768
|
},
|
|
27722
27769
|
"name": "snsTopic",
|
|
27723
27770
|
"type": {
|
|
@@ -27737,7 +27784,7 @@
|
|
|
27737
27784
|
"kind": "interface",
|
|
27738
27785
|
"locationInModule": {
|
|
27739
27786
|
"filename": "src/ses/ses-observability.ts",
|
|
27740
|
-
"line":
|
|
27787
|
+
"line": 63
|
|
27741
27788
|
},
|
|
27742
27789
|
"name": "SesObservabilityProps",
|
|
27743
27790
|
"namespace": "ses",
|
|
@@ -27753,7 +27800,7 @@
|
|
|
27753
27800
|
"immutable": true,
|
|
27754
27801
|
"locationInModule": {
|
|
27755
27802
|
"filename": "src/ses/ses-observability.ts",
|
|
27756
|
-
"line":
|
|
27803
|
+
"line": 79
|
|
27757
27804
|
},
|
|
27758
27805
|
"name": "bounceThresholds",
|
|
27759
27806
|
"optional": true,
|
|
@@ -27772,7 +27819,7 @@
|
|
|
27772
27819
|
"immutable": true,
|
|
27773
27820
|
"locationInModule": {
|
|
27774
27821
|
"filename": "src/ses/ses-observability.ts",
|
|
27775
|
-
"line":
|
|
27822
|
+
"line": 89
|
|
27776
27823
|
},
|
|
27777
27824
|
"name": "complaintThresholds",
|
|
27778
27825
|
"optional": true,
|
|
@@ -27780,6 +27827,24 @@
|
|
|
27780
27827
|
"fqn": "@rio-cloud/cdk-v2-constructs.ses.ComplaintThresholdsProps"
|
|
27781
27828
|
}
|
|
27782
27829
|
},
|
|
27830
|
+
{
|
|
27831
|
+
"abstract": true,
|
|
27832
|
+
"docs": {
|
|
27833
|
+
"default": "false",
|
|
27834
|
+
"stability": "stable",
|
|
27835
|
+
"summary": "Enable this if you want the Datadog monitors to create cases in Datadog when an alert is triggered."
|
|
27836
|
+
},
|
|
27837
|
+
"immutable": true,
|
|
27838
|
+
"locationInModule": {
|
|
27839
|
+
"filename": "src/ses/ses-observability.ts",
|
|
27840
|
+
"line": 96
|
|
27841
|
+
},
|
|
27842
|
+
"name": "createCasesFromMonitors",
|
|
27843
|
+
"optional": true,
|
|
27844
|
+
"type": {
|
|
27845
|
+
"primitive": "boolean"
|
|
27846
|
+
}
|
|
27847
|
+
},
|
|
27783
27848
|
{
|
|
27784
27849
|
"abstract": true,
|
|
27785
27850
|
"docs": {
|
|
@@ -27790,7 +27855,7 @@
|
|
|
27790
27855
|
"immutable": true,
|
|
27791
27856
|
"locationInModule": {
|
|
27792
27857
|
"filename": "src/ses/ses-observability.ts",
|
|
27793
|
-
"line":
|
|
27858
|
+
"line": 69
|
|
27794
27859
|
},
|
|
27795
27860
|
"name": "loggedSesEvents",
|
|
27796
27861
|
"optional": true,
|
|
@@ -28197,5 +28262,5 @@
|
|
|
28197
28262
|
}
|
|
28198
28263
|
},
|
|
28199
28264
|
"version": "0.0.0",
|
|
28200
|
-
"fingerprint": "
|
|
28265
|
+
"fingerprint": "xvRCLIZ8NZMOINgQ2tvjkAPLC8hXDMh6iy7c7RIYd7k="
|
|
28201
28266
|
}
|
|
@@ -34,6 +34,12 @@ export interface SesObservabilityProps {
|
|
|
34
34
|
* @default { critical: 0.001, warning: 0.0008 }
|
|
35
35
|
*/
|
|
36
36
|
readonly complaintThresholds?: ComplaintThresholdsProps;
|
|
37
|
+
/**
|
|
38
|
+
* Enable this if you want the Datadog monitors to create cases in Datadog when an alert is triggered.
|
|
39
|
+
*
|
|
40
|
+
* @defaultValue false
|
|
41
|
+
*/
|
|
42
|
+
readonly createCasesFromMonitors?: boolean;
|
|
37
43
|
}
|
|
38
44
|
/**
|
|
39
45
|
* RioSesObservability
|
|
@@ -25,6 +25,25 @@ const COMPLAINT_THRESHOLDS_DEFAULT = {
|
|
|
25
25
|
critical: 0.001,
|
|
26
26
|
warning: 0.0008,
|
|
27
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* Sends a Slack notification for monitor alerts and recovery (no notification for monitor warnings).
|
|
30
|
+
* Also creates a Datadog case when createCase is set to true.
|
|
31
|
+
*/
|
|
32
|
+
class SesMonitorNotification {
|
|
33
|
+
constructor(createCase) {
|
|
34
|
+
this.createCase = createCase;
|
|
35
|
+
}
|
|
36
|
+
generateMessageAnnotation(monitor) {
|
|
37
|
+
const slackHandle = new datadogv2_1.DefaultSlackNotification().generateMessageAnnotation(monitor);
|
|
38
|
+
const caseHandle = this.createCase
|
|
39
|
+
? new datadogv2_1.DatadogCaseNotification().generateMessageAnnotation(monitor)
|
|
40
|
+
: '';
|
|
41
|
+
return (0, helper_1.trimIndent) `
|
|
42
|
+
{{#is_alert}}${slackHandle}${caseHandle}{{/is_alert}}
|
|
43
|
+
{{#is_alert_recovery}}${slackHandle}{{/is_alert_recovery}}
|
|
44
|
+
`;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
28
47
|
/**
|
|
29
48
|
* RioSesObservability
|
|
30
49
|
*
|
|
@@ -124,7 +143,7 @@ class SesObservability extends constructs_1.Construct {
|
|
|
124
143
|
value: this.snsTopic.topicArn,
|
|
125
144
|
exportName: SesObservability.SNS_TOPIC_ARN_EXPORT_NAME,
|
|
126
145
|
});
|
|
127
|
-
const
|
|
146
|
+
const monitorNotification = new SesMonitorNotification(props.createCasesFromMonitors ?? false);
|
|
128
147
|
new datadogv2_1.DatadogMonitor(this, 'QuotaMonitor', {
|
|
129
148
|
name: `${accountName} SES quota almost reached`,
|
|
130
149
|
serviceName: 'aws-ses',
|
|
@@ -134,9 +153,6 @@ class SesObservability extends constructs_1.Construct {
|
|
|
134
153
|
You are almost using up you're maximum email sending quota per 24h.
|
|
135
154
|
Either [request an increase](https://docs.aws.amazon.com/ses/latest/dg/manage-sending-quotas-request-increase.html) for your quota by AWS or reduce the amount of emails sent.
|
|
136
155
|
You can find logs about all mails sent at \`${logFunction.logGroup.logGroupName}\`.
|
|
137
|
-
|
|
138
|
-
{{#is_alert}}@slack-${notificationHandle}{{/is_alert}}
|
|
139
|
-
{{#is_alert_recovery}}@slack-${notificationHandle}{{/is_alert_recovery}}
|
|
140
156
|
`,
|
|
141
157
|
priority: 4,
|
|
142
158
|
optionOverrides: {
|
|
@@ -146,7 +162,7 @@ class SesObservability extends constructs_1.Construct {
|
|
|
146
162
|
},
|
|
147
163
|
evaluationDelay: 900,
|
|
148
164
|
},
|
|
149
|
-
notification:
|
|
165
|
+
notification: monitorNotification,
|
|
150
166
|
});
|
|
151
167
|
new datadogv2_1.DatadogMonitor(this, 'EmailRejectedMonitor', {
|
|
152
168
|
name: `${accountName} SES Email Rejected`,
|
|
@@ -157,8 +173,6 @@ class SesObservability extends constructs_1.Construct {
|
|
|
157
173
|
SES [rejected](https://docs.aws.amazon.com/ses/latest/dg/monitor-sending-activity.html) sending at least one email.
|
|
158
174
|
Please investigate the root case, as this is not expected to happen in production ever.
|
|
159
175
|
You can find logs about all mails sent at \`${logFunction.logGroup.logGroupName}\`.
|
|
160
|
-
|
|
161
|
-
{{#is_alert}}@slack-${notificationHandle}{{/is_alert}}
|
|
162
176
|
`,
|
|
163
177
|
priority: 3,
|
|
164
178
|
optionOverrides: {
|
|
@@ -167,7 +181,7 @@ class SesObservability extends constructs_1.Construct {
|
|
|
167
181
|
},
|
|
168
182
|
evaluationDelay: 900,
|
|
169
183
|
},
|
|
170
|
-
notification:
|
|
184
|
+
notification: monitorNotification,
|
|
171
185
|
});
|
|
172
186
|
const complaintThresholds = {
|
|
173
187
|
warning: props.complaintThresholds?.warning ?? COMPLAINT_THRESHOLDS_DEFAULT.warning,
|
|
@@ -185,17 +199,13 @@ class SesObservability extends constructs_1.Construct {
|
|
|
185
199
|
If this metric reaches \`0.5%\` the email sending capability of your account will be disabled by AWS.
|
|
186
200
|
You can find logs about all mails sent at \`${logFunction.logGroup.logGroupName}\`.
|
|
187
201
|
See [ADR - SES domain reputation observability](https://confluence.collaboration-man.com/display/MAN/ADR+-+SES+domain+reputation+observability).
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
{{#is_alert}}@slack-${notificationHandle}{{/is_alert}}
|
|
191
|
-
{{#is_alert_recovery}}@slack-${notificationHandle}{{/is_alert_recovery}}
|
|
192
202
|
`,
|
|
193
203
|
priority: 2,
|
|
194
204
|
optionOverrides: {
|
|
195
205
|
thresholds: complaintThresholds,
|
|
196
206
|
evaluationDelay: 900,
|
|
197
207
|
},
|
|
198
|
-
notification:
|
|
208
|
+
notification: monitorNotification,
|
|
199
209
|
});
|
|
200
210
|
const bounceThresholds = {
|
|
201
211
|
warning: props.bounceThresholds?.warning ?? BOUNCE_THRESHOLDS_DEFAULT.warning,
|
|
@@ -213,17 +223,13 @@ class SesObservability extends constructs_1.Construct {
|
|
|
213
223
|
If this metric reaches \`10%\` the email sending capability of your account will be disabled by AWS.
|
|
214
224
|
You can find logs about all mails sent at \`${logFunction.logGroup.logGroupName}\`.
|
|
215
225
|
See [ADR - SES domain reputation observability](https://confluence.collaboration-man.com/display/MAN/ADR+-+SES+domain+reputation+observability).
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
{{#is_alert}}@slack-${notificationHandle}{{/is_alert}}
|
|
219
|
-
{{#is_alert_recovery}}@slack-${notificationHandle}{{/is_alert_recovery}}
|
|
220
226
|
`,
|
|
221
227
|
priority: 2,
|
|
222
228
|
optionOverrides: {
|
|
223
229
|
thresholds: bounceThresholds,
|
|
224
230
|
evaluationDelay: 900,
|
|
225
231
|
},
|
|
226
|
-
notification:
|
|
232
|
+
notification: monitorNotification,
|
|
227
233
|
});
|
|
228
234
|
}
|
|
229
235
|
/**
|
|
@@ -253,4 +259,4 @@ SesObservability[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.SesObservability", v
|
|
|
253
259
|
// ! changing these values is a breaking change for users
|
|
254
260
|
SesObservability.CONFIGURATION_SET_NAME_SSM_PARAMETER = '/rio/config/ses-observability/configuration-set-name';
|
|
255
261
|
SesObservability.SNS_TOPIC_ARN_EXPORT_NAME = 'RioSesObservabilityTopicArn';
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VzLW9ic2VydmFiaWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VzL3Nlcy1vYnNlcnZhYmlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDZDQUFvQztBQUNwQyxpREFBaUQ7QUFFakQsbURBQTRFO0FBQzVFLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFDM0Msc0VBQXNFO0FBQ3RFLDJDQUEyQztBQUMzQyx3Q0FBd0M7QUFDeEMsMkNBQXVDO0FBQ3ZDLHFDQUFzQztBQUN0Qyw0Q0FBb0Q7QUFDcEQsNENBQTRGO0FBQzVGLDBEQUFxRDtBQUVyRCxNQUFNLHlCQUF5QixHQUFHO0lBQ2hDLFFBQVEsRUFBRSxJQUFJO0lBQ2QsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUYsTUFBTSw0QkFBNEIsR0FBRztJQUNuQyxRQUFRLEVBQUUsS0FBSztJQUNmLE9BQU8sRUFBRSxNQUFNO0NBQ2hCLENBQUM7QUF5Q0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1REc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHNCQUFTO0lBTzdDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNEI7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLFNBQVMsR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDekMsTUFBTSxXQUFXLEdBQUcsaUNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFFN0UsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRTtZQUN0RSxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsb0NBQW9DO1lBQ3BFLFdBQVcsRUFBRSx5Q0FBeUM7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QUM7Z0JBQzVCLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNsQyxJQUFJLElBQUksWUFBWSxnQ0FBcUIsRUFBRSxDQUFDO3dCQUMxQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO3dCQUN2QyxJQUFJLFlBQVksS0FBSyxXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDOzRCQUN2RCxNQUFNLENBQUMsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7d0JBQzFGLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF2TEgsNENBd0xDOzs7QUF2TEMseURBQXlEO0FBQ3pDLHFEQUFvQyxHQUFHLHNEQUFzRCxDQUFDO0FBQzlGLDBDQUF5QixHQUFHLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgTm9kZWpzRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqcyc7XG5pbXBvcnQgeyBDZm5TdWJzY3JpcHRpb25GaWx0ZXIsIFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBzZXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlcyc7XG5pbXBvcnQgKiBhcyBzbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5pbXBvcnQgKiBhcyBzbnNTdWJzY3JpcHRpb25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMtc3Vic2NyaXB0aW9ucyc7XG5pbXBvcnQgKiBhcyBzc20gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IHRyaW1JbmRlbnQgfSBmcm9tICcuL2hlbHBlcic7XG5pbXBvcnQgeyBERUZBVUxUX05PREVfUlVOVElNRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBEYXRhZG9nTW9uaXRvciwgRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZSwgTm9Ob3RpZmljYXRpb24gfSBmcm9tICcuLi9kYXRhZG9ndjInO1xuaW1wb3J0IHsgUmlvTGFuZGluZ1pvbmUgfSBmcm9tICcuLi9yaW8tbGFuZGluZy16b25lJztcblxuY29uc3QgQk9VTkNFX1RIUkVTSE9MRFNfREVGQVVMVCA9IHtcbiAgY3JpdGljYWw6IDAuMDUsXG4gIHdhcm5pbmc6IDAuMDQsXG59O1xuXG5jb25zdCBDT01QTEFJTlRfVEhSRVNIT0xEU19ERUZBVUxUID0ge1xuICBjcml0aWNhbDogMC4wMDEsXG4gIHdhcm5pbmc6IDAuMDAwOCxcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm91bmNlVGhyZXNob2xkc1Byb3BzIHtcbiAgcmVhZG9ubHkgd2FybmluZz86IG51bWJlcjtcbiAgcmVhZG9ubHkgY3JpdGljYWw/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxhaW50VGhyZXNob2xkc1Byb3BzIHtcbiAgcmVhZG9ubHkgd2FybmluZz86IG51bWJlcjtcbiAgcmVhZG9ubHkgY3JpdGljYWw/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VzT2JzZXJ2YWJpbGl0eVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBTRVMgZXZlbnRzIHRvIGxvZy5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBbRW1haWxTZW5kaW5nRXZlbnQuREVMSVZFUlksIEVtYWlsU2VuZGluZ0V2ZW50LkJPVU5DRSwgRW1haWxTZW5kaW5nRXZlbnQuQ09NUExBSU5ULCBFbWFpbFNlbmRpbmdFdmVudC5SRUpFQ1RdXG4gICAqL1xuICByZWFkb25seSBsb2dnZWRTZXNFdmVudHM/OiBzZXMuRW1haWxTZW5kaW5nRXZlbnRbXTtcblxuICAvKipcbiAgICogVGhlIFRocmVzaG9sZHMgZm9yIGJvdW5jZSByYXRlIE1vbml0b3JzLlxuICAgKlxuICAgKiBUaGUgZGVmYXVsdCBzaG91bGQgb25seSBiZSBvdmVyd3JpdHRlbiwgaWYgdGhlcmUgaXMgcmVhbGx5IG5vIHBvc3NpYmlsaXR5IHRvIHJlZHVjZSB0aGUgYm91bmNlIHJhdGUgbWVhbmluZ2Z1bGx5LlxuICAgKiBJZiB0aGlzIG1ldHJpYyByZWFjaGVzIGAxMCVgIHRoZSBlbWFpbCBzZW5kaW5nIGNhcGFiaWxpdHkgb2YgeW91ciBhY2NvdW50IHdpbGwgYmUgZGlzYWJsZWQgYnkgQVdTLlxuICAgKlxuICAgKiBAZGVmYXVsdCB7IGNyaXRpY2FsOiAwLjA1LCB3YXJuaW5nOiAwLjA0IH1cbiAgICovXG4gIHJlYWRvbmx5IGJvdW5jZVRocmVzaG9sZHM/OiBCb3VuY2VUaHJlc2hvbGRzUHJvcHM7XG5cbiAgLyoqXG4gICAqIFRoZSBUaHJlc2hvbGRzIGZvciBib3VuY2UgcmF0ZSBNb25pdG9ycy5cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgc2hvdWxkIG9ubHkgYmUgb3ZlcndyaXR0ZW4sIGlmIHRoZXJlIGlzIHJlYWxseSBubyBwb3NzaWJpbGl0eSB0byByZWR1Y2UgdGhlIGJvdW5jZSBjb21wbGFpbnQgbWVhbmluZ2Z1bGx5LlxuICAgKiBJZiB0aGlzIG1ldHJpYyByZWFjaGVzIGAwLjUlYCB0aGUgZW1haWwgc2VuZGluZyBjYXBhYmlsaXR5IG9mIHlvdXIgYWNjb3VudCB3aWxsIGJlIGRpc2FibGVkIGJ5IEFXUy5cbiAgICpcbiAgICogQGRlZmF1bHQgeyBjcml0aWNhbDogMC4wMDEsIHdhcm5pbmc6IDAuMDAwOCB9XG4gICAqL1xuICByZWFkb25seSBjb21wbGFpbnRUaHJlc2hvbGRzPzogQ29tcGxhaW50VGhyZXNob2xkc1Byb3BzO1xufVxuXG4vKipcbiAqIFJpb1Nlc09ic2VydmFiaWxpdHlcbiAqXG4gKiBUaGlzIGNvbnN0cnVjdCBzZXRzIHVwIG9ic2VydmFiaWxpdHkgZm9yIFNFUyBhcyBkZWZpbmVkIGJ5IFtBRFIgLSBTRVMgZG9tYWluIHJlcHV0YXRpb24gb2JzZXJ2YWJpbGl0eV0oaHR0cHM6Ly9jb25mbHVlbmNlLmNvbGxhYm9yYXRpb24tbWFuLmNvbS9kaXNwbGF5L01BTi9BRFIrLStTRVMrZG9tYWluK3JlcHV0YXRpb24rb2JzZXJ2YWJpbGl0eSkuXG4gKlxuICogIyBXYXJuaW5nXG4gKiBUaGlzIGNvbnN0cnVjdCByZXN1bHRzIGluIGxvZ2dpbmcgYWxsIHNlbnQgZW1haWxzIGluY2x1ZGluZyB0aGUgcmVjaXBpZW50IGFkZHJlc3MgaW50byBDbG91ZFdhdGNoIGxvZ3MuXG4gKiBBcyB0aGlzIGlzIGNvbnNpZGVyZWQgKipQSUkqKiwgdGhpcyBpbmZvcm1hdGlvbiBNVVNUIGJlIGhhbmRsZWQgYWNjb3JkaW5nbHkuXG4gKiBJbiBwYXJ0aWN1bGFyLCBsb2dzICoqTVVTVCBOT1QqKiBiZSBzZW50IHRvIGZ1cnRoZXIgdGhpcmQgcGFydHkgc2VydmljZXMgKGUuZy4gRGF0YWRvZykgYW5kIHRoZSByZXRlbnRpb24gcGVyaW9kIGZvciBsb2dzICoqTVVTVCBOT1QqKiBiZSBleHRlbmRlZC5cbiAqXG4gKiAjIFVzYWdlXG4gKiAjIyBEZWZhdWx0IENvbmZpZ3VyYXRpb24gU2V0IGZvciBJZGVudGl0eVxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJpb1Nlc09ic2VydmFiaWxpdHkgPSBuZXcgUmlvU2VzT2JzZXJ2YWJpbGl0eSh0aGlzLCAnQ29uZmlndXJhdGlvblNldCcsIHt9KVxuICogY29uc3QgaWRlbnRpdHkgPSBuZXcgRW1haWxJZGVudGl0eSh0aGlzLCAnRW1haWxJZGVudGl0eScsIHtcbiAqICAgICBpZGVudGl0eTogSWRlbnRpdHkuZG9tYWluKCdleGFtcGxlLmNvbScpLFxuICogICAgIGNvbmZpZ3VyYXRpb25TZXQ6IHJpb1Nlc09ic2VydmFiaWxpdHkuY29uZmlndXJhdGlvblNldCxcbiAqIH0pO1xuICogYGBgXG4gKlxuICogIyMgU3BlY2lmaWNhbGx5IHVzaW5nIHRoZSBjb25maWd1cmF0aW9uIHNldCBwZXIgcmVxdWVzdFxuICpcbiAqIFRoaXMgaXMgaWRlYWwgaWYgeW91IHdhbnQgdG8gdHJ5IG91dCB0aGUgY29uc3RydWN0IGZpcnN0IG9uZSBzb21lIHNwZWNpZmljIGVtYWlscyAoZS5nLiBkdXJpbmcgaW5pdGlhbCBtaWdyYXRpb24pLlxuICogVGhlIGNvbmZpZ3VyYXRpb24gc2V0IG5hbWUgaXMgZXhwb3J0ZWQgYXMgYW4gU1NNIHBhcmFtZXRlciBgL3Jpby9jb25maWcvc2VzLW9ic2VydmFiaWxpdHkvY29uZmlndXJhdGlvbi1zZXQtbmFtZWAuXG4gKiBUaHVzLCB5b3UgY2FuIGVhc2lseSBtYWtlIGl0IGF2YWlsYWJsZSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbiB5b3VyIGNvZGUuXG4gKlxuICogYGBga290bGluXG4gKiBpbXBvcnQgY29tLmFtYXpvbmF3cy5zZXJ2aWNlcy5zaW1wbGVlbWFpbC5tb2RlbC5TZW5kRW1haWxSZXF1ZXN0XG4gKlxuICogdmFsIHJlcXVlc3QgPSBTZW5kRW1haWxSZXF1ZXN0KClcbiAqICAgICAgICAgICAgICAgICAud2l0aENvbmZpZ3VyYXRpb25TZXROYW1lKFNTTV9DT05GSUdVUkFUSU9OX1NTTV9QQVJBTUVURVJfVkFMVUUpXG4gKiAgICAgICAgICAgICAgICAgLi4uXG4gKiBgYGBcbiAqXG4gKiAjIyBBdXRvbWF0ZWQgZXZlbnQgcHJvY2Vzc2luZ1xuICpcbiAqIElmIHlvdSBoYXZlIHNwZWNpZmljIG5lZWRzIGZvciB3aGljaCB5b3UnZCBsaWtlIHRvIHByb2Nlc3MgdGhlIFNOUyBldmVudHMgZGlyZWN0bHlcbiAqIChlLmcuIGF1dG9tYXRpY2FsbHkgY3JlYXRpbmcgYSBzdXBwcmVzc2lvbiBsaXN0IGZyb20gYm91bmNlcyksIHlvdSBjYW4gc3Vic2NyaWJlIHRvIHRoZSBTTlMgdG9waWMuXG4gKiBUbyBlbmFibGUgdGhpcyB0aGUgU05TIHRvcGljIEFSTiBpcyBleHBvcnRlZCB2aWEgQ2xvdWRmb3JtYXRpb24gYXMgYFJpb1Nlc09ic2VydmFiaWxpdHlUb3BpY0FybmAuXG4gKlxuICogIyBOb3Rlc1xuICogIyMgQWRkIG5lY2Vzc2FyeSBwZXJtaXNzaW9ucyBmb3IgZmFyZ2F0ZSB0YXNrIHRvIGVuYWJsZSB1c2luZyBzZXMgY29uZmlndXJhdGlvbiBzZXRcbiAqIE1ha2Ugc3VyZSB5b3UgaGF2ZSB0aGUgZm9sbG93aW5nIHBlcm1pc3Npb25zIGluIHRoZSB0YXNrIHJvbGUgb2YgdGhlIGZhcmdhdGUgdGFzaywgZS5nLjpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICAgICBzZXJ2aWNlLnRhc2tEZWZpbml0aW9uLnRhc2tSb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KFxuICogICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICogICAgICAgICBhY3Rpb25zOiBbJ3NlczpzZW5kRW1haWwnLCAnc2VzOnNlbmRSYXdFbWFpbCddLFxuICogICAgICAgICByZXNvdXJjZXM6IFtgYXJuOmF3czpzZXM6PHlvdXJfcmVnaW9uPjo8eW91cl9hY2NvdW50Pjpjb25maWd1cmF0aW9uLXNldC88eW91cl9jb25maWd1cmF0aW9uX3NldF9uYW1lPmBdLFxuICogICAgICAgfSkpO1xuICogYGBgXG4gKlxuICogIyMgV2F0Y2hmdWxcbiAqIEl0IG1pZ2h0IGJlIGhlbHBmdWwgdG8gYWRkIHdhdGNoZnVsIHRvIHlvdXIgc3RhY2sgdG9cbiAqIGdldCBub3RpZmllZCBpZiB0aGUgc2VzLWxvZ2dlciBsYW1iZGEgZmFpbHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZXNPYnNlcnZhYmlsaXR5IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLy8gISBjaGFuZ2luZyB0aGVzZSB2YWx1ZXMgaXMgYSBicmVha2luZyBjaGFuZ2UgZm9yIHVzZXJzXG4gIHN0YXRpYyByZWFkb25seSBDT05GSUdVUkFUSU9OX1NFVF9OQU1FX1NTTV9QQVJBTUVURVIgPSAnL3Jpby9jb25maWcvc2VzLW9ic2VydmFiaWxpdHkvY29uZmlndXJhdGlvbi1zZXQtbmFtZSc7XG4gIHN0YXRpYyByZWFkb25seSBTTlNfVE9QSUNfQVJOX0VYUE9SVF9OQU1FID0gJ1Jpb1Nlc09ic2VydmFiaWxpdHlUb3BpY0Fybic7XG4gIHJlYWRvbmx5IHNuc1RvcGljOiBzbnMuVG9waWM7XG4gIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb25TZXQ6IHNlcy5Db25maWd1cmF0aW9uU2V0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTZXNPYnNlcnZhYmlsaXR5UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IGFjY291bnRJZCA9IFN0YWNrLm9mKHRoaXMpLmFjY291bnQ7XG4gICAgY29uc3QgYWNjb3VudE5hbWUgPSBSaW9MYW5kaW5nWm9uZS5nZXRBY2NvdW50TmFtZVBhcmFtZXRlcih0aGlzKS5zdHJpbmdWYWx1ZTtcblxuICAgIGNvbnN0IHBhcmFtZXRlciA9IG5ldyBzc20uU3RyaW5nUGFyYW1ldGVyKHRoaXMsICdDb25maWd1cmF0aW9uU2V0TmFtZScsIHtcbiAgICAgIHBhcmFtZXRlck5hbWU6IFNlc09ic2VydmFiaWxpdHkuQ09ORklHVVJBVElPTl9TRVRfTkFNRV9TU01fUEFSQU1FVEVSLFxuICAgICAgc3RyaW5nVmFsdWU6ICdyaW8tc2VzLW9ic2VydmFiaWxpdHktY29uZmlndXJhdGlvbi1zZXQnLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zbnNUb3BpYyA9IG5ldyBzbnMuVG9waWModGhpcywgJ1Nuc1RvcGljJywge1xuICAgICAgdG9waWNOYW1lOiAncmlvLXNlcy1vYnNlcnZhYmlsaXR5LXRvcGljJyxcbiAgICB9KTtcblxuICAgIHRoaXMuY29uZmlndXJhdGlvblNldCA9IG5ldyBzZXMuQ29uZmlndXJhdGlvblNldCh0aGlzLCAnQ29uZmlndXJhdGlvblNldCcsIHtcbiAgICAgIGNvbmZpZ3VyYXRpb25TZXROYW1lOiBwYXJhbWV0ZXIuc3RyaW5nVmFsdWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25TZXQuYWRkRXZlbnREZXN0aW5hdGlvbignRXZlbnREZXN0aW5hdGlvbicsIHtcbiAgICAgIGNvbmZpZ3VyYXRpb25TZXRFdmVudERlc3RpbmF0aW9uTmFtZTogJ3Jpby1zZXMtb2JzZXJ2YWJpbGl0eS1ldmVudC1kZXN0aW5hdGlvbicsXG4gICAgICBkZXN0aW5hdGlvbjogc2VzLkV2ZW50RGVzdGluYXRpb24uc25zVG9waWModGhpcy5zbnNUb3BpYyksXG4gICAgICBldmVudHM6IHByb3BzLmxvZ2dlZFNlc0V2ZW50cyA/PyBbXG4gICAgICAgIHNlcy5FbWFpbFNlbmRpbmdFdmVudC5ERUxJVkVSWSxcbiAgICAgICAgc2VzLkVtYWlsU2VuZGluZ0V2ZW50LkJPVU5DRSxcbiAgICAgICAgc2VzLkVtYWlsU2VuZGluZ0V2ZW50LkNPTVBMQUlOVCxcbiAgICAgICAgc2VzLkVtYWlsU2VuZGluZ0V2ZW50LlJFSkVDVCxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBsb2dGdW5jdGlvbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgJ0xvZ0Z1bmN0aW9uJywge1xuICAgICAgZnVuY3Rpb25OYW1lOiAncmlvLXNlcy1vYnNlcnZhYmlsaXR5LWxvZy1mdW5jdGlvbicsXG4gICAgICBydW50aW1lOiBERUZBVUxUX05PREVfUlVOVElNRSxcbiAgICAgIGFyY2hpdGVjdHVyZTogbGFtYmRhLkFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgICBoYW5kbGVyOiAnc2VzLWxvZ2dlci5oYW5kbGVyJyxcbiAgICAgIGxvZ1JldGVudGlvbjogUmV0ZW50aW9uRGF5cy5USFJFRV9NT05USFMsXG4gICAgICBzeXN0ZW1Mb2dMZXZlbFYyOiBsYW1iZGEuU3lzdGVtTG9nTGV2ZWwuV0FSTixcbiAgICAgIGxvZ2dpbmdGb3JtYXQ6IGxhbWJkYS5Mb2dnaW5nRm9ybWF0LkpTT04sXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJ2xhbWJkYScpLCB7XG4gICAgICAgIGV4Y2x1ZGU6IFsnKi5qcycsICcqLmQudHMnXSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICAgIHRoaXMuZW5zdXJlTm9TdWJzY3JpcHRpb25GaWx0ZXJzT25MYW1iZGFzTG9nR3JvdXAobG9nRnVuY3Rpb24pO1xuXG4gICAgdGhpcy5zbnNUb3BpYy5hZGRTdWJzY3JpcHRpb24obmV3IHNuc1N1YnNjcmlwdGlvbnMuTGFtYmRhU3Vic2NyaXB0aW9uKGxvZ0Z1bmN0aW9uKSk7XG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnU25zVG9waWNBcm4nLCB7XG4gICAgICB2YWx1ZTogdGhpcy5zbnNUb3BpYy50b3BpY0FybixcbiAgICAgIGV4cG9ydE5hbWU6IFNlc09ic2VydmFiaWxpdHkuU05TX1RPUElDX0FSTl9FWFBPUlRfTkFNRSxcbiAgICB9KTtcblxuICAgIGNvbnN0IG5vdGlmaWNhdGlvbkhhbmRsZSA9IFJpb0xhbmRpbmdab25lLmdldFRlYW1BbGVydFNsYWNrQ2hhbm5lbFBhcmFtZXRlcih0aGlzKS5zdHJpbmdWYWx1ZTtcblxuICAgIG5ldyBEYXRhZG9nTW9uaXRvcih0aGlzLCAnUXVvdGFNb25pdG9yJywge1xuICAgICAgbmFtZTogYCR7YWNjb3VudE5hbWV9IFNFUyBxdW90YSBhbG1vc3QgcmVhY2hlZGAsXG4gICAgICBzZXJ2aWNlTmFtZTogJ2F3cy1zZXMnLFxuICAgICAgbW9uaXRvclR5cGU6IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuUVVFUllfQUxFUlQsXG4gICAgICBxdWVyeTogYG1heChsYXN0XzFoKTptYXg6YXdzLnNlcy5zZW50X2xhc3RfMjRfaG91cnN7YWNjb3VudF9pZDoke2FjY291bnRJZH19IC8gbWF4OmF3cy5zZXMubWF4XzI0X2hvdXJfc2VuZHthY2NvdW50X2lkOiR7YWNjb3VudElkfX0gPiAwLjhgLFxuICAgICAgbWVzc2FnZTogdHJpbUluZGVudGBcbiAgICAgICAgWW91IGFyZSBhbG1vc3QgdXNpbmcgdXAgeW91J3JlIG1heGltdW0gZW1haWwgc2VuZGluZyBxdW90YSBwZXIgMjRoLiBcbiAgICAgICAgRWl0aGVyIFtyZXF1ZXN0IGFuIGluY3JlYXNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VzL2xhdGVzdC9kZy9tYW5hZ2Utc2VuZGluZy1xdW90YXMtcmVxdWVzdC1pbmNyZWFzZS5odG1sKSBmb3IgeW91ciBxdW90YSBieSBBV1Mgb3IgcmVkdWNlIHRoZSBhbW91bnQgb2YgZW1haWxzIHNlbnQuXG4gICAgICAgIFlvdSBjYW4gZmluZCBsb2dzIGFib3V0IGFsbCBtYWlscyBzZW50IGF0IFxcYCR7bG9nRnVuY3Rpb24ubG9nR3JvdXAubG9nR3JvdXBOYW1lfVxcYC5cbiAgICAgICAgXG4gICAgICAgIHt7I2lzX2FsZXJ0fX1Ac2xhY2stJHtub3RpZmljYXRpb25IYW5kbGV9e3svaXNfYWxlcnR9fVxuICAgICAgICB7eyNpc19hbGVydF9yZWNvdmVyeX19QHNsYWNrLSR7bm90aWZpY2F0aW9uSGFuZGxlfXt7L2lzX2FsZXJ0X3JlY292ZXJ5fX1cbiAgICAgICAgYCxcbiAgICAgIHByaW9yaXR5OiA0LFxuICAgICAgb3B0aW9uT3ZlcnJpZGVzOiB7XG4gICAgICAgIHRocmVzaG9sZHM6IHtcbiAgICAgICAgICBjcml0aWNhbDogMC44LFxuICAgICAgICAgIHdhcm5pbmc6IDAuNyxcbiAgICAgICAgfSxcbiAgICAgICAgZXZhbHVhdGlvbkRlbGF5OiA5MDAsXG4gICAgICB9LFxuICAgICAgbm90aWZpY2F0aW9uOiBuZXcgTm9Ob3RpZmljYXRpb24oKSxcbiAgICB9KTtcblxuICAgIG5ldyBEYXRhZG9nTW9uaXRvcih0aGlzLCAnRW1haWxSZWplY3RlZE1vbml0b3InLCB7XG4gICAgICBuYW1lOiBgJHthY2NvdW50TmFtZX0gU0VTIEVtYWlsIFJlamVjdGVkYCxcbiAgICAgIHNlcnZpY2VOYW1lOiAnYXdzLXNlcycsXG4gICAgICBtb25pdG9yVHlwZTogRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZS5RVUVSWV9BTEVSVCxcbiAgICAgIHF1ZXJ5OiBgc3VtKGxhc3RfMWgpOm1heDphd3Muc2VzLnJlamVjdHN7YWNjb3VudF9pZDoke2FjY291bnRJZH19ID4gMGAsXG4gICAgICBtZXNzYWdlOiB0cmltSW5kZW50YFxuICAgICAgICBTRVMgW3JlamVjdGVkXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VzL2xhdGVzdC9kZy9tb25pdG9yLXNlbmRpbmctYWN0aXZpdHkuaHRtbCkgc2VuZGluZyBhdCBsZWFzdCBvbmUgZW1haWwuXG4gICAgICAgIFBsZWFzZSBpbnZlc3RpZ2F0ZSB0aGUgcm9vdCBjYXNlLCBhcyB0aGlzIGlzIG5vdCBleHBlY3RlZCB0byBoYXBwZW4gaW4gcHJvZHVjdGlvbiBldmVyLlxuICAgICAgICBZb3UgY2FuIGZpbmQgbG9ncyBhYm91dCBhbGwgbWFpbHMgc2VudCBhdCBcXGAke2xvZ0Z1bmN0aW9uLmxvZ0dyb3VwLmxvZ0dyb3VwTmFtZX1cXGAuXG4gICAgICAgIFxuICAgICAgICB7eyNpc19hbGVydH19QHNsYWNrLSR7bm90aWZpY2F0aW9uSGFuZGxlfXt7L2lzX2FsZXJ0fX1cbiAgICAgICAgYCxcbiAgICAgIHByaW9yaXR5OiAzLFxuICAgICAgb3B0aW9uT3ZlcnJpZGVzOiB7XG4gICAgICAgIHRocmVzaG9sZHM6IHtcbiAgICAgICAgICBjcml0aWNhbDogMCxcbiAgICAgICAgfSxcbiAgICAgICAgZXZhbHVhdGlvbkRlbGF5OiA5MDAsXG4gICAgICB9LFxuICAgICAgbm90aWZpY2F0aW9uOiBuZXcgTm9Ob3RpZmljYXRpb24oKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbXBsYWludFRocmVzaG9sZHMgPSB7XG4gICAgICB3YXJuaW5nOiBwcm9wcy5jb21wbGFpbnRUaHJlc2hvbGRzPy53YXJuaW5nID8/IENPTVBMQUlOVF9USFJFU0hPTERTX0RFRkFVTFQud2FybmluZyxcbiAgICAgIGNyaXRpY2FsOiBwcm9wcy5jb21wbGFpbnRUaHJlc2hvbGRzPy5jcml0aWNhbCA/PyBDT01QTEFJTlRfVEhSRVNIT0xEU19ERUZBVUxULmNyaXRpY2FsLFxuICAgIH07XG4gICAgbmV3IERhdGFkb2dNb25pdG9yKHRoaXMsICdDb21wbGFpbnRSYXRlTW9uaXRvcicsIHtcbiAgICAgIG5hbWU6IGAke2FjY291bnROYW1lfSBTRVMgcmVwdXRhdGlvbiBlbmRhbmdlcmVkOiBDb21wbGFpbnQgcmF0ZSBIaWdoYCxcbiAgICAgIHNlcnZpY2VOYW1lOiAnYXdzLXNlcycsXG4gICAgICBtb25pdG9yVHlwZTogRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZS5RVUVSWV9BTEVSVCxcbiAgICAgIHF1ZXJ5OiBgbWF4KGxhc3RfMWgpOm1heDphd3Muc2VzLnJlcHV0YXRpb25fY29tcGxhaW50X3JhdGV7YWNjb3VudF9pZDoke2FjY291bnRJZH0gYW5kIG5vdCBzZXM6Kn0gPiAke2NvbXBsYWludFRocmVzaG9sZHMuY3JpdGljYWx9YCxcbiAgICAgIG1lc3NhZ2U6IHRyaW1JbmRlbnRgXG4gICAgICAgIFdhcm5pbmcgVGhyZXNob2xkIGZvciBDb21wbGFpbnQgcmF0ZSB7eyNpc193YXJuaW5nfX1hbG1vc3Qge3svaXNfd2FybmluZ319cmVhY2hlZCAoYXMgZGVmaW5lZCBpbiBBV1MpLlxuICAgICAgICBcbiAgICAgICAgUGxlYXNlIHJlZHVjZSB0aGUgbnVtYmVyIG9mIGNvbXBsYWludHMgcmVjZWl2ZWQgZm9yIEUtbWFpbHMgc2VudCBieSB5b3VyIEFjY291bnQuXG4gICAgICAgIElmIHRoaXMgbWV0cmljIHJlYWNoZXMgXFxgMC41JVxcYCB0aGUgZW1haWwgc2VuZGluZyBjYXBhYmlsaXR5IG9mIHlvdXIgYWNjb3VudCB3aWxsIGJlIGRpc2FibGVkIGJ5IEFXUy5cbiAgICAgICAgWW91IGNhbiBmaW5kIGxvZ3MgYWJvdXQgYWxsIG1haWxzIHNlbnQgYXQgXFxgJHtsb2dGdW5jdGlvbi5sb2dHcm91cC5sb2dHcm91cE5hbWV9XFxgLlxuICAgICAgICBTZWUgW0FEUiAtIFNFUyBkb21haW4gcmVwdXRhdGlvbiBvYnNlcnZhYmlsaXR5XShodHRwczovL2NvbmZsdWVuY2UuY29sbGFib3JhdGlvbi1tYW4uY29tL2Rpc3BsYXkvTUFOL0FEUistK1NFUytkb21haW4rcmVwdXRhdGlvbitvYnNlcnZhYmlsaXR5KS5cbiAgICAgICAgXG4gICAgICAgIFxuICAgICAgICB7eyNpc19hbGVydH19QHNsYWNrLSR7bm90aWZpY2F0aW9uSGFuZGxlfXt7L2lzX2FsZXJ0fX1cbiAgICAgICAge3sjaXNfYWxlcnRfcmVjb3Zlcnl9fUBzbGFjay0ke25vdGlmaWNhdGlvbkhhbmRsZX17ey9pc19hbGVydF9yZWNvdmVyeX19XG4gICAgICAgIGAsXG4gICAgICBwcmlvcml0eTogMixcbiAgICAgIG9wdGlvbk92ZXJyaWRlczoge1xuICAgICAgICB0aHJlc2hvbGRzOiBjb21wbGFpbnRUaHJlc2hvbGRzLFxuICAgICAgICBldmFsdWF0aW9uRGVsYXk6IDkwMCxcbiAgICAgIH0sXG4gICAgICBub3RpZmljYXRpb246IG5ldyBOb05vdGlmaWNhdGlvbigpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYm91bmNlVGhyZXNob2xkcyA9IHtcbiAgICAgIHdhcm5pbmc6IHByb3BzLmJvdW5jZVRocmVzaG9sZHM/Lndhcm5pbmcgPz8gQk9VTkNFX1RIUkVTSE9MRFNfREVGQVVMVC53YXJuaW5nLFxuICAgICAgY3JpdGljYWw6IHByb3BzLmJvdW5jZVRocmVzaG9sZHM/LmNyaXRpY2FsID8/IEJPVU5DRV9USFJFU0hPTERTX0RFRkFVTFQuY3JpdGljYWwsXG4gICAgfTtcbiAgICBuZXcgRGF0YWRvZ01vbml0b3IodGhpcywgJ0JvdW5jZVJhdGVNb25pdG9yJywge1xuICAgICAgbmFtZTogYCR7YWNjb3VudE5hbWV9IFNFUyByZXB1dGF0aW9uIGVuZGFuZ2VyZWQ6IEJvdW5jZSBSYXRlIEhpZ2hgLFxuICAgICAgc2VydmljZU5hbWU6ICdhd3Mtc2VzJyxcbiAgICAgIG1vbml0b3JUeXBlOiBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlLlFVRVJZX0FMRVJULFxuICAgICAgcXVlcnk6IGBtYXgobGFzdF8xaCk6bWF4OmF3cy5zZXMucmVwdXRhdGlvbl9ib3VuY2VfcmF0ZXthY2NvdW50X2lkOiR7YWNjb3VudElkfSBhbmQgbm90IHNlczoqfSA+ICR7Ym91bmNlVGhyZXNob2xkcy5jcml0aWNhbH1gLFxuICAgICAgbWVzc2FnZTogdHJpbUluZGVudGBcbiAgICAgICAgV2FybmluZyBUaHJlc2hvbGQgZm9yIEJvdW5jZSByYXRlIHt7I2lzX3dhcm5pbmd9fWFsbW9zdCB7ey9pc193YXJuaW5nfX1yZWFjaGVkIChhcyBkZWZpbmVkIGluIEFXUykuXG4gICAgICAgIFxuICAgICAgICBQbGVhc2UgcmVkdWNlIHRoZSBudW1iZXIgb2YgYm91bmNlcyBmb3IgRS1tYWlscyBzZW50IGJ5IHlvdXIgQWNjb3VudC5cbiAgICAgICAgSWYgdGhpcyBtZXRyaWMgcmVhY2hlcyBcXGAxMCVcXGAgdGhlIGVtYWlsIHNlbmRpbmcgY2FwYWJpbGl0eSBvZiB5b3VyIGFjY291bnQgd2lsbCBiZSBkaXNhYmxlZCBieSBBV1MuXG4gICAgICAgIFlvdSBjYW4gZmluZCBsb2dzIGFib3V0IGFsbCBtYWlscyBzZW50IGF0IFxcYCR7bG9nRnVuY3Rpb24ubG9nR3JvdXAubG9nR3JvdXBOYW1lfVxcYC5cbiAgICAgICAgU2VlIFtBRFIgLSBTRVMgZG9tYWluIHJlcHV0YXRpb24gb2JzZXJ2YWJpbGl0eV0oaHR0cHM6Ly9jb25mbHVlbmNlLmNvbGxhYm9yYXRpb24tbWFuLmNvbS9kaXNwbGF5L01BTi9BRFIrLStTRVMrZG9tYWluK3JlcHV0YXRpb24rb2JzZXJ2YWJpbGl0eSkuXG4gICAgICAgIFxuICAgICAgICBcbiAgICAgICAge3sjaXNfYWxlcnR9fUBzbGFjay0ke25vdGlmaWNhdGlvbkhhbmRsZX17ey9pc19hbGVydH19XG4gICAgICAgIHt7I2lzX2FsZXJ0X3JlY292ZXJ5fX1Ac2xhY2stJHtub3RpZmljYXRpb25IYW5kbGV9e3svaXNfYWxlcnRfcmVjb3Zlcnl9fVxuICAgICAgICBgLFxuICAgICAgcHJpb3JpdHk6IDIsXG4gICAgICBvcHRpb25PdmVycmlkZXM6IHtcbiAgICAgICAgdGhyZXNob2xkczogYm91bmNlVGhyZXNob2xkcyxcbiAgICAgICAgZXZhbHVhdGlvbkRlbGF5OiA5MDAsXG4gICAgICB9LFxuICAgICAgbm90aWZpY2F0aW9uOiBuZXcgTm9Ob3RpZmljYXRpb24oKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCBubyBQSUkgaXMgbGVha2VkIHRvIERhdGFkb2cgYnkgYWRkaW5nIGEgc3Vic2NyaXB0aW9uIGZpbHRlciB0byB0aGUgbG9nIGdyb3VwIG9mIHRoZSBsYW1iZGEuXG4gICAqL1xuICBwcml2YXRlIGVuc3VyZU5vU3Vic2NyaXB0aW9uRmlsdGVyc09uTGFtYmRhc0xvZ0dyb3VwKGxvZ0Z1bmN0aW9uOiBOb2RlanNGdW5jdGlvbikge1xuICAgIGNvbnN0IHN0YWNrID0gY2RrLlN0YWNrLm9mKHRoaXMpO1xuICAgIHN0YWNrLm5vZGUuYWRkVmFsaWRhdGlvbih7XG4gICAgICB2YWxpZGF0ZTogKCkgPT4ge1xuICAgICAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIHN0YWNrLm5vZGUuZmluZEFsbCgpLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBDZm5TdWJzY3JpcHRpb25GaWx0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvZ0dyb3VwTmFtZSA9IG5vZGUubG9nR3JvdXBOYW1lO1xuICAgICAgICAgICAgaWYgKGxvZ0dyb3VwTmFtZSA9PT0gbG9nRnVuY3Rpb24ubG9nR3JvdXAubG9nR3JvdXBOYW1lKSB7XG4gICAgICAgICAgICAgIGVycm9ycy5wdXNoKCdTdWJzY3JpcHRpb24gZmlsdGVycyBhcmUgbm90IGFsbG93ZWQgc2VzLW9ic2VydmFiaWxpdHkgbGFtYmRhcyBsb2cgZ3JvdXAnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZXJyb3JzO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufSJdfQ==
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VzLW9ic2VydmFiaWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VzL3Nlcy1vYnNlcnZhYmlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDZDQUFvQztBQUNwQyxpREFBaUQ7QUFFakQsbURBQTRFO0FBQzVFLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFDM0Msc0VBQXNFO0FBQ3RFLDJDQUEyQztBQUMzQyx3Q0FBd0M7QUFDeEMsMkNBQXVDO0FBQ3ZDLHFDQUFzQztBQUN0Qyw0Q0FBb0Q7QUFDcEQsNENBTXNCO0FBQ3RCLDBEQUFxRDtBQUVyRCxNQUFNLHlCQUF5QixHQUFHO0lBQ2hDLFFBQVEsRUFBRSxJQUFJO0lBQ2QsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUYsTUFBTSw0QkFBNEIsR0FBRztJQUNuQyxRQUFRLEVBQUUsS0FBSztJQUNmLE9BQU8sRUFBRSxNQUFNO0NBQ2hCLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLHNCQUFzQjtJQUMxQixZQUE2QixVQUFtQjtRQUFuQixlQUFVLEdBQVYsVUFBVSxDQUFTO0lBQ2hELENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxPQUF1QjtRQUMvQyxNQUFNLFdBQVcsR0FBRyxJQUFJLG9DQUF3QixFQUFFLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVU7WUFDaEMsQ0FBQyxDQUFDLElBQUksbUNBQXVCLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7WUFDbEUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLE9BQU8sSUFBQSxtQkFBVSxFQUFBO21CQUNGLFdBQVcsR0FBRyxVQUFVOzRCQUNmLFdBQVc7S0FDbEMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWdERDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUUsR0FBRzthQUNyQjtZQUNELFlBQVksRUFBRSxtQkFBbUI7U0FDbEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssNENBQTRDLENBQUMsV0FBMkI7UUFDOUUsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDdkIsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7Z0JBQzVCLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNsQyxJQUFJLElBQUksWUFBWSxnQ0FBcUIsRUFBRSxDQUFDO3dCQUMxQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO3dCQUN2QyxJQUFJLFlBQVksS0FBSyxXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDOzRCQUN2RCxNQUFNLENBQUMsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7d0JBQzFGLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUExS0gsNENBMktDOzs7QUExS0MseURBQXlEO0FBQ3pDLHFEQUFvQyxHQUFHLHNEQUFzRCxDQUFDO0FBQzlGLDBDQUF5QixHQUFHLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgTm9kZWpzRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqcyc7XG5pbXBvcnQgeyBDZm5TdWJzY3JpcHRpb25GaWx0ZXIsIFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBzZXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlcyc7XG5pbXBvcnQgKiBhcyBzbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5pbXBvcnQgKiBhcyBzbnNTdWJzY3JpcHRpb25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMtc3Vic2NyaXB0aW9ucyc7XG5pbXBvcnQgKiBhcyBzc20gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IHRyaW1JbmRlbnQgfSBmcm9tICcuL2hlbHBlcic7XG5pbXBvcnQgeyBERUZBVUxUX05PREVfUlVOVElNRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBEYXRhZG9nQ2FzZU5vdGlmaWNhdGlvbixcbiAgRGF0YWRvZ01vbml0b3IsXG4gIERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUsXG4gIERlZmF1bHRTbGFja05vdGlmaWNhdGlvbixcbiAgSU5vdGlmaWNhdGlvbixcbn0gZnJvbSAnLi4vZGF0YWRvZ3YyJztcbmltcG9ydCB7IFJpb0xhbmRpbmdab25lIH0gZnJvbSAnLi4vcmlvLWxhbmRpbmctem9uZSc7XG5cbmNvbnN0IEJPVU5DRV9USFJFU0hPTERTX0RFRkFVTFQgPSB7XG4gIGNyaXRpY2FsOiAwLjA1LFxuICB3YXJuaW5nOiAwLjA0LFxufTtcblxuY29uc3QgQ09NUExBSU5UX1RIUkVTSE9MRFNfREVGQVVMVCA9IHtcbiAgY3JpdGljYWw6IDAuMDAxLFxuICB3YXJuaW5nOiAwLjAwMDgsXG59O1xuXG4vKipcbiAqIFNlbmRzIGEgU2xhY2sgbm90aWZpY2F0aW9uIGZvciBtb25pdG9yIGFsZXJ0cyBhbmQgcmVjb3ZlcnkgKG5vIG5vdGlmaWNhdGlvbiBmb3IgbW9uaXRvciB3YXJuaW5ncykuXG4gKiBBbHNvIGNyZWF0ZXMgYSBEYXRhZG9nIGNhc2Ugd2hlbiBjcmVhdGVDYXNlIGlzIHNldCB0byB0cnVlLlxuICovXG5jbGFzcyBTZXNNb25pdG9yTm90aWZpY2F0aW9uIGltcGxlbWVudHMgSU5vdGlmaWNhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY3JlYXRlQ2FzZTogYm9vbGVhbikge1xuICB9XG5cbiAgZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbihtb25pdG9yOiBEYXRhZG9nTW9uaXRvcik6IHN0cmluZyB7XG4gICAgY29uc3Qgc2xhY2tIYW5kbGUgPSBuZXcgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uKCkuZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbihtb25pdG9yKTtcbiAgICBjb25zdCBjYXNlSGFuZGxlID0gdGhpcy5jcmVhdGVDYXNlXG4gICAgICA/IG5ldyBEYXRhZG9nQ2FzZU5vdGlmaWNhdGlvbigpLmdlbmVyYXRlTWVzc2FnZUFubm90YXRpb24obW9uaXRvcilcbiAgICAgIDogJyc7XG4gICAgcmV0dXJuIHRyaW1JbmRlbnRgXG4gICAge3sjaXNfYWxlcnR9fSR7c2xhY2tIYW5kbGV9JHtjYXNlSGFuZGxlfXt7L2lzX2FsZXJ0fX1cbiAgICB7eyNpc19hbGVydF9yZWNvdmVyeX19JHtzbGFja0hhbmRsZX17ey9pc19hbGVydF9yZWNvdmVyeX19XG4gICAgYDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvdW5jZVRocmVzaG9sZHNQcm9wcyB7XG4gIHJlYWRvbmx5IHdhcm5pbmc/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGNyaXRpY2FsPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsYWludFRocmVzaG9sZHNQcm9wcyB7XG4gIHJlYWRvbmx5IHdhcm5pbmc/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGNyaXRpY2FsPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlc09ic2VydmFiaWxpdHlQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgU0VTIGV2ZW50cyB0byBsb2cuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgW0VtYWlsU2VuZGluZ0V2ZW50LkRFTElWRVJZLCBFbWFpbFNlbmRpbmdFdmVudC5CT1VOQ0UsIEVtYWlsU2VuZGluZ0V2ZW50LkNPTVBMQUlOVCwgRW1haWxTZW5kaW5nRXZlbnQuUkVKRUNUXVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nZ2VkU2VzRXZlbnRzPzogc2VzLkVtYWlsU2VuZGluZ0V2ZW50W107XG5cbiAgLyoqXG4gICAqIFRoZSBUaHJlc2hvbGRzIGZvciBib3VuY2UgcmF0ZSBNb25pdG9ycy5cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgc2hvdWxkIG9ubHkgYmUgb3ZlcndyaXR0ZW4sIGlmIHRoZXJlIGlzIHJlYWxseSBubyBwb3NzaWJpbGl0eSB0byByZWR1Y2UgdGhlIGJvdW5jZSByYXRlIG1lYW5pbmdmdWxseS5cbiAgICogSWYgdGhpcyBtZXRyaWMgcmVhY2hlcyBgMTAlYCB0aGUgZW1haWwgc2VuZGluZyBjYXBhYmlsaXR5IG9mIHlvdXIgYWNjb3VudCB3aWxsIGJlIGRpc2FibGVkIGJ5IEFXUy5cbiAgICpcbiAgICogQGRlZmF1bHQgeyBjcml0aWNhbDogMC4wNSwgd2FybmluZzogMC4wNCB9XG4gICAqL1xuICByZWFkb25seSBib3VuY2VUaHJlc2hvbGRzPzogQm91bmNlVGhyZXNob2xkc1Byb3BzO1xuXG4gIC8qKlxuICAgKiBUaGUgVGhyZXNob2xkcyBmb3IgYm91bmNlIHJhdGUgTW9uaXRvcnMuXG4gICAqXG4gICAqIFRoZSBkZWZhdWx0IHNob3VsZCBvbmx5IGJlIG92ZXJ3cml0dGVuLCBpZiB0aGVyZSBpcyByZWFsbHkgbm8gcG9zc2liaWxpdHkgdG8gcmVkdWNlIHRoZSBib3VuY2UgY29tcGxhaW50IG1lYW5pbmdmdWxseS5cbiAgICogSWYgdGhpcyBtZXRyaWMgcmVhY2hlcyBgMC41JWAgdGhlIGVtYWlsIHNlbmRpbmcgY2FwYWJpbGl0eSBvZiB5b3VyIGFjY291bnQgd2lsbCBiZSBkaXNhYmxlZCBieSBBV1MuXG4gICAqXG4gICAqIEBkZWZhdWx0IHsgY3JpdGljYWw6IDAuMDAxLCB3YXJuaW5nOiAwLjAwMDggfVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGxhaW50VGhyZXNob2xkcz86IENvbXBsYWludFRocmVzaG9sZHNQcm9wcztcblxuICAvKipcbiAgICogRW5hYmxlIHRoaXMgaWYgeW91IHdhbnQgdGhlIERhdGFkb2cgbW9uaXRvcnMgdG8gY3JlYXRlIGNhc2VzIGluIERhdGFkb2cgd2hlbiBhbiBhbGVydCBpcyB0cmlnZ2VyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUNhc2VzRnJvbU1vbml0b3JzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSaW9TZXNPYnNlcnZhYmlsaXR5XG4gKlxuICogVGhpcyBjb25zdHJ1Y3Qgc2V0cyB1cCBvYnNlcnZhYmlsaXR5IGZvciBTRVMgYXMgZGVmaW5lZCBieSBbQURSIC0gU0VTIGRvbWFpbiByZXB1dGF0aW9uIG9ic2VydmFiaWxpdHldKGh0dHBzOi8vY29uZmx1ZW5jZS5jb2xsYWJvcmF0aW9uLW1hbi5jb20vZGlzcGxheS9NQU4vQURSKy0rU0VTK2RvbWFpbityZXB1dGF0aW9uK29ic2VydmFiaWxpdHkpLlxuICpcbiAqICMgV2FybmluZ1xuICogVGhpcyBjb25zdHJ1Y3QgcmVzdWx0cyBpbiBsb2dnaW5nIGFsbCBzZW50IGVtYWlscyBpbmNsdWRpbmcgdGhlIHJlY2lwaWVudCBhZGRyZXNzIGludG8gQ2xvdWRXYXRjaCBsb2dzLlxuICogQXMgdGhpcyBpcyBjb25zaWRlcmVkICoqUElJKiosIHRoaXMgaW5mb3JtYXRpb24gTVVTVCBiZSBoYW5kbGVkIGFjY29yZGluZ2x5LlxuICogSW4gcGFydGljdWxhciwgbG9ncyAqKk1VU1QgTk9UKiogYmUgc2VudCB0byBmdXJ0aGVyIHRoaXJkIHBhcnR5IHNlcnZpY2VzIChlLmcuIERhdGFkb2cpIGFuZCB0aGUgcmV0ZW50aW9uIHBlcmlvZCBmb3IgbG9ncyAqKk1VU1QgTk9UKiogYmUgZXh0ZW5kZWQuXG4gKlxuICogIyBVc2FnZVxuICogIyMgRGVmYXVsdCBDb25maWd1cmF0aW9uIFNldCBmb3IgSWRlbnRpdHlcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByaW9TZXNPYnNlcnZhYmlsaXR5ID0gbmV3IFJpb1Nlc09ic2VydmFiaWxpdHkodGhpcywgJ0NvbmZpZ3VyYXRpb25TZXQnLCB7fSlcbiAqIGNvbnN0IGlkZW50aXR5ID0gbmV3IEVtYWlsSWRlbnRpdHkodGhpcywgJ0VtYWlsSWRlbnRpdHknLCB7XG4gKiAgICAgaWRlbnRpdHk6IElkZW50aXR5LmRvbWFpbignZXhhbXBsZS5jb20nKSxcbiAqICAgICBjb25maWd1cmF0aW9uU2V0OiByaW9TZXNPYnNlcnZhYmlsaXR5LmNvbmZpZ3VyYXRpb25TZXQsXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqICMjIFNwZWNpZmljYWxseSB1c2luZyB0aGUgY29uZmlndXJhdGlvbiBzZXQgcGVyIHJlcXVlc3RcbiAqXG4gKiBUaGlzIGlzIGlkZWFsIGlmIHlvdSB3YW50IHRvIHRyeSBvdXQgdGhlIGNvbnN0cnVjdCBmaXJzdCBvbmUgc29tZSBzcGVjaWZpYyBlbWFpbHMgKGUuZy4gZHVyaW5nIGluaXRpYWwgbWlncmF0aW9uKS5cbiAqIFRoZSBjb25maWd1cmF0aW9uIHNldCBuYW1lIGlzIGV4cG9ydGVkIGFzIGFuIFNTTSBwYXJhbWV0ZXIgYC9yaW8vY29uZmlnL3Nlcy1vYnNlcnZhYmlsaXR5L2NvbmZpZ3VyYXRpb24tc2V0LW5hbWVgLlxuICogVGh1cywgeW91IGNhbiBlYXNpbHkgbWFrZSBpdCBhdmFpbGFibGUgYXMgZW52aXJvbm1lbnQgdmFyaWFibGUgaW4geW91ciBjb2RlLlxuICpcbiAqIGBgYGtvdGxpblxuICogaW1wb3J0IGNvbS5hbWF6b25hd3Muc2VydmljZXMuc2ltcGxlZW1haWwubW9kZWwuU2VuZEVtYWlsUmVxdWVzdFxuICpcbiAqIHZhbCByZXF1ZXN0ID0gU2VuZEVtYWlsUmVxdWVzdCgpXG4gKiAgICAgICAgICAgICAgICAgLndpdGhDb25maWd1cmF0aW9uU2V0TmFtZShTU01fQ09ORklHVVJBVElPTl9TU01fUEFSQU1FVEVSX1ZBTFVFKVxuICogICAgICAgICAgICAgICAgIC4uLlxuICogYGBgXG4gKlxuICogIyMgQXV0b21hdGVkIGV2ZW50IHByb2Nlc3NpbmdcbiAqXG4gKiBJZiB5b3UgaGF2ZSBzcGVjaWZpYyBuZWVkcyBmb3Igd2hpY2ggeW91J2QgbGlrZSB0byBwcm9jZXNzIHRoZSBTTlMgZXZlbnRzIGRpcmVjdGx5XG4gKiAoZS5nLiBhdXRvbWF0aWNhbGx5IGNyZWF0aW5nIGEgc3VwcHJlc3Npb24gbGlzdCBmcm9tIGJvdW5jZXMpLCB5b3UgY2FuIHN1YnNjcmliZSB0byB0aGUgU05TIHRvcGljLlxuICogVG8gZW5hYmxlIHRoaXMgdGhlIFNOUyB0b3BpYyBBUk4gaXMgZXhwb3J0ZWQgdmlhIENsb3VkZm9ybWF0aW9uIGFzIGBSaW9TZXNPYnNlcnZhYmlsaXR5VG9waWNBcm5gLlxuICpcbiAqICMgTm90ZXNcbiAqICMjIEFkZCBuZWNlc3NhcnkgcGVybWlzc2lvbnMgZm9yIGZhcmdhdGUgdGFzayB0byBlbmFibGUgdXNpbmcgc2VzIGNvbmZpZ3VyYXRpb24gc2V0XG4gKiBNYWtlIHN1cmUgeW91IGhhdmUgdGhlIGZvbGxvd2luZyBwZXJtaXNzaW9ucyBpbiB0aGUgdGFzayByb2xlIG9mIHRoZSBmYXJnYXRlIHRhc2ssIGUuZy46XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgICAgc2VydmljZS50YXNrRGVmaW5pdGlvbi50YXNrUm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShcbiAqICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAqICAgICAgICAgYWN0aW9uczogWydzZXM6c2VuZEVtYWlsJywgJ3NlczpzZW5kUmF3RW1haWwnXSxcbiAqICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6c2VzOjx5b3VyX3JlZ2lvbj46PHlvdXJfYWNjb3VudD46Y29uZmlndXJhdGlvbi1zZXQvPHlvdXJfY29uZmlndXJhdGlvbl9zZXRfbmFtZT5gXSxcbiAqICAgICAgIH0pKTtcbiAqIGBgYFxuICpcbiAqICMjIFdhdGNoZnVsXG4gKiBJdCBtaWdodCBiZSBoZWxwZnVsIHRvIGFkZCB3YXRjaGZ1bCB0byB5b3VyIHN0YWNrIHRvXG4gKiBnZXQgbm90aWZpZWQgaWYgdGhlIHNlcy1sb2dnZXIgbGFtYmRhIGZhaWxzLlxuICovXG5leHBvcnQgY2xhc3MgU2VzT2JzZXJ2YWJpbGl0eSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8vICEgY2hhbmdpbmcgdGhlc2UgdmFsdWVzIGlzIGEgYnJlYWtpbmcgY2hhbmdlIGZvciB1c2Vyc1xuICBzdGF0aWMgcmVhZG9ubHkgQ09ORklHVVJBVElPTl9TRVRfTkFNRV9TU01fUEFSQU1FVEVSID0gJy9yaW8vY29uZmlnL3Nlcy1vYnNlcnZhYmlsaXR5L2NvbmZpZ3VyYXRpb24tc2V0LW5hbWUnO1xuICBzdGF0aWMgcmVhZG9ubHkgU05TX1RPUElDX0FSTl9FWFBPUlRfTkFNRSA9ICdSaW9TZXNPYnNlcnZhYmlsaXR5VG9waWNBcm4nO1xuICByZWFkb25seSBzbnNUb3BpYzogc25zLlRvcGljO1xuICByZWFkb25seSBjb25maWd1cmF0aW9uU2V0OiBzZXMuQ29uZmlndXJhdGlvblNldDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VzT2JzZXJ2YWJpbGl0eVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBhY2NvdW50SWQgPSBTdGFjay5vZih0aGlzKS5hY2NvdW50O1xuICAgIGNvbnN0IGFjY291bnROYW1lID0gUmlvTGFuZGluZ1pvbmUuZ2V0QWNjb3VudE5hbWVQYXJhbWV0ZXIodGhpcykuc3RyaW5nVmFsdWU7XG5cbiAgICBjb25zdCBwYXJhbWV0ZXIgPSBuZXcgc3NtLlN0cmluZ1BhcmFtZXRlcih0aGlzLCAnQ29uZmlndXJhdGlvblNldE5hbWUnLCB7XG4gICAgICBwYXJhbWV0ZXJOYW1lOiBTZXNPYnNlcnZhYmlsaXR5LkNPTkZJR1VSQVRJT05fU0VUX05BTUVfU1NNX1BBUkFNRVRFUixcbiAgICAgIHN0cmluZ1ZhbHVlOiAncmlvLXNlcy1vYnNlcnZhYmlsaXR5LWNvbmZpZ3VyYXRpb24tc2V0JyxcbiAgICB9KTtcblxuICAgIHRoaXMuc25zVG9waWMgPSBuZXcgc25zLlRvcGljKHRoaXMsICdTbnNUb3BpYycsIHtcbiAgICAgIHRvcGljTmFtZTogJ3Jpby1zZXMtb2JzZXJ2YWJpbGl0eS10b3BpYycsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25TZXQgPSBuZXcgc2VzLkNvbmZpZ3VyYXRpb25TZXQodGhpcywgJ0NvbmZpZ3VyYXRpb25TZXQnLCB7XG4gICAgICBjb25maWd1cmF0aW9uU2V0TmFtZTogcGFyYW1ldGVyLnN0cmluZ1ZhbHVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb25maWd1cmF0aW9uU2V0LmFkZEV2ZW50RGVzdGluYXRpb24oJ0V2ZW50RGVzdGluYXRpb24nLCB7XG4gICAgICBjb25maWd1cmF0aW9uU2V0RXZlbnREZXN0aW5hdGlvbk5hbWU6ICdyaW8tc2VzLW9ic2VydmFiaWxpdHktZXZlbnQtZGVzdGluYXRpb24nLFxuICAgICAgZGVzdGluYXRpb246IHNlcy5FdmVudERlc3RpbmF0aW9uLnNuc1RvcGljKHRoaXMuc25zVG9waWMpLFxuICAgICAgZXZlbnRzOiBwcm9wcy5sb2dnZWRTZXNFdmVudHMgPz8gW1xuICAgICAgICBzZXMuRW1haWxTZW5kaW5nRXZlbnQuREVMSVZFUlksXG4gICAgICAgIHNlcy5FbWFpbFNlbmRpbmdFdmVudC5CT1VOQ0UsXG4gICAgICAgIHNlcy5FbWFpbFNlbmRpbmdFdmVudC5DT01QTEFJTlQsXG4gICAgICAgIHNlcy5FbWFpbFNlbmRpbmdFdmVudC5SRUpFQ1QsXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbG9nRnVuY3Rpb24gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsICdMb2dGdW5jdGlvbicsIHtcbiAgICAgIGZ1bmN0aW9uTmFtZTogJ3Jpby1zZXMtb2JzZXJ2YWJpbGl0eS1sb2ctZnVuY3Rpb24nLFxuICAgICAgcnVudGltZTogREVGQVVMVF9OT0RFX1JVTlRJTUUsXG4gICAgICBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgaGFuZGxlcjogJ3Nlcy1sb2dnZXIuaGFuZGxlcicsXG4gICAgICBsb2dSZXRlbnRpb246IFJldGVudGlvbkRheXMuVEhSRUVfTU9OVEhTLFxuICAgICAgc3lzdGVtTG9nTGV2ZWxWMjogbGFtYmRhLlN5c3RlbUxvZ0xldmVsLldBUk4sXG4gICAgICBsb2dnaW5nRm9ybWF0OiBsYW1iZGEuTG9nZ2luZ0Zvcm1hdC5KU09OLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICdsYW1iZGEnKSwge1xuICAgICAgICBleGNsdWRlOiBbJyouanMnLCAnKi5kLnRzJ10sXG4gICAgICB9KSxcbiAgICB9KTtcbiAgICB0aGlzLmVuc3VyZU5vU3Vic2NyaXB0aW9uRmlsdGVyc09uTGFtYmRhc0xvZ0dyb3VwKGxvZ0Z1bmN0aW9uKTtcblxuICAgIHRoaXMuc25zVG9waWMuYWRkU3Vic2NyaXB0aW9uKG5ldyBzbnNTdWJzY3JpcHRpb25zLkxhbWJkYVN1YnNjcmlwdGlvbihsb2dGdW5jdGlvbikpO1xuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ1Nuc1RvcGljQXJuJywge1xuICAgICAgdmFsdWU6IHRoaXMuc25zVG9waWMudG9waWNBcm4sXG4gICAgICBleHBvcnROYW1lOiBTZXNPYnNlcnZhYmlsaXR5LlNOU19UT1BJQ19BUk5fRVhQT1JUX05BTUUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtb25pdG9yTm90aWZpY2F0aW9uID0gbmV3IFNlc01vbml0b3JOb3RpZmljYXRpb24ocHJvcHMuY3JlYXRlQ2FzZXNGcm9tTW9uaXRvcnMgPz8gZmFsc2UpO1xuXG4gICAgbmV3IERhdGFkb2dNb25pdG9yKHRoaXMsICdRdW90YU1vbml0b3InLCB7XG4gICAgICBuYW1lOiBgJHthY2NvdW50TmFtZX0gU0VTIHF1b3RhIGFsbW9zdCByZWFjaGVkYCxcbiAgICAgIHNlcnZpY2VOYW1lOiAnYXdzLXNlcycsXG4gICAgICBtb25pdG9yVHlwZTogRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZS5RVUVSWV9BTEVSVCxcbiAgICAgIHF1ZXJ5OiBgbWF4KGxhc3RfMWgpOm1heDphd3Muc2VzLnNlbnRfbGFzdF8yNF9ob3Vyc3thY2NvdW50X2lkOiR7YWNjb3VudElkfX0gLyBtYXg6YXdzLnNlcy5tYXhfMjRfaG91cl9zZW5ke2FjY291bnRfaWQ6JHthY2NvdW50SWR9fSA+IDAuOGAsXG4gICAgICBtZXNzYWdlOiB0cmltSW5kZW50YFxuICAgICAgICBZb3UgYXJlIGFsbW9zdCB1c2luZyB1cCB5b3UncmUgbWF4aW11bSBlbWFpbCBzZW5kaW5nIHF1b3RhIHBlciAyNGguIFxuICAgICAgICBFaXRoZXIgW3JlcXVlc3QgYW4gaW5jcmVhc2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXMvbGF0ZXN0L2RnL21hbmFnZS1zZW5kaW5nLXF1b3Rhcy1yZXF1ZXN0LWluY3JlYXNlLmh0bWwpIGZvciB5b3VyIHF1b3RhIGJ5IEFXUyBvciByZWR1Y2UgdGhlIGFtb3VudCBvZiBlbWFpbHMgc2VudC5cbiAgICAgICAgWW91IGNhbiBmaW5kIGxvZ3MgYWJvdXQgYWxsIG1haWxzIHNlbnQgYXQgXFxgJHtsb2dGdW5jdGlvbi5sb2dHcm91cC5sb2dHcm91cE5hbWV9XFxgLlxuICAgICAgICBgLFxuICAgICAgcHJpb3JpdHk6IDQsXG4gICAgICBvcHRpb25PdmVycmlkZXM6IHtcbiAgICAgICAgdGhyZXNob2xkczoge1xuICAgICAgICAgIGNyaXRpY2FsOiAwLjgsXG4gICAgICAgICAgd2FybmluZzogMC43LFxuICAgICAgICB9LFxuICAgICAgICBldmFsdWF0aW9uRGVsYXk6IDkwMCxcbiAgICAgIH0sXG4gICAgICBub3RpZmljYXRpb246IG1vbml0b3JOb3RpZmljYXRpb24sXG4gICAgfSk7XG5cbiAgICBuZXcgRGF0YWRvZ01vbml0b3IodGhpcywgJ0VtYWlsUmVqZWN0ZWRNb25pdG9yJywge1xuICAgICAgbmFtZTogYCR7YWNjb3VudE5hbWV9IFNFUyBFbWFpbCBSZWplY3RlZGAsXG4gICAgICBzZXJ2aWNlTmFtZTogJ2F3cy1zZXMnLFxuICAgICAgbW9uaXRvclR5cGU6IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuUVVFUllfQUxFUlQsXG4gICAgICBxdWVyeTogYHN1bShsYXN0XzFoKTptYXg6YXdzLnNlcy5yZWplY3Rze2FjY291bnRfaWQ6JHthY2NvdW50SWR9fSA+IDBgLFxuICAgICAgbWVzc2FnZTogdHJpbUluZGVudGBcbiAgICAgICAgU0VTIFtyZWplY3RlZF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nlcy9sYXRlc3QvZGcvbW9uaXRvci1zZW5kaW5nLWFjdGl2aXR5Lmh0bWwpIHNlbmRpbmcgYXQgbGVhc3Qgb25lIGVtYWlsLlxuICAgICAgICBQbGVhc2UgaW52ZXN0aWdhdGUgdGhlIHJvb3QgY2FzZSwgYXMgdGhpcyBpcyBub3QgZXhwZWN0ZWQgdG8gaGFwcGVuIGluIHByb2R1Y3Rpb24gZXZlci5cbiAgICAgICAgWW91IGNhbiBmaW5kIGxvZ3MgYWJvdXQgYWxsIG1haWxzIHNlbnQgYXQgXFxgJHtsb2dGdW5jdGlvbi5sb2dHcm91cC5sb2dHcm91cE5hbWV9XFxgLlxuICAgICAgICBgLFxuICAgICAgcHJpb3JpdHk6IDMsXG4gICAgICBvcHRpb25PdmVycmlkZXM6IHtcbiAgICAgICAgdGhyZXNob2xkczoge1xuICAgICAgICAgIGNyaXRpY2FsOiAwLFxuICAgICAgICB9LFxuICAgICAgICBldmFsdWF0aW9uRGVsYXk6IDkwMCxcbiAgICAgIH0sXG4gICAgICBub3RpZmljYXRpb246IG1vbml0b3JOb3RpZmljYXRpb24sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb21wbGFpbnRUaHJlc2hvbGRzID0ge1xuICAgICAgd2FybmluZzogcHJvcHMuY29tcGxhaW50VGhyZXNob2xkcz8ud2FybmluZyA/PyBDT01QTEFJTlRfVEhSRVNIT0xEU19ERUZBVUxULndhcm5pbmcsXG4gICAgICBjcml0aWNhbDogcHJvcHMuY29tcGxhaW50VGhyZXNob2xkcz8uY3JpdGljYWwgPz8gQ09NUExBSU5UX1RIUkVTSE9MRFNfREVGQVVMVC5jcml0aWNhbCxcbiAgICB9O1xuICAgIG5ldyBEYXRhZG9nTW9uaXRvcih0aGlzLCAnQ29tcGxhaW50UmF0ZU1vbml0b3InLCB7XG4gICAgICBuYW1lOiBgJHthY2NvdW50TmFtZX0gU0VTIHJlcHV0YXRpb24gZW5kYW5nZXJlZDogQ29tcGxhaW50IHJhdGUgSGlnaGAsXG4gICAgICBzZXJ2aWNlTmFtZTogJ2F3cy1zZXMnLFxuICAgICAgbW9uaXRvclR5cGU6IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuUVVFUllfQUxFUlQsXG4gICAgICBxdWVyeTogYG1heChsYXN0XzFoKTptYXg6YXdzLnNlcy5yZXB1dGF0aW9uX2NvbXBsYWludF9yYXRle2FjY291bnRfaWQ6JHthY2NvdW50SWR9IGFuZCBub3Qgc2VzOip9ID4gJHtjb21wbGFpbnRUaHJlc2hvbGRzLmNyaXRpY2FsfWAsXG4gICAgICBtZXNzYWdlOiB0cmltSW5kZW50YFxuICAgICAgICBXYXJuaW5nIFRocmVzaG9sZCBmb3IgQ29tcGxhaW50IHJhdGUge3sjaXNfd2FybmluZ319YWxtb3N0IHt7L2lzX3dhcm5pbmd9fXJlYWNoZWQgKGFzIGRlZmluZWQgaW4gQVdTKS5cbiAgICAgICAgXG4gICAgICAgIFBsZWFzZSByZWR1Y2UgdGhlIG51bWJlciBvZiBjb21wbGFpbnRzIHJlY2VpdmVkIGZvciBFLW1haWxzIHNlbnQgYnkgeW91ciBBY2NvdW50LlxuICAgICAgICBJZiB0aGlzIG1ldHJpYyByZWFjaGVzIFxcYDAuNSVcXGAgdGhlIGVtYWlsIHNlbmRpbmcgY2FwYWJpbGl0eSBvZiB5b3VyIGFjY291bnQgd2lsbCBiZSBkaXNhYmxlZCBieSBBV1MuXG4gICAgICAgIFlvdSBjYW4gZmluZCBsb2dzIGFib3V0IGFsbCBtYWlscyBzZW50IGF0IFxcYCR7bG9nRnVuY3Rpb24ubG9nR3JvdXAubG9nR3JvdXBOYW1lfVxcYC5cbiAgICAgICAgU2VlIFtBRFIgLSBTRVMgZG9tYWluIHJlcHV0YXRpb24gb2JzZXJ2YWJpbGl0eV0oaHR0cHM6Ly9jb25mbHVlbmNlLmNvbGxhYm9yYXRpb24tbWFuLmNvbS9kaXNwbGF5L01BTi9BRFIrLStTRVMrZG9tYWluK3JlcHV0YXRpb24rb2JzZXJ2YWJpbGl0eSkuXG4gICAgICAgIGAsXG4gICAgICBwcmlvcml0eTogMixcbiAgICAgIG9wdGlvbk92ZXJyaWRlczoge1xuICAgICAgICB0aHJlc2hvbGRzOiBjb21wbGFpbnRUaHJlc2hvbGRzLFxuICAgICAgICBldmFsdWF0aW9uRGVsYXk6IDkwMCxcbiAgICAgIH0sXG4gICAgICBub3RpZmljYXRpb246IG1vbml0b3JOb3RpZmljYXRpb24sXG4gICAgfSk7XG5cbiAgICBjb25zdCBib3VuY2VUaHJlc2hvbGRzID0ge1xuICAgICAgd2FybmluZzogcHJvcHMuYm91bmNlVGhyZXNob2xkcz8ud2FybmluZyA/PyBCT1VOQ0VfVEhSRVNIT0xEU19ERUZBVUxULndhcm5pbmcsXG4gICAgICBjcml0aWNhbDogcHJvcHMuYm91bmNlVGhyZXNob2xkcz8uY3JpdGljYWwgPz8gQk9VTkNFX1RIUkVTSE9MRFNfREVGQVVMVC5jcml0aWNhbCxcbiAgICB9O1xuICAgIG5ldyBEYXRhZG9nTW9uaXRvcih0aGlzLCAnQm91bmNlUmF0ZU1vbml0b3InLCB7XG4gICAgICBuYW1lOiBgJHthY2NvdW50TmFtZX0gU0VTIHJlcHV0YXRpb24gZW5kYW5nZXJlZDogQm91bmNlIFJhdGUgSGlnaGAsXG4gICAgICBzZXJ2aWNlTmFtZTogJ2F3cy1zZXMnLFxuICAgICAgbW9uaXRvclR5cGU6IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuUVVFUllfQUxFUlQsXG4gICAgICBxdWVyeTogYG1heChsYXN0XzFoKTptYXg6YXdzLnNlcy5yZXB1dGF0aW9uX2JvdW5jZV9yYXRle2FjY291bnRfaWQ6JHthY2NvdW50SWR9IGFuZCBub3Qgc2VzOip9ID4gJHtib3VuY2VUaHJlc2hvbGRzLmNyaXRpY2FsfWAsXG4gICAgICBtZXNzYWdlOiB0cmltSW5kZW50YFxuICAgICAgICBXYXJuaW5nIFRocmVzaG9sZCBmb3IgQm91bmNlIHJhdGUge3sjaXNfd2FybmluZ319YWxtb3N0IHt7L2lzX3dhcm5pbmd9fXJlYWNoZWQgKGFzIGRlZmluZWQgaW4gQVdTKS5cbiAgICAgICAgXG4gICAgICAgIFBsZWFzZSByZWR1Y2UgdGhlIG51bWJlciBvZiBib3VuY2VzIGZvciBFLW1haWxzIHNlbnQgYnkgeW91ciBBY2NvdW50LlxuICAgICAgICBJZiB0aGlzIG1ldHJpYyByZWFjaGVzIFxcYDEwJVxcYCB0aGUgZW1haWwgc2VuZGluZyBjYXBhYmlsaXR5IG9mIHlvdXIgYWNjb3VudCB3aWxsIGJlIGRpc2FibGVkIGJ5IEFXUy5cbiAgICAgICAgWW91IGNhbiBmaW5kIGxvZ3MgYWJvdXQgYWxsIG1haWxzIHNlbnQgYXQgXFxgJHtsb2dGdW5jdGlvbi5sb2dHcm91cC5sb2dHcm91cE5hbWV9XFxgLlxuICAgICAgICBTZWUgW0FEUiAtIFNFUyBkb21haW4gcmVwdXRhdGlvbiBvYnNlcnZhYmlsaXR5XShodHRwczovL2NvbmZsdWVuY2UuY29sbGFib3JhdGlvbi1tYW4uY29tL2Rpc3BsYXkvTUFOL0FEUistK1NFUytkb21haW4rcmVwdXRhdGlvbitvYnNlcnZhYmlsaXR5KS5cbiAgICAgICAgYCxcbiAgICAgIHByaW9yaXR5OiAyLFxuICAgICAgb3B0aW9uT3ZlcnJpZGVzOiB7XG4gICAgICAgIHRocmVzaG9sZHM6IGJvdW5jZVRocmVzaG9sZHMsXG4gICAgICAgIGV2YWx1YXRpb25EZWxheTogOTAwLFxuICAgICAgfSxcbiAgICAgIG5vdGlmaWNhdGlvbjogbW9uaXRvck5vdGlmaWNhdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCBubyBQSUkgaXMgbGVha2VkIHRvIERhdGFkb2cgYnkgYWRkaW5nIGEgc3Vic2NyaXB0aW9uIGZpbHRlciB0byB0aGUgbG9nIGdyb3VwIG9mIHRoZSBsYW1iZGEuXG4gICAqL1xuICBwcml2YXRlIGVuc3VyZU5vU3Vic2NyaXB0aW9uRmlsdGVyc09uTGFtYmRhc0xvZ0dyb3VwKGxvZ0Z1bmN0aW9uOiBOb2RlanNGdW5jdGlvbikge1xuICAgIGNvbnN0IHN0YWNrID0gY2RrLlN0YWNrLm9mKHRoaXMpO1xuICAgIHN0YWNrLm5vZGUuYWRkVmFsaWRhdGlvbih7XG4gICAgICB2YWxpZGF0ZTogKCkgPT4ge1xuICAgICAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIHN0YWNrLm5vZGUuZmluZEFsbCgpLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBDZm5TdWJzY3JpcHRpb25GaWx0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvZ0dyb3VwTmFtZSA9IG5vZGUubG9nR3JvdXBOYW1lO1xuICAgICAgICAgICAgaWYgKGxvZ0dyb3VwTmFtZSA9PT0gbG9nRnVuY3Rpb24ubG9nR3JvdXAubG9nR3JvdXBOYW1lKSB7XG4gICAgICAgICAgICAgIGVycm9ycy5wdXNoKCdTdWJzY3JpcHRpb24gZmlsdGVycyBhcmUgbm90IGFsbG93ZWQgc2VzLW9ic2VydmFiaWxpdHkgbGFtYmRhcyBsb2cgZ3JvdXAnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZXJyb3JzO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
],
|
|
16
16
|
"main": "lib/index.js",
|
|
17
17
|
"license": "Apache-2.0",
|
|
18
|
-
"version": "8.0.
|
|
18
|
+
"version": "8.1.0-alpha.0",
|
|
19
19
|
"types": "lib/index.d.ts",
|
|
20
20
|
"stability": "stable",
|
|
21
21
|
"exports": {
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"@typescript-eslint/eslint-plugin": "6.12.0",
|
|
87
87
|
"@typescript-eslint/parser": "6.12.0",
|
|
88
88
|
"aws-cdk": "^2.177.0",
|
|
89
|
-
"aws-cdk-lib": "2.
|
|
89
|
+
"aws-cdk-lib": "2.258.0",
|
|
90
90
|
"aws-sdk-client-mock": "^4.1.0",
|
|
91
91
|
"commit-and-tag-version": "^12.5.0",
|
|
92
92
|
"constructs": "10.5.1",
|
package/version.json
CHANGED