projen 0.100.2 → 0.100.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +137 -76
- package/lib/ai-instructions.js +2 -2
- package/lib/awscdk/auto-discover.js +6 -6
- package/lib/awscdk/awscdk-app-java.js +1 -1
- package/lib/awscdk/awscdk-app-py.js +1 -1
- package/lib/awscdk/awscdk-app-ts.js +4 -4
- package/lib/awscdk/awscdk-construct.js +1 -1
- package/lib/awscdk/awscdk-deps-java.js +1 -1
- package/lib/awscdk/awscdk-deps-js.js +1 -1
- package/lib/awscdk/awscdk-deps-py.js +1 -1
- package/lib/awscdk/awscdk-deps.js +1 -1
- package/lib/awscdk/cdk-config.js +3 -3
- package/lib/awscdk/cdk-tasks.js +1 -1
- package/lib/awscdk/integration-test.js +1 -1
- package/lib/awscdk/lambda-extension.js +1 -1
- package/lib/awscdk/lambda-function.js +2 -2
- package/lib/build/build-workflow.js +1 -1
- package/lib/cdk/auto-discover-base.js +2 -2
- package/lib/cdk/construct-lib.js +1 -1
- package/lib/cdk/integration-test-base.js +1 -1
- package/lib/cdk/jsii-build.js +1 -1
- package/lib/cdk/jsii-docgen.js +1 -1
- package/lib/cdk/jsii-project.js +1 -1
- package/lib/cdk8s/auto-discover.js +2 -2
- package/lib/cdk8s/cdk8s-app-py.js +1 -1
- package/lib/cdk8s/cdk8s-app-ts.js +1 -1
- package/lib/cdk8s/cdk8s-construct.js +1 -1
- package/lib/cdk8s/cdk8s-deps-py.js +1 -1
- package/lib/cdk8s/cdk8s-deps.js +1 -1
- package/lib/cdk8s/integration-test.js +1 -1
- package/lib/cdktf/cdktf-construct.js +1 -1
- package/lib/circleci/circleci.js +1 -1
- package/lib/component.js +1 -1
- package/lib/dependencies.js +1 -1
- package/lib/dev-env.js +1 -1
- package/lib/docker-compose/docker-compose-service.js +1 -1
- package/lib/docker-compose/docker-compose.js +1 -1
- package/lib/file.js +1 -1
- package/lib/gitattributes.js +1 -1
- package/lib/github/actions-provider.js +1 -1
- package/lib/github/auto-approve.js +1 -1
- package/lib/github/auto-merge.js +1 -1
- package/lib/github/auto-queue.js +1 -1
- package/lib/github/dependabot.js +1 -1
- package/lib/github/dependency-review.js +1 -1
- package/lib/github/github-credentials.js +1 -1
- package/lib/github/github-project.js +1 -1
- package/lib/github/github.js +1 -1
- package/lib/github/merge-queue.js +1 -1
- package/lib/github/mergify.js +1 -1
- package/lib/github/pr-template.js +1 -1
- package/lib/github/pull-request-backport.js +1 -1
- package/lib/github/pull-request-lint.js +1 -1
- package/lib/github/stale.js +1 -1
- package/lib/github/task-workflow-job.js +1 -1
- package/lib/github/task-workflow.js +1 -1
- package/lib/github/workflow-actions.js +1 -1
- package/lib/github/workflow-jobs.js +1 -1
- package/lib/github/workflow-steps.js +1 -1
- package/lib/github/workflows.js +1 -1
- package/lib/gitlab/configuration.js +1 -1
- package/lib/gitlab/gitlab-configuration.js +1 -1
- package/lib/gitlab/nested-configuration.js +1 -1
- package/lib/gitpod.js +1 -1
- package/lib/ignore-file.js +1 -1
- package/lib/ini.js +1 -1
- package/lib/java/java-project.js +1 -1
- package/lib/java/junit.js +1 -1
- package/lib/java/maven-compile.js +1 -1
- package/lib/java/maven-packaging.js +1 -1
- package/lib/java/maven-sample.js +1 -1
- package/lib/java/pom.js +2 -2
- package/lib/java/projenrc.js +1 -1
- package/lib/javascript/biome/biome.js +1 -1
- package/lib/javascript/bundler.js +1 -1
- package/lib/javascript/eslint.d.ts +36 -0
- package/lib/javascript/eslint.js +40 -3
- package/lib/javascript/jest.js +4 -4
- package/lib/javascript/license-checker.js +1 -1
- package/lib/javascript/node-package.js +1 -1
- package/lib/javascript/node-project.js +1 -1
- package/lib/javascript/npm-config.js +1 -1
- package/lib/javascript/prettier.js +1 -1
- package/lib/javascript/projenrc.js +1 -1
- package/lib/javascript/typescript-config.js +2 -2
- package/lib/javascript/upgrade-dependencies.js +2 -2
- package/lib/javascript/yarnrc.js +1 -1
- package/lib/json-patch.js +1 -1
- package/lib/json.js +1 -1
- package/lib/license.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/makefile.js +1 -1
- package/lib/object-file.js +1 -1
- package/lib/project-build.js +1 -1
- package/lib/project-tree.js +1 -1
- package/lib/project.js +1 -1
- package/lib/projects.js +1 -1
- package/lib/projenrc-json.js +1 -1
- package/lib/projenrc.js +1 -1
- package/lib/python/pip.js +1 -1
- package/lib/python/poetry.js +2 -2
- package/lib/python/projenrc.js +1 -1
- package/lib/python/pyproject-toml-file.js +1 -1
- package/lib/python/pytest-sample.js +1 -1
- package/lib/python/pytest.js +1 -1
- package/lib/python/python-project.js +1 -1
- package/lib/python/python-sample.js +1 -1
- package/lib/python/requirements-file.js +1 -1
- package/lib/python/setuppy.js +1 -1
- package/lib/python/setuptools.js +1 -1
- package/lib/python/uv.js +1 -1
- package/lib/python/venv.js +1 -1
- package/lib/readme.js +1 -1
- package/lib/release/publisher.js +1 -1
- package/lib/release/release-trigger.js +1 -1
- package/lib/release/release.js +1 -1
- package/lib/renovatebot.js +1 -1
- package/lib/run-task.cjs +3 -3
- package/lib/sample-file.js +2 -2
- package/lib/source-code.js +1 -1
- package/lib/task.js +1 -1
- package/lib/tasks.js +1 -1
- package/lib/testing.js +1 -1
- package/lib/textfile.js +1 -1
- package/lib/toml.js +1 -1
- package/lib/typescript/projenrc-ts.js +1 -1
- package/lib/typescript/projenrc.d.ts +2 -0
- package/lib/typescript/projenrc.js +27 -6
- package/lib/typescript/typescript-typedoc.js +1 -1
- package/lib/typescript/typescript.d.ts +27 -3
- package/lib/typescript/typescript.js +87 -28
- package/lib/version.js +2 -2
- package/lib/vscode/devcontainer.js +1 -1
- package/lib/vscode/extensions.js +1 -1
- package/lib/vscode/launch-config.js +1 -1
- package/lib/vscode/settings.js +1 -1
- package/lib/vscode/vscode.js +1 -1
- package/lib/web/next.js +3 -3
- package/lib/web/postcss.js +1 -1
- package/lib/web/react.js +3 -3
- package/lib/web/tailwind.js +1 -1
- package/lib/xmlfile.js +1 -1
- package/lib/yaml.js +1 -1
- package/node_modules/semver/classes/range.js +6 -2
- package/node_modules/semver/package.json +1 -1
- package/package.json +3 -3
package/lib/ai-instructions.js
CHANGED
|
@@ -63,7 +63,7 @@ var AiAgent;
|
|
|
63
63
|
* ai.addInstructions("Always write comprehensive tests.");
|
|
64
64
|
*/
|
|
65
65
|
class AiInstructions extends component_1.Component {
|
|
66
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.AiInstructions", version: "0.100.
|
|
66
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.AiInstructions", version: "0.100.4" };
|
|
67
67
|
/**
|
|
68
68
|
* Returns projen-specific instructions for AI agents.
|
|
69
69
|
*/
|
|
@@ -167,7 +167,7 @@ class AiInstructions extends component_1.Component {
|
|
|
167
167
|
}
|
|
168
168
|
exports.AiInstructions = AiInstructions;
|
|
169
169
|
class AiInstructionsFile extends file_1.FileBase {
|
|
170
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.AiInstructionsFile", version: "0.100.
|
|
170
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.AiInstructionsFile", version: "0.100.4" };
|
|
171
171
|
instructions = [];
|
|
172
172
|
/**
|
|
173
173
|
* Adds instructions to the instruction file.
|
|
@@ -12,7 +12,7 @@ const component_1 = require("../component");
|
|
|
12
12
|
* Creates integration tests from entry points discovered in the test tree.
|
|
13
13
|
*/
|
|
14
14
|
class IntegrationTestAutoDiscover extends cdk_1.IntegrationTestAutoDiscoverBase {
|
|
15
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.IntegrationTestAutoDiscover", version: "0.100.
|
|
15
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.IntegrationTestAutoDiscover", version: "0.100.4" };
|
|
16
16
|
constructor(project, options) {
|
|
17
17
|
super(project, options);
|
|
18
18
|
for (const entrypoint of this.entrypoints) {
|
|
@@ -30,7 +30,7 @@ exports.IntegrationTestAutoDiscover = IntegrationTestAutoDiscover;
|
|
|
30
30
|
* Creates lambdas from entry points discovered in the project's source tree.
|
|
31
31
|
*/
|
|
32
32
|
class LambdaAutoDiscover extends cdk_1.AutoDiscoverBase {
|
|
33
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaAutoDiscover", version: "0.100.
|
|
33
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaAutoDiscover", version: "0.100.4" };
|
|
34
34
|
constructor(project, options) {
|
|
35
35
|
super(project, {
|
|
36
36
|
projectdir: options.srcdir,
|
|
@@ -50,7 +50,7 @@ exports.LambdaAutoDiscover = LambdaAutoDiscover;
|
|
|
50
50
|
* Creates singleton lambdas from entry points discovered in the project's source tree.
|
|
51
51
|
*/
|
|
52
52
|
class SingletonLambdaAutoDiscover extends cdk_1.AutoDiscoverBase {
|
|
53
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.SingletonLambdaAutoDiscover", version: "0.100.
|
|
53
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.SingletonLambdaAutoDiscover", version: "0.100.4" };
|
|
54
54
|
constructor(project, options) {
|
|
55
55
|
super(project, {
|
|
56
56
|
projectdir: options.srcdir,
|
|
@@ -72,7 +72,7 @@ exports.SingletonLambdaAutoDiscover = SingletonLambdaAutoDiscover;
|
|
|
72
72
|
* Creates edge lambdas from entry points discovered in the project's source tree.
|
|
73
73
|
*/
|
|
74
74
|
class EdgeLambdaAutoDiscover extends cdk_1.AutoDiscoverBase {
|
|
75
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.EdgeLambdaAutoDiscover", version: "0.100.
|
|
75
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.EdgeLambdaAutoDiscover", version: "0.100.4" };
|
|
76
76
|
constructor(project, options) {
|
|
77
77
|
super(project, {
|
|
78
78
|
projectdir: options.srcdir,
|
|
@@ -94,7 +94,7 @@ exports.EdgeLambdaAutoDiscover = EdgeLambdaAutoDiscover;
|
|
|
94
94
|
* source tree.
|
|
95
95
|
*/
|
|
96
96
|
class LambdaExtensionAutoDiscover extends cdk_1.AutoDiscoverBase {
|
|
97
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaExtensionAutoDiscover", version: "0.100.
|
|
97
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaExtensionAutoDiscover", version: "0.100.4" };
|
|
98
98
|
constructor(project, options) {
|
|
99
99
|
super(project, {
|
|
100
100
|
projectdir: options.srcdir,
|
|
@@ -115,7 +115,7 @@ exports.LambdaExtensionAutoDiscover = LambdaExtensionAutoDiscover;
|
|
|
115
115
|
* project's source and test trees.
|
|
116
116
|
*/
|
|
117
117
|
class AutoDiscover extends component_1.Component {
|
|
118
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AutoDiscover", version: "0.100.
|
|
118
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AutoDiscover", version: "0.100.4" };
|
|
119
119
|
constructor(project, options) {
|
|
120
120
|
super(project);
|
|
121
121
|
if (options.lambdaAutoDiscover ?? true) {
|
|
@@ -14,7 +14,7 @@ const java_1 = require("../java");
|
|
|
14
14
|
* @pjid awscdk-app-java
|
|
15
15
|
*/
|
|
16
16
|
class AwsCdkJavaApp extends java_1.JavaProject {
|
|
17
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkJavaApp", version: "0.100.
|
|
17
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkJavaApp", version: "0.100.4" };
|
|
18
18
|
/**
|
|
19
19
|
* The `cdk.json` file.
|
|
20
20
|
*/
|
|
@@ -14,7 +14,7 @@ const python_project_1 = require("../python/python-project");
|
|
|
14
14
|
* @pjid awscdk-app-py
|
|
15
15
|
*/
|
|
16
16
|
class AwsCdkPythonApp extends python_project_1.PythonProject {
|
|
17
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkPythonApp", version: "0.100.
|
|
17
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkPythonApp", version: "0.100.4" };
|
|
18
18
|
/**
|
|
19
19
|
* Common CDK tasks.
|
|
20
20
|
*/
|
|
@@ -53,7 +53,7 @@ const integ_runner_1 = require("./integ-runner");
|
|
|
53
53
|
* @pjid awscdk-app-ts
|
|
54
54
|
*/
|
|
55
55
|
class AwsCdkTypeScriptApp extends typescript_1.TypeScriptAppProject {
|
|
56
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkTypeScriptApp", version: "0.100.
|
|
56
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkTypeScriptApp", version: "0.100.4" };
|
|
57
57
|
/**
|
|
58
58
|
* The CDK version this app is using.
|
|
59
59
|
*/
|
|
@@ -253,7 +253,7 @@ class SampleCode extends component_1.Component {
|
|
|
253
253
|
const outdir = this.project.outdir;
|
|
254
254
|
const srcdir = path.join(outdir, this.appProject.srcdir);
|
|
255
255
|
if (fs.existsSync(srcdir) &&
|
|
256
|
-
fs.readdirSync(srcdir).
|
|
256
|
+
fs.readdirSync(srcdir).some((x) => x.endsWith(".ts"))) {
|
|
257
257
|
return;
|
|
258
258
|
}
|
|
259
259
|
const srcImports = new Array();
|
|
@@ -285,7 +285,7 @@ app.synth();`;
|
|
|
285
285
|
fs.writeFileSync(path.join(srcdir, this.appProject.appEntrypoint), srcCode);
|
|
286
286
|
const testdir = path.join(outdir, this.appProject.testdir);
|
|
287
287
|
if (fs.existsSync(testdir) &&
|
|
288
|
-
fs.readdirSync(testdir).
|
|
288
|
+
fs.readdirSync(testdir).some((x) => x.endsWith(".ts"))) {
|
|
289
289
|
return;
|
|
290
290
|
}
|
|
291
291
|
const testImports = new Array();
|
|
@@ -306,4 +306,4 @@ test('Snapshot', () => {
|
|
|
306
306
|
fs.writeFileSync(path.join(testdir, `${appEntrypointName}.test.ts`), testCode);
|
|
307
307
|
}
|
|
308
308
|
}
|
|
309
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2RrLWFwcC10cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXdzY2RrLWFwcC10cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3Qiw0Q0FBeUM7QUFDekMsa0RBQWlEO0FBRWpELDhDQUl1QjtBQUV2Qiw4Q0FBcUQ7QUFDckQsa0NBQW9DO0FBQ3BDLG1EQUErQztBQUUvQyxxREFBZ0Q7QUFFaEQsNkNBQXlDO0FBQ3pDLDJDQUF1QztBQUN2QyxpREFBNkM7QUFnRjdDOzs7O0dBSUc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLGlDQUFvQjs7SUFDM0Q7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDYSxhQUFhLENBQVM7SUFFdEM7O09BRUc7SUFDYSxRQUFRLENBQVc7SUFFbkM7O09BRUc7SUFDYSxTQUFTLENBQVk7SUFFckIsT0FBTyxDQUFhO0lBRXBDLFlBQVksT0FBbUM7UUFDN0MsK0JBQStCO1FBQy9CLE1BQU0seUJBQXlCLEdBQzdCO1lBQ0UsTUFBTSxFQUFFLFFBQVE7WUFDaEIsTUFBTSxFQUFFLFVBQVU7WUFDbEIsZ0JBQWdCLEVBQUUsdUNBQTBCLENBQUMsU0FBUztZQUN0RCxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFDZixXQUFXLEVBQUUsSUFBSTtZQUNqQixNQUFNLEVBQUUsSUFBSTtZQUNaLGFBQWEsRUFBRSxJQUFJO1lBQ25CLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsY0FBYyxFQUFFLElBQUk7WUFDcEIsWUFBWSxFQUFFLElBQUk7WUFDbEIsY0FBYyxFQUFFLEtBQUs7WUFDckIsa0JBQWtCLEVBQUUsS0FBSztZQUN6QixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLDBC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QUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUN4RCxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQ3hDLFdBQVcsQ0FBQyxJQUFJLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUN2RCxXQUFXLENBQUMsSUFBSSxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFFdkUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0IsS0FBSyxDQUNOLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzhCQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxpQkFBaUI7Ozs7Ozs7O0lBUXJFLENBQUM7UUFFRCxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLEVBQUUsQ0FBQyxhQUFhLENBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxpQkFBaUIsVUFBVSxDQUFDLEVBQ2xELFFBQVEsQ0FDVCxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEZXBlbmRlbmN5VHlwZSB9IGZyb20gXCIuLi9kZXBlbmRlbmNpZXNcIjtcbmltcG9ydCB0eXBlIHsgVHlwZXNjcmlwdENvbmZpZ09wdGlvbnMgfSBmcm9tIFwiLi4vamF2YXNjcmlwdFwiO1xuaW1wb3J0IHtcbiAgTm9kZVBhY2thZ2VNYW5hZ2VyLFxuICBSdW5CdW5kbGVUYXNrLFxuICBUeXBlU2NyaXB0TW9kdWxlUmVzb2x1dGlvbixcbn0gZnJvbSBcIi4uL2phdmFzY3JpcHRcIjtcbmltcG9ydCB0eXBlIHsgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzY3JpcHRcIjtcbmltcG9ydCB7IFR5cGVTY3JpcHRBcHBQcm9qZWN0IH0gZnJvbSBcIi4uL3R5cGVzY3JpcHRcIjtcbmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gXCIuLi91dGlsXCI7XG5pbXBvcnQgeyBBdXRvRGlzY292ZXIgfSBmcm9tIFwiLi9hdXRvLWRpc2NvdmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF3c0Nka0RlcHMsIEF3c0Nka0RlcHNDb21tb25PcHRpb25zIH0gZnJvbSBcIi4vYXdzY2RrLWRlcHNcIjtcbmltcG9ydCB7IEF3c0Nka0RlcHNKcyB9IGZyb20gXCIuL2F3c2Nkay1kZXBzLWpzXCI7XG5pbXBvcnQgdHlwZSB7IENka0NvbmZpZ0NvbW1vbk9wdGlvbnMgfSBmcm9tIFwiLi9jZGstY29uZmlnXCI7XG5pbXBvcnQgeyBDZGtDb25maWcgfSBmcm9tIFwiLi9jZGstY29uZmlnXCI7XG5pbXBvcnQgeyBDZGtUYXNrcyB9IGZyb20gXCIuL2Nkay10YXNrc1wiO1xuaW1wb3J0IHsgSW50ZWdSdW5uZXIgfSBmcm9tIFwiLi9pbnRlZy1ydW5uZXJcIjtcbmltcG9ydCB0eXBlIHsgTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zIH0gZnJvbSBcIi4vbGFtYmRhLWZ1bmN0aW9uXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnNcbiAgZXh0ZW5kc1xuICAgIFR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyxcbiAgICBDZGtDb25maWdDb21tb25PcHRpb25zLFxuICAgIEF3c0Nka0RlcHNDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBDREsgYXBwJ3MgZW50cnlwb2ludCAocmVsYXRpdmUgdG8gdGhlIHNvdXJjZSBkaXJlY3RvcnksIHdoaWNoIGlzXG4gICAqIFwic3JjXCIgYnkgZGVmYXVsdCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibWFpbi50c1wiXG4gICAqL1xuICByZWFkb25seSBhcHBFbnRyeXBvaW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvbW1hbmQgbGluZSB0byBleGVjdXRlIGluIG9yZGVyIHRvIHN5bnRoZXNpemUgdGhlIENESyBhcHBsaWNhdGlvblxuICAgKiAobGFuZ3VhZ2Ugc3BlY2lmaWMpLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwPzogc3RyaW5nO1xuICAvKipcbiAgICogQXV0b21hdGljYWxseSBhZGRzIGFuIGBhd3NjZGsuTGFtYmRhRnVuY3Rpb25gIGZvciBlYWNoIGAubGFtYmRhLnRzYCBoYW5kbGVyXG4gICAqIGluIHlvdXIgc291cmNlIHRyZWUuIElmIHRoaXMgaXMgZGlzYWJsZWQsIHlvdSBjYW4gbWFudWFsbHkgYWRkIGFuXG4gICAqIGBhd3NjZGsuQXV0b0Rpc2NvdmVyYCBjb21wb25lbnQgdG8geW91ciBwcm9qZWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFBdXRvRGlzY292ZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGFkZHMgYW4gYGNsb3VkZnJvbnQuZXhwZXJpbWVudGFsLkVkZ2VGdW5jdGlvbmAgZm9yIGVhY2hcbiAgICogYC5lZGdlLWxhbWJkYS50c2AgaGFuZGxlciBpbiB5b3VyIHNvdXJjZSB0cmVlLiBJZiB0aGlzIGlzIGRpc2FibGVkLCB5b3UgY2FuXG4gICAqIG1hbnVhbGx5IGFkZCBhbiBgYXdzY2RrLkF1dG9EaXNjb3ZlcmAgY29tcG9uZW50IHRvIHlvdXIgcHJvamVjdC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZWRnZUxhbWJkYUF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgYWRkcyBhbiBgYXdzY2RrLlNpbmdsZXRvbkZ1bmN0aW9uYCBmb3IgZWFjaFxuICAgKiBgLnNpbmdsZXRvbi1sYW1iZGEudHNgIGhhbmRsZXIgaW4geW91ciBzb3VyY2UgdHJlZS4gSWYgdGhpcyBpcyBkaXNhYmxlZCwgeW91IGNhblxuICAgKiBtYW51YWxseSBhZGQgYW4gYGF3c2Nkay5BdXRvRGlzY292ZXJgIGNvbXBvbmVudCB0byB5b3VyIHByb2plY3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNpbmdsZXRvbkxhbWJkYUF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgYWRkcyBhbiBgYXdzY2RrLkxhbWJkYUV4dGVuc2lvbmAgZm9yIGVhY2ggYC5sYW1iZGEtZXh0ZW5zaW9uLnRzYFxuICAgKiBlbnRyeXBvaW50IGluIHlvdXIgc291cmNlIHRyZWUuIElmIHRoaXMgaXMgZGlzYWJsZWQsIHlvdSBjYW4gbWFudWFsbHkgYWRkIGFuXG4gICAqIGBhd3NjZGsuQXV0b0Rpc2NvdmVyYCBjb21wb25lbnQgdG8geW91ciBwcm9qZWN0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYUV4dGVuc2lvbkF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgZGlzY292ZXJzIGFuZCBjcmVhdGVzIGludGVncmF0aW9uIHRlc3RzIGZvciBlYWNoIGAuaW50ZWcudHNgXG4gICAqIGZpbGUgaW4gdW5kZXIgeW91ciB0ZXN0IGRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZWdyYXRpb25UZXN0QXV0b0Rpc2NvdmVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciB0aGUgQVdTIENESyBpbnRlZy1ydW5uZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbEludGVnUnVubmVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29tbW9uIG9wdGlvbnMgZm9yIGFsbCBBV1MgTGFtYmRhIGZ1bmN0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IG9wdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYU9wdGlvbnM/OiBMYW1iZGFGdW5jdGlvbkNvbW1vbk9wdGlvbnM7XG59XG5cbi8qKlxuICogQVdTIENESyBhcHAgaW4gVHlwZVNjcmlwdFxuICpcbiAqIEBwamlkIGF3c2Nkay1hcHAtdHNcbiAqL1xuZXhwb3J0IGNsYXNzIEF3c0Nka1R5cGVTY3JpcHRBcHAgZXh0ZW5kcyBUeXBlU2NyaXB0QXBwUHJvamVjdCB7XG4gIC8qKlxuICAgKiBUaGUgQ0RLIHZlcnNpb24gdGhpcyBhcHAgaXMgdXNpbmcuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNka1ZlcnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY2RrRGVwcy5jZGtWZXJzaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBDREsgYXBwIGVudHJ5cG9pbnRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhcHBFbnRyeXBvaW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbW1vbiBDREsgdGFza3MuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrVGFza3M6IENka1Rhc2tzO1xuXG4gIC8qKlxuICAgKiBjZGsuanNvbiBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka0NvbmZpZzogQ2RrQ29uZmlnO1xuXG4gIHB1YmxpYyByZWFkb25seSBjZGtEZXBzOiBBd3NDZGtEZXBzO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zKSB7XG4gICAgLy8gQ0RLIGRlZmF1bHQgY29tcGlsZXIgb3B0aW9uc1xuICAgIGNvbnN0IGNka0RlZmF1bHRDb21waWxlck9wdGlvbnM6IFR5cGVzY3JpcHRDb25maWdPcHRpb25zW1wiY29tcGlsZXJPcHRpb25zXCJdID1cbiAgICAgIHtcbiAgICAgICAgdGFyZ2V0OiBcIkVTMjAyMlwiLFxuICAgICAgICBtb2R1bGU6IFwiTm9kZU5leHRcIixcbiAgICAgICAgbW9kdWxlUmVzb2x1dGlvbjogVHlwZVNjcmlwdE1vZHVsZVJlc29sdXRpb24uTk9ERV9ORVhULFxuICAgICAgICBsaWI6IFtcImVzMjAyMlwiXSxcbiAgICAgICAgZGVjbGFyYXRpb246IHRydWUsXG4gICAgICAgIHN0cmljdDogdHJ1ZSxcbiAgICAgICAgbm9JbXBsaWNpdEFueTogdHJ1ZSxcbiAgICAgICAgc3RyaWN0TnVsbENoZWNrczogdHJ1ZSxcbiAgICAgICAgbm9JbXBsaWNpdFRoaXM6IHRydWUsXG4gICAgICAgIGFsd2F5c1N0cmljdDogdHJ1ZSxcbiAgICAgICAgbm9VbnVzZWRMb2NhbHM6IGZhbHNlLFxuICAgICAgICBub1VudXNlZFBhcmFtZXRlcnM6IGZhbHNlLFxuICAgICAgICBub0ltcGxpY2l0UmV0dXJuczogdHJ1ZSxcbiAgICAgICAgbm9GYWxsdGhyb3VnaENhc2VzSW5Td2l0Y2g6IGZhbHNlLFxuICAgICAgICBpbmxpbmVTb3VyY2VNYXA6IHRydWUsXG4gICAgICAgIGlubGluZVNvdXJjZXM6IHRydWUsXG4gICAgICAgIGV4cGVyaW1lbnRhbERlY29yYXRvcnM6IHRydWUsXG4gICAgICAgIHN0cmljdFByb3BlcnR5SW5pdGlhbGl6YXRpb246IGZhbHNlLFxuICAgICAgICB0eXBlUm9vdHM6IFtcIi4vbm9kZV9tb2R1bGVzL0B0eXBlc1wiXSxcbiAgICAgIH07XG5cbiAgICBsZXQgZmluYWxDb21waWxlck9wdGlvbnMgPSBjZGtEZWZhdWx0Q29tcGlsZXJPcHRpb25zO1xuICAgIGlmIChvcHRpb25zLnRzY29uZmlnPy5jb21waWxlck9wdGlvbnMpIHtcbiAgICAgIC8vIERlZXAgbWVyZ2UgdXNlcidzIGBjb21waWxlck9wdGlvbnNgIG9udG8gQ0RLLXNwZWNpZmljIGRlZmF1bHRzLlxuICAgICAgZmluYWxDb21waWxlck9wdGlvbnMgPSBkZWVwTWVyZ2UoXG4gICAgICAgIFtjZGtEZWZhdWx0Q29tcGlsZXJPcHRpb25zLCBvcHRpb25zLnRzY29uZmlnLmNvbXBpbGVyT3B0aW9uc10sXG4gICAgICAgIHsgZGVzdHJ1Y3RpdmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQ0RLIGRlZmF1bHQgZXhjbHVkZVxuICAgIGNvbnN0IGNka0RlZmF1bHRFeGNsdWRlID0gW1wibm9kZV9tb2R1bGVzXCIsIFwiY2RrLm91dFwiXTtcbiAgICBsZXQgZmluYWxFeGNsdWRlID0gY2RrRGVmYXVsdEV4Y2x1ZGU7XG4gICAgaWYgKG9wdGlvbnMudHNjb25maWc/LmV4Y2x1ZGUpIHtcbiAgICAgIC8vIE1lcmdlIGFuZCBkZWR1cGxpY2F0ZSB1c2VyJ3MgYGV4Y2x1ZGVgIHdpdGggQ0RLLXNwZWNpZmljIGRlZmF1bHRzLlxuICAgICAgZmluYWxFeGNsdWRlID0gW1xuICAgICAgICAuLi5uZXcgU2V0KFsuLi5jZGtEZWZhdWx0RXhjbHVkZSwgLi4ub3B0aW9ucy50c2NvbmZpZy5leGNsdWRlXSksXG4gICAgICBdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBmaW5hbCBgdHNjb25maWdgIG9iamVjdCBwYXNzZWQgdG8gdGhlIHN1cGVyY2xhc3MuXG4gICAgICogSXQgaW5jb3Jwb3JhdGVzIEFXUyBDREsgZGVmYXVsdHMgKGRlcml2ZWQgZnJvbSBgY2RrRGVmYXVsdENvbXBpbGVyT3B0aW9uc2AgYW5kIGBjZGtEZWZhdWx0RXhjbHVkZWAgYWJvdmUpXG4gICAgICogYW5kIGFueSB1c2VyLXByb3ZpZGVkIG92ZXJyaWRlcy4gVGhlIGFpbSBpcyB0byBhbGlnbiB3aXRoIHRoZSBzdGFuZGFyZCBDREsgYHRzY29uZmlnLmpzb25gOlxuICAgICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrLWNsaS9ibG9iL21haW4vcGFja2FnZXMvYXdzLWNkay9saWIvaW5pdC10ZW1wbGF0ZXMvYXBwL3R5cGVzY3JpcHQvdHNjb25maWcuanNvblxuICAgICAqL1xuICAgIGNvbnN0IHRzY29uZmlnVG9TdXBlcjogVHlwZXNjcmlwdENvbmZpZ09wdGlvbnMgPSB7XG4gICAgICAuLi5vcHRpb25zLnRzY29uZmlnLCAvLyBQYXNzIHRocm91Z2ggYW55IG90aGVyIHRvcC1sZXZlbCB0c2NvbmZpZyBvcHRpb25zIGZyb20gdXNlclxuICAgICAgY29tcGlsZXJPcHRpb25zOiBmaW5hbENvbXBpbGVyT3B0aW9ucyxcbiAgICAgIGV4Y2x1ZGU6IGZpbmFsRXhjbHVkZSxcbiAgICB9O1xuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuICAgICAgYnVuZGxlck9wdGlvbnM6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5idW5kbGVyT3B0aW9ucyxcbiAgICAgICAgLy8gd2UgaW52b2tlIHRoZSBcImJ1bmRsZVwiIHRhc2sgYXMgcGFydCBvZiB0aGUgYnVpbGQgc3RlcCBpbiBjZGsuanNvbiBzb1xuICAgICAgICAvLyB3ZSBkb24ndCB3YW50IGl0IHRvIGJlIGFkZGVkIHRvIHRoZSBwcmUtY29tcGlsZSBwaGFzZS5cbiAgICAgICAgcnVuQnVuZGxlVGFzazogUnVuQnVuZGxlVGFzay5NQU5VQUwsXG4gICAgICB9LFxuICAgICAgdHNjb25maWc6IHRzY29uZmlnVG9TdXBlcixcbiAgICB9KTtcbiAgICB0aGlzLmNka0RlcHMgPSBuZXcgQXdzQ2RrRGVwc0pzKHRoaXMsIHtcbiAgICAgIGRlcGVuZGVuY3lUeXBlOiBEZXBlbmRlbmN5VHlwZS5SVU5USU1FLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgICB0aGlzLmFwcEVudHJ5cG9pbnQgPSBvcHRpb25zLmFwcEVudHJ5cG9pbnQgPz8gXCJtYWluLnRzXCI7XG5cbiAgICAvLyBDTElcbiAgICB0aGlzLmFkZERldkRlcHMoYGF3cy1jZGtAJHt0aGlzLmNka0RlcHMuY2RrQ2xpVmVyc2lvbn1gKTtcblxuICAgIC8vIG5vIGNvbXBpbGUgc3RlcCBiZWNhdXNlIHdlIGRvIGFsbCBvZiBpdCBpbiB0eXBlc2NyaXB0IGRpcmVjdGx5XG4gICAgdGhpcy5jb21waWxlVGFzay5yZXNldCgpO1xuXG4gICAgdGhpcy5jZGtUYXNrcyA9IG5ldyBDZGtUYXNrcyh0aGlzKTtcblxuICAgIC8vIGFkZCBzeW50aCB0byB0aGUgYnVpbGRcbiAgICB0aGlzLnBvc3RDb21waWxlVGFzay5zcGF3bih0aGlzLmNka1Rhc2tzLnN5bnRoU2lsZW50KTtcblxuICAgIGNvbnN0IHRzQ29uZmlnRmlsZSA9IHRoaXMudHNjb25maWc/LmZpbGVOYW1lO1xuICAgIGlmICghdHNDb25maWdGaWxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RpbmcgdHNjb25maWcuanNvblwiKTtcbiAgICB9XG5cbiAgICB0aGlzLmNka0NvbmZpZyA9IG5ldyBDZGtDb25maWcodGhpcywge1xuICAgICAgYnVpbGRDb21tYW5kOiB0aGlzLnJ1blRhc2tDb21tYW5kKHRoaXMuYnVuZGxlci5idW5kbGVUYXNrKSxcbiAgICAgIHdhdGNoSW5jbHVkZXM6IFtgJHt0aGlzLnNyY2Rpcn0vKiovKi50c2AsIGAke3RoaXMudGVzdGRpcn0vKiovKi50c2BdLFxuICAgICAgd2F0Y2hFeGNsdWRlczogW1xuICAgICAgICBcIlJFQURNRS5tZFwiLFxuICAgICAgICBcImNkayouanNvblwiLFxuICAgICAgICBcIioqLyouZC50c1wiLFxuICAgICAgICBcIioqLyouanNcIixcbiAgICAgICAgXCJ0c2NvbmZpZy5qc29uXCIsXG4gICAgICAgIFwicGFja2FnZSouanNvblwiLFxuICAgICAgICBcInlhcm4ubG9ja1wiLFxuICAgICAgICBcIm5vZGVfbW9kdWxlc1wiLFxuICAgICAgXSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBhcHA6IHRoaXMuZ2V0Q2RrQXBwKG9wdGlvbnMpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5naXRpZ25vcmUuZXhjbHVkZShcIi5wYXJjZWwtY2FjaGUvXCIpO1xuXG4gICAgdGhpcy5ucG1pZ25vcmU/LmV4Y2x1ZGUoYCR7dGhpcy5jZGtDb25maWcuY2Rrb3V0fS9gKTtcbiAgICB0aGlzLm5wbWlnbm9yZT8uZXhjbHVkZShcIi5jZGsuc3RhZ2luZy9cIik7XG5cbiAgICBpZiAodGhpcy50c2NvbmZpZykge1xuICAgICAgdGhpcy50c2NvbmZpZy5leGNsdWRlLnB1c2godGhpcy5jZGtDb25maWcuY2Rrb3V0KTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZERldkRlcHMoXCJ0cy1ub2RlXCIpO1xuICAgIGlmIChvcHRpb25zLnNhbXBsZUNvZGUgPz8gdHJ1ZSkge1xuICAgICAgbmV3IFNhbXBsZUNvZGUodGhpcyk7XG4gICAgfVxuXG4gICAgbmV3IEF1dG9EaXNjb3Zlcih0aGlzLCB7XG4gICAgICBzcmNkaXI6IHRoaXMuc3JjZGlyLFxuICAgICAgdGVzdGRpcjogdGhpcy50ZXN0ZGlyLFxuICAgICAgbGFtYmRhT3B0aW9uczogb3B0aW9ucy5sYW1iZGFPcHRpb25zLFxuICAgICAgdHNjb25maWdQYXRoOiB0aGlzLnRzY29uZmlnRGV2LmZpbGVOYW1lLFxuICAgICAgY2RrRGVwczogdGhpcy5jZGtEZXBzLFxuICAgICAgbGFtYmRhQXV0b0Rpc2NvdmVyOiBvcHRpb25zLmxhbWJkYUF1dG9EaXNjb3ZlciA/PyB0cnVlLFxuICAgICAgZWRnZUxhbWJkYUF1dG9EaXNjb3Zlcjogb3B0aW9ucy5lZGdlTGFtYmRhQXV0b0Rpc2NvdmVyID8/IHRydWUsXG4gICAgICBzaW5nbGV0b25MYW1iZGFBdXRvRGlzY292ZXI6IG9wdGlvbnMuc2luZ2xldG9uTGFtYmRhQXV0b0Rpc2NvdmVyID8/IHRydWUsXG4gICAgICBsYW1iZGFFeHRlbnNpb25BdXRvRGlzY292ZXI6IG9wdGlvbnMubGFtYmRhRXh0ZW5zaW9uQXV0b0Rpc2NvdmVyID8/IHRydWUsXG4gICAgICBpbnRlZ3JhdGlvblRlc3RBdXRvRGlzY292ZXI6IG9wdGlvbnMuaW50ZWdyYXRpb25UZXN0QXV0b0Rpc2NvdmVyID8/IHRydWUsXG4gICAgfSk7XG5cbiAgICBpZiAob3B0aW9ucy5leHBlcmltZW50YWxJbnRlZ1J1bm5lcikge1xuICAgICAgbmV3IEludGVnUnVubmVyKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2RrQXBwKG9wdGlvbnM6IEF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zKTogc3RyaW5nIHtcbiAgICBpZiAob3B0aW9ucy5hcHAgJiYgb3B0aW9ucy5hcHBFbnRyeXBvaW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPbmx5IG9uZSBvZiAnYXBwJyBvciAnYXBwRW50cnlwb2ludCcgY2FuIGJlIHNwZWNpZmllZFwiKTtcbiAgICB9XG5cbiAgICAvLyBwcmVmZXIgYW4gZXhwbGljaXRseSBwcm92aWRlZCBhcHAgY29tbWFuZFxuICAgIGlmIChvcHRpb25zLmFwcCkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuYXBwO1xuICAgIH1cblxuICAgIGNvbnN0IGFwcEVudHJ5cG9pbnQgPSBwYXRoLnBvc2l4LmpvaW4odGhpcy5zcmNkaXIsIHRoaXMuYXBwRW50cnlwb2ludCk7XG5cbiAgICBjb25zdCB0c05vZGVDb25maWcgPSB0aGlzLnRzY29uZmlnPy5maWxlTmFtZVxuICAgICAgPyBgIC1QICR7dGhpcy50c2NvbmZpZz8uZmlsZU5hbWV9YFxuICAgICAgOiBcIlwiO1xuICAgIGNvbnN0IHRzTm9kZUFwcCA9IGB0cy1ub2RlJHt0c05vZGVDb25maWd9IC0tcHJlZmVyLXRzLWV4dHMgJHthcHBFbnRyeXBvaW50fWA7XG5cbiAgICBzd2l0Y2ggKHRoaXMucGFja2FnZS5wYWNrYWdlTWFuYWdlcikge1xuICAgICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuQlVOOlxuICAgICAgICBjb25zdCBidW5Uc0NvbmZpZyA9IHRoaXMudHNjb25maWc/LmZpbGVOYW1lXG4gICAgICAgICAgPyBgIC0tdHNjb25maWctb3ZlcnJpZGU9JHt0aGlzLnRzY29uZmlnPy5maWxlTmFtZX1gXG4gICAgICAgICAgOiBcIlwiO1xuICAgICAgICBjb25zdCBidW5FbnRyeXBvaW50ID0gZW5zdXJlUmVsYXRpdmVQYXRoUHJlZml4KGFwcEVudHJ5cG9pbnQpO1xuXG4gICAgICAgIC8vIGh0dHBzOi8vYnVuLnNoL2RvY3MvY2xpL3J1blxuICAgICAgICAvLyBidW4gY2FuIHJ1biB0cyBmaWxlcyBkaXJlY3RseVxuICAgICAgICByZXR1cm4gYGJ1biBydW4ke2J1blRzQ29uZmlnfSAke2J1bkVudHJ5cG9pbnR9YDtcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE06XG4gICAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOX0NMQVNTSUM6XG4gICAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOOlxuICAgICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTl9CRVJSWTpcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk4yOlxuICAgICAgICAvLyB1c2UgbnB4IHdpdGggYWxzbyBmb3IgeWFybiAmIHBucG0gZHVlIHRvIHJlcG9ydGVkIGlzc3Vlc1xuICAgICAgICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9qZW4vcHJvamVuL2lzc3Vlcy80MTgwXG4gICAgICAgIHJldHVybiBgbnB4ICR7dHNOb2RlQXBwfWA7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gYG5weCAke3RzTm9kZUFwcH1gO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEVuc3VyZXMgYSBwYXRoIGlzIHByb3Blcmx5IHByZWZpeGVkIHdpdGggJy4vJyBpZiBpdCdzIGEgcmVsYXRpdmUgcGF0aFxuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVQYXRoIC0gVGhlIHBhdGggdG8gbm9ybWFsaXplXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBub3JtYWxpemVkIHBhdGhcbiAqL1xuZnVuY3Rpb24gZW5zdXJlUmVsYXRpdmVQYXRoUHJlZml4KGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgLy8gSWYgaXQncyBhbHJlYWR5IGFuIGFic29sdXRlIHBhdGgsIHJldHVybiBhcyBpc1xuICBpZiAocGF0aC5pc0Fic29sdXRlKGZpbGVQYXRoKSkge1xuICAgIHJldHVybiBmaWxlUGF0aDtcbiAgfVxuXG4gIC8vIElmIGl0IGFscmVhZHkgc3RhcnRzIHdpdGggLi8gb3IgLi4vLCByZXR1cm4gYXMgaXNcbiAgaWYgKGZpbGVQYXRoLnN0YXJ0c1dpdGgoXCIuL1wiKSB8fCBmaWxlUGF0aC5zdGFydHNXaXRoKFwiLi4vXCIpKSB7XG4gICAgcmV0dXJuIGZpbGVQYXRoO1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCBhZGQgLi8gcHJlZml4XG4gIHJldHVybiBgLi8ke2ZpbGVQYXRofWA7XG59XG5cbmNsYXNzIFNhbXBsZUNvZGUgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcFByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHA7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuICAgIHRoaXMuYXBwUHJvamVjdCA9IHByb2plY3Q7XG4gIH1cblxuICBwdWJsaWMgc3ludGhlc2l6ZSgpIHtcbiAgICBjb25zdCBvdXRkaXIgPSB0aGlzLnByb2plY3Qub3V0ZGlyO1xuICAgIGNvbnN0IHNyY2RpciA9IHBhdGguam9pbihvdXRkaXIsIHRoaXMuYXBwUHJvamVjdC5zcmNkaXIpO1xuICAgIGlmIChcbiAgICAgIGZzLmV4aXN0c1N5bmMoc3JjZGlyKSAmJlxuICAgICAgZnMucmVhZGRpclN5bmMoc3JjZGlyKS5maWx0ZXIoKHgpID0+IHguZW5kc1dpdGgoXCIudHNcIikpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3JjSW1wb3J0cyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgc3JjSW1wb3J0cy5wdXNoKFwiaW1wb3J0IHsgQXBwLCBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliJztcIik7XG4gICAgc3JjSW1wb3J0cy5wdXNoKFwiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XCIpO1xuXG4gICAgY29uc3Qgc3JjQ29kZSA9IGAke3NyY0ltcG9ydHMuam9pbihcIlxcblwiKX1cblxuZXhwb3J0IGNsYXNzIE15U3RhY2sgZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFja1Byb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIC8vIGRlZmluZSByZXNvdXJjZXMgaGVyZS4uLlxuICB9XG59XG5cbi8vIGZvciBkZXZlbG9wbWVudCwgdXNlIGFjY291bnQvcmVnaW9uIGZyb20gY2RrIGNsaVxuY29uc3QgZGV2RW52ID0ge1xuICBhY2NvdW50OiBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9BQ0NPVU5ULFxuICByZWdpb246IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTixcbn07XG5cbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcblxubmV3IE15U3RhY2soYXBwLCAnJHt0aGlzLnByb2plY3QubmFtZX0tZGV2JywgeyBlbnY6IGRldkVudiB9KTtcbi8vIG5ldyBNeVN0YWNrKGFwcCwgJyR7dGhpcy5wcm9qZWN0Lm5hbWV9LXByb2QnLCB7IGVudjogcHJvZEVudiB9KTtcblxuYXBwLnN5bnRoKCk7YDtcblxuICAgIGZzLm1rZGlyU3luYyhzcmNkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKHNyY2RpciwgdGhpcy5hcHBQcm9qZWN0LmFwcEVudHJ5cG9pbnQpLCBzcmNDb2RlKTtcblxuICAgIGNvbnN0IHRlc3RkaXIgPSBwYXRoLmpvaW4ob3V0ZGlyLCB0aGlzLmFwcFByb2plY3QudGVzdGRpcik7XG4gICAgaWYgKFxuICAgICAgZnMuZXhpc3RzU3luYyh0ZXN0ZGlyKSAmJlxuICAgICAgZnMucmVhZGRpclN5bmModGVzdGRpcikuZmlsdGVyKCh4KSA9PiB4LmVuZHNXaXRoKFwiLnRzXCIpKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRlc3RJbXBvcnRzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICB0ZXN0SW1wb3J0cy5wdXNoKFwiaW1wb3J0IHsgQXBwIH0gZnJvbSAnYXdzLWNkay1saWInO1wiKTtcbiAgICB0ZXN0SW1wb3J0cy5wdXNoKFwiaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hc3NlcnRpb25zJztcIik7XG5cbiAgICBjb25zdCBhcHBFbnRyeXBvaW50TmFtZSA9IHBhdGguYmFzZW5hbWUoXG4gICAgICB0aGlzLmFwcFByb2plY3QuYXBwRW50cnlwb2ludCxcbiAgICAgIFwiLnRzXCIsXG4gICAgKTtcbiAgICBjb25zdCB0ZXN0Q29kZSA9IGAke3Rlc3RJbXBvcnRzLmpvaW4oXCJcXG5cIil9XG5pbXBvcnQgeyBNeVN0YWNrIH0gZnJvbSAnLi4vJHt0aGlzLmFwcFByb2plY3Quc3JjZGlyfS8ke2FwcEVudHJ5cG9pbnROYW1lfSc7XG5cbnRlc3QoJ1NuYXBzaG90JywgKCkgPT4ge1xuICBjb25zdCBhcHAgPSBuZXcgQXBwKCk7XG4gIGNvbnN0IHN0YWNrID0gbmV3IE15U3RhY2soYXBwLCAndGVzdCcpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgZXhwZWN0KHRlbXBsYXRlLnRvSlNPTigpKS50b01hdGNoU25hcHNob3QoKTtcbn0pO2A7XG5cbiAgICBmcy5ta2RpclN5bmModGVzdGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgZnMud3JpdGVGaWxlU3luYyhcbiAgICAgIHBhdGguam9pbih0ZXN0ZGlyLCBgJHthcHBFbnRyeXBvaW50TmFtZX0udGVzdC50c2ApLFxuICAgICAgdGVzdENvZGUsXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
309
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2RrLWFwcC10cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXdzY2RrLWFwcC10cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3Qiw0Q0FBeUM7QUFDekMsa0RBQWlEO0FBRWpELDhDQUl1QjtBQUV2Qiw4Q0FBcUQ7QUFDckQsa0NBQW9DO0FBQ3BDLG1EQUErQztBQUUvQyxxREFBZ0Q7QUFFaEQsNkNBQXlDO0FBQ3pDLDJDQUF1QztBQUN2QyxpREFBNkM7QUFnRjdDOzs7O0dBSUc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLGlDQUFvQjs7SUFDM0Q7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDYSxhQUFhLENBQVM7SUFFdEM7O09BRUc7SUFDYSxRQUFRLENBQVc7SUFFbkM7O09BRUc7SUFDYSxTQUFTLENBQVk7SUFFckIsT0FBTyxDQUFhO0lBRXBDLFlBQVksT0FBbUM7UUFDN0MsK0JBQStCO1FBQy9CLE1BQU0seUJBQXlCLEdBQzdCO1lBQ0UsTUFBTSxFQUFFLFFBQVE7WUFDaEIsTUFBTSxFQUFFLFVBQVU7WUFDbEIsZ0JBQWdCLEVBQUUsdUNBQTBCLENBQUMsU0FBUztZQUN0RCxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFDZixXQUFXLEVBQUUsSUFBSTtZQUNqQixNQUFNLEVBQUUsSUFBSTtZQUNaLGFBQWEsRUFBRSxJQUFJO1lBQ25CLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsY0FBYyxFQUFFLElBQUk7WUFDcEIsWUFBWSxFQUFFLElBQUk7WUFDbEIsY0FBYyxFQUFFLEtBQUs7WUFDckIsa0JBQWtCLEVBQUUsS0FBSztZQUN6QixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLDBC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QUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUN0RCxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQ3hDLFdBQVcsQ0FBQyxJQUFJLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUN2RCxXQUFXLENBQUMsSUFBSSxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFFdkUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0IsS0FBSyxDQUNOLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzhCQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxpQkFBaUI7Ozs7Ozs7O0lBUXJFLENBQUM7UUFFRCxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLEVBQUUsQ0FBQyxhQUFhLENBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxpQkFBaUIsVUFBVSxDQUFDLEVBQ2xELFFBQVEsQ0FDVCxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEZXBlbmRlbmN5VHlwZSB9IGZyb20gXCIuLi9kZXBlbmRlbmNpZXNcIjtcbmltcG9ydCB0eXBlIHsgVHlwZXNjcmlwdENvbmZpZ09wdGlvbnMgfSBmcm9tIFwiLi4vamF2YXNjcmlwdFwiO1xuaW1wb3J0IHtcbiAgTm9kZVBhY2thZ2VNYW5hZ2VyLFxuICBSdW5CdW5kbGVUYXNrLFxuICBUeXBlU2NyaXB0TW9kdWxlUmVzb2x1dGlvbixcbn0gZnJvbSBcIi4uL2phdmFzY3JpcHRcIjtcbmltcG9ydCB0eXBlIHsgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzY3JpcHRcIjtcbmltcG9ydCB7IFR5cGVTY3JpcHRBcHBQcm9qZWN0IH0gZnJvbSBcIi4uL3R5cGVzY3JpcHRcIjtcbmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gXCIuLi91dGlsXCI7XG5pbXBvcnQgeyBBdXRvRGlzY292ZXIgfSBmcm9tIFwiLi9hdXRvLWRpc2NvdmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF3c0Nka0RlcHMsIEF3c0Nka0RlcHNDb21tb25PcHRpb25zIH0gZnJvbSBcIi4vYXdzY2RrLWRlcHNcIjtcbmltcG9ydCB7IEF3c0Nka0RlcHNKcyB9IGZyb20gXCIuL2F3c2Nkay1kZXBzLWpzXCI7XG5pbXBvcnQgdHlwZSB7IENka0NvbmZpZ0NvbW1vbk9wdGlvbnMgfSBmcm9tIFwiLi9jZGstY29uZmlnXCI7XG5pbXBvcnQgeyBDZGtDb25maWcgfSBmcm9tIFwiLi9jZGstY29uZmlnXCI7XG5pbXBvcnQgeyBDZGtUYXNrcyB9IGZyb20gXCIuL2Nkay10YXNrc1wiO1xuaW1wb3J0IHsgSW50ZWdSdW5uZXIgfSBmcm9tIFwiLi9pbnRlZy1ydW5uZXJcIjtcbmltcG9ydCB0eXBlIHsgTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zIH0gZnJvbSBcIi4vbGFtYmRhLWZ1bmN0aW9uXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnNcbiAgZXh0ZW5kc1xuICAgIFR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyxcbiAgICBDZGtDb25maWdDb21tb25PcHRpb25zLFxuICAgIEF3c0Nka0RlcHNDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBDREsgYXBwJ3MgZW50cnlwb2ludCAocmVsYXRpdmUgdG8gdGhlIHNvdXJjZSBkaXJlY3RvcnksIHdoaWNoIGlzXG4gICAqIFwic3JjXCIgYnkgZGVmYXVsdCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibWFpbi50c1wiXG4gICAqL1xuICByZWFkb25seSBhcHBFbnRyeXBvaW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvbW1hbmQgbGluZSB0byBleGVjdXRlIGluIG9yZGVyIHRvIHN5bnRoZXNpemUgdGhlIENESyBhcHBsaWNhdGlvblxuICAgKiAobGFuZ3VhZ2Ugc3BlY2lmaWMpLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwPzogc3RyaW5nO1xuICAvKipcbiAgICogQXV0b21hdGljYWxseSBhZGRzIGFuIGBhd3NjZGsuTGFtYmRhRnVuY3Rpb25gIGZvciBlYWNoIGAubGFtYmRhLnRzYCBoYW5kbGVyXG4gICAqIGluIHlvdXIgc291cmNlIHRyZWUuIElmIHRoaXMgaXMgZGlzYWJsZWQsIHlvdSBjYW4gbWFudWFsbHkgYWRkIGFuXG4gICAqIGBhd3NjZGsuQXV0b0Rpc2NvdmVyYCBjb21wb25lbnQgdG8geW91ciBwcm9qZWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFBdXRvRGlzY292ZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGFkZHMgYW4gYGNsb3VkZnJvbnQuZXhwZXJpbWVudGFsLkVkZ2VGdW5jdGlvbmAgZm9yIGVhY2hcbiAgICogYC5lZGdlLWxhbWJkYS50c2AgaGFuZGxlciBpbiB5b3VyIHNvdXJjZSB0cmVlLiBJZiB0aGlzIGlzIGRpc2FibGVkLCB5b3UgY2FuXG4gICAqIG1hbnVhbGx5IGFkZCBhbiBgYXdzY2RrLkF1dG9EaXNjb3ZlcmAgY29tcG9uZW50IHRvIHlvdXIgcHJvamVjdC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZWRnZUxhbWJkYUF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgYWRkcyBhbiBgYXdzY2RrLlNpbmdsZXRvbkZ1bmN0aW9uYCBmb3IgZWFjaFxuICAgKiBgLnNpbmdsZXRvbi1sYW1iZGEudHNgIGhhbmRsZXIgaW4geW91ciBzb3VyY2UgdHJlZS4gSWYgdGhpcyBpcyBkaXNhYmxlZCwgeW91IGNhblxuICAgKiBtYW51YWxseSBhZGQgYW4gYGF3c2Nkay5BdXRvRGlzY292ZXJgIGNvbXBvbmVudCB0byB5b3VyIHByb2plY3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNpbmdsZXRvbkxhbWJkYUF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgYWRkcyBhbiBgYXdzY2RrLkxhbWJkYUV4dGVuc2lvbmAgZm9yIGVhY2ggYC5sYW1iZGEtZXh0ZW5zaW9uLnRzYFxuICAgKiBlbnRyeXBvaW50IGluIHlvdXIgc291cmNlIHRyZWUuIElmIHRoaXMgaXMgZGlzYWJsZWQsIHlvdSBjYW4gbWFudWFsbHkgYWRkIGFuXG4gICAqIGBhd3NjZGsuQXV0b0Rpc2NvdmVyYCBjb21wb25lbnQgdG8geW91ciBwcm9qZWN0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYUV4dGVuc2lvbkF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgZGlzY292ZXJzIGFuZCBjcmVhdGVzIGludGVncmF0aW9uIHRlc3RzIGZvciBlYWNoIGAuaW50ZWcudHNgXG4gICAqIGZpbGUgaW4gdW5kZXIgeW91ciB0ZXN0IGRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZWdyYXRpb25UZXN0QXV0b0Rpc2NvdmVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciB0aGUgQVdTIENESyBpbnRlZy1ydW5uZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGV4cGVyaW1lbnRhbEludGVnUnVubmVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29tbW9uIG9wdGlvbnMgZm9yIGFsbCBBV1MgTGFtYmRhIGZ1bmN0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IG9wdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYU9wdGlvbnM/OiBMYW1iZGFGdW5jdGlvbkNvbW1vbk9wdGlvbnM7XG59XG5cbi8qKlxuICogQVdTIENESyBhcHAgaW4gVHlwZVNjcmlwdFxuICpcbiAqIEBwamlkIGF3c2Nkay1hcHAtdHNcbiAqL1xuZXhwb3J0IGNsYXNzIEF3c0Nka1R5cGVTY3JpcHRBcHAgZXh0ZW5kcyBUeXBlU2NyaXB0QXBwUHJvamVjdCB7XG4gIC8qKlxuICAgKiBUaGUgQ0RLIHZlcnNpb24gdGhpcyBhcHAgaXMgdXNpbmcuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNka1ZlcnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY2RrRGVwcy5jZGtWZXJzaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBDREsgYXBwIGVudHJ5cG9pbnRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhcHBFbnRyeXBvaW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbW1vbiBDREsgdGFza3MuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrVGFza3M6IENka1Rhc2tzO1xuXG4gIC8qKlxuICAgKiBjZGsuanNvbiBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka0NvbmZpZzogQ2RrQ29uZmlnO1xuXG4gIHB1YmxpYyByZWFkb25seSBjZGtEZXBzOiBBd3NDZGtEZXBzO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zKSB7XG4gICAgLy8gQ0RLIGRlZmF1bHQgY29tcGlsZXIgb3B0aW9uc1xuICAgIGNvbnN0IGNka0RlZmF1bHRDb21waWxlck9wdGlvbnM6IFR5cGVzY3JpcHRDb25maWdPcHRpb25zW1wiY29tcGlsZXJPcHRpb25zXCJdID1cbiAgICAgIHtcbiAgICAgICAgdGFyZ2V0OiBcIkVTMjAyMlwiLFxuICAgICAgICBtb2R1bGU6IFwiTm9kZU5leHRcIixcbiAgICAgICAgbW9kdWxlUmVzb2x1dGlvbjogVHlwZVNjcmlwdE1vZHVsZVJlc29sdXRpb24uTk9ERV9ORVhULFxuICAgICAgICBsaWI6IFtcImVzMjAyMlwiXSxcbiAgICAgICAgZGVjbGFyYXRpb246IHRydWUsXG4gICAgICAgIHN0cmljdDogdHJ1ZSxcbiAgICAgICAgbm9JbXBsaWNpdEFueTogdHJ1ZSxcbiAgICAgICAgc3RyaWN0TnVsbENoZWNrczogdHJ1ZSxcbiAgICAgICAgbm9JbXBsaWNpdFRoaXM6IHRydWUsXG4gICAgICAgIGFsd2F5c1N0cmljdDogdHJ1ZSxcbiAgICAgICAgbm9VbnVzZWRMb2NhbHM6IGZhbHNlLFxuICAgICAgICBub1VudXNlZFBhcmFtZXRlcnM6IGZhbHNlLFxuICAgICAgICBub0ltcGxpY2l0UmV0dXJuczogdHJ1ZSxcbiAgICAgICAgbm9GYWxsdGhyb3VnaENhc2VzSW5Td2l0Y2g6IGZhbHNlLFxuICAgICAgICBpbmxpbmVTb3VyY2VNYXA6IHRydWUsXG4gICAgICAgIGlubGluZVNvdXJjZXM6IHRydWUsXG4gICAgICAgIGV4cGVyaW1lbnRhbERlY29yYXRvcnM6IHRydWUsXG4gICAgICAgIHN0cmljdFByb3BlcnR5SW5pdGlhbGl6YXRpb246IGZhbHNlLFxuICAgICAgICB0eXBlUm9vdHM6IFtcIi4vbm9kZV9tb2R1bGVzL0B0eXBlc1wiXSxcbiAgICAgIH07XG5cbiAgICBsZXQgZmluYWxDb21waWxlck9wdGlvbnMgPSBjZGtEZWZhdWx0Q29tcGlsZXJPcHRpb25zO1xuICAgIGlmIChvcHRpb25zLnRzY29uZmlnPy5jb21waWxlck9wdGlvbnMpIHtcbiAgICAgIC8vIERlZXAgbWVyZ2UgdXNlcidzIGBjb21waWxlck9wdGlvbnNgIG9udG8gQ0RLLXNwZWNpZmljIGRlZmF1bHRzLlxuICAgICAgZmluYWxDb21waWxlck9wdGlvbnMgPSBkZWVwTWVyZ2UoXG4gICAgICAgIFtjZGtEZWZhdWx0Q29tcGlsZXJPcHRpb25zLCBvcHRpb25zLnRzY29uZmlnLmNvbXBpbGVyT3B0aW9uc10sXG4gICAgICAgIHsgZGVzdHJ1Y3RpdmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQ0RLIGRlZmF1bHQgZXhjbHVkZVxuICAgIGNvbnN0IGNka0RlZmF1bHRFeGNsdWRlID0gW1wibm9kZV9tb2R1bGVzXCIsIFwiY2RrLm91dFwiXTtcbiAgICBsZXQgZmluYWxFeGNsdWRlID0gY2RrRGVmYXVsdEV4Y2x1ZGU7XG4gICAgaWYgKG9wdGlvbnMudHNjb25maWc/LmV4Y2x1ZGUpIHtcbiAgICAgIC8vIE1lcmdlIGFuZCBkZWR1cGxpY2F0ZSB1c2VyJ3MgYGV4Y2x1ZGVgIHdpdGggQ0RLLXNwZWNpZmljIGRlZmF1bHRzLlxuICAgICAgZmluYWxFeGNsdWRlID0gW1xuICAgICAgICAuLi5uZXcgU2V0KFsuLi5jZGtEZWZhdWx0RXhjbHVkZSwgLi4ub3B0aW9ucy50c2NvbmZpZy5leGNsdWRlXSksXG4gICAgICBdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBmaW5hbCBgdHNjb25maWdgIG9iamVjdCBwYXNzZWQgdG8gdGhlIHN1cGVyY2xhc3MuXG4gICAgICogSXQgaW5jb3Jwb3JhdGVzIEFXUyBDREsgZGVmYXVsdHMgKGRlcml2ZWQgZnJvbSBgY2RrRGVmYXVsdENvbXBpbGVyT3B0aW9uc2AgYW5kIGBjZGtEZWZhdWx0RXhjbHVkZWAgYWJvdmUpXG4gICAgICogYW5kIGFueSB1c2VyLXByb3ZpZGVkIG92ZXJyaWRlcy4gVGhlIGFpbSBpcyB0byBhbGlnbiB3aXRoIHRoZSBzdGFuZGFyZCBDREsgYHRzY29uZmlnLmpzb25gOlxuICAgICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrLWNsaS9ibG9iL21haW4vcGFja2FnZXMvYXdzLWNkay9saWIvaW5pdC10ZW1wbGF0ZXMvYXBwL3R5cGVzY3JpcHQvdHNjb25maWcuanNvblxuICAgICAqL1xuICAgIGNvbnN0IHRzY29uZmlnVG9TdXBlcjogVHlwZXNjcmlwdENvbmZpZ09wdGlvbnMgPSB7XG4gICAgICAuLi5vcHRpb25zLnRzY29uZmlnLCAvLyBQYXNzIHRocm91Z2ggYW55IG90aGVyIHRvcC1sZXZlbCB0c2NvbmZpZyBvcHRpb25zIGZyb20gdXNlclxuICAgICAgY29tcGlsZXJPcHRpb25zOiBmaW5hbENvbXBpbGVyT3B0aW9ucyxcbiAgICAgIGV4Y2x1ZGU6IGZpbmFsRXhjbHVkZSxcbiAgICB9O1xuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuICAgICAgYnVuZGxlck9wdGlvbnM6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5idW5kbGVyT3B0aW9ucyxcbiAgICAgICAgLy8gd2UgaW52b2tlIHRoZSBcImJ1bmRsZVwiIHRhc2sgYXMgcGFydCBvZiB0aGUgYnVpbGQgc3RlcCBpbiBjZGsuanNvbiBzb1xuICAgICAgICAvLyB3ZSBkb24ndCB3YW50IGl0IHRvIGJlIGFkZGVkIHRvIHRoZSBwcmUtY29tcGlsZSBwaGFzZS5cbiAgICAgICAgcnVuQnVuZGxlVGFzazogUnVuQnVuZGxlVGFzay5NQU5VQUwsXG4gICAgICB9LFxuICAgICAgdHNjb25maWc6IHRzY29uZmlnVG9TdXBlcixcbiAgICB9KTtcbiAgICB0aGlzLmNka0RlcHMgPSBuZXcgQXdzQ2RrRGVwc0pzKHRoaXMsIHtcbiAgICAgIGRlcGVuZGVuY3lUeXBlOiBEZXBlbmRlbmN5VHlwZS5SVU5USU1FLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgICB0aGlzLmFwcEVudHJ5cG9pbnQgPSBvcHRpb25zLmFwcEVudHJ5cG9pbnQgPz8gXCJtYWluLnRzXCI7XG5cbiAgICAvLyBDTElcbiAgICB0aGlzLmFkZERldkRlcHMoYGF3cy1jZGtAJHt0aGlzLmNka0RlcHMuY2RrQ2xpVmVyc2lvbn1gKTtcblxuICAgIC8vIG5vIGNvbXBpbGUgc3RlcCBiZWNhdXNlIHdlIGRvIGFsbCBvZiBpdCBpbiB0eXBlc2NyaXB0IGRpcmVjdGx5XG4gICAgdGhpcy5jb21waWxlVGFzay5yZXNldCgpO1xuXG4gICAgdGhpcy5jZGtUYXNrcyA9IG5ldyBDZGtUYXNrcyh0aGlzKTtcblxuICAgIC8vIGFkZCBzeW50aCB0byB0aGUgYnVpbGRcbiAgICB0aGlzLnBvc3RDb21waWxlVGFzay5zcGF3bih0aGlzLmNka1Rhc2tzLnN5bnRoU2lsZW50KTtcblxuICAgIGNvbnN0IHRzQ29uZmlnRmlsZSA9IHRoaXMudHNjb25maWc/LmZpbGVOYW1lO1xuICAgIGlmICghdHNDb25maWdGaWxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RpbmcgdHNjb25maWcuanNvblwiKTtcbiAgICB9XG5cbiAgICB0aGlzLmNka0NvbmZpZyA9IG5ldyBDZGtDb25maWcodGhpcywge1xuICAgICAgYnVpbGRDb21tYW5kOiB0aGlzLnJ1blRhc2tDb21tYW5kKHRoaXMuYnVuZGxlci5idW5kbGVUYXNrKSxcbiAgICAgIHdhdGNoSW5jbHVkZXM6IFtgJHt0aGlzLnNyY2Rpcn0vKiovKi50c2AsIGAke3RoaXMudGVzdGRpcn0vKiovKi50c2BdLFxuICAgICAgd2F0Y2hFeGNsdWRlczogW1xuICAgICAgICBcIlJFQURNRS5tZFwiLFxuICAgICAgICBcImNkayouanNvblwiLFxuICAgICAgICBcIioqLyouZC50c1wiLFxuICAgICAgICBcIioqLyouanNcIixcbiAgICAgICAgXCJ0c2NvbmZpZy5qc29uXCIsXG4gICAgICAgIFwicGFja2FnZSouanNvblwiLFxuICAgICAgICBcInlhcm4ubG9ja1wiLFxuICAgICAgICBcIm5vZGVfbW9kdWxlc1wiLFxuICAgICAgXSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBhcHA6IHRoaXMuZ2V0Q2RrQXBwKG9wdGlvbnMpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5naXRpZ25vcmUuZXhjbHVkZShcIi5wYXJjZWwtY2FjaGUvXCIpO1xuXG4gICAgdGhpcy5ucG1pZ25vcmU/LmV4Y2x1ZGUoYCR7dGhpcy5jZGtDb25maWcuY2Rrb3V0fS9gKTtcbiAgICB0aGlzLm5wbWlnbm9yZT8uZXhjbHVkZShcIi5jZGsuc3RhZ2luZy9cIik7XG5cbiAgICBpZiAodGhpcy50c2NvbmZpZykge1xuICAgICAgdGhpcy50c2NvbmZpZy5leGNsdWRlLnB1c2godGhpcy5jZGtDb25maWcuY2Rrb3V0KTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZERldkRlcHMoXCJ0cy1ub2RlXCIpO1xuICAgIGlmIChvcHRpb25zLnNhbXBsZUNvZGUgPz8gdHJ1ZSkge1xuICAgICAgbmV3IFNhbXBsZUNvZGUodGhpcyk7XG4gICAgfVxuXG4gICAgbmV3IEF1dG9EaXNjb3Zlcih0aGlzLCB7XG4gICAgICBzcmNkaXI6IHRoaXMuc3JjZGlyLFxuICAgICAgdGVzdGRpcjogdGhpcy50ZXN0ZGlyLFxuICAgICAgbGFtYmRhT3B0aW9uczogb3B0aW9ucy5sYW1iZGFPcHRpb25zLFxuICAgICAgdHNjb25maWdQYXRoOiB0aGlzLnRzY29uZmlnRGV2LmZpbGVOYW1lLFxuICAgICAgY2RrRGVwczogdGhpcy5jZGtEZXBzLFxuICAgICAgbGFtYmRhQXV0b0Rpc2NvdmVyOiBvcHRpb25zLmxhbWJkYUF1dG9EaXNjb3ZlciA/PyB0cnVlLFxuICAgICAgZWRnZUxhbWJkYUF1dG9EaXNjb3Zlcjogb3B0aW9ucy5lZGdlTGFtYmRhQXV0b0Rpc2NvdmVyID8/IHRydWUsXG4gICAgICBzaW5nbGV0b25MYW1iZGFBdXRvRGlzY292ZXI6IG9wdGlvbnMuc2luZ2xldG9uTGFtYmRhQXV0b0Rpc2NvdmVyID8/IHRydWUsXG4gICAgICBsYW1iZGFFeHRlbnNpb25BdXRvRGlzY292ZXI6IG9wdGlvbnMubGFtYmRhRXh0ZW5zaW9uQXV0b0Rpc2NvdmVyID8/IHRydWUsXG4gICAgICBpbnRlZ3JhdGlvblRlc3RBdXRvRGlzY292ZXI6IG9wdGlvbnMuaW50ZWdyYXRpb25UZXN0QXV0b0Rpc2NvdmVyID8/IHRydWUsXG4gICAgfSk7XG5cbiAgICBpZiAob3B0aW9ucy5leHBlcmltZW50YWxJbnRlZ1J1bm5lcikge1xuICAgICAgbmV3IEludGVnUnVubmVyKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2RrQXBwKG9wdGlvbnM6IEF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zKTogc3RyaW5nIHtcbiAgICBpZiAob3B0aW9ucy5hcHAgJiYgb3B0aW9ucy5hcHBFbnRyeXBvaW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPbmx5IG9uZSBvZiAnYXBwJyBvciAnYXBwRW50cnlwb2ludCcgY2FuIGJlIHNwZWNpZmllZFwiKTtcbiAgICB9XG5cbiAgICAvLyBwcmVmZXIgYW4gZXhwbGljaXRseSBwcm92aWRlZCBhcHAgY29tbWFuZFxuICAgIGlmIChvcHRpb25zLmFwcCkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuYXBwO1xuICAgIH1cblxuICAgIGNvbnN0IGFwcEVudHJ5cG9pbnQgPSBwYXRoLnBvc2l4LmpvaW4odGhpcy5zcmNkaXIsIHRoaXMuYXBwRW50cnlwb2ludCk7XG5cbiAgICBjb25zdCB0c05vZGVDb25maWcgPSB0aGlzLnRzY29uZmlnPy5maWxlTmFtZVxuICAgICAgPyBgIC1QICR7dGhpcy50c2NvbmZpZz8uZmlsZU5hbWV9YFxuICAgICAgOiBcIlwiO1xuICAgIGNvbnN0IHRzTm9kZUFwcCA9IGB0cy1ub2RlJHt0c05vZGVDb25maWd9IC0tcHJlZmVyLXRzLWV4dHMgJHthcHBFbnRyeXBvaW50fWA7XG5cbiAgICBzd2l0Y2ggKHRoaXMucGFja2FnZS5wYWNrYWdlTWFuYWdlcikge1xuICAgICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuQlVOOlxuICAgICAgICBjb25zdCBidW5Uc0NvbmZpZyA9IHRoaXMudHNjb25maWc/LmZpbGVOYW1lXG4gICAgICAgICAgPyBgIC0tdHNjb25maWctb3ZlcnJpZGU9JHt0aGlzLnRzY29uZmlnPy5maWxlTmFtZX1gXG4gICAgICAgICAgOiBcIlwiO1xuICAgICAgICBjb25zdCBidW5FbnRyeXBvaW50ID0gZW5zdXJlUmVsYXRpdmVQYXRoUHJlZml4KGFwcEVudHJ5cG9pbnQpO1xuXG4gICAgICAgIC8vIGh0dHBzOi8vYnVuLnNoL2RvY3MvY2xpL3J1blxuICAgICAgICAvLyBidW4gY2FuIHJ1biB0cyBmaWxlcyBkaXJlY3RseVxuICAgICAgICByZXR1cm4gYGJ1biBydW4ke2J1blRzQ29uZmlnfSAke2J1bkVudHJ5cG9pbnR9YDtcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE06XG4gICAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOX0NMQVNTSUM6XG4gICAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOOlxuICAgICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTl9CRVJSWTpcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk4yOlxuICAgICAgICAvLyB1c2UgbnB4IHdpdGggYWxzbyBmb3IgeWFybiAmIHBucG0gZHVlIHRvIHJlcG9ydGVkIGlzc3Vlc1xuICAgICAgICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9qZW4vcHJvamVuL2lzc3Vlcy80MTgwXG4gICAgICAgIHJldHVybiBgbnB4ICR7dHNOb2RlQXBwfWA7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gYG5weCAke3RzTm9kZUFwcH1gO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEVuc3VyZXMgYSBwYXRoIGlzIHByb3Blcmx5IHByZWZpeGVkIHdpdGggJy4vJyBpZiBpdCdzIGEgcmVsYXRpdmUgcGF0aFxuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVQYXRoIC0gVGhlIHBhdGggdG8gbm9ybWFsaXplXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBub3JtYWxpemVkIHBhdGhcbiAqL1xuZnVuY3Rpb24gZW5zdXJlUmVsYXRpdmVQYXRoUHJlZml4KGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgLy8gSWYgaXQncyBhbHJlYWR5IGFuIGFic29sdXRlIHBhdGgsIHJldHVybiBhcyBpc1xuICBpZiAocGF0aC5pc0Fic29sdXRlKGZpbGVQYXRoKSkge1xuICAgIHJldHVybiBmaWxlUGF0aDtcbiAgfVxuXG4gIC8vIElmIGl0IGFscmVhZHkgc3RhcnRzIHdpdGggLi8gb3IgLi4vLCByZXR1cm4gYXMgaXNcbiAgaWYgKGZpbGVQYXRoLnN0YXJ0c1dpdGgoXCIuL1wiKSB8fCBmaWxlUGF0aC5zdGFydHNXaXRoKFwiLi4vXCIpKSB7XG4gICAgcmV0dXJuIGZpbGVQYXRoO1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCBhZGQgLi8gcHJlZml4XG4gIHJldHVybiBgLi8ke2ZpbGVQYXRofWA7XG59XG5cbmNsYXNzIFNhbXBsZUNvZGUgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcFByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHA7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuICAgIHRoaXMuYXBwUHJvamVjdCA9IHByb2plY3Q7XG4gIH1cblxuICBwdWJsaWMgc3ludGhlc2l6ZSgpIHtcbiAgICBjb25zdCBvdXRkaXIgPSB0aGlzLnByb2plY3Qub3V0ZGlyO1xuICAgIGNvbnN0IHNyY2RpciA9IHBhdGguam9pbihvdXRkaXIsIHRoaXMuYXBwUHJvamVjdC5zcmNkaXIpO1xuICAgIGlmIChcbiAgICAgIGZzLmV4aXN0c1N5bmMoc3JjZGlyKSAmJlxuICAgICAgZnMucmVhZGRpclN5bmMoc3JjZGlyKS5zb21lKCh4KSA9PiB4LmVuZHNXaXRoKFwiLnRzXCIpKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNyY0ltcG9ydHMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIHNyY0ltcG9ydHMucHVzaChcImltcG9ydCB7IEFwcCwgU3RhY2ssIFN0YWNrUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYic7XCIpO1xuICAgIHNyY0ltcG9ydHMucHVzaChcImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1wiKTtcblxuICAgIGNvbnN0IHNyY0NvZGUgPSBgJHtzcmNJbXBvcnRzLmpvaW4oXCJcXG5cIil9XG5cbmV4cG9ydCBjbGFzcyBNeVN0YWNrIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RhY2tQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvLyBkZWZpbmUgcmVzb3VyY2VzIGhlcmUuLi5cbiAgfVxufVxuXG4vLyBmb3IgZGV2ZWxvcG1lbnQsIHVzZSBhY2NvdW50L3JlZ2lvbiBmcm9tIGNkayBjbGlcbmNvbnN0IGRldkVudiA9IHtcbiAgYWNjb3VudDogcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVCxcbiAgcmVnaW9uOiBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9SRUdJT04sXG59O1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbm5ldyBNeVN0YWNrKGFwcCwgJyR7dGhpcy5wcm9qZWN0Lm5hbWV9LWRldicsIHsgZW52OiBkZXZFbnYgfSk7XG4vLyBuZXcgTXlTdGFjayhhcHAsICcke3RoaXMucHJvamVjdC5uYW1lfS1wcm9kJywgeyBlbnY6IHByb2RFbnYgfSk7XG5cbmFwcC5zeW50aCgpO2A7XG5cbiAgICBmcy5ta2RpclN5bmMoc3JjZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihzcmNkaXIsIHRoaXMuYXBwUHJvamVjdC5hcHBFbnRyeXBvaW50KSwgc3JjQ29kZSk7XG5cbiAgICBjb25zdCB0ZXN0ZGlyID0gcGF0aC5qb2luKG91dGRpciwgdGhpcy5hcHBQcm9qZWN0LnRlc3RkaXIpO1xuICAgIGlmIChcbiAgICAgIGZzLmV4aXN0c1N5bmModGVzdGRpcikgJiZcbiAgICAgIGZzLnJlYWRkaXJTeW5jKHRlc3RkaXIpLnNvbWUoKHgpID0+IHguZW5kc1dpdGgoXCIudHNcIikpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGVzdEltcG9ydHMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIHRlc3RJbXBvcnRzLnB1c2goXCJpbXBvcnQgeyBBcHAgfSBmcm9tICdhd3MtY2RrLWxpYic7XCIpO1xuICAgIHRlc3RJbXBvcnRzLnB1c2goXCJpbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gJ2F3cy1jZGstbGliL2Fzc2VydGlvbnMnO1wiKTtcblxuICAgIGNvbnN0IGFwcEVudHJ5cG9pbnROYW1lID0gcGF0aC5iYXNlbmFtZShcbiAgICAgIHRoaXMuYXBwUHJvamVjdC5hcHBFbnRyeXBvaW50LFxuICAgICAgXCIudHNcIixcbiAgICApO1xuICAgIGNvbnN0IHRlc3RDb2RlID0gYCR7dGVzdEltcG9ydHMuam9pbihcIlxcblwiKX1cbmltcG9ydCB7IE15U3RhY2sgfSBmcm9tICcuLi8ke3RoaXMuYXBwUHJvamVjdC5zcmNkaXJ9LyR7YXBwRW50cnlwb2ludE5hbWV9JztcblxudGVzdCgnU25hcHNob3QnLCAoKSA9PiB7XG4gIGNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgTXlTdGFjayhhcHAsICd0ZXN0Jyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICBleHBlY3QodGVtcGxhdGUudG9KU09OKCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xufSk7YDtcblxuICAgIGZzLm1rZGlyU3luYyh0ZXN0ZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgcGF0aC5qb2luKHRlc3RkaXIsIGAke2FwcEVudHJ5cG9pbnROYW1lfS50ZXN0LnRzYCksXG4gICAgICB0ZXN0Q29kZSxcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -17,7 +17,7 @@ const dependencies_1 = require("../dependencies");
|
|
|
17
17
|
* @pjid awscdk-construct
|
|
18
18
|
*/
|
|
19
19
|
class AwsCdkConstructLibrary extends cdk_1.ConstructLibrary {
|
|
20
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkConstructLibrary", version: "0.100.
|
|
20
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkConstructLibrary", version: "0.100.4" };
|
|
21
21
|
cdkDeps;
|
|
22
22
|
constructor(options) {
|
|
23
23
|
super({
|
|
@@ -7,7 +7,7 @@ const awscdk_deps_1 = require("./awscdk-deps");
|
|
|
7
7
|
* Manages dependencies on the AWS CDK for Java projects.
|
|
8
8
|
*/
|
|
9
9
|
class AwsCdkDepsJava extends awscdk_deps_1.AwsCdkDeps {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDepsJava", version: "0.100.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDepsJava", version: "0.100.4" };
|
|
11
11
|
packageNames() {
|
|
12
12
|
return {
|
|
13
13
|
coreV2: "software.amazon.awscdk/aws-cdk-lib",
|
|
@@ -7,7 +7,7 @@ const awscdk_deps_1 = require("./awscdk-deps");
|
|
|
7
7
|
* Manages dependencies on the AWS CDK for Node.js projects.
|
|
8
8
|
*/
|
|
9
9
|
class AwsCdkDepsJs extends awscdk_deps_1.AwsCdkDeps {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDepsJs", version: "0.100.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDepsJs", version: "0.100.4" };
|
|
11
11
|
packageNames() {
|
|
12
12
|
return {
|
|
13
13
|
coreV2: "aws-cdk-lib",
|
|
@@ -7,7 +7,7 @@ const awscdk_deps_1 = require("./awscdk-deps");
|
|
|
7
7
|
* Manages dependencies on the AWS CDK for Python projects.
|
|
8
8
|
*/
|
|
9
9
|
class AwsCdkDepsPy extends awscdk_deps_1.AwsCdkDeps {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDepsPy", version: "0.100.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDepsPy", version: "0.100.4" };
|
|
11
11
|
packageNames() {
|
|
12
12
|
return {
|
|
13
13
|
coreV2: "aws-cdk-lib",
|
|
@@ -42,7 +42,7 @@ const dependencies_1 = require("../dependencies");
|
|
|
42
42
|
* Manages dependencies on the AWS CDK.
|
|
43
43
|
*/
|
|
44
44
|
class AwsCdkDeps extends component_1.Component {
|
|
45
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDeps", version: "0.100.
|
|
45
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDeps", version: "0.100.4" };
|
|
46
46
|
/**
|
|
47
47
|
* The dependency requirement for AWS CDK (e.g. `^2.0.0`).
|
|
48
48
|
*/
|
package/lib/awscdk/cdk-config.js
CHANGED
|
@@ -11,7 +11,7 @@ const internal_1 = require("./internal");
|
|
|
11
11
|
* CDK V2 feature flags configuration.
|
|
12
12
|
*/
|
|
13
13
|
class CdkFeatureFlagsV2 {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkFeatureFlagsV2", version: "0.100.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkFeatureFlagsV2", version: "0.100.4" };
|
|
15
15
|
/**
|
|
16
16
|
* Disable all feature flags.
|
|
17
17
|
*/
|
|
@@ -52,7 +52,7 @@ exports.CdkFeatureFlagsV2 = CdkFeatureFlagsV2;
|
|
|
52
52
|
* CDK feature flags configuration.
|
|
53
53
|
*/
|
|
54
54
|
class CdkFeatureFlags {
|
|
55
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkFeatureFlags", version: "0.100.
|
|
55
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkFeatureFlags", version: "0.100.4" };
|
|
56
56
|
/**
|
|
57
57
|
* CDK V2 feature flags configuration.
|
|
58
58
|
*/
|
|
@@ -67,7 +67,7 @@ exports.CdkFeatureFlags = CdkFeatureFlags;
|
|
|
67
67
|
* Represents cdk.json file.
|
|
68
68
|
*/
|
|
69
69
|
class CdkConfig extends component_1.Component {
|
|
70
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkConfig", version: "0.100.
|
|
70
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkConfig", version: "0.100.4" };
|
|
71
71
|
/**
|
|
72
72
|
* Represents the JSON file.
|
|
73
73
|
*/
|
package/lib/awscdk/cdk-tasks.js
CHANGED
|
@@ -7,7 +7,7 @@ const component_1 = require("../component");
|
|
|
7
7
|
* Adds standard AWS CDK tasks to your project.
|
|
8
8
|
*/
|
|
9
9
|
class CdkTasks extends component_1.Component {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkTasks", version: "0.100.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkTasks", version: "0.100.4" };
|
|
11
11
|
/**
|
|
12
12
|
* Synthesizes your app.
|
|
13
13
|
*/
|
|
@@ -9,7 +9,7 @@ const dependencies_1 = require("../dependencies");
|
|
|
9
9
|
* Cloud integration tests.
|
|
10
10
|
*/
|
|
11
11
|
class IntegrationTest extends cdk_1.IntegrationTestBase {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.IntegrationTest", version: "0.100.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.IntegrationTest", version: "0.100.4" };
|
|
13
13
|
/**
|
|
14
14
|
* Destroy the integration test resources
|
|
15
15
|
*/
|
|
@@ -13,7 +13,7 @@ const source_code_1 = require("../source-code");
|
|
|
13
13
|
* Create a Lambda Extension
|
|
14
14
|
*/
|
|
15
15
|
class LambdaExtension extends component_1.Component {
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaExtension", version: "0.100.
|
|
16
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaExtension", version: "0.100.4" };
|
|
17
17
|
constructor(project, options) {
|
|
18
18
|
super(project);
|
|
19
19
|
const basePath = (0, path_1.join)((0, path_1.dirname)(options.entrypoint), (0, path_1.basename)(options.entrypoint, internal_1.TYPESCRIPT_LAMBDA_EXTENSION_EXT));
|
|
@@ -63,7 +63,7 @@ const util_1 = require("../util");
|
|
|
63
63
|
* });
|
|
64
64
|
*/
|
|
65
65
|
class LambdaFunction extends component_1.Component {
|
|
66
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaFunction", version: "0.100.
|
|
66
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaFunction", version: "0.100.4" };
|
|
67
67
|
/**
|
|
68
68
|
* Defines a pre-bundled AWS Lambda function construct from handler code.
|
|
69
69
|
*
|
|
@@ -218,7 +218,7 @@ exports.LambdaFunction = LambdaFunction;
|
|
|
218
218
|
class LambdaRuntime {
|
|
219
219
|
functionRuntime;
|
|
220
220
|
esbuildTarget;
|
|
221
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaRuntime", version: "0.100.
|
|
221
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaRuntime", version: "0.100.4" };
|
|
222
222
|
/**
|
|
223
223
|
* Node.js 14.x
|
|
224
224
|
* @deprecated Node.js 14 runtime has been deprecated on Dec 4, 2023
|
|
@@ -47,7 +47,7 @@ const runner_options_1 = require("../runner-options");
|
|
|
47
47
|
const consts_1 = require("./private/consts");
|
|
48
48
|
const name_1 = require("../util/name");
|
|
49
49
|
class BuildWorkflow extends component_1.Component {
|
|
50
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.build.BuildWorkflow", version: "0.100.
|
|
50
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.build.BuildWorkflow", version: "0.100.4" };
|
|
51
51
|
/**
|
|
52
52
|
* Name of generated github workflow
|
|
53
53
|
*/
|
|
@@ -43,7 +43,7 @@ const component_1 = require("../component");
|
|
|
43
43
|
* Base class for auto-discovering and creating project subcomponents.
|
|
44
44
|
*/
|
|
45
45
|
class AutoDiscoverBase extends component_1.Component {
|
|
46
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.AutoDiscoverBase", version: "0.100.
|
|
46
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.AutoDiscoverBase", version: "0.100.4" };
|
|
47
47
|
/**
|
|
48
48
|
* Auto-discovered entry points with paths relative to the project
|
|
49
49
|
* directory.
|
|
@@ -62,7 +62,7 @@ exports.AutoDiscoverBase = AutoDiscoverBase;
|
|
|
62
62
|
* Base class for locating integration tests in the project's test tree.
|
|
63
63
|
*/
|
|
64
64
|
class IntegrationTestAutoDiscoverBase extends AutoDiscoverBase {
|
|
65
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.IntegrationTestAutoDiscoverBase", version: "0.100.
|
|
65
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.IntegrationTestAutoDiscoverBase", version: "0.100.4" };
|
|
66
66
|
constructor(project, options) {
|
|
67
67
|
super(project, {
|
|
68
68
|
extension: internal_1.TYPESCRIPT_INTEG_EXT,
|
package/lib/cdk/construct-lib.js
CHANGED
|
@@ -7,7 +7,7 @@ const jsii_project_1 = require("./jsii-project");
|
|
|
7
7
|
* A multi-language library for CDK constructs.
|
|
8
8
|
*/
|
|
9
9
|
class ConstructLibrary extends jsii_project_1.JsiiProject {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.ConstructLibrary", version: "0.100.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.ConstructLibrary", version: "0.100.4" };
|
|
11
11
|
constructor(options) {
|
|
12
12
|
super(options);
|
|
13
13
|
this.addKeywords("cdk"); // publish to the catalog
|
|
@@ -7,7 +7,7 @@ const posix_1 = require("path/posix");
|
|
|
7
7
|
const internal_1 = require("./internal");
|
|
8
8
|
const component_1 = require("../component");
|
|
9
9
|
class IntegrationTestBase extends component_1.Component {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.IntegrationTestBase", version: "0.100.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.IntegrationTestBase", version: "0.100.4" };
|
|
11
11
|
/**
|
|
12
12
|
* Deploy the integration test and update the snapshot upon success.
|
|
13
13
|
*/
|
package/lib/cdk/jsii-build.js
CHANGED
|
@@ -50,7 +50,7 @@ var ValidateTsconfig;
|
|
|
50
50
|
* }));
|
|
51
51
|
*/
|
|
52
52
|
class JsiiBuild {
|
|
53
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.JsiiBuild", version: "0.100.
|
|
53
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.JsiiBuild", version: "0.100.4" };
|
|
54
54
|
options;
|
|
55
55
|
extraJobOptions;
|
|
56
56
|
constructor(options = {}, extraJobOptions) {
|
package/lib/cdk/jsii-docgen.js
CHANGED
|
@@ -11,7 +11,7 @@ const dependencies_1 = require("../dependencies");
|
|
|
11
11
|
* - Enforces that markdown file is checked in
|
|
12
12
|
*/
|
|
13
13
|
class JsiiDocgen extends component_1.Component {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.JsiiDocgen", version: "0.100.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.JsiiDocgen", version: "0.100.4" };
|
|
15
15
|
constructor(scope, options = {}) {
|
|
16
16
|
super(scope);
|
|
17
17
|
const version = options.version ?? "*";
|
package/lib/cdk/jsii-project.js
CHANGED
|
@@ -19,7 +19,7 @@ var Stability;
|
|
|
19
19
|
* @pjid jsii
|
|
20
20
|
*/
|
|
21
21
|
class JsiiProject extends typescript_1.TypeScriptProject {
|
|
22
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.JsiiProject", version: "0.100.
|
|
22
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.JsiiProject", version: "0.100.4" };
|
|
23
23
|
constructor(options) {
|
|
24
24
|
const { authorEmail, authorUrl } = parseAuthorAddress(options);
|
|
25
25
|
const defaultOptions = {
|
|
@@ -10,7 +10,7 @@ const component_1 = require("../component");
|
|
|
10
10
|
* found in the test tree.
|
|
11
11
|
*/
|
|
12
12
|
class AutoDiscover extends component_1.Component {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.AutoDiscover", version: "0.100.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.AutoDiscover", version: "0.100.4" };
|
|
14
14
|
constructor(project, options) {
|
|
15
15
|
super(project);
|
|
16
16
|
if (options.integrationTestAutoDiscover ?? true) {
|
|
@@ -23,7 +23,7 @@ exports.AutoDiscover = AutoDiscover;
|
|
|
23
23
|
* Discovers and creates integration tests from files in the test root.
|
|
24
24
|
*/
|
|
25
25
|
class IntegrationTestAutoDiscover extends cdk_1.IntegrationTestAutoDiscoverBase {
|
|
26
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.IntegrationTestAutoDiscover", version: "0.100.
|
|
26
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.IntegrationTestAutoDiscover", version: "0.100.4" };
|
|
27
27
|
constructor(project, options) {
|
|
28
28
|
super(project, options);
|
|
29
29
|
for (const entrypoint of this.entrypoints) {
|
|
@@ -12,7 +12,7 @@ const python_project_1 = require("../python/python-project");
|
|
|
12
12
|
* @pjid cdk8s-app-py
|
|
13
13
|
*/
|
|
14
14
|
class Cdk8sPythonApp extends python_project_1.PythonProject {
|
|
15
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sPythonApp", version: "0.100.
|
|
15
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sPythonApp", version: "0.100.4" };
|
|
16
16
|
/**
|
|
17
17
|
* The CDK8s app entrypoint
|
|
18
18
|
*/
|
|
@@ -50,7 +50,7 @@ const yaml_1 = require("../yaml");
|
|
|
50
50
|
* @pjid cdk8s-app-ts
|
|
51
51
|
*/
|
|
52
52
|
class Cdk8sTypeScriptApp extends typescript_1.TypeScriptAppProject {
|
|
53
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sTypeScriptApp", version: "0.100.
|
|
53
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sTypeScriptApp", version: "0.100.4" };
|
|
54
54
|
/**
|
|
55
55
|
* The CDK8s app entrypoint
|
|
56
56
|
*/
|
|
@@ -48,7 +48,7 @@ const cdk_1 = require("../cdk");
|
|
|
48
48
|
* @pjid cdk8s-construct
|
|
49
49
|
*/
|
|
50
50
|
class ConstructLibraryCdk8s extends cdk_1.ConstructLibrary {
|
|
51
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.ConstructLibraryCdk8s", version: "0.100.
|
|
51
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.ConstructLibraryCdk8s", version: "0.100.4" };
|
|
52
52
|
/**
|
|
53
53
|
* The CDK8s version this app is using.
|
|
54
54
|
*/
|
|
@@ -4,7 +4,7 @@ exports.Cdk8sDepsPy = void 0;
|
|
|
4
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
5
|
const cdk8s_deps_1 = require("./cdk8s-deps");
|
|
6
6
|
class Cdk8sDepsPy extends cdk8s_deps_1.Cdk8sDeps {
|
|
7
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sDepsPy", version: "0.100.
|
|
7
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sDepsPy", version: "0.100.4" };
|
|
8
8
|
packageNames() {
|
|
9
9
|
return {
|
|
10
10
|
cdk8s: "cdk8s",
|
package/lib/cdk8s/cdk8s-deps.js
CHANGED
|
@@ -42,7 +42,7 @@ const dependencies_1 = require("../dependencies");
|
|
|
42
42
|
* Manages dependencies on the CDK8s.
|
|
43
43
|
*/
|
|
44
44
|
class Cdk8sDeps extends component_1.Component {
|
|
45
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sDeps", version: "0.100.
|
|
45
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sDeps", version: "0.100.4" };
|
|
46
46
|
/**
|
|
47
47
|
* The dependency requirement for CDK8s.
|
|
48
48
|
*/
|
|
@@ -9,7 +9,7 @@ const dependencies_1 = require("../dependencies");
|
|
|
9
9
|
* CDK8S integration test.
|
|
10
10
|
*/
|
|
11
11
|
class IntegrationTest extends cdk_1.IntegrationTestBase {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.IntegrationTest", version: "0.100.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.IntegrationTest", version: "0.100.4" };
|
|
13
13
|
constructor(project, options) {
|
|
14
14
|
super(project, options);
|
|
15
15
|
project.deps.requestDependency({
|
|
@@ -47,7 +47,7 @@ const cdk_1 = require("../cdk");
|
|
|
47
47
|
* @pjid cdktf-construct
|
|
48
48
|
*/
|
|
49
49
|
class ConstructLibraryCdktf extends cdk_1.ConstructLibrary {
|
|
50
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdktf.ConstructLibraryCdktf", version: "0.100.
|
|
50
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdktf.ConstructLibraryCdktf", version: "0.100.4" };
|
|
51
51
|
constructor(options) {
|
|
52
52
|
super(options);
|
|
53
53
|
if (!options.cdktfVersion) {
|
package/lib/circleci/circleci.js
CHANGED
|
@@ -12,7 +12,7 @@ const yaml_1 = require("../yaml");
|
|
|
12
12
|
* @see https://circleci.com/docs/2.0/configuration-reference/
|
|
13
13
|
*/
|
|
14
14
|
class Circleci extends component_1.Component {
|
|
15
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.circleci.Circleci", version: "0.100.
|
|
15
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.circleci.Circleci", version: "0.100.4" };
|
|
16
16
|
/**
|
|
17
17
|
* The yaml file for the Circleci pipeline
|
|
18
18
|
* */
|
package/lib/component.js
CHANGED
|
@@ -16,7 +16,7 @@ const componentId = (scope) => {
|
|
|
16
16
|
* @param id Unique id of the component. If not provided, an unstable AutoId is generated.
|
|
17
17
|
*/
|
|
18
18
|
class Component extends constructs_1.Construct {
|
|
19
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Component", version: "0.100.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Component", version: "0.100.4" };
|
|
20
20
|
/**
|
|
21
21
|
* Test whether the given construct is a component.
|
|
22
22
|
*/
|
package/lib/dependencies.js
CHANGED
|
@@ -51,7 +51,7 @@ const json_1 = require("./json");
|
|
|
51
51
|
* `nodeProject.addDeps()` or use the generic API of `project.deps`:
|
|
52
52
|
*/
|
|
53
53
|
class Dependencies extends component_1.Component {
|
|
54
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Dependencies", version: "0.100.
|
|
54
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Dependencies", version: "0.100.4" };
|
|
55
55
|
/**
|
|
56
56
|
* The project-relative path of the deps manifest file.
|
|
57
57
|
*/
|
package/lib/dev-env.js
CHANGED
|
@@ -6,7 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
* Options for specifying the Docker image of the container.
|
|
7
7
|
*/
|
|
8
8
|
class DevEnvironmentDockerImage {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DevEnvironmentDockerImage", version: "0.100.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DevEnvironmentDockerImage", version: "0.100.4" };
|
|
10
10
|
/**
|
|
11
11
|
* A publicly available Docker image.
|
|
12
12
|
* @example 'ubuntu:latest'
|
|
@@ -7,7 +7,7 @@ const docker_compose_1 = require("./docker-compose");
|
|
|
7
7
|
* A docker-compose service.
|
|
8
8
|
*/
|
|
9
9
|
class DockerComposeService {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DockerComposeService", version: "0.100.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DockerComposeService", version: "0.100.4" };
|
|
11
11
|
/**
|
|
12
12
|
* Name of the service.
|
|
13
13
|
*/
|
|
@@ -11,7 +11,7 @@ const yaml_1 = require("../yaml");
|
|
|
11
11
|
* Create a docker-compose YAML file.
|
|
12
12
|
*/
|
|
13
13
|
class DockerCompose extends component_1.Component {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DockerCompose", version: "0.100.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DockerCompose", version: "0.100.4" };
|
|
15
15
|
/**
|
|
16
16
|
* Depends on a service name.
|
|
17
17
|
*/
|
package/lib/file.js
CHANGED
|
@@ -45,7 +45,7 @@ const util_1 = require("./util");
|
|
|
45
45
|
const constructs_1 = require("./util/constructs");
|
|
46
46
|
const diff_1 = require("./util/diff");
|
|
47
47
|
class FileBase extends component_1.Component {
|
|
48
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.FileBase", version: "0.100.
|
|
48
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.FileBase", version: "0.100.4" };
|
|
49
49
|
/**
|
|
50
50
|
* The file path, relative to the project's outdir.
|
|
51
51
|
*/
|