projalf 0.0.8 → 0.0.10
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/lib/Projalf.d.ts +1 -1
- package/lib/Projalf.js +23 -9
- package/lib/files.d.ts +3 -3
- package/lib/files.js +8 -7
- package/package.json +1 -1
package/lib/Projalf.d.ts
CHANGED
package/lib/Projalf.js
CHANGED
|
@@ -19,15 +19,29 @@ class Projalf extends projen_1.awscdk.AwsCdkTypeScriptApp {
|
|
|
19
19
|
super({
|
|
20
20
|
...options,
|
|
21
21
|
name: inferredName,
|
|
22
|
-
defaultReleaseBranch: options.defaultReleaseBranch ??
|
|
22
|
+
defaultReleaseBranch: options.defaultReleaseBranch ?? "main",
|
|
23
23
|
packageManager: options.packageManager ?? projen_1.javascript.NodePackageManager.NPM,
|
|
24
24
|
projenrcTs: options.projenrcTs ?? true,
|
|
25
|
-
cdkVersion: options.cdkVersion ??
|
|
25
|
+
cdkVersion: options.cdkVersion ?? "2.156.0",
|
|
26
26
|
context: mergedContext,
|
|
27
27
|
deps: options.deps ?? [],
|
|
28
28
|
devDeps: options.devDeps ?? [],
|
|
29
|
+
prettierOptions: {
|
|
30
|
+
...options.prettierOptions,
|
|
31
|
+
settings: {
|
|
32
|
+
semi: false,
|
|
33
|
+
printWidth: 100,
|
|
34
|
+
singleQuote: false,
|
|
35
|
+
...options.prettierOptions?.settings,
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
new files_1.Files(this, className, fileBase, inferredName);
|
|
40
|
+
// Enforce ESLint style: double quotes and no semicolons
|
|
41
|
+
this.eslint?.addRules({
|
|
42
|
+
"@stylistic/quotes": ["error", "double", { avoidEscape: true }],
|
|
43
|
+
"@stylistic/semi": ["error", "never"],
|
|
29
44
|
});
|
|
30
|
-
new files_1.SampleCode(this, className, fileBase, inferredName);
|
|
31
45
|
}
|
|
32
46
|
}
|
|
33
47
|
exports.Projalf = Projalf;
|
|
@@ -36,8 +50,8 @@ Projalf[_a] = { fqn: "projalf.Projalf", version: "0.0.0" };
|
|
|
36
50
|
function inferNameFromGit() {
|
|
37
51
|
try {
|
|
38
52
|
const remote = cp
|
|
39
|
-
.execSync(
|
|
40
|
-
stdio: [
|
|
53
|
+
.execSync("git config --get remote.origin.url", {
|
|
54
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
41
55
|
})
|
|
42
56
|
.toString()
|
|
43
57
|
.trim();
|
|
@@ -55,10 +69,10 @@ function inferNameFromCwd() {
|
|
|
55
69
|
}
|
|
56
70
|
function toPascalCase(input) {
|
|
57
71
|
return input
|
|
58
|
-
.replace(/[^a-zA-Z0-9]+/g,
|
|
59
|
-
.split(
|
|
72
|
+
.replace(/[^a-zA-Z0-9]+/g, " ")
|
|
73
|
+
.split(" ")
|
|
60
74
|
.filter(Boolean)
|
|
61
75
|
.map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase())
|
|
62
|
-
.join(
|
|
76
|
+
.join("");
|
|
63
77
|
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvamFsZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Qcm9qYWxmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0NBQW9DO0FBQ3BDLDZCQUE2QjtBQUM3QixtQ0FBNEM7QUFDNUMsbUNBQWdDO0FBSWhDLE1BQWEsT0FBUSxTQUFRLGVBQU0sQ0FBQyxtQkFBbUI7SUFDckQsWUFBWSxPQUF1QjtRQUNqQyxNQUFNLFlBQVksR0FDaEIsT0FBTyxDQUFDLElBQUksSUFBSSxnQkFBZ0IsRUFBRSxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDM0QsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUU1QyxNQUFNLGFBQWEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUF5QixDQUFDO1FBQzVFLElBQUksYUFBYSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QyxhQUFhLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQztRQUMzQyxDQUFDO1FBRUQsS0FBSyxDQUFDO1lBQ0osR0FBRyxPQUFPO1lBQ1YsSUFBSSxFQUFFLFlBQVk7WUFDbEIsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixJQUFJLE1BQU07WUFDNUQsY0FBYyxFQUNaLE9BQU8sQ0FBQyxjQUFjLElBQUksbUJBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHO1lBQzdELFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUk7WUFDdEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksU0FBUztZQUMzQyxPQUFPLEVBQUUsYUFBYTtZQUN0QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3hCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUU7WUFFOUIsZUFBZSxFQUFFO2dCQUNmLEdBQUcsT0FBTyxDQUFDLGVBQWU7Z0JBQzFCLFFBQVEsRUFBRTtvQkFDUixJQUFJLEVBQUUsS0FBSztvQkFDWCxVQUFVLEVBQUUsR0FBRztvQkFDZixXQUFXLEVBQUUsS0FBSztvQkFDbEIsR0FBRyxPQUFPLENBQUMsZUFBZSxFQUFFLFFBQVE7aUJBQ3JDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLGFBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVuRCx3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7WUFDcEIsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQy9ELGlCQUFpQixFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztTQUN0QyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQTFDSCwwQkEyQ0M7OztBQUVELFNBQVMsZ0JBQWdCO0lBQ3ZCLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLEVBQUU7YUFDZCxRQUFRLENBQUMsb0NBQW9DLEVBQUU7WUFDOUMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUM7U0FDcEMsQ0FBQzthQUNELFFBQVEsRUFBRTthQUNWLElBQUksRUFBRSxDQUFDO1FBQ1YsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUM5QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDckQsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGdCQUFnQjtJQUN2QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLEtBQWE7SUFDakMsT0FBTyxLQUFLO1NBQ1QsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQztTQUM5QixLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQztTQUNmLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3pFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjcCBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgYXdzY2RrLCBqYXZhc2NyaXB0IH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgRmlsZXMgfSBmcm9tIFwiLi9maWxlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2phbGZPcHRpb25zIGV4dGVuZHMgYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zIHt9XG5cbmV4cG9ydCBjbGFzcyBQcm9qYWxmIGV4dGVuZHMgYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBQcm9qYWxmT3B0aW9ucykge1xuICAgIGNvbnN0IGluZmVycmVkTmFtZSA9XG4gICAgICBvcHRpb25zLm5hbWUgPz8gaW5mZXJOYW1lRnJvbUdpdCgpID8/IGluZmVyTmFtZUZyb21Dd2QoKTtcbiAgICBjb25zdCBjbGFzc05hbWUgPSB0b1Bhc2NhbENhc2UoaW5mZXJyZWROYW1lKTtcbiAgICBjb25zdCBmaWxlQmFzZSA9IGluZmVycmVkTmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgY29uc3QgbWVyZ2VkQ29udGV4dCA9IHsgLi4uKG9wdGlvbnMuY29udGV4dCA/PyB7fSkgfSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGlmIChtZXJnZWRDb250ZXh0LnNlcnZpY2VOYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG1lcmdlZENvbnRleHQuc2VydmljZU5hbWUgPSBpbmZlcnJlZE5hbWU7XG4gICAgfVxuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG5hbWU6IGluZmVycmVkTmFtZSxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiBvcHRpb25zLmRlZmF1bHRSZWxlYXNlQnJhbmNoID8/IFwibWFpblwiLFxuICAgICAgcGFja2FnZU1hbmFnZXI6XG4gICAgICAgIG9wdGlvbnMucGFja2FnZU1hbmFnZXIgPz8gamF2YXNjcmlwdC5Ob2RlUGFja2FnZU1hbmFnZXIuTlBNLFxuICAgICAgcHJvamVucmNUczogb3B0aW9ucy5wcm9qZW5yY1RzID8/IHRydWUsXG4gICAgICBjZGtWZXJzaW9uOiBvcHRpb25zLmNka1ZlcnNpb24gPz8gXCIyLjE1Ni4wXCIsXG4gICAgICBjb250ZXh0OiBtZXJnZWRDb250ZXh0LFxuICAgICAgZGVwczogb3B0aW9ucy5kZXBzID8/IFtdLFxuICAgICAgZGV2RGVwczogb3B0aW9ucy5kZXZEZXBzID8/IFtdLFxuXG4gICAgICBwcmV0dGllck9wdGlvbnM6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5wcmV0dGllck9wdGlvbnMsXG4gICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgc2VtaTogZmFsc2UsXG4gICAgICAgICAgcHJpbnRXaWR0aDogMTAwLFxuICAgICAgICAgIHNpbmdsZVF1b3RlOiBmYWxzZSxcbiAgICAgICAgICAuLi5vcHRpb25zLnByZXR0aWVyT3B0aW9ucz8uc2V0dGluZ3MsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgbmV3IEZpbGVzKHRoaXMsIGNsYXNzTmFtZSwgZmlsZUJhc2UsIGluZmVycmVkTmFtZSk7XG5cbiAgICAvLyBFbmZvcmNlIEVTTGludCBzdHlsZTogZG91YmxlIHF1b3RlcyBhbmQgbm8gc2VtaWNvbG9uc1xuICAgIHRoaXMuZXNsaW50Py5hZGRSdWxlcyh7XG4gICAgICBcIkBzdHlsaXN0aWMvcXVvdGVzXCI6IFtcImVycm9yXCIsIFwiZG91YmxlXCIsIHsgYXZvaWRFc2NhcGU6IHRydWUgfV0sXG4gICAgICBcIkBzdHlsaXN0aWMvc2VtaVwiOiBbXCJlcnJvclwiLCBcIm5ldmVyXCJdLFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGluZmVyTmFtZUZyb21HaXQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZW1vdGUgPSBjcFxuICAgICAgLmV4ZWNTeW5jKFwiZ2l0IGNvbmZpZyAtLWdldCByZW1vdGUub3JpZ2luLnVybFwiLCB7XG4gICAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJwaXBlXCIsIFwiaWdub3JlXCJdLFxuICAgICAgfSlcbiAgICAgIC50b1N0cmluZygpXG4gICAgICAudHJpbSgpO1xuICAgIGlmICghcmVtb3RlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG1hdGNoID0gcmVtb3RlLm1hdGNoKC9cXC8oW15cXC9dKz8pKD86XFwuZ2l0KT8kLyk7XG4gICAgcmV0dXJuIG1hdGNoPy5bMV07XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5mZXJOYW1lRnJvbUN3ZCgpOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aC5iYXNlbmFtZShwcm9jZXNzLmN3ZCgpKTtcbn1cblxuZnVuY3Rpb24gdG9QYXNjYWxDYXNlKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gaW5wdXRcbiAgICAucmVwbGFjZSgvW15hLXpBLVowLTldKy9nLCBcIiBcIilcbiAgICAuc3BsaXQoXCIgXCIpXG4gICAgLmZpbHRlcihCb29sZWFuKVxuICAgIC5tYXAoKHBhcnQpID0+IHBhcnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwYXJ0LnNsaWNlKDEpLnRvTG93ZXJDYXNlKCkpXG4gICAgLmpvaW4oXCJcIik7XG59XG4iXX0=
|
package/lib/files.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Component } from
|
|
2
|
-
import { Projalf } from
|
|
3
|
-
export declare class
|
|
1
|
+
import { Component } from 'projen';
|
|
2
|
+
import { Projalf } from './Projalf';
|
|
3
|
+
export declare class Files extends Component {
|
|
4
4
|
private appProject;
|
|
5
5
|
constructor(appProject: Projalf, className: string, fileBase: string, inferredName: string);
|
|
6
6
|
}
|
package/lib/files.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.Files = void 0;
|
|
4
4
|
const projen_1 = require("projen");
|
|
5
|
-
class
|
|
5
|
+
class Files extends projen_1.Component {
|
|
6
6
|
constructor(appProject, className, fileBase, inferredName) {
|
|
7
7
|
super(appProject);
|
|
8
8
|
this.appProject = appProject;
|
|
@@ -13,6 +13,7 @@ import { Construct } from 'constructs';
|
|
|
13
13
|
|
|
14
14
|
export interface ${className}Props extends cdk.StackProps {
|
|
15
15
|
serviceName: string;
|
|
16
|
+
stage: string;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
export class ${className} extends cdk.Stack {
|
|
@@ -23,8 +24,8 @@ export class ${className} extends cdk.Stack {
|
|
|
23
24
|
}
|
|
24
25
|
`,
|
|
25
26
|
});
|
|
26
|
-
this.appProject.tryRemoveFile(
|
|
27
|
-
new projen_1.SampleFile(this.appProject,
|
|
27
|
+
this.appProject.tryRemoveFile('src/main.ts');
|
|
28
|
+
new projen_1.SampleFile(this.appProject, 'src/main.ts', {
|
|
28
29
|
contents: `
|
|
29
30
|
import * as cdk from 'aws-cdk-lib';
|
|
30
31
|
import { ${className} } from './${fileBase}';
|
|
@@ -33,12 +34,12 @@ export class ${className} extends cdk.Stack {
|
|
|
33
34
|
region: process.env.CDK_DEPLOY_REGION ?? process.env.CDK_DEFAULT_REGION,
|
|
34
35
|
};
|
|
35
36
|
const app = new cdk.App();
|
|
36
|
-
const serviceName =
|
|
37
|
+
const serviceName = '${inferredName}';
|
|
37
38
|
new ${className}(app, serviceName, { env, serviceName });
|
|
38
39
|
app.synth();
|
|
39
40
|
`,
|
|
40
41
|
});
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
|
-
exports.
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
exports.Files = Files;
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZmlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQStDO0FBRy9DLE1BQWEsS0FBTSxTQUFRLGtCQUFTO0lBQ2xDLFlBQ1UsVUFBbUIsRUFDM0IsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsWUFBb0I7UUFFcEIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBTFYsZUFBVSxHQUFWLFVBQVUsQ0FBUztRQU0zQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUU3QixJQUFJLG1CQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLFFBQVEsS0FBSyxFQUFFO1lBQ3BELFFBQVEsRUFBRTs7O21CQUdHLFNBQVM7Ozs7O2VBS2IsU0FBUztxREFDNkIsU0FBUzs7Ozs7Q0FLN0Q7U0FDSSxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3QyxJQUFJLG1CQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUU7WUFDN0MsUUFBUSxFQUFFOztpQkFFQyxTQUFTLGNBQWMsUUFBUTs7Ozs7OzZCQU1uQixZQUFZO1lBQzdCLFNBQVM7O09BRWQ7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE1Q0Qsc0JBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBTYW1wbGVGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFByb2phbGYgfSBmcm9tICcuL1Byb2phbGYnO1xuXG5leHBvcnQgY2xhc3MgRmlsZXMgZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFwcFByb2plY3Q6IFByb2phbGYsXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICAgZmlsZUJhc2U6IHN0cmluZyxcbiAgICBpbmZlcnJlZE5hbWU6IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoYXBwUHJvamVjdCk7XG4gICAgdGhpcy5hcHBQcm9qZWN0ID0gYXBwUHJvamVjdDtcblxuICAgIG5ldyBTYW1wbGVGaWxlKHRoaXMuYXBwUHJvamVjdCwgYHNyYy8ke2ZpbGVCYXNlfS50c2AsIHtcbiAgICAgIGNvbnRlbnRzOiBgaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlICR7Y2xhc3NOYW1lfVByb3BzIGV4dGVuZHMgY2RrLlN0YWNrUHJvcHMge1xuICBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICBzdGFnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgJHtjbGFzc05hbWV9IGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7Y2xhc3NOYW1lfVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgLy8gQWRkIHlvdXIgaW5mcmEgaGVyZS4uLlxuICB9XG59XG5gLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hcHBQcm9qZWN0LnRyeVJlbW92ZUZpbGUoJ3NyYy9tYWluLnRzJyk7XG4gICAgbmV3IFNhbXBsZUZpbGUodGhpcy5hcHBQcm9qZWN0LCAnc3JjL21haW4udHMnLCB7XG4gICAgICBjb250ZW50czogYFxuICAgICAgaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbiAgICAgIGltcG9ydCB7ICR7Y2xhc3NOYW1lfSB9IGZyb20gJy4vJHtmaWxlQmFzZX0nO1xuICAgICAgY29uc3QgZW52ID0ge1xuICAgICAgICBhY2NvdW50OiBwcm9jZXNzLmVudi5DREtfREVQTE9ZX0FDQ09VTlQgPz8gcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVCxcbiAgICAgICAgcmVnaW9uOiBwcm9jZXNzLmVudi5DREtfREVQTE9ZX1JFR0lPTiA/PyBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9SRUdJT04sXG4gICAgICB9O1xuICAgICAgY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcbiAgICAgIGNvbnN0IHNlcnZpY2VOYW1lID0gJyR7aW5mZXJyZWROYW1lfSc7XG4gICAgICBuZXcgJHtjbGFzc05hbWV9KGFwcCwgc2VydmljZU5hbWUsIHsgZW52LCBzZXJ2aWNlTmFtZSB9KTtcbiAgICAgIGFwcC5zeW50aCgpO1xuICAgICAgYCxcbiAgICB9KTtcbiAgfVxufVxuIl19
|