projen 0.49.0 → 0.49.1
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 +1059 -1056
- package/.prettierignore +1 -0
- package/.prettierrc.json +3 -0
- package/API.md +1 -1
- package/changelog.md +1 -11
- package/lib/_resolve.d.ts +1 -1
- package/lib/_resolve.js +5 -7
- package/lib/awscdk/auto-discover.d.ts +4 -4
- package/lib/awscdk/auto-discover.js +2 -2
- package/lib/awscdk/awscdk-app-java.d.ts +4 -4
- package/lib/awscdk/awscdk-app-java.js +22 -18
- package/lib/awscdk/awscdk-app-ts.d.ts +5 -5
- package/lib/awscdk/awscdk-app-ts.js +33 -32
- package/lib/awscdk/awscdk-construct.d.ts +3 -3
- package/lib/awscdk/awscdk-construct.js +10 -8
- package/lib/awscdk/awscdk-deps-java.d.ts +1 -1
- package/lib/awscdk/awscdk-deps-java.js +6 -6
- package/lib/awscdk/awscdk-deps-js.d.ts +1 -1
- package/lib/awscdk/awscdk-deps-js.js +7 -7
- package/lib/awscdk/awscdk-deps.d.ts +3 -3
- package/lib/awscdk/awscdk-deps.js +17 -14
- package/lib/awscdk/cdk-config.d.ts +3 -3
- package/lib/awscdk/cdk-config.js +5 -5
- package/lib/awscdk/cdk-tasks.d.ts +3 -3
- package/lib/awscdk/cdk-tasks.js +21 -20
- package/lib/awscdk/index.d.ts +11 -11
- package/lib/awscdk/index.js +1 -1
- package/lib/awscdk/integration-test.d.ts +4 -4
- package/lib/awscdk/integration-test.js +15 -13
- package/lib/awscdk/internal.js +16 -16
- package/lib/awscdk/lambda-function.d.ts +4 -4
- package/lib/awscdk/lambda-function.js +29 -29
- package/lib/build/build-workflow.d.ts +5 -5
- package/lib/build/build-workflow.js +36 -30
- package/lib/build/index.d.ts +1 -1
- package/lib/build/index.js +1 -1
- package/lib/builtin-example.task.js +3 -3
- package/lib/cdk/construct-lib.d.ts +1 -1
- package/lib/cdk/construct-lib.js +4 -4
- package/lib/cdk/consts.d.ts +2 -2
- package/lib/cdk/consts.js +5 -5
- package/lib/cdk/index.d.ts +3 -3
- package/lib/cdk/index.js +1 -1
- package/lib/cdk/jsii-docgen.d.ts +1 -1
- package/lib/cdk/jsii-docgen.js +7 -7
- package/lib/cdk/jsii-project.d.ts +3 -3
- package/lib/cdk/jsii-project.js +39 -39
- package/lib/cdk8s/cdk8s-app-ts.d.ts +1 -1
- package/lib/cdk8s/cdk8s-app-ts.js +28 -21
- package/lib/cdk8s/cdk8s-construct.d.ts +1 -1
- package/lib/cdk8s/cdk8s-construct.js +10 -6
- package/lib/cdk8s/index.d.ts +2 -2
- package/lib/cdk8s/index.js +1 -1
- package/lib/cdktf/cdktf-construct.d.ts +1 -1
- package/lib/cdktf/cdktf-construct.js +4 -4
- package/lib/cdktf/index.d.ts +1 -1
- package/lib/cdktf/index.js +1 -1
- package/lib/cleanup.js +20 -14
- package/lib/cli/cmds/new.js +71 -42
- package/lib/cli/index.js +27 -10
- package/lib/cli/macros.js +15 -11
- package/lib/cli/synth.d.ts +1 -1
- package/lib/cli/synth.js +15 -12
- package/lib/cli/tasks.d.ts +2 -2
- package/lib/cli/tasks.js +9 -6
- package/lib/cli/util.js +4 -4
- package/lib/clobber.d.ts +2 -2
- package/lib/clobber.js +14 -10
- package/lib/common.js +7 -9
- package/lib/component.d.ts +1 -1
- package/lib/component.js +2 -2
- package/lib/dependencies.d.ts +2 -2
- package/lib/dependencies.js +14 -12
- package/lib/dev-env.d.ts +1 -1
- package/lib/dev-env.js +2 -2
- package/lib/docker-compose.d.ts +2 -2
- package/lib/docker-compose.js +23 -19
- package/lib/file.d.ts +2 -2
- package/lib/file.js +7 -5
- package/lib/gitattributes.d.ts +2 -2
- package/lib/gitattributes.js +7 -8
- package/lib/github/auto-approve.d.ts +2 -2
- package/lib/github/auto-approve.js +25 -15
- package/lib/github/auto-merge.d.ts +2 -2
- package/lib/github/auto-merge.js +14 -14
- package/lib/github/constants.d.ts +1 -1
- package/lib/github/constants.js +4 -4
- package/lib/github/dependabot.d.ts +2 -2
- package/lib/github/dependabot.js +16 -14
- package/lib/github/github-project.d.ts +5 -5
- package/lib/github/github-project.js +14 -10
- package/lib/github/github.d.ts +7 -7
- package/lib/github/github.js +7 -5
- package/lib/github/index.d.ts +13 -13
- package/lib/github/index.js +1 -1
- package/lib/github/mergify.d.ts +2 -2
- package/lib/github/mergify.js +3 -3
- package/lib/github/pr-template.d.ts +2 -2
- package/lib/github/pr-template.js +5 -5
- package/lib/github/pull-request-lint.d.ts +2 -2
- package/lib/github/pull-request-lint.js +17 -14
- package/lib/github/stale-util.d.ts +1 -1
- package/lib/github/stale-util.js +2 -3
- package/lib/github/stale.d.ts +2 -2
- package/lib/github/stale.js +28 -20
- package/lib/github/task-workflow.d.ts +4 -4
- package/lib/github/task-workflow.js +12 -10
- package/lib/github/workflow-actions.d.ts +2 -2
- package/lib/github/workflow-actions.js +22 -20
- package/lib/github/workflows-model.d.ts +20 -20
- package/lib/github/workflows-model.js +1 -1
- package/lib/github/workflows.d.ts +4 -4
- package/lib/github/workflows.js +42 -27
- package/lib/gitpod.d.ts +4 -4
- package/lib/gitpod.js +12 -9
- package/lib/ignore-file.d.ts +2 -2
- package/lib/ignore-file.js +10 -13
- package/lib/index.d.ts +46 -46
- package/lib/index.js +1 -1
- package/lib/ini.d.ts +3 -3
- package/lib/ini.js +4 -4
- package/lib/inventory.d.ts +1 -1
- package/lib/inventory.js +34 -30
- package/lib/java/index.d.ts +7 -7
- package/lib/java/index.js +1 -1
- package/lib/java/java-project.d.ts +6 -6
- package/lib/java/java-project.js +11 -13
- package/lib/java/junit.d.ts +3 -3
- package/lib/java/junit.js +17 -17
- package/lib/java/maven-compile.d.ts +3 -3
- package/lib/java/maven-compile.js +7 -7
- package/lib/java/maven-packaging.d.ts +3 -3
- package/lib/java/maven-packaging.js +12 -16
- package/lib/java/maven-sample.d.ts +2 -2
- package/lib/java/maven-sample.js +12 -12
- package/lib/java/pom.d.ts +2 -2
- package/lib/java/pom.js +16 -14
- package/lib/java/projenrc.d.ts +3 -3
- package/lib/java/projenrc.js +35 -25
- package/lib/javascript/bundler.d.ts +3 -3
- package/lib/javascript/bundler.js +14 -12
- package/lib/javascript/eslint.d.ts +4 -3
- package/lib/javascript/eslint.js +102 -86
- package/lib/javascript/index.d.ts +10 -10
- package/lib/javascript/index.js +1 -1
- package/lib/javascript/jest.d.ts +4 -4
- package/lib/javascript/jest.js +48 -37
- package/lib/javascript/node-package.d.ts +2 -2
- package/lib/javascript/node-package.js +87 -77
- package/lib/javascript/node-project.d.ts +11 -11
- package/lib/javascript/node-project.js +78 -52
- package/lib/javascript/npm-config.d.ts +2 -2
- package/lib/javascript/npm-config.js +4 -4
- package/lib/javascript/prettier.d.ts +4 -4
- package/lib/javascript/prettier.js +5 -5
- package/lib/javascript/projenrc.d.ts +2 -2
- package/lib/javascript/projenrc.js +8 -8
- package/lib/javascript/render-options.d.ts +2 -2
- package/lib/javascript/render-options.js +23 -18
- package/lib/javascript/typescript-config.d.ts +2 -2
- package/lib/javascript/typescript-config.js +5 -5
- package/lib/javascript/upgrade-dependencies.d.ts +4 -4
- package/lib/javascript/upgrade-dependencies.js +67 -53
- package/lib/javascript/util.js +2 -2
- package/lib/json.d.ts +3 -3
- package/lib/json.js +4 -4
- package/lib/license.d.ts +2 -2
- package/lib/license.js +7 -7
- package/lib/logger.d.ts +2 -2
- package/lib/logger.js +14 -9
- package/lib/logging.js +2 -2
- package/lib/makefile.d.ts +2 -2
- package/lib/makefile.js +12 -15
- package/lib/object-file.d.ts +2 -2
- package/lib/object-file.js +9 -7
- package/lib/option-hints.js +1 -1
- package/lib/project-build.d.ts +3 -3
- package/lib/project-build.js +14 -14
- package/lib/project.d.ts +14 -14
- package/lib/project.js +41 -23
- package/lib/projects.d.ts +1 -1
- package/lib/projects.js +10 -11
- package/lib/projenrc-json.d.ts +2 -2
- package/lib/projenrc-json.js +5 -5
- package/lib/python/index.d.ts +13 -13
- package/lib/python/index.js +1 -1
- package/lib/python/pip.d.ts +4 -4
- package/lib/python/pip.js +16 -12
- package/lib/python/poetry.d.ts +7 -7
- package/lib/python/poetry.js +41 -33
- package/lib/python/projenrc.d.ts +2 -2
- package/lib/python/projenrc.js +24 -21
- package/lib/python/pytest.d.ts +2 -2
- package/lib/python/pytest.js +19 -19
- package/lib/python/python-deps.d.ts +2 -2
- package/lib/python/python-deps.js +1 -1
- package/lib/python/python-packaging.d.ts +2 -2
- package/lib/python/python-packaging.js +1 -1
- package/lib/python/python-project.d.ts +7 -7
- package/lib/python/python-project.js +14 -13
- package/lib/python/python-sample.d.ts +2 -2
- package/lib/python/python-sample.js +17 -17
- package/lib/python/requirements-file.d.ts +3 -3
- package/lib/python/requirements-file.js +7 -8
- package/lib/python/setuppy.d.ts +2 -2
- package/lib/python/setuppy.js +23 -23
- package/lib/python/setuptools.d.ts +4 -4
- package/lib/python/setuptools.js +11 -11
- package/lib/python/venv.d.ts +3 -3
- package/lib/python/venv.js +6 -6
- package/lib/readme.d.ts +2 -2
- package/lib/readme.js +5 -3
- package/lib/release/bump-version.d.ts +1 -1
- package/lib/release/bump-version.js +37 -26
- package/lib/release/bump-version.task.js +7 -7
- package/lib/release/index.d.ts +3 -3
- package/lib/release/index.js +1 -1
- package/lib/release/publisher.d.ts +4 -4
- package/lib/release/publisher.js +93 -78
- package/lib/release/release-trigger.js +3 -3
- package/lib/release/release.d.ts +6 -6
- package/lib/release/release.js +37 -23
- package/lib/release/reset-version.task.js +4 -4
- package/lib/release/tag-version.js +1 -1
- package/lib/release/tag-version.task.js +3 -3
- package/lib/release/update-changelog.js +6 -4
- package/lib/release/update-changelog.task.js +4 -4
- package/lib/run-projenrc-json.task.js +5 -5
- package/lib/sample-file.d.ts +2 -2
- package/lib/sample-file.js +8 -8
- package/lib/semver.js +17 -7
- package/lib/source-code.d.ts +2 -2
- package/lib/source-code.js +5 -5
- package/lib/task-model.js +1 -1
- package/lib/task-runtime.d.ts +1 -1
- package/lib/task-runtime.js +27 -27
- package/lib/task.d.ts +1 -1
- package/lib/task.js +2 -2
- package/lib/tasks.d.ts +3 -3
- package/lib/tasks.js +5 -5
- package/lib/testing.d.ts +1 -1
- package/lib/testing.js +2 -2
- package/lib/textfile.d.ts +2 -2
- package/lib/textfile.js +3 -3
- package/lib/toml.d.ts +3 -3
- package/lib/toml.js +4 -4
- package/lib/typescript/index.d.ts +3 -3
- package/lib/typescript/index.js +1 -1
- package/lib/typescript/projenrc.d.ts +2 -2
- package/lib/typescript/projenrc.js +10 -10
- package/lib/typescript/typescript-typedoc.d.ts +1 -1
- package/lib/typescript/typescript-typedoc.js +4 -4
- package/lib/typescript/typescript.d.ts +3 -3
- package/lib/typescript/typescript.js +59 -62
- package/lib/util/semver.js +33 -33
- package/lib/util/synth.d.ts +1 -1
- package/lib/util/synth.js +15 -12
- package/lib/util.js +39 -32
- package/lib/version.d.ts +3 -3
- package/lib/version.js +12 -12
- package/lib/vscode/devcontainer.d.ts +4 -4
- package/lib/vscode/devcontainer.js +13 -8
- package/lib/vscode/index.d.ts +3 -3
- package/lib/vscode/index.js +1 -1
- package/lib/vscode/launch-config.d.ts +2 -2
- package/lib/vscode/launch-config.js +4 -4
- package/lib/vscode/vscode.d.ts +3 -3
- package/lib/vscode/vscode.js +2 -2
- package/lib/web/index.d.ts +4 -4
- package/lib/web/index.js +1 -1
- package/lib/web/next.d.ts +3 -3
- package/lib/web/next.js +241 -237
- package/lib/web/postcss.d.ts +3 -3
- package/lib/web/postcss.js +9 -6
- package/lib/web/react.d.ts +4 -4
- package/lib/web/react.js +172 -177
- package/lib/web/tailwind.d.ts +2 -2
- package/lib/web/tailwind.js +3 -3
- package/lib/xmlfile.d.ts +3 -3
- package/lib/xmlfile.js +5 -5
- package/lib/yaml.d.ts +3 -3
- package/lib/yaml.js +4 -4
- package/package.json +4 -1
- package/releasetag.txt +1 -1
- package/version.txt +1 -1
|
@@ -19,38 +19,45 @@ async function bump(cwd, options) {
|
|
|
19
19
|
const versionFile = path_1.join(cwd, options.versionFile);
|
|
20
20
|
const prerelease = options.prerelease;
|
|
21
21
|
const major = options.majorVersion;
|
|
22
|
-
const prefix = (_a = options.tagPrefix) !== null && _a !== void 0 ? _a :
|
|
22
|
+
const prefix = (_a = options.tagPrefix) !== null && _a !== void 0 ? _a : "";
|
|
23
23
|
const bumpFile = path_1.join(cwd, options.bumpFile);
|
|
24
24
|
const changelogFile = path_1.join(cwd, options.changelog);
|
|
25
25
|
const releaseTagFile = path_1.join(cwd, options.releaseTagFile);
|
|
26
26
|
await fs_extra_1.mkdirp(path_1.dirname(bumpFile));
|
|
27
27
|
await fs_extra_1.mkdirp(path_1.dirname(changelogFile));
|
|
28
28
|
await fs_extra_1.mkdirp(path_1.dirname(releaseTagFile));
|
|
29
|
-
const { latestVersion, latestTag, isFirstRelease } = determineLatestTag({
|
|
29
|
+
const { latestVersion, latestTag, isFirstRelease } = determineLatestTag({
|
|
30
|
+
cwd,
|
|
31
|
+
major,
|
|
32
|
+
prerelease,
|
|
33
|
+
prefix,
|
|
34
|
+
});
|
|
30
35
|
const content = await tryReadVersionFile(versionFile);
|
|
31
36
|
// update version
|
|
32
37
|
content.version = latestVersion;
|
|
33
38
|
logging.info(`Update ${versionFile} to latest resolved version: ${latestVersion}`);
|
|
34
39
|
await fs_extra_1.writeFile(versionFile, JSON.stringify(content, undefined, 2));
|
|
35
40
|
// check if the latest commit already has a version tag
|
|
36
|
-
const currentTags = util_1.execCapture(
|
|
41
|
+
const currentTags = util_1.execCapture("git tag --points-at HEAD", { cwd })
|
|
42
|
+
.toString("utf8")
|
|
43
|
+
.split("\n");
|
|
37
44
|
logging.info(`Tags listed on current commit: ${currentTags}`);
|
|
38
45
|
let skipBump = false;
|
|
39
46
|
if (currentTags.includes(latestTag)) {
|
|
40
|
-
logging.info(
|
|
47
|
+
logging.info("Skipping bump...");
|
|
41
48
|
skipBump = true;
|
|
42
49
|
// delete the existing tag (locally)
|
|
43
50
|
// if we don't do this, standard-version generates an empty changelog
|
|
44
51
|
util_1.exec(`git tag --delete ${latestTag}`, { cwd });
|
|
45
52
|
}
|
|
46
53
|
// create a standard-version configuration file
|
|
47
|
-
const rcfile = path_1.join(cwd,
|
|
54
|
+
const rcfile = path_1.join(cwd, ".versionrc.json");
|
|
48
55
|
await generateVersionrcFile(rcfile, versionFile, changelogFile, skipBump, prerelease, options.versionrcOptions);
|
|
49
|
-
const cmd = [
|
|
56
|
+
const cmd = ["npx", "standard-version@^9"];
|
|
50
57
|
if (isFirstRelease) {
|
|
51
|
-
cmd.push(
|
|
58
|
+
cmd.push("--first-release");
|
|
52
59
|
}
|
|
53
|
-
util_1.exec(cmd.join(
|
|
60
|
+
util_1.exec(cmd.join(" "), { cwd });
|
|
54
61
|
// add the tag back if it was previously removed
|
|
55
62
|
if (currentTags.includes(latestTag)) {
|
|
56
63
|
util_1.exec(`git tag ${latestTag}`, { cwd });
|
|
@@ -75,23 +82,27 @@ async function tryReadVersionFile(versionFile) {
|
|
|
75
82
|
if (!(await fs_extra_1.pathExists(versionFile))) {
|
|
76
83
|
return {};
|
|
77
84
|
}
|
|
78
|
-
return JSON.parse(await fs_extra_1.readFile(versionFile,
|
|
85
|
+
return JSON.parse(await fs_extra_1.readFile(versionFile, "utf8"));
|
|
79
86
|
}
|
|
80
87
|
function generateVersionrcFile(rcfile, versionFile, changelogFile, skipBump, prerelease, configOptions) {
|
|
81
88
|
return fs_extra_1.writeFile(rcfile, JSON.stringify({
|
|
82
89
|
...{
|
|
83
|
-
packageFiles: [
|
|
90
|
+
packageFiles: [
|
|
91
|
+
{
|
|
84
92
|
filename: versionFile,
|
|
85
|
-
type:
|
|
86
|
-
}
|
|
87
|
-
|
|
93
|
+
type: "json",
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
bumpFiles: [
|
|
97
|
+
{
|
|
88
98
|
filename: versionFile,
|
|
89
|
-
type:
|
|
90
|
-
}
|
|
99
|
+
type: "json",
|
|
100
|
+
},
|
|
101
|
+
],
|
|
91
102
|
commitAll: false,
|
|
92
103
|
infile: changelogFile,
|
|
93
104
|
prerelease: prerelease,
|
|
94
|
-
header:
|
|
105
|
+
header: "",
|
|
95
106
|
skip: {
|
|
96
107
|
commit: true,
|
|
97
108
|
tag: true,
|
|
@@ -112,20 +123,20 @@ function determineLatestTag(options) {
|
|
|
112
123
|
// filter only tags for this prefix and major version if specified (start with "vNN.").
|
|
113
124
|
const prefixFilter = major ? `${prefix}v${major}.*` : `${prefix}v*`;
|
|
114
125
|
const listGitTags = [
|
|
115
|
-
|
|
126
|
+
"git",
|
|
116
127
|
'-c "versionsort.suffix=-"',
|
|
117
|
-
|
|
128
|
+
"tag",
|
|
118
129
|
'--sort="-version:refname"',
|
|
119
|
-
|
|
130
|
+
"--list",
|
|
120
131
|
`"${prefixFilter}"`,
|
|
121
|
-
].join(
|
|
122
|
-
const stdout = util_1.execCapture(listGitTags, { cwd }).toString(
|
|
123
|
-
let tags = stdout === null || stdout === void 0 ? void 0 : stdout.split(
|
|
132
|
+
].join(" ");
|
|
133
|
+
const stdout = util_1.execCapture(listGitTags, { cwd }).toString("utf8");
|
|
134
|
+
let tags = stdout === null || stdout === void 0 ? void 0 : stdout.split("\n");
|
|
124
135
|
// if "pre" is set, filter versions that end with "-PRE.ddd".
|
|
125
136
|
if (prerelease) {
|
|
126
|
-
tags = tags.filter(x => new RegExp(`-${prerelease}\.[0-9]+$`).test(x));
|
|
137
|
+
tags = tags.filter((x) => new RegExp(`-${prerelease}\.[0-9]+$`).test(x));
|
|
127
138
|
}
|
|
128
|
-
tags = tags.filter(x => x);
|
|
139
|
+
tags = tags.filter((x) => x);
|
|
129
140
|
// if a pre-release tag is used, then add it to the initial version
|
|
130
141
|
let isFirstRelease = false;
|
|
131
142
|
let latestTag;
|
|
@@ -143,9 +154,9 @@ function determineLatestTag(options) {
|
|
|
143
154
|
latestVersion = latestVersion.substr(prefix.length);
|
|
144
155
|
}
|
|
145
156
|
// remove "v" prefix (if exists)
|
|
146
|
-
if (latestVersion.startsWith(
|
|
157
|
+
if (latestVersion.startsWith("v")) {
|
|
147
158
|
latestVersion = latestVersion.substr(1);
|
|
148
159
|
}
|
|
149
160
|
return { latestVersion, latestTag, isFirstRelease };
|
|
150
161
|
}
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVtcC12ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlbGVhc2UvYnVtcC12ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUFxQztBQUVyQyx1Q0FBMkU7QUFDM0Usc0NBQXNDO0FBQ3RDLGtDQUE0QztBQTBENUM7Ozs7Ozs7O0dBUUc7QUFDSSxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQVcsRUFBRSxPQUFvQjs7SUFDMUQsTUFBTSxXQUFXLEdBQUcsV0FBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUN0QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQ25DLE1BQU0sTUFBTSxTQUFHLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLEVBQUUsQ0FBQztJQUN2QyxNQUFNLFFBQVEsR0FBRyxXQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxNQUFNLGFBQWEsR0FBRyxXQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxNQUFNLGNBQWMsR0FBRyxXQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV6RCxNQUFNLGlCQUFNLENBQUMsY0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDaEMsTUFBTSxpQkFBTSxDQUFDLGNBQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0saUJBQU0sQ0FBQyxjQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUV0QyxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFB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SSxhQUFhLEdBQUcsU0FBUyxDQUFDO0lBQzlCLElBQUksTUFBTSxJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDOUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3JEO0lBRUQsZ0NBQWdDO0lBQ2hDLElBQUksYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNqQyxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6QztJQUVELE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxDQUFDO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDb25maWcgfSBmcm9tICdjb252ZW50aW9uYWwtY2hhbmdlbG9nLWNvbmZpZy1zcGVjJztcbmltcG9ydCB7IG1rZGlycCwgcGF0aEV4aXN0cywgcmVhZEZpbGUsIHJlbW92ZSwgd3JpdGVGaWxlIH0gZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgbG9nZ2luZyBmcm9tICcuLi9sb2dnaW5nJztcbmltcG9ydCB7IGV4ZWMsIGV4ZWNDYXB0dXJlIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVtcE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgYSAuanNvbiBmaWxlIHRvIHNldCBgdmVyc2lvbmAuXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uRmlsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY2hhbmdlbG9nIGZpbGUgdG8gZ2VuZXJhdGUuXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2Vsb2c6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlIGEgcHJlLXJlbGVhc2Ugc3VmZml4LlxuICAgKiBAZGVmYXVsdCAtIG5vcm1hbCB2ZXJzaW9uaW5nXG4gICAqL1xuICByZWFkb25seSBwcmVyZWxlYXNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBtYWpvciB2ZXJzaW9uIGxpbmUuIFRoaXMgaXMgdXNlZCB0byBzZWxlY3QgdGhlIGxhdGVzdCB2ZXJzaW9uXG4gICAqIGFuZCBhbHNvIGVuZm9yY2UgdGhhdCBuZXcgbWFqb3IgdmVyc2lvbnMgYXJlIG5vdCByZWxlYXNlZCBhY2NpZGVudGFsbHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYW55IHZlcnNpb24gaXMgc3VwcG9ydGVkXG4gICAqL1xuICByZWFkb25seSBtYWpvclZlcnNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIGEgZmlsZSB3aGljaCB3aWxsIGluY2x1ZGUgdGhlIG91dHB1dCB2ZXJzaW9uIG51bWJlciAoYSB0ZXh0IGZpbGUpLlxuICAgKlxuICAgKiBSZWxhdGl2ZSB0byBjd2QuXG4gICAqXG4gICAqIEBleGFtcGxlIFwiLnZlcnNpb24udHh0XCJcbiAgICovXG4gIHJlYWRvbmx5IGJ1bXBGaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHdoaWNoIHdpbGwgaW5jbHVkZSB0aGUgcmVsZWFzZSB0YWcgKGEgdGV4dCBmaWxlKS5cbiAgICpcbiAgICogUmVsYXRpdmUgdG8gY3dkLlxuICAgKlxuICAgKiBAZXhhbXBsZSBcIi5yZWxlYXNldGFnLnR4dFwiXG4gICAqL1xuICByZWFkb25seSByZWxlYXNlVGFnRmlsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJlZml4IGFwcGxpZWQgdG8gcmVsZWFzZSB0YWdzLiBCdW1wcyB3aWxsIGJlIG1hZGUgYmFzZWQgb24gdGhlIGxhdGVzdFxuICAgKiB2ZXJzaW9uIGZvdW5kIHdpdGggdGhpcyBwcmVmaXguXG4gICAqL1xuICByZWFkb25seSB0YWdQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbmd1cmF0aW9uIHZhbHVlcyB0aGF0IHdvdWxkIGFwcGVuZCB0byB2ZXJzaW9ucmMgZmlsZSBvciBvdmVyd3JpdGUgdmFsdWVzXG4gICAqIGNvbWluZyB0byB0aGF0IGZyb20gZGVmYXVsdCBvbmUuXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9ucmNPcHRpb25zPzogQ29uZmlnO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBsYXRlc3QgdmVyc2lvbiBmcm9tIGdpdCB0YWdzIGFuZCB1c2VzIGBzdGFuZGFyZC12ZXJzaW9uYCB0byBidW1wXG4gKiB0byB0aGUgbmV4dCB2ZXJzaW9uIGJhc2VkIG9uIGNvbW1pdHMuXG4gKlxuICogVGhpcyBleHBlY3RzIGBzdGFuZGFyZC12ZXJzaW9uYCB0byBiZSBpbnN0YWxsZWQgaW4gdGhlIHBhdGguXG4gKlxuICogQHBhcmFtIGN3ZCB3b3JraW5nIGRpcmVjdG9yeSAoZ2l0IHJlcG9zaXRvcnkpXG4gKiBAcGFyYW0gb3B0aW9ucyBvcHRpb25zXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidW1wKGN3ZDogc3RyaW5nLCBvcHRpb25zOiBCdW1wT3B0aW9ucykge1xuICBjb25zdCB2ZXJzaW9uRmlsZSA9IGpvaW4oY3dkLCBvcHRpb25zLnZlcnNpb25GaWxlKTtcbiAgY29uc3QgcHJlcmVsZWFzZSA9IG9wdGlvbnMucHJlcmVsZWFzZTtcbiAgY29uc3QgbWFqb3IgPSBvcHRpb25zLm1ham9yVmVyc2lvbjtcbiAgY29uc3QgcHJlZml4ID0gb3B0aW9ucy50YWdQcmVmaXggPz8gJyc7XG4gIGNvbnN0IGJ1bXBGaWxlID0gam9pbihjd2QsIG9wdGlvbnMuYnVtcEZpbGUpO1xuICBjb25zdCBjaGFuZ2Vsb2dGaWxlID0gam9pbihjd2QsIG9wdGlvbnMuY2hhbmdlbG9nKTtcbiAgY29uc3QgcmVsZWFzZVRhZ0ZpbGUgPSBqb2luKGN3ZCwgb3B0aW9ucy5yZWxlYXNlVGFnRmlsZSk7XG5cbiAgYXdhaXQgbWtkaXJwKGRpcm5hbWUoYnVtcEZpbGUpKTtcbiAgYXdhaXQgbWtkaXJwKGRpcm5hbWUoY2hhbmdlbG9nRmlsZSkpO1xuICBhd2FpdCBta2RpcnAoZGlybmFtZShyZWxlYXNlVGFnRmlsZSkpO1xuXG4gIGNvbnN0IHsgbGF0ZXN0VmVyc2lvbiwgbGF0ZXN0VGFnLCBpc0ZpcnN0UmVsZWFzZSB9ID0gZGV0ZXJtaW5lTGF0ZXN0VGFnKHsgY3dkLCBtYWpvciwgcHJlcmVsZWFzZSwgcHJlZml4IH0pO1xuXG4gIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCB0cnlSZWFkVmVyc2lvbkZpbGUodmVyc2lvbkZpbGUpO1xuXG4gIC8vIHVwZGF0ZSB2ZXJzaW9uXG4gIGNvbnRlbnQudmVyc2lvbiA9IGxhdGVzdFZlcnNpb247XG5cbiAgbG9nZ2luZy5pbmZvKGBVcGRhdGUgJHt2ZXJzaW9uRmlsZX0gdG8gbGF0ZXN0IHJlc29sdmVkIHZlcnNpb246ICR7bGF0ZXN0VmVyc2lvbn1gKTtcbiAgYXdhaXQgd3JpdGVGaWxlKHZlcnNpb25GaWxlLCBKU09OLnN0cmluZ2lmeShjb250ZW50LCB1bmRlZmluZWQsIDIpKTtcblxuICAvLyBjaGVjayBpZiB0aGUgbGF0ZXN0IGNvbW1pdCBhbHJlYWR5IGhhcyBhIHZlcnNpb24gdGFnXG4gIGNvbnN0IGN1cnJlbnRUYWdzID0gZXhlY0NhcHR1cmUoJ2dpdCB0YWcgLS1wb2ludHMtYXQgSEVBRCcsIHsgY3dkIH0pLnRvU3RyaW5nKCd1dGY4Jykuc3BsaXQoJ1xcbicpO1xuICBsb2dnaW5nLmluZm8oYFRhZ3MgbGlzdGVkIG9uIGN1cnJlbnQgY29tbWl0OiAke2N1cnJlbnRUYWdzfWApO1xuXG4gIGxldCBza2lwQnVtcCA9IGZhbHNlO1xuXG4gIGlmIChjdXJyZW50VGFncy5pbmNsdWRlcyhsYXRlc3RUYWcpKSB7XG4gICAgbG9nZ2luZy5pbmZvKCdTa2lwcGluZyBidW1wLi4uJyk7XG4gICAgc2tpcEJ1bXAgPSB0cnVlO1xuXG4gICAgLy8gZGVsZXRlIHRoZSBleGlzdGluZyB0YWcgKGxvY2FsbHkpXG4gICAgLy8gaWYgd2UgZG9uJ3QgZG8gdGhpcywgc3RhbmRhcmQtdmVyc2lvbiBnZW5lcmF0ZXMgYW4gZW1wdHkgY2hhbmdlbG9nXG4gICAgZXhlYyhgZ2l0IHRhZyAtLWRlbGV0ZSAke2xhdGVzdFRhZ31gLCB7IGN3ZCB9KTtcbiAgfVxuXG4gIC8vIGNyZWF0ZSBhIHN0YW5kYXJkLXZlcnNpb24gY29uZmlndXJhdGlvbiBmaWxlXG4gIGNvbnN0IHJjZmlsZSA9IGpvaW4oY3dkLCAnLnZlcnNpb25yYy5qc29uJyk7XG4gIGF3YWl0IGdlbmVyYXRlVmVyc2lvbnJjRmlsZShyY2ZpbGUsIHZlcnNpb25GaWxlLCBjaGFuZ2Vsb2dGaWxlLCBza2lwQnVtcCwgcHJlcmVsZWFzZSwgb3B0aW9ucy52ZXJzaW9ucmNPcHRpb25zKTtcblxuICBjb25zdCBjbWQgPSBbJ25weCcsICdzdGFuZGFyZC12ZXJzaW9uQF45J107XG4gIGlmIChpc0ZpcnN0UmVsZWFzZSkge1xuICAgIGNtZC5wdXNoKCctLWZpcnN0LXJlbGVhc2UnKTtcbiAgfVxuXG4gIGV4ZWMoY21kLmpvaW4oJyAnKSwgeyBjd2QgfSk7XG5cbiAgLy8gYWRkIHRoZSB0YWcgYmFjayBpZiBpdCB3YXMgcHJldmlvdXNseSByZW1vdmVkXG4gIGlmIChjdXJyZW50VGFncy5pbmNsdWRlcyhsYXRlc3RUYWcpKSB7XG4gICAgZXhlYyhgZ2l0IHRhZyAke2xhdGVzdFRhZ31gLCB7IGN3ZCB9KTtcbiAgfVxuXG4gIGF3YWl0IHJlbW92ZShyY2ZpbGUpO1xuXG4gIGNvbnN0IG5ld1ZlcnNpb24gPSAoYXdhaXQgdHJ5UmVhZFZlcnNpb25GaWxlKHZlcnNpb25GaWxlKSkudmVyc2lvbjtcbiAgaWYgKCFuZXdWZXJzaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBidW1wIGZhaWxlZDogJHt2ZXJzaW9uRmlsZX0gZG9lcyBub3QgaGF2ZSBhIHZlcnNpb24gc2V0YCk7XG4gIH1cblxuICAvLyBpZiBNQUpPUiBpcyBkZWZpbmVkLCBlbnN1cmUgdGhhdCB0aGUgbmV3IHZlcnNpb24gaXMgd2l0aGluIHRoZSBzYW1lIG1ham9yIHZlcnNpb25cbiAgaWYgKG1ham9yKSB7XG4gICAgaWYgKCFuZXdWZXJzaW9uLnN0YXJ0c1dpdGgoYCR7bWFqb3J9LmApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGJ1bXAgZmFpbGVkOiB0aGlzIGJyYW5jaCBpcyBjb25maWd1cmVkIHRvIG9ubHkgcHVibGlzaCB2JHttYWpvcn0gcmVsZWFzZXMgLSBidW1wIHJlc3VsdGVkIGluICR7bmV3VmVyc2lvbn1gKTtcbiAgICB9XG4gIH1cblxuICBhd2FpdCB3cml0ZUZpbGUoYnVtcEZpbGUsIG5ld1ZlcnNpb24pO1xuXG4gIGNvbnN0IG5ld1RhZyA9IGAke3ByZWZpeH12JHtuZXdWZXJzaW9ufWA7XG4gIGF3YWl0IHdyaXRlRmlsZShyZWxlYXNlVGFnRmlsZSwgbmV3VGFnKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdHJ5UmVhZFZlcnNpb25GaWxlKHZlcnNpb25GaWxlOiBzdHJpbmcpIHtcbiAgaWYgKCEoYXdhaXQgcGF0aEV4aXN0cyh2ZXJzaW9uRmlsZSkpKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcmV0dXJuIEpTT04ucGFyc2UoYXdhaXQgcmVhZEZpbGUodmVyc2lvbkZpbGUsICd1dGY4JykpO1xufVxuXG5pbnRlcmZhY2UgTGF0ZXN0VGFnT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXb3JraW5nIGRpcmVjdG9yeSBvZiB0aGUgZ2l0IHJlcG9zaXRvcnkuXG4gICAqL1xuICByZWFkb25seSBjd2Q6IHN0cmluZztcbiAgLyoqXG4gICAqIE1ham9yIHZlcnNpb24gdG8gc2VsZWN0IGZyb20uXG4gICAqL1xuICByZWFkb25seSBtYWpvcj86IG51bWJlcjtcbiAgLyoqXG4gICAqIEEgcHJlLXJlbGVhc2Ugc3VmZml4LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlcmVsZWFzZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEEgcHJlZml4IGFwcGxpZWQgdG8gYWxsIHRhZ3MuXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVWZXJzaW9ucmNGaWxlKFxuICByY2ZpbGU6IHN0cmluZyxcbiAgdmVyc2lvbkZpbGU6IHN0cmluZyxcbiAgY2hhbmdlbG9nRmlsZTogc3RyaW5nLFxuICBza2lwQnVtcDogYm9vbGVhbixcbiAgcHJlcmVsZWFzZT86IHN0cmluZywgY29uZmlnT3B0aW9ucz86IENvbmZpZyxcbikge1xuICByZXR1cm4gd3JpdGVGaWxlKHJjZmlsZSwgSlNPTi5zdHJpbmdpZnkoe1xuICAgIC4uLntcbiAgICAgIHBhY2thZ2VGaWxlczogW3tcbiAgICAgICAgZmlsZW5hbWU6IHZlcnNpb25GaWxlLFxuICAgICAgICB0eXBlOiAnanNvbicsXG4gICAgICB9XSxcbiAgICAgIGJ1bXBGaWxlczogW3tcbiAgICAgICAgZmlsZW5hbWU6IHZlcnNpb25GaWxlLFxuICAgICAgICB0eXBlOiAnanNvbicsXG4gICAgICB9XSxcbiAgICAgIGNvbW1pdEFsbDogZmFsc2UsXG4gICAgICBpbmZpbGU6IGNoYW5nZWxvZ0ZpbGUsXG4gICAgICBwcmVyZWxlYXNlOiBwcmVyZWxlYXNlLFxuICAgICAgaGVhZGVyOiAnJyxcbiAgICAgIHNraXA6IHtcbiAgICAgICAgY29tbWl0OiB0cnVlLFxuICAgICAgICB0YWc6IHRydWUsXG4gICAgICAgIGJ1bXA6IHNraXBCdW1wLFxuICAgICAgfSxcbiAgICAgIC4uLmNvbmZpZ09wdGlvbnMsXG4gICAgfSxcbiAgfSwgdW5kZWZpbmVkLCAyKSk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgbGF0ZXN0IHJlbGVhc2UgdGFnLlxuICogQHBhcmFtIG1ham9yIChvcHRpb25hbCkgQSBtYWpvciB2ZXJzaW9uIGxpbmUgdG8gc2VsZWN0IGZyb21cbiAqIEBwYXJhbSBwcmVyZWxlYXNlIChvcHRpb25hbCkgQSBwcmUtcmVsZWFzZSBzdWZmaXguXG4gKiBAcmV0dXJucyB0aGUgbGF0ZXN0IHRhZywgYW5kIHdoZXRoZXIgaXQgaXMgdGhlIGZpcnN0IHJlbGVhc2Ugb3Igbm90XG4gKi9cbmZ1bmN0aW9uIGRldGVybWluZUxhdGVzdFRhZyhvcHRpb25zOiBMYXRlc3RUYWdPcHRpb25zKTogeyBsYXRlc3RWZXJzaW9uOiBzdHJpbmc7IGxhdGVzdFRhZzogc3RyaW5nOyBpc0ZpcnN0UmVsZWFzZTogYm9vbGVhbiB9IHtcbiAgY29uc3QgeyBjd2QsIG1ham9yLCBwcmVyZWxlYXNlLCBwcmVmaXggfSA9IG9wdGlvbnM7XG5cbiAgLy8gZmlsdGVyIG9ubHkgdGFncyBmb3IgdGhpcyBwcmVmaXggYW5kIG1ham9yIHZlcnNpb24gaWYgc3BlY2lmaWVkIChzdGFydCB3aXRoIFwidk5OLlwiKS5cbiAgY29uc3QgcHJlZml4RmlsdGVyID0gbWFqb3IgPyBgJHtwcmVmaXh9diR7bWFqb3J9LipgIDogYCR7cHJlZml4fXYqYDtcblxuICBjb25zdCBsaXN0R2l0VGFncyA9IFtcbiAgICAnZ2l0JyxcbiAgICAnLWMgXCJ2ZXJzaW9uc29ydC5zdWZmaXg9LVwiJywgLy8gbWFrZXMgc3VyZSBwcmUtcmVsZWFzZSB2ZXJzaW9ucyBhcmUgbGlzdGVkIGFmdGVyIHRoZSBwcmltYXJ5IHZlcnNpb25cbiAgICAndGFnJyxcbiAgICAnLS1zb3J0PVwiLXZlcnNpb246cmVmbmFtZVwiJywgLy8gc29ydCBhcyB2ZXJzaW9ucyBhbmQgbm90IGxleGljb2dyYXBoaWNhbGx5XG4gICAgJy0tbGlzdCcsXG4gICAgYFwiJHtwcmVmaXhGaWx0ZXJ9XCJgLFxuICBdLmpvaW4oJyAnKTtcblxuICBjb25zdCBzdGRvdXQgPSBleGVjQ2FwdHVyZShsaXN0R2l0VGFncywgeyBjd2QgfSkudG9TdHJpbmcoJ3V0ZjgnKTtcblxuICBsZXQgdGFncyA9IHN0ZG91dD8uc3BsaXQoJ1xcbicpO1xuXG4gIC8vIGlmIFwicHJlXCIgaXMgc2V0LCBmaWx0ZXIgdmVyc2lvbnMgdGhhdCBlbmQgd2l0aCBcIi1QUkUuZGRkXCIuXG4gIGlmIChwcmVyZWxlYXNlKSB7XG4gICAgdGFncyA9IHRhZ3MuZmlsdGVyKHggPT4gbmV3IFJlZ0V4cChgLSR7cHJlcmVsZWFzZX1cXC5bMC05XSskYCkudGVzdCh4KSk7XG4gIH1cblxuICB0YWdzID0gdGFncy5maWx0ZXIoeCA9PiB4KTtcblxuICAvLyBpZiBhIHByZS1yZWxlYXNlIHRhZyBpcyB1c2VkLCB0aGVuIGFkZCBpdCB0byB0aGUgaW5pdGlhbCB2ZXJzaW9uXG4gIGxldCBpc0ZpcnN0UmVsZWFzZSA9IGZhbHNlO1xuICBsZXQgbGF0ZXN0VGFnO1xuXG4gIGlmICh0YWdzLmxlbmd0aCA+IDApIHtcbiAgICBsYXRlc3RUYWcgPSB0YWdzWzBdO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGluaXRpYWwgPSBgJHtwcmVmaXh9diR7bWFqb3IgPz8gMH0uMC4wYDtcbiAgICBsYXRlc3RUYWcgPSBwcmVyZWxlYXNlID8gYCR7aW5pdGlhbH0tJHtwcmVyZWxlYXNlfS4wYCA6IGluaXRpYWw7XG4gICAgaXNGaXJzdFJlbGVhc2UgPSB0cnVlO1xuICB9XG5cbiAgLy8gcmVtb3ZlIHRhZyBwcmVmaXggKGlmIGV4aXN0cylcbiAgbGV0IGxhdGVzdFZlcnNpb24gPSBsYXRlc3RUYWc7XG4gIGlmIChwcmVmaXggJiYgbGF0ZXN0VmVyc2lvbi5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICBsYXRlc3RWZXJzaW9uID0gbGF0ZXN0VmVyc2lvbi5zdWJzdHIocHJlZml4Lmxlbmd0aCk7XG4gIH1cblxuICAvLyByZW1vdmUgXCJ2XCIgcHJlZml4IChpZiBleGlzdHMpXG4gIGlmIChsYXRlc3RWZXJzaW9uLnN0YXJ0c1dpdGgoJ3YnKSkge1xuICAgIGxhdGVzdFZlcnNpb24gPSBsYXRlc3RWZXJzaW9uLnN1YnN0cigxKTtcbiAgfVxuXG4gIHJldHVybiB7IGxhdGVzdFZlcnNpb24sIGxhdGVzdFRhZywgaXNGaXJzdFJlbGVhc2UgfTtcbn1cbiJdfQ==
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVtcC12ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlbGVhc2UvYnVtcC12ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUFxQztBQUVyQyx1Q0FBMkU7QUFDM0Usc0NBQXNDO0FBQ3RDLGtDQUE0QztBQTBENUM7Ozs7Ozs7O0dBUUc7QUFDSSxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQVcsRUFBRSxPQUFvQjs7SUFDMUQsTUFBTSxXQUFXLEdBQUcsV0FBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUN0QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQ25DLE1BQU0sTUFBTSxTQUFHLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLEVBQUUsQ0FBQztJQUN2QyxNQUFNLFFBQVEsR0FBRyxXQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxNQUFNLGFBQWEsR0FBRyxXQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxNQUFNLGNBQWMsR0FBRyxXQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV6RCxNQUFNLGlCQUFNLENBQUMsY0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDaEMsTUFBTSxpQkFBTSxDQUFDLGNBQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0saUJBQU0sQ0FBQyxjQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUV0QyxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQztRQUN0RSxHQUFHO1FBQ0gsS0FBSztRQUNMLFVBQVU7UUFDVixNQUFNO0tB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QWdDO0lBQ2hDLElBQUksYUFBYSxHQUFHLFNBQVMsQ0FBQztJQUM5QixJQUFJLE1BQU0sSUFBSSxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQzlDLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNyRDtJQUVELGdDQUFnQztJQUNoQyxJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDakMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDekM7SUFFRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsQ0FBQztBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGlybmFtZSwgam9pbiB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBDb25maWcgfSBmcm9tIFwiY29udmVudGlvbmFsLWNoYW5nZWxvZy1jb25maWctc3BlY1wiO1xuaW1wb3J0IHsgbWtkaXJwLCBwYXRoRXhpc3RzLCByZWFkRmlsZSwgcmVtb3ZlLCB3cml0ZUZpbGUgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIGxvZ2dpbmcgZnJvbSBcIi4uL2xvZ2dpbmdcIjtcbmltcG9ydCB7IGV4ZWMsIGV4ZWNDYXB0dXJlIH0gZnJvbSBcIi4uL3V0aWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBCdW1wT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiBhIC5qc29uIGZpbGUgdG8gc2V0IGB2ZXJzaW9uYC5cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25GaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjaGFuZ2Vsb2cgZmlsZSB0byBnZW5lcmF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZWxvZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVc2UgYSBwcmUtcmVsZWFzZSBzdWZmaXguXG4gICAqIEBkZWZhdWx0IC0gbm9ybWFsIHZlcnNpb25pbmdcbiAgICovXG4gIHJlYWRvbmx5IHByZXJlbGVhc2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIG1ham9yIHZlcnNpb24gbGluZS4gVGhpcyBpcyB1c2VkIHRvIHNlbGVjdCB0aGUgbGF0ZXN0IHZlcnNpb25cbiAgICogYW5kIGFsc28gZW5mb3JjZSB0aGF0IG5ldyBtYWpvciB2ZXJzaW9ucyBhcmUgbm90IHJlbGVhc2VkIGFjY2lkZW50YWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbnkgdmVyc2lvbiBpcyBzdXBwb3J0ZWRcbiAgICovXG4gIHJlYWRvbmx5IG1ham9yVmVyc2lvbj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgYSBmaWxlIHdoaWNoIHdpbGwgaW5jbHVkZSB0aGUgb3V0cHV0IHZlcnNpb24gbnVtYmVyIChhIHRleHQgZmlsZSkuXG4gICAqXG4gICAqIFJlbGF0aXZlIHRvIGN3ZC5cbiAgICpcbiAgICogQGV4YW1wbGUgXCIudmVyc2lvbi50eHRcIlxuICAgKi9cbiAgcmVhZG9ubHkgYnVtcEZpbGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGZpbGUgd2hpY2ggd2lsbCBpbmNsdWRlIHRoZSByZWxlYXNlIHRhZyAoYSB0ZXh0IGZpbGUpLlxuICAgKlxuICAgKiBSZWxhdGl2ZSB0byBjd2QuXG4gICAqXG4gICAqIEBleGFtcGxlIFwiLnJlbGVhc2V0YWcudHh0XCJcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2VUYWdGaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmVmaXggYXBwbGllZCB0byByZWxlYXNlIHRhZ3MuIEJ1bXBzIHdpbGwgYmUgbWFkZSBiYXNlZCBvbiB0aGUgbGF0ZXN0XG4gICAqIHZlcnNpb24gZm91bmQgd2l0aCB0aGlzIHByZWZpeC5cbiAgICovXG4gIHJlYWRvbmx5IHRhZ1ByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogQ29uZ3VyYXRpb24gdmFsdWVzIHRoYXQgd291bGQgYXBwZW5kIHRvIHZlcnNpb25yYyBmaWxlIG9yIG92ZXJ3cml0ZSB2YWx1ZXNcbiAgICogY29taW5nIHRvIHRoYXQgZnJvbSBkZWZhdWx0IG9uZS5cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25yY09wdGlvbnM/OiBDb25maWc7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIGxhdGVzdCB2ZXJzaW9uIGZyb20gZ2l0IHRhZ3MgYW5kIHVzZXMgYHN0YW5kYXJkLXZlcnNpb25gIHRvIGJ1bXBcbiAqIHRvIHRoZSBuZXh0IHZlcnNpb24gYmFzZWQgb24gY29tbWl0cy5cbiAqXG4gKiBUaGlzIGV4cGVjdHMgYHN0YW5kYXJkLXZlcnNpb25gIHRvIGJlIGluc3RhbGxlZCBpbiB0aGUgcGF0aC5cbiAqXG4gKiBAcGFyYW0gY3dkIHdvcmtpbmcgZGlyZWN0b3J5IChnaXQgcmVwb3NpdG9yeSlcbiAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1bXAoY3dkOiBzdHJpbmcsIG9wdGlvbnM6IEJ1bXBPcHRpb25zKSB7XG4gIGNvbnN0IHZlcnNpb25GaWxlID0gam9pbihjd2QsIG9wdGlvbnMudmVyc2lvbkZpbGUpO1xuICBjb25zdCBwcmVyZWxlYXNlID0gb3B0aW9ucy5wcmVyZWxlYXNlO1xuICBjb25zdCBtYWpvciA9IG9wdGlvbnMubWFqb3JWZXJzaW9uO1xuICBjb25zdCBwcmVmaXggPSBvcHRpb25zLnRhZ1ByZWZpeCA/PyBcIlwiO1xuICBjb25zdCBidW1wRmlsZSA9IGpvaW4oY3dkLCBvcHRpb25zLmJ1bXBGaWxlKTtcbiAgY29uc3QgY2hhbmdlbG9nRmlsZSA9IGpvaW4oY3dkLCBvcHRpb25zLmNoYW5nZWxvZyk7XG4gIGNvbnN0IHJlbGVhc2VUYWdGaWxlID0gam9pbihjd2QsIG9wdGlvbnMucmVsZWFzZVRhZ0ZpbGUpO1xuXG4gIGF3YWl0IG1rZGlycChkaXJuYW1lKGJ1bXBGaWxlKSk7XG4gIGF3YWl0IG1rZGlycChkaXJuYW1lKGNoYW5nZWxvZ0ZpbGUpKTtcbiAgYXdhaXQgbWtkaXJwKGRpcm5hbWUocmVsZWFzZVRhZ0ZpbGUpKTtcblxuICBjb25zdCB7IGxhdGVzdFZlcnNpb24sIGxhdGVzdFRhZywgaXNGaXJzdFJlbGVhc2UgfSA9IGRldGVybWluZUxhdGVzdFRhZyh7XG4gICAgY3dkLFxuICAgIG1ham9yLFxuICAgIHByZXJlbGVhc2UsXG4gICAgcHJlZml4LFxuICB9KTtcblxuICBjb25zdCBjb250ZW50ID0gYXdhaXQgdHJ5UmVhZFZlcnNpb25GaWxlKHZlcnNpb25GaWxlKTtcblxuICAvLyB1cGRhdGUgdmVyc2lvblxuICBjb250ZW50LnZlcnNpb24gPSBsYXRlc3RWZXJzaW9uO1xuXG4gIGxvZ2dpbmcuaW5mbyhcbiAgICBgVXBkYXRlICR7dmVyc2lvbkZpbGV9IHRvIGxhdGVzdCByZXNvbHZlZCB2ZXJzaW9uOiAke2xhdGVzdFZlcnNpb259YFxuICApO1xuICBhd2FpdCB3cml0ZUZpbGUodmVyc2lvbkZpbGUsIEpTT04uc3RyaW5naWZ5KGNvbnRlbnQsIHVuZGVmaW5lZCwgMikpO1xuXG4gIC8vIGNoZWNrIGlmIHRoZSBsYXRlc3QgY29tbWl0IGFscmVhZHkgaGFzIGEgdmVyc2lvbiB0YWdcbiAgY29uc3QgY3VycmVudFRhZ3MgPSBleGVjQ2FwdHVyZShcImdpdCB0YWcgLS1wb2ludHMtYXQgSEVBRFwiLCB7IGN3ZCB9KVxuICAgIC50b1N0cmluZyhcInV0ZjhcIilcbiAgICAuc3BsaXQoXCJcXG5cIik7XG4gIGxvZ2dpbmcuaW5mbyhgVGFncyBsaXN0ZWQgb24gY3VycmVudCBjb21taXQ6ICR7Y3VycmVudFRhZ3N9YCk7XG5cbiAgbGV0IHNraXBCdW1wID0gZmFsc2U7XG5cbiAgaWYgKGN1cnJlbnRUYWdzLmluY2x1ZGVzKGxhdGVzdFRhZykpIHtcbiAgICBsb2dnaW5nLmluZm8oXCJTa2lwcGluZyBidW1wLi4uXCIpO1xuICAgIHNraXBCdW1wID0gdHJ1ZTtcblxuICAgIC8vIGRlbGV0ZSB0aGUgZXhpc3RpbmcgdGFnIChsb2NhbGx5KVxuICAgIC8vIGlmIHdlIGRvbid0IGRvIHRoaXMsIHN0YW5kYXJkLXZlcnNpb24gZ2VuZXJhdGVzIGFuIGVtcHR5IGNoYW5nZWxvZ1xuICAgIGV4ZWMoYGdpdCB0YWcgLS1kZWxldGUgJHtsYXRlc3RUYWd9YCwgeyBjd2QgfSk7XG4gIH1cblxuICAvLyBjcmVhdGUgYSBzdGFuZGFyZC12ZXJzaW9uIGNvbmZpZ3VyYXRpb24gZmlsZVxuICBjb25zdCByY2ZpbGUgPSBqb2luKGN3ZCwgXCIudmVyc2lvbnJjLmpzb25cIik7XG4gIGF3YWl0IGdlbmVyYXRlVmVyc2lvbnJjRmlsZShcbiAgICByY2ZpbGUsXG4gICAgdmVyc2lvbkZpbGUsXG4gICAgY2hhbmdlbG9nRmlsZSxcbiAgICBza2lwQnVtcCxcbiAgICBwcmVyZWxlYXNlLFxuICAgIG9wdGlvbnMudmVyc2lvbnJjT3B0aW9uc1xuICApO1xuXG4gIGNvbnN0IGNtZCA9IFtcIm5weFwiLCBcInN0YW5kYXJkLXZlcnNpb25AXjlcIl07XG4gIGlmIChpc0ZpcnN0UmVsZWFzZSkge1xuICAgIGNtZC5wdXNoKFwiLS1maXJzdC1yZWxlYXNlXCIpO1xuICB9XG5cbiAgZXhlYyhjbWQuam9pbihcIiBcIiksIHsgY3dkIH0pO1xuXG4gIC8vIGFkZCB0aGUgdGFnIGJhY2sgaWYgaXQgd2FzIHByZXZpb3VzbHkgcmVtb3ZlZFxuICBpZiAoY3VycmVudFRhZ3MuaW5jbHVkZXMobGF0ZXN0VGFnKSkge1xuICAgIGV4ZWMoYGdpdCB0YWcgJHtsYXRlc3RUYWd9YCwgeyBjd2QgfSk7XG4gIH1cblxuICBhd2FpdCByZW1vdmUocmNmaWxlKTtcblxuICBjb25zdCBuZXdWZXJzaW9uID0gKGF3YWl0IHRyeVJlYWRWZXJzaW9uRmlsZSh2ZXJzaW9uRmlsZSkpLnZlcnNpb247XG4gIGlmICghbmV3VmVyc2lvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgYnVtcCBmYWlsZWQ6ICR7dmVyc2lvbkZpbGV9IGRvZXMgbm90IGhhdmUgYSB2ZXJzaW9uIHNldGApO1xuICB9XG5cbiAgLy8gaWYgTUFKT1IgaXMgZGVmaW5lZCwgZW5zdXJlIHRoYXQgdGhlIG5ldyB2ZXJzaW9uIGlzIHdpdGhpbiB0aGUgc2FtZSBtYWpvciB2ZXJzaW9uXG4gIGlmIChtYWpvcikge1xuICAgIGlmICghbmV3VmVyc2lvbi5zdGFydHNXaXRoKGAke21ham9yfS5gKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgYnVtcCBmYWlsZWQ6IHRoaXMgYnJhbmNoIGlzIGNvbmZpZ3VyZWQgdG8gb25seSBwdWJsaXNoIHYke21ham9yfSByZWxlYXNlcyAtIGJ1bXAgcmVzdWx0ZWQgaW4gJHtuZXdWZXJzaW9ufWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgYXdhaXQgd3JpdGVGaWxlKGJ1bXBGaWxlLCBuZXdWZXJzaW9uKTtcblxuICBjb25zdCBuZXdUYWcgPSBgJHtwcmVmaXh9diR7bmV3VmVyc2lvbn1gO1xuICBhd2FpdCB3cml0ZUZpbGUocmVsZWFzZVRhZ0ZpbGUsIG5ld1RhZyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHRyeVJlYWRWZXJzaW9uRmlsZSh2ZXJzaW9uRmlsZTogc3RyaW5nKSB7XG4gIGlmICghKGF3YWl0IHBhdGhFeGlzdHModmVyc2lvbkZpbGUpKSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHJldHVybiBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKHZlcnNpb25GaWxlLCBcInV0ZjhcIikpO1xufVxuXG5pbnRlcmZhY2UgTGF0ZXN0VGFnT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXb3JraW5nIGRpcmVjdG9yeSBvZiB0aGUgZ2l0IHJlcG9zaXRvcnkuXG4gICAqL1xuICByZWFkb25seSBjd2Q6IHN0cmluZztcbiAgLyoqXG4gICAqIE1ham9yIHZlcnNpb24gdG8gc2VsZWN0IGZyb20uXG4gICAqL1xuICByZWFkb25seSBtYWpvcj86IG51bWJlcjtcbiAgLyoqXG4gICAqIEEgcHJlLXJlbGVhc2Ugc3VmZml4LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlcmVsZWFzZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEEgcHJlZml4IGFwcGxpZWQgdG8gYWxsIHRhZ3MuXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVWZXJzaW9ucmNGaWxlKFxuICByY2ZpbGU6IHN0cmluZyxcbiAgdmVyc2lvbkZpbGU6IHN0cmluZyxcbiAgY2hhbmdlbG9nRmlsZTogc3RyaW5nLFxuICBza2lwQnVtcDogYm9vbGVhbixcbiAgcHJlcmVsZWFzZT86IHN0cmluZyxcbiAgY29uZmlnT3B0aW9ucz86IENvbmZpZ1xuKSB7XG4gIHJldHVybiB3cml0ZUZpbGUoXG4gICAgcmNmaWxlLFxuICAgIEpTT04uc3RyaW5naWZ5KFxuICAgICAge1xuICAgICAgICAuLi57XG4gICAgICAgICAgcGFja2FnZUZpbGVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpbGVuYW1lOiB2ZXJzaW9uRmlsZSxcbiAgICAgICAgICAgICAgdHlwZTogXCJqc29uXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYnVtcEZpbGVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpbGVuYW1lOiB2ZXJzaW9uRmlsZSxcbiAgICAgICAgICAgICAgdHlwZTogXCJqc29uXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgY29tbWl0QWxsOiBmYWxzZSxcbiAgICAgICAgICBpbmZpbGU6IGNoYW5nZWxvZ0ZpbGUsXG4gICAgICAgICAgcHJlcmVsZWFzZTogcHJlcmVsZWFzZSxcbiAgICAgICAgICBoZWFkZXI6IFwiXCIsXG4gICAgICAgICAgc2tpcDoge1xuICAgICAgICAgICAgY29tbWl0OiB0cnVlLFxuICAgICAgICAgICAgdGFnOiB0cnVlLFxuICAgICAgICAgICAgYnVtcDogc2tpcEJ1bXAsXG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi5jb25maWdPcHRpb25zLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDJcbiAgICApXG4gICk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgbGF0ZXN0IHJlbGVhc2UgdGFnLlxuICogQHBhcmFtIG1ham9yIChvcHRpb25hbCkgQSBtYWpvciB2ZXJzaW9uIGxpbmUgdG8gc2VsZWN0IGZyb21cbiAqIEBwYXJhbSBwcmVyZWxlYXNlIChvcHRpb25hbCkgQSBwcmUtcmVsZWFzZSBzdWZmaXguXG4gKiBAcmV0dXJucyB0aGUgbGF0ZXN0IHRhZywgYW5kIHdoZXRoZXIgaXQgaXMgdGhlIGZpcnN0IHJlbGVhc2Ugb3Igbm90XG4gKi9cbmZ1bmN0aW9uIGRldGVybWluZUxhdGVzdFRhZyhvcHRpb25zOiBMYXRlc3RUYWdPcHRpb25zKToge1xuICBsYXRlc3RWZXJzaW9uOiBzdHJpbmc7XG4gIGxhdGVzdFRhZzogc3RyaW5nO1xuICBpc0ZpcnN0UmVsZWFzZTogYm9vbGVhbjtcbn0ge1xuICBjb25zdCB7IGN3ZCwgbWFqb3IsIHByZXJlbGVhc2UsIHByZWZpeCB9ID0gb3B0aW9ucztcblxuICAvLyBmaWx0ZXIgb25seSB0YWdzIGZvciB0aGlzIHByZWZpeCBhbmQgbWFqb3IgdmVyc2lvbiBpZiBzcGVjaWZpZWQgKHN0YXJ0IHdpdGggXCJ2Tk4uXCIpLlxuICBjb25zdCBwcmVmaXhGaWx0ZXIgPSBtYWpvciA/IGAke3ByZWZpeH12JHttYWpvcn0uKmAgOiBgJHtwcmVmaXh9dipgO1xuXG4gIGNvbnN0IGxpc3RHaXRUYWdzID0gW1xuICAgIFwiZ2l0XCIsXG4gICAgJy1jIFwidmVyc2lvbnNvcnQuc3VmZml4PS1cIicsIC8vIG1ha2VzIHN1cmUgcHJlLXJlbGVhc2UgdmVyc2lvbnMgYXJlIGxpc3RlZCBhZnRlciB0aGUgcHJpbWFyeSB2ZXJzaW9uXG4gICAgXCJ0YWdcIixcbiAgICAnLS1zb3J0PVwiLXZlcnNpb246cmVmbmFtZVwiJywgLy8gc29ydCBhcyB2ZXJzaW9ucyBhbmQgbm90IGxleGljb2dyYXBoaWNhbGx5XG4gICAgXCItLWxpc3RcIixcbiAgICBgXCIke3ByZWZpeEZpbHRlcn1cImAsXG4gIF0uam9pbihcIiBcIik7XG5cbiAgY29uc3Qgc3Rkb3V0ID0gZXhlY0NhcHR1cmUobGlzdEdpdFRhZ3MsIHsgY3dkIH0pLnRvU3RyaW5nKFwidXRmOFwiKTtcblxuICBsZXQgdGFncyA9IHN0ZG91dD8uc3BsaXQoXCJcXG5cIik7XG5cbiAgLy8gaWYgXCJwcmVcIiBpcyBzZXQsIGZpbHRlciB2ZXJzaW9ucyB0aGF0IGVuZCB3aXRoIFwiLVBSRS5kZGRcIi5cbiAgaWYgKHByZXJlbGVhc2UpIHtcbiAgICB0YWdzID0gdGFncy5maWx0ZXIoKHgpID0+IG5ldyBSZWdFeHAoYC0ke3ByZXJlbGVhc2V9XFwuWzAtOV0rJGApLnRlc3QoeCkpO1xuICB9XG5cbiAgdGFncyA9IHRhZ3MuZmlsdGVyKCh4KSA9PiB4KTtcblxuICAvLyBpZiBhIHByZS1yZWxlYXNlIHRhZyBpcyB1c2VkLCB0aGVuIGFkZCBpdCB0byB0aGUgaW5pdGlhbCB2ZXJzaW9uXG4gIGxldCBpc0ZpcnN0UmVsZWFzZSA9IGZhbHNlO1xuICBsZXQgbGF0ZXN0VGFnO1xuXG4gIGlmICh0YWdzLmxlbmd0aCA+IDApIHtcbiAgICBsYXRlc3RUYWcgPSB0YWdzWzBdO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGluaXRpYWwgPSBgJHtwcmVmaXh9diR7bWFqb3IgPz8gMH0uMC4wYDtcbiAgICBsYXRlc3RUYWcgPSBwcmVyZWxlYXNlID8gYCR7aW5pdGlhbH0tJHtwcmVyZWxlYXNlfS4wYCA6IGluaXRpYWw7XG4gICAgaXNGaXJzdFJlbGVhc2UgPSB0cnVlO1xuICB9XG5cbiAgLy8gcmVtb3ZlIHRhZyBwcmVmaXggKGlmIGV4aXN0cylcbiAgbGV0IGxhdGVzdFZlcnNpb24gPSBsYXRlc3RUYWc7XG4gIGlmIChwcmVmaXggJiYgbGF0ZXN0VmVyc2lvbi5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICBsYXRlc3RWZXJzaW9uID0gbGF0ZXN0VmVyc2lvbi5zdWJzdHIocHJlZml4Lmxlbmd0aCk7XG4gIH1cblxuICAvLyByZW1vdmUgXCJ2XCIgcHJlZml4IChpZiBleGlzdHMpXG4gIGlmIChsYXRlc3RWZXJzaW9uLnN0YXJ0c1dpdGgoXCJ2XCIpKSB7XG4gICAgbGF0ZXN0VmVyc2lvbiA9IGxhdGVzdFZlcnNpb24uc3Vic3RyKDEpO1xuICB9XG5cbiAgcmV0dXJuIHsgbGF0ZXN0VmVyc2lvbiwgbGF0ZXN0VGFnLCBpc0ZpcnN0UmVsZWFzZSB9O1xufVxuIl19
|
|
@@ -27,18 +27,18 @@ const releaseTagFile = process.env.RELEASETAG;
|
|
|
27
27
|
const prefix = process.env.RELEASE_TAG_PREFIX;
|
|
28
28
|
const versionrcOptions = process.env.VERSIONRCOPTIONS;
|
|
29
29
|
if (!versionFile) {
|
|
30
|
-
throw new Error(
|
|
30
|
+
throw new Error("OUTFILE is required");
|
|
31
31
|
}
|
|
32
32
|
if (!changelog) {
|
|
33
|
-
throw new Error(
|
|
33
|
+
throw new Error("CHANGELOG is required");
|
|
34
34
|
}
|
|
35
35
|
if (!bumpFile) {
|
|
36
|
-
throw new Error(
|
|
36
|
+
throw new Error("BUMPFILE is required");
|
|
37
37
|
}
|
|
38
38
|
if (!releaseTagFile) {
|
|
39
|
-
throw new Error(
|
|
39
|
+
throw new Error("RELEASETAG is required");
|
|
40
40
|
}
|
|
41
|
-
const majorVersion =
|
|
41
|
+
const majorVersion = major == null || major === "" ? undefined : parseInt(major);
|
|
42
42
|
if (majorVersion === NaN) {
|
|
43
43
|
throw new Error(`MAJOR must be a number: ${majorVersion}`);
|
|
44
44
|
}
|
|
@@ -51,10 +51,10 @@ const opts = {
|
|
|
51
51
|
releaseTagFile: releaseTagFile,
|
|
52
52
|
tagPrefix: prefix,
|
|
53
53
|
// doesn't work with long customization
|
|
54
|
-
versionrcOptions: JSON.parse(versionrcOptions !== null && versionrcOptions !== void 0 ? versionrcOptions :
|
|
54
|
+
versionrcOptions: JSON.parse(versionrcOptions !== null && versionrcOptions !== void 0 ? versionrcOptions : "{}"),
|
|
55
55
|
};
|
|
56
56
|
bump_version_1.bump(process.cwd(), opts).catch((e) => {
|
|
57
57
|
console.log(e.stack);
|
|
58
58
|
process.exit(1);
|
|
59
59
|
});
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVtcC12ZXJzaW9uLnRhc2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVsZWFzZS9idW1wLXZlcnNpb24udGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsaURBQW1EO0FBRW5ELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO0FBQ3hDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO0FBQzFDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO0FBQ2hDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO0FBQ3hDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0FBQ3RDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO0FBQzlDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUM7QUFDOUMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO0FBRXRELElBQUksQ0FBQyxXQUFXLEVBQUU7SUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0NBQ3hDO0FBRUQsSUFBSSxDQUFDLFNBQVMsRUFBRTtJQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztDQUMxQztBQUVELElBQUksQ0FBQyxRQUFRLEVBQUU7SUFDYixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7Q0FDekM7QUFFRCxJQUFJLENBQUMsY0FBYyxFQUFFO0lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztDQUMzQztBQUVELE1BQU0sWUFBWSxHQUNoQixLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlELElBQUksWUFBWSxLQUFLLEdBQUcsRUFBRTtJQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixZQUFZLEVBQUUsQ0FBQyxDQUFDO0NBQzVEO0FBRUQsTUFBTSxJQUFJLEdBQWdCO0lBQ3hCLFdBQVcsRUFBRSxXQUFXO0lBQ3hCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFlBQVksRUFBRSxZQUFZO0lBQzFCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLGNBQWMsRUFBRSxjQUFjO0lBQzlCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLHVDQUF1QztJQUN2QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixhQUFoQixnQkFBZ0IsY0FBaEIsZ0JBQWdCLEdBQUksSUFBSSxDQUFDO0NBQ3ZELENBQUM7QUFFRixtQkFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFRLEVBQUUsRUFBRTtJQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNvbHZlcyB0aGUgbGF0ZXN0IHZlcnNpb24gZnJvbSBnaXQgdGFncyBhbmQgdXNlcyBgc3RhbmRhcmQtdmVyc2lvbmAgdG8gYnVtcFxuICogdG8gdGhlIG5leHQgdmVyc2lvbiBiYXNlZCBvbiBjb21taXRzLlxuICpcbiAqIFRoaXMgZXhwZWN0cyBgc3RhbmRhcmQtdmVyc2lvbmAgdG8gYmUgaW5zdGFsbGVkIGluIHRoZSBwYXRoLlxuICpcbiAqIEVudmlyb25tZW50IHZhcmlhYmxlczpcbiAqXG4gKiAtIE9VVEZJTEU6IChyZXF1aXJlZCkgdGhlIG5hbWUgb2YgdGhlIEpTT04gb3V0cHV0IGZpbGUgKHRoZSBcInZlcnNpb25cIiBmaWVsZFxuICogICB3aWxsIGJlIHVwZGF0ZWQgd2l0aCB0aGUgbGF0ZXN0IHZlcnNpb24pXG4gKiAtIFBSRVJFTEVBU0U6IChvcHRpb25hbCkgYSBwcmVyZWxlYXNlIHRhZyB0byB1c2UgKGUuZy4gXCJiZXRhXCIpXG4gKiAtIE1BSk9SOiBtYWpvciB2ZXJzaW9uIG51bWJlciBOTiB0byBmaWx0ZXIgKHRhZ3MgYXJlIGZpbHRlcmVkIGJ5IFwidk5OLlwiXG4gKiAgIHByZWZpeCkuIGlmIG5vdCBzcGVjaWZpZWQsIHRoZSBsYXN0IG1ham9yIHZlcnNpb24gaXMgc2VsZWN0ZWRcbiAqIC0gQ0hBTkdFTE9HOiBuYW1lIG9mIGNoYW5nZWxvZyBmaWxlIHRvIGNyZWF0ZVxuICogLSBSRUxFQVNFX1RBR19QUkVGSVg6IChvcHRpb25hbCkgYSBwcmVmaXggdG8gYXBwbHkgdG8gdGhlIHJlbGVhc2UgdGFnXG4gKlxuICovXG5pbXBvcnQgeyBidW1wLCBCdW1wT3B0aW9ucyB9IGZyb20gXCIuL2J1bXAtdmVyc2lvblwiO1xuXG5jb25zdCB2ZXJzaW9uRmlsZSA9IHByb2Nlc3MuZW52Lk9VVEZJTEU7XG5jb25zdCBwcmVyZWxlYXNlID0gcHJvY2Vzcy5lbnYuUFJFUkVMRUFTRTtcbmNvbnN0IG1ham9yID0gcHJvY2Vzcy5lbnYuTUFKT1I7XG5jb25zdCBjaGFuZ2Vsb2cgPSBwcm9jZXNzLmVudi5DSEFOR0VMT0c7XG5jb25zdCBidW1wRmlsZSA9IHByb2Nlc3MuZW52LkJVTVBGSUxFO1xuY29uc3QgcmVsZWFzZVRhZ0ZpbGUgPSBwcm9jZXNzLmVudi5SRUxFQVNFVEFHO1xuY29uc3QgcHJlZml4ID0gcHJvY2Vzcy5lbnYuUkVMRUFTRV9UQUdfUFJFRklYO1xuY29uc3QgdmVyc2lvbnJjT3B0aW9ucyA9IHByb2Nlc3MuZW52LlZFUlNJT05SQ09QVElPTlM7XG5cbmlmICghdmVyc2lvbkZpbGUpIHtcbiAgdGhyb3cgbmV3IEVycm9yKFwiT1VURklMRSBpcyByZXF1aXJlZFwiKTtcbn1cblxuaWYgKCFjaGFuZ2Vsb2cpIHtcbiAgdGhyb3cgbmV3IEVycm9yKFwiQ0hBTkdFTE9HIGlzIHJlcXVpcmVkXCIpO1xufVxuXG5pZiAoIWJ1bXBGaWxlKSB7XG4gIHRocm93IG5ldyBFcnJvcihcIkJVTVBGSUxFIGlzIHJlcXVpcmVkXCIpO1xufVxuXG5pZiAoIXJlbGVhc2VUYWdGaWxlKSB7XG4gIHRocm93IG5ldyBFcnJvcihcIlJFTEVBU0VUQUcgaXMgcmVxdWlyZWRcIik7XG59XG5cbmNvbnN0IG1ham9yVmVyc2lvbiA9XG4gIG1ham9yID09IG51bGwgfHwgbWFqb3IgPT09IFwiXCIgPyB1bmRlZmluZWQgOiBwYXJzZUludChtYWpvcik7XG5pZiAobWFqb3JWZXJzaW9uID09PSBOYU4pIHtcbiAgdGhyb3cgbmV3IEVycm9yKGBNQUpPUiBtdXN0IGJlIGEgbnVtYmVyOiAke21ham9yVmVyc2lvbn1gKTtcbn1cblxuY29uc3Qgb3B0czogQnVtcE9wdGlvbnMgPSB7XG4gIHZlcnNpb25GaWxlOiB2ZXJzaW9uRmlsZSxcbiAgY2hhbmdlbG9nOiBjaGFuZ2Vsb2csXG4gIG1ham9yVmVyc2lvbjogbWFqb3JWZXJzaW9uLFxuICBwcmVyZWxlYXNlOiBwcmVyZWxlYXNlLFxuICBidW1wRmlsZTogYnVtcEZpbGUsXG4gIHJlbGVhc2VUYWdGaWxlOiByZWxlYXNlVGFnRmlsZSxcbiAgdGFnUHJlZml4OiBwcmVmaXgsXG4gIC8vIGRvZXNuJ3Qgd29yayB3aXRoIGxvbmcgY3VzdG9taXphdGlvblxuICB2ZXJzaW9ucmNPcHRpb25zOiBKU09OLnBhcnNlKHZlcnNpb25yY09wdGlvbnMgPz8gXCJ7fVwiKSxcbn07XG5cbmJ1bXAocHJvY2Vzcy5jd2QoKSwgb3B0cykuY2F0Y2goKGU6IEVycm9yKSA9PiB7XG4gIGNvbnNvbGUubG9nKGUuc3RhY2spO1xuICBwcm9jZXNzLmV4aXQoMSk7XG59KTtcbiJdfQ==
|
package/lib/release/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
1
|
+
export * from "./release";
|
|
2
|
+
export * from "./publisher";
|
|
3
|
+
export * from "./release-trigger";
|
package/lib/release/index.js
CHANGED
|
@@ -13,4 +13,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
__exportStar(require("./release"), exports);
|
|
14
14
|
__exportStar(require("./publisher"), exports);
|
|
15
15
|
__exportStar(require("./release-trigger"), exports);
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVsZWFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMEI7QUFDMUIsOENBQTRCO0FBQzVCLG9EQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3JlbGVhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3B1Ymxpc2hlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVsZWFzZS10cmlnZ2VyXCI7XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Component } from
|
|
2
|
-
import { Job, JobStep, Tools } from
|
|
3
|
-
import { Project } from
|
|
4
|
-
import { BranchOptions } from
|
|
1
|
+
import { Component } from "../component";
|
|
2
|
+
import { Job, JobStep, Tools } from "../github/workflows-model";
|
|
3
|
+
import { Project } from "../project";
|
|
4
|
+
import { BranchOptions } from "./release";
|
|
5
5
|
/**
|
|
6
6
|
* (experimental) Options for `Publisher`.
|
|
7
7
|
*
|