aws-delivlib 13.4.0 → 13.4.4
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/.gitattributes +22 -20
- package/cdk.out/{asset.663163693e04179c71265b44a325be7e6b8c4e90b081883a1b3f3393de2546ea → asset.7820644cf1fdec7cec290ed6fdd561e35f4015d4dcf03a20f8035dda3c0ac88a}/watcher-handler.d.ts +0 -0
- package/cdk.out/asset.7820644cf1fdec7cec290ed6fdd561e35f4015d4dcf03a20f8035dda3c0ac88a/watcher-handler.js +108 -0
- package/cdk.out/{asset.663163693e04179c71265b44a325be7e6b8c4e90b081883a1b3f3393de2546ea → asset.7820644cf1fdec7cec290ed6fdd561e35f4015d4dcf03a20f8035dda3c0ac88a}/watcher-handler.ts +0 -0
- package/cdk.out/asset.dc2e98009b027861f34e56eebb81faa5a3951ed9da80ce4a903a45de04268238/index.js +16465 -0
- package/cdk.out/cdk.out +1 -1
- package/cdk.out/delivlib-test.assets.json +9 -9
- package/cdk.out/delivlib-test.template.json +33 -28
- package/cdk.out/manifest.json +1840 -1840
- package/cdk.out/tree.json +442 -437
- package/lib/__tests__/build-spec.test.js +21 -2
- package/lib/__tests__/bump.test.js +21 -2
- package/lib/__tests__/canary.test.js +22 -3
- package/lib/__tests__/change-control-lambda/disable-transition.test.js +2 -1
- package/lib/__tests__/change-control-lambda/handler.test.js +23 -3
- package/lib/__tests__/chime-notifier.test.js +4 -3
- package/lib/__tests__/code-signing-cert.test.js +21 -2
- package/lib/__tests__/integ.delivlib.js +21 -2
- package/lib/__tests__/open-pgp-key-pair.test.js +21 -2
- package/lib/__tests__/pipeline.test.js +22 -3
- package/lib/__tests__/pr.test.js +21 -2
- package/lib/__tests__/publishing.test.js +21 -2
- package/lib/__tests__/registry-sync/ecr-mirror.test.js +21 -2
- package/lib/__tests__/registry-sync/mirror-source.test.js +21 -2
- package/lib/__tests__/shellable.test.js +22 -3
- package/lib/__tests__/test-stack.js +29 -9
- package/lib/change-control-lambda/disable-transition.js +21 -2
- package/lib/change-control-lambda/index.js +21 -2
- package/lib/change-controller.js +21 -2
- package/lib/chime-notifier/chime-notifier.js +22 -12
- package/lib/chime-notifier/chime-notifier.ts +1 -11
- package/lib/chime-notifier/{notifier-handler.d.ts → handler/notifier-handler.d.ts} +0 -0
- package/lib/chime-notifier/handler/notifier-handler.js +110 -0
- package/lib/chime-notifier/{notifier-handler.ts → handler/notifier-handler.ts} +4 -4
- package/lib/code-signing/certificate-signing-request.js +21 -2
- package/lib/code-signing/code-signing-certificate.js +21 -2
- package/lib/code-signing/private-key.js +21 -2
- package/lib/custom-resource-handlers/src/_cloud-formation.js +22 -3
- package/lib/custom-resource-handlers/src/_exec.js +22 -3
- package/lib/custom-resource-handlers/src/_rmrf.js +23 -4
- package/lib/custom-resource-handlers/src/certificate-signing-request.js +26 -7
- package/lib/custom-resource-handlers/src/certificate-signing-request.tsbuildinfo +1 -1
- package/lib/custom-resource-handlers/src/pgp-secret.js +27 -8
- package/lib/custom-resource-handlers/src/pgp-secret.tsbuildinfo +1 -1
- package/lib/custom-resource-handlers/src/private-key.js +26 -7
- package/lib/custom-resource-handlers/src/private-key.tsbuildinfo +1 -1
- package/lib/open-pgp-key-pair.js +21 -2
- package/lib/pipeline-notifications/chime.js +21 -2
- package/lib/pipeline-notifications/slack.js +21 -2
- package/lib/pipeline-watcher/handler/watcher-handler.js +21 -2
- package/lib/pipeline-watcher/watcher.js +21 -2
- package/lib/pipeline.js +21 -2
- package/lib/publishing/s3/publish.sh +2 -1
- package/lib/publishing.js +22 -3
- package/lib/pull-request/bump.js +21 -2
- package/lib/pull-request/merge-back.js +22 -3
- package/lib/pull-request/pr.js +21 -2
- package/lib/shellable.js +22 -3
- package/lib/util.js +23 -4
- package/package.json +35 -36
- package/cdk.out/asset.663163693e04179c71265b44a325be7e6b8c4e90b081883a1b3f3393de2546ea/watcher-handler.js +0 -89
- package/cdk.out/asset.d81bf2d4c389ecd69472cf4b27599e1ffbe0c1543104f45d035834e863f64ca7/index.js +0 -14129
- package/lib/chime-notifier/notifier-handler.js +0 -91
package/package.json
CHANGED
|
@@ -6,26 +6,25 @@
|
|
|
6
6
|
"url": "https://github.com/cdklabs/aws-delivlib.git"
|
|
7
7
|
},
|
|
8
8
|
"scripts": {
|
|
9
|
-
"clobber": "npx projen clobber",
|
|
10
|
-
"compile": "npx projen compile",
|
|
11
|
-
"test:compile": "npx projen test:compile",
|
|
12
|
-
"test": "npx projen test",
|
|
13
9
|
"build": "npx projen build",
|
|
14
|
-
"test:watch": "npx projen test:watch",
|
|
15
|
-
"test:update": "npx projen test:update",
|
|
16
10
|
"bump": "npx projen bump",
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"upgrade": "npx projen upgrade",
|
|
11
|
+
"clobber": "npx projen clobber",
|
|
12
|
+
"compile": "npx projen compile",
|
|
13
|
+
"compile:custom-resource-handlers": "npx projen compile:custom-resource-handlers",
|
|
21
14
|
"default": "npx projen default",
|
|
22
|
-
"watch": "npx projen watch",
|
|
23
|
-
"package": "npx projen package",
|
|
24
15
|
"eslint": "npx projen eslint",
|
|
25
16
|
"integ:diff": "npx projen integ:diff",
|
|
26
17
|
"integ:update": "npx projen integ:update",
|
|
27
|
-
"
|
|
18
|
+
"package": "npx projen package",
|
|
19
|
+
"post-compile": "npx projen post-compile",
|
|
20
|
+
"pre-compile": "npx projen pre-compile",
|
|
28
21
|
"release": "npx projen release",
|
|
22
|
+
"test": "npx projen test",
|
|
23
|
+
"test:update": "npx projen test:update",
|
|
24
|
+
"test:watch": "npx projen test:watch",
|
|
25
|
+
"unbump": "npx projen unbump",
|
|
26
|
+
"upgrade": "npx projen upgrade",
|
|
27
|
+
"watch": "npx projen watch",
|
|
29
28
|
"projen": "npx projen",
|
|
30
29
|
"cdk": "npx cdk"
|
|
31
30
|
},
|
|
@@ -35,36 +34,36 @@
|
|
|
35
34
|
"organization": false
|
|
36
35
|
},
|
|
37
36
|
"devDependencies": {
|
|
38
|
-
"@monocdk-experiment/assert": "^1.
|
|
39
|
-
"@types/aws-lambda": "^8.10.
|
|
40
|
-
"@types/jest": "^27.0.
|
|
37
|
+
"@monocdk-experiment/assert": "^1.135.0",
|
|
38
|
+
"@types/aws-lambda": "^8.10.87",
|
|
39
|
+
"@types/jest": "^27.0.3",
|
|
41
40
|
"@types/node": "^14.17.0",
|
|
42
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
43
|
-
"@typescript-eslint/parser": "^
|
|
44
|
-
"aws-cdk": "^1.
|
|
45
|
-
"aws-sdk": "^2.
|
|
46
|
-
"constructs": "^3.3.
|
|
47
|
-
"esbuild": "^0.
|
|
48
|
-
"eslint": "^
|
|
41
|
+
"@typescript-eslint/eslint-plugin": "^5",
|
|
42
|
+
"@typescript-eslint/parser": "^5",
|
|
43
|
+
"aws-cdk": "^1.135.0",
|
|
44
|
+
"aws-sdk": "^2.1046.0",
|
|
45
|
+
"constructs": "^3.3.165",
|
|
46
|
+
"esbuild": "^0.14.3",
|
|
47
|
+
"eslint": "^8",
|
|
49
48
|
"eslint-import-resolver-node": "^0.3.6",
|
|
50
49
|
"eslint-import-resolver-typescript": "^2.5.0",
|
|
51
|
-
"eslint-plugin-import": "^2.
|
|
52
|
-
"jest": "^27.
|
|
50
|
+
"eslint-plugin-import": "^2.25.3",
|
|
51
|
+
"jest": "^27.4.4",
|
|
53
52
|
"jest-create-mock-instance": "^2.0.0",
|
|
54
|
-
"jest-junit": "^
|
|
55
|
-
"json-schema": "^0.
|
|
56
|
-
"monocdk": "^1.
|
|
57
|
-
"node-ical": "^0.
|
|
58
|
-
"npm-check-updates": "^
|
|
59
|
-
"projen": "^0.
|
|
53
|
+
"jest-junit": "^13",
|
|
54
|
+
"json-schema": "^0.4.0",
|
|
55
|
+
"monocdk": "^1.135.0",
|
|
56
|
+
"node-ical": "^0.14.1",
|
|
57
|
+
"npm-check-updates": "^12",
|
|
58
|
+
"projen": "^0.40.9",
|
|
60
59
|
"rrule": "^2.6.8",
|
|
61
60
|
"standard-version": "^9",
|
|
62
|
-
"ts-jest": "^27.
|
|
63
|
-
"typescript": "
|
|
61
|
+
"ts-jest": "^27.1.1",
|
|
62
|
+
"typescript": "~4.5.3"
|
|
64
63
|
},
|
|
65
64
|
"peerDependencies": {
|
|
66
|
-
"constructs": "^3.3.
|
|
67
|
-
"monocdk": "^1.
|
|
65
|
+
"constructs": "^3.3.165",
|
|
66
|
+
"monocdk": "^1.135.0"
|
|
68
67
|
},
|
|
69
68
|
"dependencies": {
|
|
70
69
|
"changelog-parser": "^2.8.0"
|
|
@@ -78,7 +77,7 @@
|
|
|
78
77
|
],
|
|
79
78
|
"main": "lib/index.js",
|
|
80
79
|
"license": "Apache-2.0",
|
|
81
|
-
"version": "13.4.
|
|
80
|
+
"version": "13.4.4",
|
|
82
81
|
"jest": {
|
|
83
82
|
"testMatch": [
|
|
84
83
|
"**/lib/__tests__/**/?(*.)+(spec|test).js?(x)"
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.handler = exports.cloudwatch = void 0;
|
|
4
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
5
|
-
const AWS = require("aws-sdk");
|
|
6
|
-
// export for tests
|
|
7
|
-
exports.cloudwatch = new AWS.CloudWatch();
|
|
8
|
-
const logger = {
|
|
9
|
-
log: (line) => process.stdout.write(line),
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Lambda function that reacts to an Amazon EventBridge event triggered by a 'CodePipeline Action Execution State Change'.
|
|
13
|
-
* The handler reads the event and sends off metrics to CloudWatch.
|
|
14
|
-
*/
|
|
15
|
-
async function handler(event) {
|
|
16
|
-
logger.log(`Received event: ${JSON.stringify(event)}`);
|
|
17
|
-
switch (event['detail-type']) {
|
|
18
|
-
case 'CodePipeline Pipeline Execution State Change':
|
|
19
|
-
await handleExecutionChange(event);
|
|
20
|
-
break;
|
|
21
|
-
case 'CodePipeline Action Execution State Change':
|
|
22
|
-
await handleActionChange(event);
|
|
23
|
-
break;
|
|
24
|
-
default: throw new Error(`Unhandled detail type ${event['detaill-type']}`);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.handler = handler;
|
|
28
|
-
async function handleExecutionChange(event) {
|
|
29
|
-
const pipelineName = event.detail.pipeline;
|
|
30
|
-
const state = event.detail.state;
|
|
31
|
-
let value;
|
|
32
|
-
switch (state) {
|
|
33
|
-
case 'FAILED':
|
|
34
|
-
value = 1;
|
|
35
|
-
break;
|
|
36
|
-
case 'SUCCEEDED':
|
|
37
|
-
value = 0;
|
|
38
|
-
break;
|
|
39
|
-
default: throw new Error(`Unsupported state: ${state}. Only FAILED and SUCCEEDED states are supported. ` +
|
|
40
|
-
'Others must be filtered out prior to this function.');
|
|
41
|
-
}
|
|
42
|
-
await putMetric(event, value, [
|
|
43
|
-
{ Name: 'Pipeline', Value: pipelineName },
|
|
44
|
-
]);
|
|
45
|
-
logger.log('Done');
|
|
46
|
-
}
|
|
47
|
-
async function handleActionChange(event) {
|
|
48
|
-
const pipelineName = event.detail.pipeline;
|
|
49
|
-
const action = event.detail.action;
|
|
50
|
-
const state = event.detail.state;
|
|
51
|
-
let value;
|
|
52
|
-
switch (state) {
|
|
53
|
-
case 'FAILED':
|
|
54
|
-
value = 1;
|
|
55
|
-
break;
|
|
56
|
-
case 'SUCCEEDED':
|
|
57
|
-
value = 0;
|
|
58
|
-
break;
|
|
59
|
-
default: throw new Error(`Unsupported state: ${state}. Only FAILED and SUCCEEDED states are supported. ` +
|
|
60
|
-
'Others must be filtered out prior to this function.');
|
|
61
|
-
}
|
|
62
|
-
await putMetric(event, value, [
|
|
63
|
-
{ Name: 'Pipeline', Value: pipelineName },
|
|
64
|
-
{ Name: 'Action', Value: action },
|
|
65
|
-
]);
|
|
66
|
-
logger.log('Done');
|
|
67
|
-
}
|
|
68
|
-
async function putMetric(event, value, dimensions) {
|
|
69
|
-
const metricNamespace = process.env.METRIC_NAMESPACE;
|
|
70
|
-
const metricName = process.env.METRIC_NAME;
|
|
71
|
-
const time = new Date(event.time);
|
|
72
|
-
if (!metricNamespace || !metricName) {
|
|
73
|
-
throw new Error('Both METRIC_NAMESPACE and METRIC_NAME environment variables must be set.');
|
|
74
|
-
}
|
|
75
|
-
const input = {
|
|
76
|
-
Namespace: metricNamespace,
|
|
77
|
-
MetricData: [
|
|
78
|
-
{
|
|
79
|
-
MetricName: metricName,
|
|
80
|
-
Value: value,
|
|
81
|
-
Dimensions: dimensions,
|
|
82
|
-
Timestamp: time,
|
|
83
|
-
},
|
|
84
|
-
],
|
|
85
|
-
};
|
|
86
|
-
logger.log(`Calling PutMetricData with payload: ${JSON.stringify(input)}`);
|
|
87
|
-
await exports.cloudwatch.putMetricData(input).promise();
|
|
88
|
-
}
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hlci1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid2F0Y2hlci1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZEQUE2RDtBQUM3RCwrQkFBK0I7QUFtQi9CLG1CQUFtQjtBQUNOLFFBQUEsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQy9DLE1BQU0sTUFBTSxHQUFHO0lBQ2IsR0FBRyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7Q0FDbEQsQ0FBQztBQUVGOzs7R0FHRztBQUNJLEtBQUssVUFBVSxPQUFPLENBQUMsS0FBZ0I7SUFDNUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFdkQsUUFBUSxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDNUIsS0FBSyw4Q0FBOEM7WUFBRSxNQUFNLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQUMsTUFBTTtRQUMvRixLQUFLLDRDQUE0QztZQUFFLE1BQU0sa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFBQyxNQUFNO1FBQzFGLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDNUU7QUFDSCxDQUFDO0FBUkQsMEJBUUM7QUFFRCxLQUFLLFVBQVUscUJBQXFCLENBQUMsS0FBc0M7SUFDekUsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDM0MsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFFakMsSUFBSSxLQUFhLENBQUM7SUFDbEIsUUFBUSxLQUFLLEVBQUU7UUFDYixLQUFLLFFBQVE7WUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQUMsTUFBTTtRQUNoQyxLQUFLLFdBQVc7WUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQUMsTUFBTTtRQUNuQyxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixLQUFLLG9EQUFvRDtZQUN4RyxxREFBcUQsQ0FBQyxDQUFDO0tBQ3hEO0lBRUQsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtRQUM1QixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtLQUMxQyxDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3JCLENBQUM7QUFHRCxLQUFLLFVBQVUsa0JBQWtCLENBQUMsS0FBbUM7SUFDbkUsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDM0MsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDbkMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFFakMsSUFBSSxLQUFhLENBQUM7SUFDbEIsUUFBUSxLQUFLLEVBQUU7UUFDYixLQUFLLFFBQVE7WUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQUMsTUFBTTtRQUNoQyxLQUFLLFdBQVc7WUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQUMsTUFBTTtRQUNuQyxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixLQUFLLG9EQUFvRDtZQUN4RyxxREFBcUQsQ0FBQyxDQUFDO0tBQ3hEO0lBRUQsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtRQUM1QixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtRQUN6QyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtLQUNsQyxDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxLQUFLLFVBQVUsU0FBUyxDQUFDLEtBQWdCLEVBQUUsS0FBYSxFQUFFLFVBQXFDO0lBQzdGLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7SUFDckQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7SUFDM0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWxDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxVQUFVLEVBQUU7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQywwRUFBMEUsQ0FBQyxDQUFDO0tBQzdGO0lBRUQsTUFBTSxLQUFLLEdBQXNDO1FBQy9DLFNBQVMsRUFBRSxlQUFlO1FBQzFCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFVBQVUsRUFBRSxVQUFVO2dCQUN0QixLQUFLLEVBQUUsS0FBSztnQkFDWixVQUFVLEVBQUUsVUFBVTtnQkFDdEIsU0FBUyxFQUFFLElBQUk7YUFDaEI7U0FDRjtLQUNGLENBQUM7SUFFRixNQUFNLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUUzRSxNQUFNLGtCQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgKiBhcyBBV1MgZnJvbSAnYXdzLXNkayc7XG5cbi8vIFBhcnRpYWwgdHlwZSBmb3IgdGhlICdkZXRhaWwnIHNlY3Rpb24gb2YgYW4gZXZlbnQgZnJvbSBBbWF6b24gRXZlbnRCcmlkZ2UgZm9yICdDb2RlUGlwZWxpbmUgRXhlY3V0aW9uIFN0YXRlIENoYW5nZSdcbi8vIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZXZlbnRicmlkZ2UvbGF0ZXN0L3VzZXJndWlkZS9ldmVudC10eXBlcy5odG1sI2NvZGVwaXBlbGluZS1ldmVudC10eXBlXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGlvblN0YXRlQ2hhbmdlRXZlbnQge1xuICByZWFkb25seSBwaXBlbGluZTogc3RyaW5nO1xuICByZWFkb25seSBzdGF0ZTogJ1NUQVJURUQnIHwgJ0NBTkNFTEVEJyB8ICdGQUlMRUQnIHwgJ1NVQ0NFRURFRCc7XG59XG5cbi8vIFBhcnRpYWwgdHlwZSBmb3IgdGhlICdkZXRhaWwnIHNlY3Rpb24gb2YgYW4gZXZlbnQgZnJvbSBBbWF6b24gRXZlbnRCcmlkZ2UgZm9yICdDb2RlUGlwZWxpbmUgQWN0aW9uIEV4ZWN1dGlvbiBTdGF0ZSBDaGFuZ2UnXG4vLyBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2V2ZW50YnJpZGdlL2xhdGVzdC91c2VyZ3VpZGUvZXZlbnQtdHlwZXMuaHRtbCNjb2RlcGlwZWxpbmUtZXZlbnQtdHlwZVxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25TdGF0ZUNoYW5nZUV2ZW50IGV4dGVuZHMgRXhlY3V0aW9uU3RhdGVDaGFuZ2VFdmVudCB7XG4gIHJlYWRvbmx5IGFjdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBMYW1iZGFFeGVjdXRpb25TdGF0ZUNoYW5nZUV2ZW50ID0gQVdTTGFtYmRhLkV2ZW50QnJpZGdlRXZlbnQ8J0NvZGVQaXBlbGluZSBQaXBlbGluZSBFeGVjdXRpb24gU3RhdGUgQ2hhbmdlJywgRXhlY3V0aW9uU3RhdGVDaGFuZ2VFdmVudD47XG5leHBvcnQgdHlwZSBMYW1iZGFBY3Rpb25TdGF0ZUNoYW5nZUV2ZW50ID0gQVdTTGFtYmRhLkV2ZW50QnJpZGdlRXZlbnQ8J0NvZGVQaXBlbGluZSBBY3Rpb24gRXhlY3V0aW9uIFN0YXRlIENoYW5nZScsIEFjdGlvblN0YXRlQ2hhbmdlRXZlbnQ+O1xuZXhwb3J0IHR5cGUgRXZlbnRUeXBlID0gTGFtYmRhRXhlY3V0aW9uU3RhdGVDaGFuZ2VFdmVudCB8IExhbWJkYUFjdGlvblN0YXRlQ2hhbmdlRXZlbnQ7XG5cbi8vIGV4cG9ydCBmb3IgdGVzdHNcbmV4cG9ydCBjb25zdCBjbG91ZHdhdGNoID0gbmV3IEFXUy5DbG91ZFdhdGNoKCk7XG5jb25zdCBsb2dnZXIgPSB7XG4gIGxvZzogKGxpbmU6IHN0cmluZykgPT4gcHJvY2Vzcy5zdGRvdXQud3JpdGUobGluZSksXG59O1xuXG4vKipcbiAqIExhbWJkYSBmdW5jdGlvbiB0aGF0IHJlYWN0cyB0byBhbiBBbWF6b24gRXZlbnRCcmlkZ2UgZXZlbnQgdHJpZ2dlcmVkIGJ5IGEgJ0NvZGVQaXBlbGluZSBBY3Rpb24gRXhlY3V0aW9uIFN0YXRlIENoYW5nZScuXG4gKiBUaGUgaGFuZGxlciByZWFkcyB0aGUgZXZlbnQgYW5kIHNlbmRzIG9mZiBtZXRyaWNzIHRvIENsb3VkV2F0Y2guXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50OiBFdmVudFR5cGUpIHtcbiAgbG9nZ2VyLmxvZyhgUmVjZWl2ZWQgZXZlbnQ6ICR7SlNPTi5zdHJpbmdpZnkoZXZlbnQpfWApO1xuXG4gIHN3aXRjaCAoZXZlbnRbJ2RldGFpbC10eXBlJ10pIHtcbiAgICBjYXNlICdDb2RlUGlwZWxpbmUgUGlwZWxpbmUgRXhlY3V0aW9uIFN0YXRlIENoYW5nZSc6IGF3YWl0IGhhbmRsZUV4ZWN1dGlvbkNoYW5nZShldmVudCk7IGJyZWFrO1xuICAgIGNhc2UgJ0NvZGVQaXBlbGluZSBBY3Rpb24gRXhlY3V0aW9uIFN0YXRlIENoYW5nZSc6IGF3YWl0IGhhbmRsZUFjdGlvbkNoYW5nZShldmVudCk7IGJyZWFrO1xuICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcihgVW5oYW5kbGVkIGRldGFpbCB0eXBlICR7ZXZlbnRbJ2RldGFpbGwtdHlwZSddfWApO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZUV4ZWN1dGlvbkNoYW5nZShldmVudDogTGFtYmRhRXhlY3V0aW9uU3RhdGVDaGFuZ2VFdmVudCkge1xuICBjb25zdCBwaXBlbGluZU5hbWUgPSBldmVudC5kZXRhaWwucGlwZWxpbmU7XG4gIGNvbnN0IHN0YXRlID0gZXZlbnQuZGV0YWlsLnN0YXRlO1xuXG4gIGxldCB2YWx1ZTogbnVtYmVyO1xuICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgY2FzZSAnRkFJTEVEJzogdmFsdWUgPSAxOyBicmVhaztcbiAgICBjYXNlICdTVUNDRUVERUQnOiB2YWx1ZSA9IDA7IGJyZWFrO1xuICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgc3RhdGU6ICR7c3RhdGV9LiBPbmx5IEZBSUxFRCBhbmQgU1VDQ0VFREVEIHN0YXRlcyBhcmUgc3VwcG9ydGVkLiBgICtcbiAgICAnT3RoZXJzIG11c3QgYmUgZmlsdGVyZWQgb3V0IHByaW9yIHRvIHRoaXMgZnVuY3Rpb24uJyk7XG4gIH1cblxuICBhd2FpdCBwdXRNZXRyaWMoZXZlbnQsIHZhbHVlLCBbXG4gICAgeyBOYW1lOiAnUGlwZWxpbmUnLCBWYWx1ZTogcGlwZWxpbmVOYW1lIH0sXG4gIF0pO1xuXG4gIGxvZ2dlci5sb2coJ0RvbmUnKTtcbn1cblxuXG5hc3luYyBmdW5jdGlvbiBoYW5kbGVBY3Rpb25DaGFuZ2UoZXZlbnQ6IExhbWJkYUFjdGlvblN0YXRlQ2hhbmdlRXZlbnQpIHtcbiAgY29uc3QgcGlwZWxpbmVOYW1lID0gZXZlbnQuZGV0YWlsLnBpcGVsaW5lO1xuICBjb25zdCBhY3Rpb24gPSBldmVudC5kZXRhaWwuYWN0aW9uO1xuICBjb25zdCBzdGF0ZSA9IGV2ZW50LmRldGFpbC5zdGF0ZTtcblxuICBsZXQgdmFsdWU6IG51bWJlcjtcbiAgc3dpdGNoIChzdGF0ZSkge1xuICAgIGNhc2UgJ0ZBSUxFRCc6IHZhbHVlID0gMTsgYnJlYWs7XG4gICAgY2FzZSAnU1VDQ0VFREVEJzogdmFsdWUgPSAwOyBicmVhaztcbiAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHN0YXRlOiAke3N0YXRlfS4gT25seSBGQUlMRUQgYW5kIFNVQ0NFRURFRCBzdGF0ZXMgYXJlIHN1cHBvcnRlZC4gYCArXG4gICAgJ090aGVycyBtdXN0IGJlIGZpbHRlcmVkIG91dCBwcmlvciB0byB0aGlzIGZ1bmN0aW9uLicpO1xuICB9XG5cbiAgYXdhaXQgcHV0TWV0cmljKGV2ZW50LCB2YWx1ZSwgW1xuICAgIHsgTmFtZTogJ1BpcGVsaW5lJywgVmFsdWU6IHBpcGVsaW5lTmFtZSB9LFxuICAgIHsgTmFtZTogJ0FjdGlvbicsIFZhbHVlOiBhY3Rpb24gfSxcbiAgXSk7XG5cbiAgbG9nZ2VyLmxvZygnRG9uZScpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwdXRNZXRyaWMoZXZlbnQ6IEV2ZW50VHlwZSwgdmFsdWU6IG51bWJlciwgZGltZW5zaW9uczogQVdTLkNsb3VkV2F0Y2guRGltZW5zaW9ucykge1xuICBjb25zdCBtZXRyaWNOYW1lc3BhY2UgPSBwcm9jZXNzLmVudi5NRVRSSUNfTkFNRVNQQUNFO1xuICBjb25zdCBtZXRyaWNOYW1lID0gcHJvY2Vzcy5lbnYuTUVUUklDX05BTUU7XG4gIGNvbnN0IHRpbWUgPSBuZXcgRGF0ZShldmVudC50aW1lKTtcblxuICBpZiAoIW1ldHJpY05hbWVzcGFjZSB8fCAhbWV0cmljTmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQm90aCBNRVRSSUNfTkFNRVNQQUNFIGFuZCBNRVRSSUNfTkFNRSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgbXVzdCBiZSBzZXQuJyk7XG4gIH1cblxuICBjb25zdCBpbnB1dDogQVdTLkNsb3VkV2F0Y2guUHV0TWV0cmljRGF0YUlucHV0ID0ge1xuICAgIE5hbWVzcGFjZTogbWV0cmljTmFtZXNwYWNlLFxuICAgIE1ldHJpY0RhdGE6IFtcbiAgICAgIHtcbiAgICAgICAgTWV0cmljTmFtZTogbWV0cmljTmFtZSxcbiAgICAgICAgVmFsdWU6IHZhbHVlLFxuICAgICAgICBEaW1lbnNpb25zOiBkaW1lbnNpb25zLFxuICAgICAgICBUaW1lc3RhbXA6IHRpbWUsXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG5cbiAgbG9nZ2VyLmxvZyhgQ2FsbGluZyBQdXRNZXRyaWNEYXRhIHdpdGggcGF5bG9hZDogJHtKU09OLnN0cmluZ2lmeShpbnB1dCl9YCk7XG5cbiAgYXdhaXQgY2xvdWR3YXRjaC5wdXRNZXRyaWNEYXRhKGlucHV0KS5wcm9taXNlKCk7XG59Il19
|