projen-pipelines 0.3.23 → 0.3.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +49 -30
- package/API.md +72 -0
- package/lib/assign-approver/base.js +1 -1
- package/lib/assign-approver/github.js +1 -1
- package/lib/awscdk/base.d.ts +9 -0
- package/lib/awscdk/base.js +9 -6
- package/lib/awscdk/bash.js +1 -1
- package/lib/awscdk/github.js +1 -1
- package/lib/awscdk/gitlab.js +1 -1
- package/lib/drift/base.js +1 -1
- package/lib/drift/bash.js +1 -1
- package/lib/drift/detect-drift.js +8 -8
- package/lib/drift/github.js +3 -3
- package/lib/drift/gitlab.js +1 -1
- package/lib/drift/step.js +1 -1
- package/lib/release.js +9 -9
- package/lib/steps/amplify-deploy.step.js +1 -1
- package/lib/steps/artifact-steps.js +2 -2
- package/lib/steps/aws-assume-role.step.js +1 -1
- package/lib/steps/github-summary.step.js +1 -1
- package/lib/steps/package-manager-setup.step.js +2 -2
- package/lib/steps/registries.js +3 -3
- package/lib/steps/step.js +4 -4
- package/lib/versioning/computation.js +3 -3
- package/lib/versioning/config.js +2 -2
- package/lib/versioning/outputs.js +5 -5
- package/lib/versioning/setup.js +4 -4
- package/lib/versioning/strategy.js +1 -1
- package/lib/versioning/version-info.js +2 -2
- package/package.json +1 -1
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.DriftDetector = void 0;
|
|
5
|
-
const
|
|
6
|
-
const
|
|
5
|
+
const node_child_process_1 = require("node:child_process");
|
|
6
|
+
const node_fs_1 = require("node:fs");
|
|
7
7
|
class DriftDetector {
|
|
8
8
|
options;
|
|
9
9
|
results = [];
|
|
@@ -37,7 +37,7 @@ class DriftDetector {
|
|
|
37
37
|
return this.options.stackNames;
|
|
38
38
|
}
|
|
39
39
|
console.log('Getting all stacks in the region...');
|
|
40
|
-
const output = (0,
|
|
40
|
+
const output = (0, node_child_process_1.execSync)(`aws cloudformation list-stacks --region ${this.options.region} --stack-status-filter CREATE_COMPLETE UPDATE_COMPLETE --query 'StackSummaries[].StackName' --output json`, { encoding: 'utf8' });
|
|
41
41
|
return JSON.parse(output);
|
|
42
42
|
}
|
|
43
43
|
async checkStackDrift(stackName) {
|
|
@@ -72,7 +72,7 @@ class DriftDetector {
|
|
|
72
72
|
this.results.push(result);
|
|
73
73
|
}
|
|
74
74
|
async startDriftDetection(stackName) {
|
|
75
|
-
const output = (0,
|
|
75
|
+
const output = (0, node_child_process_1.execSync)(`aws cloudformation detect-stack-drift --stack-name ${stackName} --region ${this.options.region} --query 'StackDriftDetectionId' --output text`, { encoding: 'utf8' });
|
|
76
76
|
return output.trim();
|
|
77
77
|
}
|
|
78
78
|
async waitForDriftDetection(driftId) {
|
|
@@ -83,7 +83,7 @@ class DriftDetector {
|
|
|
83
83
|
if (elapsed > timeout) {
|
|
84
84
|
throw new Error(`Drift detection timed out after ${this.options.timeout} minutes`);
|
|
85
85
|
}
|
|
86
|
-
const output = (0,
|
|
86
|
+
const output = (0, node_child_process_1.execSync)(`aws cloudformation describe-stack-drift-detection-status --stack-drift-detection-id ${driftId} --region ${this.options.region} --output json`, { encoding: 'utf8' });
|
|
87
87
|
const status = JSON.parse(output);
|
|
88
88
|
console.log(`Drift detection status: ${status.DetectionStatus} (${elapsed}s elapsed)`);
|
|
89
89
|
if (status.DetectionStatus === 'DETECTION_COMPLETE') {
|
|
@@ -97,7 +97,7 @@ class DriftDetector {
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
async getDriftedResources(stackName) {
|
|
100
|
-
const output = (0,
|
|
100
|
+
const output = (0, node_child_process_1.execSync)(`aws cloudformation describe-stack-resource-drifts --stack-name ${stackName} --region ${this.options.region} --stack-resource-drift-status-filters MODIFIED DELETED --output json`, { encoding: 'utf8' });
|
|
101
101
|
const response = JSON.parse(output);
|
|
102
102
|
return response.StackResourceDrifts.map((drift) => ({
|
|
103
103
|
logicalResourceId: drift.LogicalResourceId,
|
|
@@ -197,7 +197,7 @@ class DriftDetector {
|
|
|
197
197
|
}
|
|
198
198
|
saveResults() {
|
|
199
199
|
const outputFile = process.env.DRIFT_DETECTION_OUTPUT || 'drift-detection-results.json';
|
|
200
|
-
(0,
|
|
200
|
+
(0, node_fs_1.writeFileSync)(outputFile, JSON.stringify(this.results, null, 2));
|
|
201
201
|
console.log(`\nResults saved to: ${outputFile}`);
|
|
202
202
|
}
|
|
203
203
|
shouldFail() {
|
|
@@ -257,4 +257,4 @@ if (require.main === module) {
|
|
|
257
257
|
const detector = new DriftDetector(options);
|
|
258
258
|
detector.run().catch(console.error);
|
|
259
259
|
}
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZWN0LWRyaWZ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyaWZ0L2RldGVjdC1kcmlmdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsaURBQXlDO0FBQ3pDLDJCQUFtQztBQXVDbkMsTUFBTSxhQUFhO0lBQ0EsT0FBTyxDQUF3QjtJQUMvQixPQUFPLEdBQWtCLEVBQUUsQ0FBQztJQUU3QyxZQUFZLE9BQThCO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixPQUFPLEVBQUUsRUFBRTtZQUNYLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLEdBQUcsT0FBTztTQUNYLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUc7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFekUsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUU3QyxLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUMvQixNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFFbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztnQkFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFTyxL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Q0FZYixDQUFDLENBQUM7QUFDSCxDQUFDO0FBRUQsbUJBQW1CO0FBQ25CLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUM1QixNQUFNLE9BQU8sR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUM1QixNQUFNLFFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyBleGVjU3luYyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHsgd3JpdGVGaWxlU3luYyB9IGZyb20gJ2ZzJztcblxuaW50ZXJmYWNlIERyaWZ0RGV0ZWN0aW9uT3B0aW9ucyB7XG4gIHJlZ2lvbjogc3RyaW5nO1xuICBzdGFja05hbWVzPzogc3RyaW5nW107XG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIGZhaWxPbkRyaWZ0PzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIERyaWZ0UmVzdWx0IHtcbiAgc3RhY2tOYW1lOiBzdHJpbmc7XG4gIGRyaWZ0U3RhdHVzOiAnSU5fU1lOQycgfCAnRFJJRlRFRCcgfCAnVU5LTk9XTicgfCAnTk9UX0NIRUNLRUQnO1xuICBkcmlmdGVkUmVzb3VyY2VzPzogRHJpZnRlZFJlc291cmNlW107XG4gIGVycm9yPzogc3RyaW5nO1xuICBrbm93bkVycm9yc0hhbmRsZWQ/OiBLbm93bkVycm9yUmVzdWx0W107XG59XG5cbmludGVyZmFjZSBLbm93bkVycm9yUmVzdWx0IHtcbiAgcmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuICByZWFkb25seSBlcnJvclR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgb3JpZ2luYWxFcnJvcjogYW55O1xuICByZWFkb25seSBoYW5kbGVkOiBib29sZWFuO1xuICByZWFkb25seSBtZXNzYWdlPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRHJpZnRlZFJlc291cmNlIHtcbiAgcmVhZG9ubHkgbG9naWNhbFJlc291cmNlSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0YWNrUmVzb3VyY2VEcmlmdFN0YXR1czogc3RyaW5nO1xuICByZWFkb25seSBwcm9wZXJ0eURpZmZlcmVuY2VzPzogUHJvcGVydHlEaWZmZXJlbmNlW107XG59XG5cbmludGVyZmFjZSBQcm9wZXJ0eURpZmZlcmVuY2Uge1xuICByZWFkb25seSBwcm9wZXJ0eVBhdGg6IHN0cmluZztcbiAgcmVhZG9ubHkgZXhwZWN0ZWRWYWx1ZTogc3RyaW5nO1xuICByZWFkb25seSBhY3R1YWxWYWx1ZTogc3RyaW5nO1xuICByZWFkb25seSBkaWZmZXJlbmNlVHlwZTogc3RyaW5nO1xufVxuXG5jbGFzcyBEcmlmdERldGVjdG9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBEcmlmdERldGVjdGlvbk9wdGlvbnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzdWx0czogRHJpZnRSZXN1bHRbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IERyaWZ0RGV0ZWN0aW9uT3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIHRpbWVvdXQ6IDMwLFxuICAgICAgZmFpbE9uRHJpZnQ6IHRydWUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnNvbGUubG9nKGBTdGFydGluZyBkcmlmdCBkZXRlY3Rpb24gaW4gcmVnaW9uICR7dGhpcy5vcHRpb25zLnJlZ2lvbn1gKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGFja3MgPSBhd2FpdCB0aGlzLmdldFN0YWNrc1RvQ2hlY2soKTtcblxuICAgICAgZm9yIChjb25zdCBzdGFja05hbWUgb2Ygc3RhY2tzKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY2hlY2tTdGFja0RyaWZ0KHN0YWNrTmFtZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJpbnRTdW1tYXJ5KCk7XG4gICAgICB0aGlzLnNhdmVSZXN1bHRzKCk7XG5cbiAgICAgIGlmICh0aGlzLnNob3VsZEZhaWwoKSkge1xuICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhdGFsIGVycm9yIGR1cmluZyBkcmlmdCBkZXRlY3Rpb246JywgZXJyb3IpO1xuICAgICAgcHJvY2Vzcy5leGl0KDIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0U3RhY2tzVG9DaGVjaygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5zdGFja05hbWVzICYmIHRoaXMub3B0aW9ucy5zdGFja05hbWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc3RhY2tOYW1lcztcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZygnR2V0dGluZyBhbGwgc3RhY2tzIGluIHRoZSByZWdpb24uLi4nKTtcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhcbiAgICAgIGBhd3MgY2xvdWRmb3JtYXRpb24gbGlzdC1zdGFja3MgLS1yZWdpb24gJHt0aGlzLm9wdGlvbnMucmVnaW9ufSAtLXN0YWNrLXN0YXR1cy1maWx0ZXIgQ1JFQVRFX0NPTVBMRVRFIFVQREFURV9DT01QTEVURSAtLXF1ZXJ5ICdTdGFja1N1bW1hcmllc1tdLlN0YWNrTmFtZScgLS1vdXRwdXQganNvbmAsXG4gICAgICB7IGVuY29kaW5nOiAndXRmOCcgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIEpTT04ucGFyc2Uob3V0cHV0KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tTdGFja0RyaWZ0KHN0YWNrTmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc29sZS5sb2coYFxcbkNoZWNraW5nIGRyaWZ0IGZvciBzdGFjazogJHtzdGFja05hbWV9YCk7XG5cbiAgICBjb25zdCByZXN1bHQ6IERyaWZ0UmVzdWx0ID0ge1xuICAgICAgc3RhY2tOYW1lLFxuICAgICAgZHJpZnRTdGF0dXM6ICdOT1RfQ0hFQ0tFRCcsXG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBTdGFydCBkcmlmdCBkZXRlY3Rpb25cbiAgICAgIGNvbnN0IGRyaWZ0SWQgPSBhd2FpdCB0aGlzLnN0YXJ0RHJpZnREZXRlY3Rpb24oc3RhY2tOYW1lKTtcbiAgICAgIGNvbnNvbGUubG9nKGBTdGFydGVkIGRyaWZ0IGRldGVjdGlvbiB3aXRoIElEOiAke2RyaWZ0SWR9YCk7XG5cbiAgICAgIC8vIFdhaXQgZm9yIGNvbXBsZXRpb25cbiAgICAgIGNvbnN0IGRyaWZ0U3RhdHVzID0gYXdhaXQgdGhpcy53YWl0Rm9yRHJpZnREZXRlY3Rpb24oZHJpZnRJZCk7XG4gICAgICByZXN1bHQuZHJpZnRTdGF0dXMgPSBkcmlmdFN0YXR1cztcblxuICAgICAgaWYgKGRyaWZ0U3RhdHVzID09PSAnRFJJRlRFRCcpIHtcbiAgICAgICAgcmVzdWx0LmRyaWZ0ZWRSZXNvdXJjZXMgPSBhd2FpdCB0aGlzLmdldERyaWZ0ZWRSZXNvdXJjZXMoc3RhY2tOYW1lKTtcbiAgICAgICAgY29uc29sZS5sb2coYERSSUZUIERFVEVDVEVEIGluIHN0YWNrICR7c3RhY2tOYW1lfSFgKTtcblxuICAgICAgICAvLyBIYW5kbGUga25vd24gZHJpZnQgZXJyb3JzXG4gICAgICAgIHJlc3VsdC5rbm93bkVycm9yc0hhbmRsZWQgPSBhd2FpdCB0aGlzLmhhbmRsZUtub3duRHJpZnRFcnJvcnMocmVzdWx0LmRyaWZ0ZWRSZXNvdXJjZXMpO1xuXG4gICAgICAgIC8vIFByaW50IGRyaWZ0IGRldGFpbHNcbiAgICAgICAgdGhpcy5wcmludERyaWZ0RGV0YWlscyhyZXN1bHQpO1xuICAgICAgfSBlbHNlIGlmIChkcmlmdFN0YXR1cyA9PT0gJ0lOX1NZTkMnKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBTdGFjayAke3N0YWNrTmFtZX0gaXMgaW4gc3luY2ApO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGNoZWNraW5nIGRyaWZ0IGZvciBzdGFjayAke3N0YWNrTmFtZX06YCwgZXJyb3IubWVzc2FnZSk7XG4gICAgICByZXN1bHQuZXJyb3IgPSBlcnJvci5tZXNzYWdlO1xuICAgIH1cblxuICAgIHRoaXMucmVzdWx0cy5wdXNoKHJlc3VsdCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHN0YXJ0RHJpZnREZXRlY3Rpb24oc3RhY2tOYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKFxuICAgICAgYGF3cyBjbG91ZGZvcm1hdGlvbiBkZXRlY3Qtc3RhY2stZHJpZnQgLS1zdGFjay1uYW1lICR7c3RhY2tOYW1lfSAtLXJlZ2lvbiAke3RoaXMub3B0aW9ucy5yZWdpb259IC0tcXVlcnkgJ1N0YWNrRHJpZnREZXRlY3Rpb25JZCcgLS1vdXRwdXQgdGV4dGAsXG4gICAgICB7IGVuY29kaW5nOiAndXRmOCcgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIG91dHB1dC50cmltKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHdhaXRGb3JEcmlmdERldGVjdGlvbihkcmlmdElkOiBzdHJpbmcpOiBQcm9taXNlPCdJTl9TWU5DJyB8ICdEUklGVEVEJyB8ICdVTktOT1dOJyB8ICdOT1RfQ0hFQ0tFRCc+IHtcbiAgICBjb25zdCB0aW1lb3V0ID0gdGhpcy5vcHRpb25zLnRpbWVvdXQhICogNjA7IC8vIENvbnZlcnQgdG8gc2Vjb25kc1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgZWxhcHNlZCA9IE1hdGguZmxvb3IoKERhdGUubm93KCkgLSBzdGFydFRpbWUpIC8gMTAwMCk7XG5cbiAgICAgIGlmIChlbGFwc2VkID4gdGltZW91dCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYERyaWZ0IGRldGVjdGlvbiB0aW1lZCBvdXQgYWZ0ZXIgJHt0aGlzLm9wdGlvbnMudGltZW91dH0gbWludXRlc2ApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhcbiAgICAgICAgYGF3cyBjbG91ZGZvcm1hdGlvbiBkZXNjcmliZS1zdGFjay1kcmlmdC1kZXRlY3Rpb24tc3RhdHVzIC0tc3RhY2stZHJpZnQtZGV0ZWN0aW9uLWlkICR7ZHJpZnRJZH0gLS1yZWdpb24gJHt0aGlzLm9wdGlvbnMucmVnaW9ufSAtLW91dHB1dCBqc29uYCxcbiAgICAgICAgeyBlbmNvZGluZzogJ3V0ZjgnIH0sXG4gICAgICApO1xuXG4gICAgICBjb25zdCBzdGF0dXMgPSBKU09OLnBhcnNlKG91dHB1dCk7XG4gICAgICBjb25zb2xlLmxvZyhgRHJpZnQgZGV0ZWN0aW9uIHN0YXR1czogJHtzdGF0dXMuRGV0ZWN0aW9uU3RhdHVzfSAoJHtlbGFwc2VkfXMgZWxhcHNlZClgKTtcblxuICAgICAgaWYgKHN0YXR1cy5EZXRlY3Rpb25TdGF0dXMgPT09ICdERVRFQ1RJT05fQ09NUExFVEUnKSB7XG4gICAgICAgIHJldHVybiBzdGF0dXMuU3RhY2tEcmlmdFN0YXR1cyBhcyAnSU5fU1lOQycgfCAnRFJJRlRFRCcgfCAnVU5LTk9XTicgfCAnTk9UX0NIRUNLRUQnO1xuICAgICAgfSBlbHNlIGlmIChzdGF0dXMuRGV0ZWN0aW9uU3RhdHVzID09PSAnREVURUNUSU9OX0ZBSUxFRCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEcmlmdCBkZXRlY3Rpb24gZmFpbGVkOiAke3N0YXR1cy5EZXRlY3Rpb25TdGF0dXNSZWFzb259YCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFdhaXQgMTAgc2Vjb25kcyBiZWZvcmUgY2hlY2tpbmcgYWdhaW5cbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwMCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RHJpZnRlZFJlc291cmNlcyhzdGFja05hbWU6IHN0cmluZyk6IFByb21pc2U8RHJpZnRlZFJlc291cmNlW10+IHtcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhcbiAgICAgIGBhd3MgY2xvdWRmb3JtYXRpb24gZGVzY3JpYmUtc3RhY2stcmVzb3VyY2UtZHJpZnRzIC0tc3RhY2stbmFtZSAke3N0YWNrTmFtZX0gLS1yZWdpb24gJHt0aGlzLm9wdGlvbnMucmVnaW9ufSAtLXN0YWNrLXJlc291cmNlLWRyaWZ0LXN0YXR1cy1maWx0ZXJzIE1PRElGSUVEIERFTEVURUQgLS1vdXRwdXQganNvbmAsXG4gICAgICB7IGVuY29kaW5nOiAndXRmOCcgfSxcbiAgICApO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBKU09OLnBhcnNlKG91dHB1dCk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLlN0YWNrUmVzb3VyY2VEcmlmdHMubWFwKChkcmlmdDogYW55KSA9PiAoe1xuICAgICAgbG9naWNhbFJlc291cmNlSWQ6IGRyaWZ0LkxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgICAgcmVzb3VyY2VUeXBlOiBkcmlmdC5SZXNvdXJjZVR5cGUsXG4gICAgICBzdGFja1Jlc291cmNlRHJpZnRTdGF0dXM6IGRyaWZ0LlN0YWNrUmVzb3VyY2VEcmlmdFN0YXR1cyxcbiAgICAgIHByb3BlcnR5RGlmZmVyZW5jZXM6IGRyaWZ0LlByb3BlcnR5RGlmZmVyZW5jZXM/Lm1hcCgoZGlmZjogYW55KSA9PiAoe1xuICAgICAgICBwcm9wZXJ0eVBhdGg6IGRpZmYuUHJvcGVydHlQYXRoLFxuICAgICAgICBleHBlY3RlZFZhbHVlOiBkaWZmLkV4cGVjdGVkVmFsdWUsXG4gICAgICAgIGFjdHVhbFZhbHVlOiBkaWZmLkFjdHVhbFZhbHVlLFxuICAgICAgICBkaWZmZXJlbmNlVHlwZTogZGlmZi5EaWZmZXJlbmNlVHlwZSxcbiAgICAgIH0pKSxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGtub3duIGRyaWZ0IGVycm9ycyBmb3Igc3BlY2lmaWMgcmVzb3VyY2VzXG4gICAqIFRoaXMgbWV0aG9kIGNhbiBiZSBleHRlbmRlZCBsYXRlciB0byBpbXBsZW1lbnQgY3VzdG9tIGxvZ2ljIGZvciBrbm93biBpc3N1ZXNcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlS25vd25EcmlmdEVycm9ycyhkcmlmdGVkUmVzb3VyY2VzPzogRHJpZnRlZFJlc291cmNlW10pOiBQcm9taXNlPEtub3duRXJyb3JSZXN1bHRbXT4ge1xuICAgIGNvbnN0IGtub3duRXJyb3JzOiBLbm93bkVycm9yUmVzdWx0W10gPSBbXTtcblxuICAgIGlmICghZHJpZnRlZFJlc291cmNlcykge1xuICAgICAgcmV0dXJuIGtub3duRXJyb3JzO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgX3Jlc291cmNlIG9mIGRyaWZ0ZWRSZXNvdXJjZXMpIHtcblxuICAgICAgLy8gVE9ETzogSW1wbGVtZW50IGN1c3RvbSBsb2dpYyBoZXJlIGZvciBrbm93biBkcmlmdCBlcnJvcnNcbiAgICAgIC8vIEV4YW1wbGUgc3RydWN0dXJlIGZvciBoYW5kbGluZyBrbm93biBlcnJvcnM6XG5cbiAgICAgIC8vIENoZWNrIGZvciBMYW1iZGEgcnVudGltZSBkcmlmdCAoY29tbW9uIGlzc3VlKVxuICAgICAgLy8gaWYgKHJlc291cmNlLnJlc291cmNlVHlwZSA9PT0gJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicgJiYgcmVzb3VyY2UucHJvcGVydHlEaWZmZXJlbmNlcykge1xuICAgICAgLy8gICBjb25zdCBydW50aW1lRHJpZnQgPSByZXNvdXJjZS5wcm9wZXJ0eURpZmZlcmVuY2VzLmZpbmQoZGlmZiA9PlxuICAgICAgLy8gICAgIGRpZmYucHJvcGVydHlQYXRoID09PSAnL1J1bnRpbWUnIHx8IGRpZmYucHJvcGVydHlQYXRoID09PSAnUnVudGltZScsXG4gICAgICAvLyAgICk7XG5cbiAgICAgIC8vICAgaWYgKHJ1bnRpbWVEcmlmdCkge1xuICAgICAgLy8gICAgIGtub3duRXJyb3JzLnB1c2goe1xuICAgICAgLy8gICAgICAgcmVzb3VyY2VJZDogcmVzb3VyY2UubG9naWNhbFJlc291cmNlSWQsXG4gICAgICAvLyAgICAgICBlcnJvclR5cGU6ICdsYW1iZGEtcnVudGltZS1kcmlmdCcsXG4gICAgICAvLyAgICAgICBvcmlnaW5hbEVycm9yOiBydW50aW1lRHJpZnQsXG4gICAgICAvLyAgICAgICBoYW5kbGVkOiBmYWxzZSwgLy8gV2lsbCBiZSBpbXBsZW1lbnRlZCBsYXRlclxuICAgICAgLy8gICAgICAgbWVzc2FnZTogJ0xhbWJkYSBydW50aW1lIGRyaWZ0IGRldGVjdGVkIC0gbWFudWFsIGltcGxlbWVudGF0aW9uIG5lZWRlZCcsXG4gICAgICAvLyAgICAgfSk7XG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH1cblxuICAgICAgLy8gLy8gQ2hlY2sgZm9yIGF1dG8tc2NhbGluZyByZWxhdGVkIGRyaWZ0XG4gICAgICAvLyBpZiAocmVzb3VyY2UucmVzb3VyY2VUeXBlLmluY2x1ZGVzKCdBdXRvU2NhbGluZycpICYmIHJlc291cmNlLnByb3BlcnR5RGlmZmVyZW5jZXMpIHtcbiAgICAgIC8vICAga25vd25FcnJvcnMucHVzaCh7XG4gICAgICAvLyAgICAgcmVzb3VyY2VJZDogcmVzb3VyY2UubG9naWNhbFJlc291cmNlSWQsXG4gICAgICAvLyAgICAgZXJyb3JUeXBlOiAnYXV0b3NjYWxpbmctZHJpZnQnLFxuICAgICAgLy8gICAgIG9yaWdpbmFsRXJyb3I6IHJlc291cmNlLnByb3BlcnR5RGlmZmVyZW5jZXMsXG4gICAgICAvLyAgICAgaGFuZGxlZDogZmFsc2UsIC8vIFdpbGwgYmUgaW1wbGVtZW50ZWQgbGF0ZXJcbiAgICAgIC8vICAgICBtZXNzYWdlOiAnQXV0by1zY2FsaW5nIGRyaWZ0IGRldGVjdGVkIC0gbWFudWFsIGltcGxlbWVudGF0aW9uIG5lZWRlZCcsXG4gICAgICAvLyAgIH0pO1xuICAgICAgLy8gfVxuXG4gICAgICAvLyBBZGQgbW9yZSBwYXR0ZXJucyBoZXJlIGFzIG5lZWRlZFxuICAgIH1cblxuICAgIHJldHVybiBrbm93bkVycm9ycztcbiAgfVxuXG4gIHByaXZhdGUgcHJpbnREcmlmdERldGFpbHMocmVzdWx0OiBEcmlmdFJlc3VsdCk6IHZvaWQge1xuICAgIGlmICghcmVzdWx0LmRyaWZ0ZWRSZXNvdXJjZXMgfHwgcmVzdWx0LmRyaWZ0ZWRSZXNvdXJjZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coJ1xcbkRyaWZ0ZWQgcmVzb3VyY2VzOicpO1xuICAgIGNvbnNvbGUubG9nKCc9PT09PT09PT09PT09PT09PScpO1xuXG4gICAgZm9yIChjb25zdCByZXNvdXJjZSBvZiByZXN1bHQuZHJpZnRlZFJlc291cmNlcykge1xuICAgICAgY29uc29sZS5sb2coYFxcbi0gJHtyZXNvdXJjZS5sb2dpY2FsUmVzb3VyY2VJZH0gKCR7cmVzb3VyY2UucmVzb3VyY2VUeXBlfSlgKTtcbiAgICAgIGNvbnNvbGUubG9nKGAgIFN0YXR1czogJHtyZXNvdXJjZS5zdGFja1Jlc291cmNlRHJpZnRTdGF0dXN9YCk7XG5cbiAgICAgIGlmIChyZXNvdXJjZS5wcm9wZXJ0eURpZmZlcmVuY2VzKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCcgIFByb3BlcnR5IGRpZmZlcmVuY2VzOicpO1xuICAgICAgICBmb3IgKGNvbnN0IGRpZmYgb2YgcmVzb3VyY2UucHJvcGVydHlEaWZmZXJlbmNlcykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGAgICAgJHtkaWZmLnByb3BlcnR5UGF0aH06YCk7XG4gICAgICAgICAgY29uc29sZS5sb2coYCAgICAgIEV4cGVjdGVkOiAke2RpZmYuZXhwZWN0ZWRWYWx1ZX1gKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgICAgICAgQWN0dWFsOiAke2RpZmYuYWN0dWFsVmFsdWV9YCk7XG4gICAgICAgICAgY29uc29sZS5sb2coYCAgICAgIFR5cGU6ICR7ZGlmZi5kaWZmZXJlbmNlVHlwZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHJpbnRTdW1tYXJ5KCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdcXG49PT09PT09PT09IERSSUZUIERFVEVDVElPTiBTVU1NQVJZID09PT09PT09PT0nKTtcblxuICAgIGNvbnN0IGRyaWZ0ZWRTdGFja3MgPSB0aGlzLnJlc3VsdHMuZmlsdGVyKHIgPT4gci5kcmlmdFN0YXR1cyA9PT0gJ0RSSUZURUQnKTtcbiAgICBjb25zdCBzeW5jZWRTdGFja3MgPSB0aGlzLnJlc3VsdHMuZmlsdGVyKHIgPT4gci5kcmlmdFN0YXR1cyA9PT0gJ0lOX1NZTkMnKTtcbiAgICBjb25zdCBlcnJvclN0YWNrcyA9IHRoaXMucmVzdWx0cy5maWx0ZXIociA9PiByLmVycm9yKTtcblxuICAgIGNvbnNvbGUubG9nKGBUb3RhbCBzdGFja3MgY2hlY2tlZDogJHt0aGlzLnJlc3VsdHMubGVuZ3RofWApO1xuICAgIGNvbnNvbGUubG9nKGBJbiBzeW5jOiAke3N5bmNlZFN0YWNrcy5sZW5ndGh9YCk7XG4gICAgY29uc29sZS5sb2coYERyaWZ0ZWQ6ICR7ZHJpZnRlZFN0YWNrcy5sZW5ndGh9YCk7XG4gICAgY29uc29sZS5sb2coYEVycm9yczogJHtlcnJvclN0YWNrcy5sZW5ndGh9YCk7XG5cbiAgICBpZiAoZHJpZnRlZFN0YWNrcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zb2xlLmxvZygnXFxuRHJpZnRlZCBzdGFja3M6Jyk7XG4gICAgICBmb3IgKGNvbnN0IHN0YWNrIG9mIGRyaWZ0ZWRTdGFja3MpIHtcbiAgICAgICAgY29uc3QgcmVzb3VyY2VDb3VudCA9IHN0YWNrLmRyaWZ0ZWRSZXNvdXJjZXM/Lmxlbmd0aCB8fCAwO1xuICAgICAgICBjb25zb2xlLmxvZyhgICAtICR7c3RhY2suc3RhY2tOYW1lfSAoJHtyZXNvdXJjZUNvdW50fSByZXNvdXJjZXMpYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVycm9yU3RhY2tzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnNvbGUubG9nKCdcXG5TdGFja3Mgd2l0aCBlcnJvcnM6Jyk7XG4gICAgICBmb3IgKGNvbnN0IHN0YWNrIG9mIGVycm9yU3RhY2tzKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGAgIC0gJHtzdGFjay5zdGFja05hbWV9OiAke3N0YWNrLmVycm9yfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2F2ZVJlc3VsdHMoKTogdm9pZCB7XG4gICAgY29uc3Qgb3V0cHV0RmlsZSA9IHByb2Nlc3MuZW52LkRSSUZUX0RFVEVDVElPTl9PVVRQVVQgfHwgJ2RyaWZ0LWRldGVjdGlvbi1yZXN1bHRzLmpzb24nO1xuICAgIHdyaXRlRmlsZVN5bmMob3V0cHV0RmlsZSwgSlNPTi5zdHJpbmdpZnkodGhpcy5yZXN1bHRzLCBudWxsLCAyKSk7XG4gICAgY29uc29sZS5sb2coYFxcblJlc3VsdHMgc2F2ZWQgdG86ICR7b3V0cHV0RmlsZX1gKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkRmFpbCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5mYWlsT25EcmlmdCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJlc3VsdHMuc29tZShyID0+IHIuZHJpZnRTdGF0dXMgPT09ICdEUklGVEVEJyk7XG4gIH1cbn1cblxuLy8gUGFyc2UgY29tbWFuZCBsaW5lIGFyZ3VtZW50c1xuZnVuY3Rpb24gcGFyc2VBcmdzKCk6IERyaWZ0RGV0ZWN0aW9uT3B0aW9ucyB7XG4gIGNvbnN0IGFyZ3MgPSBwcm9jZXNzLmFyZ3Yuc2xpY2UoMik7XG4gIGNvbnN0IG9wdGlvbnM6IERyaWZ0RGV0ZWN0aW9uT3B0aW9ucyA9IHtcbiAgICByZWdpb246IHByb2Nlc3MuZW52LkFXU19SRUdJT04gfHwgJ3VzLWVhc3QtMScsXG4gIH07XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgc3dpdGNoIChhcmdzW2ldKSB7XG4gICAgICBjYXNlICctLXJlZ2lvbic6XG4gICAgICAgIG9wdGlvbnMucmVnaW9uID0gYXJnc1srK2ldO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJy0tc3RhY2tzJzpcbiAgICAgICAgb3B0aW9ucy5zdGFja05hbWVzID0gYXJnc1srK2ldLnNwbGl0KCcsJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnLS10aW1lb3V0JzpcbiAgICAgICAgb3B0aW9ucy50aW1lb3V0ID0gcGFyc2VJbnQoYXJnc1srK2ldKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICctLW5vLWZhaWwtb24tZHJpZnQnOlxuICAgICAgICBvcHRpb25zLmZhaWxPbkRyaWZ0ID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc29sZS5lcnJvcihgVW5rbm93biBhcmd1bWVudDogJHthcmdzW2ldfWApO1xuICAgICAgICBwcmludFVzYWdlKCk7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3B0aW9ucztcbn1cblxuZnVuY3Rpb24gcHJpbnRVc2FnZSgpOiB2b2lkIHtcbiAgY29uc29sZS5sb2coYFxuVXNhZ2U6IGRldGVjdC1kcmlmdC50cyBbb3B0aW9uc11cblxuT3B0aW9uczpcbiAgLS1yZWdpb24gPHJlZ2lvbj4gICAgICAgICAgIEFXUyByZWdpb24gKGRlZmF1bHQ6IHVzLWVhc3QtMSBvciBBV1NfUkVHSU9OIGVudiB2YXIpXG4gIC0tc3RhY2tzIDxzdGFjazEsc3RhY2syPiAgICBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBzdGFjayBuYW1lcyAoZGVmYXVsdDogYWxsIHN0YWNrcylcbiAgLS10aW1lb3V0IDxtaW51dGVzPiAgICAgICAgIFRpbWVvdXQgaW4gbWludXRlcyAoZGVmYXVsdDogMzApXG4gIC0tbm8tZmFpbC1vbi1kcmlmdCAgICAgICAgIERvbid0IGV4aXQgd2l0aCBlcnJvciBjb2RlIGlmIGRyaWZ0IGlzIGRldGVjdGVkXG5cbkVudmlyb25tZW50IHZhcmlhYmxlczpcbiAgQVdTX1JFR0lPTiAgICAgICAgICAgICAgICAgIERlZmF1bHQgQVdTIHJlZ2lvblxuICBEUklGVF9ERVRFQ1RJT05fT1VUUFVUICAgICAgT3V0cHV0IGZpbGUgcGF0aCAoZGVmYXVsdDogZHJpZnQtZGV0ZWN0aW9uLXJlc3VsdHMuanNvbilcbmApO1xufVxuXG4vLyBNYWluIGVudHJ5IHBvaW50XG5pZiAocmVxdWlyZS5tYWluID09PSBtb2R1bGUpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IHBhcnNlQXJncygpO1xuICBjb25zdCBkZXRlY3RvciA9IG5ldyBEcmlmdERldGVjdG9yKG9wdGlvbnMpO1xuICBkZXRlY3Rvci5ydW4oKS5jYXRjaChjb25zb2xlLmVycm9yKTtcbn1cblxuZXhwb3J0IHsgRHJpZnREZXRlY3RvciwgRHJpZnREZXRlY3Rpb25PcHRpb25zLCBEcmlmdFJlc3VsdCwgS25vd25FcnJvclJlc3VsdCwgRHJpZnRlZFJlc291cmNlIH07Il19
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZWN0LWRyaWZ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyaWZ0L2RldGVjdC1kcmlmdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsMkRBQThDO0FBQzlDLHFDQUF3QztBQXVDeEMsTUFBTSxhQUFhO0lBQ0EsT0FBTyxDQUF3QjtJQUMvQixPQUFPLEdBQWtCLEVBQUUsQ0FBQztJQUU3QyxZQUFZLE9BQThCO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixPQUFPLEVBQUUsRUFBRTtZQUNYLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLEdBQUcsT0FBTztTQUNYLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUc7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFekUsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUU3QyxLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUMvQixNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFFbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztnQkFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFTyxL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Q0FZYixDQUFDLENBQUM7QUFDSCxDQUFDO0FBRUQsbUJBQW1CO0FBQ25CLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUM1QixNQUFNLE9BQU8sR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUM1QixNQUFNLFFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyBleGVjU3luYyB9IGZyb20gJ25vZGU6Y2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgeyB3cml0ZUZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5cbmludGVyZmFjZSBEcmlmdERldGVjdGlvbk9wdGlvbnMge1xuICByZWdpb246IHN0cmluZztcbiAgc3RhY2tOYW1lcz86IHN0cmluZ1tdO1xuICB0aW1lb3V0PzogbnVtYmVyO1xuICBmYWlsT25EcmlmdD86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBEcmlmdFJlc3VsdCB7XG4gIHN0YWNrTmFtZTogc3RyaW5nO1xuICBkcmlmdFN0YXR1czogJ0lOX1NZTkMnIHwgJ0RSSUZURUQnIHwgJ1VOS05PV04nIHwgJ05PVF9DSEVDS0VEJztcbiAgZHJpZnRlZFJlc291cmNlcz86IERyaWZ0ZWRSZXNvdXJjZVtdO1xuICBlcnJvcj86IHN0cmluZztcbiAga25vd25FcnJvcnNIYW5kbGVkPzogS25vd25FcnJvclJlc3VsdFtdO1xufVxuXG5pbnRlcmZhY2UgS25vd25FcnJvclJlc3VsdCB7XG4gIHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgZXJyb3JUeXBlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9yaWdpbmFsRXJyb3I6IGFueTtcbiAgcmVhZG9ubHkgaGFuZGxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbWVzc2FnZT86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIERyaWZ0ZWRSZXNvdXJjZSB7XG4gIHJlYWRvbmx5IGxvZ2ljYWxSZXNvdXJjZUlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlc291cmNlVHlwZTogc3RyaW5nO1xuICByZWFkb25seSBzdGFja1Jlc291cmNlRHJpZnRTdGF0dXM6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvcGVydHlEaWZmZXJlbmNlcz86IFByb3BlcnR5RGlmZmVyZW5jZVtdO1xufVxuXG5pbnRlcmZhY2UgUHJvcGVydHlEaWZmZXJlbmNlIHtcbiAgcmVhZG9ubHkgcHJvcGVydHlQYXRoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGV4cGVjdGVkVmFsdWU6IHN0cmluZztcbiAgcmVhZG9ubHkgYWN0dWFsVmFsdWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZGlmZmVyZW5jZVR5cGU6IHN0cmluZztcbn1cblxuY2xhc3MgRHJpZnREZXRlY3RvciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogRHJpZnREZXRlY3Rpb25PcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc3VsdHM6IERyaWZ0UmVzdWx0W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBEcmlmdERldGVjdGlvbk9wdGlvbnMpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICB0aW1lb3V0OiAzMCxcbiAgICAgIGZhaWxPbkRyaWZ0OiB0cnVlLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zb2xlLmxvZyhgU3RhcnRpbmcgZHJpZnQgZGV0ZWN0aW9uIGluIHJlZ2lvbiAke3RoaXMub3B0aW9ucy5yZWdpb259YCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RhY2tzID0gYXdhaXQgdGhpcy5nZXRTdGFja3NUb0NoZWNrKCk7XG5cbiAgICAgIGZvciAoY29uc3Qgc3RhY2tOYW1lIG9mIHN0YWNrcykge1xuICAgICAgICBhd2FpdCB0aGlzLmNoZWNrU3RhY2tEcmlmdChzdGFja05hbWUpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByaW50U3VtbWFyeSgpO1xuICAgICAgdGhpcy5zYXZlUmVzdWx0cygpO1xuXG4gICAgICBpZiAodGhpcy5zaG91bGRGYWlsKCkpIHtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYXRhbCBlcnJvciBkdXJpbmcgZHJpZnQgZGV0ZWN0aW9uOicsIGVycm9yKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFN0YWNrc1RvQ2hlY2soKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuc3RhY2tOYW1lcyAmJiB0aGlzLm9wdGlvbnMuc3RhY2tOYW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLnN0YWNrTmFtZXM7XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coJ0dldHRpbmcgYWxsIHN0YWNrcyBpbiB0aGUgcmVnaW9uLi4uJyk7XG4gICAgY29uc3Qgb3V0cHV0ID0gZXhlY1N5bmMoXG4gICAgICBgYXdzIGNsb3VkZm9ybWF0aW9uIGxpc3Qtc3RhY2tzIC0tcmVnaW9uICR7dGhpcy5vcHRpb25zLnJlZ2lvbn0gLS1zdGFjay1zdGF0dXMtZmlsdGVyIENSRUFURV9DT01QTEVURSBVUERBVEVfQ09NUExFVEUgLS1xdWVyeSAnU3RhY2tTdW1tYXJpZXNbXS5TdGFja05hbWUnIC0tb3V0cHV0IGpzb25gLFxuICAgICAgeyBlbmNvZGluZzogJ3V0ZjgnIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBKU09OLnBhcnNlKG91dHB1dCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNoZWNrU3RhY2tEcmlmdChzdGFja05hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnNvbGUubG9nKGBcXG5DaGVja2luZyBkcmlmdCBmb3Igc3RhY2s6ICR7c3RhY2tOYW1lfWApO1xuXG4gICAgY29uc3QgcmVzdWx0OiBEcmlmdFJlc3VsdCA9IHtcbiAgICAgIHN0YWNrTmFtZSxcbiAgICAgIGRyaWZ0U3RhdHVzOiAnTk9UX0NIRUNLRUQnLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgLy8gU3RhcnQgZHJpZnQgZGV0ZWN0aW9uXG4gICAgICBjb25zdCBkcmlmdElkID0gYXdhaXQgdGhpcy5zdGFydERyaWZ0RGV0ZWN0aW9uKHN0YWNrTmFtZSk7XG4gICAgICBjb25zb2xlLmxvZyhgU3RhcnRlZCBkcmlmdCBkZXRlY3Rpb24gd2l0aCBJRDogJHtkcmlmdElkfWApO1xuXG4gICAgICAvLyBXYWl0IGZvciBjb21wbGV0aW9uXG4gICAgICBjb25zdCBkcmlmdFN0YXR1cyA9IGF3YWl0IHRoaXMud2FpdEZvckRyaWZ0RGV0ZWN0aW9uKGRyaWZ0SWQpO1xuICAgICAgcmVzdWx0LmRyaWZ0U3RhdHVzID0gZHJpZnRTdGF0dXM7XG5cbiAgICAgIGlmIChkcmlmdFN0YXR1cyA9PT0gJ0RSSUZURUQnKSB7XG4gICAgICAgIHJlc3VsdC5kcmlmdGVkUmVzb3VyY2VzID0gYXdhaXQgdGhpcy5nZXREcmlmdGVkUmVzb3VyY2VzKHN0YWNrTmFtZSk7XG4gICAgICAgIGNvbnNvbGUubG9nKGBEUklGVCBERVRFQ1RFRCBpbiBzdGFjayAke3N0YWNrTmFtZX0hYCk7XG5cbiAgICAgICAgLy8gSGFuZGxlIGtub3duIGRyaWZ0IGVycm9yc1xuICAgICAgICByZXN1bHQua25vd25FcnJvcnNIYW5kbGVkID0gYXdhaXQgdGhpcy5oYW5kbGVLbm93bkRyaWZ0RXJyb3JzKHJlc3VsdC5kcmlmdGVkUmVzb3VyY2VzKTtcblxuICAgICAgICAvLyBQcmludCBkcmlmdCBkZXRhaWxzXG4gICAgICAgIHRoaXMucHJpbnREcmlmdERldGFpbHMocmVzdWx0KTtcbiAgICAgIH0gZWxzZSBpZiAoZHJpZnRTdGF0dXMgPT09ICdJTl9TWU5DJykge1xuICAgICAgICBjb25zb2xlLmxvZyhgU3RhY2sgJHtzdGFja05hbWV9IGlzIGluIHN5bmNgKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBjaGVja2luZyBkcmlmdCBmb3Igc3RhY2sgJHtzdGFja05hbWV9OmAsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgcmVzdWx0LmVycm9yID0gZXJyb3IubWVzc2FnZTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc3VsdHMucHVzaChyZXN1bHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzdGFydERyaWZ0RGV0ZWN0aW9uKHN0YWNrTmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhcbiAgICAgIGBhd3MgY2xvdWRmb3JtYXRpb24gZGV0ZWN0LXN0YWNrLWRyaWZ0IC0tc3RhY2stbmFtZSAke3N0YWNrTmFtZX0gLS1yZWdpb24gJHt0aGlzLm9wdGlvbnMucmVnaW9ufSAtLXF1ZXJ5ICdTdGFja0RyaWZ0RGV0ZWN0aW9uSWQnIC0tb3V0cHV0IHRleHRgLFxuICAgICAgeyBlbmNvZGluZzogJ3V0ZjgnIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBvdXRwdXQudHJpbSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB3YWl0Rm9yRHJpZnREZXRlY3Rpb24oZHJpZnRJZDogc3RyaW5nKTogUHJvbWlzZTwnSU5fU1lOQycgfCAnRFJJRlRFRCcgfCAnVU5LTk9XTicgfCAnTk9UX0NIRUNLRUQnPiB7XG4gICAgY29uc3QgdGltZW91dCA9IHRoaXMub3B0aW9ucy50aW1lb3V0ISAqIDYwOyAvLyBDb252ZXJ0IHRvIHNlY29uZHNcbiAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGNvbnN0IGVsYXBzZWQgPSBNYXRoLmZsb29yKChEYXRlLm5vdygpIC0gc3RhcnRUaW1lKSAvIDEwMDApO1xuXG4gICAgICBpZiAoZWxhcHNlZCA+IHRpbWVvdXQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEcmlmdCBkZXRlY3Rpb24gdGltZWQgb3V0IGFmdGVyICR7dGhpcy5vcHRpb25zLnRpbWVvdXR9IG1pbnV0ZXNgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb3V0cHV0ID0gZXhlY1N5bmMoXG4gICAgICAgIGBhd3MgY2xvdWRmb3JtYXRpb24gZGVzY3JpYmUtc3RhY2stZHJpZnQtZGV0ZWN0aW9uLXN0YXR1cyAtLXN0YWNrLWRyaWZ0LWRldGVjdGlvbi1pZCAke2RyaWZ0SWR9IC0tcmVnaW9uICR7dGhpcy5vcHRpb25zLnJlZ2lvbn0gLS1vdXRwdXQganNvbmAsXG4gICAgICAgIHsgZW5jb2Rpbmc6ICd1dGY4JyB9LFxuICAgICAgKTtcblxuICAgICAgY29uc3Qgc3RhdHVzID0gSlNPTi5wYXJzZShvdXRwdXQpO1xuICAgICAgY29uc29sZS5sb2coYERyaWZ0IGRldGVjdGlvbiBzdGF0dXM6ICR7c3RhdHVzLkRldGVjdGlvblN0YXR1c30gKCR7ZWxhcHNlZH1zIGVsYXBzZWQpYCk7XG5cbiAgICAgIGlmIChzdGF0dXMuRGV0ZWN0aW9uU3RhdHVzID09PSAnREVURUNUSU9OX0NPTVBMRVRFJykge1xuICAgICAgICByZXR1cm4gc3RhdHVzLlN0YWNrRHJpZnRTdGF0dXMgYXMgJ0lOX1NZTkMnIHwgJ0RSSUZURUQnIHwgJ1VOS05PV04nIHwgJ05PVF9DSEVDS0VEJztcbiAgICAgIH0gZWxzZSBpZiAoc3RhdHVzLkRldGVjdGlvblN0YXR1cyA9PT0gJ0RFVEVDVElPTl9GQUlMRUQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRHJpZnQgZGV0ZWN0aW9uIGZhaWxlZDogJHtzdGF0dXMuRGV0ZWN0aW9uU3RhdHVzUmVhc29ufWApO1xuICAgICAgfVxuXG4gICAgICAvLyBXYWl0IDEwIHNlY29uZHMgYmVmb3JlIGNoZWNraW5nIGFnYWluXG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMDApKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldERyaWZ0ZWRSZXNvdXJjZXMoc3RhY2tOYW1lOiBzdHJpbmcpOiBQcm9taXNlPERyaWZ0ZWRSZXNvdXJjZVtdPiB7XG4gICAgY29uc3Qgb3V0cHV0ID0gZXhlY1N5bmMoXG4gICAgICBgYXdzIGNsb3VkZm9ybWF0aW9uIGRlc2NyaWJlLXN0YWNrLXJlc291cmNlLWRyaWZ0cyAtLXN0YWNrLW5hbWUgJHtzdGFja05hbWV9IC0tcmVnaW9uICR7dGhpcy5vcHRpb25zLnJlZ2lvbn0gLS1zdGFjay1yZXNvdXJjZS1kcmlmdC1zdGF0dXMtZmlsdGVycyBNT0RJRklFRCBERUxFVEVEIC0tb3V0cHV0IGpzb25gLFxuICAgICAgeyBlbmNvZGluZzogJ3V0ZjgnIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gSlNPTi5wYXJzZShvdXRwdXQpO1xuICAgIHJldHVybiByZXNwb25zZS5TdGFja1Jlc291cmNlRHJpZnRzLm1hcCgoZHJpZnQ6IGFueSkgPT4gKHtcbiAgICAgIGxvZ2ljYWxSZXNvdXJjZUlkOiBkcmlmdC5Mb2dpY2FsUmVzb3VyY2VJZCxcbiAgICAgIHJlc291cmNlVHlwZTogZHJpZnQuUmVzb3VyY2VUeXBlLFxuICAgICAgc3RhY2tSZXNvdXJjZURyaWZ0U3RhdHVzOiBkcmlmdC5TdGFja1Jlc291cmNlRHJpZnRTdGF0dXMsXG4gICAgICBwcm9wZXJ0eURpZmZlcmVuY2VzOiBkcmlmdC5Qcm9wZXJ0eURpZmZlcmVuY2VzPy5tYXAoKGRpZmY6IGFueSkgPT4gKHtcbiAgICAgICAgcHJvcGVydHlQYXRoOiBkaWZmLlByb3BlcnR5UGF0aCxcbiAgICAgICAgZXhwZWN0ZWRWYWx1ZTogZGlmZi5FeHBlY3RlZFZhbHVlLFxuICAgICAgICBhY3R1YWxWYWx1ZTogZGlmZi5BY3R1YWxWYWx1ZSxcbiAgICAgICAgZGlmZmVyZW5jZVR5cGU6IGRpZmYuRGlmZmVyZW5jZVR5cGUsXG4gICAgICB9KSksXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBrbm93biBkcmlmdCBlcnJvcnMgZm9yIHNwZWNpZmljIHJlc291cmNlc1xuICAgKiBUaGlzIG1ldGhvZCBjYW4gYmUgZXh0ZW5kZWQgbGF0ZXIgdG8gaW1wbGVtZW50IGN1c3RvbSBsb2dpYyBmb3Iga25vd24gaXNzdWVzXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGhhbmRsZUtub3duRHJpZnRFcnJvcnMoZHJpZnRlZFJlc291cmNlcz86IERyaWZ0ZWRSZXNvdXJjZVtdKTogUHJvbWlzZTxLbm93bkVycm9yUmVzdWx0W10+IHtcbiAgICBjb25zdCBrbm93bkVycm9yczogS25vd25FcnJvclJlc3VsdFtdID0gW107XG5cbiAgICBpZiAoIWRyaWZ0ZWRSZXNvdXJjZXMpIHtcbiAgICAgIHJldHVybiBrbm93bkVycm9ycztcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IF9yZXNvdXJjZSBvZiBkcmlmdGVkUmVzb3VyY2VzKSB7XG5cbiAgICAgIC8vIFRPRE86IEltcGxlbWVudCBjdXN0b20gbG9naWMgaGVyZSBmb3Iga25vd24gZHJpZnQgZXJyb3JzXG4gICAgICAvLyBFeGFtcGxlIHN0cnVjdHVyZSBmb3IgaGFuZGxpbmcga25vd24gZXJyb3JzOlxuXG4gICAgICAvLyBDaGVjayBmb3IgTGFtYmRhIHJ1bnRpbWUgZHJpZnQgKGNvbW1vbiBpc3N1ZSlcbiAgICAgIC8vIGlmIChyZXNvdXJjZS5yZXNvdXJjZVR5cGUgPT09ICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nICYmIHJlc291cmNlLnByb3BlcnR5RGlmZmVyZW5jZXMpIHtcbiAgICAgIC8vICAgY29uc3QgcnVudGltZURyaWZ0ID0gcmVzb3VyY2UucHJvcGVydHlEaWZmZXJlbmNlcy5maW5kKGRpZmYgPT5cbiAgICAgIC8vICAgICBkaWZmLnByb3BlcnR5UGF0aCA9PT0gJy9SdW50aW1lJyB8fCBkaWZmLnByb3BlcnR5UGF0aCA9PT0gJ1J1bnRpbWUnLFxuICAgICAgLy8gICApO1xuXG4gICAgICAvLyAgIGlmIChydW50aW1lRHJpZnQpIHtcbiAgICAgIC8vICAgICBrbm93bkVycm9ycy5wdXNoKHtcbiAgICAgIC8vICAgICAgIHJlc291cmNlSWQ6IHJlc291cmNlLmxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgICAgLy8gICAgICAgZXJyb3JUeXBlOiAnbGFtYmRhLXJ1bnRpbWUtZHJpZnQnLFxuICAgICAgLy8gICAgICAgb3JpZ2luYWxFcnJvcjogcnVudGltZURyaWZ0LFxuICAgICAgLy8gICAgICAgaGFuZGxlZDogZmFsc2UsIC8vIFdpbGwgYmUgaW1wbGVtZW50ZWQgbGF0ZXJcbiAgICAgIC8vICAgICAgIG1lc3NhZ2U6ICdMYW1iZGEgcnVudGltZSBkcmlmdCBkZXRlY3RlZCAtIG1hbnVhbCBpbXBsZW1lbnRhdGlvbiBuZWVkZWQnLFxuICAgICAgLy8gICAgIH0pO1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG5cbiAgICAgIC8vIC8vIENoZWNrIGZvciBhdXRvLXNjYWxpbmcgcmVsYXRlZCBkcmlmdFxuICAgICAgLy8gaWYgKHJlc291cmNlLnJlc291cmNlVHlwZS5pbmNsdWRlcygnQXV0b1NjYWxpbmcnKSAmJiByZXNvdXJjZS5wcm9wZXJ0eURpZmZlcmVuY2VzKSB7XG4gICAgICAvLyAgIGtub3duRXJyb3JzLnB1c2goe1xuICAgICAgLy8gICAgIHJlc291cmNlSWQ6IHJlc291cmNlLmxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgICAgLy8gICAgIGVycm9yVHlwZTogJ2F1dG9zY2FsaW5nLWRyaWZ0JyxcbiAgICAgIC8vICAgICBvcmlnaW5hbEVycm9yOiByZXNvdXJjZS5wcm9wZXJ0eURpZmZlcmVuY2VzLFxuICAgICAgLy8gICAgIGhhbmRsZWQ6IGZhbHNlLCAvLyBXaWxsIGJlIGltcGxlbWVudGVkIGxhdGVyXG4gICAgICAvLyAgICAgbWVzc2FnZTogJ0F1dG8tc2NhbGluZyBkcmlmdCBkZXRlY3RlZCAtIG1hbnVhbCBpbXBsZW1lbnRhdGlvbiBuZWVkZWQnLFxuICAgICAgLy8gICB9KTtcbiAgICAgIC8vIH1cblxuICAgICAgLy8gQWRkIG1vcmUgcGF0dGVybnMgaGVyZSBhcyBuZWVkZWRcbiAgICB9XG5cbiAgICByZXR1cm4ga25vd25FcnJvcnM7XG4gIH1cblxuICBwcml2YXRlIHByaW50RHJpZnREZXRhaWxzKHJlc3VsdDogRHJpZnRSZXN1bHQpOiB2b2lkIHtcbiAgICBpZiAoIXJlc3VsdC5kcmlmdGVkUmVzb3VyY2VzIHx8IHJlc3VsdC5kcmlmdGVkUmVzb3VyY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKCdcXG5EcmlmdGVkIHJlc291cmNlczonKTtcbiAgICBjb25zb2xlLmxvZygnPT09PT09PT09PT09PT09PT0nKTtcblxuICAgIGZvciAoY29uc3QgcmVzb3VyY2Ugb2YgcmVzdWx0LmRyaWZ0ZWRSZXNvdXJjZXMpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBcXG4tICR7cmVzb3VyY2UubG9naWNhbFJlc291cmNlSWR9ICgke3Jlc291cmNlLnJlc291cmNlVHlwZX0pYCk7XG4gICAgICBjb25zb2xlLmxvZyhgICBTdGF0dXM6ICR7cmVzb3VyY2Uuc3RhY2tSZXNvdXJjZURyaWZ0U3RhdHVzfWApO1xuXG4gICAgICBpZiAocmVzb3VyY2UucHJvcGVydHlEaWZmZXJlbmNlcykge1xuICAgICAgICBjb25zb2xlLmxvZygnICBQcm9wZXJ0eSBkaWZmZXJlbmNlczonKTtcbiAgICAgICAgZm9yIChjb25zdCBkaWZmIG9mIHJlc291cmNlLnByb3BlcnR5RGlmZmVyZW5jZXMpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgICAgICR7ZGlmZi5wcm9wZXJ0eVBhdGh9OmApO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGAgICAgICBFeHBlY3RlZDogJHtkaWZmLmV4cGVjdGVkVmFsdWV9YCk7XG4gICAgICAgICAgY29uc29sZS5sb2coYCAgICAgIEFjdHVhbDogJHtkaWZmLmFjdHVhbFZhbHVlfWApO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGAgICAgICBUeXBlOiAke2RpZmYuZGlmZmVyZW5jZVR5cGV9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByaW50U3VtbWFyeSgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnXFxuPT09PT09PT09PSBEUklGVCBERVRFQ1RJT04gU1VNTUFSWSA9PT09PT09PT09Jyk7XG5cbiAgICBjb25zdCBkcmlmdGVkU3RhY2tzID0gdGhpcy5yZXN1bHRzLmZpbHRlcihyID0+IHIuZHJpZnRTdGF0dXMgPT09ICdEUklGVEVEJyk7XG4gICAgY29uc3Qgc3luY2VkU3RhY2tzID0gdGhpcy5yZXN1bHRzLmZpbHRlcihyID0+IHIuZHJpZnRTdGF0dXMgPT09ICdJTl9TWU5DJyk7XG4gICAgY29uc3QgZXJyb3JTdGFja3MgPSB0aGlzLnJlc3VsdHMuZmlsdGVyKHIgPT4gci5lcnJvcik7XG5cbiAgICBjb25zb2xlLmxvZyhgVG90YWwgc3RhY2tzIGNoZWNrZWQ6ICR7dGhpcy5yZXN1bHRzLmxlbmd0aH1gKTtcbiAgICBjb25zb2xlLmxvZyhgSW4gc3luYzogJHtzeW5jZWRTdGFja3MubGVuZ3RofWApO1xuICAgIGNvbnNvbGUubG9nKGBEcmlmdGVkOiAke2RyaWZ0ZWRTdGFja3MubGVuZ3RofWApO1xuICAgIGNvbnNvbGUubG9nKGBFcnJvcnM6ICR7ZXJyb3JTdGFja3MubGVuZ3RofWApO1xuXG4gICAgaWYgKGRyaWZ0ZWRTdGFja3MubGVuZ3RoID4gMCkge1xuICAgICAgY29uc29sZS5sb2coJ1xcbkRyaWZ0ZWQgc3RhY2tzOicpO1xuICAgICAgZm9yIChjb25zdCBzdGFjayBvZiBkcmlmdGVkU3RhY2tzKSB7XG4gICAgICAgIGNvbnN0IHJlc291cmNlQ291bnQgPSBzdGFjay5kcmlmdGVkUmVzb3VyY2VzPy5sZW5ndGggfHwgMDtcbiAgICAgICAgY29uc29sZS5sb2coYCAgLSAke3N0YWNrLnN0YWNrTmFtZX0gKCR7cmVzb3VyY2VDb3VudH0gcmVzb3VyY2VzKWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChlcnJvclN0YWNrcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zb2xlLmxvZygnXFxuU3RhY2tzIHdpdGggZXJyb3JzOicpO1xuICAgICAgZm9yIChjb25zdCBzdGFjayBvZiBlcnJvclN0YWNrcykge1xuICAgICAgICBjb25zb2xlLmxvZyhgICAtICR7c3RhY2suc3RhY2tOYW1lfTogJHtzdGFjay5lcnJvcn1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNhdmVSZXN1bHRzKCk6IHZvaWQge1xuICAgIGNvbnN0IG91dHB1dEZpbGUgPSBwcm9jZXNzLmVudi5EUklGVF9ERVRFQ1RJT05fT1VUUFVUIHx8ICdkcmlmdC1kZXRlY3Rpb24tcmVzdWx0cy5qc29uJztcbiAgICB3cml0ZUZpbGVTeW5jKG91dHB1dEZpbGUsIEpTT04uc3RyaW5naWZ5KHRoaXMucmVzdWx0cywgbnVsbCwgMikpO1xuICAgIGNvbnNvbGUubG9nKGBcXG5SZXN1bHRzIHNhdmVkIHRvOiAke291dHB1dEZpbGV9YCk7XG4gIH1cblxuICBwcml2YXRlIHNob3VsZEZhaWwoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuZmFpbE9uRHJpZnQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yZXN1bHRzLnNvbWUociA9PiByLmRyaWZ0U3RhdHVzID09PSAnRFJJRlRFRCcpO1xuICB9XG59XG5cbi8vIFBhcnNlIGNvbW1hbmQgbGluZSBhcmd1bWVudHNcbmZ1bmN0aW9uIHBhcnNlQXJncygpOiBEcmlmdERldGVjdGlvbk9wdGlvbnMge1xuICBjb25zdCBhcmdzID0gcHJvY2Vzcy5hcmd2LnNsaWNlKDIpO1xuICBjb25zdCBvcHRpb25zOiBEcmlmdERldGVjdGlvbk9wdGlvbnMgPSB7XG4gICAgcmVnaW9uOiBwcm9jZXNzLmVudi5BV1NfUkVHSU9OIHx8ICd1cy1lYXN0LTEnLFxuICB9O1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgIHN3aXRjaCAoYXJnc1tpXSkge1xuICAgICAgY2FzZSAnLS1yZWdpb24nOlxuICAgICAgICBvcHRpb25zLnJlZ2lvbiA9IGFyZ3NbKytpXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICctLXN0YWNrcyc6XG4gICAgICAgIG9wdGlvbnMuc3RhY2tOYW1lcyA9IGFyZ3NbKytpXS5zcGxpdCgnLCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJy0tdGltZW91dCc6XG4gICAgICAgIG9wdGlvbnMudGltZW91dCA9IHBhcnNlSW50KGFyZ3NbKytpXSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnLS1uby1mYWlsLW9uLWRyaWZ0JzpcbiAgICAgICAgb3B0aW9ucy5mYWlsT25EcmlmdCA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFVua25vd24gYXJndW1lbnQ6ICR7YXJnc1tpXX1gKTtcbiAgICAgICAgcHJpbnRVc2FnZSgpO1xuICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG9wdGlvbnM7XG59XG5cbmZ1bmN0aW9uIHByaW50VXNhZ2UoKTogdm9pZCB7XG4gIGNvbnNvbGUubG9nKGBcblVzYWdlOiBkZXRlY3QtZHJpZnQudHMgW29wdGlvbnNdXG5cbk9wdGlvbnM6XG4gIC0tcmVnaW9uIDxyZWdpb24+ICAgICAgICAgICBBV1MgcmVnaW9uIChkZWZhdWx0OiB1cy1lYXN0LTEgb3IgQVdTX1JFR0lPTiBlbnYgdmFyKVxuICAtLXN0YWNrcyA8c3RhY2sxLHN0YWNrMj4gICAgQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2Ygc3RhY2sgbmFtZXMgKGRlZmF1bHQ6IGFsbCBzdGFja3MpXG4gIC0tdGltZW91dCA8bWludXRlcz4gICAgICAgICBUaW1lb3V0IGluIG1pbnV0ZXMgKGRlZmF1bHQ6IDMwKVxuICAtLW5vLWZhaWwtb24tZHJpZnQgICAgICAgICBEb24ndCBleGl0IHdpdGggZXJyb3IgY29kZSBpZiBkcmlmdCBpcyBkZXRlY3RlZFxuXG5FbnZpcm9ubWVudCB2YXJpYWJsZXM6XG4gIEFXU19SRUdJT04gICAgICAgICAgICAgICAgICBEZWZhdWx0IEFXUyByZWdpb25cbiAgRFJJRlRfREVURUNUSU9OX09VVFBVVCAgICAgIE91dHB1dCBmaWxlIHBhdGggKGRlZmF1bHQ6IGRyaWZ0LWRldGVjdGlvbi1yZXN1bHRzLmpzb24pXG5gKTtcbn1cblxuLy8gTWFpbiBlbnRyeSBwb2ludFxuaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBwYXJzZUFyZ3MoKTtcbiAgY29uc3QgZGV0ZWN0b3IgPSBuZXcgRHJpZnREZXRlY3RvcihvcHRpb25zKTtcbiAgZGV0ZWN0b3IucnVuKCkuY2F0Y2goY29uc29sZS5lcnJvcik7XG59XG5cbmV4cG9ydCB7IERyaWZ0RGV0ZWN0b3IsIERyaWZ0RGV0ZWN0aW9uT3B0aW9ucywgRHJpZnRSZXN1bHQsIEtub3duRXJyb3JSZXN1bHQsIERyaWZ0ZWRSZXNvdXJjZSB9OyJdfQ==
|
package/lib/drift/github.js
CHANGED
|
@@ -6,7 +6,7 @@ const workflows_model_1 = require("projen/lib/github/workflows-model");
|
|
|
6
6
|
const base_1 = require("./base");
|
|
7
7
|
const step_1 = require("./step");
|
|
8
8
|
class GitHubDriftDetectionWorkflow extends base_1.DriftDetectionWorkflow {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.GitHubDriftDetectionWorkflow", version: "0.3.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.GitHubDriftDetectionWorkflow", version: "0.3.25" };
|
|
10
10
|
permissions;
|
|
11
11
|
createIssues;
|
|
12
12
|
workflow;
|
|
@@ -109,7 +109,7 @@ class GitHubDriftDetectionWorkflow extends base_1.DriftDetectionWorkflow {
|
|
|
109
109
|
}
|
|
110
110
|
generateIssueCreationScript(stage) {
|
|
111
111
|
return `
|
|
112
|
-
const fs = require('fs');
|
|
112
|
+
const fs = require('node:fs');
|
|
113
113
|
const resultsFile = '${this.namePrefix}drift-results-${stage.name}.json';
|
|
114
114
|
|
|
115
115
|
if (!fs.existsSync(resultsFile)) {
|
|
@@ -231,4 +231,4 @@ fi
|
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
233
|
exports.GitHubDriftDetectionWorkflow = GitHubDriftDetectionWorkflow;
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyaWZ0L2dpdGh1Yi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsdUVBQWtFO0FBQ2xFLGlDQUEyRztBQUMzRyxpQ0FBNEM7QUFlNUMsTUFBYSw0QkFBNkIsU0FBUSw2QkFBc0I7O0lBQ3JELFdBQVcsQ0FBMEI7SUFDckMsWUFBWSxDQUFVO0lBQ3RCLFFBQVEsQ0FBaUI7SUFFMUMsWUFBWSxPQUFnQixFQUFFLE9BQTRDO1FBQ3hFLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUM7UUFFbEQsSUFBSSxDQUFDLFFBQVEsR0FBSSxJQUFJLENBQUMsT0FBeUIsQ0FBQyxNQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsaUJBQWlCLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNmLFFBQVEsRUFBRSxDQUFDO29CQUNULElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtpQkFDcEIsQ0FBQztZQUNGLGdCQUFnQixFQUFFO2dCQUNoQixNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFO3dCQUNMLFdBQVcsRUFBRSxnREFBZ0Q7d0JBQzdELFFBQVEsRUFBRSxLQUFLO3dCQUNmLElBQUksRUFBRSxRQUFRO3dCQUNkLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7cUJBQ3RDO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCx5QkFBeUI7UUFDekIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFF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QUksRUFBRSxDQUFDO2dCQUN0RCxLQUFLLEVBQUU7b0JBQ0w7d0JBQ0UsSUFBSSxFQUFFLHdCQUF3Qjt3QkFDOUIsSUFBSSxFQUFFLDhCQUE4Qjt3QkFDcEMsSUFBSSxFQUFFOzRCQUNKLElBQUksRUFBRSxlQUFlO3lCQUN0QjtxQkFDRjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsa0JBQWtCO3dCQUN4QixHQUFHLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFO3FCQUNsQztpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU8sMkJBQTJCLENBQUMsS0FBaUM7UUFDbkUsT0FBTzs7dUJBRVksSUFBSSxDQUFDLFVBQVUsaUJBQWlCLEtBQUssQ0FBQyxJQUFJOzs7Ozs7Ozs7Ozs7Ozs7bUNBZTlCLEtBQUssQ0FBQyxJQUFJOzs7YUFHaEMsS0FBSyxDQUFDLElBQUk7Y0FDVCxLQUFLLENBQUMsTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUNBNkJPLEtBQUssQ0FBQyxJQUFJOzs7Ozs7Ozs7bUNBU1IsS0FBSyxDQUFDLElBQUk7Ozs7Ozs7Ozs7OztDQVk1QyxDQUFDO0lBQ0EsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixPQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E2Q1YsQ0FBQztJQUNBLENBQUM7O0FBdE9ILG9FQXdPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2plY3QgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgR2l0SHViUHJvamVjdCwgR2l0aHViV29ya2Zsb3cgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yic7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcbmltcG9ydCB7IERyaWZ0RGV0ZWN0aW9uV29ya2Zsb3csIERyaWZ0RGV0ZWN0aW9uV29ya2Zsb3dPcHRpb25zLCBEcmlmdERldGVjdGlvblN0YWdlT3B0aW9ucyB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBEcmlmdERldGVjdGlvblN0ZXAgfSBmcm9tICcuL3N0ZXAnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdpdEh1YkRyaWZ0RGV0ZWN0aW9uV29ya2Zsb3dPcHRpb25zIGV4dGVuZHMgRHJpZnREZXRlY3Rpb25Xb3JrZmxvd09wdGlvbnMge1xuICAvKipcbiAgICogQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBmb3IgR2l0SHViIHdvcmtmbG93XG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9ucz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY3JlYXRlIGlzc3VlcyBvbiBkcmlmdCBkZXRlY3Rpb25cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUlzc3Vlcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBHaXRIdWJEcmlmdERldGVjdGlvbldvcmtmbG93IGV4dGVuZHMgRHJpZnREZXRlY3Rpb25Xb3JrZmxvdyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGVybWlzc2lvbnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IGNyZWF0ZUlzc3VlczogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSB3b3JrZmxvdzogR2l0aHViV29ya2Zsb3c7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogR2l0SHViRHJpZnREZXRlY3Rpb25Xb3JrZmxvd09wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0LCBvcHRpb25zKTtcbiAgICB0aGlzLnBlcm1pc3Npb25zID0gb3B0aW9ucy5wZXJtaXNzaW9ucztcbiAgICB0aGlzLmNyZWF0ZUlzc3VlcyA9IG9wdGlvbnMuY3JlYXRlSXNzdWVzID8/IGZhbHNlO1xuXG4gICAgdGhpcy53b3JrZmxvdyA9ICh0aGlzLnByb2plY3QgYXMgR2l0SHViUHJvamVjdCkuZ2l0aHViIS5hZGRXb3JrZmxvdyhgJHt0aGlzLm5hbWVQcmVmaXh9ZHJpZnQtZGV0ZWN0aW9uYCk7XG4gICAgdGhpcy53b3JrZmxvdy5vbih7XG4gICAgICBzY2hlZHVsZTogW3tcbiAgICAgICAgY3JvbjogdGhpcy5zY2hlZHVsZSxcbiAgICAgIH1dLFxuICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge1xuICAgICAgICBpbnB1dHM6IHtcbiAgICAgICAgICBzdGFnZToge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdTdGFnZSB0byBjaGVjayBmb3IgZHJpZnQgKGxlYXZlIGVtcHR5IGZvciBhbGwpJyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIHR5cGU6ICdjaG9pY2UnLFxuICAgICAgICAgICAgb3B0aW9uczogdGhpcy5zdGFnZXMubWFwKHMgPT4gcy5uYW1lKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIEFkZCBqb2IgZm9yIGVhY2ggc3RhZ2VcbiAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIHRoaXMuc3RhZ2VzKSB7XG4gICAgICBjb25zdCBqb2JJZCA9IGBkcmlmdC0ke3N0YWdlLm5hbWV9YC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05LV0vZywgJy0nKTtcblxuICAgICAgY29uc3QgZHJpZnRTdGVwID0gbmV3IERyaWZ0RGV0ZWN0aW9uU3RlcCh0aGlzLnByb2plY3QsIHN0YWdlKS50b0dpdGh1YigpO1xuXG4gICAgICB0aGlzLndvcmtmbG93LmFkZEpvYihqb2JJZCwge1xuICAgICAgICBuYW1lOiBgRHJpZnQgRGV0ZWN0aW9uIC0gJHtzdGFnZS5uYW1lfWAsXG4gICAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICAgIGlmOiBgXFwke3sgZ2l0aHViLmV2ZW50X25hbWUgPT0gJ3NjaGVkdWxlJyB8fCBnaXRodWIuZXZlbnQuaW5wdXRzLnN0YWdlID09ICcnIHx8IGdpdGh1Yi5ldmVudC5pbnB1dHMuc3RhZ2UgPT0gJyR7c3RhZ2UubmFtZX0nIH19YCxcbiAgICAgICAgZW52OiBkcmlmdFN0ZXAuZW52LFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgICAgLi4uKGRyaWZ0U3RlcC5wZXJtaXNzaW9ucyA/PyB7fSksXG4gICAgICAgICAgLi4uKHRoaXMuY3JlYXRlSXNzdWVzID8geyBpc3N1ZXM6IEpvYlBlcm1pc3Npb24uV1JJVEUgfSA6IHt9KSxcbiAgICAgICAgICAuLi50aGlzLnBlcm1pc3Npb25zLFxuICAgICAgICB9LFxuICAgICAgICBzdGVwczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2NicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnU2V0dXAgTm9kZS5qcycsXG4gICAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9zZXR1cC1ub2RlQHY2JyxcbiAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgJ25vZGUtdmVyc2lvbic6ICcyMCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4udGhpcy5wcmVJbnN0YWxsU3RlcHMuZmxhdE1hcChzdGVwID0+IHN0ZXAudG9HaXRodWIoKS5zdGVwcyksXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0luc3RhbGwgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgICAgIHJ1bjogYCR7dGhpcy5wcm9qZWN0LnByb2plbkNvbW1hbmR9IGluc3RhbGw6Y2lgLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4uZHJpZnRTdGVwLnN0ZXBzLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdVcGxvYWQgcmVzdWx0cycsXG4gICAgICAgICAgICB1c2VzOiAnYWN0aW9ucy91cGxvYWQtYXJ0aWZhY3RAdjcnLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICBuYW1lOiBgJHt0aGlzLm5hbWVQcmVmaXh9ZHJpZnQtcmVzdWx0cy0ke3N0YWdlLm5hbWV9YCxcbiAgICAgICAgICAgICAgcGF0aDogYCR7dGhpcy5uYW1lUHJlZml4fWRyaWZ0LXJlc3VsdHMtJHtzdGFnZS5uYW1lfS5qc29uYCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi4odGhpcy5jcmVhdGVJc3N1ZXMgPyBbe1xuICAgICAgICAgICAgbmFtZTogJ0NyZWF0ZSBJc3N1ZSBvbiBEcmlmdCcsXG4gICAgICAgICAgICBpZjogJ3N0ZXBzLmRyaWZ0Lm91dGNvbWUgPT0gXFwnZmFpbHVyZVxcJyAmJiBnaXRodWIuZXZlbnRfbmFtZSA9PSBcXCdzY2hlZHVsZVxcJycsXG4gICAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9naXRodWItc2NyaXB0QHY4JyxcbiAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgc2NyaXB0OiB0aGlzLmdlbmVyYXRlSXNzdWVDcmVhdGlvblNjcmlwdChzdGFnZSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1dIDogW10pLFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQWRkIHN1bW1hcnkgam9iXG4gICAgaWYgKHRoaXMuc3RhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMud29ya2Zsb3cuYWRkSm9iKCdkcmlmdC1zdW1tYXJ5Jywge1xuICAgICAgICBuYW1lOiAnRHJpZnQgRGV0ZWN0aW9uIFN1bW1hcnknLFxuICAgICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgIH0sXG4gICAgICAgIG5lZWRzOiB0aGlzLnN0YWdlcy5tYXAoc3RhZ2UgPT4gYGRyaWZ0LSR7c3RhZ2UubmFtZX1gKSxcbiAgICAgICAgc3RlcHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnRG93bmxvYWQgYWxsIGFydGlmYWN0cycsXG4gICAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdEB2OCcsXG4gICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgIHBhdGg6ICdkcmlmdC1yZXN1bHRzJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnR2VuZXJhdGUgc3VtbWFyeScsXG4gICAgICAgICAgICBydW46IHRoaXMuZ2VuZXJhdGVTdW1tYXJ5U2NyaXB0KCksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVJc3N1ZUNyZWF0aW9uU2NyaXB0KHN0YWdlOiBEcmlmdERldGVjdGlvblN0YWdlT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcbmNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTtcbmNvbnN0IHJlc3VsdHNGaWxlID0gJyR7dGhpcy5uYW1lUHJlZml4fWRyaWZ0LXJlc3VsdHMtJHtzdGFnZS5uYW1lfS5qc29uJztcblxuaWYgKCFmcy5leGlzdHNTeW5jKHJlc3VsdHNGaWxlKSkge1xuICBjb25zb2xlLmxvZygnTm8gcmVzdWx0cyBmaWxlIGZvdW5kJyk7XG4gIHJldHVybjtcbn1cblxuY29uc3QgcmVzdWx0cyA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHJlc3VsdHNGaWxlLCAndXRmOCcpKTtcbmNvbnN0IGRyaWZ0ZWRTdGFja3MgPSByZXN1bHRzLmZpbHRlcihyID0+IHIuZHJpZnRTdGF0dXMgPT09ICdEUklGVEVEJyk7XG5cbmlmIChkcmlmdGVkU3RhY2tzLmxlbmd0aCA9PT0gMCkge1xuICBjb25zb2xlLmxvZygnTm8gZHJpZnQgZGV0ZWN0ZWQnKTtcbiAgcmV0dXJuO1xufVxuXG5jb25zdCB0aXRsZSA9ICdEcmlmdCBEZXRlY3RlZCBpbiAke3N0YWdlLm5hbWV9JztcbmNvbnN0IGJvZHkgPSBcXGAjIyBEcmlmdCBEZXRlY3Rpb24gUmVwb3J0XG5cbioqU3RhZ2U6KiogJHtzdGFnZS5uYW1lfVxuKipSZWdpb246KiogJHtzdGFnZS5yZWdpb259XG4qKlRpbWU6KiogXFwke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX1cblxuIyMjIFN1bW1hcnlcbi0gVG90YWwgc3RhY2tzIGNoZWNrZWQ6IFxcJHtyZXN1bHRzLmxlbmd0aH1cbi0gRHJpZnRlZCBzdGFja3M6IFxcJHtkcmlmdGVkU3RhY2tzLmxlbmd0aH1cblxuIyMjIERyaWZ0ZWQgU3RhY2tzXG5cXCR7ZHJpZnRlZFN0YWNrcy5tYXAoc3RhY2sgPT4ge1xuICBjb25zdCByZXNvdXJjZXMgPSBzdGFjay5kcmlmdGVkUmVzb3VyY2VzIHx8IFtdO1xuICByZXR1cm4gXFxgIyMjIyBcXCR7c3RhY2suc3RhY2tOYW1lfVxuLSBEcmlmdGVkIHJlc291cmNlczogXFwke3Jlc291cmNlcy5sZW5ndGh9XG5cXCR7cmVzb3VyY2VzLm1hcChyID0+IFxcYCAgLSBcXCR7ci5sb2dpY2FsUmVzb3VyY2VJZH0gKFxcJHtyLnJlc291cmNlVHlwZX0pXFxgKS5qb2luKCdcXFxcbicpfVxuXFxgO1xufSkuam9pbignXFxcXG4nKX1cblxuIyMjIEFjdGlvbiBSZXF1aXJlZFxuUGxlYXNlIHJldmlldyB0aGUgZHJpZnRlZCByZXNvdXJjZXMgYW5kIGVpdGhlcjpcbjEuIFVwZGF0ZSB0aGUgaW5mcmFzdHJ1Y3R1cmUgY29kZSB0byBtYXRjaCB0aGUgYWN0dWFsIHN0YXRlXG4yLiBSZXN0b3JlIHRoZSByZXNvdXJjZXMgdG8gbWF0Y2ggdGhlIGV4cGVjdGVkIHN0YXRlXG5cbltWaWV3IHdvcmtmbG93IHJ1bl0oXFwke2NvbnRleHQuc2VydmVyVXJsfS9cXCR7Y29udGV4dC5yZXBvLm93bmVyfS9cXCR7Y29udGV4dC5yZXBvLnJlcG99L2FjdGlvbnMvcnVucy9cXCR7Y29udGV4dC5ydW5JZH0pXG5cXGA7XG5cbi8vIENoZWNrIGlmIGlzc3VlIGFscmVhZHkgZXhpc3RzXG5jb25zdCBpc3N1ZXMgPSBhd2FpdCBnaXRodWIucmVzdC5pc3N1ZXMubGlzdEZvclJlcG8oe1xuICBvd25lcjogY29udGV4dC5yZXBvLm93bmVyLFxuICByZXBvOiBjb250ZXh0LnJlcG8ucmVwbyxcbiAgc3RhdGU6ICdvcGVuJyxcbiAgbGFiZWxzOiBbJ2RyaWZ0LWRldGVjdGlvbicsICcke3N0YWdlLm5hbWV9J10sXG59KTtcblxuaWYgKGlzc3Vlcy5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICBhd2FpdCBnaXRodWIucmVzdC5pc3N1ZXMuY3JlYXRlKHtcbiAgICBvd25lcjogY29udGV4dC5yZXBvLm93bmVyLFxuICAgIHJlcG86IGNvbnRleHQucmVwby5yZXBvLFxuICAgIHRpdGxlLFxuICAgIGJvZHksXG4gICAgbGFiZWxzOiBbJ2RyaWZ0LWRldGVjdGlvbicsICcke3N0YWdlLm5hbWV9J10sXG4gIH0pO1xufSBlbHNlIHtcbiAgLy8gVXBkYXRlIGV4aXN0aW5nIGlzc3VlXG4gIGNvbnN0IGlzc3VlID0gaXNzdWVzLmRhdGFbMF07XG4gIGF3YWl0IGdpdGh1Yi5yZXN0Lmlzc3Vlcy5jcmVhdGVDb21tZW50KHtcbiAgICBvd25lcjogY29udGV4dC5yZXBvLm93bmVyLFxuICAgIHJlcG86IGNvbnRleHQucmVwby5yZXBvLFxuICAgIGlzc3VlX251bWJlcjogaXNzdWUubnVtYmVyLFxuICAgIGJvZHk6IGJvZHksXG4gIH0pO1xufVxuYDtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVTdW1tYXJ5U2NyaXB0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcbiMhL2Jpbi9iYXNoXG5lY2hvIFwiIyMgRHJpZnQgRGV0ZWN0aW9uIFN1bW1hcnlcIiA+PiAkR0lUSFVCX1NURVBfU1VNTUFSWVxuZWNobyBcIlwiID4+ICRHSVRIVUJfU1RFUF9TVU1NQVJZXG5cbnRvdGFsX3N0YWNrcz0wXG50b3RhbF9kcmlmdGVkPTBcbnRvdGFsX2Vycm9ycz0wXG5cbmZvciBmaWxlIGluIGRyaWZ0LXJlc3VsdHMtKi5qc29uOyBkb1xuICBpZiBbWyAtZiBcIiRmaWxlXCIgXV07IHRoZW5cbiAgICBzdGFnZT0kKGJhc2VuYW1lICQoZGlybmFtZSBcIiRmaWxlXCIpKVxuICAgIGVjaG8gXCIjIyMgU3RhZ2U6ICRzdGFnZVwiID4+ICRHSVRIVUJfU1RFUF9TVU1NQVJZXG4gICAgXG4gICAgIyBQYXJzZSBKU09OIGFuZCBnZW5lcmF0ZSBzdW1tYXJ5XG4gICAganEgLXIgJ1xuICAgICAgLiBhcyAkcmVzdWx0cyB8XG4gICAgICBcIi0gVG90YWwgc3RhY2tzOiBcIiArICgkcmVzdWx0cyB8IGxlbmd0aCB8IHRvc3RyaW5nKSArIFwiXFxcXG5cIiArXG4gICAgICBcIi0gRHJpZnRlZDogXCIgKyAoWyRyZXN1bHRzW10gfCBzZWxlY3QoLmRyaWZ0U3RhdHVzID09IFwiRFJJRlRFRFwiKV0gfCBsZW5ndGggfCB0b3N0cmluZykgKyBcIlxcXFxuXCIgK1xuICAgICAgXCItIEVycm9yczogXCIgKyAoWyRyZXN1bHRzW10gfCBzZWxlY3QoLmVycm9yKV0gfCBsZW5ndGggfCB0b3N0cmluZykgKyBcIlxcXFxuXCIgK1xuICAgICAgKFskcmVzdWx0c1tdIHwgc2VsZWN0KC5kcmlmdFN0YXR1cyA9PSBcIkRSSUZURURcIildIHwgXG4gICAgICAgIGlmIGxlbmd0aCA+IDAgdGhlblxuICAgICAgICAgIFwiXFxcXG4qKkRyaWZ0ZWQgc3RhY2tzOioqXFxcXG5cIiArIFxuICAgICAgICAgIChtYXAoXCIgIC0gXCIgKyAuc3RhY2tOYW1lICsgXCIgKFwiICsgKCguZHJpZnRlZFJlc291cmNlcyAvLyBbXSkgfCBsZW5ndGggfCB0b3N0cmluZykgKyBcIiByZXNvdXJjZXMpXCIpIHwgam9pbihcIlxcXFxuXCIpKVxuICAgICAgICBlbHNlIFwiXCIgZW5kKVxuICAgICcgXCIkZmlsZVwiID4+ICRHSVRIVUJfU1RFUF9TVU1NQVJZXG4gICAgXG4gICAgZWNobyBcIlwiID4+ICRHSVRIVUJfU1RFUF9TVU1NQVJZXG4gICAgXG4gICAgIyBDb3VudCB0b3RhbHNcbiAgICB0b3RhbF9zdGFja3M9JCgodG90YWxfc3RhY2tzICsgJChqcSAnbGVuZ3RoJyBcIiRmaWxlXCIpKSlcbiAgICB0b3RhbF9kcmlmdGVkPSQoKHRvdGFsX2RyaWZ0ZWQgKyAkKGpxICdbLltdIHwgc2VsZWN0KC5kcmlmdFN0YXR1cyA9PSBcIkRSSUZURURcIildIHwgbGVuZ3RoJyBcIiRmaWxlXCIpKSlcbiAgICB0b3RhbF9lcnJvcnM9JCgodG90YWxfZXJyb3JzICsgJChqcSAnWy5bXSB8IHNlbGVjdCguZXJyb3IpXSB8IGxlbmd0aCcgXCIkZmlsZVwiKSkpXG4gIGZpXG5kb25lXG5cbmVjaG8gXCIjIyMgT3ZlcmFsbCBTdW1tYXJ5XCIgPj4gJEdJVEhVQl9TVEVQX1NVTU1BUllcbmVjaG8gXCItIFRvdGFsIHN0YWNrcyBjaGVja2VkOiAkdG90YWxfc3RhY2tzXCIgPj4gJEdJVEhVQl9TVEVQX1NVTU1BUllcbmVjaG8gXCItIFRvdGFsIGRyaWZ0ZWQgc3RhY2tzOiAkdG90YWxfZHJpZnRlZFwiID4+ICRHSVRIVUJfU1RFUF9TVU1NQVJZXG5lY2hvIFwiLSBUb3RhbCBlcnJvcnM6ICR0b3RhbF9lcnJvcnNcIiA+PiAkR0lUSFVCX1NURVBfU1VNTUFSWVxuXG5pZiBbWyAkdG90YWxfZHJpZnRlZCAtZ3QgMCBdXTsgdGhlblxuICBlY2hvIFwiXCIgPj4gJEdJVEhVQl9TVEVQX1NVTU1BUllcbiAgZWNobyBcIuKaoO+4jyAqKkFjdGlvbiByZXF1aXJlZDoqKiBEcmlmdCBkZXRlY3RlZCBpbiAkdG90YWxfZHJpZnRlZCBzdGFja3NcIiA+PiAkR0lUSFVCX1NURVBfU1VNTUFSWVxuZmlcbmA7XG4gIH1cblxufSJdfQ==
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyaWZ0L2dpdGh1Yi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsdUVBQWtFO0FBQ2xFLGlDQUEyRztBQUMzRyxpQ0FBNEM7QUFlNUMsTUFBYSw0QkFBNkIsU0FBUSw2QkFBc0I7O0lBQ3JELFdBQVcsQ0FBMEI7SUFDckMsWUFBWSxDQUFVO0lBQ3RCLFFBQVEsQ0FBaUI7SUFFMUMsWUFBWSxPQUFnQixFQUFFLE9BQTRDO1FBQ3hFLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUM7UUFFbEQsSUFBSSxDQUFDLFFBQVEsR0FBSSxJQUFJLENBQUMsT0FBeUIsQ0FBQyxNQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsaUJBQWlCLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNmLFFBQVEsRUFBRSxDQUFDO29CQUNULElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtpQkFDcEIsQ0FBQztZQUNGLGdCQUFnQixFQUFFO2dCQUNoQixNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFO3dCQUNMLFdBQVcsRUFBRSxnREFBZ0Q7d0JBQzdELFFBQVEsRUFBRSxLQUFLO3dCQUNmLElBQUksRUFBRSxRQUFRO3dCQUNkLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7cUJBQ3RDO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCx5QkFBeUI7UUFDekIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFF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QUksRUFBRSxDQUFDO2dCQUN0RCxLQUFLLEVBQUU7b0JBQ0w7d0JBQ0UsSUFBSSxFQUFFLHdCQUF3Qjt3QkFDOUIsSUFBSSxFQUFFLDhCQUE4Qjt3QkFDcEMsSUFBSSxFQUFFOzRCQUNKLElBQUksRUFBRSxlQUFlO3lCQUN0QjtxQkFDRjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsa0JBQWtCO3dCQUN4QixHQUFHLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFO3FCQUNsQztpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU8sMkJBQTJCLENBQUMsS0FBaUM7UUFDbkUsT0FBTzs7dUJBRVksSUFBSSxDQUFDLFVBQVUsaUJBQWlCLEtBQUssQ0FBQyxJQUFJOzs7Ozs7Ozs7Ozs7Ozs7bUNBZTlCLEtBQUssQ0FBQyxJQUFJOzs7YUFHaEMsS0FBSyxDQUFDLElBQUk7Y0FDVCxLQUFLLENBQUMsTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUNBNkJPLEtBQUssQ0FBQyxJQUFJOzs7Ozs7Ozs7bUNBU1IsS0FBSyxDQUFDLElBQUk7Ozs7Ozs7Ozs7OztDQVk1QyxDQUFDO0lBQ0EsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixPQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E2Q1YsQ0FBQztJQUNBLENBQUM7O0FBdE9ILG9FQXdPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2plY3QgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgR2l0SHViUHJvamVjdCwgR2l0aHViV29ya2Zsb3cgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yic7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcbmltcG9ydCB7IERyaWZ0RGV0ZWN0aW9uV29ya2Zsb3csIERyaWZ0RGV0ZWN0aW9uV29ya2Zsb3dPcHRpb25zLCBEcmlmdERldGVjdGlvblN0YWdlT3B0aW9ucyB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBEcmlmdERldGVjdGlvblN0ZXAgfSBmcm9tICcuL3N0ZXAnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdpdEh1YkRyaWZ0RGV0ZWN0aW9uV29ya2Zsb3dPcHRpb25zIGV4dGVuZHMgRHJpZnREZXRlY3Rpb25Xb3JrZmxvd09wdGlvbnMge1xuICAvKipcbiAgICogQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBmb3IgR2l0SHViIHdvcmtmbG93XG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9ucz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY3JlYXRlIGlzc3VlcyBvbiBkcmlmdCBkZXRlY3Rpb25cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUlzc3Vlcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBHaXRIdWJEcmlmdERldGVjdGlvbldvcmtmbG93IGV4dGVuZHMgRHJpZnREZXRlY3Rpb25Xb3JrZmxvdyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGVybWlzc2lvbnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IGNyZWF0ZUlzc3VlczogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSB3b3JrZmxvdzogR2l0aHViV29ya2Zsb3c7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogR2l0SHViRHJpZnREZXRlY3Rpb25Xb3JrZmxvd09wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0LCBvcHRpb25zKTtcbiAgICB0aGlzLnBlcm1pc3Npb25zID0gb3B0aW9ucy5wZXJtaXNzaW9ucztcbiAgICB0aGlzLmNyZWF0ZUlzc3VlcyA9IG9wdGlvbnMuY3JlYXRlSXNzdWVzID8/IGZhbHNlO1xuXG4gICAgdGhpcy53b3JrZmxvdyA9ICh0aGlzLnByb2plY3QgYXMgR2l0SHViUHJvamVjdCkuZ2l0aHViIS5hZGRXb3JrZmxvdyhgJHt0aGlzLm5hbWVQcmVmaXh9ZHJpZnQtZGV0ZWN0aW9uYCk7XG4gICAgdGhpcy53b3JrZmxvdy5vbih7XG4gICAgICBzY2hlZHVsZTogW3tcbiAgICAgICAgY3JvbjogdGhpcy5zY2hlZHVsZSxcbiAgICAgIH1dLFxuICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge1xuICAgICAgICBpbnB1dHM6IHtcbiAgICAgICAgICBzdGFnZToge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdTdGFnZSB0byBjaGVjayBmb3IgZHJpZnQgKGxlYXZlIGVtcHR5IGZvciBhbGwpJyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIHR5cGU6ICdjaG9pY2UnLFxuICAgICAgICAgICAgb3B0aW9uczogdGhpcy5zdGFnZXMubWFwKHMgPT4gcy5uYW1lKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIEFkZCBqb2IgZm9yIGVhY2ggc3RhZ2VcbiAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIHRoaXMuc3RhZ2VzKSB7XG4gICAgICBjb25zdCBqb2JJZCA9IGBkcmlmdC0ke3N0YWdlLm5hbWV9YC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05LV0vZywgJy0nKTtcblxuICAgICAgY29uc3QgZHJpZnRTdGVwID0gbmV3IERyaWZ0RGV0ZWN0aW9uU3RlcCh0aGlzLnByb2plY3QsIHN0YWdlKS50b0dpdGh1YigpO1xuXG4gICAgICB0aGlzLndvcmtmbG93LmFkZEpvYihqb2JJZCwge1xuICAgICAgICBuYW1lOiBgRHJpZnQgRGV0ZWN0aW9uIC0gJHtzdGFnZS5uYW1lfWAsXG4gICAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICAgIGlmOiBgXFwke3sgZ2l0aHViLmV2ZW50X25hbWUgPT0gJ3NjaGVkdWxlJyB8fCBnaXRodWIuZXZlbnQuaW5wdXRzLnN0YWdlID09ICcnIHx8IGdpdGh1Yi5ldmVudC5pbnB1dHMuc3RhZ2UgPT0gJyR7c3RhZ2UubmFtZX0nIH19YCxcbiAgICAgICAgZW52OiBkcmlmdFN0ZXAuZW52LFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgICAgLi4uKGRyaWZ0U3RlcC5wZXJtaXNzaW9ucyA/PyB7fSksXG4gICAgICAgICAgLi4uKHRoaXMuY3JlYXRlSXNzdWVzID8geyBpc3N1ZXM6IEpvYlBlcm1pc3Npb24uV1JJVEUgfSA6IHt9KSxcbiAgICAgICAgICAuLi50aGlzLnBlcm1pc3Npb25zLFxuICAgICAgICB9LFxuICAgICAgICBzdGVwczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2NicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnU2V0dXAgTm9kZS5qcycsXG4gICAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9zZXR1cC1ub2RlQHY2JyxcbiAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgJ25vZGUtdmVyc2lvbic6ICcyMCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4udGhpcy5wcmVJbnN0YWxsU3RlcHMuZmxhdE1hcChzdGVwID0+IHN0ZXAudG9HaXRodWIoKS5zdGVwcyksXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0luc3RhbGwgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgICAgIHJ1bjogYCR7dGhpcy5wcm9qZWN0LnByb2plbkNvbW1hbmR9IGluc3RhbGw6Y2lgLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4uZHJpZnRTdGVwLnN0ZXBzLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdVcGxvYWQgcmVzdWx0cycsXG4gICAgICAgICAgICB1c2VzOiAnYWN0aW9ucy91cGxvYWQtYXJ0aWZhY3RAdjcnLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICBuYW1lOiBgJHt0aGlzLm5hbWVQcmVmaXh9ZHJpZnQtcmVzdWx0cy0ke3N0YWdlLm5hbWV9YCxcbiAgICAgICAgICAgICAgcGF0aDogYCR7dGhpcy5uYW1lUHJlZml4fWRyaWZ0LXJlc3VsdHMtJHtzdGFnZS5uYW1lfS5qc29uYCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi4odGhpcy5jcmVhdGVJc3N1ZXMgPyBbe1xuICAgICAgICAgICAgbmFtZTogJ0NyZWF0ZSBJc3N1ZSBvbiBEcmlmdCcsXG4gICAgICAgICAgICBpZjogJ3N0ZXBzLmRyaWZ0Lm91dGNvbWUgPT0gXFwnZmFpbHVyZVxcJyAmJiBnaXRodWIuZXZlbnRfbmFtZSA9PSBcXCdzY2hlZHVsZVxcJycsXG4gICAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9naXRodWItc2NyaXB0QHY4JyxcbiAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgc2NyaXB0OiB0aGlzLmdlbmVyYXRlSXNzdWVDcmVhdGlvblNjcmlwdChzdGFnZSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1dIDogW10pLFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQWRkIHN1bW1hcnkgam9iXG4gICAgaWYgKHRoaXMuc3RhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMud29ya2Zsb3cuYWRkSm9iKCdkcmlmdC1zdW1tYXJ5Jywge1xuICAgICAgICBuYW1lOiAnRHJpZnQgRGV0ZWN0aW9uIFN1bW1hcnknLFxuICAgICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgIH0sXG4gICAgICAgIG5lZWRzOiB0aGlzLnN0YWdlcy5tYXAoc3RhZ2UgPT4gYGRyaWZ0LSR7c3RhZ2UubmFtZX1gKSxcbiAgICAgICAgc3RlcHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnRG93bmxvYWQgYWxsIGFydGlmYWN0cycsXG4gICAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdEB2OCcsXG4gICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgIHBhdGg6ICdkcmlmdC1yZXN1bHRzJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnR2VuZXJhdGUgc3VtbWFyeScsXG4gICAgICAgICAgICBydW46IHRoaXMuZ2VuZXJhdGVTdW1tYXJ5U2NyaXB0KCksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVJc3N1ZUNyZWF0aW9uU2NyaXB0KHN0YWdlOiBEcmlmdERldGVjdGlvblN0YWdlT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcbmNvbnN0IGZzID0gcmVxdWlyZSgnbm9kZTpmcycpO1xuY29uc3QgcmVzdWx0c0ZpbGUgPSAnJHt0aGlzLm5hbWVQcmVmaXh9ZHJpZnQtcmVzdWx0cy0ke3N0YWdlLm5hbWV9Lmpzb24nO1xuXG5pZiAoIWZzLmV4aXN0c1N5bmMocmVzdWx0c0ZpbGUpKSB7XG4gIGNvbnNvbGUubG9nKCdObyByZXN1bHRzIGZpbGUgZm91bmQnKTtcbiAgcmV0dXJuO1xufVxuXG5jb25zdCByZXN1bHRzID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocmVzdWx0c0ZpbGUsICd1dGY4JykpO1xuY29uc3QgZHJpZnRlZFN0YWNrcyA9IHJlc3VsdHMuZmlsdGVyKHIgPT4gci5kcmlmdFN0YXR1cyA9PT0gJ0RSSUZURUQnKTtcblxuaWYgKGRyaWZ0ZWRTdGFja3MubGVuZ3RoID09PSAwKSB7XG4gIGNvbnNvbGUubG9nKCdObyBkcmlmdCBkZXRlY3RlZCcpO1xuICByZXR1cm47XG59XG5cbmNvbnN0IHRpdGxlID0gJ0RyaWZ0IERldGVjdGVkIGluICR7c3RhZ2UubmFtZX0nO1xuY29uc3QgYm9keSA9IFxcYCMjIERyaWZ0IERldGVjdGlvbiBSZXBvcnRcblxuKipTdGFnZToqKiAke3N0YWdlLm5hbWV9XG4qKlJlZ2lvbjoqKiAke3N0YWdlLnJlZ2lvbn1cbioqVGltZToqKiBcXCR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfVxuXG4jIyMgU3VtbWFyeVxuLSBUb3RhbCBzdGFja3MgY2hlY2tlZDogXFwke3Jlc3VsdHMubGVuZ3RofVxuLSBEcmlmdGVkIHN0YWNrczogXFwke2RyaWZ0ZWRTdGFja3MubGVuZ3RofVxuXG4jIyMgRHJpZnRlZCBTdGFja3NcblxcJHtkcmlmdGVkU3RhY2tzLm1hcChzdGFjayA9PiB7XG4gIGNvbnN0IHJlc291cmNlcyA9IHN0YWNrLmRyaWZ0ZWRSZXNvdXJjZXMgfHwgW107XG4gIHJldHVybiBcXGAjIyMjIFxcJHtzdGFjay5zdGFja05hbWV9XG4tIERyaWZ0ZWQgcmVzb3VyY2VzOiBcXCR7cmVzb3VyY2VzLmxlbmd0aH1cblxcJHtyZXNvdXJjZXMubWFwKHIgPT4gXFxgICAtIFxcJHtyLmxvZ2ljYWxSZXNvdXJjZUlkfSAoXFwke3IucmVzb3VyY2VUeXBlfSlcXGApLmpvaW4oJ1xcXFxuJyl9XG5cXGA7XG59KS5qb2luKCdcXFxcbicpfVxuXG4jIyMgQWN0aW9uIFJlcXVpcmVkXG5QbGVhc2UgcmV2aWV3IHRoZSBkcmlmdGVkIHJlc291cmNlcyBhbmQgZWl0aGVyOlxuMS4gVXBkYXRlIHRoZSBpbmZyYXN0cnVjdHVyZSBjb2RlIHRvIG1hdGNoIHRoZSBhY3R1YWwgc3RhdGVcbjIuIFJlc3RvcmUgdGhlIHJlc291cmNlcyB0byBtYXRjaCB0aGUgZXhwZWN0ZWQgc3RhdGVcblxuW1ZpZXcgd29ya2Zsb3cgcnVuXShcXCR7Y29udGV4dC5zZXJ2ZXJVcmx9L1xcJHtjb250ZXh0LnJlcG8ub3duZXJ9L1xcJHtjb250ZXh0LnJlcG8ucmVwb30vYWN0aW9ucy9ydW5zL1xcJHtjb250ZXh0LnJ1bklkfSlcblxcYDtcblxuLy8gQ2hlY2sgaWYgaXNzdWUgYWxyZWFkeSBleGlzdHNcbmNvbnN0IGlzc3VlcyA9IGF3YWl0IGdpdGh1Yi5yZXN0Lmlzc3Vlcy5saXN0Rm9yUmVwbyh7XG4gIG93bmVyOiBjb250ZXh0LnJlcG8ub3duZXIsXG4gIHJlcG86IGNvbnRleHQucmVwby5yZXBvLFxuICBzdGF0ZTogJ29wZW4nLFxuICBsYWJlbHM6IFsnZHJpZnQtZGV0ZWN0aW9uJywgJyR7c3RhZ2UubmFtZX0nXSxcbn0pO1xuXG5pZiAoaXNzdWVzLmRhdGEubGVuZ3RoID09PSAwKSB7XG4gIGF3YWl0IGdpdGh1Yi5yZXN0Lmlzc3Vlcy5jcmVhdGUoe1xuICAgIG93bmVyOiBjb250ZXh0LnJlcG8ub3duZXIsXG4gICAgcmVwbzogY29udGV4dC5yZXBvLnJlcG8sXG4gICAgdGl0bGUsXG4gICAgYm9keSxcbiAgICBsYWJlbHM6IFsnZHJpZnQtZGV0ZWN0aW9uJywgJyR7c3RhZ2UubmFtZX0nXSxcbiAgfSk7XG59IGVsc2Uge1xuICAvLyBVcGRhdGUgZXhpc3RpbmcgaXNzdWVcbiAgY29uc3QgaXNzdWUgPSBpc3N1ZXMuZGF0YVswXTtcbiAgYXdhaXQgZ2l0aHViLnJlc3QuaXNzdWVzLmNyZWF0ZUNvbW1lbnQoe1xuICAgIG93bmVyOiBjb250ZXh0LnJlcG8ub3duZXIsXG4gICAgcmVwbzogY29udGV4dC5yZXBvLnJlcG8sXG4gICAgaXNzdWVfbnVtYmVyOiBpc3N1ZS5udW1iZXIsXG4gICAgYm9keTogYm9keSxcbiAgfSk7XG59XG5gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVN1bW1hcnlTY3JpcHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFxuIyEvYmluL2Jhc2hcbmVjaG8gXCIjIyBEcmlmdCBEZXRlY3Rpb24gU3VtbWFyeVwiID4+ICRHSVRIVUJfU1RFUF9TVU1NQVJZXG5lY2hvIFwiXCIgPj4gJEdJVEhVQl9TVEVQX1NVTU1BUllcblxudG90YWxfc3RhY2tzPTBcbnRvdGFsX2RyaWZ0ZWQ9MFxudG90YWxfZXJyb3JzPTBcblxuZm9yIGZpbGUgaW4gZHJpZnQtcmVzdWx0cy0qLmpzb247IGRvXG4gIGlmIFtbIC1mIFwiJGZpbGVcIiBdXTsgdGhlblxuICAgIHN0YWdlPSQoYmFzZW5hbWUgJChkaXJuYW1lIFwiJGZpbGVcIikpXG4gICAgZWNobyBcIiMjIyBTdGFnZTogJHN0YWdlXCIgPj4gJEdJVEhVQl9TVEVQX1NVTU1BUllcbiAgICBcbiAgICAjIFBhcnNlIEpTT04gYW5kIGdlbmVyYXRlIHN1bW1hcnlcbiAgICBqcSAtciAnXG4gICAgICAuIGFzICRyZXN1bHRzIHxcbiAgICAgIFwiLSBUb3RhbCBzdGFja3M6IFwiICsgKCRyZXN1bHRzIHwgbGVuZ3RoIHwgdG9zdHJpbmcpICsgXCJcXFxcblwiICtcbiAgICAgIFwiLSBEcmlmdGVkOiBcIiArIChbJHJlc3VsdHNbXSB8IHNlbGVjdCguZHJpZnRTdGF0dXMgPT0gXCJEUklGVEVEXCIpXSB8IGxlbmd0aCB8IHRvc3RyaW5nKSArIFwiXFxcXG5cIiArXG4gICAgICBcIi0gRXJyb3JzOiBcIiArIChbJHJlc3VsdHNbXSB8IHNlbGVjdCguZXJyb3IpXSB8IGxlbmd0aCB8IHRvc3RyaW5nKSArIFwiXFxcXG5cIiArXG4gICAgICAoWyRyZXN1bHRzW10gfCBzZWxlY3QoLmRyaWZ0U3RhdHVzID09IFwiRFJJRlRFRFwiKV0gfCBcbiAgICAgICAgaWYgbGVuZ3RoID4gMCB0aGVuXG4gICAgICAgICAgXCJcXFxcbioqRHJpZnRlZCBzdGFja3M6KipcXFxcblwiICsgXG4gICAgICAgICAgKG1hcChcIiAgLSBcIiArIC5zdGFja05hbWUgKyBcIiAoXCIgKyAoKC5kcmlmdGVkUmVzb3VyY2VzIC8vIFtdKSB8IGxlbmd0aCB8IHRvc3RyaW5nKSArIFwiIHJlc291cmNlcylcIikgfCBqb2luKFwiXFxcXG5cIikpXG4gICAgICAgIGVsc2UgXCJcIiBlbmQpXG4gICAgJyBcIiRmaWxlXCIgPj4gJEdJVEhVQl9TVEVQX1NVTU1BUllcbiAgICBcbiAgICBlY2hvIFwiXCIgPj4gJEdJVEhVQl9TVEVQX1NVTU1BUllcbiAgICBcbiAgICAjIENvdW50IHRvdGFsc1xuICAgIHRvdGFsX3N0YWNrcz0kKCh0b3RhbF9zdGFja3MgKyAkKGpxICdsZW5ndGgnIFwiJGZpbGVcIikpKVxuICAgIHRvdGFsX2RyaWZ0ZWQ9JCgodG90YWxfZHJpZnRlZCArICQoanEgJ1suW10gfCBzZWxlY3QoLmRyaWZ0U3RhdHVzID09IFwiRFJJRlRFRFwiKV0gfCBsZW5ndGgnIFwiJGZpbGVcIikpKVxuICAgIHRvdGFsX2Vycm9ycz0kKCh0b3RhbF9lcnJvcnMgKyAkKGpxICdbLltdIHwgc2VsZWN0KC5lcnJvcildIHwgbGVuZ3RoJyBcIiRmaWxlXCIpKSlcbiAgZmlcbmRvbmVcblxuZWNobyBcIiMjIyBPdmVyYWxsIFN1bW1hcnlcIiA+PiAkR0lUSFVCX1NURVBfU1VNTUFSWVxuZWNobyBcIi0gVG90YWwgc3RhY2tzIGNoZWNrZWQ6ICR0b3RhbF9zdGFja3NcIiA+PiAkR0lUSFVCX1NURVBfU1VNTUFSWVxuZWNobyBcIi0gVG90YWwgZHJpZnRlZCBzdGFja3M6ICR0b3RhbF9kcmlmdGVkXCIgPj4gJEdJVEhVQl9TVEVQX1NVTU1BUllcbmVjaG8gXCItIFRvdGFsIGVycm9yczogJHRvdGFsX2Vycm9yc1wiID4+ICRHSVRIVUJfU1RFUF9TVU1NQVJZXG5cbmlmIFtbICR0b3RhbF9kcmlmdGVkIC1ndCAwIF1dOyB0aGVuXG4gIGVjaG8gXCJcIiA+PiAkR0lUSFVCX1NURVBfU1VNTUFSWVxuICBlY2hvIFwi4pqg77iPICoqQWN0aW9uIHJlcXVpcmVkOioqIERyaWZ0IGRldGVjdGVkIGluICR0b3RhbF9kcmlmdGVkIHN0YWNrc1wiID4+ICRHSVRIVUJfU1RFUF9TVU1NQVJZXG5maVxuYDtcbiAgfVxuXG59Il19
|
package/lib/drift/gitlab.js
CHANGED
|
@@ -6,7 +6,7 @@ const projen_1 = require("projen");
|
|
|
6
6
|
const base_1 = require("./base");
|
|
7
7
|
const step_1 = require("./step");
|
|
8
8
|
class GitLabDriftDetectionWorkflow extends base_1.DriftDetectionWorkflow {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.GitLabDriftDetectionWorkflow", version: "0.3.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.GitLabDriftDetectionWorkflow", version: "0.3.25" };
|
|
10
10
|
runnerTags;
|
|
11
11
|
image;
|
|
12
12
|
config;
|
package/lib/drift/step.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.DriftDetectionStep = void 0;
|
|
|
4
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
5
|
const steps_1 = require("../steps");
|
|
6
6
|
class DriftDetectionStep extends steps_1.StepSequence {
|
|
7
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.DriftDetectionStep", version: "0.3.
|
|
7
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.DriftDetectionStep", version: "0.3.25" };
|
|
8
8
|
static generateCommand(props) {
|
|
9
9
|
const args = [
|
|
10
10
|
'detect-drift',
|
package/lib/release.js
CHANGED
|
@@ -4,24 +4,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
const
|
|
8
|
-
const
|
|
7
|
+
const node_fs_1 = require("node:fs");
|
|
8
|
+
const node_path_1 = require("node:path");
|
|
9
9
|
// @ts-ignore
|
|
10
10
|
const commit_and_tag_version_1 = __importDefault(require("commit-and-tag-version"));
|
|
11
11
|
function createManifest(outDir, namespace) {
|
|
12
|
-
const projectInfo = JSON.parse((0,
|
|
12
|
+
const projectInfo = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)('package.json')).toString('utf-8'));
|
|
13
13
|
const assemblyManifest = JSON.stringify({
|
|
14
14
|
name: `${namespace}/${projectInfo.name}`,
|
|
15
15
|
author: projectInfo.author,
|
|
16
16
|
license: projectInfo.license,
|
|
17
17
|
version: '0.0.0',
|
|
18
18
|
}, null, 2);
|
|
19
|
-
(0,
|
|
20
|
-
const rcFile = (0,
|
|
21
|
-
if ((0,
|
|
22
|
-
(0,
|
|
19
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(outDir, 'package.json'), assemblyManifest, { encoding: 'utf-8' });
|
|
20
|
+
const rcFile = (0, node_path_1.join)(outDir, '.npmrc');
|
|
21
|
+
if ((0, node_fs_1.existsSync)(rcFile)) {
|
|
22
|
+
(0, node_fs_1.rmSync)(rcFile, { force: true });
|
|
23
23
|
}
|
|
24
|
-
(0,
|
|
24
|
+
(0, node_fs_1.copyFileSync)('.npmrc', rcFile);
|
|
25
25
|
}
|
|
26
26
|
function bumpVersion() {
|
|
27
27
|
void (0, commit_and_tag_version_1.default)({
|
|
@@ -47,4 +47,4 @@ switch (process.argv[2]) {
|
|
|
47
47
|
console.log('Cannot find command: ' + process.argv[2]);
|
|
48
48
|
break;
|
|
49
49
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLHFDQUF3RjtBQUN4Rix5Q0FBaUM7QUFDakMsYUFBYTtBQUNiLG9GQUF5QztBQUV6QyxTQUFTLGNBQWMsQ0FBQyxNQUFjLEVBQUUsU0FBaUI7SUFDdkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFBLHNCQUFZLEVBQUMsSUFBQSxnQkFBSSxFQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDckYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3RDLElBQUksRUFBRSxHQUFHLFNBQVMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFO1FBQ3hDLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTTtRQUMxQixPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU87UUFDNUIsT0FBTyxFQUFFLE9BQU87S0FDakIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDWixJQUFBLHVCQUFhLEVBQUMsSUFBQSxnQkFBSSxFQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRXJGLE1BQU0sTUFBTSxHQUFHLElBQUEsZ0JBQUksRUFBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdEMsSUFBSSxJQUFBLG9CQUFVLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN2QixJQUFBLGdCQUFNLEVBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUEsc0JBQVksRUFBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELFNBQVMsV0FBVztJQUNsQixLQUFLLElBQUEsZ0NBQUcsRUFBQztRQUNQLFlBQVksRUFBRSxFQUFFO1FBQ2hCLFNBQVMsRUFBRSxFQUFFO1FBQ2IsSUFBSSxFQUFFO1lBQ0osTUFBTSxFQUFFLElBQUk7WUFDWixTQUFTLEVBQUUsSUFBSTtTQUNoQjtRQUNELFlBQVksRUFBRSxLQUFLO1FBQ25CLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFNBQVMsRUFBRSxFQUFFO0tBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsUUFBUSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDeEIsS0FBSyxpQkFBaUI7UUFDcEIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELE1BQU07SUFDUixLQUFLLE1BQU07UUFDVCxXQUFXLEVBQUUsQ0FBQztRQUNkLE1BQU07SUFDUjtRQUNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU07QUFDVixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyBjb3B5RmlsZVN5bmMsIGV4aXN0c1N5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luYywgcm1TeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCBjdHYgZnJvbSAnY29tbWl0LWFuZC10YWctdmVyc2lvbic7XG5cbmZ1bmN0aW9uIGNyZWF0ZU1hbmlmZXN0KG91dERpcjogc3RyaW5nLCBuYW1lc3BhY2U6IHN0cmluZykge1xuICBjb25zdCBwcm9qZWN0SW5mbyA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKGpvaW4oJ3BhY2thZ2UuanNvbicpKS50b1N0cmluZygndXRmLTgnKSk7XG4gIGNvbnN0IGFzc2VtYmx5TWFuaWZlc3QgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgbmFtZTogYCR7bmFtZXNwYWNlfS8ke3Byb2plY3RJbmZvLm5hbWV9YCxcbiAgICBhdXRob3I6IHByb2plY3RJbmZvLmF1dGhvcixcbiAgICBsaWNlbnNlOiBwcm9qZWN0SW5mby5saWNlbnNlLFxuICAgIHZlcnNpb246ICcwLjAuMCcsXG4gIH0sIG51bGwsIDIpO1xuICB3cml0ZUZpbGVTeW5jKGpvaW4ob3V0RGlyLCAncGFja2FnZS5qc29uJyksIGFzc2VtYmx5TWFuaWZlc3QsIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSk7XG5cbiAgY29uc3QgcmNGaWxlID0gam9pbihvdXREaXIsICcubnBtcmMnKTtcbiAgaWYgKGV4aXN0c1N5bmMocmNGaWxlKSkge1xuICAgIHJtU3luYyhyY0ZpbGUsIHsgZm9yY2U6IHRydWUgfSk7XG4gIH1cbiAgY29weUZpbGVTeW5jKCcubnBtcmMnLCByY0ZpbGUpO1xufVxuXG5mdW5jdGlvbiBidW1wVmVyc2lvbigpIHtcbiAgdm9pZCBjdHYoe1xuICAgIHBhY2thZ2VGaWxlczogW10sXG4gICAgYnVtcEZpbGVzOiBbXSxcbiAgICBza2lwOiB7XG4gICAgICBjb21taXQ6IHRydWUsXG4gICAgICBjaGFuZ2Vsb2c6IHRydWUsXG4gICAgfSxcbiAgICBmaXJzdFJlbGVhc2U6IGZhbHNlLFxuICAgIGdpdFRhZ0ZhbGxiYWNrOiB0cnVlLFxuICAgIHRhZ1ByZWZpeDogJycsXG4gIH0pLnRoZW4oY29uc29sZS5sb2cpLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xufVxuXG5zd2l0Y2ggKHByb2Nlc3MuYXJndlsyXSkge1xuICBjYXNlICdjcmVhdGUtbWFuaWZlc3QnOlxuICAgIGNyZWF0ZU1hbmlmZXN0KHByb2Nlc3MuYXJndlszXSwgcHJvY2Vzcy5hcmd2WzRdKTtcbiAgICBicmVhaztcbiAgY2FzZSAnYnVtcCc6XG4gICAgYnVtcFZlcnNpb24oKTtcbiAgICBicmVhaztcbiAgZGVmYXVsdDpcbiAgICBjb25zb2xlLmxvZygnQ2Fubm90IGZpbmQgY29tbWFuZDogJyArIHByb2Nlc3MuYXJndlsyXSk7XG4gICAgYnJlYWs7XG59XG4iXX0=
|
|
@@ -8,7 +8,7 @@ const step_1 = require("./step");
|
|
|
8
8
|
*/
|
|
9
9
|
class AmplifyDeployStep extends step_1.PipelineStep {
|
|
10
10
|
config;
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.AmplifyDeployStep", version: "0.3.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.AmplifyDeployStep", version: "0.3.25" };
|
|
12
12
|
branchName;
|
|
13
13
|
region;
|
|
14
14
|
constructor(project, config) {
|
|
@@ -5,7 +5,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
5
5
|
const step_1 = require("./step");
|
|
6
6
|
class DownloadArtifactStep extends step_1.PipelineStep {
|
|
7
7
|
config;
|
|
8
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.DownloadArtifactStep", version: "0.3.
|
|
8
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.DownloadArtifactStep", version: "0.3.25" };
|
|
9
9
|
constructor(project, config) {
|
|
10
10
|
super(project);
|
|
11
11
|
this.config = config;
|
|
@@ -37,7 +37,7 @@ class DownloadArtifactStep extends step_1.PipelineStep {
|
|
|
37
37
|
exports.DownloadArtifactStep = DownloadArtifactStep;
|
|
38
38
|
class UploadArtifactStep extends step_1.PipelineStep {
|
|
39
39
|
config;
|
|
40
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.UploadArtifactStep", version: "0.3.
|
|
40
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.UploadArtifactStep", version: "0.3.25" };
|
|
41
41
|
constructor(project, config) {
|
|
42
42
|
super(project);
|
|
43
43
|
this.config = config;
|
|
@@ -9,7 +9,7 @@ const step_1 = require("./step");
|
|
|
9
9
|
*/
|
|
10
10
|
class AwsAssumeRoleStep extends step_1.PipelineStep {
|
|
11
11
|
config;
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.AwsAssumeRoleStep", version: "0.3.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.AwsAssumeRoleStep", version: "0.3.25" };
|
|
13
13
|
constructor(project, config) {
|
|
14
14
|
super(project);
|
|
15
15
|
this.config = config;
|
|
@@ -14,7 +14,7 @@ const step_1 = require("./step");
|
|
|
14
14
|
*/
|
|
15
15
|
class CdkOutputsSummaryStep extends step_1.PipelineStep {
|
|
16
16
|
options;
|
|
17
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.CdkOutputsSummaryStep", version: "0.3.
|
|
17
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.CdkOutputsSummaryStep", version: "0.3.25" };
|
|
18
18
|
constructor(project, options) {
|
|
19
19
|
super(project);
|
|
20
20
|
this.options = options;
|
|
@@ -12,7 +12,7 @@ const step_1 = require("./step");
|
|
|
12
12
|
*/
|
|
13
13
|
class PnpmSetupStep extends step_1.PipelineStep {
|
|
14
14
|
options;
|
|
15
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.PnpmSetupStep", version: "0.3.
|
|
15
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.PnpmSetupStep", version: "0.3.25" };
|
|
16
16
|
constructor(project, options = {}) {
|
|
17
17
|
super(project);
|
|
18
18
|
this.options = options;
|
|
@@ -53,7 +53,7 @@ exports.PnpmSetupStep = PnpmSetupStep;
|
|
|
53
53
|
* which is required for Yarn Berry (v2+) to work correctly.
|
|
54
54
|
*/
|
|
55
55
|
class CorepackSetupStep extends step_1.PipelineStep {
|
|
56
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.CorepackSetupStep", version: "0.3.
|
|
56
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.CorepackSetupStep", version: "0.3.25" };
|
|
57
57
|
constructor(project) {
|
|
58
58
|
super(project);
|
|
59
59
|
}
|
package/lib/steps/registries.js
CHANGED
|
@@ -13,7 +13,7 @@ const step_1 = require("./step");
|
|
|
13
13
|
*/
|
|
14
14
|
class GithubPackagesLoginStep extends step_1.PipelineStep {
|
|
15
15
|
options;
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.GithubPackagesLoginStep", version: "0.3.
|
|
16
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.GithubPackagesLoginStep", version: "0.3.25" };
|
|
17
17
|
constructor(project, options) {
|
|
18
18
|
super(project);
|
|
19
19
|
this.options = options;
|
|
@@ -38,7 +38,7 @@ exports.GithubPackagesLoginStep = GithubPackagesLoginStep;
|
|
|
38
38
|
*/
|
|
39
39
|
class NpmSecretStep extends step_1.PipelineStep {
|
|
40
40
|
options;
|
|
41
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.NpmSecretStep", version: "0.3.
|
|
41
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.NpmSecretStep", version: "0.3.25" };
|
|
42
42
|
constructor(project, options) {
|
|
43
43
|
super(project);
|
|
44
44
|
this.options = options;
|
|
@@ -63,7 +63,7 @@ exports.NpmSecretStep = NpmSecretStep;
|
|
|
63
63
|
*/
|
|
64
64
|
class CodeArtifactLoginStep extends step_1.StepSequence {
|
|
65
65
|
options;
|
|
66
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.CodeArtifactLoginStep", version: "0.3.
|
|
66
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.CodeArtifactLoginStep", version: "0.3.25" };
|
|
67
67
|
constructor(project, options) {
|
|
68
68
|
super(project, [
|
|
69
69
|
new aws_assume_role_step_1.AwsAssumeRoleStep(project, { roleArn: options.role, sessionName: 'CodeArtifact' }),
|
package/lib/steps/step.js
CHANGED
|
@@ -8,7 +8,7 @@ const engines_1 = require("../engines");
|
|
|
8
8
|
*/
|
|
9
9
|
class PipelineStep {
|
|
10
10
|
project;
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.PipelineStep", version: "0.3.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.PipelineStep", version: "0.3.25" };
|
|
12
12
|
/**
|
|
13
13
|
* Initializes a new instance of a PipelineStep with a reference to a projen project.
|
|
14
14
|
* @param project - The projen project reference.
|
|
@@ -41,7 +41,7 @@ exports.PipelineStep = PipelineStep;
|
|
|
41
41
|
* Concrete implementation of PipelineStep that executes simple commands.
|
|
42
42
|
*/
|
|
43
43
|
class SimpleCommandStep extends PipelineStep {
|
|
44
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.SimpleCommandStep", version: "0.3.
|
|
44
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.SimpleCommandStep", version: "0.3.25" };
|
|
45
45
|
commands;
|
|
46
46
|
env;
|
|
47
47
|
/**
|
|
@@ -89,7 +89,7 @@ class SimpleCommandStep extends PipelineStep {
|
|
|
89
89
|
}
|
|
90
90
|
exports.SimpleCommandStep = SimpleCommandStep;
|
|
91
91
|
class ProjenScriptStep extends SimpleCommandStep {
|
|
92
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.ProjenScriptStep", version: "0.3.
|
|
92
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.ProjenScriptStep", version: "0.3.25" };
|
|
93
93
|
constructor(project, scriptName, args) {
|
|
94
94
|
super(project, [`${project.projenCommand} ${scriptName}${args ? ` ${args}` : ''}`]);
|
|
95
95
|
}
|
|
@@ -97,7 +97,7 @@ class ProjenScriptStep extends SimpleCommandStep {
|
|
|
97
97
|
exports.ProjenScriptStep = ProjenScriptStep;
|
|
98
98
|
// Add class that is a sequence of pipleine steps but is a pipeline step in itself
|
|
99
99
|
class StepSequence extends PipelineStep {
|
|
100
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.StepSequence", version: "0.3.
|
|
100
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.StepSequence", version: "0.3.25" };
|
|
101
101
|
steps;
|
|
102
102
|
/**
|
|
103
103
|
* Constructs a sequence of pipeline steps.
|
|
@@ -8,7 +8,7 @@ const version_info_1 = require("./version-info");
|
|
|
8
8
|
*/
|
|
9
9
|
class VersionComputationStrategy {
|
|
10
10
|
strategy;
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.VersionComputationStrategy", version: "0.3.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.VersionComputationStrategy", version: "0.3.25" };
|
|
12
12
|
constructor(strategy) {
|
|
13
13
|
this.strategy = strategy;
|
|
14
14
|
}
|
|
@@ -40,7 +40,7 @@ exports.VersionComputationStrategy = VersionComputationStrategy;
|
|
|
40
40
|
* Composite version computation that combines multiple strategies
|
|
41
41
|
*/
|
|
42
42
|
class CompositeComputation extends VersionComputationStrategy {
|
|
43
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.CompositeComputation", version: "0.3.
|
|
43
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.CompositeComputation", version: "0.3.25" };
|
|
44
44
|
constructor(strategy) {
|
|
45
45
|
super(strategy);
|
|
46
46
|
}
|
|
@@ -92,7 +92,7 @@ exports.CompositeComputation = CompositeComputation;
|
|
|
92
92
|
* Main version computer that handles strategy selection
|
|
93
93
|
*/
|
|
94
94
|
class VersionComputer {
|
|
95
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.VersionComputer", version: "0.3.
|
|
95
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.VersionComputer", version: "0.3.25" };
|
|
96
96
|
strategy;
|
|
97
97
|
constructor(strategy) {
|
|
98
98
|
this.strategy = this.createStrategy(strategy);
|
package/lib/versioning/config.js
CHANGED
|
@@ -8,7 +8,7 @@ const strategy_1 = require("./strategy");
|
|
|
8
8
|
* Main versioning configuration class with factory methods
|
|
9
9
|
*/
|
|
10
10
|
class VersioningConfigurations {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.VersioningConfigurations", version: "0.3.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.VersioningConfigurations", version: "0.3.25" };
|
|
12
12
|
/**
|
|
13
13
|
* Standard configuration with commit count strategy
|
|
14
14
|
*/
|
|
@@ -49,7 +49,7 @@ exports.VersioningConfigurations = VersioningConfigurations;
|
|
|
49
49
|
* Utility functions for versioning configuration
|
|
50
50
|
*/
|
|
51
51
|
class VersioningConfigUtils {
|
|
52
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.VersioningConfigUtils", version: "0.3.
|
|
52
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.VersioningConfigUtils", version: "0.3.25" };
|
|
53
53
|
/**
|
|
54
54
|
* Resolve configuration for a specific stage
|
|
55
55
|
*/
|
|
@@ -7,7 +7,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
7
7
|
*/
|
|
8
8
|
class OutputConfigBase {
|
|
9
9
|
type;
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.OutputConfigBase", version: "0.3.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.OutputConfigBase", version: "0.3.25" };
|
|
11
11
|
constructor(type) {
|
|
12
12
|
this.type = type;
|
|
13
13
|
}
|
|
@@ -18,7 +18,7 @@ exports.OutputConfigBase = OutputConfigBase;
|
|
|
18
18
|
*/
|
|
19
19
|
class CloudFormationOutput extends OutputConfigBase {
|
|
20
20
|
config;
|
|
21
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.CloudFormationOutput", version: "0.3.
|
|
21
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.CloudFormationOutput", version: "0.3.25" };
|
|
22
22
|
static TYPE = 'cloudformation';
|
|
23
23
|
/**
|
|
24
24
|
* Enable CloudFormation outputs with default configuration
|
|
@@ -55,7 +55,7 @@ exports.CloudFormationOutput = CloudFormationOutput;
|
|
|
55
55
|
*/
|
|
56
56
|
class ParameterStoreOutput extends OutputConfigBase {
|
|
57
57
|
config;
|
|
58
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.ParameterStoreOutput", version: "0.3.
|
|
58
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.ParameterStoreOutput", version: "0.3.25" };
|
|
59
59
|
static TYPE = 'parameterStore';
|
|
60
60
|
/**
|
|
61
61
|
* Enable Parameter Store outputs with parameter name
|
|
@@ -103,7 +103,7 @@ exports.ParameterStoreOutput = ParameterStoreOutput;
|
|
|
103
103
|
* Output format types
|
|
104
104
|
*/
|
|
105
105
|
class OutputFormat {
|
|
106
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.OutputFormat", version: "0.3.
|
|
106
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.OutputFormat", version: "0.3.25" };
|
|
107
107
|
static PLAIN = 'plain';
|
|
108
108
|
static STRUCTURED = 'structured';
|
|
109
109
|
constructor() { }
|
|
@@ -113,7 +113,7 @@ exports.OutputFormat = OutputFormat;
|
|
|
113
113
|
* Factory class for output configurations
|
|
114
114
|
*/
|
|
115
115
|
class VersioningOutputs {
|
|
116
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.VersioningOutputs", version: "0.3.
|
|
116
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-pipelines.VersioningOutputs", version: "0.3.25" };
|
|
117
117
|
/**
|
|
118
118
|
* Create output configuration with CloudFormation and SSM Parameter Store
|
|
119
119
|
*/
|