projen 0.100.6 → 0.100.7
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 +149 -58
- 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 +9 -9
- package/lib/awscdk/integ-runner.js +9 -3
- package/lib/awscdk/integration-test.js +12 -6
- package/lib/awscdk/lambda-extension.js +1 -1
- package/lib/awscdk/lambda-function.js +2 -2
- package/lib/build/build-workflow.js +1 -1
- package/lib/cdk/auto-discover-base.js +2 -2
- package/lib/cdk/construct-lib.js +1 -1
- package/lib/cdk/integration-test-base.js +1 -1
- package/lib/cdk/jsii-build.js +5 -5
- package/lib/cdk/jsii-docgen.js +3 -3
- package/lib/cdk/jsii-project.js +1 -1
- package/lib/cdk8s/auto-discover.js +2 -2
- package/lib/cdk8s/cdk8s-app-py.js +3 -3
- package/lib/cdk8s/cdk8s-app-ts.js +4 -4
- 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 +17 -10
- package/lib/cdktf/cdktf-construct.js +1 -1
- package/lib/circleci/circleci.js +1 -1
- package/lib/cli/cmds/run-task.js +4 -1
- package/lib/cli/task-runtime.js +82 -19
- package/lib/common.d.ts +1 -1
- package/lib/common.js +2 -2
- package/lib/component.js +1 -1
- package/lib/dependencies.js +1 -1
- package/lib/dev-env.js +1 -1
- package/lib/docker-compose/docker-compose-service.js +1 -1
- package/lib/docker-compose/docker-compose.js +1 -1
- package/lib/file.js +1 -1
- package/lib/gitattributes.js +1 -1
- package/lib/github/actions-provider.js +1 -1
- package/lib/github/auto-approve.js +1 -1
- package/lib/github/auto-merge.js +1 -1
- package/lib/github/auto-queue.js +1 -1
- package/lib/github/dependabot.js +1 -1
- package/lib/github/dependency-review.js +1 -1
- package/lib/github/github-credentials.js +1 -1
- package/lib/github/github-project.js +1 -1
- package/lib/github/github.js +1 -1
- package/lib/github/merge-queue.js +1 -1
- package/lib/github/mergify.js +1 -1
- package/lib/github/pr-template.js +1 -1
- package/lib/github/pull-request-backport.js +1 -1
- package/lib/github/pull-request-lint.js +1 -1
- package/lib/github/stale.js +1 -1
- package/lib/github/task-workflow-job.js +1 -1
- package/lib/github/task-workflow.js +1 -1
- package/lib/github/workflow-actions.js +1 -1
- package/lib/github/workflow-jobs.js +1 -1
- package/lib/github/workflow-steps.js +1 -1
- package/lib/github/workflows.js +1 -1
- package/lib/gitlab/configuration.js +1 -1
- package/lib/gitlab/gitlab-configuration.js +1 -1
- package/lib/gitlab/nested-configuration.js +1 -1
- package/lib/gitpod.js +1 -1
- package/lib/ignore-file.js +1 -1
- package/lib/ini.js +1 -1
- package/lib/java/java-project.js +1 -1
- package/lib/java/junit.js +3 -3
- package/lib/java/maven-compile.js +3 -3
- package/lib/java/maven-packaging.js +3 -3
- package/lib/java/maven-sample.js +1 -1
- package/lib/java/pom.js +2 -2
- package/lib/java/projenrc.js +3 -3
- package/lib/javascript/biome/biome.js +1 -1
- package/lib/javascript/bundler.js +3 -3
- package/lib/javascript/eslint.js +1 -1
- package/lib/javascript/jest.js +4 -4
- package/lib/javascript/license-checker.js +5 -5
- package/lib/javascript/node-package.js +1 -1
- package/lib/javascript/node-project.js +13 -4
- package/lib/javascript/npm-config.js +1 -1
- package/lib/javascript/prettier.js +1 -1
- package/lib/javascript/projenrc.js +3 -3
- package/lib/javascript/typescript-config.js +2 -2
- package/lib/javascript/upgrade-dependencies.js +4 -4
- package/lib/javascript/yarnrc.js +1 -1
- package/lib/json-patch.js +1 -1
- package/lib/json.js +1 -1
- package/lib/license.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/makefile.js +1 -1
- package/lib/object-file.js +1 -1
- package/lib/project-build.js +1 -1
- package/lib/project-tree.js +1 -1
- package/lib/project.js +1 -1
- package/lib/projects.js +1 -1
- package/lib/projenrc-json.js +1 -1
- package/lib/projenrc.js +1 -1
- package/lib/python/pip.js +17 -5
- package/lib/python/poetry.js +7 -7
- package/lib/python/projenrc.js +3 -3
- 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 +8 -3
- package/lib/python/uv.js +6 -6
- package/lib/python/venv.js +1 -1
- package/lib/readme.js +1 -1
- package/lib/release/publisher.js +1 -1
- package/lib/release/release-trigger.js +1 -1
- package/lib/release/release.js +1 -1
- package/lib/renovatebot.js +1 -1
- package/lib/run-task.cjs +56 -20
- package/lib/sample-file.js +2 -2
- package/lib/source-code.js +1 -1
- package/lib/task-model.d.ts +25 -1
- package/lib/task-model.js +1 -1
- package/lib/task.d.ts +33 -0
- package/lib/task.js +28 -2
- 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-typedoc.js +9 -3
- package/lib/typescript/typescript.js +8 -10
- package/lib/util/exec.d.ts +1 -1
- package/lib/util/exec.js +1 -1
- package/lib/version.js +2 -2
- package/lib/vscode/devcontainer.js +1 -1
- package/lib/vscode/extensions.js +1 -1
- package/lib/vscode/launch-config.js +1 -1
- package/lib/vscode/settings.js +1 -1
- package/lib/vscode/vscode.js +1 -1
- package/lib/web/next.js +9 -9
- package/lib/web/postcss.js +1 -1
- package/lib/web/react.js +7 -7
- package/lib/web/tailwind.js +1 -1
- package/lib/xmlfile.js +1 -1
- package/lib/yaml.js +1 -1
- package/package.json +4 -4
package/lib/run-task.cjs
CHANGED
|
@@ -1641,7 +1641,7 @@ var require_package = __commonJS({
|
|
|
1641
1641
|
},
|
|
1642
1642
|
devDependencies: {
|
|
1643
1643
|
"@biomejs/biome": "^2",
|
|
1644
|
-
"@jsii/check-node": "^1.
|
|
1644
|
+
"@jsii/check-node": "^1.137.0",
|
|
1645
1645
|
"@types/conventional-changelog-config-spec": "^2.1.5",
|
|
1646
1646
|
"@types/ini": "^1.3.34",
|
|
1647
1647
|
"@types/jest": "^30",
|
|
@@ -1662,9 +1662,9 @@ var require_package = __commonJS({
|
|
|
1662
1662
|
jest: "^30",
|
|
1663
1663
|
"jest-junit": "^17",
|
|
1664
1664
|
jsii: "6.0.x",
|
|
1665
|
-
"jsii-diff": "^1.
|
|
1665
|
+
"jsii-diff": "^1.137.0",
|
|
1666
1666
|
"jsii-docgen": "^10.5.0",
|
|
1667
|
-
"jsii-pacmak": "^1.
|
|
1667
|
+
"jsii-pacmak": "^1.137.0",
|
|
1668
1668
|
"jsii-rosetta": "6.0.x",
|
|
1669
1669
|
json2jsii: "^0.5.19",
|
|
1670
1670
|
"license-checker": "^25.0.1",
|
|
@@ -1733,7 +1733,7 @@ var require_package = __commonJS({
|
|
|
1733
1733
|
publishConfig: {
|
|
1734
1734
|
access: "public"
|
|
1735
1735
|
},
|
|
1736
|
-
version: "0.100.
|
|
1736
|
+
version: "0.100.7",
|
|
1737
1737
|
jest: {
|
|
1738
1738
|
coverageProvider: "v8",
|
|
1739
1739
|
coverageReporters: [
|
|
@@ -14295,7 +14295,7 @@ function createPath(path62) {
|
|
|
14295
14295
|
|
|
14296
14296
|
// src/common.ts
|
|
14297
14297
|
var PROJEN_DIR = ".projen";
|
|
14298
|
-
var TASKS_MANIFEST_VERSION =
|
|
14298
|
+
var TASKS_MANIFEST_VERSION = 2;
|
|
14299
14299
|
var IS_TEST_RUN = process.env.NODE_ENV === "test";
|
|
14300
14300
|
var packageVersion = require_package().version;
|
|
14301
14301
|
|
|
@@ -14687,18 +14687,36 @@ var RunTask = class {
|
|
|
14687
14687
|
if (step.builtin) {
|
|
14688
14688
|
execs.push(this.renderBuiltin(step.builtin));
|
|
14689
14689
|
}
|
|
14690
|
+
if (step.execArgs) {
|
|
14691
|
+
const argv = [];
|
|
14692
|
+
let placed = false;
|
|
14693
|
+
for (const element of step.execArgs) {
|
|
14694
|
+
if (element === ARGS_MARKER) {
|
|
14695
|
+
argv.push(...argsList);
|
|
14696
|
+
placed = true;
|
|
14697
|
+
} else {
|
|
14698
|
+
argv.push(element);
|
|
14699
|
+
}
|
|
14700
|
+
}
|
|
14701
|
+
if (!placed) {
|
|
14702
|
+
argv.push(...argsList);
|
|
14703
|
+
}
|
|
14704
|
+
execs.push(argv);
|
|
14705
|
+
}
|
|
14690
14706
|
for (const exec of execs) {
|
|
14691
14707
|
let hasError = false;
|
|
14692
14708
|
let command = exec;
|
|
14693
|
-
if (command
|
|
14694
|
-
|
|
14695
|
-
|
|
14696
|
-
|
|
14697
|
-
|
|
14698
|
-
|
|
14699
|
-
|
|
14700
|
-
|
|
14701
|
-
|
|
14709
|
+
if (typeof command === "string") {
|
|
14710
|
+
if (command.includes(QUOTED_ARGS_MARKER)) {
|
|
14711
|
+
command = command.replace(
|
|
14712
|
+
QUOTED_ARGS_MARKER,
|
|
14713
|
+
argsList.map((arg) => `'${arg}'`).join(" ")
|
|
14714
|
+
);
|
|
14715
|
+
} else if (command.includes(ARGS_MARKER)) {
|
|
14716
|
+
command = command.replace(ARGS_MARKER, argsList.join(" "));
|
|
14717
|
+
} else {
|
|
14718
|
+
command = [command, ...argsList].join(" ");
|
|
14719
|
+
}
|
|
14702
14720
|
}
|
|
14703
14721
|
const cwd2 = step.cwd;
|
|
14704
14722
|
try {
|
|
@@ -14716,9 +14734,7 @@ var RunTask = class {
|
|
|
14716
14734
|
}
|
|
14717
14735
|
if (hasError) {
|
|
14718
14736
|
throw new Error(
|
|
14719
|
-
`Task "${this.fullname}" failed when executing "${command}" (cwd: ${(0, import_path.resolve)(
|
|
14720
|
-
cwd2 ?? this.workdir
|
|
14721
|
-
)})`
|
|
14737
|
+
`Task "${this.fullname}" failed when executing "${Array.isArray(command) ? command.join(" ") : command}" (cwd: ${(0, import_path.resolve)(cwd2 ?? this.workdir)})`
|
|
14722
14738
|
);
|
|
14723
14739
|
}
|
|
14724
14740
|
}
|
|
@@ -14815,7 +14831,9 @@ var RunTask = class {
|
|
|
14815
14831
|
if (options.logprefix) {
|
|
14816
14832
|
log2.push(options.logprefix);
|
|
14817
14833
|
}
|
|
14818
|
-
log2.push(
|
|
14834
|
+
log2.push(
|
|
14835
|
+
Array.isArray(options.command) ? options.command.join(" ") : options.command
|
|
14836
|
+
);
|
|
14819
14837
|
if (options.cwd) {
|
|
14820
14838
|
log2.push(`(cwd: ${options.cwd})`);
|
|
14821
14839
|
}
|
|
@@ -14833,15 +14851,33 @@ var RunTask = class {
|
|
|
14833
14851
|
...options.extraEnv
|
|
14834
14852
|
};
|
|
14835
14853
|
const capture2 = Array.isArray(options.spawnOptions?.stdio);
|
|
14854
|
+
const command = options.command;
|
|
14836
14855
|
if (process.platform === "win32") {
|
|
14837
|
-
const
|
|
14856
|
+
const cmd = Array.isArray(command) ? $2`${command[0]} ${command.slice(1)}` : $2.raw`${command}`;
|
|
14857
|
+
const result = await cmd.cwd(cwd2).env(env).stdout(capture2 ? "piped" : "inherit").stderr(capture2 ? "piped" : "inherit").noThrow();
|
|
14838
14858
|
return {
|
|
14839
14859
|
status: result.code,
|
|
14840
14860
|
stdout: capture2 ? Buffer.from(result.stdoutBytes) : null,
|
|
14841
14861
|
stderr: capture2 ? Buffer.from(result.stderrBytes) : null
|
|
14842
14862
|
};
|
|
14843
14863
|
}
|
|
14844
|
-
|
|
14864
|
+
if (!Array.isArray(command)) {
|
|
14865
|
+
return rawShell.exec(command, { cwd: cwd2, env, capture: capture2 });
|
|
14866
|
+
}
|
|
14867
|
+
const [file, ...args] = command;
|
|
14868
|
+
try {
|
|
14869
|
+
tool(file).run(args, {
|
|
14870
|
+
cwd: cwd2,
|
|
14871
|
+
env,
|
|
14872
|
+
inheritStdio: true
|
|
14873
|
+
});
|
|
14874
|
+
return { status: 0 };
|
|
14875
|
+
} catch (e) {
|
|
14876
|
+
if (typeof e?.status === "number") {
|
|
14877
|
+
return { status: e.status };
|
|
14878
|
+
}
|
|
14879
|
+
throw e;
|
|
14880
|
+
}
|
|
14845
14881
|
}
|
|
14846
14882
|
async shellEval(options) {
|
|
14847
14883
|
return this.shell({
|
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.100.
|
|
48
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SampleFile", version: "0.100.7" };
|
|
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.100.
|
|
99
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SampleDir", version: "0.100.7" };
|
|
100
100
|
dir;
|
|
101
101
|
options;
|
|
102
102
|
/**
|
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.100.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SourceCode", version: "0.100.7" };
|
|
13
13
|
file;
|
|
14
14
|
indentLevel = 0;
|
|
15
15
|
indent;
|
package/lib/task-model.d.ts
CHANGED
|
@@ -149,11 +149,35 @@ export interface TaskStepOptions {
|
|
|
149
149
|
*/
|
|
150
150
|
export interface TaskStep extends TaskStepOptions {
|
|
151
151
|
/**
|
|
152
|
-
* Shell command to execute
|
|
152
|
+
* Shell command to execute.
|
|
153
|
+
*
|
|
154
|
+
* The whole command is a single shell string. To pass arguments as a list
|
|
155
|
+
* instead - without having to quote spaces or other characters yourself -
|
|
156
|
+
* use `execArgs`.
|
|
153
157
|
*
|
|
154
158
|
* @default - don't execute a shell command
|
|
155
159
|
*/
|
|
156
160
|
readonly exec?: string;
|
|
161
|
+
/**
|
|
162
|
+
* Shell command to execute, provided as a list of the program followed by
|
|
163
|
+
* its arguments (an "argv").
|
|
164
|
+
*
|
|
165
|
+
* Often more convenient than `exec`: each element is passed to the
|
|
166
|
+
* program as-is, so arguments with spaces or special characters don't need
|
|
167
|
+
* quoting. Fixed (`args`) or received (`receiveArgs`) arguments are inserted
|
|
168
|
+
* wherever a `$@` element appears, or appended at the end if there is none.
|
|
169
|
+
*
|
|
170
|
+
* The elements are not run through a shell, so environment variables (`$FOO`)
|
|
171
|
+
* are not expanded and other shell features are unavailable. Use `exec`
|
|
172
|
+
* if you need them.
|
|
173
|
+
*
|
|
174
|
+
* Mutually exclusive with `exec`.
|
|
175
|
+
*
|
|
176
|
+
* @example { execArgs: ["echo", "hello world"] }
|
|
177
|
+
*
|
|
178
|
+
* @default - don't execute a shell command
|
|
179
|
+
*/
|
|
180
|
+
readonly execArgs?: string[];
|
|
157
181
|
/**
|
|
158
182
|
* Subtask to execute
|
|
159
183
|
*
|
package/lib/task-model.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90YXNrLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNjaGVtYSBmb3IgYHRhc2tzLmpzb25gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tzTWFuaWZlc3Qge1xuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHRhc2tzIG1hbmlmZXN0IHNjaGVtYS5cbiAgICpcbiAgICogVXNlZCBieSB0aGUgdGFzayBydW50aW1lIHRvIGRldGVjdCBtYW5pZmVzdHMgcHJvZHVjZWQgYnkgYSBuZXdlciB2ZXJzaW9uXG4gICAqIG9mIHByb2plbi4gTWFuaWZlc3RzIGdlbmVyYXRlZCBieSBvbGRlciB2ZXJzaW9ucyBvZiBwcm9qZW4gb21pdCB0aGlzIGZpZWxkXG4gICAqIGFuZCBhcmUgdHJlYXRlZCBhcyBcImxlZ2FjeVwiIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgbWFuaWZlc3QgaXMgdHJlYXRlZCBhcyBhIGxlZ2FjeSAodW52ZXJzaW9uZWQpIG1hbmlmZXN0XG4gICAqL1xuICByZWFkb25seSBtYW5pZmVzdFZlcnNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEFsbCB0YXNrcyBhdmFpbGFibGUgZm9yIHRoaXMgcHJvamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHRhc2tzPzogeyBbbmFtZTogc3RyaW5nXTogVGFza1NwZWMgfTtcblxuICAvKipcbiAgICogRW52aXJvbm1lbnQgZm9yIGFsbCB0YXNrcy5cbiAgICovXG4gIHJlYWRvbmx5IGVudj86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIGJ1aWxkIGNvbW1hbmQuXG4gICAqIEBkZWZhdWx0IC0gdGhlIHRhc2sgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0aGUgZXhlY3V0aW9uIG9mIHRoaXMgdGFzay5cbiAgICogVmFsdWVzIGluIHRoaXMgbWFwIHdpbGwgYmUgZXZhbHVhdGVkIGluIGEgc2hlbGwsIHNvIHlvdSBjYW4gZG8gc3R1ZmYgbGlrZSBgJChlY2hvIFwiZm9vXCIpYC5cbiAgICogQGRlZmF1bHQge31cbiAgICovXG4gIHJlYWRvbmx5IGVudj86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBBIHNldCBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCBtdXN0IGJlIGRlZmluZWQgaW4gb3JkZXIgdG8gZXhlY3V0ZVxuICAgKiB0aGlzIHRhc2suIFRhc2sgZXhlY3V0aW9uIHdpbGwgZmFpbCBpZiBvbmUgb2YgdGhlc2UgaXMgbm90IGRlZmluZWQuXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlZEVudj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBIHNoZWxsIGNvbW1hbmQgd2hpY2ggZGV0ZXJtaW5lcyBpZiB0aGUgdGhpcyB0YXNrIHNob3VsZCBiZSBleGVjdXRlZC4gSWZcbiAgICogdGhlIHByb2dyYW0gZXhpdHMgd2l0aCBhIHplcm8gZXhpdCBjb2RlLCBzdGVwcyB3aWxsIGJlIGV4ZWN1dGVkLiBBIG5vbi16ZXJvXG4gICAqIGNvZGUgbWVhbnMgdGhhdCB0YXNrIHdpbGwgYmUgc2tpcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHdvcmtpbmcgZGlyZWN0b3J5IGZvciBhbGwgc3RlcHMgaW4gdGhpcyB0YXNrICh1bmxlc3Mgb3ZlcnJpZGRlbiBieSB0aGVcbiAgICogc3RlcCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcHJvY2Vzcy5jd2QoKVxuICAgKi9cbiAgcmVhZG9ubHkgY3dkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNwZWNpZmljYXRpb24gb2YgYSBzaW5nbGUgdGFzay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXNrU3BlYyBleHRlbmRzIFRhc2tDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRhc2sgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGFzayBzdGVwcy5cbiAgICovXG4gIHJlYWRvbmx5IHN0ZXBzPzogVGFza1N0ZXBbXTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB0YXNrIHN0ZXBzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tTdGVwT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTdGVwIG5hbWVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBuYW1lXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgd29ya2luZyBkaXJlY3RvcnkgZm9yIHRoaXMgc3RlcC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZXRlcm1pbmVkIGJ5IHRoZSB0YXNrXG4gICAqL1xuICByZWFkb25seSBjd2Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgc2hlbGwgY29tbWFuZCB3aGljaCBkZXRlcm1pbmVzIGlmIHRoZSB0aGlzIHN0ZXAgc2hvdWxkIGJlIGV4ZWN1dGVkLiBJZlxuICAgKiB0aGUgcHJvZ3JhbSBleGl0cyB3aXRoIGEgemVybyBleGl0IGNvZGUsIHRoZSBzdGVwIHdpbGwgYmUgZXhlY3V0ZWQuIEEgbm9uLXplcm9cbiAgICogY29kZSBtZWFucyB0aGUgc3RlcCB3aWxsIGJlIHNraXBwZWQgKHN1YnNlcXVlbnQgdGFzayBzdGVwcyB3aWxsIHN0aWxsIGJlIGV2YWx1YXRlZC9leGVjdXRlZCkuXG4gICAqL1xuICByZWFkb25seSBjb25kaXRpb24/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90YXNrLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNjaGVtYSBmb3IgYHRhc2tzLmpzb25gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tzTWFuaWZlc3Qge1xuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHRhc2tzIG1hbmlmZXN0IHNjaGVtYS5cbiAgICpcbiAgICogVXNlZCBieSB0aGUgdGFzayBydW50aW1lIHRvIGRldGVjdCBtYW5pZmVzdHMgcHJvZHVjZWQgYnkgYSBuZXdlciB2ZXJzaW9uXG4gICAqIG9mIHByb2plbi4gTWFuaWZlc3RzIGdlbmVyYXRlZCBieSBvbGRlciB2ZXJzaW9ucyBvZiBwcm9qZW4gb21pdCB0aGlzIGZpZWxkXG4gICAqIGFuZCBhcmUgdHJlYXRlZCBhcyBcImxlZ2FjeVwiIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgbWFuaWZlc3QgaXMgdHJlYXRlZCBhcyBhIGxlZ2FjeSAodW52ZXJzaW9uZWQpIG1hbmlmZXN0XG4gICAqL1xuICByZWFkb25seSBtYW5pZmVzdFZlcnNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEFsbCB0YXNrcyBhdmFpbGFibGUgZm9yIHRoaXMgcHJvamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHRhc2tzPzogeyBbbmFtZTogc3RyaW5nXTogVGFza1NwZWMgfTtcblxuICAvKipcbiAgICogRW52aXJvbm1lbnQgZm9yIGFsbCB0YXNrcy5cbiAgICovXG4gIHJlYWRvbmx5IGVudj86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIGJ1aWxkIGNvbW1hbmQuXG4gICAqIEBkZWZhdWx0IC0gdGhlIHRhc2sgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0aGUgZXhlY3V0aW9uIG9mIHRoaXMgdGFzay5cbiAgICogVmFsdWVzIGluIHRoaXMgbWFwIHdpbGwgYmUgZXZhbHVhdGVkIGluIGEgc2hlbGwsIHNvIHlvdSBjYW4gZG8gc3R1ZmYgbGlrZSBgJChlY2hvIFwiZm9vXCIpYC5cbiAgICogQGRlZmF1bHQge31cbiAgICovXG4gIHJlYWRvbmx5IGVudj86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBBIHNldCBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCBtdXN0IGJlIGRlZmluZWQgaW4gb3JkZXIgdG8gZXhlY3V0ZVxuICAgKiB0aGlzIHRhc2suIFRhc2sgZXhlY3V0aW9uIHdpbGwgZmFpbCBpZiBvbmUgb2YgdGhlc2UgaXMgbm90IGRlZmluZWQuXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlZEVudj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBIHNoZWxsIGNvbW1hbmQgd2hpY2ggZGV0ZXJtaW5lcyBpZiB0aGUgdGhpcyB0YXNrIHNob3VsZCBiZSBleGVjdXRlZC4gSWZcbiAgICogdGhlIHByb2dyYW0gZXhpdHMgd2l0aCBhIHplcm8gZXhpdCBjb2RlLCBzdGVwcyB3aWxsIGJlIGV4ZWN1dGVkLiBBIG5vbi16ZXJvXG4gICAqIGNvZGUgbWVhbnMgdGhhdCB0YXNrIHdpbGwgYmUgc2tpcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHdvcmtpbmcgZGlyZWN0b3J5IGZvciBhbGwgc3RlcHMgaW4gdGhpcyB0YXNrICh1bmxlc3Mgb3ZlcnJpZGRlbiBieSB0aGVcbiAgICogc3RlcCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcHJvY2Vzcy5jd2QoKVxuICAgKi9cbiAgcmVhZG9ubHkgY3dkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNwZWNpZmljYXRpb24gb2YgYSBzaW5nbGUgdGFzay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXNrU3BlYyBleHRlbmRzIFRhc2tDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRhc2sgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGFzayBzdGVwcy5cbiAgICovXG4gIHJlYWRvbmx5IHN0ZXBzPzogVGFza1N0ZXBbXTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB0YXNrIHN0ZXBzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tTdGVwT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTdGVwIG5hbWVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBuYW1lXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgd29ya2luZyBkaXJlY3RvcnkgZm9yIHRoaXMgc3RlcC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZXRlcm1pbmVkIGJ5IHRoZSB0YXNrXG4gICAqL1xuICByZWFkb25seSBjd2Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgc2hlbGwgY29tbWFuZCB3aGljaCBkZXRlcm1pbmVzIGlmIHRoZSB0aGlzIHN0ZXAgc2hvdWxkIGJlIGV4ZWN1dGVkLiBJZlxuICAgKiB0aGUgcHJvZ3JhbSBleGl0cyB3aXRoIGEgemVybyBleGl0IGNvZGUsIHRoZSBzdGVwIHdpbGwgYmUgZXhlY3V0ZWQuIEEgbm9uLXplcm9cbiAgICogY29kZSBtZWFucyB0aGUgc3RlcCB3aWxsIGJlIHNraXBwZWQgKHN1YnNlcXVlbnQgdGFzayBzdGVwcyB3aWxsIHN0aWxsIGJlIGV2YWx1YXRlZC9leGVjdXRlZCkuXG4gICAqL1xuICByZWFkb25seSBjb25kaXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNob3VsZCB0aGlzIHN0ZXAgcmVjZWl2ZSBhcmdzIHBhc3NlZCB0byB0aGUgdGFzay5cbiAgICpcbiAgICogSWYgYHRydWVgLCBhcmdzIGFyZSBwYXNzZWQgdGhyb3VnaCBhdCB0aGUgZW5kIG9mIHRoZSBgZXhlY2Agc2hlbGwgY29tbWFuZC5cXFxuICAgKiBUaGUgcG9zaXRpb24gb2YgdGhlIGFyZ3MgY2FuIGJlIGNoYW5nZWQgYnkgaW5jbHVkaW5nIHRoZSBtYXJrZXIgYCRAYCBpbnNpZGUgdGhlIGNvbW1hbmQgc3RyaW5nLlxuICAgKlxuICAgKiBJZiB0aGUgbWFya2VyIGlzIGV4cGxpY2l0bHkgZG91YmxlLXF1b3RlZCAoXCIkQFwiKSBhcmd1bWVudHMgd2lsbCBiZSB3cmFwcGVkIGluIHNpbmdsZSBxdW90ZXMsIGFwcHJveGltYXRpbmdcbiAgICogdGhlIHdoaXRlc3BhY2UgcHJlc2VydmluZyBiZWhhdmlvciBvZiBiYXNoIHZhcmlhYmxlIGV4cGFuc2lvbi5cbiAgICpcbiAgICogSWYgdGhlIHN0ZXAgc3Bhd25zIGEgc3VidGFzaywgYXJncyBhcmUgcGFzc2VkIHRvIHRoZSBzdWJ0YXNrLlxuICAgKiBUaGUgc3VidGFzayBtdXN0IGRlZmluZSBzdGVwcyByZWNlaXZpbmcgYXJncyBmb3IgdGhpcyB0byBoYXZlIGFueSBlZmZlY3QuXG4gICAqXG4gICAqIEBleGFtcGxlIHRhc2suZXhlYyhcImVjaG8gSGVsbG8gJEAgV29ybGQhXCIsIHsgcmVjZWl2ZUFyZ3M6IHRydWUgfSk7XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZWNlaXZlQXJncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBmaXhlZCBhcmd1bWVudHMgYWx3YXlzIHBhc3NlZCB0byB0aGUgc3RlcC5cbiAgICpcbiAgICogVXNlZnVsIHRvIHJlLXVzZSBleGlzdGluZyB0YXNrcyB3aXRob3V0IGhhdmluZyB0byByZS1kZWZpbmUgdGhlIHdob2xlIHRhc2suXFxcbiAgICogRml4ZWQgYXJncyBhcmUgYWx3YXlzIHBhc3NlZCB0byB0aGUgc3RlcCwgZXZlbiBpZiBgcmVjZWl2ZUFyZ3NgIGlzIGBmYWxzZWBcbiAgICogYW5kIGFyZSBhbHdheXMgcGFzc2VkIGJlZm9yZSBhbnkgYXJncyB0aGUgdGFzayBpcyBjYWxsZWQgd2l0aC5cbiAgICpcbiAgICogSWYgdGhlIHN0ZXAgZXhlY3V0ZXMgYSBzaGVsbCBjb21tYW5kcywgYXJncyBhcmUgcGFzc2VkIHRocm91Z2ggYXQgdGhlIGVuZCBvZiB0aGUgYGV4ZWNgIHNoZWxsIGNvbW1hbmQuXFxcbiAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBhcmdzIGNhbiBiZSBjaGFuZ2VkIGJ5IGluY2x1ZGluZyB0aGUgbWFya2VyIGAkQGAgaW5zaWRlIHRoZSBjb21tYW5kIHN0cmluZy5cbiAgICpcbiAgICogSWYgdGhlIHN0ZXAgc3Bhd25zIGEgc3VidGFzaywgYXJncyBhcmUgcGFzc2VkIHRvIHRoZSBzdWJ0YXNrLlxuICAgKiBUaGUgc3VidGFzayBtdXN0IGRlZmluZSBzdGVwcyByZWNlaXZpbmcgYXJncyBmb3IgdGhpcyB0byBoYXZlIGFueSBlZmZlY3QuXG4gICAqXG4gICAqIElmIHRoZSBzdGVwIGNhbGxzIGEgYnVpbHRpbiBzY3JpcHQsIGFyZ3MgYXJlIHBhc3NlZCB0byB0aGUgc2NyaXB0LlxuICAgKiBJdCBpcyB1cCB0byB0aGUgc2NyaXB0IHRvIHVzZSBvciBkaXNjYXJkIHRoZSBhcmd1bWVudHMuXG4gICAqXG4gICAqIEBleGFtcGxlIHRhc2suc3Bhd24oXCJkZXBsb3lcIiwgeyBhcmdzOiBbXCItLWZvcmNlXCJdIH0pO1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRvIHRoZSBzdGVwXG4gICAqL1xuICByZWFkb25seSBhcmdzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIERlZmluZXMgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0aGUgZXhlY3V0aW9uIG9mIHRoaXMgc3RlcCAoYGV4ZWNgIGFuZCBgYnVpbHRpbmAgb25seSkuXG4gICAqIFZhbHVlcyBpbiB0aGlzIG1hcCBjYW4gYmUgc2ltcGxlLCBsaXRlcmFsIHZhbHVlcyBvciBzaGVsbCBleHByZXNzaW9ucyB0aGF0IHdpbGwgYmUgZXZhbHVhdGVkIGF0IHJ1bnRpbWUgZS5nLiBgJChlY2hvIFwiZm9vXCIpYC5cbiAgICpcbiAgICogQGV4YW1wbGUgeyBcImZvb1wiOiBcImJhclwiLCBcImJvb1wiOiBcIiQoZWNobyBiYXopXCIgfVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGVudmlyb25tZW50IHZhcmlhYmxlcyBkZWZpbmVkIGluIHN0ZXBcbiAgICovXG4gIHJlYWRvbmx5IGVudj86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIEEgc2luZ2xlIHN0ZXAgd2l0aGluIGEgdGFzay4gVGhlIHN0ZXAgY291bGQgZWl0aGVyIGJlICB0aGUgZXhlY3V0aW9uIG9mIGFcbiAqIHNoZWxsIGNvbW1hbmQgb3IgZXhlY3V0aW9uIG9mIGEgc3ViLXRhc2ssIGJ5IG5hbWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFza1N0ZXAgZXh0ZW5kcyBUYXNrU3RlcE9wdGlvbnMge1xuICAvKipcbiAgICogU2hlbGwgY29tbWFuZCB0byBleGVjdXRlLlxuICAgKlxuICAgKiBUaGUgd2hvbGUgY29tbWFuZCBpcyBhIHNpbmdsZSBzaGVsbCBzdHJpbmcuIFRvIHBhc3MgYXJndW1lbnRzIGFzIGEgbGlzdFxuICAgKiBpbnN0ZWFkIC0gd2l0aG91dCBoYXZpbmcgdG8gcXVvdGUgc3BhY2VzIG9yIG90aGVyIGNoYXJhY3RlcnMgeW91cnNlbGYgLVxuICAgKiB1c2UgYGV4ZWNBcmdzYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkb24ndCBleGVjdXRlIGEgc2hlbGwgY29tbWFuZFxuICAgKi9cbiAgcmVhZG9ubHkgZXhlYz86IHN0cmluZztcblxuICAvKipcbiAgICogU2hlbGwgY29tbWFuZCB0byBleGVjdXRlLCBwcm92aWRlZCBhcyBhIGxpc3Qgb2YgdGhlIHByb2dyYW0gZm9sbG93ZWQgYnlcbiAgICogaXRzIGFyZ3VtZW50cyAoYW4gXCJhcmd2XCIpLlxuICAgKlxuICAgKiBPZnRlbiBtb3JlIGNvbnZlbmllbnQgdGhhbiBgZXhlY2A6IGVhY2ggZWxlbWVudCBpcyBwYXNzZWQgdG8gdGhlXG4gICAqIHByb2dyYW0gYXMtaXMsIHNvIGFyZ3VtZW50cyB3aXRoIHNwYWNlcyBvciBzcGVjaWFsIGNoYXJhY3RlcnMgZG9uJ3QgbmVlZFxuICAgKiBxdW90aW5nLiBGaXhlZCAoYGFyZ3NgKSBvciByZWNlaXZlZCAoYHJlY2VpdmVBcmdzYCkgYXJndW1lbnRzIGFyZSBpbnNlcnRlZFxuICAgKiB3aGVyZXZlciBhIGAkQGAgZWxlbWVudCBhcHBlYXJzLCBvciBhcHBlbmRlZCBhdCB0aGUgZW5kIGlmIHRoZXJlIGlzIG5vbmUuXG4gICAqXG4gICAqIFRoZSBlbGVtZW50cyBhcmUgbm90IHJ1biB0aHJvdWdoIGEgc2hlbGwsIHNvIGVudmlyb25tZW50IHZhcmlhYmxlcyAoYCRGT09gKVxuICAgKiBhcmUgbm90IGV4cGFuZGVkIGFuZCBvdGhlciBzaGVsbCBmZWF0dXJlcyBhcmUgdW5hdmFpbGFibGUuIFVzZSBgZXhlY2BcbiAgICogaWYgeW91IG5lZWQgdGhlbS5cbiAgICpcbiAgICogTXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggYGV4ZWNgLlxuICAgKlxuICAgKiBAZXhhbXBsZSB7IGV4ZWNBcmdzOiBbXCJlY2hvXCIsIFwiaGVsbG8gd29ybGRcIl0gfVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRvbid0IGV4ZWN1dGUgYSBzaGVsbCBjb21tYW5kXG4gICAqL1xuICByZWFkb25seSBleGVjQXJncz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTdWJ0YXNrIHRvIGV4ZWN1dGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBkb24ndCBzcGF3biBhIHN1YnRhc2tcbiAgICovXG4gIHJlYWRvbmx5IHNwYXduPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcmludCBhIG1lc3NhZ2UuXG4gICAqIEBkZWZhdWx0IC0gZG9uJ3Qgc2F5IGFueXRoaW5nXG4gICAqL1xuICByZWFkb25seSBzYXk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIGEgYnVpbHQtaW4gdGFzayB0byBleGVjdXRlLlxuICAgKlxuICAgKiBCdWlsdC1pbiB0YXNrcyBhcmUgbm9kZS5qcyBwcm9ncmFtcyBiYWtlZCBpbnRvIHRoZSBwcm9qZW4gbW9kdWxlIGFuZCBhc1xuICAgKiBjb21wb25lbnQgcnVudGltZSBoZWxwZXJzLlxuICAgKlxuICAgKiBUaGUgbmFtZSBpcyBhIHBhdGggcmVsYXRpdmUgdG8gdGhlIHByb2plbiBsaWIvIGRpcmVjdG9yeSAod2l0aG91dCB0aGUgLnRhc2suanMgZXh0ZW5zaW9uKS5cbiAgICogRm9yIGV4YW1wbGUsIGlmIHlvdXIgYnVpbHQgaW4gYnVpbHRpbiB0YXNrIGlzIHVuZGVyIGBzcmMvcmVsZWFzZS9yZXNvbHZlLXZlcnNpb24udGFzay50c2AsXG4gICAqIHRoZW4gdGhpcyB3b3VsZCBiZSBgcmVsZWFzZS9yZXNvbHZlLXZlcnNpb25gLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRvIG5vdCBleGVjdXRlIGEgYnVpbHRpbiB0YXNrXG4gICAqL1xuICByZWFkb25seSBidWlsdGluPzogc3RyaW5nO1xufVxuIl19
|
package/lib/task.d.ts
CHANGED
|
@@ -2,9 +2,27 @@ import type { TaskCommonOptions, TaskSpec, TaskStep, TaskStepOptions } from "./t
|
|
|
2
2
|
export interface TaskOptions extends TaskCommonOptions {
|
|
3
3
|
/**
|
|
4
4
|
* Shell command to execute as the first command of the task.
|
|
5
|
+
*
|
|
6
|
+
* Mutually exclusive with `execArgs`.
|
|
7
|
+
*
|
|
5
8
|
* @default - add steps using `task.exec(command)` or `task.spawn(subtask)`
|
|
6
9
|
*/
|
|
7
10
|
readonly exec?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Shell command to execute as the first command of the task, provided as a
|
|
13
|
+
* list of the program followed by its arguments (an "argv").
|
|
14
|
+
*
|
|
15
|
+
* A convenient alternative to `exec`: arguments with spaces or special
|
|
16
|
+
* characters are passed through as-is, with no quoting needed. The elements
|
|
17
|
+
* are not run through a shell, so environment variables (`$FOO`) are not
|
|
18
|
+
* expanded and other shell features are unavailable.
|
|
19
|
+
* @see TaskStep.execArgs
|
|
20
|
+
*
|
|
21
|
+
* Mutually exclusive with `exec`.
|
|
22
|
+
*
|
|
23
|
+
* @default - add steps using `task.execArgs(args)`, `task.exec(command)` or `task.spawn(subtask)`
|
|
24
|
+
*/
|
|
25
|
+
readonly execArgs?: string[];
|
|
8
26
|
/**
|
|
9
27
|
* List of task steps to run.
|
|
10
28
|
*/
|
|
@@ -92,6 +110,21 @@ export declare class Task {
|
|
|
92
110
|
* @param options Options
|
|
93
111
|
*/
|
|
94
112
|
exec(command: string, options?: TaskStepOptions): void;
|
|
113
|
+
/**
|
|
114
|
+
* Executes a command provided as a list of the program followed by its
|
|
115
|
+
* arguments (an "argv").
|
|
116
|
+
*
|
|
117
|
+
* A convenient alternative to `Task.exec`: arguments with spaces or
|
|
118
|
+
* special characters are passed through as-is, with no quoting needed. The
|
|
119
|
+
* elements are not run through a shell, so environment variables (`$FOO`) are
|
|
120
|
+
* not expanded and other shell features are unavailable.
|
|
121
|
+
*
|
|
122
|
+
* @example task.execArgs(["echo", "hello world"]);
|
|
123
|
+
*
|
|
124
|
+
* @param command The program followed by its arguments.
|
|
125
|
+
* @param options Options
|
|
126
|
+
*/
|
|
127
|
+
execArgs(command: string[], options?: TaskStepOptions): void;
|
|
95
128
|
/**
|
|
96
129
|
* Execute a builtin task.
|
|
97
130
|
*
|
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.100.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Task", version: "0.100.7" };
|
|
12
12
|
/**
|
|
13
13
|
* Task name.
|
|
14
14
|
*/
|
|
@@ -32,9 +32,18 @@ class Task {
|
|
|
32
32
|
if (props.exec && props.steps) {
|
|
33
33
|
throw new Error("cannot specify both exec and steps");
|
|
34
34
|
}
|
|
35
|
+
if (props.execArgs && props.steps) {
|
|
36
|
+
throw new Error("cannot specify both execArgs and steps");
|
|
37
|
+
}
|
|
38
|
+
if (props.exec && props.execArgs) {
|
|
39
|
+
throw new Error("cannot specify both exec and execArgs");
|
|
40
|
+
}
|
|
35
41
|
if (props.exec) {
|
|
36
42
|
this.exec(props.exec, { receiveArgs: props.receiveArgs });
|
|
37
43
|
}
|
|
44
|
+
if (props.execArgs) {
|
|
45
|
+
this.execArgs(props.execArgs, { receiveArgs: props.receiveArgs });
|
|
46
|
+
}
|
|
38
47
|
}
|
|
39
48
|
/**
|
|
40
49
|
* Forbid additional changes to this task.
|
|
@@ -120,6 +129,23 @@ class Task {
|
|
|
120
129
|
exec(command, options = {}) {
|
|
121
130
|
this._pushSteps("exec", [{ exec: command, ...options }]);
|
|
122
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Executes a command provided as a list of the program followed by its
|
|
134
|
+
* arguments (an "argv").
|
|
135
|
+
*
|
|
136
|
+
* A convenient alternative to `Task.exec`: arguments with spaces or
|
|
137
|
+
* special characters are passed through as-is, with no quoting needed. The
|
|
138
|
+
* elements are not run through a shell, so environment variables (`$FOO`) are
|
|
139
|
+
* not expanded and other shell features are unavailable.
|
|
140
|
+
*
|
|
141
|
+
* @example task.execArgs(["echo", "hello world"]);
|
|
142
|
+
*
|
|
143
|
+
* @param command The program followed by its arguments.
|
|
144
|
+
* @param options Options
|
|
145
|
+
*/
|
|
146
|
+
execArgs(command, options = {}) {
|
|
147
|
+
this._pushSteps("execArgs", [{ execArgs: command, ...options }]);
|
|
148
|
+
}
|
|
123
149
|
/**
|
|
124
150
|
* Execute a builtin task.
|
|
125
151
|
*
|
|
@@ -331,4 +357,4 @@ class Task {
|
|
|
331
357
|
}
|
|
332
358
|
}
|
|
333
359
|
exports.Task = Task;
|
|
334
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90YXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1Q0FBaUM7QUFxQ2pDOzs7R0FHRztBQUNILE1BQWEsSUFBSTs7SUFDZjs7T0FFRztJQUNhLElBQUksQ0FBUztJQUVaLFdBQVcsQ0FBVztJQUN0QixNQUFNLENBQWE7SUFDbkIsSUFBSSxDQUE2QjtJQUMxQyxJQUFJLENBQXNCO0lBRWpCLFdBQVcsQ0FBWTtJQUNoQyxPQUFPLENBQVU7SUFDakIsWUFBWSxDQUFVO0lBRTlCLFlBQVksSUFBWSxFQUFFLFFBQXFCLEVBQUU7UUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM1RCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUU1QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUVyQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUk7UUFDVCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxHQUFHLENBQUMsR0FBdUI7UUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFdBQVcsQ0FBQyxJQUF3QjtRQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksWUFBWSxDQUFDLEdBQUcsU0FBbUI7UUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLE9BQWdCLEVBQUUsVUFBMkIsRUFBRTtRQUMxRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9CLE9BQU87UUFDVCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUVELElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksUUFBUSxDQUFDLEdBQUcsS0FBaUI7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxJQUFJLENBQUMsT0FBZSxFQUFFLFVBQTJCLEVBQUU7UUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxPQUFPLENBQUMsSUFBWTtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEdBQUcsQ0FBQyxPQUFlLEVBQUUsVUFBMkIsRUFBRTtRQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLE9BQWEsRUFBRSxVQUEyQixFQUFFO1FBQ3ZELElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFlBQVksQ0FBQyxHQUFHLEtBQWlCO1FBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXLENBQUMsS0FBYSxFQUFFLFVBQTJCLEVBQUU7UUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFlBQVksQ0FBQyxPQUFhLEVBQUUsVUFBMkIsRUFBRTtRQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxPQUFlLEVBQUUsVUFBMkIsRUFBRTtRQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sVUFBVSxDQUFDLE1BQWMsRUFBRSxLQUFpQjtRQUNsRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsTUFBTSxLQUFLLENBQUMsQ0FBQztZQUN0QyxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVPLGFBQWEsQ0FBQyxNQUFjLEVBQUUsS0FBaUI7UUFDckQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDdEMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDcEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxLQUFLO1FBQ2QscUVBQXFFO1FBQ3JFLDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFVBQVUsQ0FBQyxLQUFhLEVBQUUsR0FBRyxLQUFpQjtRQUNuRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDM0MsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdELE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0NBQWdDLEtBQUssYUFBYSxJQUFJLENBQUMsSUFBSSxnREFBZ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FDL0gsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVLENBQUMsS0FBYSxFQUFFLElBQWM7UUFDN0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3pDLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FDYiwrQkFBK0IsS0FBSyxhQUFhLElBQUksQ0FBQyxJQUFJLDRCQUE0QixDQUN2RixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDMUMsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixNQUFNLElBQUksS0FBSyxDQUNiLCtCQUErQixLQUFLLGFBQWEsSUFBSSxDQUFDLElBQUksNEJBQTRCLENBQ3ZGLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVztRQUNoQix5Q0FBeUM7UUFDekMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUN2QyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDZixHQUFHLElBQUk7WUFDUCxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakQsQ0FBQyxFQUNGLEVBQUUsQ0FDSCxDQUFDO1FBRUYseUNBQXlDO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDekIsT0FBTyxDQUFDLENBQUMsR0FBRztvQkFDVixDQUFDLENBQUM7d0JBQ0UsR0FBRyxDQUFDO3dCQUNKLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQzVCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzs0QkFDZixHQUFHLElBQUk7NEJBQ1AsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUM5QyxDQUFDLEVBQ0YsRUFBRSxDQUNIO3FCQUNGO29CQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDUixDQUFDLENBQUM7WUFDSixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUVoQixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLEdBQUcsRUFBRSxHQUFHO1lBQ1IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNmLENBQUM7SUFDSixDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUkseUJBQXlCLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLHFCQUE2QjtRQUNwRCxJQUFBLGNBQUksRUFDRixVQUFVLHFCQUFxQixVQUFVLElBQUksQ0FBQyxJQUFJLGtFQUFrRSxDQUNySCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVksQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUMzQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckQsSUFBQSxjQUFJLEVBQ0Ysc0RBQXNELElBQUksOEJBQThCLENBQ3pGLENBQUM7WUFDRixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7O0FBcFlILG9CQXFZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdhcm4gfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFRhc2tDb21tb25PcHRpb25zLFxuICBUYXNrU3BlYyxcbiAgVGFza1N0ZXAsXG4gIFRhc2tTdGVwT3B0aW9ucyxcbn0gZnJvbSBcIi4vdGFzay1tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tPcHRpb25zIGV4dGVuZHMgVGFza0NvbW1vbk9wdGlvbnMge1xuICAvKipcbiAgICogU2hlbGwgY29tbWFuZCB0byBleGVjdXRlIGFzIHRoZSBmaXJzdCBjb21tYW5kIG9mIHRoZSB0YXNrLlxuICAgKiBAZGVmYXVsdCAtIGFkZCBzdGVwcyB1c2luZyBgdGFzay5leGVjKGNvbW1hbmQpYCBvciBgdGFzay5zcGF3bihzdWJ0YXNrKWBcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgdGFzayBzdGVwcyB0byBydW4uXG4gICAqL1xuICByZWFkb25seSBzdGVwcz86IFRhc2tTdGVwW107XG5cbiAgLyoqXG4gICAqIFNob3VsZCB0aGUgcHJvdmlkZWQgYGV4ZWNgIHNoZWxsIGNvbW1hbmQgcmVjZWl2ZSBhcmdzIHBhc3NlZCB0byB0aGUgdGFzay5cbiAgICogQHNlZSB7QGxpbmsgVGFza1N0ZXBPcHRpb25zLnJlY2VpdmVBcmdzfVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVjZWl2ZUFyZ3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgdGhlIHByb3ZpZGVkIGBleGVjYCBzaGVsbCBjb21tYW5kIHJlY2VpdmUgZml4ZWQgYXJncy5cbiAgICogQHNlZSB7QGxpbmsgVGFza1N0ZXBPcHRpb25zLmFyZ3N9XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhlIHN0ZXBcbiAgICovXG4gIHJlYWRvbmx5IGFyZ3M/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBBIHRhc2sgdGhhdCBjYW4gYmUgcGVyZm9ybWVkIG9uIHRoZSBwcm9qZWN0LiBNb2RlbGVkIGFzIGEgc2VyaWVzIG9mIHNoZWxsXG4gKiBjb21tYW5kcyBhbmQgc3VidGFza3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXNrIHtcbiAgLyoqXG4gICAqIFRhc2sgbmFtZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY29uZGl0aW9uczogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0ZXBzOiBUYXNrU3RlcFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbnY6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuICBwcml2YXRlIF9jd2Q/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXF1aXJlZEVudj86IHN0cmluZ1tdO1xuICBwcml2YXRlIF9sb2NrZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX2Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgcHJvcHM6IFRhc2tPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMuX2Rlc2NyaXB0aW9uID0gcHJvcHMuZGVzY3JpcHRpb247XG4gICAgdGhpcy5fY29uZGl0aW9ucyA9IHByb3BzLmNvbmRpdGlvbiA/IFtwcm9wcy5jb25kaXRpb25dIDogW107XG4gICAgdGhpcy5fY3dkID0gcHJvcHMuY3dkO1xuICAgIHRoaXMuX2xvY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMuX2VudiA9IHByb3BzLmVudiA/PyB7fTtcblxuICAgIHRoaXMuX3N0ZXBzID0gcHJvcHMuc3RlcHMgPz8gW107XG4gICAgdGhpcy5yZXF1aXJlZEVudiA9IHByb3BzLnJlcXVpcmVkRW52O1xuXG4gICAgaWYgKHByb3BzLmV4ZWMgJiYgcHJvcHMuc3RlcHMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImNhbm5vdCBzcGVjaWZ5IGJvdGggZXhlYyBhbmQgc3RlcHNcIik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmV4ZWMpIHtcbiAgICAgIHRoaXMuZXhlYyhwcm9wcy5leGVjLCB7IHJlY2VpdmVBcmdzOiBwcm9wcy5yZWNlaXZlQXJncyB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9yYmlkIGFkZGl0aW9uYWwgY2hhbmdlcyB0byB0aGlzIHRhc2suXG4gICAqL1xuICBwdWJsaWMgbG9jaygpIHtcbiAgICB0aGlzLl9sb2NrZWQgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IGZvciB0aGlzIHRhc2suXG4gICAqL1xuICBwdWJsaWMgZ2V0IGN3ZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9jd2Q7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgd29ya2luZyBkaXJlY3RvcnkgZm9yIHRoaXMgdGFzay5cbiAgICovXG4gIHB1YmxpYyBzZXQgY3dkKGN3ZDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fY3dkID0gY3dkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgdGFzay5cbiAgICovXG4gIHB1YmxpYyBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb247XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyB0YXNrLlxuICAgKi9cbiAgcHVibGljIHNldCBkZXNjcmlwdGlvbihkZXNjOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IGRlc2M7XG4gIH1cblxuICAvKipcbiAgICogQSBjb21tYW5kIHRvIGV4ZWN1dGUgd2hpY2ggZGV0ZXJtaW5lcyBpZiB0aGUgdGFzayBzaG91bGQgYmUgc2tpcHBlZC4gSWYgaXRcbiAgICogcmV0dXJucyBhIHplcm8gZXhpdCBjb2RlLCB0aGUgdGFzayB3aWxsIG5vdCBiZSBleGVjdXRlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29uZGl0aW9uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuX2NvbmRpdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2NvbmRpdGlvbnMuam9pbihcIiAmJiBcIik7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgY29tbWFuZCB0byBleGVjdXRlIHdoaWNoIGRldGVybWluZXMgaWYgdGhlIHRhc2sgc2hvdWxkIGJlIHNraXBwZWQuXG4gICAqXG4gICAqIElmIGEgY29uZGl0aW9uIGFscmVhZHkgZXhpc3RzLCB0aGUgbmV3IGNvbmRpdGlvbiB3aWxsIGJlIGFwcGVuZGVkIHdpdGggYCAmJiBgIGRlbGltaXRlci5cbiAgICogQHBhcmFtIGNvbmRpdGlvbiBUaGUgY29tbWFuZCB0byBleGVjdXRlLlxuICAgKiBAc2VlIHtAbGluayBUYXNrLmNvbmRpdGlvbn1cbiAgICovXG4gIHB1YmxpYyBhZGRDb25kaXRpb24oLi4uY29uZGl0aW9uOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmRpdGlvbnMucHVzaCguLi5jb25kaXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSB0YXNrIHNvIGl0IG5vIGxvbmdlciBoYXMgYW55IGNvbW1hbmRzLlxuICAgKiBAcGFyYW0gY29tbWFuZCB0aGUgZmlyc3QgY29tbWFuZCB0byBhZGQgdG8gdGhlIHRhc2sgYWZ0ZXIgaXQgd2FzIGNsZWFyZWQuXG4gICAqL1xuICBwdWJsaWMgcmVzZXQoY29tbWFuZD86IHN0cmluZywgb3B0aW9uczogVGFza1N0ZXBPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLmFzc2VydFVubG9ja2VkKCk7XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fc3RlcHMpKSB7XG4gICAgICB0aGlzLndhcm5Gb3JMYXp5VmFsdWUoXCJyZXNldFwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3aGlsZSAodGhpcy5fc3RlcHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9zdGVwcy5zaGlmdCgpO1xuICAgIH1cblxuICAgIGlmIChjb21tYW5kKSB7XG4gICAgICB0aGlzLmV4ZWMoY29tbWFuZCwgb3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgc3RlcHMgdG8gdGhpcyB0YXNrLiBUaGlzIGlzIGEgZ2VuZXJpYyBtZXRob2QgdGhhdCBhY2NlcHRzIGFueVxuICAgKiB0YXNrIHN0ZXAgKGV4ZWMsIHNwYXduLCBzYXksIGJ1aWx0aW4pLlxuICAgKlxuICAgKiBAcGFyYW0gc3RlcHMgVGhlIHN0ZXBzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhZGRTdGVwcyguLi5zdGVwczogVGFza1N0ZXBbXSkge1xuICAgIHRoaXMuX3B1c2hTdGVwcyhcImFkZFN0ZXBzXCIsIHN0ZXBzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyBhIHNoZWxsIGNvbW1hbmRcbiAgICogQHBhcmFtIGNvbW1hbmQgU2hlbGwgY29tbWFuZFxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgZXhlYyhjb21tYW5kOiBzdHJpbmcsIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5fcHVzaFN0ZXBzKFwiZXhlY1wiLCBbeyBleGVjOiBjb21tYW5kLCAuLi5vcHRpb25zIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGEgYnVpbHRpbiB0YXNrLlxuICAgKlxuICAgKiBCdWlsdGluIHRhc2tzIGFyZSBwcm9ncmFtcyBidW5kbGVkIGFzIHBhcnQgb2YgcHJvamVuIGl0c2VsZiBhbmQgdXNlZCBhc1xuICAgKiBoZWxwZXJzIGZvciB2YXJpb3VzIGNvbXBvbmVudHMuXG4gICAqXG4gICAqIEluIHRoZSBmdXR1cmUgd2Ugc2hvdWxkIHN1cHBvcnQgYnVpbHQtaW4gdGFza3MgZnJvbSBleHRlcm5hbCBtb2R1bGVzLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgYnVpbHRpbiB0YXNrIHRvIGV4ZWN1dGUgKGUuZy5cbiAgICogYHJlbGVhc2UvcmVzb2x2ZS12ZXJzaW9uYCkuXG4gICAqL1xuICBwdWJsaWMgYnVpbHRpbihuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wdXNoU3RlcHMoXCJidWlsdGluXCIsIFt7IGJ1aWx0aW46IG5hbWUgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNheSBzb21ldGhpbmcuXG4gICAqIEBwYXJhbSBtZXNzYWdlIFlvdXIgbWVzc2FnZVxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc2F5KG1lc3NhZ2U6IHN0cmluZywgb3B0aW9uczogVGFza1N0ZXBPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLl9wdXNoU3RlcHMoXCJzYXlcIiwgW3sgc2F5OiBtZXNzYWdlLCAuLi5vcHRpb25zIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGF3bnMgYSBzdWItdGFzay5cbiAgICogQHBhcmFtIHN1YnRhc2sgVGhlIHN1YnRhc2sgdG8gZXhlY3V0ZS5cbiAgICovXG4gIHB1YmxpYyBzcGF3bihzdWJ0YXNrOiBUYXNrLCBvcHRpb25zOiBUYXNrU3RlcE9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuX3B1c2hTdGVwcyhcInNwYXduXCIsIFt7IHNwYXduOiBzdWJ0YXNrLm5hbWUsIC4uLm9wdGlvbnMgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgc3RlcHMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGlzIHRhc2suXG4gICAqXG4gICAqIEBwYXJhbSBzdGVwcyBUaGUgc3RlcHMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIHByZXBlbmRTdGVwcyguLi5zdGVwczogVGFza1N0ZXBbXSkge1xuICAgIHRoaXMuX3Vuc2hpZnRTdGVwcyhcInByZXBlbmRTdGVwc1wiLCBzdGVwcyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGNvbW1hbmQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGFzay5cbiAgICogQHBhcmFtIHNoZWxsIFRoZSBjb21tYW5kIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBwcmVwZW5kRXhlYyhzaGVsbDogc3RyaW5nLCBvcHRpb25zOiBUYXNrU3RlcE9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuX3Vuc2hpZnRTdGVwcyhcInByZXBlbmRFeGVjXCIsIFt7IGV4ZWM6IHNoZWxsLCAuLi5vcHRpb25zIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3Bhd24gaW5zdHJ1Y3Rpb24gYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGFzay5cbiAgICogQHBhcmFtIHN1YnRhc2sgVGhlIHN1YnRhc2sgdG8gZXhlY3V0ZS5cbiAgICovXG4gIHB1YmxpYyBwcmVwZW5kU3Bhd24oc3VidGFzazogVGFzaywgb3B0aW9uczogVGFza1N0ZXBPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLl91bnNoaWZ0U3RlcHMoXCJwcmVwZW5kU3Bhd25cIiwgW3sgc3Bhd246IHN1YnRhc2submFtZSwgLi4ub3B0aW9ucyB9XSk7XG4gIH1cblxuICAvKipcbiAgICogU2F5cyBzb21ldGhpbmcgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGFzay5cbiAgICogQHBhcmFtIG1lc3NhZ2UgWW91ciBtZXNzYWdlXG4gICAqL1xuICBwdWJsaWMgcHJlcGVuZFNheShtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5fdW5zaGlmdFN0ZXBzKFwicHJlcGVuZFNheVwiLCBbeyBzYXk6IG1lc3NhZ2UsIC4uLm9wdGlvbnMgfV0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfcHVzaFN0ZXBzKG1ldGhvZDogc3RyaW5nLCBzdGVwczogVGFza1N0ZXBbXSkge1xuICAgIHRoaXMuYXNzZXJ0VW5sb2NrZWQoKTtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLl9zdGVwcykpIHtcbiAgICAgIHRoaXMud2FybkZvckxhenlWYWx1ZShgJHttZXRob2R9IHRvYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RlcHMucHVzaCguLi5zdGVwcyk7XG4gIH1cblxuICBwcml2YXRlIF91bnNoaWZ0U3RlcHMobWV0aG9kOiBzdHJpbmcsIHN0ZXBzOiBUYXNrU3RlcFtdKSB7XG4gICAgdGhpcy5hc3NlcnRVbmxvY2tlZCgpO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuX3N0ZXBzKSkge1xuICAgICAgdGhpcy53YXJuRm9yTGF6eVZhbHVlKGAke21ldGhvZH0gdG9gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGVwcy51bnNoaWZ0KC4uLnN0ZXBzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHRoaXMgdGFzay5cbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUuIElmIHRoZSB2YWx1ZSBpcyBzdXJyb3VuZGVkIGJ5IGAkKClgLCB3ZSB3aWxsXG4gICAqIGV2YWx1YXRlIGl0IHdpdGhpbiBhIHN1YnNoZWxsIGFuZCB1c2UgdGhlIHJlc3VsdCBhcyB0aGUgdmFsdWUgb2YgdGhlXG4gICAqIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcHVibGljIGVudihuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFzc2VydFVubG9ja2VkKCk7XG4gICAgdGhpcy5fZW52W25hbWVdID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbGwgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIHRoZSB0YXNrIGxldmVsXG4gICAqL1xuICBwdWJsaWMgZ2V0IGVudlZhcnMoKTogUmVhZG9ubHk8eyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gdGhpcy5fZW52O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gaW1tdXRhYmxlIGNvcHkgb2YgYWxsIHRoZSBzdGVwIHNwZWNpZmljYXRpb25zIG9mIHRoZSB0YXNrLlxuICAgKi9cbiAgcHVibGljIGdldCBzdGVwcygpOiBUYXNrU3RlcFtdIHtcbiAgICAvLyBJZiB0aGUgbGlzdCBvZiBzdGVwcyBpcyBhIExhenkgdmFsdWUsIHdlIGNhbid0IGtub3cgd2hhdCB0aGUgc3RlcHNcbiAgICAvLyBhcmUgdW50aWwgc3ludGhlc2lzIG9jY3Vycywgc28ganVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXkuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuX3N0ZXBzKSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gWy4uLnRoaXMuX3N0ZXBzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnNlcnQgb25lIG9yIG1vcmUgc3RlcHMgYXQgYSBnaXZlbiBpbmRleFxuICAgKlxuICAgKiBAcGFyYW0gaW5kZXggU3RlcHMgd2lsbCBiZSBpbnNlcnRlZCBiZWZvcmUgdGhpcyBpbmRleC4gTWF5IGJlIG5lZ2F0aXZlIHRvXG4gICAqIGNvdW50IGJhY2t3YXJkcyBmcm9tIHRoZSBlbmQsIG9yIG1heSBiZSBgPT0gc3RlcHMoKS5sZW5ndGhgIHRvIGluc2VydCBhdCB0aGUgZW5kLlxuICAgKiBAcGFyYW0gc3RlcHMgVGhlIHN0ZXBzIHRvIGluc2VydFxuICAgKi9cbiAgcHVibGljIGluc2VydFN0ZXAoaW5kZXg6IG51bWJlciwgLi4uc3RlcHM6IFRhc2tTdGVwW10pOiB2b2lkIHtcbiAgICB0aGlzLmFzc2VydFVubG9ja2VkKCk7XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fc3RlcHMpKSB7XG4gICAgICB0aGlzLndhcm5Gb3JMYXp5VmFsdWUoXCJpbnNlcnQgc3RlcHMgaW50b1wiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaW5kZXggPCAtdGhpcy5fc3RlcHMubGVuZ3RoIHx8IGluZGV4ID4gdGhpcy5zdGVwcy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENhbm5vdCBpbnNlcnQgc3RlcHMgYXQgaW5kZXggJHtpbmRleH0gZm9yIHRhc2sgJHt0aGlzLm5hbWV9IGJlY2F1c2UgdGhlIGluZGV4IGlzIG91dCBvZiBib3VuZHMgZm9yIHNpemUgJHt0aGlzLnN0ZXBzLmxlbmd0aH1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGVwcy5zcGxpY2UoaW5kZXgsIDAsIC4uLnN0ZXBzKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBzdGVwIHRvIGVkaXRcbiAgICogQHBhcmFtIHN0ZXAgVGhlIG5ldyBzdGVwIHRvIHJlcGxhY2UgdGhlIG9sZCBvbmUgZW50aXJlbHksIGl0IGlzIG5vdCBtZXJnZWQgd2l0aCB0aGUgb2xkIHN0ZXBcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVTdGVwKGluZGV4OiBudW1iZXIsIHN0ZXA6IFRhc2tTdGVwKTogdm9pZCB7XG4gICAgdGhpcy5hc3NlcnRVbmxvY2tlZCgpO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuX3N0ZXBzKSkge1xuICAgICAgdGhpcy53YXJuRm9yTGF6eVZhbHVlKFwidXBkYXRlIHN0ZXAgZm9yXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nU3RlcCA9IHRoaXMuX3N0ZXBzW2luZGV4XTtcbiAgICBpZiAoIWV4aXN0aW5nU3RlcCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ2Fubm90IHVwZGF0ZSBzdGVwIGF0IGluZGV4ICR7aW5kZXh9IGZvciB0YXNrICR7dGhpcy5uYW1lfSBiZWNhdXNlIGl0IGRvZXMgbm90IGV4aXN0YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RlcHNbaW5kZXhdID0gc3RlcDtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBzdGVwIHRvIHJlbW92ZVxuICAgKi9cbiAgcHVibGljIHJlbW92ZVN0ZXAoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuYXNzZXJ0VW5sb2NrZWQoKTtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLl9zdGVwcykpIHtcbiAgICAgIHRoaXMud2FybkZvckxhenlWYWx1ZShcInJlbW92ZSBzdGVwIGZyb21cIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXhpc3RpbmdTdGVwID0gdGhpcy5fc3RlcHNbaW5kZXhdO1xuICAgIGlmICghZXhpc3RpbmdTdGVwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgcmVtb3ZlIHN0ZXAgYXQgaW5kZXggJHtpbmRleH0gZm9yIHRhc2sgJHt0aGlzLm5hbWV9IGJlY2F1c2UgaXQgZG9lcyBub3QgZXhpc3RgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGVwcy5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgYSB0YXNrIHNwZWMgaW50byB0aGUgbWFuaWZlc3QuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9yZW5kZXJTcGVjKCk6IFRhc2tTcGVjIHtcbiAgICAvLyBFbnN1cmUgdGFzay1sZXZlbCBlbnYgdmFycyBhcmUgc3RyaW5nc1xuICAgIGNvbnN0IGVudiA9IE9iamVjdC5rZXlzKHRoaXMuX2VudikucmVkdWNlKFxuICAgICAgKHByZXYsIGN1cnIpID0+ICh7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIFtjdXJyXTogdGhpcy5nZXRFbnZTdHJpbmcoY3VyciwgdGhpcy5fZW52W2N1cnJdKSxcbiAgICAgIH0pLFxuICAgICAge30sXG4gICAgKTtcblxuICAgIC8vIEVuc3VyZSBzdGVwLWxldmVsIGVudiB2YXJzIGFyZSBzdHJpbmdzXG4gICAgY29uc3Qgc3RlcHMgPSBBcnJheS5pc0FycmF5KHRoaXMuX3N0ZXBzKVxuICAgICAgPyBbLi4udGhpcy5fc3RlcHNdLm1hcCgocykgPT4ge1xuICAgICAgICAgIHJldHVybiBzLmVudlxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgLi4ucyxcbiAgICAgICAgICAgICAgICBlbnY6IE9iamVjdC5rZXlzKHMuZW52KS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAocHJldiwgY3VycikgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICAgICAgICAgICAgW2N1cnJdOiB0aGlzLmdldEVudlN0cmluZyhjdXJyLCBzLmVudiFbY3Vycl0pLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHM7XG4gICAgICAgIH0pXG4gICAgICA6IHRoaXMuX3N0ZXBzO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgZW52OiBlbnYsXG4gICAgICByZXF1aXJlZEVudjogdGhpcy5yZXF1aXJlZEVudixcbiAgICAgIHN0ZXBzOiBzdGVwcyxcbiAgICAgIGNvbmRpdGlvbjogdGhpcy5jb25kaXRpb24sXG4gICAgICBjd2Q6IHRoaXMuX2N3ZCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3NlcnRVbmxvY2tlZCgpIHtcbiAgICBpZiAodGhpcy5fbG9ja2VkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRhc2sgXCIke3RoaXMubmFtZX1cIiBpcyBsb2NrZWQgZm9yIGNoYW5nZXNgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHdhcm5Gb3JMYXp5VmFsdWUoYWN0aW9uQmVpbmdVbmRlcnRha2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB3YXJuKFxuICAgICAgYENhbm5vdCAke2FjdGlvbkJlaW5nVW5kZXJ0YWtlbn0gdGFzayBcIiR7dGhpcy5uYW1lfVwiIGJlY2F1c2UgaXQgaXMgYSBsYXp5IHZhbHVlLCB0cnkgdXNpbmcgdGhlIHByZVN5bnRoZXNpemUgcGhhc2UuYCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZSB0aGF0IGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgcGVyc2lzdGVkIGFzIHN0cmluZ3NcbiAgICogdG8gcHJldmVudCB0eXBlIGVycm9ycyB3aGVuIHBhcnNpbmcgZnJvbSB0YXNrcy5qc29uIGluIGZ1dHVyZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRFbnZTdHJpbmcobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIiAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3YXJuKFxuICAgICAgICBgUmVjZWl2ZWQgbm9uLXN0cmluZyB2YWx1ZSBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGUgJHtuYW1lfS4gVmFsdWUgd2lsbCBiZSBzdHJpbmdpZmllZC5gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90YXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1Q0FBaUM7QUF3RGpDOzs7R0FHRztBQUNILE1BQWEsSUFBSTs7SUFDZjs7T0FFRztJQUNhLElBQUksQ0FBUztJQUVaLFdBQVcsQ0FBVztJQUN0QixNQUFNLENBQWE7SUFDbkIsSUFBSSxDQUE2QjtJQUMxQyxJQUFJLENBQXNCO0lBRWpCLFdBQVcsQ0FBWTtJQUNoQyxPQUFPLENBQVU7SUFDakIsWUFBWSxDQUFVO0lBRTlCLFlBQVksSUFBWSxFQUFFLFFBQXFCLEVBQUU7UUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM1RCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUU1QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUVyQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLEVB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WUFDekIsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2YsQ0FBQztJQUNKLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSx5QkFBeUIsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMscUJBQTZCO1FBQ3BELElBQUEsY0FBSSxFQUNGLFVBQVUscUJBQXFCLFVBQVUsSUFBSSxDQUFDLElBQUksa0VBQWtFLENBQ3JILENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssWUFBWSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQzNDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyRCxJQUFBLGNBQUksRUFDRixzREFBc0QsSUFBSSw4QkFBOEIsQ0FDekYsQ0FBQztZQUNGLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQzs7QUFsYUgsb0JBbWFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2FybiB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCB0eXBlIHtcbiAgVGFza0NvbW1vbk9wdGlvbnMsXG4gIFRhc2tTcGVjLFxuICBUYXNrU3RlcCxcbiAgVGFza1N0ZXBPcHRpb25zLFxufSBmcm9tIFwiLi90YXNrLW1vZGVsXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFza09wdGlvbnMgZXh0ZW5kcyBUYXNrQ29tbW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTaGVsbCBjb21tYW5kIHRvIGV4ZWN1dGUgYXMgdGhlIGZpcnN0IGNvbW1hbmQgb2YgdGhlIHRhc2suXG4gICAqXG4gICAqIE11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGBleGVjQXJnc2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWRkIHN0ZXBzIHVzaW5nIGB0YXNrLmV4ZWMoY29tbWFuZClgIG9yIGB0YXNrLnNwYXduKHN1YnRhc2spYFxuICAgKi9cbiAgcmVhZG9ubHkgZXhlYz86IHN0cmluZztcblxuICAvKipcbiAgICogU2hlbGwgY29tbWFuZCB0byBleGVjdXRlIGFzIHRoZSBmaXJzdCBjb21tYW5kIG9mIHRoZSB0YXNrLCBwcm92aWRlZCBhcyBhXG4gICAqIGxpc3Qgb2YgdGhlIHByb2dyYW0gZm9sbG93ZWQgYnkgaXRzIGFyZ3VtZW50cyAoYW4gXCJhcmd2XCIpLlxuICAgKlxuICAgKiBBIGNvbnZlbmllbnQgYWx0ZXJuYXRpdmUgdG8gYGV4ZWNgOiBhcmd1bWVudHMgd2l0aCBzcGFjZXMgb3Igc3BlY2lhbFxuICAgKiBjaGFyYWN0ZXJzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcy1pcywgd2l0aCBubyBxdW90aW5nIG5lZWRlZC4gVGhlIGVsZW1lbnRzXG4gICAqIGFyZSBub3QgcnVuIHRocm91Z2ggYSBzaGVsbCwgc28gZW52aXJvbm1lbnQgdmFyaWFibGVzIChgJEZPT2ApIGFyZSBub3RcbiAgICogZXhwYW5kZWQgYW5kIG90aGVyIHNoZWxsIGZlYXR1cmVzIGFyZSB1bmF2YWlsYWJsZS5cbiAgICogQHNlZSBUYXNrU3RlcC5leGVjQXJnc1xuICAgKlxuICAgKiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgZXhlY2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWRkIHN0ZXBzIHVzaW5nIGB0YXNrLmV4ZWNBcmdzKGFyZ3MpYCwgYHRhc2suZXhlYyhjb21tYW5kKWAgb3IgYHRhc2suc3Bhd24oc3VidGFzaylgXG4gICAqL1xuICByZWFkb25seSBleGVjQXJncz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHRhc2sgc3RlcHMgdG8gcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RlcHM/OiBUYXNrU3RlcFtdO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgdGhlIHByb3ZpZGVkIGBleGVjYCBzaGVsbCBjb21tYW5kIHJlY2VpdmUgYXJncyBwYXNzZWQgdG8gdGhlIHRhc2suXG4gICAqIEBzZWUge0BsaW5rIFRhc2tTdGVwT3B0aW9ucy5yZWNlaXZlQXJnc31cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJlY2VpdmVBcmdzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2hvdWxkIHRoZSBwcm92aWRlZCBgZXhlY2Agc2hlbGwgY29tbWFuZCByZWNlaXZlIGZpeGVkIGFyZ3MuXG4gICAqIEBzZWUge0BsaW5rIFRhc2tTdGVwT3B0aW9ucy5hcmdzfVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRvIHRoZSBzdGVwXG4gICAqL1xuICByZWFkb25seSBhcmdzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogQSB0YXNrIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiB0aGUgcHJvamVjdC4gTW9kZWxlZCBhcyBhIHNlcmllcyBvZiBzaGVsbFxuICogY29tbWFuZHMgYW5kIHN1YnRhc2tzLlxuICovXG5leHBvcnQgY2xhc3MgVGFzayB7XG4gIC8qKlxuICAgKiBUYXNrIG5hbWUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbmRpdGlvbnM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdGVwczogVGFza1N0ZXBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZW52OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcHJpdmF0ZSBfY3dkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWlyZWRFbnY/OiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSBfbG9ja2VkOiBib29sZWFuO1xuICBwcml2YXRlIF9kZXNjcmlwdGlvbj86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIHByb3BzOiBUYXNrT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uO1xuICAgIHRoaXMuX2NvbmRpdGlvbnMgPSBwcm9wcy5jb25kaXRpb24gPyBbcHJvcHMuY29uZGl0aW9uXSA6IFtdO1xuICAgIHRoaXMuX2N3ZCA9IHByb3BzLmN3ZDtcbiAgICB0aGlzLl9sb2NrZWQgPSBmYWxzZTtcbiAgICB0aGlzLl9lbnYgPSBwcm9wcy5lbnYgPz8ge307XG5cbiAgICB0aGlzLl9zdGVwcyA9IHByb3BzLnN0ZXBzID8/IFtdO1xuICAgIHRoaXMucmVxdWlyZWRFbnYgPSBwcm9wcy5yZXF1aXJlZEVudjtcblxuICAgIGlmIChwcm9wcy5leGVjICYmIHByb3BzLnN0ZXBzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJjYW5ub3Qgc3BlY2lmeSBib3RoIGV4ZWMgYW5kIHN0ZXBzXCIpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5leGVjQXJncyAmJiBwcm9wcy5zdGVwcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiY2Fubm90IHNwZWNpZnkgYm90aCBleGVjQXJncyBhbmQgc3RlcHNcIik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmV4ZWMgJiYgcHJvcHMuZXhlY0FyZ3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImNhbm5vdCBzcGVjaWZ5IGJvdGggZXhlYyBhbmQgZXhlY0FyZ3NcIik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmV4ZWMpIHtcbiAgICAgIHRoaXMuZXhlYyhwcm9wcy5leGVjLCB7IHJlY2VpdmVBcmdzOiBwcm9wcy5yZWNlaXZlQXJncyB9KTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZXhlY0FyZ3MpIHtcbiAgICAgIHRoaXMuZXhlY0FyZ3MocHJvcHMuZXhlY0FyZ3MsIHsgcmVjZWl2ZUFyZ3M6IHByb3BzLnJlY2VpdmVBcmdzIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JiaWQgYWRkaXRpb25hbCBjaGFuZ2VzIHRvIHRoaXMgdGFzay5cbiAgICovXG4gIHB1YmxpYyBsb2NrKCkge1xuICAgIHRoaXMuX2xvY2tlZCA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgd29ya2luZyBkaXJlY3RvcnkgZm9yIHRoaXMgdGFzay5cbiAgICovXG4gIHB1YmxpYyBnZXQgY3dkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2N3ZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB3b3JraW5nIGRpcmVjdG9yeSBmb3IgdGhpcyB0YXNrLlxuICAgKi9cbiAgcHVibGljIHNldCBjd2QoY3dkOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9jd2QgPSBjd2Q7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyB0YXNrLlxuICAgKi9cbiAgcHVibGljIGdldCBkZXNjcmlwdGlvbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kZXNjcmlwdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIHRhc2suXG4gICAqL1xuICBwdWJsaWMgc2V0IGRlc2NyaXB0aW9uKGRlc2M6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2Rlc2NyaXB0aW9uID0gZGVzYztcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGNvbW1hbmQgdG8gZXhlY3V0ZSB3aGljaCBkZXRlcm1pbmVzIGlmIHRoZSB0YXNrIHNob3VsZCBiZSBza2lwcGVkLiBJZiBpdFxuICAgKiByZXR1cm5zIGEgemVybyBleGl0IGNvZGUsIHRoZSB0YXNrIHdpbGwgbm90IGJlIGV4ZWN1dGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBjb25kaXRpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5fY29uZGl0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29uZGl0aW9ucy5qb2luKFwiICYmIFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBjb21tYW5kIHRvIGV4ZWN1dGUgd2hpY2ggZGV0ZXJtaW5lcyBpZiB0aGUgdGFzayBzaG91bGQgYmUgc2tpcHBlZC5cbiAgICpcbiAgICogSWYgYSBjb25kaXRpb24gYWxyZWFkeSBleGlzdHMsIHRoZSBuZXcgY29uZGl0aW9uIHdpbGwgYmUgYXBwZW5kZWQgd2l0aCBgICYmIGAgZGVsaW1pdGVyLlxuICAgKiBAcGFyYW0gY29uZGl0aW9uIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuXG4gICAqIEBzZWUge0BsaW5rIFRhc2suY29uZGl0aW9ufVxuICAgKi9cbiAgcHVibGljIGFkZENvbmRpdGlvbiguLi5jb25kaXRpb246IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5fY29uZGl0aW9ucy5wdXNoKC4uLmNvbmRpdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIHRhc2sgc28gaXQgbm8gbG9uZ2VyIGhhcyBhbnkgY29tbWFuZHMuXG4gICAqIEBwYXJhbSBjb21tYW5kIHRoZSBmaXJzdCBjb21tYW5kIHRvIGFkZCB0byB0aGUgdGFzayBhZnRlciBpdCB3YXMgY2xlYXJlZC5cbiAgICovXG4gIHB1YmxpYyByZXNldChjb21tYW5kPzogc3RyaW5nLCBvcHRpb25zOiBUYXNrU3RlcE9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuYXNzZXJ0VW5sb2NrZWQoKTtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLl9zdGVwcykpIHtcbiAgICAgIHRoaXMud2FybkZvckxhenlWYWx1ZShcInJlc2V0XCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdoaWxlICh0aGlzLl9zdGVwcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX3N0ZXBzLnNoaWZ0KCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbW1hbmQpIHtcbiAgICAgIHRoaXMuZXhlYyhjb21tYW5kLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBzdGVwcyB0byB0aGlzIHRhc2suIFRoaXMgaXMgYSBnZW5lcmljIG1ldGhvZCB0aGF0IGFjY2VwdHMgYW55XG4gICAqIHRhc2sgc3RlcCAoZXhlYywgc3Bhd24sIHNheSwgYnVpbHRpbikuXG4gICAqXG4gICAqIEBwYXJhbSBzdGVwcyBUaGUgc3RlcHMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZFN0ZXBzKC4uLnN0ZXBzOiBUYXNrU3RlcFtdKSB7XG4gICAgdGhpcy5fcHVzaFN0ZXBzKFwiYWRkU3RlcHNcIiwgc3RlcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIGEgc2hlbGwgY29tbWFuZFxuICAgKiBAcGFyYW0gY29tbWFuZCBTaGVsbCBjb21tYW5kXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBleGVjKGNvbW1hbmQ6IHN0cmluZywgb3B0aW9uczogVGFza1N0ZXBPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLl9wdXNoU3RlcHMoXCJleGVjXCIsIFt7IGV4ZWM6IGNvbW1hbmQsIC4uLm9wdGlvbnMgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIGEgY29tbWFuZCBwcm92aWRlZCBhcyBhIGxpc3Qgb2YgdGhlIHByb2dyYW0gZm9sbG93ZWQgYnkgaXRzXG4gICAqIGFyZ3VtZW50cyAoYW4gXCJhcmd2XCIpLlxuICAgKlxuICAgKiBBIGNvbnZlbmllbnQgYWx0ZXJuYXRpdmUgdG8gYFRhc2suZXhlY2A6IGFyZ3VtZW50cyB3aXRoIHNwYWNlcyBvclxuICAgKiBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzLWlzLCB3aXRoIG5vIHF1b3RpbmcgbmVlZGVkLiBUaGVcbiAgICogZWxlbWVudHMgYXJlIG5vdCBydW4gdGhyb3VnaCBhIHNoZWxsLCBzbyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKGAkRk9PYCkgYXJlXG4gICAqIG5vdCBleHBhbmRlZCBhbmQgb3RoZXIgc2hlbGwgZmVhdHVyZXMgYXJlIHVuYXZhaWxhYmxlLlxuICAgKlxuICAgKiBAZXhhbXBsZSB0YXNrLmV4ZWNBcmdzKFtcImVjaG9cIiwgXCJoZWxsbyB3b3JsZFwiXSk7XG4gICAqXG4gICAqIEBwYXJhbSBjb21tYW5kIFRoZSBwcm9ncmFtIGZvbGxvd2VkIGJ5IGl0cyBhcmd1bWVudHMuXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBleGVjQXJncyhjb21tYW5kOiBzdHJpbmdbXSwgb3B0aW9uczogVGFza1N0ZXBPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLl9wdXNoU3RlcHMoXCJleGVjQXJnc1wiLCBbeyBleGVjQXJnczogY29tbWFuZCwgLi4ub3B0aW9ucyB9XSk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBhIGJ1aWx0aW4gdGFzay5cbiAgICpcbiAgICogQnVpbHRpbiB0YXNrcyBhcmUgcHJvZ3JhbXMgYnVuZGxlZCBhcyBwYXJ0IG9mIHByb2plbiBpdHNlbGYgYW5kIHVzZWQgYXNcbiAgICogaGVscGVycyBmb3IgdmFyaW91cyBjb21wb25lbnRzLlxuICAgKlxuICAgKiBJbiB0aGUgZnV0dXJlIHdlIHNob3VsZCBzdXBwb3J0IGJ1aWx0LWluIHRhc2tzIGZyb20gZXh0ZXJuYWwgbW9kdWxlcy5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGJ1aWx0aW4gdGFzayB0byBleGVjdXRlIChlLmcuXG4gICAqIGByZWxlYXNlL3Jlc29sdmUtdmVyc2lvbmApLlxuICAgKi9cbiAgcHVibGljIGJ1aWx0aW4obmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcHVzaFN0ZXBzKFwiYnVpbHRpblwiLCBbeyBidWlsdGluOiBuYW1lIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXkgc29tZXRoaW5nLlxuICAgKiBAcGFyYW0gbWVzc2FnZSBZb3VyIG1lc3NhZ2VcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHNheShtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5fcHVzaFN0ZXBzKFwic2F5XCIsIFt7IHNheTogbWVzc2FnZSwgLi4ub3B0aW9ucyB9XSk7XG4gIH1cblxuICAvKipcbiAgICogU3Bhd25zIGEgc3ViLXRhc2suXG4gICAqIEBwYXJhbSBzdWJ0YXNrIFRoZSBzdWJ0YXNrIHRvIGV4ZWN1dGUuXG4gICAqL1xuICBwdWJsaWMgc3Bhd24oc3VidGFzazogVGFzaywgb3B0aW9uczogVGFza1N0ZXBPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLl9wdXNoU3RlcHMoXCJzcGF3blwiLCBbeyBzcGF3bjogc3VidGFzay5uYW1lLCAuLi5vcHRpb25zIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHN0ZXBzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhpcyB0YXNrLlxuICAgKlxuICAgKiBAcGFyYW0gc3RlcHMgVGhlIHN0ZXBzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBwcmVwZW5kU3RlcHMoLi4uc3RlcHM6IFRhc2tTdGVwW10pIHtcbiAgICB0aGlzLl91bnNoaWZ0U3RlcHMoXCJwcmVwZW5kU3RlcHNcIiwgc3RlcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjb21tYW5kIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRhc2suXG4gICAqIEBwYXJhbSBzaGVsbCBUaGUgY29tbWFuZCB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgcHJlcGVuZEV4ZWMoc2hlbGw6IHN0cmluZywgb3B0aW9uczogVGFza1N0ZXBPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLl91bnNoaWZ0U3RlcHMoXCJwcmVwZW5kRXhlY1wiLCBbeyBleGVjOiBzaGVsbCwgLi4ub3B0aW9ucyB9XSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHNwYXduIGluc3RydWN0aW9uIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRhc2suXG4gICAqIEBwYXJhbSBzdWJ0YXNrIFRoZSBzdWJ0YXNrIHRvIGV4ZWN1dGUuXG4gICAqL1xuICBwdWJsaWMgcHJlcGVuZFNwYXduKHN1YnRhc2s6IFRhc2ssIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5fdW5zaGlmdFN0ZXBzKFwicHJlcGVuZFNwYXduXCIsIFt7IHNwYXduOiBzdWJ0YXNrLm5hbWUsIC4uLm9wdGlvbnMgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNheXMgc29tZXRoaW5nIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRhc2suXG4gICAqIEBwYXJhbSBtZXNzYWdlIFlvdXIgbWVzc2FnZVxuICAgKi9cbiAgcHVibGljIHByZXBlbmRTYXkobWVzc2FnZTogc3RyaW5nLCBvcHRpb25zOiBUYXNrU3RlcE9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuX3Vuc2hpZnRTdGVwcyhcInByZXBlbmRTYXlcIiwgW3sgc2F5OiBtZXNzYWdlLCAuLi5vcHRpb25zIH1dKTtcbiAgfVxuXG4gIHByaXZhdGUgX3B1c2hTdGVwcyhtZXRob2Q6IHN0cmluZywgc3RlcHM6IFRhc2tTdGVwW10pIHtcbiAgICB0aGlzLmFzc2VydFVubG9ja2VkKCk7XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fc3RlcHMpKSB7XG4gICAgICB0aGlzLndhcm5Gb3JMYXp5VmFsdWUoYCR7bWV0aG9kfSB0b2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0ZXBzLnB1c2goLi4uc3RlcHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdW5zaGlmdFN0ZXBzKG1ldGhvZDogc3RyaW5nLCBzdGVwczogVGFza1N0ZXBbXSkge1xuICAgIHRoaXMuYXNzZXJ0VW5sb2NrZWQoKTtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLl9zdGVwcykpIHtcbiAgICAgIHRoaXMud2FybkZvckxhenlWYWx1ZShgJHttZXRob2R9IHRvYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RlcHMudW5zaGlmdCguLi5zdGVwcyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byB0aGlzIHRhc2suXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB2YXJpYWJsZVxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlLiBJZiB0aGUgdmFsdWUgaXMgc3Vycm91bmRlZCBieSBgJCgpYCwgd2Ugd2lsbFxuICAgKiBldmFsdWF0ZSBpdCB3aXRoaW4gYSBzdWJzaGVsbCBhbmQgdXNlIHRoZSByZXN1bHQgYXMgdGhlIHZhbHVlIG9mIHRoZVxuICAgKiBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHB1YmxpYyBlbnYobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5hc3NlcnRVbmxvY2tlZCgpO1xuICAgIHRoaXMuX2VudltuYW1lXSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgdGFzayBsZXZlbFxuICAgKi9cbiAgcHVibGljIGdldCBlbnZWYXJzKCk6IFJlYWRvbmx5PHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9PiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGltbXV0YWJsZSBjb3B5IG9mIGFsbCB0aGUgc3RlcCBzcGVjaWZpY2F0aW9ucyBvZiB0aGUgdGFzay5cbiAgICovXG4gIHB1YmxpYyBnZXQgc3RlcHMoKTogVGFza1N0ZXBbXSB7XG4gICAgLy8gSWYgdGhlIGxpc3Qgb2Ygc3RlcHMgaXMgYSBMYXp5IHZhbHVlLCB3ZSBjYW4ndCBrbm93IHdoYXQgdGhlIHN0ZXBzXG4gICAgLy8gYXJlIHVudGlsIHN5bnRoZXNpcyBvY2N1cnMsIHNvIGp1c3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5LlxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLl9zdGVwcykpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIFsuLi50aGlzLl9zdGVwc107XG4gIH1cblxuICAvKipcbiAgICogSW5zZXJ0IG9uZSBvciBtb3JlIHN0ZXBzIGF0IGEgZ2l2ZW4gaW5kZXhcbiAgICpcbiAgICogQHBhcmFtIGluZGV4IFN0ZXBzIHdpbGwgYmUgaW5zZXJ0ZWQgYmVmb3JlIHRoaXMgaW5kZXguIE1heSBiZSBuZWdhdGl2ZSB0b1xuICAgKiBjb3VudCBiYWNrd2FyZHMgZnJvbSB0aGUgZW5kLCBvciBtYXkgYmUgYD09IHN0ZXBzKCkubGVuZ3RoYCB0byBpbnNlcnQgYXQgdGhlIGVuZC5cbiAgICogQHBhcmFtIHN0ZXBzIFRoZSBzdGVwcyB0byBpbnNlcnRcbiAgICovXG4gIHB1YmxpYyBpbnNlcnRTdGVwKGluZGV4OiBudW1iZXIsIC4uLnN0ZXBzOiBUYXNrU3RlcFtdKTogdm9pZCB7XG4gICAgdGhpcy5hc3NlcnRVbmxvY2tlZCgpO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuX3N0ZXBzKSkge1xuICAgICAgdGhpcy53YXJuRm9yTGF6eVZhbHVlKFwiaW5zZXJ0IHN0ZXBzIGludG9cIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGluZGV4IDwgLXRoaXMuX3N0ZXBzLmxlbmd0aCB8fCBpbmRleCA+IHRoaXMuc3RlcHMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgaW5zZXJ0IHN0ZXBzIGF0IGluZGV4ICR7aW5kZXh9IGZvciB0YXNrICR7dGhpcy5uYW1lfSBiZWNhdXNlIHRoZSBpbmRleCBpcyBvdXQgb2YgYm91bmRzIGZvciBzaXplICR7dGhpcy5zdGVwcy5sZW5ndGh9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RlcHMuc3BsaWNlKGluZGV4LCAwLCAuLi5zdGVwcyk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBvZiB0aGUgc3RlcCB0byBlZGl0XG4gICAqIEBwYXJhbSBzdGVwIFRoZSBuZXcgc3RlcCB0byByZXBsYWNlIHRoZSBvbGQgb25lIGVudGlyZWx5LCBpdCBpcyBub3QgbWVyZ2VkIHdpdGggdGhlIG9sZCBzdGVwXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlU3RlcChpbmRleDogbnVtYmVyLCBzdGVwOiBUYXNrU3RlcCk6IHZvaWQge1xuICAgIHRoaXMuYXNzZXJ0VW5sb2NrZWQoKTtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLl9zdGVwcykpIHtcbiAgICAgIHRoaXMud2FybkZvckxhenlWYWx1ZShcInVwZGF0ZSBzdGVwIGZvclwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZ1N0ZXAgPSB0aGlzLl9zdGVwc1tpbmRleF07XG4gICAgaWYgKCFleGlzdGluZ1N0ZXApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENhbm5vdCB1cGRhdGUgc3RlcCBhdCBpbmRleCAke2luZGV4fSBmb3IgdGFzayAke3RoaXMubmFtZX0gYmVjYXVzZSBpdCBkb2VzIG5vdCBleGlzdGAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuX3N0ZXBzW2luZGV4XSA9IHN0ZXA7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBvZiB0aGUgc3RlcCB0byByZW1vdmVcbiAgICovXG4gIHB1YmxpYyByZW1vdmVTdGVwKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmFzc2VydFVubG9ja2VkKCk7XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fc3RlcHMpKSB7XG4gICAgICB0aGlzLndhcm5Gb3JMYXp5VmFsdWUoXCJyZW1vdmUgc3RlcCBmcm9tXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nU3RlcCA9IHRoaXMuX3N0ZXBzW2luZGV4XTtcbiAgICBpZiAoIWV4aXN0aW5nU3RlcCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ2Fubm90IHJlbW92ZSBzdGVwIGF0IGluZGV4ICR7aW5kZXh9IGZvciB0YXNrICR7dGhpcy5uYW1lfSBiZWNhdXNlIGl0IGRvZXMgbm90IGV4aXN0YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RlcHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIGEgdGFzayBzcGVjIGludG8gdGhlIG1hbmlmZXN0LlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVuZGVyU3BlYygpOiBUYXNrU3BlYyB7XG4gICAgLy8gRW5zdXJlIHRhc2stbGV2ZWwgZW52IHZhcnMgYXJlIHN0cmluZ3NcbiAgICBjb25zdCBlbnYgPSBPYmplY3Qua2V5cyh0aGlzLl9lbnYpLnJlZHVjZShcbiAgICAgIChwcmV2LCBjdXJyKSA9PiAoe1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBbY3Vycl06IHRoaXMuZ2V0RW52U3RyaW5nKGN1cnIsIHRoaXMuX2VudltjdXJyXSksXG4gICAgICB9KSxcbiAgICAgIHt9LFxuICAgICk7XG5cbiAgICAvLyBFbnN1cmUgc3RlcC1sZXZlbCBlbnYgdmFycyBhcmUgc3RyaW5nc1xuICAgIGNvbnN0IHN0ZXBzID0gQXJyYXkuaXNBcnJheSh0aGlzLl9zdGVwcylcbiAgICAgID8gWy4uLnRoaXMuX3N0ZXBzXS5tYXAoKHMpID0+IHtcbiAgICAgICAgICByZXR1cm4gcy5lbnZcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIC4uLnMsXG4gICAgICAgICAgICAgICAgZW52OiBPYmplY3Qua2V5cyhzLmVudikucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgKHByZXYsIGN1cnIpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICAgICAgICAgIFtjdXJyXTogdGhpcy5nZXRFbnZTdHJpbmcoY3Vyciwgcy5lbnYhW2N1cnJdKSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiBzO1xuICAgICAgICB9KVxuICAgICAgOiB0aGlzLl9zdGVwcztcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgIGVudjogZW52LFxuICAgICAgcmVxdWlyZWRFbnY6IHRoaXMucmVxdWlyZWRFbnYsXG4gICAgICBzdGVwczogc3RlcHMsXG4gICAgICBjb25kaXRpb246IHRoaXMuY29uZGl0aW9uLFxuICAgICAgY3dkOiB0aGlzLl9jd2QsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXNzZXJ0VW5sb2NrZWQoKSB7XG4gICAgaWYgKHRoaXMuX2xvY2tlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUYXNrIFwiJHt0aGlzLm5hbWV9XCIgaXMgbG9ja2VkIGZvciBjaGFuZ2VzYCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB3YXJuRm9yTGF6eVZhbHVlKGFjdGlvbkJlaW5nVW5kZXJ0YWtlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgd2FybihcbiAgICAgIGBDYW5ub3QgJHthY3Rpb25CZWluZ1VuZGVydGFrZW59IHRhc2sgXCIke3RoaXMubmFtZX1cIiBiZWNhdXNlIGl0IGlzIGEgbGF6eSB2YWx1ZSwgdHJ5IHVzaW5nIHRoZSBwcmVTeW50aGVzaXplIHBoYXNlLmAsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnN1cmUgdGhhdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIHBlcnNpc3RlZCBhcyBzdHJpbmdzXG4gICAqIHRvIHByZXZlbnQgdHlwZSBlcnJvcnMgd2hlbiBwYXJzaW5nIGZyb20gdGFza3MuanNvbiBpbiBmdXR1cmVcbiAgICovXG4gIHByaXZhdGUgZ2V0RW52U3RyaW5nKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd2FybihcbiAgICAgICAgYFJlY2VpdmVkIG5vbi1zdHJpbmcgdmFsdWUgZm9yIGVudmlyb25tZW50IHZhcmlhYmxlICR7bmFtZX0uIFZhbHVlIHdpbGwgYmUgc3RyaW5naWZpZWQuYCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgfVxufVxuIl19
|
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.100.
|
|
51
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Tasks", version: "0.100.7" };
|
|
52
52
|
_tasks;
|
|
53
53
|
_env;
|
|
54
54
|
_runner;
|
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.100.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Testing", version: "0.100.7" };
|
|
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.100.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TextFile", version: "0.100.7" };
|
|
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.100.
|
|
44
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TomlFile", version: "0.100.7" };
|
|
45
45
|
constructor(scope, filePath, options) {
|
|
46
46
|
super(scope, filePath, options);
|
|
47
47
|
}
|
|
@@ -17,7 +17,7 @@ const DEFAULT_FILENAME = ".projenrc.ts";
|
|
|
17
17
|
* Requires that `npx` is available.
|
|
18
18
|
*/
|
|
19
19
|
class ProjenrcTs extends projenrc_1.ProjenrcFile {
|
|
20
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.ProjenrcTs", version: "0.100.
|
|
20
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.ProjenrcTs", version: "0.100.7" };
|
|
21
21
|
/**
|
|
22
22
|
* TypeScript configuration file used to compile projen source files
|
|
23
23
|
*/
|
|
@@ -12,7 +12,7 @@ const DEFAULT_FILENAME = ".projenrc.ts";
|
|
|
12
12
|
* Sets up a typescript project to use TypeScript for projenrc.
|
|
13
13
|
*/
|
|
14
14
|
class Projenrc extends projenrc_1.ProjenrcFile {
|
|
15
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.Projenrc", version: "0.100.
|
|
15
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.Projenrc", version: "0.100.7" };
|
|
16
16
|
filePath;
|
|
17
17
|
tsconfig;
|
|
18
18
|
_projenCodeDir;
|
|
@@ -6,16 +6,22 @@ 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.100.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypedocDocgen", version: "0.100.7" };
|
|
10
10
|
constructor(project) {
|
|
11
11
|
project.addDevDeps("typedoc");
|
|
12
12
|
const docgen = project.addTask("docgen", {
|
|
13
13
|
description: `Generate TypeScript API reference ${project.docsDirectory}`,
|
|
14
|
-
|
|
14
|
+
execArgs: [
|
|
15
|
+
"typedoc",
|
|
16
|
+
project.srcdir,
|
|
17
|
+
"--disableSources",
|
|
18
|
+
"--out",
|
|
19
|
+
project.docsDirectory,
|
|
20
|
+
],
|
|
15
21
|
});
|
|
16
22
|
// spawn after a successful compile
|
|
17
23
|
project.postCompileTask.spawn(docgen);
|
|
18
24
|
}
|
|
19
25
|
}
|
|
20
26
|
exports.TypedocDocgen = TypedocDocgen;
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC10eXBlZG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzY3JpcHQvdHlwZXNjcmlwdC10eXBlZG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQTs7R0FFRztBQUNILE1BQWEsYUFBYTs7SUFDeEIsWUFBWSxPQUEwQjtRQUNwQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3ZDLFdBQVcsRUFBRSxxQ0FBcUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUN6RSxRQUFRLEVBQUU7Z0JBQ1IsU0FBUztnQkFDVCxPQUFPLENBQUMsTUFBTTtnQkFDZCxrQkFBa0I7Z0JBQ2xCLE9BQU87Z0JBQ1AsT0FBTyxDQUFDLGFBQWE7YUFDdEI7U0FDRixDQUFDLENBQUM7UUFFSCxtQ0FBbUM7UUFDbkMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7QUFqQkgsc0NBa0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUeXBlU2NyaXB0UHJvamVjdCB9IGZyb20gXCIuLi90eXBlc2NyaXB0XCI7XG5cbi8qKlxuICBBZGRzIGEgc2ltcGxlIFR5cGVzY3JpcHQgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3JcbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGVkb2NEb2NnZW4ge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBUeXBlU2NyaXB0UHJvamVjdCkge1xuICAgIHByb2plY3QuYWRkRGV2RGVwcyhcInR5cGVkb2NcIik7XG5cbiAgICBjb25zdCBkb2NnZW4gPSBwcm9qZWN0LmFkZFRhc2soXCJkb2NnZW5cIiwge1xuICAgICAgZGVzY3JpcHRpb246IGBHZW5lcmF0ZSBUeXBlU2NyaXB0IEFQSSByZWZlcmVuY2UgJHtwcm9qZWN0LmRvY3NEaXJlY3Rvcnl9YCxcbiAgICAgIGV4ZWNBcmdzOiBbXG4gICAgICAgIFwidHlwZWRvY1wiLFxuICAgICAgICBwcm9qZWN0LnNyY2RpcixcbiAgICAgICAgXCItLWRpc2FibGVTb3VyY2VzXCIsXG4gICAgICAgIFwiLS1vdXRcIixcbiAgICAgICAgcHJvamVjdC5kb2NzRGlyZWN0b3J5LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIC8vIHNwYXduIGFmdGVyIGEgc3VjY2Vzc2Z1bCBjb21waWxlXG4gICAgcHJvamVjdC5wb3N0Q29tcGlsZVRhc2suc3Bhd24oZG9jZ2VuKTtcbiAgfVxufVxuIl19
|