@anyakichi/cdk-rsync-backup 0.5.2 → 0.5.3

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.
@@ -1,7 +1,13 @@
1
1
  name: Publish Package to npmjs
2
+
2
3
  on:
3
4
  release:
4
5
  types: [created]
6
+
7
+ permissions:
8
+ id-token: write
9
+ contents: read
10
+
5
11
  jobs:
6
12
  build:
7
13
  runs-on: ubuntu-latest
@@ -14,5 +20,3 @@ jobs:
14
20
  - run: npm install
15
21
  - run: npm run build
16
22
  - run: npm publish
17
- env:
18
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
package/lib/index.js CHANGED
@@ -75,10 +75,24 @@ class RsyncBackup extends constructs_1.Construct {
75
75
  actions: ["s3:PutObject", "s3:PutObjectAcl"],
76
76
  resources: [logsBucket.bucketArn, logsBucket.bucketArn + "/*"],
77
77
  }),
78
+ new iam.PolicyStatement({
79
+ actions: [
80
+ "ssm:GetParameter",
81
+ "ssm:PutParameter",
82
+ "ssm:AddTagsToResource",
83
+ "ssm:RemoveTagsFromResource",
84
+ ],
85
+ resources: [
86
+ `arn:aws:ssm:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:parameter/ec2/hostkeys/rsync-backup/*`,
87
+ ],
88
+ }),
78
89
  ],
79
90
  });
80
91
  const role = new iam.Role(this, "InstanceRole", {
81
92
  assumedBy: new iam.ServicePrincipal("ec2.amazonaws.com"),
93
+ managedPolicies: [
94
+ iam.ManagedPolicy.fromAwsManagedPolicyName("AmazonSSMManagedInstanceCore"),
95
+ ],
82
96
  inlinePolicies: {
83
97
  rsyncBackup: policy,
84
98
  },
@@ -92,6 +106,7 @@ class RsyncBackup extends constructs_1.Construct {
92
106
  instanceId += `-${props.instanceVersion}`;
93
107
  }
94
108
  const instance = new ec2.Instance(this, instanceId, {
109
+ instanceName: "rsync-backup",
95
110
  keyPair,
96
111
  vpc,
97
112
  vpcSubnets: {
@@ -103,6 +118,33 @@ class RsyncBackup extends constructs_1.Construct {
103
118
  role,
104
119
  });
105
120
  instance.userData.addCommands("apt-get update", "apt-get install -y unzip", "snap install aws-cli --classic");
121
+ if (props.useEIP) {
122
+ instance.userData.addCommands(`
123
+ set -euo pipefail
124
+
125
+ BASE="/ec2/hostkeys/rsync-backup"
126
+ REGION="${cdk.Aws.REGION}"
127
+
128
+ fetch_param() { aws ssm get-parameter --region "$REGION" --with-decryption --name "$1" --query 'Parameter.Value' --output text 2>/dev/null || true; }
129
+ put_param() { aws ssm put-parameter --region "$REGION" --overwrite --type SecureString --name "$1" --value "$2" >/dev/null; }
130
+
131
+ for key in /etc/ssh/ssh_host_*_key; do
132
+ base="$(basename "$key")"
133
+ val="$(fetch_param "$BASE/$base")"
134
+ pub="$(fetch_param "$BASE/$base.pub")"
135
+ if [ -n "$val" ] && [ -n "$pub" ]; then
136
+ echo "$val" > "$key"
137
+ echo "$pub" > "$key.pub"
138
+ else
139
+ put_param "$BASE/$base" "$(cat "$key")"
140
+ put_param "$BASE/$base.pub" "$(cat "$key.pub")"
141
+ fi
142
+ done
143
+
144
+ systemctl daemon-reload
145
+ systemctl restart ssh
146
+ `);
147
+ }
106
148
  const rsync_backup_sh = new s3assets.Asset(this, "RsyncBackupSh", {
107
149
  path: path.join(__dirname, "../assets"),
108
150
  });
@@ -141,4 +183,4 @@ class RsyncBackup extends constructs_1.Construct {
141
183
  }
142
184
  }
143
185
  exports.RsyncBackup = RsyncBackup;
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQyx5Q0FBeUM7QUFDekMsc0RBQXNEO0FBQ3RELDJDQUF1QztBQUN2Qyw2QkFBNkI7QUFFN0IsdUNBQXdDO0FBd0J4QyxNQUFhLFdBQVksU0FBUSxzQkFBUztJQUl4QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQTBCLEVBQUU7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUM5QyxJQUFJLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDeEQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFFRCxNQUFNLFVBQVUsR0FDZCxLQUFLLENBQUMsVUFBVTtZQUNoQixJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtnQkFDaEMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTztnQkFDeEMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGNBQWM7YUFDeEMsQ0FBQyxDQUFDO1FBRUwsTUFBTSxHQUFHLEdBQ1AsS0FBSyxDQUFDLEdBQUc7WUFDVCxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7Z0JBQy9CLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVU7Z0JBQ3JDLFdBQVcsRUFBRSxDQUFDO2dCQUNkLG1CQUFtQixFQUFFO29CQUNuQjt3QkFDRSxJQUFJLEVBQUUsUUFBUTt3QkFDZCxVQUFVLEVBQUUsR0FBRyxDQUFD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SCxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUNqRSxZQUFZLEVBQUUsR0FBRyxDQUFDLGdCQUFnQjtnQkFDbEMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO2FBQ2hDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFsTEQsa0NBa0xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCAqIGFzIHMzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCAqIGFzIHMzYXNzZXRzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczMtYXNzZXRzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBMSUJfVkVSU0lPTiB9IGZyb20gXCIuL3ZlcnNpb25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBSc3luY0JhY2t1cE1vZHVsZSB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgc3NoS2V5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNpemU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSc3luY0JhY2t1cFByb3BzIHtcbiAgcmVhZG9ubHkgbW9kdWxlcz86IFJzeW5jQmFja3VwTW9kdWxlW107XG4gIHJlYWRvbmx5IG1heFNuYXBzaG90cz86IG51bWJlcjtcblxuICByZWFkb25seSBpbnN0YW5jZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkga2V5TmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgdnBjPzogZWMyLklWcGM7XG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA/OiBlYzIuSVNlY3VyaXR5R3JvdXA7XG4gIHJlYWRvbmx5IGluc3RhbmNlVHlwZT86IGVjMi5JbnN0YW5jZVR5cGU7XG4gIHJlYWRvbmx5IHVzZUVJUD86IGJvb2xlYW47XG5cbiAgcmVhZG9ubHkgbG9nc0J1Y2tldD86IHMzLklCdWNrZXQ7XG4gIHJlYWRvbmx5IGF1dG9EZWxldGVMb2dzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFJzeW5jQmFja3VwIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGxvZ3NCdWNrZXQ6IHMzLklCdWNrZXQ7XG4gIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZTogZWMyLklJbnN0YW5jZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUnN5bmNCYWNrdXBQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IG1heFNuYXBzaG90cyA9IHByb3BzLm1heFNuYXBzaG90cyB8fCAxNTtcbiAgICBpZiAobWF4U25hcHNob3RzIDwgMCB8fCAhTnVtYmVyLmlzSW50ZWdlcihtYXhTbmFwc2hvdHMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJtYXhTbmFwc2hvdHMgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXJcIik7XG4gICAgfVxuXG4gICAgY29uc3QgbG9nc0J1Y2tldCA9XG4gICAgICBwcm9wcy5sb2dzQnVja2V0IHx8XG4gICAgICBuZXcgczMuQnVja2V0KHRoaXMsIFwiTG9nc0J1Y2tldFwiLCB7XG4gICAgICAgIHJlbW92YWxQb2xpY3k6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICAgIGF1dG9EZWxldGVPYmplY3RzOiBwcm9wcy5hdXRvRGVsZXRlTG9ncyxcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgdnBjID1cbiAgICAgIHByb3BzLnZwYyB8fFxuICAgICAgbmV3IGNkay5hd3NfZWMyLlZwYyh0aGlzLCBcIlZwY1wiLCB7XG4gICAgICAgIGlwUHJvdG9jb2w6IGVjMi5JcFByb3RvY29sLkRVQUxfU1RBQ0ssXG4gICAgICAgIG5hdEdhdGV3YXlzOiAwLFxuICAgICAgICBzdWJuZXRDb25maWd1cmF0aW9uOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJQdWJsaWNcIixcbiAgICAgICAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBVQkxJQyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICBsZXQgc2VjdXJpdHlHcm91cDogZWMyLklTZWN1cml0eUdyb3VwO1xuICAgIGlmIChwcm9wcy5zZWN1cml0eUdyb3VwKSB7XG4gICAgICBzZWN1cml0eUdyb3VwID0gcHJvcHMuc2VjdXJpdHlHcm91cDtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VjdXJpdHlHcm91cCA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLCBcIlNlY3VyaXR5R3JvdXBcIiwge1xuICAgICAgICB2cGMsXG4gICAgICAgIGFsbG93QWxsT3V0Ym91bmQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgc2VjdXJpdHlHcm91cC5hZGRJbmdyZXNzUnVsZShcbiAgICAgICAgZWMyLlBlZXIuYW55SXB2NCgpLFxuICAgICAgICBlYzIuUG9ydC50Y3AoMjIpLFxuICAgICAgICBcIkFsbG93IFNTSCBBY2Nlc3NcIixcbiAgICAgICk7XG4gICAgICBzZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKFxuICAgICAgICBlYzIuUGVlci5hbnlJcHY2KCksXG4gICAgICAgIGVjMi5Qb3J0LnRjcCgyMiksXG4gICAgICAgIFwiQWxsb3cgU1NIIEFjY2Vzc1wiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnN0YW5jZVR5cGUgPVxuICAgICAgcHJvcHMuaW5zdGFuY2VUeXBlIHx8XG4gICAgICBlYzIuSW5zdGFuY2VUeXBlLm9mKGVjMi5JbnN0YW5jZUNsYXNzLlQ0RywgZWMyLkluc3RhbmNlU2l6ZS5OQU5PKTtcblxuICAgIGNvbnN0IGFyY2ggPVxuICAgICAgaW5zdGFuY2VUeXBlLmFyY2hpdGVjdHVyZSA9PSBlYzIuSW5zdGFuY2VBcmNoaXRlY3R1cmUuQVJNXzY0XG4gICAgICAgID8gXCJhcm02NFwiXG4gICAgICAgIDogXCJhbWQ2NFwiO1xuICAgIGNvbnN0IG1hY2hpbmVJbWFnZSA9IGVjMi5NYWNoaW5lSW1hZ2UubG9va3VwKHtcbiAgICAgIG5hbWU6IGB1YnVudHUvaW1hZ2VzL2h2bS1zc2QtZ3AzL3VidW50dS1ub2JsZS0yNC4wNC0ke2FyY2h9LXNlcnZlci0qYCxcbiAgICAgIG93bmVyczogW1wiMDk5NzIwMTA5NDc3XCJdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcG9saWN5ID0gbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICBcImVjMjpEZXNjcmliZUluc3RhbmNlc1wiLFxuICAgICAgICAgICAgXCJlYzI6RGVzY3JpYmVTbmFwc2hvdHNcIixcbiAgICAgICAgICAgIFwiZWMyOkRlc2NyaWJlVm9sdW1lc1wiLFxuICAgICAgICAgICAgXCJlYzI6RGVzY3JpYmVWb2x1bWVTdGF0dXNcIixcbiAgICAgICAgICAgIFwiZWMyOkF0dGFjaFZvbHVtZVwiLFxuICAgICAgICAgICAgXCJlYzI6RGV0YWNoVm9sdW1lXCIsXG4gICAgICAgICAgICBcImVjMjpDcmVhdGVWb2x1bWVcIixcbiAgICAgICAgICAgIFwiZWMyOkRlbGV0ZVZvbHVtZVwiLFxuICAgICAgICAgICAgXCJlYzI6Q3JlYXRlU25hcHNob3RcIixcbiAgICAgICAgICAgIFwiZWMyOkRlbGV0ZVNuYXBzaG90XCIsXG4gICAgICAgICAgICBcImVjMjpDcmVhdGVUYWdzXCIsXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1wiczM6UHV0T2JqZWN0XCIsIFwiczM6UHV0T2JqZWN0QWNsXCJdLFxuICAgICAgICAgIHJlc291cmNlczogW2xvZ3NCdWNrZXQuYnVja2V0QXJuLCBsb2dzQnVja2V0LmJ1Y2tldEFybiArIFwiLypcIl0sXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgXCJJbnN0YW5jZVJvbGVcIiwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJlYzIuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICAgIHJzeW5jQmFja3VwOiBwb2xpY3ksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3Qga2V5UGFpciA9IG5ldyBlYzIuS2V5UGFpcih0aGlzLCBcIktleVBhaXJcIiwge1xuICAgICAga2V5UGFpck5hbWU6IFwicnN5bmMtYmFja3VwLWtleXBhaXJcIixcbiAgICB9KTtcbiAgICBrZXlQYWlyLmFwcGx5UmVtb3ZhbFBvbGljeShjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZKTtcblxuICAgIGxldCBpbnN0YW5jZUlkID0gYEluc3RhbmNlLSR7TElCX1ZFUlNJT04ucmVwbGFjZSgvXFwuXFxkKyQvLCBcIlwiKX1gO1xuICAgIGlmIChwcm9wcy5pbnN0YW5jZVZlcnNpb24pIHtcbiAgICAgIGluc3RhbmNlSWQgKz0gYC0ke3Byb3BzLmluc3RhbmNlVmVyc2lvbn1gO1xuICAgIH1cbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBlYzIuSW5zdGFuY2UodGhpcywgaW5zdGFuY2VJZCwge1xuICAgICAga2V5UGFpcixcbiAgICAgIHZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHtcbiAgICAgICAgc3VibmV0VHlwZTogZWMyLlN1Ym5ldFR5cGUuUFVCTElDLFxuICAgICAgfSxcbiAgICAgIHNlY3VyaXR5R3JvdXAsXG4gICAgICBpbnN0YW5jZVR5cGUsXG4gICAgICBtYWNoaW5lSW1hZ2UsXG4gICAgICByb2xlLFxuICAgIH0pO1xuXG4gICAgaW5zdGFuY2UudXNlckRhdGEuYWRkQ29tbWFuZHMoXG4gICAgICBcImFwdC1nZXQgdXBkYXRlXCIsXG4gICAgICBcImFwdC1nZXQgaW5zdGFsbCAteSB1bnppcFwiLFxuICAgICAgXCJzbmFwIGluc3RhbGwgYXdzLWNsaSAtLWNsYXNzaWNcIixcbiAgICApO1xuXG4gICAgY29uc3QgcnN5bmNfYmFja3VwX3NoID0gbmV3IHMzYXNzZXRzLkFzc2V0KHRoaXMsIFwiUnN5bmNCYWNrdXBTaFwiLCB7XG4gICAgICBwYXRoOiBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uL2Fzc2V0c1wiKSxcbiAgICB9KTtcbiAgICByc3luY19iYWNrdXBfc2guZ3JhbnRSZWFkKGluc3RhbmNlKTtcbiAgICBjb25zdCBhc3NldF9wYXRoID0gaW5zdGFuY2UudXNlckRhdGEuYWRkUzNEb3dubG9hZENvbW1hbmQoe1xuICAgICAgYnVja2V0OiByc3luY19iYWNrdXBfc2guYnVja2V0LFxuICAgICAgYnVja2V0S2V5OiByc3luY19iYWNrdXBfc2guczNPYmplY3RLZXksXG4gICAgfSk7XG5cbiAgICBpbnN0YW5jZS51c2VyRGF0YS5hZGRDb21tYW5kcyhcbiAgICAgIGB1bnppcCAke2Fzc2V0X3BhdGh9IC1kIC9zcnYvcnN5bmMtYmFja3VwYCxcbiAgICAgIGBybSAke2Fzc2V0X3BhdGh9YCxcbiAgICAgIFwibXYgL3Nydi9yc3luYy1iYWNrdXAvcnN5bmMtYmFja3VwLnNoIC91c3IvbG9jYWwvYmluL3JzeW5jLWJhY2t1cFwiLFxuICAgICAgYGVjaG8gTUFYX1NOQVBTSE9UUz0ke21heFNuYXBzaG90c30gPj4gL2V0Yy9lbnZpcm9ubWVudGAsXG4gICAgICBgZWNobyBTM19MT0dTX0JVQ0tFVD0ke2xvZ3NCdWNrZXQuYnVja2V0TmFtZX0gPj4gL2V0Yy9lbnZpcm9ubWVudGAsXG4gICAgKTtcblxuICAgIGlmIChwcm9wcy5tb2R1bGVzKSB7XG4gICAgICBmb3IgKGNvbnN0IFtpLCBtXSBvZiBwcm9wcy5tb2R1bGVzLmVudHJpZXMoKSkge1xuICAgICAgICBpZiAobS5zaXplIDwgMCB8fCAhTnVtYmVyLmlzSW50ZWdlcihtLnNpemUpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwibW9kdWxlIHNpemUgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXJcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGV2aWNlID0gU3RyaW5nLmZyb21DaGFyQ29kZShcImZcIi5jaGFyQ29kZUF0KDApICsgaSk7XG4gICAgICAgIGluc3RhbmNlLnVzZXJEYXRhLmFkZENvbW1hbmRzKFxuICAgICAgICAgIGBjcCAvc3J2L3JzeW5jLWJhY2t1cC9yc3luY2QuY29uZiAvc3J2L3JzeW5jLWJhY2t1cC9yc3luY2QuJHttLm5hbWV9LmNvbmZgLFxuICAgICAgICAgIGBzZWQgLWkgJ3MvQGhvc3RALyR7bS5uYW1lfS9nJyAvc3J2L3JzeW5jLWJhY2t1cC9yc3luY2QuJHttLm5hbWV9LmNvbmZgLFxuICAgICAgICAgIGBlY2hvICduby1wb3J0LWZvcndhcmRpbmcsbm8tYWdlbnQtZm9yd2FyZGluZyxuby1YMTEtZm9yd2FyZGluZyxjb21tYW5kPVwicnN5bmMtYmFja3VwICR7bS5uYW1lfSAke20uc2l6ZX0gL2Rldi9zZCR7ZGV2aWNlfVwiICR7bS5zc2hLZXl9JyA+PiAvcm9vdC8uc3NoL2F1dGhvcml6ZWRfa2V5c2AsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGluc3RhbmNlLnVzZXJEYXRhLmFkZENvbW1hbmRzKFxuICAgICAgICBcImNwIC9zcnYvcnN5bmMtYmFja3VwL3JzeW5jZC5jb25mIC9zcnYvcnN5bmMtYmFja3VwL3JzeW5jZC5iYWNrdXAuY29uZlwiLFxuICAgICAgICBcInNlZCAtaSAncy9AaG9zdEAvYmFja3VwL2cnIC9zcnYvcnN5bmMtYmFja3VwL3JzeW5jZC5iYWNrdXAuY29uZlwiLFxuICAgICAgICBgc2VkIC1pICdzfGNvbW1hbmQ9XCIuKlwiIHxjb21tYW5kPVwicnN5bmMtYmFja3VwIGJhY2t1cCAxMDAgL2Rldi9zZGZcIiB8JyAvcm9vdC8uc3NoL2F1dGhvcml6ZWRfa2V5c2AsXG4gICAgICApO1xuICAgIH1cbiAgICBpbnN0YW5jZS51c2VyRGF0YS5hZGRDb21tYW5kcyhcInJtIC9zcnYvcnN5bmMtYmFja3VwL3JzeW5jZC5jb25mXCIpO1xuXG4gICAgbGV0IGVpcDogZWMyLkNmbkVJUCB8IHVuZGVmaW5lZDtcbiAgICBsZXQgZUlQQXNzb2NpYXRpb246IGVjMi5DZm5FSVBBc3NvY2lhdGlvbiB8IHVuZGVmaW5lZDtcbiAgICBpZiAocHJvcHMudXNlRUlQKSB7XG4gICAgICBlaXAgPSBuZXcgZWMyLkNmbkVJUCh0aGlzLCBcIkVJUFwiLCB7XG4gICAgICAgIGRvbWFpbjogXCJ2cGNcIixcbiAgICAgIH0pO1xuICAgICAgZUlQQXNzb2NpYXRpb24gPSBuZXcgZWMyLkNmbkVJUEFzc29jaWF0aW9uKHRoaXMsIFwiRUlQQXNzb2NpYXRpb25cIiwge1xuICAgICAgICBhbGxvY2F0aW9uSWQ6IGVpcC5hdHRyQWxsb2NhdGlvbklkLFxuICAgICAgICBpbnN0YW5jZUlkOiBpbnN0YW5jZS5pbnN0YW5jZUlkLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2dzQnVja2V0ID0gbG9nc0J1Y2tldDtcbiAgICB0aGlzLmluc3RhbmNlID0gaW5zdGFuY2U7XG4gIH1cbn1cbiJdfQ==
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQyx5Q0FBeUM7QUFDekMsc0RBQXNEO0FBQ3RELDJDQUF1QztBQUN2Qyw2QkFBNkI7QUFFN0IsdUNBQXdDO0FBd0J4QyxNQUFhLFdBQVksU0FBUSxzQkFBUztJQUl4QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQTBCLEVBQUU7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUM5QyxJQUFJLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDeEQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFFRCxNQUFNLFVBQVUsR0FDZCxLQUFLLENBQUMsVUFBVTtZQUNoQixJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtnQkFDaEMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTztnQkFDeEMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGNBQWM7YUFDeEMsQ0FBQyxDQUFDO1FBRUwsTUFBTSxHQUFHLEdBQ1AsS0FBSyxDQUFDLEdBQUc7WUFDVCxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7Z0JBQy9CLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVU7Z0JBQ3JDLFdBQVcsRUFBRSxDQUFDO2dCQUNkLG1CQUFtQixFQUFFO29CQUNuQjt3QkFDRSxJQUFJLEVBQUUsUUFBUTt3QkFDZCxVQUFVLEVBQUUsR0FBRyxDQUFD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QyxJQUFJLE9BQU8sRUFDdkUsd0ZBQXdGLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksV0FBVyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0saUNBQWlDLENBQ3hLLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FDM0IsdUVBQXVFLEVBQ3ZFLGlFQUFpRSxFQUNqRSxrR0FBa0csQ0FDbkcsQ0FBQztRQUNKLENBQUM7UUFDRCxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBRWxFLElBQUksR0FBMkIsQ0FBQztRQUNoQyxJQUFJLGNBQWlELENBQUM7UUFDdEQsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO2dCQUNoQyxNQUFNLEVBQUUsS0FBSzthQUNkLENBQUMsQ0FBQztZQUNILGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ2pFLFlBQVksRUFBRSxHQUFHLENBQUMsZ0JBQWdCO2dCQUNsQyxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7YUFDaEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQWpPRCxrQ0FpT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0ICogYXMgczMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0ICogYXMgczNhc3NldHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zMy1hc3NldHNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IExJQl9WRVJTSU9OIH0gZnJvbSBcIi4vdmVyc2lvblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJzeW5jQmFja3VwTW9kdWxlIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzc2hLZXk6IHN0cmluZztcbiAgcmVhZG9ubHkgc2l6ZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJzeW5jQmFja3VwUHJvcHMge1xuICByZWFkb25seSBtb2R1bGVzPzogUnN5bmNCYWNrdXBNb2R1bGVbXTtcbiAgcmVhZG9ubHkgbWF4U25hcHNob3RzPzogbnVtYmVyO1xuXG4gIHJlYWRvbmx5IGluc3RhbmNlVmVyc2lvbj86IHN0cmluZztcblxuICByZWFkb25seSBrZXlOYW1lPzogc3RyaW5nO1xuICByZWFkb25seSB2cGM/OiBlYzIuSVZwYztcbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cD86IGVjMi5JU2VjdXJpdHlHcm91cDtcbiAgcmVhZG9ubHkgaW5zdGFuY2VUeXBlPzogZWMyLkluc3RhbmNlVHlwZTtcbiAgcmVhZG9ubHkgdXNlRUlQPzogYm9vbGVhbjtcblxuICByZWFkb25seSBsb2dzQnVja2V0PzogczMuSUJ1Y2tldDtcbiAgcmVhZG9ubHkgYXV0b0RlbGV0ZUxvZ3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUnN5bmNCYWNrdXAgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nc0J1Y2tldDogczMuSUJ1Y2tldDtcbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlOiBlYzIuSUluc3RhbmNlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSc3luY0JhY2t1cFByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgbWF4U25hcHNob3RzID0gcHJvcHMubWF4U25hcHNob3RzIHx8IDE1O1xuICAgIGlmIChtYXhTbmFwc2hvdHMgPCAwIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKG1heFNuYXBzaG90cykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIm1heFNuYXBzaG90cyBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlclwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2dzQnVja2V0ID1cbiAgICAgIHByb3BzLmxvZ3NCdWNrZXQgfHxcbiAgICAgIG5ldyBzMy5CdWNrZXQodGhpcywgXCJMb2dzQnVja2V0XCIsIHtcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHByb3BzLmF1dG9EZWxldGVMb2dzLFxuICAgICAgfSk7XG5cbiAgICBjb25zdCB2cGMgPVxuICAgICAgcHJvcHMudnBjIHx8XG4gICAgICBuZXcgY2RrLmF3c19lYzIuVnBjKHRoaXMsIFwiVnBjXCIsIHtcbiAgICAgICAgaXBQcm90b2NvbDogZWMyLklwUHJvdG9jb2wuRFVBTF9TVEFDSyxcbiAgICAgICAgbmF0R2F0ZXdheXM6IDAsXG4gICAgICAgIHN1Ym5ldENvbmZpZ3VyYXRpb246IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIlB1YmxpY1wiLFxuICAgICAgICAgICAgc3VibmV0VHlwZTogZWMyLlN1Ym5ldFR5cGUuUFVCTElDLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgIGxldCBzZWN1cml0eUdyb3VwOiBlYzIuSVNlY3VyaXR5R3JvdXA7XG4gICAgaWYgKHByb3BzLnNlY3VyaXR5R3JvdXApIHtcbiAgICAgIHNlY3VyaXR5R3JvdXAgPSBwcm9wcy5zZWN1cml0eUdyb3VwO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWN1cml0eUdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHRoaXMsIFwiU2VjdXJpdHlHcm91cFwiLCB7XG4gICAgICAgIHZwYyxcbiAgICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBzZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKFxuICAgICAgICBlYzIuUGVlci5hbnlJcHY0KCksXG4gICAgICAgIGVjMi5Qb3J0LnRjcCgyMiksXG4gICAgICAgIFwiQWxsb3cgU1NIIEFjY2Vzc1wiLFxuICAgICAgKTtcbiAgICAgIHNlY3VyaXR5R3JvdXAuYWRkSW5ncmVzc1J1bGUoXG4gICAgICAgIGVjMi5QZWVyLmFueUlwdjYoKSxcbiAgICAgICAgZWMyLlBvcnQudGNwKDIyKSxcbiAgICAgICAgXCJBbGxvdyBTU0ggQWNjZXNzXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGluc3RhbmNlVHlwZSA9XG4gICAgICBwcm9wcy5pbnN0YW5jZVR5cGUgfHxcbiAgICAgIGVjMi5JbnN0YW5jZVR5cGUub2YoZWMyLkluc3RhbmNlQ2xhc3MuVDRHLCBlYzIuSW5zdGFuY2VTaXplLk5BTk8pO1xuXG4gICAgY29uc3QgYXJjaCA9XG4gICAgICBpbnN0YW5jZVR5cGUuYXJjaGl0ZWN0dXJlID09IGVjMi5JbnN0YW5jZUFyY2hpdGVjdHVyZS5BUk1fNjRcbiAgICAgICAgPyBcImFybTY0XCJcbiAgICAgICAgOiBcImFtZDY0XCI7XG4gICAgY29uc3QgbWFjaGluZUltYWdlID0gZWMyLk1hY2hpbmVJbWFnZS5sb29rdXAoe1xuICAgICAgbmFtZTogYHVidW50dS9pbWFnZXMvaHZtLXNzZC1ncDMvdWJ1bnR1LW5vYmxlLTI0LjA0LSR7YXJjaH0tc2VydmVyLSpgLFxuICAgICAgb3duZXJzOiBbXCIwOTk3MjAxMDk0NzdcIl0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBwb2xpY3kgPSBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgIFwiZWMyOkRlc2NyaWJlSW5zdGFuY2VzXCIsXG4gICAgICAgICAgICBcImVjMjpEZXNjcmliZVNuYXBzaG90c1wiLFxuICAgICAgICAgICAgXCJlYzI6RGVzY3JpYmVWb2x1bWVzXCIsXG4gICAgICAgICAgICBcImVjMjpEZXNjcmliZVZvbHVtZVN0YXR1c1wiLFxuICAgICAgICAgICAgXCJlYzI6QXR0YWNoVm9sdW1lXCIsXG4gICAgICAgICAgICBcImVjMjpEZXRhY2hWb2x1bWVcIixcbiAgICAgICAgICAgIFwiZWMyOkNyZWF0ZVZvbHVtZVwiLFxuICAgICAgICAgICAgXCJlYzI6RGVsZXRlVm9sdW1lXCIsXG4gICAgICAgICAgICBcImVjMjpDcmVhdGVTbmFwc2hvdFwiLFxuICAgICAgICAgICAgXCJlYzI6RGVsZXRlU25hcHNob3RcIixcbiAgICAgICAgICAgIFwiZWMyOkNyZWF0ZVRhZ3NcIixcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXSxcbiAgICAgICAgfSksXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXCJzMzpQdXRPYmplY3RcIiwgXCJzMzpQdXRPYmplY3RBY2xcIl0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbbG9nc0J1Y2tldC5idWNrZXRBcm4sIGxvZ3NCdWNrZXQuYnVja2V0QXJuICsgXCIvKlwiXSxcbiAgICAgICAgfSksXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICBcInNzbTpHZXRQYXJhbWV0ZXJcIixcbiAgICAgICAgICAgIFwic3NtOlB1dFBhcmFtZXRlclwiLFxuICAgICAgICAgICAgXCJzc206QWRkVGFnc1RvUmVzb3VyY2VcIixcbiAgICAgICAgICAgIFwic3NtOlJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VcIixcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgYGFybjphd3M6c3NtOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTpwYXJhbWV0ZXIvZWMyL2hvc3RrZXlzL3JzeW5jLWJhY2t1cC8qYCxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBjb25zdCByb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsIFwiSW5zdGFuY2VSb2xlXCIsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiZWMyLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFxuICAgICAgICAgIFwiQW1hem9uU1NNTWFuYWdlZEluc3RhbmNlQ29yZVwiLFxuICAgICAgICApLFxuICAgICAgXSxcbiAgICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICAgIHJzeW5jQmFja3VwOiBwb2xpY3ksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3Qga2V5UGFpciA9IG5ldyBlYzIuS2V5UGFpcih0aGlzLCBcIktleVBhaXJcIiwge1xuICAgICAga2V5UGFpck5hbWU6IFwicnN5bmMtYmFja3VwLWtleXBhaXJcIixcbiAgICB9KTtcbiAgICBrZXlQYWlyLmFwcGx5UmVtb3ZhbFBvbGljeShjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZKTtcblxuICAgIGxldCBpbnN0YW5jZUlkID0gYEluc3RhbmNlLSR7TElCX1ZFUlNJT04ucmVwbGFjZSgvXFwuXFxkKyQvLCBcIlwiKX1gO1xuICAgIGlmIChwcm9wcy5pbnN0YW5jZVZlcnNpb24pIHtcbiAgICAgIGluc3RhbmNlSWQgKz0gYC0ke3Byb3BzLmluc3RhbmNlVmVyc2lvbn1gO1xuICAgIH1cbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBlYzIuSW5zdGFuY2UodGhpcywgaW5zdGFuY2VJZCwge1xuICAgICAgaW5zdGFuY2VOYW1lOiBcInJzeW5jLWJhY2t1cFwiLFxuICAgICAga2V5UGFpcixcbiAgICAgIHZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHtcbiAgICAgICAgc3VibmV0VHlwZTogZWMyLlN1Ym5ldFR5cGUuUFVCTElDLFxuICAgICAgfSxcbiAgICAgIHNlY3VyaXR5R3JvdXAsXG4gICAgICBpbnN0YW5jZVR5cGUsXG4gICAgICBtYWNoaW5lSW1hZ2UsXG4gICAgICByb2xlLFxuICAgIH0pO1xuXG4gICAgaW5zdGFuY2UudXNlckRhdGEuYWRkQ29tbWFuZHMoXG4gICAgICBcImFwdC1nZXQgdXBkYXRlXCIsXG4gICAgICBcImFwdC1nZXQgaW5zdGFsbCAteSB1bnppcFwiLFxuICAgICAgXCJzbmFwIGluc3RhbGwgYXdzLWNsaSAtLWNsYXNzaWNcIixcbiAgICApO1xuXG4gICAgaWYgKHByb3BzLnVzZUVJUCkge1xuICAgICAgaW5zdGFuY2UudXNlckRhdGEuYWRkQ29tbWFuZHMoXG4gICAgICAgIGBcbnNldCAtZXVvIHBpcGVmYWlsXG5cbkJBU0U9XCIvZWMyL2hvc3RrZXlzL3JzeW5jLWJhY2t1cFwiXG5SRUdJT049XCIke2Nkay5Bd3MuUkVHSU9OfVwiXG5cbmZldGNoX3BhcmFtKCkgeyBhd3Mgc3NtIGdldC1wYXJhbWV0ZXIgLS1yZWdpb24gXCIkUkVHSU9OXCIgLS13aXRoLWRlY3J5cHRpb24gLS1uYW1lIFwiJDFcIiAtLXF1ZXJ5ICdQYXJhbWV0ZXIuVmFsdWUnIC0tb3V0cHV0IHRleHQgMj4vZGV2L251bGwgfHwgdHJ1ZTsgfVxucHV0X3BhcmFtKCkgeyBhd3Mgc3NtIHB1dC1wYXJhbWV0ZXIgLS1yZWdpb24gXCIkUkVHSU9OXCIgLS1vdmVyd3JpdGUgLS10eXBlIFNlY3VyZVN0cmluZyAgLS1uYW1lIFwiJDFcIiAtLXZhbHVlIFwiJDJcIiA+L2Rldi9udWxsOyB9XG5cbmZvciBrZXkgaW4gL2V0Yy9zc2gvc3NoX2hvc3RfKl9rZXk7IGRvXG4gIGJhc2U9XCIkKGJhc2VuYW1lIFwiJGtleVwiKVwiXG4gIHZhbD1cIiQoZmV0Y2hfcGFyYW0gXCIkQkFTRS8kYmFzZVwiKVwiXG4gIHB1Yj1cIiQoZmV0Y2hfcGFyYW0gXCIkQkFTRS8kYmFzZS5wdWJcIilcIlxuICBpZiBbIC1uIFwiJHZhbFwiIF0gJiYgWyAtbiBcIiRwdWJcIiBdOyB0aGVuXG4gICAgZWNobyBcIiR2YWxcIiA+IFwiJGtleVwiXG4gICAgZWNobyBcIiRwdWJcIiA+IFwiJGtleS5wdWJcIlxuICBlbHNlXG4gICAgcHV0X3BhcmFtIFwiJEJBU0UvJGJhc2VcIiBcIiQoY2F0IFwiJGtleVwiKVwiXG4gICAgcHV0X3BhcmFtIFwiJEJBU0UvJGJhc2UucHViXCIgXCIkKGNhdCBcIiRrZXkucHViXCIpXCJcbiAgZmlcbmRvbmVcblxuc3lzdGVtY3RsIGRhZW1vbi1yZWxvYWRcbnN5c3RlbWN0bCByZXN0YXJ0IHNzaFxuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcnN5bmNfYmFja3VwX3NoID0gbmV3IHMzYXNzZXRzLkFzc2V0KHRoaXMsIFwiUnN5bmNCYWNrdXBTaFwiLCB7XG4gICAgICBwYXRoOiBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uL2Fzc2V0c1wiKSxcbiAgICB9KTtcbiAgICByc3luY19iYWNrdXBfc2guZ3JhbnRSZWFkKGluc3RhbmNlKTtcbiAgICBjb25zdCBhc3NldF9wYXRoID0gaW5zdGFuY2UudXNlckRhdGEuYWRkUzNEb3dubG9hZENvbW1hbmQoe1xuICAgICAgYnVja2V0OiByc3luY19iYWNrdXBfc2guYnVja2V0LFxuICAgICAgYnVja2V0S2V5OiByc3luY19iYWNrdXBfc2guczNPYmplY3RLZXksXG4gICAgfSk7XG5cbiAgICBpbnN0YW5jZS51c2VyRGF0YS5hZGRDb21tYW5kcyhcbiAgICAgIGB1bnppcCAke2Fzc2V0X3BhdGh9IC1kIC9zcnYvcnN5bmMtYmFja3VwYCxcbiAgICAgIGBybSAke2Fzc2V0X3BhdGh9YCxcbiAgICAgIFwibXYgL3Nydi9yc3luYy1iYWNrdXAvcnN5bmMtYmFja3VwLnNoIC91c3IvbG9jYWwvYmluL3JzeW5jLWJhY2t1cFwiLFxuICAgICAgYGVjaG8gTUFYX1NOQVBTSE9UUz0ke21heFNuYXBzaG90c30gPj4gL2V0Yy9lbnZpcm9ubWVudGAsXG4gICAgICBgZWNobyBTM19MT0dTX0JVQ0tFVD0ke2xvZ3NCdWNrZXQuYnVja2V0TmFtZX0gPj4gL2V0Yy9lbnZpcm9ubWVudGAsXG4gICAgKTtcblxuICAgIGlmIChwcm9wcy5tb2R1bGVzKSB7XG4gICAgICBmb3IgKGNvbnN0IFtpLCBtXSBvZiBwcm9wcy5tb2R1bGVzLmVudHJpZXMoKSkge1xuICAgICAgICBpZiAobS5zaXplIDwgMCB8fCAhTnVtYmVyLmlzSW50ZWdlcihtLnNpemUpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwibW9kdWxlIHNpemUgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXJcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGV2aWNlID0gU3RyaW5nLmZyb21DaGFyQ29kZShcImZcIi5jaGFyQ29kZUF0KDApICsgaSk7XG4gICAgICAgIGluc3RhbmNlLnVzZXJEYXRhLmFkZENvbW1hbmRzKFxuICAgICAgICAgIGBjcCAvc3J2L3JzeW5jLWJhY2t1cC9yc3luY2QuY29uZiAvc3J2L3JzeW5jLWJhY2t1cC9yc3luY2QuJHttLm5hbWV9LmNvbmZgLFxuICAgICAgICAgIGBzZWQgLWkgJ3MvQGhvc3RALyR7bS5uYW1lfS9nJyAvc3J2L3JzeW5jLWJhY2t1cC9yc3luY2QuJHttLm5hbWV9LmNvbmZgLFxuICAgICAgICAgIGBlY2hvICduby1wb3J0LWZvcndhcmRpbmcsbm8tYWdlbnQtZm9yd2FyZGluZyxuby1YMTEtZm9yd2FyZGluZyxjb21tYW5kPVwicnN5bmMtYmFja3VwICR7bS5uYW1lfSAke20uc2l6ZX0gL2Rldi9zZCR7ZGV2aWNlfVwiICR7bS5zc2hLZXl9JyA+PiAvcm9vdC8uc3NoL2F1dGhvcml6ZWRfa2V5c2AsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGluc3RhbmNlLnVzZXJEYXRhLmFkZENvbW1hbmRzKFxuICAgICAgICBcImNwIC9zcnYvcnN5bmMtYmFja3VwL3JzeW5jZC5jb25mIC9zcnYvcnN5bmMtYmFja3VwL3JzeW5jZC5iYWNrdXAuY29uZlwiLFxuICAgICAgICBcInNlZCAtaSAncy9AaG9zdEAvYmFja3VwL2cnIC9zcnYvcnN5bmMtYmFja3VwL3JzeW5jZC5iYWNrdXAuY29uZlwiLFxuICAgICAgICBgc2VkIC1pICdzfGNvbW1hbmQ9XCIuKlwiIHxjb21tYW5kPVwicnN5bmMtYmFja3VwIGJhY2t1cCAxMDAgL2Rldi9zZGZcIiB8JyAvcm9vdC8uc3NoL2F1dGhvcml6ZWRfa2V5c2AsXG4gICAgICApO1xuICAgIH1cbiAgICBpbnN0YW5jZS51c2VyRGF0YS5hZGRDb21tYW5kcyhcInJtIC9zcnYvcnN5bmMtYmFja3VwL3JzeW5jZC5jb25mXCIpO1xuXG4gICAgbGV0IGVpcDogZWMyLkNmbkVJUCB8IHVuZGVmaW5lZDtcbiAgICBsZXQgZUlQQXNzb2NpYXRpb246IGVjMi5DZm5FSVBBc3NvY2lhdGlvbiB8IHVuZGVmaW5lZDtcbiAgICBpZiAocHJvcHMudXNlRUlQKSB7XG4gICAgICBlaXAgPSBuZXcgZWMyLkNmbkVJUCh0aGlzLCBcIkVJUFwiLCB7XG4gICAgICAgIGRvbWFpbjogXCJ2cGNcIixcbiAgICAgIH0pO1xuICAgICAgZUlQQXNzb2NpYXRpb24gPSBuZXcgZWMyLkNmbkVJUEFzc29jaWF0aW9uKHRoaXMsIFwiRUlQQXNzb2NpYXRpb25cIiwge1xuICAgICAgICBhbGxvY2F0aW9uSWQ6IGVpcC5hdHRyQWxsb2NhdGlvbklkLFxuICAgICAgICBpbnN0YW5jZUlkOiBpbnN0YW5jZS5pbnN0YW5jZUlkLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2dzQnVja2V0ID0gbG9nc0J1Y2tldDtcbiAgICB0aGlzLmluc3RhbmNlID0gaW5zdGFuY2U7XG4gIH1cbn1cbiJdfQ==
package/lib/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const LIB_VERSION = "0.5.2";
1
+ export declare const LIB_VERSION = "0.5.3";
package/lib/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LIB_VERSION = void 0;
4
- exports.LIB_VERSION = "0.5.2";
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxXQUFXLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IExJQl9WRVJTSU9OID0gXCIwLjUuMlwiO1xuIl19
4
+ exports.LIB_VERSION = "0.5.3";
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxXQUFXLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IExJQl9WRVJTSU9OID0gXCIwLjUuM1wiO1xuIl19
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@anyakichi/cdk-rsync-backup",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "description": "AWS CDK L3 construct for cloud backup system with rsync",
5
5
  "keywords": [
6
+ "awscdk",
6
7
  "backup",
7
- "cdk",
8
8
  "rsync"
9
9
  ],
10
10
  "homepage": "https://github.com/anyakichi/cdk-rsync-backup",