aws-cdk 2.1003.0 → 2.1004.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-info.json +2 -2
- package/lib/api/aws-auth/sdk-logger.d.ts +3 -3
- package/lib/api/aws-auth/sdk-logger.js +5 -10
- package/lib/api/bootstrap/bootstrap-environment.d.ts +3 -3
- package/lib/api/bootstrap/bootstrap-environment.js +9 -9
- package/lib/api/bootstrap/deploy-bootstrap.d.ts +4 -4
- package/lib/api/bootstrap/deploy-bootstrap.js +11 -11
- package/lib/api/cxapp/cloud-assembly.d.ts +1 -16
- package/lib/api/cxapp/cloud-assembly.js +3 -3
- package/lib/api/deployments/asset-publishing.d.ts +5 -5
- package/lib/api/deployments/asset-publishing.js +7 -8
- package/lib/api/deployments/assets.d.ts +2 -2
- package/lib/api/deployments/assets.js +9 -9
- package/lib/api/deployments/checks.d.ts +2 -2
- package/lib/api/deployments/checks.js +4 -4
- package/lib/api/deployments/cloudformation.d.ts +7 -7
- package/lib/api/deployments/cloudformation.js +27 -27
- package/lib/api/deployments/deploy-stack.d.ts +3 -3
- package/lib/api/deployments/deploy-stack.js +52 -55
- package/lib/api/deployments/deployments.d.ts +9 -5
- package/lib/api/deployments/deployments.js +22 -24
- package/lib/api/deployments/hotswap-deployments.d.ts +2 -2
- package/lib/api/deployments/hotswap-deployments.js +12 -12
- package/lib/api/environment/environment-access.d.ts +3 -4
- package/lib/api/environment/environment-access.js +6 -7
- package/lib/api/environment/environment-resources.d.ts +5 -5
- package/lib/api/environment/environment-resources.js +12 -12
- package/lib/api/garbage-collection/garbage-collector.d.ts +3 -4
- package/lib/api/garbage-collection/garbage-collector.js +37 -38
- package/lib/api/garbage-collection/progress-printer.d.ts +3 -4
- package/lib/api/garbage-collection/progress-printer.js +5 -6
- package/lib/api/garbage-collection/stack-refresh.d.ts +3 -3
- package/lib/api/garbage-collection/stack-refresh.js +7 -7
- package/lib/api/logs/find-cloudwatch-logs.d.ts +2 -2
- package/lib/api/logs/find-cloudwatch-logs.js +5 -5
- package/lib/api/logs/logs-monitor.d.ts +27 -4
- package/lib/api/logs/logs-monitor.js +51 -30
- package/lib/api/resource-import/importer.d.ts +3 -5
- package/lib/api/resource-import/importer.js +12 -13
- package/lib/api/resource-import/migrator.d.ts +3 -5
- package/lib/api/resource-import/migrator.js +7 -9
- package/lib/api/stack-events/stack-activity-monitor.d.ts +5 -63
- package/lib/api/stack-events/stack-activity-monitor.js +7 -8
- package/lib/api/stack-events/stack-progress-monitor.d.ts +1 -14
- package/lib/api/stack-events/stack-progress-monitor.js +1 -1
- package/lib/api/toolkit-info.d.ts +2 -2
- package/lib/api/toolkit-info.js +5 -5
- package/lib/api/work-graph/work-graph-builder.d.ts +3 -4
- package/lib/api/work-graph/work-graph-builder.js +5 -6
- package/lib/api/work-graph/work-graph.d.ts +3 -8
- package/lib/api/work-graph/work-graph.js +6 -7
- package/lib/cli/activity-printer/base.d.ts +3 -4
- package/lib/cli/activity-printer/base.js +6 -5
- package/lib/cli/activity-printer/current.js +1 -1
- package/lib/cli/activity-printer/history.d.ts +1 -1
- package/lib/cli/activity-printer/history.js +1 -1
- package/lib/cli/cdk-toolkit.js +17 -21
- package/lib/cli/cli.js +6 -6
- package/lib/cli/messages.d.ts +11 -9
- package/lib/cli/messages.js +7 -14
- package/lib/index.js +4856 -4134
- package/lib/list-stacks.d.ts +1 -1
- package/lib/list-stacks.js +1 -1
- package/lib/logging.d.ts +3 -1
- package/lib/logging.js +2 -1
- package/lib/toolkit/cli-io-host.d.ts +37 -125
- package/lib/toolkit/cli-io-host.js +44 -74
- package/package.json +3 -9
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IoHelper } from '../../../../@aws-cdk/tmp-toolkit-helpers/src/api/io/private';
|
|
2
2
|
import { ICloudFormationClient } from '../aws-auth';
|
|
3
3
|
export declare class ActiveAssetCache {
|
|
4
4
|
private readonly stacks;
|
|
5
5
|
rememberStack(stackTemplate: string): void;
|
|
6
6
|
contains(asset: string): boolean;
|
|
7
7
|
}
|
|
8
|
-
export declare function refreshStacks(cfn: ICloudFormationClient,
|
|
8
|
+
export declare function refreshStacks(cfn: ICloudFormationClient, ioHelper: IoHelper, activeAssets: ActiveAssetCache, qualifier?: string): Promise<void>;
|
|
9
9
|
/**
|
|
10
10
|
* Background Stack Refresh properties
|
|
11
11
|
*/
|
|
@@ -17,7 +17,7 @@ export interface BackgroundStackRefreshProps {
|
|
|
17
17
|
/**
|
|
18
18
|
* Used to send messages.
|
|
19
19
|
*/
|
|
20
|
-
readonly
|
|
20
|
+
readonly ioHelper: IoHelper;
|
|
21
21
|
/**
|
|
22
22
|
* Active Asset storage
|
|
23
23
|
*/
|
|
@@ -36,7 +36,7 @@ async function paginateSdkCall(cb) {
|
|
|
36
36
|
* - stacks in DELETE_COMPLETE or DELETE_IN_PROGRESS stage
|
|
37
37
|
* - stacks that are using a different bootstrap qualifier
|
|
38
38
|
*/
|
|
39
|
-
async function fetchAllStackTemplates(cfn,
|
|
39
|
+
async function fetchAllStackTemplates(cfn, ioHelper, qualifier) {
|
|
40
40
|
var _a;
|
|
41
41
|
const stackNames = [];
|
|
42
42
|
await paginateSdkCall(async (nextToken) => {
|
|
@@ -49,7 +49,7 @@ async function fetchAllStackTemplates(cfn, { ioHost, action }, qualifier) {
|
|
|
49
49
|
.map((s) => { var _a; return (_a = s.StackId) !== null && _a !== void 0 ? _a : s.StackName; }));
|
|
50
50
|
return stacks.NextToken;
|
|
51
51
|
});
|
|
52
|
-
await
|
|
52
|
+
await ioHelper.notify((0, messages_1.debug)(`Parsing through ${stackNames.length} stacks`));
|
|
53
53
|
const templates = [];
|
|
54
54
|
for (const stack of stackNames) {
|
|
55
55
|
let summary;
|
|
@@ -67,7 +67,7 @@ async function fetchAllStackTemplates(cfn, { ioHost, action }, qualifier) {
|
|
|
67
67
|
templates.push(((_a = template.TemplateBody) !== null && _a !== void 0 ? _a : '') + JSON.stringify(summary === null || summary === void 0 ? void 0 : summary.Parameters));
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
await
|
|
70
|
+
await ioHelper.notify((0, messages_1.debug)('Done parsing through stacks'));
|
|
71
71
|
return templates;
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
@@ -89,9 +89,9 @@ function bootstrapFilter(parameters, qualifier) {
|
|
|
89
89
|
splitBootstrapVersion.length == 4 &&
|
|
90
90
|
splitBootstrapVersion[2] != qualifier);
|
|
91
91
|
}
|
|
92
|
-
async function refreshStacks(cfn,
|
|
92
|
+
async function refreshStacks(cfn, ioHelper, activeAssets, qualifier) {
|
|
93
93
|
try {
|
|
94
|
-
const stacks = await fetchAllStackTemplates(cfn,
|
|
94
|
+
const stacks = await fetchAllStackTemplates(cfn, ioHelper, qualifier);
|
|
95
95
|
for (const stack of stacks) {
|
|
96
96
|
activeAssets.rememberStack(stack);
|
|
97
97
|
}
|
|
@@ -116,7 +116,7 @@ class BackgroundStackRefresh {
|
|
|
116
116
|
}
|
|
117
117
|
async refresh() {
|
|
118
118
|
const startTime = Date.now();
|
|
119
|
-
await refreshStacks(this.props.cfn, this.props.
|
|
119
|
+
await refreshStacks(this.props.cfn, this.props.ioHelper, this.props.activeAssets, this.props.qualifier);
|
|
120
120
|
this.justRefreshedStacks();
|
|
121
121
|
// If the last invocation of refreshStacks takes <5 minutes, the next invocation starts 5 minutes after the last one started.
|
|
122
122
|
// If the last invocation of refreshStacks takes >5 minutes, the next invocation starts immediately.
|
|
@@ -151,4 +151,4 @@ class BackgroundStackRefresh {
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
exports.BackgroundStackRefresh = BackgroundStackRefresh;
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stcmVmcmVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLXJlZnJlc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBb0dBLHNDQVNDO0FBNUdELGlEQUEyQztBQUUzQywrQ0FBbUQ7QUFHbkQsTUFBYSxnQkFBZ0I7SUFBN0I7UUFDbUIsV0FBTSxHQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBY25ELENBQUM7SUFaUSxhQUFhLENBQUMsYUFBcUI7UUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhO1FBQzNCLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMxQixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFmRCw0Q0FlQztBQUVELEtBQUssVUFBVSxlQUFlLENBQUMsRUFBdUQ7SUFDcEYsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLElBQUksU0FBNkIsQ0FBQztJQUNsQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILEtBQUssVUFBVSxzQkFBc0IsQ0FBQyxHQUEwQixFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBZSxFQUFFLFNBQWtCOztJQUNuSCxNQUFNLFVBQVUsR0FBYSxFQUFFLENBQUM7SUFDaEMsTUFBTSxl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QUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQXpERCx3REF5REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJhbWV0ZXJEZWNsYXJhdGlvbiB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBkZWJ1ZyB9IGZyb20gJy4uLy4uL2NsaS9tZXNzYWdlcyc7XG5pbXBvcnQgeyBJb01lc3NhZ2luZyB9IGZyb20gJy4uLy4uL3Rvb2xraXQvY2xpLWlvLWhvc3QnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC9lcnJvcic7XG5pbXBvcnQgeyBJQ2xvdWRGb3JtYXRpb25DbGllbnQgfSBmcm9tICcuLi9hd3MtYXV0aCc7XG5cbmV4cG9ydCBjbGFzcyBBY3RpdmVBc3NldENhY2hlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFja3M6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpO1xuXG4gIHB1YmxpYyByZW1lbWJlclN0YWNrKHN0YWNrVGVtcGxhdGU6IHN0cmluZykge1xuICAgIHRoaXMuc3RhY2tzLmFkZChzdGFja1RlbXBsYXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBjb250YWlucyhhc3NldDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBzdGFjayBvZiB0aGlzLnN0YWNrcykge1xuICAgICAgaWYgKHN0YWNrLmluY2x1ZGVzKGFzc2V0KSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhZ2luYXRlU2RrQ2FsbChjYjogKG5leHRUb2tlbj86IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+KSB7XG4gIGxldCBmaW5pc2hlZCA9IGZhbHNlO1xuICBsZXQgbmV4dFRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHdoaWxlICghZmluaXNoZWQpIHtcbiAgICBuZXh0VG9rZW4gPSBhd2FpdCBjYihuZXh0VG9rZW4pO1xuICAgIGlmIChuZXh0VG9rZW4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgZmluaXNoZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEZldGNoZXMgYWxsIHJlbGV2YW50IHN0YWNrIHRlbXBsYXRlcyBmcm9tIENsb3VkRm9ybWF0aW9uLiBJdCBpZ25vcmVzIHRoZSBmb2xsb3dpbmcgc3RhY2tzOlxuICogLSBzdGFja3MgaW4gREVMRVRFX0NPTVBMRVRFIG9yIERFTEVURV9JTl9QUk9HUkVTUyBzdGFnZVxuICogLSBzdGFja3MgdGhhdCBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgYm9vdHN0cmFwIHF1YWxpZmllclxuICovXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFsbFN0YWNrVGVtcGxhdGVzKGNmbjogSUNsb3VkRm9ybWF0aW9uQ2xpZW50LCB7IGlvSG9zdCwgYWN0aW9uIH06IElvTWVzc2FnaW5nLCBxdWFsaWZpZXI/OiBzdHJpbmcpIHtcbiAgY29uc3Qgc3RhY2tOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgYXdhaXQgcGFnaW5hdGVTZGtDYWxsKGFzeW5jIChuZXh0VG9rZW4pID0+IHtcbiAgICBjb25zdCBzdGFja3MgPSBhd2FpdCBjZm4ubGlzdFN0YWNrcyh7IE5leHRUb2tlbjogbmV4dFRva2VuIH0pO1xuXG4gICAgLy8gV2UgaWdub3JlIHN0YWNrcyB3aXRoIHRoZXNlIHN0YXR1c2VzIGJlY2F1c2UgdGhlaXIgYXNzZXRzIGFyZSBubyBsb25nZXIgbGl2ZVxuICAgIGNvbnN0IGlnbm9yZWRTdGF0dWVzID0gWydDUkVBVEVfRkFJTEVEJywgJ0RFTEVURV9DT01QTEVURScsICdERUxFVEVfSU5fUFJPR1JFU1MnLCAnREVMRVRFX0ZBSUxFRCcsICdSRVZJRVdfSU5fUFJPR1JFU1MnXTtcbiAgICBzdGFja05hbWVzLnB1c2goXG4gICAgICAuLi4oc3RhY2tzLlN0YWNrU3VtbWFyaWVzID8/IFtdKVxuICAgICAgICAuZmlsdGVyKChzOiBhbnkpID0+ICFpZ25vcmVkU3RhdHVlcy5pbmNsdWRlcyhzLlN0YWNrU3RhdHVzKSlcbiAgICAgICAgLm1hcCgoczogYW55KSA9PiBzLlN0YWNrSWQgPz8gcy5TdGFja05hbWUpLFxuICAgICk7XG5cbiAgICByZXR1cm4gc3RhY2tzLk5leHRUb2tlbjtcbiAgfSk7XG5cbiAgYXdhaXQgaW9Ib3N0Lm5vdGlmeShkZWJ1ZyhhY3Rpb24sIGBQYXJzaW5nIHRocm91Z2ggJHtzdGFja05hbWVzLmxlbmd0aH0gc3RhY2tzYCkpO1xuXG4gIGNvbnN0IHRlbXBsYXRlczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBzdGFjayBvZiBzdGFja05hbWVzKSB7XG4gICAgbGV0IHN1bW1hcnk7XG4gICAgc3VtbWFyeSA9IGF3YWl0IGNmbi5nZXRUZW1wbGF0ZVN1bW1hcnkoe1xuICAgICAgU3RhY2tOYW1lOiBzdGFjayxcbiAgICB9KTtcblxuICAgIGlmIChib290c3RyYXBGaWx0ZXIoc3VtbWFyeS5QYXJhbWV0ZXJzLCBxdWFsaWZpZXIpKSB7XG4gICAgICAvLyBUaGlzIHN0YWNrIGlzIGRlZmluaXRlbHkgYm9vdHN0cmFwcGVkIHRvIGEgZGlmZmVyZW50IHF1YWxpZmllciBzbyB3ZSBjYW4gc2FmZWx5IGlnbm9yZSBpdFxuICAgICAgY29udGludWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRlbXBsYXRlID0gYXdhaXQgY2ZuLmdldFRlbXBsYXRlKHtcbiAgICAgICAgU3RhY2tOYW1lOiBzdGFjayxcbiAgICAgIH0pO1xuXG4gICAgICB0ZW1wbGF0ZXMucHVzaCgodGVtcGxhdGUuVGVtcGxhdGVCb2R5ID8/ICcnKSArIEpTT04uc3RyaW5naWZ5KHN1bW1hcnk/LlBhcmFtZXRlcnMpKTtcbiAgICB9XG4gIH1cblxuICBhd2FpdCBpb0hvc3Qubm90aWZ5KGRlYnVnKGFjdGlvbiwgJ0RvbmUgcGFyc2luZyB0aHJvdWdoIHN0YWNrcycpKTtcblxuICByZXR1cm4gdGVtcGxhdGVzO1xufVxuXG4vKipcbiAqIEZpbHRlciBvdXQgc3RhY2tzIHRoYXQgd2UgS05PVyBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgYm9vdHN0cmFwIHF1YWxpZmllclxuICogVGhpcyBpcyBtb3N0bHkgbmVjZXNzYXJ5IGZvciB0aGUgaW50ZWdyYXRpb24gdGVzdHMgdGhhdCBjYW4gcnVuIHRoZSBzYW1lIGFwcCAod2l0aCB0aGUgc2FtZSBhc3NldHMpXG4gKiB1bmRlciBkaWZmZXJlbnQgcXVhbGlmaWVycy5cbiAqIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgYSBzdGFjayB1bmRlciBhIGRpZmZlcmVudCBib290c3RyYXAgY291bGQgY29pbmNpZGVudGFsbHkgcmVmZXJlbmNlIHRoZSBzYW1lIGhhc2hcbiAqIGFuZCBjYXVzZSBhIGZhbHNlIG5lZ2F0aXZlIChjYXVzZSBhbiBhc3NldCB0byBiZSBwcmVzZXJ2ZWQgd2hlbiBpdHMgaXNvbGF0ZWQpXG4gKiBUaGlzIGlzIGludGVudGlvbmFsbHkgZG9uZSBpbiBhIHdheSB3aGVyZSB3ZSBPTkxZIGZpbHRlciBvdXQgc3RhY2tzIHRoYXQgYXJlIG1lYW50IGZvciBhIGRpZmZlcmVudCBxdWFsaWZpZXJcbiAqIGJlY2F1c2Ugd2UgYXJlIG9rYXkgd2l0aCBmYWxzZSBwb3NpdGl2ZXMuXG4gKi9cbmZ1bmN0aW9uIGJvb3RzdHJhcEZpbHRlcihwYXJhbWV0ZXJzPzogUGFyYW1ldGVyRGVjbGFyYXRpb25bXSwgcXVhbGlmaWVyPzogc3RyaW5nKSB7XG4gIGNvbnN0IGJvb3RzdHJhcFZlcnNpb24gPSBwYXJhbWV0ZXJzPy5maW5kKChwKSA9PiBwLlBhcmFtZXRlcktleSA9PT0gJ0Jvb3RzdHJhcFZlcnNpb24nKTtcbiAgY29uc3Qgc3BsaXRCb290c3RyYXBWZXJzaW9uID0gYm9vdHN0cmFwVmVyc2lvbj8uRGVmYXVsdFZhbHVlPy5zcGxpdCgnLycpO1xuICAvLyBXZSBmaW5kIHRoZSBxdWFsaWZpZXIgaW4gYSBzcGVjaWZpYyBwYXJ0IG9mIHRoZSBib290c3RyYXAgdmVyc2lvbiBwYXJhbWV0ZXJcbiAgcmV0dXJuIChxdWFsaWZpZXIgJiZcbiAgICAgICAgICBzcGxpdEJvb3RzdHJhcFZlcnNpb24gJiZcbiAgICAgICAgICBzcGxpdEJvb3RzdHJhcFZlcnNpb24ubGVuZ3RoID09IDQgJiZcbiAgICAgICAgICBzcGxpdEJvb3RzdHJhcFZlcnNpb25bMl0gIT0gcXVhbGlmaWVyKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZnJlc2hTdGFja3MoY2ZuOiBJQ2xvdWRGb3JtYXRpb25DbGllbnQsIHsgaW9Ib3N0LCBhY3Rpb24gfTogSW9NZXNzYWdpbmcsIGFjdGl2ZUFzc2V0czogQWN0aXZlQXNzZXRDYWNoZSwgcXVhbGlmaWVyPzogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgY29uc3Qgc3RhY2tzID0gYXdhaXQgZmV0Y2hBbGxTdGFja1RlbXBsYXRlcyhjZm4sIHsgaW9Ib3N0LCBhY3Rpb24gfSwgcXVhbGlmaWVyKTtcbiAgICBmb3IgKGNvbnN0IHN0YWNrIG9mIHN0YWNrcykge1xuICAgICAgYWN0aXZlQXNzZXRzLnJlbWVtYmVyU3RhY2soc3RhY2spO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgRXJyb3IgcmVmcmVzaGluZyBzdGFja3M6ICR7ZXJyfWApO1xuICB9XG59XG5cbi8qKlxuICogQmFja2dyb3VuZCBTdGFjayBSZWZyZXNoIHByb3BlcnRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYWNrZ3JvdW5kU3RhY2tSZWZyZXNoUHJvcHMge1xuICAvKipcbiAgICogVGhlIENGTiBTREsgaGFuZGxlclxuICAgKi9cbiAgcmVhZG9ubHkgY2ZuOiBJQ2xvdWRGb3JtYXRpb25DbGllbnQ7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gc2VuZCBtZXNzYWdlcy5cbiAgICovXG4gIHJlYWRvbmx5IG1zZzogSW9NZXNzYWdpbmc7XG5cbiAgLyoqXG4gICAqIEFjdGl2ZSBBc3NldCBzdG9yYWdlXG4gICAqL1xuICByZWFkb25seSBhY3RpdmVBc3NldHM6IEFjdGl2ZUFzc2V0Q2FjaGU7XG5cbiAgLyoqXG4gICAqIFN0YWNrIGJvb3RzdHJhcCBxdWFsaWZpZXJcbiAgICovXG4gIHJlYWRvbmx5IHF1YWxpZmllcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDbGFzcyB0aGF0IGNvbnRyb2xzIHNjaGVkdWxpbmcgb2YgdGhlIGJhY2tncm91bmQgc3RhY2sgcmVmcmVzaFxuICovXG5leHBvcnQgY2xhc3MgQmFja2dyb3VuZFN0YWNrUmVmcmVzaCB7XG4gIHByaXZhdGUgdGltZW91dD86IE5vZGVKUy5UaW1lb3V0O1xuICBwcml2YXRlIGxhc3RSZWZyZXNoVGltZTogbnVtYmVyO1xuICBwcml2YXRlIHF1ZXVlZFByb21pc2VzOiBBcnJheTwodmFsdWU6IHVua25vd24pID0+IHZvaWQ+ID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogQmFja2dyb3VuZFN0YWNrUmVmcmVzaFByb3BzKSB7XG4gICAgdGhpcy5sYXN0UmVmcmVzaFRpbWUgPSBEYXRlLm5vdygpO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0KCkge1xuICAgIC8vIFNpbmNlIHN0YXJ0IGlzIGdvaW5nIHRvIGJlIGNhbGxlZCByaWdodCBhZnRlciB0aGUgZmlyc3QgaW52b2NhdGlvbiBvZiByZWZyZXNoU3RhY2tzLFxuICAgIC8vIGxldHMgd2FpdCBzb21lIHRpbWUgYmVmb3JlIGJlZ2lubmluZyB0aGUgYmFja2dyb3VuZCByZWZyZXNoLlxuICAgIHRoaXMudGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWZyZXNoKCksIDMwMF8wMDApOyAvLyA1IG1pbnV0ZXNcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVmcmVzaCgpIHtcbiAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuXG4gICAgYXdhaXQgcmVmcmVzaFN0YWNrcyh0aGlzLnByb3BzLmNmbiwgdGhpcy5wcm9wcy5tc2csIHRoaXMucHJvcHMuYWN0aXZlQXNzZXRzLCB0aGlzLnByb3BzLnF1YWxpZmllcik7XG4gICAgdGhpcy5qdXN0UmVmcmVzaGVkU3RhY2tzKCk7XG5cbiAgICAvLyBJZiB0aGUgbGFzdCBpbnZvY2F0aW9uIG9mIHJlZnJlc2hTdGFja3MgdGFrZXMgPDUgbWludXRlcywgdGhlIG5leHQgaW52b2NhdGlvbiBzdGFydHMgNSBtaW51dGVzIGFmdGVyIHRoZSBsYXN0IG9uZSBzdGFydGVkLlxuICAgIC8vIElmIHRoZSBsYXN0IGludm9jYXRpb24gb2YgcmVmcmVzaFN0YWNrcyB0YWtlcyA+NSBtaW51dGVzLCB0aGUgbmV4dCBpbnZvY2F0aW9uIHN0YXJ0cyBpbW1lZGlhdGVseS5cbiAgICB0aGlzLnRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVmcmVzaCgpLCBNYXRoLm1heChzdGFydFRpbWUgKyAzMDBfMDAwIC0gRGF0ZS5ub3coKSwgMCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBqdXN0UmVmcmVzaGVkU3RhY2tzKCkge1xuICAgIHRoaXMubGFzdFJlZnJlc2hUaW1lID0gRGF0ZS5ub3coKTtcbiAgICBmb3IgKGNvbnN0IHAgb2YgdGhpcy5xdWV1ZWRQcm9taXNlcy5zcGxpY2UoMCwgdGhpcy5xdWV1ZWRQcm9taXNlcy5sZW5ndGgpKSB7XG4gICAgICBwKHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGJhY2tncm91bmQgcmVmcmVzaCBoYXBwZW5lZCB3aXRoaW4gdGhlIHNwZWNpZmllZCB0aW1lIGZyYW1lLlxuICAgKiBJZiB0aGUgbGFzdCByZWZyZXNoIGlzIG9sZGVyIHRoYW4gdGhlIHNwZWNpZmllZCB0aW1lIGZyYW1lLCBpdCByZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzXG4gICAqIHdoZW4gdGhlIG5leHQgYmFja2dyb3VuZCByZWZyZXNoIGNvbXBsZXRlcyBvciByZWplY3RzIGlmIHRoZSByZWZyZXNoIHRha2VzIHRvbyBsb25nLlxuICAgKi9cbiAgcHVibGljIG5vT2xkZXJUaGFuKG1zOiBudW1iZXIpIHtcbiAgICBjb25zdCBob3Jpem9uID0gRGF0ZS5ub3coKSAtIG1zO1xuXG4gICAgLy8gVGhlIGxhc3QgcmVmcmVzaCBoYXBwZW5lZCB3aXRoaW4gdGhlIHRpbWUgZnJhbWVcbiAgICBpZiAodGhpcy5sYXN0UmVmcmVzaFRpbWUgPj0gaG9yaXpvbikge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIC8vIFRoZSBsYXN0IHJlZnJlc2ggaGFwcGVuZWQgZWFybGllciB0aGFuIHRoZSB0aW1lIGZyYW1lXG4gICAgLy8gV2Ugd2lsbCB3YWl0IGZvciB0aGUgbGF0ZXN0IHJlZnJlc2ggdG8gbGFuZCBvciByZWplY3QgaWYgaXQgdGFrZXMgdG9vIGxvbmdcbiAgICByZXR1cm4gUHJvbWlzZS5yYWNlKFtcbiAgICAgIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdGhpcy5xdWV1ZWRQcm9taXNlcy5wdXNoKHJlc29sdmUpKSxcbiAgICAgIG5ldyBQcm9taXNlKChfLCByZWplY3QpID0+IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KG5ldyBUb29sa2l0RXJyb3IoJ3JlZnJlc2hTdGFja3MgdG9vayB0b28gbG9uZzsgdGhlIGJhY2tncm91bmQgdGhyZWFkIGxpa2VseSB0aHJldyBhbiBlcnJvcicpKSwgbXMpKSxcbiAgICBdKTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9wKCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuICB9XG59XG4iXX0=
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stcmVmcmVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLXJlZnJlc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBb0dBLHNDQVNDO0FBM0dELGlEQUEyQztBQUMzQywrQ0FBbUQ7QUFHbkQsTUFBYSxnQkFBZ0I7SUFBN0I7UUFDbUIsV0FBTSxHQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBY25ELENBQUM7SUFaUSxhQUFhLENBQUMsYUFBcUI7UUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhO1FBQzNCLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMxQixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFmRCw0Q0FlQztBQUVELEtBQUssVUFBVSxlQUFlLENBQUMsRUFBdUQ7SUFDcEYsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLElBQUksU0FBNkIsQ0FBQztJQUNsQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILEtBQUssVUFBVSxzQkFBc0IsQ0FBQyxHQUEwQixFQUFFLFFBQWtCLEVBQUUsU0FBa0I7O0lBQ3RHLE1BQU0sVUFBVSxHQUFhLEVBQUUsQ0FBQztJQUNoQyxNQUFNLGVBQWUsQ0FBQyxLQUFLLEVBQUUs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YXJhbWV0ZXJEZWNsYXJhdGlvbiB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBJb0hlbHBlciB9IGZyb20gJy4uLy4uLy4uLy4uL0Bhd3MtY2RrL3RtcC10b29sa2l0LWhlbHBlcnMvc3JjL2FwaS9pby9wcml2YXRlJztcbmltcG9ydCB7IGRlYnVnIH0gZnJvbSAnLi4vLi4vY2xpL21lc3NhZ2VzJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvZXJyb3InO1xuaW1wb3J0IHsgSUNsb3VkRm9ybWF0aW9uQ2xpZW50IH0gZnJvbSAnLi4vYXdzLWF1dGgnO1xuXG5leHBvcnQgY2xhc3MgQWN0aXZlQXNzZXRDYWNoZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhY2tzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcblxuICBwdWJsaWMgcmVtZW1iZXJTdGFjayhzdGFja1RlbXBsYXRlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0YWNrcy5hZGQoc3RhY2tUZW1wbGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgY29udGFpbnMoYXNzZXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3Qgc3RhY2sgb2YgdGhpcy5zdGFja3MpIHtcbiAgICAgIGlmIChzdGFjay5pbmNsdWRlcyhhc3NldCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBwYWdpbmF0ZVNka0NhbGwoY2I6IChuZXh0VG9rZW4/OiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPikge1xuICBsZXQgZmluaXNoZWQgPSBmYWxzZTtcbiAgbGV0IG5leHRUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB3aGlsZSAoIWZpbmlzaGVkKSB7XG4gICAgbmV4dFRva2VuID0gYXdhaXQgY2IobmV4dFRva2VuKTtcbiAgICBpZiAobmV4dFRva2VuID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGZpbmlzaGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBGZXRjaGVzIGFsbCByZWxldmFudCBzdGFjayB0ZW1wbGF0ZXMgZnJvbSBDbG91ZEZvcm1hdGlvbi4gSXQgaWdub3JlcyB0aGUgZm9sbG93aW5nIHN0YWNrczpcbiAqIC0gc3RhY2tzIGluIERFTEVURV9DT01QTEVURSBvciBERUxFVEVfSU5fUFJPR1JFU1Mgc3RhZ2VcbiAqIC0gc3RhY2tzIHRoYXQgYXJlIHVzaW5nIGEgZGlmZmVyZW50IGJvb3RzdHJhcCBxdWFsaWZpZXJcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZmV0Y2hBbGxTdGFja1RlbXBsYXRlcyhjZm46IElDbG91ZEZvcm1hdGlvbkNsaWVudCwgaW9IZWxwZXI6IElvSGVscGVyLCBxdWFsaWZpZXI/OiBzdHJpbmcpIHtcbiAgY29uc3Qgc3RhY2tOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgYXdhaXQgcGFnaW5hdGVTZGtDYWxsKGFzeW5jIChuZXh0VG9rZW4pID0+IHtcbiAgICBjb25zdCBzdGFja3MgPSBhd2FpdCBjZm4ubGlzdFN0YWNrcyh7IE5leHRUb2tlbjogbmV4dFRva2VuIH0pO1xuXG4gICAgLy8gV2UgaWdub3JlIHN0YWNrcyB3aXRoIHRoZXNlIHN0YXR1c2VzIGJlY2F1c2UgdGhlaXIgYXNzZXRzIGFyZSBubyBsb25nZXIgbGl2ZVxuICAgIGNvbnN0IGlnbm9yZWRTdGF0dWVzID0gWydDUkVBVEVfRkFJTEVEJywgJ0RFTEVURV9DT01QTEVURScsICdERUxFVEVfSU5fUFJPR1JFU1MnLCAnREVMRVRFX0ZBSUxFRCcsICdSRVZJRVdfSU5fUFJPR1JFU1MnXTtcbiAgICBzdGFja05hbWVzLnB1c2goXG4gICAgICAuLi4oc3RhY2tzLlN0YWNrU3VtbWFyaWVzID8/IFtdKVxuICAgICAgICAuZmlsdGVyKChzOiBhbnkpID0+ICFpZ25vcmVkU3RhdHVlcy5pbmNsdWRlcyhzLlN0YWNrU3RhdHVzKSlcbiAgICAgICAgLm1hcCgoczogYW55KSA9PiBzLlN0YWNrSWQgPz8gcy5TdGFja05hbWUpLFxuICAgICk7XG5cbiAgICByZXR1cm4gc3RhY2tzLk5leHRUb2tlbjtcbiAgfSk7XG5cbiAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KGRlYnVnKGBQYXJzaW5nIHRocm91Z2ggJHtzdGFja05hbWVzLmxlbmd0aH0gc3RhY2tzYCkpO1xuXG4gIGNvbnN0IHRlbXBsYXRlczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBzdGFjayBvZiBzdGFja05hbWVzKSB7XG4gICAgbGV0IHN1bW1hcnk7XG4gICAgc3VtbWFyeSA9IGF3YWl0IGNmbi5nZXRUZW1wbGF0ZVN1bW1hcnkoe1xuICAgICAgU3RhY2tOYW1lOiBzdGFjayxcbiAgICB9KTtcblxuICAgIGlmIChib290c3RyYXBGaWx0ZXIoc3VtbWFyeS5QYXJhbWV0ZXJzLCBxdWFsaWZpZXIpKSB7XG4gICAgICAvLyBUaGlzIHN0YWNrIGlzIGRlZmluaXRlbHkgYm9vdHN0cmFwcGVkIHRvIGEgZGlmZmVyZW50IHF1YWxpZmllciBzbyB3ZSBjYW4gc2FmZWx5IGlnbm9yZSBpdFxuICAgICAgY29udGludWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRlbXBsYXRlID0gYXdhaXQgY2ZuLmdldFRlbXBsYXRlKHtcbiAgICAgICAgU3RhY2tOYW1lOiBzdGFjayxcbiAgICAgIH0pO1xuXG4gICAgICB0ZW1wbGF0ZXMucHVzaCgodGVtcGxhdGUuVGVtcGxhdGVCb2R5ID8/ICcnKSArIEpTT04uc3RyaW5naWZ5KHN1bW1hcnk/LlBhcmFtZXRlcnMpKTtcbiAgICB9XG4gIH1cblxuICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoZGVidWcoJ0RvbmUgcGFyc2luZyB0aHJvdWdoIHN0YWNrcycpKTtcblxuICByZXR1cm4gdGVtcGxhdGVzO1xufVxuXG4vKipcbiAqIEZpbHRlciBvdXQgc3RhY2tzIHRoYXQgd2UgS05PVyBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgYm9vdHN0cmFwIHF1YWxpZmllclxuICogVGhpcyBpcyBtb3N0bHkgbmVjZXNzYXJ5IGZvciB0aGUgaW50ZWdyYXRpb24gdGVzdHMgdGhhdCBjYW4gcnVuIHRoZSBzYW1lIGFwcCAod2l0aCB0aGUgc2FtZSBhc3NldHMpXG4gKiB1bmRlciBkaWZmZXJlbnQgcXVhbGlmaWVycy5cbiAqIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgYSBzdGFjayB1bmRlciBhIGRpZmZlcmVudCBib290c3RyYXAgY291bGQgY29pbmNpZGVudGFsbHkgcmVmZXJlbmNlIHRoZSBzYW1lIGhhc2hcbiAqIGFuZCBjYXVzZSBhIGZhbHNlIG5lZ2F0aXZlIChjYXVzZSBhbiBhc3NldCB0byBiZSBwcmVzZXJ2ZWQgd2hlbiBpdHMgaXNvbGF0ZWQpXG4gKiBUaGlzIGlzIGludGVudGlvbmFsbHkgZG9uZSBpbiBhIHdheSB3aGVyZSB3ZSBPTkxZIGZpbHRlciBvdXQgc3RhY2tzIHRoYXQgYXJlIG1lYW50IGZvciBhIGRpZmZlcmVudCBxdWFsaWZpZXJcbiAqIGJlY2F1c2Ugd2UgYXJlIG9rYXkgd2l0aCBmYWxzZSBwb3NpdGl2ZXMuXG4gKi9cbmZ1bmN0aW9uIGJvb3RzdHJhcEZpbHRlcihwYXJhbWV0ZXJzPzogUGFyYW1ldGVyRGVjbGFyYXRpb25bXSwgcXVhbGlmaWVyPzogc3RyaW5nKSB7XG4gIGNvbnN0IGJvb3RzdHJhcFZlcnNpb24gPSBwYXJhbWV0ZXJzPy5maW5kKChwKSA9PiBwLlBhcmFtZXRlcktleSA9PT0gJ0Jvb3RzdHJhcFZlcnNpb24nKTtcbiAgY29uc3Qgc3BsaXRCb290c3RyYXBWZXJzaW9uID0gYm9vdHN0cmFwVmVyc2lvbj8uRGVmYXVsdFZhbHVlPy5zcGxpdCgnLycpO1xuICAvLyBXZSBmaW5kIHRoZSBxdWFsaWZpZXIgaW4gYSBzcGVjaWZpYyBwYXJ0IG9mIHRoZSBib290c3RyYXAgdmVyc2lvbiBwYXJhbWV0ZXJcbiAgcmV0dXJuIChxdWFsaWZpZXIgJiZcbiAgICAgICAgICBzcGxpdEJvb3RzdHJhcFZlcnNpb24gJiZcbiAgICAgICAgICBzcGxpdEJvb3RzdHJhcFZlcnNpb24ubGVuZ3RoID09IDQgJiZcbiAgICAgICAgICBzcGxpdEJvb3RzdHJhcFZlcnNpb25bMl0gIT0gcXVhbGlmaWVyKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZnJlc2hTdGFja3MoY2ZuOiBJQ2xvdWRGb3JtYXRpb25DbGllbnQsIGlvSGVscGVyOiBJb0hlbHBlciwgYWN0aXZlQXNzZXRzOiBBY3RpdmVBc3NldENhY2hlLCBxdWFsaWZpZXI/OiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzdGFja3MgPSBhd2FpdCBmZXRjaEFsbFN0YWNrVGVtcGxhdGVzKGNmbiwgaW9IZWxwZXIsIHF1YWxpZmllcik7XG4gICAgZm9yIChjb25zdCBzdGFjayBvZiBzdGFja3MpIHtcbiAgICAgIGFjdGl2ZUFzc2V0cy5yZW1lbWJlclN0YWNrKHN0YWNrKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYEVycm9yIHJlZnJlc2hpbmcgc3RhY2tzOiAke2Vycn1gKTtcbiAgfVxufVxuXG4vKipcbiAqIEJhY2tncm91bmQgU3RhY2sgUmVmcmVzaCBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFja2dyb3VuZFN0YWNrUmVmcmVzaFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBDRk4gU0RLIGhhbmRsZXJcbiAgICovXG4gIHJlYWRvbmx5IGNmbjogSUNsb3VkRm9ybWF0aW9uQ2xpZW50O1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHNlbmQgbWVzc2FnZXMuXG4gICAqL1xuICByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgLyoqXG4gICAqIEFjdGl2ZSBBc3NldCBzdG9yYWdlXG4gICAqL1xuICByZWFkb25seSBhY3RpdmVBc3NldHM6IEFjdGl2ZUFzc2V0Q2FjaGU7XG5cbiAgLyoqXG4gICAqIFN0YWNrIGJvb3RzdHJhcCBxdWFsaWZpZXJcbiAgICovXG4gIHJlYWRvbmx5IHF1YWxpZmllcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDbGFzcyB0aGF0IGNvbnRyb2xzIHNjaGVkdWxpbmcgb2YgdGhlIGJhY2tncm91bmQgc3RhY2sgcmVmcmVzaFxuICovXG5leHBvcnQgY2xhc3MgQmFja2dyb3VuZFN0YWNrUmVmcmVzaCB7XG4gIHByaXZhdGUgdGltZW91dD86IE5vZGVKUy5UaW1lb3V0O1xuICBwcml2YXRlIGxhc3RSZWZyZXNoVGltZTogbnVtYmVyO1xuICBwcml2YXRlIHF1ZXVlZFByb21pc2VzOiBBcnJheTwodmFsdWU6IHVua25vd24pID0+IHZvaWQ+ID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogQmFja2dyb3VuZFN0YWNrUmVmcmVzaFByb3BzKSB7XG4gICAgdGhpcy5sYXN0UmVmcmVzaFRpbWUgPSBEYXRlLm5vdygpO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0KCkge1xuICAgIC8vIFNpbmNlIHN0YXJ0IGlzIGdvaW5nIHRvIGJlIGNhbGxlZCByaWdodCBhZnRlciB0aGUgZmlyc3QgaW52b2NhdGlvbiBvZiByZWZyZXNoU3RhY2tzLFxuICAgIC8vIGxldHMgd2FpdCBzb21lIHRpbWUgYmVmb3JlIGJlZ2lubmluZyB0aGUgYmFja2dyb3VuZCByZWZyZXNoLlxuICAgIHRoaXMudGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWZyZXNoKCksIDMwMF8wMDApOyAvLyA1IG1pbnV0ZXNcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVmcmVzaCgpIHtcbiAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuXG4gICAgYXdhaXQgcmVmcmVzaFN0YWNrcyh0aGlzLnByb3BzLmNmbiwgdGhpcy5wcm9wcy5pb0hlbHBlciwgdGhpcy5wcm9wcy5hY3RpdmVBc3NldHMsIHRoaXMucHJvcHMucXVhbGlmaWVyKTtcbiAgICB0aGlzLmp1c3RSZWZyZXNoZWRTdGFja3MoKTtcblxuICAgIC8vIElmIHRoZSBsYXN0IGludm9jYXRpb24gb2YgcmVmcmVzaFN0YWNrcyB0YWtlcyA8NSBtaW51dGVzLCB0aGUgbmV4dCBpbnZvY2F0aW9uIHN0YXJ0cyA1IG1pbnV0ZXMgYWZ0ZXIgdGhlIGxhc3Qgb25lIHN0YXJ0ZWQuXG4gICAgLy8gSWYgdGhlIGxhc3QgaW52b2NhdGlvbiBvZiByZWZyZXNoU3RhY2tzIHRha2VzID41IG1pbnV0ZXMsIHRoZSBuZXh0IGludm9jYXRpb24gc3RhcnRzIGltbWVkaWF0ZWx5LlxuICAgIHRoaXMudGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWZyZXNoKCksIE1hdGgubWF4KHN0YXJ0VGltZSArIDMwMF8wMDAgLSBEYXRlLm5vdygpLCAwKSk7XG4gIH1cblxuICBwcml2YXRlIGp1c3RSZWZyZXNoZWRTdGFja3MoKSB7XG4gICAgdGhpcy5sYXN0UmVmcmVzaFRpbWUgPSBEYXRlLm5vdygpO1xuICAgIGZvciAoY29uc3QgcCBvZiB0aGlzLnF1ZXVlZFByb21pc2VzLnNwbGljZSgwLCB0aGlzLnF1ZXVlZFByb21pc2VzLmxlbmd0aCkpIHtcbiAgICAgIHAodW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgYmFja2dyb3VuZCByZWZyZXNoIGhhcHBlbmVkIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHRpbWUgZnJhbWUuXG4gICAqIElmIHRoZSBsYXN0IHJlZnJlc2ggaXMgb2xkZXIgdGhhbiB0aGUgc3BlY2lmaWVkIHRpbWUgZnJhbWUsIGl0IHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXNcbiAgICogd2hlbiB0aGUgbmV4dCBiYWNrZ3JvdW5kIHJlZnJlc2ggY29tcGxldGVzIG9yIHJlamVjdHMgaWYgdGhlIHJlZnJlc2ggdGFrZXMgdG9vIGxvbmcuXG4gICAqL1xuICBwdWJsaWMgbm9PbGRlclRoYW4obXM6IG51bWJlcikge1xuICAgIGNvbnN0IGhvcml6b24gPSBEYXRlLm5vdygpIC0gbXM7XG5cbiAgICAvLyBUaGUgbGFzdCByZWZyZXNoIGhhcHBlbmVkIHdpdGhpbiB0aGUgdGltZSBmcmFtZVxuICAgIGlmICh0aGlzLmxhc3RSZWZyZXNoVGltZSA+PSBob3Jpem9uKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgLy8gVGhlIGxhc3QgcmVmcmVzaCBoYXBwZW5lZCBlYXJsaWVyIHRoYW4gdGhlIHRpbWUgZnJhbWVcbiAgICAvLyBXZSB3aWxsIHdhaXQgZm9yIHRoZSBsYXRlc3QgcmVmcmVzaCB0byBsYW5kIG9yIHJlamVjdCBpZiBpdCB0YWtlcyB0b28gbG9uZ1xuICAgIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgICAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0aGlzLnF1ZXVlZFByb21pc2VzLnB1c2gocmVzb2x2ZSkpLFxuICAgICAgbmV3IFByb21pc2UoKF8sIHJlamVjdCkgPT4gc2V0VGltZW91dCgoKSA9PiByZWplY3QobmV3IFRvb2xraXRFcnJvcigncmVmcmVzaFN0YWNrcyB0b29rIHRvbyBsb25nOyB0aGUgYmFja2dyb3VuZCB0aHJlYWQgbGlrZWx5IHRocmV3IGFuIGVycm9yJykpLCBtcykpLFxuICAgIF0pO1xuICB9XG5cbiAgcHVibGljIHN0b3AoKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CloudFormationStackArtifact, Environment } from '@aws-cdk/cx-api';
|
|
2
|
-
import {
|
|
2
|
+
import { IoHelper } from '../../../../@aws-cdk/tmp-toolkit-helpers/src/api/io/private';
|
|
3
3
|
import type { SDK, SdkProvider } from '../aws-auth';
|
|
4
4
|
/**
|
|
5
5
|
* Configuration needed to monitor CloudWatch Log Groups
|
|
@@ -22,4 +22,4 @@ export interface FoundLogGroupsResult {
|
|
|
22
22
|
*/
|
|
23
23
|
readonly logGroupNames: string[];
|
|
24
24
|
}
|
|
25
|
-
export declare function findCloudWatchLogGroups(sdkProvider: SdkProvider,
|
|
25
|
+
export declare function findCloudWatchLogGroups(sdkProvider: SdkProvider, ioHelper: IoHelper, stackArtifact: CloudFormationStackArtifact): Promise<FoundLogGroupsResult>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.findCloudWatchLogGroups = findCloudWatchLogGroups;
|
|
4
|
-
const
|
|
4
|
+
const private_1 = require("../../../../@aws-cdk/tmp-toolkit-helpers/src/api/io/private");
|
|
5
5
|
const util_1 = require("../../util");
|
|
6
6
|
const environment_1 = require("../environment");
|
|
7
7
|
const evaluate_cloudformation_template_1 = require("../evaluate-cloudformation-template");
|
|
@@ -9,15 +9,15 @@ const mode_1 = require("../plugin/mode");
|
|
|
9
9
|
const toolkit_info_1 = require("../toolkit-info");
|
|
10
10
|
// resource types that have associated CloudWatch Log Groups that should _not_ be monitored
|
|
11
11
|
const IGNORE_LOGS_RESOURCE_TYPES = ['AWS::EC2::FlowLog', 'AWS::CloudTrail::Trail', 'AWS::CodeBuild::Project'];
|
|
12
|
-
async function findCloudWatchLogGroups(sdkProvider,
|
|
12
|
+
async function findCloudWatchLogGroups(sdkProvider, ioHelper, stackArtifact) {
|
|
13
13
|
let sdk;
|
|
14
14
|
const resolvedEnv = await sdkProvider.resolveEnvironment(stackArtifact.environment);
|
|
15
15
|
// try to assume the lookup role and fallback to the default credentials
|
|
16
16
|
try {
|
|
17
|
-
sdk = (await new environment_1.EnvironmentAccess(sdkProvider, toolkit_info_1.DEFAULT_TOOLKIT_STACK_NAME,
|
|
17
|
+
sdk = (await new environment_1.EnvironmentAccess(sdkProvider, toolkit_info_1.DEFAULT_TOOLKIT_STACK_NAME, ioHelper).accessStackForLookup(stackArtifact)).sdk;
|
|
18
18
|
}
|
|
19
19
|
catch (e) {
|
|
20
|
-
|
|
20
|
+
await ioHelper.notify(private_1.IO.DEFAULT_TOOLKIT_DEBUG.msg(`Failed to access SDK environment: ${(0, util_1.formatErrorMessage)(e)}`));
|
|
21
21
|
sdk = (await sdkProvider.forEnvironment(resolvedEnv, mode_1.Mode.ForReading)).sdk;
|
|
22
22
|
}
|
|
23
23
|
const listStackResources = new evaluate_cloudformation_template_1.LazyListStackResources(sdk, stackArtifact.stackName);
|
|
@@ -94,4 +94,4 @@ function findAllLogGroupNames(stackResources, evaluateCfnTemplate) {
|
|
|
94
94
|
}
|
|
95
95
|
return logGroupNames;
|
|
96
96
|
}
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1jbG91ZHdhdGNoLWxvZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaW5kLWNsb3Vkd2F0Y2gtbG9ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXNDQSwwREFrQ0M7QUF0RUQsMkNBQXNDO0FBRXRDLHFDQUFnRDtBQUVoRCxnREFBbUQ7QUFDbkQsMEZBQTZHO0FBQzdHLHlDQUFzQztBQUN0QyxrREFBNkQ7QUFFN0QsMkZBQTJGO0FBQzNGLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSx3QkFBd0IsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0FBMEJ2RyxLQUFLLFVBQVUsdUJBQXVCLENBQzNDLFdBQXdCLEVBQ3hCLEdBQWdCLEVBQ2hCLGFBQTBDO0lBRTFDLElBQUksR0FBUSxDQUFDO0lBQ2IsTUFBTSxXQUFXLEdBQUcsTUFBTSxXQUFXLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BGLHdFQUF3RTtJQUN4RSxJQUFJLENBQUM7UUFDSCxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksK0JBQWlCLENBQUMsV0FBVyxFQUFFLHlDQUEwQixFQUFFLEdBQUcsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQzVILENBQUM7SUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1FBQ2hCLElBQUEsZUFBSyxFQUFDLHFDQUFxQyxJQUFBLHlCQUFrQixFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLFdBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUM3RSxDQUFDO0lBRUQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLHlEQUFzQixDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEYsTUFBTSxt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QkFBZ0IsQ0FBQyxRQUFRLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztZQUNyRSxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNqQixhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCwgRW52aXJvbm1lbnQgfSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHR5cGUgeyBTdGFja1Jlc291cmNlU3VtbWFyeSB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBkZWJ1ZyB9IGZyb20gJy4uLy4uL2xvZ2dpbmcnO1xuaW1wb3J0IHsgSW9NZXNzYWdpbmcgfSBmcm9tICcuLi8uLi90b29sa2l0L2NsaS1pby1ob3N0JztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREssIFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXdzLWF1dGgnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRBY2Nlc3MgfSBmcm9tICcuLi9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsIExhenlMaXN0U3RhY2tSZXNvdXJjZXMgfSBmcm9tICcuLi9ldmFsdWF0ZS1jbG91ZGZvcm1hdGlvbi10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBNb2RlIH0gZnJvbSAnLi4vcGx1Z2luL21vZGUnO1xuaW1wb3J0IHsgREVGQVVMVF9UT09MS0lUX1NUQUNLX05BTUUgfSBmcm9tICcuLi90b29sa2l0LWluZm8nO1xuXG4vLyByZXNvdXJjZSB0eXBlcyB0aGF0IGhhdmUgYXNzb2NpYXRlZCBDbG91ZFdhdGNoIExvZyBHcm91cHMgdGhhdCBzaG91bGQgX25vdF8gYmUgbW9uaXRvcmVkXG5jb25zdCBJR05PUkVfTE9HU19SRVNPVVJDRV9UWVBFUyA9IFsnQVdTOjpFQzI6OkZsb3dMb2cnLCAnQVdTOjpDbG91ZFRyYWlsOjpUcmFpbCcsICdBV1M6OkNvZGVCdWlsZDo6UHJvamVjdCddO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gbmVlZGVkIHRvIG1vbml0b3IgQ2xvdWRXYXRjaCBMb2cgR3JvdXBzXG4gKiBmb3VuZCBpbiBhIGdpdmVuIENsb3VkRm9ybWF0aW9uIFN0YWNrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm91bmRMb2dHcm91cHNSZXN1bHQge1xuICAvKipcbiAgICogVGhlIHJlc29sdmVkIGVudmlyb25tZW50IChhY2NvdW50L3JlZ2lvbikgdGhhdCB0aGUgbG9nXG4gICAqIGdyb3VwcyBhcmUgZGVwbG95ZWQgaW5cbiAgICovXG4gIHJlYWRvbmx5IGVudjogRW52aXJvbm1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBTREsgdGhhdCBjYW4gYmUgdXNlZCB0byByZWFkIGV2ZW50cyBmcm9tIHRoZSBDbG91ZFdhdGNoXG4gICAqIExvZyBHcm91cHMgaW4gdGhlIGdpdmVuIGVudmlyb25tZW50XG4gICAqL1xuICByZWFkb25seSBzZGs6IFNESztcblxuICAvKipcbiAgICogVGhlIG5hbWVzIG9mIHRoZSByZWxldmFudCBDbG91ZFdhdGNoIExvZyBHcm91cHNcbiAgICogaW4gdGhlIGdpdmVuIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cE5hbWVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbmRDbG91ZFdhdGNoTG9nR3JvdXBzKFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIG1zZzogSW9NZXNzYWdpbmcsXG4gIHN0YWNrQXJ0aWZhY3Q6IENsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbik6IFByb21pc2U8Rm91bmRMb2dHcm91cHNSZXN1bHQ+IHtcbiAgbGV0IHNkazogU0RLO1xuICBjb25zdCByZXNvbHZlZEVudiA9IGF3YWl0IHNka1Byb3ZpZGVyLnJlc29sdmVFbnZpcm9ubWVudChzdGFja0FydGlmYWN0LmVudmlyb25tZW50KTtcbiAgLy8gdHJ5IHRvIGFzc3VtZSB0aGUgbG9va3VwIHJvbGUgYW5kIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IGNyZWRlbnRpYWxzXG4gIHRyeSB7XG4gICAgc2RrID0gKGF3YWl0IG5ldyBFbnZpcm9ubWVudEFjY2VzcyhzZGtQcm92aWRlciwgREVGQVVMVF9UT09MS0lUX1NUQUNLX05BTUUsIG1zZykuYWNjZXNzU3RhY2tGb3JMb29rdXAoc3RhY2tBcnRpZmFjdCkpLnNkaztcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgZGVidWcoYEZhaWxlZCB0byBhY2Nlc3MgU0RLIGVudmlyb25tZW50OiAke2Zvcm1hdEVycm9yTWVzc2FnZShlKX1gKTtcbiAgICBzZGsgPSAoYXdhaXQgc2RrUHJvdmlkZXIuZm9yRW52aXJvbm1lbnQocmVzb2x2ZWRFbnYsIE1vZGUuRm9yUmVhZGluZykpLnNkaztcbiAgfVxuXG4gIGNvbnN0IGxpc3RTdGFja1Jlc291cmNlcyA9IG5ldyBMYXp5TGlzdFN0YWNrUmVzb3VyY2VzKHNkaywgc3RhY2tBcnRpZmFjdC5zdGFja05hbWUpO1xuICBjb25zdCBldmFsdWF0ZUNmblRlbXBsYXRlID0gbmV3IEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSh7XG4gICAgc3RhY2tOYW1lOiBzdGFja0FydGlmYWN0LnN0YWNrTmFtZSxcbiAgICB0ZW1wbGF0ZTogc3RhY2tBcnRpZmFjdC50ZW1wbGF0ZSxcbiAgICBwYXJhbWV0ZXJzOiB7fSxcbiAgICBhY2NvdW50OiByZXNvbHZlZEVudi5hY2NvdW50LFxuICAgIHJlZ2lvbjogcmVzb2x2ZWRFbnYucmVnaW9uLFxuICAgIHBhcnRpdGlvbjogKGF3YWl0IHNkay5jdXJyZW50QWNjb3VudCgpKS5wYXJ0aXRpb24sXG4gICAgc2RrLFxuICB9KTtcblxuICBjb25zdCBzdGFja1Jlc291cmNlcyA9IGF3YWl0IGxpc3RTdGFja1Jlc291cmNlcy5saXN0U3RhY2tSZXNvdXJjZXMoKTtcbiAgY29uc3QgbG9nR3JvdXBOYW1lcyA9IGZpbmRBbGxMb2dHcm91cE5hbWVzKHN0YWNrUmVzb3VyY2VzLCBldmFsdWF0ZUNmblRlbXBsYXRlKTtcblxuICByZXR1cm4ge1xuICAgIGVudjogcmVzb2x2ZWRFbnYsXG4gICAgc2RrLFxuICAgIGxvZ0dyb3VwTmFtZXMsXG4gIH07XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgQ2xvdWRXYXRjaCBMb2cgR3JvdXAgaXMgYXNzb2NpYXRlZFxuICogd2l0aCBhbiBpZ25vcmVkIHJlc291cmNlXG4gKi9cbmZ1bmN0aW9uIGlzUmVmZXJlbmNlZEZyb21JZ25vcmVkUmVzb3VyY2UoXG4gIGxvZ0dyb3VwUmVzb3VyY2U6IFN0YWNrUmVzb3VyY2VTdW1tYXJ5LFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcmVzb3VyY2VzUmVmZXJlbmNpbmdMb2dHcm91cCA9IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZmluZFJlZmVyZW5jZXNUbyhsb2dHcm91cFJlc291cmNlLkxvZ2ljYWxSZXNvdXJjZUlkISk7XG4gIHJldHVybiByZXNvdXJjZXNSZWZlcmVuY2luZ0xvZ0dyb3VwLnNvbWUoKHJlZmVyZW5jZSkgPT4ge1xuICAgIHJldHVybiBJR05PUkVfTE9HU19SRVNPVVJDRV9UWVBFUy5pbmNsdWRlcyhyZWZlcmVuY2UuVHlwZSk7XG4gIH0pO1xufVxuXG50eXBlIENsb3VkV2F0Y2hMb2dzUmVzb2x2ZXIgPSAoXG4gIHJlc291cmNlOiBTdGFja1Jlc291cmNlU3VtbWFyeSxcbiAgZXZhbHVhdGVDZm5UZW1wbGF0ZTogRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlLFxuKSA9PiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbmNvbnN0IGNsb3VkV2F0Y2hMb2dzUmVzb2x2ZXJzOiBSZWNvcmQ8c3RyaW5nLCBDbG91ZFdhdGNoTG9nc1Jlc29sdmVyPiA9IHtcbiAgJ0FXUzo6TG9nczo6TG9nR3JvdXAnOiAocmVzb3VyY2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpID0+IHtcbiAgICBpZiAoaXNSZWZlcmVuY2VkRnJvbUlnbm9yZWRSZXNvdXJjZShyZXNvdXJjZSwgZXZhbHVhdGVDZm5UZW1wbGF0ZSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiByZXNvdXJjZS5QaHlzaWNhbFJlc291cmNlSWQ/LnRvU3RyaW5nKCk7XG4gIH0sXG5cbiAgLy8gUmVzb3VyY2UgdHlwZXMgdGhhdCB3aWxsIGNyZWF0ZSBhIENsb3VkV2F0Y2ggbG9nIGdyb3VwIHdpdGggYSBzcGVjaWZpYyBuYW1lIGlmIG9uZSBpcyBub3QgcHJvdmlkZWQuXG4gIC8vIFRoZSBrZXlzIGFyZSBDRk4gcmVzb3VyY2UgdHlwZXMsIGFuZCB0aGUgdmFsdWVzIGFyZSB0aGUgbmFtZSBvZiB0aGUgcGh5c2ljYWwgbmFtZSBwcm9wZXJ0eSBvZiB0aGF0IHJlc291cmNlXG4gIC8vIGFuZCB0aGUgc2VydmljZSBuYW1lIHRoYXQgaXMgdXNlZCBpbiB0aGUgYXV0b21hdGljYWxseSBjcmVhdGVkIENsb3VkV2F0Y2ggbG9nIGdyb3VwLlxuICAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJzogKHJlc291cmNlLCBldmFsdWF0ZUNmblRlbXBsYXRlKSA9PiB7XG4gICAgY29uc3QgbG9nZ2luZ0NvbmZpZyA9IGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZ2V0UmVzb3VyY2VQcm9wZXJ0eShyZXNvdXJjZS5Mb2dpY2FsUmVzb3VyY2VJZCEsICdMb2dnaW5nQ29uZmlnJyk7XG4gICAgaWYgKGxvZ2dpbmdDb25maWc/LkxvZ0dyb3VwKSB7XG4gICAgICAvLyBpZiBMb2dHcm91cCBpcyBhIHN0cmluZyB0aGVuIHVzZSBpdCBhcyB0aGUgTG9nR3JvdXBOYW1lIGFzIGl0IGlzIHJlZmVycmVkIGJ5IExvZ0dyb3VwLmZyb21Mb2dHcm91cEFybiBpbiBDREtcbiAgICAgIGlmICh0eXBlb2YgbG9nZ2luZ0NvbmZpZy5Mb2dHcm91cCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGxvZ2dpbmdDb25maWcuTG9nR3JvdXA7XG4gICAgICB9XG5cbiAgICAgIC8vIGlmIHsgUmVmOiAnLi4uJyB9IGlzIHVzZWQgdGhlbiB0cnkgdG8gcmVzb2x2ZSB0aGUgTG9nR3JvdXBOYW1lIGZyb20gdGhlIHJlZmVyZW5jZWQgcmVzb3VyY2UgaW4gdGhlIHRlbXBsYXRlXG4gICAgICBpZiAodHlwZW9mIGxvZ2dpbmdDb25maWcuTG9nR3JvdXAgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGlmIChsb2dnaW5nQ29uZmlnLkxvZ0dyb3VwLlJlZikge1xuICAgICAgICAgIHJldHVybiBldmFsdWF0ZUNmblRlbXBsYXRlLmdldFJlc291cmNlUHJvcGVydHkobG9nZ2luZ0NvbmZpZy5Mb2dHcm91cC5SZWYsICdMb2dHcm91cE5hbWUnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBgL2F3cy9sYW1iZGEvJHtyZXNvdXJjZS5QaHlzaWNhbFJlc291cmNlSWR9YDtcbiAgfSxcbn07XG5cbi8qKlxuICogRmluZCBhbGwgQ2xvdWRXYXRjaCBMb2cgR3JvdXBzIGluIHRoZSBkZXBsb3llZCB0ZW1wbGF0ZS5cbiAqIFRoaXMgd2lsbCBmaW5kIGJvdGggZXhwbGljaXRseSBjcmVhdGVkIExvZyBHcm91cHMgKGV4Y2x1ZGluZyB0aG9zZSBhc3NvY2lhdGVkIHdpdGggaWdub3JlZCByZXNvdXJjZXMpXG4gKiBhbmQgTG9nIEdyb3VwcyBjcmVhdGVkIGltcGxpY2l0bHkgKGkuZS4gTGFtYmRhIEZ1bmN0aW9ucylcbiAqL1xuZnVuY3Rpb24gZmluZEFsbExvZ0dyb3VwTmFtZXMoXG4gIHN0YWNrUmVzb3VyY2VzOiBTdGFja1Jlc291cmNlU3VtbWFyeVtdLFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGxvZ0dyb3VwTmFtZXM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCByZXNvdXJjZSBvZiBzdGFja1Jlc291cmNlcykge1xuICAgIGNvbnN0IGxvZ0dyb3VwUmVzb2x2ZXIgPSBjbG91ZFdhdGNoTG9nc1Jlc29sdmVyc1tyZXNvdXJjZS5SZXNvdXJjZVR5cGUhXTtcbiAgICBpZiAobG9nR3JvdXBSZXNvbHZlcikge1xuICAgICAgY29uc3QgbG9nR3JvdXBOYW1lID0gbG9nR3JvdXBSZXNvbHZlcihyZXNvdXJjZSwgZXZhbHVhdGVDZm5UZW1wbGF0ZSk7XG4gICAgICBpZiAobG9nR3JvdXBOYW1lKSB7XG4gICAgICAgIGxvZ0dyb3VwTmFtZXMucHVzaChsb2dHcm91cE5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsb2dHcm91cE5hbWVzO1xufVxuIl19
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1jbG91ZHdhdGNoLWxvZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaW5kLWNsb3Vkd2F0Y2gtbG9ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFDQSwwREFrQ0M7QUFyRUQseUZBQTJGO0FBQzNGLHFDQUFnRDtBQUVoRCxnREFBbUQ7QUFDbkQsMEZBQTZHO0FBQzdHLHlDQUFzQztBQUN0QyxrREFBNkQ7QUFFN0QsMkZBQTJGO0FBQzNGLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSx3QkFBd0IsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0FBMEJ2RyxLQUFLLFVBQVUsdUJBQXVCLENBQzNDLFdBQXdCLEVBQ3hCLFFBQWtCLEVBQ2xCLGFBQTBDO0lBRTFDLElBQUksR0FBUSxDQUFDO0lBQ2IsTUFBTSxXQUFXLEdBQUcsTUFBTSxXQUFXLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BGLHdFQUF3RTtJQUN4RSxJQUFJLENBQUM7UUFDSCxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksK0JBQWlCLENBQUMsV0FBVyxFQUFFLHlDQUEwQixFQUFFLFFBQVEsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ2pJLENBQUM7SUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1FBQ2hCLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxJQUFBLHlCQUFrQixFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xILEdBQUcsR0FBRyxDQUFDLE1BQU0sV0FBVyxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsV0FBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQzdFLENBQUM7SUFFRCxNQUFNLGtCQUFrQixHQUFHLElBQUkseURBQXNCLENBQUMs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ekUsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3JFLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCBFbnZpcm9ubWVudCB9IGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrUmVzb3VyY2VTdW1tYXJ5IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IElPLCBJb0hlbHBlciB9IGZyb20gJy4uLy4uLy4uLy4uL0Bhd3MtY2RrL3RtcC10b29sa2l0LWhlbHBlcnMvc3JjL2FwaS9pby9wcml2YXRlJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREssIFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXdzLWF1dGgnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRBY2Nlc3MgfSBmcm9tICcuLi9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsIExhenlMaXN0U3RhY2tSZXNvdXJjZXMgfSBmcm9tICcuLi9ldmFsdWF0ZS1jbG91ZGZvcm1hdGlvbi10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBNb2RlIH0gZnJvbSAnLi4vcGx1Z2luL21vZGUnO1xuaW1wb3J0IHsgREVGQVVMVF9UT09MS0lUX1NUQUNLX05BTUUgfSBmcm9tICcuLi90b29sa2l0LWluZm8nO1xuXG4vLyByZXNvdXJjZSB0eXBlcyB0aGF0IGhhdmUgYXNzb2NpYXRlZCBDbG91ZFdhdGNoIExvZyBHcm91cHMgdGhhdCBzaG91bGQgX25vdF8gYmUgbW9uaXRvcmVkXG5jb25zdCBJR05PUkVfTE9HU19SRVNPVVJDRV9UWVBFUyA9IFsnQVdTOjpFQzI6OkZsb3dMb2cnLCAnQVdTOjpDbG91ZFRyYWlsOjpUcmFpbCcsICdBV1M6OkNvZGVCdWlsZDo6UHJvamVjdCddO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gbmVlZGVkIHRvIG1vbml0b3IgQ2xvdWRXYXRjaCBMb2cgR3JvdXBzXG4gKiBmb3VuZCBpbiBhIGdpdmVuIENsb3VkRm9ybWF0aW9uIFN0YWNrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm91bmRMb2dHcm91cHNSZXN1bHQge1xuICAvKipcbiAgICogVGhlIHJlc29sdmVkIGVudmlyb25tZW50IChhY2NvdW50L3JlZ2lvbikgdGhhdCB0aGUgbG9nXG4gICAqIGdyb3VwcyBhcmUgZGVwbG95ZWQgaW5cbiAgICovXG4gIHJlYWRvbmx5IGVudjogRW52aXJvbm1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBTREsgdGhhdCBjYW4gYmUgdXNlZCB0byByZWFkIGV2ZW50cyBmcm9tIHRoZSBDbG91ZFdhdGNoXG4gICAqIExvZyBHcm91cHMgaW4gdGhlIGdpdmVuIGVudmlyb25tZW50XG4gICAqL1xuICByZWFkb25seSBzZGs6IFNESztcblxuICAvKipcbiAgICogVGhlIG5hbWVzIG9mIHRoZSByZWxldmFudCBDbG91ZFdhdGNoIExvZyBHcm91cHNcbiAgICogaW4gdGhlIGdpdmVuIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cE5hbWVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbmRDbG91ZFdhdGNoTG9nR3JvdXBzKFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2tBcnRpZmFjdDogQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuKTogUHJvbWlzZTxGb3VuZExvZ0dyb3Vwc1Jlc3VsdD4ge1xuICBsZXQgc2RrOiBTREs7XG4gIGNvbnN0IHJlc29sdmVkRW52ID0gYXdhaXQgc2RrUHJvdmlkZXIucmVzb2x2ZUVudmlyb25tZW50KHN0YWNrQXJ0aWZhY3QuZW52aXJvbm1lbnQpO1xuICAvLyB0cnkgdG8gYXNzdW1lIHRoZSBsb29rdXAgcm9sZSBhbmQgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgY3JlZGVudGlhbHNcbiAgdHJ5IHtcbiAgICBzZGsgPSAoYXdhaXQgbmV3IEVudmlyb25tZW50QWNjZXNzKHNka1Byb3ZpZGVyLCBERUZBVUxUX1RPT0xLSVRfU1RBQ0tfTkFNRSwgaW9IZWxwZXIpLmFjY2Vzc1N0YWNrRm9yTG9va3VwKHN0YWNrQXJ0aWZhY3QpKS5zZGs7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX1RPT0xLSVRfREVCVUcubXNnKGBGYWlsZWQgdG8gYWNjZXNzIFNESyBlbnZpcm9ubWVudDogJHtmb3JtYXRFcnJvck1lc3NhZ2UoZSl9YCkpO1xuICAgIHNkayA9IChhd2FpdCBzZGtQcm92aWRlci5mb3JFbnZpcm9ubWVudChyZXNvbHZlZEVudiwgTW9kZS5Gb3JSZWFkaW5nKSkuc2RrO1xuICB9XG5cbiAgY29uc3QgbGlzdFN0YWNrUmVzb3VyY2VzID0gbmV3IExhenlMaXN0U3RhY2tSZXNvdXJjZXMoc2RrLCBzdGFja0FydGlmYWN0LnN0YWNrTmFtZSk7XG4gIGNvbnN0IGV2YWx1YXRlQ2ZuVGVtcGxhdGUgPSBuZXcgRXZhbHVhdGVDbG91ZEZvcm1hdGlvblRlbXBsYXRlKHtcbiAgICBzdGFja05hbWU6IHN0YWNrQXJ0aWZhY3Quc3RhY2tOYW1lLFxuICAgIHRlbXBsYXRlOiBzdGFja0FydGlmYWN0LnRlbXBsYXRlLFxuICAgIHBhcmFtZXRlcnM6IHt9LFxuICAgIGFjY291bnQ6IHJlc29sdmVkRW52LmFjY291bnQsXG4gICAgcmVnaW9uOiByZXNvbHZlZEVudi5yZWdpb24sXG4gICAgcGFydGl0aW9uOiAoYXdhaXQgc2RrLmN1cnJlbnRBY2NvdW50KCkpLnBhcnRpdGlvbixcbiAgICBzZGssXG4gIH0pO1xuXG4gIGNvbnN0IHN0YWNrUmVzb3VyY2VzID0gYXdhaXQgbGlzdFN0YWNrUmVzb3VyY2VzLmxpc3RTdGFja1Jlc291cmNlcygpO1xuICBjb25zdCBsb2dHcm91cE5hbWVzID0gZmluZEFsbExvZ0dyb3VwTmFtZXMoc3RhY2tSZXNvdXJjZXMsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpO1xuXG4gIHJldHVybiB7XG4gICAgZW52OiByZXNvbHZlZEVudixcbiAgICBzZGssXG4gICAgbG9nR3JvdXBOYW1lcyxcbiAgfTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSBDbG91ZFdhdGNoIExvZyBHcm91cCBpcyBhc3NvY2lhdGVkXG4gKiB3aXRoIGFuIGlnbm9yZWQgcmVzb3VyY2VcbiAqL1xuZnVuY3Rpb24gaXNSZWZlcmVuY2VkRnJvbUlnbm9yZWRSZXNvdXJjZShcbiAgbG9nR3JvdXBSZXNvdXJjZTogU3RhY2tSZXNvdXJjZVN1bW1hcnksXG4gIGV2YWx1YXRlQ2ZuVGVtcGxhdGU6IEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSxcbik6IGJvb2xlYW4ge1xuICBjb25zdCByZXNvdXJjZXNSZWZlcmVuY2luZ0xvZ0dyb3VwID0gZXZhbHVhdGVDZm5UZW1wbGF0ZS5maW5kUmVmZXJlbmNlc1RvKGxvZ0dyb3VwUmVzb3VyY2UuTG9naWNhbFJlc291cmNlSWQhKTtcbiAgcmV0dXJuIHJlc291cmNlc1JlZmVyZW5jaW5nTG9nR3JvdXAuc29tZSgocmVmZXJlbmNlKSA9PiB7XG4gICAgcmV0dXJuIElHTk9SRV9MT0dTX1JFU09VUkNFX1RZUEVTLmluY2x1ZGVzKHJlZmVyZW5jZS5UeXBlKTtcbiAgfSk7XG59XG5cbnR5cGUgQ2xvdWRXYXRjaExvZ3NSZXNvbHZlciA9IChcbiAgcmVzb3VyY2U6IFN0YWNrUmVzb3VyY2VTdW1tYXJ5LFxuICBldmFsdWF0ZUNmblRlbXBsYXRlOiBFdmFsdWF0ZUNsb3VkRm9ybWF0aW9uVGVtcGxhdGUsXG4pID0+IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuY29uc3QgY2xvdWRXYXRjaExvZ3NSZXNvbHZlcnM6IFJlY29yZDxzdHJpbmcsIENsb3VkV2F0Y2hMb2dzUmVzb2x2ZXI+ID0ge1xuICAnQVdTOjpMb2dzOjpMb2dHcm91cCc6IChyZXNvdXJjZSwgZXZhbHVhdGVDZm5UZW1wbGF0ZSkgPT4ge1xuICAgIGlmIChpc1JlZmVyZW5jZWRGcm9tSWdub3JlZFJlc291cmNlKHJlc291cmNlLCBldmFsdWF0ZUNmblRlbXBsYXRlKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc291cmNlLlBoeXNpY2FsUmVzb3VyY2VJZD8udG9TdHJpbmcoKTtcbiAgfSxcblxuICAvLyBSZXNvdXJjZSB0eXBlcyB0aGF0IHdpbGwgY3JlYXRlIGEgQ2xvdWRXYXRjaCBsb2cgZ3JvdXAgd2l0aCBhIHNwZWNpZmljIG5hbWUgaWYgb25lIGlzIG5vdCBwcm92aWRlZC5cbiAgLy8gVGhlIGtleXMgYXJlIENGTiByZXNvdXJjZSB0eXBlcywgYW5kIHRoZSB2YWx1ZXMgYXJlIHRoZSBuYW1lIG9mIHRoZSBwaHlzaWNhbCBuYW1lIHByb3BlcnR5IG9mIHRoYXQgcmVzb3VyY2VcbiAgLy8gYW5kIHRoZSBzZXJ2aWNlIG5hbWUgdGhhdCBpcyB1c2VkIGluIHRoZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgQ2xvdWRXYXRjaCBsb2cgZ3JvdXAuXG4gICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nOiAocmVzb3VyY2UsIGV2YWx1YXRlQ2ZuVGVtcGxhdGUpID0+IHtcbiAgICBjb25zdCBsb2dnaW5nQ29uZmlnID0gZXZhbHVhdGVDZm5UZW1wbGF0ZS5nZXRSZXNvdXJjZVByb3BlcnR5KHJlc291cmNlLkxvZ2ljYWxSZXNvdXJjZUlkISwgJ0xvZ2dpbmdDb25maWcnKTtcbiAgICBpZiAobG9nZ2luZ0NvbmZpZz8uTG9nR3JvdXApIHtcbiAgICAgIC8vIGlmIExvZ0dyb3VwIGlzIGEgc3RyaW5nIHRoZW4gdXNlIGl0IGFzIHRoZSBMb2dHcm91cE5hbWUgYXMgaXQgaXMgcmVmZXJyZWQgYnkgTG9nR3JvdXAuZnJvbUxvZ0dyb3VwQXJuIGluIENES1xuICAgICAgaWYgKHR5cGVvZiBsb2dnaW5nQ29uZmlnLkxvZ0dyb3VwID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gbG9nZ2luZ0NvbmZpZy5Mb2dHcm91cDtcbiAgICAgIH1cblxuICAgICAgLy8gaWYgeyBSZWY6ICcuLi4nIH0gaXMgdXNlZCB0aGVuIHRyeSB0byByZXNvbHZlIHRoZSBMb2dHcm91cE5hbWUgZnJvbSB0aGUgcmVmZXJlbmNlZCByZXNvdXJjZSBpbiB0aGUgdGVtcGxhdGVcbiAgICAgIGlmICh0eXBlb2YgbG9nZ2luZ0NvbmZpZy5Mb2dHcm91cCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKGxvZ2dpbmdDb25maWcuTG9nR3JvdXAuUmVmKSB7XG4gICAgICAgICAgcmV0dXJuIGV2YWx1YXRlQ2ZuVGVtcGxhdGUuZ2V0UmVzb3VyY2VQcm9wZXJ0eShsb2dnaW5nQ29uZmlnLkxvZ0dyb3VwLlJlZiwgJ0xvZ0dyb3VwTmFtZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGAvYXdzL2xhbWJkYS8ke3Jlc291cmNlLlBoeXNpY2FsUmVzb3VyY2VJZH1gO1xuICB9LFxufTtcblxuLyoqXG4gKiBGaW5kIGFsbCBDbG91ZFdhdGNoIExvZyBHcm91cHMgaW4gdGhlIGRlcGxveWVkIHRlbXBsYXRlLlxuICogVGhpcyB3aWxsIGZpbmQgYm90aCBleHBsaWNpdGx5IGNyZWF0ZWQgTG9nIEdyb3VwcyAoZXhjbHVkaW5nIHRob3NlIGFzc29jaWF0ZWQgd2l0aCBpZ25vcmVkIHJlc291cmNlcylcbiAqIGFuZCBMb2cgR3JvdXBzIGNyZWF0ZWQgaW1wbGljaXRseSAoaS5lLiBMYW1iZGEgRnVuY3Rpb25zKVxuICovXG5mdW5jdGlvbiBmaW5kQWxsTG9nR3JvdXBOYW1lcyhcbiAgc3RhY2tSZXNvdXJjZXM6IFN0YWNrUmVzb3VyY2VTdW1tYXJ5W10sXG4gIGV2YWx1YXRlQ2ZuVGVtcGxhdGU6IEV2YWx1YXRlQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZSxcbik6IHN0cmluZ1tdIHtcbiAgY29uc3QgbG9nR3JvdXBOYW1lczogc3RyaW5nW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHJlc291cmNlIG9mIHN0YWNrUmVzb3VyY2VzKSB7XG4gICAgY29uc3QgbG9nR3JvdXBSZXNvbHZlciA9IGNsb3VkV2F0Y2hMb2dzUmVzb2x2ZXJzW3Jlc291cmNlLlJlc291cmNlVHlwZSFdO1xuICAgIGlmIChsb2dHcm91cFJlc29sdmVyKSB7XG4gICAgICBjb25zdCBsb2dHcm91cE5hbWUgPSBsb2dHcm91cFJlc29sdmVyKHJlc291cmNlLCBldmFsdWF0ZUNmblRlbXBsYXRlKTtcbiAgICAgIGlmIChsb2dHcm91cE5hbWUpIHtcbiAgICAgICAgbG9nR3JvdXBOYW1lcy5wdXNoKGxvZ0dyb3VwTmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvZ0dyb3VwTmFtZXM7XG59XG4iXX0=
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import * as cxapi from '@aws-cdk/cx-api';
|
|
2
|
+
import { IoHelper } from '../../../../@aws-cdk/tmp-toolkit-helpers/src/api/io/private';
|
|
2
3
|
import type { SDK } from '../aws-auth';
|
|
4
|
+
export interface CloudWatchLogEventMonitorProps {
|
|
5
|
+
/**
|
|
6
|
+
* The IoHost used for messaging
|
|
7
|
+
*/
|
|
8
|
+
readonly ioHelper: IoHelper;
|
|
9
|
+
/**
|
|
10
|
+
* The time from which we start reading log messages
|
|
11
|
+
*
|
|
12
|
+
* @default - now
|
|
13
|
+
*/
|
|
14
|
+
readonly startTime?: Date;
|
|
15
|
+
}
|
|
3
16
|
export declare class CloudWatchLogEventMonitor {
|
|
4
17
|
/**
|
|
5
18
|
* Determines which events not to display
|
|
@@ -9,12 +22,21 @@ export declare class CloudWatchLogEventMonitor {
|
|
|
9
22
|
* Map of environment (account:region) to LogGroupsAccessSettings
|
|
10
23
|
*/
|
|
11
24
|
private readonly envsLogGroupsAccessSettings;
|
|
12
|
-
|
|
13
|
-
|
|
25
|
+
/**
|
|
26
|
+
* After reading events from all CloudWatch log groups
|
|
27
|
+
* how long should we wait to read more events.
|
|
28
|
+
*
|
|
29
|
+
* If there is some error with reading events (i.e. Throttle)
|
|
30
|
+
* then this is also how long we wait until we try again
|
|
31
|
+
*/
|
|
32
|
+
private readonly pollingInterval;
|
|
33
|
+
monitorId?: string;
|
|
34
|
+
private readonly ioHelper;
|
|
35
|
+
constructor(props: CloudWatchLogEventMonitorProps);
|
|
14
36
|
/**
|
|
15
37
|
* resume reading/printing events
|
|
16
38
|
*/
|
|
17
|
-
activate(): void
|
|
39
|
+
activate(): Promise<void>;
|
|
18
40
|
/**
|
|
19
41
|
* deactivates the monitor so no new events are read
|
|
20
42
|
* use case for this is when we are in the middle of performing a deployment
|
|
@@ -24,7 +46,7 @@ export declare class CloudWatchLogEventMonitor {
|
|
|
24
46
|
* Also resets the start time to be when the new deployment was triggered
|
|
25
47
|
* and clears the list of tracked log groups
|
|
26
48
|
*/
|
|
27
|
-
deactivate(): void
|
|
49
|
+
deactivate(): Promise<void>;
|
|
28
50
|
/**
|
|
29
51
|
* Adds CloudWatch log groups to read log events from.
|
|
30
52
|
* Since we could be watching multiple stacks that deploy to
|
|
@@ -33,6 +55,7 @@ export declare class CloudWatchLogEventMonitor {
|
|
|
33
55
|
* that environment.
|
|
34
56
|
*/
|
|
35
57
|
addLogGroups(env: cxapi.Environment, sdk: SDK, logGroupNames: string[]): void;
|
|
58
|
+
private logGroupNames;
|
|
36
59
|
private scheduleNextTick;
|
|
37
60
|
private tick;
|
|
38
61
|
/**
|
|
@@ -3,32 +3,38 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CloudWatchLogEventMonitor = void 0;
|
|
4
4
|
const util = require("util");
|
|
5
5
|
const chalk = require("chalk");
|
|
6
|
-
const
|
|
6
|
+
const uuid = require("uuid");
|
|
7
|
+
const private_1 = require("../../../../@aws-cdk/tmp-toolkit-helpers/src/api/io/private");
|
|
7
8
|
const util_1 = require("../../util");
|
|
8
|
-
/**
|
|
9
|
-
* After reading events from all CloudWatch log groups
|
|
10
|
-
* how long should we wait to read more events.
|
|
11
|
-
*
|
|
12
|
-
* If there is some error with reading events (i.e. Throttle)
|
|
13
|
-
* then this is also how long we wait until we try again
|
|
14
|
-
*/
|
|
15
|
-
const SLEEP = 2000;
|
|
16
9
|
class CloudWatchLogEventMonitor {
|
|
17
|
-
constructor(
|
|
18
|
-
var _a;
|
|
10
|
+
constructor(props) {
|
|
11
|
+
var _a, _b;
|
|
19
12
|
/**
|
|
20
13
|
* Map of environment (account:region) to LogGroupsAccessSettings
|
|
21
14
|
*/
|
|
22
15
|
this.envsLogGroupsAccessSettings = new Map();
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
/**
|
|
17
|
+
* After reading events from all CloudWatch log groups
|
|
18
|
+
* how long should we wait to read more events.
|
|
19
|
+
*
|
|
20
|
+
* If there is some error with reading events (i.e. Throttle)
|
|
21
|
+
* then this is also how long we wait until we try again
|
|
22
|
+
*/
|
|
23
|
+
this.pollingInterval = 2000;
|
|
24
|
+
this.startTime = (_b = (_a = props.startTime) === null || _a === void 0 ? void 0 : _a.getTime()) !== null && _b !== void 0 ? _b : Date.now();
|
|
25
|
+
this.ioHelper = props.ioHelper;
|
|
25
26
|
}
|
|
26
27
|
/**
|
|
27
28
|
* resume reading/printing events
|
|
28
29
|
*/
|
|
29
|
-
activate() {
|
|
30
|
-
this.
|
|
31
|
-
this.
|
|
30
|
+
async activate() {
|
|
31
|
+
this.monitorId = uuid.v4();
|
|
32
|
+
await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5032.msg('Start monitoring log groups', {
|
|
33
|
+
monitor: this.monitorId,
|
|
34
|
+
logGroupNames: this.logGroupNames(),
|
|
35
|
+
}));
|
|
36
|
+
await this.tick();
|
|
37
|
+
this.scheduleNextTick();
|
|
32
38
|
}
|
|
33
39
|
/**
|
|
34
40
|
* deactivates the monitor so no new events are read
|
|
@@ -39,9 +45,14 @@ class CloudWatchLogEventMonitor {
|
|
|
39
45
|
* Also resets the start time to be when the new deployment was triggered
|
|
40
46
|
* and clears the list of tracked log groups
|
|
41
47
|
*/
|
|
42
|
-
deactivate() {
|
|
43
|
-
|
|
48
|
+
async deactivate() {
|
|
49
|
+
const oldMonitorId = this.monitorId;
|
|
50
|
+
this.monitorId = undefined;
|
|
44
51
|
this.startTime = Date.now();
|
|
52
|
+
await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5034.msg('Stopped monitoring log groups', {
|
|
53
|
+
monitor: oldMonitorId,
|
|
54
|
+
logGroupNames: this.logGroupNames(),
|
|
55
|
+
}));
|
|
45
56
|
this.envsLogGroupsAccessSettings.clear();
|
|
46
57
|
}
|
|
47
58
|
/**
|
|
@@ -66,26 +77,36 @@ class CloudWatchLogEventMonitor {
|
|
|
66
77
|
},
|
|
67
78
|
});
|
|
68
79
|
}
|
|
69
|
-
|
|
70
|
-
|
|
80
|
+
logGroupNames() {
|
|
81
|
+
return Array.from(this.envsLogGroupsAccessSettings.values()).flatMap((settings) => Object.keys(settings.logGroupsStartTimes));
|
|
82
|
+
}
|
|
83
|
+
scheduleNextTick() {
|
|
84
|
+
if (!this.monitorId) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
setTimeout(() => void this.tick(), this.pollingInterval);
|
|
71
88
|
}
|
|
72
89
|
async tick() {
|
|
73
90
|
// excluding from codecoverage because this
|
|
74
91
|
// doesn't always run (depends on timing)
|
|
75
|
-
/*
|
|
76
|
-
if (!this.
|
|
92
|
+
/* c8 ignore next */
|
|
93
|
+
if (!this.monitorId) {
|
|
77
94
|
return;
|
|
78
95
|
}
|
|
79
96
|
try {
|
|
80
97
|
const events = (0, util_1.flatten)(await this.readNewEvents());
|
|
81
|
-
|
|
82
|
-
this.print(event);
|
|
83
|
-
}
|
|
98
|
+
for (const event of events) {
|
|
99
|
+
await this.print(event);
|
|
100
|
+
}
|
|
101
|
+
// We might have been stop()ped while the network call was in progress.
|
|
102
|
+
if (!this.monitorId) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
84
105
|
}
|
|
85
106
|
catch (e) {
|
|
86
|
-
|
|
107
|
+
await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_E5035.msg('Error occurred while monitoring logs: %s', { error: e }));
|
|
87
108
|
}
|
|
88
|
-
this.scheduleNextTick(
|
|
109
|
+
this.scheduleNextTick();
|
|
89
110
|
}
|
|
90
111
|
/**
|
|
91
112
|
* Reads all new log events from a set of CloudWatch Log Groups
|
|
@@ -105,8 +126,8 @@ class CloudWatchLogEventMonitor {
|
|
|
105
126
|
/**
|
|
106
127
|
* Print out a cloudwatch event
|
|
107
128
|
*/
|
|
108
|
-
print(event) {
|
|
109
|
-
|
|
129
|
+
async print(event) {
|
|
130
|
+
await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5033.msg(util.format('[%s] %s %s', chalk.blue(event.logGroupName), chalk.yellow(event.timestamp.toLocaleTimeString()), event.message.trim()), event));
|
|
110
131
|
}
|
|
111
132
|
/**
|
|
112
133
|
* Reads all new log events from a CloudWatch Log Group
|
|
@@ -166,4 +187,4 @@ class CloudWatchLogEventMonitor {
|
|
|
166
187
|
}
|
|
167
188
|
}
|
|
168
189
|
exports.CloudWatchLogEventMonitor = CloudWatchLogEventMonitor;
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ncy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibG9ncy1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUU3QiwrQkFBK0I7QUFDL0IsMkNBQTRDO0FBQzVDLHFDQUFxQztBQUdyQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLEtBQUssR0FBRyxJQUFLLENBQUM7QUEwQ3BCLE1BQWEseUJBQXlCO0lBYXBDLFlBQVksU0FBZ0I7O1FBUDVCOztXQUVHO1FBQ2MsZ0NBQTJCLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7UUFFbEYsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUdyQixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQUEsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLE9BQU8sRUFBRSxtQ0FBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxVQUFVO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxZQUFZLENBQUMsR0FBc0IsRUFBRSxHQUFRLEVBQUUsYUFBdUI7O1FBQzNFLE1BQU0sTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDOUMsTUFBTSxtQkFBbUIsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUM5QyxDQUFDLEdBQUcsRUFBRSxT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REFBc0Q7WUFDdEQsd0RBQXdEO1lBQ3hELDRCQUE0QjtZQUM1QixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssMkJBQTJCLEVBQUUsQ0FBQztnQkFDM0MsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO1FBQ0QsdUJBQXVCLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUN4RSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFsTEQsOERBa0xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsJztcbmltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBpbmZvLCBlcnJvciB9IGZyb20gJy4uLy4uL2xvZ2dpbmcnO1xuaW1wb3J0IHsgZmxhdHRlbiB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuLi9hd3MtYXV0aCc7XG5cbi8qKlxuICogQWZ0ZXIgcmVhZGluZyBldmVudHMgZnJvbSBhbGwgQ2xvdWRXYXRjaCBsb2cgZ3JvdXBzXG4gKiBob3cgbG9uZyBzaG91bGQgd2Ugd2FpdCB0byByZWFkIG1vcmUgZXZlbnRzLlxuICpcbiAqIElmIHRoZXJlIGlzIHNvbWUgZXJyb3Igd2l0aCByZWFkaW5nIGV2ZW50cyAoaS5lLiBUaHJvdHRsZSlcbiAqIHRoZW4gdGhpcyBpcyBhbHNvIGhvdyBsb25nIHdlIHdhaXQgdW50aWwgd2UgdHJ5IGFnYWluXG4gKi9cbmNvbnN0IFNMRUVQID0gMl8wMDA7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIENsb3VkV2F0Y2ggTG9nIEV2ZW50IHRoYXQgd2lsbCBiZVxuICogcHJpbnRlZCB0byB0aGUgdGVybWluYWxcbiAqL1xuaW50ZXJmYWNlIENsb3VkV2F0Y2hMb2dFdmVudCB7XG4gIC8qKlxuICAgKiBUaGUgbG9nIGV2ZW50IG1lc3NhZ2VcbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxvZyBncm91cFxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXBOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSBldmVudCBvY2N1cnJlZFxuICAgKi9cbiAgcmVhZG9ubHkgdGltZXN0YW1wOiBEYXRlO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gdHJhY2tpbmcgaW5mb3JtYXRpb24gb24gdGhlIGxvZyBncm91cHMgdGhhdCBhcmVcbiAqIGJlaW5nIG1vbml0b3JlZFxuICovXG5pbnRlcmZhY2UgTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3Mge1xuICAvKipcbiAgICogVGhlIFNESyBmb3IgYSBnaXZlbiBlbnZpcm9ubWVudCAoYWNjb3VudC9yZWdpb24pXG4gICAqL1xuICByZWFkb25seSBzZGs6IFNESztcblxuICAvKipcbiAgICogQSBtYXAgb2YgbG9nIGdyb3VwcyBhbmQgYXNzb2NpYXRlZCBzdGFydFRpbWUgaW4gYSBnaXZlbiBhY2NvdW50LlxuICAgKlxuICAgKiBUaGUgbW9uaXRvciB3aWxsIHJlYWQgZXZlbnRzIGZyb20gdGhlIGxvZyBncm91cCBzdGFydGluZyBhdCB0aGVcbiAgICogYXNzb2NpYXRlZCBzdGFydFRpbWVcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3Vwc1N0YXJ0VGltZXM6IHsgW2xvZ0dyb3VwTmFtZTogc3RyaW5nXTogbnVtYmVyIH07XG59XG5cbmV4cG9ydCBjbGFzcyBDbG91ZFdhdGNoTG9nRXZlbnRNb25pdG9yIHtcbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hpY2ggZXZlbnRzIG5vdCB0byBkaXNwbGF5XG4gICAqL1xuICBwcml2YXRlIHN0YXJ0VGltZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXAgb2YgZW52aXJvbm1lbnQgKGFjY291bnQ6cmVnaW9uKSB0byBMb2dHcm91cHNBY2Nlc3NTZXR0aW5nc1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBlbnZzTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MgPSBuZXcgTWFwPHN0cmluZywgTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3M+KCk7XG5cbiAgcHJpdmF0ZSBhY3RpdmUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihzdGFydFRpbWU/OiBEYXRlKSB7XG4gICAgdGhpcy5zdGFydFRpbWUgPSBzdGFydFRpbWU/LmdldFRpbWUoKSA/PyBEYXRlLm5vdygpO1xuICB9XG5cbiAgLyoqXG4gICAqIHJlc3VtZSByZWFkaW5nL3ByaW50aW5nIGV2ZW50c1xuICAgKi9cbiAgcHVibGljIGFjdGl2YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICB0aGlzLnNjaGVkdWxlTmV4dFRpY2soMCk7XG4gIH1cblxuICAvKipcbiAgICogZGVhY3RpdmF0ZXMgdGhlIG1vbml0b3Igc28gbm8gbmV3IGV2ZW50cyBhcmUgcmVhZFxuICAgKiB1c2UgY2FzZSBmb3IgdGhpcyBpcyB3aGVuIHdlIGFyZSBpbiB0aGUgbWlkZGxlIG9mIHBlcmZvcm1pbmcgYSBkZXBsb3ltZW50XG4gICAqIGFuZCBkb24ndCB3YW50IHRvIGludGVyd2VhdmUgYWxsIHRoZSBsb2dzIHRvZ2V0aGVyIHdpdGggdGhlIENGTlxuICAgKiBkZXBsb3ltZW50IGxvZ3NcbiAgICpcbiAgICogQWxzbyByZXNldHMgdGhlIHN0YXJ0IHRpbWUgdG8gYmUgd2hlbiB0aGUgbmV3IGRlcGxveW1lbnQgd2FzIHRyaWdnZXJlZFxuICAgKiBhbmQgY2xlYXJzIHRoZSBsaXN0IG9mIHRyYWNrZWQgbG9nIGdyb3Vwc1xuICAgKi9cbiAgcHVibGljIGRlYWN0aXZhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICB0aGlzLnN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgdGhpcy5lbnZzTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIENsb3VkV2F0Y2ggbG9nIGdyb3VwcyB0byByZWFkIGxvZyBldmVudHMgZnJvbS5cbiAgICogU2luY2Ugd2UgY291bGQgYmUgd2F0Y2hpbmcgbXVsdGlwbGUgc3RhY2tzIHRoYXQgZGVwbG95IHRvXG4gICAqIG11bHRpcGxlIGVudmlyb25tZW50cyAoYWNjb3VudCtyZWdpb24pLCB3ZSBuZWVkIHRvIHN0b3JlIGEgbGlzdCBvZiBsb2cgZ3JvdXBzXG4gICAqIHBlciBlbnYgYWxvbmcgd2l0aCB0aGUgU0RLIG9iamVjdCB0aGF0IGhhcyBhY2Nlc3MgdG8gcmVhZCBmcm9tXG4gICAqIHRoYXQgZW52aXJvbm1lbnQuXG4gICAqL1xuICBwdWJsaWMgYWRkTG9nR3JvdXBzKGVudjogY3hhcGkuRW52aXJvbm1lbnQsIHNkazogU0RLLCBsb2dHcm91cE5hbWVzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGNvbnN0IGF3c0VudiA9IGAke2Vudi5hY2NvdW50fToke2Vudi5yZWdpb259YDtcbiAgICBjb25zdCBsb2dHcm91cHNTdGFydFRpbWVzID0gbG9nR3JvdXBOYW1lcy5yZWR1Y2UoXG4gICAgICAoYWNjLCBncm91cE5hbWUpID0+IHtcbiAgICAgICAgYWNjW2dyb3VwTmFtZV0gPSB0aGlzLnN0YXJ0VGltZTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICB7fSBhcyB7IFtsb2dHcm91cE5hbWU6IHN0cmluZ106IG51bWJlciB9LFxuICAgICk7XG4gICAgdGhpcy5lbnZzTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3Muc2V0KGF3c0Vudiwge1xuICAgICAgc2RrLFxuICAgICAgbG9nR3JvdXBzU3RhcnRUaW1lczoge1xuICAgICAgICAuLi50aGlzLmVudnNMb2dHcm91cHNBY2Nlc3NTZXR0aW5ncy5nZXQoYXdzRW52KT8ubG9nR3JvdXBzU3RhcnRUaW1lcyxcbiAgICAgICAgLi4ubG9nR3JvdXBzU3RhcnRUaW1lcyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNjaGVkdWxlTmV4dFRpY2soc2xlZXA6IG51bWJlcik6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnRpY2soKSwgc2xlZXApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB0aWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIGV4Y2x1ZGluZyBmcm9tIGNvZGVjb3ZlcmFnZSBiZWNhdXNlIHRoaXNcbiAgICAvLyBkb2Vzbid0IGFsd2F5cyBydW4gKGRlcGVuZHMgb24gdGltaW5nKVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKCF0aGlzLmFjdGl2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgZXZlbnRzID0gZmxhdHRlbihhd2FpdCB0aGlzLnJlYWROZXdFdmVudHMoKSk7XG4gICAgICBldmVudHMuZm9yRWFjaCgoZXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5wcmludChldmVudCk7XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBlcnJvcignRXJyb3Igb2NjdXJyZWQgd2hpbGUgbW9uaXRvcmluZyBsb2dzOiAlcycsIGUpO1xuICAgIH1cblxuICAgIHRoaXMuc2NoZWR1bGVOZXh0VGljayhTTEVFUCk7XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgYWxsIG5ldyBsb2cgZXZlbnRzIGZyb20gYSBzZXQgb2YgQ2xvdWRXYXRjaCBMb2cgR3JvdXBzXG4gICAqIGluIHBhcmFsbGVsXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlYWROZXdFdmVudHMoKTogUHJvbWlzZTxBcnJheTxBcnJheTxDbG91ZFdhdGNoTG9nRXZlbnQ+Pj4ge1xuICAgIGNvbnN0IHByb21pc2VzOiBBcnJheTxQcm9taXNlPEFycmF5PENsb3VkV2F0Y2hMb2dFdmVudD4+PiA9IFtdO1xuICAgIGZvciAoY29uc3Qgc2V0dGluZ3Mgb2YgdGhpcy5lbnZzTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MudmFsdWVzKCkpIHtcbiAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgT2JqZWN0LmtleXMoc2V0dGluZ3MubG9nR3JvdXBzU3RhcnRUaW1lcykpIHtcbiAgICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLnJlYWRFdmVudHNGcm9tTG9nR3JvdXAoc2V0dGluZ3MsIGdyb3VwKSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIExpbWl0ZWQgc2V0IG9mIGxvZyBncm91cHNcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByaW50IG91dCBhIGNsb3Vkd2F0Y2ggZXZlbnRcbiAgICovXG4gIHByaXZhdGUgcHJpbnQoZXZlbnQ6IENsb3VkV2F0Y2hMb2dFdmVudCk6IHZvaWQge1xuICAgIGluZm8oXG4gICAgICB1dGlsLmZvcm1hdChcbiAgICAgICAgJ1slc10gJXMgJXMnLFxuICAgICAgICBjaGFsay5ibHVlKGV2ZW50LmxvZ0dyb3VwTmFtZSksXG4gICAgICAgIGNoYWxrLnllbGxvdyhldmVudC50aW1lc3RhbXAudG9Mb2NhbGVUaW1lU3RyaW5nKCkpLFxuICAgICAgICBldmVudC5tZXNzYWdlLnRyaW0oKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBhbGwgbmV3IGxvZyBldmVudHMgZnJvbSBhIENsb3VkV2F0Y2ggTG9nIEdyb3VwXG4gICAqIHN0YXJ0aW5nIGF0IGVpdGhlciB0aGUgdGltZSB0aGUgaG90c3dhcCB3YXMgdHJpZ2dlcmVkIG9yXG4gICAqIHdoZW4gdGhlIGxhc3QgZXZlbnQgd2FzIHJlYWQgb24gdGhlIHByZXZpb3VzIHRpY2tcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcmVhZEV2ZW50c0Zyb21Mb2dHcm91cChcbiAgICBsb2dHcm91cHNBY2Nlc3NTZXR0aW5nczogTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MsXG4gICAgbG9nR3JvdXBOYW1lOiBzdHJpbmcsXG4gICk6IFByb21pc2U8QXJyYXk8Q2xvdWRXYXRjaExvZ0V2ZW50Pj4ge1xuICAgIGNvbnN0IGV2ZW50czogQ2xvdWRXYXRjaExvZ0V2ZW50W10gPSBbXTtcblxuICAgIC8vIGxvZyBldmVudHMgZnJvbSBzb21lIHNlcnZpY2UgYXJlIGluZ2VzdGVkIGZhc3RlciB0aGFuIG90aGVyc1xuICAgIC8vIHNvIHdlIG5lZWQgdG8gdHJhY2sgdGhlIHN0YXJ0L2VuZCB0aW1lIGZvciBlYWNoIGxvZyBncm91cCBpbmRpdmlkdWFsbHlcbiAgICAvLyB0byBtYWtlIHN1cmUgdGhhdCB3ZSBwcm9jZXNzIGFsbCBldmVudHMgZnJvbSBlYWNoIGxvZyBncm91cFxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IGxvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLmxvZ0dyb3Vwc1N0YXJ0VGltZXNbbG9nR3JvdXBOYW1lXSA/PyB0aGlzLnN0YXJ0VGltZTtcbiAgICBsZXQgZW5kVGltZSA9IHN0YXJ0VGltZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBsb2dHcm91cHNBY2Nlc3NTZXR0aW5ncy5zZGsuY2xvdWRXYXRjaExvZ3MoKS5maWx0ZXJMb2dFdmVudHMoe1xuICAgICAgICBsb2dHcm91cE5hbWU6IGxvZ0dyb3VwTmFtZSxcbiAgICAgICAgbGltaXQ6IDEwMCxcbiAgICAgICAgc3RhcnRUaW1lOiBzdGFydFRpbWUsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGZpbHRlcmVkRXZlbnRzID0gcmVzcG9uc2UuZXZlbnRzID8/IFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGZpbHRlcmVkRXZlbnRzKSB7XG4gICAgICAgIGlmIChldmVudC5tZXNzYWdlKSB7XG4gICAgICAgICAgZXZlbnRzLnB1c2goe1xuICAgICAgICAgICAgbWVzc2FnZTogZXZlbnQubWVzc2FnZSxcbiAgICAgICAgICAgIGxvZ0dyb3VwTmFtZSxcbiAgICAgICAgICAgIHRpbWVzdGFtcDogZXZlbnQudGltZXN0YW1wID8gbmV3IERhdGUoZXZlbnQudGltZXN0YW1wKSA6IG5ldyBEYXRlKCksXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoZXZlbnQudGltZXN0YW1wICYmIGVuZFRpbWUgPCBldmVudC50aW1lc3RhbXApIHtcbiAgICAgICAgICAgIGVuZFRpbWUgPSBldmVudC50aW1lc3RhbXA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBBcyBsb25nIGFzIHRoZXJlIGFyZSBfYW55XyBldmVudHMgaW4gdGhlIGxvZyBncm91cCBgZmlsdGVyTG9nRXZlbnRzYCB3aWxsIHJldHVybiBhIG5leHRUb2tlbi5cbiAgICAgIC8vIFRoaXMgaXMgdHJ1ZSBldmVuIGlmIHRoZXNlIGV2ZW50cyBhcmUgYmVmb3JlIGBzdGFydFRpbWVgLiBTbyBpZiB3ZSBoYXZlIDEwMCBldmVudHMgYW5kIGEgbmV4dFRva2VuXG4gICAgICAvLyB0aGVuIGFzc3VtZSB0aGF0IHdlIGhhdmUgaGl0IHRoZSBsaW1pdCBhbmQgbGV0IHRoZSB1c2VyIGtub3cgc29tZSBtZXNzYWdlcyBoYXZlIGJlZW4gc3VwcHJlc3NlZC5cbiAgICAgIC8vIFdlIGFyZSBlc3NlbnRpYWxseSBzaG93aW5nIHRoZW0gYSBzYW1wbGluZyAoMTAwMDAgZXZlbnRzIHByaW50ZWQgb3V0IGlzIG5vdCB2ZXJ5IHVzZWZ1bClcbiAgICAgIGlmIChmaWx0ZXJlZEV2ZW50cy5sZW5ndGggPT09IDEwMCAmJiByZXNwb25zZS5uZXh0VG9rZW4pIHtcbiAgICAgICAgZXZlbnRzLnB1c2goe1xuICAgICAgICAgIG1lc3NhZ2U6ICc+Pj4gYHdhdGNoYCBzaG93cyBvbmx5IHRoZSBmaXJzdCAxMDAgbG9nIG1lc3NhZ2VzIC0gdGhlIHJlc3QgaGF2ZSBiZWVuIHRydW5jYXRlZC4uLicsXG4gICAgICAgICAgbG9nR3JvdXBOYW1lLFxuICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoZW5kVGltZSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgLy8gd2l0aCBMYW1iZGEgZnVuY3Rpb25zIHRoZSBDbG91ZFdhdGNoIGlzIG5vdCBjcmVhdGVkXG4gICAgICAvLyB1bnRpbCBzb21ldGhpbmcgaXMgbG9nZ2VkLCBzbyBqdXN0IGtlZXAgcG9sbGluZyB1bnRpbFxuICAgICAgLy8gdGhlcmUgaXMgc29tdGhpbmcgdG8gZmluZFxuICAgICAgaWYgKGUubmFtZSA9PT0gJ1Jlc291cmNlTm90Rm91bmRFeGNlcHRpb24nKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIGxvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLmxvZ0dyb3Vwc1N0YXJ0VGltZXNbbG9nR3JvdXBOYW1lXSA9IGVuZFRpbWUgKyAxO1xuICAgIHJldHVybiBldmVudHM7XG4gIH1cbn1cbiJdfQ==
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ncy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibG9ncy1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUU3QiwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBRTdCLHlGQUEyRjtBQUMzRixxQ0FBcUM7QUFvQ3JDLE1BQWEseUJBQXlCO0lBdUJwQyxZQUFZLEtBQXFDOztRQWpCakQ7O1dBRUc7UUFDYyxnQ0FBMkIsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztRQUUxRjs7Ozs7O1dBTUc7UUFDYyxvQkFBZSxHQUFXLElBQUssQ0FBQztRQU0vQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQUEsTUFBQSxLQUFLLENBQUMsU0FBUywwQ0FBRSxPQUFPLEVBQUUsbUNBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsUUFBUTtRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUUzQixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsNkJBQTZCLEVBQUU7WUFDakYsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3ZCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFO1NBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBRUosTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksS0FBSyxDQUFDLFVBQVU7UUFDckIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNB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RUFBRSxDQUFDO1lBQ2hCLHNEQUFzRDtZQUN0RCx3REFBd0Q7WUFDeEQsNEJBQTRCO1lBQzVCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSywyQkFBMkIsRUFBRSxDQUFDO2dCQUMzQyxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFDRCxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7UUFDRCx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQTFORCw4REEwTkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0aWwnO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkV2F0Y2hMb2dFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL0Bhd3MtY2RrL3RtcC10b29sa2l0LWhlbHBlcnMvc3JjL2FwaS9pbyc7XG5pbXBvcnQgeyBJTywgSW9IZWxwZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9AYXdzLWNkay90bXAtdG9vbGtpdC1oZWxwZXJzL3NyYy9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBmbGF0dGVuIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgdHlwZSB7IFNESyB9IGZyb20gJy4uL2F3cy1hdXRoJztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIHRyYWNraW5nIGluZm9ybWF0aW9uIG9uIHRoZSBsb2cgZ3JvdXBzIHRoYXQgYXJlXG4gKiBiZWluZyBtb25pdG9yZWRcbiAqL1xuaW50ZXJmYWNlIExvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzIHtcbiAgLyoqXG4gICAqIFRoZSBTREsgZm9yIGEgZ2l2ZW4gZW52aXJvbm1lbnQgKGFjY291bnQvcmVnaW9uKVxuICAgKi9cbiAgcmVhZG9ubHkgc2RrOiBTREs7XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIGxvZyBncm91cHMgYW5kIGFzc29jaWF0ZWQgc3RhcnRUaW1lIGluIGEgZ2l2ZW4gYWNjb3VudC5cbiAgICpcbiAgICogVGhlIG1vbml0b3Igd2lsbCByZWFkIGV2ZW50cyBmcm9tIHRoZSBsb2cgZ3JvdXAgc3RhcnRpbmcgYXQgdGhlXG4gICAqIGFzc29jaWF0ZWQgc3RhcnRUaW1lXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cHNTdGFydFRpbWVzOiB7IFtsb2dHcm91cE5hbWU6IHN0cmluZ106IG51bWJlciB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkV2F0Y2hMb2dFdmVudE1vbml0b3JQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgSW9Ib3N0IHVzZWQgZm9yIG1lc3NhZ2luZ1xuICAgKi9cbiAgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBmcm9tIHdoaWNoIHdlIHN0YXJ0IHJlYWRpbmcgbG9nIG1lc3NhZ2VzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm93XG4gICAqL1xuICByZWFkb25seSBzdGFydFRpbWU/OiBEYXRlO1xufVxuXG5leHBvcnQgY2xhc3MgQ2xvdWRXYXRjaExvZ0V2ZW50TW9uaXRvciB7XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoaWNoIGV2ZW50cyBub3QgdG8gZGlzcGxheVxuICAgKi9cbiAgcHJpdmF0ZSBzdGFydFRpbWU6IG51bWJlcjtcblxuICAvKipcbiAgICogTWFwIG9mIGVudmlyb25tZW50IChhY2NvdW50OnJlZ2lvbikgdG8gTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3NcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZW52c0xvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzID0gbmV3IE1hcDxzdHJpbmcsIExvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzPigpO1xuXG4gIC8qKlxuICAgKiBBZnRlciByZWFkaW5nIGV2ZW50cyBmcm9tIGFsbCBDbG91ZFdhdGNoIGxvZyBncm91cHNcbiAgICogaG93IGxvbmcgc2hvdWxkIHdlIHdhaXQgdG8gcmVhZCBtb3JlIGV2ZW50cy5cbiAgICpcbiAgICogSWYgdGhlcmUgaXMgc29tZSBlcnJvciB3aXRoIHJlYWRpbmcgZXZlbnRzIChpLmUuIFRocm90dGxlKVxuICAgKiB0aGVuIHRoaXMgaXMgYWxzbyBob3cgbG9uZyB3ZSB3YWl0IHVudGlsIHdlIHRyeSBhZ2FpblxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwb2xsaW5nSW50ZXJ2YWw6IG51bWJlciA9IDJfMDAwO1xuXG4gIHB1YmxpYyBtb25pdG9ySWQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBDbG91ZFdhdGNoTG9nRXZlbnRNb25pdG9yUHJvcHMpIHtcbiAgICB0aGlzLnN0YXJ0VGltZSA9IHByb3BzLnN0YXJ0VGltZT8uZ2V0VGltZSgpID8/IERhdGUubm93KCk7XG4gICAgdGhpcy5pb0hlbHBlciA9IHByb3BzLmlvSGVscGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIHJlc3VtZSByZWFkaW5nL3ByaW50aW5nIGV2ZW50c1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGFjdGl2YXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubW9uaXRvcklkID0gdXVpZC52NCgpO1xuXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTUwMzIubXNnKCdTdGFydCBtb25pdG9yaW5nIGxvZyBncm91cHMnLCB7XG4gICAgICBtb25pdG9yOiB0aGlzLm1vbml0b3JJZCxcbiAgICAgIGxvZ0dyb3VwTmFtZXM6IHRoaXMubG9nR3JvdXBOYW1lcygpLFxuICAgIH0pKTtcblxuICAgIGF3YWl0IHRoaXMudGljaygpO1xuICAgIHRoaXMuc2NoZWR1bGVOZXh0VGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIGRlYWN0aXZhdGVzIHRoZSBtb25pdG9yIHNvIG5vIG5ldyBldmVudHMgYXJlIHJlYWRcbiAgICogdXNlIGNhc2UgZm9yIHRoaXMgaXMgd2hlbiB3ZSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBwZXJmb3JtaW5nIGEgZGVwbG95bWVudFxuICAgKiBhbmQgZG9uJ3Qgd2FudCB0byBpbnRlcndlYXZlIGFsbCB0aGUgbG9ncyB0b2dldGhlciB3aXRoIHRoZSBDRk5cbiAgICogZGVwbG95bWVudCBsb2dzXG4gICAqXG4gICAqIEFsc28gcmVzZXRzIHRoZSBzdGFydCB0aW1lIHRvIGJlIHdoZW4gdGhlIG5ldyBkZXBsb3ltZW50IHdhcyB0cmlnZ2VyZWRcbiAgICogYW5kIGNsZWFycyB0aGUgbGlzdCBvZiB0cmFja2VkIGxvZyBncm91cHNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZWFjdGl2YXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG9sZE1vbml0b3JJZCA9IHRoaXMubW9uaXRvcklkITtcbiAgICB0aGlzLm1vbml0b3JJZCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnN0YXJ0VGltZSA9IERhdGUubm93KCk7XG5cbiAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JNTAzNC5tc2coJ1N0b3BwZWQgbW9uaXRvcmluZyBsb2cgZ3JvdXBzJywge1xuICAgICAgbW9uaXRvcjogb2xkTW9uaXRvcklkLFxuICAgICAgbG9nR3JvdXBOYW1lczogdGhpcy5sb2dHcm91cE5hbWVzKCksXG4gICAgfSkpO1xuXG4gICAgdGhpcy5lbnZzTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIENsb3VkV2F0Y2ggbG9nIGdyb3VwcyB0byByZWFkIGxvZyBldmVudHMgZnJvbS5cbiAgICogU2luY2Ugd2UgY291bGQgYmUgd2F0Y2hpbmcgbXVsdGlwbGUgc3RhY2tzIHRoYXQgZGVwbG95IHRvXG4gICAqIG11bHRpcGxlIGVudmlyb25tZW50cyAoYWNjb3VudCtyZWdpb24pLCB3ZSBuZWVkIHRvIHN0b3JlIGEgbGlzdCBvZiBsb2cgZ3JvdXBzXG4gICAqIHBlciBlbnYgYWxvbmcgd2l0aCB0aGUgU0RLIG9iamVjdCB0aGF0IGhhcyBhY2Nlc3MgdG8gcmVhZCBmcm9tXG4gICAqIHRoYXQgZW52aXJvbm1lbnQuXG4gICAqL1xuICBwdWJsaWMgYWRkTG9nR3JvdXBzKGVudjogY3hhcGkuRW52aXJvbm1lbnQsIHNkazogU0RLLCBsb2dHcm91cE5hbWVzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGNvbnN0IGF3c0VudiA9IGAke2Vudi5hY2NvdW50fToke2Vudi5yZWdpb259YDtcbiAgICBjb25zdCBsb2dHcm91cHNTdGFydFRpbWVzID0gbG9nR3JvdXBOYW1lcy5yZWR1Y2UoXG4gICAgICAoYWNjLCBncm91cE5hbWUpID0+IHtcbiAgICAgICAgYWNjW2dyb3VwTmFtZV0gPSB0aGlzLnN0YXJ0VGltZTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICB7fSBhcyB7IFtsb2dHcm91cE5hbWU6IHN0cmluZ106IG51bWJlciB9LFxuICAgICk7XG4gICAgdGhpcy5lbnZzTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3Muc2V0KGF3c0Vudiwge1xuICAgICAgc2RrLFxuICAgICAgbG9nR3JvdXBzU3RhcnRUaW1lczoge1xuICAgICAgICAuLi50aGlzLmVudnNMb2dHcm91cHNBY2Nlc3NTZXR0aW5ncy5nZXQoYXdzRW52KT8ubG9nR3JvdXBzU3RhcnRUaW1lcyxcbiAgICAgICAgLi4ubG9nR3JvdXBzU3RhcnRUaW1lcyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvZ0dyb3VwTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZW52c0xvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLnZhbHVlcygpKS5mbGF0TWFwKChzZXR0aW5ncykgPT4gT2JqZWN0LmtleXMoc2V0dGluZ3MubG9nR3JvdXBzU3RhcnRUaW1lcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBzY2hlZHVsZU5leHRUaWNrKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tb25pdG9ySWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy50aWNrKCksIHRoaXMucG9sbGluZ0ludGVydmFsKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBleGNsdWRpbmcgZnJvbSBjb2RlY292ZXJhZ2UgYmVjYXVzZSB0aGlzXG4gICAgLy8gZG9lc24ndCBhbHdheXMgcnVuIChkZXBlbmRzIG9uIHRpbWluZylcbiAgICAvKiBjOCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmICghdGhpcy5tb25pdG9ySWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZXZlbnRzID0gZmxhdHRlbihhd2FpdCB0aGlzLnJlYWROZXdFdmVudHMoKSk7XG4gICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50cykge1xuICAgICAgICBhd2FpdCB0aGlzLnByaW50KGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgLy8gV2UgbWlnaHQgaGF2ZSBiZWVuIHN0b3AoKXBlZCB3aGlsZSB0aGUgbmV0d29yayBjYWxsIHdhcyBpbiBwcm9ncmVzcy5cbiAgICAgIGlmICghdGhpcy5tb25pdG9ySWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfRTUwMzUubXNnKCdFcnJvciBvY2N1cnJlZCB3aGlsZSBtb25pdG9yaW5nIGxvZ3M6ICVzJywgeyBlcnJvcjogZSB9KSk7XG4gICAgfVxuXG4gICAgdGhpcy5zY2hlZHVsZU5leHRUaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgYWxsIG5ldyBsb2cgZXZlbnRzIGZyb20gYSBzZXQgb2YgQ2xvdWRXYXRjaCBMb2cgR3JvdXBzXG4gICAqIGluIHBhcmFsbGVsXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlYWROZXdFdmVudHMoKTogUHJvbWlzZTxBcnJheTxBcnJheTxDbG91ZFdhdGNoTG9nRXZlbnQ+Pj4ge1xuICAgIGNvbnN0IHByb21pc2VzOiBBcnJheTxQcm9taXNlPEFycmF5PENsb3VkV2F0Y2hMb2dFdmVudD4+PiA9IFtdO1xuICAgIGZvciAoY29uc3Qgc2V0dGluZ3Mgb2YgdGhpcy5lbnZzTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MudmFsdWVzKCkpIHtcbiAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgT2JqZWN0LmtleXMoc2V0dGluZ3MubG9nR3JvdXBzU3RhcnRUaW1lcykpIHtcbiAgICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLnJlYWRFdmVudHNGcm9tTG9nR3JvdXAoc2V0dGluZ3MsIGdyb3VwKSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIExpbWl0ZWQgc2V0IG9mIGxvZyBncm91cHNcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByaW50IG91dCBhIGNsb3Vkd2F0Y2ggZXZlbnRcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcHJpbnQoZXZlbnQ6IENsb3VkV2F0Y2hMb2dFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1MDMzLm1zZyhcbiAgICAgIHV0aWwuZm9ybWF0KFxuICAgICAgICAnWyVzXSAlcyAlcycsXG4gICAgICAgIGNoYWxrLmJsdWUoZXZlbnQubG9nR3JvdXBOYW1lKSxcbiAgICAgICAgY2hhbGsueWVsbG93KGV2ZW50LnRpbWVzdGFtcC50b0xvY2FsZVRpbWVTdHJpbmcoKSksXG4gICAgICAgIGV2ZW50Lm1lc3NhZ2UudHJpbSgpLFxuICAgICAgKSxcbiAgICAgIGV2ZW50LFxuICAgICkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIGFsbCBuZXcgbG9nIGV2ZW50cyBmcm9tIGEgQ2xvdWRXYXRjaCBMb2cgR3JvdXBcbiAgICogc3RhcnRpbmcgYXQgZWl0aGVyIHRoZSB0aW1lIHRoZSBob3Rzd2FwIHdhcyB0cmlnZ2VyZWQgb3JcbiAgICogd2hlbiB0aGUgbGFzdCBldmVudCB3YXMgcmVhZCBvbiB0aGUgcHJldmlvdXMgdGlja1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyByZWFkRXZlbnRzRnJvbUxvZ0dyb3VwKFxuICAgIGxvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzOiBMb2dHcm91cHNBY2Nlc3NTZXR0aW5ncyxcbiAgICBsb2dHcm91cE5hbWU6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxBcnJheTxDbG91ZFdhdGNoTG9nRXZlbnQ+PiB7XG4gICAgY29uc3QgZXZlbnRzOiBDbG91ZFdhdGNoTG9nRXZlbnRbXSA9IFtdO1xuXG4gICAgLy8gbG9nIGV2ZW50cyBmcm9tIHNvbWUgc2VydmljZSBhcmUgaW5nZXN0ZWQgZmFzdGVyIHRoYW4gb3RoZXJzXG4gICAgLy8gc28gd2UgbmVlZCB0byB0cmFjayB0aGUgc3RhcnQvZW5kIHRpbWUgZm9yIGVhY2ggbG9nIGdyb3VwIGluZGl2aWR1YWxseVxuICAgIC8vIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIHByb2Nlc3MgYWxsIGV2ZW50cyBmcm9tIGVhY2ggbG9nIGdyb3VwXG4gICAgY29uc3Qgc3RhcnRUaW1lID0gbG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MubG9nR3JvdXBzU3RhcnRUaW1lc1tsb2dHcm91cE5hbWVdID8/IHRoaXMuc3RhcnRUaW1lO1xuICAgIGxldCBlbmRUaW1lID0gc3RhcnRUaW1lO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGxvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLnNkay5jbG91ZFdhdGNoTG9ncygpLmZpbHRlckxvZ0V2ZW50cyh7XG4gICAgICAgIGxvZ0dyb3VwTmFtZTogbG9nR3JvdXBOYW1lLFxuICAgICAgICBsaW1pdDogMTAwLFxuICAgICAgICBzdGFydFRpbWU6IHN0YXJ0VGltZSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZmlsdGVyZWRFdmVudHMgPSByZXNwb25zZS5ldmVudHMgPz8gW107XG5cbiAgICAgIGZvciAoY29uc3QgZXZlbnQgb2YgZmlsdGVyZWRFdmVudHMpIHtcbiAgICAgICAgaWYgKGV2ZW50Lm1lc3NhZ2UpIHtcbiAgICAgICAgICBldmVudHMucHVzaCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBldmVudC5tZXNzYWdlLFxuICAgICAgICAgICAgbG9nR3JvdXBOYW1lLFxuICAgICAgICAgICAgdGltZXN0YW1wOiBldmVudC50aW1lc3RhbXAgPyBuZXcgRGF0ZShldmVudC50aW1lc3RhbXApIDogbmV3IERhdGUoKSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChldmVudC50aW1lc3RhbXAgJiYgZW5kVGltZSA8IGV2ZW50LnRpbWVzdGFtcCkge1xuICAgICAgICAgICAgZW5kVGltZSA9IGV2ZW50LnRpbWVzdGFtcDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIEFzIGxvbmcgYXMgdGhlcmUgYXJlIF9hbnlfIGV2ZW50cyBpbiB0aGUgbG9nIGdyb3VwIGBmaWx0ZXJMb2dFdmVudHNgIHdpbGwgcmV0dXJuIGEgbmV4dFRva2VuLlxuICAgICAgLy8gVGhpcyBpcyB0cnVlIGV2ZW4gaWYgdGhlc2UgZXZlbnRzIGFyZSBiZWZvcmUgYHN0YXJ0VGltZWAuIFNvIGlmIHdlIGhhdmUgMTAwIGV2ZW50cyBhbmQgYSBuZXh0VG9rZW5cbiAgICAgIC8vIHRoZW4gYXNzdW1lIHRoYXQgd2UgaGF2ZSBoaXQgdGhlIGxpbWl0IGFuZCBsZXQgdGhlIHVzZXIga25vdyBzb21lIG1lc3NhZ2VzIGhhdmUgYmVlbiBzdXBwcmVzc2VkLlxuICAgICAgLy8gV2UgYXJlIGVzc2VudGlhbGx5IHNob3dpbmcgdGhlbSBhIHNhbXBsaW5nICgxMDAwMCBldmVudHMgcHJpbnRlZCBvdXQgaXMgbm90IHZlcnkgdXNlZnVsKVxuICAgICAgaWYgKGZpbHRlcmVkRXZlbnRzLmxlbmd0aCA9PT0gMTAwICYmIHJlc3BvbnNlLm5leHRUb2tlbikge1xuICAgICAgICBldmVudHMucHVzaCh7XG4gICAgICAgICAgbWVzc2FnZTogJz4+PiBgd2F0Y2hgIHNob3dzIG9ubHkgdGhlIGZpcnN0IDEwMCBsb2cgbWVzc2FnZXMgLSB0aGUgcmVzdCBoYXZlIGJlZW4gdHJ1bmNhdGVkLi4uJyxcbiAgICAgICAgICBsb2dHcm91cE5hbWUsXG4gICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZShlbmRUaW1lKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAvLyB3aXRoIExhbWJkYSBmdW5jdGlvbnMgdGhlIENsb3VkV2F0Y2ggaXMgbm90IGNyZWF0ZWRcbiAgICAgIC8vIHVudGlsIHNvbWV0aGluZyBpcyBsb2dnZWQsIHNvIGp1c3Qga2VlcCBwb2xsaW5nIHVudGlsXG4gICAgICAvLyB0aGVyZSBpcyBzb210aGluZyB0byBmaW5kXG4gICAgICBpZiAoZS5uYW1lID09PSAnUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgbG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MubG9nR3JvdXBzU3RhcnRUaW1lc1tsb2dHcm91cE5hbWVdID0gZW5kVGltZSArIDE7XG4gICAgcmV0dXJuIGV2ZW50cztcbiAgfVxufVxuIl19
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { ResourceDifference } from '@aws-cdk/cloudformation-diff';
|
|
2
2
|
import * as cxapi from '@aws-cdk/cx-api';
|
|
3
|
-
import {
|
|
3
|
+
import { IoHelper } from '../../../../@aws-cdk/tmp-toolkit-helpers/src/api/io/private';
|
|
4
4
|
import { type Deployments, DeploymentMethod, ResourceIdentifierProperties, ResourcesToImport } from '../deployments';
|
|
5
5
|
import type { Tag } from '../tags';
|
|
6
6
|
export interface ResourceImporterProps {
|
|
7
7
|
deployments: Deployments;
|
|
8
|
-
|
|
9
|
-
action: ToolkitAction;
|
|
8
|
+
ioHelper: IoHelper;
|
|
10
9
|
}
|
|
11
10
|
export interface ImportDeploymentOptions {
|
|
12
11
|
/**
|
|
@@ -89,8 +88,7 @@ export declare class ResourceImporter {
|
|
|
89
88
|
private _currentTemplate;
|
|
90
89
|
private readonly stack;
|
|
91
90
|
private readonly cfn;
|
|
92
|
-
private readonly
|
|
93
|
-
private readonly action;
|
|
91
|
+
private readonly ioHelper;
|
|
94
92
|
constructor(stack: cxapi.CloudFormationStackArtifact, props: ResourceImporterProps);
|
|
95
93
|
/**
|
|
96
94
|
* Ask the user for resources to import
|