@liflig/cdk 2.23.1 → 2.25.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/lib/alarms/database-alarms.js +29 -30
- package/lib/alarms/index.d.ts +6 -3
- package/lib/alarms/index.js +4 -10
- package/lib/alarms/service-alarms.js +38 -38
- package/lib/alarms/ses-alarms.js +16 -20
- package/lib/alarms/slack-alarm.js +18 -17
- package/lib/bastion-host.js +12 -15
- package/lib/bin/cdk-create-snapshots.js +3 -5
- package/lib/bin/fetch-pipeline-variables.js +4 -6
- package/lib/build-artifacts/github-actions-role.js +9 -14
- package/lib/build-artifacts/index.js +25 -26
- package/lib/cdk-pipelines/cloud-assembly-lookup-handler.js +13 -17
- package/lib/cdk-pipelines/index.d.ts +4 -2
- package/lib/cdk-pipelines/index.js +4 -10
- package/lib/cdk-pipelines/liflig-cdk-pipeline.js +29 -24
- package/lib/cdk-pipelines/slack-notification.js +12 -14
- package/lib/cdk-pipelines/variables.js +12 -18
- package/lib/cloudtrail-slack-integration/cloudtrail-slack-integration.js +16 -17
- package/lib/cloudtrail-slack-integration/index.d.ts +2 -1
- package/lib/cloudtrail-slack-integration/index.js +2 -6
- package/lib/configure-parameters/configure-parameters.js +12 -11
- package/lib/configure-parameters/index.d.ts +2 -1
- package/lib/configure-parameters/index.js +2 -6
- package/lib/cross-region-ssm-parameter.js +4 -8
- package/lib/ecs/cluster.js +11 -13
- package/lib/ecs/fargate-service.js +25 -25
- package/lib/ecs/index.d.ts +6 -3
- package/lib/ecs/index.js +4 -10
- package/lib/ecs/listener-rule.js +13 -10
- package/lib/feature-flags.js +5 -10
- package/lib/hosted-zone-with-param.js +15 -16
- package/lib/index.js +22 -56
- package/lib/kinesis/index.d.ts +2 -1
- package/lib/kinesis/index.js +2 -6
- package/lib/kinesis/kinesis-to-datadog-stream.js +11 -15
- package/lib/load-balancer/index.d.ts +2 -1
- package/lib/load-balancer/index.js +2 -6
- package/lib/load-balancer/load-balancer.js +12 -13
- package/lib/platform/index.d.ts +2 -1
- package/lib/platform/index.js +2 -7
- package/lib/platform/platform.js +9 -10
- package/lib/rds/database.js +15 -15
- package/lib/rds/index.d.ts +2 -1
- package/lib/rds/index.js +2 -6
- package/lib/ses/configurationsetdeliveryoptions/index.js +5 -9
- package/lib/ses/configurationsetsnsdestination/handler.js +8 -12
- package/lib/ses/configurationsetsnsdestination/index.js +22 -19
- package/lib/ses/index.d.ts +2 -1
- package/lib/ses/index.js +5 -12
- package/lib/ses/sesdomain/handler.js +11 -16
- package/lib/ses/sesdomain/index.js +24 -19
- package/lib/ses/sesverifyemail/handler.js +6 -10
- package/lib/ses/sesverifyemail/index.js +19 -14
- package/lib/snapshots.js +13 -19
- package/lib/ssm-parameter-backed-resource.js +15 -15
- package/lib/ssm-parameter-reader.js +5 -10
- package/lib/tags.js +4 -7
- package/lib/utils.js +3 -6
- package/lib/webapp/index.d.ts +2 -1
- package/lib/webapp/index.js +4 -10
- package/lib/webapp/monitor.js +32 -33
- package/lib/webapp/security-headers.js +7 -11
- package/lib/webapp/webapp.js +20 -22
- package/lib/webapp-deploy-via-role.js +7 -11
- package/package.json +29 -25
package/lib/alarms/ses-alarms.js
CHANGED
|
@@ -1,49 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const cdk = require("aws-cdk-lib");
|
|
5
|
-
const cloudwatch = require("aws-cdk-lib/aws-cloudwatch");
|
|
6
|
-
const constructs = require("constructs");
|
|
1
|
+
import * as cdk from "aws-cdk-lib";
|
|
2
|
+
import * as cloudwatch from "aws-cdk-lib/aws-cloudwatch";
|
|
3
|
+
import * as constructs from "constructs";
|
|
7
4
|
/**
|
|
8
5
|
*
|
|
9
6
|
* Construct that configures various sensible CloudWatch alarms for AWS SES
|
|
10
7
|
*/
|
|
11
|
-
class SesAlarms extends constructs.Construct {
|
|
8
|
+
export class SesAlarms extends constructs.Construct {
|
|
9
|
+
action;
|
|
12
10
|
constructor(scope, id, props) {
|
|
13
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
14
11
|
super(scope, id);
|
|
15
12
|
this.action = props.action;
|
|
16
13
|
const bouncedMessagesAlarm = new cloudwatch.Metric({
|
|
17
14
|
metricName: "Reputation.BounceRate",
|
|
18
15
|
namespace: "AWS/SES",
|
|
19
16
|
statistic: "Maximum",
|
|
20
|
-
period:
|
|
17
|
+
period: props?.bouncedMessagesAlarm?.period ?? cdk.Duration.minutes(10),
|
|
21
18
|
}).createAlarm(this, "BouncedMessagesAlarm", {
|
|
22
|
-
alarmDescription: `The SES bounce rate is over ${
|
|
19
|
+
alarmDescription: `The SES bounce rate is over ${props?.bouncedMessagesAlarm?.threshold ?? 2.5}%`,
|
|
23
20
|
comparisonOperator: cloudwatch.ComparisonOperator.GREATER_THAN_THRESHOLD,
|
|
24
21
|
evaluationPeriods: 1,
|
|
25
22
|
treatMissingData: cloudwatch.TreatMissingData.IGNORE,
|
|
26
|
-
threshold: (
|
|
23
|
+
threshold: (props?.bouncedMessagesAlarm?.threshold ?? 2.5) / 100,
|
|
27
24
|
});
|
|
28
|
-
if (
|
|
29
|
-
bouncedMessagesAlarm.addAlarmAction(
|
|
25
|
+
if (props?.bouncedMessagesAlarm?.enabled ?? true) {
|
|
26
|
+
bouncedMessagesAlarm.addAlarmAction(props?.bouncedMessagesAlarm?.action || this.action);
|
|
30
27
|
}
|
|
31
28
|
const complaintMessagesAlarm = new cloudwatch.Metric({
|
|
32
29
|
metricName: "Reputation.ComplaintRate",
|
|
33
30
|
namespace: "AWS/SES",
|
|
34
31
|
statistic: "Maximum",
|
|
35
|
-
period:
|
|
32
|
+
period: props?.complaintRateAlarm?.period ?? cdk.Duration.minutes(10),
|
|
36
33
|
}).createAlarm(this, "ComplaintMessagesAlarm", {
|
|
37
|
-
alarmDescription: `The SES complaint rate is over ${
|
|
34
|
+
alarmDescription: `The SES complaint rate is over ${props?.complaintRateAlarm?.threshold ?? 0.05}%`,
|
|
38
35
|
comparisonOperator: cloudwatch.ComparisonOperator.GREATER_THAN_THRESHOLD,
|
|
39
36
|
evaluationPeriods: 1,
|
|
40
|
-
threshold: (
|
|
37
|
+
threshold: (props?.complaintRateAlarm?.threshold ?? 0.05) / 100,
|
|
41
38
|
treatMissingData: cloudwatch.TreatMissingData.IGNORE,
|
|
42
39
|
});
|
|
43
|
-
if (
|
|
44
|
-
complaintMessagesAlarm.addAlarmAction(
|
|
40
|
+
if (props?.complaintRateAlarm?.enabled ?? true) {
|
|
41
|
+
complaintMessagesAlarm.addAlarmAction(props?.complaintRateAlarm?.action || this.action);
|
|
45
42
|
}
|
|
46
43
|
}
|
|
47
44
|
}
|
|
48
|
-
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VzLWFsYXJtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbGFybXMvc2VzLWFsYXJtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBa0M7QUFDbEMseURBQXdEO0FBQ3hELHlDQUF3QztBQTJEeEM7OztHQUdHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFHakQsWUFBWSxLQUEyQixFQUFFLEVBQVUsRUFBRSxLQUFxQjs7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUE7UUFFMUIsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDakQsVUFBVSxFQUFFLHVCQUF1QjtZQUNuQyxTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUUsU0FBUztZQUNwQixNQUFNLEVBQUUsTUFBQSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxvQkFBb0IsMENBQUUsTUFBTSxtQ0FBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7U0FDeEUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7WUFDM0MsZ0JBQWdCLEVBQUUsK0JBQ2hCLE1BQUEsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsb0JBQW9CLDBDQUFFLFNBQVMsbUNBQUksR0FDNUMsR0FBRztZQUNILGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0I7WUFDeEUsaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixnQkFBZ0IsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTTtZQUNwRCxTQUFTLEVBQUUsQ0FBQyxNQUFBLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG9CQUFvQiwwQ0FBRSxTQUFTLG1DQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUc7U0FDakUsQ0FBQyxDQUFBO1FBRUYsSUFBSSxNQUFBLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG9CQUFvQiwwQ0FBRSxPQUFPLG1DQUFJLElBQUksRUFBRSxDQUFDO1lBQ2pELG9CQUFvQixDQUFDLGNBQWMsQ0FDakMsQ0FBQSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxvQkFBb0IsMENBQUUsTUFBTSxLQUFJLElBQUksQ0FBQyxNQUFNLENBQ25ELENBQUE7UUFDSCxDQUFDO1FBRUQsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDbkQsVUFBVSxFQUFFLDBCQUEwQjtZQUN0QyxTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUUsU0FBUztZQUNwQixNQUFNLEVBQUUsTUFBQSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxrQkFBa0IsMENBQUUsTUFBTSxtQ0FBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7U0FDdEUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUU7WUFDN0MsZ0JBQWdCLEVBQUUsa0NBQ2hCLE1BQUEsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsa0JBQWtCLDBDQUFFLFNBQVMsbUNBQUksSUFDMUMsR0FBRztZQUNILGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0I7WUFDeEUsaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixTQUFTLEVBQUUsQ0FBQyxNQUFBLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGtCQUFrQiwwQ0FBRSxTQUFTLG1DQUFJLElBQUksQ0FBQyxHQUFHLEdBQUc7WUFDL0QsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU07U0FDckQsQ0FBQyxDQUFBO1FBRUYsSUFBSSxNQUFBLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGtCQUFrQiwwQ0FBRSxPQUFPLG1DQUFJLElBQUksRUFBRSxDQUFDO1lBQy9DLHNCQUFzQixDQUFDLGNBQWMsQ0FDbkMsQ0FBQSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxrQkFBa0IsMENBQUUsTUFBTSxLQUFJLElBQUksQ0FBQyxNQUFNLENBQ2pELENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbERELDhCQWtEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIlxuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VzQWxhcm1zUHJvcHMgZXh0ZW5kcyBjZGsuU3RhY2tQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXNcbiAgICovXG4gIGFjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIGFsYXJtIGZvciBoaWdoIHJhdGUgYm91bmNlZCBtZXNzYWdlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgQ29uZmlndXJlZCB3aXRoIHJlYXNvbmFibGUgZGVmYXVsdHMuXG4gICAqL1xuICBib3VuY2VkTWVzc2FnZXNBbGFybT86IHtcbiAgICAvKipcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAvKipcbiAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgKi9cbiAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgIC8qKlxuICAgICAqIEBkZWZhdWx0IDEwIG1pbnV0ZXNcbiAgICAgKi9cbiAgICBwZXJpb2Q/OiBjZGsuRHVyYXRpb25cbiAgICAvKipcbiAgICAgKiBUaHJlc2hvbGQgdmFsdWUgZm9yIGFsYXJtIGFzIGEgcGVyY2VudFxuICAgICAqIEBkZWZhdWx0IDIuNSglKVxuICAgICAqIDUlIGlzIHRoZSB0aHJlc2hvbGQgYXQgd2hpY2ggQVdTIGNvbnNpZGVycyBwdXR0aW5nIGFuIGFjY291bnQgdW5kZXIgcmV2aWV3XG4gICAgICovXG4gICAgdGhyZXNob2xkPzogbnVtYmVyXG4gIH1cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIGFsYXJtIGZvciBoaWdoIGNvbXBsYWludCByYXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBDb25maWd1cmVkIHdpdGggc2FuZSBkZWZhdWx0cy5cbiAgICovXG4gIGNvbXBsYWludFJhdGVBbGFybT86IHtcbiAgICAvKipcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAvKipcbiAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgKi9cbiAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgIC8qKlxuICAgICAqIEBkZWZhdWx0IDEwIG1pbnV0ZXNcbiAgICAgKi9cbiAgICBwZXJpb2Q/OiBjZGsuRHVyYXRpb25cbiAgICAvKipcbiAgICAgKiBUaHJlc2hvbGQgdmFsdWUgZm9yIGFsYXJtIGFzIGEgcGVyY2VudFxuICAgICAqIEBkZWZhdWx0IDAuMDUoJSlcbiAgICAgKiAwLjEwJSBpcyB0aGUgdGhyZXNob2xkIGF0IHdoaWNoIEFXUyBjb25zaWRlcnMgcHV0dGluZyBhbiBhY2NvdW50IHVuZGVyIHJldmlld1xuICAgICAqL1xuICAgIHRocmVzaG9sZD86IG51bWJlclxuICB9XG59XG5cbi8qKlxuICpcbiAqIENvbnN0cnVjdCB0aGF0IGNvbmZpZ3VyZXMgdmFyaW91cyBzZW5zaWJsZSBDbG91ZFdhdGNoIGFsYXJtcyBmb3IgQVdTIFNFU1xuICovXG5leHBvcnQgY2xhc3MgU2VzQWxhcm1zIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTZXNBbGFybXNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIHRoaXMuYWN0aW9uID0gcHJvcHMuYWN0aW9uXG5cbiAgICBjb25zdCBib3VuY2VkTWVzc2FnZXNBbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIlJlcHV0YXRpb24uQm91bmNlUmF0ZVwiLFxuICAgICAgbmFtZXNwYWNlOiBcIkFXUy9TRVNcIixcbiAgICAgIHN0YXRpc3RpYzogXCJNYXhpbXVtXCIsXG4gICAgICBwZXJpb2Q6IHByb3BzPy5ib3VuY2VkTWVzc2FnZXNBbGFybT8ucGVyaW9kID8/IGNkay5EdXJhdGlvbi5taW51dGVzKDEwKSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkJvdW5jZWRNZXNzYWdlc0FsYXJtXCIsIHtcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBUaGUgU0VTIGJvdW5jZSByYXRlIGlzIG92ZXIgJHtcbiAgICAgICAgcHJvcHM/LmJvdW5jZWRNZXNzYWdlc0FsYXJtPy50aHJlc2hvbGQgPz8gMi41XG4gICAgICB9JWAsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgICB0aHJlc2hvbGQ6IChwcm9wcz8uYm91bmNlZE1lc3NhZ2VzQWxhcm0/LnRocmVzaG9sZCA/PyAyLjUpIC8gMTAwLFxuICAgIH0pXG5cbiAgICBpZiAocHJvcHM/LmJvdW5jZWRNZXNzYWdlc0FsYXJtPy5lbmFibGVkID8/IHRydWUpIHtcbiAgICAgIGJvdW5jZWRNZXNzYWdlc0FsYXJtLmFkZEFsYXJtQWN0aW9uKFxuICAgICAgICBwcm9wcz8uYm91bmNlZE1lc3NhZ2VzQWxhcm0/LmFjdGlvbiB8fCB0aGlzLmFjdGlvbixcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBjb21wbGFpbnRNZXNzYWdlc0FsYXJtID0gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6IFwiUmVwdXRhdGlvbi5Db21wbGFpbnRSYXRlXCIsXG4gICAgICBuYW1lc3BhY2U6IFwiQVdTL1NFU1wiLFxuICAgICAgc3RhdGlzdGljOiBcIk1heGltdW1cIixcbiAgICAgIHBlcmlvZDogcHJvcHM/LmNvbXBsYWludFJhdGVBbGFybT8ucGVyaW9kID8/IGNkay5EdXJhdGlvbi5taW51dGVzKDEwKSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkNvbXBsYWludE1lc3NhZ2VzQWxhcm1cIiwge1xuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYFRoZSBTRVMgY29tcGxhaW50IHJhdGUgaXMgb3ZlciAke1xuICAgICAgICBwcm9wcz8uY29tcGxhaW50UmF0ZUFsYXJtPy50aHJlc2hvbGQgPz8gMC4wNVxuICAgICAgfSVgLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICB0aHJlc2hvbGQ6IChwcm9wcz8uY29tcGxhaW50UmF0ZUFsYXJtPy50aHJlc2hvbGQgPz8gMC4wNSkgLyAxMDAsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuSUdOT1JFLFxuICAgIH0pXG5cbiAgICBpZiAocHJvcHM/LmNvbXBsYWludFJhdGVBbGFybT8uZW5hYmxlZCA/PyB0cnVlKSB7XG4gICAgICBjb21wbGFpbnRNZXNzYWdlc0FsYXJtLmFkZEFsYXJtQWN0aW9uKFxuICAgICAgICBwcm9wcz8uY29tcGxhaW50UmF0ZUFsYXJtPy5hY3Rpb24gfHwgdGhpcy5hY3Rpb24sXG4gICAgICApXG4gICAgfVxuICB9XG59XG4iXX0=
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VzLWFsYXJtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbGFybXMvc2VzLWFsYXJtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssR0FBRyxNQUFNLGFBQWEsQ0FBQTtBQUNsQyxPQUFPLEtBQUssVUFBVSxNQUFNLDRCQUE0QixDQUFBO0FBQ3hELE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBMkR4Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sU0FBVSxTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBQ2hDLE1BQU0sQ0FBeUI7SUFFaEQsWUFBWSxLQUEyQixFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUN4RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQTtRQUUxQixNQUFNLG9CQUFvQixHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNqRCxVQUFVLEVBQUUsdUJBQXVCO1lBQ25DLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLE1BQU0sRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztTQUN4RSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRTtZQUMzQyxnQkFBZ0IsRUFBRSwrQkFDaEIsS0FBSyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsSUFBSSxHQUM1QyxHQUFHO1lBQ0gsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQjtZQUN4RSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BCLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNO1lBQ3BELFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxTQUFTLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRztTQUNqRSxDQUFDLENBQUE7UUFFRixJQUFJLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDakQsb0JBQW9CLENBQUMsY0FBYyxDQUNqQyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQ25ELENBQUE7UUFDSCxDQUFDO1FBRUQsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDbkQsVUFBVSxFQUFFLDBCQUEwQjtZQUN0QyxTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUUsU0FBUztZQUNwQixNQUFNLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7U0FDdEUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUU7WUFDN0MsZ0JBQWdCLEVBQUUsa0NBQ2hCLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxTQUFTLElBQUksSUFDMUMsR0FBRztZQUNILGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0I7WUFDeEUsaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLEdBQUc7WUFDL0QsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU07U0FDckQsQ0FBQyxDQUFBO1FBRUYsSUFBSSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQy9DLHNCQUFzQixDQUFDLGNBQWMsQ0FDbkMsS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUNqRCxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIlxuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VzQWxhcm1zUHJvcHMgZXh0ZW5kcyBjZGsuU3RhY2tQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXNcbiAgICovXG4gIGFjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIGFsYXJtIGZvciBoaWdoIHJhdGUgYm91bmNlZCBtZXNzYWdlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgQ29uZmlndXJlZCB3aXRoIHJlYXNvbmFibGUgZGVmYXVsdHMuXG4gICAqL1xuICBib3VuY2VkTWVzc2FnZXNBbGFybT86IHtcbiAgICAvKipcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAvKipcbiAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgKi9cbiAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgIC8qKlxuICAgICAqIEBkZWZhdWx0IDEwIG1pbnV0ZXNcbiAgICAgKi9cbiAgICBwZXJpb2Q/OiBjZGsuRHVyYXRpb25cbiAgICAvKipcbiAgICAgKiBUaHJlc2hvbGQgdmFsdWUgZm9yIGFsYXJtIGFzIGEgcGVyY2VudFxuICAgICAqIEBkZWZhdWx0IDIuNSglKVxuICAgICAqIDUlIGlzIHRoZSB0aHJlc2hvbGQgYXQgd2hpY2ggQVdTIGNvbnNpZGVycyBwdXR0aW5nIGFuIGFjY291bnQgdW5kZXIgcmV2aWV3XG4gICAgICovXG4gICAgdGhyZXNob2xkPzogbnVtYmVyXG4gIH1cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIGFsYXJtIGZvciBoaWdoIGNvbXBsYWludCByYXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBDb25maWd1cmVkIHdpdGggc2FuZSBkZWZhdWx0cy5cbiAgICovXG4gIGNvbXBsYWludFJhdGVBbGFybT86IHtcbiAgICAvKipcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAvKipcbiAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgKi9cbiAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgIC8qKlxuICAgICAqIEBkZWZhdWx0IDEwIG1pbnV0ZXNcbiAgICAgKi9cbiAgICBwZXJpb2Q/OiBjZGsuRHVyYXRpb25cbiAgICAvKipcbiAgICAgKiBUaHJlc2hvbGQgdmFsdWUgZm9yIGFsYXJtIGFzIGEgcGVyY2VudFxuICAgICAqIEBkZWZhdWx0IDAuMDUoJSlcbiAgICAgKiAwLjEwJSBpcyB0aGUgdGhyZXNob2xkIGF0IHdoaWNoIEFXUyBjb25zaWRlcnMgcHV0dGluZyBhbiBhY2NvdW50IHVuZGVyIHJldmlld1xuICAgICAqL1xuICAgIHRocmVzaG9sZD86IG51bWJlclxuICB9XG59XG5cbi8qKlxuICpcbiAqIENvbnN0cnVjdCB0aGF0IGNvbmZpZ3VyZXMgdmFyaW91cyBzZW5zaWJsZSBDbG91ZFdhdGNoIGFsYXJtcyBmb3IgQVdTIFNFU1xuICovXG5leHBvcnQgY2xhc3MgU2VzQWxhcm1zIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTZXNBbGFybXNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIHRoaXMuYWN0aW9uID0gcHJvcHMuYWN0aW9uXG5cbiAgICBjb25zdCBib3VuY2VkTWVzc2FnZXNBbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIlJlcHV0YXRpb24uQm91bmNlUmF0ZVwiLFxuICAgICAgbmFtZXNwYWNlOiBcIkFXUy9TRVNcIixcbiAgICAgIHN0YXRpc3RpYzogXCJNYXhpbXVtXCIsXG4gICAgICBwZXJpb2Q6IHByb3BzPy5ib3VuY2VkTWVzc2FnZXNBbGFybT8ucGVyaW9kID8/IGNkay5EdXJhdGlvbi5taW51dGVzKDEwKSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkJvdW5jZWRNZXNzYWdlc0FsYXJtXCIsIHtcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBUaGUgU0VTIGJvdW5jZSByYXRlIGlzIG92ZXIgJHtcbiAgICAgICAgcHJvcHM/LmJvdW5jZWRNZXNzYWdlc0FsYXJtPy50aHJlc2hvbGQgPz8gMi41XG4gICAgICB9JWAsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgICB0aHJlc2hvbGQ6IChwcm9wcz8uYm91bmNlZE1lc3NhZ2VzQWxhcm0/LnRocmVzaG9sZCA/PyAyLjUpIC8gMTAwLFxuICAgIH0pXG5cbiAgICBpZiAocHJvcHM/LmJvdW5jZWRNZXNzYWdlc0FsYXJtPy5lbmFibGVkID8/IHRydWUpIHtcbiAgICAgIGJvdW5jZWRNZXNzYWdlc0FsYXJtLmFkZEFsYXJtQWN0aW9uKFxuICAgICAgICBwcm9wcz8uYm91bmNlZE1lc3NhZ2VzQWxhcm0/LmFjdGlvbiB8fCB0aGlzLmFjdGlvbixcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBjb21wbGFpbnRNZXNzYWdlc0FsYXJtID0gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6IFwiUmVwdXRhdGlvbi5Db21wbGFpbnRSYXRlXCIsXG4gICAgICBuYW1lc3BhY2U6IFwiQVdTL1NFU1wiLFxuICAgICAgc3RhdGlzdGljOiBcIk1heGltdW1cIixcbiAgICAgIHBlcmlvZDogcHJvcHM/LmNvbXBsYWludFJhdGVBbGFybT8ucGVyaW9kID8/IGNkay5EdXJhdGlvbi5taW51dGVzKDEwKSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkNvbXBsYWludE1lc3NhZ2VzQWxhcm1cIiwge1xuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYFRoZSBTRVMgY29tcGxhaW50IHJhdGUgaXMgb3ZlciAke1xuICAgICAgICBwcm9wcz8uY29tcGxhaW50UmF0ZUFsYXJtPy50aHJlc2hvbGQgPz8gMC4wNVxuICAgICAgfSVgLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICB0aHJlc2hvbGQ6IChwcm9wcz8uY29tcGxhaW50UmF0ZUFsYXJtPy50aHJlc2hvbGQgPz8gMC4wNSkgLyAxMDAsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuSUdOT1JFLFxuICAgIH0pXG5cbiAgICBpZiAocHJvcHM/LmNvbXBsYWludFJhdGVBbGFybT8uZW5hYmxlZCA/PyB0cnVlKSB7XG4gICAgICBjb21wbGFpbnRNZXNzYWdlc0FsYXJtLmFkZEFsYXJtQWN0aW9uKFxuICAgICAgICBwcm9wcz8uY29tcGxhaW50UmF0ZUFsYXJtPy5hY3Rpb24gfHwgdGhpcy5hY3Rpb24sXG4gICAgICApXG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const
|
|
1
|
+
import * as constructs from "constructs";
|
|
2
|
+
import * as cloudwatchActions from "aws-cdk-lib/aws-cloudwatch-actions";
|
|
3
|
+
import * as iam from "aws-cdk-lib/aws-iam";
|
|
4
|
+
import { Effect, PolicyStatement } from "aws-cdk-lib/aws-iam";
|
|
5
|
+
import * as lambda from "aws-cdk-lib/aws-lambda";
|
|
6
|
+
import * as sns from "aws-cdk-lib/aws-sns";
|
|
7
|
+
import { Duration } from "aws-cdk-lib";
|
|
8
|
+
import * as path from "path";
|
|
9
|
+
import { fileURLToPath } from "node:url";
|
|
10
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
11
|
+
const __dirname = path.dirname(__filename);
|
|
12
12
|
/**
|
|
13
13
|
* SNS Topic that can be used to action alarms, with a Lambda
|
|
14
14
|
* that will send a message to Slack for the alarm.
|
|
15
15
|
*/
|
|
16
|
-
class SlackAlarm extends constructs.Construct {
|
|
16
|
+
export class SlackAlarm extends constructs.Construct {
|
|
17
|
+
alarmTopic;
|
|
18
|
+
snsAction;
|
|
17
19
|
constructor(scope, id, props) {
|
|
18
20
|
super(scope, id);
|
|
19
21
|
this.alarmTopic = new sns.Topic(this, "Topic");
|
|
@@ -24,7 +26,7 @@ class SlackAlarm extends constructs.Construct {
|
|
|
24
26
|
handler: "index.handler",
|
|
25
27
|
memorySize: 128,
|
|
26
28
|
runtime: lambda.Runtime.PYTHON_3_11,
|
|
27
|
-
timeout:
|
|
29
|
+
timeout: Duration.seconds(6),
|
|
28
30
|
environment: {
|
|
29
31
|
SLACK_URL_SECRET_NAME: props.slackWebhookUrlSecret.secretName,
|
|
30
32
|
PROJECT_NAME: props.projectName,
|
|
@@ -37,9 +39,9 @@ class SlackAlarm extends constructs.Construct {
|
|
|
37
39
|
principal: new iam.ServicePrincipal("sns.amazonaws.com"),
|
|
38
40
|
sourceArn: this.alarmTopic.topicArn,
|
|
39
41
|
});
|
|
40
|
-
slackLambda.addToRolePolicy(new
|
|
42
|
+
slackLambda.addToRolePolicy(new PolicyStatement({
|
|
41
43
|
actions: ["cloudwatch:DescribeAlarms"],
|
|
42
|
-
effect:
|
|
44
|
+
effect: Effect.ALLOW,
|
|
43
45
|
resources: ["*"],
|
|
44
46
|
}));
|
|
45
47
|
new sns.Subscription(this, "Subscription", {
|
|
@@ -49,5 +51,4 @@ class SlackAlarm extends constructs.Construct {
|
|
|
49
51
|
});
|
|
50
52
|
}
|
|
51
53
|
}
|
|
52
|
-
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhY2stYWxhcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zL3NsYWNrLWFsYXJtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF3QztBQUN4Qyx3RUFBdUU7QUFDdkUsMkNBQTBDO0FBQzFDLGlEQUE2RDtBQUM3RCxpREFBZ0Q7QUFDaEQsMkNBQTBDO0FBQzFDLDZDQUFzQztBQUN0Qyw2QkFBNEI7QUFnQjVCOzs7R0FHRztBQUNILE1BQWEsVUFBVyxTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBSWxELFlBQVksS0FBMkIsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFFOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFakUsTUFBTSxXQUFXLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDeEQsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQ0FBaUMsQ0FBQyxDQUN4RDtZQUNELFdBQVcsRUFDVCwrRUFBK0U7WUFDakYsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLEdBQUc7WUFDZixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQ25DLE9BQU8sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDNUIsV0FBVyxFQUFFO2dCQUNYLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVO2dCQUM3RCxZQUFZLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQy9CLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxPQUFPO2FBQ2hDO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsS0FBSyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUVsRCxXQUFXLENBQUMsYUFBYSxDQUFDLGtCQUFrQixFQUFFO1lBQzVDLE1BQU0sRUFBRSx1QkFBdUI7WUFDL0IsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDO1lBQ3hELFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVE7U0FDcEMsQ0FBQyxDQUFBO1FBQ0YsV0FBVyxDQUFDLGVBQWUsQ0FDekIsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO1lBQ3RDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7WUFDcEIsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO1NBQ2pCLENBQUMsQ0FDSCxDQUFBO1FBRUQsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDekMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxXQUFXO1lBQ2pDLFFBQVEsRUFBRSxHQUFHLENBQUMsb0JBQW9CLENBQUMsTUFBTTtZQUN6QyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDdkIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBakRELGdDQWlEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0ICogYXMgY2xvdWR3YXRjaEFjdGlvbnMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoLWFjdGlvbnNcIlxuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCJcbmltcG9ydCB7IEVmZmVjdCwgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIlxuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCJcbmltcG9ydCAqIGFzIHNucyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNuc1wiXG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCAqIGFzIHNlY3JldHNtYW5hZ2VyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFNsYWNrQWxhcm1Qcm9wcyB7XG4gIHByb2plY3ROYW1lOiBzdHJpbmdcbiAgZW52TmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBBIHBsYWludGV4dCBzZWNyZXQgY29udGFpbmluZyB0aGUgVVJMIG9mIGEgU2xhY2sgaW5jb21pbmcgd2ViaG9vay5cbiAgICogVGhlIHdlYmhvb2sgc2hvdWxkIGJlIGNyZWF0ZWQgdGhyb3VnaCBhIFNsYWNrIGFwcCwgYW5kIG9ubHkgYWxsb3dzIHBvc3RpbmcgdG8gb25lIHNwZWNpZmljIFNsYWNrIGNoYW5uZWwuXG4gICAqIFNlZSBTbGFjaydzIG9mZmljaWFsIGRvY3VtZW50YXRpb24gKGUuZy4sIGh0dHBzOi8vYXBpLnNsYWNrLmNvbS9tZXNzYWdpbmcvd2ViaG9va3MpIGZvciBtb3JlIGRldGFpbHMuXG4gICAqXG4gICAqIE5PVEU6IEluY29taW5nIHdlYmhvb2tzIGNyZWF0ZWQgdGhyb3VnaCBsZWdhY3kgY3VzdG9tIGludGVncmF0aW9ucyBpbiBTbGFjayBhcmUgbm90IHN1cHBvcnRlZC5cbiAgICovXG4gIHNsYWNrV2ViaG9va1VybFNlY3JldDogc2VjcmV0c21hbmFnZXIuSVNlY3JldFxufVxuXG4vKipcbiAqIFNOUyBUb3BpYyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFjdGlvbiBhbGFybXMsIHdpdGggYSBMYW1iZGFcbiAqIHRoYXQgd2lsbCBzZW5kIGEgbWVzc2FnZSB0byBTbGFjayBmb3IgdGhlIGFsYXJtLlxuICovXG5leHBvcnQgY2xhc3MgU2xhY2tBbGFybSBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGFsYXJtVG9waWM6IHNucy5Ub3BpY1xuICBwdWJsaWMgcmVhZG9ubHkgc25zQWN0aW9uOiBjbG91ZHdhdGNoQWN0aW9ucy5TbnNBY3Rpb25cblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTbGFja0FsYXJtUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICB0aGlzLmFsYXJtVG9waWMgPSBuZXcgc25zLlRvcGljKHRoaXMsIFwiVG9waWNcIilcblxuICAgIHRoaXMuc25zQWN0aW9uID0gbmV3IGNsb3Vkd2F0Y2hBY3Rpb25zLlNuc0FjdGlvbih0aGlzLmFsYXJtVG9waWMpXG5cbiAgICBjb25zdCBzbGFja0xhbWJkYSA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgXCJGdW5jdGlvblwiLCB7XG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoXG4gICAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi4vLi4vYXNzZXRzL3NsYWNrLWFsYXJtLWxhbWJkYVwiKSxcbiAgICAgICksXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSZWNlaXZlcyBDbG91ZFdhdGNoIEFsYXJtcyB0aHJvdWdoIFNOUyBhbmQgc2VuZHMgYSBmb3JtYXR0ZWQgdmVyc2lvbiB0byBTbGFja1wiLFxuICAgICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgICBtZW1vcnlTaXplOiAxMjgsXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QWVRIT05fM18xMSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNiksXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBTTEFDS19VUkxfU0VDUkVUX05BTUU6IHByb3BzLnNsYWNrV2ViaG9va1VybFNlY3JldC5zZWNyZXROYW1lLFxuICAgICAgICBQUk9KRUNUX05BTUU6IHByb3BzLnByb2plY3ROYW1lLFxuICAgICAgICBFTlZJUk9OTUVOVF9OQU1FOiBwcm9wcy5lbnZOYW1lLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgcHJvcHMuc2xhY2tXZWJob29rVXJsU2VjcmV0LmdyYW50UmVhZChzbGFja0xhbWJkYSlcblxuICAgIHNsYWNrTGFtYmRhLmFkZFBlcm1pc3Npb24oXCJJbnZva2VQZXJtaXNzaW9uXCIsIHtcbiAgICAgIGFjdGlvbjogXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25cIixcbiAgICAgIHByaW5jaXBhbDogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwic25zLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICBzb3VyY2VBcm46IHRoaXMuYWxhcm1Ub3BpYy50b3BpY0FybixcbiAgICB9KVxuICAgIHNsYWNrTGFtYmRhLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXCJjbG91ZHdhdGNoOkRlc2NyaWJlQWxhcm1zXCJdLFxuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdLFxuICAgICAgfSksXG4gICAgKVxuXG4gICAgbmV3IHNucy5TdWJzY3JpcHRpb24odGhpcywgXCJTdWJzY3JpcHRpb25cIiwge1xuICAgICAgZW5kcG9pbnQ6IHNsYWNrTGFtYmRhLmZ1bmN0aW9uQXJuLFxuICAgICAgcHJvdG9jb2w6IHNucy5TdWJzY3JpcHRpb25Qcm90b2NvbC5MQU1CREEsXG4gICAgICB0b3BpYzogdGhpcy5hbGFybVRvcGljLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhY2stYWxhcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zL3NsYWNrLWFsYXJtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sS0FBSyxpQkFBaUIsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN2RSxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDN0QsT0FBTyxLQUFLLE1BQU0sTUFBTSx3QkFBd0IsQ0FBQTtBQUNoRCxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDdEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUE7QUFFNUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN4QyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNqRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0FBZTFDOzs7R0FHRztBQUNILE1BQU0sT0FBTyxVQUFXLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFDbEMsVUFBVSxDQUFXO0lBQ3JCLFNBQVMsQ0FBNkI7SUFFdEQsWUFBWSxLQUEyQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUU5QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUVqRSxNQUFNLFdBQVcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUN4RCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGlDQUFpQyxDQUFDLENBQ3hEO1lBQ0QsV0FBVyxFQUNULCtFQUErRTtZQUNqRixPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsR0FBRztZQUNmLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDbkMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzVCLFdBQVcsRUFBRTtnQkFDWCxxQkFBcUIsRUFBRSxLQUFLLENBQUMscUJBQXFCLENBQUMsVUFBVTtnQkFDN0QsWUFBWSxFQUFFLEtBQUssQ0FBQyxXQUFXO2dCQUMvQixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsT0FBTzthQUNoQztTQUNGLENBQUMsQ0FBQTtRQUVGLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7UUFFbEQsV0FBVyxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QyxNQUFNLEVBQUUsdUJBQXVCO1lBQy9CLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQztZQUN4RCxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRO1NBQ3BDLENBQUMsQ0FBQTtRQUNGLFdBQVcsQ0FBQyxlQUFlLENBQ3pCLElBQUksZUFBZSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO1lBQ3RDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSztZQUNwQixTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDakIsQ0FBQyxDQUNILENBQUE7UUFFRCxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUN6QyxRQUFRLEVBQUUsV0FBVyxDQUFDLFdBQVc7WUFDakMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNO1lBQ3pDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVTtTQUN2QixDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCAqIGFzIGNsb3Vkd2F0Y2hBY3Rpb25zIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaC1hY3Rpb25zXCJcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiXG5pbXBvcnQgeyBFZmZlY3QsIFBvbGljeVN0YXRlbWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCJcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiXG5pbXBvcnQgKiBhcyBzbnMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zbnNcIlxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQgKiBhcyBzZWNyZXRzbWFuYWdlciBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCJcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tIFwibm9kZTp1cmxcIlxuY29uc3QgX19maWxlbmFtZSA9IGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKVxuY29uc3QgX19kaXJuYW1lID0gcGF0aC5kaXJuYW1lKF9fZmlsZW5hbWUpXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhY2tBbGFybVByb3BzIHtcbiAgcHJvamVjdE5hbWU6IHN0cmluZ1xuICBlbnZOYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIEEgcGxhaW50ZXh0IHNlY3JldCBjb250YWluaW5nIHRoZSBVUkwgb2YgYSBTbGFjayBpbmNvbWluZyB3ZWJob29rLlxuICAgKiBUaGUgd2ViaG9vayBzaG91bGQgYmUgY3JlYXRlZCB0aHJvdWdoIGEgU2xhY2sgYXBwLCBhbmQgb25seSBhbGxvd3MgcG9zdGluZyB0byBvbmUgc3BlY2lmaWMgU2xhY2sgY2hhbm5lbC5cbiAgICogU2VlIFNsYWNrJ3Mgb2ZmaWNpYWwgZG9jdW1lbnRhdGlvbiAoZS5nLiwgaHR0cHM6Ly9hcGkuc2xhY2suY29tL21lc3NhZ2luZy93ZWJob29rcykgZm9yIG1vcmUgZGV0YWlscy5cbiAgICpcbiAgICogTk9URTogSW5jb21pbmcgd2ViaG9va3MgY3JlYXRlZCB0aHJvdWdoIGxlZ2FjeSBjdXN0b20gaW50ZWdyYXRpb25zIGluIFNsYWNrIGFyZSBub3Qgc3VwcG9ydGVkLlxuICAgKi9cbiAgc2xhY2tXZWJob29rVXJsU2VjcmV0OiBzZWNyZXRzbWFuYWdlci5JU2VjcmV0XG59XG5cbi8qKlxuICogU05TIFRvcGljIHRoYXQgY2FuIGJlIHVzZWQgdG8gYWN0aW9uIGFsYXJtcywgd2l0aCBhIExhbWJkYVxuICogdGhhdCB3aWxsIHNlbmQgYSBtZXNzYWdlIHRvIFNsYWNrIGZvciB0aGUgYWxhcm0uXG4gKi9cbmV4cG9ydCBjbGFzcyBTbGFja0FsYXJtIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgYWxhcm1Ub3BpYzogc25zLlRvcGljXG4gIHB1YmxpYyByZWFkb25seSBzbnNBY3Rpb246IGNsb3Vkd2F0Y2hBY3Rpb25zLlNuc0FjdGlvblxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNsYWNrQWxhcm1Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIHRoaXMuYWxhcm1Ub3BpYyA9IG5ldyBzbnMuVG9waWModGhpcywgXCJUb3BpY1wiKVxuXG4gICAgdGhpcy5zbnNBY3Rpb24gPSBuZXcgY2xvdWR3YXRjaEFjdGlvbnMuU25zQWN0aW9uKHRoaXMuYWxhcm1Ub3BpYylcblxuICAgIGNvbnN0IHNsYWNrTGFtYmRhID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCBcIkZ1bmN0aW9uXCIsIHtcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChcbiAgICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLi8uLi9hc3NldHMvc2xhY2stYWxhcm0tbGFtYmRhXCIpLFxuICAgICAgKSxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlJlY2VpdmVzIENsb3VkV2F0Y2ggQWxhcm1zIHRocm91Z2ggU05TIGFuZCBzZW5kcyBhIGZvcm1hdHRlZCB2ZXJzaW9uIHRvIFNsYWNrXCIsXG4gICAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgICAgIG1lbW9yeVNpemU6IDEyOCxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzExLFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcyg2KSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFNMQUNLX1VSTF9TRUNSRVRfTkFNRTogcHJvcHMuc2xhY2tXZWJob29rVXJsU2VjcmV0LnNlY3JldE5hbWUsXG4gICAgICAgIFBST0pFQ1RfTkFNRTogcHJvcHMucHJvamVjdE5hbWUsXG4gICAgICAgIEVOVklST05NRU5UX05BTUU6IHByb3BzLmVudk5hbWUsXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBwcm9wcy5zbGFja1dlYmhvb2tVcmxTZWNyZXQuZ3JhbnRSZWFkKHNsYWNrTGFtYmRhKVxuXG4gICAgc2xhY2tMYW1iZGEuYWRkUGVybWlzc2lvbihcIkludm9rZVBlcm1pc3Npb25cIiwge1xuICAgICAgYWN0aW9uOiBcImxhbWJkYTpJbnZva2VGdW5jdGlvblwiLFxuICAgICAgcHJpbmNpcGFsOiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJzbnMuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIHNvdXJjZUFybjogdGhpcy5hbGFybVRvcGljLnRvcGljQXJuLFxuICAgIH0pXG4gICAgc2xhY2tMYW1iZGEuYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcImNsb3Vkd2F0Y2g6RGVzY3JpYmVBbGFybXNcIl0sXG4gICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICB9KSxcbiAgICApXG5cbiAgICBuZXcgc25zLlN1YnNjcmlwdGlvbih0aGlzLCBcIlN1YnNjcmlwdGlvblwiLCB7XG4gICAgICBlbmRwb2ludDogc2xhY2tMYW1iZGEuZnVuY3Rpb25Bcm4sXG4gICAgICBwcm90b2NvbDogc25zLlN1YnNjcmlwdGlvblByb3RvY29sLkxBTUJEQSxcbiAgICAgIHRvcGljOiB0aGlzLmFsYXJtVG9waWMsXG4gICAgfSlcbiAgfVxufVxuIl19
|
package/lib/bastion-host.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const ec2 = require("aws-cdk-lib/aws-ec2");
|
|
6
|
-
const iam = require("aws-cdk-lib/aws-iam");
|
|
7
|
-
const cdk = require("aws-cdk-lib");
|
|
1
|
+
import * as constructs from "constructs";
|
|
2
|
+
import * as ec2 from "aws-cdk-lib/aws-ec2";
|
|
3
|
+
import * as iam from "aws-cdk-lib/aws-iam";
|
|
4
|
+
import * as cdk from "aws-cdk-lib";
|
|
8
5
|
/**
|
|
9
6
|
* This creates a EC2 bastion host that can be used to connect
|
|
10
7
|
* to database instances and other internal resources.
|
|
@@ -18,18 +15,19 @@ const cdk = require("aws-cdk-lib");
|
|
|
18
15
|
* For more internal details, see
|
|
19
16
|
* https://confluence.capraconsulting.no/x/q8UBC
|
|
20
17
|
*/
|
|
21
|
-
class BastionHost extends constructs.Construct {
|
|
18
|
+
export class BastionHost extends constructs.Construct {
|
|
19
|
+
securityGroup;
|
|
22
20
|
constructor(scope, id, props) {
|
|
23
|
-
var _a, _b;
|
|
24
21
|
super(scope, id);
|
|
25
22
|
const region = cdk.Stack.of(this).region;
|
|
26
23
|
this.securityGroup =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
props.securityGroup ??
|
|
25
|
+
new ec2.SecurityGroup(this, "SecurityGroup", {
|
|
26
|
+
vpc: props.vpc,
|
|
27
|
+
});
|
|
30
28
|
const instance = new ec2.Instance(this, "Instance", {
|
|
31
29
|
vpc: props.vpc,
|
|
32
|
-
vpcSubnets:
|
|
30
|
+
vpcSubnets: props.subnetSelection ?? {
|
|
33
31
|
subnetType: ec2.SubnetType.PUBLIC,
|
|
34
32
|
},
|
|
35
33
|
securityGroup: this.securityGroup,
|
|
@@ -82,5 +80,4 @@ class BastionHost extends constructs.Construct {
|
|
|
82
80
|
});
|
|
83
81
|
}
|
|
84
82
|
}
|
|
85
|
-
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzdGlvbi1ob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Jhc3Rpb24taG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBd0M7QUFDeEMsMkNBQTBDO0FBQzFDLDJDQUEwQztBQUMxQyxtQ0FBa0M7QUF3QmxDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQWEsV0FBWSxTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBR25ELFlBQVksS0FBMkIsRUFBRSxFQUFVLEVBQUUsS0FBWTs7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUE7UUFFeEMsSUFBSSxDQUFDLGFBQWE7WUFDaEIsTUFBQSxLQUFLLENBQUMsYUFBYSxtQ0FDbkIsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUU7Z0JBQzNDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRzthQUNmLENBQUMsQ0FBQTtRQUVKLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2xELEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLFVBQVUsRUFBRSxNQUFBLEtBQUssQ0FBQyxlQUFlLG1DQUFJO2dCQUNuQyxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNO2FBQ2xDO1lBQ0QsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLFlBQVksRUFBRSxTQUFTO1lBQ3ZCLFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FDL0IsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQ3BCLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN0QjtZQUNELFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDO2dCQUMvQyxVQUFVLEVBQUUsR0FBRyxDQUFDLHFCQUFxQixDQUFDLGNBQWM7YUFDckQsQ0FBQztTQUNILENBQUMsQ0FBQTtRQUVGLFFBQVEsQ0FBQyxXQUFXLENBQ2xCLHFDQUFxQyxNQUFNLG9GQUFvRixDQUNoSSxDQUFBO1FBRUQsZUFBZTtRQUNmLFFBQVEsQ0FBQyxlQUFlO1FBQ3RCLDZDQUE2QztRQUM3QywwQ0FBMEM7UUFDMUMsRUFBRTtRQUNGLGlFQUFpRTtRQUNqRSxrRUFBa0U7UUFDbEUsbUVBQW1FO1FBQ25FLDJEQUEyRDtRQUMzRCxFQUFFO1FBQ0YsOERBQThEO1FBQzlELG9HQUFvRztRQUNwRyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsT0FBTyxFQUFFO2dCQUNQLDJHQUEyRztnQkFDM0csK0VBQStFO2dCQUMvRSw4QkFBOEI7Z0JBQzlCLCtCQUErQjtnQkFDL0IsaUJBQWlCO2dCQUNqQixrQkFBa0I7Z0JBQ2xCLHFDQUFxQztnQkFDckMsMkdBQTJHO2dCQUMzRyxrQ0FBa0M7Z0JBQ2xDLCtCQUErQjtnQkFDL0IsZ0NBQWdDO2dCQUNoQyw2QkFBNkI7Z0JBQzdCLDBGQUEwRjtnQkFDMUYsZ0NBQWdDO2dCQUNoQywyQkFBMkI7Z0JBQzNCLHlCQUF5QjtnQkFDekIseUJBQXlCO2dCQUN6Qix5QkFBeUI7Z0JBQ3pCLHVCQUF1QjthQUN4QjtZQUNELDhDQUE4QztZQUM5QyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDakIsQ0FBQyxDQUNILENBQUE7UUFFRCxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQzNDLEtBQUssRUFBRSxRQUFRLENBQUMsVUFBVTtTQUMzQixDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0Y7QUE3RUQsa0NBNkVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgKiBhcyBlYzIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIlxuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCJcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIlxuXG5pbnRlcmZhY2UgUHJvcHMge1xuICB2cGM6IGVjMi5JVnBjXG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXAgdXNlZCBmb3IgdGhlIEVDMiBpbnN0YW5jZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIHNlY3VyaXR5IGdyb3VwIHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgc2VjdXJpdHlHcm91cD86IGVjMi5JU2VjdXJpdHlHcm91cFxuICAvKipcbiAgICogVGhlIHN1Ym5ldHMgdG8gcGxhY2UgdGhlIGJhc3Rpb24gaG9zdC5cbiAgICpcbiAgICogTm90ZSB0aGF0IGlmIHBsYWNlZCBpbnNpZGUgcHJpdmF0ZSBzdWJuZXQsIHRoZSBWUEMgbXVzdCBoYXZlXG4gICAqIFZQQyBlbmRwb2ludHMgdG8gYWNjZXNzIHJlbGV2YW50IEFXUyBzZXJ2aWNlcyBmb3IgU3lzdGVtcyBNYW5hZ2VyXG4gICAqIHRvIHdvcmsgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBjb25uZWN0IHRvIHRoZSBpbnN0YW5jZS5cbiAgICpcbiAgICogU2VlIGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vcHJlbWl1bXN1cHBvcnQva25vd2xlZGdlLWNlbnRlci9lYzItc3lzdGVtcy1tYW5hZ2VyLXZwYy1lbmRwb2ludHMvXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcHVibGljIHN1Ym5ldHNcbiAgICovXG4gIHN1Ym5ldFNlbGVjdGlvbj86IGVjMi5TdWJuZXRTZWxlY3Rpb25cbn1cblxuLyoqXG4gKiBUaGlzIGNyZWF0ZXMgYSBFQzIgYmFzdGlvbiBob3N0IHRoYXQgY2FuIGJlIHVzZWQgdG8gY29ubmVjdFxuICogdG8gZGF0YWJhc2UgaW5zdGFuY2VzIGFuZCBvdGhlciBpbnRlcm5hbCByZXNvdXJjZXMuXG4gKlxuICogVGhlIGluc3RhbmNlIGlzIHN1cHBvc2VkIHRvIGhhdmUgbm8gb3BlbiBpbmdyZXNzIHBvcnRzLCBhbmQgdXNlcnNcbiAqIGFyZSBzdXBwb3NlZCB0byBjb25uZWN0IG9ubHkgdGhyb3VnaCBTU00gU2Vzc2lvbiBNYW5hZ2VyLlxuICpcbiAqIFRoZSByZXNvdXJjZXMgdGhhdCB0aGUgYmFzdGlvbiBob3N0IHNob3VsZCBiZSBhbGxvd2VkIHRvIGFjY2Vzc1xuICogbXVzdCBoYXZlIHRoZSBiYXN0aW9uIGhvc3Qgc2VjdXJpdHkgZ3JvdXAgYXMgYWxsb3dlZCBpbmdyZXNzLlxuICpcbiAqIEZvciBtb3JlIGludGVybmFsIGRldGFpbHMsIHNlZVxuICogaHR0cHM6Ly9jb25mbHVlbmNlLmNhcHJhY29uc3VsdGluZy5uby94L3E4VUJDXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXN0aW9uSG9zdCBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA6IGVjMi5JU2VjdXJpdHlHcm91cFxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgY29uc3QgcmVnaW9uID0gY2RrLlN0YWNrLm9mKHRoaXMpLnJlZ2lvblxuXG4gICAgdGhpcy5zZWN1cml0eUdyb3VwID1cbiAgICAgIHByb3BzLnNlY3VyaXR5R3JvdXAgPz9cbiAgICAgIG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLCBcIlNlY3VyaXR5R3JvdXBcIiwge1xuICAgICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIH0pXG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBlYzIuSW5zdGFuY2UodGhpcywgXCJJbnN0YW5jZVwiLCB7XG4gICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHByb3BzLnN1Ym5ldFNlbGVjdGlvbiA/PyB7XG4gICAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBVQkxJQyxcbiAgICAgIH0sXG4gICAgICBzZWN1cml0eUdyb3VwOiB0aGlzLnNlY3VyaXR5R3JvdXAsXG4gICAgICBpbnN0YW5jZU5hbWU6IFwiQmFzdGlvblwiLFxuICAgICAgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlLm9mKFxuICAgICAgICBlYzIuSW5zdGFuY2VDbGFzcy5UMyxcbiAgICAgICAgZWMyLkluc3RhbmNlU2l6ZS5OQU5PLFxuICAgICAgKSxcbiAgICAgIG1hY2hpbmVJbWFnZTogZWMyLk1hY2hpbmVJbWFnZS5sYXRlc3RBbWF6b25MaW51eCh7XG4gICAgICAgIGdlbmVyYXRpb246IGVjMi5BbWF6b25MaW51eEdlbmVyYXRpb24uQU1BWk9OX0xJTlVYXzIsXG4gICAgICB9KSxcbiAgICB9KVxuXG4gICAgaW5zdGFuY2UuYWRkVXNlckRhdGEoXG4gICAgICBgeXVtIGluc3RhbGwgLXkgaHR0cHM6Ly9hbWF6b24tc3NtLSR7cmVnaW9ufS5zMy5hbWF6b25hd3MuY29tL2xhdGVzdC9saW51eF9hbWQ2NC9hbWF6b24tc3NtLWFnZW50LnJwbSBzb2NhdCBwb3N0Z3Jlc3FsIG1hcmlhZGJgLFxuICAgIClcblxuICAgIC8vIFNTTSBzdXBwb3J0LlxuICAgIGluc3RhbmNlLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIC8vIFRoaXMgbWltaWNzIHRoZSBBbWF6b25FQzJSb2xlZm9yU1NNIHBvbGljeVxuICAgICAgLy8gd2hpbGUgZ3JhbnRpbmcgbGVhc3QgcHJpdmlsZWdlcyBuZWVkZWQuXG4gICAgICAvL1xuICAgICAgLy8gVGhlIGRlZmF1bHQgQW1hem9uRUMyUm9sZWZvclNTTSBwb2xpY3kgZ2l2ZXMgcmVhZC93cml0ZSBhY2Nlc3NcbiAgICAgIC8vIHRvIGFsbCBvYmplY3RzIGluIFMzLCBhbGwgcGFyYW1ldGVycyBpbiBQYXJhbWV0ZXIgU3RvcmUsIGFtb3VuZ1xuICAgICAgLy8gbW9yZS4gV2UgcHJpbWFyaWx5IHVzZSB0aGUgU1NNIGFnZW50IGZvciBsaW1pdGVkIHJlbW90ZSBjb250cm9sLFxuICAgICAgLy8gYW5kIHRoZSBwb2xpY3kgaGVyZSBjb3ZlcnMgdGhhdCBhcyB0aGUgcHJpbWFyeSB1c2UgY2FzZS5cbiAgICAgIC8vXG4gICAgICAvLyBTZWUgaHR0cHM6Ly93d3cuY2ZsZWUuY29tL3Bvc3RzL2F3cy1zc20taWFtLXBvbGljeS1jYXZlYXRzL1xuICAgICAgLy8gU2VlIGFsc28gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N5c3RlbXMtbWFuYWdlci9sYXRlc3QvdXNlcmd1aWRlL3NldHVwLWluc3RhbmNlLXByb2ZpbGUuaHRtbFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N5c3RlbXMtbWFuYWdlci9sYXRlc3QvdXNlcmd1aWRlL3N5c3RlbXMtbWFuYWdlci1zZXR0aW5nLXVwLW1lc3NhZ2VBUElzLmh0bWxcbiAgICAgICAgICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvbGlzdF9hd3NzeXN0ZW1zbWFuYWdlci5odG1sXG4gICAgICAgICAgXCJzc206TGlzdEluc3RhbmNlQXNzb2NpYXRpb25zXCIsXG4gICAgICAgICAgXCJzc206VXBkYXRlSW5zdGFuY2VJbmZvcm1hdGlvblwiLFxuICAgICAgICAgIFwic3NtOkdldERvY3VtZW50XCIsXG4gICAgICAgICAgXCJzc206UHV0SW52ZW50b3J5XCIsXG4gICAgICAgICAgXCJzc206VXBkYXRlSW5zdGFuY2VBc3NvY2lhdGlvblN0YXR1c1wiLFxuICAgICAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zeXN0ZW1zLW1hbmFnZXIvbGF0ZXN0L3VzZXJndWlkZS9zeXN0ZW1zLW1hbmFnZXItc2V0dGluZy11cC1tZXNzYWdlQVBJcy5odG1sXG4gICAgICAgICAgXCJzc21tZXNzYWdlczpDcmVhdGVDb250cm9sQ2hhbm5lbFwiLFxuICAgICAgICAgIFwic3NtbWVzc2FnZXM6Q3JlYXRlRGF0YUNoYW5uZWxcIixcbiAgICAgICAgICBcInNzbW1lc3NhZ2VzOk9wZW5Db250cm9sQ2hhbm5lbFwiLFxuICAgICAgICAgIFwic3NtbWVzc2FnZXM6T3BlbkRhdGFDaGFubmVsXCIsXG4gICAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL2xpc3RfYW1hem9ubWVzc2FnZWRlbGl2ZXJ5c2VydmljZS5odG1sXG4gICAgICAgICAgXCJlYzJtZXNzYWdlczpBY2tub3dsZWRnZU1lc3NhZ2VcIixcbiAgICAgICAgICBcImVjMm1lc3NhZ2VzOkRlbGV0ZU1lc3NhZ2VcIixcbiAgICAgICAgICBcImVjMm1lc3NhZ2VzOkZhaWxNZXNzYWdlXCIsXG4gICAgICAgICAgXCJlYzJtZXNzYWdlczpHZXRFbmRwb2ludFwiLFxuICAgICAgICAgIFwiZWMybWVzc2FnZXM6R2V0TWVzc2FnZXNcIixcbiAgICAgICAgICBcImVjMm1lc3NhZ2VzOlNlbmRSZXBseVwiLFxuICAgICAgICBdLFxuICAgICAgICAvLyBTZWVtcyB0aGlzIGlzIG5lZWRlZCBmb3IgdGhlIGdpdmVuIGFjdGlvbnMuXG4gICAgICAgIHJlc291cmNlczogW1wiKlwiXSxcbiAgICAgIH0pLFxuICAgIClcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsIFwiQmFzdGlvbkluc3RhbmNlSWRcIiwge1xuICAgICAgdmFsdWU6IGluc3RhbmNlLmluc3RhbmNlSWQsXG4gICAgfSlcbiAgfVxufVxuIl19
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzdGlvbi1ob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Jhc3Rpb24taG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFBO0FBQzFDLE9BQU8sS0FBSyxHQUFHLE1BQU0scUJBQXFCLENBQUE7QUFDMUMsT0FBTyxLQUFLLEdBQUcsTUFBTSxhQUFhLENBQUE7QUF3QmxDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sT0FBTyxXQUFZLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFDbkMsYUFBYSxDQUFvQjtJQUVqRCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQVk7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUE7UUFFeEMsSUFBSSxDQUFDLGFBQWE7WUFDaEIsS0FBSyxDQUFDLGFBQWE7Z0JBQ25CLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO29CQUMzQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7aUJBQ2YsQ0FBQyxDQUFBO1FBRUosTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDbEQsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1lBQ2QsVUFBVSxFQUFFLEtBQUssQ0FBQyxlQUFlLElBQUk7Z0JBQ25DLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU07YUFDbEM7WUFDRCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsWUFBWSxFQUFFLFNBQVM7WUFDdkIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUMvQixHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFDcEIsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3RCO1lBQ0QsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7Z0JBQy9DLFVBQVUsRUFBRSxHQUFHLENBQUMscUJBQXFCLENBQUMsY0FBYzthQUNyRCxDQUFDO1NBQ0gsQ0FBQyxDQUFBO1FBRUYsUUFBUSxDQUFDLFdBQVcsQ0FDbEIscUNBQXFDLE1BQU0sb0ZBQW9GLENBQ2hJLENBQUE7UUFFRCxlQUFlO1FBQ2YsUUFBUSxDQUFDLGVBQWU7UUFDdEIsNkNBQTZDO1FBQzdDLDBDQUEwQztRQUMxQyxFQUFFO1FBQ0YsaUVBQWlFO1FBQ2pFLGtFQUFrRTtRQUNsRSxtRUFBbUU7UUFDbkUsMkRBQTJEO1FBQzNELEVBQUU7UUFDRiw4REFBOEQ7UUFDOUQsb0dBQW9HO1FBQ3BHLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixPQUFPLEVBQUU7Z0JBQ1AsMkdBQTJHO2dCQUMzRywrRUFBK0U7Z0JBQy9FLDhCQUE4QjtnQkFDOUIsK0JBQStCO2dCQUMvQixpQkFBaUI7Z0JBQ2pCLGtCQUFrQjtnQkFDbEIscUNBQXFDO2dCQUNyQywyR0FBMkc7Z0JBQzNHLGtDQUFrQztnQkFDbEMsK0JBQStCO2dCQUMvQixnQ0FBZ0M7Z0JBQ2hDLDZCQUE2QjtnQkFDN0IsMEZBQTBGO2dCQUMxRixnQ0FBZ0M7Z0JBQ2hDLDJCQUEyQjtnQkFDM0IseUJBQXlCO2dCQUN6Qix5QkFBeUI7Z0JBQ3pCLHlCQUF5QjtnQkFDekIsdUJBQXVCO2FBQ3hCO1lBQ0QsOENBQThDO1lBQzlDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUNqQixDQUFDLENBQ0gsQ0FBQTtRQUVELElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDM0MsS0FBSyxFQUFFLFFBQVEsQ0FBQyxVQUFVO1NBQzNCLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCJcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgdnBjOiBlYzIuSVZwY1xuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGdyb3VwIHVzZWQgZm9yIHRoZSBFQzIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBzZWN1cml0eSBncm91cCB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHNlY3VyaXR5R3JvdXA/OiBlYzIuSVNlY3VyaXR5R3JvdXBcbiAgLyoqXG4gICAqIFRoZSBzdWJuZXRzIHRvIHBsYWNlIHRoZSBiYXN0aW9uIGhvc3QuXG4gICAqXG4gICAqIE5vdGUgdGhhdCBpZiBwbGFjZWQgaW5zaWRlIHByaXZhdGUgc3VibmV0LCB0aGUgVlBDIG11c3QgaGF2ZVxuICAgKiBWUEMgZW5kcG9pbnRzIHRvIGFjY2VzcyByZWxldmFudCBBV1Mgc2VydmljZXMgZm9yIFN5c3RlbXMgTWFuYWdlclxuICAgKiB0byB3b3JrIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gY29ubmVjdCB0byB0aGUgaW5zdGFuY2UuXG4gICAqXG4gICAqIFNlZSBodHRwczovL2F3cy5hbWF6b24uY29tL3ByZW1pdW1zdXBwb3J0L2tub3dsZWRnZS1jZW50ZXIvZWMyLXN5c3RlbXMtbWFuYWdlci12cGMtZW5kcG9pbnRzL1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIHB1YmxpYyBzdWJuZXRzXG4gICAqL1xuICBzdWJuZXRTZWxlY3Rpb24/OiBlYzIuU3VibmV0U2VsZWN0aW9uXG59XG5cbi8qKlxuICogVGhpcyBjcmVhdGVzIGEgRUMyIGJhc3Rpb24gaG9zdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbm5lY3RcbiAqIHRvIGRhdGFiYXNlIGluc3RhbmNlcyBhbmQgb3RoZXIgaW50ZXJuYWwgcmVzb3VyY2VzLlxuICpcbiAqIFRoZSBpbnN0YW5jZSBpcyBzdXBwb3NlZCB0byBoYXZlIG5vIG9wZW4gaW5ncmVzcyBwb3J0cywgYW5kIHVzZXJzXG4gKiBhcmUgc3VwcG9zZWQgdG8gY29ubmVjdCBvbmx5IHRocm91Z2ggU1NNIFNlc3Npb24gTWFuYWdlci5cbiAqXG4gKiBUaGUgcmVzb3VyY2VzIHRoYXQgdGhlIGJhc3Rpb24gaG9zdCBzaG91bGQgYmUgYWxsb3dlZCB0byBhY2Nlc3NcbiAqIG11c3QgaGF2ZSB0aGUgYmFzdGlvbiBob3N0IHNlY3VyaXR5IGdyb3VwIGFzIGFsbG93ZWQgaW5ncmVzcy5cbiAqXG4gKiBGb3IgbW9yZSBpbnRlcm5hbCBkZXRhaWxzLCBzZWVcbiAqIGh0dHBzOi8vY29uZmx1ZW5jZS5jYXByYWNvbnN1bHRpbmcubm8veC9xOFVCQ1xuICovXG5leHBvcnQgY2xhc3MgQmFzdGlvbkhvc3QgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBzZWN1cml0eUdyb3VwOiBlYzIuSVNlY3VyaXR5R3JvdXBcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIGNvbnN0IHJlZ2lvbiA9IGNkay5TdGFjay5vZih0aGlzKS5yZWdpb25cblxuICAgIHRoaXMuc2VjdXJpdHlHcm91cCA9XG4gICAgICBwcm9wcy5zZWN1cml0eUdyb3VwID8/XG4gICAgICBuZXcgZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgXCJTZWN1cml0eUdyb3VwXCIsIHtcbiAgICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICB9KVxuXG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgZWMyLkluc3RhbmNlKHRoaXMsIFwiSW5zdGFuY2VcIiwge1xuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24gPz8ge1xuICAgICAgICBzdWJuZXRUeXBlOiBlYzIuU3VibmV0VHlwZS5QVUJMSUMsXG4gICAgICB9LFxuICAgICAgc2VjdXJpdHlHcm91cDogdGhpcy5zZWN1cml0eUdyb3VwLFxuICAgICAgaW5zdGFuY2VOYW1lOiBcIkJhc3Rpb25cIixcbiAgICAgIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgICAgZWMyLkluc3RhbmNlQ2xhc3MuVDMsXG4gICAgICAgIGVjMi5JbnN0YW5jZVNpemUuTkFOTyxcbiAgICAgICksXG4gICAgICBtYWNoaW5lSW1hZ2U6IGVjMi5NYWNoaW5lSW1hZ2UubGF0ZXN0QW1hem9uTGludXgoe1xuICAgICAgICBnZW5lcmF0aW9uOiBlYzIuQW1hem9uTGludXhHZW5lcmF0aW9uLkFNQVpPTl9MSU5VWF8yLFxuICAgICAgfSksXG4gICAgfSlcblxuICAgIGluc3RhbmNlLmFkZFVzZXJEYXRhKFxuICAgICAgYHl1bSBpbnN0YWxsIC15IGh0dHBzOi8vYW1hem9uLXNzbS0ke3JlZ2lvbn0uczMuYW1hem9uYXdzLmNvbS9sYXRlc3QvbGludXhfYW1kNjQvYW1hem9uLXNzbS1hZ2VudC5ycG0gc29jYXQgcG9zdGdyZXNxbCBtYXJpYWRiYCxcbiAgICApXG5cbiAgICAvLyBTU00gc3VwcG9ydC5cbiAgICBpbnN0YW5jZS5hZGRUb1JvbGVQb2xpY3koXG4gICAgICAvLyBUaGlzIG1pbWljcyB0aGUgQW1hem9uRUMyUm9sZWZvclNTTSBwb2xpY3lcbiAgICAgIC8vIHdoaWxlIGdyYW50aW5nIGxlYXN0IHByaXZpbGVnZXMgbmVlZGVkLlxuICAgICAgLy9cbiAgICAgIC8vIFRoZSBkZWZhdWx0IEFtYXpvbkVDMlJvbGVmb3JTU00gcG9saWN5IGdpdmVzIHJlYWQvd3JpdGUgYWNjZXNzXG4gICAgICAvLyB0byBhbGwgb2JqZWN0cyBpbiBTMywgYWxsIHBhcmFtZXRlcnMgaW4gUGFyYW1ldGVyIFN0b3JlLCBhbW91bmdcbiAgICAgIC8vIG1vcmUuIFdlIHByaW1hcmlseSB1c2UgdGhlIFNTTSBhZ2VudCBmb3IgbGltaXRlZCByZW1vdGUgY29udHJvbCxcbiAgICAgIC8vIGFuZCB0aGUgcG9saWN5IGhlcmUgY292ZXJzIHRoYXQgYXMgdGhlIHByaW1hcnkgdXNlIGNhc2UuXG4gICAgICAvL1xuICAgICAgLy8gU2VlIGh0dHBzOi8vd3d3LmNmbGVlLmNvbS9wb3N0cy9hd3Mtc3NtLWlhbS1wb2xpY3ktY2F2ZWF0cy9cbiAgICAgIC8vIFNlZSBhbHNvIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zeXN0ZW1zLW1hbmFnZXIvbGF0ZXN0L3VzZXJndWlkZS9zZXR1cC1pbnN0YW5jZS1wcm9maWxlLmh0bWxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zeXN0ZW1zLW1hbmFnZXIvbGF0ZXN0L3VzZXJndWlkZS9zeXN0ZW1zLW1hbmFnZXItc2V0dGluZy11cC1tZXNzYWdlQVBJcy5odG1sXG4gICAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL2xpc3RfYXdzc3lzdGVtc21hbmFnZXIuaHRtbFxuICAgICAgICAgIFwic3NtOkxpc3RJbnN0YW5jZUFzc29jaWF0aW9uc1wiLFxuICAgICAgICAgIFwic3NtOlVwZGF0ZUluc3RhbmNlSW5mb3JtYXRpb25cIixcbiAgICAgICAgICBcInNzbTpHZXREb2N1bWVudFwiLFxuICAgICAgICAgIFwic3NtOlB1dEludmVudG9yeVwiLFxuICAgICAgICAgIFwic3NtOlVwZGF0ZUluc3RhbmNlQXNzb2NpYXRpb25TdGF0dXNcIixcbiAgICAgICAgICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3lzdGVtcy1tYW5hZ2VyL2xhdGVzdC91c2VyZ3VpZGUvc3lzdGVtcy1tYW5hZ2VyLXNldHRpbmctdXAtbWVzc2FnZUFQSXMuaHRtbFxuICAgICAgICAgIFwic3NtbWVzc2FnZXM6Q3JlYXRlQ29udHJvbENoYW5uZWxcIixcbiAgICAgICAgICBcInNzbW1lc3NhZ2VzOkNyZWF0ZURhdGFDaGFubmVsXCIsXG4gICAgICAgICAgXCJzc21tZXNzYWdlczpPcGVuQ29udHJvbENoYW5uZWxcIixcbiAgICAgICAgICBcInNzbW1lc3NhZ2VzOk9wZW5EYXRhQ2hhbm5lbFwiLFxuICAgICAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9saXN0X2FtYXpvbm1lc3NhZ2VkZWxpdmVyeXNlcnZpY2UuaHRtbFxuICAgICAgICAgIFwiZWMybWVzc2FnZXM6QWNrbm93bGVkZ2VNZXNzYWdlXCIsXG4gICAgICAgICAgXCJlYzJtZXNzYWdlczpEZWxldGVNZXNzYWdlXCIsXG4gICAgICAgICAgXCJlYzJtZXNzYWdlczpGYWlsTWVzc2FnZVwiLFxuICAgICAgICAgIFwiZWMybWVzc2FnZXM6R2V0RW5kcG9pbnRcIixcbiAgICAgICAgICBcImVjMm1lc3NhZ2VzOkdldE1lc3NhZ2VzXCIsXG4gICAgICAgICAgXCJlYzJtZXNzYWdlczpTZW5kUmVwbHlcIixcbiAgICAgICAgXSxcbiAgICAgICAgLy8gU2VlbXMgdGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBnaXZlbiBhY3Rpb25zLlxuICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICB9KSxcbiAgICApXG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCBcIkJhc3Rpb25JbnN0YW5jZUlkXCIsIHtcbiAgICAgIHZhbHVlOiBpbnN0YW5jZS5pbnN0YW5jZUlkLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
const snapshots_1 = require("../snapshots");
|
|
2
|
+
import { createCloudAssemblySnapshot } from "../snapshots.js";
|
|
5
3
|
let src;
|
|
6
4
|
let dst;
|
|
7
5
|
// If no arguments are given, use some sensible defaults.
|
|
@@ -14,9 +12,9 @@ else {
|
|
|
14
12
|
src = process.argv[2];
|
|
15
13
|
dst = process.argv[3];
|
|
16
14
|
}
|
|
17
|
-
|
|
15
|
+
createCloudAssemblySnapshot(src, dst).catch((e) => {
|
|
18
16
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
19
17
|
console.error(e.stack || e.message || e);
|
|
20
18
|
process.exitCode = 1;
|
|
21
19
|
});
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNyZWF0ZS1zbmFwc2hvdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluL2Nkay1jcmVhdGUtc25hcHNob3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU3RCxJQUFJLEdBQVcsQ0FBQTtBQUNmLElBQUksR0FBVyxDQUFBO0FBRWYseURBQXlEO0FBQ3pELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDN0IsR0FBRyxHQUFHLFNBQVMsQ0FBQTtJQUNmLEdBQUcsR0FBRyxlQUFlLENBQUE7QUFDdkIsQ0FBQztLQUFNLENBQUM7SUFDTixpREFBaUQ7SUFDakQsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDckIsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDdkIsQ0FBQztBQUVELDJCQUEyQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUNoRCxzRUFBc0U7SUFDdEUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDeEMsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUE7QUFDdEIsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgeyBjcmVhdGVDbG91ZEFzc2VtYmx5U25hcHNob3QgfSBmcm9tIFwiLi4vc25hcHNob3RzLmpzXCJcblxubGV0IHNyYzogc3RyaW5nXG5sZXQgZHN0OiBzdHJpbmdcblxuLy8gSWYgbm8gYXJndW1lbnRzIGFyZSBnaXZlbiwgdXNlIHNvbWUgc2Vuc2libGUgZGVmYXVsdHMuXG5pZiAocHJvY2Vzcy5hcmd2Lmxlbmd0aCA9PSAyKSB7XG4gIHNyYyA9IFwiY2RrLm91dFwiXG4gIGRzdCA9IFwiX19zbmFwc2hvdHNfX1wiXG59IGVsc2Uge1xuICAvLyBJbiBOb2RlLCBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIHRoaXJkIGVsZW1lbnQuXG4gIHNyYyA9IHByb2Nlc3MuYXJndlsyXVxuICBkc3QgPSBwcm9jZXNzLmFyZ3ZbM11cbn1cblxuY3JlYXRlQ2xvdWRBc3NlbWJseVNuYXBzaG90KHNyYywgZHN0KS5jYXRjaCgoZSkgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzXG4gIGNvbnNvbGUuZXJyb3IoZS5zdGFjayB8fCBlLm1lc3NhZ2UgfHwgZSlcbiAgcHJvY2Vzcy5leGl0Q29kZSA9IDFcbn0pXG4iXX0=
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const fs = require("fs");
|
|
5
|
-
const variables_1 = require("../cdk-pipelines/variables");
|
|
2
|
+
import * as fs from "fs";
|
|
3
|
+
import { getVariablesFromParameterStore } from "../cdk-pipelines/variables";
|
|
6
4
|
let namespace;
|
|
7
5
|
// If no arguments are given, use some sensible defaults.
|
|
8
6
|
if (process.argv.length == 2) {
|
|
@@ -18,7 +16,7 @@ async function main(namespace) {
|
|
|
18
16
|
// to ensure it is not stale. In the pipeline, variables
|
|
19
17
|
// will never be stale, but locally it can be.
|
|
20
18
|
variablesTimestamp: new Date().toISOString(),
|
|
21
|
-
...(await
|
|
19
|
+
...(await getVariablesFromParameterStore(`/liflig-cdk/${namespace}/pipeline-variables/`)),
|
|
22
20
|
};
|
|
23
21
|
const result = JSON.stringify(variables, undefined, " ");
|
|
24
22
|
fs.writeFileSync("variables.json", result);
|
|
@@ -30,4 +28,4 @@ main(namespace).catch((e) => {
|
|
|
30
28
|
console.error(e.stack || e.message || e);
|
|
31
29
|
process.exitCode = 1;
|
|
32
30
|
});
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtcGlwZWxpbmUtdmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9mZXRjaC1waXBlbGluZS12YXJpYWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQ3hCLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRTNFLElBQUksU0FBaUIsQ0FBQTtBQUVyQix5REFBeUQ7QUFDekQsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUM3QixTQUFTLEdBQUcsU0FBUyxDQUFBO0FBQ3ZCLENBQUM7S0FBTSxDQUFDO0lBQ04saURBQWlEO0lBQ2pELFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQzdCLENBQUM7QUFFRCxLQUFLLFVBQVUsSUFBSSxDQUFDLFNBQWlCO0lBQ25DLE1BQU0sU0FBUyxHQUFHO1FBQ2hCLDJEQUEyRDtRQUMzRCx3REFBd0Q7UUFDeEQsOENBQThDO1FBQzlDLGtCQUFrQixFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1FBQzVDLEdBQUcsQ0FBQyxNQUFNLDhCQUE4QixDQUN0QyxlQUFlLFNBQVMsc0JBQXNCLENBQy9DLENBQUM7S0FDSCxDQUFBO0lBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBRXpELEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFBO0lBQ3JELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtBQUMxQyxDQUFDO0FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQzFCLHNFQUFzRTtJQUN0RSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUN4QyxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQTtBQUN0QixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiXG5pbXBvcnQgeyBnZXRWYXJpYWJsZXNGcm9tUGFyYW1ldGVyU3RvcmUgfSBmcm9tIFwiLi4vY2RrLXBpcGVsaW5lcy92YXJpYWJsZXNcIlxuXG5sZXQgbmFtZXNwYWNlOiBzdHJpbmdcblxuLy8gSWYgbm8gYXJndW1lbnRzIGFyZSBnaXZlbiwgdXNlIHNvbWUgc2Vuc2libGUgZGVmYXVsdHMuXG5pZiAocHJvY2Vzcy5hcmd2Lmxlbmd0aCA9PSAyKSB7XG4gIG5hbWVzcGFjZSA9IFwiZGVmYXVsdFwiXG59IGVsc2Uge1xuICAvLyBJbiBOb2RlLCBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIHRoaXJkIGVsZW1lbnQuXG4gIG5hbWVzcGFjZSA9IHByb2Nlc3MuYXJndlsyXVxufVxuXG5hc3luYyBmdW5jdGlvbiBtYWluKG5hbWVzcGFjZTogc3RyaW5nKSB7XG4gIGNvbnN0IHZhcmlhYmxlcyA9IHtcbiAgICAvLyBTcGVjaWFsIHZhcmlhYmxlIHRoYXQgY2FuIGJlIHVzZWQgd2hlbiByZWFkaW5nIHZhcmlhYmxlc1xuICAgIC8vIHRvIGVuc3VyZSBpdCBpcyBub3Qgc3RhbGUuIEluIHRoZSBwaXBlbGluZSwgdmFyaWFibGVzXG4gICAgLy8gd2lsbCBuZXZlciBiZSBzdGFsZSwgYnV0IGxvY2FsbHkgaXQgY2FuIGJlLlxuICAgIHZhcmlhYmxlc1RpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIC4uLihhd2FpdCBnZXRWYXJpYWJsZXNGcm9tUGFyYW1ldGVyU3RvcmUoXG4gICAgICBgL2xpZmxpZy1jZGsvJHtuYW1lc3BhY2V9L3BpcGVsaW5lLXZhcmlhYmxlcy9gLFxuICAgICkpLFxuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0gSlNPTi5zdHJpbmdpZnkodmFyaWFibGVzLCB1bmRlZmluZWQsIFwiICBcIilcblxuICBmcy53cml0ZUZpbGVTeW5jKFwidmFyaWFibGVzLmpzb25cIiwgcmVzdWx0KVxuICBjb25zb2xlLmxvZyhcIlJldHJpZXZlZCBhbmQgc2F2ZWQgdG8gdmFyaWFibGVzLmpzb246XCIpXG4gIGNvbnNvbGUubG9nKHJlc3VsdC5yZXBsYWNlKC9eL2dtLCBcIiAgXCIpKVxufVxuXG5tYWluKG5hbWVzcGFjZSkuY2F0Y2goKGUpID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2Vzc1xuICBjb25zb2xlLmVycm9yKGUuc3RhY2sgfHwgZS5tZXNzYWdlIHx8IGUpXG4gIHByb2Nlc3MuZXhpdENvZGUgPSAxXG59KVxuIl19
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.GithubActionsRole = exports.validateProps = void 0;
|
|
4
|
-
const iam = require("aws-cdk-lib/aws-iam");
|
|
5
|
-
const constructs = require("constructs");
|
|
1
|
+
import * as iam from "aws-cdk-lib/aws-iam";
|
|
2
|
+
import * as constructs from "constructs";
|
|
6
3
|
/**
|
|
7
4
|
* Utility function for validating the construct properties.
|
|
8
5
|
*/
|
|
9
|
-
const validateProps = (props) => {
|
|
6
|
+
export const validateProps = (props) => {
|
|
10
7
|
let valid = true;
|
|
11
8
|
if (props.trustedOwners.length === 0) {
|
|
12
9
|
console.error("At least 1 trusted owner must be supplied, but 0 were given");
|
|
@@ -30,19 +27,18 @@ const validateProps = (props) => {
|
|
|
30
27
|
});
|
|
31
28
|
return valid;
|
|
32
29
|
};
|
|
33
|
-
exports.validateProps = validateProps;
|
|
34
30
|
/**
|
|
35
31
|
* Creates an IAM role that can be assumed by GitHub Actions workflows
|
|
36
32
|
* in specific GitHub repositories and branches using OpenID Connect.
|
|
37
33
|
*/
|
|
38
|
-
class GithubActionsRole extends constructs.Construct {
|
|
34
|
+
export class GithubActionsRole extends constructs.Construct {
|
|
35
|
+
role;
|
|
39
36
|
constructor(scope, id, props) {
|
|
40
|
-
var _a;
|
|
41
37
|
super(scope, id);
|
|
42
|
-
if (!
|
|
38
|
+
if (!validateProps(props)) {
|
|
43
39
|
throw new Error("Invalid props were supplied");
|
|
44
40
|
}
|
|
45
|
-
const subjects = props.repositories.map((repository) =>
|
|
41
|
+
const subjects = props.repositories.map((repository) => `repo:${repository.owner}/${repository.name}:ref:refs/heads/${props.trustedBranch ?? "master"}`);
|
|
46
42
|
const fullyQualifiedSubjects = subjects.filter((subject) => !(subject.includes("?") || subject.includes("*")));
|
|
47
43
|
const wildcardSubjects = subjects.filter((subject) => subject.includes("?") || subject.includes("*"));
|
|
48
44
|
const principalConditions = {
|
|
@@ -64,10 +60,9 @@ class GithubActionsRole extends constructs.Construct {
|
|
|
64
60
|
throw new Error("The principal's trust policy needs to be configured with at least one IAM condition");
|
|
65
61
|
}
|
|
66
62
|
this.role = new iam.Role(this, "Role", {
|
|
67
|
-
roleName:
|
|
63
|
+
roleName: props.roleName ?? "github-actions-role",
|
|
68
64
|
assumedBy: principal,
|
|
69
65
|
});
|
|
70
66
|
}
|
|
71
67
|
}
|
|
72
|
-
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLWFjdGlvbnMtcm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZC1hcnRpZmFjdHMvZ2l0aHViLWFjdGlvbnMtcm9sZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBMEM7QUFDMUMseUNBQXdDO0FBeUR4Qzs7R0FFRztBQUNJLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7SUFDNUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFBO0lBQ2hCLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDckMsT0FBTyxDQUFDLEtBQUssQ0FBQyw2REFBNkQsQ0FBQyxDQUFBO1FBQzVFLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDZixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxPQUFPLENBQUMsS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUE7UUFDekUsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNmLENBQUM7SUFDRCxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixLQUFLLDhCQUE4QixDQUFDLENBQUE7WUFDbkUsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNmLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BELE9BQU8sQ0FBQyxL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bmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BzIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiB0cnVzdGVkIEdpdEh1YiByZXBvc2l0b3J5IG93bmVycy5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbnMgYXMgYSBzb3J0IG9mIHdoaXRlbGlzdCB0byBjYXRjaFxuICAgKiBwb3RlbnRpYWwgdHlwb3MgaW4ge0BsaW5rIHJlcG9zaXRvcmllc30uXG4gICAqL1xuICB0cnVzdGVkT3duZXJzOiBzdHJpbmdbXVxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHRydXN0ZWQgYnJhbmNoLlxuICAgKlxuICAgKiBUaGUgd2lsZGNhcmQgY2hhcmFjdGVycyAnKicgYW5kICc/JyBjYW4gYmUgdXNlZCB0b1xuICAgKiByZXByZXNlbnQgYW55IGNvbWJpbmF0aW9uIG9mIGNoYXJhY3RlcnMgYW5kIGFueSBzaW5nbGVcbiAgICogY2hhcmFjdGVyLCByZXNwZWN0aXZlbHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibWFzdGVyXCJcbiAgICovXG4gIHRydXN0ZWRCcmFuY2g/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByb2xlIHRvIGNyZWF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJnaXRodWItYWN0aW9ucy1yb2xlXCJcbiAgICovXG4gIHJvbGVOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgR2l0SHViIHJlcG9zaXRvcmllcyB0aGF0IHRoZSBwcmluY2lwYWwgdHJ1c3RzLlxuICAgKi9cbiAgcmVwb3NpdG9yaWVzOiB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIEdpdEh1YiByZXBvc2l0b3J5LlxuICAgICAqXG4gICAgICogVGhlIHdpbGRjYXJkIGNoYXJhY3RlcnMgJyonIGFuZCAnPycgY2FuIGJlIHVzZWQgdG9cbiAgICAgKiByZXByZXNlbnQgYW55IGNvbWJpbmF0aW9uIG9mIGNoYXJhY3RlcnMgYW5kIGFueSBzaW5nbGVcbiAgICAgKiBjaGFyYWN0ZXIsIHJlc3BlY3RpdmVseS5cbiAgICAgKlxuICAgICAqIE5PVEU6IEJlIGNhcmVmdWwgd2hlbiB1c2luZyB3aWxkY2FyZCBjaGFyYWN0ZXJzIGFzIHlvdVxuICAgICAqIG1heSBncmFudCBhY2Nlc3MgdG8gcmVwb3NpdG9yaWVzIHlvdSBkaWQgbm90IGludGVuZC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlIFwibXktcmVwb3NpdG9yeVwiXG4gICAgICogQGV4YW1wbGUgXCJteS10ZWFtLSpcIlxuICAgICAqL1xuICAgIG5hbWU6IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBvd25lciBvZiB0aGUgR2l0SHViIHJlcG9zaXRvcnkuXG4gICAgICpcbiAgICAgKiBOT1RFOiBUaGUgb3duZXIgbXVzdCBleHBsaWNpdGx5IGJlIHdoaXRlbGlzdGVkIGluIHtAbGluayB0cnVzdGVkT3duZXJzfS5cbiAgICAgKi9cbiAgICBvd25lcjogc3RyaW5nXG4gIH1bXVxuICAvKipcbiAgICogQW4gZXhpc3RpbmcgT3BlbklEIENvbm5lY3QgUHJvdmlkZXIgZm9yIEdpdEh1YiBBY3Rpb25zLlxuICAgKi9cbiAgb2lkY1Byb3ZpZGVyOiBpYW0uSU9wZW5JZENvbm5lY3RQcm92aWRlclxufVxuXG4vKipcbiAqIFV0aWxpdHkgZnVuY3Rpb24gZm9yIHZhbGlkYXRpbmcgdGhlIGNvbnN0cnVjdCBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQcm9wcyA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgbGV0IHZhbGlkID0gdHJ1ZVxuICBpZiAocHJvcHMudHJ1c3RlZE93bmVycy5sZW5ndGggPT09IDApIHtcbiAgICBjb25zb2xlLmVycm9yKFwiQXQgbGVhc3QgMSB0cnVzdGVkIG93bmVyIG11c3QgYmUgc3VwcGxpZWQsIGJ1dCAwIHdlcmUgZ2l2ZW5cIilcbiAgICB2YWxpZCA9IGZhbHNlXG4gIH1cbiAgaWYgKHByb3BzLnJlcG9zaXRvcmllcy5sZW5ndGggPT09IDApIHtcbiAgICBjb25zb2xlLmVycm9yKFwiQXQgbGVhc3QgMSByZXBvc2l0b3J5IG11c3QgYmUgc3VwcGxpZWQsIGJ1dCAwIHdlcmUgZ2l2ZW5cIilcbiAgICB2YWxpZCA9IGZhbHNlXG4gIH1cbiAgcHJvcHMudHJ1c3RlZE93bmVycy5mb3JFYWNoKChvd25lcikgPT4ge1xuICAgIGlmICghb3duZXIubWF0Y2goL15bYS16QS1aMC05LV0rJC8pKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBUcnVzdGVkIG93bmVyICR7b3duZXJ9IGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVyc2ApXG4gICAgICB2YWxpZCA9IGZhbHNlXG4gICAgfVxuICB9KVxuXG4gIHByb3BzLnJlcG9zaXRvcmllcy5mb3JFYWNoKChyZXBvc2l0b3J5KSA9PiB7XG4gICAgaWYgKCFwcm9wcy50cnVzdGVkT3duZXJzLmluY2x1ZGVzKHJlcG9zaXRvcnkub3duZXIpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgT3duZXIgJHtyZXBvc2l0b3J5Lm93bmVyfSBvZiByZXBvc2l0b3J5ICR7cmVwb3NpdG9yeS5uYW1lfSBub3QgY29uZmlndXJlZCBhcyBhIHRydXN0ZWQgb3duZXJgLFxuICAgICAgKVxuICAgICAgdmFsaWQgPSBmYWxzZVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIHZhbGlkXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBJQU0gcm9sZSB0aGF0IGNhbiBiZSBhc3N1bWVkIGJ5IEdpdEh1YiBBY3Rpb25zIHdvcmtmbG93c1xuICogaW4gc3BlY2lmaWMgR2l0SHViIHJlcG9zaXRvcmllcyBhbmQgYnJhbmNoZXMgdXNpbmcgT3BlbklEIENvbm5lY3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBHaXRodWJBY3Rpb25zUm9sZSBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5Sb2xlXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG4gICAgaWYgKCF2YWxpZGF0ZVByb3BzKHByb3BzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBwcm9wcyB3ZXJlIHN1cHBsaWVkXCIpXG4gICAgfVxuXG4gICAgY29uc3Qgc3ViamVjdHMgPSBwcm9wcy5yZXBvc2l0b3JpZXMubWFwKFxuICAgICAgKHJlcG9zaXRvcnkpID0+XG4gICAgICAgIGByZXBvOiR7cmVwb3NpdG9yeS5vd25lcn0vJHtyZXBvc2l0b3J5Lm5hbWV9OnJlZjpyZWZzL2hlYWRzLyR7cHJvcHMudHJ1c3RlZEJyYW5jaCA/PyBcIm1hc3RlclwifWAsXG4gICAgKVxuICAgIGNvbnN0IGZ1bGx5UXVhbGlmaWVkU3ViamVjdHMgPSBzdWJqZWN0cy5maWx0ZXIoXG4gICAgICAoc3ViamVjdCkgPT4gIShzdWJqZWN0LmluY2x1ZGVzKFwiP1wiKSB8fCBzdWJqZWN0LmluY2x1ZGVzKFwiKlwiKSksXG4gICAgKVxuXG4gICAgY29uc3Qgd2lsZGNhcmRTdWJqZWN0cyA9IHN1YmplY3RzLmZpbHRlcihcbiAgICAgIChzdWJqZWN0KSA9PiBzdWJqZWN0LmluY2x1ZGVzKFwiP1wiKSB8fCBzdWJqZWN0LmluY2x1ZGVzKFwiKlwiKSxcbiAgICApXG4gICAgY29uc3QgcHJpbmNpcGFsQ29uZGl0aW9ucyA9IHtcbiAgICAgIC4uLihmdWxseVF1YWxpZmllZFN1YmplY3RzLmxlbmd0aCAmJiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgIFwidG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb206c3ViXCI6IGZ1bGx5UXVhbGlmaWVkU3ViamVjdHMsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIC4uLih3aWxkY2FyZFN1YmplY3RzLmxlbmd0aCAmJiB7XG4gICAgICAgIFN0cmluZ0xpa2U6IHtcbiAgICAgICAgICBcInRva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tOnN1YlwiOiB3aWxkY2FyZFN1YmplY3RzLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfVxuXG4gICAgY29uc3QgcHJpbmNpcGFsID0gbmV3IGlhbS5GZWRlcmF0ZWRQcmluY2lwYWwoXG4gICAgICBwcm9wcy5vaWRjUHJvdmlkZXIub3BlbklkQ29ubmVjdFByb3ZpZGVyQXJuLFxuICAgICAgcHJpbmNpcGFsQ29uZGl0aW9ucyxcbiAgICAgIFwic3RzOkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlcIixcbiAgICApXG5cbiAgICAvLyBWZXJpZnkgdGhhdCB0aGUgcHJpbmNpcGFsIGlzIGNvbmZpZ3VyZWQgd2l0aCBhIHRydXN0IHJlbGF0aW9uc2hpcFxuICAgIC8vIHRoYXQgY29udGFpbnMgYXQgbGVhc3Qgb25lIElBTSBjb25kaXRpb24gd2l0aCBhIGNvbnRleHQga2V5IGFuZCB2YWx1ZXNcbiAgICBpZiAoXG4gICAgICAhT2JqZWN0LnZhbHVlcyhwcmluY2lwYWxDb25kaXRpb25zKS5zb21lKChjb25kaXRpb25FbGVtZW50KSA9PlxuICAgICAgICBPYmplY3QuZW50cmllcyhjb25kaXRpb25FbGVtZW50KS5zb21lKFxuICAgICAgICAgIChbY29uZGl0aW9uS2V5LCBjb25kaXRpb25WYWx1ZV0pID0+XG4gICAgICAgICAgICBjb25kaXRpb25LZXkgJiYgY29uZGl0aW9uVmFsdWUubGVuZ3RoLFxuICAgICAgICApLFxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlRoZSBwcmluY2lwYWwncyB0cnVzdCBwb2xpY3kgbmVlZHMgdG8gYmUgY29uZmlndXJlZCB3aXRoIGF0IGxlYXN0IG9uZSBJQU0gY29uZGl0aW9uXCIsXG4gICAgICApXG4gICAgfVxuICAgIHRoaXMucm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCBcIlJvbGVcIiwge1xuICAgICAgcm9sZU5hbWU6IHByb3BzLnJvbGVOYW1lID8/IFwiZ2l0aHViLWFjdGlvbnMtcm9sZVwiLFxuICAgICAgYXNzdW1lZEJ5OiBwcmluY2lwYWwsXG4gICAgfSlcbiAgfVxufVxuIl19
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLWFjdGlvbnMtcm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZC1hcnRpZmFjdHMvZ2l0aHViLWFjdGlvbnMtcm9sZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFBO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBeUR4Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO0lBQzVDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQTtJQUNoQixJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkRBQTZELENBQUMsQ0FBQTtRQUM1RSxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ2YsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDcEMsT0FBTyxDQUFDLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFBO1FBQ3pFLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDZixDQUFDO0lBQ0QsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDcEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyw4QkFBOEIsQ0FBQyxDQUFBO1lBQ25FLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDZixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUE7SUFFRixLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1FBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFFB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YW1cIlxuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcHMge1xuICAvKipcbiAgICogQSBsaXN0IG9mIHRydXN0ZWQgR2l0SHViIHJlcG9zaXRvcnkgb3duZXJzLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9ucyBhcyBhIHNvcnQgb2Ygd2hpdGVsaXN0IHRvIGNhdGNoXG4gICAqIHBvdGVudGlhbCB0eXBvcyBpbiB7QGxpbmsgcmVwb3NpdG9yaWVzfS5cbiAgICovXG4gIHRydXN0ZWRPd25lcnM6IHN0cmluZ1tdXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdHJ1c3RlZCBicmFuY2guXG4gICAqXG4gICAqIFRoZSB3aWxkY2FyZCBjaGFyYWN0ZXJzICcqJyBhbmQgJz8nIGNhbiBiZSB1c2VkIHRvXG4gICAqIHJlcHJlc2VudCBhbnkgY29tYmluYXRpb24gb2YgY2hhcmFjdGVycyBhbmQgYW55IHNpbmdsZVxuICAgKiBjaGFyYWN0ZXIsIHJlc3BlY3RpdmVseS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJtYXN0ZXJcIlxuICAgKi9cbiAgdHJ1c3RlZEJyYW5jaD86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJvbGUgdG8gY3JlYXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImdpdGh1Yi1hY3Rpb25zLXJvbGVcIlxuICAgKi9cbiAgcm9sZU5hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBHaXRIdWIgcmVwb3NpdG9yaWVzIHRoYXQgdGhlIHByaW5jaXBhbCB0cnVzdHMuXG4gICAqL1xuICByZXBvc2l0b3JpZXM6IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgR2l0SHViIHJlcG9zaXRvcnkuXG4gICAgICpcbiAgICAgKiBUaGUgd2lsZGNhcmQgY2hhcmFjdGVycyAnKicgYW5kICc/JyBjYW4gYmUgdXNlZCB0b1xuICAgICAqIHJlcHJlc2VudCBhbnkgY29tYmluYXRpb24gb2YgY2hhcmFjdGVycyBhbmQgYW55IHNpbmdsZVxuICAgICAqIGNoYXJhY3RlciwgcmVzcGVjdGl2ZWx5LlxuICAgICAqXG4gICAgICogTk9URTogQmUgY2FyZWZ1bCB3aGVuIHVzaW5nIHdpbGRjYXJkIGNoYXJhY3RlcnMgYXMgeW91XG4gICAgICogbWF5IGdyYW50IGFjY2VzcyB0byByZXBvc2l0b3JpZXMgeW91IGRpZCBub3QgaW50ZW5kLlxuICAgICAqXG4gICAgICogQGV4YW1wbGUgXCJteS1yZXBvc2l0b3J5XCJcbiAgICAgKiBAZXhhbXBsZSBcIm15LXRlYW0tKlwiXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nXG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIG93bmVyIG9mIHRoZSBHaXRIdWIgcmVwb3NpdG9yeS5cbiAgICAgKlxuICAgICAqIE5PVEU6IFRoZSBvd25lciBtdXN0IGV4cGxpY2l0bHkgYmUgd2hpdGVsaXN0ZWQgaW4ge0BsaW5rIHRydXN0ZWRPd25lcnN9LlxuICAgICAqL1xuICAgIG93bmVyOiBzdHJpbmdcbiAgfVtdXG4gIC8qKlxuICAgKiBBbiBleGlzdGluZyBPcGVuSUQgQ29ubmVjdCBQcm92aWRlciBmb3IgR2l0SHViIEFjdGlvbnMuXG4gICAqL1xuICBvaWRjUHJvdmlkZXI6IGlhbS5JT3BlbklkQ29ubmVjdFByb3ZpZGVyXG59XG5cbi8qKlxuICogVXRpbGl0eSBmdW5jdGlvbiBmb3IgdmFsaWRhdGluZyB0aGUgY29uc3RydWN0IHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVByb3BzID0gKHByb3BzOiBQcm9wcykgPT4ge1xuICBsZXQgdmFsaWQgPSB0cnVlXG4gIGlmIChwcm9wcy50cnVzdGVkT3duZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJBdCBsZWFzdCAxIHRydXN0ZWQgb3duZXIgbXVzdCBiZSBzdXBwbGllZCwgYnV0IDAgd2VyZSBnaXZlblwiKVxuICAgIHZhbGlkID0gZmFsc2VcbiAgfVxuICBpZiAocHJvcHMucmVwb3NpdG9yaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJBdCBsZWFzdCAxIHJlcG9zaXRvcnkgbXVzdCBiZSBzdXBwbGllZCwgYnV0IDAgd2VyZSBnaXZlblwiKVxuICAgIHZhbGlkID0gZmFsc2VcbiAgfVxuICBwcm9wcy50cnVzdGVkT3duZXJzLmZvckVhY2goKG93bmVyKSA9PiB7XG4gICAgaWYgKCFvd25lci5tYXRjaCgvXlthLXpBLVowLTktXSskLykpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFRydXN0ZWQgb3duZXIgJHtvd25lcn0gY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzYClcbiAgICAgIHZhbGlkID0gZmFsc2VcbiAgICB9XG4gIH0pXG5cbiAgcHJvcHMucmVwb3NpdG9yaWVzLmZvckVhY2goKHJlcG9zaXRvcnkpID0+IHtcbiAgICBpZiAoIXByb3BzLnRydXN0ZWRPd25lcnMuaW5jbHVkZXMocmVwb3NpdG9yeS5vd25lcikpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBPd25lciAke3JlcG9zaXRvcnkub3duZXJ9IG9mIHJlcG9zaXRvcnkgJHtyZXBvc2l0b3J5Lm5hbWV9IG5vdCBjb25maWd1cmVkIGFzIGEgdHJ1c3RlZCBvd25lcmAsXG4gICAgICApXG4gICAgICB2YWxpZCA9IGZhbHNlXG4gICAgfVxuICB9KVxuICByZXR1cm4gdmFsaWRcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIElBTSByb2xlIHRoYXQgY2FuIGJlIGFzc3VtZWQgYnkgR2l0SHViIEFjdGlvbnMgd29ya2Zsb3dzXG4gKiBpbiBzcGVjaWZpYyBHaXRIdWIgcmVwb3NpdG9yaWVzIGFuZCBicmFuY2hlcyB1c2luZyBPcGVuSUQgQ29ubmVjdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEdpdGh1YkFjdGlvbnNSb2xlIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZTogaWFtLlJvbGVcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcbiAgICBpZiAoIXZhbGlkYXRlUHJvcHMocHJvcHMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHByb3BzIHdlcmUgc3VwcGxpZWRcIilcbiAgICB9XG5cbiAgICBjb25zdCBzdWJqZWN0cyA9IHByb3BzLnJlcG9zaXRvcmllcy5tYXAoXG4gICAgICAocmVwb3NpdG9yeSkgPT5cbiAgICAgICAgYHJlcG86JHtyZXBvc2l0b3J5Lm93bmVyfS8ke3JlcG9zaXRvcnkubmFtZX06cmVmOnJlZnMvaGVhZHMvJHtwcm9wcy50cnVzdGVkQnJhbmNoID8/IFwibWFzdGVyXCJ9YCxcbiAgICApXG4gICAgY29uc3QgZnVsbHlRdWFsaWZpZWRTdWJqZWN0cyA9IHN1YmplY3RzLmZpbHRlcihcbiAgICAgIChzdWJqZWN0KSA9PiAhKHN1YmplY3QuaW5jbHVkZXMoXCI/XCIpIHx8IHN1YmplY3QuaW5jbHVkZXMoXCIqXCIpKSxcbiAgICApXG5cbiAgICBjb25zdCB3aWxkY2FyZFN1YmplY3RzID0gc3ViamVjdHMuZmlsdGVyKFxuICAgICAgKHN1YmplY3QpID0+IHN1YmplY3QuaW5jbHVkZXMoXCI/XCIpIHx8IHN1YmplY3QuaW5jbHVkZXMoXCIqXCIpLFxuICAgIClcbiAgICBjb25zdCBwcmluY2lwYWxDb25kaXRpb25zID0ge1xuICAgICAgLi4uKGZ1bGx5UXVhbGlmaWVkU3ViamVjdHMubGVuZ3RoICYmIHtcbiAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgXCJ0b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTpzdWJcIjogZnVsbHlRdWFsaWZpZWRTdWJqZWN0cyxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgLi4uKHdpbGRjYXJkU3ViamVjdHMubGVuZ3RoICYmIHtcbiAgICAgICAgU3RyaW5nTGlrZToge1xuICAgICAgICAgIFwidG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb206c3ViXCI6IHdpbGRjYXJkU3ViamVjdHMsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9XG5cbiAgICBjb25zdCBwcmluY2lwYWwgPSBuZXcgaWFtLkZlZGVyYXRlZFByaW5jaXBhbChcbiAgICAgIHByb3BzLm9pZGNQcm92aWRlci5vcGVuSWRDb25uZWN0UHJvdmlkZXJBcm4sXG4gICAgICBwcmluY2lwYWxDb25kaXRpb25zLFxuICAgICAgXCJzdHM6QXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVwiLFxuICAgIClcblxuICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBwcmluY2lwYWwgaXMgY29uZmlndXJlZCB3aXRoIGEgdHJ1c3QgcmVsYXRpb25zaGlwXG4gICAgLy8gdGhhdCBjb250YWlucyBhdCBsZWFzdCBvbmUgSUFNIGNvbmRpdGlvbiB3aXRoIGEgY29udGV4dCBrZXkgYW5kIHZhbHVlc1xuICAgIGlmIChcbiAgICAgICFPYmplY3QudmFsdWVzKHByaW5jaXBhbENvbmRpdGlvbnMpLnNvbWUoKGNvbmRpdGlvbkVsZW1lbnQpID0+XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKGNvbmRpdGlvbkVsZW1lbnQpLnNvbWUoXG4gICAgICAgICAgKFtjb25kaXRpb25LZXksIGNvbmRpdGlvblZhbHVlXSkgPT5cbiAgICAgICAgICAgIGNvbmRpdGlvbktleSAmJiBjb25kaXRpb25WYWx1ZS5sZW5ndGgsXG4gICAgICAgICksXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiVGhlIHByaW5jaXBhbCdzIHRydXN0IHBvbGljeSBuZWVkcyB0byBiZSBjb25maWd1cmVkIHdpdGggYXQgbGVhc3Qgb25lIElBTSBjb25kaXRpb25cIixcbiAgICAgIClcbiAgICB9XG4gICAgdGhpcy5yb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsIFwiUm9sZVwiLCB7XG4gICAgICByb2xlTmFtZTogcHJvcHMucm9sZU5hbWUgPz8gXCJnaXRodWItYWN0aW9ucy1yb2xlXCIsXG4gICAgICBhc3N1bWVkQnk6IHByaW5jaXBhbCxcbiAgICB9KVxuICB9XG59XG4iXX0=
|