cdk-lambda-subminute 2.0.113 → 2.0.115

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -3883,6 +3883,6 @@
3883
3883
  "symbolId": "src/cdk-lambda-subminute:SubminuteStateMachineProps"
3884
3884
  }
3885
3885
  },
3886
- "version": "2.0.113",
3887
- "fingerprint": "ia0EvXPugR4PPgkGpYgXqhK1VdYUr6eFuxr0TXwH7tQ="
3886
+ "version": "2.0.115",
3887
+ "fingerprint": "l+vG1HjE17vfPeXYdlEmkYKbdXPXCU2B4ICg5flzkvs="
3888
3888
  }
@@ -14,20 +14,20 @@
14
14
  }
15
15
  }
16
16
  },
17
- "5fa1330271b8967d9254ba2d4a07144f8acefe8b77e6d6bba38261373a50d5f8": {
17
+ "f5b6a6d08a8206e67d0b54e2a29abd7e0472d835abc71037de3a93545b5edacc": {
18
18
  "source": {
19
- "path": "asset.5fa1330271b8967d9254ba2d4a07144f8acefe8b77e6d6bba38261373a50d5f8",
19
+ "path": "asset.f5b6a6d08a8206e67d0b54e2a29abd7e0472d835abc71037de3a93545b5edacc",
20
20
  "packaging": "zip"
21
21
  },
22
22
  "destinations": {
23
23
  "current_account-current_region": {
24
24
  "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
25
- "objectKey": "5fa1330271b8967d9254ba2d4a07144f8acefe8b77e6d6bba38261373a50d5f8.zip",
25
+ "objectKey": "f5b6a6d08a8206e67d0b54e2a29abd7e0472d835abc71037de3a93545b5edacc.zip",
26
26
  "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
27
27
  }
28
28
  }
29
29
  },
30
- "dcbeac0094dd0ae172168d3971b5180551c647916dea563ec56d91922f666488": {
30
+ "4b8aa8fe526cd8c3dcdff18593d6d06d25d71cf5da0e879a9622f877d3a9394e": {
31
31
  "source": {
32
32
  "path": "TestStack.template.json",
33
33
  "packaging": "file"
@@ -35,7 +35,7 @@
35
35
  "destinations": {
36
36
  "current_account-current_region": {
37
37
  "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
38
- "objectKey": "dcbeac0094dd0ae172168d3971b5180551c647916dea563ec56d91922f666488.json",
38
+ "objectKey": "4b8aa8fe526cd8c3dcdff18593d6d06d25d71cf5da0e879a9622f877d3a9394e.json",
39
39
  "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
40
40
  }
41
41
  }
@@ -469,7 +469,7 @@
469
469
  "S3Bucket": {
470
470
  "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
471
471
  },
472
- "S3Key": "5fa1330271b8967d9254ba2d4a07144f8acefe8b77e6d6bba38261373a50d5f8.zip"
472
+ "S3Key": "f5b6a6d08a8206e67d0b54e2a29abd7e0472d835abc71037de3a93545b5edacc.zip"
473
473
  },
474
474
  "Role": {
475
475
  "Fn::GetAtt": [
@@ -0,0 +1 @@
1
+ export declare function handler(event: AWSLambda.CloudFormationCustomResourceEvent, context: AWSLambda.Context): Promise<void>;
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ /* eslint-disable no-console */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.handler = void 0;
5
+ // eslint-disable-next-line import/no-extraneous-dependencies
6
+ const AWS = require("aws-sdk");
7
+ /**
8
+ * Creates a log group and doesn't throw if it exists.
9
+ *
10
+ * @param logGroupName the name of the log group to create.
11
+ * @param region to create the log group in
12
+ * @param options CloudWatch API SDK options.
13
+ */
14
+ async function createLogGroupSafe(logGroupName, region, options) {
15
+ // If we set the log retention for a lambda, then due to the async nature of
16
+ // Lambda logging there could be a race condition when the same log group is
17
+ // already being created by the lambda execution. This can sometime result in
18
+ // an error "OperationAbortedException: A conflicting operation is currently
19
+ // in progress...Please try again."
20
+ // To avoid an error, we do as requested and try again.
21
+ let retryCount = options?.maxRetries == undefined ? 10 : options.maxRetries;
22
+ const delay = options?.retryOptions?.base == undefined ? 10 : options.retryOptions.base;
23
+ do {
24
+ try {
25
+ const cloudwatchlogs = new AWS.CloudWatchLogs({ apiVersion: '2014-03-28', region, ...options });
26
+ await cloudwatchlogs.createLogGroup({ logGroupName }).promise();
27
+ return;
28
+ }
29
+ catch (error) {
30
+ if (error.code === 'ResourceAlreadyExistsException') {
31
+ // The log group is already created by the lambda execution
32
+ return;
33
+ }
34
+ if (error.code === 'OperationAbortedException') {
35
+ if (retryCount > 0) {
36
+ retryCount--;
37
+ await new Promise(resolve => setTimeout(resolve, delay));
38
+ continue;
39
+ }
40
+ else {
41
+ // The log group is still being created by another execution but we are out of retries
42
+ throw new Error('Out of attempts to create a logGroup');
43
+ }
44
+ }
45
+ throw error;
46
+ }
47
+ } while (true); // exit happens on retry count check
48
+ }
49
+ //delete a log group
50
+ async function deleteLogGroup(logGroupName, region, options) {
51
+ let retryCount = options?.maxRetries == undefined ? 10 : options.maxRetries;
52
+ const delay = options?.retryOptions?.base == undefined ? 10 : options.retryOptions.base;
53
+ do {
54
+ try {
55
+ const cloudwatchlogs = new AWS.CloudWatchLogs({ apiVersion: '2014-03-28', region, ...options });
56
+ await cloudwatchlogs.deleteLogGroup({ logGroupName }).promise();
57
+ return;
58
+ }
59
+ catch (error) {
60
+ if (error.code === 'ResourceNotFoundException') {
61
+ // The log group doesn't exist
62
+ return;
63
+ }
64
+ if (error.code === 'OperationAbortedException') {
65
+ if (retryCount > 0) {
66
+ retryCount--;
67
+ await new Promise(resolve => setTimeout(resolve, delay));
68
+ continue;
69
+ }
70
+ else {
71
+ // The log group is still being deleted by another execution but we are out of retries
72
+ throw new Error('Out of attempts to delete a logGroup');
73
+ }
74
+ }
75
+ throw error;
76
+ }
77
+ } while (true); // exit happens on retry count check
78
+ }
79
+ /**
80
+ * Puts or deletes a retention policy on a log group.
81
+ *
82
+ * @param logGroupName the name of the log group to create
83
+ * @param region the region of the log group
84
+ * @param options CloudWatch API SDK options.
85
+ * @param retentionInDays the number of days to retain the log events in the specified log group.
86
+ */
87
+ async function setRetentionPolicy(logGroupName, region, options, retentionInDays) {
88
+ // The same as in createLogGroupSafe(), here we could end up with the race
89
+ // condition where a log group is either already being created or its retention
90
+ // policy is being updated. This would result in an OperationAbortedException,
91
+ // which we will try to catch and retry the command a number of times before failing
92
+ let retryCount = options?.maxRetries == undefined ? 10 : options.maxRetries;
93
+ const delay = options?.retryOptions?.base == undefined ? 10 : options.retryOptions.base;
94
+ do {
95
+ try {
96
+ const cloudwatchlogs = new AWS.CloudWatchLogs({ apiVersion: '2014-03-28', region, ...options });
97
+ if (!retentionInDays) {
98
+ await cloudwatchlogs.deleteRetentionPolicy({ logGroupName }).promise();
99
+ }
100
+ else {
101
+ await cloudwatchlogs.putRetentionPolicy({ logGroupName, retentionInDays }).promise();
102
+ }
103
+ return;
104
+ }
105
+ catch (error) {
106
+ if (error.code === 'OperationAbortedException') {
107
+ if (retryCount > 0) {
108
+ retryCount--;
109
+ await new Promise(resolve => setTimeout(resolve, delay));
110
+ continue;
111
+ }
112
+ else {
113
+ // The log group is still being created by another execution but we are out of retries
114
+ throw new Error('Out of attempts to create a logGroup');
115
+ }
116
+ }
117
+ throw error;
118
+ }
119
+ } while (true); // exit happens on retry count check
120
+ }
121
+ async function handler(event, context) {
122
+ try {
123
+ console.log(JSON.stringify({ ...event, ResponseURL: '...' }));
124
+ // The target log group
125
+ const logGroupName = event.ResourceProperties.LogGroupName;
126
+ // The region of the target log group
127
+ const logGroupRegion = event.ResourceProperties.LogGroupRegion;
128
+ // Parse to AWS SDK retry options
129
+ const retryOptions = parseRetryOptions(event.ResourceProperties.SdkRetry);
130
+ if (event.RequestType === 'Create' || event.RequestType === 'Update') {
131
+ // Act on the target log group
132
+ await createLogGroupSafe(logGroupName, logGroupRegion, retryOptions);
133
+ await setRetentionPolicy(logGroupName, logGroupRegion, retryOptions, parseInt(event.ResourceProperties.RetentionInDays, 10));
134
+ if (event.RequestType === 'Create') {
135
+ // Set a retention policy of 1 day on the logs of this very function.
136
+ // Due to the async nature of the log group creation, the log group for this function might
137
+ // still be not created yet at this point. Therefore we attempt to create it.
138
+ // In case it is being created, createLogGroupSafe will handle the conflict.
139
+ const region = process.env.AWS_REGION;
140
+ await createLogGroupSafe(`/aws/lambda/${context.functionName}`, region, retryOptions);
141
+ // If createLogGroupSafe fails, the log group is not created even after multiple attempts.
142
+ // In this case we have nothing to set the retention policy on but an exception will skip
143
+ // the next line.
144
+ await setRetentionPolicy(`/aws/lambda/${context.functionName}`, region, retryOptions, 1);
145
+ }
146
+ }
147
+ //When the requestType is delete, delete the log group if the removal policy is delete
148
+ if (event.RequestType === 'Delete' && event.ResourceProperties.RemovalPolicy === 'destroy') {
149
+ await deleteLogGroup(logGroupName, logGroupRegion, retryOptions);
150
+ //else retain the log group
151
+ }
152
+ await respond('SUCCESS', 'OK', logGroupName);
153
+ }
154
+ catch (e) {
155
+ console.log(e);
156
+ await respond('FAILED', e.message, event.ResourceProperties.LogGroupName);
157
+ }
158
+ function respond(responseStatus, reason, physicalResourceId) {
159
+ const responseBody = JSON.stringify({
160
+ Status: responseStatus,
161
+ Reason: reason,
162
+ PhysicalResourceId: physicalResourceId,
163
+ StackId: event.StackId,
164
+ RequestId: event.RequestId,
165
+ LogicalResourceId: event.LogicalResourceId,
166
+ Data: {
167
+ // Add log group name as part of the response so that it's available via Fn::GetAtt
168
+ LogGroupName: event.ResourceProperties.LogGroupName,
169
+ },
170
+ });
171
+ console.log('Responding', responseBody);
172
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
173
+ const parsedUrl = require('url').parse(event.ResponseURL);
174
+ const requestOptions = {
175
+ hostname: parsedUrl.hostname,
176
+ path: parsedUrl.path,
177
+ method: 'PUT',
178
+ headers: {
179
+ 'content-type': '',
180
+ 'content-length': Buffer.byteLength(responseBody, 'utf8'),
181
+ },
182
+ };
183
+ return new Promise((resolve, reject) => {
184
+ try {
185
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
186
+ const request = require('https').request(requestOptions, resolve);
187
+ request.on('error', reject);
188
+ request.write(responseBody);
189
+ request.end();
190
+ }
191
+ catch (e) {
192
+ reject(e);
193
+ }
194
+ });
195
+ }
196
+ function parseRetryOptions(rawOptions) {
197
+ const retryOptions = {};
198
+ if (rawOptions) {
199
+ if (rawOptions.maxRetries) {
200
+ retryOptions.maxRetries = parseInt(rawOptions.maxRetries, 10);
201
+ }
202
+ if (rawOptions.base) {
203
+ retryOptions.retryOptions = {
204
+ base: parseInt(rawOptions.base, 10),
205
+ };
206
+ }
207
+ }
208
+ return retryOptions;
209
+ }
210
+ }
211
+ exports.handler = handler;
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCOzs7QUFFL0IsNkRBQTZEO0FBQzdELCtCQUErQjtBQVMvQjs7Ozs7O0dBTUc7QUFDSCxLQUFLLFVBQVUsa0JBQWtCLENBQUMsWUFBb0IsRUFBRSxNQUFlLEVBQUUsT0FBeUI7SUFDaEcsNEVBQTRFO0lBQzVFLDRFQUE0RTtJQUM1RSw2RUFBNkU7SUFDN0UsNEVBQTRFO0lBQzVFLG1DQUFtQztJQUNuQyx1REFBdUQ7SUFDdkQsSUFBSSxVQUFVLEdBQUcsT0FBTyxFQUFFLFVBQVUsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUM1RSxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDeEYsR0FBRztRQUNELElBQUk7WUFDRixNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDaEcsTUFBTSxjQUFjLENBQUMsY0FBYyxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoRSxPQUFPO1NBQ1I7UUFBQyxPQUFPLEtBQVUsRUFBRTtZQUNuQixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssZ0NBQWdDLEVBQUU7Z0JBQ25ELDJEQUEyRDtnQkFDM0QsT0FBTzthQUNSO1lBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLDJCQUEyQixFQUFFO2dCQUM5QyxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUU7b0JBQ2xCLFVBQVUsRUFB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Q2xFLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUM1QixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDZjtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNYO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUyxpQkFBaUIsQ0FBQyxVQUFlO1FBQ3hDLE1BQU0sWUFBWSxHQUFvQixFQUFFLENBQUM7UUFDekMsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLFVBQVUsQ0FBQyxVQUFVLEVBQUU7Z0JBQ3pCLFlBQVksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDL0Q7WUFDRCxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUU7Z0JBQ25CLFlBQVksQ0FBQyxZQUFZLEdBQUc7b0JBQzFCLElBQUksRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7aUJBQ3BDLENBQUM7YUFDSDtTQUNGO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztBQUNILENBQUM7QUFwR0QsMEJBb0dDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgKiBhcyBBV1MgZnJvbSAnYXdzLXNkayc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgdHlwZSB7IFJldHJ5RGVsYXlPcHRpb25zIH0gZnJvbSAnYXdzLXNkay9saWIvY29uZmlnLWJhc2UnO1xuXG5pbnRlcmZhY2UgU2RrUmV0cnlPcHRpb25zIHtcbiAgbWF4UmV0cmllcz86IG51bWJlcjtcbiAgcmV0cnlPcHRpb25zPzogUmV0cnlEZWxheU9wdGlvbnM7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGxvZyBncm91cCBhbmQgZG9lc24ndCB0aHJvdyBpZiBpdCBleGlzdHMuXG4gKlxuICogQHBhcmFtIGxvZ0dyb3VwTmFtZSB0aGUgbmFtZSBvZiB0aGUgbG9nIGdyb3VwIHRvIGNyZWF0ZS5cbiAqIEBwYXJhbSByZWdpb24gdG8gY3JlYXRlIHRoZSBsb2cgZ3JvdXAgaW5cbiAqIEBwYXJhbSBvcHRpb25zIENsb3VkV2F0Y2ggQVBJIFNESyBvcHRpb25zLlxuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVMb2dHcm91cFNhZmUobG9nR3JvdXBOYW1lOiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgb3B0aW9ucz86IFNka1JldHJ5T3B0aW9ucykge1xuICAvLyBJZiB3ZSBzZXQgdGhlIGxvZyByZXRlbnRpb24gZm9yIGEgbGFtYmRhLCB0aGVuIGR1ZSB0byB0aGUgYXN5bmMgbmF0dXJlIG9mXG4gIC8vIExhbWJkYSBsb2dnaW5nIHRoZXJlIGNvdWxkIGJlIGEgcmFjZSBjb25kaXRpb24gd2hlbiB0aGUgc2FtZSBsb2cgZ3JvdXAgaXNcbiAgLy8gYWxyZWFkeSBiZWluZyBjcmVhdGVkIGJ5IHRoZSBsYW1iZGEgZXhlY3V0aW9uLiBUaGlzIGNhbiBzb21ldGltZSByZXN1bHQgaW5cbiAgLy8gYW4gZXJyb3IgXCJPcGVyYXRpb25BYm9ydGVkRXhjZXB0aW9uOiBBIGNvbmZsaWN0aW5nIG9wZXJhdGlvbiBpcyBjdXJyZW50bHlcbiAgLy8gaW4gcHJvZ3Jlc3MuLi5QbGVhc2UgdHJ5IGFnYWluLlwiXG4gIC8vIFRvIGF2b2lkIGFuIGVycm9yLCB3ZSBkbyBhcyByZXF1ZXN0ZWQgYW5kIHRyeSBhZ2Fpbi5cbiAgbGV0IHJldHJ5Q291bnQgPSBvcHRpb25zPy5tYXhSZXRyaWVzID09IHVuZGVmaW5lZCA/IDEwIDogb3B0aW9ucy5tYXhSZXRyaWVzO1xuICBjb25zdCBkZWxheSA9IG9wdGlvbnM/LnJldHJ5T3B0aW9ucz8uYmFzZSA9PSB1bmRlZmluZWQgPyAxMCA6IG9wdGlvbnMucmV0cnlPcHRpb25zLmJhc2U7XG4gIGRvIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2xvdWR3YXRjaGxvZ3MgPSBuZXcgQVdTLkNsb3VkV2F0Y2hMb2dzKHsgYXBpVmVyc2lvbjogJzIwMTQtMDMtMjgnLCByZWdpb24sIC4uLm9wdGlvbnMgfSk7XG4gICAgICBhd2FpdCBjbG91ZHdhdGNobG9ncy5jcmVhdGVMb2dHcm91cCh7IGxvZ0dyb3VwTmFtZSB9KS5wcm9taXNlKCk7XG4gICAgICByZXR1cm47XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgaWYgKGVycm9yLmNvZGUgPT09ICdSZXNvdXJjZUFscmVhZHlFeGlzdHNFeGNlcHRpb24nKSB7XG4gICAgICAgIC8vIFRoZSBsb2cgZ3JvdXAgaXMgYWxyZWFkeSBjcmVhdGVkIGJ5IHRoZSBsYW1iZGEgZXhlY3V0aW9uXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChlcnJvci5jb2RlID09PSAnT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgaWYgKHJldHJ5Q291bnQgPiAwKSB7XG4gICAgICAgICAgcmV0cnlDb3VudC0tO1xuICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkZWxheSkpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFRoZSBsb2cgZ3JvdXAgaXMgc3RpbGwgYmVpbmcgY3JlYXRlZCBieSBhbm90aGVyIGV4ZWN1dGlvbiBidXQgd2UgYXJlIG91dCBvZiByZXRyaWVzXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPdXQgb2YgYXR0ZW1wdHMgdG8gY3JlYXRlIGEgbG9nR3JvdXAnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9IHdoaWxlICh0cnVlKTsgLy8gZXhpdCBoYXBwZW5zIG9uIHJldHJ5IGNvdW50IGNoZWNrXG59XG5cbi8vZGVsZXRlIGEgbG9nIGdyb3VwXG5hc3luYyBmdW5jdGlvbiBkZWxldGVMb2dHcm91cChsb2dHcm91cE5hbWU6IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBvcHRpb25zPzogU2RrUmV0cnlPcHRpb25zKSB7XG4gIGxldCByZXRyeUNvdW50ID0gb3B0aW9ucz8ubWF4UmV0cmllcyA9PSB1bmRlZmluZWQgPyAxMCA6IG9wdGlvbnMubWF4UmV0cmllcztcbiAgY29uc3QgZGVsYXkgPSBvcHRpb25zPy5yZXRyeU9wdGlvbnM/LmJhc2UgPT0gdW5kZWZpbmVkID8gMTAgOiBvcHRpb25zLnJldHJ5T3B0aW9ucy5iYXNlO1xuICBkbyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNsb3Vkd2F0Y2hsb2dzID0gbmV3IEFXUy5DbG91ZFdhdGNoTG9ncyh7IGFwaVZlcnNpb246ICcyMDE0LTAzLTI4JywgcmVnaW9uLCAuLi5vcHRpb25zIH0pO1xuICAgICAgYXdhaXQgY2xvdWR3YXRjaGxvZ3MuZGVsZXRlTG9nR3JvdXAoeyBsb2dHcm91cE5hbWUgfSkucHJvbWlzZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmIChlcnJvci5jb2RlID09PSAnUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgLy8gVGhlIGxvZyBncm91cCBkb2Vzbid0IGV4aXN0XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChlcnJvci5jb2RlID09PSAnT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgaWYgKHJldHJ5Q291bnQgPiAwKSB7XG4gICAgICAgICAgcmV0cnlDb3VudC0tO1xuICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkZWxheSkpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFRoZSBsb2cgZ3JvdXAgaXMgc3RpbGwgYmVpbmcgZGVsZXRlZCBieSBhbm90aGVyIGV4ZWN1dGlvbiBidXQgd2UgYXJlIG91dCBvZiByZXRyaWVzXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPdXQgb2YgYXR0ZW1wdHMgdG8gZGVsZXRlIGEgbG9nR3JvdXAnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9IHdoaWxlICh0cnVlKTsgLy8gZXhpdCBoYXBwZW5zIG9uIHJldHJ5IGNvdW50IGNoZWNrXG59XG5cbi8qKlxuICogUHV0cyBvciBkZWxldGVzIGEgcmV0ZW50aW9uIHBvbGljeSBvbiBhIGxvZyBncm91cC5cbiAqXG4gKiBAcGFyYW0gbG9nR3JvdXBOYW1lIHRoZSBuYW1lIG9mIHRoZSBsb2cgZ3JvdXAgdG8gY3JlYXRlXG4gKiBAcGFyYW0gcmVnaW9uIHRoZSByZWdpb24gb2YgdGhlIGxvZyBncm91cFxuICogQHBhcmFtIG9wdGlvbnMgQ2xvdWRXYXRjaCBBUEkgU0RLIG9wdGlvbnMuXG4gKiBAcGFyYW0gcmV0ZW50aW9uSW5EYXlzIHRoZSBudW1iZXIgb2YgZGF5cyB0byByZXRhaW4gdGhlIGxvZyBldmVudHMgaW4gdGhlIHNwZWNpZmllZCBsb2cgZ3JvdXAuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHNldFJldGVudGlvblBvbGljeShsb2dHcm91cE5hbWU6IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBvcHRpb25zPzogU2RrUmV0cnlPcHRpb25zLCByZXRlbnRpb25JbkRheXM/OiBudW1iZXIpIHtcbiAgLy8gVGhlIHNhbWUgYXMgaW4gY3JlYXRlTG9nR3JvdXBTYWZlKCksIGhlcmUgd2UgY291bGQgZW5kIHVwIHdpdGggdGhlIHJhY2VcbiAgLy8gY29uZGl0aW9uIHdoZXJlIGEgbG9nIGdyb3VwIGlzIGVpdGhlciBhbHJlYWR5IGJlaW5nIGNyZWF0ZWQgb3IgaXRzIHJldGVudGlvblxuICAvLyBwb2xpY3kgaXMgYmVpbmcgdXBkYXRlZC4gVGhpcyB3b3VsZCByZXN1bHQgaW4gYW4gT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvbixcbiAgLy8gd2hpY2ggd2Ugd2lsbCB0cnkgdG8gY2F0Y2ggYW5kIHJldHJ5IHRoZSBjb21tYW5kIGEgbnVtYmVyIG9mIHRpbWVzIGJlZm9yZSBmYWlsaW5nXG4gIGxldCByZXRyeUNvdW50ID0gb3B0aW9ucz8ubWF4UmV0cmllcyA9PSB1bmRlZmluZWQgPyAxMCA6IG9wdGlvbnMubWF4UmV0cmllcztcbiAgY29uc3QgZGVsYXkgPSBvcHRpb25zPy5yZXRyeU9wdGlvbnM/LmJhc2UgPT0gdW5kZWZpbmVkID8gMTAgOiBvcHRpb25zLnJldHJ5T3B0aW9ucy5iYXNlO1xuICBkbyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNsb3Vkd2F0Y2hsb2dzID0gbmV3IEFXUy5DbG91ZFdhdGNoTG9ncyh7IGFwaVZlcnNpb246ICcyMDE0LTAzLTI4JywgcmVnaW9uLCAuLi5vcHRpb25zIH0pO1xuICAgICAgaWYgKCFyZXRlbnRpb25JbkRheXMpIHtcbiAgICAgICAgYXdhaXQgY2xvdWR3YXRjaGxvZ3MuZGVsZXRlUmV0ZW50aW9uUG9saWN5KHsgbG9nR3JvdXBOYW1lIH0pLnByb21pc2UoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IGNsb3Vkd2F0Y2hsb2dzLnB1dFJldGVudGlvblBvbGljeSh7IGxvZ0dyb3VwTmFtZSwgcmV0ZW50aW9uSW5EYXlzIH0pLnByb21pc2UoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcblxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmIChlcnJvci5jb2RlID09PSAnT3BlcmF0aW9uQWJvcnRlZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgaWYgKHJldHJ5Q291bnQgPiAwKSB7XG4gICAgICAgICAgcmV0cnlDb3VudC0tO1xuICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkZWxheSkpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFRoZSBsb2cgZ3JvdXAgaXMgc3RpbGwgYmVpbmcgY3JlYXRlZCBieSBhbm90aGVyIGV4ZWN1dGlvbiBidXQgd2UgYXJlIG91dCBvZiByZXRyaWVzXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPdXQgb2YgYXR0ZW1wdHMgdG8gY3JlYXRlIGEgbG9nR3JvdXAnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9IHdoaWxlICh0cnVlKTsgLy8gZXhpdCBoYXBwZW5zIG9uIHJldHJ5IGNvdW50IGNoZWNrXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50OiBBV1NMYW1iZGEuQ2xvdWRGb3JtYXRpb25DdXN0b21SZXNvdXJjZUV2ZW50LCBjb250ZXh0OiBBV1NMYW1iZGEuQ29udGV4dCkge1xuICB0cnkge1xuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHsgLi4uZXZlbnQsIFJlc3BvbnNlVVJMOiAnLi4uJyB9KSk7XG5cbiAgICAvLyBUaGUgdGFyZ2V0IGxvZyBncm91cFxuICAgIGNvbnN0IGxvZ0dyb3VwTmFtZSA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5Mb2dHcm91cE5hbWU7XG5cbiAgICAvLyBUaGUgcmVnaW9uIG9mIHRoZSB0YXJnZXQgbG9nIGdyb3VwXG4gICAgY29uc3QgbG9nR3JvdXBSZWdpb24gPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuTG9nR3JvdXBSZWdpb247XG5cbiAgICAvLyBQYXJzZSB0byBBV1MgU0RLIHJldHJ5IG9wdGlvbnNcbiAgICBjb25zdCByZXRyeU9wdGlvbnMgPSBwYXJzZVJldHJ5T3B0aW9ucyhldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuU2RrUmV0cnkpO1xuXG4gICAgaWYgKGV2ZW50LlJlcXVlc3RUeXBlID09PSAnQ3JlYXRlJyB8fCBldmVudC5SZXF1ZXN0VHlwZSA9PT0gJ1VwZGF0ZScpIHtcbiAgICAgIC8vIEFjdCBvbiB0aGUgdGFyZ2V0IGxvZyBncm91cFxuICAgICAgYXdhaXQgY3JlYXRlTG9nR3JvdXBTYWZlKGxvZ0dyb3VwTmFtZSwgbG9nR3JvdXBSZWdpb24sIHJldHJ5T3B0aW9ucyk7XG4gICAgICBhd2FpdCBzZXRSZXRlbnRpb25Qb2xpY3kobG9nR3JvdXBOYW1lLCBsb2dHcm91cFJlZ2lvbiwgcmV0cnlPcHRpb25zLCBwYXJzZUludChldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuUmV0ZW50aW9uSW5EYXlzLCAxMCkpO1xuXG4gICAgICBpZiAoZXZlbnQuUmVxdWVzdFR5cGUgPT09ICdDcmVhdGUnKSB7XG4gICAgICAgIC8vIFNldCBhIHJldGVudGlvbiBwb2xpY3kgb2YgMSBkYXkgb24gdGhlIGxvZ3Mgb2YgdGhpcyB2ZXJ5IGZ1bmN0aW9uLlxuICAgICAgICAvLyBEdWUgdG8gdGhlIGFzeW5jIG5hdHVyZSBvZiB0aGUgbG9nIGdyb3VwIGNyZWF0aW9uLCB0aGUgbG9nIGdyb3VwIGZvciB0aGlzIGZ1bmN0aW9uIG1pZ2h0XG4gICAgICAgIC8vIHN0aWxsIGJlIG5vdCBjcmVhdGVkIHlldCBhdCB0aGlzIHBvaW50LiBUaGVyZWZvcmUgd2UgYXR0ZW1wdCB0byBjcmVhdGUgaXQuXG4gICAgICAgIC8vIEluIGNhc2UgaXQgaXMgYmVpbmcgY3JlYXRlZCwgY3JlYXRlTG9nR3JvdXBTYWZlIHdpbGwgaGFuZGxlIHRoZSBjb25mbGljdC5cbiAgICAgICAgY29uc3QgcmVnaW9uID0gcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTjtcbiAgICAgICAgYXdhaXQgY3JlYXRlTG9nR3JvdXBTYWZlKGAvYXdzL2xhbWJkYS8ke2NvbnRleHQuZnVuY3Rpb25OYW1lfWAsIHJlZ2lvbiwgcmV0cnlPcHRpb25zKTtcbiAgICAgICAgLy8gSWYgY3JlYXRlTG9nR3JvdXBTYWZlIGZhaWxzLCB0aGUgbG9nIGdyb3VwIGlzIG5vdCBjcmVhdGVkIGV2ZW4gYWZ0ZXIgbXVsdGlwbGUgYXR0ZW1wdHMuXG4gICAgICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBoYXZlIG5vdGhpbmcgdG8gc2V0IHRoZSByZXRlbnRpb24gcG9saWN5IG9uIGJ1dCBhbiBleGNlcHRpb24gd2lsbCBza2lwXG4gICAgICAgIC8vIHRoZSBuZXh0IGxpbmUuXG4gICAgICAgIGF3YWl0IHNldFJldGVudGlvblBvbGljeShgL2F3cy9sYW1iZGEvJHtjb250ZXh0LmZ1bmN0aW9uTmFtZX1gLCByZWdpb24sIHJldHJ5T3B0aW9ucywgMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9XaGVuIHRoZSByZXF1ZXN0VHlwZSBpcyBkZWxldGUsIGRlbGV0ZSB0aGUgbG9nIGdyb3VwIGlmIHRoZSByZW1vdmFsIHBvbGljeSBpcyBkZWxldGVcbiAgICBpZiAoZXZlbnQuUmVxdWVzdFR5cGUgPT09ICdEZWxldGUnICYmIGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5SZW1vdmFsUG9saWN5ID09PSAnZGVzdHJveScpIHtcbiAgICAgIGF3YWl0IGRlbGV0ZUxvZ0dyb3VwKGxvZ0dyb3VwTmFtZSwgbG9nR3JvdXBSZWdpb24sIHJldHJ5T3B0aW9ucyk7XG4gICAgICAvL2Vsc2UgcmV0YWluIHRoZSBsb2cgZ3JvdXBcbiAgICB9XG5cbiAgICBhd2FpdCByZXNwb25kKCdTVUNDRVNTJywgJ09LJywgbG9nR3JvdXBOYW1lKTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgY29uc29sZS5sb2coZSk7XG5cbiAgICBhd2FpdCByZXNwb25kKCdGQUlMRUQnLCBlLm1lc3NhZ2UsIGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5Mb2dHcm91cE5hbWUpO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVzcG9uZChyZXNwb25zZVN0YXR1czogc3RyaW5nLCByZWFzb246IHN0cmluZywgcGh5c2ljYWxSZXNvdXJjZUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCByZXNwb25zZUJvZHkgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBTdGF0dXM6IHJlc3BvbnNlU3RhdHVzLFxuICAgICAgUmVhc29uOiByZWFzb24sXG4gICAgICBQaHlzaWNhbFJlc291cmNlSWQ6IHBoeXNpY2FsUmVzb3VyY2VJZCxcbiAgICAgIFN0YWNrSWQ6IGV2ZW50LlN0YWNrSWQsXG4gICAgICBSZXF1ZXN0SWQ6IGV2ZW50LlJlcXVlc3RJZCxcbiAgICAgIExvZ2ljYWxSZXNvdXJjZUlkOiBldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCxcbiAgICAgIERhdGE6IHtcbiAgICAgICAgLy8gQWRkIGxvZyBncm91cCBuYW1lIGFzIHBhcnQgb2YgdGhlIHJlc3BvbnNlIHNvIHRoYXQgaXQncyBhdmFpbGFibGUgdmlhIEZuOjpHZXRBdHRcbiAgICAgICAgTG9nR3JvdXBOYW1lOiBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuTG9nR3JvdXBOYW1lLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnNvbGUubG9nKCdSZXNwb25kaW5nJywgcmVzcG9uc2VCb2R5KTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgY29uc3QgcGFyc2VkVXJsID0gcmVxdWlyZSgndXJsJykucGFyc2UoZXZlbnQuUmVzcG9uc2VVUkwpO1xuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgaG9zdG5hbWU6IHBhcnNlZFVybC5ob3N0bmFtZSxcbiAgICAgIHBhdGg6IHBhcnNlZFVybC5wYXRoLFxuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ2NvbnRlbnQtdHlwZSc6ICcnLFxuICAgICAgICAnY29udGVudC1sZW5ndGgnOiBCdWZmZXIuYnl0ZUxlbmd0aChyZXNwb25zZUJvZHksICd1dGY4JyksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHJlcXVpcmUoJ2h0dHBzJykucmVxdWVzdChyZXF1ZXN0T3B0aW9ucywgcmVzb2x2ZSk7XG4gICAgICAgIHJlcXVlc3Qub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgICAgcmVxdWVzdC53cml0ZShyZXNwb25zZUJvZHkpO1xuICAgICAgICByZXF1ZXN0LmVuZCgpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBwYXJzZVJldHJ5T3B0aW9ucyhyYXdPcHRpb25zOiBhbnkpOiBTZGtSZXRyeU9wdGlvbnMge1xuICAgIGNvbnN0IHJldHJ5T3B0aW9uczogU2RrUmV0cnlPcHRpb25zID0ge307XG4gICAgaWYgKHJhd09wdGlvbnMpIHtcbiAgICAgIGlmIChyYXdPcHRpb25zLm1heFJldHJpZXMpIHtcbiAgICAgICAgcmV0cnlPcHRpb25zLm1heFJldHJpZXMgPSBwYXJzZUludChyYXdPcHRpb25zLm1heFJldHJpZXMsIDEwKTtcbiAgICAgIH1cbiAgICAgIGlmIChyYXdPcHRpb25zLmJhc2UpIHtcbiAgICAgICAgcmV0cnlPcHRpb25zLnJldHJ5T3B0aW9ucyA9IHtcbiAgICAgICAgICBiYXNlOiBwYXJzZUludChyYXdPcHRpb25zLmJhc2UsIDEwKSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldHJ5T3B0aW9ucztcbiAgfVxufVxuIl19
@@ -17,7 +17,7 @@
17
17
  "validateOnSynth": false,
18
18
  "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}",
19
19
  "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}",
20
- "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/dcbeac0094dd0ae172168d3971b5180551c647916dea563ec56d91922f666488.json",
20
+ "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/4b8aa8fe526cd8c3dcdff18593d6d06d25d71cf5da0e879a9622f877d3a9394e.json",
21
21
  "requiresBootstrapStackVersion": 6,
22
22
  "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version",
23
23
  "additionalDependencies": [
package/_temp/tree.json CHANGED
@@ -21,7 +21,7 @@
21
21
  "path": "TestStack/targetFunction/ServiceRole/ImportServiceRole",
22
22
  "constructInfo": {
23
23
  "fqn": "aws-cdk-lib.Resource",
24
- "version": "2.72.1"
24
+ "version": "2.73.0"
25
25
  }
26
26
  },
27
27
  "Resource": {
@@ -60,13 +60,13 @@
60
60
  },
61
61
  "constructInfo": {
62
62
  "fqn": "aws-cdk-lib.aws_iam.CfnRole",
63
- "version": "2.72.1"
63
+ "version": "2.73.0"
64
64
  }
65
65
  }
66
66
  },
67
67
  "constructInfo": {
68
68
  "fqn": "aws-cdk-lib.aws_iam.Role",
69
- "version": "2.72.1"
69
+ "version": "2.73.0"
70
70
  }
71
71
  },
72
72
  "Resource": {
@@ -91,13 +91,13 @@
91
91
  },
92
92
  "constructInfo": {
93
93
  "fqn": "aws-cdk-lib.aws_lambda.CfnFunction",
94
- "version": "2.72.1"
94
+ "version": "2.73.0"
95
95
  }
96
96
  }
97
97
  },
98
98
  "constructInfo": {
99
99
  "fqn": "aws-cdk-lib.aws_lambda.Function",
100
- "version": "2.72.1"
100
+ "version": "2.73.0"
101
101
  }
102
102
  },
103
103
  "LambdaSubminute": {
@@ -117,7 +117,7 @@
117
117
  "path": "TestStack/LambdaSubminute/IteratorLambda/IteratorLambdaRole/ImportIteratorLambdaRole",
118
118
  "constructInfo": {
119
119
  "fqn": "aws-cdk-lib.Resource",
120
- "version": "2.72.1"
120
+ "version": "2.73.0"
121
121
  }
122
122
  },
123
123
  "Resource": {
@@ -182,7 +182,7 @@
182
182
  },
183
183
  "constructInfo": {
184
184
  "fqn": "aws-cdk-lib.aws_iam.CfnRole",
185
- "version": "2.72.1"
185
+ "version": "2.73.0"
186
186
  }
187
187
  },
188
188
  "DefaultPolicy": {
@@ -229,19 +229,19 @@
229
229
  },
230
230
  "constructInfo": {
231
231
  "fqn": "aws-cdk-lib.aws_iam.CfnPolicy",
232
- "version": "2.72.1"
232
+ "version": "2.73.0"
233
233
  }
234
234
  }
235
235
  },
236
236
  "constructInfo": {
237
237
  "fqn": "aws-cdk-lib.aws_iam.Policy",
238
- "version": "2.72.1"
238
+ "version": "2.73.0"
239
239
  }
240
240
  }
241
241
  },
242
242
  "constructInfo": {
243
243
  "fqn": "aws-cdk-lib.aws_iam.Role",
244
- "version": "2.72.1"
244
+ "version": "2.73.0"
245
245
  }
246
246
  },
247
247
  "Iterator": {
@@ -257,7 +257,7 @@
257
257
  "path": "TestStack/LambdaSubminute/IteratorLambda/Iterator/Code/Stage",
258
258
  "constructInfo": {
259
259
  "fqn": "aws-cdk-lib.AssetStaging",
260
- "version": "2.72.1"
260
+ "version": "2.73.0"
261
261
  }
262
262
  },
263
263
  "AssetBucket": {
@@ -265,13 +265,13 @@
265
265
  "path": "TestStack/LambdaSubminute/IteratorLambda/Iterator/Code/AssetBucket",
266
266
  "constructInfo": {
267
267
  "fqn": "aws-cdk-lib.aws_s3.BucketBase",
268
- "version": "2.72.1"
268
+ "version": "2.73.0"
269
269
  }
270
270
  }
271
271
  },
272
272
  "constructInfo": {
273
273
  "fqn": "aws-cdk-lib.aws_s3_assets.Asset",
274
- "version": "2.72.1"
274
+ "version": "2.73.0"
275
275
  }
276
276
  },
277
277
  "Resource": {
@@ -313,7 +313,7 @@
313
313
  },
314
314
  "constructInfo": {
315
315
  "fqn": "aws-cdk-lib.aws_lambda.CfnFunction",
316
- "version": "2.72.1"
316
+ "version": "2.73.0"
317
317
  }
318
318
  },
319
319
  "LogRetention": {
@@ -325,13 +325,13 @@
325
325
  "path": "TestStack/LambdaSubminute/IteratorLambda/Iterator/LogRetention/Resource",
326
326
  "constructInfo": {
327
327
  "fqn": "aws-cdk-lib.CfnResource",
328
- "version": "2.72.1"
328
+ "version": "2.73.0"
329
329
  }
330
330
  }
331
331
  },
332
332
  "constructInfo": {
333
333
  "fqn": "aws-cdk-lib.aws_logs.LogRetention",
334
- "version": "2.72.1"
334
+ "version": "2.73.0"
335
335
  }
336
336
  },
337
337
  "LogGroup": {
@@ -339,19 +339,19 @@
339
339
  "path": "TestStack/LambdaSubminute/IteratorLambda/Iterator/LogGroup",
340
340
  "constructInfo": {
341
341
  "fqn": "aws-cdk-lib.Resource",
342
- "version": "2.72.1"
342
+ "version": "2.73.0"
343
343
  }
344
344
  }
345
345
  },
346
346
  "constructInfo": {
347
347
  "fqn": "aws-cdk-lib.aws_lambda_nodejs.NodejsFunction",
348
- "version": "2.72.1"
348
+ "version": "2.73.0"
349
349
  }
350
350
  }
351
351
  },
352
352
  "constructInfo": {
353
353
  "fqn": "constructs.Construct",
354
- "version": "10.1.302"
354
+ "version": "10.1.304"
355
355
  }
356
356
  },
357
357
  "SubminuteStateMachine": {
@@ -367,7 +367,7 @@
367
367
  "path": "TestStack/LambdaSubminute/SubminuteStateMachine/StepFunctionExecutionRole/ImportStepFunctionExecutionRole",
368
368
  "constructInfo": {
369
369
  "fqn": "aws-cdk-lib.Resource",
370
- "version": "2.72.1"
370
+ "version": "2.73.0"
371
371
  }
372
372
  },
373
373
  "Resource": {
@@ -401,7 +401,7 @@
401
401
  },
402
402
  "constructInfo": {
403
403
  "fqn": "aws-cdk-lib.aws_iam.CfnRole",
404
- "version": "2.72.1"
404
+ "version": "2.73.0"
405
405
  }
406
406
  },
407
407
  "DefaultPolicy": {
@@ -474,19 +474,19 @@
474
474
  },
475
475
  "constructInfo": {
476
476
  "fqn": "aws-cdk-lib.aws_iam.CfnPolicy",
477
- "version": "2.72.1"
477
+ "version": "2.73.0"
478
478
  }
479
479
  }
480
480
  },
481
481
  "constructInfo": {
482
482
  "fqn": "aws-cdk-lib.aws_iam.Policy",
483
- "version": "2.72.1"
483
+ "version": "2.73.0"
484
484
  }
485
485
  }
486
486
  },
487
487
  "constructInfo": {
488
488
  "fqn": "aws-cdk-lib.aws_iam.Role",
489
- "version": "2.72.1"
489
+ "version": "2.73.0"
490
490
  }
491
491
  },
492
492
  "ConfigureCount": {
@@ -494,7 +494,7 @@
494
494
  "path": "TestStack/LambdaSubminute/SubminuteStateMachine/ConfigureCount",
495
495
  "constructInfo": {
496
496
  "fqn": "aws-cdk-lib.aws_stepfunctions.Pass",
497
- "version": "2.72.1"
497
+ "version": "2.73.0"
498
498
  }
499
499
  },
500
500
  "Iterator": {
@@ -502,7 +502,7 @@
502
502
  "path": "TestStack/LambdaSubminute/SubminuteStateMachine/Iterator",
503
503
  "constructInfo": {
504
504
  "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke",
505
- "version": "2.72.1"
505
+ "version": "2.73.0"
506
506
  }
507
507
  },
508
508
  "Wait for the target Lambda function finished": {
@@ -510,7 +510,7 @@
510
510
  "path": "TestStack/LambdaSubminute/SubminuteStateMachine/Wait for the target Lambda function finished",
511
511
  "constructInfo": {
512
512
  "fqn": "aws-cdk-lib.aws_stepfunctions.Wait",
513
- "version": "2.72.1"
513
+ "version": "2.73.0"
514
514
  }
515
515
  },
516
516
  "Done": {
@@ -518,7 +518,7 @@
518
518
  "path": "TestStack/LambdaSubminute/SubminuteStateMachine/Done",
519
519
  "constructInfo": {
520
520
  "fqn": "aws-cdk-lib.aws_stepfunctions.Pass",
521
- "version": "2.72.1"
521
+ "version": "2.73.0"
522
522
  }
523
523
  },
524
524
  "IsCountReached": {
@@ -526,7 +526,7 @@
526
526
  "path": "TestStack/LambdaSubminute/SubminuteStateMachine/IsCountReached",
527
527
  "constructInfo": {
528
528
  "fqn": "aws-cdk-lib.aws_stepfunctions.Choice",
529
- "version": "2.72.1"
529
+ "version": "2.73.0"
530
530
  }
531
531
  },
532
532
  "StateMachine": {
@@ -569,7 +569,7 @@
569
569
  },
570
570
  "constructInfo": {
571
571
  "fqn": "aws-cdk-lib.aws_stepfunctions.CfnStateMachine",
572
- "version": "2.72.1"
572
+ "version": "2.73.0"
573
573
  }
574
574
  },
575
575
  "EventsRole": {
@@ -581,7 +581,7 @@
581
581
  "path": "TestStack/LambdaSubminute/SubminuteStateMachine/StateMachine/EventsRole/ImportEventsRole",
582
582
  "constructInfo": {
583
583
  "fqn": "aws-cdk-lib.Resource",
584
- "version": "2.72.1"
584
+ "version": "2.73.0"
585
585
  }
586
586
  },
587
587
  "Resource": {
@@ -606,7 +606,7 @@
606
606
  },
607
607
  "constructInfo": {
608
608
  "fqn": "aws-cdk-lib.aws_iam.CfnRole",
609
- "version": "2.72.1"
609
+ "version": "2.73.0"
610
610
  }
611
611
  },
612
612
  "DefaultPolicy": {
@@ -641,31 +641,31 @@
641
641
  },
642
642
  "constructInfo": {
643
643
  "fqn": "aws-cdk-lib.aws_iam.CfnPolicy",
644
- "version": "2.72.1"
644
+ "version": "2.73.0"
645
645
  }
646
646
  }
647
647
  },
648
648
  "constructInfo": {
649
649
  "fqn": "aws-cdk-lib.aws_iam.Policy",
650
- "version": "2.72.1"
650
+ "version": "2.73.0"
651
651
  }
652
652
  }
653
653
  },
654
654
  "constructInfo": {
655
655
  "fqn": "aws-cdk-lib.aws_iam.Role",
656
- "version": "2.72.1"
656
+ "version": "2.73.0"
657
657
  }
658
658
  }
659
659
  },
660
660
  "constructInfo": {
661
661
  "fqn": "aws-cdk-lib.aws_stepfunctions.StateMachine",
662
- "version": "2.72.1"
662
+ "version": "2.73.0"
663
663
  }
664
664
  }
665
665
  },
666
666
  "constructInfo": {
667
667
  "fqn": "constructs.Construct",
668
- "version": "10.1.302"
668
+ "version": "10.1.304"
669
669
  }
670
670
  },
671
671
  "StartSubminuteStateMachine": {
@@ -714,19 +714,19 @@
714
714
  },
715
715
  "constructInfo": {
716
716
  "fqn": "aws-cdk-lib.aws_events.CfnRule",
717
- "version": "2.72.1"
717
+ "version": "2.73.0"
718
718
  }
719
719
  }
720
720
  },
721
721
  "constructInfo": {
722
722
  "fqn": "aws-cdk-lib.aws_events.Rule",
723
- "version": "2.72.1"
723
+ "version": "2.73.0"
724
724
  }
725
725
  }
726
726
  },
727
727
  "constructInfo": {
728
728
  "fqn": "constructs.Construct",
729
- "version": "10.1.302"
729
+ "version": "10.1.304"
730
730
  }
731
731
  },
732
732
  "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a": {
@@ -742,7 +742,7 @@
742
742
  "path": "TestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Code/Stage",
743
743
  "constructInfo": {
744
744
  "fqn": "aws-cdk-lib.AssetStaging",
745
- "version": "2.72.1"
745
+ "version": "2.73.0"
746
746
  }
747
747
  },
748
748
  "AssetBucket": {
@@ -750,13 +750,13 @@
750
750
  "path": "TestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Code/AssetBucket",
751
751
  "constructInfo": {
752
752
  "fqn": "aws-cdk-lib.aws_s3.BucketBase",
753
- "version": "2.72.1"
753
+ "version": "2.73.0"
754
754
  }
755
755
  }
756
756
  },
757
757
  "constructInfo": {
758
758
  "fqn": "aws-cdk-lib.aws_s3_assets.Asset",
759
- "version": "2.72.1"
759
+ "version": "2.73.0"
760
760
  }
761
761
  },
762
762
  "ServiceRole": {
@@ -768,7 +768,7 @@
768
768
  "path": "TestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/ImportServiceRole",
769
769
  "constructInfo": {
770
770
  "fqn": "aws-cdk-lib.Resource",
771
- "version": "2.72.1"
771
+ "version": "2.73.0"
772
772
  }
773
773
  },
774
774
  "Resource": {
@@ -807,7 +807,7 @@
807
807
  },
808
808
  "constructInfo": {
809
809
  "fqn": "aws-cdk-lib.aws_iam.CfnRole",
810
- "version": "2.72.1"
810
+ "version": "2.73.0"
811
811
  }
812
812
  },
813
813
  "DefaultPolicy": {
@@ -843,19 +843,19 @@
843
843
  },
844
844
  "constructInfo": {
845
845
  "fqn": "aws-cdk-lib.aws_iam.CfnPolicy",
846
- "version": "2.72.1"
846
+ "version": "2.73.0"
847
847
  }
848
848
  }
849
849
  },
850
850
  "constructInfo": {
851
851
  "fqn": "aws-cdk-lib.aws_iam.Policy",
852
- "version": "2.72.1"
852
+ "version": "2.73.0"
853
853
  }
854
854
  }
855
855
  },
856
856
  "constructInfo": {
857
857
  "fqn": "aws-cdk-lib.aws_iam.Role",
858
- "version": "2.72.1"
858
+ "version": "2.73.0"
859
859
  }
860
860
  },
861
861
  "Resource": {
@@ -863,13 +863,13 @@
863
863
  "path": "TestStack/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Resource",
864
864
  "constructInfo": {
865
865
  "fqn": "aws-cdk-lib.CfnResource",
866
- "version": "2.72.1"
866
+ "version": "2.73.0"
867
867
  }
868
868
  }
869
869
  },
870
870
  "constructInfo": {
871
871
  "fqn": "constructs.Construct",
872
- "version": "10.1.302"
872
+ "version": "10.1.304"
873
873
  }
874
874
  },
875
875
  "Service-principalMap": {
@@ -877,7 +877,7 @@
877
877
  "path": "TestStack/Service-principalMap",
878
878
  "constructInfo": {
879
879
  "fqn": "aws-cdk-lib.CfnMapping",
880
- "version": "2.72.1"
880
+ "version": "2.73.0"
881
881
  }
882
882
  },
883
883
  "BootstrapVersion": {
@@ -885,7 +885,7 @@
885
885
  "path": "TestStack/BootstrapVersion",
886
886
  "constructInfo": {
887
887
  "fqn": "aws-cdk-lib.CfnParameter",
888
- "version": "2.72.1"
888
+ "version": "2.73.0"
889
889
  }
890
890
  },
891
891
  "CheckBootstrapVersion": {
@@ -893,13 +893,13 @@
893
893
  "path": "TestStack/CheckBootstrapVersion",
894
894
  "constructInfo": {
895
895
  "fqn": "aws-cdk-lib.CfnRule",
896
- "version": "2.72.1"
896
+ "version": "2.73.0"
897
897
  }
898
898
  }
899
899
  },
900
900
  "constructInfo": {
901
901
  "fqn": "aws-cdk-lib.Stack",
902
- "version": "2.72.1"
902
+ "version": "2.73.0"
903
903
  }
904
904
  },
905
905
  "Tree": {
@@ -907,13 +907,13 @@
907
907
  "path": "Tree",
908
908
  "constructInfo": {
909
909
  "fqn": "constructs.Construct",
910
- "version": "10.1.302"
910
+ "version": "10.1.304"
911
911
  }
912
912
  }
913
913
  },
914
914
  "constructInfo": {
915
915
  "fqn": "aws-cdk-lib.App",
916
- "version": "2.72.1"
916
+ "version": "2.73.0"
917
917
  }
918
918
  }
919
919
  }
@@ -45,7 +45,7 @@ class LambdaSubminute extends constructs_1.Construct {
45
45
  }
46
46
  exports.LambdaSubminute = LambdaSubminute;
47
47
  _a = JSII_RTTI_SYMBOL_1;
48
- LambdaSubminute[_a] = { fqn: "cdk-lambda-subminute.LambdaSubminute", version: "2.0.113" };
48
+ LambdaSubminute[_a] = { fqn: "cdk-lambda-subminute.LambdaSubminute", version: "2.0.115" };
49
49
  class IteratorLambda extends constructs_1.Construct {
50
50
  constructor(scope, name, props) {
51
51
  super(scope, name);
@@ -85,7 +85,7 @@ class IteratorLambda extends constructs_1.Construct {
85
85
  }
86
86
  exports.IteratorLambda = IteratorLambda;
87
87
  _b = JSII_RTTI_SYMBOL_1;
88
- IteratorLambda[_b] = { fqn: "cdk-lambda-subminute.IteratorLambda", version: "2.0.113" };
88
+ IteratorLambda[_b] = { fqn: "cdk-lambda-subminute.IteratorLambda", version: "2.0.115" };
89
89
  class SubminuteStateMachine extends constructs_1.Construct {
90
90
  constructor(scope, id, props) {
91
91
  super(scope, id);
@@ -160,5 +160,5 @@ class SubminuteStateMachine extends constructs_1.Construct {
160
160
  }
161
161
  exports.SubminuteStateMachine = SubminuteStateMachine;
162
162
  _c = JSII_RTTI_SYMBOL_1;
163
- SubminuteStateMachine[_c] = { fqn: "cdk-lambda-subminute.SubminuteStateMachine", version: "2.0.113" };
163
+ SubminuteStateMachine[_c] = { fqn: "cdk-lambda-subminute.SubminuteStateMachine", version: "2.0.115" };
164
164
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWxhbWJkYS1zdWJtaW51dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2RrLWxhbWJkYS1zdWJtaW51dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG1DQUFtQztBQUNuQyxpREFBa0Q7QUFDbEQsMERBQTJEO0FBQzNELDJDQUEyQztBQUUzQyx1REFBcUU7QUFDckUscUVBQStEO0FBQy9ELG1EQUFxRDtBQUNyRCxxREFBcUQ7QUFDckQsNkRBQTZEO0FBQzdELDJDQUF1QztBQTRCdkMsTUFBYSxlQUFnQixTQUFRLHNCQUFTO0lBUzVDLFlBQVksTUFBaUIsRUFBRSxJQUFZLEVBQUUsS0FBMkI7UUFDdEUsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDdEcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDMUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLHFCQUFxQixDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtZQUNyRixnQkFBZ0IsRUFBRSwrQkFBK0I7WUFDakQsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksRUFBRTtZQUN0QyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDO1NBQ2hDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxlQUFlLEdBQUcscUJBQXFCLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQztRQUUxRSxNQUFNLFNBQVMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENB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QyxjQUFjLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVHLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQzlELGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7WUFDeEMsVUFBVSxFQUFFLGFBQWE7WUFDekIsSUFBSSxFQUFFLGdCQUFnQjtTQUN2QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDOztBQWJILHNEQTZFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IGV2ZW50cyA9IHJlcXVpcmUoJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnKTtcbmltcG9ydCB0YXJnZXRzID0gcmVxdWlyZSgnYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzJyk7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5cbmltcG9ydCB7IElGdW5jdGlvbiwgUnVudGltZSwgVHJhY2luZyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgTm9kZWpzRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqcyc7XG5pbXBvcnQgeyBSZXRlbnRpb25EYXlzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgc2ZuIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJztcbmltcG9ydCAqIGFzIHRhc2tzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zLXRhc2tzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYVN1Ym1pbnV0ZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBpcyBnb2luZyB0byBiZSBleGVjdXRlZCBwZXIgdGltZSB1bml0IGxlc3MgdGhhbiBvbmUgbWludXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0RnVuY3Rpb246IElGdW5jdGlvbjtcbiAgLyoqXG4gICAqIEEgcGF0dGVybiB5b3Ugd2FudCB0aGlzIHN0YXRlbWFjaGluZSB0byBiZSBleGVjdXRlZC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL1NjaGVkdWxlZEV2ZW50cy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IGNyb24oNTAvMSAxNS0xNyA/ICogKiAqKSBVVEMrMCBiZWluZyBydW4gZXZlcnkgbWludXRlIHN0YXJ0aW5nIGZyb20gMTU6MDAgUE0gdG8gMTc6MDAgUE0uXG4gICAqL1xuICByZWFkb25seSBjcm9uam9iRXhwcmVzc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIEhvdyBtYW55IHRpbWVzIHlvdSBpbnRlbnQgdG8gZXhlY3V0ZSBpbiBhIG1pbnV0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgNlxuICAgKi9cbiAgcmVhZG9ubHkgZnJlcXVlbmN5PzogbnVtYmVyO1xuICAvKipcbiAgICogU2Vjb25kcyBmb3IgYW4gaW50ZXJ2YWwsIHRoZSBwcm9kdWN0IG9mIGBmcmVxdWVuY3lgIGFuZCBgaW50ZXJ2YWxUaW1lYCBzaG91bGQgYmUgYXBwcm94aW1hZ2VseSAxIG1pbnV0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgMTBcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsVGltZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIExhbWJkYVN1Ym1pbnV0ZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgcGxheXMgdGhlIHJvbGUgb2YgdGhlIGl0ZXJhdG9yLlxuICAgKi9cbiAgcmVhZG9ubHkgaXRlcmF0b3JGdW5jdGlvbjogSUZ1bmN0aW9uO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgc3RhdGUgbWFjaGluZSB0aGF0IGV4ZWN1dGVzIHRoZSB0YXJnZXQgTGFtYmRhIGZ1bmN0aW9uIHBlciB0aW1lIHVuaXQgbGVzcyB0aGFuIG9uZSBtaW51dGUuXG4gICAqL1xuICByZWFkb25seSBzdGF0ZU1hY2hpbmVBcm46IHN0cmluZztcbiAgY29uc3RydWN0b3IocGFyZW50OiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcHM6IExhbWJkYVN1Ym1pbnV0ZVByb3BzKSB7XG4gICAgc3VwZXIocGFyZW50LCBuYW1lKTtcbiAgICBjb25zdCBpdGVyYXRvciA9IG5ldyBJdGVyYXRvckxhbWJkYSh0aGlzLCAnSXRlcmF0b3JMYW1iZGEnLCB7IHRhcmdldEZ1bmN0aW9uOiBwcm9wcy50YXJnZXRGdW5jdGlvbiB9KTtcbiAgICB0aGlzLml0ZXJhdG9yRnVuY3Rpb24gPSBpdGVyYXRvci5mdW5jdGlvbjtcbiAgICBjb25zdCBzdWJtaW51dGVTdGF0ZU1hY2hpbmUgPSBuZXcgU3VibWludXRlU3RhdGVNYWNoaW5lKHRoaXMsICdTdWJtaW51dGVTdGF0ZU1hY2hpbmUnLCB7XG4gICAgICBzdGF0ZU1hY2hpbmVOYW1lOiAnbGFtYmRhLXN1Ym1pbnV0ZS1zdGF0ZW1hY2hpbmUnLFxuICAgICAgdGFyZ2V0RnVuY3Rpb246IHByb3BzLnRhcmdldEZ1bmN0aW9uLFxuICAgICAgaXRlcmF0b3JGdW5jdGlvbjogdGhpcy5pdGVyYXRvckZ1bmN0aW9uLFxuICAgICAgaW50ZXJ2YWxUaW1lOiBwcm9wcy5pbnRlcnZhbFRpbWUgPz8gMTAsXG4gICAgICBmcmVxdWVuY3k6IHByb3BzLmZyZXF1ZW5jeSA/PyA2LFxuICAgIH0pO1xuICAgIHRoaXMuc3RhdGVNYWNoaW5lQXJuID0gc3VibWludXRlU3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm47XG5cbiAgICBjb25zdCBzdGFydFJ1bGUgPSBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ1N0YXJ0U3VibWludXRlU3RhdGVNYWNoaW5lJywge1xuICAgICAgc2NoZWR1bGU6IGV2ZW50cy5TY2hlZHVsZS5leHByZXNzaW9uKHByb3BzLmNyb25qb2JFeHByZXNzaW9uID8/ICdjcm9uKDUwLzEgMTUtMTcgPyAqICogKiknKSxcbiAgICAgIHJ1bGVOYW1lOiAnc3VibWludXRlLXN0YXRlbWFjaGluZS1sYW1iZGEtcnVsZScsXG4gICAgICBkZXNjcmlwdGlvbjogYEEgcnVsZSB0byBydW4gdGhlIHN1Ym1pbnV0ZSBzdGF0ZSBtYWNoaW5lLCBpLmUuICR7c3VibWludXRlU3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVOYW1lfWAsXG4gICAgfSk7XG4gICAgc3RhcnRSdWxlLmFkZFRhcmdldChuZXcgdGFyZ2V0cy5TZm5TdGF0ZU1hY2hpbmUoXG4gICAgICBzdWJtaW51dGVTdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lLCB7XG4gICAgICAgIGlucHV0OiBldmVudHMuUnVsZVRhcmdldElucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICAgIGl0ZXJhdG9yOiB7XG4gICAgICAgICAgICBpbmRleDogMCxcbiAgICAgICAgICAgIGNvdW50OiA2LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgfSkpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXRlcmF0b3JMYW1iZGFQcm9wcyB7XG4gIC8qKlxuICAgICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBpcyBnb2luZyB0byBiZSBleGVjdXRlZCBwZXIgdGltZSB1bml0IGxlc3MgdGhhbiBvbmUgbWludXRlLlxuICAgICAqL1xuICByZWFkb25seSB0YXJnZXRGdW5jdGlvbjogSUZ1bmN0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgSXRlcmF0b3JMYW1iZGEgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICAgKiBBIExhbWJkYSBmdW5jdGlvbiB0aGF0IHBsYXlzIHRoZSByb2xlIG9mIHRoZSBpdGVyYXRvci5cbiAgICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb246IElGdW5jdGlvbjtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgbmFtZTogc3RyaW5nLCBwcm9wczogSXRlcmF0b3JMYW1iZGFQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBuYW1lKTtcbiAgICBjb25zdCBpdGVyYXRvckxhbWJkYVJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ0l0ZXJhdG9yTGFtYmRhUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5Db21wb3NpdGVQcmluY2lwYWwoXG4gICAgICAgIG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnbGFtYmRhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgICksXG4gICAgICBkZXNjcmlwdGlvbjogJ0FuIGV4ZWN1dGlvbiByb2xlIGZvciBhIExhbWJkYSBmdW5jdGlvbiB0byBpbnZva2UgYSB0YXJnZXQgTGFtYmRhIEZ1bmN0aW9uIHBlciB0aW1lIHVuaXQgbGVzcyB0aGFuIG9uZSBtaW51dGUnLFxuICAgICAgbWFuYWdlZFBvbGljaWVzOiBbXG4gICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZScpLFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ0FXU1hSYXlEYWVtb25Xcml0ZUFjY2VzcycpLFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFWUENBY2Nlc3NFeGVjdXRpb25Sb2xlJyksXG4gICAgICBdLFxuICAgICAgcm9sZU5hbWU6ICdMYW1iZGEtSXRlcmF0b3ItUm9sZScsXG4gICAgfSk7XG4gICAgY2RrLkRvY2tlclZvbHVtZUNvbnNpc3RlbmN5LkNPTlNJU1RFTlQ7XG5cblxuICAgIGl0ZXJhdG9yTGFtYmRhUm9sZS5hZGRUb1BvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBzaWQ6ICdUYXJnZXRMYW1iZGFQZXJtaXNzaW9uJyxcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnbGFtYmRhOkludm9rZUZ1bmN0aW9uJ10sXG4gICAgICByZXNvdXJjZXM6IFtwcm9wcy50YXJnZXRGdW5jdGlvbi5mdW5jdGlvbkFybl0sXG4gICAgfSkpO1xuXG4gICAgdGhpcy5mdW5jdGlvbiA9IG5ldyBOb2RlanNGdW5jdGlvbih0aGlzLCAnSXRlcmF0b3InLCB7XG4gICAgICBmdW5jdGlvbk5hbWU6ICdsYW1iZGEtc3VibWludXRlLWl0ZXJhdG9yJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBmdW5jdGlvbiBmb3IgYnJlYWtpbmcgdGhlIGxpbWl0IG9mIDEgbWludXRlIHdpdGggdGhlIENsb3VkV2F0Y2ggUnVsZXMuJyxcbiAgICAgIGxvZ1JldGVudGlvbjogUmV0ZW50aW9uRGF5cy5USFJFRV9NT05USFMsXG4gICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18xNF9YLFxuICAgICAgZW50cnk6IGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJ3Jlc291cmNlcy9pdGVyYXRvci9pdGVyYXRvcl9hZ2VudC50cycpKSA/IHBhdGguam9pbihfX2Rpcm5hbWUsICdyZXNvdXJjZXMvaXRlcmF0b3IvaXRlcmF0b3JfYWdlbnQudHMnKSA6IHBhdGguam9pbihfX2Rpcm5hbWUsICdyZXNvdXJjZXMvaXRlcmF0b3IvaXRlcmF0b3JfYWdlbnQuanMnKSxcbiAgICAgIGhhbmRsZXI6ICdsYW1iZGFIYW5kbGVyJyxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFRBUkdFVF9GTl9OQU1FOiBwcm9wcy50YXJnZXRGdW5jdGlvbi5mdW5jdGlvbk5hbWUsXG4gICAgICB9LFxuICAgICAgbWVtb3J5U2l6ZTogMTI4LFxuICAgICAgcm9sZTogaXRlcmF0b3JMYW1iZGFSb2xlLFxuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLnNlY29uZHMoNTgpLCAvLyAxIG1pblxuICAgICAgdHJhY2luZzogVHJhY2luZy5BQ1RJVkUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJtaW51dGVTdGF0ZU1hY2hpbmVQcm9wcyB7XG4gIC8qKlxuICAgKiB0aGUgbmFtZSBvZiB0aGUgc3RhdGUgbWFjaGluZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlTWFjaGluZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIHRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBleGVjdXRlcyB5b3VyIGludGVudGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldEZ1bmN0aW9uOiBJRnVuY3Rpb247XG4gIC8qKlxuICAgKiB0aGUgaXRlcmF0b3IgTGFtYmRhIGZ1bmN0aW9uIGZvciB0aGUgdGFyZ2V0IExhbWJkYSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGl0ZXJhdG9yRnVuY3Rpb246IElGdW5jdGlvbjtcbiAgLyoqXG4gICAqIFNlY29uZHMgZm9yIGFuIGludGVydmFsLCB0aGUgcHJvZHVjdCBvZiBgZnJlcXVlbmN5YCBhbmQgYGludGVydmFsVGltZWAgc2hvdWxkIGJlIGFwcHJveGltYWdlbHkgMSBtaW51dGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqL1xuICByZWFkb25seSBpbnRlcnZhbFRpbWU6IG51bWJlcjtcbiAgLyoqXG4gICAqIEhvdyBtYW55IHRpbWVzIHlvdSBpbnRlbnQgdG8gZXhlY3V0ZSBpbiBhIG1pbnV0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgNlxuICAgKi9cbiAgcmVhZG9ubHkgZnJlcXVlbmN5OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBTdWJtaW51dGVTdGF0ZU1hY2hpbmUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICByZWFkb25seSBzdGF0ZU1hY2hpbmU6IHNmbi5TdGF0ZU1hY2hpbmU7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdWJtaW51dGVTdGF0ZU1hY2hpbmVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3Qgc3RhdGVNYWNoaW5lUm9sZSA9IHRoaXMuX2NyZWF0ZVdvcmtGbG93Um9sZShcbiAgICAgIHByb3BzLnRhcmdldEZ1bmN0aW9uLmZ1bmN0aW9uQXJuLCBwcm9wcy5pdGVyYXRvckZ1bmN0aW9uLmZ1bmN0aW9uQXJuKTtcbiAgICBjb25zdCBqb2JEZWZpbml0aW9uID0gdGhpcy5jcmVhdGVKb2JEZWZpbml0aW9uKHByb3BzLml0ZXJhdG9yRnVuY3Rpb24sIHByb3BzLmludGVydmFsVGltZSwgcHJvcHMuZnJlcXVlbmN5KTtcbiAgICBjb25zdCBzdGF0ZU1hY2hpbmUgPSBuZXcgc2ZuLlN0YXRlTWFjaGluZSh0aGlzLCAnU3RhdGVNYWNoaW5lJywge1xuICAgICAgc3RhdGVNYWNoaW5lTmFtZTogcHJvcHMuc3RhdGVNYWNoaW5lTmFtZSxcbiAgICAgIGRlZmluaXRpb246IGpvYkRlZmluaXRpb24sXG4gICAgICByb2xlOiBzdGF0ZU1hY2hpbmVSb2xlLFxuICAgIH0pO1xuICAgIHRoaXMuc3RhdGVNYWNoaW5lID0gc3RhdGVNYWNoaW5lO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdGF0ZSBtYWNoaW5lIGZvciBicmVha2luZyB0aGUgbGltaXQgb2YgMSBtaW51dGUgd2l0aCB0aGUgQ2xvdWRXYXRjaCBSdWxlcy5cbiAgICpcbiAgICogQHBhcmFtIGl0ZXJhdG9yRnVuY3Rpb24gVGhlIGl0ZXJhdG9yIExhbWJkYSBmdW5jdGlvbiBmb3IgdGhlIHRhcmdldCBMYWJtZGEgZnVuY2l0b24uXG4gICAqIEBwYXJhbSBpbnRlcnZhbFRpbWUgU2Vjb25kcyBmb3IgYW4gaW50ZXJ2YWwsIHRoZSBwcm9kdWN0IG9mIGBmcmVxdWVuY3lgIGFuZCBgaW50ZXJ2YWxUaW1lYCBzaG91bGQgYmUgYXBwcm94aW1hZ2VseSAxIG1pbnV0ZS5cbiAgICogQHBhcmFtIGZyZXF1ZW5jeSBIb3cgbWFueSB0aW1lcyB5b3UgaW50ZW50IHRvIGV4ZWN1dGUgaW4gYSBtaW51dGUuXG4gICAqIEByZXR1cm5zIFRIZSBqb2IgZGVmaW5pdGlvbiBmb3IgdGhlIHN0YXRlIG1hY2hpbmUuXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUpvYkRlZmluaXRpb24gPSAoXG4gICAgaXRlcmF0b3JGdW5jdGlvbjogSUZ1bmN0aW9uLCBpbnRlcnZhbFRpbWU6IG51bWJlciwgZnJlcXVlbmN5OiBudW1iZXIpOiBzZm4uQ2hhaW4gPT4ge1xuICAgIGNvbnN0IGNvbmZpZ3VyZUNvdW50ID0gbmV3IHNmbi5QYXNzKHRoaXMsICdDb25maWd1cmVDb3VudCcsIHtcbiAgICAgIHJlc3VsdDogc2ZuLlJlc3VsdC5mcm9tT2JqZWN0KHtcbiAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgIGNvdW50OiBmcmVxdWVuY3ksXG4gICAgICB9KSxcbiAgICAgIHJlc3VsdFBhdGg6ICckLml0ZXJhdG9yJyxcbiAgICB9KTtcbiAgICBjb25zdCBpdGVyYXRvciA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ0l0ZXJhdG9yJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IGl0ZXJhdG9yRnVuY3Rpb24sXG4gICAgICByZXN1bHRQYXRoOiAnJC5pdGVyYXRvcicsXG4gICAgICByZXN1bHRTZWxlY3Rvcjoge1xuICAgICAgICAnaW5kZXguJCc6ICckLlBheWxvYWQuaW5kZXgnLFxuICAgICAgICAnY291bnQuJCc6ICckLlBheWxvYWQuY291bnQnLFxuICAgICAgICAnY29udGludWUuJCc6ICckLlBheWxvYWQuY29udGludWUnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCB3YWl0ID0gbmV3IHNmbi5XYWl0KHRoaXMsICdXYWl0IGZvciB0aGUgdGFyZ2V0IExhbWJkYSBmdW5jdGlvbiBmaW5pc2hlZCcsIHtcbiAgICAgIHRpbWU6IHNmbi5XYWl0VGltZS5kdXJhdGlvbihjZGsuRHVyYXRpb24uc2Vjb25kcyhpbnRlcnZhbFRpbWUpKSxcbiAgICB9KTtcbiAgICB3YWl0Lm5leHQoaXRlcmF0b3IpO1xuICAgIGNvbnN0IGRvbmUgPSBuZXcgc2ZuLlBhc3ModGhpcywgJ0RvbmUnKTtcblxuICAgIGNvbnN0IGlzQ291bnRSZWFjaGVkID0gbmV3IHNmbi5DaG9pY2UodGhpcywgJ0lzQ291bnRSZWFjaGVkJyk7XG4gICAgaXNDb3VudFJlYWNoZWQud2hlbihzZm4uQ29uZGl0aW9uLmJvb2xlYW5FcXVhbHMoJyQuaXRlcmF0b3IuY29udGludWUnLCB0cnVlKSwgd2FpdCk7XG4gICAgaXNDb3VudFJlYWNoZWQub3RoZXJ3aXNlKGRvbmUpO1xuICAgIGNvbnN0IGpvYkRlZmluaXRpb24gPSBjb25maWd1cmVDb3VudC5uZXh0KGl0ZXJhdG9yKS5uZXh0KGlzQ291bnRSZWFjaGVkKTtcbiAgICByZXR1cm4gam9iRGVmaW5pdGlvbjtcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHJvbGUgYW5kIGNvcnJlc3BvbmRpbmcgcG9saWNpZXMgZm9yIHRoZSBzdWJtaW51dGUgc3RhdGUgbWFjaGluZS5cbiAgICpcbiAgICogQHBhcmFtIHRhcmdldEZ1bmN0aW9uQXJuIHRoZSBBUk4gb2YgdGhlIExhbWJkYSBmdW5jdGlvbiB0aGF0IGV4ZWN1dGVzIHlvdXIgaW50ZW50aW9uLlxuICAgKiBAcGFyYW0gaXRlcmF0b3JGdW5jdGlvbkFybiB0aGUgQVJOIG9mIHRoZSBpdGVyYXRvciBMYW1iZGEgZnVuY3Rpb24gZm9yIHRoZSB0YXJnZXQgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKiBAcmV0dXJucyB0aGUgcm9sZSBhcyB0aGUgZG9jdW1lbnRhdGlvbiBpbmRpY2F0ZXMuXG4gICAqL1xuICBwcml2YXRlIF9jcmVhdGVXb3JrRmxvd1JvbGUgPSAodGFyZ2V0RnVuY3Rpb25Bcm46IHN0cmluZywgaXRlcmF0b3JGdW5jdGlvbkFybjogc3RyaW5nKSA9PiB7XG4gICAgY29uc3Qgd29ya0Zsb3dFeGVjdXRpb25Sb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdTdGVwRnVuY3Rpb25FeGVjdXRpb25Sb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ3N0YXRlcy5hbWF6b25hd3MuY29tJyksXG4gICAgICBkZXNjcmlwdGlvbjogJ0V4ZWN1dGUgYSB3b3JrZmxvdyByZWxhdGVkIHRvIGV4ZWN1dGluZyBhIExhbWJkYSBmdW5jdGlvbiBwZXIgdGltZSB1bml0IGxlc3MgdGhhbiAxIG1pbnV0ZS4nLFxuICAgIH0pO1xuICAgIHdvcmtGbG93RXhlY3V0aW9uUm9sZS5hZGRUb1BvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBzaWQ6ICdMYW1iZGFJbnZva2VQZXJtaXNzaW9ucycsXG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2xhbWJkYTpJbnZva2VGdW5jdGlvbiddLFxuICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgIHRhcmdldEZ1bmN0aW9uQXJuLFxuICAgICAgICBpdGVyYXRvckZ1bmN0aW9uQXJuLFxuICAgICAgXSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHdvcmtGbG93RXhlY3V0aW9uUm9sZTtcbiAgfTtcbn0iXX0=
package/package.json CHANGED
@@ -43,7 +43,7 @@
43
43
  "@types/node": "^16",
44
44
  "@typescript-eslint/eslint-plugin": "^5",
45
45
  "@typescript-eslint/parser": "^5",
46
- "aws-cdk-lib": "^2.72.1",
46
+ "aws-cdk-lib": "^2.73.0",
47
47
  "constructs": "^10.0.5",
48
48
  "esbuild": "^0.17.15",
49
49
  "eslint": "^8",
@@ -57,7 +57,7 @@
57
57
  "jsii-docgen": "^1.8.110",
58
58
  "jsii-pacmak": "^1.80.0",
59
59
  "npm-check-updates": "^16",
60
- "projen": "^0.70.12",
60
+ "projen": "^0.71.1",
61
61
  "source-map-support": "^0.5.21",
62
62
  "standard-version": "^9",
63
63
  "ts-jest": "^27",
@@ -68,7 +68,7 @@
68
68
  "constructs": "^10.0.5"
69
69
  },
70
70
  "dependencies": {
71
- "aws-cdk-lib": "^2.72.1",
71
+ "aws-cdk-lib": "^2.73.0",
72
72
  "constructs": "^10.0.5"
73
73
  },
74
74
  "keywords": [
@@ -82,7 +82,7 @@
82
82
  ],
83
83
  "main": "lib/index.js",
84
84
  "license": "Apache-2.0",
85
- "version": "2.0.113",
85
+ "version": "2.0.115",
86
86
  "jest": {
87
87
  "testMatch": [
88
88
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",