@rio-cloud/cdk-v2-constructs 6.7.1 → 6.8.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 +172 -81
- package/CHANGELOG.md +14 -0
- package/docs/API.md +159 -43
- package/lib/contributions/team-transport-two/pipeline/pipeline-stack.d.ts +12 -12
- package/lib/contributions/team-transport-two/pipeline/pipeline-stack.js +1 -1
- package/lib/datadog/datadog-monitor.d.ts +2 -2
- package/lib/datadog/datadog-monitor.js +1 -1
- package/lib/datadogv2/datadog-dashboard.d.ts +1 -1
- package/lib/datadogv2/datadog-dashboard.js +1 -1
- package/lib/datadogv2/datadog-monitor.js +1 -2
- package/lib/datadogv2/datadog-notification.d.ts +4 -4
- package/lib/datadogv2/datadog-notification.js +3 -3
- package/lib/fargate/rio-fargate-service.d.ts +6 -6
- package/lib/fargate/rio-fargate-service.js +1 -1
- package/lib/kafka/kafka-event-spec.d.ts +2 -2
- package/lib/kafka/kafka-event-spec.js +3 -3
- package/lib/kafka/kafka-topic.js +1 -1
- package/lib/kafka/rio-kafka-event-source.d.ts +4 -1
- package/lib/kafka/rio-kafka-event-source.js +1 -1
- package/lib/pipeline/rio-backup-secrets-restore-stage.js +1 -3
- package/lib/toggle.d.ts +7 -7
- package/lib/toggle.js +9 -12
- package/lib/watchful/ecs.d.ts +7 -0
- package/lib/watchful/ecs.js +21 -1
- package/lib/watchful/monitor-type.d.ts +5 -1
- package/lib/watchful/monitor-type.js +5 -1
- package/lib/watchful/watchful.d.ts +19 -3
- package/lib/watchful/watchful.js +15 -3
- package/lib/watchfulv2/watchful.d.ts +7 -3
- package/lib/watchfulv2/watchful.js +7 -3
- package/package.json +1 -1
- package/version.json +1 -1
package/lib/watchful/ecs.js
CHANGED
|
@@ -9,6 +9,7 @@ const constructs_1 = require("constructs");
|
|
|
9
9
|
const __1 = require("..");
|
|
10
10
|
const DEFAULT_CPU_UTILIZATION_THRESHOLD_PERCENT = 80;
|
|
11
11
|
const DEFAULT_MEMORY_UTILIZATION_THRESHOLD_PERCENT = 85;
|
|
12
|
+
const DEFAULT_MINIMUM_NUMBER_OF_TASKS = 1;
|
|
12
13
|
/**
|
|
13
14
|
* A Construct which creates default alarms for ECS services.
|
|
14
15
|
* A Construct which creates the following alarms for ECS services:
|
|
@@ -24,6 +25,7 @@ class WatchEcsService extends constructs_1.Construct {
|
|
|
24
25
|
this.service = props.service;
|
|
25
26
|
this.watchful.createAlarm(this, __1.MonitorType.CPU_UTILIZATION, this.createCpuUtilizationMonitor(props.cpuUtilizationThresholdPercent));
|
|
26
27
|
this.watchful.createAlarm(this, __1.MonitorType.MEMORY_UTILIZATION, this.createMemoryUtilizationMonitor(props.memoryUtilizationThresholdPercent));
|
|
28
|
+
this.watchful.createAlarm(this, __1.MonitorType.RUNNING_TASKS, this.createNumberOfTasksMonitor(props.minimumNumberOfTasks));
|
|
27
29
|
this.watchful.createLogAlarm(this, __1.MonitorType.LOG_ERROR_MONITOR, this.createLogErrorMonitor());
|
|
28
30
|
}
|
|
29
31
|
createLogErrorMonitor() {
|
|
@@ -68,8 +70,26 @@ class WatchEcsService extends constructs_1.Construct {
|
|
|
68
70
|
priority: 3,
|
|
69
71
|
};
|
|
70
72
|
}
|
|
73
|
+
createNumberOfTasksMonitor(minimumNumberOfTasks = DEFAULT_MINIMUM_NUMBER_OF_TASKS) {
|
|
74
|
+
return {
|
|
75
|
+
metric: this.service.metric('service.running', {
|
|
76
|
+
period: aws_cdk_lib_1.Duration.minutes(5),
|
|
77
|
+
statistic: 'min',
|
|
78
|
+
label: 'Number of running tasks',
|
|
79
|
+
dimensionsMap: {
|
|
80
|
+
account_id: aws_cdk_lib_1.Stack.of(this).account,
|
|
81
|
+
servicename: this.service.serviceName,
|
|
82
|
+
},
|
|
83
|
+
}),
|
|
84
|
+
alarmDescription: `Number of running tasks for ${this.service.serviceName} is less then ${minimumNumberOfTasks}`,
|
|
85
|
+
comparisonOperator: cw.ComparisonOperator.LESS_THAN_THRESHOLD,
|
|
86
|
+
threshold: minimumNumberOfTasks,
|
|
87
|
+
evaluationPeriods: 1,
|
|
88
|
+
priority: 1,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
71
91
|
}
|
|
72
92
|
exports.WatchEcsService = WatchEcsService;
|
|
73
93
|
_a = JSII_RTTI_SYMBOL_1;
|
|
74
94
|
WatchEcsService[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.WatchEcsService", version: "0.0.0" };
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dhdGNoZnVsL2Vjcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF1QztBQUN2QyxpREFBaUQ7QUFHakQsMkNBQXVDO0FBRXZDLDBCQUFvRztBQUVwRyxNQUFNLHlDQUF5QyxHQUFHLEVBQUUsQ0FBQztBQUNyRCxNQUFNLDRDQUE0QyxHQUFHLEVBQUUsQ0FBQztBQXFDeEQ7Ozs7Ozs7R0FPRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxzQkFBUztJQUk1QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUU3QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQzVCLGVBQVcsQ0FBQyxlQUFlLEVBQzNCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FDdkUsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFDNUIsZUFBVyxDQUFDLGtCQUFrQixFQUM5QixJQUFJLENBQUMsOEJBQThCLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQzdFLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQy9CLGVBQVcsQ0FBQyxpQkFBaUIsRUFDN0IsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQzdCLENBQUM7SUFDSixDQUFDO0lBRU8scUJBQXFCO1FBQzNCLE9BQU87WUFDTCx1QkFBdUIsRUFBRSxJQUFJO1lBQzdCLE1BQU0sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDM0IsWUFBWSxFQUFFLGdCQUFZLENBQUMsT0FBTyxFQUFFLHlEQUF5RDtZQUM3RixjQUFjLEVBQUUsc0JBQWtCLENBQUMsa0NBQWtDO1lBQ3JFLFNBQVMsRUFBRSxPQUFPO1lBQ2xCLFlBQVksRUFBRSxPQUFPO1lBQ3JCLGdCQUFnQixFQUFFLHFDQUFxQztZQUN2RCxTQUFTLEVBQUUsQ0FBQztZQUNaLFFBQVEsRUFBRSxDQUFDO1lBQ1gsS0FBSyxFQUFFLEdBQUcsRUFBRSxzR0FBc0c7U0FDbkgsQ0FBQztJQUNKLENBQUM7SUFFTywyQkFBMkIsQ0FDakMsaUNBQXlDLHlDQUF5QztRQUVsRixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hHLE9BQU87WUFDTCxNQUFNLEVBQUUsb0JBQW9CO1lBQzVCLGdCQUFnQixFQUFFLDREQUE0RCw4QkFBOEIsR0FBRztZQUMvRyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCO1lBQ2hFLFNBQVMsRUFBRSw4QkFBOEI7WUFDekMsaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixRQUFRLEVBQUUsQ0FBQztTQUNaLENBQUM7SUFDSixDQUFDO0lBRU8sOEJBQThCLENBQ3BDLG9DQUE0Qyw0Q0FBNEM7UUFFeEYsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsT0FBTzthQUN6Qyx1QkFBdUIsRUFBRTthQUN6QixJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTFDLE1BQU0sWUFBWSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxHQUFHLHVCQUFzQztZQUN6QyxVQUFVLEVBQUUsR0FBRyx1QkFBdUIsQ0FBQyxVQUFVLFVBQVU7U0FDNUQsQ0FBQyxDQUFDO1FBQ0gsT0FBTztZQUNMLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLGdCQUFnQixFQUFFLCtEQUErRCxpQ0FBaUMsR0FBRztZQUNySCxrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCO1lBQ2hFLFNBQVMsRUFBRSxpQ0FBaUM7WUFDNUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixRQUFRLEVBQUUsQ0FBQztTQUNaLENBQUM7SUFDSixDQUFDOztBQXhFSCwwQ0EwRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGN3IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IE1ldHJpY1Byb3BzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgZWNzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJV2F0Y2hmdWwgfSBmcm9tICcuL3dhdGNoZnVsJztcbmltcG9ydCB7IENvbXBhcmlzb25PcGVyYXRvciwgTG9nQWxhcm1Qcm9wcywgTWV0cmljQWxhcm1Qcm9wcywgTW9uaXRvclR5cGUsIFVuaXRPZlBlcmlvZCB9IGZyb20gJy4uJztcblxuY29uc3QgREVGQVVMVF9DUFVfVVRJTElaQVRJT05fVEhSRVNIT0xEX1BFUkNFTlQgPSA4MDtcbmNvbnN0IERFRkFVTFRfTUVNT1JZX1VUSUxJWkFUSU9OX1RIUkVTSE9MRF9QRVJDRU5UID0gODU7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZGVmaW5pbmcgYWxhcm1zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoRWNzU2VydmljZU9wdGlvbnMge1xuICAvKipcbiAgICAgKiBUaHJlc2hvbGQgZm9yIHRoZSBjcHUgdXRpbGl6YXRpb24gYWxhcm0gYXMgcGVyY2VudGFnZS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0VmFsdWUgODBcbiAgICAgKi9cbiAgcmVhZG9ubHkgY3B1VXRpbGl6YXRpb25UaHJlc2hvbGRQZXJjZW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgICAqIFRocmVzaG9sZCBmb3IgdGhlIG1lbW9yeSB1dGlsaXphdGlvbiBhbGFybSBhcyBwZXJjZW50YWdlLlxuICAgICAqXG4gICAgICogQGRlZmF1bHRWYWx1ZSA5NVxuICAgICAqL1xuICByZWFkb25seSBtZW1vcnlVdGlsaXphdGlvblRocmVzaG9sZFBlcmNlbnQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBXYXRjaEVjc1NlcnZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYXRjaEVjc1NlcnZpY2VQcm9wcyBleHRlbmRzIFdhdGNoRWNzU2VydmljZU9wdGlvbnMge1xuICAvKipcbiAgICAgKiBUaGUgcmVmZXJlbmNlIHRvIElXYXRjaGZ1bCBjbGFzcy4gVXNlZCBpbnRlcm5hbGx5LlxuICAgICAqL1xuICByZWFkb25seSB3YXRjaGZ1bDogSVdhdGNoZnVsO1xuXG4gIC8qKlxuICAgICAqIFRoZSBFQ1Mgc2VydmljZSB0aGF0IHNob3VsZCBiZSB3YXRjaGVkLlxuICAgICAqIFtkaXNhYmxlLWF3c2xpbnQ6cmVmLXZpYS1pbnRlcmZhY2VdXG4gICAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2U6IGVjcy5CYXNlU2VydmljZTtcbn1cblxuLyoqXG4gKiBBIENvbnN0cnVjdCB3aGljaCBjcmVhdGVzIGRlZmF1bHQgYWxhcm1zIGZvciBFQ1Mgc2VydmljZXMuXG4gKiBBIENvbnN0cnVjdCB3aGljaCBjcmVhdGVzIHRoZSBmb2xsb3dpbmcgYWxhcm1zIGZvciBFQ1Mgc2VydmljZXM6XG4gKlxuICogLSBjcHUgdXRpbGl6YXRpb25cbiAqIC0gbWVtb3J5IHV0aWxpemF0aW9uXG4gKiAtIGVycm9yIGxvZyBhbGVydFxuICovXG5leHBvcnQgY2xhc3MgV2F0Y2hFY3NTZXJ2aWNlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHJpdmF0ZSByZWFkb25seSB3YXRjaGZ1bDogSVdhdGNoZnVsO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IGVjcy5CYXNlU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV2F0Y2hFY3NTZXJ2aWNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy53YXRjaGZ1bCA9IHByb3BzLndhdGNoZnVsO1xuICAgIHRoaXMuc2VydmljZSA9IHByb3BzLnNlcnZpY2U7XG5cbiAgICB0aGlzLndhdGNoZnVsLmNyZWF0ZUFsYXJtKHRoaXMsXG4gICAgICBNb25pdG9yVHlwZS5DUFVfVVRJTElaQVRJT04sXG4gICAgICB0aGlzLmNyZWF0ZUNwdVV0aWxpemF0aW9uTW9uaXRvcihwcm9wcy5jcHVVdGlsaXphdGlvblRocmVzaG9sZFBlcmNlbnQpLFxuICAgICk7XG4gICAgdGhpcy53YXRjaGZ1bC5jcmVhdGVBbGFybSh0aGlzLFxuICAgICAgTW9uaXRvclR5cGUuTUVNT1JZX1VUSUxJWkFUSU9OLFxuICAgICAgdGhpcy5jcmVhdGVNZW1vcnlVdGlsaXphdGlvbk1vbml0b3IocHJvcHMubWVtb3J5VXRpbGl6YXRpb25UaHJlc2hvbGRQZXJjZW50KSxcbiAgICApO1xuICAgIHRoaXMud2F0Y2hmdWwuY3JlYXRlTG9nQWxhcm0odGhpcyxcbiAgICAgIE1vbml0b3JUeXBlLkxPR19FUlJPUl9NT05JVE9SLFxuICAgICAgdGhpcy5jcmVhdGVMb2dFcnJvck1vbml0b3IoKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVMb2dFcnJvck1vbml0b3IoKTogTG9nQWxhcm1Qcm9wcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF1dG9DbG9zZU9wc0dlbmllQWxlcnRzOiB0cnVlLFxuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgdW5pdE9mUGVyaW9kOiBVbml0T2ZQZXJpb2QuTUlOVVRFUywgLy8gdG9EbzogbW92ZSB0aGF0IHNvbWV3aGVyZSBlbHNlIGFuZCBzZXQgZGVmYXVsdHMgdGhlcmU/XG4gICAgICBwZXJpb2RPcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICBzdGF0aXN0aWM6ICdjb3VudCcsXG4gICAgICBxdWVyeUZpbHRlcnM6ICdlcnJvcicsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiAnQXV0by1nZW5lcmF0ZWQgYWxlcnQgZm9yIGVycm9yIGxvZ3MnLFxuICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgcHJpb3JpdHk6IDMsXG4gICAgICBpbmRleDogJyonLCAvLyB0b0RvOiB3ZSBzaG91bGQgdGFrZSBoZXJlIHRoZSB0ZWFtIG5hbWUgYnV0IGZvciBvbGRlciBzZXR1cHMgdG8gd29yayB3ZSBrZWVwIHRoYXQgZm9yIGNvbXBhdGliaWxpdHlcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDcHVVdGlsaXphdGlvbk1vbml0b3IoXG4gICAgY3B1VXRpbGl6YXRpb25UaHJlc2hvbGRQZXJjZW50OiBudW1iZXIgPSBERUZBVUxUX0NQVV9VVElMSVpBVElPTl9USFJFU0hPTERfUEVSQ0VOVCxcbiAgKTogTWV0cmljQWxhcm1Qcm9wcyB7XG4gICAgY29uc3QgY3B1VXRpbGl6YXRpb25NZXRyaWMgPSB0aGlzLnNlcnZpY2UubWV0cmljQ3B1VXRpbGl6YXRpb24oKS53aXRoKHsgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEwKSB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljOiBjcHVVdGlsaXphdGlvbk1ldHJpYyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBBdmVyYWdlIENQVSB1dGlsaXphdGlvbiBvdmVyIGxhc3QgMTAgbWludXRlcyBoaWdoZXIgdGhhbiAke2NwdVV0aWxpemF0aW9uVGhyZXNob2xkUGVyY2VudH0lYCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY3cuQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IGNwdVV0aWxpemF0aW9uVGhyZXNob2xkUGVyY2VudCxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgcHJpb3JpdHk6IDMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTWVtb3J5VXRpbGl6YXRpb25Nb25pdG9yKFxuICAgIG1lbW9yeVV0aWxpemF0aW9uVGhyZXNob2xkUGVyY2VudDogbnVtYmVyID0gREVGQVVMVF9NRU1PUllfVVRJTElaQVRJT05fVEhSRVNIT0xEX1BFUkNFTlQsXG4gICk6IE1ldHJpY0FsYXJtUHJvcHMge1xuICAgIGNvbnN0IG1lbW9yeVV0aWxpemF0aW9uTWV0cmljID0gdGhpcy5zZXJ2aWNlXG4gICAgICAubWV0cmljTWVtb3J5VXRpbGl6YXRpb24oKVxuICAgICAgLndpdGgoeyBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMTApIH0pO1xuXG4gICAgY29uc3QgbWFwcGVkTWV0cmljID0gbmV3IGN3Lk1ldHJpYyh7XG4gICAgICAuLi5tZW1vcnlVdGlsaXphdGlvbk1ldHJpYyBhcyBNZXRyaWNQcm9wcyxcbiAgICAgIG1ldHJpY05hbWU6IGAke21lbW9yeVV0aWxpemF0aW9uTWV0cmljLm1ldHJpY05hbWV9Lm1heGltdW1gLFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBtZXRyaWM6IG1hcHBlZE1ldHJpYyxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBNYXhpbXVtIG1lbW9yeSB1dGlsaXphdGlvbiBvdmVyIGxhc3QgMTAgbWludXRlcyBoaWdoZXIgdGhhbiAke21lbW9yeVV0aWxpemF0aW9uVGhyZXNob2xkUGVyY2VudH0lYCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY3cuQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IG1lbW9yeVV0aWxpemF0aW9uVGhyZXNob2xkUGVyY2VudCxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgcHJpb3JpdHk6IDMsXG4gICAgfTtcbiAgfVxuXG59XG4iXX0=
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dhdGNoZnVsL2Vjcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE4QztBQUM5QyxpREFBaUQ7QUFHakQsMkNBQXVDO0FBRXZDLDBCQUFvRztBQUVwRyxNQUFNLHlDQUF5QyxHQUFHLEVBQUUsQ0FBQztBQUNyRCxNQUFNLDRDQUE0QyxHQUFHLEVBQUUsQ0FBQztBQUN4RCxNQUFNLCtCQUErQixHQUFHLENBQUMsQ0FBQztBQTRDMUM7Ozs7Ozs7R0FPRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxzQkFBUztJQUk1QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUU3QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQzVCLGVBQVcsQ0FBQyxlQUFlLEVBQzNCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FDdkUsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFDNUIsZUFBVyxDQUFDLGtCQUFrQixFQUM5QixJQUFJLENBQUMsOEJBQThCLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQzdFLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQzVCLGVBQVcsQ0FBQyxhQUFhLEVBQ3pCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FDNUQsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksRUFDL0IsZUFBVyxD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b250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGN3IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IE1ldHJpY1Byb3BzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgZWNzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJV2F0Y2hmdWwgfSBmcm9tICcuL3dhdGNoZnVsJztcbmltcG9ydCB7IENvbXBhcmlzb25PcGVyYXRvciwgTG9nQWxhcm1Qcm9wcywgTWV0cmljQWxhcm1Qcm9wcywgTW9uaXRvclR5cGUsIFVuaXRPZlBlcmlvZCB9IGZyb20gJy4uJztcblxuY29uc3QgREVGQVVMVF9DUFVfVVRJTElaQVRJT05fVEhSRVNIT0xEX1BFUkNFTlQgPSA4MDtcbmNvbnN0IERFRkFVTFRfTUVNT1JZX1VUSUxJWkFUSU9OX1RIUkVTSE9MRF9QRVJDRU5UID0gODU7XG5jb25zdCBERUZBVUxUX01JTklNVU1fTlVNQkVSX09GX1RBU0tTID0gMTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBkZWZpbmluZyBhbGFybXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hFY3NTZXJ2aWNlT3B0aW9ucyB7XG4gIC8qKlxuICAgICAqIFRocmVzaG9sZCBmb3IgdGhlIGNwdSB1dGlsaXphdGlvbiBhbGFybSBhcyBwZXJjZW50YWdlLlxuICAgICAqXG4gICAgICogQGRlZmF1bHRWYWx1ZSA4MFxuICAgICAqL1xuICByZWFkb25seSBjcHVVdGlsaXphdGlvblRocmVzaG9sZFBlcmNlbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAgICogVGhyZXNob2xkIGZvciB0aGUgbWVtb3J5IHV0aWxpemF0aW9uIGFsYXJtIGFzIHBlcmNlbnRhZ2UuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdFZhbHVlIDk1XG4gICAgICovXG4gIHJlYWRvbmx5IG1lbW9yeVV0aWxpemF0aW9uVGhyZXNob2xkUGVyY2VudD86IG51bWJlcjtcblxuICAvKipcbiAgICAgKiBNaW5pbXVtIG51bWJlciBvZiB0YXNrcyB0aGF0IHNob3VsZCBiZSBydW5uaW5nLlxuICAgICAqXG4gICAgICogQGRlZmF1bHRWYWx1ZSAxXG4gICAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1OdW1iZXJPZlRhc2tzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgV2F0Y2hFY3NTZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hFY3NTZXJ2aWNlUHJvcHMgZXh0ZW5kcyBXYXRjaEVjc1NlcnZpY2VPcHRpb25zIHtcbiAgLyoqXG4gICAgICogVGhlIHJlZmVyZW5jZSB0byBJV2F0Y2hmdWwgY2xhc3MuIFVzZWQgaW50ZXJuYWxseS5cbiAgICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2hmdWw6IElXYXRjaGZ1bDtcblxuICAvKipcbiAgICAgKiBUaGUgRUNTIHNlcnZpY2UgdGhhdCBzaG91bGQgYmUgd2F0Y2hlZC5cbiAgICAgKiBbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXVxuICAgICAqL1xuICByZWFkb25seSBzZXJ2aWNlOiBlY3MuQmFzZVNlcnZpY2U7XG59XG5cbi8qKlxuICogQSBDb25zdHJ1Y3Qgd2hpY2ggY3JlYXRlcyBkZWZhdWx0IGFsYXJtcyBmb3IgRUNTIHNlcnZpY2VzLlxuICogQSBDb25zdHJ1Y3Qgd2hpY2ggY3JlYXRlcyB0aGUgZm9sbG93aW5nIGFsYXJtcyBmb3IgRUNTIHNlcnZpY2VzOlxuICpcbiAqIC0gY3B1IHV0aWxpemF0aW9uXG4gKiAtIG1lbW9yeSB1dGlsaXphdGlvblxuICogLSBlcnJvciBsb2cgYWxlcnRcbiAqL1xuZXhwb3J0IGNsYXNzIFdhdGNoRWNzU2VydmljZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2F0Y2hmdWw6IElXYXRjaGZ1bDtcbiAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBlY3MuQmFzZVNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdhdGNoRWNzU2VydmljZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMud2F0Y2hmdWwgPSBwcm9wcy53YXRjaGZ1bDtcbiAgICB0aGlzLnNlcnZpY2UgPSBwcm9wcy5zZXJ2aWNlO1xuXG4gICAgdGhpcy53YXRjaGZ1bC5jcmVhdGVBbGFybSh0aGlzLFxuICAgICAgTW9uaXRvclR5cGUuQ1BVX1VUSUxJWkFUSU9OLFxuICAgICAgdGhpcy5jcmVhdGVDcHVVdGlsaXphdGlvbk1vbml0b3IocHJvcHMuY3B1VXRpbGl6YXRpb25UaHJlc2hvbGRQZXJjZW50KSxcbiAgICApO1xuICAgIHRoaXMud2F0Y2hmdWwuY3JlYXRlQWxhcm0odGhpcyxcbiAgICAgIE1vbml0b3JUeXBlLk1FTU9SWV9VVElMSVpBVElPTixcbiAgICAgIHRoaXMuY3JlYXRlTWVtb3J5VXRpbGl6YXRpb25Nb25pdG9yKHByb3BzLm1lbW9yeVV0aWxpemF0aW9uVGhyZXNob2xkUGVyY2VudCksXG4gICAgKTtcbiAgICB0aGlzLndhdGNoZnVsLmNyZWF0ZUFsYXJtKHRoaXMsXG4gICAgICBNb25pdG9yVHlwZS5SVU5OSU5HX1RBU0tTLFxuICAgICAgdGhpcy5jcmVhdGVOdW1iZXJPZlRhc2tzTW9uaXRvcihwcm9wcy5taW5pbXVtTnVtYmVyT2ZUYXNrcyksXG4gICAgKTtcbiAgICB0aGlzLndhdGNoZnVsLmNyZWF0ZUxvZ0FsYXJtKHRoaXMsXG4gICAgICBNb25pdG9yVHlwZS5MT0dfRVJST1JfTU9OSVRPUixcbiAgICAgIHRoaXMuY3JlYXRlTG9nRXJyb3JNb25pdG9yKCksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTG9nRXJyb3JNb25pdG9yKCk6IExvZ0FsYXJtUHJvcHMge1xuICAgIHJldHVybiB7XG4gICAgICBhdXRvQ2xvc2VPcHNHZW5pZUFsZXJ0czogdHJ1ZSxcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIHVuaXRPZlBlcmlvZDogVW5pdE9mUGVyaW9kLk1JTlVURVMsIC8vIHRvRG86IG1vdmUgdGhhdCBzb21ld2hlcmUgZWxzZSBhbmQgc2V0IGRlZmF1bHRzIHRoZXJlP1xuICAgICAgcGVyaW9kT3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgICAgc3RhdGlzdGljOiAnY291bnQnLFxuICAgICAgcXVlcnlGaWx0ZXJzOiAnZXJyb3InLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogJ0F1dG8tZ2VuZXJhdGVkIGFsZXJ0IGZvciBlcnJvciBsb2dzJyxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIHByaW9yaXR5OiAzLFxuICAgICAgaW5kZXg6ICcqJywgLy8gdG9Ebzogd2Ugc2hvdWxkIHRha2UgaGVyZSB0aGUgdGVhbSBuYW1lIGJ1dCBmb3Igb2xkZXIgc2V0dXBzIHRvIHdvcmsgd2Uga2VlcCB0aGF0IGZvciBjb21wYXRpYmlsaXR5XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ3B1VXRpbGl6YXRpb25Nb25pdG9yKFxuICAgIGNwdVV0aWxpemF0aW9uVGhyZXNob2xkUGVyY2VudDogbnVtYmVyID0gREVGQVVMVF9DUFVfVVRJTElaQVRJT05fVEhSRVNIT0xEX1BFUkNFTlQsXG4gICk6IE1ldHJpY0FsYXJtUHJvcHMge1xuICAgIGNvbnN0IGNwdVV0aWxpemF0aW9uTWV0cmljID0gdGhpcy5zZXJ2aWNlLm1ldHJpY0NwdVV0aWxpemF0aW9uKCkud2l0aCh7IHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxMCkgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldHJpYzogY3B1VXRpbGl6YXRpb25NZXRyaWMsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgQXZlcmFnZSBDUFUgdXRpbGl6YXRpb24gb3ZlciBsYXN0IDEwIG1pbnV0ZXMgaGlnaGVyIHRoYW4gJHtjcHVVdGlsaXphdGlvblRocmVzaG9sZFBlcmNlbnR9JWAsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGN3LkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiBjcHVVdGlsaXphdGlvblRocmVzaG9sZFBlcmNlbnQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIHByaW9yaXR5OiAzLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU1lbW9yeVV0aWxpemF0aW9uTW9uaXRvcihcbiAgICBtZW1vcnlVdGlsaXphdGlvblRocmVzaG9sZFBlcmNlbnQ6IG51bWJlciA9IERFRkFVTFRfTUVNT1JZX1VUSUxJWkFUSU9OX1RIUkVTSE9MRF9QRVJDRU5ULFxuICApOiBNZXRyaWNBbGFybVByb3BzIHtcbiAgICBjb25zdCBtZW1vcnlVdGlsaXphdGlvbk1ldHJpYyA9IHRoaXMuc2VydmljZVxuICAgICAgLm1ldHJpY01lbW9yeVV0aWxpemF0aW9uKClcbiAgICAgIC53aXRoKHsgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEwKSB9KTtcblxuICAgIGNvbnN0IG1hcHBlZE1ldHJpYyA9IG5ldyBjdy5NZXRyaWMoe1xuICAgICAgLi4ubWVtb3J5VXRpbGl6YXRpb25NZXRyaWMgYXMgTWV0cmljUHJvcHMsXG4gICAgICBtZXRyaWNOYW1lOiBgJHttZW1vcnlVdGlsaXphdGlvbk1ldHJpYy5tZXRyaWNOYW1lfS5tYXhpbXVtYCxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljOiBtYXBwZWRNZXRyaWMsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgTWF4aW11bSBtZW1vcnkgdXRpbGl6YXRpb24gb3ZlciBsYXN0IDEwIG1pbnV0ZXMgaGlnaGVyIHRoYW4gJHttZW1vcnlVdGlsaXphdGlvblRocmVzaG9sZFBlcmNlbnR9JWAsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGN3LkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiBtZW1vcnlVdGlsaXphdGlvblRocmVzaG9sZFBlcmNlbnQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIHByaW9yaXR5OiAzLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU51bWJlck9mVGFza3NNb25pdG9yKG1pbmltdW1OdW1iZXJPZlRhc2tzOiBudW1iZXIgPSBERUZBVUxUX01JTklNVU1fTlVNQkVSX09GX1RBU0tTKTogTWV0cmljQWxhcm1Qcm9wcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldHJpYzogdGhpcy5zZXJ2aWNlLm1ldHJpYygnc2VydmljZS5ydW5uaW5nJywge1xuICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICAgIHN0YXRpc3RpYzogJ21pbicsXG4gICAgICAgIGxhYmVsOiAnTnVtYmVyIG9mIHJ1bm5pbmcgdGFza3MnLFxuICAgICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgICAgYWNjb3VudF9pZDogU3RhY2sub2YodGhpcykuYWNjb3VudCxcbiAgICAgICAgICBzZXJ2aWNlbmFtZTogdGhpcy5zZXJ2aWNlLnNlcnZpY2VOYW1lLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgTnVtYmVyIG9mIHJ1bm5pbmcgdGFza3MgZm9yICR7dGhpcy5zZXJ2aWNlLnNlcnZpY2VOYW1lfSBpcyBsZXNzIHRoZW4gJHttaW5pbXVtTnVtYmVyT2ZUYXNrc31gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjdy5Db21wYXJpc29uT3BlcmF0b3IuTEVTU19USEFOX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogbWluaW11bU51bWJlck9mVGFza3MsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIHByaW9yaXR5OiAxLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -62,5 +62,9 @@ export declare enum MonitorType {
|
|
|
62
62
|
/**
|
|
63
63
|
* Connection error metrics for Application load balancer target group
|
|
64
64
|
*/
|
|
65
|
-
CONNECTION_ERROR = "ConnectionError"
|
|
65
|
+
CONNECTION_ERROR = "ConnectionError",
|
|
66
|
+
/**
|
|
67
|
+
* Running fargate tasks monitor
|
|
68
|
+
*/
|
|
69
|
+
RUNNING_TASKS = "RunningTasks"
|
|
66
70
|
}
|
|
@@ -67,5 +67,9 @@ var MonitorType;
|
|
|
67
67
|
* Connection error metrics for Application load balancer target group
|
|
68
68
|
*/
|
|
69
69
|
MonitorType["CONNECTION_ERROR"] = "ConnectionError";
|
|
70
|
+
/**
|
|
71
|
+
* Running fargate tasks monitor
|
|
72
|
+
*/
|
|
73
|
+
MonitorType["RUNNING_TASKS"] = "RunningTasks";
|
|
70
74
|
})(MonitorType || (exports.MonitorType = MonitorType = {}));
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvci10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dhdGNoZnVsL21vbml0b3ItdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLFdBc0ZYO0FBdEZELFdBQVksV0FBVztJQUVyQjs7T0FFRztJQUNILHlEQUEwQyxDQUFBO0lBRTFDOztPQUVHO0lBQ0gsMkNBQTRCLENBQUE7SUFFNUI7O09BRUc7SUFDSCw4Q0FBK0IsQ0FBQTtJQUUvQjs7T0FFRztJQUNILGlEQUFrQyxDQUFBO0lBRWxDOztPQUVHO0lBQ0gsOENBQStCLENBQUE7SUFFL0I7O09BRUc7SUFDSCw0REFBNkMsQ0FBQTtJQUU3Qzs7T0FFRztJQUNILDBEQUEyQyxDQUFBO0lBRTNDOztPQUVHO0lBQ0gsNERBQTZDLENBQUE7SUFFN0M7O09BRUc7SUFDSCxvRUFBcUQsQ0FBQTtJQUVyRDs7T0FFRztJQUNILHVEQUF3QyxDQUFBO0lBRXhDOztPQUVHO0lBQ0gsb0RBQXFDLENBQUE7SUFFckM7O09BRUc7SUFDSCxnQ0FBaUIsQ0FBQTtJQUVqQjs7T0FFRztJQUNILHNDQUF1QixDQUFBO0lBRXZCOztPQUVHO0lBQ0gsb0NBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCxpREFBa0MsQ0FBQTtJQUVsQzs7T0FFRztJQUNILG1EQUFvQyxDQUFBO0lBRXBDOztPQUVHO0lBQ0gsNkNBQThCLENBQUE7QUFDaEMsQ0FBQyxFQXRGVyxXQUFXLDJCQUFYLFdBQVcsUUFzRnRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTW9uaXRvclR5cGUge1xuXG4gIC8qKlxuICAgKiBNb25pdG9yIGlkIGZvciBhcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VyIHJlamVjdGVkIGNvbm5lY3Rpb25zXG4gICAqL1xuICBSRUpFQ1RFRF9DT05ORUNUSU9OID0gJ1JlamVjdGVkQ29ubmVjdGlvbicsXG5cbiAgLyoqXG4gICAqIDV4eCBlcnJvciBjb2RlcyBmb3IgY2xvdWRmcm9udCBhbmQgYXBwbGljYXRpb24gbG9hZCBiYWxhbmNlclxuICAgKi9cbiAgSFRUUF9DT0RFNVhYID0gJ0h0dHBDb2RlNXh4JyxcblxuICAvKipcbiAgICogQ2FjaGUgaGl0IHJhdGUgZm9yIGRvY3VtZW50IGRiXG4gICAqL1xuICBDQUNIRV9ISVRfUkFURSA9ICdjYWNoZUhpdFJhdGUnLFxuXG4gIC8qKlxuICAgKiBDUFUgVXRpbGl6YXRpb24gZm9yIGRvY3VtZW50IGRiLCBFQ1MgYW5kIFJEU1xuICAgKi9cbiAgQ1BVX1VUSUxJWkFUSU9OID0gJ0NwdVV0aWxpemF0aW9uJyxcblxuICAvKipcbiAgICogU3dhcCB1c2FnZSBmb3IgZG9jdW1lbnQgREJcbiAgICovXG4gIFNXQVBfVVNBR0UgPSAnU3dhcFVzYWdlVG9vSGlnaCcsXG5cbiAgLyoqXG4gICAqIEZyZWUgbG9jYWwgc3RvcmFnZSBmb3IgZG9jdW1lbnQgREJcbiAgICovXG4gIEZSRUVfTE9DQUxfU1RPUkFHRSA9ICdGcmVlTG9jYWxTdG9yYWdlVG9vTG93JyxcblxuICAvKipcbiAgICogUmVhZCB0aHJvdHRsZSBldmVudHMgZm9yIGR5bmFtb2RiXG4gICAqL1xuICBSRUFEX1RIUk9UVExFX0VWRU5UUyA9ICdSZWFkVGhyb3R0bGVFdmVudHMnLFxuXG4gIC8qKlxuICAgKiBXcml0ZSB0aHJvdHRsZSBldmVudHMgZm9yIGR5bmFtb2RiXG4gICAqL1xuICBXUklURV9USFJPVFRMRV9FVkVOVFMgPSAnV3JpdGVUaHJvdHRsZUV2ZW50cycsXG5cbiAgLyoqXG4gICAqIFRocm90dGxlIHJlcXVlc3QgZXZlYnRzIGZvciBkeW5hbW9kYlxuICAgKi9cbiAgVEhST1RUTEVEX1JFUVVFU1RTX0VWRU5UUyA9ICdUaHJvdHRsZWRSZXF1ZXN0c0V2ZW50cycsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSB1dGlsaXphdGlvbiBmb3IgRUNTXG4gICAqL1xuICBNRU1PUllfVVRJTElaQVRJT04gPSAnTWVtb3J5VXRpbGl6YXRpb24nLFxuXG4gIC8qKlxuICAgKiBMb2cgZXJyb3IgbW9uaXRvciBmb3IgRUNTIGFuZCBsYW1iZGFcbiAgICovXG4gIExPR19FUlJPUl9NT05JVE9SID0gJ0xvZ0Vycm9yTW9uaXRvcicsXG5cbiAgLyoqXG4gICAqIElub3ZhdGlvbiBlcnJvcnMgd2l0aCBsYW1iZGFcbiAgICovXG4gIEVSUk9SUyA9ICdFcnJvcnMnLFxuXG4gIC8qKlxuICAgKiBUaHJvdHRsZSBtZXRyaWNzIGZvciBsYW1iZGFcbiAgICovXG4gIFRIUk9UVExFUyA9ICdUaHJvdHRsZXMnLFxuXG4gIC8qKlxuICAgKiBSdW50aW1lIGR1cmF0aW9uIG1ldHJpY3MgZm9yIGxhbWJkYVxuICAgKi9cbiAgRFVSQVRJT04gPSAnRHVyYXRpb24nLFxuXG4gIC8qKlxuICAgKiBGcmVlIG1lbW9yeSBmb3IgRG9jdW1lbnQgREIgYW5kIFJEU1xuICAgKi9cbiAgRlJFRUFCTEVfTUVNT1JZID0gJ0ZyZWVhYmxlTWVtb3J5JyxcblxuICAvKipcbiAgICogQ29ubmVjdGlvbiBlcnJvciBtZXRyaWNzIGZvciBBcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VyIHRhcmdldCBncm91cFxuICAgKi9cbiAgQ09OTkVDVElPTl9FUlJPUiA9ICdDb25uZWN0aW9uRXJyb3InLFxuXG4gIC8qKlxuICAgKiBSdW5uaW5nIGZhcmdhdGUgdGFza3MgbW9uaXRvclxuICAgKi9cbiAgUlVOTklOR19UQVNLUyA9ICdSdW5uaW5nVGFza3MnLFxufSJdfQ==
|
|
@@ -14,12 +14,16 @@ import { WatchLambdaFunctionOptions, WatchCloudfrontDistributionOptions, WatchAp
|
|
|
14
14
|
export interface IWatchful extends IConstruct {
|
|
15
15
|
/**
|
|
16
16
|
* Adds and alert for error logs
|
|
17
|
+
* @param scope - The construct to add the alarm to
|
|
17
18
|
* @param id - The name of the service
|
|
19
|
+
* @param alarm - The alarm properties see {@link LogAlarmProps}
|
|
18
20
|
*/
|
|
19
21
|
createLogAlarm(scope: Construct, id: MonitorType, alarm: LogAlarmProps): void;
|
|
20
22
|
/**
|
|
21
23
|
* Adds the alarmTopic as alarm action to the given alarm.
|
|
22
|
-
* @param
|
|
24
|
+
* @param scope - The construct to add the alarm to
|
|
25
|
+
* @param id - The id of the alarm
|
|
26
|
+
* @param alarm - Additional options for the watch see {@link MetricAlarmProps}
|
|
23
27
|
*
|
|
24
28
|
*/
|
|
25
29
|
createAlarm(scope: Construct, id: MonitorType, alarm: MetricAlarmProps): void;
|
|
@@ -59,41 +63,49 @@ export declare abstract class AbstractWatchful extends Construct implements IWat
|
|
|
59
63
|
/**
|
|
60
64
|
* Adds alarms for the given lambda function.
|
|
61
65
|
* @param fn - A lambda function that should be watched [disable-awslint:ref-via-interface]
|
|
66
|
+
* @param options - Additional options for the watch see {@link WatchLambdaFunctionOptions}
|
|
62
67
|
*/
|
|
63
68
|
watchLambdaFunction(fn: lambda.Function, options?: WatchLambdaFunctionOptions): void;
|
|
64
69
|
/**
|
|
65
70
|
* Adds alarms for the given Cloudfront Distribution.
|
|
66
71
|
* @param cf - A Cloudfront Distribution that should be watched [disable-awslint:ref-via-interface]
|
|
72
|
+
* @param options - Additional options for the watch see {@link WatchCloudfrontDistributionOptions}
|
|
67
73
|
*/
|
|
68
74
|
watchCloudfrontDistribution(cf: cloudfront.Distribution, options?: WatchCloudfrontDistributionOptions): void;
|
|
69
75
|
/**
|
|
70
76
|
* Adds alarms for the given ECS service.
|
|
71
77
|
* @param service - An ECS service that should be watched [disable-awslint:ref-via-interface]
|
|
78
|
+
* @param options - Additional options for the watch see {@link WatchEcsServiceOptions}
|
|
72
79
|
*/
|
|
73
80
|
watchEcsService(service: ecs.BaseService, options?: WatchEcsServiceOptions): void;
|
|
74
81
|
/**
|
|
75
82
|
* Adds alarms for the given application load balancer.
|
|
76
83
|
* @param alb - An application load balancer that should be watched [disable-awslint:ref-via-interface]
|
|
84
|
+
* @param options - Additional options for the watch see {@link WatchApplicationLoadBalancerOptions}
|
|
77
85
|
*/
|
|
78
86
|
watchAlb(alb: elbv2.ApplicationLoadBalancer, options?: WatchApplicationLoadBalancerOptions): void;
|
|
79
87
|
/**
|
|
80
88
|
* Adds alarms for the given application target gorup.
|
|
81
89
|
* @param atg - An application target group that should be watched [disable-awslint:ref-via-interface]
|
|
90
|
+
* @param options - Additional options for the watch see {@link WatchApplicationTargetGroupOptions}
|
|
82
91
|
*/
|
|
83
92
|
watchApplicationTargetGroup(atg: elbv2.ApplicationTargetGroup, options?: WatchApplicationTargetGroupOptions): void;
|
|
84
93
|
/**
|
|
85
94
|
* Adds alarms for the given DocDb cluster.
|
|
86
95
|
* @param docDb - An DocDb cluster that should be watched [disable-awslint:ref-via-interface]
|
|
96
|
+
* @param options - Additional options for the watch see {@link WatchDocDbClusterOptions}
|
|
87
97
|
*/
|
|
88
98
|
watchDocDb(docDb: docdb.DatabaseCluster, options?: WatchDocDbClusterOptions): void;
|
|
89
99
|
/**
|
|
90
100
|
* Adds alarms for the given database cluster.
|
|
91
101
|
* @param databaseCluster - An database cluster that should be watched [disable-awslint:ref-via-interface]
|
|
102
|
+
* @param options - Additional options for the watch see {@link WatchDatabaseClusterOptions}
|
|
92
103
|
*/
|
|
93
104
|
watchDatabaseCluster(databaseCluster: rds.DatabaseCluster, options?: WatchDatabaseClusterOptions): void;
|
|
94
105
|
/**
|
|
95
106
|
* Adds alarms for the given DynamoDb table.
|
|
96
107
|
* @param dynamoDbTable - An database cluster that should be watched [disable-awslint:ref-via-interface]
|
|
108
|
+
* @param options - Additional options for the watch see {@link WatchDynamoDbTableOptions}
|
|
97
109
|
*/
|
|
98
110
|
watchDynamoDbTable(dynamoDbTable: dynamodb.Table, options?: WatchDynamoDbTableOptions): void;
|
|
99
111
|
}
|
|
@@ -138,12 +150,16 @@ export declare class Watchful extends AbstractWatchful {
|
|
|
138
150
|
constructor(scope: Construct, id: string, props?: WatchfulProps);
|
|
139
151
|
/**
|
|
140
152
|
* Adds the alarmTopic as alarm action to the given alarm.
|
|
141
|
-
* @param
|
|
153
|
+
* @param scope - The construct to add the alarm to
|
|
154
|
+
* @param id - The id of the alarm
|
|
155
|
+
* @param alarm - Additional options for the watch see {@link MetricAlarmProps}
|
|
142
156
|
*/
|
|
143
157
|
createAlarm(scope: Construct, id: MonitorType, alarm: MetricAlarmProps): void;
|
|
144
158
|
/**
|
|
145
159
|
* Adds an alert for error logs
|
|
146
|
-
* @param scope
|
|
160
|
+
* @param scope - The construct to add the alarm to
|
|
161
|
+
* @param id - The id of the alarm
|
|
162
|
+
* @param alarm - The alarm properties see {@link LogAlarmProps}
|
|
147
163
|
*/
|
|
148
164
|
createLogAlarm(scope: Construct, id: MonitorType, alarm: LogAlarmProps): void;
|
|
149
165
|
/**
|
package/lib/watchful/watchful.js
CHANGED
|
@@ -36,6 +36,7 @@ class AbstractWatchful extends constructs_1.Construct {
|
|
|
36
36
|
/**
|
|
37
37
|
* Adds alarms for the given lambda function.
|
|
38
38
|
* @param fn - A lambda function that should be watched [disable-awslint:ref-via-interface]
|
|
39
|
+
* @param options - Additional options for the watch see {@link WatchLambdaFunctionOptions}
|
|
39
40
|
*/
|
|
40
41
|
watchLambdaFunction(fn, options = {}) {
|
|
41
42
|
new _1.WatchLambdaFunction(this, fn.node.id, {
|
|
@@ -47,6 +48,7 @@ class AbstractWatchful extends constructs_1.Construct {
|
|
|
47
48
|
/**
|
|
48
49
|
* Adds alarms for the given Cloudfront Distribution.
|
|
49
50
|
* @param cf - A Cloudfront Distribution that should be watched [disable-awslint:ref-via-interface]
|
|
51
|
+
* @param options - Additional options for the watch see {@link WatchCloudfrontDistributionOptions}
|
|
50
52
|
*/
|
|
51
53
|
watchCloudfrontDistribution(cf, options = {}) {
|
|
52
54
|
new _1.WatchCloudfrontDistribution(this, cf.node.id, {
|
|
@@ -58,6 +60,7 @@ class AbstractWatchful extends constructs_1.Construct {
|
|
|
58
60
|
/**
|
|
59
61
|
* Adds alarms for the given ECS service.
|
|
60
62
|
* @param service - An ECS service that should be watched [disable-awslint:ref-via-interface]
|
|
63
|
+
* @param options - Additional options for the watch see {@link WatchEcsServiceOptions}
|
|
61
64
|
*/
|
|
62
65
|
watchEcsService(service, options = {}) {
|
|
63
66
|
new _1.WatchEcsService(this, service.node.id, {
|
|
@@ -69,6 +72,7 @@ class AbstractWatchful extends constructs_1.Construct {
|
|
|
69
72
|
/**
|
|
70
73
|
* Adds alarms for the given application load balancer.
|
|
71
74
|
* @param alb - An application load balancer that should be watched [disable-awslint:ref-via-interface]
|
|
75
|
+
* @param options - Additional options for the watch see {@link WatchApplicationLoadBalancerOptions}
|
|
72
76
|
*/
|
|
73
77
|
watchAlb(alb, options = {}) {
|
|
74
78
|
new _1.WatchApplicationLoadBalancer(this, alb.node.id, {
|
|
@@ -80,6 +84,7 @@ class AbstractWatchful extends constructs_1.Construct {
|
|
|
80
84
|
/**
|
|
81
85
|
* Adds alarms for the given application target gorup.
|
|
82
86
|
* @param atg - An application target group that should be watched [disable-awslint:ref-via-interface]
|
|
87
|
+
* @param options - Additional options for the watch see {@link WatchApplicationTargetGroupOptions}
|
|
83
88
|
*/
|
|
84
89
|
watchApplicationTargetGroup(atg, options = {}) {
|
|
85
90
|
new _1.WatchApplicationTargetGroup(this, atg.node.id, {
|
|
@@ -91,6 +96,7 @@ class AbstractWatchful extends constructs_1.Construct {
|
|
|
91
96
|
/**
|
|
92
97
|
* Adds alarms for the given DocDb cluster.
|
|
93
98
|
* @param docDb - An DocDb cluster that should be watched [disable-awslint:ref-via-interface]
|
|
99
|
+
* @param options - Additional options for the watch see {@link WatchDocDbClusterOptions}
|
|
94
100
|
*/
|
|
95
101
|
watchDocDb(docDb, options = {}) {
|
|
96
102
|
new _1.WatchDocDbCluster(this, docDb.node.id, {
|
|
@@ -102,6 +108,7 @@ class AbstractWatchful extends constructs_1.Construct {
|
|
|
102
108
|
/**
|
|
103
109
|
* Adds alarms for the given database cluster.
|
|
104
110
|
* @param databaseCluster - An database cluster that should be watched [disable-awslint:ref-via-interface]
|
|
111
|
+
* @param options - Additional options for the watch see {@link WatchDatabaseClusterOptions}
|
|
105
112
|
*/
|
|
106
113
|
watchDatabaseCluster(databaseCluster, options = {}) {
|
|
107
114
|
new _1.WatchDatabaseCluster(this, databaseCluster.node.id, {
|
|
@@ -113,6 +120,7 @@ class AbstractWatchful extends constructs_1.Construct {
|
|
|
113
120
|
/**
|
|
114
121
|
* Adds alarms for the given DynamoDb table.
|
|
115
122
|
* @param dynamoDbTable - An database cluster that should be watched [disable-awslint:ref-via-interface]
|
|
123
|
+
* @param options - Additional options for the watch see {@link WatchDynamoDbTableOptions}
|
|
116
124
|
*/
|
|
117
125
|
watchDynamoDbTable(dynamoDbTable, options = {}) {
|
|
118
126
|
new _1.WatchDynamoDbTable(this, dynamoDbTable.node.id, {
|
|
@@ -145,7 +153,9 @@ class Watchful extends AbstractWatchful {
|
|
|
145
153
|
}
|
|
146
154
|
/**
|
|
147
155
|
* Adds the alarmTopic as alarm action to the given alarm.
|
|
148
|
-
* @param
|
|
156
|
+
* @param scope - The construct to add the alarm to
|
|
157
|
+
* @param id - The id of the alarm
|
|
158
|
+
* @param alarm - Additional options for the watch see {@link MetricAlarmProps}
|
|
149
159
|
*/
|
|
150
160
|
createAlarm(scope, id, alarm) {
|
|
151
161
|
const { shouldOverrideThreshold, threshold } = this.shouldOverrideThreshold({ watchfulMonitorScope: scope, watchfulNodeId: id });
|
|
@@ -178,7 +188,9 @@ class Watchful extends AbstractWatchful {
|
|
|
178
188
|
}
|
|
179
189
|
/**
|
|
180
190
|
* Adds an alert for error logs
|
|
181
|
-
* @param scope
|
|
191
|
+
* @param scope - The construct to add the alarm to
|
|
192
|
+
* @param id - The id of the alarm
|
|
193
|
+
* @param alarm - The alarm properties see {@link LogAlarmProps}
|
|
182
194
|
*/
|
|
183
195
|
createLogAlarm(scope, id, alarm) {
|
|
184
196
|
const { shouldOverrideThreshold, threshold } = this.shouldOverrideThreshold({ watchfulMonitorScope: scope, watchfulNodeId: id });
|
|
@@ -211,4 +223,4 @@ class Watchful extends AbstractWatchful {
|
|
|
211
223
|
exports.Watchful = Watchful;
|
|
212
224
|
_b = JSII_RTTI_SYMBOL_1;
|
|
213
225
|
Watchful[_b] = { fqn: "@rio-cloud/cdk-v2-constructs.Watchful", version: "0.0.0" };
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hmdWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2hmdWwvd2F0Y2hmdWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBMEQ7QUFFMUQsaUVBQWlFO0FBUWpFLDJDQUEyQztBQUMzQywyQ0FBbUQ7QUFDbkQseUJBdUJZO0FBK0NaLE1BQXNCLGdCQUFpQixTQUFRLHNCQUFTO0lBQXhEOztRQUNxQiwwQkFBcUIsR0FBdUMsRUFBRSxDQUFDO0tBZ0luRjtJQTVIQzs7T0FFRztJQUNJLHNCQUFzQixDQUFDLEtBQWtDO1FBQzlELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7WUFDOUIsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLHNCQUFzQjtZQUNwRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyx1QkFBdUIsQ0FBQyxLQUFtQztRQUNuRSxLQUFLLE1BQU0sb0JBQW9CLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDOUQsSUFDRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDMUYsS0FBSyxDQUFDLGNBQWMsS0FBSyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEYsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUFBLENBQUM7SUFFRjs7O09BR0c7SUFDSSxtQkFBbUIsQ0FBQyxFQUFtQixFQUFFLFVBQXNDLEVBQUU7UUFFdEYsSUFB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QUUsRUFBRTtnQkFDN0IsWUFBWSxFQUFFLElBQUksQ0FBQywwQkFBMEIsSUFBSSxFQUFFO2dCQUNuRCxXQUFXLEVBQUUsS0FBSyxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQyx5QkFBeUI7Z0JBQzlFLHVCQUF1QixFQUFFLEtBQUssQ0FBQyx1QkFBdUI7Z0JBQ3RELE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtnQkFDcEIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUseURBQXlEO2dCQUMzRixjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7Z0JBQ3BDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDMUIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUseURBQXlEO2dCQUMzRixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO2dCQUN4QyxTQUFTLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLFNBQW1CLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTO2dCQUMxRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7Z0JBQ3hCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztnQkFDbEIseUJBQXlCLEVBQUUsS0FBSyxDQUFDLHlCQUF5QjthQUMzRCxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEtBQWdCO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxxQkFBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7QUE5RkgsNEJBZ0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbnMsIEFzcGVjdHMsIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY2xvdWRmcm9udCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgKiBhcyBjd19hY3Rpb25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoLWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgZG9jZGIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWRvY2RiJztcbmltcG9ydCAqIGFzIGR5bmFtb2RiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgKiBhcyBlY3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjcyc7XG5pbXBvcnQgKiBhcyBlbGJ2MiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mic7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyByZHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJkcyc7XG5pbXBvcnQgKiBhcyBzbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5pbXBvcnQgKiBhcyBzc20gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7XG4gIFdhdGNoZnVsQXNwZWN0LFxuICBXYXRjaExhbWJkYUZ1bmN0aW9uLFxuICBXYXRjaExhbWJkYUZ1bmN0aW9uT3B0aW9ucyxcbiAgV2F0Y2hDbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICBXYXRjaENsb3VkZnJvbnREaXN0cmlidXRpb25PcHRpb25zLFxuICBXYXRjaEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyLFxuICBXYXRjaEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyT3B0aW9ucyxcbiAgV2F0Y2hFY3NTZXJ2aWNlLFxuICBXYXRjaEVjc1NlcnZpY2VPcHRpb25zLFxuICBXYXRjaEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAsXG4gIFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cE9wdGlvbnMsXG4gIERhdGFEb2dNZXRyaWNBbGFybSxcbiAgRGF0YURvZ0xvZ0FsYXJtLFxuICBNZXRyaWNBbGFybVByb3BzLFxuICBXYXRjaERvY0RiQ2x1c3RlcixcbiAgV2F0Y2hEb2NEYkNsdXN0ZXJPcHRpb25zLFxuICBXYXRjaERhdGFiYXNlQ2x1c3RlcixcbiAgV2F0Y2hEYXRhYmFzZUNsdXN0ZXJPcHRpb25zLFxuICBXYXRjaER5bmFtb0RiVGFibGUsXG4gIFdhdGNoRHluYW1vRGJUYWJsZU9wdGlvbnMsXG4gIExvZ0FsYXJtUHJvcHMsXG4gIE1vbml0b3JUeXBlLFxufSBmcm9tICcuLyc7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBXYXRjaGZ1bCBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJV2F0Y2hmdWwgZXh0ZW5kcyBJQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIEFkZHMgYW5kIGFsZXJ0IGZvciBlcnJvciBsb2dzXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlXG4gICAqL1xuICBjcmVhdGVMb2dBbGFybShzY29wZTogQ29uc3RydWN0LCBpZDogTW9uaXRvclR5cGUsIGFsYXJtOiBMb2dBbGFybVByb3BzKTogdm9pZDtcbiAgLyoqXG4gICAqIEFkZHMgdGhlIGFsYXJtVG9waWMgYXMgYWxhcm0gYWN0aW9uIHRvIHRoZSBnaXZlbiBhbGFybS5cbiAgICogQHBhcmFtIGFsYXJtIC0gVGhlIHdhdGNoZnVsIHRvIGFkZCB0aG9zZSByZXNvdXJjZXMgdG9cbiAgICpcbiAgICovXG4gIGNyZWF0ZUFsYXJtKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBNb25pdG9yVHlwZSwgYWxhcm06IE1ldHJpY0FsYXJtUHJvcHMpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJyaWRlQWxhcm1UaHJlc2hvbGRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc2NvcGUgb2YgdGhlIHJlc291cmNlIGZvciB3aGljaCB0aGUgdGhyZXNob2xkIG5lZWRzIHRvIGJlIG92ZXJyaWRlblxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvcmVkUmVzb3VyY2VTY29wZTogQ29uc3RydWN0O1xuXG4gIC8qKlxuICAgKiBJZCBvZiB0aGUgbW9uaXRvciB0aGF0IG5lZWRzIHRvIGJlIG92ZXJyaWRlbi5cbiAgICogRWcgLSBFcnJvcnMsIFRocmVzaG9sZHMsIExvZ0Vycm9yTW9uaXRvclxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvclR5cGU6IE1vbml0b3JUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIHRoYXQgbmVlZHMgdG8gYmUgc2V0XG4gICovXG4gIHJlYWRvbmx5IHRocmVzaG9sZDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNob3VsZE92ZXJyaWRlVGhyZXNob2xkUHJvcHMge1xuICByZWFkb25seSB3YXRjaGZ1bE1vbml0b3JTY29wZTogQ29uc3RydWN0O1xuICByZWFkb25seSB3YXRjaGZ1bE5vZGVJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNob3VsZE92ZXJyaWRlVGhyZXNob2xkUmV0dXJuUHJvcHMge1xuICByZWFkb25seSBzaG91bGRPdmVycmlkZVRocmVzaG9sZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdGhyZXNob2xkPzogbnVtYmVyO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RXYXRjaGZ1bCBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElXYXRjaGZ1bCB7XG4gIHByb3RlY3RlZCByZWFkb25seSBtZXRyaWNzQWxhcm1PdmVycmlkZXM6IEFycmF5PE92ZXJyaWRlQWxhcm1UaHJlc2hvbGRQcm9wcz4gPSBbXTtcbiAgYWJzdHJhY3QgY3JlYXRlTG9nQWxhcm0oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IE1vbml0b3JUeXBlLCBhbGFybTogTG9nQWxhcm1Qcm9wcyk6IHZvaWRcbiAgYWJzdHJhY3QgY3JlYXRlQWxhcm0oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IE1vbml0b3JUeXBlLCBhbGFybTogTWV0cmljQWxhcm1Qcm9wcyk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSBkZWZhdWx0IHRocmVzaG9sZHMgZm9yIHRoZSB3YXRjaGZ1bCBtb25pdG9yc1xuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlQWxhcm1UaHJlc2hvbGQocHJvcHM6IE92ZXJyaWRlQWxhcm1UaHJlc2hvbGRQcm9wcykge1xuICAgIHRoaXMubWV0cmljc0FsYXJtT3ZlcnJpZGVzLnB1c2goe1xuICAgICAgbW9uaXRvcmVkUmVzb3VyY2VTY29wZTogcHJvcHMubW9uaXRvcmVkUmVzb3VyY2VTY29wZSxcbiAgICAgIG1vbml0b3JUeXBlOiBwcm9wcy5tb25pdG9yVHlwZSxcbiAgICAgIHRocmVzaG9sZDogcHJvcHMudGhyZXNob2xkLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNob3VsZE92ZXJyaWRlVGhyZXNob2xkKHByb3BzOiBTaG91bGRPdmVycmlkZVRocmVzaG9sZFByb3BzKTogU2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGRSZXR1cm5Qcm9wcyB7XG4gICAgZm9yIChjb25zdCBtZXRyaWNzQWxhcm1PdmVycmlkZSBvZiB0aGlzLm1ldHJpY3NBbGFybU92ZXJyaWRlcykge1xuICAgICAgaWYgKFxuICAgICAgICBwcm9wcy53YXRjaGZ1bE1vbml0b3JTY29wZS5ub2RlLmlkID09PSBtZXRyaWNzQWxhcm1PdmVycmlkZS5tb25pdG9yZWRSZXNvdXJjZVNjb3BlLm5vZGUuaWQgJiZcbiAgICAgICAgcHJvcHMud2F0Y2hmdWxOb2RlSWQgPT09IG1ldHJpY3NBbGFybU92ZXJyaWRlLm1vbml0b3JUeXBlKSB7XG4gICAgICAgIHJldHVybiB7IHNob3VsZE92ZXJyaWRlVGhyZXNob2xkOiB0cnVlLCB0aHJlc2hvbGQ6IG1ldHJpY3NBbGFybU92ZXJyaWRlLnRocmVzaG9sZCB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBzaG91bGRPdmVycmlkZVRocmVzaG9sZDogZmFsc2UgfTtcbiAgfTtcblxuICAvKipcbiAgICogQWRkcyBhbGFybXMgZm9yIHRoZSBnaXZlbiBsYW1iZGEgZnVuY3Rpb24uXG4gICAqIEBwYXJhbSBmbiAtIEEgbGFtYmRhIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICovXG4gIHB1YmxpYyB3YXRjaExhbWJkYUZ1bmN0aW9uKGZuOiBsYW1iZGEuRnVuY3Rpb24sIG9wdGlvbnM6IFdhdGNoTGFtYmRhRnVuY3Rpb25PcHRpb25zID0ge30pOiB2b2lkIHtcblxuICAgIG5ldyBXYXRjaExhbWJkYUZ1bmN0aW9uKHRoaXMsIGZuLm5vZGUuaWQsIHtcbiAgICAgIHdhdGNoZnVsOiB0aGlzLFxuICAgICAgZm4sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYWxhcm1zIGZvciB0aGUgZ2l2ZW4gQ2xvdWRmcm9udCBEaXN0cmlidXRpb24uXG4gICAqIEBwYXJhbSBjZiAtIEEgQ2xvdWRmcm9udCBEaXN0cmlidXRpb24gdGhhdCBzaG91bGQgYmUgd2F0Y2hlZCBbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXVxuICAgKi9cbiAgcHVibGljIHdhdGNoQ2xvdWRmcm9udERpc3RyaWJ1dGlvbihcbiAgICBjZjogY2xvdWRmcm9udC5EaXN0cmlidXRpb24sXG4gICAgb3B0aW9uczogV2F0Y2hDbG91ZGZyb250RGlzdHJpYnV0aW9uT3B0aW9ucyA9IHt9LFxuICApOiB2b2lkIHtcbiAgICBuZXcgV2F0Y2hDbG91ZGZyb250RGlzdHJpYnV0aW9uKHRoaXMsIGNmLm5vZGUuaWQsIHtcbiAgICAgIHdhdGNoZnVsOiB0aGlzLFxuICAgICAgY2YsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYWxhcm1zIGZvciB0aGUgZ2l2ZW4gRUNTIHNlcnZpY2UuXG4gICAqIEBwYXJhbSBzZXJ2aWNlIC0gQW4gRUNTIHNlcnZpY2UgdGhhdCBzaG91bGQgYmUgd2F0Y2hlZCBbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXVxuICAgKi9cbiAgcHVibGljIHdhdGNoRWNzU2VydmljZShzZXJ2aWNlOiBlY3MuQmFzZVNlcnZpY2UsIG9wdGlvbnM6IFdhdGNoRWNzU2VydmljZU9wdGlvbnMgPSB7fSk6IHZvaWQge1xuICAgIG5ldyBXYXRjaEVjc1NlcnZpY2UodGhpcywgc2VydmljZS5ub2RlLmlkLCB7XG4gICAgICB3YXRjaGZ1bDogdGhpcyxcbiAgICAgIHNlcnZpY2UsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYWxhcm1zIGZvciB0aGUgZ2l2ZW4gYXBwbGljYXRpb24gbG9hZCBiYWxhbmNlci5cbiAgICogQHBhcmFtIGFsYiAtIEFuIGFwcGxpY2F0aW9uIGxvYWQgYmFsYW5jZXIgdGhhdCBzaG91bGQgYmUgd2F0Y2hlZCBbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXVxuICAgKi9cbiAgcHVibGljIHdhdGNoQWxiKGFsYjogZWxidjIuQXBwbGljYXRpb25Mb2FkQmFsYW5jZXIsIG9wdGlvbnM6IFdhdGNoQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJPcHRpb25zID0ge30pOiB2b2lkIHtcbiAgICBuZXcgV2F0Y2hBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcih0aGlzLCBhbGIubm9kZS5pZCwge1xuICAgICAgd2F0Y2hmdWw6IHRoaXMsXG4gICAgICBhbGIsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYWxhcm1zIGZvciB0aGUgZ2l2ZW4gYXBwbGljYXRpb24gdGFyZ2V0IGdvcnVwLlxuICAgKiBAcGFyYW0gYXRnIC0gQW4gYXBwbGljYXRpb24gdGFyZ2V0IGdyb3VwIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICovXG4gIHB1YmxpYyB3YXRjaEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAoXG4gICAgYXRnOiBlbGJ2Mi5BcHBsaWNhdGlvblRhcmdldEdyb3VwLFxuICAgIG9wdGlvbnM6IFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cE9wdGlvbnMgPSB7fSxcbiAgKTogdm9pZCB7XG4gICAgbmV3IFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cCh0aGlzLCBhdGcubm9kZS5pZCwge1xuICAgICAgd2F0Y2hmdWw6IHRoaXMsXG4gICAgICBhdGcsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYWxhcm1zIGZvciB0aGUgZ2l2ZW4gRG9jRGIgY2x1c3Rlci5cbiAgICogQHBhcmFtIGRvY0RiIC0gQW4gRG9jRGIgY2x1c3RlciB0aGF0IHNob3VsZCBiZSB3YXRjaGVkIFtkaXNhYmxlLWF3c2xpbnQ6cmVmLXZpYS1pbnRlcmZhY2VdXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hEb2NEYihkb2NEYjogZG9jZGIuRGF0YWJhc2VDbHVzdGVyLCBvcHRpb25zOiBXYXRjaERvY0RiQ2x1c3Rlck9wdGlvbnMgPSB7fSk6IHZvaWQge1xuICAgIG5ldyBXYXRjaERvY0RiQ2x1c3Rlcih0aGlzLCBkb2NEYi5ub2RlLmlkLCB7XG4gICAgICB3YXRjaGZ1bDogdGhpcyxcbiAgICAgIGRvY0RiLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFsYXJtcyBmb3IgdGhlIGdpdmVuIGRhdGFiYXNlIGNsdXN0ZXIuXG4gICAqIEBwYXJhbSBkYXRhYmFzZUNsdXN0ZXIgLSBBbiBkYXRhYmFzZSBjbHVzdGVyIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICovXG4gIHB1YmxpYyB3YXRjaERhdGFiYXNlQ2x1c3RlcihkYXRhYmFzZUNsdXN0ZXI6IHJkcy5EYXRhYmFzZUNsdXN0ZXIsIG9wdGlvbnM6IFdhdGNoRGF0YWJhc2VDbHVzdGVyT3B0aW9ucyA9IHt9KTogdm9pZCB7XG4gICAgbmV3IFdhdGNoRGF0YWJhc2VDbHVzdGVyKHRoaXMsIGRhdGFiYXNlQ2x1c3Rlci5ub2RlLmlkLCB7XG4gICAgICB3YXRjaGZ1bDogdGhpcyxcbiAgICAgIGRhdGFiYXNlQ2x1c3RlcixcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbGFybXMgZm9yIHRoZSBnaXZlbiBEeW5hbW9EYiB0YWJsZS5cbiAgICogQHBhcmFtIGR5bmFtb0RiVGFibGUgLSBBbiBkYXRhYmFzZSBjbHVzdGVyIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICovXG4gIHB1YmxpYyB3YXRjaER5bmFtb0RiVGFibGUoZHluYW1vRGJUYWJsZTogZHluYW1vZGIuVGFibGUsIG9wdGlvbnM6IFdhdGNoRHluYW1vRGJUYWJsZU9wdGlvbnMgPSB7fSk6IHZvaWQge1xuICAgIG5ldyBXYXRjaER5bmFtb0RiVGFibGUodGhpcywgZHluYW1vRGJUYWJsZS5ub2RlLmlkLCB7XG4gICAgICB3YXRjaGZ1bDogdGhpcyxcbiAgICAgIGR5bmFtb0RiVGFibGU6IGR5bmFtb0RiVGFibGUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgV2F0Y2hmdWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYXRjaGZ1bFByb3BzIHtcbiAgLyoqXG4gICAqIEFuIFNOUyB0b3BpYyBhcyB0YXJnZXQgZm9yIGFsYXJtIGFjdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgIFRoZSBTTlMgdG9waWMgcHJvdmlkZWQgYnkgT3BzR2VuaWUgSW50ZWdyYXRpb24gYWNjb3VudCBtb2R1bGUuXG4gICAqL1xuICByZWFkb25seSBhbGFybVNucz86IHNucy5JVG9waWM7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHRva2VuIGZvciB0aGUgRGF0YURvZyBNb25pdG9yIGN1c3RvbSByZXNvdXJjZS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBFbXB0eS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFEb2dNb25pdG9yU2VydmljZVRva2VuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIFRoZSBzdGFjayBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YURvZ01vbml0b3JTZXJ2aWNlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE9wc0dlbmllIGhhbmRsZSB1c2VkIGluIERhdGFEb2cgdG8gZm9yd2FyZCB0aGUgREQgbW9uaXRvciB0byBPcHNHZW5pZS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBFbXB0eSBpZiBkYXRhRG9nTW9uaXRvclNlcnZpY2VUb2tlbiBpcyBub3Qgc2V0LiBPdGhlcndpc2UsIHRlYW0gU1NNIHBhcmFtZXRlciBmcm9tIExhbmRpbmdab25lIGlzIHVzZWQuXG4gICAqL1xuICByZWFkb25seSBkYXRhRG9nT3BzR2VuaWVJbnRlZ3JhdGlvbk5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBjb25zdHJ1Y3QgdG8gd2F0Y2ggZ2l2ZW4gc2NvcGUgb3IgcmVzb3VyY2VzLiBPcGluaW9uYXRlZCBEYXRhRG9nIGFsYXJtcyBhcmUgYXV0b21hdGljYWxseSBjcmVhdGVkIGZvciB3YXRjaGVkIHJlc291cmNlcy5cbiAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2Ugd2F0Y2hmdWx2MiBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjbGFzcyBXYXRjaGZ1bCBleHRlbmRzIEFic3RyYWN0V2F0Y2hmdWwge1xuICBwcml2YXRlIHJlYWRvbmx5IGFsYXJtVG9waWM/OiBzbnMuSVRvcGljO1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFEb2dNb25pdG9yU2VydmljZVRva2VuPzogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFEb2dPcHNHZW5pZUludGVncmF0aW9uTmFtZT86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhRG9nTW9uaXRvclNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdhdGNoZnVsUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBjb25zdCBvcHNHZW5pZUFsYXJtVG9waWNBcm4gPSBGbi5pbXBvcnRWYWx1ZSgnb3BzZ2VuaWUtY2xvdWR3YXRjaC1hbGFybS1zbnMtdG9waWMtYXJuJyk7XG4gICAgLy8gY29uc3Qgb3BzR2VuaWVBbGFybVRvcGljID0gc25zLlRvcGljLmZyb21Ub3BpY0Fybih0aGlzLCAnT3BzR2VuaWVUb3BpYycsIG9wc0dlbmllQWxhcm1Ub3BpY0Fybik7XG4gICAgdGhpcy5hbGFybVRvcGljID0gcHJvcHMuYWxhcm1TbnM7XG4gICAgdGhpcy5kYXRhRG9nTW9uaXRvclNlcnZpY2VUb2tlbiA9IHByb3BzLmRhdGFEb2dNb25pdG9yU2VydmljZVRva2VuO1xuXG4gICAgdGhpcy5kYXRhRG9nTW9uaXRvclNlcnZpY2VOYW1lID0gcHJvcHMuZGF0YURvZ01vbml0b3JTZXJ2aWNlTmFtZSA/PyBTdGFjay5vZih0aGlzKS5zdGFja05hbWU7XG5cbiAgICBpZiAocHJvcHMuZGF0YURvZ01vbml0b3JTZXJ2aWNlVG9rZW4gIT09IHVuZGVmaW5lZCkge1xuXG4gICAgICBjb25zdCB0ZWFtTmFtZVBhcmFtID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ1RlYW1OYW1lUGFyYW0nLFxuICAgICAgICAnL2NvbmZpZy90ZWFtL25hbWUnLFxuICAgICAgKTtcbiAgICAgIHRoaXMuZGF0YURvZ09wc0dlbmllSW50ZWdyYXRpb25OYW1lID0gcHJvcHMuZGF0YURvZ09wc0dlbmllSW50ZWdyYXRpb25OYW1lID8/IHRlYW1OYW1lUGFyYW0uc3RyaW5nVmFsdWU7XG4gICAgfVxuICAgIEFubm90YXRpb25zLm9mKHNjb3BlKS5hZGREZXByZWNhdGlvbignQHJpby1jbG91ZC9jZGstdjItY29uc3RydWN0cy93YXRjaGZ1bCcsICd3YXRjaGZ1bCBkZXByZWNhdGVkISBQbGVhc2UgdXNlIHdhdGNoZnVsdjIgaW5zdGVhZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhlIGFsYXJtVG9waWMgYXMgYWxhcm0gYWN0aW9uIHRvIHRoZSBnaXZlbiBhbGFybS5cbiAgICogQHBhcmFtIGFsYXJtIFRoZSB3YXRjaGZ1bCB0byBhZGQgdGhvc2UgcmVzb3VyY2VzIHRvXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlQWxhcm0oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IE1vbml0b3JUeXBlLCBhbGFybTogTWV0cmljQWxhcm1Qcm9wcyk6IHZvaWQge1xuICAgIGNvbnN0IHsgc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQsIHRocmVzaG9sZCB9ID0gdGhpcy5zaG91bGRPdmVycmlkZVRocmVzaG9sZCh7IHdhdGNoZnVsTW9uaXRvclNjb3BlOiBzY29wZSwgd2F0Y2hmdWxOb2RlSWQ6IGlkIH0pO1xuICAgIGlmICh0aGlzLmFsYXJtVG9waWMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgY3dBbGFybSA9IGFsYXJtLm1ldHJpYy5jcmVhdGVBbGFybShzY29wZSwgaWQsIHtcbiAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYWxhcm0uYWxhcm1EZXNjcmlwdGlvbixcbiAgICAgICAgdGhyZXNob2xkOiBzaG91bGRPdmVycmlkZVRocmVzaG9sZCA/IHRocmVzaG9sZCBhcyBudW1iZXIgOiBhbGFybS50aHJlc2hvbGQsXG4gICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogYWxhcm0uY29tcGFyaXNvbk9wZXJhdG9yLFxuICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogYWxhcm0uZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICB9KTtcbiAgICAgIGlmICh0aGlzLmFsYXJtVG9waWMpIHtcbiAgICAgICAgY3dBbGFybS5hZGRBbGFybUFjdGlvbihuZXcgY3dfYWN0aW9ucy5TbnNBY3Rpb24odGhpcy5hbGFybVRvcGljKSk7XG4gICAgICAgIGN3QWxhcm0uYWRkT2tBY3Rpb24obmV3IGN3X2FjdGlvbnMuU25zQWN0aW9uKHRoaXMuYWxhcm1Ub3BpYykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGFEb2dNb25pdG9yU2VydmljZVRva2VuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG5ldyBEYXRhRG9nTWV0cmljQWxhcm0oc2NvcGUsIGlkLCB7XG4gICAgICAgIHNlcnZpY2VUb2tlbjogdGhpcy5kYXRhRG9nTW9uaXRvclNlcnZpY2VUb2tlbiA/PyAnJyxcbiAgICAgICAgc2VydmljZU5hbWU6IHRoaXMuZGF0YURvZ01vbml0b3JTZXJ2aWNlTmFtZSxcbiAgICAgICAgZGF0YURvZ09wc0dlbmllSW50ZWdyYXRpb25OYW1lOiB0aGlzLmRhdGFEb2dPcHNHZW5pZUludGVncmF0aW9uTmFtZSA/PyAnJyxcbiAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYWxhcm0uYWxhcm1EZXNjcmlwdGlvbixcbiAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBhbGFybS5jb21wYXJpc29uT3BlcmF0b3IsXG4gICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBhbGFybS5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgICAgbWV0cmljOiBhbGFybS5tZXRyaWMsXG4gICAgICAgIHRocmVzaG9sZDogc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQgPyB0aHJlc2hvbGQgYXMgbnVtYmVyIDogYWxhcm0udGhyZXNob2xkLFxuICAgICAgICB0cmVhdE1pc3NpbmdEYXRhOiBhbGFybS50cmVhdE1pc3NpbmdEYXRhLFxuICAgICAgICBwcmlvcml0eTogYWxhcm0ucHJpb3JpdHksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBhbGVydCBmb3IgZXJyb3IgbG9nc1xuICAgKiBAcGFyYW0gc2NvcGVcbiAgICovXG4gIHB1YmxpYyBjcmVhdGVMb2dBbGFybShzY29wZTogQ29uc3RydWN0LCBpZDogTW9uaXRvclR5cGUsIGFsYXJtOiBMb2dBbGFybVByb3BzKTp2b2lkIHtcbiAgICBjb25zdCB7IHNob3VsZE92ZXJyaWRlVGhyZXNob2xkLCB0aHJlc2hvbGQgfSA9IHRoaXMuc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQoeyB3YXRjaGZ1bE1vbml0b3JTY29wZTogc2NvcGUsIHdhdGNoZnVsTm9kZUlkOiBpZCB9KTtcbiAgICBpZiAodGhpcy5kYXRhRG9nTW9uaXRvclNlcnZpY2VUb2tlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBuZXcgRGF0YURvZ0xvZ0FsYXJtKHNjb3BlLCBpZCwge1xuICAgICAgICBzZXJ2aWNlVG9rZW46IHRoaXMuZGF0YURvZ01vbml0b3JTZXJ2aWNlVG9rZW4gPz8gJycsXG4gICAgICAgIHNlcnZpY2VOYW1lOiBhbGFybS5sYW1iZGFDbG91ZHdhdGNoR3JvdXBOYW1lID8/IHRoaXMuZGF0YURvZ01vbml0b3JTZXJ2aWNlTmFtZSxcbiAgICAgICAgYXV0b0Nsb3NlT3BzR2VuaWVBbGVydHM6IGFsYXJtLmF1dG9DbG9zZU9wc0dlbmllQWxlcnRzLFxuICAgICAgICBwZXJpb2Q6IGFsYXJtLnBlcmlvZCxcbiAgICAgICAgdW5pdE9mUGVyaW9kOiBhbGFybS51bml0T2ZQZXJpb2QsIC8vIHRvRG86IG1vdmUgdGhhdCBzb21ld2hlcmUgZWxzZSBhbmQgc2V0IGRlZmF1bHRzIHRoZXJlP1xuICAgICAgICBwZXJpb2RPcGVyYXRvcjogYWxhcm0ucGVyaW9kT3BlcmF0b3IsXG4gICAgICAgIHN0YXRpc3RpYzogYWxhcm0uc3RhdGlzdGljLFxuICAgICAgICBxdWVyeUZpbHRlcnM6IGFsYXJtLnF1ZXJ5RmlsdGVycywgLy8gdG9EbzogbW92ZSB0aGF0IHNvbWV3aGVyZSBlbHNlIGFuZCBzZXQgZGVmYXVsdHMgdGhlcmU/XG4gICAgICAgIGFsYXJtRGVzY3JpcHRpb246IGFsYXJtLmFsYXJtRGVzY3JpcHRpb24sXG4gICAgICAgIHRocmVzaG9sZDogc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQgPyB0aHJlc2hvbGQgYXMgbnVtYmVyIDogYWxhcm0udGhyZXNob2xkLFxuICAgICAgICBwcmlvcml0eTogYWxhcm0ucHJpb3JpdHksXG4gICAgICAgIGluZGV4OiBhbGFybS5pbmRleCxcbiAgICAgICAgbGFtYmRhQ2xvdWR3YXRjaEdyb3VwTmFtZTogYWxhcm0ubGFtYmRhQ2xvdWR3YXRjaEdyb3VwTmFtZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXYXRjaGVzIHRoZSBnaXZlbiBzY29wZSBhbmQgYWRkcyBhbGFybXMgZm9yIGtub3duIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyB3YXRjaFNjb3BlKHNjb3BlOiBDb25zdHJ1Y3QpOiB2b2lkIHtcbiAgICBjb25zdCBhc3BlY3QgPSBuZXcgV2F0Y2hmdWxBc3BlY3QodGhpcyk7XG4gICAgQXNwZWN0cy5vZihzY29wZSkuYWRkKGFzcGVjdCk7XG4gIH1cblxufVxuIl19
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hmdWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2hmdWwvd2F0Y2hmdWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBMEQ7QUFFMUQsaUVBQWlFO0FBUWpFLDJDQUEyQztBQUMzQywyQ0FBbUQ7QUFDbkQseUJBdUJZO0FBbURaLE1BQXNCLGdCQUFpQixTQUFRLHNCQUFTO0lBQXhEOztRQUNxQiwwQkFBcUIsR0FBdUMsRUFBRSxDQUFDO0tBd0luRjtJQXBJQzs7T0FFRztJQUNJLHNCQUFzQixDQUFDLEtBQWtDO1FBQzlELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7WUFDOUIsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLHNCQUFzQjtZQUNwRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyx1QkFBdUIsQ0FBQyxLQUFtQztRQUNuRSxLQUFLLE1BQU0sb0JBQW9CLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDOUQsSUFDRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDMUYsS0FBSyxDQUFDLGNBQWMsS0FBSyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEYsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUFBLENBQUM7SUFFRjs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQUMsRUFBbUIsRUFBRSxVQUFzQyxFQUFFO1FBRXRGLElB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S0FBSyxFQUFFLEVBQUUsRUFBRTtnQkFDN0IsWUFBWSxFQUFFLElBQUksQ0FBQywwQkFBMEIsSUFBSSxFQUFFO2dCQUNuRCxXQUFXLEVBQUUsS0FBSyxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQyx5QkFBeUI7Z0JBQzlFLHVCQUF1QixFQUFFLEtBQUssQ0FBQyx1QkFBdUI7Z0JBQ3RELE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtnQkFDcEIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUseURBQXlEO2dCQUMzRixjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7Z0JBQ3BDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDMUIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUseURBQXlEO2dCQUMzRixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO2dCQUN4QyxTQUFTLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLFNBQW1CLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTO2dCQUMxRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7Z0JBQ3hCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztnQkFDbEIseUJBQXlCLEVBQUUsS0FBSyxDQUFDLHlCQUF5QjthQUMzRCxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEtBQWdCO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxxQkFBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7QUFsR0gsNEJBb0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbnMsIEFzcGVjdHMsIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY2xvdWRmcm9udCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgKiBhcyBjd19hY3Rpb25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoLWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgZG9jZGIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWRvY2RiJztcbmltcG9ydCAqIGFzIGR5bmFtb2RiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgKiBhcyBlY3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjcyc7XG5pbXBvcnQgKiBhcyBlbGJ2MiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mic7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyByZHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJkcyc7XG5pbXBvcnQgKiBhcyBzbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5pbXBvcnQgKiBhcyBzc20gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7XG4gIFdhdGNoZnVsQXNwZWN0LFxuICBXYXRjaExhbWJkYUZ1bmN0aW9uLFxuICBXYXRjaExhbWJkYUZ1bmN0aW9uT3B0aW9ucyxcbiAgV2F0Y2hDbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICBXYXRjaENsb3VkZnJvbnREaXN0cmlidXRpb25PcHRpb25zLFxuICBXYXRjaEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyLFxuICBXYXRjaEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyT3B0aW9ucyxcbiAgV2F0Y2hFY3NTZXJ2aWNlLFxuICBXYXRjaEVjc1NlcnZpY2VPcHRpb25zLFxuICBXYXRjaEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAsXG4gIFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cE9wdGlvbnMsXG4gIERhdGFEb2dNZXRyaWNBbGFybSxcbiAgRGF0YURvZ0xvZ0FsYXJtLFxuICBNZXRyaWNBbGFybVByb3BzLFxuICBXYXRjaERvY0RiQ2x1c3RlcixcbiAgV2F0Y2hEb2NEYkNsdXN0ZXJPcHRpb25zLFxuICBXYXRjaERhdGFiYXNlQ2x1c3RlcixcbiAgV2F0Y2hEYXRhYmFzZUNsdXN0ZXJPcHRpb25zLFxuICBXYXRjaER5bmFtb0RiVGFibGUsXG4gIFdhdGNoRHluYW1vRGJUYWJsZU9wdGlvbnMsXG4gIExvZ0FsYXJtUHJvcHMsXG4gIE1vbml0b3JUeXBlLFxufSBmcm9tICcuLyc7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBXYXRjaGZ1bCBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJV2F0Y2hmdWwgZXh0ZW5kcyBJQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIEFkZHMgYW5kIGFsZXJ0IGZvciBlcnJvciBsb2dzXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBjb25zdHJ1Y3QgdG8gYWRkIHRoZSBhbGFybSB0b1xuICAgKiBAcGFyYW0gaWQgLSBUaGUgbmFtZSBvZiB0aGUgc2VydmljZVxuICAgKiBAcGFyYW0gYWxhcm0gLSBUaGUgYWxhcm0gcHJvcGVydGllcyBzZWUge0BsaW5rIExvZ0FsYXJtUHJvcHN9XG4gICAqL1xuICBjcmVhdGVMb2dBbGFybShzY29wZTogQ29uc3RydWN0LCBpZDogTW9uaXRvclR5cGUsIGFsYXJtOiBMb2dBbGFybVByb3BzKTogdm9pZDtcbiAgLyoqXG4gICAqIEFkZHMgdGhlIGFsYXJtVG9waWMgYXMgYWxhcm0gYWN0aW9uIHRvIHRoZSBnaXZlbiBhbGFybS5cbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIGNvbnN0cnVjdCB0byBhZGQgdGhlIGFsYXJtIHRvXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBpZCBvZiB0aGUgYWxhcm1cbiAgICogQHBhcmFtIGFsYXJtIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgd2F0Y2ggc2VlIHtAbGluayBNZXRyaWNBbGFybVByb3BzfVxuICAgKlxuICAgKi9cbiAgY3JlYXRlQWxhcm0oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IE1vbml0b3JUeXBlLCBhbGFybTogTWV0cmljQWxhcm1Qcm9wcyk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcnJpZGVBbGFybVRocmVzaG9sZFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBzY29wZSBvZiB0aGUgcmVzb3VyY2UgZm9yIHdoaWNoIHRoZSB0aHJlc2hvbGQgbmVlZHMgdG8gYmUgb3ZlcnJpZGVuXG4gICAqL1xuICByZWFkb25seSBtb25pdG9yZWRSZXNvdXJjZVNjb3BlOiBDb25zdHJ1Y3Q7XG5cbiAgLyoqXG4gICAqIElkIG9mIHRoZSBtb25pdG9yIHRoYXQgbmVlZHMgdG8gYmUgb3ZlcnJpZGVuLlxuICAgKiBFZyAtIEVycm9ycywgVGhyZXNob2xkcywgTG9nRXJyb3JNb25pdG9yXG4gICAqL1xuICByZWFkb25seSBtb25pdG9yVHlwZTogTW9uaXRvclR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0aHJlc2hvbGQgdGhhdCBuZWVkcyB0byBiZSBzZXRcbiAgKi9cbiAgcmVhZG9ubHkgdGhyZXNob2xkOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGRQcm9wcyB7XG4gIHJlYWRvbmx5IHdhdGNoZnVsTW9uaXRvclNjb3BlOiBDb25zdHJ1Y3Q7XG4gIHJlYWRvbmx5IHdhdGNoZnVsTm9kZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGRSZXR1cm5Qcm9wcyB7XG4gIHJlYWRvbmx5IHNob3VsZE92ZXJyaWRlVGhyZXNob2xkOiBib29sZWFuO1xuICByZWFkb25seSB0aHJlc2hvbGQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFdhdGNoZnVsIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSVdhdGNoZnVsIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1ldHJpY3NBbGFybU92ZXJyaWRlczogQXJyYXk8T3ZlcnJpZGVBbGFybVRocmVzaG9sZFByb3BzPiA9IFtdO1xuICBhYnN0cmFjdCBjcmVhdGVMb2dBbGFybShzY29wZTogQ29uc3RydWN0LCBpZDogTW9uaXRvclR5cGUsIGFsYXJtOiBMb2dBbGFybVByb3BzKTogdm9pZFxuICBhYnN0cmFjdCBjcmVhdGVBbGFybShzY29wZTogQ29uc3RydWN0LCBpZDogTW9uaXRvclR5cGUsIGFsYXJtOiBNZXRyaWNBbGFybVByb3BzKTogdm9pZDtcblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgdGhyZXNob2xkcyBmb3IgdGhlIHdhdGNoZnVsIG1vbml0b3JzXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGVBbGFybVRocmVzaG9sZChwcm9wczogT3ZlcnJpZGVBbGFybVRocmVzaG9sZFByb3BzKSB7XG4gICAgdGhpcy5tZXRyaWNzQWxhcm1PdmVycmlkZXMucHVzaCh7XG4gICAgICBtb25pdG9yZWRSZXNvdXJjZVNjb3BlOiBwcm9wcy5tb25pdG9yZWRSZXNvdXJjZVNjb3BlLFxuICAgICAgbW9uaXRvclR5cGU6IHByb3BzLm1vbml0b3JUeXBlLFxuICAgICAgdGhyZXNob2xkOiBwcm9wcy50aHJlc2hvbGQsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQocHJvcHM6IFNob3VsZE92ZXJyaWRlVGhyZXNob2xkUHJvcHMpOiBTaG91bGRPdmVycmlkZVRocmVzaG9sZFJldHVyblByb3BzIHtcbiAgICBmb3IgKGNvbnN0IG1ldHJpY3NBbGFybU92ZXJyaWRlIG9mIHRoaXMubWV0cmljc0FsYXJtT3ZlcnJpZGVzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHByb3BzLndhdGNoZnVsTW9uaXRvclNjb3BlLm5vZGUuaWQgPT09IG1ldHJpY3NBbGFybU92ZXJyaWRlLm1vbml0b3JlZFJlc291cmNlU2NvcGUubm9kZS5pZCAmJlxuICAgICAgICBwcm9wcy53YXRjaGZ1bE5vZGVJZCA9PT0gbWV0cmljc0FsYXJtT3ZlcnJpZGUubW9uaXRvclR5cGUpIHtcbiAgICAgICAgcmV0dXJuIHsgc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQ6IHRydWUsIHRocmVzaG9sZDogbWV0cmljc0FsYXJtT3ZlcnJpZGUudGhyZXNob2xkIH07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHNob3VsZE92ZXJyaWRlVGhyZXNob2xkOiBmYWxzZSB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBBZGRzIGFsYXJtcyBmb3IgdGhlIGdpdmVuIGxhbWJkYSBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGZuIC0gQSBsYW1iZGEgZnVuY3Rpb24gdGhhdCBzaG91bGQgYmUgd2F0Y2hlZCBbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXVxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIHdhdGNoIHNlZSB7QGxpbmsgV2F0Y2hMYW1iZGFGdW5jdGlvbk9wdGlvbnN9XG4gICAqL1xuICBwdWJsaWMgd2F0Y2hMYW1iZGFGdW5jdGlvbihmbjogbGFtYmRhLkZ1bmN0aW9uLCBvcHRpb25zOiBXYXRjaExhbWJkYUZ1bmN0aW9uT3B0aW9ucyA9IHt9KTogdm9pZCB7XG5cbiAgICBuZXcgV2F0Y2hMYW1iZGFGdW5jdGlvbih0aGlzLCBmbi5ub2RlLmlkLCB7XG4gICAgICB3YXRjaGZ1bDogdGhpcyxcbiAgICAgIGZuLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFsYXJtcyBmb3IgdGhlIGdpdmVuIENsb3VkZnJvbnQgRGlzdHJpYnV0aW9uLlxuICAgKiBAcGFyYW0gY2YgLSBBIENsb3VkZnJvbnQgRGlzdHJpYnV0aW9uIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB3YXRjaCBzZWUge0BsaW5rIFdhdGNoQ2xvdWRmcm9udERpc3RyaWJ1dGlvbk9wdGlvbnN9XG4gICAqL1xuICBwdWJsaWMgd2F0Y2hDbG91ZGZyb250RGlzdHJpYnV0aW9uKFxuICAgIGNmOiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbixcbiAgICBvcHRpb25zOiBXYXRjaENsb3VkZnJvbnREaXN0cmlidXRpb25PcHRpb25zID0ge30sXG4gICk6IHZvaWQge1xuICAgIG5ldyBXYXRjaENsb3VkZnJvbnREaXN0cmlidXRpb24odGhpcywgY2Yubm9kZS5pZCwge1xuICAgICAgd2F0Y2hmdWw6IHRoaXMsXG4gICAgICBjZixcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbGFybXMgZm9yIHRoZSBnaXZlbiBFQ1Mgc2VydmljZS5cbiAgICogQHBhcmFtIHNlcnZpY2UgLSBBbiBFQ1Mgc2VydmljZSB0aGF0IHNob3VsZCBiZSB3YXRjaGVkIFtkaXNhYmxlLWF3c2xpbnQ6cmVmLXZpYS1pbnRlcmZhY2VdXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgd2F0Y2ggc2VlIHtAbGluayBXYXRjaEVjc1NlcnZpY2VPcHRpb25zfVxuICAgKi9cbiAgcHVibGljIHdhdGNoRWNzU2VydmljZShzZXJ2aWNlOiBlY3MuQmFzZVNlcnZpY2UsIG9wdGlvbnM6IFdhdGNoRWNzU2VydmljZU9wdGlvbnMgPSB7fSk6IHZvaWQge1xuICAgIG5ldyBXYXRjaEVjc1NlcnZpY2UodGhpcywgc2VydmljZS5ub2RlLmlkLCB7XG4gICAgICB3YXRjaGZ1bDogdGhpcyxcbiAgICAgIHNlcnZpY2UsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYWxhcm1zIGZvciB0aGUgZ2l2ZW4gYXBwbGljYXRpb24gbG9hZCBiYWxhbmNlci5cbiAgICogQHBhcmFtIGFsYiAtIEFuIGFwcGxpY2F0aW9uIGxvYWQgYmFsYW5jZXIgdGhhdCBzaG91bGQgYmUgd2F0Y2hlZCBbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXVxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIHdhdGNoIHNlZSB7QGxpbmsgV2F0Y2hBcHBsaWNhdGlvbkxvYWRCYWxhbmNlck9wdGlvbnN9XG4gICAqL1xuICBwdWJsaWMgd2F0Y2hBbGIoYWxiOiBlbGJ2Mi5BcHBsaWNhdGlvbkxvYWRCYWxhbmNlciwgb3B0aW9uczogV2F0Y2hBcHBsaWNhdGlvbkxvYWRCYWxhbmNlck9wdGlvbnMgPSB7fSk6IHZvaWQge1xuICAgIG5ldyBXYXRjaEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyKHRoaXMsIGFsYi5ub2RlLmlkLCB7XG4gICAgICB3YXRjaGZ1bDogdGhpcyxcbiAgICAgIGFsYixcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbGFybXMgZm9yIHRoZSBnaXZlbiBhcHBsaWNhdGlvbiB0YXJnZXQgZ29ydXAuXG4gICAqIEBwYXJhbSBhdGcgLSBBbiBhcHBsaWNhdGlvbiB0YXJnZXQgZ3JvdXAgdGhhdCBzaG91bGQgYmUgd2F0Y2hlZCBbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXVxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIHdhdGNoIHNlZSB7QGxpbmsgV2F0Y2hBcHBsaWNhdGlvblRhcmdldEdyb3VwT3B0aW9uc31cbiAgICovXG4gIHB1YmxpYyB3YXRjaEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAoXG4gICAgYXRnOiBlbGJ2Mi5BcHBsaWNhdGlvblRhcmdldEdyb3VwLFxuICAgIG9wdGlvbnM6IFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cE9wdGlvbnMgPSB7fSxcbiAgKTogdm9pZCB7XG4gICAgbmV3IFdhdGNoQXBwbGljYXRpb25UYXJnZXRHcm91cCh0aGlzLCBhdGcubm9kZS5pZCwge1xuICAgICAgd2F0Y2hmdWw6IHRoaXMsXG4gICAgICBhdGcsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYWxhcm1zIGZvciB0aGUgZ2l2ZW4gRG9jRGIgY2x1c3Rlci5cbiAgICogQHBhcmFtIGRvY0RiIC0gQW4gRG9jRGIgY2x1c3RlciB0aGF0IHNob3VsZCBiZSB3YXRjaGVkIFtkaXNhYmxlLWF3c2xpbnQ6cmVmLXZpYS1pbnRlcmZhY2VdXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgd2F0Y2ggc2VlIHtAbGluayBXYXRjaERvY0RiQ2x1c3Rlck9wdGlvbnN9XG4gICAqL1xuICBwdWJsaWMgd2F0Y2hEb2NEYihkb2NEYjogZG9jZGIuRGF0YWJhc2VDbHVzdGVyLCBvcHRpb25zOiBXYXRjaERvY0RiQ2x1c3Rlck9wdGlvbnMgPSB7fSk6IHZvaWQge1xuICAgIG5ldyBXYXRjaERvY0RiQ2x1c3Rlcih0aGlzLCBkb2NEYi5ub2RlLmlkLCB7XG4gICAgICB3YXRjaGZ1bDogdGhpcyxcbiAgICAgIGRvY0RiLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFsYXJtcyBmb3IgdGhlIGdpdmVuIGRhdGFiYXNlIGNsdXN0ZXIuXG4gICAqIEBwYXJhbSBkYXRhYmFzZUNsdXN0ZXIgLSBBbiBkYXRhYmFzZSBjbHVzdGVyIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB3YXRjaCBzZWUge0BsaW5rIFdhdGNoRGF0YWJhc2VDbHVzdGVyT3B0aW9uc31cbiAgICovXG4gIHB1YmxpYyB3YXRjaERhdGFiYXNlQ2x1c3RlcihkYXRhYmFzZUNsdXN0ZXI6IHJkcy5EYXRhYmFzZUNsdXN0ZXIsIG9wdGlvbnM6IFdhdGNoRGF0YWJhc2VDbHVzdGVyT3B0aW9ucyA9IHt9KTogdm9pZCB7XG4gICAgbmV3IFdhdGNoRGF0YWJhc2VDbHVzdGVyKHRoaXMsIGRhdGFiYXNlQ2x1c3Rlci5ub2RlLmlkLCB7XG4gICAgICB3YXRjaGZ1bDogdGhpcyxcbiAgICAgIGRhdGFiYXNlQ2x1c3RlcixcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbGFybXMgZm9yIHRoZSBnaXZlbiBEeW5hbW9EYiB0YWJsZS5cbiAgICogQHBhcmFtIGR5bmFtb0RiVGFibGUgLSBBbiBkYXRhYmFzZSBjbHVzdGVyIHRoYXQgc2hvdWxkIGJlIHdhdGNoZWQgW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV1cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB3YXRjaCBzZWUge0BsaW5rIFdhdGNoRHluYW1vRGJUYWJsZU9wdGlvbnN9XG4gICAqL1xuICBwdWJsaWMgd2F0Y2hEeW5hbW9EYlRhYmxlKGR5bmFtb0RiVGFibGU6IGR5bmFtb2RiLlRhYmxlLCBvcHRpb25zOiBXYXRjaER5bmFtb0RiVGFibGVPcHRpb25zID0ge30pOiB2b2lkIHtcbiAgICBuZXcgV2F0Y2hEeW5hbW9EYlRhYmxlKHRoaXMsIGR5bmFtb0RiVGFibGUubm9kZS5pZCwge1xuICAgICAgd2F0Y2hmdWw6IHRoaXMsXG4gICAgICBkeW5hbW9EYlRhYmxlOiBkeW5hbW9EYlRhYmxlLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIFdhdGNoZnVsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hmdWxQcm9wcyB7XG4gIC8qKlxuICAgKiBBbiBTTlMgdG9waWMgYXMgdGFyZ2V0IGZvciBhbGFybSBhY3Rpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlICBUaGUgU05TIHRvcGljIHByb3ZpZGVkIGJ5IE9wc0dlbmllIEludGVncmF0aW9uIGFjY291bnQgbW9kdWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1TbnM/OiBzbnMuSVRvcGljO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSB0b2tlbiBmb3IgdGhlIERhdGFEb2cgTW9uaXRvciBjdXN0b20gcmVzb3VyY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgRW1wdHkuXG4gICAqL1xuICByZWFkb25seSBkYXRhRG9nTW9uaXRvclNlcnZpY2VUb2tlbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNlcnZpY2UgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBUaGUgc3RhY2sgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFEb2dNb25pdG9yU2VydmljZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBPcHNHZW5pZSBoYW5kbGUgdXNlZCBpbiBEYXRhRG9nIHRvIGZvcndhcmQgdGhlIEREIG1vbml0b3IgdG8gT3BzR2VuaWUuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgRW1wdHkgaWYgZGF0YURvZ01vbml0b3JTZXJ2aWNlVG9rZW4gaXMgbm90IHNldC4gT3RoZXJ3aXNlLCB0ZWFtIFNTTSBwYXJhbWV0ZXIgZnJvbSBMYW5kaW5nWm9uZSBpcyB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YURvZ09wc0dlbmllSW50ZWdyYXRpb25OYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgY29uc3RydWN0IHRvIHdhdGNoIGdpdmVuIHNjb3BlIG9yIHJlc291cmNlcy4gT3BpbmlvbmF0ZWQgRGF0YURvZyBhbGFybXMgYXJlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBmb3Igd2F0Y2hlZCByZXNvdXJjZXMuXG4gKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIHdhdGNoZnVsdjIgaW5zdGVhZFxuICovXG5leHBvcnQgY2xhc3MgV2F0Y2hmdWwgZXh0ZW5kcyBBYnN0cmFjdFdhdGNoZnVsIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhbGFybVRvcGljPzogc25zLklUb3BpYztcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhRG9nTW9uaXRvclNlcnZpY2VUb2tlbj86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhRG9nT3BzR2VuaWVJbnRlZ3JhdGlvbk5hbWU/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YURvZ01vbml0b3JTZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXYXRjaGZ1bFByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gY29uc3Qgb3BzR2VuaWVBbGFybVRvcGljQXJuID0gRm4uaW1wb3J0VmFsdWUoJ29wc2dlbmllLWNsb3Vkd2F0Y2gtYWxhcm0tc25zLXRvcGljLWFybicpO1xuICAgIC8vIGNvbnN0IG9wc0dlbmllQWxhcm1Ub3BpYyA9IHNucy5Ub3BpYy5mcm9tVG9waWNBcm4odGhpcywgJ09wc0dlbmllVG9waWMnLCBvcHNHZW5pZUFsYXJtVG9waWNBcm4pO1xuICAgIHRoaXMuYWxhcm1Ub3BpYyA9IHByb3BzLmFsYXJtU25zO1xuICAgIHRoaXMuZGF0YURvZ01vbml0b3JTZXJ2aWNlVG9rZW4gPSBwcm9wcy5kYXRhRG9nTW9uaXRvclNlcnZpY2VUb2tlbjtcblxuICAgIHRoaXMuZGF0YURvZ01vbml0b3JTZXJ2aWNlTmFtZSA9IHByb3BzLmRhdGFEb2dNb25pdG9yU2VydmljZU5hbWUgPz8gU3RhY2sub2YodGhpcykuc3RhY2tOYW1lO1xuXG4gICAgaWYgKHByb3BzLmRhdGFEb2dNb25pdG9yU2VydmljZVRva2VuICE9PSB1bmRlZmluZWQpIHtcblxuICAgICAgY29uc3QgdGVhbU5hbWVQYXJhbSA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICdUZWFtTmFtZVBhcmFtJyxcbiAgICAgICAgJy9jb25maWcvdGVhbS9uYW1lJyxcbiAgICAgICk7XG4gICAgICB0aGlzLmRhdGFEb2dPcHNHZW5pZUludGVncmF0aW9uTmFtZSA9IHByb3BzLmRhdGFEb2dPcHNHZW5pZUludGVncmF0aW9uTmFtZSA/PyB0ZWFtTmFtZVBhcmFtLnN0cmluZ1ZhbHVlO1xuICAgIH1cbiAgICBBbm5vdGF0aW9ucy5vZihzY29wZSkuYWRkRGVwcmVjYXRpb24oJ0ByaW8tY2xvdWQvY2RrLXYyLWNvbnN0cnVjdHMvd2F0Y2hmdWwnLCAnd2F0Y2hmdWwgZGVwcmVjYXRlZCEgUGxlYXNlIHVzZSB3YXRjaGZ1bHYyIGluc3RlYWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoZSBhbGFybVRvcGljIGFzIGFsYXJtIGFjdGlvbiB0byB0aGUgZ2l2ZW4gYWxhcm0uXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBjb25zdHJ1Y3QgdG8gYWRkIHRoZSBhbGFybSB0b1xuICAgKiBAcGFyYW0gaWQgLSBUaGUgaWQgb2YgdGhlIGFsYXJtXG4gICAqIEBwYXJhbSBhbGFybSAtIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIHdhdGNoIHNlZSB7QGxpbmsgTWV0cmljQWxhcm1Qcm9wc31cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVBbGFybShzY29wZTogQ29uc3RydWN0LCBpZDogTW9uaXRvclR5cGUsIGFsYXJtOiBNZXRyaWNBbGFybVByb3BzKTogdm9pZCB7XG4gICAgY29uc3QgeyBzaG91bGRPdmVycmlkZVRocmVzaG9sZCwgdGhyZXNob2xkIH0gPSB0aGlzLnNob3VsZE92ZXJyaWRlVGhyZXNob2xkKHsgd2F0Y2hmdWxNb25pdG9yU2NvcGU6IHNjb3BlLCB3YXRjaGZ1bE5vZGVJZDogaWQgfSk7XG4gICAgaWYgKHRoaXMuYWxhcm1Ub3BpYyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBjd0FsYXJtID0gYWxhcm0ubWV0cmljLmNyZWF0ZUFsYXJtKHNjb3BlLCBpZCwge1xuICAgICAgICBhbGFybURlc2NyaXB0aW9uOiBhbGFybS5hbGFybURlc2NyaXB0aW9uLFxuICAgICAgICB0aHJlc2hvbGQ6IHNob3VsZE92ZXJyaWRlVGhyZXNob2xkID8gdGhyZXNob2xkIGFzIG51bWJlciA6IGFsYXJtLnRocmVzaG9sZCxcbiAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBhbGFybS5jb21wYXJpc29uT3BlcmF0b3IsXG4gICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBhbGFybS5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgIH0pO1xuICAgICAgaWYgKHRoaXMuYWxhcm1Ub3BpYykge1xuICAgICAgICBjd0FsYXJtLmFkZEFsYXJtQWN0aW9uKG5ldyBjd19hY3Rpb25zLlNuc0FjdGlvbih0aGlzLmFsYXJtVG9waWMpKTtcbiAgICAgICAgY3dBbGFybS5hZGRPa0FjdGlvbihuZXcgY3dfYWN0aW9ucy5TbnNBY3Rpb24odGhpcy5hbGFybVRvcGljKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0YURvZ01vbml0b3JTZXJ2aWNlVG9rZW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgbmV3IERhdGFEb2dNZXRyaWNBbGFybShzY29wZSwgaWQsIHtcbiAgICAgICAgc2VydmljZVRva2VuOiB0aGlzLmRhdGFEb2dNb25pdG9yU2VydmljZVRva2VuID8/ICcnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogdGhpcy5kYXRhRG9nTW9uaXRvclNlcnZpY2VOYW1lLFxuICAgICAgICBkYXRhRG9nT3BzR2VuaWVJbnRlZ3JhdGlvbk5hbWU6IHRoaXMuZGF0YURvZ09wc0dlbmllSW50ZWdyYXRpb25OYW1lID8/ICcnLFxuICAgICAgICBhbGFybURlc2NyaXB0aW9uOiBhbGFybS5hbGFybURlc2NyaXB0aW9uLFxuICAgICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGFsYXJtLmNvbXBhcmlzb25PcGVyYXRvcixcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IGFsYXJtLmV2YWx1YXRpb25QZXJpb2RzLFxuICAgICAgICBtZXRyaWM6IGFsYXJtLm1ldHJpYyxcbiAgICAgICAgdGhyZXNob2xkOiBzaG91bGRPdmVycmlkZVRocmVzaG9sZCA/IHRocmVzaG9sZCBhcyBudW1iZXIgOiBhbGFybS50aHJlc2hvbGQsXG4gICAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGFsYXJtLnRyZWF0TWlzc2luZ0RhdGEsXG4gICAgICAgIHByaW9yaXR5OiBhbGFybS5wcmlvcml0eSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGFsZXJ0IGZvciBlcnJvciBsb2dzXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBjb25zdHJ1Y3QgdG8gYWRkIHRoZSBhbGFybSB0b1xuICAgKiBAcGFyYW0gaWQgLSBUaGUgaWQgb2YgdGhlIGFsYXJtXG4gICAqIEBwYXJhbSBhbGFybSAtIFRoZSBhbGFybSBwcm9wZXJ0aWVzIHNlZSB7QGxpbmsgTG9nQWxhcm1Qcm9wc31cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVMb2dBbGFybShzY29wZTogQ29uc3RydWN0LCBpZDogTW9uaXRvclR5cGUsIGFsYXJtOiBMb2dBbGFybVByb3BzKTp2b2lkIHtcbiAgICBjb25zdCB7IHNob3VsZE92ZXJyaWRlVGhyZXNob2xkLCB0aHJlc2hvbGQgfSA9IHRoaXMuc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQoeyB3YXRjaGZ1bE1vbml0b3JTY29wZTogc2NvcGUsIHdhdGNoZnVsTm9kZUlkOiBpZCB9KTtcbiAgICBpZiAodGhpcy5kYXRhRG9nTW9uaXRvclNlcnZpY2VUb2tlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBuZXcgRGF0YURvZ0xvZ0FsYXJtKHNjb3BlLCBpZCwge1xuICAgICAgICBzZXJ2aWNlVG9rZW46IHRoaXMuZGF0YURvZ01vbml0b3JTZXJ2aWNlVG9rZW4gPz8gJycsXG4gICAgICAgIHNlcnZpY2VOYW1lOiBhbGFybS5sYW1iZGFDbG91ZHdhdGNoR3JvdXBOYW1lID8/IHRoaXMuZGF0YURvZ01vbml0b3JTZXJ2aWNlTmFtZSxcbiAgICAgICAgYXV0b0Nsb3NlT3BzR2VuaWVBbGVydHM6IGFsYXJtLmF1dG9DbG9zZU9wc0dlbmllQWxlcnRzLFxuICAgICAgICBwZXJpb2Q6IGFsYXJtLnBlcmlvZCxcbiAgICAgICAgdW5pdE9mUGVyaW9kOiBhbGFybS51bml0T2ZQZXJpb2QsIC8vIHRvRG86IG1vdmUgdGhhdCBzb21ld2hlcmUgZWxzZSBhbmQgc2V0IGRlZmF1bHRzIHRoZXJlP1xuICAgICAgICBwZXJpb2RPcGVyYXRvcjogYWxhcm0ucGVyaW9kT3BlcmF0b3IsXG4gICAgICAgIHN0YXRpc3RpYzogYWxhcm0uc3RhdGlzdGljLFxuICAgICAgICBxdWVyeUZpbHRlcnM6IGFsYXJtLnF1ZXJ5RmlsdGVycywgLy8gdG9EbzogbW92ZSB0aGF0IHNvbWV3aGVyZSBlbHNlIGFuZCBzZXQgZGVmYXVsdHMgdGhlcmU/XG4gICAgICAgIGFsYXJtRGVzY3JpcHRpb246IGFsYXJtLmFsYXJtRGVzY3JpcHRpb24sXG4gICAgICAgIHRocmVzaG9sZDogc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQgPyB0aHJlc2hvbGQgYXMgbnVtYmVyIDogYWxhcm0udGhyZXNob2xkLFxuICAgICAgICBwcmlvcml0eTogYWxhcm0ucHJpb3JpdHksXG4gICAgICAgIGluZGV4OiBhbGFybS5pbmRleCxcbiAgICAgICAgbGFtYmRhQ2xvdWR3YXRjaEdyb3VwTmFtZTogYWxhcm0ubGFtYmRhQ2xvdWR3YXRjaEdyb3VwTmFtZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXYXRjaGVzIHRoZSBnaXZlbiBzY29wZSBhbmQgYWRkcyBhbGFybXMgZm9yIGtub3duIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyB3YXRjaFNjb3BlKHNjb3BlOiBDb25zdHJ1Y3QpOiB2b2lkIHtcbiAgICBjb25zdCBhc3BlY3QgPSBuZXcgV2F0Y2hmdWxBc3BlY3QodGhpcyk7XG4gICAgQXNwZWN0cy5vZihzY29wZSkuYWRkKGFzcGVjdCk7XG4gIH1cblxufVxuIl19
|
|
@@ -21,7 +21,7 @@ export interface LogErrorMonitorProps {
|
|
|
21
21
|
* This property has been deprecated. The propery has been instead nested into logErrorMonitorConfig.
|
|
22
22
|
* The functionality remains unchanged
|
|
23
23
|
*
|
|
24
|
-
* @defaultValue
|
|
24
|
+
* @defaultValue false
|
|
25
25
|
*/
|
|
26
26
|
readonly createCasesFromErrorLogMonitors?: boolean;
|
|
27
27
|
/**
|
|
@@ -59,7 +59,7 @@ export interface WatchfulProps {
|
|
|
59
59
|
* Enable error log monitors creating cases in Datadog.
|
|
60
60
|
*
|
|
61
61
|
* @deprecated This property has been deprecated. The propery has been instead nested into logErrorMonitorConfig. The functionality remains unchanged.
|
|
62
|
-
* @defaultValue
|
|
62
|
+
* @defaultValue false
|
|
63
63
|
*/
|
|
64
64
|
readonly createCasesFromErrorLogMonitors?: boolean;
|
|
65
65
|
/**
|
|
@@ -94,12 +94,16 @@ export declare class Watchful extends AbstractWatchful {
|
|
|
94
94
|
/**
|
|
95
95
|
* Adds the alarmTopic as alarm action to the given alarm.
|
|
96
96
|
*
|
|
97
|
+
* @param scope - The construct to add the alarm to
|
|
98
|
+
* @param id - The id of the alarm
|
|
97
99
|
* @param alarm - The watchful to add those resources to
|
|
98
100
|
*/
|
|
99
101
|
createAlarm(scope: Construct, id: MonitorType, alarm: MetricAlarmProps): void;
|
|
100
102
|
/**
|
|
101
103
|
* Adds an alert for error logs
|
|
102
|
-
* @param scope
|
|
104
|
+
* @param scope - The construct to add the alarm to
|
|
105
|
+
* @param id - The id of the alarm
|
|
106
|
+
* @param alarm - The alarm properties see {@link LogAlarmProps}
|
|
103
107
|
*/
|
|
104
108
|
createLogAlarm(scope: Construct, id: MonitorType, alarm: LogAlarmProps): void;
|
|
105
109
|
/**
|
|
@@ -31,7 +31,7 @@ class Watchful extends watchful_1.AbstractWatchful {
|
|
|
31
31
|
false;
|
|
32
32
|
if (props.createCasesFromErrorLogMonitors) {
|
|
33
33
|
const annotations = aws_cdk_lib_1.Annotations.of(aws_cdk_lib_1.Stack.of(this));
|
|
34
|
-
annotations.addWarningV2(scope.node.path, '\n ❌ This property has been deprecated. The
|
|
34
|
+
annotations.addWarningV2(scope.node.path, '\n ❌ This property has been deprecated. The property has been instead nested into logErrorMonitorConfig.\n');
|
|
35
35
|
}
|
|
36
36
|
this.queryErrorMonitorConfig = props.queryErrorMonitorConfig;
|
|
37
37
|
this.logErrorMonitorConfig = props.logErrorMonitorConfig;
|
|
@@ -39,6 +39,8 @@ class Watchful extends watchful_1.AbstractWatchful {
|
|
|
39
39
|
/**
|
|
40
40
|
* Adds the alarmTopic as alarm action to the given alarm.
|
|
41
41
|
*
|
|
42
|
+
* @param scope - The construct to add the alarm to
|
|
43
|
+
* @param id - The id of the alarm
|
|
42
44
|
* @param alarm - The watchful to add those resources to
|
|
43
45
|
*/
|
|
44
46
|
createAlarm(scope, id, alarm) {
|
|
@@ -60,7 +62,9 @@ class Watchful extends watchful_1.AbstractWatchful {
|
|
|
60
62
|
}
|
|
61
63
|
/**
|
|
62
64
|
* Adds an alert for error logs
|
|
63
|
-
* @param scope
|
|
65
|
+
* @param scope - The construct to add the alarm to
|
|
66
|
+
* @param id - The id of the alarm
|
|
67
|
+
* @param alarm - The alarm properties see {@link LogAlarmProps}
|
|
64
68
|
*/
|
|
65
69
|
createLogAlarm(scope, id, alarm) {
|
|
66
70
|
const { shouldOverrideThreshold, threshold } = this.shouldOverrideThreshold({ watchfulMonitorScope: scope, watchfulNodeId: id });
|
|
@@ -100,4 +104,4 @@ class Watchful extends watchful_1.AbstractWatchful {
|
|
|
100
104
|
exports.Watchful = Watchful;
|
|
101
105
|
_a = JSII_RTTI_SYMBOL_1;
|
|
102
106
|
Watchful[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.watchfulv2.Watchful", version: "0.0.0" };
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hmdWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2hmdWx2Mi93YXRjaGZ1bC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUEwRDtBQUUxRCwyREFBcUU7QUFDckUsaUVBQTREO0FBQzVELDRDQUtzQjtBQUN0QiwwQ0FLcUI7QUFrRnJCOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBYSxRQUFTLFNBQVEsMkJBQWdCO0lBTzVDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBdUIsRUFBRTtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsSUFBSSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFakUsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksb0NBQXdCLEVBQUUsQ0FBQztRQUN6RSxJQUFJLENBQUMsK0JBQStCO1lBQ2xDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSwrQkFBK0I7Z0JBQzVELEtBQUssQ0FBQywrQkFBK0I7Z0JBQ3JDLEtBQUssQ0FBQztRQUNSLElBQUksS0FBSyxDQUFDLCtCQUErQixFQUFFLENBQUM7WUFDMUMsTUFBTSxXQUFXLEdBQUcseUJBQVcsQ0FBQyxFQUFFLENBQUMsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuRCxXQUFXLENBQUMsWUFBWSxDQUN0QixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFDZiwyR0FBMkcsQ0FDNUcsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLHVCQUF1QixDQUFDO1FBQzdELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMscUJBQXFCLENBQUM7SUFDM0QsQ0FBQztJQUVE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Q0FBQztJQUNoQyxDQUFDOztBQXJHSCw0QkFzR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3BlY3RzLCBTdGFjaywgQW5ub3RhdGlvbnMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERhdGFEb2dMb2dBbGFybSwgTG9nQWxhcm1Qcm9wcyB9IGZyb20gJy4vZGF0YWRvZy1sb2ctYWxhcm0nO1xuaW1wb3J0IHsgRGF0YURvZ01ldHJpY0FsYXJtIH0gZnJvbSAnLi9kYXRhZG9nLW1ldHJpYy1hbGFybSc7XG5pbXBvcnQge1xuICBEYXRhZG9nQ2FzZU5vdGlmaWNhdGlvbixcbiAgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uLFxuICBOb3RpZmljYXRpb25BZ2dyZWdhdG9yLFxuICBJTm90aWZpY2F0aW9uLFxufSBmcm9tICcuLi9kYXRhZG9ndjInO1xuaW1wb3J0IHtcbiAgV2F0Y2hmdWxBc3BlY3QsXG4gIE1ldHJpY0FsYXJtUHJvcHMsXG4gIEFic3RyYWN0V2F0Y2hmdWwsXG4gIE1vbml0b3JUeXBlLFxufSBmcm9tICcuLi93YXRjaGZ1bCc7XG5cbi8qKlxuICogTG9nIGVycm9yIG1vbml0b3IgcHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dFcnJvck1vbml0b3JQcm9wcyB7XG4gIC8qKlxuICAgKiBDb25maWd1cmUgaWYgbW9uaXRvciBuZWVkcyB0byBiZSByZXNvbHZlZCBtYW51YWxseSBldmVyeSB0aW1lLiBUaGlzIG9wdGlvbiBhbHNvIHNldHMgdGhlIHJlbm90aWZ5IGludGVydmFsIHRvIDIgaG91cnNcbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZUF1dG9DbG9zZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcHJpb3JpdHkgb2YgdGhlIGxvZyBlcnJvciBtb25pdG9yXG4gICAqIEBkZWZhdWx0VmFsdWUgM1xuICAgKi9cbiAgcmVhZG9ubHkgcHJpb3JpdHk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBlcnJvciBsb2cgbW9uaXRvcnMgY3JlYXRpbmcgY2FzZXMgaW4gRGF0YWRvZy5cbiAgICogVGhpcyBwcm9wZXJ0eSBoYXMgYmVlbiBkZXByZWNhdGVkLiBUaGUgcHJvcGVyeSBoYXMgYmVlbiBpbnN0ZWFkIG5lc3RlZCBpbnRvIGxvZ0Vycm9yTW9uaXRvckNvbmZpZy5cbiAgICogVGhlIGZ1bmN0aW9uYWxpdHkgcmVtYWlucyB1bmNoYW5nZWRcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB7QGxpbmsgZmFsc2V9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVDYXNlc0Zyb21FcnJvckxvZ01vbml0b3JzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmVub3RpZmljYXRpb24gaW50ZXJ2YWwgZm9yIGxvZyBlcnJvciBtb25pdG9yIGluIG1pbnV0ZXNcbiAgICovXG4gIHJlYWRvbmx5IHJlbm90aWZ5SW50ZXJ2YWw/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUXVlcnkgZXJyb3IgbW9uaXRvciBwcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5RXJyb3JNb25pdG9yUHJvcHMge1xuICAvKipcbiAgICogU2V0IHRoZSBwcmlvcml0eSBvZiB0aGUgbG9nIGVycm9yIG1vbml0b3JcbiAgICogQGRlZmF1bHRWYWx1ZSAzXG4gICAqL1xuICByZWFkb25seSBwcmlvcml0eT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBXYXRjaGZ1bFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoZnVsUHJvcHMge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2UgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBUaGUgc3RhY2sgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHdheSBob3cgbW9uaXRvcnMgc2hvdWxkIG5vdGlmeSBpbiBjYXNlIG9mIGFuIGFsZXJ0LlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHtAbGluayBEZWZhdWx0U2xhY2tOb3RpZmljYXRpb259XG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb24/OiBJTm90aWZpY2F0aW9uO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgZXJyb3IgbG9nIG1vbml0b3JzIGNyZWF0aW5nIGNhc2VzIGluIERhdGFkb2cuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgcHJvcGVydHkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVGhlIHByb3BlcnkgaGFzIGJlZW4gaW5zdGVhZCBuZXN0ZWQgaW50byBsb2dFcnJvck1vbml0b3JDb25maWcuIFRoZSBmdW5jdGlvbmFsaXR5IHJlbWFpbnMgdW5jaGFuZ2VkLlxuICAgKiBAZGVmYXVsdFZhbHVlIHtAbGluayBmYWxzZX1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUNhc2VzRnJvbUVycm9yTG9nTW9uaXRvcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgbG9nIGVycm9yIG1vbml0b3IgcHJvcGVydGllc1xuICAgKi9cbiAgcmVhZG9ubHkgbG9nRXJyb3JNb25pdG9yQ29uZmlnPzogTG9nRXJyb3JNb25pdG9yUHJvcHM7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBxdWVyeSBhbGVydCBtb25pdG9ycy4gQWxsIG1vbml0b3JzIGNyZWF0ZWQgYnkgd2F0Y2hmdWwgZXhjZXB0IGZvciBMb2cgZXJyb3IgbW9uaXRvci5cbiAgICogQ29uZmlndXJlIHByb3BlcnR5ICpsb2dFcnJvck1vbml0b3IqIGZvciBMb2cgZXJyb3IgbW9uaXRvci5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5RXJyb3JNb25pdG9yQ29uZmlnPzogUXVlcnlFcnJvck1vbml0b3JQcm9wcztcbn1cblxuLyoqXG4gKiBBIGNvbnN0cnVjdCB0byB3YXRjaCBnaXZlbiBzY29wZSBvciByZXNvdXJjZXMuIE9waW5pb25hdGVkIERhdGFEb2cgYWxhcm1zIGFyZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgZm9yIHdhdGNoZWQgcmVzb3VyY2VzLlxuICpcbiAqIFVzYWdlIHdpdGggbm9uLWRlZmF1bHQgbm90aWZpY2F0aW9uOlxuICogYGBgdHNcbiAqIGNvbnN0IGR3ID0gbmV3IHdhdGNoZnVsdjIuV2F0Y2hmdWwodGhpcywgJ1dhdGNoZnVsJywge1xuICogICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gKiAgIG5vdGlmaWNhdGlvbjogbmV3IGRhdGFkb2d2Mi5TbGFja05vdGlmaWNhdGlvbih7Y2hhbm5lbDogJ3RlYW0tYWxlcnQtY2hhbm5lbCd9KVxuICogfSk7XG4gKiBkdy53YXRjaFNjb3BlKHRoaXMpO1xuICpgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFdhdGNoZnVsIGV4dGVuZHMgQWJzdHJhY3RXYXRjaGZ1bCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uOiBJTm90aWZpY2F0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IGNyZWF0ZUNhc2VzRnJvbUVycm9yTG9nTW9uaXRvcnM6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dFcnJvck1vbml0b3JDb25maWc/OiBMb2dFcnJvck1vbml0b3JQcm9wcztcbiAgcHJpdmF0ZSByZWFkb25seSBxdWVyeUVycm9yTW9uaXRvckNvbmZpZz86IFF1ZXJ5RXJyb3JNb25pdG9yUHJvcHM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdhdGNoZnVsUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5zZXJ2aWNlTmFtZSA9IHByb3BzLnNlcnZpY2VOYW1lID8/IFN0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZTtcblxuICAgIHRoaXMubm90aWZpY2F0aW9uID0gcHJvcHMubm90aWZpY2F0aW9uID8/IG5ldyBEZWZhdWx0U2xhY2tOb3RpZmljYXRpb24oKTtcbiAgICB0aGlzLmNyZWF0ZUNhc2VzRnJvbUVycm9yTG9nTW9uaXRvcnMgPVxuICAgICAgcHJvcHMubG9nRXJyb3JNb25pdG9yQ29uZmlnPy5jcmVhdGVDYXNlc0Zyb21FcnJvckxvZ01vbml0b3JzID8/XG4gICAgICBwcm9wcy5jcmVhdGVDYXNlc0Zyb21FcnJvckxvZ01vbml0b3JzID8/XG4gICAgICBmYWxzZTtcbiAgICBpZiAocHJvcHMuY3JlYXRlQ2FzZXNGcm9tRXJyb3JMb2dNb25pdG9ycykge1xuICAgICAgY29uc3QgYW5ub3RhdGlvbnMgPSBBbm5vdGF0aW9ucy5vZihTdGFjay5vZih0aGlzKSk7XG4gICAgICBhbm5vdGF0aW9ucy5hZGRXYXJuaW5nVjIoXG4gICAgICAgIHNjb3BlLm5vZGUucGF0aCxcbiAgICAgICAgJ1xcbiDinYwgVGhpcyBwcm9wZXJ0eSBoYXMgYmVlbiBkZXByZWNhdGVkLiBUaGUgcHJvcGVyeSBoYXMgYmVlbiBpbnN0ZWFkIG5lc3RlZCBpbnRvIGxvZ0Vycm9yTW9uaXRvckNvbmZpZy5cXG4nLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5xdWVyeUVycm9yTW9uaXRvckNvbmZpZyA9IHByb3BzLnF1ZXJ5RXJyb3JNb25pdG9yQ29uZmlnO1xuICAgIHRoaXMubG9nRXJyb3JNb25pdG9yQ29uZmlnID0gcHJvcHMubG9nRXJyb3JNb25pdG9yQ29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhlIGFsYXJtVG9waWMgYXMgYWxhcm0gYWN0aW9uIHRvIHRoZSBnaXZlbiBhbGFybS5cbiAgICpcbiAgICogQHBhcmFtIGFsYXJtIC0gVGhlIHdhdGNoZnVsIHRvIGFkZCB0aG9zZSByZXNvdXJjZXMgdG9cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVBbGFybShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBNb25pdG9yVHlwZSxcbiAgICBhbGFybTogTWV0cmljQWxhcm1Qcm9wcyxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgeyBzaG91bGRPdmVycmlkZVRocmVzaG9sZCwgdGhyZXNob2xkIH0gPSB0aGlzLnNob3VsZE92ZXJyaWRlVGhyZXNob2xkKFxuICAgICAgeyB3YXRjaGZ1bE1vbml0b3JTY29wZTogc2NvcGUsIHdhdGNoZnVsTm9kZUlkOiBpZCB9LFxuICAgICk7XG4gICAgbmV3IERhdGFEb2dNZXRyaWNBbGFybShzY29wZSwgaWQsIHtcbiAgICAgIHNlcnZpY2VOYW1lOiB0aGlzLnNlcnZpY2VOYW1lLFxuICAgICAgbm90aWZpY2F0aW9uOiB0aGlzLm5vdGlmaWNhdGlvbixcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGFsYXJtLmFsYXJtRGVzY3JpcHRpb24sXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGFsYXJtLmNvbXBhcmlzb25PcGVyYXRvcixcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBhbGFybS5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgIG1ldHJpYzogYWxhcm0ubWV0cmljLFxuICAgICAgdGhyZXNob2xkOiBzaG91bGRPdmVycmlkZVRocmVzaG9sZFxuICAgICAgICA/ICh0aHJlc2hvbGQgYXMgbnVtYmVyKVxuICAgICAgICA6IGFsYXJtLnRocmVzaG9sZCxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGFsYXJtLnRyZWF0TWlzc2luZ0RhdGEsXG4gICAgICBwcmlvcml0eTogdGhpcy5xdWVyeUVycm9yTW9uaXRvckNvbmZpZz8ucHJpb3JpdHkgPz8gYWxhcm0ucHJpb3JpdHksXG4gICAgICBhZ2dyZWdhdGVRdWVyeUFzQ291bnQ6IGFsYXJtLmFnZ3JlZ2F0ZVF1ZXJ5QXNDb3VudCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGFsZXJ0IGZvciBlcnJvciBsb2dzXG4gICAqIEBwYXJhbSBzY29wZVxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUxvZ0FsYXJtKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IE1vbml0b3JUeXBlLFxuICAgIGFsYXJtOiBMb2dBbGFybVByb3BzLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB7IHNob3VsZE92ZXJyaWRlVGhyZXNob2xkLCB0aHJlc2hvbGQgfSA9IHRoaXMuc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQoXG4gICAgICB7IHdhdGNoZnVsTW9uaXRvclNjb3BlOiBzY29wZSwgd2F0Y2hmdWxOb2RlSWQ6IGlkIH0sXG4gICAgKTtcbiAgICBjb25zdCBub3RpZmljYXRpb25zOiBJTm90aWZpY2F0aW9uID0gdGhpcy5jcmVhdGVDYXNlc0Zyb21FcnJvckxvZ01vbml0b3JzXG4gICAgICA/IG5ldyBOb3RpZmljYXRpb25BZ2dyZWdhdG9yKFtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb24sXG4gICAgICAgIG5ldyBEYXRhZG9nQ2FzZU5vdGlmaWNhdGlvbigpLFxuICAgICAgXSlcbiAgICAgIDogdGhpcy5ub3RpZmljYXRpb247XG5cbiAgICBuZXcgRGF0YURvZ0xvZ0FsYXJtKHNjb3BlLCBpZCwge1xuICAgICAgc2VydmljZU5hbWU6IGFsYXJtLmxhbWJkYUNsb3Vkd2F0Y2hHcm91cE5hbWUgPz8gdGhpcy5zZXJ2aWNlTmFtZSxcbiAgICAgIGxhbWJkYUZ1bmN0aW9uTmFtZTogYWxhcm0ubGFtYmRhQ2xvdWR3YXRjaEdyb3VwTmFtZSxcbiAgICAgIG5vdGlmaWNhdGlvbjogbm90aWZpY2F0aW9ucyxcbiAgICAgIHBlcmlvZDogYWxhcm0ucGVyaW9kLFxuICAgICAgdW5pdE9mUGVyaW9kOiBhbGFybS51bml0T2ZQZXJpb2QsIC8vIHRvRG86IG1vdmUgdGhhdCBzb21ld2hlcmUgZWxzZSBhbmQgc2V0IGRlZmF1bHRzIHRoZXJlP1xuICAgICAgcGVyaW9kT3BlcmF0b3I6IGFsYXJtLnBlcmlvZE9wZXJhdG9yLFxuICAgICAgc3RhdGlzdGljOiBhbGFybS5zdGF0aXN0aWMsXG4gICAgICBxdWVyeUZpbHRlcnM6IGFsYXJtLnF1ZXJ5RmlsdGVycywgLy8gdG9EbzogbW92ZSB0aGF0IHNvbWV3aGVyZSBlbHNlIGFuZCBzZXQgZGVmYXVsdHMgdGhlcmU/XG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBhbGFybS5hbGFybURlc2NyaXB0aW9uLFxuICAgICAgdGhyZXNob2xkOiBzaG91bGRPdmVycmlkZVRocmVzaG9sZFxuICAgICAgICA/ICh0aHJlc2hvbGQgYXMgbnVtYmVyKVxuICAgICAgICA6IGFsYXJtLnRocmVzaG9sZCxcbiAgICAgIHByaW9yaXR5OiB0aGlzLmxvZ0Vycm9yTW9uaXRvckNvbmZpZz8ucHJpb3JpdHkgPz8gYWxhcm0ucHJpb3JpdHksXG4gICAgICBpbmRleDogYWxhcm0uaW5kZXgsXG4gICAgICBkaXNhYmxlQXV0b0Nsb3NlOiB0aGlzLmxvZ0Vycm9yTW9uaXRvckNvbmZpZz8uZGlzYWJsZUF1dG9DbG9zZSxcbiAgICAgIHJlbm90aWZ5SW50ZXJ2YWw6IHRoaXMubG9nRXJyb3JNb25pdG9yQ29uZmlnPy5yZW5vdGlmeUludGVydmFsLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFdhdGNoZXMgdGhlIGdpdmVuIHNjb3BlIGFuZCBhZGRzIGFsYXJtcyBmb3Iga25vd24gcmVzb3VyY2VzLlxuICAgKi9cbiAgcHVibGljIHdhdGNoU2NvcGUoc2NvcGU6IENvbnN0cnVjdCk6IHZvaWQge1xuICAgIGNvbnN0IGFzcGVjdCA9IG5ldyBXYXRjaGZ1bEFzcGVjdCh0aGlzKTtcbiAgICBBc3BlY3RzLm9mKHNjb3BlKS5hZGQoYXNwZWN0KTtcbiAgfVxufVxuIl19
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hmdWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2hmdWx2Mi93YXRjaGZ1bC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUEwRDtBQUUxRCwyREFBcUU7QUFDckUsaUVBQTREO0FBQzVELDRDQUtzQjtBQUN0QiwwQ0FLcUI7QUFrRnJCOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBYSxRQUFTLFNBQVEsMkJBQWdCO0lBTzVDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBdUIsRUFBRTtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsSUFBSSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFakUsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksb0NBQXdCLEVBQUUsQ0FBQztRQUN6RSxJQUFJLENBQUMsK0JBQStCO1lBQ2xDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSwrQkFBK0I7Z0JBQzVELEtBQUssQ0FBQywrQkFBK0I7Z0JBQ3JDLEtBQUssQ0FBQztRQUNSLElBQUksS0FBSyxDQUFDLCtCQUErQixFQUFFLENBQUM7WUFDMUMsTUFBTSxXQUFXLEdBQUcseUJBQVcsQ0FBQyxFQUFFLENBQUMsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuRCxXQUFXLENBQUMsWUFBWSxDQUN0QixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFDZiw0R0FBNEcsQ0FDN0csQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLHVCQUF1QixDQUFDO1FBQzdELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMscUJBQXFCLENBQUM7SUFDM0QsQ0FBQztJQUVE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QUFDLENBQUM7SUFDaEMsQ0FBQzs7QUF6R0gsNEJBMEdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXNwZWN0cywgU3RhY2ssIEFubm90YXRpb25zIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBEYXRhRG9nTG9nQWxhcm0sIExvZ0FsYXJtUHJvcHMgfSBmcm9tICcuL2RhdGFkb2ctbG9nLWFsYXJtJztcbmltcG9ydCB7IERhdGFEb2dNZXRyaWNBbGFybSB9IGZyb20gJy4vZGF0YWRvZy1tZXRyaWMtYWxhcm0nO1xuaW1wb3J0IHtcbiAgRGF0YWRvZ0Nhc2VOb3RpZmljYXRpb24sXG4gIERlZmF1bHRTbGFja05vdGlmaWNhdGlvbixcbiAgTm90aWZpY2F0aW9uQWdncmVnYXRvcixcbiAgSU5vdGlmaWNhdGlvbixcbn0gZnJvbSAnLi4vZGF0YWRvZ3YyJztcbmltcG9ydCB7XG4gIFdhdGNoZnVsQXNwZWN0LFxuICBNZXRyaWNBbGFybVByb3BzLFxuICBBYnN0cmFjdFdhdGNoZnVsLFxuICBNb25pdG9yVHlwZSxcbn0gZnJvbSAnLi4vd2F0Y2hmdWwnO1xuXG4vKipcbiAqIExvZyBlcnJvciBtb25pdG9yIHByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nRXJyb3JNb25pdG9yUHJvcHMge1xuICAvKipcbiAgICogQ29uZmlndXJlIGlmIG1vbml0b3IgbmVlZHMgdG8gYmUgcmVzb2x2ZWQgbWFudWFsbHkgZXZlcnkgdGltZS4gVGhpcyBvcHRpb24gYWxzbyBzZXRzIHRoZSByZW5vdGlmeSBpbnRlcnZhbCB0byAyIGhvdXJzXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVBdXRvQ2xvc2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHByaW9yaXR5IG9mIHRoZSBsb2cgZXJyb3IgbW9uaXRvclxuICAgKiBAZGVmYXVsdFZhbHVlIDNcbiAgICovXG4gIHJlYWRvbmx5IHByaW9yaXR5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgZXJyb3IgbG9nIG1vbml0b3JzIGNyZWF0aW5nIGNhc2VzIGluIERhdGFkb2cuXG4gICAqIFRoaXMgcHJvcGVydHkgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVGhlIHByb3BlcnkgaGFzIGJlZW4gaW5zdGVhZCBuZXN0ZWQgaW50byBsb2dFcnJvck1vbml0b3JDb25maWcuXG4gICAqIFRoZSBmdW5jdGlvbmFsaXR5IHJlbWFpbnMgdW5jaGFuZ2VkXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUNhc2VzRnJvbUVycm9yTG9nTW9uaXRvcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZW5vdGlmaWNhdGlvbiBpbnRlcnZhbCBmb3IgbG9nIGVycm9yIG1vbml0b3IgaW4gbWludXRlc1xuICAgKi9cbiAgcmVhZG9ubHkgcmVub3RpZnlJbnRlcnZhbD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBRdWVyeSBlcnJvciBtb25pdG9yIHByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlFcnJvck1vbml0b3JQcm9wcyB7XG4gIC8qKlxuICAgKiBTZXQgdGhlIHByaW9yaXR5IG9mIHRoZSBsb2cgZXJyb3IgbW9uaXRvclxuICAgKiBAZGVmYXVsdFZhbHVlIDNcbiAgICovXG4gIHJlYWRvbmx5IHByaW9yaXR5PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIFdhdGNoZnVsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hmdWxQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIFRoZSBzdGFjayBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgd2F5IGhvdyBtb25pdG9ycyBzaG91bGQgbm90aWZ5IGluIGNhc2Ugb2YgYW4gYWxlcnQuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUge0BsaW5rIERlZmF1bHRTbGFja05vdGlmaWNhdGlvbn1cbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbj86IElOb3RpZmljYXRpb247XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBlcnJvciBsb2cgbW9uaXRvcnMgY3JlYXRpbmcgY2FzZXMgaW4gRGF0YWRvZy5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVGhpcyBwcm9wZXJ0eSBoYXMgYmVlbiBkZXByZWNhdGVkLiBUaGUgcHJvcGVyeSBoYXMgYmVlbiBpbnN0ZWFkIG5lc3RlZCBpbnRvIGxvZ0Vycm9yTW9uaXRvckNvbmZpZy4gVGhlIGZ1bmN0aW9uYWxpdHkgcmVtYWlucyB1bmNoYW5nZWQuXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUNhc2VzRnJvbUVycm9yTG9nTW9uaXRvcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgbG9nIGVycm9yIG1vbml0b3IgcHJvcGVydGllc1xuICAgKi9cbiAgcmVhZG9ubHkgbG9nRXJyb3JNb25pdG9yQ29uZmlnPzogTG9nRXJyb3JNb25pdG9yUHJvcHM7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBxdWVyeSBhbGVydCBtb25pdG9ycy4gQWxsIG1vbml0b3JzIGNyZWF0ZWQgYnkgd2F0Y2hmdWwgZXhjZXB0IGZvciBMb2cgZXJyb3IgbW9uaXRvci5cbiAgICogQ29uZmlndXJlIHByb3BlcnR5ICpsb2dFcnJvck1vbml0b3IqIGZvciBMb2cgZXJyb3IgbW9uaXRvci5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5RXJyb3JNb25pdG9yQ29uZmlnPzogUXVlcnlFcnJvck1vbml0b3JQcm9wcztcbn1cblxuLyoqXG4gKiBBIGNvbnN0cnVjdCB0byB3YXRjaCBnaXZlbiBzY29wZSBvciByZXNvdXJjZXMuIE9waW5pb25hdGVkIERhdGFEb2cgYWxhcm1zIGFyZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgZm9yIHdhdGNoZWQgcmVzb3VyY2VzLlxuICpcbiAqIFVzYWdlIHdpdGggbm9uLWRlZmF1bHQgbm90aWZpY2F0aW9uOlxuICogYGBgdHNcbiAqIGNvbnN0IGR3ID0gbmV3IHdhdGNoZnVsdjIuV2F0Y2hmdWwodGhpcywgJ1dhdGNoZnVsJywge1xuICogICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gKiAgIG5vdGlmaWNhdGlvbjogbmV3IGRhdGFkb2d2Mi5TbGFja05vdGlmaWNhdGlvbih7Y2hhbm5lbDogJ3RlYW0tYWxlcnQtY2hhbm5lbCd9KVxuICogfSk7XG4gKiBkdy53YXRjaFNjb3BlKHRoaXMpO1xuICpgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFdhdGNoZnVsIGV4dGVuZHMgQWJzdHJhY3RXYXRjaGZ1bCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uOiBJTm90aWZpY2F0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IGNyZWF0ZUNhc2VzRnJvbUVycm9yTG9nTW9uaXRvcnM6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dFcnJvck1vbml0b3JDb25maWc/OiBMb2dFcnJvck1vbml0b3JQcm9wcztcbiAgcHJpdmF0ZSByZWFkb25seSBxdWVyeUVycm9yTW9uaXRvckNvbmZpZz86IFF1ZXJ5RXJyb3JNb25pdG9yUHJvcHM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdhdGNoZnVsUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5zZXJ2aWNlTmFtZSA9IHByb3BzLnNlcnZpY2VOYW1lID8/IFN0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZTtcblxuICAgIHRoaXMubm90aWZpY2F0aW9uID0gcHJvcHMubm90aWZpY2F0aW9uID8/IG5ldyBEZWZhdWx0U2xhY2tOb3RpZmljYXRpb24oKTtcbiAgICB0aGlzLmNyZWF0ZUNhc2VzRnJvbUVycm9yTG9nTW9uaXRvcnMgPVxuICAgICAgcHJvcHMubG9nRXJyb3JNb25pdG9yQ29uZmlnPy5jcmVhdGVDYXNlc0Zyb21FcnJvckxvZ01vbml0b3JzID8/XG4gICAgICBwcm9wcy5jcmVhdGVDYXNlc0Zyb21FcnJvckxvZ01vbml0b3JzID8/XG4gICAgICBmYWxzZTtcbiAgICBpZiAocHJvcHMuY3JlYXRlQ2FzZXNGcm9tRXJyb3JMb2dNb25pdG9ycykge1xuICAgICAgY29uc3QgYW5ub3RhdGlvbnMgPSBBbm5vdGF0aW9ucy5vZihTdGFjay5vZih0aGlzKSk7XG4gICAgICBhbm5vdGF0aW9ucy5hZGRXYXJuaW5nVjIoXG4gICAgICAgIHNjb3BlLm5vZGUucGF0aCxcbiAgICAgICAgJ1xcbiDinYwgVGhpcyBwcm9wZXJ0eSBoYXMgYmVlbiBkZXByZWNhdGVkLiBUaGUgcHJvcGVydHkgaGFzIGJlZW4gaW5zdGVhZCBuZXN0ZWQgaW50byBsb2dFcnJvck1vbml0b3JDb25maWcuXFxuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMucXVlcnlFcnJvck1vbml0b3JDb25maWcgPSBwcm9wcy5xdWVyeUVycm9yTW9uaXRvckNvbmZpZztcbiAgICB0aGlzLmxvZ0Vycm9yTW9uaXRvckNvbmZpZyA9IHByb3BzLmxvZ0Vycm9yTW9uaXRvckNvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoZSBhbGFybVRvcGljIGFzIGFsYXJtIGFjdGlvbiB0byB0aGUgZ2l2ZW4gYWxhcm0uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBjb25zdHJ1Y3QgdG8gYWRkIHRoZSBhbGFybSB0b1xuICAgKiBAcGFyYW0gaWQgLSBUaGUgaWQgb2YgdGhlIGFsYXJtXG4gICAqIEBwYXJhbSBhbGFybSAtIFRoZSB3YXRjaGZ1bCB0byBhZGQgdGhvc2UgcmVzb3VyY2VzIHRvXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlQWxhcm0oXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogTW9uaXRvclR5cGUsXG4gICAgYWxhcm06IE1ldHJpY0FsYXJtUHJvcHMsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHsgc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQsIHRocmVzaG9sZCB9ID0gdGhpcy5zaG91bGRPdmVycmlkZVRocmVzaG9sZChcbiAgICAgIHsgd2F0Y2hmdWxNb25pdG9yU2NvcGU6IHNjb3BlLCB3YXRjaGZ1bE5vZGVJZDogaWQgfSxcbiAgICApO1xuICAgIG5ldyBEYXRhRG9nTWV0cmljQWxhcm0oc2NvcGUsIGlkLCB7XG4gICAgICBzZXJ2aWNlTmFtZTogdGhpcy5zZXJ2aWNlTmFtZSxcbiAgICAgIG5vdGlmaWNhdGlvbjogdGhpcy5ub3RpZmljYXRpb24sXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBhbGFybS5hbGFybURlc2NyaXB0aW9uLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBhbGFybS5jb21wYXJpc29uT3BlcmF0b3IsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogYWxhcm0uZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICBtZXRyaWM6IGFsYXJtLm1ldHJpYyxcbiAgICAgIHRocmVzaG9sZDogc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGRcbiAgICAgICAgPyAodGhyZXNob2xkIGFzIG51bWJlcilcbiAgICAgICAgOiBhbGFybS50aHJlc2hvbGQsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBhbGFybS50cmVhdE1pc3NpbmdEYXRhLFxuICAgICAgcHJpb3JpdHk6IHRoaXMucXVlcnlFcnJvck1vbml0b3JDb25maWc/LnByaW9yaXR5ID8/IGFsYXJtLnByaW9yaXR5LFxuICAgICAgYWdncmVnYXRlUXVlcnlBc0NvdW50OiBhbGFybS5hZ2dyZWdhdGVRdWVyeUFzQ291bnQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBhbGVydCBmb3IgZXJyb3IgbG9nc1xuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgY29uc3RydWN0IHRvIGFkZCB0aGUgYWxhcm0gdG9cbiAgICogQHBhcmFtIGlkIC0gVGhlIGlkIG9mIHRoZSBhbGFybVxuICAgKiBAcGFyYW0gYWxhcm0gLSBUaGUgYWxhcm0gcHJvcGVydGllcyBzZWUge0BsaW5rIExvZ0FsYXJtUHJvcHN9XG4gICAqL1xuICBwdWJsaWMgY3JlYXRlTG9nQWxhcm0oXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogTW9uaXRvclR5cGUsXG4gICAgYWxhcm06IExvZ0FsYXJtUHJvcHMsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHsgc2hvdWxkT3ZlcnJpZGVUaHJlc2hvbGQsIHRocmVzaG9sZCB9ID0gdGhpcy5zaG91bGRPdmVycmlkZVRocmVzaG9sZChcbiAgICAgIHsgd2F0Y2hmdWxNb25pdG9yU2NvcGU6IHNjb3BlLCB3YXRjaGZ1bE5vZGVJZDogaWQgfSxcbiAgICApO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbnM6IElOb3RpZmljYXRpb24gPSB0aGlzLmNyZWF0ZUNhc2VzRnJvbUVycm9yTG9nTW9uaXRvcnNcbiAgICAgID8gbmV3IE5vdGlmaWNhdGlvbkFnZ3JlZ2F0b3IoW1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbixcbiAgICAgICAgbmV3IERhdGFkb2dDYXNlTm90aWZpY2F0aW9uKCksXG4gICAgICBdKVxuICAgICAgOiB0aGlzLm5vdGlmaWNhdGlvbjtcblxuICAgIG5ldyBEYXRhRG9nTG9nQWxhcm0oc2NvcGUsIGlkLCB7XG4gICAgICBzZXJ2aWNlTmFtZTogYWxhcm0ubGFtYmRhQ2xvdWR3YXRjaEdyb3VwTmFtZSA/PyB0aGlzLnNlcnZpY2VOYW1lLFxuICAgICAgbGFtYmRhRnVuY3Rpb25OYW1lOiBhbGFybS5sYW1iZGFDbG91ZHdhdGNoR3JvdXBOYW1lLFxuICAgICAgbm90aWZpY2F0aW9uOiBub3RpZmljYXRpb25zLFxuICAgICAgcGVyaW9kOiBhbGFybS5wZXJpb2QsXG4gICAgICB1bml0T2ZQZXJpb2Q6IGFsYXJtLnVuaXRPZlBlcmlvZCwgLy8gdG9EbzogbW92ZSB0aGF0IHNvbWV3aGVyZSBlbHNlIGFuZCBzZXQgZGVmYXVsdHMgdGhlcmU/XG4gICAgICBwZXJpb2RPcGVyYXRvcjogYWxhcm0ucGVyaW9kT3BlcmF0b3IsXG4gICAgICBzdGF0aXN0aWM6IGFsYXJtLnN0YXRpc3RpYyxcbiAgICAgIHF1ZXJ5RmlsdGVyczogYWxhcm0ucXVlcnlGaWx0ZXJzLCAvLyB0b0RvOiBtb3ZlIHRoYXQgc29tZXdoZXJlIGVsc2UgYW5kIHNldCBkZWZhdWx0cyB0aGVyZT9cbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGFsYXJtLmFsYXJtRGVzY3JpcHRpb24sXG4gICAgICB0aHJlc2hvbGQ6IHNob3VsZE92ZXJyaWRlVGhyZXNob2xkXG4gICAgICAgID8gKHRocmVzaG9sZCBhcyBudW1iZXIpXG4gICAgICAgIDogYWxhcm0udGhyZXNob2xkLFxuICAgICAgcHJpb3JpdHk6IHRoaXMubG9nRXJyb3JNb25pdG9yQ29uZmlnPy5wcmlvcml0eSA/PyBhbGFybS5wcmlvcml0eSxcbiAgICAgIGluZGV4OiBhbGFybS5pbmRleCxcbiAgICAgIGRpc2FibGVBdXRvQ2xvc2U6IHRoaXMubG9nRXJyb3JNb25pdG9yQ29uZmlnPy5kaXNhYmxlQXV0b0Nsb3NlLFxuICAgICAgcmVub3RpZnlJbnRlcnZhbDogdGhpcy5sb2dFcnJvck1vbml0b3JDb25maWc/LnJlbm90aWZ5SW50ZXJ2YWwsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogV2F0Y2hlcyB0aGUgZ2l2ZW4gc2NvcGUgYW5kIGFkZHMgYWxhcm1zIGZvciBrbm93biByZXNvdXJjZXMuXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hTY29wZShzY29wZTogQ29uc3RydWN0KTogdm9pZCB7XG4gICAgY29uc3QgYXNwZWN0ID0gbmV3IFdhdGNoZnVsQXNwZWN0KHRoaXMpO1xuICAgIEFzcGVjdHMub2Yoc2NvcGUpLmFkZChhc3BlY3QpO1xuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
package/version.json
CHANGED