projen 0.103.23 → 0.103.24
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 +3 -3
- 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 +1 -1
- 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/internal.d.ts +1 -0
- package/lib/awscdk/lambda-extension.js +1 -1
- package/lib/awscdk/lambda-function.js +2 -2
- package/lib/awscdk/private/feature-flags-v2.const.d.ts +2 -1
- package/lib/awscdk/private/feature-flags-v2.const.js +4 -3
- 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/cdktn/cdktn-app-ts.js +1 -1
- package/lib/cdktn/cdktn-config.js +1 -1
- package/lib/cdktn/cdktn-construct.js +1 -1
- package/lib/cdktn/cdktn-deps.js +1 -1
- package/lib/cdktn/cdktn-tasks.js +1 -1
- package/lib/circleci/circleci.js +1 -1
- package/lib/component.js +2 -2
- 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/actions.const.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.js +1 -1
- package/lib/javascript/jest.js +4 -4
- package/lib/javascript/license-checker.js +1 -1
- package/lib/javascript/node-config-file.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/pnpm-workspace-config.js +2 -2
- package/lib/javascript/pnpm-workspace.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/polaris/coverity-go.js +1 -1
- package/lib/polaris/coverity-java.js +1 -1
- package/lib/polaris/coverity-javascript.js +1 -1
- package/lib/polaris/coverity.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/properties-file.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-config.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/bump-version.d.ts +1 -1
- package/lib/release/bump-version.js +1 -1
- package/lib/release/commit-tag-version.js +2 -2
- 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/script-runner.js +1 -1
- package/lib/sonarqube/javascript.js +1 -1
- package/lib/sonarqube/rust.js +1 -1
- package/lib/sonarqube/sonarqube.js +1 -1
- package/lib/sonarqube/typescript.js +1 -1
- package/lib/source-code.js +1 -1
- package/lib/task-shell.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.js +1 -1
- package/lib/typescript/typescript-runner.js +1 -1
- package/lib/typescript/typescript-typedoc.js +1 -1
- package/lib/typescript/typescript.js +5 -5
- package/lib/util/exec.js +2 -2
- package/lib/version.d.ts +1 -1
- package/lib/version.js +4 -4
- 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/yaml/browser/dist/compose/resolve-flow-scalar.js +19 -18
- package/node_modules/yaml/browser/dist/nodes/Alias.js +25 -23
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +19 -18
- package/node_modules/yaml/dist/nodes/Alias.js +25 -23
- package/node_modules/yaml/package.json +1 -1
- package/package.json +3 -3
package/lib/renovatebot.js
CHANGED
|
@@ -68,7 +68,7 @@ var RenovatebotMinimumReleaseAgeBehaviour;
|
|
|
68
68
|
* Ignores the versions controlled by Projen.
|
|
69
69
|
*/
|
|
70
70
|
class Renovatebot extends component_1.Component {
|
|
71
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Renovatebot", version: "0.103.
|
|
71
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Renovatebot", version: "0.103.24" };
|
|
72
72
|
/**
|
|
73
73
|
* The file holding the renovatebot configuration
|
|
74
74
|
*/
|
package/lib/run-task.cjs
CHANGED
|
@@ -1656,8 +1656,8 @@ var require_package = __commonJS({
|
|
|
1656
1656
|
"@types/yargs": "^16.0.11",
|
|
1657
1657
|
"@typescript-eslint/eslint-plugin": "^8",
|
|
1658
1658
|
"@typescript-eslint/parser": "^8",
|
|
1659
|
-
"aws-cdk-lib": "^2.
|
|
1660
|
-
"commit-and-tag-version": "^
|
|
1659
|
+
"aws-cdk-lib": "^2.269.0",
|
|
1660
|
+
"commit-and-tag-version": "^13",
|
|
1661
1661
|
esbuild: "^0.28.2",
|
|
1662
1662
|
eslint: "^9",
|
|
1663
1663
|
"eslint-config-prettier": "^10.1.8",
|
|
@@ -1745,7 +1745,7 @@ var require_package = __commonJS({
|
|
|
1745
1745
|
fsevents: true,
|
|
1746
1746
|
"unrs-resolver": true
|
|
1747
1747
|
},
|
|
1748
|
-
version: "0.103.
|
|
1748
|
+
version: "0.103.24",
|
|
1749
1749
|
jest: {
|
|
1750
1750
|
coverageProvider: "v8",
|
|
1751
1751
|
coverageReporters: [
|
package/lib/sample-file.js
CHANGED
|
@@ -45,7 +45,7 @@ const util_1 = require("./util");
|
|
|
45
45
|
* Use this for creating example code files or other resources.
|
|
46
46
|
*/
|
|
47
47
|
class SampleFile extends component_1.Component {
|
|
48
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SampleFile", version: "0.103.
|
|
48
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SampleFile", version: "0.103.24" };
|
|
49
49
|
filePath;
|
|
50
50
|
options;
|
|
51
51
|
/**
|
|
@@ -96,7 +96,7 @@ exports.SampleFile = SampleFile;
|
|
|
96
96
|
* Renders the given files into the directory if the directory does not exist. Use this to create sample code files
|
|
97
97
|
*/
|
|
98
98
|
class SampleDir extends component_1.Component {
|
|
99
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SampleDir", version: "0.103.
|
|
99
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SampleDir", version: "0.103.24" };
|
|
100
100
|
dir;
|
|
101
101
|
options;
|
|
102
102
|
/**
|
package/lib/script-runner.js
CHANGED
|
@@ -10,7 +10,7 @@ const component_1 = require("./component");
|
|
|
10
10
|
* `.projenrc.ts`) and is attached to a project by whoever consumes it.
|
|
11
11
|
*/
|
|
12
12
|
class ScriptRunner extends component_1.FutureComponent {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.ScriptRunner", version: "0.103.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.ScriptRunner", version: "0.103.24" };
|
|
14
14
|
configFor(entrypoint) {
|
|
15
15
|
return {
|
|
16
16
|
dependencies: [],
|
|
@@ -27,7 +27,7 @@ const util_1 = require("../util");
|
|
|
27
27
|
* });
|
|
28
28
|
*/
|
|
29
29
|
class SonarqubeJavascriptProperties extends sonarqube_1.SonarqubeProperties {
|
|
30
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.sonarqube.SonarqubeJavascriptProperties", version: "0.103.
|
|
30
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.sonarqube.SonarqubeJavascriptProperties", version: "0.103.24" };
|
|
31
31
|
constructor(scope, options) {
|
|
32
32
|
super(scope, (0, util_1.deepMerge)([
|
|
33
33
|
{
|
package/lib/sonarqube/rust.js
CHANGED
|
@@ -29,7 +29,7 @@ const util_1 = require("../util");
|
|
|
29
29
|
* });
|
|
30
30
|
*/
|
|
31
31
|
class SonarqubeRustProperties extends sonarqube_1.SonarqubeProperties {
|
|
32
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.sonarqube.SonarqubeRustProperties", version: "0.103.
|
|
32
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.sonarqube.SonarqubeRustProperties", version: "0.103.24" };
|
|
33
33
|
constructor(scope, options) {
|
|
34
34
|
super(scope, (0, util_1.deepMerge)([
|
|
35
35
|
{
|
|
@@ -49,7 +49,7 @@ var SonarqubeRegion;
|
|
|
49
49
|
* });
|
|
50
50
|
*/
|
|
51
51
|
class SonarqubeProperties extends component_1.Component {
|
|
52
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.sonarqube.SonarqubeProperties", version: "0.103.
|
|
52
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.sonarqube.SonarqubeProperties", version: "0.103.24" };
|
|
53
53
|
/**
|
|
54
54
|
* The underlying properties file.
|
|
55
55
|
*/
|
|
@@ -28,7 +28,7 @@ const util_1 = require("../util");
|
|
|
28
28
|
* });
|
|
29
29
|
*/
|
|
30
30
|
class SonarqubeTypescriptProperties extends sonarqube_1.SonarqubeProperties {
|
|
31
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.sonarqube.SonarqubeTypescriptProperties", version: "0.103.
|
|
31
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.sonarqube.SonarqubeTypescriptProperties", version: "0.103.24" };
|
|
32
32
|
constructor(scope, options) {
|
|
33
33
|
super(scope, (0, util_1.deepMerge)([
|
|
34
34
|
{
|
package/lib/source-code.js
CHANGED
|
@@ -9,7 +9,7 @@ const textfile_1 = require("./textfile");
|
|
|
9
9
|
*/
|
|
10
10
|
class SourceCode extends component_1.Component {
|
|
11
11
|
filePath;
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SourceCode", version: "0.103.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SourceCode", version: "0.103.24" };
|
|
13
13
|
file;
|
|
14
14
|
indentLevel = 0;
|
|
15
15
|
indent;
|
package/lib/task-shell.js
CHANGED
|
@@ -19,7 +19,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
19
19
|
*/
|
|
20
20
|
class TaskShell {
|
|
21
21
|
value;
|
|
22
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TaskShell", version: "0.103.
|
|
22
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TaskShell", version: "0.103.24" };
|
|
23
23
|
/**
|
|
24
24
|
* The built-in cross-platform shell (the default). It interprets POSIX-style
|
|
25
25
|
* task syntax (`mkdir -p`, `&&`, `$VAR`, ...) identically on every platform,
|
package/lib/task.js
CHANGED
|
@@ -8,7 +8,7 @@ const logging_1 = require("./logging");
|
|
|
8
8
|
* commands and subtasks.
|
|
9
9
|
*/
|
|
10
10
|
class Task {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Task", version: "0.103.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Task", version: "0.103.24" };
|
|
12
12
|
/**
|
|
13
13
|
* Task name.
|
|
14
14
|
*/
|
package/lib/tasks.js
CHANGED
|
@@ -48,7 +48,7 @@ const task_runner_1 = require("./task-runner");
|
|
|
48
48
|
* synthesized into `.projen/tasks.json`.
|
|
49
49
|
*/
|
|
50
50
|
class Tasks extends component_1.Component {
|
|
51
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Tasks", version: "0.103.
|
|
51
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Tasks", version: "0.103.24" };
|
|
52
52
|
_tasks;
|
|
53
53
|
_env;
|
|
54
54
|
_shell;
|
package/lib/testing.js
CHANGED
|
@@ -10,7 +10,7 @@ const synth_1 = require("./util/synth");
|
|
|
10
10
|
* @example `expect(Testing.synth(someProject)).toMatchSnapshot()`
|
|
11
11
|
*/
|
|
12
12
|
class Testing {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Testing", version: "0.103.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Testing", version: "0.103.24" };
|
|
14
14
|
/**
|
|
15
15
|
* Produces a simple JS object that represents the contents of the projects with field names being file paths.
|
|
16
16
|
* @param project the project to produce a snapshot for
|
package/lib/textfile.js
CHANGED
|
@@ -7,7 +7,7 @@ const file_1 = require("./file");
|
|
|
7
7
|
* A text file.
|
|
8
8
|
*/
|
|
9
9
|
class TextFile extends file_1.FileBase {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TextFile", version: "0.103.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TextFile", version: "0.103.24" };
|
|
11
11
|
lines;
|
|
12
12
|
/**
|
|
13
13
|
* Defines a text file.
|
package/lib/toml.js
CHANGED
|
@@ -41,7 +41,7 @@ const object_file_1 = require("./object-file");
|
|
|
41
41
|
* Represents a TOML file.
|
|
42
42
|
*/
|
|
43
43
|
class TomlFile extends object_file_1.ObjectFile {
|
|
44
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TomlFile", version: "0.103.
|
|
44
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TomlFile", version: "0.103.24" };
|
|
45
45
|
constructor(scope, filePath, options) {
|
|
46
46
|
super(scope, filePath, options);
|
|
47
47
|
}
|
|
@@ -16,7 +16,7 @@ const DEFAULT_FILENAME = ".projenrc.ts";
|
|
|
16
16
|
* and has no expectations around the project's main language.
|
|
17
17
|
*/
|
|
18
18
|
class ProjenrcTs extends projenrc_1.ProjenrcFile {
|
|
19
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.ProjenrcTs", version: "0.103.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.ProjenrcTs", version: "0.103.24" };
|
|
20
20
|
/**
|
|
21
21
|
* TypeScript configuration file used to compile projen source files
|
|
22
22
|
*/
|
|
@@ -15,7 +15,7 @@ const DEFAULT_FILENAME = ".projenrc.ts";
|
|
|
15
15
|
* This component is used within TypeScriptProject.
|
|
16
16
|
*/
|
|
17
17
|
class Projenrc extends projenrc_1.ProjenrcFile {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.Projenrc", version: "0.103.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.Projenrc", version: "0.103.24" };
|
|
19
19
|
filePath;
|
|
20
20
|
tsconfig;
|
|
21
21
|
_projenCodeDir;
|
|
@@ -13,7 +13,7 @@ const recreate_1 = require("../util/recreate");
|
|
|
13
13
|
* adjusted options.
|
|
14
14
|
*/
|
|
15
15
|
class TypeScriptRunner extends script_runner_1.ScriptRunner {
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypeScriptRunner", version: "0.103.
|
|
16
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypeScriptRunner", version: "0.103.24" };
|
|
17
17
|
/**
|
|
18
18
|
* Use ts-node to execute TypeScript files.
|
|
19
19
|
*/
|
|
@@ -6,7 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
Adds a simple Typescript documentation generator
|
|
7
7
|
*/
|
|
8
8
|
class TypedocDocgen {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypedocDocgen", version: "0.103.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypedocDocgen", version: "0.103.24" };
|
|
10
10
|
constructor(project) {
|
|
11
11
|
project.addDevDeps("typedoc");
|
|
12
12
|
const docgen = project.addTask("docgen", {
|
|
@@ -52,7 +52,7 @@ const util_2 = require("../util");
|
|
|
52
52
|
*/
|
|
53
53
|
class TsJestBabelConfig {
|
|
54
54
|
config;
|
|
55
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TsJestBabelConfig", version: "0.103.
|
|
55
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TsJestBabelConfig", version: "0.103.24" };
|
|
56
56
|
/**
|
|
57
57
|
* Disables the use of Babel
|
|
58
58
|
*/
|
|
@@ -99,7 +99,7 @@ exports.TsJestBabelConfig = TsJestBabelConfig;
|
|
|
99
99
|
*/
|
|
100
100
|
class TsJestDiagnostics {
|
|
101
101
|
config;
|
|
102
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TsJestDiagnostics", version: "0.103.
|
|
102
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TsJestDiagnostics", version: "0.103.24" };
|
|
103
103
|
/**
|
|
104
104
|
* Enable all diagnostics.
|
|
105
105
|
*/
|
|
@@ -137,7 +137,7 @@ exports.TsJestDiagnostics = TsJestDiagnostics;
|
|
|
137
137
|
*/
|
|
138
138
|
class TsJestTsconfig {
|
|
139
139
|
config;
|
|
140
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TsJestTsconfig", version: "0.103.
|
|
140
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TsJestTsconfig", version: "0.103.24" };
|
|
141
141
|
/**
|
|
142
142
|
* Uses `tsconfig.json` if found, or the built-in default TypeScript compiler options.
|
|
143
143
|
*/
|
|
@@ -183,7 +183,7 @@ exports.TsJestTsconfig = TsJestTsconfig;
|
|
|
183
183
|
* @pjid typescript
|
|
184
184
|
*/
|
|
185
185
|
class TypeScriptProject extends javascript_1.NodeProject {
|
|
186
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypeScriptProject", version: "0.103.
|
|
186
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypeScriptProject", version: "0.103.24" };
|
|
187
187
|
static DEFAULT_TS_JEST_TRANFORM_PATTERN = "^.+\\.[t]sx?$";
|
|
188
188
|
docgen;
|
|
189
189
|
docsDirectory;
|
|
@@ -626,7 +626,7 @@ class SampleCode extends component_1.Component {
|
|
|
626
626
|
* @pjid typescript-app
|
|
627
627
|
*/
|
|
628
628
|
class TypeScriptAppProject extends TypeScriptProject {
|
|
629
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypeScriptAppProject", version: "0.103.
|
|
629
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypeScriptAppProject", version: "0.103.24" };
|
|
630
630
|
constructor(options) {
|
|
631
631
|
// Releasing and packaging are coupled. If one is disabled, disable the other by default.
|
|
632
632
|
const shouldRelease = options.release ?? false;
|
package/lib/util/exec.js
CHANGED
|
@@ -157,7 +157,7 @@ exports.node = tool(process.execPath);
|
|
|
157
157
|
* `.cmd`/`.bat` shims and escaping every argument (so each value is passed as
|
|
158
158
|
* a single literal argument).
|
|
159
159
|
*
|
|
160
|
-
* @example await npx.run(["commit-and-tag-version@^
|
|
160
|
+
* @example await npx.run(["commit-and-tag-version@^13"], { cwd });
|
|
161
161
|
*/
|
|
162
162
|
function shimTool(file) {
|
|
163
163
|
const build = (args, options) => {
|
|
@@ -195,4 +195,4 @@ exports.npm = shimTool("npm");
|
|
|
195
195
|
* Cross-platform helper for `npx` (a Windows `.cmd` shim).
|
|
196
196
|
*/
|
|
197
197
|
exports.npx = shimTool("npx");
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2V4ZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0xBLG9CQU1DO0FBck1ELDZEQUErQztBQUMvQyx1Q0FBeUI7QUFDekIsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QiwrQkFBMEI7QUFDMUIsb0RBQXNDO0FBRXpCLFFBQUEsVUFBVSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBd0QzQyxTQUFTLFNBQVMsQ0FBQyxPQUF3QjtJQUN6QyxPQUFPO1FBQ0wsU0FBUyxFQUFFLGtCQUFVO1FBQ3JCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztRQUNoQixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDakUsMERBQTBEO1FBQzFELEtBQUssRUFBRSxLQUFjO0tBQ3RCLENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxHQUFHLENBQUMsSUFBWSxFQUFFLElBQWMsRUFBRSxPQUFtQjtJQUM1RCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFFakUsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1FBQ3JDLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUNyQixxRUFBcUU7UUFDckUsbUVBQW1FO1FBQ25FLDBFQUEwRTtRQUMxRSxLQUFLLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDO0tBQ2pFLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxPQUFPLENBQ2QsSUFBWSxFQUNaLElBQWMsRUFDZCxPQUF3QjtJQUV4QixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFFakUsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUIsdUVBQXVFO1FBQ3ZFLHVFQUF1RTtRQUN2RSxzREFBc0Q7UUFDdEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDNUIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLEVBQ3pELFFBQVEsQ0FDVCxDQUFDO1FBQ0YsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDO2dCQUNILGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtvQkFDckMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDO29CQUNyQixLQUFLLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztpQkFDM0IsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7Z0JBQ2hCLHVFQUF1RTtnQkFDdkUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN6QyxNQUFNLENBQUMsQ0FBQztZQUNWLENBQUM7WUFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZELENBQUM7Z0JBQVMsQ0FBQztZQUNULEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMxRSxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sYUFBYTtTQUNqQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtRQUN4QixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDckIsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxtREFBbUQ7S0FDeEYsQ0FBQztTQUNELFFBQVEsQ0FBQyxPQUFPLENBQUM7U0FDakIsSUFBSSxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsVUFBVSxDQUNqQixJQUFZLEVBQ1osSUFBYyxFQUNkLE9BQXdCO0lBRXhCLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTNDLDJDQUEyQztRQUMzQyxPQUFPLEtBQUssSUFBSSxTQUFTLENBQUM7SUFDNUIsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBK0JEOzs7O0dBSUc7QUFDSCxTQUFnQixJQUFJLENBQUMsSUFBWTtJQUMvQixPQUFPO1FBQ0wsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDO1FBQ2hELE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQztRQUN4RCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUM7S0FDL0QsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ1UsUUFBQSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRS9COzs7R0FHRztBQUNVLFFBQUEsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUU3Qjs7R0FFRztBQUNVLFFBQUEsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVyQzs7O0dBR0c7QUFDVSxRQUFBLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBZ0MzQzs7Ozs7O0dBTUc7QUFDSCxTQUFTLFFBQVEsQ0FBQyxJQUFZO0lBQzVCLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBYyxFQUFFLE9BQXdCLEVBQUUsRUFBRTtRQUN6RCxNQUFNLEdBQUcsR0FBRyxJQUFBLE9BQUMsRUFBQSxHQUFHLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxRSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDbEQsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUcsQ0FDZixJQUFjLEVBQ2QsTUFBd0MsRUFDeEMsRUFBRTtRQUNGLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0Qix3RUFBd0U7WUFDeEUsNERBQTREO1lBQzVELE1BQU0sS0FBSyxHQUFRLElBQUksS0FBSyxDQUMxQiw2QkFBNkIsTUFBTSxDQUFDLElBQUksTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUN2RSxDQUFDO1lBQ0YsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQzNCLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUMsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBQ0YsT0FBTztRQUNMLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNqRSxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUMvQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDakUsTUFBTSxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxRCxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNVLFFBQUEsR0FBRyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVuQzs7R0FFRztBQUNVLFFBQUEsR0FBRyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoaWxkX3Byb2Nlc3MgZnJvbSBcImNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyAkIH0gZnJvbSBcIi4vZGF4XCI7XG5pbXBvcnQgKiBhcyBsb2dnaW5nIGZyb20gXCIuLi9sb2dnaW5nXCI7XG5cbmV4cG9ydCBjb25zdCBNQVhfQlVGRkVSID0gMTAgKiAxMDI0ICogMTAyNDtcblxuLy9cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2hlbGwtZnJlZSBleGVjdXRpb24gKGV4ZWNGaWxlU3luYywgc2hlbGw6IGZhbHNlKS5cbi8vXG4vLyBUaGUgcHJvZ3JhbSBhbmQgZWFjaCBhcmd1bWVudCBhcmUgcGFzc2VkIHRvIHRoZSBPUyBkaXJlY3RseSB3aXRob3V0IGdvaW5nXG4vLyB0aHJvdWdoIGEgc2hlbGwsIHNvIHRoZXJlIGlzIG5vIHF1b3RpbmcgdG8gZ2V0IHJpZ2h0IGFuZCBubyBkaWZmZXJlbmNlc1xuLy8gYmV0d2VlbiBwbGF0Zm9ybSBzaGVsbHMgdG8gYWNjb3VudCBmb3Igd2hlbiBjb21tYW5kcyBpbmNsdWRlIHZhbHVlcyBkZXJpdmVkXG4vLyBmcm9tIGZpbGVzLCBnaXQgb3V0cHV0LCBjb25maWd1cmF0aW9uLCBldGMuXG4vL1xuLy8gT25seSBwZXItdG9vbCBoZWxwZXJzIGFyZSBleHBvcnRlZCAoZS5nLiBgZ2l0YCk7IHRoZSBnZW5lcmljIHByaW1pdGl2ZXMgYXJlXG4vLyBrZXB0IHByaXZhdGUgc28gY2FsbCBzaXRlcyBhcmUgZXhwbGljaXQgYWJvdXQgd2hpY2ggdG9vbCB0aGV5IGludm9rZS5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cblxuLyoqXG4gKiBPcHRpb25zIGZvciBzaGVsbC1mcmVlIGNvbW1hbmQgZXhlY3V0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWNGaWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXb3JraW5nIGRpcmVjdG9yeSBmb3IgdGhlIGNvbW1hbmQuXG4gICAqL1xuICByZWFkb25seSBjd2Q6IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIG1lcmdlZCBvbiB0b3Agb2YgYHByb2Nlc3MuZW52YC5cbiAgICovXG4gIHJlYWRvbmx5IGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD47XG5cbiAgLyoqXG4gICAqIEZvciBgY2FwdHVyZWAvYHRyeUNhcHR1cmVgOiBpbnRlcmxlYXZlIFNUREVSUiBpbnRvIHRoZSBjYXB0dXJlZCBvdXRwdXRcbiAgICogaW5zdGVhZCBvZiBvbmx5IGNhcHR1cmluZyBTVERPVVQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjYXB0dXJlU3RkZXJyPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgVG9vbC5ydW59LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bk9wdGlvbnMgZXh0ZW5kcyBFeGVjRmlsZU9wdGlvbnMge1xuICAvKipcbiAgICogU3RyZWFtIHRoZSBjaGlsZCdzIHN0ZG91dCBhbmQgc3RkZXJyIHN0cmFpZ2h0IHRvIHRoZSBwYXJlbnQncyBzdGRvdXQgYW5kXG4gICAqIHN0ZGVyciAoZnVsbCBpbmhlcml0YW5jZSksIGluc3RlYWQgb2YgcmVkaXJlY3Rpbmcgc3Rkb3V0IHRvIHN0ZGVyciBhbmRcbiAgICogY2FwdHVyaW5nIHN0ZGVyciAodGhlIGRlZmF1bHQpLlxuICAgKlxuICAgKiBVc2UgdGhpcyB3aGVuIGxhdW5jaGluZyBhIGNoaWxkIHByb2Nlc3Mgd2hvc2Ugc3Rkb3V0IGlzIG1lYW5pbmdmdWwgYW5kXG4gICAqIHdob3NlIG91dHB1dCBzaG91bGQgc3RyZWFtIGxpdmUgdG8gdGhlIHVzZXIgKGUuZy4gdGhlIHByb2plbiBDTEkpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5oZXJpdFN0ZGlvPzogYm9vbGVhbjtcbn1cblxuZnVuY3Rpb24gc3Bhd25PcHRzKG9wdGlvbnM6IEV4ZWNGaWxlT3B0aW9ucykge1xuICByZXR1cm4ge1xuICAgIG1heEJ1ZmZlcjogTUFYX0JVRkZFUixcbiAgICBjd2Q6IG9wdGlvbnMuY3dkLFxuICAgIGVudjogb3B0aW9ucy5lbnYgPyB7IC4uLnByb2Nlc3MuZW52LCAuLi5vcHRpb25zLmVudiB9IDogdW5kZWZpbmVkLFxuICAgIC8vIHJ1biB0aGUgcHJvZ3JhbSBkaXJlY3RseSwgd2l0aG91dCBnb2luZyB0aHJvdWdoIGEgc2hlbGxcbiAgICBzaGVsbDogZmFsc2UgYXMgY29uc3QsXG4gIH07XG59XG5cbi8qKlxuICogUnVucyBhIHByb2dyYW0gd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLCBpbmhlcml0aW5nIHN0ZG91dC4gVGhyb3dzIGlmIHRoZVxuICogY29tbWFuZCBleGl0cyB3aXRoIGEgbm9uLXplcm8gc3RhdHVzLlxuICovXG5mdW5jdGlvbiBydW4oZmlsZTogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSwgb3B0aW9uczogUnVuT3B0aW9ucyk6IHZvaWQge1xuICBsb2dnaW5nLmRlYnVnKGAke2ZpbGV9ICR7YXJncy5qb2luKFwiIFwiKX0gKGN3ZDogJHtvcHRpb25zLmN3ZH0pYCk7XG5cbiAgY2hpbGRfcHJvY2Vzcy5leGVjRmlsZVN5bmMoZmlsZSwgYXJncywge1xuICAgIC4uLnNwYXduT3B0cyhvcHRpb25zKSxcbiAgICAvLyBCeSBkZWZhdWx0IHRoZSBjaGlsZCdzIHN0ZG91dCBpcyByZWRpcmVjdGVkIHRvIFNUREVSUiAodG8ga2VlcCB0aGVcbiAgICAvLyBwYXJlbnQncyBTVERPVVQgY2xlYW4pIGFuZCBpdHMgU1RERVJSIGlzIHBpcGVkIHNvIGl0IHN1cmZhY2VzIGluXG4gICAgLy8gZXhjZXB0aW9ucy4gYGluaGVyaXRTdGRpb2AgaW5zdGVhZCBzdHJlYW1zIGJvdGggc3RyYWlnaHQgdG8gdGhlIHBhcmVudC5cbiAgICBzdGRpbzogb3B0aW9ucy5pbmhlcml0U3RkaW8gPyBcImluaGVyaXRcIiA6IFtcImluaGVyaXRcIiwgMiwgXCJwaXBlXCJdLFxuICB9KTtcbn1cblxuLyoqXG4gKiBSdW5zIGEgcHJvZ3JhbSBhbmQgcmV0dXJucyBpdHMgdHJpbW1lZCBTVERPVVQgKG9yIFNURE9VVCtTVERFUlIgaW50ZXJsZWF2ZWRcbiAqIGluIHRoZWlyIG9yaWdpbmFsIHdyaXRlIG9yZGVyLCBpZiBgY2FwdHVyZVN0ZGVycmAgaXMgc2V0KS4gVGhyb3dzIGlmIHRoZVxuICogY29tbWFuZCBleGl0cyB3aXRoIGEgbm9uLXplcm8gc3RhdHVzLlxuICovXG5mdW5jdGlvbiBjYXB0dXJlKFxuICBmaWxlOiBzdHJpbmcsXG4gIGFyZ3M6IHN0cmluZ1tdLFxuICBvcHRpb25zOiBFeGVjRmlsZU9wdGlvbnMsXG4pOiBzdHJpbmcge1xuICBsb2dnaW5nLmRlYnVnKGAke2ZpbGV9ICR7YXJncy5qb2luKFwiIFwiKX0gKGN3ZDogJHtvcHRpb25zLmN3ZH0pYCk7XG5cbiAgaWYgKG9wdGlvbnMuY2FwdHVyZVN0ZGVycikge1xuICAgIC8vIFNhbWUgZmQgZm9yIGJvdGggc3RyZWFtcyBzbyB0aGV5IGludGVybGVhdmUgaW4gd3JpdGUgb3JkZXIuIEEgc2hhcmVkXG4gICAgLy8gaW4tbWVtb3J5IFdyaXRhYmxlIHdvbid0IHdvcmsgaGVyZSAtIGV4ZWNGaWxlU3luYyBvbmx5IGFjY2VwdHMgc3RkaW9cbiAgICAvLyBzdHJlYW1zIGJhY2tlZCBieSBhIHJlYWwgZmQgKHR0eS9maWxlL3NvY2tldC9waXBlKS5cbiAgICBjb25zdCBjb21iaW5lZEZpbGUgPSBwYXRoLmpvaW4oXG4gICAgICBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksIFwicHJvamVuLWNhcHR1cmUtXCIpKSxcbiAgICAgIFwib3V0cHV0XCIsXG4gICAgKTtcbiAgICBjb25zdCBmZCA9IGZzLm9wZW5TeW5jKGNvbWJpbmVkRmlsZSwgXCJ3K1wiKTtcbiAgICB0cnkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY2hpbGRfcHJvY2Vzcy5leGVjRmlsZVN5bmMoZmlsZSwgYXJncywge1xuICAgICAgICAgIC4uLnNwYXduT3B0cyhvcHRpb25zKSxcbiAgICAgICAgICBzdGRpbzogW1wiaW5oZXJpdFwiLCBmZCwgZmRdLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAvLyBtaXJyb3JzIGV4ZWNGaWxlU3luYydzIG93biBiZWhhdmlvciBvZiBhdHRhY2hpbmcgb3V0cHV0IHRvIHRoZSBlcnJvclxuICAgICAgICBlLnN0ZG91dCA9IGZzLnJlYWRGaWxlU3luYyhjb21iaW5lZEZpbGUpO1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhjb21iaW5lZEZpbGUsIFwidXRmLThcIikudHJpbSgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBmcy5jbG9zZVN5bmMoZmQpO1xuICAgICAgZnMucm1TeW5jKHBhdGguZGlybmFtZShjb21iaW5lZEZpbGUpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNoaWxkX3Byb2Nlc3NcbiAgICAuZXhlY0ZpbGVTeW5jKGZpbGUsIGFyZ3MsIHtcbiAgICAgIC4uLnNwYXduT3B0cyhvcHRpb25zKSxcbiAgICAgIHN0ZGlvOiBbXCJpbmhlcml0XCIsIFwicGlwZVwiLCBcInBpcGVcIl0sIC8vIFwicGlwZVwiIGZvciBTVERFUlIgbWVhbnMgaXQgYXBwZWFycyBpbiBleGNlcHRpb25zXG4gICAgfSlcbiAgICAudG9TdHJpbmcoXCJ1dGYtOFwiKVxuICAgIC50cmltKCk7XG59XG5cbi8qKlxuICogUnVucyBhIHByb2dyYW0gYW5kIHJldHVybnMgaXRzIHRyaW1tZWQgU1RET1VUIChvciBTVERPVVQrU1RERVJSIGludGVybGVhdmVkXG4gKiBpbiB0aGVpciBvcmlnaW5hbCB3cml0ZSBvcmRlciwgaWYgYGNhcHR1cmVTdGRlcnJgIGlzIHNldCksIG9yIGB1bmRlZmluZWRgXG4gKiBpZiB0aGUgY29tbWFuZCBmYWlsZWQgb3IgcHJvZHVjZWQgbm8gb3V0cHV0LlxuICovXG5mdW5jdGlvbiB0cnlDYXB0dXJlKFxuICBmaWxlOiBzdHJpbmcsXG4gIGFyZ3M6IHN0cmluZ1tdLFxuICBvcHRpb25zOiBFeGVjRmlsZU9wdGlvbnMsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbHVlID0gY2FwdHVyZShmaWxlLCBhcmdzLCBvcHRpb25zKTtcblxuICAgIC8vIGFuIGVtcHR5IHN0cmluZyBpcyB0aGUgc2FtZSBhcyB1bmRlZmluZWRcbiAgICByZXR1cm4gdmFsdWUgfHwgdW5kZWZpbmVkO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogQSBzaGVsbC1mcmVlIGhhbmRsZSBmb3IgaW52b2tpbmcgYSBzaW5nbGUgcHJvZ3JhbSBieSBuYW1lIG9yIHBhdGguXG4gKlxuICogRWFjaCBhcmd1bWVudCBpcyBwYXNzZWQgdG8gdGhlIHByb2dyYW0gdmVyYmF0aW0gKG5vIHNoZWxsIHBhcnNpbmcpLCBzbyB0aGVyZVxuICogaXMgbm8gcXVvdGluZyB0byBnZXQgcmlnaHQgZm9yIHZhbHVlcyBzdWNoIGFzIHRhZ3MsIHZlcnNpb25zLCBicmFuY2ggbmFtZXNcbiAqIG9yIGZpbGUgcGF0aHMuXG4gKlxuICogTm90ZTogdGhlIHByb2dyYW0gaXMgZXhlY3V0ZWQgZGlyZWN0bHksIHdpdGhvdXQgYSBzaGVsbC4gT24gV2luZG93cyB0aGlzXG4gKiBtZWFucyBpdCBtdXN0IGJlIGEgcmVhbCBleGVjdXRhYmxlIC0gYC5jbWRgL2AuYmF0YCBzaGltcyAoc3VjaCBhc1xuICogbnBtLWluc3RhbGxlZCBDTElzIGxpa2UgbnBtL25weC95YXJuL3BucG0pIGNhbm5vdCBiZSBpbnZva2VkIHRoaXMgd2F5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvb2wge1xuICAvKipcbiAgICogUnVucyBgPHRvb2w+IDxhcmdzPmAsIGluaGVyaXRpbmcgc3Rkb3V0LiBUaHJvd3Mgb24gbm9uLXplcm8gZXhpdC5cbiAgICovXG4gIHJ1bihhcmdzOiBzdHJpbmdbXSwgb3B0aW9uczogUnVuT3B0aW9ucyk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJ1bnMgYDx0b29sPiA8YXJncz5gIGFuZCByZXR1cm5zIGl0cyB0cmltbWVkIFNURE9VVC4gVGhyb3dzIG9uIG5vbi16ZXJvIGV4aXQuXG4gICAqL1xuICBjYXB0dXJlKGFyZ3M6IHN0cmluZ1tdLCBvcHRpb25zOiBFeGVjRmlsZU9wdGlvbnMpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJ1bnMgYDx0b29sPiA8YXJncz5gIGFuZCByZXR1cm5zIGl0cyB0cmltbWVkIFNURE9VVCwgb3IgYHVuZGVmaW5lZGAgaWYgdGhlXG4gICAqIGNvbW1hbmQgZmFpbGVkIG9yIHByb2R1Y2VkIG5vIG91dHB1dC5cbiAgICovXG4gIHRyeUNhcHR1cmUoYXJnczogc3RyaW5nW10sIG9wdGlvbnM6IEV4ZWNGaWxlT3B0aW9ucyk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgc2hlbGwtZnJlZSB7QGxpbmsgVG9vbH0gZm9yIHRoZSBnaXZlbiBwcm9ncmFtLlxuICpcbiAqIEBleGFtcGxlIGNvbnN0IGdpdCA9IHRvb2woXCJnaXRcIik7IGdpdC5ydW4oW1widGFnXCIsIFwiLS1kZWxldGVcIiwgdGFnXSwgeyBjd2QgfSk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b29sKGZpbGU6IHN0cmluZyk6IFRvb2wge1xuICByZXR1cm4ge1xuICAgIHJ1bjogKGFyZ3MsIG9wdGlvbnMpID0+IHJ1bihmaWxlLCBhcmdzLCBvcHRpb25zKSxcbiAgICBjYXB0dXJlOiAoYXJncywgb3B0aW9ucykgPT4gY2FwdHVyZShmaWxlLCBhcmdzLCBvcHRpb25zKSxcbiAgICB0cnlDYXB0dXJlOiAoYXJncywgb3B0aW9ucykgPT4gdHJ5Q2FwdHVyZShmaWxlLCBhcmdzLCBvcHRpb25zKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBTaGVsbC1mcmVlIGhlbHBlciBmb3IgaW52b2tpbmcgYGdpdGAuXG4gKlxuICogQGV4YW1wbGUgZ2l0LnJ1bihbXCJ0YWdcIiwgXCItLWRlbGV0ZVwiLCB0YWddLCB7IGN3ZCB9KTtcbiAqL1xuZXhwb3J0IGNvbnN0IGdpdCA9IHRvb2woXCJnaXRcIik7XG5cbi8qKlxuICogU2hlbGwtZnJlZSBoZWxwZXIgZm9yIGludm9raW5nIGB1dmAgKHNoaXBzIGFzIGEgbmF0aXZlIGJpbmFyeSBvbiBhbGxcbiAqIHBsYXRmb3JtcykuXG4gKi9cbmV4cG9ydCBjb25zdCB1diA9IHRvb2woXCJ1dlwiKTtcblxuLyoqXG4gKiBTaGVsbC1mcmVlIGhlbHBlciBmb3IgaW52b2tpbmcgYHBvZXRyeWAuXG4gKi9cbmV4cG9ydCBjb25zdCBwb2V0cnkgPSB0b29sKFwicG9ldHJ5XCIpO1xuXG4vKipcbiAqIFNoZWxsLWZyZWUgaGVscGVyIGZvciBpbnZva2luZyB0aGUgY3VycmVudCBOb2RlLmpzIGV4ZWN1dGFibGVcbiAqIChgcHJvY2Vzcy5leGVjUGF0aGApLlxuICovXG5leHBvcnQgY29uc3Qgbm9kZSA9IHRvb2wocHJvY2Vzcy5leGVjUGF0aCk7XG5cbi8vXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENyb3NzLXBsYXRmb3JtIGV4ZWN1dGlvbiB2aWEgZGF4IChmb3IgYmluYXJpZXMgdGhhdCBtYXkgYmUgYC5jbWRgIHNoaW1zKS5cbi8vXG4vLyBgdG9vbGAgYWJvdmUgdXNlcyBgZXhlY0ZpbGVTeW5jYCB3aXRoIGBzaGVsbDogZmFsc2VgLCB3aGljaCBjYW5ub3QgbGF1bmNoXG4vLyBXaW5kb3dzIGAuY21kYC9gLmJhdGAgc2hpbXMgc3VjaCBhcyBgbnB4YCBvciBgbnBtYC4gYHNoaW1Ub29sYCBydW5zIHRocm91Z2hcbi8vIGRheCwgd2hpY2ggcmVzb2x2ZXMgdGhvc2Ugc2hpbXMgY3Jvc3MtcGxhdGZvcm0uIEFyZ3VtZW50cyBhcmUgaW50ZXJwb2xhdGVkXG4vLyB0aHJvdWdoIGRheCdzIGVzY2FwaW5nIChOT1QgYCQucmF3YCksIHNvIGVhY2ggdmFsdWUgaXMgcGFzc2VkIGFzIGEgc2luZ2xlXG4vLyBsaXRlcmFsIGFyZ3VtZW50IHdpdGggbm8gcXVvdGluZyB0byBnZXQgcmlnaHQuIGRheCBpcyBhc3luY2hyb25vdXMsIHNvXG4vLyB0aGVzZSBoZWxwZXJzIGFyZSBvbmx5IHVzYWJsZSBmcm9tIGFzeW5jIGNhbGwgc2l0ZXMuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG5cbi8qKlxuICogQXN5bmMsIGRheC1iYWNrZWQgZXF1aXZhbGVudCBvZiB7QGxpbmsgVG9vbH0gZm9yIHByb2dyYW1zIHRoYXQgbWF5IGJlIGFcbiAqIFdpbmRvd3MgYC5jbWRgL2AuYmF0YCBzaGltIChlLmcuIGBucHhgLCBgbnBtYCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXN5bmNUb29sIHtcbiAgLyoqXG4gICAqIFJ1bnMgYDx0b29sPiA8YXJncz5gLCBpbmhlcml0aW5nIHN0ZG91dC4gUmVqZWN0cyBvbiBub24temVybyBleGl0LlxuICAgKi9cbiAgcnVuKGFyZ3M6IHN0cmluZ1tdLCBvcHRpb25zOiBFeGVjRmlsZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBSdW5zIGA8dG9vbD4gPGFyZ3M+YCBhbmQgcmVzb2x2ZXMgaXRzIHRyaW1tZWQgU1RET1VULiBSZWplY3RzIG9uIG5vbi16ZXJvXG4gICAqIGV4aXQuXG4gICAqL1xuICBjYXB0dXJlKGFyZ3M6IHN0cmluZ1tdLCBvcHRpb25zOiBFeGVjRmlsZU9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz47XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiB7QGxpbmsgQXN5bmNUb29sfSB0aGF0IGludm9rZXMgYGZpbGVgIHZpYSBkYXgsIHJlc29sdmluZyBXaW5kb3dzXG4gKiBgLmNtZGAvYC5iYXRgIHNoaW1zIGFuZCBlc2NhcGluZyBldmVyeSBhcmd1bWVudCAoc28gZWFjaCB2YWx1ZSBpcyBwYXNzZWQgYXNcbiAqIGEgc2luZ2xlIGxpdGVyYWwgYXJndW1lbnQpLlxuICpcbiAqIEBleGFtcGxlIGF3YWl0IG5weC5ydW4oW1wiY29tbWl0LWFuZC10YWctdmVyc2lvbkBeMTJcIl0sIHsgY3dkIH0pO1xuICovXG5mdW5jdGlvbiBzaGltVG9vbChmaWxlOiBzdHJpbmcpOiBBc3luY1Rvb2wge1xuICBjb25zdCBidWlsZCA9IChhcmdzOiBzdHJpbmdbXSwgb3B0aW9uczogRXhlY0ZpbGVPcHRpb25zKSA9PiB7XG4gICAgY29uc3QgY21kID0gJGAke2ZpbGV9ICR7YXJnc31gLmN3ZChvcHRpb25zLmN3ZCkuc3RkZXJyKFwicGlwZWRcIikubm9UaHJvdygpO1xuICAgIHJldHVybiBvcHRpb25zLmVudiA/IGNtZC5lbnYob3B0aW9ucy5lbnYpIDogY21kO1xuICB9O1xuICBjb25zdCBlbnN1cmVPayA9IChcbiAgICBhcmdzOiBzdHJpbmdbXSxcbiAgICByZXN1bHQ6IHsgY29kZTogbnVtYmVyOyBzdGRlcnI6IHN0cmluZyB9LFxuICApID0+IHtcbiAgICBpZiAocmVzdWx0LmNvZGUgIT09IDApIHtcbiAgICAgIC8vIE1pbWljIHRoZSBgY2hpbGRfcHJvY2Vzc2AgZXJyb3Igc2hhcGUgKGBzdGF0dXNgLCBgc3RkZXJyYCkgc28gY2FsbGVyc1xuICAgICAgLy8gY2FuIGluc3BlY3Qgc3RkZXJyIChlLmcuIHRvIGRldGVjdCBFTk9FTlQvRTQwNCBmcm9tIG5wbSkuXG4gICAgICBjb25zdCBlcnJvcjogYW55ID0gbmV3IEVycm9yKFxuICAgICAgICBgQ29tbWFuZCBmYWlsZWQgKGV4aXQgY29kZSAke3Jlc3VsdC5jb2RlfSk6ICR7ZmlsZX0gJHthcmdzLmpvaW4oXCIgXCIpfWAsXG4gICAgICApO1xuICAgICAgZXJyb3Iuc3RhdHVzID0gcmVzdWx0LmNvZGU7XG4gICAgICBlcnJvci5zdGRlcnIgPSBCdWZmZXIuZnJvbShyZXN1bHQuc3RkZXJyKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBydW46IGFzeW5jIChhcmdzLCBvcHRpb25zKSA9PiB7XG4gICAgICBsb2dnaW5nLmRlYnVnKGAke2ZpbGV9ICR7YXJncy5qb2luKFwiIFwiKX0gKGN3ZDogJHtvcHRpb25zLmN3ZH0pYCk7XG4gICAgICBlbnN1cmVPayhhcmdzLCBhd2FpdCBidWlsZChhcmdzLCBvcHRpb25zKSk7XG4gICAgfSxcbiAgICBjYXB0dXJlOiBhc3luYyAoYXJncywgb3B0aW9ucykgPT4ge1xuICAgICAgbG9nZ2luZy5kZWJ1ZyhgJHtmaWxlfSAke2FyZ3Muam9pbihcIiBcIil9IChjd2Q6ICR7b3B0aW9ucy5jd2R9KWApO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYnVpbGQoYXJncywgb3B0aW9ucykuc3Rkb3V0KFwicGlwZWRcIik7XG4gICAgICBlbnN1cmVPayhhcmdzLCByZXN1bHQpO1xuICAgICAgcmV0dXJuIHJlc3VsdC5zdGRvdXQudHJpbSgpO1xuICAgIH0sXG4gIH07XG59XG5cbi8qKlxuICogQ3Jvc3MtcGxhdGZvcm0gaGVscGVyIGZvciBgbnBtYCAoYSBXaW5kb3dzIGAuY21kYCBzaGltKS5cbiAqL1xuZXhwb3J0IGNvbnN0IG5wbSA9IHNoaW1Ub29sKFwibnBtXCIpO1xuXG4vKipcbiAqIENyb3NzLXBsYXRmb3JtIGhlbHBlciBmb3IgYG5weGAgKGEgV2luZG93cyBgLmNtZGAgc2hpbSkuXG4gKi9cbmV4cG9ydCBjb25zdCBucHggPSBzaGltVG9vbChcIm5weFwiKTtcbiJdfQ==
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2V4ZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0xBLG9CQU1DO0FBck1ELDZEQUErQztBQUMvQyx1Q0FBeUI7QUFDekIsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QiwrQkFBMEI7QUFDMUIsb0RBQXNDO0FBRXpCLFFBQUEsVUFBVSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBd0QzQyxTQUFTLFNBQVMsQ0FBQyxPQUF3QjtJQUN6QyxPQUFPO1FBQ0wsU0FBUyxFQUFFLGtCQUFVO1FBQ3JCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztRQUNoQixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDakUsMERBQTBEO1FBQzFELEtBQUssRUFBRSxLQUFjO0tBQ3RCLENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxHQUFHLENBQUMsSUFBWSxFQUFFLElBQWMsRUFBRSxPQUFtQjtJQUM1RCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFFakUsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1FBQ3JDLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUNyQixxRUFBcUU7UUFDckUsbUVBQW1FO1FBQ25FLDBFQUEwRTtRQUMxRSxLQUFLLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFD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QUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoaWxkX3Byb2Nlc3MgZnJvbSBcImNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyAkIH0gZnJvbSBcIi4vZGF4XCI7XG5pbXBvcnQgKiBhcyBsb2dnaW5nIGZyb20gXCIuLi9sb2dnaW5nXCI7XG5cbmV4cG9ydCBjb25zdCBNQVhfQlVGRkVSID0gMTAgKiAxMDI0ICogMTAyNDtcblxuLy9cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2hlbGwtZnJlZSBleGVjdXRpb24gKGV4ZWNGaWxlU3luYywgc2hlbGw6IGZhbHNlKS5cbi8vXG4vLyBUaGUgcHJvZ3JhbSBhbmQgZWFjaCBhcmd1bWVudCBhcmUgcGFzc2VkIHRvIHRoZSBPUyBkaXJlY3RseSB3aXRob3V0IGdvaW5nXG4vLyB0aHJvdWdoIGEgc2hlbGwsIHNvIHRoZXJlIGlzIG5vIHF1b3RpbmcgdG8gZ2V0IHJpZ2h0IGFuZCBubyBkaWZmZXJlbmNlc1xuLy8gYmV0d2VlbiBwbGF0Zm9ybSBzaGVsbHMgdG8gYWNjb3VudCBmb3Igd2hlbiBjb21tYW5kcyBpbmNsdWRlIHZhbHVlcyBkZXJpdmVkXG4vLyBmcm9tIGZpbGVzLCBnaXQgb3V0cHV0LCBjb25maWd1cmF0aW9uLCBldGMuXG4vL1xuLy8gT25seSBwZXItdG9vbCBoZWxwZXJzIGFyZSBleHBvcnRlZCAoZS5nLiBgZ2l0YCk7IHRoZSBnZW5lcmljIHByaW1pdGl2ZXMgYXJlXG4vLyBrZXB0IHByaXZhdGUgc28gY2FsbCBzaXRlcyBhcmUgZXhwbGljaXQgYWJvdXQgd2hpY2ggdG9vbCB0aGV5IGludm9rZS5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cblxuLyoqXG4gKiBPcHRpb25zIGZvciBzaGVsbC1mcmVlIGNvbW1hbmQgZXhlY3V0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWNGaWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXb3JraW5nIGRpcmVjdG9yeSBmb3IgdGhlIGNvbW1hbmQuXG4gICAqL1xuICByZWFkb25seSBjd2Q6IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIG1lcmdlZCBvbiB0b3Agb2YgYHByb2Nlc3MuZW52YC5cbiAgICovXG4gIHJlYWRvbmx5IGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD47XG5cbiAgLyoqXG4gICAqIEZvciBgY2FwdHVyZWAvYHRyeUNhcHR1cmVgOiBpbnRlcmxlYXZlIFNUREVSUiBpbnRvIHRoZSBjYXB0dXJlZCBvdXRwdXRcbiAgICogaW5zdGVhZCBvZiBvbmx5IGNhcHR1cmluZyBTVERPVVQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjYXB0dXJlU3RkZXJyPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgVG9vbC5ydW59LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bk9wdGlvbnMgZXh0ZW5kcyBFeGVjRmlsZU9wdGlvbnMge1xuICAvKipcbiAgICogU3RyZWFtIHRoZSBjaGlsZCdzIHN0ZG91dCBhbmQgc3RkZXJyIHN0cmFpZ2h0IHRvIHRoZSBwYXJlbnQncyBzdGRvdXQgYW5kXG4gICAqIHN0ZGVyciAoZnVsbCBpbmhlcml0YW5jZSksIGluc3RlYWQgb2YgcmVkaXJlY3Rpbmcgc3Rkb3V0IHRvIHN0ZGVyciBhbmRcbiAgICogY2FwdHVyaW5nIHN0ZGVyciAodGhlIGRlZmF1bHQpLlxuICAgKlxuICAgKiBVc2UgdGhpcyB3aGVuIGxhdW5jaGluZyBhIGNoaWxkIHByb2Nlc3Mgd2hvc2Ugc3Rkb3V0IGlzIG1lYW5pbmdmdWwgYW5kXG4gICAqIHdob3NlIG91dHB1dCBzaG91bGQgc3RyZWFtIGxpdmUgdG8gdGhlIHVzZXIgKGUuZy4gdGhlIHByb2plbiBDTEkpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5oZXJpdFN0ZGlvPzogYm9vbGVhbjtcbn1cblxuZnVuY3Rpb24gc3Bhd25PcHRzKG9wdGlvbnM6IEV4ZWNGaWxlT3B0aW9ucykge1xuICByZXR1cm4ge1xuICAgIG1heEJ1ZmZlcjogTUFYX0JVRkZFUixcbiAgICBjd2Q6IG9wdGlvbnMuY3dkLFxuICAgIGVudjogb3B0aW9ucy5lbnYgPyB7IC4uLnByb2Nlc3MuZW52LCAuLi5vcHRpb25zLmVudiB9IDogdW5kZWZpbmVkLFxuICAgIC8vIHJ1biB0aGUgcHJvZ3JhbSBkaXJlY3RseSwgd2l0aG91dCBnb2luZyB0aHJvdWdoIGEgc2hlbGxcbiAgICBzaGVsbDogZmFsc2UgYXMgY29uc3QsXG4gIH07XG59XG5cbi8qKlxuICogUnVucyBhIHByb2dyYW0gd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLCBpbmhlcml0aW5nIHN0ZG91dC4gVGhyb3dzIGlmIHRoZVxuICogY29tbWFuZCBleGl0cyB3aXRoIGEgbm9uLXplcm8gc3RhdHVzLlxuICovXG5mdW5jdGlvbiBydW4oZmlsZTogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSwgb3B0aW9uczogUnVuT3B0aW9ucyk6IHZvaWQge1xuICBsb2dnaW5nLmRlYnVnKGAke2ZpbGV9ICR7YXJncy5qb2luKFwiIFwiKX0gKGN3ZDogJHtvcHRpb25zLmN3ZH0pYCk7XG5cbiAgY2hpbGRfcHJvY2Vzcy5leGVjRmlsZVN5bmMoZmlsZSwgYXJncywge1xuICAgIC4uLnNwYXduT3B0cyhvcHRpb25zKSxcbiAgICAvLyBCeSBkZWZhdWx0IHRoZSBjaGlsZCdzIHN0ZG91dCBpcyByZWRpcmVjdGVkIHRvIFNUREVSUiAodG8ga2VlcCB0aGVcbiAgICAvLyBwYXJlbnQncyBTVERPVVQgY2xlYW4pIGFuZCBpdHMgU1RERVJSIGlzIHBpcGVkIHNvIGl0IHN1cmZhY2VzIGluXG4gICAgLy8gZXhjZXB0aW9ucy4gYGluaGVyaXRTdGRpb2AgaW5zdGVhZCBzdHJlYW1zIGJvdGggc3RyYWlnaHQgdG8gdGhlIHBhcmVudC5cbiAgICBzdGRpbzogb3B0aW9ucy5pbmhlcml0U3RkaW8gPyBcImluaGVyaXRcIiA6IFtcImluaGVyaXRcIiwgMiwgXCJwaXBlXCJdLFxuICB9KTtcbn1cblxuLyoqXG4gKiBSdW5zIGEgcHJvZ3JhbSBhbmQgcmV0dXJucyBpdHMgdHJpbW1lZCBTVERPVVQgKG9yIFNURE9VVCtTVERFUlIgaW50ZXJsZWF2ZWRcbiAqIGluIHRoZWlyIG9yaWdpbmFsIHdyaXRlIG9yZGVyLCBpZiBgY2FwdHVyZVN0ZGVycmAgaXMgc2V0KS4gVGhyb3dzIGlmIHRoZVxuICogY29tbWFuZCBleGl0cyB3aXRoIGEgbm9uLXplcm8gc3RhdHVzLlxuICovXG5mdW5jdGlvbiBjYXB0dXJlKFxuICBmaWxlOiBzdHJpbmcsXG4gIGFyZ3M6IHN0cmluZ1tdLFxuICBvcHRpb25zOiBFeGVjRmlsZU9wdGlvbnMsXG4pOiBzdHJpbmcge1xuICBsb2dnaW5nLmRlYnVnKGAke2ZpbGV9ICR7YXJncy5qb2luKFwiIFwiKX0gKGN3ZDogJHtvcHRpb25zLmN3ZH0pYCk7XG5cbiAgaWYgKG9wdGlvbnMuY2FwdHVyZVN0ZGVycikge1xuICAgIC8vIFNhbWUgZmQgZm9yIGJvdGggc3RyZWFtcyBzbyB0aGV5IGludGVybGVhdmUgaW4gd3JpdGUgb3JkZXIuIEEgc2hhcmVkXG4gICAgLy8gaW4tbWVtb3J5IFdyaXRhYmxlIHdvbid0IHdvcmsgaGVyZSAtIGV4ZWNGaWxlU3luYyBvbmx5IGFjY2VwdHMgc3RkaW9cbiAgICAvLyBzdHJlYW1zIGJhY2tlZCBieSBhIHJlYWwgZmQgKHR0eS9maWxlL3NvY2tldC9waXBlKS5cbiAgICBjb25zdCBjb21iaW5lZEZpbGUgPSBwYXRoLmpvaW4oXG4gICAgICBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksIFwicHJvamVuLWNhcHR1cmUtXCIpKSxcbiAgICAgIFwib3V0cHV0XCIsXG4gICAgKTtcbiAgICBjb25zdCBmZCA9IGZzLm9wZW5TeW5jKGNvbWJpbmVkRmlsZSwgXCJ3K1wiKTtcbiAgICB0cnkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY2hpbGRfcHJvY2Vzcy5leGVjRmlsZVN5bmMoZmlsZSwgYXJncywge1xuICAgICAgICAgIC4uLnNwYXduT3B0cyhvcHRpb25zKSxcbiAgICAgICAgICBzdGRpbzogW1wiaW5oZXJpdFwiLCBmZCwgZmRdLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAvLyBtaXJyb3JzIGV4ZWNGaWxlU3luYydzIG93biBiZWhhdmlvciBvZiBhdHRhY2hpbmcgb3V0cHV0IHRvIHRoZSBlcnJvclxuICAgICAgICBlLnN0ZG91dCA9IGZzLnJlYWRGaWxlU3luYyhjb21iaW5lZEZpbGUpO1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhjb21iaW5lZEZpbGUsIFwidXRmLThcIikudHJpbSgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBmcy5jbG9zZVN5bmMoZmQpO1xuICAgICAgZnMucm1TeW5jKHBhdGguZGlybmFtZShjb21iaW5lZEZpbGUpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNoaWxkX3Byb2Nlc3NcbiAgICAuZXhlY0ZpbGVTeW5jKGZpbGUsIGFyZ3MsIHtcbiAgICAgIC4uLnNwYXduT3B0cyhvcHRpb25zKSxcbiAgICAgIHN0ZGlvOiBbXCJpbmhlcml0XCIsIFwicGlwZVwiLCBcInBpcGVcIl0sIC8vIFwicGlwZVwiIGZvciBTVERFUlIgbWVhbnMgaXQgYXBwZWFycyBpbiBleGNlcHRpb25zXG4gICAgfSlcbiAgICAudG9TdHJpbmcoXCJ1dGYtOFwiKVxuICAgIC50cmltKCk7XG59XG5cbi8qKlxuICogUnVucyBhIHByb2dyYW0gYW5kIHJldHVybnMgaXRzIHRyaW1tZWQgU1RET1VUIChvciBTVERPVVQrU1RERVJSIGludGVybGVhdmVkXG4gKiBpbiB0aGVpciBvcmlnaW5hbCB3cml0ZSBvcmRlciwgaWYgYGNhcHR1cmVTdGRlcnJgIGlzIHNldCksIG9yIGB1bmRlZmluZWRgXG4gKiBpZiB0aGUgY29tbWFuZCBmYWlsZWQgb3IgcHJvZHVjZWQgbm8gb3V0cHV0LlxuICovXG5mdW5jdGlvbiB0cnlDYXB0dXJlKFxuICBmaWxlOiBzdHJpbmcsXG4gIGFyZ3M6IHN0cmluZ1tdLFxuICBvcHRpb25zOiBFeGVjRmlsZU9wdGlvbnMsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbHVlID0gY2FwdHVyZShmaWxlLCBhcmdzLCBvcHRpb25zKTtcblxuICAgIC8vIGFuIGVtcHR5IHN0cmluZyBpcyB0aGUgc2FtZSBhcyB1bmRlZmluZWRcbiAgICByZXR1cm4gdmFsdWUgfHwgdW5kZWZpbmVkO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogQSBzaGVsbC1mcmVlIGhhbmRsZSBmb3IgaW52b2tpbmcgYSBzaW5nbGUgcHJvZ3JhbSBieSBuYW1lIG9yIHBhdGguXG4gKlxuICogRWFjaCBhcmd1bWVudCBpcyBwYXNzZWQgdG8gdGhlIHByb2dyYW0gdmVyYmF0aW0gKG5vIHNoZWxsIHBhcnNpbmcpLCBzbyB0aGVyZVxuICogaXMgbm8gcXVvdGluZyB0byBnZXQgcmlnaHQgZm9yIHZhbHVlcyBzdWNoIGFzIHRhZ3MsIHZlcnNpb25zLCBicmFuY2ggbmFtZXNcbiAqIG9yIGZpbGUgcGF0aHMuXG4gKlxuICogTm90ZTogdGhlIHByb2dyYW0gaXMgZXhlY3V0ZWQgZGlyZWN0bHksIHdpdGhvdXQgYSBzaGVsbC4gT24gV2luZG93cyB0aGlzXG4gKiBtZWFucyBpdCBtdXN0IGJlIGEgcmVhbCBleGVjdXRhYmxlIC0gYC5jbWRgL2AuYmF0YCBzaGltcyAoc3VjaCBhc1xuICogbnBtLWluc3RhbGxlZCBDTElzIGxpa2UgbnBtL25weC95YXJuL3BucG0pIGNhbm5vdCBiZSBpbnZva2VkIHRoaXMgd2F5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvb2wge1xuICAvKipcbiAgICogUnVucyBgPHRvb2w+IDxhcmdzPmAsIGluaGVyaXRpbmcgc3Rkb3V0LiBUaHJvd3Mgb24gbm9uLXplcm8gZXhpdC5cbiAgICovXG4gIHJ1bihhcmdzOiBzdHJpbmdbXSwgb3B0aW9uczogUnVuT3B0aW9ucyk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJ1bnMgYDx0b29sPiA8YXJncz5gIGFuZCByZXR1cm5zIGl0cyB0cmltbWVkIFNURE9VVC4gVGhyb3dzIG9uIG5vbi16ZXJvIGV4aXQuXG4gICAqL1xuICBjYXB0dXJlKGFyZ3M6IHN0cmluZ1tdLCBvcHRpb25zOiBFeGVjRmlsZU9wdGlvbnMpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJ1bnMgYDx0b29sPiA8YXJncz5gIGFuZCByZXR1cm5zIGl0cyB0cmltbWVkIFNURE9VVCwgb3IgYHVuZGVmaW5lZGAgaWYgdGhlXG4gICAqIGNvbW1hbmQgZmFpbGVkIG9yIHByb2R1Y2VkIG5vIG91dHB1dC5cbiAgICovXG4gIHRyeUNhcHR1cmUoYXJnczogc3RyaW5nW10sIG9wdGlvbnM6IEV4ZWNGaWxlT3B0aW9ucyk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgc2hlbGwtZnJlZSB7QGxpbmsgVG9vbH0gZm9yIHRoZSBnaXZlbiBwcm9ncmFtLlxuICpcbiAqIEBleGFtcGxlIGNvbnN0IGdpdCA9IHRvb2woXCJnaXRcIik7IGdpdC5ydW4oW1widGFnXCIsIFwiLS1kZWxldGVcIiwgdGFnXSwgeyBjd2QgfSk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b29sKGZpbGU6IHN0cmluZyk6IFRvb2wge1xuICByZXR1cm4ge1xuICAgIHJ1bjogKGFyZ3MsIG9wdGlvbnMpID0+IHJ1bihmaWxlLCBhcmdzLCBvcHRpb25zKSxcbiAgICBjYXB0dXJlOiAoYXJncywgb3B0aW9ucykgPT4gY2FwdHVyZShmaWxlLCBhcmdzLCBvcHRpb25zKSxcbiAgICB0cnlDYXB0dXJlOiAoYXJncywgb3B0aW9ucykgPT4gdHJ5Q2FwdHVyZShmaWxlLCBhcmdzLCBvcHRpb25zKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBTaGVsbC1mcmVlIGhlbHBlciBmb3IgaW52b2tpbmcgYGdpdGAuXG4gKlxuICogQGV4YW1wbGUgZ2l0LnJ1bihbXCJ0YWdcIiwgXCItLWRlbGV0ZVwiLCB0YWddLCB7IGN3ZCB9KTtcbiAqL1xuZXhwb3J0IGNvbnN0IGdpdCA9IHRvb2woXCJnaXRcIik7XG5cbi8qKlxuICogU2hlbGwtZnJlZSBoZWxwZXIgZm9yIGludm9raW5nIGB1dmAgKHNoaXBzIGFzIGEgbmF0aXZlIGJpbmFyeSBvbiBhbGxcbiAqIHBsYXRmb3JtcykuXG4gKi9cbmV4cG9ydCBjb25zdCB1diA9IHRvb2woXCJ1dlwiKTtcblxuLyoqXG4gKiBTaGVsbC1mcmVlIGhlbHBlciBmb3IgaW52b2tpbmcgYHBvZXRyeWAuXG4gKi9cbmV4cG9ydCBjb25zdCBwb2V0cnkgPSB0b29sKFwicG9ldHJ5XCIpO1xuXG4vKipcbiAqIFNoZWxsLWZyZWUgaGVscGVyIGZvciBpbnZva2luZyB0aGUgY3VycmVudCBOb2RlLmpzIGV4ZWN1dGFibGVcbiAqIChgcHJvY2Vzcy5leGVjUGF0aGApLlxuICovXG5leHBvcnQgY29uc3Qgbm9kZSA9IHRvb2wocHJvY2Vzcy5leGVjUGF0aCk7XG5cbi8vXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENyb3NzLXBsYXRmb3JtIGV4ZWN1dGlvbiB2aWEgZGF4IChmb3IgYmluYXJpZXMgdGhhdCBtYXkgYmUgYC5jbWRgIHNoaW1zKS5cbi8vXG4vLyBgdG9vbGAgYWJvdmUgdXNlcyBgZXhlY0ZpbGVTeW5jYCB3aXRoIGBzaGVsbDogZmFsc2VgLCB3aGljaCBjYW5ub3QgbGF1bmNoXG4vLyBXaW5kb3dzIGAuY21kYC9gLmJhdGAgc2hpbXMgc3VjaCBhcyBgbnB4YCBvciBgbnBtYC4gYHNoaW1Ub29sYCBydW5zIHRocm91Z2hcbi8vIGRheCwgd2hpY2ggcmVzb2x2ZXMgdGhvc2Ugc2hpbXMgY3Jvc3MtcGxhdGZvcm0uIEFyZ3VtZW50cyBhcmUgaW50ZXJwb2xhdGVkXG4vLyB0aHJvdWdoIGRheCdzIGVzY2FwaW5nIChOT1QgYCQucmF3YCksIHNvIGVhY2ggdmFsdWUgaXMgcGFzc2VkIGFzIGEgc2luZ2xlXG4vLyBsaXRlcmFsIGFyZ3VtZW50IHdpdGggbm8gcXVvdGluZyB0byBnZXQgcmlnaHQuIGRheCBpcyBhc3luY2hyb25vdXMsIHNvXG4vLyB0aGVzZSBoZWxwZXJzIGFyZSBvbmx5IHVzYWJsZSBmcm9tIGFzeW5jIGNhbGwgc2l0ZXMuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG5cbi8qKlxuICogQXN5bmMsIGRheC1iYWNrZWQgZXF1aXZhbGVudCBvZiB7QGxpbmsgVG9vbH0gZm9yIHByb2dyYW1zIHRoYXQgbWF5IGJlIGFcbiAqIFdpbmRvd3MgYC5jbWRgL2AuYmF0YCBzaGltIChlLmcuIGBucHhgLCBgbnBtYCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXN5bmNUb29sIHtcbiAgLyoqXG4gICAqIFJ1bnMgYDx0b29sPiA8YXJncz5gLCBpbmhlcml0aW5nIHN0ZG91dC4gUmVqZWN0cyBvbiBub24temVybyBleGl0LlxuICAgKi9cbiAgcnVuKGFyZ3M6IHN0cmluZ1tdLCBvcHRpb25zOiBFeGVjRmlsZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBSdW5zIGA8dG9vbD4gPGFyZ3M+YCBhbmQgcmVzb2x2ZXMgaXRzIHRyaW1tZWQgU1RET1VULiBSZWplY3RzIG9uIG5vbi16ZXJvXG4gICAqIGV4aXQuXG4gICAqL1xuICBjYXB0dXJlKGFyZ3M6IHN0cmluZ1tdLCBvcHRpb25zOiBFeGVjRmlsZU9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz47XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiB7QGxpbmsgQXN5bmNUb29sfSB0aGF0IGludm9rZXMgYGZpbGVgIHZpYSBkYXgsIHJlc29sdmluZyBXaW5kb3dzXG4gKiBgLmNtZGAvYC5iYXRgIHNoaW1zIGFuZCBlc2NhcGluZyBldmVyeSBhcmd1bWVudCAoc28gZWFjaCB2YWx1ZSBpcyBwYXNzZWQgYXNcbiAqIGEgc2luZ2xlIGxpdGVyYWwgYXJndW1lbnQpLlxuICpcbiAqIEBleGFtcGxlIGF3YWl0IG5weC5ydW4oW1wiY29tbWl0LWFuZC10YWctdmVyc2lvbkBeMTNcIl0sIHsgY3dkIH0pO1xuICovXG5mdW5jdGlvbiBzaGltVG9vbChmaWxlOiBzdHJpbmcpOiBBc3luY1Rvb2wge1xuICBjb25zdCBidWlsZCA9IChhcmdzOiBzdHJpbmdbXSwgb3B0aW9uczogRXhlY0ZpbGVPcHRpb25zKSA9PiB7XG4gICAgY29uc3QgY21kID0gJGAke2ZpbGV9ICR7YXJnc31gLmN3ZChvcHRpb25zLmN3ZCkuc3RkZXJyKFwicGlwZWRcIikubm9UaHJvdygpO1xuICAgIHJldHVybiBvcHRpb25zLmVudiA/IGNtZC5lbnYob3B0aW9ucy5lbnYpIDogY21kO1xuICB9O1xuICBjb25zdCBlbnN1cmVPayA9IChcbiAgICBhcmdzOiBzdHJpbmdbXSxcbiAgICByZXN1bHQ6IHsgY29kZTogbnVtYmVyOyBzdGRlcnI6IHN0cmluZyB9LFxuICApID0+IHtcbiAgICBpZiAocmVzdWx0LmNvZGUgIT09IDApIHtcbiAgICAgIC8vIE1pbWljIHRoZSBgY2hpbGRfcHJvY2Vzc2AgZXJyb3Igc2hhcGUgKGBzdGF0dXNgLCBgc3RkZXJyYCkgc28gY2FsbGVyc1xuICAgICAgLy8gY2FuIGluc3BlY3Qgc3RkZXJyIChlLmcuIHRvIGRldGVjdCBFTk9FTlQvRTQwNCBmcm9tIG5wbSkuXG4gICAgICBjb25zdCBlcnJvcjogYW55ID0gbmV3IEVycm9yKFxuICAgICAgICBgQ29tbWFuZCBmYWlsZWQgKGV4aXQgY29kZSAke3Jlc3VsdC5jb2RlfSk6ICR7ZmlsZX0gJHthcmdzLmpvaW4oXCIgXCIpfWAsXG4gICAgICApO1xuICAgICAgZXJyb3Iuc3RhdHVzID0gcmVzdWx0LmNvZGU7XG4gICAgICBlcnJvci5zdGRlcnIgPSBCdWZmZXIuZnJvbShyZXN1bHQuc3RkZXJyKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBydW46IGFzeW5jIChhcmdzLCBvcHRpb25zKSA9PiB7XG4gICAgICBsb2dnaW5nLmRlYnVnKGAke2ZpbGV9ICR7YXJncy5qb2luKFwiIFwiKX0gKGN3ZDogJHtvcHRpb25zLmN3ZH0pYCk7XG4gICAgICBlbnN1cmVPayhhcmdzLCBhd2FpdCBidWlsZChhcmdzLCBvcHRpb25zKSk7XG4gICAgfSxcbiAgICBjYXB0dXJlOiBhc3luYyAoYXJncywgb3B0aW9ucykgPT4ge1xuICAgICAgbG9nZ2luZy5kZWJ1ZyhgJHtmaWxlfSAke2FyZ3Muam9pbihcIiBcIil9IChjd2Q6ICR7b3B0aW9ucy5jd2R9KWApO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYnVpbGQoYXJncywgb3B0aW9ucykuc3Rkb3V0KFwicGlwZWRcIik7XG4gICAgICBlbnN1cmVPayhhcmdzLCByZXN1bHQpO1xuICAgICAgcmV0dXJuIHJlc3VsdC5zdGRvdXQudHJpbSgpO1xuICAgIH0sXG4gIH07XG59XG5cbi8qKlxuICogQ3Jvc3MtcGxhdGZvcm0gaGVscGVyIGZvciBgbnBtYCAoYSBXaW5kb3dzIGAuY21kYCBzaGltKS5cbiAqL1xuZXhwb3J0IGNvbnN0IG5wbSA9IHNoaW1Ub29sKFwibnBtXCIpO1xuXG4vKipcbiAqIENyb3NzLXBsYXRmb3JtIGhlbHBlciBmb3IgYG5weGAgKGEgV2luZG93cyBgLmNtZGAgc2hpbSkuXG4gKi9cbmV4cG9ydCBjb25zdCBucHggPSBzaGltVG9vbChcIm5weFwiKTtcbiJdfQ==
|
package/lib/version.d.ts
CHANGED
|
@@ -65,7 +65,7 @@ export interface VersionOptions {
|
|
|
65
65
|
*
|
|
66
66
|
* This can be any compatible package version, including the deprecated `standard-version@9`.
|
|
67
67
|
*
|
|
68
|
-
* @default "commit-and-tag-version@
|
|
68
|
+
* @default "commit-and-tag-version@13"
|
|
69
69
|
*/
|
|
70
70
|
readonly bumpPackage?: string;
|
|
71
71
|
/**
|
package/lib/version.js
CHANGED
|
@@ -38,9 +38,9 @@ exports.CHANGES_SINCE_LAST_RELEASE = 'git log --oneline -1 | grep -v "chore(rele
|
|
|
38
38
|
/**
|
|
39
39
|
* The default package to be used for commit-and-tag-version
|
|
40
40
|
*/
|
|
41
|
-
const COMMIT_AND_TAG_VERSION_DEFAULT = "commit-and-tag-version@^
|
|
41
|
+
const COMMIT_AND_TAG_VERSION_DEFAULT = "commit-and-tag-version@^13";
|
|
42
42
|
class Version extends component_1.Component {
|
|
43
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Version", version: "0.103.
|
|
43
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Version", version: "0.103.24" };
|
|
44
44
|
bumpTask;
|
|
45
45
|
unbumpTask;
|
|
46
46
|
/**
|
|
@@ -195,7 +195,7 @@ exports.Version = Version;
|
|
|
195
195
|
*/
|
|
196
196
|
class ReleasableCommits {
|
|
197
197
|
cmd;
|
|
198
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.ReleasableCommits", version: "0.103.
|
|
198
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.ReleasableCommits", version: "0.103.24" };
|
|
199
199
|
/**
|
|
200
200
|
* Release every commit
|
|
201
201
|
*
|
|
@@ -263,4 +263,4 @@ function withPath(cmd, path) {
|
|
|
263
263
|
}
|
|
264
264
|
return cmd;
|
|
265
265
|
}
|
|
266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwrQkFBNkI7QUFFN0IsMkNBQXdDO0FBQ3hDLGlEQUE4RDtBQUM5RCw0REFBd0Q7QUFHeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNVLFFBQUEsMEJBQTBCLEdBQ3JDLDhEQUE4RCxDQUFDO0FBRWpFOztHQUVHO0FBQ0gsTUFBTSw4QkFBOEIsR0FBRyw0QkFBNEIsQ0FBQztBQXNFcEUsTUFBYSxPQUFRLFNBQVEscUJBQVM7O0lBQ3BCLFFBQVEsQ0FBTztJQUNmLFVBQVUsQ0FBTztJQUVqQzs7O09BR0c7SUFDYSxxQkFBcUIsQ0FBTztJQUU1Qzs7O09BR0c7SUFDYSxlQUFlLENBQVE7SUFFdkM7O09BRUc7SUFDYSxpQkFBaUIsQ0FBUztJQUUxQzs7T0FFRztJQUNhLGVBQWUsQ0FBUztJQUV4Qzs7T0FFRztJQUNhLGtCQUFrQixDQUFTO0lBRTNDOzs7T0FHRztJQUNhLFdBQVcsQ0FBUztJQUVuQixrQkFBa0IsQ0FBVTtJQUU3QyxZQUFZLEtBQWlCLEVBQUUsT0FBdUI7UUFDcEQsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGNBQWMsQ0FBQztRQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQztRQUNyQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUM7UUFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLDhCQUE4QixDQUFDO1FBQ3pFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUM7UUFFckQsMENBQTBDO1FBQzFDLHdIQUF3SDtRQUN4SCxNQUFNLElBQUksR0FBRywwQkFBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7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UUFDdkcsTUFBTSxHQUFHLEdBQUcsZ0VBQWdFLFlBQVksa0RBQWtELENBQUM7UUFFM0ksT0FBTyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFhO1FBQ25DLE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBVztRQUNyQixPQUFPLElBQUksaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFlBQTJCLEdBQVc7UUFBWCxRQUFHLEdBQUgsR0FBRyxDQUFRO0lBQUcsQ0FBQzs7QUE1RDVDLDhDQTZEQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxRQUFRLENBQUMsR0FBVyxFQUFFLElBQWE7SUFDMUMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdkIsT0FBTyxHQUFHLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcG9zaXggfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgRGVwZW5kZW5jaWVzLCBEZXBlbmRlbmN5VHlwZSB9IGZyb20gXCIuL2RlcGVuZGVuY2llc1wiO1xuaW1wb3J0IHsgTm9kZVBhY2thZ2UgfSBmcm9tIFwiLi9qYXZhc2NyaXB0L25vZGUtcGFja2FnZVwiO1xuaW1wb3J0IHR5cGUgeyBUYXNrIH0gZnJvbSBcIi4vdGFza1wiO1xuXG4vKipcbiAqIFRoaXMgY29tbWFuZCBkZXRlcm1pbmVzIGlmIHRoZXJlIHdlcmUgYW55IGNoYW5nZXMgc2luY2UgdGhlIGxhc3QgcmVsZWFzZSBpbiBhXG4gKiBjcm9zcy1wbGF0Zm9ybSBjb21wYXRpYmxlIHdheS4gSXQgaXMgdXNlZCBhcyBhIGNvbmRpdGlvbiBmb3IgYm90aCB0aGUgYGJ1bXBgXG4gKiBhbmQgdGhlIGByZWxlYXNlYCB0YXNrczogaXQgZXhpdHMgMCAocHJvY2VlZCkgd2hlbiB0aGUgbW9zdCByZWNlbnQgY29tbWl0IGlzXG4gKiBub3QgYSByZWxlYXNlIGNvbW1pdCwgYW5kIG5vbi16ZXJvIChza2lwKSB3aGVuIHRoZSBtb3N0IHJlY2VudCBjb21taXQgaXMgYVxuICogYGNob3JlKHJlbGVhc2UpOmAgY29tbWl0LlxuICpcbiAqIEV4cGxhbmF0aW9uOlxuICogIC0gYGdpdCBsb2cgLS1vbmVsaW5lIC0xYCAgICAgICAgICB0aGUgbW9zdCByZWNlbnQgY29tbWl0LCBvbmUgbGluZVxuICogIC0gYHwgZ3JlcCAtdiBcImNob3JlKHJlbGVhc2UpOlwiYCAgIHBhc3MgdGhlIGxpbmUgdGhyb3VnaCBvbmx5IGlmIGl0IGlzIE5PVCBhIHJlbGVhc2UgY29tbWl0XG4gKiAgLSBgPiAvZGV2L251bGxgICAgICAgICAgICAgICAgICAgIGRpc2NhcmQgZ3JlcCdzIG91dHB1dDsgb25seSBpdHMgZXhpdCBjb2RlIG1hdHRlcnNcbiAqXG4gKiBncmVwIGV4aXRzIDAgd2hlbiBpdCBwcmludHMgYXQgbGVhc3Qgb25lIG5vbi1tYXRjaGluZyBsaW5lIChhIG5vcm1hbCBjb21taXQsXG4gKiBzbyBwcm9jZWVkKSBhbmQgMSB3aGVuIGV2ZXJ5IGxpbmUgbWF0Y2hlcyAoYSByZWxlYXNlIGNvbW1pdCwgc28gc2tpcCkuXG4gKlxuICogSU1QT1JUQU5UOiBkbyBOT1QgcmVpbnRyb2R1Y2UgYGdyZXAgLXFgIGhlcmUgKGkuZS4gZG8gbm90IFwib3B0aW1pemVcIiB0aGlzIGJhY2tcbiAqIHRvIGBncmVwIC1xdmApLiBgZ3JlcCAtcWAgZXhpdHMgYXMgc29vbiBhcyBpdCBoYXMgYW4gYW5zd2VyIGFuZCBjbG9zZXMgdGhlIHJlYWRcbiAqIGVuZCBvZiB0aGUgcGlwZS4gV2hlbiB0aGlzIGNvbmRpdGlvbiBydW5zIHRocm91Z2ggcHJvamVuJ3MgYnVpbHQtaW4gKGRheClcbiAqIHNoZWxsLCB0aGF0IGVhcmx5IGNsb3NlIHJhY2VzIHdpdGggYGdpdCBsb2dgIHN0aWxsIHdyaXRpbmcgdG8gdGhlIHBpcGUsIGFuZCBkYXhcbiAqIHN1cmZhY2VzIHRoZSBmYWlsZWQgd3JpdGUgYXMgYSBzcHVyaW91cyBub24temVybyBleGl0IChcInN0ZGluIHBpcGUgYnJva2VuLlxuICogSW52YWxpZCBzdGF0ZTogV3JpdGFibGVTdHJlYW0gaXMgY2xvc2VkXCIpLiBUaGUgdGFzayBydW50aW1lIGNhbm5vdCBkaXN0aW5ndWlzaFxuICogdGhhdCBmcm9tIGEgbGVnaXRpbWF0ZSBza2lwIChkYXggcmVwb3J0cyBpdCBhcyBhIHBsYWluIG5vbi16ZXJvIGNvZGUgdW5kZXJcbiAqIGAubm9UaHJvdygpYCwgbm90IGFzIGFuIGVycm9yKSwgc28gdGhlIGJ1bXAvcmVsZWFzZSB0YXNrIGlzIHNpbGVudGx5IHNraXBwZWQ6IGFcbiAqIHJlbGVhc2UgaXMgbWlzc2VkLCBvciBhIGRlcGVuZGVudCBwdWJsaXNoZXMgYSBicm9rZW4gYF4wLjAuMGAgdmVyc2lvbiByYW5nZS5cbiAqIFBsYWluIGBncmVwIC12IC4uLiA+IC9kZXYvbnVsbGAgcmVhZHMgdG8gRU9GIGluc3RlYWQgb2Ygc2hvcnQtY2lyY3VpdGluZywgc28gaXRcbiAqIG5ldmVyIGNsb3NlcyB0aGUgcGlwZSB3aGlsZSB0aGUgd3JpdGVyIGlzIGFjdGl2ZSBhbmQgdGhlIHJhY2UgY2Fubm90IG9jY3VyLiBUaGVcbiAqIGV4aXQgc2VtYW50aWNzIGFyZSBpZGVudGljYWwgdG8gdGhlIHByZXZpb3VzIGBncmVwIC1xdmAuXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFOR0VTX1NJTkNFX0xBU1RfUkVMRUFTRSA9XG4gICdnaXQgbG9nIC0tb25lbGluZSAtMSB8IGdyZXAgLXYgXCJjaG9yZShyZWxlYXNlKTpcIiA+IC9kZXYvbnVsbCc7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgcGFja2FnZSB0byBiZSB1c2VkIGZvciBjb21taXQtYW5kLXRhZy12ZXJzaW9uXG4gKi9cbmNvbnN0IENPTU1JVF9BTkRfVEFHX1ZFUlNJT05fREVGQVVMVCA9IFwiY29tbWl0LWFuZC10YWctdmVyc2lvbkBeMTJcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgVmVyc2lvbmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2lvbk9wdGlvbnMge1xuICAvKipcbiAgICogQSBuYW1lIG9mIGEgLmpzb24gZmlsZSB0byBzZXQgdGhlIGB2ZXJzaW9uYCBmaWVsZCBpbiBhZnRlciBhIGJ1bXAuXG4gICAqXG4gICAqIEBleGFtcGxlIFwicGFja2FnZS5qc29uXCJcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25JbnB1dEZpbGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSBpbnRvIHdoaWNoIGBjaGFuZ2Vsb2cubWRgIGFuZCBgdmVyc2lvbi50eHRgIGZpbGVzXG4gICAqIGFyZSBlbWl0dGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYXJ0aWZhY3RzRGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBjb25maWd1cmF0aW9uIGZvciB2ZXJzaW9ucmMgZmlsZSB1c2VkIGJ5IHN0YW5kYXJkLXJlbGVhc2VcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25yY09wdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFnIHByZWZpeCBjb3JyZXNwb25kaW5nIHRvIHRoaXMgdmVyc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IHRhZ1ByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogRmluZCBjb21taXRzIHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcmVsZWFzYWJsZVxuICAgKiBVc2VkIHRvIGRlY2lkZSBpZiBhIHJlbGVhc2UgaXMgcmVxdWlyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFJlbGVhc2FibGVDb21taXRzLmV2ZXJ5Q29tbWl0KClcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2FibGVDb21taXRzPzogUmVsZWFzYWJsZUNvbW1pdHM7XG5cbiAgLyoqXG4gICAqIFRoZSBgY29tbWl0LWFuZC10YWctdmVyc2lvbmAgY29tcGF0aWJsZSBwYWNrYWdlIHVzZWQgdG8gYnVtcCB0aGUgcGFja2FnZSB2ZXJzaW9uLCBhcyBhIGRlcGVuZGVuY3kgc3RyaW5nLlxuICAgKlxuICAgKiBUaGlzIGNhbiBiZSBhbnkgY29tcGF0aWJsZSBwYWNrYWdlIHZlcnNpb24sIGluY2x1ZGluZyB0aGUgZGVwcmVjYXRlZCBgc3RhbmRhcmQtdmVyc2lvbkA5YC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJjb21taXQtYW5kLXRhZy12ZXJzaW9uQDEyXCJcbiAgICovXG4gIHJlYWRvbmx5IGJ1bXBQYWNrYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHNoZWxsIGNvbW1hbmQgdG8gY29udHJvbCB0aGUgbmV4dCB2ZXJzaW9uIHRvIHJlbGVhc2UuXG4gICAqXG4gICAqIElmIHByZXNlbnQsIHRoaXMgc2hlbGwgY29tbWFuZCB3aWxsIGJlIHJ1biBiZWZvcmUgdGhlIGJ1bXAgaXMgZXhlY3V0ZWQsIGFuZFxuICAgKiBpdCBkZXRlcm1pbmVzIHdoYXQgdmVyc2lvbiB0byByZWxlYXNlLiBJdCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBmb2xsb3dpbmdcbiAgICogZW52aXJvbm1lbnQ6XG4gICAqXG4gICAqIC0gV29ya2luZyBkaXJlY3Rvcnk6IHRoZSBwcm9qZWN0IGRpcmVjdG9yeS5cbiAgICogLSBgJFZFUlNJT05gOiB0aGUgY3VycmVudCB2ZXJzaW9uLiBMb29rcyBsaWtlIGAxLjIuM2AuXG4gICAqIC0gYCRMQVRFU1RfVEFHYDogdGhlIG1vc3QgcmVjZW50IHRhZy4gTG9va3MgbGlrZSBgcHJlZml4LXYxLjIuM2AsIG9yIG1heSBiZSB1bnNldC5cbiAgICogLSBgJFNVR0dFU1RFRF9CVU1QYDogdGhlIHN1Z2dlc3RlZCBidW1wIGFjdGlvbiBiYXNlZCBvbiBjb21taXRzLiBPbmUgb2YgYG1ham9yfG1pbm9yfHBhdGNofG5vbmVgLlxuICAgKlxuICAgKiBUaGUgY29tbWFuZCBzaG91bGQgcHJpbnQgb25lIG9mIHRoZSBmb2xsb3dpbmcgdG8gYHN0ZG91dGA6XG4gICAqXG4gICAqIC0gTm90aGluZzogdGhlIG5leHQgdmVyc2lvbiBudW1iZXIgd2lsbCBiZSBkZXRlcm1pbmVkIGJhc2VkIG9uIGNvbW1pdCBoaXN0b3J5LlxuICAgKiAtIGB4LnkuemA6IHRoZSBuZXh0IHZlcnNpb24gbnVtYmVyIHdpbGwgYmUgYHgueS56YC5cbiAgICogLSBgbWFqb3J8bWlub3J8cGF0Y2hgOiB0aGUgbmV4dCB2ZXJzaW9uIG51bWJlciB3aWxsIGJlIHRoZSBjdXJyZW50IHZlcnNpb24gbnVtYmVyXG4gICAqICAgd2l0aCB0aGUgaW5kaWNhdGVkIGNvbXBvbmVudCBidW1wZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIG5leHQgdmVyc2lvbiB3aWxsIGJlIGRldGVybWluZWQgYmFzZWQgb24gdGhlIGNvbW1pdCBoaXN0b3J5IGFuZCBwcm9qZWN0IHNldHRpbmdzLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV4dFZlcnNpb25Db21tYW5kPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgVmVyc2lvbiBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBidW1wVGFzazogVGFzaztcbiAgcHVibGljIHJlYWRvbmx5IHVuYnVtcFRhc2s6IFRhc2s7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXNrIHRoYXQgcHJpbnRzIHRoZSByZWxlYXNhYmxlIGNvbW1pdHMgc2luY2UgdGhlIGxhdGVzdCB0YWcuIFNwYXduZWRcbiAgICogYnkgYGJ1bXBgOyBpdHMgc2hlbGwgY2FuIGJlIG92ZXJyaWRkZW4gdmlhIGB0YXNrLnNoZWxsYC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZWxlYXNhYmxlQ29tbWl0c1Rhc2s6IFRhc2s7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXNrIHRoYXQgcnVucyB0aGUgdXNlcidzIGBuZXh0VmVyc2lvbkNvbW1hbmRgLCBpZiBjb25maWd1cmVkLiBTcGF3bmVkXG4gICAqIGJ5IGBidW1wYDsgaXRzIHNoZWxsIGNhbiBiZSBvdmVycmlkZGVuIHZpYSBgdGFzay5zaGVsbGAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmV4dFZlcnNpb25UYXNrPzogVGFzaztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNoYW5nZWxvZyBmaWxlICh1bmRlciBgYXJ0aWZhY3RzRGlyZWN0b3J5YCkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlbG9nRmlsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGZpbGUgdGhhdCBjb250YWlucyB0aGUgdmVyc2lvbiAodW5kZXIgYGFydGlmYWN0c0RpcmVjdG9yeWApLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb25GaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSByZWxlYXNlIHRhZyAodW5kZXIgYGFydGlmYWN0c0RpcmVjdG9yeWApLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlbGVhc2VUYWdGaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZSB1c2VkIHRvIGJ1bXAgcGFja2FnZSB2ZXJzaW9ucywgYXMgYSBkZXBlbmRlbmN5IHN0cmluZy5cbiAgICogVGhpcyBpcyBhIGBjb21taXQtYW5kLXRhZy12ZXJzaW9uYCBjb21wYXRpYmxlIHBhY2thZ2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnVtcFBhY2thZ2U6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IG5leHRWZXJzaW9uQ29tbWFuZD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogSUNvbnN0cnVjdCwgb3B0aW9uczogVmVyc2lvbk9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSk7XG5cbiAgICB0aGlzLmNoYW5nZWxvZ0ZpbGVOYW1lID0gXCJjaGFuZ2Vsb2cubWRcIjtcbiAgICB0aGlzLnZlcnNpb25GaWxlTmFtZSA9IFwidmVyc2lvbi50eHRcIjtcbiAgICB0aGlzLnJlbGVhc2VUYWdGaWxlTmFtZSA9IFwicmVsZWFzZXRhZy50eHRcIjtcbiAgICB0aGlzLmJ1bXBQYWNrYWdlID0gb3B0aW9ucy5idW1wUGFja2FnZSA/PyBDT01NSVRfQU5EX1RBR19WRVJTSU9OX0RFRkFVTFQ7XG4gICAgdGhpcy5uZXh0VmVyc2lvbkNvbW1hbmQgPSBvcHRpb25zLm5leHRWZXJzaW9uQ29tbWFuZDtcblxuICAgIC8vIFRoaXMgY29tcG9uZW50IGlzIGxhbmd1YWdlIGluZGVwZW5kZW50LlxuICAgIC8vIEhvd2V2ZXIsIHdoZW4gaW4gdGhlIE5vZGUuanMgZWNvc3lzdGVtLCB3ZSBjYW4gaW1wcm92ZSB0aGUgZXhwZXJpZW5jZSBieSBhZGRpbmcgYSBkZXYgZGVwZW5kZW5jeSBvbiB0aGUgYnVtcCBwYWNrYWdlLlxuICAgIGNvbnN0IG5vZGUgPSBOb2RlUGFja2FnZS5vZih0aGlzLnByb2plY3QpO1xuICAgIGlmIChub2RlKSB7XG4gICAgICBjb25zdCB7IG5hbWU6IGJ1bXBOYW1lLCB2ZXJzaW9uOiBidW1wVmVyc2lvbiB9ID1cbiAgICAgICAgRGVwZW5kZW5jaWVzLnBhcnNlRGVwZW5kZW5jeSh0aGlzLmJ1bXBQYWNrYWdlKTtcbiAgICAgIG5vZGUucHJvamVjdC5kZXBzLnJlcXVlc3REZXBlbmRlbmN5KHtcbiAgICAgICAgbmFtZTogYnVtcE5hbWUsXG4gICAgICAgIHZlcnNpb246IGJ1bXBWZXJzaW9uLFxuICAgICAgICB0eXBlOiBEZXBlbmRlbmN5VHlwZS5CVUlMRCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHZlcnNpb25JbnB1dEZpbGUgPSBvcHRpb25zLnZlcnNpb25JbnB1dEZpbGU7XG5cbiAgICBjb25zdCBjaGFuZ2Vsb2dGaWxlID0gcG9zaXguam9pbihcbiAgICAgIG9wdGlvbnMuYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgdGhpcy5jaGFuZ2Vsb2dGaWxlTmFtZSxcbiAgICApO1xuICAgIGNvbnN0IGJ1bXBGaWxlID0gcG9zaXguam9pbihcbiAgICAgIG9wdGlvbnMuYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgdGhpcy52ZXJzaW9uRmlsZU5hbWUsXG4gICAgKTtcbiAgICBjb25zdCByZWxlYXNlVGFnRmlsZSA9IHBvc2l4LmpvaW4oXG4gICAgICBvcHRpb25zLmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgIHRoaXMucmVsZWFzZVRhZ0ZpbGVOYW1lLFxuICAgICk7XG5cbiAgICBjb25zdCBjb21tb25FbnY6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBPVVRGSUxFOiB2ZXJzaW9uSW5wdXRGaWxlLFxuICAgICAgQ0hBTkdFTE9HOiBjaGFuZ2Vsb2dGaWxlLFxuICAgICAgQlVNUEZJTEU6IGJ1bXBGaWxlLFxuICAgICAgUkVMRUFTRVRBRzogcmVsZWFzZVRhZ0ZpbGUsXG4gICAgICBSRUxFQVNFX1RBR19QUkVGSVg6IG9wdGlvbnMudGFnUHJlZml4ID8/IFwiXCIsXG4gICAgICAvLyBkb2Vzbid0IHdvcmsgaWYgY3VzdG9tIGNvbmZpZ3VyYXRpb24gaXMgbG9uZ1xuICAgICAgVkVSU0lPTlJDT1BUSU9OUzogSlNPTi5zdHJpbmdpZnkob3B0aW9ucy52ZXJzaW9ucmNPcHRpb25zKSxcbiAgICAgIEJVTVBfUEFDS0FHRTogdGhpcy5idW1wUGFja2FnZSxcbiAgICB9O1xuXG4gICAgLy8gVGhlIGNvbW1hbmQgdGhhdCBsaXN0cyByZWxlYXNhYmxlIGNvbW1pdHMsIHJ1biBhcyBpdHMgb3duIHNwYXduYWJsZSB0YXNrXG4gICAgLy8gc28gaXRzIHNoZWxsIGNhbiBiZSBjb25maWd1cmVkIGluZGVwZW5kZW50bHkgKHNlZSBgVGFza1NoZWxsYCkuXG4gICAgLy8gYCRMQVRFU1RfVEFHYCBpcyBwcm92aWRlZCBieSBgYnVtcGAgd2hlbiBzcGF3bmluZyBpdC5cbiAgICB0aGlzLnJlbGVhc2FibGVDb21taXRzVGFzayA9IHRoaXMucHJvamVjdC5hZGRUYXNrKFxuICAgICAgXCJidW1wOnJlbGVhc2FibGUtY29tbWl0c1wiLFxuICAgICAge1xuICAgICAgICBkZXNjcmlwdGlvbjogXCJQcmludCB0aGUgcmVsZWFzYWJsZSBjb21taXRzIHNpbmNlIHRoZSBsYXRlc3QgcmVsZWFzZVwiLFxuICAgICAgICBleGVjOiAob3B0aW9ucy5yZWxlYXNhYmxlQ29tbWl0cyA/PyBSZWxlYXNhYmxlQ29tbWl0cy5ldmVyeUNvbW1pdCgpKVxuICAgICAgICAgIC5jbWQsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvLyBUaGUgb3B0aW9uYWwgY29tbWFuZCB0aGF0IGRlY2lkZXMgdGhlIG5leHQgdmVyc2lvbiwgYWxzbyBpdHMgb3duIHRhc2suXG4gICAgaWYgKHRoaXMubmV4dFZlcnNpb25Db21tYW5kKSB7XG4gICAgICB0aGlzLm5leHRWZXJzaW9uVGFzayA9IHRoaXMucHJvamVjdC5hZGRUYXNrKFwiYnVtcDpuZXh0LXZlcnNpb25cIiwge1xuICAgICAgICBkZXNjcmlwdGlvbjogXCJEZXRlcm1pbmUgdGhlIG5leHQgdmVyc2lvbiB0byByZWxlYXNlXCIsXG4gICAgICAgIGV4ZWM6IHRoaXMubmV4dFZlcnNpb25Db21tYW5kLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gT3JjaGVzdHJhdGVzIHRoZSByZWxlYXNlIGJ1bXAgYXMgYSBwaXBlbGluZSBvZiBidWlsdGlucyBhbmQgc3Bhd25lZFxuICAgIC8vIHRhc2tzLCBoYW5kaW5nIHJlc3VsdHMgZm9yd2FyZCB2aWEgc3RlcCBgb3V0cHV0RW52YCBjYXB0dXJlcy5cbiAgICB0aGlzLmJ1bXBUYXNrID0gdGhpcy5wcm9qZWN0LmFkZFRhc2soXCJidW1wXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkJ1bXBzIHZlcnNpb24gYmFzZWQgb24gbGF0ZXN0IGdpdCB0YWcgYW5kIGdlbmVyYXRlcyBhIGNoYW5nZWxvZyBlbnRyeVwiLFxuICAgICAgY29uZGl0aW9uOiBDSEFOR0VTX1NJTkNFX0xBU1RfUkVMRUFTRSxcbiAgICAgIGVudjogeyAuLi5jb21tb25FbnYgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuYnVtcFRhc2suYWRkU3RlcHMoXG4gICAgICB7IGJ1aWx0aW46IFwicmVsZWFzZS9yZXNvbHZlLWxhdGVzdC10YWdcIiwgb3V0cHV0RW52OiBcIkxBVEVTVF9UQUdcIiB9LFxuICAgICAgLy8gT24gYSBmaXJzdCByZWxlYXNlIHRoZSByZXNvbHZlZCB0YWcgaXMgc3ludGhldGljIGFuZCBkb2VzIG5vdCBleGlzdCwgc29cbiAgICAgIC8vIHRoZXJlIGlzIG5vdGhpbmcgdG8gZGlmZiBhZ2FpbnN0IC0gc2tpcCBsaXN0aW5nIGNvbW1pdHMgaW4gdGhhdCBjYXNlLlxuICAgICAge1xuICAgICAgICBzcGF3bjogXCJidW1wOnJlbGVhc2FibGUtY29tbWl0c1wiLFxuICAgICAgICBvdXRwdXRFbnY6IFwiUkVMRUFTQUJMRV9DT01NSVRTXCIsXG4gICAgICAgIGNvbmRpdGlvbjogJ2dpdCByZXYtcGFyc2UgLS12ZXJpZnkgLS1xdWlldCBcInJlZnMvdGFncy8kTEFURVNUX1RBR1wiJyxcbiAgICAgIH0sXG4gICAgICB7IGJ1aWx0aW46IFwicmVsZWFzZS9zdWdnZXN0LXZlcnNpb24tYnVtcFwiLCBvdXRwdXRFbnY6IFwiU1VHR0VTVEVEX0JVTVBcIiB9LFxuICAgICk7XG4gICAgaWYgKHRoaXMubmV4dFZlcnNpb25UYXNrKSB7XG4gICAgICAvLyBgYnVtcDpuZXh0LXZlcnNpb25gIHJlY2VpdmVzIGAkVkVSU0lPTmAgKHRoZSBjdXJyZW50IHZlcnNpb24pOyByZWFkIGl0XG4gICAgICAvLyBmcm9tIHRoZSB2ZXJzaW9uIGZpbGUgaW50byBgVkVSU0lPTmAgc28gaXQgcHJvcGFnYXRlcyB0byB0aGUgc3Bhd24uXG4gICAgICB0aGlzLmJ1bXBUYXNrLmFkZFN0ZXBzKFxuICAgICAgICB7XG4gICAgICAgICAgZXhlYzogYG5vZGUgLWUgXCJwcm9jZXNzLnN0ZG91dC53cml0ZShKU09OLnBhcnNlKHJlcXVpcmUoJ2ZzJykucmVhZEZpbGVTeW5jKHByb2Nlc3MuZW52Lk9VVEZJTEUsJ3V0ZjgnKSkudmVyc2lvbilcImAsXG4gICAgICAgICAgb3V0cHV0RW52OiBcIlZFUlNJT05cIixcbiAgICAgICAgfSxcbiAgICAgICAgeyBzcGF3bjogXCJidW1wOm5leHQtdmVyc2lvblwiLCBvdXRwdXRFbnY6IFwiQlVNUF9UWVBFXCIgfSxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuYnVtcFRhc2suYWRkU3RlcHMoeyBidWlsdGluOiBcInJlbGVhc2UvYXBwbHktdmVyc2lvbi1idW1wXCIgfSk7XG5cbiAgICAvLyBSZXNldHMgdGhlIHZlcnNpb24gaW4gdGhlIHZlcnNpb24gZmlsZSBiYWNrIHRvIDAuMC4wIGFmdGVyIGEgYnVtcC5cbiAgICB0aGlzLnVuYnVtcFRhc2sgPSB0aGlzLnByb2plY3QuYWRkVGFzayhcInVuYnVtcFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJSZXN0b3JlcyB2ZXJzaW9uIHRvIDAuMC4wXCIsXG4gICAgICBlbnY6IHsgLi4uY29tbW9uRW52IH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnVuYnVtcFRhc2suYnVpbHRpbihcInJlbGVhc2UvcmVzZXQtdmVyc2lvblwiKTtcblxuICAgIHRoaXMucHJvamVjdC5hZGRHaXRJZ25vcmUoYC8ke2NoYW5nZWxvZ0ZpbGV9YCk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZEdpdElnbm9yZShgLyR7YnVtcEZpbGV9YCk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFBhY2thZ2VJZ25vcmUoYC8ke2NoYW5nZWxvZ0ZpbGV9YCk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFBhY2thZ2VJZ25vcmUoYC8ke2J1bXBGaWxlfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIG1vZGlmeSB0aGUgYnVtcCBjb21tYW5kIGZvciByZWxlYXNlIGJyYW5jaGVzLlxuICAgKlxuICAgKiBUaGVzZSBvcHRpb25zIGFyZSB1c2VkIHRvIG1vZGlmeSB0aGUgYmVoYXZpb3Igb2YgdGhlIHZlcnNpb24gYnVtcGluZyBzY3JpcHRcbiAgICogZm9yIGFkZGl0aW9uYWwgYnJhbmNoZXMsIGJ5IHNldHRpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKlxuICAgKiBObyBzZXR0aW5ncyBhcmUgaW5oZXJpdGVkIGZyb20gdGhlIGJhc2UgYFZlcnNpb25gIG9iamVjdCAoYnV0IGFueSBwYXJhbWV0ZXJzIHRoYXRcbiAgICogY29udHJvbCB2ZXJzaW9ucyBkbyBjb25mbGljdCB3aXRoIHRoZSB1c2Ugb2YgYSBgbmV4dFZlcnNpb25Db21tYW5kYCkuXG4gICAqL1xuICBwdWJsaWMgZW52Rm9yQnJhbmNoKFxuICAgIGJyYW5jaE9wdGlvbnM6IFZlcnNpb25CcmFuY2hPcHRpb25zLFxuICApOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBpZiAodGhpcy5uZXh0VmVyc2lvbkNvbW1hbmQgJiYgYnJhbmNoT3B0aW9ucy5taW5NYWpvclZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJtaW5NYWpvclZlcnNpb24gYW5kIG5leHRWZXJzaW9uQ29tbWFuZCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlci5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgZW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgaWYgKGJyYW5jaE9wdGlvbnMubWFqb3JWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGVudi5NQUpPUiA9IGJyYW5jaE9wdGlvbnMubWFqb3JWZXJzaW9uLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKGJyYW5jaE9wdGlvbnMubWluTWFqb3JWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChicmFuY2hPcHRpb25zLm1ham9yVmVyc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgbWluTWFqb3JWZXJzaW9uIGFuZCBtYWpvclZlcnNpb24gY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgZW52Lk1JTl9NQUpPUiA9IGJyYW5jaE9wdGlvbnMubWluTWFqb3JWZXJzaW9uLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKGJyYW5jaE9wdGlvbnMucHJlcmVsZWFzZSkge1xuICAgICAgZW52LlBSRVJFTEVBU0UgPSBicmFuY2hPcHRpb25zLnByZXJlbGVhc2U7XG4gICAgfVxuXG4gICAgaWYgKGJyYW5jaE9wdGlvbnMudGFnUHJlZml4KSB7XG4gICAgICBlbnYuUkVMRUFTRV9UQUdfUFJFRklYID0gYnJhbmNoT3B0aW9ucy50YWdQcmVmaXg7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVudjtcbiAgfVxufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gcGFzcyB0byBgbW9kaWZ5QnJhbmNoRW52aXJvbm1lbnRgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2lvbkJyYW5jaE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1ham9yIHZlcnNpb25zIHJlbGVhc2VkIGZyb20gdGhpcyBicmFuY2guXG4gICAqL1xuICByZWFkb25seSBtYWpvclZlcnNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIG1ham9yIHZlcnNpb24gdG8gcmVsZWFzZS5cbiAgICovXG4gIHJlYWRvbmx5IG1pbk1ham9yVmVyc2lvbj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG1pbm9yIHZlcnNpb25zIHJlbGVhc2VkIGZyb20gdGhpcyBicmFuY2guXG4gICAqL1xuICByZWFkb25seSBtaW5vclZlcnNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEJ1bXAgdGhlIHZlcnNpb24gYXMgYSBwcmUtcmVsZWFzZSB0YWcuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9ybWFsIHJlbGVhc2VzXG4gICAqL1xuICByZWFkb25seSBwcmVyZWxlYXNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGFkZCB0aGUgZ2l2ZW4gcHJlZml4IHRvIHJlbGVhc2UgdGFncy5cbiAgICogVXNlZnVsIGlmIHlvdSBhcmUgcmVsZWFzaW5nIG9uIG11bHRpcGxlIGJyYW5jaGVzIHdpdGggb3ZlcmxhcHBpbmdcbiAgICogdmVyc2lvbiBudW1iZXJzLlxuICAgKlxuICAgKiBOb3RlOiB0aGlzIHByZWZpeCBpcyB1c2VkIHRvIGRldGVjdCB0aGUgbGF0ZXN0IHRhZ2dlZCB2ZXJzaW9uXG4gICAqIHdoZW4gYnVtcGluZywgc28gaWYgeW91IGNoYW5nZSB0aGlzIG9uIGEgcHJvamVjdCB3aXRoIGFuIGV4aXN0aW5nIHZlcnNpb25cbiAgICogaGlzdG9yeSwgeW91IG1heSBuZWVkIHRvIG1hbnVhbGx5IHRhZyB5b3VyIGxhdGVzdCByZWxlYXNlXG4gICAqIHdpdGggdGhlIG5ldyBwcmVmaXguXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcHJlZml4XG4gICAqL1xuICByZWFkb25seSB0YWdQcmVmaXg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRmluZCBjb21taXRzIHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcmVsZWFzYWJsZSB0byBkZWNpZGUgaWYgYSByZWxlYXNlIGlzIHJlcXVpcmVkLlxuICpcbiAqIFRoaXMgc2V0dGluZyBvbmx5IGNvbnRyb2xzIHdoZXRoZXIgYSByZWxlYXNlIGlzIHRyaWdnZXJlZCwgeWVzIG9yIG5vLiBUaGVcbiAqIHBhdGhzIHVzZWQgaGVyZSBhcmUgaW5kZXBlbmRlbnQgb2YgdGhlIGNvZGUgdGhhdCBjb250cm9scyB3aGF0IGNvbW1pdHMgYXJlIGluc3BlY3RlZFxuICogdG8gZGV0ZXJtaW5lIHRoZSB2ZXJzaW9uIG51bWJlci5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlbGVhc2FibGVDb21taXRzIHtcbiAgLyoqXG4gICAqIFJlbGVhc2UgZXZlcnkgY29tbWl0XG4gICAqXG4gICAqIFRoaXMgd2lsbCBvbmx5IG5vdCByZWxlYXNlIGlmIHRoZSBtb3N0IHJlY2VudCBjb21taXQgaXMgdGFnZ2VkIHdpdGggdGhlIGxhdGVzdCBtYXRjaGluZyB0YWcuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIENvbnNpZGVyIG9ubHkgY29tbWl0cyB0aGF0IGFyZSBlbm91Z2ggdG8gZXhwbGFpbiBob3cgdGhlIGZpbGVzIHRoYXQgbWF0Y2ggdGhlIHNwZWNpZmllZCBwYXRocyBjYW1lIHRvIGJlLlxuICAgKiBUaGlzIHBhdGggaXMgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgd29ya2luZyBkaXIgb2YgdGhlIGBidW1wYCB0YXNrLCBpLmUuIHRvIG9ubHkgY29uc2lkZXIgY29tbWl0cyBvZiBhIHN1YnByb2plY3QgdXNlIGBcIi5cImAuXG4gICAqL1xuICBzdGF0aWMgZXZlcnlDb21taXQocGF0aD86IHN0cmluZykge1xuICAgIGNvbnN0IGNtZCA9IGBnaXQgbG9nIC0tb25lbGluZSAkTEFURVNUX1RBRy4uSEVBRGA7XG4gICAgcmV0dXJuIG5ldyBSZWxlYXNhYmxlQ29tbWl0cyh3aXRoUGF0aChjbWQsIHBhdGgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1pdCBjb21taXRzIGJ5IHRoZWlyIGNvbnZlbnRpb25hbCBjb21taXQgdHlwZVxuICAgKlxuICAgKiBUaGlzIHdpbGwgb25seSByZWxlYXNlIGNvbW1pdCB0aGF0IG1hdGNoIG9uZSBvZiB0aGUgcHJvdmlkZWQgdHlwZXMuXG4gICAqIENvbW1pdHMgYXJlIHJlcXVpcmVkIHRvIGZvbGxvdyB0aGUgY29udmVudGlvbmFsIGNvbW1pdCBzcGVjIGFuZCB3aWxsIGJlIGlnbm9yZWQgb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAcGFyYW0gdHlwZXMgTGlzdCBvZiBjb252ZW50aW9uYWwgY29tbWl0IHR5cGVzIHRoYXQgc2hvdWxkIGJlIHJlbGVhc2VkXG4gICAqIEBwYXJhbSBwYXRoIENvbnNpZGVyIG9ubHkgY29tbWl0cyB0aGF0IGFyZSBlbm91Z2ggdG8gZXhwbGFpbiBob3cgdGhlIGZpbGVzIHRoYXQgbWF0Y2ggdGhlIHNwZWNpZmllZCBwYXRocyBjYW1lIHRvIGJlLlxuICAgKiBUaGlzIHBhdGggaXMgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgd29ya2luZyBkaXIgb2YgdGhlIGBidW1wYCB0YXNrLCBpLmUuIHRvIG9ubHkgY29uc2lkZXIgY29tbWl0cyBvZiBhIHN1YnByb2plY3QgdXNlIGBcIi5cImAuXG4gICAqL1xuICBzdGF0aWMgb2ZUeXBlKHR5cGVzOiBzdHJpbmdbXSwgcGF0aD86IHN0cmluZykge1xuICAgIGNvbnN0IGFsbG93ZWRUeXBlcyA9IHR5cGVzLmpvaW4oXCJ8XCIpO1xuXG4gICAgLy8gQHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NvbnZlbnRpb25hbC1jb21taXRzL3BhcnNlci9ibG9iL2VlZWZiOTYxZWJmNWI5ZGZlYTBmZWE4YjA2ZjhhZDM0YTFlNDM5YjkvbGliL3BhcnNlci5qc1xuICAgIC8vIC1FIHJlcXVpcmVzIHRoaXMgdG8gYmUgUE9TSVggRXh0ZW5kZWQgUmVndWxhciBFeHByZXNzaW9uLCB3aGljaCBjb21lcyB3aXRoIGNlcnRhaW4gbGltaXRhdGlvbnNcbiAgICAvLyBzZWUgaHR0cHM6Ly9lbi53aWtpYm9va3Mub3JnL3dpa2kvUmVndWxhcl9FeHByZXNzaW9ucy9QT1NJWC1FeHRlbmRlZF9SZWd1bGFyX0V4cHJlc3Npb25zIGZvciBkZXRhaWxzXG4gICAgY29uc3QgY21kID0gYGdpdCBsb2cgLS1uby1tZXJnZXMgLS1vbmVsaW5lICRMQVRFU1RfVEFHLi5IRUFEIC1FIC0tZ3JlcCAnXigke2FsbG93ZWRUeXBlc30pezF9KFxcXFwoW14oKVs6c3BhY2U6XV0rXFxcXCkpPyghKT86W1s6Ymxhbms6XV0rLisnYDtcblxuICAgIHJldHVybiBuZXcgUmVsZWFzYWJsZUNvbW1pdHMod2l0aFBhdGgoY21kLCBwYXRoKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVsZWFzZSBvbmx5IGZlYXR1cmVzIGFuZCBmaXhlc1xuICAgKlxuICAgKiBTaG9ydGhhbmQgZm9yIGBSZWxlYXNhYmxlQ29tbWl0cy5vbmx5T2ZUeXBlKFsnZmVhdCcsICdmaXgnXSlgLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCBDb25zaWRlciBvbmx5IGNvbW1pdHMgdGhhdCBhcmUgZW5vdWdoIHRvIGV4cGxhaW4gaG93IHRoZSBmaWxlcyB0aGF0IG1hdGNoIHRoZSBzcGVjaWZpZWQgcGF0aHMgY2FtZSB0byBiZS5cbiAgICogVGhpcyBwYXRoIGlzIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyIG9mIHRoZSBgYnVtcGAgdGFzaywgaS5lLiB0byBvbmx5IGNvbnNpZGVyIGNvbW1pdHMgb2YgYSBzdWJwcm9qZWN0IHVzZSBgXCIuXCJgLlxuICAgKi9cbiAgc3RhdGljIGZlYXR1cmVzQW5kRml4ZXMocGF0aD86IHN0cmluZykge1xuICAgIHJldHVybiBSZWxlYXNhYmxlQ29tbWl0cy5vZlR5cGUoW1wiZmVhdFwiLCBcImZpeFwiXSwgcGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGFuIGFyYml0cmFyeSBzaGVsbCBjb21tYW5kIHRvIGZpbmQgcmVsZWFzYWJsZSBjb21taXRzIHNpbmNlIHRoZSBsYXRlc3QgdGFnLlxuICAgKlxuICAgKiBBIG5ldyByZWxlYXNlIHdpbGwgYmUgaW5pdGlhdGVkLCBpZiB0aGUgbnVtYmVyIG9mIHJldHVybmVkIGNvbW1pdHMgaXMgZ3JlYXRlciB0aGFuIHplcm8uXG4gICAqIE11c3QgcmV0dXJuIGEgbmV3bGluZSBzZXBhcmF0ZSBsaXN0IG9mIGNvbW1pdHMgdGhhdCBzaG91bGQgY29uc2lkZXJlZCByZWxlYXNhYmxlLlxuICAgKiBgJExBVEVTVF9UQUdgIGlzIGF2YWlsYWJsZSBhcyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSAoc2V0IHRvIHRoZSBhY3R1YWwgbGF0ZXN0IHRhZyBmb3IgdGhlIGdpdmVuIHByZWZpeCkuXG4gICAqXG4gICAqIEBleGFtcGxlIFwiZ2l0IGxvZyAtLW9uZWxpbmUgJExBVEVTVF9UQUcuLkhFQUQgLS0gLlwiXG4gICAqL1xuICBzdGF0aWMgZXhlYyhjbWQ6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgUmVsZWFzYWJsZUNvbW1pdHMoY21kKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHVibGljIGNtZDogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIEFwcGVuZCBhIHBhdGggYXJndW1lbnQgdG8gYSBnaXQgY29tbWFuZCBpZiBvbmUgaXMgcHJvdmlkZWRcbiAqL1xuZnVuY3Rpb24gd2l0aFBhdGgoY21kOiBzdHJpbmcsIHBhdGg/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAocGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGAke2NtZH0gLS0gJHtwYXRofWA7XG4gIH1cblxuICByZXR1cm4gY21kO1xufVxuIl19
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwrQkFBNkI7QUFFN0IsMkNBQXdDO0FBQ3hDLGlEQUE4RDtBQUM5RCw0REFBd0Q7QUFHeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNVLFFBQUEsMEJBQTBCLEdBQ3JDLDhEQUE4RCxDQUFDO0FBRWpFOztHQUVHO0FBQ0gsTUFBTSw4QkFBOEIsR0FBRyw0QkFBNEIsQ0FBQztBQXNFcEUsTUFBYSxPQUFRLFNBQVEscUJBQVM7O0lBQ3BCLFFBQVEsQ0FBTztJQUNmLFVBQVUsQ0FBTztJQUVqQzs7O09BR0c7SUFDYSxxQkFBcUIsQ0FBTztJQUU1Qzs7O09BR0c7SUFDYSxlQUFlLENBQVE7SUFFdkM7O09BRUc7SUFDYSxpQkFBaUIsQ0FBUztJQUUxQzs7T0FFRztJQUNhLGVBQWUsQ0FBUztJQUV4Qzs7T0FFRztJQUNhLGtCQUFrQixDQUFTO0lBRTNDOzs7T0FHRztJQUNhLFdBQVcsQ0FBUztJQUVuQixrQkFBa0IsQ0FBVTtJQUU3QyxZQUFZLEtBQWlCLEVBQUUsT0FBdUI7UUFDcEQsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGNBQWMsQ0FBQztRQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQztRQUNyQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUM7UUFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLDhCQUE4QixDQUFDO1FBQ3pFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUM7UUFFckQsMENBQTBDO1FBQzFDLHdIQUF3SDtRQUN4SCxNQUFNLElBQUksR0FBRywwQkFBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7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UUFDdkcsTUFBTSxHQUFHLEdBQUcsZ0VBQWdFLFlBQVksa0RBQWtELENBQUM7UUFFM0ksT0FBTyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFhO1FBQ25DLE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBVztRQUNyQixPQUFPLElBQUksaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFlBQTJCLEdBQVc7UUFBWCxRQUFHLEdBQUgsR0FBRyxDQUFRO0lBQUcsQ0FBQzs7QUE1RDVDLDhDQTZEQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxRQUFRLENBQUMsR0FBVyxFQUFFLElBQWE7SUFDMUMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdkIsT0FBTyxHQUFHLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcG9zaXggfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgRGVwZW5kZW5jaWVzLCBEZXBlbmRlbmN5VHlwZSB9IGZyb20gXCIuL2RlcGVuZGVuY2llc1wiO1xuaW1wb3J0IHsgTm9kZVBhY2thZ2UgfSBmcm9tIFwiLi9qYXZhc2NyaXB0L25vZGUtcGFja2FnZVwiO1xuaW1wb3J0IHR5cGUgeyBUYXNrIH0gZnJvbSBcIi4vdGFza1wiO1xuXG4vKipcbiAqIFRoaXMgY29tbWFuZCBkZXRlcm1pbmVzIGlmIHRoZXJlIHdlcmUgYW55IGNoYW5nZXMgc2luY2UgdGhlIGxhc3QgcmVsZWFzZSBpbiBhXG4gKiBjcm9zcy1wbGF0Zm9ybSBjb21wYXRpYmxlIHdheS4gSXQgaXMgdXNlZCBhcyBhIGNvbmRpdGlvbiBmb3IgYm90aCB0aGUgYGJ1bXBgXG4gKiBhbmQgdGhlIGByZWxlYXNlYCB0YXNrczogaXQgZXhpdHMgMCAocHJvY2VlZCkgd2hlbiB0aGUgbW9zdCByZWNlbnQgY29tbWl0IGlzXG4gKiBub3QgYSByZWxlYXNlIGNvbW1pdCwgYW5kIG5vbi16ZXJvIChza2lwKSB3aGVuIHRoZSBtb3N0IHJlY2VudCBjb21taXQgaXMgYVxuICogYGNob3JlKHJlbGVhc2UpOmAgY29tbWl0LlxuICpcbiAqIEV4cGxhbmF0aW9uOlxuICogIC0gYGdpdCBsb2cgLS1vbmVsaW5lIC0xYCAgICAgICAgICB0aGUgbW9zdCByZWNlbnQgY29tbWl0LCBvbmUgbGluZVxuICogIC0gYHwgZ3JlcCAtdiBcImNob3JlKHJlbGVhc2UpOlwiYCAgIHBhc3MgdGhlIGxpbmUgdGhyb3VnaCBvbmx5IGlmIGl0IGlzIE5PVCBhIHJlbGVhc2UgY29tbWl0XG4gKiAgLSBgPiAvZGV2L251bGxgICAgICAgICAgICAgICAgICAgIGRpc2NhcmQgZ3JlcCdzIG91dHB1dDsgb25seSBpdHMgZXhpdCBjb2RlIG1hdHRlcnNcbiAqXG4gKiBncmVwIGV4aXRzIDAgd2hlbiBpdCBwcmludHMgYXQgbGVhc3Qgb25lIG5vbi1tYXRjaGluZyBsaW5lIChhIG5vcm1hbCBjb21taXQsXG4gKiBzbyBwcm9jZWVkKSBhbmQgMSB3aGVuIGV2ZXJ5IGxpbmUgbWF0Y2hlcyAoYSByZWxlYXNlIGNvbW1pdCwgc28gc2tpcCkuXG4gKlxuICogSU1QT1JUQU5UOiBkbyBOT1QgcmVpbnRyb2R1Y2UgYGdyZXAgLXFgIGhlcmUgKGkuZS4gZG8gbm90IFwib3B0aW1pemVcIiB0aGlzIGJhY2tcbiAqIHRvIGBncmVwIC1xdmApLiBgZ3JlcCAtcWAgZXhpdHMgYXMgc29vbiBhcyBpdCBoYXMgYW4gYW5zd2VyIGFuZCBjbG9zZXMgdGhlIHJlYWRcbiAqIGVuZCBvZiB0aGUgcGlwZS4gV2hlbiB0aGlzIGNvbmRpdGlvbiBydW5zIHRocm91Z2ggcHJvamVuJ3MgYnVpbHQtaW4gKGRheClcbiAqIHNoZWxsLCB0aGF0IGVhcmx5IGNsb3NlIHJhY2VzIHdpdGggYGdpdCBsb2dgIHN0aWxsIHdyaXRpbmcgdG8gdGhlIHBpcGUsIGFuZCBkYXhcbiAqIHN1cmZhY2VzIHRoZSBmYWlsZWQgd3JpdGUgYXMgYSBzcHVyaW91cyBub24temVybyBleGl0IChcInN0ZGluIHBpcGUgYnJva2VuLlxuICogSW52YWxpZCBzdGF0ZTogV3JpdGFibGVTdHJlYW0gaXMgY2xvc2VkXCIpLiBUaGUgdGFzayBydW50aW1lIGNhbm5vdCBkaXN0aW5ndWlzaFxuICogdGhhdCBmcm9tIGEgbGVnaXRpbWF0ZSBza2lwIChkYXggcmVwb3J0cyBpdCBhcyBhIHBsYWluIG5vbi16ZXJvIGNvZGUgdW5kZXJcbiAqIGAubm9UaHJvdygpYCwgbm90IGFzIGFuIGVycm9yKSwgc28gdGhlIGJ1bXAvcmVsZWFzZSB0YXNrIGlzIHNpbGVudGx5IHNraXBwZWQ6IGFcbiAqIHJlbGVhc2UgaXMgbWlzc2VkLCBvciBhIGRlcGVuZGVudCBwdWJsaXNoZXMgYSBicm9rZW4gYF4wLjAuMGAgdmVyc2lvbiByYW5nZS5cbiAqIFBsYWluIGBncmVwIC12IC4uLiA+IC9kZXYvbnVsbGAgcmVhZHMgdG8gRU9GIGluc3RlYWQgb2Ygc2hvcnQtY2lyY3VpdGluZywgc28gaXRcbiAqIG5ldmVyIGNsb3NlcyB0aGUgcGlwZSB3aGlsZSB0aGUgd3JpdGVyIGlzIGFjdGl2ZSBhbmQgdGhlIHJhY2UgY2Fubm90IG9jY3VyLiBUaGVcbiAqIGV4aXQgc2VtYW50aWNzIGFyZSBpZGVudGljYWwgdG8gdGhlIHByZXZpb3VzIGBncmVwIC1xdmAuXG4gKi9cbmV4cG9ydCBjb25zdCBDSEFOR0VTX1NJTkNFX0xBU1RfUkVMRUFTRSA9XG4gICdnaXQgbG9nIC0tb25lbGluZSAtMSB8IGdyZXAgLXYgXCJjaG9yZShyZWxlYXNlKTpcIiA+IC9kZXYvbnVsbCc7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgcGFja2FnZSB0byBiZSB1c2VkIGZvciBjb21taXQtYW5kLXRhZy12ZXJzaW9uXG4gKi9cbmNvbnN0IENPTU1JVF9BTkRfVEFHX1ZFUlNJT05fREVGQVVMVCA9IFwiY29tbWl0LWFuZC10YWctdmVyc2lvbkBeMTNcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgVmVyc2lvbmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2lvbk9wdGlvbnMge1xuICAvKipcbiAgICogQSBuYW1lIG9mIGEgLmpzb24gZmlsZSB0byBzZXQgdGhlIGB2ZXJzaW9uYCBmaWVsZCBpbiBhZnRlciBhIGJ1bXAuXG4gICAqXG4gICAqIEBleGFtcGxlIFwicGFja2FnZS5qc29uXCJcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25JbnB1dEZpbGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSBpbnRvIHdoaWNoIGBjaGFuZ2Vsb2cubWRgIGFuZCBgdmVyc2lvbi50eHRgIGZpbGVzXG4gICAqIGFyZSBlbWl0dGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYXJ0aWZhY3RzRGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBjb25maWd1cmF0aW9uIGZvciB2ZXJzaW9ucmMgZmlsZSB1c2VkIGJ5IHN0YW5kYXJkLXJlbGVhc2VcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25yY09wdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFnIHByZWZpeCBjb3JyZXNwb25kaW5nIHRvIHRoaXMgdmVyc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IHRhZ1ByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogRmluZCBjb21taXRzIHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcmVsZWFzYWJsZVxuICAgKiBVc2VkIHRvIGRlY2lkZSBpZiBhIHJlbGVhc2UgaXMgcmVxdWlyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFJlbGVhc2FibGVDb21taXRzLmV2ZXJ5Q29tbWl0KClcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2FibGVDb21taXRzPzogUmVsZWFzYWJsZUNvbW1pdHM7XG5cbiAgLyoqXG4gICAqIFRoZSBgY29tbWl0LWFuZC10YWctdmVyc2lvbmAgY29tcGF0aWJsZSBwYWNrYWdlIHVzZWQgdG8gYnVtcCB0aGUgcGFja2FnZSB2ZXJzaW9uLCBhcyBhIGRlcGVuZGVuY3kgc3RyaW5nLlxuICAgKlxuICAgKiBUaGlzIGNhbiBiZSBhbnkgY29tcGF0aWJsZSBwYWNrYWdlIHZlcnNpb24sIGluY2x1ZGluZyB0aGUgZGVwcmVjYXRlZCBgc3RhbmRhcmQtdmVyc2lvbkA5YC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJjb21taXQtYW5kLXRhZy12ZXJzaW9uQDEzXCJcbiAgICovXG4gIHJlYWRvbmx5IGJ1bXBQYWNrYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHNoZWxsIGNvbW1hbmQgdG8gY29udHJvbCB0aGUgbmV4dCB2ZXJzaW9uIHRvIHJlbGVhc2UuXG4gICAqXG4gICAqIElmIHByZXNlbnQsIHRoaXMgc2hlbGwgY29tbWFuZCB3aWxsIGJlIHJ1biBiZWZvcmUgdGhlIGJ1bXAgaXMgZXhlY3V0ZWQsIGFuZFxuICAgKiBpdCBkZXRlcm1pbmVzIHdoYXQgdmVyc2lvbiB0byByZWxlYXNlLiBJdCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBmb2xsb3dpbmdcbiAgICogZW52aXJvbm1lbnQ6XG4gICAqXG4gICAqIC0gV29ya2luZyBkaXJlY3Rvcnk6IHRoZSBwcm9qZWN0IGRpcmVjdG9yeS5cbiAgICogLSBgJFZFUlNJT05gOiB0aGUgY3VycmVudCB2ZXJzaW9uLiBMb29rcyBsaWtlIGAxLjIuM2AuXG4gICAqIC0gYCRMQVRFU1RfVEFHYDogdGhlIG1vc3QgcmVjZW50IHRhZy4gTG9va3MgbGlrZSBgcHJlZml4LXYxLjIuM2AsIG9yIG1heSBiZSB1bnNldC5cbiAgICogLSBgJFNVR0dFU1RFRF9CVU1QYDogdGhlIHN1Z2dlc3RlZCBidW1wIGFjdGlvbiBiYXNlZCBvbiBjb21taXRzLiBPbmUgb2YgYG1ham9yfG1pbm9yfHBhdGNofG5vbmVgLlxuICAgKlxuICAgKiBUaGUgY29tbWFuZCBzaG91bGQgcHJpbnQgb25lIG9mIHRoZSBmb2xsb3dpbmcgdG8gYHN0ZG91dGA6XG4gICAqXG4gICAqIC0gTm90aGluZzogdGhlIG5leHQgdmVyc2lvbiBudW1iZXIgd2lsbCBiZSBkZXRlcm1pbmVkIGJhc2VkIG9uIGNvbW1pdCBoaXN0b3J5LlxuICAgKiAtIGB4LnkuemA6IHRoZSBuZXh0IHZlcnNpb24gbnVtYmVyIHdpbGwgYmUgYHgueS56YC5cbiAgICogLSBgbWFqb3J8bWlub3J8cGF0Y2hgOiB0aGUgbmV4dCB2ZXJzaW9uIG51bWJlciB3aWxsIGJlIHRoZSBjdXJyZW50IHZlcnNpb24gbnVtYmVyXG4gICAqICAgd2l0aCB0aGUgaW5kaWNhdGVkIGNvbXBvbmVudCBidW1wZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIG5leHQgdmVyc2lvbiB3aWxsIGJlIGRldGVybWluZWQgYmFzZWQgb24gdGhlIGNvbW1pdCBoaXN0b3J5IGFuZCBwcm9qZWN0IHNldHRpbmdzLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV4dFZlcnNpb25Db21tYW5kPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgVmVyc2lvbiBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBidW1wVGFzazogVGFzaztcbiAgcHVibGljIHJlYWRvbmx5IHVuYnVtcFRhc2s6IFRhc2s7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXNrIHRoYXQgcHJpbnRzIHRoZSByZWxlYXNhYmxlIGNvbW1pdHMgc2luY2UgdGhlIGxhdGVzdCB0YWcuIFNwYXduZWRcbiAgICogYnkgYGJ1bXBgOyBpdHMgc2hlbGwgY2FuIGJlIG92ZXJyaWRkZW4gdmlhIGB0YXNrLnNoZWxsYC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZWxlYXNhYmxlQ29tbWl0c1Rhc2s6IFRhc2s7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXNrIHRoYXQgcnVucyB0aGUgdXNlcidzIGBuZXh0VmVyc2lvbkNvbW1hbmRgLCBpZiBjb25maWd1cmVkLiBTcGF3bmVkXG4gICAqIGJ5IGBidW1wYDsgaXRzIHNoZWxsIGNhbiBiZSBvdmVycmlkZGVuIHZpYSBgdGFzay5zaGVsbGAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmV4dFZlcnNpb25UYXNrPzogVGFzaztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNoYW5nZWxvZyBmaWxlICh1bmRlciBgYXJ0aWZhY3RzRGlyZWN0b3J5YCkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlbG9nRmlsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGZpbGUgdGhhdCBjb250YWlucyB0aGUgdmVyc2lvbiAodW5kZXIgYGFydGlmYWN0c0RpcmVjdG9yeWApLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb25GaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSByZWxlYXNlIHRhZyAodW5kZXIgYGFydGlmYWN0c0RpcmVjdG9yeWApLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlbGVhc2VUYWdGaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZSB1c2VkIHRvIGJ1bXAgcGFja2FnZSB2ZXJzaW9ucywgYXMgYSBkZXBlbmRlbmN5IHN0cmluZy5cbiAgICogVGhpcyBpcyBhIGBjb21taXQtYW5kLXRhZy12ZXJzaW9uYCBjb21wYXRpYmxlIHBhY2thZ2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnVtcFBhY2thZ2U6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IG5leHRWZXJzaW9uQ29tbWFuZD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogSUNvbnN0cnVjdCwgb3B0aW9uczogVmVyc2lvbk9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSk7XG5cbiAgICB0aGlzLmNoYW5nZWxvZ0ZpbGVOYW1lID0gXCJjaGFuZ2Vsb2cubWRcIjtcbiAgICB0aGlzLnZlcnNpb25GaWxlTmFtZSA9IFwidmVyc2lvbi50eHRcIjtcbiAgICB0aGlzLnJlbGVhc2VUYWdGaWxlTmFtZSA9IFwicmVsZWFzZXRhZy50eHRcIjtcbiAgICB0aGlzLmJ1bXBQYWNrYWdlID0gb3B0aW9ucy5idW1wUGFja2FnZSA/PyBDT01NSVRfQU5EX1RBR19WRVJTSU9OX0RFRkFVTFQ7XG4gICAgdGhpcy5uZXh0VmVyc2lvbkNvbW1hbmQgPSBvcHRpb25zLm5leHRWZXJzaW9uQ29tbWFuZDtcblxuICAgIC8vIFRoaXMgY29tcG9uZW50IGlzIGxhbmd1YWdlIGluZGVwZW5kZW50LlxuICAgIC8vIEhvd2V2ZXIsIHdoZW4gaW4gdGhlIE5vZGUuanMgZWNvc3lzdGVtLCB3ZSBjYW4gaW1wcm92ZSB0aGUgZXhwZXJpZW5jZSBieSBhZGRpbmcgYSBkZXYgZGVwZW5kZW5jeSBvbiB0aGUgYnVtcCBwYWNrYWdlLlxuICAgIGNvbnN0IG5vZGUgPSBOb2RlUGFja2FnZS5vZih0aGlzLnByb2plY3QpO1xuICAgIGlmIChub2RlKSB7XG4gICAgICBjb25zdCB7IG5hbWU6IGJ1bXBOYW1lLCB2ZXJzaW9uOiBidW1wVmVyc2lvbiB9ID1cbiAgICAgICAgRGVwZW5kZW5jaWVzLnBhcnNlRGVwZW5kZW5jeSh0aGlzLmJ1bXBQYWNrYWdlKTtcbiAgICAgIG5vZGUucHJvamVjdC5kZXBzLnJlcXVlc3REZXBlbmRlbmN5KHtcbiAgICAgICAgbmFtZTogYnVtcE5hbWUsXG4gICAgICAgIHZlcnNpb246IGJ1bXBWZXJzaW9uLFxuICAgICAgICB0eXBlOiBEZXBlbmRlbmN5VHlwZS5CVUlMRCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHZlcnNpb25JbnB1dEZpbGUgPSBvcHRpb25zLnZlcnNpb25JbnB1dEZpbGU7XG5cbiAgICBjb25zdCBjaGFuZ2Vsb2dGaWxlID0gcG9zaXguam9pbihcbiAgICAgIG9wdGlvbnMuYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgdGhpcy5jaGFuZ2Vsb2dGaWxlTmFtZSxcbiAgICApO1xuICAgIGNvbnN0IGJ1bXBGaWxlID0gcG9zaXguam9pbihcbiAgICAgIG9wdGlvbnMuYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgdGhpcy52ZXJzaW9uRmlsZU5hbWUsXG4gICAgKTtcbiAgICBjb25zdCByZWxlYXNlVGFnRmlsZSA9IHBvc2l4LmpvaW4oXG4gICAgICBvcHRpb25zLmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgIHRoaXMucmVsZWFzZVRhZ0ZpbGVOYW1lLFxuICAgICk7XG5cbiAgICBjb25zdCBjb21tb25FbnY6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBPVVRGSUxFOiB2ZXJzaW9uSW5wdXRGaWxlLFxuICAgICAgQ0hBTkdFTE9HOiBjaGFuZ2Vsb2dGaWxlLFxuICAgICAgQlVNUEZJTEU6IGJ1bXBGaWxlLFxuICAgICAgUkVMRUFTRVRBRzogcmVsZWFzZVRhZ0ZpbGUsXG4gICAgICBSRUxFQVNFX1RBR19QUkVGSVg6IG9wdGlvbnMudGFnUHJlZml4ID8/IFwiXCIsXG4gICAgICAvLyBkb2Vzbid0IHdvcmsgaWYgY3VzdG9tIGNvbmZpZ3VyYXRpb24gaXMgbG9uZ1xuICAgICAgVkVSU0lPTlJDT1BUSU9OUzogSlNPTi5zdHJpbmdpZnkob3B0aW9ucy52ZXJzaW9ucmNPcHRpb25zKSxcbiAgICAgIEJVTVBfUEFDS0FHRTogdGhpcy5idW1wUGFja2FnZSxcbiAgICB9O1xuXG4gICAgLy8gVGhlIGNvbW1hbmQgdGhhdCBsaXN0cyByZWxlYXNhYmxlIGNvbW1pdHMsIHJ1biBhcyBpdHMgb3duIHNwYXduYWJsZSB0YXNrXG4gICAgLy8gc28gaXRzIHNoZWxsIGNhbiBiZSBjb25maWd1cmVkIGluZGVwZW5kZW50bHkgKHNlZSBgVGFza1NoZWxsYCkuXG4gICAgLy8gYCRMQVRFU1RfVEFHYCBpcyBwcm92aWRlZCBieSBgYnVtcGAgd2hlbiBzcGF3bmluZyBpdC5cbiAgICB0aGlzLnJlbGVhc2FibGVDb21taXRzVGFzayA9IHRoaXMucHJvamVjdC5hZGRUYXNrKFxuICAgICAgXCJidW1wOnJlbGVhc2FibGUtY29tbWl0c1wiLFxuICAgICAge1xuICAgICAgICBkZXNjcmlwdGlvbjogXCJQcmludCB0aGUgcmVsZWFzYWJsZSBjb21taXRzIHNpbmNlIHRoZSBsYXRlc3QgcmVsZWFzZVwiLFxuICAgICAgICBleGVjOiAob3B0aW9ucy5yZWxlYXNhYmxlQ29tbWl0cyA/PyBSZWxlYXNhYmxlQ29tbWl0cy5ldmVyeUNvbW1pdCgpKVxuICAgICAgICAgIC5jbWQsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvLyBUaGUgb3B0aW9uYWwgY29tbWFuZCB0aGF0IGRlY2lkZXMgdGhlIG5leHQgdmVyc2lvbiwgYWxzbyBpdHMgb3duIHRhc2suXG4gICAgaWYgKHRoaXMubmV4dFZlcnNpb25Db21tYW5kKSB7XG4gICAgICB0aGlzLm5leHRWZXJzaW9uVGFzayA9IHRoaXMucHJvamVjdC5hZGRUYXNrKFwiYnVtcDpuZXh0LXZlcnNpb25cIiwge1xuICAgICAgICBkZXNjcmlwdGlvbjogXCJEZXRlcm1pbmUgdGhlIG5leHQgdmVyc2lvbiB0byByZWxlYXNlXCIsXG4gICAgICAgIGV4ZWM6IHRoaXMubmV4dFZlcnNpb25Db21tYW5kLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gT3JjaGVzdHJhdGVzIHRoZSByZWxlYXNlIGJ1bXAgYXMgYSBwaXBlbGluZSBvZiBidWlsdGlucyBhbmQgc3Bhd25lZFxuICAgIC8vIHRhc2tzLCBoYW5kaW5nIHJlc3VsdHMgZm9yd2FyZCB2aWEgc3RlcCBgb3V0cHV0RW52YCBjYXB0dXJlcy5cbiAgICB0aGlzLmJ1bXBUYXNrID0gdGhpcy5wcm9qZWN0LmFkZFRhc2soXCJidW1wXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkJ1bXBzIHZlcnNpb24gYmFzZWQgb24gbGF0ZXN0IGdpdCB0YWcgYW5kIGdlbmVyYXRlcyBhIGNoYW5nZWxvZyBlbnRyeVwiLFxuICAgICAgY29uZGl0aW9uOiBDSEFOR0VTX1NJTkNFX0xBU1RfUkVMRUFTRSxcbiAgICAgIGVudjogeyAuLi5jb21tb25FbnYgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuYnVtcFRhc2suYWRkU3RlcHMoXG4gICAgICB7IGJ1aWx0aW46IFwicmVsZWFzZS9yZXNvbHZlLWxhdGVzdC10YWdcIiwgb3V0cHV0RW52OiBcIkxBVEVTVF9UQUdcIiB9LFxuICAgICAgLy8gT24gYSBmaXJzdCByZWxlYXNlIHRoZSByZXNvbHZlZCB0YWcgaXMgc3ludGhldGljIGFuZCBkb2VzIG5vdCBleGlzdCwgc29cbiAgICAgIC8vIHRoZXJlIGlzIG5vdGhpbmcgdG8gZGlmZiBhZ2FpbnN0IC0gc2tpcCBsaXN0aW5nIGNvbW1pdHMgaW4gdGhhdCBjYXNlLlxuICAgICAge1xuICAgICAgICBzcGF3bjogXCJidW1wOnJlbGVhc2FibGUtY29tbWl0c1wiLFxuICAgICAgICBvdXRwdXRFbnY6IFwiUkVMRUFTQUJMRV9DT01NSVRTXCIsXG4gICAgICAgIGNvbmRpdGlvbjogJ2dpdCByZXYtcGFyc2UgLS12ZXJpZnkgLS1xdWlldCBcInJlZnMvdGFncy8kTEFURVNUX1RBR1wiJyxcbiAgICAgIH0sXG4gICAgICB7IGJ1aWx0aW46IFwicmVsZWFzZS9zdWdnZXN0LXZlcnNpb24tYnVtcFwiLCBvdXRwdXRFbnY6IFwiU1VHR0VTVEVEX0JVTVBcIiB9LFxuICAgICk7XG4gICAgaWYgKHRoaXMubmV4dFZlcnNpb25UYXNrKSB7XG4gICAgICAvLyBgYnVtcDpuZXh0LXZlcnNpb25gIHJlY2VpdmVzIGAkVkVSU0lPTmAgKHRoZSBjdXJyZW50IHZlcnNpb24pOyByZWFkIGl0XG4gICAgICAvLyBmcm9tIHRoZSB2ZXJzaW9uIGZpbGUgaW50byBgVkVSU0lPTmAgc28gaXQgcHJvcGFnYXRlcyB0byB0aGUgc3Bhd24uXG4gICAgICB0aGlzLmJ1bXBUYXNrLmFkZFN0ZXBzKFxuICAgICAgICB7XG4gICAgICAgICAgZXhlYzogYG5vZGUgLWUgXCJwcm9jZXNzLnN0ZG91dC53cml0ZShKU09OLnBhcnNlKHJlcXVpcmUoJ2ZzJykucmVhZEZpbGVTeW5jKHByb2Nlc3MuZW52Lk9VVEZJTEUsJ3V0ZjgnKSkudmVyc2lvbilcImAsXG4gICAgICAgICAgb3V0cHV0RW52OiBcIlZFUlNJT05cIixcbiAgICAgICAgfSxcbiAgICAgICAgeyBzcGF3bjogXCJidW1wOm5leHQtdmVyc2lvblwiLCBvdXRwdXRFbnY6IFwiQlVNUF9UWVBFXCIgfSxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuYnVtcFRhc2suYWRkU3RlcHMoeyBidWlsdGluOiBcInJlbGVhc2UvYXBwbHktdmVyc2lvbi1idW1wXCIgfSk7XG5cbiAgICAvLyBSZXNldHMgdGhlIHZlcnNpb24gaW4gdGhlIHZlcnNpb24gZmlsZSBiYWNrIHRvIDAuMC4wIGFmdGVyIGEgYnVtcC5cbiAgICB0aGlzLnVuYnVtcFRhc2sgPSB0aGlzLnByb2plY3QuYWRkVGFzayhcInVuYnVtcFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJSZXN0b3JlcyB2ZXJzaW9uIHRvIDAuMC4wXCIsXG4gICAgICBlbnY6IHsgLi4uY29tbW9uRW52IH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnVuYnVtcFRhc2suYnVpbHRpbihcInJlbGVhc2UvcmVzZXQtdmVyc2lvblwiKTtcblxuICAgIHRoaXMucHJvamVjdC5hZGRHaXRJZ25vcmUoYC8ke2NoYW5nZWxvZ0ZpbGV9YCk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZEdpdElnbm9yZShgLyR7YnVtcEZpbGV9YCk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFBhY2thZ2VJZ25vcmUoYC8ke2NoYW5nZWxvZ0ZpbGV9YCk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFBhY2thZ2VJZ25vcmUoYC8ke2J1bXBGaWxlfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIG1vZGlmeSB0aGUgYnVtcCBjb21tYW5kIGZvciByZWxlYXNlIGJyYW5jaGVzLlxuICAgKlxuICAgKiBUaGVzZSBvcHRpb25zIGFyZSB1c2VkIHRvIG1vZGlmeSB0aGUgYmVoYXZpb3Igb2YgdGhlIHZlcnNpb24gYnVtcGluZyBzY3JpcHRcbiAgICogZm9yIGFkZGl0aW9uYWwgYnJhbmNoZXMsIGJ5IHNldHRpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKlxuICAgKiBObyBzZXR0aW5ncyBhcmUgaW5oZXJpdGVkIGZyb20gdGhlIGJhc2UgYFZlcnNpb25gIG9iamVjdCAoYnV0IGFueSBwYXJhbWV0ZXJzIHRoYXRcbiAgICogY29udHJvbCB2ZXJzaW9ucyBkbyBjb25mbGljdCB3aXRoIHRoZSB1c2Ugb2YgYSBgbmV4dFZlcnNpb25Db21tYW5kYCkuXG4gICAqL1xuICBwdWJsaWMgZW52Rm9yQnJhbmNoKFxuICAgIGJyYW5jaE9wdGlvbnM6IFZlcnNpb25CcmFuY2hPcHRpb25zLFxuICApOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBpZiAodGhpcy5uZXh0VmVyc2lvbkNvbW1hbmQgJiYgYnJhbmNoT3B0aW9ucy5taW5NYWpvclZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJtaW5NYWpvclZlcnNpb24gYW5kIG5leHRWZXJzaW9uQ29tbWFuZCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlci5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgZW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgaWYgKGJyYW5jaE9wdGlvbnMubWFqb3JWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGVudi5NQUpPUiA9IGJyYW5jaE9wdGlvbnMubWFqb3JWZXJzaW9uLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKGJyYW5jaE9wdGlvbnMubWluTWFqb3JWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChicmFuY2hPcHRpb25zLm1ham9yVmVyc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgbWluTWFqb3JWZXJzaW9uIGFuZCBtYWpvclZlcnNpb24gY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgZW52Lk1JTl9NQUpPUiA9IGJyYW5jaE9wdGlvbnMubWluTWFqb3JWZXJzaW9uLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKGJyYW5jaE9wdGlvbnMucHJlcmVsZWFzZSkge1xuICAgICAgZW52LlBSRVJFTEVBU0UgPSBicmFuY2hPcHRpb25zLnByZXJlbGVhc2U7XG4gICAgfVxuXG4gICAgaWYgKGJyYW5jaE9wdGlvbnMudGFnUHJlZml4KSB7XG4gICAgICBlbnYuUkVMRUFTRV9UQUdfUFJFRklYID0gYnJhbmNoT3B0aW9ucy50YWdQcmVmaXg7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVudjtcbiAgfVxufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gcGFzcyB0byBgbW9kaWZ5QnJhbmNoRW52aXJvbm1lbnRgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2lvbkJyYW5jaE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1ham9yIHZlcnNpb25zIHJlbGVhc2VkIGZyb20gdGhpcyBicmFuY2guXG4gICAqL1xuICByZWFkb25seSBtYWpvclZlcnNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIG1ham9yIHZlcnNpb24gdG8gcmVsZWFzZS5cbiAgICovXG4gIHJlYWRvbmx5IG1pbk1ham9yVmVyc2lvbj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG1pbm9yIHZlcnNpb25zIHJlbGVhc2VkIGZyb20gdGhpcyBicmFuY2guXG4gICAqL1xuICByZWFkb25seSBtaW5vclZlcnNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEJ1bXAgdGhlIHZlcnNpb24gYXMgYSBwcmUtcmVsZWFzZSB0YWcuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9ybWFsIHJlbGVhc2VzXG4gICAqL1xuICByZWFkb25seSBwcmVyZWxlYXNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGFkZCB0aGUgZ2l2ZW4gcHJlZml4IHRvIHJlbGVhc2UgdGFncy5cbiAgICogVXNlZnVsIGlmIHlvdSBhcmUgcmVsZWFzaW5nIG9uIG11bHRpcGxlIGJyYW5jaGVzIHdpdGggb3ZlcmxhcHBpbmdcbiAgICogdmVyc2lvbiBudW1iZXJzLlxuICAgKlxuICAgKiBOb3RlOiB0aGlzIHByZWZpeCBpcyB1c2VkIHRvIGRldGVjdCB0aGUgbGF0ZXN0IHRhZ2dlZCB2ZXJzaW9uXG4gICAqIHdoZW4gYnVtcGluZywgc28gaWYgeW91IGNoYW5nZSB0aGlzIG9uIGEgcHJvamVjdCB3aXRoIGFuIGV4aXN0aW5nIHZlcnNpb25cbiAgICogaGlzdG9yeSwgeW91IG1heSBuZWVkIHRvIG1hbnVhbGx5IHRhZyB5b3VyIGxhdGVzdCByZWxlYXNlXG4gICAqIHdpdGggdGhlIG5ldyBwcmVmaXguXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcHJlZml4XG4gICAqL1xuICByZWFkb25seSB0YWdQcmVmaXg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRmluZCBjb21taXRzIHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcmVsZWFzYWJsZSB0byBkZWNpZGUgaWYgYSByZWxlYXNlIGlzIHJlcXVpcmVkLlxuICpcbiAqIFRoaXMgc2V0dGluZyBvbmx5IGNvbnRyb2xzIHdoZXRoZXIgYSByZWxlYXNlIGlzIHRyaWdnZXJlZCwgeWVzIG9yIG5vLiBUaGVcbiAqIHBhdGhzIHVzZWQgaGVyZSBhcmUgaW5kZXBlbmRlbnQgb2YgdGhlIGNvZGUgdGhhdCBjb250cm9scyB3aGF0IGNvbW1pdHMgYXJlIGluc3BlY3RlZFxuICogdG8gZGV0ZXJtaW5lIHRoZSB2ZXJzaW9uIG51bWJlci5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlbGVhc2FibGVDb21taXRzIHtcbiAgLyoqXG4gICAqIFJlbGVhc2UgZXZlcnkgY29tbWl0XG4gICAqXG4gICAqIFRoaXMgd2lsbCBvbmx5IG5vdCByZWxlYXNlIGlmIHRoZSBtb3N0IHJlY2VudCBjb21taXQgaXMgdGFnZ2VkIHdpdGggdGhlIGxhdGVzdCBtYXRjaGluZyB0YWcuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIENvbnNpZGVyIG9ubHkgY29tbWl0cyB0aGF0IGFyZSBlbm91Z2ggdG8gZXhwbGFpbiBob3cgdGhlIGZpbGVzIHRoYXQgbWF0Y2ggdGhlIHNwZWNpZmllZCBwYXRocyBjYW1lIHRvIGJlLlxuICAgKiBUaGlzIHBhdGggaXMgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgd29ya2luZyBkaXIgb2YgdGhlIGBidW1wYCB0YXNrLCBpLmUuIHRvIG9ubHkgY29uc2lkZXIgY29tbWl0cyBvZiBhIHN1YnByb2plY3QgdXNlIGBcIi5cImAuXG4gICAqL1xuICBzdGF0aWMgZXZlcnlDb21taXQocGF0aD86IHN0cmluZykge1xuICAgIGNvbnN0IGNtZCA9IGBnaXQgbG9nIC0tb25lbGluZSAkTEFURVNUX1RBRy4uSEVBRGA7XG4gICAgcmV0dXJuIG5ldyBSZWxlYXNhYmxlQ29tbWl0cyh3aXRoUGF0aChjbWQsIHBhdGgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1pdCBjb21taXRzIGJ5IHRoZWlyIGNvbnZlbnRpb25hbCBjb21taXQgdHlwZVxuICAgKlxuICAgKiBUaGlzIHdpbGwgb25seSByZWxlYXNlIGNvbW1pdCB0aGF0IG1hdGNoIG9uZSBvZiB0aGUgcHJvdmlkZWQgdHlwZXMuXG4gICAqIENvbW1pdHMgYXJlIHJlcXVpcmVkIHRvIGZvbGxvdyB0aGUgY29udmVudGlvbmFsIGNvbW1pdCBzcGVjIGFuZCB3aWxsIGJlIGlnbm9yZWQgb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAcGFyYW0gdHlwZXMgTGlzdCBvZiBjb252ZW50aW9uYWwgY29tbWl0IHR5cGVzIHRoYXQgc2hvdWxkIGJlIHJlbGVhc2VkXG4gICAqIEBwYXJhbSBwYXRoIENvbnNpZGVyIG9ubHkgY29tbWl0cyB0aGF0IGFyZSBlbm91Z2ggdG8gZXhwbGFpbiBob3cgdGhlIGZpbGVzIHRoYXQgbWF0Y2ggdGhlIHNwZWNpZmllZCBwYXRocyBjYW1lIHRvIGJlLlxuICAgKiBUaGlzIHBhdGggaXMgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgd29ya2luZyBkaXIgb2YgdGhlIGBidW1wYCB0YXNrLCBpLmUuIHRvIG9ubHkgY29uc2lkZXIgY29tbWl0cyBvZiBhIHN1YnByb2plY3QgdXNlIGBcIi5cImAuXG4gICAqL1xuICBzdGF0aWMgb2ZUeXBlKHR5cGVzOiBzdHJpbmdbXSwgcGF0aD86IHN0cmluZykge1xuICAgIGNvbnN0IGFsbG93ZWRUeXBlcyA9IHR5cGVzLmpvaW4oXCJ8XCIpO1xuXG4gICAgLy8gQHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NvbnZlbnRpb25hbC1jb21taXRzL3BhcnNlci9ibG9iL2VlZWZiOTYxZWJmNWI5ZGZlYTBmZWE4YjA2ZjhhZDM0YTFlNDM5YjkvbGliL3BhcnNlci5qc1xuICAgIC8vIC1FIHJlcXVpcmVzIHRoaXMgdG8gYmUgUE9TSVggRXh0ZW5kZWQgUmVndWxhciBFeHByZXNzaW9uLCB3aGljaCBjb21lcyB3aXRoIGNlcnRhaW4gbGltaXRhdGlvbnNcbiAgICAvLyBzZWUgaHR0cHM6Ly9lbi53aWtpYm9va3Mub3JnL3dpa2kvUmVndWxhcl9FeHByZXNzaW9ucy9QT1NJWC1FeHRlbmRlZF9SZWd1bGFyX0V4cHJlc3Npb25zIGZvciBkZXRhaWxzXG4gICAgY29uc3QgY21kID0gYGdpdCBsb2cgLS1uby1tZXJnZXMgLS1vbmVsaW5lICRMQVRFU1RfVEFHLi5IRUFEIC1FIC0tZ3JlcCAnXigke2FsbG93ZWRUeXBlc30pezF9KFxcXFwoW14oKVs6c3BhY2U6XV0rXFxcXCkpPyghKT86W1s6Ymxhbms6XV0rLisnYDtcblxuICAgIHJldHVybiBuZXcgUmVsZWFzYWJsZUNvbW1pdHMod2l0aFBhdGgoY21kLCBwYXRoKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVsZWFzZSBvbmx5IGZlYXR1cmVzIGFuZCBmaXhlc1xuICAgKlxuICAgKiBTaG9ydGhhbmQgZm9yIGBSZWxlYXNhYmxlQ29tbWl0cy5vbmx5T2ZUeXBlKFsnZmVhdCcsICdmaXgnXSlgLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCBDb25zaWRlciBvbmx5IGNvbW1pdHMgdGhhdCBhcmUgZW5vdWdoIHRvIGV4cGxhaW4gaG93IHRoZSBmaWxlcyB0aGF0IG1hdGNoIHRoZSBzcGVjaWZpZWQgcGF0aHMgY2FtZSB0byBiZS5cbiAgICogVGhpcyBwYXRoIGlzIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyIG9mIHRoZSBgYnVtcGAgdGFzaywgaS5lLiB0byBvbmx5IGNvbnNpZGVyIGNvbW1pdHMgb2YgYSBzdWJwcm9qZWN0IHVzZSBgXCIuXCJgLlxuICAgKi9cbiAgc3RhdGljIGZlYXR1cmVzQW5kRml4ZXMocGF0aD86IHN0cmluZykge1xuICAgIHJldHVybiBSZWxlYXNhYmxlQ29tbWl0cy5vZlR5cGUoW1wiZmVhdFwiLCBcImZpeFwiXSwgcGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGFuIGFyYml0cmFyeSBzaGVsbCBjb21tYW5kIHRvIGZpbmQgcmVsZWFzYWJsZSBjb21taXRzIHNpbmNlIHRoZSBsYXRlc3QgdGFnLlxuICAgKlxuICAgKiBBIG5ldyByZWxlYXNlIHdpbGwgYmUgaW5pdGlhdGVkLCBpZiB0aGUgbnVtYmVyIG9mIHJldHVybmVkIGNvbW1pdHMgaXMgZ3JlYXRlciB0aGFuIHplcm8uXG4gICAqIE11c3QgcmV0dXJuIGEgbmV3bGluZSBzZXBhcmF0ZSBsaXN0IG9mIGNvbW1pdHMgdGhhdCBzaG91bGQgY29uc2lkZXJlZCByZWxlYXNhYmxlLlxuICAgKiBgJExBVEVTVF9UQUdgIGlzIGF2YWlsYWJsZSBhcyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSAoc2V0IHRvIHRoZSBhY3R1YWwgbGF0ZXN0IHRhZyBmb3IgdGhlIGdpdmVuIHByZWZpeCkuXG4gICAqXG4gICAqIEBleGFtcGxlIFwiZ2l0IGxvZyAtLW9uZWxpbmUgJExBVEVTVF9UQUcuLkhFQUQgLS0gLlwiXG4gICAqL1xuICBzdGF0aWMgZXhlYyhjbWQ6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgUmVsZWFzYWJsZUNvbW1pdHMoY21kKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHVibGljIGNtZDogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIEFwcGVuZCBhIHBhdGggYXJndW1lbnQgdG8gYSBnaXQgY29tbWFuZCBpZiBvbmUgaXMgcHJvdmlkZWRcbiAqL1xuZnVuY3Rpb24gd2l0aFBhdGgoY21kOiBzdHJpbmcsIHBhdGg/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAocGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGAke2NtZH0gLS0gJHtwYXRofWA7XG4gIH1cblxuICByZXR1cm4gY21kO1xufVxuIl19
|
|
@@ -13,7 +13,7 @@ const DEVCONTAINER_FILE = ".devcontainer.json";
|
|
|
13
13
|
* codespaces.
|
|
14
14
|
*/
|
|
15
15
|
class DevContainer extends component_1.Component {
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.vscode.DevContainer", version: "0.103.
|
|
16
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.vscode.DevContainer", version: "0.103.24" };
|
|
17
17
|
dockerImage;
|
|
18
18
|
postCreateTasks;
|
|
19
19
|
ports;
|
package/lib/vscode/extensions.js
CHANGED
|
@@ -9,7 +9,7 @@ const json_1 = require("../json");
|
|
|
9
9
|
* Source: https://code.visualstudio.com/docs/editor/extension-marketplace#_workspace-recommended-extensions
|
|
10
10
|
*/
|
|
11
11
|
class VsCodeRecommendedExtensions extends component_1.Component {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.vscode.VsCodeRecommendedExtensions", version: "0.103.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.vscode.VsCodeRecommendedExtensions", version: "0.103.24" };
|
|
13
13
|
/**
|
|
14
14
|
* List of extensions which should be recommended for users of this workspace.
|
|
15
15
|
* The identifier of an extension is always '${publisher}.${name}'. For example: 'ms-python.python'.
|
|
@@ -28,7 +28,7 @@ var InternalConsoleOptions;
|
|
|
28
28
|
* VSCode launch configuration file (launch.json), useful for enabling in-editor debugger
|
|
29
29
|
*/
|
|
30
30
|
class VsCodeLaunchConfig extends component_1.Component {
|
|
31
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.vscode.VsCodeLaunchConfig", version: "0.103.
|
|
31
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.vscode.VsCodeLaunchConfig", version: "0.103.24" };
|
|
32
32
|
static renderLaunchConfig(cfg) {
|
|
33
33
|
if (!cfg.env) {
|
|
34
34
|
return cfg;
|
package/lib/vscode/settings.js
CHANGED
|
@@ -9,7 +9,7 @@ const json_1 = require("../json");
|
|
|
9
9
|
* Source: https://code.visualstudio.com/docs/getstarted/settings#_workspace-settings
|
|
10
10
|
*/
|
|
11
11
|
class VsCodeSettings extends component_1.Component {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.vscode.VsCodeSettings", version: "0.103.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.vscode.VsCodeSettings", version: "0.103.24" };
|
|
13
13
|
content;
|
|
14
14
|
file;
|
|
15
15
|
constructor(vscode) {
|
package/lib/vscode/vscode.js
CHANGED
|
@@ -7,7 +7,7 @@ const launch_config_1 = require("./launch-config");
|
|
|
7
7
|
const settings_1 = require("./settings");
|
|
8
8
|
const component_1 = require("../component");
|
|
9
9
|
class VsCode extends component_1.Component {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.vscode.VsCode", version: "0.103.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.vscode.VsCode", version: "0.103.24" };
|
|
11
11
|
_launchConfig;
|
|
12
12
|
_settings;
|
|
13
13
|
_extensions;
|
package/lib/web/next.js
CHANGED
|
@@ -15,7 +15,7 @@ const MINIMUM_NEXT_JS_NODE_VERSION = "16.14.0"; // https://nextjs.org/docs/pages
|
|
|
15
15
|
* @pjid nextjs
|
|
16
16
|
*/
|
|
17
17
|
class NextJsProject extends javascript_1.NodeProject {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.web.NextJsProject", version: "0.103.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.web.NextJsProject", version: "0.103.24" };
|
|
19
19
|
/**
|
|
20
20
|
* The directory in which source files reside.
|
|
21
21
|
*/
|
|
@@ -59,7 +59,7 @@ exports.NextJsProject = NextJsProject;
|
|
|
59
59
|
* @pjid nextjs-ts
|
|
60
60
|
*/
|
|
61
61
|
class NextJsTypeScriptProject extends typescript_1.TypeScriptAppProject {
|
|
62
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.web.NextJsTypeScriptProject", version: "0.103.
|
|
62
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.web.NextJsTypeScriptProject", version: "0.103.24" };
|
|
63
63
|
/**
|
|
64
64
|
* The directory in which source files reside.
|
|
65
65
|
*/
|
|
@@ -150,7 +150,7 @@ class NextJsTypeScriptProject extends typescript_1.TypeScriptAppProject {
|
|
|
150
150
|
}
|
|
151
151
|
exports.NextJsTypeScriptProject = NextJsTypeScriptProject;
|
|
152
152
|
class NextComponent extends component_1.Component {
|
|
153
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.web.NextComponent", version: "0.103.
|
|
153
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.web.NextComponent", version: "0.103.24" };
|
|
154
154
|
typescript;
|
|
155
155
|
tailwind;
|
|
156
156
|
constructor(project, options) {
|
package/lib/web/postcss.js
CHANGED
|
@@ -8,7 +8,7 @@ const json_1 = require("../json");
|
|
|
8
8
|
* Declares a PostCSS dependency with a default config file.
|
|
9
9
|
*/
|
|
10
10
|
class PostCss {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.web.PostCss", version: "0.103.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.web.PostCss", version: "0.103.24" };
|
|
12
12
|
fileName;
|
|
13
13
|
file;
|
|
14
14
|
tailwind;
|