projalf 0.0.7 → 0.0.9
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 +4 -4
- package/lib/Projalf.d.ts +1 -1
- package/lib/Projalf.js +19 -38
- package/lib/files.d.ts +6 -0
- package/lib/files.js +45 -0
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
},
|
|
120
120
|
"locationInModule": {
|
|
121
121
|
"filename": "src/Projalf.ts",
|
|
122
|
-
"line":
|
|
122
|
+
"line": 9
|
|
123
123
|
},
|
|
124
124
|
"parameters": [
|
|
125
125
|
{
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
"kind": "class",
|
|
134
134
|
"locationInModule": {
|
|
135
135
|
"filename": "src/Projalf.ts",
|
|
136
|
-
"line":
|
|
136
|
+
"line": 8
|
|
137
137
|
},
|
|
138
138
|
"name": "Projalf",
|
|
139
139
|
"symbolId": "src/Projalf:Projalf"
|
|
@@ -151,12 +151,12 @@
|
|
|
151
151
|
"kind": "interface",
|
|
152
152
|
"locationInModule": {
|
|
153
153
|
"filename": "src/Projalf.ts",
|
|
154
|
-
"line":
|
|
154
|
+
"line": 6
|
|
155
155
|
},
|
|
156
156
|
"name": "ProjalfOptions",
|
|
157
157
|
"symbolId": "src/Projalf:ProjalfOptions"
|
|
158
158
|
}
|
|
159
159
|
},
|
|
160
160
|
"version": "0.0.0",
|
|
161
|
-
"fingerprint": "
|
|
161
|
+
"fingerprint": "uysqT9WQFFtB5OEgulZj4lIA+ewTw3z5iKeXG/N1Yac="
|
|
162
162
|
}
|
package/lib/Projalf.d.ts
CHANGED
package/lib/Projalf.js
CHANGED
|
@@ -6,6 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
const cp = require("child_process");
|
|
7
7
|
const path = require("path");
|
|
8
8
|
const projen_1 = require("projen");
|
|
9
|
+
const files_1 = require("./files");
|
|
9
10
|
class Projalf extends projen_1.awscdk.AwsCdkTypeScriptApp {
|
|
10
11
|
constructor(options) {
|
|
11
12
|
const inferredName = options.name ?? inferNameFromGit() ?? inferNameFromCwd();
|
|
@@ -18,44 +19,24 @@ class Projalf extends projen_1.awscdk.AwsCdkTypeScriptApp {
|
|
|
18
19
|
super({
|
|
19
20
|
...options,
|
|
20
21
|
name: inferredName,
|
|
21
|
-
defaultReleaseBranch: options.defaultReleaseBranch ??
|
|
22
|
+
defaultReleaseBranch: options.defaultReleaseBranch ?? 'main',
|
|
22
23
|
packageManager: options.packageManager ?? projen_1.javascript.NodePackageManager.NPM,
|
|
23
24
|
projenrcTs: options.projenrcTs ?? true,
|
|
24
|
-
cdkVersion: options.cdkVersion ??
|
|
25
|
+
cdkVersion: options.cdkVersion ?? '2.156.0',
|
|
25
26
|
context: mergedContext,
|
|
26
27
|
deps: options.deps ?? [],
|
|
27
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
|
+
},
|
|
28
38
|
});
|
|
29
|
-
new
|
|
30
|
-
contents: `import * as cdk from 'aws-cdk-lib';
|
|
31
|
-
import { Construct } from 'constructs';
|
|
32
|
-
|
|
33
|
-
export interface ${className}Props extends cdk.StackProps {
|
|
34
|
-
serviceName: string;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export class ${className} extends cdk.Stack {
|
|
38
|
-
constructor(scope: Construct, id: string, props: ${className}Props) {
|
|
39
|
-
super(scope, id, props);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
`,
|
|
43
|
-
});
|
|
44
|
-
this.tryRemoveFile("src/main.ts");
|
|
45
|
-
new projen_1.SampleFile(this, "src/main.ts", {
|
|
46
|
-
contents: `
|
|
47
|
-
import * as cdk from 'aws-cdk-lib';
|
|
48
|
-
import { ${className} } from './${fileBase}';
|
|
49
|
-
const env = {
|
|
50
|
-
account: process.env.CDK_DEPLOY_ACCOUNT ?? process.env.CDK_DEFAULT_ACCOUNT,
|
|
51
|
-
region: process.env.CDK_DEPLOY_REGION ?? process.env.CDK_DEFAULT_REGION,
|
|
52
|
-
};
|
|
53
|
-
const app = new cdk.App();
|
|
54
|
-
const serviceName = (app.node.tryGetContext('serviceName') as string | undefined) ?? '${inferredName}';
|
|
55
|
-
new ${className}(app, serviceName, { env, serviceName });
|
|
56
|
-
app.synth();
|
|
57
|
-
`,
|
|
58
|
-
});
|
|
39
|
+
new files_1.Files(this, className, fileBase, inferredName);
|
|
59
40
|
}
|
|
60
41
|
}
|
|
61
42
|
exports.Projalf = Projalf;
|
|
@@ -64,8 +45,8 @@ Projalf[_a] = { fqn: "projalf.Projalf", version: "0.0.0" };
|
|
|
64
45
|
function inferNameFromGit() {
|
|
65
46
|
try {
|
|
66
47
|
const remote = cp
|
|
67
|
-
.execSync(
|
|
68
|
-
stdio: [
|
|
48
|
+
.execSync('git config --get remote.origin.url', {
|
|
49
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
69
50
|
})
|
|
70
51
|
.toString()
|
|
71
52
|
.trim();
|
|
@@ -83,10 +64,10 @@ function inferNameFromCwd() {
|
|
|
83
64
|
}
|
|
84
65
|
function toPascalCase(input) {
|
|
85
66
|
return input
|
|
86
|
-
.replace(/[^a-zA-Z0-9]+/g,
|
|
87
|
-
.split(
|
|
67
|
+
.replace(/[^a-zA-Z0-9]+/g, ' ')
|
|
68
|
+
.split(' ')
|
|
88
69
|
.filter(Boolean)
|
|
89
70
|
.map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase())
|
|
90
|
-
.join(
|
|
71
|
+
.join('');
|
|
91
72
|
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvamFsZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Qcm9qYWxmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0NBQW9DO0FBQ3BDLDZCQUE2QjtBQUM3QixtQ0FBNEM7QUFDNUMsbUNBQWdDO0FBSWhDLE1BQWEsT0FBUSxTQUFRLGVBQU0sQ0FBQyxtQkFBbUI7SUFDckQsWUFBWSxPQUF1QjtRQUNqQyxNQUFNLFlBQVksR0FDaEIsT0FBTyxDQUFDLElBQUksSUFBSSxnQkFBZ0IsRUFBRSxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDM0QsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUU1QyxNQUFNLGFBQWEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUF5QixDQUFDO1FBQzVFLElBQUksYUFBYSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QyxhQUFhLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQztRQUMzQyxDQUFDO1FBRUQsS0FBSyxDQUFDO1lBQ0osR0FBRyxPQUFPO1lBQ1YsSUFBSSxFQUFFLFlBQVk7WUFDbEIsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixJQUFJLE1BQU07WUFDNUQsY0FBYyxFQUNaLE9BQU8sQ0FBQyxjQUFjLElBQUksbUJBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHO1lBQzdELFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUk7WUFDdEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksU0FBUztZQUMzQyxPQUFPLEVBQUUsYUFBYTtZQUN0QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3hCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUU7WUFFOUIsZUFBZSxFQUFFO2dCQUNmLEdBQUcsT0FBTyxDQUFDLGVBQWU7Z0JBQzFCLFFBQVEsRUFBRTtvQkFDUixJQUFJLEVBQUUsS0FBSztvQkFDWCxVQUFVLEVBQUUsR0FBRztvQkFDZixXQUFXLEVBQUUsS0FBSztvQkFDbEIsR0FBRyxPQUFPLENBQUMsZUFBZSxFQUFFLFFBQVE7aUJBQ3JDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLGFBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNyRCxDQUFDOztBQXBDSCwwQkFxQ0M7OztBQUVELFNBQVMsZ0JBQWdCO0lBQ3ZCLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLEVBQUU7YUFDZCxRQUFRLENBQUMsb0NBQW9DLEVBQUU7WUFDOUMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUM7U0FDcEMsQ0FBQzthQUNELFFBQVEsRUFBRTthQUNWLElBQUksRUFBRSxDQUFDO1FBQ1YsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUM5QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDckQsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGdCQUFnQjtJQUN2QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLEtBQWE7SUFDakMsT0FBTyxLQUFLO1NBQ1QsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQztTQUM5QixLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQztTQUNmLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3pFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjcCBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBhd3NjZGssIGphdmFzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgRmlsZXMgfSBmcm9tICcuL2ZpbGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9qYWxmT3B0aW9ucyBleHRlbmRzIGF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucyB7fVxuXG5leHBvcnQgY2xhc3MgUHJvamFsZiBleHRlbmRzIGF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwIHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogUHJvamFsZk9wdGlvbnMpIHtcbiAgICBjb25zdCBpbmZlcnJlZE5hbWUgPVxuICAgICAgb3B0aW9ucy5uYW1lID8/IGluZmVyTmFtZUZyb21HaXQoKSA/PyBpbmZlck5hbWVGcm9tQ3dkKCk7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gdG9QYXNjYWxDYXNlKGluZmVycmVkTmFtZSk7XG4gICAgY29uc3QgZmlsZUJhc2UgPSBpbmZlcnJlZE5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIGNvbnN0IG1lcmdlZENvbnRleHQgPSB7IC4uLihvcHRpb25zLmNvbnRleHQgPz8ge30pIH0gYXMgUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBpZiAobWVyZ2VkQ29udGV4dC5zZXJ2aWNlTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBtZXJnZWRDb250ZXh0LnNlcnZpY2VOYW1lID0gaW5mZXJyZWROYW1lO1xuICAgIH1cblxuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBuYW1lOiBpbmZlcnJlZE5hbWUsXG4gICAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogb3B0aW9ucy5kZWZhdWx0UmVsZWFzZUJyYW5jaCA/PyAnbWFpbicsXG4gICAgICBwYWNrYWdlTWFuYWdlcjpcbiAgICAgICAgb3B0aW9ucy5wYWNrYWdlTWFuYWdlciA/PyBqYXZhc2NyaXB0Lk5vZGVQYWNrYWdlTWFuYWdlci5OUE0sXG4gICAgICBwcm9qZW5yY1RzOiBvcHRpb25zLnByb2plbnJjVHMgPz8gdHJ1ZSxcbiAgICAgIGNka1ZlcnNpb246IG9wdGlvbnMuY2RrVmVyc2lvbiA/PyAnMi4xNTYuMCcsXG4gICAgICBjb250ZXh0OiBtZXJnZWRDb250ZXh0LFxuICAgICAgZGVwczogb3B0aW9ucy5kZXBzID8/IFtdLFxuICAgICAgZGV2RGVwczogb3B0aW9ucy5kZXZEZXBzID8/IFtdLFxuXG4gICAgICBwcmV0dGllck9wdGlvbnM6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5wcmV0dGllck9wdGlvbnMsXG4gICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgc2VtaTogZmFsc2UsXG4gICAgICAgICAgcHJpbnRXaWR0aDogMTAwLFxuICAgICAgICAgIHNpbmdsZVF1b3RlOiBmYWxzZSxcbiAgICAgICAgICAuLi5vcHRpb25zLnByZXR0aWVyT3B0aW9ucz8uc2V0dGluZ3MsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgbmV3IEZpbGVzKHRoaXMsIGNsYXNzTmFtZSwgZmlsZUJhc2UsIGluZmVycmVkTmFtZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5mZXJOYW1lRnJvbUdpdCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIGNvbnN0IHJlbW90ZSA9IGNwXG4gICAgICAuZXhlY1N5bmMoJ2dpdCBjb25maWcgLS1nZXQgcmVtb3RlLm9yaWdpbi51cmwnLCB7XG4gICAgICAgIHN0ZGlvOiBbJ2lnbm9yZScsICdwaXBlJywgJ2lnbm9yZSddLFxuICAgICAgfSlcbiAgICAgIC50b1N0cmluZygpXG4gICAgICAudHJpbSgpO1xuICAgIGlmICghcmVtb3RlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG1hdGNoID0gcmVtb3RlLm1hdGNoKC9cXC8oW15cXC9dKz8pKD86XFwuZ2l0KT8kLyk7XG4gICAgcmV0dXJuIG1hdGNoPy5bMV07XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5mZXJOYW1lRnJvbUN3ZCgpOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aC5iYXNlbmFtZShwcm9jZXNzLmN3ZCgpKTtcbn1cblxuZnVuY3Rpb24gdG9QYXNjYWxDYXNlKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gaW5wdXRcbiAgICAucmVwbGFjZSgvW15hLXpBLVowLTldKy9nLCAnICcpXG4gICAgLnNwbGl0KCcgJylcbiAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgLm1hcCgocGFydCkgPT4gcGFydC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHBhcnQuc2xpY2UoMSkudG9Mb3dlckNhc2UoKSlcbiAgICAuam9pbignJyk7XG59XG4iXX0=
|
package/lib/files.d.ts
ADDED
package/lib/files.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Files = void 0;
|
|
4
|
+
const projen_1 = require("projen");
|
|
5
|
+
class Files extends projen_1.Component {
|
|
6
|
+
constructor(appProject, className, fileBase, inferredName) {
|
|
7
|
+
super(appProject);
|
|
8
|
+
this.appProject = appProject;
|
|
9
|
+
this.appProject = appProject;
|
|
10
|
+
new projen_1.SampleFile(this.appProject, `src/${fileBase}.ts`, {
|
|
11
|
+
contents: `import * as cdk from 'aws-cdk-lib';
|
|
12
|
+
import { Construct } from 'constructs';
|
|
13
|
+
|
|
14
|
+
export interface ${className}Props extends cdk.StackProps {
|
|
15
|
+
serviceName: string;
|
|
16
|
+
stage: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export class ${className} extends cdk.Stack {
|
|
20
|
+
constructor(scope: Construct, id: string, props: ${className}Props) {
|
|
21
|
+
super(scope, id, props);
|
|
22
|
+
// Add your infra here...
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
`,
|
|
26
|
+
});
|
|
27
|
+
this.appProject.tryRemoveFile('src/main.ts');
|
|
28
|
+
new projen_1.SampleFile(this.appProject, 'src/main.ts', {
|
|
29
|
+
contents: `
|
|
30
|
+
import * as cdk from 'aws-cdk-lib';
|
|
31
|
+
import { ${className} } from './${fileBase}';
|
|
32
|
+
const env = {
|
|
33
|
+
account: process.env.CDK_DEPLOY_ACCOUNT ?? process.env.CDK_DEFAULT_ACCOUNT,
|
|
34
|
+
region: process.env.CDK_DEPLOY_REGION ?? process.env.CDK_DEFAULT_REGION,
|
|
35
|
+
};
|
|
36
|
+
const app = new cdk.App();
|
|
37
|
+
const serviceName = '${inferredName}';
|
|
38
|
+
new ${className}(app, serviceName, { env, serviceName });
|
|
39
|
+
app.synth();
|
|
40
|
+
`,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.Files = Files;
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZmlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQStDO0FBRy9DLE1BQWEsS0FBTSxTQUFRLGtCQUFTO0lBQ2xDLFlBQ1UsVUFBbUIsRUFDM0IsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsWUFBb0I7UUFFcEIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBTFYsZUFBVSxHQUFWLFVBQVUsQ0FBUztRQU0zQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUU3QixJQUFJLG1CQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLFFBQVEsS0FBSyxFQUFFO1lBQ3BELFFBQVEsRUFBRTs7O21CQUdHLFNBQVM7Ozs7O2VBS2IsU0FBUztxREFDNkIsU0FBUzs7Ozs7Q0FLN0Q7U0FDSSxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3QyxJQUFJLG1CQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUU7WUFDN0MsUUFBUSxFQUFFOztpQkFFQyxTQUFTLGNBQWMsUUFBUTs7Ozs7OzZCQU1uQixZQUFZO1lBQzdCLFNBQVM7O09BRWQ7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE1Q0Qsc0JBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBTYW1wbGVGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFByb2phbGYgfSBmcm9tICcuL1Byb2phbGYnO1xuXG5leHBvcnQgY2xhc3MgRmlsZXMgZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFwcFByb2plY3Q6IFByb2phbGYsXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICAgZmlsZUJhc2U6IHN0cmluZyxcbiAgICBpbmZlcnJlZE5hbWU6IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoYXBwUHJvamVjdCk7XG4gICAgdGhpcy5hcHBQcm9qZWN0ID0gYXBwUHJvamVjdDtcblxuICAgIG5ldyBTYW1wbGVGaWxlKHRoaXMuYXBwUHJvamVjdCwgYHNyYy8ke2ZpbGVCYXNlfS50c2AsIHtcbiAgICAgIGNvbnRlbnRzOiBgaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlICR7Y2xhc3NOYW1lfVByb3BzIGV4dGVuZHMgY2RrLlN0YWNrUHJvcHMge1xuICBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICBzdGFnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgJHtjbGFzc05hbWV9IGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7Y2xhc3NOYW1lfVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgLy8gQWRkIHlvdXIgaW5mcmEgaGVyZS4uLlxuICB9XG59XG5gLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hcHBQcm9qZWN0LnRyeVJlbW92ZUZpbGUoJ3NyYy9tYWluLnRzJyk7XG4gICAgbmV3IFNhbXBsZUZpbGUodGhpcy5hcHBQcm9qZWN0LCAnc3JjL21haW4udHMnLCB7XG4gICAgICBjb250ZW50czogYFxuICAgICAgaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbiAgICAgIGltcG9ydCB7ICR7Y2xhc3NOYW1lfSB9IGZyb20gJy4vJHtmaWxlQmFzZX0nO1xuICAgICAgY29uc3QgZW52ID0ge1xuICAgICAgICBhY2NvdW50OiBwcm9jZXNzLmVudi5DREtfREVQTE9ZX0FDQ09VTlQgPz8gcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVCxcbiAgICAgICAgcmVnaW9uOiBwcm9jZXNzLmVudi5DREtfREVQTE9ZX1JFR0lPTiA/PyBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9SRUdJT04sXG4gICAgICB9O1xuICAgICAgY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcbiAgICAgIGNvbnN0IHNlcnZpY2VOYW1lID0gJyR7aW5mZXJyZWROYW1lfSc7XG4gICAgICBuZXcgJHtjbGFzc05hbWV9KGFwcCwgc2VydmljZU5hbWUsIHsgZW52LCBzZXJ2aWNlTmFtZSB9KTtcbiAgICAgIGFwcC5zeW50aCgpO1xuICAgICAgYCxcbiAgICB9KTtcbiAgfVxufVxuIl19
|