occam-verify-cli 0.0.993 → 0.0.996
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/bin/action/verify.js +8 -7
- package/lib/index.js +4 -8
- package/lib/utilities/releaseContext.js +212 -0
- package/package.json +1 -1
- package/src/index.js +1 -2
- package/src/utilities/releaseContext.js +284 -0
- package/lib/releaseContext/create.js +0 -131
- package/lib/releaseContext/initialise.js +0 -61
- package/src/releaseContext/create.js +0 -160
- package/src/releaseContext/initialise.js +0 -87
package/bin/action/verify.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
const { Dependency } = require("occam-entities"),
|
|
4
|
-
{ verifyRelease,
|
|
4
|
+
{ verifyRelease, releaseContextUtilities } = require("../../lib/index"); ///
|
|
5
5
|
|
|
6
6
|
const { trimTrailingSlash } = require("../utilities/string"),
|
|
7
7
|
{ releaseContextFromDependency } = require("../utilities/releaseContext");
|
|
8
8
|
|
|
9
|
+
const { createReleaseContext, initialiseReleaseContext } = releaseContextUtilities;
|
|
10
|
+
|
|
9
11
|
function verifyAction(argument, verbose, log) {
|
|
10
12
|
const name = trimTrailingSlash(argument), ///
|
|
11
13
|
context = {},
|
|
@@ -22,7 +24,7 @@ function verifyAction(argument, verbose, log) {
|
|
|
22
24
|
|
|
23
25
|
let now = startClock();
|
|
24
26
|
|
|
25
|
-
createReleaseContext(dependency, dependentNames, context, (error) => {
|
|
27
|
+
createReleaseContext(dependency, dependentNames, context, (error, success) => {
|
|
26
28
|
if (error) {
|
|
27
29
|
log.error(error);
|
|
28
30
|
|
|
@@ -31,10 +33,7 @@ function verifyAction(argument, verbose, log) {
|
|
|
31
33
|
return;
|
|
32
34
|
}
|
|
33
35
|
|
|
34
|
-
|
|
35
|
-
releaseContext = releaseContextMap[releaseName] || null;
|
|
36
|
-
|
|
37
|
-
if (releaseContext === null) {
|
|
36
|
+
if (!success) {
|
|
38
37
|
log.warning(`The '${name}' project or package context cannot be created.`);
|
|
39
38
|
|
|
40
39
|
stopClock(now, log);
|
|
@@ -42,7 +41,9 @@ function verifyAction(argument, verbose, log) {
|
|
|
42
41
|
return;
|
|
43
42
|
}
|
|
44
43
|
|
|
45
|
-
const
|
|
44
|
+
const releaseName = name, ///
|
|
45
|
+
releaseContext = releaseContextMap[releaseName],
|
|
46
|
+
releaseContextInitialised = initialiseReleaseContext(dependency, context);
|
|
46
47
|
|
|
47
48
|
if (!releaseContextInitialised) {
|
|
48
49
|
log.warning(`The '${name}' project or package context cannot be initialised.`);
|
package/lib/index.js
CHANGED
|
@@ -15,14 +15,11 @@ _export(exports, {
|
|
|
15
15
|
ReleaseContext: function() {
|
|
16
16
|
return _release1.default;
|
|
17
17
|
},
|
|
18
|
-
createReleaseContext: function() {
|
|
19
|
-
return _create.default;
|
|
20
|
-
},
|
|
21
18
|
customGrammarUtilities: function() {
|
|
22
19
|
return _customGrammar.default;
|
|
23
20
|
},
|
|
24
|
-
|
|
25
|
-
return
|
|
21
|
+
releaseContextUtilities: function() {
|
|
22
|
+
return _releaseContext.default;
|
|
26
23
|
},
|
|
27
24
|
verifyRelease: function() {
|
|
28
25
|
return _release.default;
|
|
@@ -31,13 +28,12 @@ _export(exports, {
|
|
|
31
28
|
var _log = /*#__PURE__*/ _interop_require_default(require("./log"));
|
|
32
29
|
var _release = /*#__PURE__*/ _interop_require_default(require("./verify/release"));
|
|
33
30
|
var _release1 = /*#__PURE__*/ _interop_require_default(require("./context/release"));
|
|
34
|
-
var _create = /*#__PURE__*/ _interop_require_default(require("./releaseContext/create"));
|
|
35
31
|
var _customGrammar = /*#__PURE__*/ _interop_require_default(require("./utilities/customGrammar"));
|
|
36
|
-
var
|
|
32
|
+
var _releaseContext = /*#__PURE__*/ _interop_require_default(require("./utilities/releaseContext"));
|
|
37
33
|
function _interop_require_default(obj) {
|
|
38
34
|
return obj && obj.__esModule ? obj : {
|
|
39
35
|
default: obj
|
|
40
36
|
};
|
|
41
37
|
}
|
|
42
38
|
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2cgfSBmcm9tIFwiLi9sb2dcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdmVyaWZ5UmVsZWFzZSB9IGZyb20gXCIuL3ZlcmlmeS9yZWxlYXNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlbGVhc2VDb250ZXh0IH0gZnJvbSBcIi4vY29udGV4dC9yZWxlYXNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGN1c3RvbUdyYW1tYXJVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvY3VzdG9tR3JhbW1hclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByZWxlYXNlQ29udGV4dFV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9yZWxlYXNlQ29udGV4dFwiO1xuXG4iXSwibmFtZXMiOlsiTG9nIiwiUmVsZWFzZUNvbnRleHQiLCJjdXN0b21HcmFtbWFyVXRpbGl0aWVzIiwicmVsZWFzZUNvbnRleHRVdGlsaXRpZXMiLCJ2ZXJpZnlSZWxlYXNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFb0JBLEdBQUc7ZUFBSEEsWUFBRzs7SUFFSEMsY0FBYztlQUFkQSxpQkFBYzs7SUFDZEMsc0JBQXNCO2VBQXRCQSxzQkFBc0I7O0lBQ3RCQyx1QkFBdUI7ZUFBdkJBLHVCQUF1Qjs7SUFIdkJDLGFBQWE7ZUFBYkEsZ0JBQWE7OzswREFERjs4REFDVTsrREFDQztvRUFDUTtxRUFDQyJ9
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
createReleaseContext: function() {
|
|
13
|
+
return createReleaseContext;
|
|
14
|
+
},
|
|
15
|
+
default: function() {
|
|
16
|
+
return _default;
|
|
17
|
+
},
|
|
18
|
+
initialiseReleaseContext: function() {
|
|
19
|
+
return initialiseReleaseContext;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
var _array = require("../utilities/array");
|
|
23
|
+
function _array_like_to_array(arr, len) {
|
|
24
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
25
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
26
|
+
return arr2;
|
|
27
|
+
}
|
|
28
|
+
function _array_without_holes(arr) {
|
|
29
|
+
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
30
|
+
}
|
|
31
|
+
function _iterable_to_array(iter) {
|
|
32
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
33
|
+
}
|
|
34
|
+
function _non_iterable_spread() {
|
|
35
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
36
|
+
}
|
|
37
|
+
function _to_consumable_array(arr) {
|
|
38
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
39
|
+
}
|
|
40
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
41
|
+
if (!o) return;
|
|
42
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
43
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
44
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
45
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
46
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
47
|
+
}
|
|
48
|
+
function createReleaseContext(dependency, dependentNames, context, callback) {
|
|
49
|
+
var log = context.log, releaseContextMap = context.releaseContextMap, dependencyName = dependency.getName(), releaseName = dependencyName, releaseContext = releaseContextMap[releaseName] || null;
|
|
50
|
+
if (releaseContext !== null) {
|
|
51
|
+
var error = null, success = true;
|
|
52
|
+
log.debug("Already created the '".concat(releaseName, "' context."));
|
|
53
|
+
callback(error, success);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
var releaseContextFromDependency = context.releaseContextFromDependency, dependencyString = dependency.asString();
|
|
57
|
+
log.debug("Creating the '".concat(releaseName, "' context given the '").concat(dependencyString, "' dependency..."));
|
|
58
|
+
releaseContextFromDependency(dependency, context, function(error, releaseContext) {
|
|
59
|
+
if (error) {
|
|
60
|
+
callback(error);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
var releaseContextCreated = checkReleaseContextCreated(releaseContext, dependency, context);
|
|
64
|
+
if (!releaseContextCreated) {
|
|
65
|
+
var _$error = null, success = false;
|
|
66
|
+
callback(_$error, success);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
var releaseMatchesDependency = checkReleaseMatchesDependency(releaseContext, dependency, dependentNames, context);
|
|
70
|
+
if (!releaseMatchesDependency) {
|
|
71
|
+
var _$error1 = null, success1 = false;
|
|
72
|
+
callback(_$error1, success1);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
createDependencyReleaseContexts(dependency, releaseContext, dependentNames, context, function(error, success) {
|
|
76
|
+
if (error) {
|
|
77
|
+
callback(error);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (!success) {
|
|
81
|
+
log.warning("...unable to create the '".concat(releaseName, "' context."));
|
|
82
|
+
callback(error, success);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
releaseContextMap[releaseName] = releaseContext;
|
|
86
|
+
log.info("...created the '".concat(releaseName, "' context."));
|
|
87
|
+
callback(error, success);
|
|
88
|
+
});
|
|
89
|
+
}, context);
|
|
90
|
+
}
|
|
91
|
+
function initialiseReleaseContext(dependency, context) {
|
|
92
|
+
var releaseContextInitialised = false;
|
|
93
|
+
var releaseContextMap = context.releaseContextMap, dependencyName = dependency.getName(), releaseName = dependencyName, releaseContext = releaseContextMap[releaseName] || null;
|
|
94
|
+
if (releaseContext === null) {
|
|
95
|
+
var log = context.log;
|
|
96
|
+
log.warning("Unable to initialise the '".concat(dependencyName, "' context because it has not been created."));
|
|
97
|
+
} else {
|
|
98
|
+
releaseContextInitialised = releaseContext.isInitialised();
|
|
99
|
+
if (!releaseContextInitialised) {
|
|
100
|
+
var dependencyReleaseContextsInitialised = initialiseDependencyReleaseContexts(dependency, releaseContext, context);
|
|
101
|
+
if (dependencyReleaseContextsInitialised) {
|
|
102
|
+
var log1 = context.log, verbose = context.verbose, releaseContexts = retrieveReleaseContexts(releaseContext, releaseContextMap);
|
|
103
|
+
log1.debug("Initialising the '".concat(dependencyName, "' context..."));
|
|
104
|
+
releaseContextInitialised = releaseContext.initialise(releaseContexts, verbose);
|
|
105
|
+
releaseContextInitialised ? log1.info("...initialised the '".concat(dependencyName, "' context.")) : log1.warning("...unable to initialise the '".concat(dependencyName, "' context."));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return releaseContextInitialised;
|
|
110
|
+
}
|
|
111
|
+
var _default = {
|
|
112
|
+
createReleaseContext: createReleaseContext,
|
|
113
|
+
initialiseReleaseContext: initialiseReleaseContext
|
|
114
|
+
};
|
|
115
|
+
function retrieveReleaseContexts(releaseContext, releaseContextMap) {
|
|
116
|
+
var releaseContexts = [], remainingReleaseContext = releaseContext, remainingReleaseContexts = [
|
|
117
|
+
remainingReleaseContext
|
|
118
|
+
];
|
|
119
|
+
var remainingReleaseContextsLength = remainingReleaseContexts.length;
|
|
120
|
+
while(remainingReleaseContextsLength > 0){
|
|
121
|
+
var remainingReleaseContext1 = remainingReleaseContexts.shift(), _$releaseContext = remainingReleaseContext1; ///
|
|
122
|
+
releaseContexts.push(_$releaseContext);
|
|
123
|
+
var dependencies = _$releaseContext.getDependencies();
|
|
124
|
+
dependencies.forEachDependency(function(dependency) {
|
|
125
|
+
var dependencyName = dependency.getName(), releaseName = dependencyName, _$releaseContext = releaseContextMap[releaseName], releaseContextsIncludesReleaseContext = releaseContexts.includes(_$releaseContext), remainingReleaseContextsIncludesReleaseContext = remainingReleaseContexts.includes(_$releaseContext);
|
|
126
|
+
if (!releaseContextsIncludesReleaseContext && !remainingReleaseContextsIncludesReleaseContext) {
|
|
127
|
+
var remainingReleaseContext = _$releaseContext; ///
|
|
128
|
+
remainingReleaseContexts.push(remainingReleaseContext);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
remainingReleaseContextsLength = remainingReleaseContexts.length;
|
|
132
|
+
}
|
|
133
|
+
return releaseContexts;
|
|
134
|
+
}
|
|
135
|
+
function checkReleaseContextCreated(releaseContext, dependency, context) {
|
|
136
|
+
var releaseContextCreated = releaseContext !== null;
|
|
137
|
+
if (!releaseContextCreated) {
|
|
138
|
+
var log = context.log, dependencyName = dependency.getName(), releaseName = dependencyName; ///
|
|
139
|
+
log.warning("The '".concat(releaseName, "' context could not be created. Perhaps the 'meta.json' file is missing or invalid. Or there could be a dependency mismatch."));
|
|
140
|
+
}
|
|
141
|
+
return releaseContextCreated;
|
|
142
|
+
}
|
|
143
|
+
function checkCyclicDependencyExists(dependency, dependentNames, context) {
|
|
144
|
+
var dependencyName = dependency.getName(), dependentNamesIncludesDependencyName = dependentNames.includes(dependencyName), cyclicDependencyExists = dependentNamesIncludesDependencyName; ///
|
|
145
|
+
if (cyclicDependencyExists) {
|
|
146
|
+
var log = context.log, firstDependentName = first(dependentNames), dependencyNames = _to_consumable_array(dependentNames).concat([
|
|
147
|
+
firstDependentName
|
|
148
|
+
]), dependencyNamesString = dependencyNames.join("' -> '");
|
|
149
|
+
log.warning("There is a cyclic dependency: '".concat(dependencyNamesString, "'."));
|
|
150
|
+
}
|
|
151
|
+
return cyclicDependencyExists;
|
|
152
|
+
}
|
|
153
|
+
function checkReleaseMatchesDependency(releaseContext, dependency, dependentNames, context) {
|
|
154
|
+
var releaseMatchesDependency = true;
|
|
155
|
+
var entries = releaseContext.getEntries(), shortenedVersion = dependency.getShortedVersion();
|
|
156
|
+
if (shortenedVersion !== null) {
|
|
157
|
+
var entriesMatchShortenedVersion = entries.matchShortenedVersion(shortenedVersion);
|
|
158
|
+
if (!entriesMatchShortenedVersion) {
|
|
159
|
+
var log = context.log, version = releaseContext.getVersion(), lastDependentName = (0, _array.last)(dependentNames), dependentName = lastDependentName, versionString = version.toString(), dependencyString = dependency.asString();
|
|
160
|
+
log.warning("Version mismatch: The '".concat(dependentName, "' dependent requires the '").concat(dependencyString, "' dependency but a context with version '").concat(versionString, "' was provided."));
|
|
161
|
+
releaseMatchesDependency = false;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return releaseMatchesDependency;
|
|
165
|
+
}
|
|
166
|
+
function createDependencyReleaseContexts(dependency, releaseContext, dependentNames, context, callback) {
|
|
167
|
+
var dependencyName = dependency.getName(), dependencies = releaseContext.getDependencies();
|
|
168
|
+
dependentNames = _to_consumable_array(dependentNames).concat([
|
|
169
|
+
dependencyName
|
|
170
|
+
]); ///
|
|
171
|
+
dependencies.asynchronousForEachDependency(function(dependency, next, done) {
|
|
172
|
+
var cyclicDependencyExists = checkCyclicDependencyExists(dependency, dependentNames);
|
|
173
|
+
if (cyclicDependencyExists) {
|
|
174
|
+
var error = null, success = false;
|
|
175
|
+
callback(error, success);
|
|
176
|
+
callback = null;
|
|
177
|
+
done();
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
createReleaseContext(dependency, dependentNames, context, function(error, success) {
|
|
181
|
+
if (error) {
|
|
182
|
+
callback(error);
|
|
183
|
+
callback = null;
|
|
184
|
+
done();
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
if (!success) {
|
|
188
|
+
callback(error, success);
|
|
189
|
+
callback = null;
|
|
190
|
+
done();
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
next();
|
|
194
|
+
});
|
|
195
|
+
}, function() {
|
|
196
|
+
if (callback !== null) {
|
|
197
|
+
var error = null, success = true;
|
|
198
|
+
callback(error, success);
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
function initialiseDependencyReleaseContexts(dependency, releaseContext, context) {
|
|
203
|
+
var dependencies = releaseContext.getDependencies(), dependencyReleaseContextsInitialised = dependencies.everyDependency(function(dependency) {
|
|
204
|
+
var releaseContextInitialised = initialiseReleaseContext(dependency, context);
|
|
205
|
+
if (releaseContextInitialised) {
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
return dependencyReleaseContextsInitialised;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVsZWFzZUNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGxhc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyBsb2csIHJlbGVhc2VDb250ZXh0TWFwIH0gPSBjb250ZXh0LFxuICAgICAgICBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICByZWxlYXNlTmFtZSA9IGRlcGVuZGVuY3lOYW1lLCAvLy9cbiAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0gfHwgbnVsbDtcblxuICBpZiAocmVsZWFzZUNvbnRleHQgIT09IG51bGwpIHtcbiAgICBjb25zdCBlcnJvciA9IG51bGwsXG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICBsb2cuZGVidWcoYEFscmVhZHkgY3JlYXRlZCB0aGUgJyR7cmVsZWFzZU5hbWV9JyBjb250ZXh0LmApO1xuXG4gICAgY2FsbGJhY2soZXJyb3IsIHN1Y2Nlc3MpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5IH0gPSBjb250ZXh0LFxuICAgICAgICBkZXBlbmRlbmN5U3RyaW5nID0gZGVwZW5kZW5jeS5hc1N0cmluZygpO1xuXG4gIGxvZy5kZWJ1ZyhgQ3JlYXRpbmcgdGhlICcke3JlbGVhc2VOYW1lfScgY29udGV4dCBnaXZlbiB0aGUgJyR7ZGVwZW5kZW5jeVN0cmluZ30nIGRlcGVuZGVuY3kuLi5gKTtcblxuICByZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5KGRlcGVuZGVuY3ksIGNvbnRleHQsIChlcnJvciwgcmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IGNoZWNrUmVsZWFzZUNvbnRleHRDcmVhdGVkKHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBjb250ZXh0KTtcblxuICAgIGlmICghcmVsZWFzZUNvbnRleHRDcmVhdGVkKSB7XG4gICAgICBjb25zdCBlcnJvciA9IG51bGwsXG4gICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgIGNhbGxiYWNrKGVycm9yLCBzdWNjZXNzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSA9IGNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5KHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCk7XG5cbiAgICBpZiAoIXJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSkge1xuICAgICAgY29uc3QgZXJyb3IgPSBudWxsLFxuICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICBjYWxsYmFjayhlcnJvciwgc3VjY2Vzcyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjcmVhdGVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKGRlcGVuZGVuY3ksIHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgKGVycm9yLCBzdWNjZXNzKSA9PiB7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGxvZy53YXJuaW5nKGAuLi51bmFibGUgdG8gY3JlYXRlIHRoZSAnJHtyZWxlYXNlTmFtZX0nIGNvbnRleHQuYCk7XG5cbiAgICAgICAgY2FsbGJhY2soZXJyb3IsIHN1Y2Nlc3MpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdID0gcmVsZWFzZUNvbnRleHQ7XG5cbiAgICAgIGxvZy5pbmZvKGAuLi5jcmVhdGVkIHRoZSAnJHtyZWxlYXNlTmFtZX0nIGNvbnRleHQuYCk7XG5cbiAgICAgIGNhbGxiYWNrKGVycm9yLCBzdWNjZXNzKTtcbiAgICB9KTtcbiAgfSwgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgY29udGV4dCkge1xuICBsZXQgcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRNYXAgfSA9IGNvbnRleHQsXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSB8fCBudWxsO1xuXG4gIGlmIChyZWxlYXNlQ29udGV4dCA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0O1xuXG4gICAgbG9nLndhcm5pbmcoYFVuYWJsZSB0byBpbml0aWFsaXNlIHRoZSAnJHtkZXBlbmRlbmN5TmFtZX0nIGNvbnRleHQgYmVjYXVzZSBpdCBoYXMgbm90IGJlZW4gY3JlYXRlZC5gKTtcbiAgfSBlbHNlIHtcbiAgICByZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkID0gcmVsZWFzZUNvbnRleHQuaXNJbml0aWFsaXNlZCgpO1xuXG4gICAgaWYgKCFyZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkKSB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzSW5pdGlhbGlzZWQgPSBpbml0aWFsaXNlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCByZWxlYXNlQ29udGV4dCwgY29udGV4dCk7XG5cbiAgICAgIGlmIChkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzSW5pdGlhbGlzZWQpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIHZlcmJvc2UgfSA9IGNvbnRleHQsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0cyA9IHJldHJpZXZlUmVsZWFzZUNvbnRleHRzKHJlbGVhc2VDb250ZXh0LCByZWxlYXNlQ29udGV4dE1hcCk7XG5cbiAgICAgICAgbG9nLmRlYnVnKGBJbml0aWFsaXNpbmcgdGhlICcke2RlcGVuZGVuY3lOYW1lfScgY29udGV4dC4uLmApO1xuXG4gICAgICAgIHJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQgPSByZWxlYXNlQ29udGV4dC5pbml0aWFsaXNlKHJlbGVhc2VDb250ZXh0cywgdmVyYm9zZSk7XG5cbiAgICAgICAgcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCA/XG4gICAgICAgICAgbG9nLmluZm8oYC4uLmluaXRpYWxpc2VkIHRoZSAnJHtkZXBlbmRlbmN5TmFtZX0nIGNvbnRleHQuYCkgOlxuICAgICAgICAgICAgbG9nLndhcm5pbmcoYC4uLnVuYWJsZSB0byBpbml0aWFsaXNlIHRoZSAnJHtkZXBlbmRlbmN5TmFtZX0nIGNvbnRleHQuYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3JlYXRlUmVsZWFzZUNvbnRleHQsXG4gIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dFxufTtcblxuZnVuY3Rpb24gcmV0cmlldmVSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIHJlbGVhc2VDb250ZXh0TWFwKSB7XG4gIGNvbnN0IHJlbGVhc2VDb250ZXh0cyA9IFtdLFxuICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0LCAgLy8vXG4gICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cyA9IFtcbiAgICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dFxuICAgICAgICBdO1xuXG4gIGxldCByZW1haW5pbmdSZWxlYXNlQ29udGV4dHNMZW5ndGggPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMubGVuZ3RoO1xuXG4gIHdoaWxlIChyZW1haW5pbmdSZWxlYXNlQ29udGV4dHNMZW5ndGggPiAwKSB7XG4gICAgY29uc3QgcmVtYWluaW5nUmVsZWFzZUNvbnRleHQgPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMuc2hpZnQoKSxcbiAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0OyAgLy8vXG5cbiAgICByZWxlYXNlQ29udGV4dHMucHVzaChyZWxlYXNlQ29udGV4dCk7XG5cbiAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKTtcblxuICAgIGRlcGVuZGVuY2llcy5mb3JFYWNoRGVwZW5kZW5jeSgoZGVwZW5kZW5jeSkgPT4ge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0sXG4gICAgICAgICAgICByZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRzLmluY2x1ZGVzKHJlbGVhc2VDb250ZXh0KSxcbiAgICAgICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQgPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMuaW5jbHVkZXMocmVsZWFzZUNvbnRleHQpO1xuXG4gICAgICBpZiAoIXJlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQgJiYgIXJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVtYWluaW5nUmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dDsgLy8vXG5cbiAgICAgICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLnB1c2gocmVtYWluaW5nUmVsZWFzZUNvbnRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzTGVuZ3RoID0gcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLmxlbmd0aDtcbiAgfVxuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dHM7XG59XG5cbmZ1bmN0aW9uIGNoZWNrUmVsZWFzZUNvbnRleHRDcmVhdGVkKHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBjb250ZXh0KSB7XG4gIGNvbnN0IHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IChyZWxlYXNlQ29udGV4dCAhPT0gbnVsbCk7XG5cbiAgaWYgKCFyZWxlYXNlQ29udGV4dENyZWF0ZWQpIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWU7IC8vL1xuXG4gICAgbG9nLndhcm5pbmcoYFRoZSAnJHtyZWxlYXNlTmFtZX0nIGNvbnRleHQgY291bGQgbm90IGJlIGNyZWF0ZWQuIFBlcmhhcHMgdGhlICdtZXRhLmpzb24nIGZpbGUgaXMgbWlzc2luZyBvciBpbnZhbGlkLiBPciB0aGVyZSBjb3VsZCBiZSBhIGRlcGVuZGVuY3kgbWlzbWF0Y2guYCk7XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZUNvbnRleHRDcmVhdGVkO1xufVxuXG5mdW5jdGlvbiBjaGVja0N5Y2xpY0RlcGVuZGVuY3lFeGlzdHMoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW50TmFtZXMuaW5jbHVkZXMoZGVwZW5kZW5jeU5hbWUpLFxuICAgICAgICBjeWNsaWNEZXBlbmRlbmN5RXhpc3RzID0gZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lOyAgLy8vXG5cbiAgaWYgKGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMpIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICBmaXJzdERlcGVuZGVudE5hbWUgPSBmaXJzdChkZXBlbmRlbnROYW1lcyksXG4gICAgICAgICAgZGVwZW5kZW5jeU5hbWVzID0gWyAgLy8vXG4gICAgICAgICAgICAuLi5kZXBlbmRlbnROYW1lcyxcbiAgICAgICAgICAgIGZpcnN0RGVwZW5kZW50TmFtZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgZGVwZW5kZW5jeU5hbWVzU3RyaW5nID0gZGVwZW5kZW5jeU5hbWVzLmpvaW4oYCcgLT4gJ2ApO1xuXG4gICAgbG9nLndhcm5pbmcoYFRoZXJlIGlzIGEgY3ljbGljIGRlcGVuZGVuY3k6ICcke2RlcGVuZGVuY3lOYW1lc1N0cmluZ30nLmApO1xuICB9XG5cbiAgcmV0dXJuIGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHM7XG59XG5cbmZ1bmN0aW9uIGNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5KHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCkge1xuICBsZXQgcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5ID0gdHJ1ZTtcblxuICBjb25zdCBlbnRyaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RW50cmllcygpLFxuICAgICAgICBzaG9ydGVuZWRWZXJzaW9uID0gZGVwZW5kZW5jeS5nZXRTaG9ydGVkVmVyc2lvbigpO1xuXG4gIGlmIChzaG9ydGVuZWRWZXJzaW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbiA9IGVudHJpZXMubWF0Y2hTaG9ydGVuZWRWZXJzaW9uKHNob3J0ZW5lZFZlcnNpb24pO1xuXG4gICAgaWYgKCFlbnRyaWVzTWF0Y2hTaG9ydGVuZWRWZXJzaW9uKSB7XG4gICAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICAgIHZlcnNpb24gPSByZWxlYXNlQ29udGV4dC5nZXRWZXJzaW9uKCksXG4gICAgICAgICAgICBsYXN0RGVwZW5kZW50TmFtZSA9IGxhc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgICAgZGVwZW5kZW50TmFtZSA9IGxhc3REZXBlbmRlbnROYW1lLCAgLy8vXG4gICAgICAgICAgICB2ZXJzaW9uU3RyaW5nID0gdmVyc2lvbi50b1N0cmluZygpLFxuICAgICAgICAgICAgZGVwZW5kZW5jeVN0cmluZyA9IGRlcGVuZGVuY3kuYXNTdHJpbmcoKTtcblxuICAgICAgbG9nLndhcm5pbmcoYFZlcnNpb24gbWlzbWF0Y2g6IFRoZSAnJHtkZXBlbmRlbnROYW1lfScgZGVwZW5kZW50IHJlcXVpcmVzIHRoZSAnJHtkZXBlbmRlbmN5U3RyaW5nfScgZGVwZW5kZW5jeSBidXQgYSBjb250ZXh0IHdpdGggdmVyc2lvbiAnJHt2ZXJzaW9uU3RyaW5nfScgd2FzIHByb3ZpZGVkLmApO1xuXG4gICAgICByZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKGRlcGVuZGVuY3ksIHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spIHtcbiAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgZGVwZW5kZW50TmFtZXMgPSBbIC4uLmRlcGVuZGVudE5hbWVzLCBkZXBlbmRlbmN5TmFtZSBdOyAgLy8vXG5cbiAgZGVwZW5kZW5jaWVzLmFzeW5jaHJvbm91c0ZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY29uc3QgY3ljbGljRGVwZW5kZW5jeUV4aXN0cyA9IGNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcyk7XG5cbiAgICBpZiAoY3ljbGljRGVwZW5kZW5jeUV4aXN0cykge1xuICAgICAgY29uc3QgZXJyb3IgPSBudWxsLFxuICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICBjYWxsYmFjayhlcnJvciwgc3VjY2Vzcyk7XG5cbiAgICAgIGNhbGxiYWNrID0gbnVsbDtcblxuICAgICAgZG9uZSgpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3JlYXRlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQsIChlcnJvciwgc3VjY2VzcykgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgICBjYWxsYmFjayA9IG51bGw7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yLCBzdWNjZXNzKTtcblxuICAgICAgICBjYWxsYmFjayA9IG51bGw7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgaWYgKGNhbGxiYWNrICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBlcnJvciA9IG51bGwsXG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcblxuICAgICAgY2FsbGJhY2soZXJyb3IsIHN1Y2Nlc3MpO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGluaXRpYWxpc2VEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKGRlcGVuZGVuY3ksIHJlbGVhc2VDb250ZXh0LCBjb250ZXh0KSB7XG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IHJlbGVhc2VDb250ZXh0LmdldERlcGVuZGVuY2llcygpLFxuICAgICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzSW5pdGlhbGlzZWQgPSBkZXBlbmRlbmNpZXMuZXZlcnlEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7ICAvLy9cbiAgICAgICAgICBjb25zdCByZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkID0gaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGNvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKHJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNJbml0aWFsaXNlZDtcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVSZWxlYXNlQ29udGV4dCIsImluaXRpYWxpc2VSZWxlYXNlQ29udGV4dCIsImRlcGVuZGVuY3kiLCJkZXBlbmRlbnROYW1lcyIsImNvbnRleHQiLCJjYWxsYmFjayIsImxvZyIsInJlbGVhc2VDb250ZXh0TWFwIiwiZGVwZW5kZW5jeU5hbWUiLCJnZXROYW1lIiwicmVsZWFzZU5hbWUiLCJyZWxlYXNlQ29udGV4dCIsImVycm9yIiwic3VjY2VzcyIsImRlYnVnIiwicmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeSIsImRlcGVuZGVuY3lTdHJpbmciLCJhc1N0cmluZyIsInJlbGVhc2VDb250ZXh0Q3JlYXRlZCIsImNoZWNrUmVsZWFzZUNvbnRleHRDcmVhdGVkIiwicmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5IiwiY2hlY2tSZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kiLCJjcmVhdGVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwid2FybmluZyIsImluZm8iLCJyZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkIiwiaXNJbml0aWFsaXNlZCIsImRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNJbml0aWFsaXNlZCIsImluaXRpYWxpc2VEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwidmVyYm9zZSIsInJlbGVhc2VDb250ZXh0cyIsInJldHJpZXZlUmVsZWFzZUNvbnRleHRzIiwiaW5pdGlhbGlzZSIsInJlbWFpbmluZ1JlbGVhc2VDb250ZXh0IiwicmVtYWluaW5nUmVsZWFzZUNvbnRleHRzIiwicmVtYWluaW5nUmVsZWFzZUNvbnRleHRzTGVuZ3RoIiwibGVuZ3RoIiwic2hpZnQiLCJwdXNoIiwiZGVwZW5kZW5jaWVzIiwiZ2V0RGVwZW5kZW5jaWVzIiwiZm9yRWFjaERlcGVuZGVuY3kiLCJyZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0IiwiaW5jbHVkZXMiLCJyZW1haW5pbmdSZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0IiwiY2hlY2tDeWNsaWNEZXBlbmRlbmN5RXhpc3RzIiwiZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lIiwiY3ljbGljRGVwZW5kZW5jeUV4aXN0cyIsImZpcnN0RGVwZW5kZW50TmFtZSIsImZpcnN0IiwiZGVwZW5kZW5jeU5hbWVzIiwiZGVwZW5kZW5jeU5hbWVzU3RyaW5nIiwiam9pbiIsImVudHJpZXMiLCJnZXRFbnRyaWVzIiwic2hvcnRlbmVkVmVyc2lvbiIsImdldFNob3J0ZWRWZXJzaW9uIiwiZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbiIsIm1hdGNoU2hvcnRlbmVkVmVyc2lvbiIsInZlcnNpb24iLCJnZXRWZXJzaW9uIiwibGFzdERlcGVuZGVudE5hbWUiLCJsYXN0IiwiZGVwZW5kZW50TmFtZSIsInZlcnNpb25TdHJpbmciLCJ0b1N0cmluZyIsImFzeW5jaHJvbm91c0ZvckVhY2hEZXBlbmRlbmN5IiwibmV4dCIsImRvbmUiLCJldmVyeURlcGVuZGVuY3kiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUlnQkEsb0JBQW9CO2VBQXBCQTs7SUErR2hCLE9BR0U7ZUFIRjs7SUFwQ2dCQyx3QkFBd0I7ZUFBeEJBOzs7cUJBN0VLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVkLFNBQVNELHFCQUFxQkUsVUFBVSxFQUFFQyxjQUFjLEVBQUVDLE9BQU8sRUFBRUMsUUFBUTtJQUNoRixJQUFRQyxNQUEyQkYsUUFBM0JFLEtBQUtDLG9CQUFzQkgsUUFBdEJHLG1CQUNQQyxpQkFBaUJOLFdBQVdPLE9BQU8sSUFDbkNDLGNBQWNGLGdCQUNkRyxpQkFBaUJKLGlCQUFpQixDQUFDRyxZQUFZLElBQUk7SUFFekQsSUFBSUMsbUJBQW1CLE1BQU07UUFDM0IsSUFBTUMsUUFBUSxNQUNSQyxVQUFVO1FBRWhCUCxJQUFJUSxLQUFLLENBQUMsQUFBQyx3QkFBbUMsT0FBWkosYUFBWTtRQUU5Q0wsU0FBU08sT0FBT0M7UUFFaEI7SUFDRjtJQUVBLElBQU0sQUFBRUUsK0JBQWlDWCxRQUFqQ1csOEJBQ0ZDLG1CQUFtQmQsV0FBV2UsUUFBUTtJQUU1Q1gsSUFBSVEsS0FBSyxDQUFDLEFBQUMsaUJBQW1ERSxPQUFuQ04sYUFBWSx5QkFBd0MsT0FBakJNLGtCQUFpQjtJQUUvRUQsNkJBQTZCYixZQUFZRSxTQUFTLFNBQUNRLE9BQU9EO1FBQ3hELElBQUlDLE9BQU87WUFDVFAsU0FBU087WUFFVDtRQUNGO1FBRUEsSUFBTU0sd0JBQXdCQywyQkFBMkJSLGdCQUFnQlQsWUFBWUU7UUFFckYs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
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
export { default as Log } from "./log";
|
|
4
4
|
export { default as verifyRelease } from "./verify/release";
|
|
5
5
|
export { default as ReleaseContext } from "./context/release";
|
|
6
|
-
export { default as createReleaseContext } from "./releaseContext/create";
|
|
7
6
|
export { default as customGrammarUtilities } from "./utilities/customGrammar";
|
|
8
|
-
export { default as
|
|
7
|
+
export { default as releaseContextUtilities } from "./utilities/releaseContext";
|
|
9
8
|
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { last } from "../utilities/array";
|
|
4
|
+
|
|
5
|
+
export function createReleaseContext(dependency, dependentNames, context, callback) {
|
|
6
|
+
const { log, releaseContextMap } = context,
|
|
7
|
+
dependencyName = dependency.getName(),
|
|
8
|
+
releaseName = dependencyName, ///
|
|
9
|
+
releaseContext = releaseContextMap[releaseName] || null;
|
|
10
|
+
|
|
11
|
+
if (releaseContext !== null) {
|
|
12
|
+
const error = null,
|
|
13
|
+
success = true;
|
|
14
|
+
|
|
15
|
+
log.debug(`Already created the '${releaseName}' context.`);
|
|
16
|
+
|
|
17
|
+
callback(error, success);
|
|
18
|
+
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const { releaseContextFromDependency } = context,
|
|
23
|
+
dependencyString = dependency.asString();
|
|
24
|
+
|
|
25
|
+
log.debug(`Creating the '${releaseName}' context given the '${dependencyString}' dependency...`);
|
|
26
|
+
|
|
27
|
+
releaseContextFromDependency(dependency, context, (error, releaseContext) => {
|
|
28
|
+
if (error) {
|
|
29
|
+
callback(error);
|
|
30
|
+
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const releaseContextCreated = checkReleaseContextCreated(releaseContext, dependency, context);
|
|
35
|
+
|
|
36
|
+
if (!releaseContextCreated) {
|
|
37
|
+
const error = null,
|
|
38
|
+
success = false;
|
|
39
|
+
|
|
40
|
+
callback(error, success);
|
|
41
|
+
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const releaseMatchesDependency = checkReleaseMatchesDependency(releaseContext, dependency, dependentNames, context);
|
|
46
|
+
|
|
47
|
+
if (!releaseMatchesDependency) {
|
|
48
|
+
const error = null,
|
|
49
|
+
success = false;
|
|
50
|
+
|
|
51
|
+
callback(error, success);
|
|
52
|
+
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
createDependencyReleaseContexts(dependency, releaseContext, dependentNames, context, (error, success) => {
|
|
57
|
+
if (error) {
|
|
58
|
+
callback(error);
|
|
59
|
+
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (!success) {
|
|
64
|
+
log.warning(`...unable to create the '${releaseName}' context.`);
|
|
65
|
+
|
|
66
|
+
callback(error, success);
|
|
67
|
+
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
releaseContextMap[releaseName] = releaseContext;
|
|
72
|
+
|
|
73
|
+
log.info(`...created the '${releaseName}' context.`);
|
|
74
|
+
|
|
75
|
+
callback(error, success);
|
|
76
|
+
});
|
|
77
|
+
}, context);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function initialiseReleaseContext(dependency, context) {
|
|
81
|
+
let releaseContextInitialised = false;
|
|
82
|
+
|
|
83
|
+
const { releaseContextMap } = context,
|
|
84
|
+
dependencyName = dependency.getName(),
|
|
85
|
+
releaseName = dependencyName, ///
|
|
86
|
+
releaseContext = releaseContextMap[releaseName] || null;
|
|
87
|
+
|
|
88
|
+
if (releaseContext === null) {
|
|
89
|
+
const { log } = context;
|
|
90
|
+
|
|
91
|
+
log.warning(`Unable to initialise the '${dependencyName}' context because it has not been created.`);
|
|
92
|
+
} else {
|
|
93
|
+
releaseContextInitialised = releaseContext.isInitialised();
|
|
94
|
+
|
|
95
|
+
if (!releaseContextInitialised) {
|
|
96
|
+
const dependencyReleaseContextsInitialised = initialiseDependencyReleaseContexts(dependency, releaseContext, context);
|
|
97
|
+
|
|
98
|
+
if (dependencyReleaseContextsInitialised) {
|
|
99
|
+
const { log, verbose } = context,
|
|
100
|
+
releaseContexts = retrieveReleaseContexts(releaseContext, releaseContextMap);
|
|
101
|
+
|
|
102
|
+
log.debug(`Initialising the '${dependencyName}' context...`);
|
|
103
|
+
|
|
104
|
+
releaseContextInitialised = releaseContext.initialise(releaseContexts, verbose);
|
|
105
|
+
|
|
106
|
+
releaseContextInitialised ?
|
|
107
|
+
log.info(`...initialised the '${dependencyName}' context.`) :
|
|
108
|
+
log.warning(`...unable to initialise the '${dependencyName}' context.`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return releaseContextInitialised;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export default {
|
|
117
|
+
createReleaseContext,
|
|
118
|
+
initialiseReleaseContext
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
function retrieveReleaseContexts(releaseContext, releaseContextMap) {
|
|
122
|
+
const releaseContexts = [],
|
|
123
|
+
remainingReleaseContext = releaseContext, ///
|
|
124
|
+
remainingReleaseContexts = [
|
|
125
|
+
remainingReleaseContext
|
|
126
|
+
];
|
|
127
|
+
|
|
128
|
+
let remainingReleaseContextsLength = remainingReleaseContexts.length;
|
|
129
|
+
|
|
130
|
+
while (remainingReleaseContextsLength > 0) {
|
|
131
|
+
const remainingReleaseContext = remainingReleaseContexts.shift(),
|
|
132
|
+
releaseContext = remainingReleaseContext; ///
|
|
133
|
+
|
|
134
|
+
releaseContexts.push(releaseContext);
|
|
135
|
+
|
|
136
|
+
const dependencies = releaseContext.getDependencies();
|
|
137
|
+
|
|
138
|
+
dependencies.forEachDependency((dependency) => {
|
|
139
|
+
const dependencyName = dependency.getName(),
|
|
140
|
+
releaseName = dependencyName, ///
|
|
141
|
+
releaseContext = releaseContextMap[releaseName],
|
|
142
|
+
releaseContextsIncludesReleaseContext = releaseContexts.includes(releaseContext),
|
|
143
|
+
remainingReleaseContextsIncludesReleaseContext = remainingReleaseContexts.includes(releaseContext);
|
|
144
|
+
|
|
145
|
+
if (!releaseContextsIncludesReleaseContext && !remainingReleaseContextsIncludesReleaseContext) {
|
|
146
|
+
const remainingReleaseContext = releaseContext; ///
|
|
147
|
+
|
|
148
|
+
remainingReleaseContexts.push(remainingReleaseContext);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
remainingReleaseContextsLength = remainingReleaseContexts.length;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return releaseContexts;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
function checkReleaseContextCreated(releaseContext, dependency, context) {
|
|
159
|
+
const releaseContextCreated = (releaseContext !== null);
|
|
160
|
+
|
|
161
|
+
if (!releaseContextCreated) {
|
|
162
|
+
const { log } = context,
|
|
163
|
+
dependencyName = dependency.getName(),
|
|
164
|
+
releaseName = dependencyName; ///
|
|
165
|
+
|
|
166
|
+
log.warning(`The '${releaseName}' context could not be created. Perhaps the 'meta.json' file is missing or invalid. Or there could be a dependency mismatch.`);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
return releaseContextCreated;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
function checkCyclicDependencyExists(dependency, dependentNames, context) {
|
|
173
|
+
const dependencyName = dependency.getName(),
|
|
174
|
+
dependentNamesIncludesDependencyName = dependentNames.includes(dependencyName),
|
|
175
|
+
cyclicDependencyExists = dependentNamesIncludesDependencyName; ///
|
|
176
|
+
|
|
177
|
+
if (cyclicDependencyExists) {
|
|
178
|
+
const { log } = context,
|
|
179
|
+
firstDependentName = first(dependentNames),
|
|
180
|
+
dependencyNames = [ ///
|
|
181
|
+
...dependentNames,
|
|
182
|
+
firstDependentName
|
|
183
|
+
],
|
|
184
|
+
dependencyNamesString = dependencyNames.join(`' -> '`);
|
|
185
|
+
|
|
186
|
+
log.warning(`There is a cyclic dependency: '${dependencyNamesString}'.`);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
return cyclicDependencyExists;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
function checkReleaseMatchesDependency(releaseContext, dependency, dependentNames, context) {
|
|
193
|
+
let releaseMatchesDependency = true;
|
|
194
|
+
|
|
195
|
+
const entries = releaseContext.getEntries(),
|
|
196
|
+
shortenedVersion = dependency.getShortedVersion();
|
|
197
|
+
|
|
198
|
+
if (shortenedVersion !== null) {
|
|
199
|
+
const entriesMatchShortenedVersion = entries.matchShortenedVersion(shortenedVersion);
|
|
200
|
+
|
|
201
|
+
if (!entriesMatchShortenedVersion) {
|
|
202
|
+
const { log } = context,
|
|
203
|
+
version = releaseContext.getVersion(),
|
|
204
|
+
lastDependentName = last(dependentNames),
|
|
205
|
+
dependentName = lastDependentName, ///
|
|
206
|
+
versionString = version.toString(),
|
|
207
|
+
dependencyString = dependency.asString();
|
|
208
|
+
|
|
209
|
+
log.warning(`Version mismatch: The '${dependentName}' dependent requires the '${dependencyString}' dependency but a context with version '${versionString}' was provided.`);
|
|
210
|
+
|
|
211
|
+
releaseMatchesDependency = false;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
return releaseMatchesDependency;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
function createDependencyReleaseContexts(dependency, releaseContext, dependentNames, context, callback) {
|
|
219
|
+
const dependencyName = dependency.getName(),
|
|
220
|
+
dependencies = releaseContext.getDependencies();
|
|
221
|
+
|
|
222
|
+
dependentNames = [ ...dependentNames, dependencyName ]; ///
|
|
223
|
+
|
|
224
|
+
dependencies.asynchronousForEachDependency((dependency, next, done) => {
|
|
225
|
+
const cyclicDependencyExists = checkCyclicDependencyExists(dependency, dependentNames);
|
|
226
|
+
|
|
227
|
+
if (cyclicDependencyExists) {
|
|
228
|
+
const error = null,
|
|
229
|
+
success = false;
|
|
230
|
+
|
|
231
|
+
callback(error, success);
|
|
232
|
+
|
|
233
|
+
callback = null;
|
|
234
|
+
|
|
235
|
+
done();
|
|
236
|
+
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
createReleaseContext(dependency, dependentNames, context, (error, success) => {
|
|
241
|
+
if (error) {
|
|
242
|
+
callback(error);
|
|
243
|
+
|
|
244
|
+
callback = null;
|
|
245
|
+
|
|
246
|
+
done();
|
|
247
|
+
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
if (!success) {
|
|
252
|
+
callback(error, success);
|
|
253
|
+
|
|
254
|
+
callback = null;
|
|
255
|
+
|
|
256
|
+
done();
|
|
257
|
+
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
next();
|
|
262
|
+
});
|
|
263
|
+
}, () => {
|
|
264
|
+
if (callback !== null) {
|
|
265
|
+
const error = null,
|
|
266
|
+
success = true;
|
|
267
|
+
|
|
268
|
+
callback(error, success);
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
function initialiseDependencyReleaseContexts(dependency, releaseContext, context) {
|
|
274
|
+
const dependencies = releaseContext.getDependencies(),
|
|
275
|
+
dependencyReleaseContextsInitialised = dependencies.everyDependency((dependency) => { ///
|
|
276
|
+
const releaseContextInitialised = initialiseReleaseContext(dependency, context);
|
|
277
|
+
|
|
278
|
+
if (releaseContextInitialised) {
|
|
279
|
+
return true;
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
return dependencyReleaseContextsInitialised;
|
|
284
|
+
}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return createReleaseContext;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _array = require("../utilities/array");
|
|
12
|
-
function _array_like_to_array(arr, len) {
|
|
13
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
14
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
15
|
-
return arr2;
|
|
16
|
-
}
|
|
17
|
-
function _array_without_holes(arr) {
|
|
18
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
19
|
-
}
|
|
20
|
-
function _iterable_to_array(iter) {
|
|
21
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
22
|
-
}
|
|
23
|
-
function _non_iterable_spread() {
|
|
24
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
25
|
-
}
|
|
26
|
-
function _to_consumable_array(arr) {
|
|
27
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
28
|
-
}
|
|
29
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
30
|
-
if (!o) return;
|
|
31
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
32
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
33
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
34
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
35
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
36
|
-
}
|
|
37
|
-
function createReleaseContext(dependency, dependentNames, context, callback) {
|
|
38
|
-
var log = context.log, releaseContextMap = context.releaseContextMap, dependencyName = dependency.getName(), dependencyString = dependency.asString(), releaseName = dependencyName, releaseContext = releaseContextMap[releaseName] || null;
|
|
39
|
-
log.debug("Creating the '".concat(releaseName, "' context given the '").concat(dependencyString, "' dependency..."));
|
|
40
|
-
if (releaseContext !== null) {
|
|
41
|
-
var error = null;
|
|
42
|
-
log.debug("...already created the '".concat(releaseName, "' context."));
|
|
43
|
-
callback(error);
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
var releaseContextFromDependency = context.releaseContextFromDependency;
|
|
47
|
-
releaseContextFromDependency(dependency, context, function(error, releaseContext) {
|
|
48
|
-
if (error) {
|
|
49
|
-
callback(error);
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
var releaseContextCreated = checkReleaseContextCreated(releaseContext, dependency, context);
|
|
53
|
-
if (!releaseContextCreated) {
|
|
54
|
-
var _$error = null;
|
|
55
|
-
callback(_$error);
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
var releaseMatchesDependency = checkReleaseMatchesDependency(releaseContext, dependency, dependentNames, context);
|
|
59
|
-
if (!releaseMatchesDependency) {
|
|
60
|
-
var _$error1 = null;
|
|
61
|
-
callback(_$error1);
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
releaseContextMap[releaseName] = releaseContext;
|
|
65
|
-
log.info("...created the '".concat(releaseName, "' context."));
|
|
66
|
-
createDependencyReleaseContexts(dependency, releaseContext, dependentNames, context, function(error) {
|
|
67
|
-
if (error) {
|
|
68
|
-
callback(error);
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
callback(error);
|
|
72
|
-
});
|
|
73
|
-
}, context);
|
|
74
|
-
}
|
|
75
|
-
function checkReleaseContextCreated(releaseContext, dependency, context) {
|
|
76
|
-
var releaseContextCreated = releaseContext !== null;
|
|
77
|
-
if (!releaseContextCreated) {
|
|
78
|
-
var log = context.log, dependencyName = dependency.getName(), releaseName = dependencyName; ///
|
|
79
|
-
log.warning("The '".concat(releaseName, "' context could not be created. Perhaps the 'meta.json' file is missing or invalid. Or there could be a dependency mismatch."));
|
|
80
|
-
}
|
|
81
|
-
return releaseContextCreated;
|
|
82
|
-
}
|
|
83
|
-
function checkCyclicDependencyExists(dependency, dependentNames, context) {
|
|
84
|
-
var dependencyName = dependency.getName(), dependentNamesIncludesDependencyName = dependentNames.includes(dependencyName), cyclicDependencyExists = dependentNamesIncludesDependencyName; ///
|
|
85
|
-
if (cyclicDependencyExists) {
|
|
86
|
-
var log = context.log, firstDependentName = first(dependentNames), dependencyNames = _to_consumable_array(dependentNames).concat([
|
|
87
|
-
firstDependentName
|
|
88
|
-
]), dependencyNamesString = dependencyNames.join("' -> '");
|
|
89
|
-
log.warning("There is a cyclic dependency: '".concat(dependencyNamesString, "'."));
|
|
90
|
-
}
|
|
91
|
-
return cyclicDependencyExists;
|
|
92
|
-
}
|
|
93
|
-
function checkReleaseMatchesDependency(releaseContext, dependency, dependentNames, context) {
|
|
94
|
-
var releaseMatchesDependency = true;
|
|
95
|
-
var entries = releaseContext.getEntries(), shortenedVersion = dependency.getShortedVersion();
|
|
96
|
-
if (shortenedVersion !== null) {
|
|
97
|
-
var entriesMatchShortenedVersion = entries.matchShortenedVersion(shortenedVersion);
|
|
98
|
-
if (!entriesMatchShortenedVersion) {
|
|
99
|
-
var log = context.log, version = releaseContext.getVersion(), lastDependentName = (0, _array.last)(dependentNames), dependentName = lastDependentName, versionString = version.toString(), dependencyString = dependency.asString();
|
|
100
|
-
log.warning("Version mismatch: The '".concat(dependentName, "' dependent requires the '").concat(dependencyString, "' dependency but a context with version '").concat(versionString, "' was provided."));
|
|
101
|
-
releaseMatchesDependency = false;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return releaseMatchesDependency;
|
|
105
|
-
}
|
|
106
|
-
function createDependencyReleaseContexts(dependency, releaseContext, dependentNames, context, callback) {
|
|
107
|
-
var dependencyName = dependency.getName(), dependencies = releaseContext.getDependencies();
|
|
108
|
-
dependentNames = _to_consumable_array(dependentNames).concat([
|
|
109
|
-
dependencyName
|
|
110
|
-
]); ///
|
|
111
|
-
dependencies.asynchronousForEachDependency(function(dependency, next, done) {
|
|
112
|
-
var cyclicDependencyExists = checkCyclicDependencyExists(dependency, dependentNames);
|
|
113
|
-
if (cyclicDependencyExists) {
|
|
114
|
-
var error = null;
|
|
115
|
-
callback(error);
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
createReleaseContext(dependency, dependentNames, context, function(error) {
|
|
119
|
-
if (error) {
|
|
120
|
-
callback(error);
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
next();
|
|
124
|
-
});
|
|
125
|
-
}, function() {
|
|
126
|
-
var error = null;
|
|
127
|
-
callback(error);
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWxlYXNlQ29udGV4dC9jcmVhdGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGxhc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0LCBjYWxsYmFjaykge1xuICBjb25zdCB7IGxvZywgcmVsZWFzZUNvbnRleHRNYXAgfSA9IGNvbnRleHQsXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIGRlcGVuZGVuY3lTdHJpbmcgPSBkZXBlbmRlbmN5LmFzU3RyaW5nKCksXG4gICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSB8fCBudWxsO1xuXG4gIGxvZy5kZWJ1ZyhgQ3JlYXRpbmcgdGhlICcke3JlbGVhc2VOYW1lfScgY29udGV4dCBnaXZlbiB0aGUgJyR7ZGVwZW5kZW5jeVN0cmluZ30nIGRlcGVuZGVuY3kuLi5gKTtcblxuICBpZiAocmVsZWFzZUNvbnRleHQgIT09IG51bGwpIHtcbiAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICBsb2cuZGVidWcoYC4uLmFscmVhZHkgY3JlYXRlZCB0aGUgJyR7cmVsZWFzZU5hbWV9JyBjb250ZXh0LmApO1xuXG4gICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5IH0gPSBjb250ZXh0O1xuXG4gIHJlbGVhc2VDb250ZXh0RnJvbURlcGVuZGVuY3koZGVwZW5kZW5jeSwgY29udGV4dCwgKGVycm9yLCByZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVsZWFzZUNvbnRleHRDcmVhdGVkID0gY2hlY2tSZWxlYXNlQ29udGV4dENyZWF0ZWQocmVsZWFzZUNvbnRleHQsIGRlcGVuZGVuY3ksIGNvbnRleHQpO1xuXG4gICAgaWYgKCFyZWxlYXNlQ29udGV4dENyZWF0ZWQpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gbnVsbDtcblxuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5ID0gY2hlY2tSZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kocmVsZWFzZUNvbnRleHQsIGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGlmICghcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5KSB7XG4gICAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSA9IHJlbGVhc2VDb250ZXh0O1xuXG4gICAgbG9nLmluZm8oYC4uLmNyZWF0ZWQgdGhlICcke3JlbGVhc2VOYW1lfScgY29udGV4dC5gKTtcblxuICAgIGNyZWF0ZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoZGVwZW5kZW5jeSwgcmVsZWFzZUNvbnRleHQsIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0LCAoZXJyb3IpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICBjYWxsYmFjayhlcnJvcik7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjYWxsYmFjayhlcnJvcik7XG4gICAgfSk7XG4gIH0sIGNvbnRleHQpO1xufVxuXG5mdW5jdGlvbiBjaGVja1JlbGVhc2VDb250ZXh0Q3JlYXRlZChyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgY29udGV4dCkge1xuICBjb25zdCByZWxlYXNlQ29udGV4dENyZWF0ZWQgPSAocmVsZWFzZUNvbnRleHQgIT09IG51bGwpO1xuXG4gIGlmICghcmVsZWFzZUNvbnRleHRDcmVhdGVkKSB7XG4gICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQsXG4gICAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IGRlcGVuZGVuY3lOYW1lOyAvLy9cblxuICAgIGxvZy53YXJuaW5nKGBUaGUgJyR7cmVsZWFzZU5hbWV9JyBjb250ZXh0IGNvdWxkIG5vdCBiZSBjcmVhdGVkLiBQZXJoYXBzIHRoZSAnbWV0YS5qc29uJyBmaWxlIGlzIG1pc3Npbmcgb3IgaW52YWxpZC4gT3IgdGhlcmUgY291bGQgYmUgYSBkZXBlbmRlbmN5IG1pc21hdGNoLmApO1xuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0Q3JlYXRlZDtcbn1cblxuZnVuY3Rpb24gY2hlY2tDeWNsaWNEZXBlbmRlbmN5RXhpc3RzKGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIGRlcGVuZGVudE5hbWVzSW5jbHVkZXNEZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVudE5hbWVzLmluY2x1ZGVzKGRlcGVuZGVuY3lOYW1lKSxcbiAgICAgICAgY3ljbGljRGVwZW5kZW5jeUV4aXN0cyA9IGRlcGVuZGVudE5hbWVzSW5jbHVkZXNEZXBlbmRlbmN5TmFtZTsgIC8vL1xuXG4gIGlmIChjeWNsaWNEZXBlbmRlbmN5RXhpc3RzKSB7XG4gICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQsXG4gICAgICAgICAgZmlyc3REZXBlbmRlbnROYW1lID0gZmlyc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgIGRlcGVuZGVuY3lOYW1lcyA9IFsgIC8vL1xuICAgICAgICAgICAgLi4uZGVwZW5kZW50TmFtZXMsXG4gICAgICAgICAgICBmaXJzdERlcGVuZGVudE5hbWVcbiAgICAgICAgICBdLFxuICAgICAgICAgIGRlcGVuZGVuY3lOYW1lc1N0cmluZyA9IGRlcGVuZGVuY3lOYW1lcy5qb2luKGAnIC0+ICdgKTtcblxuICAgIGxvZy53YXJuaW5nKGBUaGVyZSBpcyBhIGN5Y2xpYyBkZXBlbmRlbmN5OiAnJHtkZXBlbmRlbmN5TmFtZXNTdHJpbmd9Jy5gKTtcbiAgfVxuXG4gIHJldHVybiBjeWNsaWNEZXBlbmRlbmN5RXhpc3RzO1xufVxuXG5mdW5jdGlvbiBjaGVja1JlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpIHtcbiAgbGV0IHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSA9IHRydWU7XG5cbiAgY29uc3QgZW50cmllcyA9IHJlbGVhc2VDb250ZXh0LmdldEVudHJpZXMoKSxcbiAgICAgICAgc2hvcnRlbmVkVmVyc2lvbiA9IGRlcGVuZGVuY3kuZ2V0U2hvcnRlZFZlcnNpb24oKTtcblxuICBpZiAoc2hvcnRlbmVkVmVyc2lvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGVudHJpZXNNYXRjaFNob3J0ZW5lZFZlcnNpb24gPSBlbnRyaWVzLm1hdGNoU2hvcnRlbmVkVmVyc2lvbihzaG9ydGVuZWRWZXJzaW9uKTtcblxuICAgIGlmICghZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbikge1xuICAgICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQsXG4gICAgICAgICAgICB2ZXJzaW9uID0gcmVsZWFzZUNvbnRleHQuZ2V0VmVyc2lvbigpLFxuICAgICAgICAgICAgbGFzdERlcGVuZGVudE5hbWUgPSBsYXN0KGRlcGVuZGVudE5hbWVzKSxcbiAgICAgICAgICAgIGRlcGVuZGVudE5hbWUgPSBsYXN0RGVwZW5kZW50TmFtZSwgIC8vL1xuICAgICAgICAgICAgdmVyc2lvblN0cmluZyA9IHZlcnNpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lTdHJpbmcgPSBkZXBlbmRlbmN5LmFzU3RyaW5nKCk7XG5cbiAgICAgIGxvZy53YXJuaW5nKGBWZXJzaW9uIG1pc21hdGNoOiBUaGUgJyR7ZGVwZW5kZW50TmFtZX0nIGRlcGVuZGVudCByZXF1aXJlcyB0aGUgJyR7ZGVwZW5kZW5jeVN0cmluZ30nIGRlcGVuZGVuY3kgYnV0IGEgY29udGV4dCB3aXRoIHZlcnNpb24gJyR7dmVyc2lvblN0cmluZ30nIHdhcyBwcm92aWRlZC5gKTtcblxuICAgICAgcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCByZWxlYXNlQ29udGV4dCwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIGRlcGVuZGVuY2llcyA9IHJlbGVhc2VDb250ZXh0LmdldERlcGVuZGVuY2llcygpO1xuXG4gIGRlcGVuZGVudE5hbWVzID0gWyAuLi5kZXBlbmRlbnROYW1lcywgZGVwZW5kZW5jeU5hbWUgXTsgIC8vL1xuXG4gIGRlcGVuZGVuY2llcy5hc3luY2hyb25vdXNGb3JFYWNoRGVwZW5kZW5jeSgoZGVwZW5kZW5jeSwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNvbnN0IGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMgPSBjaGVja0N5Y2xpY0RlcGVuZGVuY3lFeGlzdHMoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMpO1xuXG4gICAgaWYgKGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gbnVsbDtcblxuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3JlYXRlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQsIChlcnJvcikgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGVycm9yID0gbnVsbDtcblxuICAgIGNhbGxiYWNrKGVycm9yKTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlUmVsZWFzZUNvbnRleHQiLCJkZXBlbmRlbmN5IiwiZGVwZW5kZW50TmFtZXMiLCJjb250ZXh0IiwiY2FsbGJhY2siLCJsb2ciLCJyZWxlYXNlQ29udGV4dE1hcCIsImRlcGVuZGVuY3lOYW1lIiwiZ2V0TmFtZSIsImRlcGVuZGVuY3lTdHJpbmciLCJhc1N0cmluZyIsInJlbGVhc2VOYW1lIiwicmVsZWFzZUNvbnRleHQiLCJkZWJ1ZyIsImVycm9yIiwicmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeSIsInJlbGVhc2VDb250ZXh0Q3JlYXRlZCIsImNoZWNrUmVsZWFzZUNvbnRleHRDcmVhdGVkIiwicmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5IiwiY2hlY2tSZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kiLCJpbmZvIiwiY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsIndhcm5pbmciLCJjaGVja0N5Y2xpY0RlcGVuZGVuY3lFeGlzdHMiLCJkZXBlbmRlbnROYW1lc0luY2x1ZGVzRGVwZW5kZW5jeU5hbWUiLCJpbmNsdWRlcyIsImN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMiLCJmaXJzdERlcGVuZGVudE5hbWUiLCJmaXJzdCIsImRlcGVuZGVuY3lOYW1lcyIsImRlcGVuZGVuY3lOYW1lc1N0cmluZyIsImpvaW4iLCJlbnRyaWVzIiwiZ2V0RW50cmllcyIsInNob3J0ZW5lZFZlcnNpb24iLCJnZXRTaG9ydGVkVmVyc2lvbiIsImVudHJpZXNNYXRjaFNob3J0ZW5lZFZlcnNpb24iLCJtYXRjaFNob3J0ZW5lZFZlcnNpb24iLCJ2ZXJzaW9uIiwiZ2V0VmVyc2lvbiIsImxhc3REZXBlbmRlbnROYW1lIiwibGFzdCIsImRlcGVuZGVudE5hbWUiLCJ2ZXJzaW9uU3RyaW5nIiwidG9TdHJpbmciLCJkZXBlbmRlbmNpZXMiLCJnZXREZXBlbmRlbmNpZXMiLCJhc3luY2hyb25vdXNGb3JFYWNoRGVwZW5kZW5jeSIsIm5leHQiLCJkb25lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFJQTs7O2VBQXdCQTs7O3FCQUZIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVOLFNBQVNBLHFCQUFxQkMsVUFBVSxFQUFFQyxjQUFjLEVBQUVDLE9BQU8sRUFBRUMsUUFBUTtJQUN4RixJQUFRQyxNQUEyQkYsUUFBM0JFLEtBQUtDLG9CQUFzQkgsUUFBdEJHLG1CQUNQQyxpQkFBaUJOLFdBQVdPLE9BQU8sSUFDbkNDLG1CQUFtQlIsV0FBV1MsUUFBUSxJQUN0Q0MsY0FBY0osZ0JBQ2RLLGlCQUFpQk4saUJBQWlCLENBQUNLLFlBQVksSUFBSTtJQUV6RE4sSUFBSVEsS0FBSyxDQUFDLEFBQUMsaUJBQW1ESixPQUFuQ0UsYUFBWSx5QkFBd0MsT0FBakJGLGtCQUFpQjtJQUUvRSxJQUFJRyxtQkFBbUIsTUFBTTtRQUMzQixJQUFNRSxRQUFRO1FBRWRULElBQUlRLEtBQUssQ0FBQyxBQUFDLDJCQUFzQyxPQUFaRixhQUFZO1FBRWpEUCxTQUFTVTtRQUVUO0lBQ0Y7SUFFQSxJQUFNLEFBQUVDLCtCQUFpQ1osUUFBakNZO0lBRVJBLDZCQUE2QmQsWUFBWUUsU0FBUyxTQUFDVyxPQUFPRjtRQUN4RCxJQUFJRSxPQUFPO1lBQ1RWLFNBQVNVO1lBRVQ7UUFDRjtRQUVBLElBQU1FLHdCQUF3QkMsMkJBQTJCTCxnQkFB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
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return initialiseReleaseContext;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
function initialiseReleaseContext(dependency, context) {
|
|
12
|
-
var releaseContextInitialised = false;
|
|
13
|
-
var releaseContextMap = context.releaseContextMap, dependencyName = dependency.getName(), releaseName = dependencyName, releaseContext = releaseContextMap[releaseName] || null;
|
|
14
|
-
if (releaseContext === null) {
|
|
15
|
-
var log = context.log;
|
|
16
|
-
log.warning("Unable to initialise the '".concat(dependencyName, "' context because it has not been created."));
|
|
17
|
-
} else {
|
|
18
|
-
releaseContextInitialised = releaseContext.isInitialised();
|
|
19
|
-
if (!releaseContextInitialised) {
|
|
20
|
-
var dependencyReleaseContextsInitialised = initialiseDependencyReleaseContexts(dependency, releaseContext, context);
|
|
21
|
-
if (dependencyReleaseContextsInitialised) {
|
|
22
|
-
var log1 = context.log, verbose = context.verbose, releaseContexts = retrieveReleaseContexts(releaseContext, releaseContextMap);
|
|
23
|
-
log1.debug("Initialising the '".concat(dependencyName, "' context..."));
|
|
24
|
-
releaseContextInitialised = releaseContext.initialise(releaseContexts, verbose);
|
|
25
|
-
releaseContextInitialised ? log1.info("...initialised the '".concat(dependencyName, "' context.")) : log1.warning("...unable to initialise the '".concat(dependencyName, "' context."));
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return releaseContextInitialised;
|
|
30
|
-
}
|
|
31
|
-
function retrieveReleaseContexts(releaseContext, releaseContextMap) {
|
|
32
|
-
var releaseContexts = [], remainingReleaseContext = releaseContext, remainingReleaseContexts = [
|
|
33
|
-
remainingReleaseContext
|
|
34
|
-
];
|
|
35
|
-
var remainingReleaseContextsLength = remainingReleaseContexts.length;
|
|
36
|
-
while(remainingReleaseContextsLength > 0){
|
|
37
|
-
var remainingReleaseContext1 = remainingReleaseContexts.shift(), _$releaseContext = remainingReleaseContext1; ///
|
|
38
|
-
releaseContexts.push(_$releaseContext);
|
|
39
|
-
var dependencies = _$releaseContext.getDependencies();
|
|
40
|
-
dependencies.forEachDependency(function(dependency) {
|
|
41
|
-
var dependencyName = dependency.getName(), releaseName = dependencyName, _$releaseContext = releaseContextMap[releaseName], releaseContextsIncludesReleaseContext = releaseContexts.includes(_$releaseContext), remainingReleaseContextsIncludesReleaseContext = remainingReleaseContexts.includes(_$releaseContext);
|
|
42
|
-
if (!releaseContextsIncludesReleaseContext && !remainingReleaseContextsIncludesReleaseContext) {
|
|
43
|
-
var remainingReleaseContext = _$releaseContext; ///
|
|
44
|
-
remainingReleaseContexts.push(remainingReleaseContext);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
remainingReleaseContextsLength = remainingReleaseContexts.length;
|
|
48
|
-
}
|
|
49
|
-
return releaseContexts;
|
|
50
|
-
}
|
|
51
|
-
function initialiseDependencyReleaseContexts(dependency, releaseContext, context) {
|
|
52
|
-
var dependencies = releaseContext.getDependencies(), dependencyReleaseContextsInitialised = dependencies.everyDependency(function(dependency) {
|
|
53
|
-
var releaseContextInitialised = initialiseReleaseContext(dependency, context);
|
|
54
|
-
if (releaseContextInitialised) {
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
return dependencyReleaseContextsInitialised;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWxlYXNlQ29udGV4dC9pbml0aWFsaXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgY29udGV4dCkge1xuICBsZXQgcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRNYXAgfSA9IGNvbnRleHQsXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSB8fCBudWxsO1xuXG4gIGlmIChyZWxlYXNlQ29udGV4dCA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0O1xuXG4gICAgbG9nLndhcm5pbmcoYFVuYWJsZSB0byBpbml0aWFsaXNlIHRoZSAnJHtkZXBlbmRlbmN5TmFtZX0nIGNvbnRleHQgYmVjYXVzZSBpdCBoYXMgbm90IGJlZW4gY3JlYXRlZC5gKTtcbiAgfSBlbHNlIHtcbiAgICByZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkID0gcmVsZWFzZUNvbnRleHQuaXNJbml0aWFsaXNlZCgpO1xuXG4gICAgaWYgKCFyZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkKSB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzSW5pdGlhbGlzZWQgPSBpbml0aWFsaXNlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCByZWxlYXNlQ29udGV4dCwgY29udGV4dCk7XG5cbiAgICAgIGlmIChkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzSW5pdGlhbGlzZWQpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIHZlcmJvc2UgfSA9IGNvbnRleHQsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0cyA9IHJldHJpZXZlUmVsZWFzZUNvbnRleHRzKHJlbGVhc2VDb250ZXh0LCByZWxlYXNlQ29udGV4dE1hcCk7XG5cbiAgICAgICAgbG9nLmRlYnVnKGBJbml0aWFsaXNpbmcgdGhlICcke2RlcGVuZGVuY3lOYW1lfScgY29udGV4dC4uLmApO1xuXG4gICAgICAgIHJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQgPSByZWxlYXNlQ29udGV4dC5pbml0aWFsaXNlKHJlbGVhc2VDb250ZXh0cywgdmVyYm9zZSk7XG5cbiAgICAgICAgcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCA/XG4gICAgICAgICAgbG9nLmluZm8oYC4uLmluaXRpYWxpc2VkIHRoZSAnJHtkZXBlbmRlbmN5TmFtZX0nIGNvbnRleHQuYCkgOlxuICAgICAgICAgICAgbG9nLndhcm5pbmcoYC4uLnVuYWJsZSB0byBpbml0aWFsaXNlIHRoZSAnJHtkZXBlbmRlbmN5TmFtZX0nIGNvbnRleHQuYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQ7XG59XG5cbmZ1bmN0aW9uIHJldHJpZXZlUmVsZWFzZUNvbnRleHRzKHJlbGVhc2VDb250ZXh0LCByZWxlYXNlQ29udGV4dE1hcCkge1xuICBjb25zdCByZWxlYXNlQ29udGV4dHMgPSBbXSxcbiAgICAgICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dCwgIC8vL1xuICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMgPSBbXG4gICAgICAgICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRcbiAgICAgICAgXTtcblxuICBsZXQgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzTGVuZ3RoID0gcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLmxlbmd0aDtcblxuICB3aGlsZSAocmVtYWluaW5nUmVsZWFzZUNvbnRleHRzTGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0ID0gcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLnNoaWZ0KCksXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dDsgIC8vL1xuXG4gICAgcmVsZWFzZUNvbnRleHRzLnB1c2gocmVsZWFzZUNvbnRleHQpO1xuXG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgICBkZXBlbmRlbmNpZXMuZm9yRWFjaERlcGVuZGVuY3koKGRlcGVuZGVuY3kpID0+IHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgICAgICByZWxlYXNlTmFtZSA9IGRlcGVuZGVuY3lOYW1lLCAvLy9cbiAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdLFxuICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0cy5pbmNsdWRlcyhyZWxlYXNlQ29udGV4dCksXG4gICAgICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0ID0gcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLmluY2x1ZGVzKHJlbGVhc2VDb250ZXh0KTtcblxuICAgICAgaWYgKCFyZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0ICYmICFyZW1haW5pbmdSZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHQ7IC8vL1xuXG4gICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cy5wdXNoKHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0xlbmd0aCA9IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cy5sZW5ndGg7XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZUNvbnRleHRzO1xufVxuXG5mdW5jdGlvbiBpbml0aWFsaXNlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCByZWxlYXNlQ29udGV4dCwgY29udGV4dCkge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKSxcbiAgICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0luaXRpYWxpc2VkID0gZGVwZW5kZW5jaWVzLmV2ZXJ5RGVwZW5kZW5jeSgoZGVwZW5kZW5jeSkgPT4geyAgLy8vXG4gICAgICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCA9IGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChyZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gIHJldHVybiBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzSW5pdGlhbGlzZWQ7XG59Il0sIm5hbWVzIjpbImluaXRpYWxpc2VSZWxlYXNlQ29udGV4dCIsImRlcGVuZGVuY3kiLCJjb250ZXh0IiwicmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCIsInJlbGVhc2VDb250ZXh0TWFwIiwiZGVwZW5kZW5jeU5hbWUiLCJnZXROYW1lIiwicmVsZWFzZU5hbWUiLCJyZWxlYXNlQ29udGV4dCIsImxvZyIsIndhcm5pbmciLCJpc0luaXRpYWxpc2VkIiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0luaXRpYWxpc2VkIiwiaW5pdGlhbGlzZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJ2ZXJib3NlIiwicmVsZWFzZUNvbnRleHRzIiwicmV0cmlldmVSZWxlYXNlQ29udGV4dHMiLCJkZWJ1ZyIsImluaXRpYWxpc2UiLCJpbmZvIiwicmVtYWluaW5nUmVsZWFzZUNvbnRleHQiLCJyZW1haW5pbmdSZWxlYXNlQ29udGV4dHMiLCJyZW1haW5pbmdSZWxlYXNlQ29udGV4dHNMZW5ndGgiLCJsZW5ndGgiLCJzaGlmdCIsInB1c2giLCJkZXBlbmRlbmNpZXMiLCJnZXREZXBlbmRlbmNpZXMiLCJmb3JFYWNoRGVwZW5kZW5jeSIsInJlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQiLCJpbmNsdWRlcyIsInJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQiLCJldmVyeURlcGVuZGVuY3kiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUVBOzs7ZUFBd0JBOzs7QUFBVCxTQUFTQSx5QkFBeUJDLFVBQVUsRUFBRUMsT0FBTztJQUNsRSxJQUFJQyw0QkFBNEI7SUFFaEMsSUFBTSxBQUFFQyxvQkFBc0JGLFFBQXRCRSxtQkFDRkMsaUJBQWlCSixXQUFXSyxPQUFPLElBQ25DQyxjQUFjRixnQkFDZEcsaUJBQWlCSixpQkFBaUIsQ0FBQ0csWUFBWSxJQUFJO0lBRXpELElBQUlDLG1CQUFtQixNQUFNO1FBQzNCLElBQU0sQUFBRUMsTUFBUVAsUUFBUk87UUFFUkEsSUFBSUMsT0FBTyxDQUFDLEFBQUMsNkJBQTJDLE9BQWZMLGdCQUFlO0lBQzFELE9BQU87UUFDTEYsNEJBQTRCSyxlQUFlRyxhQUFhO1FBRXhELElBQUksQ0FBQ1IsMkJBQTJCO1lBQzlCLElBQU1TLHVDQUF1Q0Msb0NBQW9DWixZQUFZTyxnQkFBZ0JOO1lBRTdHLElBQUlVLHNDQUFzQztnQkFDeEMsSUFBUUgsT0FBaUJQLFFBQWpCTyxLQUFLSyxVQUFZWixRQUFaWSxTQUNQQyxrQkFBa0JDLHdCQUF3QlIsZ0JBQWdCSjtnQkFFaEVLLEtBQUlRLEtBQUssQ0FBQyxBQUFDLHFCQUFtQyxPQUFmWixnQkFBZTtnQkFFOUNGLDRCQUE0QkssZUFBZVUsVUFBVSxDQUFDSCxpQkFBaUJEO2dCQUV2RVgsNEJBQ0VNLEtBQUlVLElBQUksQ0FBQyxBQUFDLHVCQUFxQyxPQUFmZCxnQkFBZSxpQkFDN0NJLEtBQUlDLE9BQU8sQ0FBQyxBQUFDLGdDQUE4QyxPQUFmTCxnQkFBZTtZQUNqRTtRQUNGO0lBQ0Y7SUFFQSxPQUFPRjtBQUNUO0FBRUEsU0FBU2Esd0JBQXdCUixjQUFjLEVBQUVKLGlCQUFpQjtJQUNoRSxJQUFNVyxrQkFBa0IsRUFBRSxFQUNwQkssMEJBQTBCWixnQkFDMUJhLDJCQUEyQjtRQUN6QkQ7S0FDRDtJQUVQLElBQUlFLGlDQUFpQ0QseUJBQXlCRSxNQUFNO0lBRXBFLE1BQU9ELGlDQUFpQyxFQUFHO1FBQ3pDLElBQU1GLDJCQUEwQkMseUJBQXlCRyxLQUFLLElBQ3hEaEIsbUJBQWlCWSwwQkFBMEIsR0FBRztRQUVwREwsZ0JBQWdCVSxJQUFJLENBQUNqQjtRQUVyQixJQUFNa0IsZUFBZWxCLGlCQUFlbUIsZUFBZTtRQUVuREQsYUFBYUUsaUJBQWlCLENBQUMsU0FBQzNCO1lBQzlCLElBQU1JLGlCQUFpQkosV0FBV0ssT0FBTyxJQUNuQ0MsY0FBY0YsZ0JBQ2RHLG1CQUFpQkosaUJBQWlCLENBQUNHLFlBQVksRUFDL0NzQix3Q0FBd0NkLGdCQUFnQmUsUUFBUSxDQUFDdEIsbUJBQ2pFdUIsaURBQWlEVix5QkFBeUJTLFFBQVEsQ0FBQ3RCO1lBRXpGLElBQUksQ0FBQ3FCLHlDQUF5QyxDQUFDRSxnREFBZ0Q7Z0JBQzdGLElBQU1YLDBCQUEwQlosa0JBQWdCLEdBQUc7Z0JBRW5EYSx5QkFBeUJJLElBQUksQ0FBQ0w7WUFDaEM7UUFDRjtRQUVBRSxpQ0FBaUNELHlCQUF5QkUsTUFBTTtJQUNsRTtJQUVBLE9BQU9SO0FBQ1Q7QUFFQSxTQUFTRixvQ0FBb0NaLFVBQVUsRUFBRU8sY0FBYyxFQUFFTixPQUFPO0lBQzlFLElBQU13QixlQUFlbEIsZUFBZW1CLGVBQWUsSUFDN0NmLHVDQUF1Q2MsYUFBYU0sZUFBZSxDQUFDLFNBQUMvQjtRQUNuRSxJQUFNRSw0QkFBNEJILHlCQUF5QkMsWUFBWUM7UUFFdkUsSUFBSUMsMkJBQTJCO1lBQzdCLE9BQU87UUFDVDtJQUNGO0lBRU4sT0FBT1M7QUFDVCJ9
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { last } from "../utilities/array";
|
|
4
|
-
|
|
5
|
-
export default function createReleaseContext(dependency, dependentNames, context, callback) {
|
|
6
|
-
const { log, releaseContextMap } = context,
|
|
7
|
-
dependencyName = dependency.getName(),
|
|
8
|
-
dependencyString = dependency.asString(),
|
|
9
|
-
releaseName = dependencyName, ///
|
|
10
|
-
releaseContext = releaseContextMap[releaseName] || null;
|
|
11
|
-
|
|
12
|
-
log.debug(`Creating the '${releaseName}' context given the '${dependencyString}' dependency...`);
|
|
13
|
-
|
|
14
|
-
if (releaseContext !== null) {
|
|
15
|
-
const error = null;
|
|
16
|
-
|
|
17
|
-
log.debug(`...already created the '${releaseName}' context.`);
|
|
18
|
-
|
|
19
|
-
callback(error);
|
|
20
|
-
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const { releaseContextFromDependency } = context;
|
|
25
|
-
|
|
26
|
-
releaseContextFromDependency(dependency, context, (error, releaseContext) => {
|
|
27
|
-
if (error) {
|
|
28
|
-
callback(error);
|
|
29
|
-
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const releaseContextCreated = checkReleaseContextCreated(releaseContext, dependency, context);
|
|
34
|
-
|
|
35
|
-
if (!releaseContextCreated) {
|
|
36
|
-
const error = null;
|
|
37
|
-
|
|
38
|
-
callback(error);
|
|
39
|
-
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const releaseMatchesDependency = checkReleaseMatchesDependency(releaseContext, dependency, dependentNames, context);
|
|
44
|
-
|
|
45
|
-
if (!releaseMatchesDependency) {
|
|
46
|
-
const error = null;
|
|
47
|
-
|
|
48
|
-
callback(error);
|
|
49
|
-
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
releaseContextMap[releaseName] = releaseContext;
|
|
54
|
-
|
|
55
|
-
log.info(`...created the '${releaseName}' context.`);
|
|
56
|
-
|
|
57
|
-
createDependencyReleaseContexts(dependency, releaseContext, dependentNames, context, (error) => {
|
|
58
|
-
if (error) {
|
|
59
|
-
callback(error);
|
|
60
|
-
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
callback(error);
|
|
65
|
-
});
|
|
66
|
-
}, context);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
function checkReleaseContextCreated(releaseContext, dependency, context) {
|
|
70
|
-
const releaseContextCreated = (releaseContext !== null);
|
|
71
|
-
|
|
72
|
-
if (!releaseContextCreated) {
|
|
73
|
-
const { log } = context,
|
|
74
|
-
dependencyName = dependency.getName(),
|
|
75
|
-
releaseName = dependencyName; ///
|
|
76
|
-
|
|
77
|
-
log.warning(`The '${releaseName}' context could not be created. Perhaps the 'meta.json' file is missing or invalid. Or there could be a dependency mismatch.`);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
return releaseContextCreated;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
function checkCyclicDependencyExists(dependency, dependentNames, context) {
|
|
84
|
-
const dependencyName = dependency.getName(),
|
|
85
|
-
dependentNamesIncludesDependencyName = dependentNames.includes(dependencyName),
|
|
86
|
-
cyclicDependencyExists = dependentNamesIncludesDependencyName; ///
|
|
87
|
-
|
|
88
|
-
if (cyclicDependencyExists) {
|
|
89
|
-
const { log } = context,
|
|
90
|
-
firstDependentName = first(dependentNames),
|
|
91
|
-
dependencyNames = [ ///
|
|
92
|
-
...dependentNames,
|
|
93
|
-
firstDependentName
|
|
94
|
-
],
|
|
95
|
-
dependencyNamesString = dependencyNames.join(`' -> '`);
|
|
96
|
-
|
|
97
|
-
log.warning(`There is a cyclic dependency: '${dependencyNamesString}'.`);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
return cyclicDependencyExists;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
function checkReleaseMatchesDependency(releaseContext, dependency, dependentNames, context) {
|
|
104
|
-
let releaseMatchesDependency = true;
|
|
105
|
-
|
|
106
|
-
const entries = releaseContext.getEntries(),
|
|
107
|
-
shortenedVersion = dependency.getShortedVersion();
|
|
108
|
-
|
|
109
|
-
if (shortenedVersion !== null) {
|
|
110
|
-
const entriesMatchShortenedVersion = entries.matchShortenedVersion(shortenedVersion);
|
|
111
|
-
|
|
112
|
-
if (!entriesMatchShortenedVersion) {
|
|
113
|
-
const { log } = context,
|
|
114
|
-
version = releaseContext.getVersion(),
|
|
115
|
-
lastDependentName = last(dependentNames),
|
|
116
|
-
dependentName = lastDependentName, ///
|
|
117
|
-
versionString = version.toString(),
|
|
118
|
-
dependencyString = dependency.asString();
|
|
119
|
-
|
|
120
|
-
log.warning(`Version mismatch: The '${dependentName}' dependent requires the '${dependencyString}' dependency but a context with version '${versionString}' was provided.`);
|
|
121
|
-
|
|
122
|
-
releaseMatchesDependency = false;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return releaseMatchesDependency;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
function createDependencyReleaseContexts(dependency, releaseContext, dependentNames, context, callback) {
|
|
130
|
-
const dependencyName = dependency.getName(),
|
|
131
|
-
dependencies = releaseContext.getDependencies();
|
|
132
|
-
|
|
133
|
-
dependentNames = [ ...dependentNames, dependencyName ]; ///
|
|
134
|
-
|
|
135
|
-
dependencies.asynchronousForEachDependency((dependency, next, done) => {
|
|
136
|
-
const cyclicDependencyExists = checkCyclicDependencyExists(dependency, dependentNames);
|
|
137
|
-
|
|
138
|
-
if (cyclicDependencyExists) {
|
|
139
|
-
const error = null;
|
|
140
|
-
|
|
141
|
-
callback(error);
|
|
142
|
-
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
createReleaseContext(dependency, dependentNames, context, (error) => {
|
|
147
|
-
if (error) {
|
|
148
|
-
callback(error);
|
|
149
|
-
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
next();
|
|
154
|
-
});
|
|
155
|
-
}, () => {
|
|
156
|
-
const error = null;
|
|
157
|
-
|
|
158
|
-
callback(error);
|
|
159
|
-
});
|
|
160
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
export default function initialiseReleaseContext(dependency, context) {
|
|
4
|
-
let releaseContextInitialised = false;
|
|
5
|
-
|
|
6
|
-
const { releaseContextMap } = context,
|
|
7
|
-
dependencyName = dependency.getName(),
|
|
8
|
-
releaseName = dependencyName, ///
|
|
9
|
-
releaseContext = releaseContextMap[releaseName] || null;
|
|
10
|
-
|
|
11
|
-
if (releaseContext === null) {
|
|
12
|
-
const { log } = context;
|
|
13
|
-
|
|
14
|
-
log.warning(`Unable to initialise the '${dependencyName}' context because it has not been created.`);
|
|
15
|
-
} else {
|
|
16
|
-
releaseContextInitialised = releaseContext.isInitialised();
|
|
17
|
-
|
|
18
|
-
if (!releaseContextInitialised) {
|
|
19
|
-
const dependencyReleaseContextsInitialised = initialiseDependencyReleaseContexts(dependency, releaseContext, context);
|
|
20
|
-
|
|
21
|
-
if (dependencyReleaseContextsInitialised) {
|
|
22
|
-
const { log, verbose } = context,
|
|
23
|
-
releaseContexts = retrieveReleaseContexts(releaseContext, releaseContextMap);
|
|
24
|
-
|
|
25
|
-
log.debug(`Initialising the '${dependencyName}' context...`);
|
|
26
|
-
|
|
27
|
-
releaseContextInitialised = releaseContext.initialise(releaseContexts, verbose);
|
|
28
|
-
|
|
29
|
-
releaseContextInitialised ?
|
|
30
|
-
log.info(`...initialised the '${dependencyName}' context.`) :
|
|
31
|
-
log.warning(`...unable to initialise the '${dependencyName}' context.`);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return releaseContextInitialised;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
function retrieveReleaseContexts(releaseContext, releaseContextMap) {
|
|
40
|
-
const releaseContexts = [],
|
|
41
|
-
remainingReleaseContext = releaseContext, ///
|
|
42
|
-
remainingReleaseContexts = [
|
|
43
|
-
remainingReleaseContext
|
|
44
|
-
];
|
|
45
|
-
|
|
46
|
-
let remainingReleaseContextsLength = remainingReleaseContexts.length;
|
|
47
|
-
|
|
48
|
-
while (remainingReleaseContextsLength > 0) {
|
|
49
|
-
const remainingReleaseContext = remainingReleaseContexts.shift(),
|
|
50
|
-
releaseContext = remainingReleaseContext; ///
|
|
51
|
-
|
|
52
|
-
releaseContexts.push(releaseContext);
|
|
53
|
-
|
|
54
|
-
const dependencies = releaseContext.getDependencies();
|
|
55
|
-
|
|
56
|
-
dependencies.forEachDependency((dependency) => {
|
|
57
|
-
const dependencyName = dependency.getName(),
|
|
58
|
-
releaseName = dependencyName, ///
|
|
59
|
-
releaseContext = releaseContextMap[releaseName],
|
|
60
|
-
releaseContextsIncludesReleaseContext = releaseContexts.includes(releaseContext),
|
|
61
|
-
remainingReleaseContextsIncludesReleaseContext = remainingReleaseContexts.includes(releaseContext);
|
|
62
|
-
|
|
63
|
-
if (!releaseContextsIncludesReleaseContext && !remainingReleaseContextsIncludesReleaseContext) {
|
|
64
|
-
const remainingReleaseContext = releaseContext; ///
|
|
65
|
-
|
|
66
|
-
remainingReleaseContexts.push(remainingReleaseContext);
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
remainingReleaseContextsLength = remainingReleaseContexts.length;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return releaseContexts;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
function initialiseDependencyReleaseContexts(dependency, releaseContext, context) {
|
|
77
|
-
const dependencies = releaseContext.getDependencies(),
|
|
78
|
-
dependencyReleaseContextsInitialised = dependencies.everyDependency((dependency) => { ///
|
|
79
|
-
const releaseContextInitialised = initialiseReleaseContext(dependency, context);
|
|
80
|
-
|
|
81
|
-
if (releaseContextInitialised) {
|
|
82
|
-
return true;
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
return dependencyReleaseContextsInitialised;
|
|
87
|
-
}
|