occam-verify-cli 0.0.993 → 0.0.994

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/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
- initialiseReleaseContext: function() {
25
- return _initialise.default;
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 _initialise = /*#__PURE__*/ _interop_require_default(require("./releaseContext/initialise"));
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2cgfSBmcm9tIFwiLi9sb2dcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdmVyaWZ5UmVsZWFzZSB9IGZyb20gXCIuL3ZlcmlmeS9yZWxlYXNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlbGVhc2VDb250ZXh0IH0gZnJvbSBcIi4vY29udGV4dC9yZWxlYXNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNyZWF0ZVJlbGVhc2VDb250ZXh0IH0gZnJvbSBcIi4vcmVsZWFzZUNvbnRleHQvY3JlYXRlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGN1c3RvbUdyYW1tYXJVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvY3VzdG9tR3JhbW1hclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9yZWxlYXNlQ29udGV4dC9pbml0aWFsaXNlXCI7XG5cbiJdLCJuYW1lcyI6WyJMb2ciLCJSZWxlYXNlQ29udGV4dCIsImNyZWF0ZVJlbGVhc2VDb250ZXh0IiwiY3VzdG9tR3JhbW1hclV0aWxpdGllcyIsImluaXRpYWxpc2VSZWxlYXNlQ29udGV4dCIsInZlcmlmeVJlbGVhc2UiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVvQkEsR0FBRztlQUFIQSxZQUFHOztJQUVIQyxjQUFjO2VBQWRBLGlCQUFjOztJQUNkQyxvQkFBb0I7ZUFBcEJBLGVBQW9COztJQUNwQkMsc0JBQXNCO2VBQXRCQSxzQkFBc0I7O0lBQ3RCQyx3QkFBd0I7ZUFBeEJBLG1CQUF3Qjs7SUFKeEJDLGFBQWE7ZUFBYkEsZ0JBQWE7OzswREFERjs4REFDVTsrREFDQzs2REFDTTtvRUFDRTtpRUFDRSJ9
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2cgfSBmcm9tIFwiLi9sb2dcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdmVyaWZ5UmVsZWFzZSB9IGZyb20gXCIuL3ZlcmlmeS9yZWxlYXNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlbGVhc2VDb250ZXh0IH0gZnJvbSBcIi4vY29udGV4dC9yZWxlYXNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGN1c3RvbUdyYW1tYXJVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvY3VzdG9tR3JhbW1hclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByZWxlYXNlQ29udGV4dFV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9yZWxlYXNlQ29udGV4dFwiO1xuXG4iXSwibmFtZXMiOlsiTG9nIiwiUmVsZWFzZUNvbnRleHQiLCJjdXN0b21HcmFtbWFyVXRpbGl0aWVzIiwicmVsZWFzZUNvbnRleHRVdGlsaXRpZXMiLCJ2ZXJpZnlSZWxlYXNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFb0JBLEdBQUc7ZUFBSEEsWUFBRzs7SUFFSEMsY0FBYztlQUFkQSxpQkFBYzs7SUFDZEMsc0JBQXNCO2VBQXRCQSxzQkFBc0I7O0lBQ3RCQyx1QkFBdUI7ZUFBdkJBLHVCQUF1Qjs7SUFIdkJDLGFBQWE7ZUFBYkEsZ0JBQWE7OzswREFERjs4REFDVTsrREFDQztvRUFDUTtxRUFDQyJ9
@@ -0,0 +1,195 @@
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(), dependencyString = dependency.asString(), releaseName = dependencyName, releaseContext = releaseContextMap[releaseName] || null;
50
+ log.debug("Creating the '".concat(releaseName, "' context given the '").concat(dependencyString, "' dependency..."));
51
+ if (releaseContext !== null) {
52
+ var error = null;
53
+ log.debug("...already created the '".concat(releaseName, "' context."));
54
+ callback(error);
55
+ return;
56
+ }
57
+ var releaseContextFromDependency = context.releaseContextFromDependency;
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;
66
+ callback(_$error);
67
+ return;
68
+ }
69
+ var releaseMatchesDependency = checkReleaseMatchesDependency(releaseContext, dependency, dependentNames, context);
70
+ if (!releaseMatchesDependency) {
71
+ var _$error1 = null;
72
+ callback(_$error1);
73
+ return;
74
+ }
75
+ releaseContextMap[releaseName] = releaseContext;
76
+ log.info("...created the '".concat(releaseName, "' context."));
77
+ createDependencyReleaseContexts(dependency, releaseContext, dependentNames, context, function(error) {
78
+ if (error) {
79
+ callback(error);
80
+ return;
81
+ }
82
+ callback(error);
83
+ });
84
+ }, context);
85
+ }
86
+ function initialiseReleaseContext(dependency, context) {
87
+ var releaseContextInitialised = false;
88
+ var releaseContextMap = context.releaseContextMap, dependencyName = dependency.getName(), releaseName = dependencyName, releaseContext = releaseContextMap[releaseName] || null;
89
+ if (releaseContext === null) {
90
+ var log = context.log;
91
+ log.warning("Unable to initialise the '".concat(dependencyName, "' context because it has not been created."));
92
+ } else {
93
+ releaseContextInitialised = releaseContext.isInitialised();
94
+ if (!releaseContextInitialised) {
95
+ var dependencyReleaseContextsInitialised = initialiseDependencyReleaseContexts(dependency, releaseContext, context);
96
+ if (dependencyReleaseContextsInitialised) {
97
+ var log1 = context.log, verbose = context.verbose, releaseContexts = retrieveReleaseContexts(releaseContext, releaseContextMap);
98
+ log1.debug("Initialising the '".concat(dependencyName, "' context..."));
99
+ releaseContextInitialised = releaseContext.initialise(releaseContexts, verbose);
100
+ releaseContextInitialised ? log1.info("...initialised the '".concat(dependencyName, "' context.")) : log1.warning("...unable to initialise the '".concat(dependencyName, "' context."));
101
+ }
102
+ }
103
+ }
104
+ return releaseContextInitialised;
105
+ }
106
+ var _default = {
107
+ createReleaseContext: createReleaseContext,
108
+ initialiseReleaseContext: initialiseReleaseContext
109
+ };
110
+ function retrieveReleaseContexts(releaseContext, releaseContextMap) {
111
+ var releaseContexts = [], remainingReleaseContext = releaseContext, remainingReleaseContexts = [
112
+ remainingReleaseContext
113
+ ];
114
+ var remainingReleaseContextsLength = remainingReleaseContexts.length;
115
+ while(remainingReleaseContextsLength > 0){
116
+ var remainingReleaseContext1 = remainingReleaseContexts.shift(), _$releaseContext = remainingReleaseContext1; ///
117
+ releaseContexts.push(_$releaseContext);
118
+ var dependencies = _$releaseContext.getDependencies();
119
+ dependencies.forEachDependency(function(dependency) {
120
+ var dependencyName = dependency.getName(), releaseName = dependencyName, _$releaseContext = releaseContextMap[releaseName], releaseContextsIncludesReleaseContext = releaseContexts.includes(_$releaseContext), remainingReleaseContextsIncludesReleaseContext = remainingReleaseContexts.includes(_$releaseContext);
121
+ if (!releaseContextsIncludesReleaseContext && !remainingReleaseContextsIncludesReleaseContext) {
122
+ var remainingReleaseContext = _$releaseContext; ///
123
+ remainingReleaseContexts.push(remainingReleaseContext);
124
+ }
125
+ });
126
+ remainingReleaseContextsLength = remainingReleaseContexts.length;
127
+ }
128
+ return releaseContexts;
129
+ }
130
+ function checkReleaseContextCreated(releaseContext, dependency, context) {
131
+ var releaseContextCreated = releaseContext !== null;
132
+ if (!releaseContextCreated) {
133
+ var log = context.log, dependencyName = dependency.getName(), releaseName = dependencyName; ///
134
+ 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."));
135
+ }
136
+ return releaseContextCreated;
137
+ }
138
+ function checkCyclicDependencyExists(dependency, dependentNames, context) {
139
+ var dependencyName = dependency.getName(), dependentNamesIncludesDependencyName = dependentNames.includes(dependencyName), cyclicDependencyExists = dependentNamesIncludesDependencyName; ///
140
+ if (cyclicDependencyExists) {
141
+ var log = context.log, firstDependentName = first(dependentNames), dependencyNames = _to_consumable_array(dependentNames).concat([
142
+ firstDependentName
143
+ ]), dependencyNamesString = dependencyNames.join("' -> '");
144
+ log.warning("There is a cyclic dependency: '".concat(dependencyNamesString, "'."));
145
+ }
146
+ return cyclicDependencyExists;
147
+ }
148
+ function checkReleaseMatchesDependency(releaseContext, dependency, dependentNames, context) {
149
+ var releaseMatchesDependency = true;
150
+ var entries = releaseContext.getEntries(), shortenedVersion = dependency.getShortedVersion();
151
+ if (shortenedVersion !== null) {
152
+ var entriesMatchShortenedVersion = entries.matchShortenedVersion(shortenedVersion);
153
+ if (!entriesMatchShortenedVersion) {
154
+ var log = context.log, version = releaseContext.getVersion(), lastDependentName = (0, _array.last)(dependentNames), dependentName = lastDependentName, versionString = version.toString(), dependencyString = dependency.asString();
155
+ log.warning("Version mismatch: The '".concat(dependentName, "' dependent requires the '").concat(dependencyString, "' dependency but a context with version '").concat(versionString, "' was provided."));
156
+ releaseMatchesDependency = false;
157
+ }
158
+ }
159
+ return releaseMatchesDependency;
160
+ }
161
+ function createDependencyReleaseContexts(dependency, releaseContext, dependentNames, context, callback) {
162
+ var dependencyName = dependency.getName(), dependencies = releaseContext.getDependencies();
163
+ dependentNames = _to_consumable_array(dependentNames).concat([
164
+ dependencyName
165
+ ]); ///
166
+ dependencies.asynchronousForEachDependency(function(dependency, next, done) {
167
+ var cyclicDependencyExists = checkCyclicDependencyExists(dependency, dependentNames);
168
+ if (cyclicDependencyExists) {
169
+ var error = null;
170
+ callback(error);
171
+ return;
172
+ }
173
+ createReleaseContext(dependency, dependentNames, context, function(error) {
174
+ if (error) {
175
+ callback(error);
176
+ return;
177
+ }
178
+ next();
179
+ });
180
+ }, function() {
181
+ var error = null;
182
+ callback(error);
183
+ });
184
+ }
185
+ function initialiseDependencyReleaseContexts(dependency, releaseContext, context) {
186
+ var dependencies = releaseContext.getDependencies(), dependencyReleaseContextsInitialised = dependencies.everyDependency(function(dependency) {
187
+ var releaseContextInitialised = initialiseReleaseContext(dependency, context);
188
+ if (releaseContextInitialised) {
189
+ return true;
190
+ }
191
+ });
192
+ return dependencyReleaseContextsInitialised;
193
+ }
194
+
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVsZWFzZUNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGxhc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyBsb2csIHJlbGVhc2VDb250ZXh0TWFwIH0gPSBjb250ZXh0LFxuICAgICAgICBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICBkZXBlbmRlbmN5U3RyaW5nID0gZGVwZW5kZW5jeS5hc1N0cmluZygpLFxuICAgICAgICByZWxlYXNlTmFtZSA9IGRlcGVuZGVuY3lOYW1lLCAvLy9cbiAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0gfHwgbnVsbDtcblxuICBsb2cuZGVidWcoYENyZWF0aW5nIHRoZSAnJHtyZWxlYXNlTmFtZX0nIGNvbnRleHQgZ2l2ZW4gdGhlICcke2RlcGVuZGVuY3lTdHJpbmd9JyBkZXBlbmRlbmN5Li4uYCk7XG5cbiAgaWYgKHJlbGVhc2VDb250ZXh0ICE9PSBudWxsKSB7XG4gICAgY29uc3QgZXJyb3IgPSBudWxsO1xuXG4gICAgbG9nLmRlYnVnKGAuLi5hbHJlYWR5IGNyZWF0ZWQgdGhlICcke3JlbGVhc2VOYW1lfScgY29udGV4dC5gKTtcblxuICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeSB9ID0gY29udGV4dDtcblxuICByZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5KGRlcGVuZGVuY3ksIGNvbnRleHQsIChlcnJvciwgcmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IGNoZWNrUmVsZWFzZUNvbnRleHRDcmVhdGVkKHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBjb250ZXh0KTtcblxuICAgIGlmICghcmVsZWFzZUNvbnRleHRDcmVhdGVkKSB7XG4gICAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSA9IGNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5KHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCk7XG5cbiAgICBpZiAoIXJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSkge1xuICAgICAgY29uc3QgZXJyb3IgPSBudWxsO1xuXG4gICAgICBjYWxsYmFjayhlcnJvcik7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0gPSByZWxlYXNlQ29udGV4dDtcblxuICAgIGxvZy5pbmZvKGAuLi5jcmVhdGVkIHRoZSAnJHtyZWxlYXNlTmFtZX0nIGNvbnRleHQuYCk7XG5cbiAgICBjcmVhdGVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKGRlcGVuZGVuY3ksIHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgKGVycm9yKSA9PiB7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuICAgIH0pO1xuICB9LCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBjb250ZXh0KSB7XG4gIGxldCByZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkID0gZmFsc2U7XG5cbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dE1hcCB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgLy8vXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdIHx8IG51bGw7XG5cbiAgaWYgKHJlbGVhc2VDb250ZXh0ID09PSBudWxsKSB7XG4gICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQ7XG5cbiAgICBsb2cud2FybmluZyhgVW5hYmxlIHRvIGluaXRpYWxpc2UgdGhlICcke2RlcGVuZGVuY3lOYW1lfScgY29udGV4dCBiZWNhdXNlIGl0IGhhcyBub3QgYmVlbiBjcmVhdGVkLmApO1xuICB9IGVsc2Uge1xuICAgIHJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQgPSByZWxlYXNlQ29udGV4dC5pc0luaXRpYWxpc2VkKCk7XG5cbiAgICBpZiAoIXJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQpIHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNJbml0aWFsaXNlZCA9IGluaXRpYWxpc2VEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKGRlcGVuZGVuY3ksIHJlbGVhc2VDb250ZXh0LCBjb250ZXh0KTtcblxuICAgICAgaWYgKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNJbml0aWFsaXNlZCkge1xuICAgICAgICBjb25zdCB7IGxvZywgdmVyYm9zZSB9ID0gY29udGV4dCxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRzID0gcmV0cmlldmVSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIHJlbGVhc2VDb250ZXh0TWFwKTtcblxuICAgICAgICBsb2cuZGVidWcoYEluaXRpYWxpc2luZyB0aGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBjb250ZXh0Li4uYCk7XG5cbiAgICAgICAgcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCA9IHJlbGVhc2VDb250ZXh0LmluaXRpYWxpc2UocmVsZWFzZUNvbnRleHRzLCB2ZXJib3NlKTtcblxuICAgICAgICByZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkID9cbiAgICAgICAgICBsb2cuaW5mbyhgLi4uaW5pdGlhbGlzZWQgdGhlICcke2RlcGVuZGVuY3lOYW1lfScgY29udGV4dC5gKSA6XG4gICAgICAgICAgICBsb2cud2FybmluZyhgLi4udW5hYmxlIHRvIGluaXRpYWxpc2UgdGhlICcke2RlcGVuZGVuY3lOYW1lfScgY29udGV4dC5gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBjcmVhdGVSZWxlYXNlQ29udGV4dCxcbiAgaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0XG59O1xuXG5mdW5jdGlvbiByZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXApIHtcbiAgY29uc3QgcmVsZWFzZUNvbnRleHRzID0gW10sXG4gICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHQsICAvLy9cbiAgICAgICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzID0gW1xuICAgICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0XG4gICAgICAgIF07XG5cbiAgbGV0IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0xlbmd0aCA9IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cy5sZW5ndGg7XG5cbiAgd2hpbGUgKHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0xlbmd0aCA+IDApIHtcbiAgICBjb25zdCByZW1haW5pbmdSZWxlYXNlQ29udGV4dCA9IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cy5zaGlmdCgpLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVtYWluaW5nUmVsZWFzZUNvbnRleHQ7ICAvLy9cblxuICAgIHJlbGVhc2VDb250ZXh0cy5wdXNoKHJlbGVhc2VDb250ZXh0KTtcblxuICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IHJlbGVhc2VDb250ZXh0LmdldERlcGVuZGVuY2llcygpO1xuXG4gICAgZGVwZW5kZW5jaWVzLmZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgLy8vXG4gICAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSxcbiAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dHMuaW5jbHVkZXMocmVsZWFzZUNvbnRleHQpLFxuICAgICAgICAgICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCA9IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cy5pbmNsdWRlcyhyZWxlYXNlQ29udGV4dCk7XG5cbiAgICAgIGlmICghcmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCAmJiAhcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCkge1xuICAgICAgICBjb25zdCByZW1haW5pbmdSZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0OyAvLy9cblxuICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMucHVzaChyZW1haW5pbmdSZWxlYXNlQ29udGV4dCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dHNMZW5ndGggPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMubGVuZ3RoO1xuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0cztcbn1cblxuZnVuY3Rpb24gY2hlY2tSZWxlYXNlQ29udGV4dENyZWF0ZWQocmVsZWFzZUNvbnRleHQsIGRlcGVuZGVuY3ksIGNvbnRleHQpIHtcbiAgY29uc3QgcmVsZWFzZUNvbnRleHRDcmVhdGVkID0gKHJlbGVhc2VDb250ZXh0ICE9PSBudWxsKTtcblxuICBpZiAoIXJlbGVhc2VDb250ZXh0Q3JlYXRlZCkge1xuICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0LFxuICAgICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZTsgLy8vXG5cbiAgICBsb2cud2FybmluZyhgVGhlICcke3JlbGVhc2VOYW1lfScgY29udGV4dCBjb3VsZCBub3QgYmUgY3JlYXRlZC4gUGVyaGFwcyB0aGUgJ21ldGEuanNvbicgZmlsZSBpcyBtaXNzaW5nIG9yIGludmFsaWQuIE9yIHRoZXJlIGNvdWxkIGJlIGEgZGVwZW5kZW5jeSBtaXNtYXRjaC5gKTtcbiAgfVxuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dENyZWF0ZWQ7XG59XG5cbmZ1bmN0aW9uIGNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCkge1xuICBjb25zdCBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICBkZXBlbmRlbnROYW1lc0luY2x1ZGVzRGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbnROYW1lcy5pbmNsdWRlcyhkZXBlbmRlbmN5TmFtZSksXG4gICAgICAgIGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMgPSBkZXBlbmRlbnROYW1lc0luY2x1ZGVzRGVwZW5kZW5jeU5hbWU7ICAvLy9cblxuICBpZiAoY3ljbGljRGVwZW5kZW5jeUV4aXN0cykge1xuICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0LFxuICAgICAgICAgIGZpcnN0RGVwZW5kZW50TmFtZSA9IGZpcnN0KGRlcGVuZGVudE5hbWVzKSxcbiAgICAgICAgICBkZXBlbmRlbmN5TmFtZXMgPSBbICAvLy9cbiAgICAgICAgICAgIC4uLmRlcGVuZGVudE5hbWVzLFxuICAgICAgICAgICAgZmlyc3REZXBlbmRlbnROYW1lXG4gICAgICAgICAgXSxcbiAgICAgICAgICBkZXBlbmRlbmN5TmFtZXNTdHJpbmcgPSBkZXBlbmRlbmN5TmFtZXMuam9pbihgJyAtPiAnYCk7XG5cbiAgICBsb2cud2FybmluZyhgVGhlcmUgaXMgYSBjeWNsaWMgZGVwZW5kZW5jeTogJyR7ZGVwZW5kZW5jeU5hbWVzU3RyaW5nfScuYCk7XG4gIH1cblxuICByZXR1cm4gY3ljbGljRGVwZW5kZW5jeUV4aXN0cztcbn1cblxuZnVuY3Rpb24gY2hlY2tSZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kocmVsZWFzZUNvbnRleHQsIGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KSB7XG4gIGxldCByZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kgPSB0cnVlO1xuXG4gIGNvbnN0IGVudHJpZXMgPSByZWxlYXNlQ29udGV4dC5nZXRFbnRyaWVzKCksXG4gICAgICAgIHNob3J0ZW5lZFZlcnNpb24gPSBkZXBlbmRlbmN5LmdldFNob3J0ZWRWZXJzaW9uKCk7XG5cbiAgaWYgKHNob3J0ZW5lZFZlcnNpb24gIT09IG51bGwpIHtcbiAgICBjb25zdCBlbnRyaWVzTWF0Y2hTaG9ydGVuZWRWZXJzaW9uID0gZW50cmllcy5tYXRjaFNob3J0ZW5lZFZlcnNpb24oc2hvcnRlbmVkVmVyc2lvbik7XG5cbiAgICBpZiAoIWVudHJpZXNNYXRjaFNob3J0ZW5lZFZlcnNpb24pIHtcbiAgICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0LFxuICAgICAgICAgICAgdmVyc2lvbiA9IHJlbGVhc2VDb250ZXh0LmdldFZlcnNpb24oKSxcbiAgICAgICAgICAgIGxhc3REZXBlbmRlbnROYW1lID0gbGFzdChkZXBlbmRlbnROYW1lcyksXG4gICAgICAgICAgICBkZXBlbmRlbnROYW1lID0gbGFzdERlcGVuZGVudE5hbWUsICAvLy9cbiAgICAgICAgICAgIHZlcnNpb25TdHJpbmcgPSB2ZXJzaW9uLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBkZXBlbmRlbmN5U3RyaW5nID0gZGVwZW5kZW5jeS5hc1N0cmluZygpO1xuXG4gICAgICBsb2cud2FybmluZyhgVmVyc2lvbiBtaXNtYXRjaDogVGhlICcke2RlcGVuZGVudE5hbWV9JyBkZXBlbmRlbnQgcmVxdWlyZXMgdGhlICcke2RlcGVuZGVuY3lTdHJpbmd9JyBkZXBlbmRlbmN5IGJ1dCBhIGNvbnRleHQgd2l0aCB2ZXJzaW9uICcke3ZlcnNpb25TdHJpbmd9JyB3YXMgcHJvdmlkZWQuYCk7XG5cbiAgICAgIHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3k7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoZGVwZW5kZW5jeSwgcmVsZWFzZUNvbnRleHQsIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0LCBjYWxsYmFjaykge1xuICBjb25zdCBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKTtcblxuICBkZXBlbmRlbnROYW1lcyA9IFsgLi4uZGVwZW5kZW50TmFtZXMsIGRlcGVuZGVuY3lOYW1lIF07ICAvLy9cblxuICBkZXBlbmRlbmNpZXMuYXN5bmNocm9ub3VzRm9yRWFjaERlcGVuZGVuY3koKGRlcGVuZGVuY3ksIG5leHQsIGRvbmUpID0+IHtcbiAgICBjb25zdCBjeWNsaWNEZXBlbmRlbmN5RXhpc3RzID0gY2hlY2tDeWNsaWNEZXBlbmRlbmN5RXhpc3RzKGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzKTtcblxuICAgIGlmIChjeWNsaWNEZXBlbmRlbmN5RXhpc3RzKSB7XG4gICAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNyZWF0ZVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0LCAoZXJyb3IpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICBjYWxsYmFjayhlcnJvcik7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICBjYWxsYmFjayhlcnJvcik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpbml0aWFsaXNlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCByZWxlYXNlQ29udGV4dCwgY29udGV4dCkge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKSxcbiAgICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0luaXRpYWxpc2VkID0gZGVwZW5kZW5jaWVzLmV2ZXJ5RGVwZW5kZW5jeSgoZGVwZW5kZW5jeSkgPT4geyAgLy8vXG4gICAgICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCA9IGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChyZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gIHJldHVybiBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzSW5pdGlhbGlzZWQ7XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlUmVsZWFzZUNvbnRleHQiLCJpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQiLCJkZXBlbmRlbmN5IiwiZGVwZW5kZW50TmFtZXMiLCJjb250ZXh0IiwiY2FsbGJhY2siLCJsb2ciLCJyZWxlYXNlQ29udGV4dE1hcCIsImRlcGVuZGVuY3lOYW1lIiwiZ2V0TmFtZSIsImRlcGVuZGVuY3lTdHJpbmciLCJhc1N0cmluZyIsInJlbGVhc2VOYW1lIiwicmVsZWFzZUNvbnRleHQiLCJkZWJ1ZyIsImVycm9yIiwicmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeSIsInJlbGVhc2VDb250ZXh0Q3JlYXRlZCIsImNoZWNrUmVsZWFzZUNvbnRleHRDcmVhdGVkIiwicmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5IiwiY2hlY2tSZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kiLCJpbmZvIiwiY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsInJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQiLCJ3YXJuaW5nIiwiaXNJbml0aWFsaXNlZCIsImRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNJbml0aWFsaXNlZCIsImluaXRpYWxpc2VEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwidmVyYm9zZSIsInJlbGVhc2VDb250ZXh0cyIsInJldHJpZXZlUmVsZWFzZUNvbnRleHRzIiwiaW5pdGlhbGlzZSIsInJlbWFpbmluZ1JlbGVhc2VDb250ZXh0IiwicmVtYWluaW5nUmVsZWFzZUNvbnRleHRzIiwicmVtYWluaW5nUmVsZWFzZUNvbnRleHRzTGVuZ3RoIiwibGVuZ3RoIiwic2hpZnQiLCJwdXNoIiwiZGVwZW5kZW5jaWVzIiwiZ2V0RGVwZW5kZW5jaWVzIiwiZm9yRWFjaERlcGVuZGVuY3kiLCJyZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0IiwiaW5jbHVkZXMiLCJyZW1haW5pbmdSZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0IiwiY2hlY2tDeWNsaWNEZXBlbmRlbmN5RXhpc3RzIiwiZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lIiwiY3ljbGljRGVwZW5kZW5jeUV4aXN0cyIsImZpcnN0RGVwZW5kZW50TmFtZSIsImZpcnN0IiwiZGVwZW5kZW5jeU5hbWVzIiwiZGVwZW5kZW5jeU5hbWVzU3RyaW5nIiwiam9pbiIsImVudHJpZXMiLCJnZXRFbnRyaWVzIiwic2hvcnRlbmVkVmVyc2lvbiIsImdldFNob3J0ZWRWZXJzaW9uIiwiZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbiIsIm1hdGNoU2hvcnRlbmVkVmVyc2lvbiIsInZlcnNpb24iLCJnZXRWZXJzaW9uIiwibGFzdERlcGVuZGVudE5hbWUiLCJsYXN0IiwiZGVwZW5kZW50TmFtZSIsInZlcnNpb25TdHJpbmciLCJ0b1N0cmluZyIsImFzeW5jaHJvbm91c0ZvckVhY2hEZXBlbmRlbmN5IiwibmV4dCIsImRvbmUiLCJldmVyeURlcGVuZGVuY3kiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUlnQkEsb0JBQW9CO2VBQXBCQTs7SUFvR2hCLE9BR0U7ZUFIRjs7SUFwQ2dCQyx3QkFBd0I7ZUFBeEJBOzs7cUJBbEVLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVkLFNBQVNELHFCQUFxQkUsVUFBVSxFQUFFQyxjQUFjLEVBQUVDLE9BQU8sRUFBRUMsUUFBUTtJQUNoRixJQUFRQyxNQUEyQkYsUUFBM0JFLEtBQUtDLG9CQUFzQkgsUUFBdEJHLG1CQUNQQyxpQkFBaUJOLFdBQVdPLE9BQU8sSUFDbkNDLG1CQUFtQlIsV0FBV1MsUUFBUSxJQUN0Q0MsY0FBY0osZ0JBQ2RLLGlCQUFpQk4saUJBQWlCLENBQUNLLFlBQVksSUFBSTtJQUV6RE4sSUFBSVEsS0FBSyxDQUFDLEFBQUMsaUJBQW1ESixPQUFuQ0UsYUFBWSx5QkFBd0MsT0FBakJGLGtCQUFpQjtJQUUvRSxJQUFJRyxtQkFBbUIsTUFBTTtRQUMzQixJQUFNRSxRQUFRO1FB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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-verify-cli",
3
3
  "author": "James Smith",
4
- "version": "0.0.993",
4
+ "version": "0.0.994",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
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 initialiseReleaseContext } from "./releaseContext/initialise";
7
+ export { default as releaseContextUtilities } from "./utilities/releaseContext";
9
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { last } from "../utilities/array";
4
4
 
5
- export default function createReleaseContext(dependency, dependentNames, context, callback) {
5
+ export function createReleaseContext(dependency, dependentNames, context, callback) {
6
6
  const { log, releaseContextMap } = context,
7
7
  dependencyName = dependency.getName(),
8
8
  dependencyString = dependency.asString(),
@@ -66,6 +66,84 @@ export default function createReleaseContext(dependency, dependentNames, context
66
66
  }, context);
67
67
  }
68
68
 
69
+ export function initialiseReleaseContext(dependency, context) {
70
+ let releaseContextInitialised = false;
71
+
72
+ const { releaseContextMap } = context,
73
+ dependencyName = dependency.getName(),
74
+ releaseName = dependencyName, ///
75
+ releaseContext = releaseContextMap[releaseName] || null;
76
+
77
+ if (releaseContext === null) {
78
+ const { log } = context;
79
+
80
+ log.warning(`Unable to initialise the '${dependencyName}' context because it has not been created.`);
81
+ } else {
82
+ releaseContextInitialised = releaseContext.isInitialised();
83
+
84
+ if (!releaseContextInitialised) {
85
+ const dependencyReleaseContextsInitialised = initialiseDependencyReleaseContexts(dependency, releaseContext, context);
86
+
87
+ if (dependencyReleaseContextsInitialised) {
88
+ const { log, verbose } = context,
89
+ releaseContexts = retrieveReleaseContexts(releaseContext, releaseContextMap);
90
+
91
+ log.debug(`Initialising the '${dependencyName}' context...`);
92
+
93
+ releaseContextInitialised = releaseContext.initialise(releaseContexts, verbose);
94
+
95
+ releaseContextInitialised ?
96
+ log.info(`...initialised the '${dependencyName}' context.`) :
97
+ log.warning(`...unable to initialise the '${dependencyName}' context.`);
98
+ }
99
+ }
100
+ }
101
+
102
+ return releaseContextInitialised;
103
+ }
104
+
105
+ export default {
106
+ createReleaseContext,
107
+ initialiseReleaseContext
108
+ };
109
+
110
+ function retrieveReleaseContexts(releaseContext, releaseContextMap) {
111
+ const releaseContexts = [],
112
+ remainingReleaseContext = releaseContext, ///
113
+ remainingReleaseContexts = [
114
+ remainingReleaseContext
115
+ ];
116
+
117
+ let remainingReleaseContextsLength = remainingReleaseContexts.length;
118
+
119
+ while (remainingReleaseContextsLength > 0) {
120
+ const remainingReleaseContext = remainingReleaseContexts.shift(),
121
+ releaseContext = remainingReleaseContext; ///
122
+
123
+ releaseContexts.push(releaseContext);
124
+
125
+ const dependencies = releaseContext.getDependencies();
126
+
127
+ dependencies.forEachDependency((dependency) => {
128
+ const dependencyName = dependency.getName(),
129
+ releaseName = dependencyName, ///
130
+ releaseContext = releaseContextMap[releaseName],
131
+ releaseContextsIncludesReleaseContext = releaseContexts.includes(releaseContext),
132
+ remainingReleaseContextsIncludesReleaseContext = remainingReleaseContexts.includes(releaseContext);
133
+
134
+ if (!releaseContextsIncludesReleaseContext && !remainingReleaseContextsIncludesReleaseContext) {
135
+ const remainingReleaseContext = releaseContext; ///
136
+
137
+ remainingReleaseContexts.push(remainingReleaseContext);
138
+ }
139
+ });
140
+
141
+ remainingReleaseContextsLength = remainingReleaseContexts.length;
142
+ }
143
+
144
+ return releaseContexts;
145
+ }
146
+
69
147
  function checkReleaseContextCreated(releaseContext, dependency, context) {
70
148
  const releaseContextCreated = (releaseContext !== null);
71
149
 
@@ -158,3 +236,16 @@ function createDependencyReleaseContexts(dependency, releaseContext, dependentNa
158
236
  callback(error);
159
237
  });
160
238
  }
239
+
240
+ function initialiseDependencyReleaseContexts(dependency, releaseContext, context) {
241
+ const dependencies = releaseContext.getDependencies(),
242
+ dependencyReleaseContextsInitialised = dependencies.everyDependency((dependency) => { ///
243
+ const releaseContextInitialised = initialiseReleaseContext(dependency, context);
244
+
245
+ if (releaseContextInitialised) {
246
+ return true;
247
+ }
248
+ });
249
+
250
+ return dependencyReleaseContextsInitialised;
251
+ }
@@ -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,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
- }