propagate-cli 1.12.7 → 1.12.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/abbreviations.js +10 -10
- package/lib/action/addDirectory.js +9 -9
- package/lib/action/addForcedDependencyRelation.js +13 -13
- package/lib/action/addIgnoredDependency.js +8 -8
- package/lib/action/help.js +51 -2
- package/lib/action/initialise.js +4 -4
- package/lib/action/listDirectories.js +12 -36
- package/lib/action/listForcedDependencyRelations.js +8 -8
- package/lib/action/listIgnoredDependencies.js +11 -34
- package/lib/action/propagate.js +19 -19
- package/lib/action/removeDirectory.js +11 -11
- package/lib/action/removeForcedDependencyRelation.js +11 -11
- package/lib/action/removeIgnoredDependency.js +11 -11
- package/lib/action/setShellCommands.js +13 -13
- package/lib/action/version.js +6 -6
- package/lib/changeDirectory.js +9 -9
- package/lib/commands.js +15 -15
- package/lib/configuration/version_1_10.js +6 -6
- package/lib/configuration/version_1_11.js +22 -22
- package/lib/configuration/version_1_3.js +5 -5
- package/lib/configuration/version_1_7.js +5 -5
- package/lib/configuration/version_1_9.js +9 -9
- package/lib/configuration.js +37 -75
- package/lib/constants.js +13 -13
- package/lib/defaults.js +12 -12
- package/lib/descriptions.js +20 -20
- package/lib/diff/map.js +62 -116
- package/lib/diff/semver.js +33 -78
- package/lib/diff/version.js +34 -76
- package/lib/diff.js +106 -196
- package/lib/main.js +20 -20
- package/lib/messages.js +45 -45
- package/lib/operation/checkDevDependencies.js +9 -9
- package/lib/operation/createDiffs.js +14 -37
- package/lib/operation/createReleaseGraph.js +9 -9
- package/lib/operation/createReleaseMap.js +5 -5
- package/lib/operation/createSubDirectoryMap.js +17 -41
- package/lib/operation/createSubDirectoryPath.js +6 -6
- package/lib/operation/dryRun.js +4 -4
- package/lib/operation/prompt/addDirectory.js +15 -15
- package/lib/operation/prompt/addForcedDependency.js +15 -15
- package/lib/operation/prompt/addForcedDependent.js +15 -15
- package/lib/operation/prompt/addIgnoredDependency.js +15 -15
- package/lib/operation/prompt/build.js +18 -18
- package/lib/operation/prompt/git.js +18 -18
- package/lib/operation/prompt/install.js +18 -18
- package/lib/operation/prompt/poll.js +18 -18
- package/lib/operation/prompt/publish.js +21 -21
- package/lib/operation/prompt/removeDirectory.js +14 -14
- package/lib/operation/prompt/removeForcedDependencyRelation.js +14 -14
- package/lib/operation/prompt/removeIgnoredDependency.js +14 -14
- package/lib/operation/prompt/save.js +21 -21
- package/lib/operation/prompt/setBuildShellCommands.js +15 -15
- package/lib/operation/prompt/setGitShellCommands.js +15 -15
- package/lib/operation/prompt/setInstallShellCommands.js +15 -15
- package/lib/operation/prompt/setPollShellCommands.js +15 -15
- package/lib/operation/prompt/setPublishShellCommands.js +15 -15
- package/lib/operation/propagateRelease.js +25 -25
- package/lib/operation/retrieveRelease.js +5 -5
- package/lib/operation/saveAndApplyDiff.js +14 -14
- package/lib/operation/saveAndApplyDiffs.js +4 -4
- package/lib/options.js +6 -6
- package/lib/prepare.js +6 -6
- package/lib/release.js +153 -234
- package/lib/releaseGraph.js +91 -148
- package/lib/releaseMap.js +52 -95
- package/lib/utilities/console.js +14 -38
- package/lib/utilities/dependency.js +4 -4
- package/lib/utilities/operation.js +10 -10
- package/lib/utilities/packageJSON.js +11 -11
- package/lib/utilities/path.js +3 -3
- package/lib/utilities/propagate.js +19 -19
- package/lib/utilities/shell.js +33 -33
- package/lib/utilities/terminal.js +2 -2
- package/lib/version.js +57 -114
- package/lib/versions.js +7 -7
- package/package.json +9 -4
- package/.swcrc +0 -5
package/lib/diff/semver.js
CHANGED
|
@@ -8,88 +8,43 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return SemverDiff;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
throw new TypeError("Cannot call a class as a function");
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
function _defineProperties(target, props) {
|
|
17
|
-
for(var i = 0; i < props.length; i++){
|
|
18
|
-
var descriptor = props[i];
|
|
19
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
20
|
-
descriptor.configurable = true;
|
|
21
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
22
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
26
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
27
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
28
|
-
return Constructor;
|
|
29
|
-
}
|
|
30
|
-
var SemverDiff = /*#__PURE__*/ function() {
|
|
31
|
-
function SemverDiff(name, semver, releaseSemver) {
|
|
32
|
-
_class_call_check(this, SemverDiff);
|
|
11
|
+
class SemverDiff {
|
|
12
|
+
constructor(name, semver, releaseSemver){
|
|
33
13
|
this.name = name;
|
|
34
14
|
this.semver = semver;
|
|
35
15
|
this.releaseSemver = releaseSemver;
|
|
36
16
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
{
|
|
57
|
-
|
|
58
|
-
value: function save(packageJSON) {
|
|
59
|
-
var semver = this.releaseSemver;
|
|
60
|
-
packageJSON[this.name] = semver;
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
key: "getSpecifier",
|
|
65
|
-
value: function getSpecifier() {
|
|
66
|
-
var specifier = "".concat(this.name, "@").concat(this.releaseSemver);
|
|
67
|
-
return specifier;
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
key: "asString",
|
|
72
|
-
value: function asString(last) {
|
|
73
|
-
var string = ' "'.concat(this.name, '": "').concat(this.semver, '" -> "').concat(this.releaseSemver, '"');
|
|
74
|
-
if (!last) {
|
|
75
|
-
string = "".concat(string, ",\n");
|
|
76
|
-
}
|
|
77
|
-
return string;
|
|
78
|
-
}
|
|
17
|
+
getName() {
|
|
18
|
+
return this.name;
|
|
19
|
+
}
|
|
20
|
+
getSemver() {
|
|
21
|
+
return this.semver;
|
|
22
|
+
}
|
|
23
|
+
getReleaseSemver() {
|
|
24
|
+
return this.releaseSemver;
|
|
25
|
+
}
|
|
26
|
+
save(packageJSON) {
|
|
27
|
+
const semver = this.releaseSemver;
|
|
28
|
+
packageJSON[this.name] = semver;
|
|
29
|
+
}
|
|
30
|
+
getSpecifier() {
|
|
31
|
+
const specifier = `${this.name}@${this.releaseSemver}`;
|
|
32
|
+
return specifier;
|
|
33
|
+
}
|
|
34
|
+
asString(last) {
|
|
35
|
+
let string = ` "${this.name}": "${this.semver}" -> "${this.releaseSemver}"`;
|
|
36
|
+
if (!last) {
|
|
37
|
+
string = `${string},\n`;
|
|
79
38
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
semverDiff = new SemverDiff(name, semver, releaseSemver);
|
|
87
|
-
}
|
|
88
|
-
return semverDiff;
|
|
89
|
-
}
|
|
39
|
+
return string;
|
|
40
|
+
}
|
|
41
|
+
static fromNameSemverAndReleaseSemver(name, semver, releaseSemver) {
|
|
42
|
+
let semverDiff = null;
|
|
43
|
+
if (semver !== releaseSemver) {
|
|
44
|
+
semverDiff = new SemverDiff(name, semver, releaseSemver);
|
|
90
45
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
46
|
+
return semverDiff;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
94
49
|
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3NlbXZlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VtdmVyRGlmZiB7XG4gIGNvbnN0cnVjdG9yKG5hbWUsIHNlbXZlciwgcmVsZWFzZVNlbXZlcikge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5zZW12ZXIgPSBzZW12ZXI7XG4gICAgdGhpcy5yZWxlYXNlU2VtdmVyID0gcmVsZWFzZVNlbXZlcjtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFNlbXZlcigpIHtcbiAgICByZXR1cm4gdGhpcy5zZW12ZXI7XG4gIH1cblxuICBnZXRSZWxlYXNlU2VtdmVyKCkge1xuICAgIHJldHVybiB0aGlzLnJlbGVhc2VTZW12ZXI7XG4gIH1cblxuICBzYXZlKHBhY2thZ2VKU09OKSB7XG4gICAgY29uc3Qgc2VtdmVyID0gdGhpcy5yZWxlYXNlU2VtdmVyO1xuXG4gICAgcGFja2FnZUpTT05bdGhpcy5uYW1lXSA9IHNlbXZlcjtcbiAgfVxuXG4gIGdldFNwZWNpZmllcigpIHtcbiAgICBjb25zdCBzcGVjaWZpZXIgPSBgJHt0aGlzLm5hbWV9QCR7dGhpcy5yZWxlYXNlU2VtdmVyfWA7XG5cbiAgICByZXR1cm4gc3BlY2lmaWVyO1xuICB9XG5cbiAgYXNTdHJpbmcobGFzdCkge1xuICAgIGxldCBzdHJpbmcgPSBgICAgICBcIiR7dGhpcy5uYW1lfVwiOiBcIiR7dGhpcy5zZW12ZXJ9XCIgLT4gXCIke3RoaXMucmVsZWFzZVNlbXZlcn1cImA7XG5cbiAgICBpZiAoIWxhc3QpIHtcbiAgICAgIHN0cmluZyA9IGAke3N0cmluZ30sXFxuYDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lU2VtdmVyQW5kUmVsZWFzZVNlbXZlcihuYW1lLCBzZW12ZXIsIHJlbGVhc2VTZW12ZXIpIHtcbiAgICBsZXQgc2VtdmVyRGlmZiA9IG51bGw7XG5cbiAgICBpZiAoc2VtdmVyICE9PSByZWxlYXNlU2VtdmVyKSB7XG4gICAgICBzZW12ZXJEaWZmID0gbmV3IFNlbXZlckRpZmYobmFtZSwgc2VtdmVyLCByZWxlYXNlU2VtdmVyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2VtdmVyRGlmZjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNlbXZlckRpZmYiLCJuYW1lIiwic2VtdmVyIiwicmVsZWFzZVNlbXZlciIsImdldE5hbWUiLCJnZXRTZW12ZXIiLCJnZXRSZWxlYXNlU2VtdmVyIiwic2F2ZSIsInBhY2thZ2VKU09OIiwiZ2V0U3BlY2lmaWVyIiwic3BlY2lmaWVyIiwiYXNTdHJpbmciLCJsYXN0Iiwic3RyaW5nIiwiZnJvbU5hbWVTZW12ZXJBbmRSZWxlYXNlU2VtdmVyIiwic2VtdmVyRGlmZiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBRUE7OztlQUFxQkE7OztBQUFOLE1BQU1BO0lBQ25CLFlBQVlDLElBQUksRUFBRUMsTUFBTSxFQUFFQyxhQUFhLENBQUU7UUFDdkMsSUFBSSxDQUFDRixJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxhQUFhLEdBQUdBO0lBQ3ZCO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0gsSUFBSTtJQUNsQjtJQUVBSSxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUNILE1BQU07SUFDcEI7SUFFQUksbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDSCxhQUFhO0lBQzNCO0lBRUFJLEtBQUtDLFdBQVcsRUFBRTtRQUNoQixNQUFNTixTQUFTLElBQUksQ0FBQ0MsYUFBYTtRQUVqQ0ssV0FBVyxDQUFDLElBQUksQ0FBQ1AsSUFBSSxDQUFDLEdBQUdDO0lBQzNCO0lBRUFPLGVBQWU7UUFDYixNQUFNQyxZQUFZLEdBQUcsSUFBSSxDQUFDVCxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQ0UsYUFBYSxFQUFFO1FBRXRELE9BQU9PO0lBQ1Q7SUFFQUMsU0FBU0MsSUFBSSxFQUFFO1FBQ2IsSUFBSUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUNaLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQ0MsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUUvRSxJQUFJLENBQUNTLE1BQU07WUFDVEMsU0FBUyxHQUFHQSxPQUFPLEdBQUcsQ0FBQztRQUN6QjtRQUVBLE9BQU9BO0lBQ1Q7SUFFQSxPQUFPQywrQkFBK0JiLElBQUksRUFBRUMsTUFBTSxFQUFFQyxhQUFhLEVBQUU7UUFDakUsSUFBSVksYUFBYTtRQUVqQixJQUFJYixXQUFXQyxlQUFlO1lBQzVCWSxhQUFhLElBQUlmLFdBQVdDLE1BQU1DLFFBQVFDO1FBQzVDO1FBRUEsT0FBT1k7SUFDVDtBQUNGIn0=
|
package/lib/diff/version.js
CHANGED
|
@@ -8,90 +8,48 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return VersionDiff;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
|
|
12
|
-
function _class_call_check(instance, Constructor) {
|
|
13
|
-
if (!(instance instanceof Constructor)) {
|
|
14
|
-
throw new TypeError("Cannot call a class as a function");
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
function _defineProperties(target, props) {
|
|
18
|
-
for(var i = 0; i < props.length; i++){
|
|
19
|
-
var descriptor = props[i];
|
|
20
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
21
|
-
descriptor.configurable = true;
|
|
22
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
23
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
27
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
28
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
29
|
-
return Constructor;
|
|
30
|
-
}
|
|
11
|
+
const _version = /*#__PURE__*/ _interop_require_default(require("../version"));
|
|
31
12
|
function _interop_require_default(obj) {
|
|
32
13
|
return obj && obj.__esModule ? obj : {
|
|
33
14
|
default: obj
|
|
34
15
|
};
|
|
35
16
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
_class_call_check(this, VersionDiff);
|
|
17
|
+
class VersionDiff {
|
|
18
|
+
constructor(version, releaseVersion){
|
|
39
19
|
this.version = version;
|
|
40
20
|
this.releaseVersion = releaseVersion;
|
|
41
21
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
if (this.version !== null) {
|
|
48
|
-
var versionEqualToReleaseVersion = this.version.isEqualTo(this.releaseVersion);
|
|
49
|
-
empty = versionEqualToReleaseVersion; ///
|
|
50
|
-
}
|
|
51
|
-
return empty;
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
key: "getVersion",
|
|
56
|
-
value: function getVersion() {
|
|
57
|
-
return this.version;
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
key: "getReleaseVersion",
|
|
62
|
-
value: function getReleaseVersion() {
|
|
63
|
-
return this.releaseVersion;
|
|
64
|
-
}
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
key: "save",
|
|
68
|
-
value: function save(packageJSON) {
|
|
69
|
-
if (this.version === null) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
var releaseVersionString = this.releaseVersion.asString(), version = releaseVersionString; ///
|
|
73
|
-
Object.assign(packageJSON, {
|
|
74
|
-
version: version
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
key: "asString",
|
|
80
|
-
value: function asString() {
|
|
81
|
-
var versionString = this.version.asString(), releaseVersionString = this.releaseVersion.asString(), string = '"'.concat(versionString, '" -> "').concat(releaseVersionString, '"');
|
|
82
|
-
return string;
|
|
83
|
-
}
|
|
22
|
+
isEmpty() {
|
|
23
|
+
let empty = true;
|
|
24
|
+
if (this.version !== null) {
|
|
25
|
+
const versionEqualToReleaseVersion = this.version.isEqualTo(this.releaseVersion);
|
|
26
|
+
empty = versionEqualToReleaseVersion; ///
|
|
84
27
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
28
|
+
return empty;
|
|
29
|
+
}
|
|
30
|
+
getVersion() {
|
|
31
|
+
return this.version;
|
|
32
|
+
}
|
|
33
|
+
getReleaseVersion() {
|
|
34
|
+
return this.releaseVersion;
|
|
35
|
+
}
|
|
36
|
+
save(packageJSON) {
|
|
37
|
+
if (this.version === null) {
|
|
38
|
+
return;
|
|
92
39
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
40
|
+
const releaseVersionString = this.releaseVersion.asString(), version = releaseVersionString; ///
|
|
41
|
+
Object.assign(packageJSON, {
|
|
42
|
+
version
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
asString() {
|
|
46
|
+
const versionString = this.version.asString(), releaseVersionString = this.releaseVersion.asString(), string = `"${versionString}" -> "${releaseVersionString}"`;
|
|
47
|
+
return string;
|
|
48
|
+
}
|
|
49
|
+
static fromVersionStringAndReleaseVersion(versionString, releaseVersion) {
|
|
50
|
+
const version = _version.default.fromVersionString(versionString), versionDiff = new VersionDiff(version, releaseVersion);
|
|
51
|
+
return versionDiff;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
96
54
|
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3ZlcnNpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBWZXJzaW9uIGZyb20gXCIuLi92ZXJzaW9uXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlcnNpb25EaWZmIHtcbiAgY29uc3RydWN0b3IodmVyc2lvbiwgcmVsZWFzZVZlcnNpb24pIHtcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIHRoaXMucmVsZWFzZVZlcnNpb24gPSByZWxlYXNlVmVyc2lvbjtcbiAgfVxuXG4gIGlzRW1wdHkoKSB7XG4gICAgbGV0IGVtcHR5ID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLnZlcnNpb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZlcnNpb25FcXVhbFRvUmVsZWFzZVZlcnNpb24gPSB0aGlzLnZlcnNpb24uaXNFcXVhbFRvKHRoaXMucmVsZWFzZVZlcnNpb24pO1xuXG4gICAgICBlbXB0eSA9IHZlcnNpb25FcXVhbFRvUmVsZWFzZVZlcnNpb247IC8vL1xuICAgIH1cblxuICAgIHJldHVybiBlbXB0eTtcbiAgfVxuXG4gIGdldFZlcnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudmVyc2lvbjtcbiAgfVxuXG4gIGdldFJlbGVhc2VWZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnJlbGVhc2VWZXJzaW9uO1xuICB9XG5cbiAgc2F2ZShwYWNrYWdlSlNPTikge1xuICAgIGlmICh0aGlzLnZlcnNpb24gPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWxlYXNlVmVyc2lvblN0cmluZyA9IHRoaXMucmVsZWFzZVZlcnNpb24uYXNTdHJpbmcoKSxcbiAgICAgICAgICB2ZXJzaW9uID0gcmVsZWFzZVZlcnNpb25TdHJpbmc7IC8vL1xuXG4gICAgT2JqZWN0LmFzc2lnbihwYWNrYWdlSlNPTiwge1xuICAgICAgdmVyc2lvblxuICAgIH0pO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgY29uc3QgdmVyc2lvblN0cmluZyA9IHRoaXMudmVyc2lvbi5hc1N0cmluZygpLFxuICAgICAgICAgIHJlbGVhc2VWZXJzaW9uU3RyaW5nID0gdGhpcy5yZWxlYXNlVmVyc2lvbi5hc1N0cmluZygpLFxuICAgICAgICAgIHN0cmluZyA9IGBcIiR7dmVyc2lvblN0cmluZ31cIiAtPiBcIiR7cmVsZWFzZVZlcnNpb25TdHJpbmd9XCJgO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmVyc2lvblN0cmluZ0FuZFJlbGVhc2VWZXJzaW9uKHZlcnNpb25TdHJpbmcsIHJlbGVhc2VWZXJzaW9uKSB7XG4gICAgY29uc3QgdmVyc2lvbiA9IFZlcnNpb24uZnJvbVZlcnNpb25TdHJpbmcodmVyc2lvblN0cmluZyksXG4gICAgICAgICAgdmVyc2lvbkRpZmYgPSBuZXcgVmVyc2lvbkRpZmYodmVyc2lvbiwgcmVsZWFzZVZlcnNpb24pO1xuXG4gICAgcmV0dXJuIHZlcnNpb25EaWZmO1xuICB9XG59XG4iXSwibmFtZXMiOlsiVmVyc2lvbkRpZmYiLCJ2ZXJzaW9uIiwicmVsZWFzZVZlcnNpb24iLCJpc0VtcHR5IiwiZW1wdHkiLCJ2ZXJzaW9uRXF1YWxUb1JlbGVhc2VWZXJzaW9uIiwiaXNFcXVhbFRvIiwiZ2V0VmVyc2lvbiIsImdldFJlbGVhc2VWZXJzaW9uIiwic2F2ZSIsInBhY2thZ2VKU09OIiwicmVsZWFzZVZlcnNpb25TdHJpbmciLCJhc1N0cmluZyIsIk9iamVjdCIsImFzc2lnbiIsInZlcnNpb25TdHJpbmciLCJzdHJpbmciLCJmcm9tVmVyc2lvblN0cmluZ0FuZFJlbGVhc2VWZXJzaW9uIiwiVmVyc2lvbiIsImZyb21WZXJzaW9uU3RyaW5nIiwidmVyc2lvbkRpZmYiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBcUJBOzs7Z0VBRkQ7Ozs7OztBQUVMLE1BQU1BO0lBQ25CLFlBQVlDLE9BQU8sRUFBRUMsY0FBYyxDQUFFO1FBQ25DLElBQUksQ0FBQ0QsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsY0FBYyxHQUFHQTtJQUN4QjtJQUVBQyxVQUFVO1FBQ1IsSUFBSUMsUUFBUTtRQUVaLElBQUksSUFBSSxDQUFDSCxPQUFPLEtBQUssTUFBTTtZQUN6QixNQUFNSSwrQkFBK0IsSUFBSSxDQUFDSixPQUFPLENBQUNLLFNBQVMsQ0FBQyxJQUFJLENBQUNKLGNBQWM7WUFFL0VFLFFBQVFDLDhCQUE4QixHQUFHO1FBQzNDO1FBRUEsT0FBT0Q7SUFDVDtJQUVBRyxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUNOLE9BQU87SUFDckI7SUFFQU8sb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDTixjQUFjO0lBQzVCO0lBRUFPLEtBQUtDLFdBQVcsRUFBRTtRQUNoQixJQUFJLElBQUksQ0FBQ1QsT0FBTyxLQUFLLE1BQU07WUFDekI7UUFDRjtRQUVBLE1BQU1VLHVCQUF1QixJQUFJLENBQUNULGNBQWMsQ0FBQ1UsUUFBUSxJQUNuRFgsVUFBVVUsc0JBQXNCLEdBQUc7UUFFekNFLE9BQU9DLE1BQU0sQ0FBQ0osYUFBYTtZQUN6QlQ7UUFDRjtJQUNGO0lBRUFXLFdBQVc7UUFDVCxNQUFNRyxnQkFBZ0IsSUFBSSxDQUFDZCxPQUFPLENBQUNXLFFBQVEsSUFDckNELHVCQUF1QixJQUFJLENBQUNULGNBQWMsQ0FBQ1UsUUFBUSxJQUNuREksU0FBUyxDQUFDLENBQUMsRUFBRUQsY0FBYyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDLENBQUM7UUFFaEUsT0FBT0s7SUFDVDtJQUVBLE9BQU9DLG1DQUFtQ0YsYUFBYSxFQUFFYixjQUFjLEVBQUU7UUFDdkUsTUFBTUQsVUFBVWlCLGdCQUFPLENBQUNDLGlCQUFpQixDQUFDSixnQkFDcENLLGNBQWMsSUFBSXBCLFlBQVlDLFNBQVNDO1FBRTdDLE9BQU9rQjtJQUNUO0FBQ0YifQ==
|
package/lib/diff.js
CHANGED
|
@@ -8,212 +8,122 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return Diff;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
function _class_call_check(instance, Constructor) {
|
|
16
|
-
if (!(instance instanceof Constructor)) {
|
|
17
|
-
throw new TypeError("Cannot call a class as a function");
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
function _defineProperties(target, props) {
|
|
21
|
-
for(var i = 0; i < props.length; i++){
|
|
22
|
-
var descriptor = props[i];
|
|
23
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
24
|
-
descriptor.configurable = true;
|
|
25
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
26
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
30
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
31
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
32
|
-
return Constructor;
|
|
33
|
-
}
|
|
11
|
+
const _map = /*#__PURE__*/ _interop_require_default(require("./diff/map"));
|
|
12
|
+
const _version = /*#__PURE__*/ _interop_require_default(require("./diff/version"));
|
|
13
|
+
const _constants = require("./constants");
|
|
14
|
+
const _packageJSON = require("./utilities/packageJSON");
|
|
34
15
|
function _interop_require_default(obj) {
|
|
35
16
|
return obj && obj.__esModule ? obj : {
|
|
36
17
|
default: obj
|
|
37
18
|
};
|
|
38
19
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
_class_call_check(this, Diff);
|
|
20
|
+
class Diff {
|
|
21
|
+
constructor(release, versionDiff, dependencyMapDiff, devDependencyMapDiff){
|
|
42
22
|
this.release = release;
|
|
43
23
|
this.versionDiff = versionDiff;
|
|
44
24
|
this.dependencyMapDiff = dependencyMapDiff;
|
|
45
25
|
this.devDependencyMapDiff = devDependencyMapDiff;
|
|
46
26
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
key: "getDevDependencyNames",
|
|
92
|
-
value: function getDevDependencyNames() {
|
|
93
|
-
return this.release.getDevDependencyNames();
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
key: "isVersionDiffEmpty",
|
|
98
|
-
value: function isVersionDiffEmpty() {
|
|
99
|
-
return this.versionDiff.isEmpty();
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
key: "isDependencyMapDiffEmpty",
|
|
104
|
-
value: function isDependencyMapDiffEmpty() {
|
|
105
|
-
return this.dependencyMapDiff.isEmpty();
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
key: "isDevDependencyMapDiffEmpty",
|
|
110
|
-
value: function isDevDependencyMapDiffEmpty() {
|
|
111
|
-
return this.devDependencyMapDiff.isEmpty();
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
key: "someDevDependencySemverDiff",
|
|
116
|
-
value: function someDevDependencySemverDiff(callback) {
|
|
117
|
-
return this.devDependencyMapDiff.someSemverDiff(callback);
|
|
118
|
-
} ///
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
key: "save",
|
|
122
|
-
value: function save() {
|
|
123
|
-
var success = false;
|
|
124
|
-
var subDirectoryPath = this.getSubDirectoryPath(), packageJSON = (0, _packageJSON.readPackageJSONFile)(subDirectoryPath);
|
|
125
|
-
if (packageJSON !== null) {
|
|
126
|
-
this.versionDiff.save(packageJSON);
|
|
127
|
-
this.dependencyMapDiff.save(packageJSON, _constants.DEPENDENCIES);
|
|
128
|
-
this.devDependencyMapDiff.save(packageJSON, _constants.DEV_DEPENDENCIES);
|
|
129
|
-
success = (0, _packageJSON.writePackageJSONFile)(subDirectoryPath, packageJSON);
|
|
130
|
-
}
|
|
131
|
-
return success;
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
key: "poll",
|
|
136
|
-
value: function poll(quietly, callback) {
|
|
137
|
-
var specifiers = [];
|
|
138
|
-
this.dependencyMapDiff.getSpecifiers(specifiers);
|
|
139
|
-
this.devDependencyMapDiff.getSpecifiers(specifiers);
|
|
140
|
-
this.release.poll(specifiers, quietly, callback);
|
|
141
|
-
}
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
key: "git",
|
|
145
|
-
value: function git(quietly, callback) {
|
|
146
|
-
this.release.git(quietly, callback);
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
key: "install",
|
|
151
|
-
value: function install(quietly, callback) {
|
|
152
|
-
this.release.install(quietly, callback);
|
|
153
|
-
}
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
key: "build",
|
|
157
|
-
value: function build(quietly, callback) {
|
|
158
|
-
this.release.build(quietly, callback);
|
|
159
|
-
}
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
key: "publish",
|
|
163
|
-
value: function publish(quietly, callback) {
|
|
164
|
-
this.release.publish(quietly, callback);
|
|
165
|
-
}
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
key: "removeDependency",
|
|
169
|
-
value: function removeDependency(name) {
|
|
170
|
-
this.dependencyMapDiff.removeSemverDiff(name);
|
|
171
|
-
}
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
key: "removeDevDependency",
|
|
175
|
-
value: function removeDevDependency(name) {
|
|
176
|
-
this.devDependencyMapDiff.removeSemverDiff(name);
|
|
177
|
-
}
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
key: "asString",
|
|
181
|
-
value: function asString() {
|
|
182
|
-
var string = "";
|
|
183
|
-
var name = this.getName(), subDirectoryPath = this.getSubDirectoryPath();
|
|
184
|
-
string += name === null ? ' "'.concat(subDirectoryPath, '":\n') : ' "'.concat(subDirectoryPath, '" ("').concat(name, '"):\n');
|
|
185
|
-
var versionDiffEmpty = this.isVersionDiffEmpty(), dependencyMapDiffEmpty = this.isDependencyMapDiffEmpty(), devDependencyMapDiffEmpty = this.isDevDependencyMapDiffEmpty();
|
|
186
|
-
if (!versionDiffEmpty) {
|
|
187
|
-
var versionDiffString = this.versionDiff.asString();
|
|
188
|
-
string += '\n "version": '.concat(versionDiffString, ",");
|
|
189
|
-
}
|
|
190
|
-
if (!dependencyMapDiffEmpty) {
|
|
191
|
-
var dependencyMapDiffString = this.dependencyMapDiff.asString();
|
|
192
|
-
string += '\n "dependencies": '.concat(dependencyMapDiffString, ",");
|
|
193
|
-
}
|
|
194
|
-
if (!devDependencyMapDiffEmpty) {
|
|
195
|
-
var devDependencyMapDiffString = this.devDependencyMapDiff.asString();
|
|
196
|
-
string += '\n "devDependencies": '.concat(devDependencyMapDiffString, ",");
|
|
197
|
-
}
|
|
198
|
-
string = string.replace(/,$/, "\n");
|
|
199
|
-
return string;
|
|
200
|
-
}
|
|
27
|
+
getRelease() {
|
|
28
|
+
return this.release;
|
|
29
|
+
}
|
|
30
|
+
getVersionDiff() {
|
|
31
|
+
return this.versionDiff;
|
|
32
|
+
}
|
|
33
|
+
getDependencyMapDiff() {
|
|
34
|
+
return this.dependencyMapDiff;
|
|
35
|
+
}
|
|
36
|
+
getDevDependencyMapDiff() {
|
|
37
|
+
return this.devDependencyMapDiff;
|
|
38
|
+
}
|
|
39
|
+
getName() {
|
|
40
|
+
return this.release.getName();
|
|
41
|
+
}
|
|
42
|
+
isPublishable() {
|
|
43
|
+
return this.release.isPublishable();
|
|
44
|
+
}
|
|
45
|
+
getSubDirectoryPath() {
|
|
46
|
+
return this.release.getSubDirectoryPath();
|
|
47
|
+
}
|
|
48
|
+
getDevDependencyNames() {
|
|
49
|
+
return this.release.getDevDependencyNames();
|
|
50
|
+
}
|
|
51
|
+
isVersionDiffEmpty() {
|
|
52
|
+
return this.versionDiff.isEmpty();
|
|
53
|
+
}
|
|
54
|
+
isDependencyMapDiffEmpty() {
|
|
55
|
+
return this.dependencyMapDiff.isEmpty();
|
|
56
|
+
}
|
|
57
|
+
isDevDependencyMapDiffEmpty() {
|
|
58
|
+
return this.devDependencyMapDiff.isEmpty();
|
|
59
|
+
}
|
|
60
|
+
someDevDependencySemverDiff(callback) {
|
|
61
|
+
return this.devDependencyMapDiff.someSemverDiff(callback);
|
|
62
|
+
}
|
|
63
|
+
save() {
|
|
64
|
+
let success = false;
|
|
65
|
+
const subDirectoryPath = this.getSubDirectoryPath(), packageJSON = (0, _packageJSON.readPackageJSONFile)(subDirectoryPath);
|
|
66
|
+
if (packageJSON !== null) {
|
|
67
|
+
this.versionDiff.save(packageJSON);
|
|
68
|
+
this.dependencyMapDiff.save(packageJSON, _constants.DEPENDENCIES);
|
|
69
|
+
this.devDependencyMapDiff.save(packageJSON, _constants.DEV_DEPENDENCIES);
|
|
70
|
+
success = (0, _packageJSON.writePackageJSONFile)(subDirectoryPath, packageJSON);
|
|
201
71
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
72
|
+
return success;
|
|
73
|
+
}
|
|
74
|
+
poll(quietly, callback) {
|
|
75
|
+
const specifiers = [];
|
|
76
|
+
this.dependencyMapDiff.getSpecifiers(specifiers);
|
|
77
|
+
this.devDependencyMapDiff.getSpecifiers(specifiers);
|
|
78
|
+
this.release.poll(specifiers, quietly, callback);
|
|
79
|
+
}
|
|
80
|
+
git(quietly, callback) {
|
|
81
|
+
this.release.git(quietly, callback);
|
|
82
|
+
}
|
|
83
|
+
install(quietly, callback) {
|
|
84
|
+
this.release.install(quietly, callback);
|
|
85
|
+
}
|
|
86
|
+
build(quietly, callback) {
|
|
87
|
+
this.release.build(quietly, callback);
|
|
88
|
+
}
|
|
89
|
+
publish(quietly, callback) {
|
|
90
|
+
this.release.publish(quietly, callback);
|
|
91
|
+
}
|
|
92
|
+
removeDependency(name) {
|
|
93
|
+
this.dependencyMapDiff.removeSemverDiff(name);
|
|
94
|
+
}
|
|
95
|
+
removeDevDependency(name) {
|
|
96
|
+
this.devDependencyMapDiff.removeSemverDiff(name);
|
|
97
|
+
}
|
|
98
|
+
asString() {
|
|
99
|
+
let string = ``;
|
|
100
|
+
const name = this.getName(), subDirectoryPath = this.getSubDirectoryPath();
|
|
101
|
+
string += name === null ? ` "${subDirectoryPath}":\n` : ` "${subDirectoryPath}" ("${name}"):\n`;
|
|
102
|
+
const versionDiffEmpty = this.isVersionDiffEmpty(), dependencyMapDiffEmpty = this.isDependencyMapDiffEmpty(), devDependencyMapDiffEmpty = this.isDevDependencyMapDiffEmpty();
|
|
103
|
+
if (!versionDiffEmpty) {
|
|
104
|
+
const versionDiffString = this.versionDiff.asString();
|
|
105
|
+
string += `\n "version": ${versionDiffString},`;
|
|
106
|
+
}
|
|
107
|
+
if (!dependencyMapDiffEmpty) {
|
|
108
|
+
const dependencyMapDiffString = this.dependencyMapDiff.asString();
|
|
109
|
+
string += `\n "dependencies": ${dependencyMapDiffString},`;
|
|
214
110
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
}
|
|
111
|
+
if (!devDependencyMapDiffEmpty) {
|
|
112
|
+
const devDependencyMapDiffString = this.devDependencyMapDiff.asString();
|
|
113
|
+
string += `\n "devDependencies": ${devDependencyMapDiffString},`;
|
|
114
|
+
}
|
|
115
|
+
string = string.replace(/,$/, "\n");
|
|
116
|
+
return string;
|
|
117
|
+
}
|
|
118
|
+
static fromRelease(release) {
|
|
119
|
+
let diff = null;
|
|
120
|
+
const subDirectoryPath = release.getSubDirectoryPath(), packageJSON = (0, _packageJSON.readPackageJSONFile)(subDirectoryPath);
|
|
121
|
+
if (packageJSON !== null) {
|
|
122
|
+
const { version = null, dependencies = {}, devDependencies = {} } = packageJSON, versionString = version, dependencyMap = dependencies, devDependencyMap = devDependencies, releaseVersion = release.getVersion(), releaseDependencyMap = release.getDependencyMap(), releaseDevDependencyMap = release.getDevDependencyMap(), versionDiff = _version.default.fromVersionStringAndReleaseVersion(versionString, releaseVersion), dependencyMapDiff = _map.default.fromMapAndReleaseMap(dependencyMap, releaseDependencyMap), devDependencyMapDiff = _map.default.fromMapAndReleaseMap(devDependencyMap, releaseDevDependencyMap);
|
|
123
|
+
diff = new Diff(release, versionDiff, dependencyMapDiff, devDependencyMapDiff);
|
|
124
|
+
}
|
|
125
|
+
return diff;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
218
128
|
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kaWZmLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWFwRGlmZiBmcm9tIFwiLi9kaWZmL21hcFwiO1xuaW1wb3J0IFZlcnNpb25EaWZmIGZyb20gXCIuL2RpZmYvdmVyc2lvblwiO1xuXG5pbXBvcnQgeyBERVBFTkRFTkNJRVMsIERFVl9ERVBFTkRFTkNJRVMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHJlYWRQYWNrYWdlSlNPTkZpbGUsIHdyaXRlUGFja2FnZUpTT05GaWxlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BhY2thZ2VKU09OXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERpZmYge1xuICBjb25zdHJ1Y3RvcihyZWxlYXNlLCB2ZXJzaW9uRGlmZiwgZGVwZW5kZW5jeU1hcERpZmYsIGRldkRlcGVuZGVuY3lNYXBEaWZmKSB7XG4gICAgdGhpcy5yZWxlYXNlID0gcmVsZWFzZTtcbiAgICB0aGlzLnZlcnNpb25EaWZmID0gdmVyc2lvbkRpZmY7XG4gICAgdGhpcy5kZXBlbmRlbmN5TWFwRGlmZiA9IGRlcGVuZGVuY3lNYXBEaWZmO1xuICAgIHRoaXMuZGV2RGVwZW5kZW5jeU1hcERpZmYgPSBkZXZEZXBlbmRlbmN5TWFwRGlmZjtcbiAgfVxuXG4gIGdldFJlbGVhc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVsZWFzZTtcbiAgfVxuXG4gIGdldFZlcnNpb25EaWZmKCkge1xuICAgIHJldHVybiB0aGlzLnZlcnNpb25EaWZmO1xuICB9XG5cbiAgZ2V0RGVwZW5kZW5jeU1hcERpZmYoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVwZW5kZW5jeU1hcERpZmY7XG4gIH1cblxuICBnZXREZXZEZXBlbmRlbmN5TWFwRGlmZigpIHtcbiAgICByZXR1cm4gdGhpcy5kZXZEZXBlbmRlbmN5TWFwRGlmZjtcbiAgfVxuXG4gIGdldE5hbWUoKSB7IHJldHVybiB0aGlzLnJlbGVhc2UuZ2V0TmFtZSgpOyB9XG5cbiAgaXNQdWJsaXNoYWJsZSgpIHsgcmV0dXJuIHRoaXMucmVsZWFzZS5pc1B1Ymxpc2hhYmxlKCk7IH1cblxuICBnZXRTdWJEaXJlY3RvcnlQYXRoKCkgeyByZXR1cm4gdGhpcy5yZWxlYXNlLmdldFN1YkRpcmVjdG9yeVBhdGgoKTsgfVxuXG4gIGdldERldkRlcGVuZGVuY3lOYW1lcygpIHsgcmV0dXJuIHRoaXMucmVsZWFzZS5nZXREZXZEZXBlbmRlbmN5TmFtZXMoKTsgfVxuXG4gIGlzVmVyc2lvbkRpZmZFbXB0eSgpIHsgcmV0dXJuIHRoaXMudmVyc2lvbkRpZmYuaXNFbXB0eSgpOyB9XG5cbiAgaXNEZXBlbmRlbmN5TWFwRGlmZkVtcHR5KCkgeyByZXR1cm4gdGhpcy5kZXBlbmRlbmN5TWFwRGlmZi5pc0VtcHR5KCk7IH1cblxuICBpc0RldkRlcGVuZGVuY3lNYXBEaWZmRW1wdHkoKSB7IHJldHVybiB0aGlzLmRldkRlcGVuZGVuY3lNYXBEaWZmLmlzRW1wdHkoKTsgfVxuXG4gIHNvbWVEZXZEZXBlbmRlbmN5U2VtdmVyRGlmZihjYWxsYmFjaykgeyByZXR1cm4gdGhpcy5kZXZEZXBlbmRlbmN5TWFwRGlmZi5zb21lU2VtdmVyRGlmZihjYWxsYmFjayk7IH0gLy8vXG5cbiAgc2F2ZSgpIHtcbiAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc3ViRGlyZWN0b3J5UGF0aCA9IHRoaXMuZ2V0U3ViRGlyZWN0b3J5UGF0aCgpLFxuICAgICAgICAgIHBhY2thZ2VKU09OID0gcmVhZFBhY2thZ2VKU09ORmlsZShzdWJEaXJlY3RvcnlQYXRoKTtcblxuICAgIGlmIChwYWNrYWdlSlNPTiAhPT0gbnVsbCkge1xuICAgICAgdGhpcy52ZXJzaW9uRGlmZi5zYXZlKHBhY2thZ2VKU09OKTtcblxuICAgICAgdGhpcy5kZXBlbmRlbmN5TWFwRGlmZi5zYXZlKHBhY2thZ2VKU09OLCBERVBFTkRFTkNJRVMpO1xuXG4gICAgICB0aGlzLmRldkRlcGVuZGVuY3lNYXBEaWZmLnNhdmUocGFja2FnZUpTT04sIERFVl9ERVBFTkRFTkNJRVMpO1xuXG4gICAgICBzdWNjZXNzID0gd3JpdGVQYWNrYWdlSlNPTkZpbGUoc3ViRGlyZWN0b3J5UGF0aCwgcGFja2FnZUpTT04pO1xuICAgIH1cblxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9XG5cbiAgcG9sbChxdWlldGx5LCBjYWxsYmFjaykge1xuICAgIGNvbnN0IHNwZWNpZmllcnMgPSBbXTtcblxuICAgIHRoaXMuZGVwZW5kZW5jeU1hcERpZmYuZ2V0U3BlY2lmaWVycyhzcGVjaWZpZXJzKTtcblxuICAgIHRoaXMuZGV2RGVwZW5kZW5jeU1hcERpZmYuZ2V0U3BlY2lmaWVycyhzcGVjaWZpZXJzKTtcblxuICAgIHRoaXMucmVsZWFzZS5wb2xsKHNwZWNpZmllcnMsIHF1aWV0bHksIGNhbGxiYWNrKTtcbiAgfVxuXG4gIGdpdChxdWlldGx5LCBjYWxsYmFjaykgeyB0aGlzLnJlbGVhc2UuZ2l0KHF1aWV0bHksIGNhbGxiYWNrKTsgfVxuXG4gIGluc3RhbGwocXVpZXRseSwgY2FsbGJhY2spIHsgdGhpcy5yZWxlYXNlLmluc3RhbGwocXVpZXRseSwgY2FsbGJhY2spOyB9XG5cbiAgYnVpbGQocXVpZXRseSwgY2FsbGJhY2spIHsgdGhpcy5yZWxlYXNlLmJ1aWxkKHF1aWV0bHksIGNhbGxiYWNrKTsgfVxuXG4gIHB1Ymxpc2gocXVpZXRseSwgY2FsbGJhY2spIHsgdGhpcy5yZWxlYXNlLnB1Ymxpc2gocXVpZXRseSwgY2FsbGJhY2spOyB9XG5cbiAgcmVtb3ZlRGVwZW5kZW5jeShuYW1lKSB7IHRoaXMuZGVwZW5kZW5jeU1hcERpZmYucmVtb3ZlU2VtdmVyRGlmZihuYW1lKTsgfVxuXG4gIHJlbW92ZURldkRlcGVuZGVuY3kobmFtZSkgeyB0aGlzLmRldkRlcGVuZGVuY3lNYXBEaWZmLnJlbW92ZVNlbXZlckRpZmYobmFtZSk7IH1cblxuICBhc1N0cmluZygpIHtcbiAgICBsZXQgc3RyaW5nID0gYGA7XG5cbiAgICBjb25zdCBuYW1lID0gdGhpcy5nZXROYW1lKCksXG4gICAgICAgICAgc3ViRGlyZWN0b3J5UGF0aCA9IHRoaXMuZ2V0U3ViRGlyZWN0b3J5UGF0aCgpO1xuXG4gICAgc3RyaW5nICs9IChuYW1lID09PSBudWxsKSA/XG4gICAgICAgICAgICBgIFwiJHtzdWJEaXJlY3RvcnlQYXRofVwiOlxcbmAgOlxuICAgICAgICAgICAgICBgIFwiJHtzdWJEaXJlY3RvcnlQYXRofVwiIChcIiR7bmFtZX1cIik6XFxuYDtcblxuICAgIGNvbnN0IHZlcnNpb25EaWZmRW1wdHkgPSB0aGlzLmlzVmVyc2lvbkRpZmZFbXB0eSgpLFxuICAgICAgICAgIGRlcGVuZGVuY3lNYXBEaWZmRW1wdHkgPSB0aGlzLmlzRGVwZW5kZW5jeU1hcERpZmZFbXB0eSgpLFxuICAgICAgICAgIGRldkRlcGVuZGVuY3lNYXBEaWZmRW1wdHkgPSB0aGlzLmlzRGV2RGVwZW5kZW5jeU1hcERpZmZFbXB0eSgpO1xuXG4gICAgaWYgKCF2ZXJzaW9uRGlmZkVtcHR5KSB7XG4gICAgICBjb25zdCB2ZXJzaW9uRGlmZlN0cmluZyA9IHRoaXMudmVyc2lvbkRpZmYuYXNTdHJpbmcoKTtcblxuICAgICAgc3RyaW5nICs9IGBcXG4gICBcInZlcnNpb25cIjogJHt2ZXJzaW9uRGlmZlN0cmluZ30sYDtcbiAgICB9XG5cbiAgICBpZiAoIWRlcGVuZGVuY3lNYXBEaWZmRW1wdHkpIHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lNYXBEaWZmU3RyaW5nID0gdGhpcy5kZXBlbmRlbmN5TWFwRGlmZi5hc1N0cmluZygpO1xuXG4gICAgICBzdHJpbmcgKz0gYFxcbiAgIFwiZGVwZW5kZW5jaWVzXCI6ICR7ZGVwZW5kZW5jeU1hcERpZmZTdHJpbmd9LGA7XG4gICAgfVxuXG4gICAgaWYgKCFkZXZEZXBlbmRlbmN5TWFwRGlmZkVtcHR5KSB7XG4gICAgICBjb25zdCBkZXZEZXBlbmRlbmN5TWFwRGlmZlN0cmluZyA9IHRoaXMuZGV2RGVwZW5kZW5jeU1hcERpZmYuYXNTdHJpbmcoKTtcblxuICAgICAgc3RyaW5nICs9IGBcXG4gICBcImRldkRlcGVuZGVuY2llc1wiOiAke2RldkRlcGVuZGVuY3lNYXBEaWZmU3RyaW5nfSxgO1xuICAgIH1cblxuICAgIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKC8sJC8sIFwiXFxuXCIpO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUmVsZWFzZShyZWxlYXNlKSB7XG4gICAgbGV0IGRpZmYgPSBudWxsO1xuXG4gICAgY29uc3Qgc3ViRGlyZWN0b3J5UGF0aCA9IHJlbGVhc2UuZ2V0U3ViRGlyZWN0b3J5UGF0aCgpLFxuICAgICAgICAgIHBhY2thZ2VKU09OID0gcmVhZFBhY2thZ2VKU09ORmlsZShzdWJEaXJlY3RvcnlQYXRoKTtcblxuICAgIGlmIChwYWNrYWdlSlNPTiAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgeyB2ZXJzaW9uID0gbnVsbCwgZGVwZW5kZW5jaWVzID0ge30sIGRldkRlcGVuZGVuY2llcyA9IHt9IH0gPSBwYWNrYWdlSlNPTixcbiAgICAgICAgICAgIHZlcnNpb25TdHJpbmcgPSB2ZXJzaW9uLCAgLy8vXG4gICAgICAgICAgICBkZXBlbmRlbmN5TWFwID0gZGVwZW5kZW5jaWVzLCAvLy9cbiAgICAgICAgICAgIGRldkRlcGVuZGVuY3lNYXAgPSBkZXZEZXBlbmRlbmNpZXMsIC8vL1xuICAgICAgICAgICAgcmVsZWFzZVZlcnNpb24gPSByZWxlYXNlLmdldFZlcnNpb24oKSxcbiAgICAgICAgICAgIHJlbGVhc2VEZXBlbmRlbmN5TWFwID0gcmVsZWFzZS5nZXREZXBlbmRlbmN5TWFwKCksXG4gICAgICAgICAgICByZWxlYXNlRGV2RGVwZW5kZW5jeU1hcCA9IHJlbGVhc2UuZ2V0RGV2RGVwZW5kZW5jeU1hcCgpLFxuICAgICAgICAgICAgdmVyc2lvbkRpZmYgPSBWZXJzaW9uRGlmZi5mcm9tVmVyc2lvblN0cmluZ0FuZFJlbGVhc2VWZXJzaW9uKHZlcnNpb25TdHJpbmcsIHJlbGVhc2VWZXJzaW9uKSxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lNYXBEaWZmID0gTWFwRGlmZi5mcm9tTWFwQW5kUmVsZWFzZU1hcChkZXBlbmRlbmN5TWFwLCByZWxlYXNlRGVwZW5kZW5jeU1hcCksXG4gICAgICAgICAgICBkZXZEZXBlbmRlbmN5TWFwRGlmZiA9IE1hcERpZmYuZnJvbU1hcEFuZFJlbGVhc2VNYXAoZGV2RGVwZW5kZW5jeU1hcCwgcmVsZWFzZURldkRlcGVuZGVuY3lNYXApO1xuXG4gICAgICBkaWZmID0gbmV3IERpZmYocmVsZWFzZSwgdmVyc2lvbkRpZmYsIGRlcGVuZGVuY3lNYXBEaWZmLCBkZXZEZXBlbmRlbmN5TWFwRGlmZik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpZmY7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJEaWZmIiwicmVsZWFzZSIsInZlcnNpb25EaWZmIiwiZGVwZW5kZW5jeU1hcERpZmYiLCJkZXZEZXBlbmRlbmN5TWFwRGlmZiIsImdldFJlbGVhc2UiLCJnZXRWZXJzaW9uRGlmZiIsImdldERlcGVuZGVuY3lNYXBEaWZmIiwiZ2V0RGV2RGVwZW5kZW5jeU1hcERpZmYiLCJnZXROYW1lIiwiaXNQdWJsaXNoYWJsZSIsImdldFN1YkRpcmVjdG9yeVBhdGgiLCJnZXREZXZEZXBlbmRlbmN5TmFtZXMiLCJpc1ZlcnNpb25EaWZmRW1wdHkiLCJpc0VtcHR5IiwiaXNEZXBlbmRlbmN5TWFwRGlmZkVtcHR5IiwiaXNEZXZEZXBlbmRlbmN5TWFwRGlmZkVtcHR5Iiwic29tZURldkRlcGVuZGVuY3lTZW12ZXJEaWZmIiwiY2FsbGJhY2siLCJzb21lU2VtdmVyRGlmZiIsInNhdmUiLCJzdWNjZXNzIiwic3ViRGlyZWN0b3J5UGF0aCIsInBhY2thZ2VKU09OIiwicmVhZFBhY2thZ2VKU09ORmlsZSIsIkRFUEVOREVOQ0lFUyIsIkRFVl9ERVBFTkRFTkNJRVMiLCJ3cml0ZVBhY2thZ2VKU09ORmlsZSIsInBvbGwiLCJxdWlldGx5Iiwic3BlY2lmaWVycyIsImdldFNwZWNpZmllcnMiLCJnaXQiLCJpbnN0YWxsIiwiYnVpbGQiLCJwdWJsaXNoIiwicmVtb3ZlRGVwZW5kZW5jeSIsIm5hbWUiLCJyZW1vdmVTZW12ZXJEaWZmIiwicmVtb3ZlRGV2RGVwZW5kZW5jeSIsImFzU3RyaW5nIiwic3RyaW5nIiwidmVyc2lvbkRpZmZFbXB0eSIsImRlcGVuZGVuY3lNYXBEaWZmRW1wdHkiLCJkZXZEZXBlbmRlbmN5TWFwRGlmZkVtcHR5IiwidmVyc2lvbkRpZmZTdHJpbmciLCJkZXBlbmRlbmN5TWFwRGlmZlN0cmluZyIsImRldkRlcGVuZGVuY3lNYXBEaWZmU3RyaW5nIiwicmVwbGFjZSIsImZyb21SZWxlYXNlIiwiZGlmZiIsInZlcnNpb24iLCJkZXBlbmRlbmNpZXMiLCJkZXZEZXBlbmRlbmNpZXMiLCJ2ZXJzaW9uU3RyaW5nIiwiZGVwZW5kZW5jeU1hcCIsImRldkRlcGVuZGVuY3lNYXAiLCJyZWxlYXNlVmVyc2lvbiIsImdldFZlcnNpb24iLCJyZWxlYXNlRGVwZW5kZW5jeU1hcCIsImdldERlcGVuZGVuY3lNYXAiLCJyZWxlYXNlRGV2RGVwZW5kZW5jeU1hcCIsImdldERldkRlcGVuZGVuY3lNYXAiLCJWZXJzaW9uRGlmZiIsImZyb21WZXJzaW9uU3RyaW5nQW5kUmVsZWFzZVZlcnNpb24iLCJNYXBEaWZmIiwiZnJvbU1hcEFuZFJlbGVhc2VNYXAiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBUXFCQTs7OzBEQU5EOzhEQUNJO3lCQUV1QjsyQkFDVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUzQyxJQUFBLEFBQU1BLHFCQUFOO2FBQU1BLEtBQ1BDLE9BQU8sRUFBRUMsV0FBVyxFQUFFQyxpQkFBaUIsRUFBRUMsb0JBQW9CO2dDQUR0REo7UUFFakIsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0MsaUJBQWlCLEdBQUdBO1FBQ3pCLElBQUksQ0FBQ0Msb0JBQW9CLEdBQUdBOztrQkFMWEo7O1lBUW5CSyxLQUFBQTttQkFB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
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kaWZmLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWFwRGlmZiBmcm9tIFwiLi9kaWZmL21hcFwiO1xuaW1wb3J0IFZlcnNpb25EaWZmIGZyb20gXCIuL2RpZmYvdmVyc2lvblwiO1xuXG5pbXBvcnQgeyBERVBFTkRFTkNJRVMsIERFVl9ERVBFTkRFTkNJRVMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHJlYWRQYWNrYWdlSlNPTkZpbGUsIHdyaXRlUGFja2FnZUpTT05GaWxlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BhY2thZ2VKU09OXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERpZmYge1xuICBjb25zdHJ1Y3RvcihyZWxlYXNlLCB2ZXJzaW9uRGlmZiwgZGVwZW5kZW5jeU1hcERpZmYsIGRldkRlcGVuZGVuY3lNYXBEaWZmKSB7XG4gICAgdGhpcy5yZWxlYXNlID0gcmVsZWFzZTtcbiAgICB0aGlzLnZlcnNpb25EaWZmID0gdmVyc2lvbkRpZmY7XG4gICAgdGhpcy5kZXBlbmRlbmN5TWFwRGlmZiA9IGRlcGVuZGVuY3lNYXBEaWZmO1xuICAgIHRoaXMuZGV2RGVwZW5kZW5jeU1hcERpZmYgPSBkZXZEZXBlbmRlbmN5TWFwRGlmZjtcbiAgfVxuXG4gIGdldFJlbGVhc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVsZWFzZTtcbiAgfVxuXG4gIGdldFZlcnNpb25EaWZmKCkge1xuICAgIHJldHVybiB0aGlzLnZlcnNpb25EaWZmO1xuICB9XG5cbiAgZ2V0RGVwZW5kZW5jeU1hcERpZmYoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVwZW5kZW5jeU1hcERpZmY7XG4gIH1cblxuICBnZXREZXZEZXBlbmRlbmN5TWFwRGlmZigpIHtcbiAgICByZXR1cm4gdGhpcy5kZXZEZXBlbmRlbmN5TWFwRGlmZjtcbiAgfVxuXG4gIGdldE5hbWUoKSB7IHJldHVybiB0aGlzLnJlbGVhc2UuZ2V0TmFtZSgpOyB9XG5cbiAgaXNQdWJsaXNoYWJsZSgpIHsgcmV0dXJuIHRoaXMucmVsZWFzZS5pc1B1Ymxpc2hhYmxlKCk7IH1cblxuICBnZXRTdWJEaXJlY3RvcnlQYXRoKCkgeyByZXR1cm4gdGhpcy5yZWxlYXNlLmdldFN1YkRpcmVjdG9yeVBhdGgoKTsgfVxuXG4gIGdldERldkRlcGVuZGVuY3lOYW1lcygpIHsgcmV0dXJuIHRoaXMucmVsZWFzZS5nZXREZXZEZXBlbmRlbmN5TmFtZXMoKTsgfVxuXG4gIGlzVmVyc2lvbkRpZmZFbXB0eSgpIHsgcmV0dXJuIHRoaXMudmVyc2lvbkRpZmYuaXNFbXB0eSgpOyB9XG5cbiAgaXNEZXBlbmRlbmN5TWFwRGlmZkVtcHR5KCkgeyByZXR1cm4gdGhpcy5kZXBlbmRlbmN5TWFwRGlmZi5pc0VtcHR5KCk7IH1cblxuICBpc0RldkRlcGVuZGVuY3lNYXBEaWZmRW1wdHkoKSB7IHJldHVybiB0aGlzLmRldkRlcGVuZGVuY3lNYXBEaWZmLmlzRW1wdHkoKTsgfVxuXG4gIHNvbWVEZXZEZXBlbmRlbmN5U2VtdmVyRGlmZihjYWxsYmFjaykgeyByZXR1cm4gdGhpcy5kZXZEZXBlbmRlbmN5TWFwRGlmZi5zb21lU2VtdmVyRGlmZihjYWxsYmFjayk7IH0gLy8vXG5cbiAgc2F2ZSgpIHtcbiAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc3ViRGlyZWN0b3J5UGF0aCA9IHRoaXMuZ2V0U3ViRGlyZWN0b3J5UGF0aCgpLFxuICAgICAgICAgIHBhY2thZ2VKU09OID0gcmVhZFBhY2thZ2VKU09ORmlsZShzdWJEaXJlY3RvcnlQYXRoKTtcblxuICAgIGlmIChwYWNrYWdlSlNPTiAhPT0gbnVsbCkge1xuICAgICAgdGhpcy52ZXJzaW9uRGlmZi5zYXZlKHBhY2thZ2VKU09OKTtcblxuICAgICAgdGhpcy5kZXBlbmRlbmN5TWFwRGlmZi5zYXZlKHBhY2thZ2VKU09OLCBERVBFTkRFTkNJRVMpO1xuXG4gICAgICB0aGlzLmRldkRlcGVuZGVuY3lNYXBEaWZmLnNhdmUocGFja2FnZUpTT04sIERFVl9ERVBFTkRFTkNJRVMpO1xuXG4gICAgICBzdWNjZXNzID0gd3JpdGVQYWNrYWdlSlNPTkZpbGUoc3ViRGlyZWN0b3J5UGF0aCwgcGFja2FnZUpTT04pO1xuICAgIH1cblxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9XG5cbiAgcG9sbChxdWlldGx5LCBjYWxsYmFjaykge1xuICAgIGNvbnN0IHNwZWNpZmllcnMgPSBbXTtcblxuICAgIHRoaXMuZGVwZW5kZW5jeU1hcERpZmYuZ2V0U3BlY2lmaWVycyhzcGVjaWZpZXJzKTtcblxuICAgIHRoaXMuZGV2RGVwZW5kZW5jeU1hcERpZmYuZ2V0U3BlY2lmaWVycyhzcGVjaWZpZXJzKTtcblxuICAgIHRoaXMucmVsZWFzZS5wb2xsKHNwZWNpZmllcnMsIHF1aWV0bHksIGNhbGxiYWNrKTtcbiAgfVxuXG4gIGdpdChxdWlldGx5LCBjYWxsYmFjaykgeyB0aGlzLnJlbGVhc2UuZ2l0KHF1aWV0bHksIGNhbGxiYWNrKTsgfVxuXG4gIGluc3RhbGwocXVpZXRseSwgY2FsbGJhY2spIHsgdGhpcy5yZWxlYXNlLmluc3RhbGwocXVpZXRseSwgY2FsbGJhY2spOyB9XG5cbiAgYnVpbGQocXVpZXRseSwgY2FsbGJhY2spIHsgdGhpcy5yZWxlYXNlLmJ1aWxkKHF1aWV0bHksIGNhbGxiYWNrKTsgfVxuXG4gIHB1Ymxpc2gocXVpZXRseSwgY2FsbGJhY2spIHsgdGhpcy5yZWxlYXNlLnB1Ymxpc2gocXVpZXRseSwgY2FsbGJhY2spOyB9XG5cbiAgcmVtb3ZlRGVwZW5kZW5jeShuYW1lKSB7IHRoaXMuZGVwZW5kZW5jeU1hcERpZmYucmVtb3ZlU2VtdmVyRGlmZihuYW1lKTsgfVxuXG4gIHJlbW92ZURldkRlcGVuZGVuY3kobmFtZSkgeyB0aGlzLmRldkRlcGVuZGVuY3lNYXBEaWZmLnJlbW92ZVNlbXZlckRpZmYobmFtZSk7IH1cblxuICBhc1N0cmluZygpIHtcbiAgICBsZXQgc3RyaW5nID0gYGA7XG5cbiAgICBjb25zdCBuYW1lID0gdGhpcy5nZXROYW1lKCksXG4gICAgICAgICAgc3ViRGlyZWN0b3J5UGF0aCA9IHRoaXMuZ2V0U3ViRGlyZWN0b3J5UGF0aCgpO1xuXG4gICAgc3RyaW5nICs9IChuYW1lID09PSBudWxsKSA/XG4gICAgICAgICAgICBgIFwiJHtzdWJEaXJlY3RvcnlQYXRofVwiOlxcbmAgOlxuICAgICAgICAgICAgICBgIFwiJHtzdWJEaXJlY3RvcnlQYXRofVwiIChcIiR7bmFtZX1cIik6XFxuYDtcblxuICAgIGNvbnN0IHZlcnNpb25EaWZmRW1wdHkgPSB0aGlzLmlzVmVyc2lvbkRpZmZFbXB0eSgpLFxuICAgICAgICAgIGRlcGVuZGVuY3lNYXBEaWZmRW1wdHkgPSB0aGlzLmlzRGVwZW5kZW5jeU1hcERpZmZFbXB0eSgpLFxuICAgICAgICAgIGRldkRlcGVuZGVuY3lNYXBEaWZmRW1wdHkgPSB0aGlzLmlzRGV2RGVwZW5kZW5jeU1hcERpZmZFbXB0eSgpO1xuXG4gICAgaWYgKCF2ZXJzaW9uRGlmZkVtcHR5KSB7XG4gICAgICBjb25zdCB2ZXJzaW9uRGlmZlN0cmluZyA9IHRoaXMudmVyc2lvbkRpZmYuYXNTdHJpbmcoKTtcblxuICAgICAgc3RyaW5nICs9IGBcXG4gICBcInZlcnNpb25cIjogJHt2ZXJzaW9uRGlmZlN0cmluZ30sYDtcbiAgICB9XG5cbiAgICBpZiAoIWRlcGVuZGVuY3lNYXBEaWZmRW1wdHkpIHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lNYXBEaWZmU3RyaW5nID0gdGhpcy5kZXBlbmRlbmN5TWFwRGlmZi5hc1N0cmluZygpO1xuXG4gICAgICBzdHJpbmcgKz0gYFxcbiAgIFwiZGVwZW5kZW5jaWVzXCI6ICR7ZGVwZW5kZW5jeU1hcERpZmZTdHJpbmd9LGA7XG4gICAgfVxuXG4gICAgaWYgKCFkZXZEZXBlbmRlbmN5TWFwRGlmZkVtcHR5KSB7XG4gICAgICBjb25zdCBkZXZEZXBlbmRlbmN5TWFwRGlmZlN0cmluZyA9IHRoaXMuZGV2RGVwZW5kZW5jeU1hcERpZmYuYXNTdHJpbmcoKTtcblxuICAgICAgc3RyaW5nICs9IGBcXG4gICBcImRldkRlcGVuZGVuY2llc1wiOiAke2RldkRlcGVuZGVuY3lNYXBEaWZmU3RyaW5nfSxgO1xuICAgIH1cblxuICAgIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKC8sJC8sIFwiXFxuXCIpO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUmVsZWFzZShyZWxlYXNlKSB7XG4gICAgbGV0IGRpZmYgPSBudWxsO1xuXG4gICAgY29uc3Qgc3ViRGlyZWN0b3J5UGF0aCA9IHJlbGVhc2UuZ2V0U3ViRGlyZWN0b3J5UGF0aCgpLFxuICAgICAgICAgIHBhY2thZ2VKU09OID0gcmVhZFBhY2thZ2VKU09ORmlsZShzdWJEaXJlY3RvcnlQYXRoKTtcblxuICAgIGlmIChwYWNrYWdlSlNPTiAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgeyB2ZXJzaW9uID0gbnVsbCwgZGVwZW5kZW5jaWVzID0ge30sIGRldkRlcGVuZGVuY2llcyA9IHt9IH0gPSBwYWNrYWdlSlNPTixcbiAgICAgICAgICAgIHZlcnNpb25TdHJpbmcgPSB2ZXJzaW9uLCAgLy8vXG4gICAgICAgICAgICBkZXBlbmRlbmN5TWFwID0gZGVwZW5kZW5jaWVzLCAvLy9cbiAgICAgICAgICAgIGRldkRlcGVuZGVuY3lNYXAgPSBkZXZEZXBlbmRlbmNpZXMsIC8vL1xuICAgICAgICAgICAgcmVsZWFzZVZlcnNpb24gPSByZWxlYXNlLmdldFZlcnNpb24oKSxcbiAgICAgICAgICAgIHJlbGVhc2VEZXBlbmRlbmN5TWFwID0gcmVsZWFzZS5nZXREZXBlbmRlbmN5TWFwKCksXG4gICAgICAgICAgICByZWxlYXNlRGV2RGVwZW5kZW5jeU1hcCA9IHJlbGVhc2UuZ2V0RGV2RGVwZW5kZW5jeU1hcCgpLFxuICAgICAgICAgICAgdmVyc2lvbkRpZmYgPSBWZXJzaW9uRGlmZi5mcm9tVmVyc2lvblN0cmluZ0FuZFJlbGVhc2VWZXJzaW9uKHZlcnNpb25TdHJpbmcsIHJlbGVhc2VWZXJzaW9uKSxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lNYXBEaWZmID0gTWFwRGlmZi5mcm9tTWFwQW5kUmVsZWFzZU1hcChkZXBlbmRlbmN5TWFwLCByZWxlYXNlRGVwZW5kZW5jeU1hcCksXG4gICAgICAgICAgICBkZXZEZXBlbmRlbmN5TWFwRGlmZiA9IE1hcERpZmYuZnJvbU1hcEFuZFJlbGVhc2VNYXAoZGV2RGVwZW5kZW5jeU1hcCwgcmVsZWFzZURldkRlcGVuZGVuY3lNYXApO1xuXG4gICAgICBkaWZmID0gbmV3IERpZmYocmVsZWFzZSwgdmVyc2lvbkRpZmYsIGRlcGVuZGVuY3lNYXBEaWZmLCBkZXZEZXBlbmRlbmN5TWFwRGlmZik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpZmY7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJEaWZmIiwicmVsZWFzZSIsInZlcnNpb25EaWZmIiwiZGVwZW5kZW5jeU1hcERpZmYiLCJkZXZEZXBlbmRlbmN5TWFwRGlmZiIsImdldFJlbGVhc2UiLCJnZXRWZXJzaW9uRGlmZiIsImdldERlcGVuZGVuY3lNYXBEaWZmIiwiZ2V0RGV2RGVwZW5kZW5jeU1hcERpZmYiLCJnZXROYW1lIiwiaXNQdWJsaXNoYWJsZSIsImdldFN1YkRpcmVjdG9yeVBhdGgiLCJnZXREZXZEZXBlbmRlbmN5TmFtZXMiLCJpc1ZlcnNpb25EaWZmRW1wdHkiLCJpc0VtcHR5IiwiaXNEZXBlbmRlbmN5TWFwRGlmZkVtcHR5IiwiaXNEZXZEZXBlbmRlbmN5TWFwRGlmZkVtcHR5Iiwic29tZURldkRlcGVuZGVuY3lTZW12ZXJEaWZmIiwiY2FsbGJhY2siLCJzb21lU2VtdmVyRGlmZiIsInNhdmUiLCJzdWNjZXNzIiwic3ViRGlyZWN0b3J5UGF0aCIsInBhY2thZ2VKU09OIiwicmVhZFBhY2thZ2VKU09ORmlsZSIsIkRFUEVOREVOQ0lFUyIsIkRFVl9ERVBFTkRFTkNJRVMiLCJ3cml0ZVBhY2thZ2VKU09ORmlsZSIsInBvbGwiLCJxdWlldGx5Iiwic3BlY2lmaWVycyIsImdldFNwZWNpZmllcnMiLCJnaXQiLCJpbnN0YWxsIiwiYnVpbGQiLCJwdWJsaXNoIiwicmVtb3ZlRGVwZW5kZW5jeSIsIm5hbWUiLCJyZW1vdmVTZW12ZXJEaWZmIiwicmVtb3ZlRGV2RGVwZW5kZW5jeSIsImFzU3RyaW5nIiwic3RyaW5nIiwidmVyc2lvbkRpZmZFbXB0eSIsImRlcGVuZGVuY3lNYXBEaWZmRW1wdHkiLCJkZXZEZXBlbmRlbmN5TWFwRGlmZkVtcHR5IiwidmVyc2lvbkRpZmZTdHJpbmciLCJkZXBlbmRlbmN5TWFwRGlmZlN0cmluZyIsImRldkRlcGVuZGVuY3lNYXBEaWZmU3RyaW5nIiwicmVwbGFjZSIsImZyb21SZWxlYXNlIiwiZGlmZiIsInZlcnNpb24iLCJkZXBlbmRlbmNpZXMiLCJkZXZEZXBlbmRlbmNpZXMiLCJ2ZXJzaW9uU3RyaW5nIiwiZGVwZW5kZW5jeU1hcCIsImRldkRlcGVuZGVuY3lNYXAiLCJyZWxlYXNlVmVyc2lvbiIsImdldFZlcnNpb24iLCJyZWxlYXNlRGVwZW5kZW5jeU1hcCIsImdldERlcGVuZGVuY3lNYXAiLCJyZWxlYXNlRGV2RGVwZW5kZW5jeU1hcCIsImdldERldkRlcGVuZGVuY3lNYXAiLCJWZXJzaW9uRGlmZiIsImZyb21WZXJzaW9uU3RyaW5nQW5kUmVsZWFzZVZlcnNpb24iLCJNYXBEaWZmIiwiZnJvbU1hcEFuZFJlbGVhc2VNYXAiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBcUJBOzs7NERBTkQ7Z0VBQ0k7MkJBRXVCOzZCQUNXOzs7Ozs7QUFFM0MsTUFBTUE7SUFDbkIsWUFBWUMsT0FBTyxFQUFFQyxXQUFXLEVBQUVDLGlCQUFpQixFQUFFQyxvQkFBb0IsQ0FBRTtRQUN6RSxJQUFJLENBQUNILE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxpQkFBaUIsR0FBR0E7UUFDekIsSUFBSSxDQUFDQyxvQkFBb0IsR0FBR0E7SUFDOUI7SUFFQUMsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDSixPQUFPO0lBQ3JCO0lBRUFL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
|