occam-verify-cli 0.0.388 → 0.0.390
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 -10
- package/bin/utilities/fileSystem.js +24 -17
- package/lib/utilities/releaseContext.js +35 -46
- package/package.json +2 -2
- package/src/utilities/releaseContext.js +48 -58
package/bin/action/verify.js
CHANGED
|
@@ -4,22 +4,21 @@ const { Dependency } = require("occam-file-system"),
|
|
|
4
4
|
{ loggingUtilities } = require("necessary"),
|
|
5
5
|
{ verifyRelease, releaseContextUtilities } = require("../../lib/index");
|
|
6
6
|
|
|
7
|
-
const {
|
|
7
|
+
const { releaseContextFromDependencyAndDependentNames } = require("../utilities/fileSystem");
|
|
8
8
|
|
|
9
9
|
const { log } = loggingUtilities,
|
|
10
10
|
{ setLogLevel } = log,
|
|
11
|
-
{ createReleaseContext,
|
|
11
|
+
{ createReleaseContext, initialiseReleaseContext } = releaseContextUtilities;
|
|
12
12
|
|
|
13
13
|
function verifyAction(argument, logLevel) {
|
|
14
14
|
const name = argument, ///
|
|
15
|
-
|
|
16
|
-
shortenedVersion = null,
|
|
15
|
+
dependency = Dependency.fromName(name),
|
|
17
16
|
dependentNames = [],
|
|
18
|
-
|
|
17
|
+
releaseContextMap = {},
|
|
19
18
|
context = {
|
|
20
19
|
log,
|
|
21
20
|
releaseContextMap,
|
|
22
|
-
|
|
21
|
+
releaseContextFromDependencyAndDependentNames
|
|
23
22
|
};
|
|
24
23
|
|
|
25
24
|
setLogLevel(logLevel);
|
|
@@ -31,11 +30,10 @@ function verifyAction(argument, logLevel) {
|
|
|
31
30
|
return;
|
|
32
31
|
}
|
|
33
32
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
initialiseReleaseContexts(releaseName, releaseContextMap);
|
|
33
|
+
initialiseReleaseContext(dependency, context);
|
|
37
34
|
|
|
38
|
-
const
|
|
35
|
+
const releaseName = name, ///
|
|
36
|
+
releaseVerified = verifyRelease(releaseName, releaseContextMap);
|
|
39
37
|
|
|
40
38
|
if (releaseVerified) {
|
|
41
39
|
const releaseContext = releaseContextMap[releaseName];
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
const { FileReleaseContext, DirectoryReleaseContext } = require("../../lib/index"),
|
|
4
|
-
{ fileSystemUtilities :
|
|
5
|
-
{
|
|
3
|
+
const { FileReleaseContext, DirectoryReleaseContext } = require("../../lib/index"), ///
|
|
4
|
+
{ Entries, fileSystemUtilities : occamFileSystemUtilities } = require("occam-file-system"),
|
|
5
|
+
{ arrayUtilities, fileSystemUtilities : necessaryFileSystemUtilities } = require("necessary");
|
|
6
6
|
|
|
7
7
|
const callbacks = require("../callbacks");
|
|
8
8
|
|
|
9
|
-
const {
|
|
9
|
+
const { last } = arrayUtilities,
|
|
10
|
+
{ loadRelease } = occamFileSystemUtilities,
|
|
10
11
|
{ readFile, isEntryFile } = necessaryFileSystemUtilities;
|
|
11
12
|
|
|
12
|
-
function
|
|
13
|
+
function releaseContextFromDependencyAndDependentNames(dependency, dependentNames, context, callback) {
|
|
13
14
|
const projectsDirectoryPath = process.cwd(), ///
|
|
14
15
|
dependencyName = dependency.getName(),
|
|
15
16
|
entryPath = `${projectsDirectoryPath}/${dependencyName}`,
|
|
@@ -28,7 +29,7 @@ function releaseContextFromReleaseNameAndShortenedVersion(dependency, context, c
|
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
if (releaseContext !== null) {
|
|
31
|
-
const releaseMatchesShortedVersion = checkReleaseMatchesDependency(dependency, releaseContext, context);
|
|
32
|
+
const releaseMatchesShortedVersion = checkReleaseMatchesDependency(dependency, dependentNames, releaseContext, context);
|
|
32
33
|
|
|
33
34
|
if (!releaseMatchesShortedVersion) {
|
|
34
35
|
releaseContext = null;
|
|
@@ -41,22 +42,28 @@ function releaseContextFromReleaseNameAndShortenedVersion(dependency, context, c
|
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
module.exports = {
|
|
44
|
-
|
|
45
|
+
releaseContextFromDependencyAndDependentNames
|
|
45
46
|
};
|
|
46
47
|
|
|
47
|
-
function checkReleaseMatchesDependency(dependency, releaseContext, context) {
|
|
48
|
+
function checkReleaseMatchesDependency(dependency, dependentNames, releaseContext, context) {
|
|
49
|
+
let releaseMatchesShortedVersion = true;
|
|
50
|
+
|
|
48
51
|
const entries = releaseContext.getEntries(),
|
|
49
|
-
shortenedVersion = dependency.getShortedVersion()
|
|
50
|
-
releaseMatchesShortedVersion = entries.matchShortenedVersion(shortenedVersion);
|
|
52
|
+
shortenedVersion = dependency.getShortedVersion();
|
|
51
53
|
|
|
52
|
-
if (
|
|
53
|
-
|
|
54
|
-
version = releaseContext.getVersion(),
|
|
55
|
-
versionString = version.toString(),
|
|
56
|
-
dependencyName = dependency.getName(),
|
|
57
|
-
shortenedVersionString = shortenedVersion.toString();
|
|
54
|
+
if (shortenedVersion !== null) {
|
|
55
|
+
releaseMatchesShortedVersion = entries.matchShortenedVersion(shortenedVersion);
|
|
58
56
|
|
|
59
|
-
|
|
57
|
+
if (!releaseMatchesShortedVersion) {
|
|
58
|
+
const { log } = context,
|
|
59
|
+
version = releaseContext.getVersion(),
|
|
60
|
+
versionString = version.toString(),
|
|
61
|
+
dependencyName = dependency.getName(),
|
|
62
|
+
lastDependentName = last(dependentNames),
|
|
63
|
+
shortenedVersionString = shortenedVersion.toString();
|
|
64
|
+
|
|
65
|
+
log.error(`Version mismatch: '${lastDependentName}' requires '${dependencyName}' to be version ${shortenedVersionString}.0 or higher but version ${versionString} has been supplied.`);
|
|
66
|
+
}
|
|
60
67
|
}
|
|
61
68
|
|
|
62
69
|
return releaseMatchesShortedVersion;
|
|
@@ -12,8 +12,8 @@ _export(exports, {
|
|
|
12
12
|
createReleaseContext: function() {
|
|
13
13
|
return createReleaseContext;
|
|
14
14
|
},
|
|
15
|
-
|
|
16
|
-
return
|
|
15
|
+
initialiseReleaseContext: function() {
|
|
16
|
+
return initialiseReleaseContext;
|
|
17
17
|
},
|
|
18
18
|
default: function() {
|
|
19
19
|
return _default;
|
|
@@ -45,44 +45,30 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
|
45
45
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
46
46
|
}
|
|
47
47
|
function createReleaseContext(dependency, dependentNames, context, callback) {
|
|
48
|
-
var releaseContextMap = context.releaseContextMap,
|
|
48
|
+
var releaseContextMap = context.releaseContextMap, dependencyName = dependency.getName(), releaseName = dependencyName, releaseContext = releaseContextMap[releaseName] || null;
|
|
49
49
|
if (releaseContext !== null) {
|
|
50
|
-
var error =
|
|
50
|
+
var error = null;
|
|
51
51
|
callback(error);
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
|
-
var
|
|
55
|
-
|
|
54
|
+
var releaseContextFromDependencyAndDependentNames = context.releaseContextFromDependencyAndDependentNames;
|
|
55
|
+
releaseContextFromDependencyAndDependentNames(dependency, dependentNames, context, function(error, releaseContext) {
|
|
56
56
|
if (error) {
|
|
57
57
|
callback(error);
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
|
+
releaseContextMap[releaseName] = releaseContext;
|
|
60
61
|
if (releaseContext === null) {
|
|
61
62
|
var log = context.log;
|
|
62
63
|
log.error("The '".concat(releaseName, "' package could not be created."));
|
|
63
|
-
releaseContextMap[releaseName] = releaseContext;
|
|
64
64
|
callback(error);
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
|
-
createDependencyReleaseContexts(
|
|
68
|
-
if (error) {
|
|
69
|
-
callback(error);
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
releaseContextMap[releaseName] = releaseContext;
|
|
73
|
-
callback(error);
|
|
74
|
-
});
|
|
67
|
+
createDependencyReleaseContexts(dependency, dependentNames, context, callback);
|
|
75
68
|
}, context);
|
|
76
69
|
}
|
|
77
|
-
function
|
|
78
|
-
var releaseContext = releaseContextMap[releaseName];
|
|
79
|
-
initialiseReleaseContext(releaseContext, releaseContextMap);
|
|
80
|
-
}
|
|
81
|
-
var _default = {
|
|
82
|
-
createReleaseContext: createReleaseContext,
|
|
83
|
-
initialiseReleaseContexts: initialiseReleaseContexts
|
|
84
|
-
};
|
|
85
|
-
function initialiseReleaseContext(releaseContext, releaseContextMap) {
|
|
70
|
+
function initialiseReleaseContext(dependency, context) {
|
|
71
|
+
var releaseContextMap = context.releaseContextMap, dependencyName = dependency.getName(), releaseName = dependencyName, releaseContext = releaseContextMap[releaseName] || null;
|
|
86
72
|
if (releaseContext === null) {
|
|
87
73
|
return;
|
|
88
74
|
}
|
|
@@ -92,32 +78,35 @@ function initialiseReleaseContext(releaseContext, releaseContextMap) {
|
|
|
92
78
|
}
|
|
93
79
|
var dependencies = releaseContext.getDependencies();
|
|
94
80
|
dependencies.forEachDependency(function(dependency) {
|
|
95
|
-
|
|
96
|
-
initialiseReleaseContext(_$releaseContext, releaseContextMap);
|
|
81
|
+
initialiseReleaseContext(dependency, context);
|
|
97
82
|
});
|
|
98
|
-
var dependencyReleaseContexts = retrieveDependencyReleaseContexts(
|
|
83
|
+
var dependencyReleaseContexts = retrieveDependencyReleaseContexts(dependency, context);
|
|
99
84
|
releaseContext.initialise(dependencyReleaseContexts);
|
|
100
85
|
}
|
|
101
|
-
|
|
86
|
+
var _default = {
|
|
87
|
+
createReleaseContext: createReleaseContext,
|
|
88
|
+
initialiseReleaseContext: initialiseReleaseContext
|
|
89
|
+
};
|
|
90
|
+
function checkCyclicDependencyExists(dependency, dependentNames, context) {
|
|
102
91
|
var dependencyName = dependency.getName(), dependentNamesIncludesDependencyName = dependentNames.includes(dependencyName), cyclicDependencyExists = dependentNamesIncludesDependencyName; ///
|
|
103
92
|
if (cyclicDependencyExists) {
|
|
104
|
-
var firstDependentName = first(dependentNames), dependencyNames = _toConsumableArray(dependentNames).concat([
|
|
93
|
+
var log = context.log, firstDependentName = first(dependentNames), dependencyNames = _toConsumableArray(dependentNames).concat([
|
|
105
94
|
firstDependentName
|
|
106
95
|
]), dependencyNamesString = dependencyNames.join("' -> '");
|
|
107
|
-
|
|
96
|
+
log.error("There is a cyclic dependency: '".concat(dependencyNamesString, "'."));
|
|
108
97
|
}
|
|
109
98
|
return cyclicDependencyExists;
|
|
110
99
|
}
|
|
111
|
-
function createDependencyReleaseContexts(
|
|
112
|
-
var
|
|
100
|
+
function createDependencyReleaseContexts(dependency, dependentNames, context, callback) {
|
|
101
|
+
var releaseContextMap = context.releaseContextMap, dependencyName = dependency.getName(), releaseName = dependencyName, releaseContext = releaseContextMap[releaseName], dependencies = releaseContext.getDependencies(), done = function() {
|
|
113
102
|
var error = null;
|
|
114
103
|
callback(error);
|
|
115
104
|
};
|
|
116
105
|
dependentNames = _toConsumableArray(dependentNames).concat([
|
|
117
|
-
|
|
106
|
+
dependencyName
|
|
118
107
|
]); ///
|
|
119
108
|
dependencies.asynchronousForEachDependency(function(dependency, next, done) {
|
|
120
|
-
var cyclicDependencyExists = checkCyclicDependencyExists(dependency, dependentNames,
|
|
109
|
+
var cyclicDependencyExists = checkCyclicDependencyExists(dependency, dependentNames, context);
|
|
121
110
|
if (cyclicDependencyExists) {
|
|
122
111
|
var error = null;
|
|
123
112
|
callback(error);
|
|
@@ -132,22 +121,22 @@ function createDependencyReleaseContexts(releaseContext, dependentNames, context
|
|
|
132
121
|
});
|
|
133
122
|
}, done);
|
|
134
123
|
}
|
|
135
|
-
function retrieveDependencyReleaseContexts(
|
|
124
|
+
function retrieveDependencyReleaseContexts(dependency, context) {
|
|
136
125
|
var dependencyReleaseContexts = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [];
|
|
126
|
+
var releaseContextMap = context.releaseContextMap, dependencyName = dependency.getName(), releaseName = dependencyName, releaseContext = releaseContextMap[releaseName] || null;
|
|
127
|
+
if (releaseContext === null) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
var dependencyReleaseContextsIncludesReleaseContext = dependencyReleaseContexts.includes(releaseContext);
|
|
131
|
+
if (dependencyReleaseContextsIncludesReleaseContext) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
137
134
|
var dependencies = releaseContext.getDependencies();
|
|
138
135
|
dependencies.forEachDependency(function(dependency) {
|
|
139
|
-
|
|
140
|
-
if (dependencyReleaseContext === null) {
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
var dependencyReleaseContextsIncludesDependencyReleaseContext = dependencyReleaseContexts.includes(dependencyReleaseContext);
|
|
144
|
-
if (!dependencyReleaseContextsIncludesDependencyReleaseContext) {
|
|
145
|
-
var _$releaseContext = dependencyReleaseContext; ///
|
|
146
|
-
retrieveDependencyReleaseContexts(_$releaseContext, releaseContextMap, dependencyReleaseContexts);
|
|
147
|
-
dependencyReleaseContexts.push(dependencyReleaseContext);
|
|
148
|
-
}
|
|
136
|
+
retrieveDependencyReleaseContexts(dependency, context, dependencyReleaseContexts);
|
|
149
137
|
});
|
|
138
|
+
dependencyReleaseContexts.push(releaseContext);
|
|
150
139
|
return dependencyReleaseContexts;
|
|
151
140
|
}
|
|
152
141
|
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVsZWFzZUNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dE1hcCB9ID0gY29udGV4dCxcbiAgICAgICAgbmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICByZWxlYXNlTmFtZSA9IG5hbWUsIC8vL1xuICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSB8fCBudWxsO1xuXG4gIGlmIChyZWxlYXNlQ29udGV4dCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGVycm9yID0gZmFsc2U7XG5cbiAgICBjYWxsYmFjayhlcnJvcik7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IHJlbGVhc2VDb250ZXh0RnJvbVJlbGVhc2VOYW1lQW5kU2hvcnRlbmVkVmVyc2lvbiB9ID0gY29udGV4dDtcblxuICByZWxlYXNlQ29udGV4dEZyb21SZWxlYXNlTmFtZUFuZFNob3J0ZW5lZFZlcnNpb24oZGVwZW5kZW5jeSwgY29udGV4dCwgKGVycm9yLCByZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHJlbGVhc2VDb250ZXh0ID09PSBudWxsKSB7XG4gICAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dDtcblxuICAgICAgbG9nLmVycm9yKGBUaGUgJyR7cmVsZWFzZU5hbWV9JyBwYWNrYWdlIGNvdWxkIG5vdCBiZSBjcmVhdGVkLmApO1xuXG4gICAgICByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0gPSByZWxlYXNlQ29udGV4dDtcblxuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQsIChlcnJvcikgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSA9IHJlbGVhc2VDb250ZXh0O1xuXG4gICAgICBjYWxsYmFjayhlcnJvcik7XG4gICAgfSk7XG4gIH0sIGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlTmFtZSwgcmVsZWFzZUNvbnRleHRNYXApIHtcbiAgY29uc3QgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV07XG5cbiAgaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0KHJlbGVhc2VDb250ZXh0LCByZWxlYXNlQ29udGV4dE1hcCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3JlYXRlUmVsZWFzZUNvbnRleHQsXG4gIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dHNcbn07XG5cbmZ1bmN0aW9uIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXApIHtcbiAgaWYgKHJlbGVhc2VDb250ZXh0ID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgaW5pdGlhbGlzZWQgPSByZWxlYXNlQ29udGV4dC5pc0luaXRpYWxpc2VkKCk7XG5cbiAgaWYgKGluaXRpYWxpc2VkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgZGVwZW5kZW5jaWVzLmZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gbmFtZSwgLy8vXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV07XG5cbiAgICBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQocmVsZWFzZUNvbnRleHQsIHJlbGVhc2VDb250ZXh0TWFwKTtcbiAgfSk7XG5cbiAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHJldHJpZXZlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXApO1xuXG4gIHJlbGVhc2VDb250ZXh0LmluaXRpYWxpc2UoZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyk7XG59XG5cbmZ1bmN0aW9uIGNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgcmVsZWFzZUNvbnRleHQpIHtcbiAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW50TmFtZXMuaW5jbHVkZXMoZGVwZW5kZW5jeU5hbWUpLFxuICAgICAgICBjeWNsaWNEZXBlbmRlbmN5RXhpc3RzID0gZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lOyAgLy8vXG5cbiAgaWYgKGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMpIHtcbiAgICBjb25zdCBmaXJzdERlcGVuZGVudE5hbWUgPSBmaXJzdChkZXBlbmRlbnROYW1lcyksXG4gICAgICAgICAgZGVwZW5kZW5jeU5hbWVzID0gWyAgLy8vXG4gICAgICAgICAgICAgIC4uLmRlcGVuZGVudE5hbWVzLFxuICAgICAgICAgICAgZmlyc3REZXBlbmRlbnROYW1lXG4gICAgICAgICAgXSxcbiAgICAgICAgICBkZXBlbmRlbmN5TmFtZXNTdHJpbmcgPSBkZXBlbmRlbmN5TmFtZXMuam9pbihgJyAtPiAnYCk7XG5cbiAgICByZWxlYXNlQ29udGV4dC5lcnJvcihgVGhlcmUgaXMgYSBjeWNsaWMgZGVwZW5kZW5jeTogJyR7ZGVwZW5kZW5jeU5hbWVzU3RyaW5nfScuYCk7XG4gIH1cblxuICByZXR1cm4gY3ljbGljRGVwZW5kZW5jeUV4aXN0cztcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHJlbGVhc2VOYW1lID0gcmVsZWFzZUNvbnRleHQuZ2V0UmVsZWFzZU5hbWUoKSxcbiAgICAgICAgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCksXG4gICAgICAgIGRvbmUgPSAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXJyb3IgPSBudWxsO1xuXG4gICAgICAgICAgY2FsbGJhY2soZXJyb3IpO1xuICAgICAgICB9XG5cbiAgZGVwZW5kZW50TmFtZXMgPSBbIC4uLmRlcGVuZGVudE5hbWVzLCByZWxlYXNlTmFtZSBdOyAgLy8vXG5cbiAgZGVwZW5kZW5jaWVzLmFzeW5jaHJvbm91c0ZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY29uc3QgY3ljbGljRGVwZW5kZW5jeUV4aXN0cyA9IGNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgcmVsZWFzZUNvbnRleHQpO1xuXG4gICAgaWYgKGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gbnVsbDtcblxuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3JlYXRlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQsIChlcnJvcikgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgZG9uZSk7XG59XG5cbmZ1bmN0aW9uIHJldHJpZXZlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXAsIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSBbXSkge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKTtcblxuICBkZXBlbmRlbmNpZXMuZm9yRWFjaERlcGVuZGVuY3koKGRlcGVuZGVuY3kpID0+IHtcbiAgICBjb25zdCBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICAgIGRlcGVuZGVuY3lSZWxlYXNlTmFtZSA9IGRlcGVuZGVuY3lOYW1lLCAvLy9cbiAgICAgICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtkZXBlbmRlbmN5UmVsZWFzZU5hbWVdO1xuXG4gICAgaWYgKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNJbmNsdWRlc0RlcGVuZGVuY3lSZWxlYXNlQ29udGV4dCA9IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuaW5jbHVkZXMoZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0KTtcblxuICAgIGlmICghZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0luY2x1ZGVzRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0KSB7XG4gICAgICBjb25zdCByZWxlYXNlQ29udGV4dCA9IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dDsgIC8vL1xuXG4gICAgICByZXRyaWV2ZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIHJlbGVhc2VDb250ZXh0TWFwLCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKTtcblxuICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5wdXNoKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dCk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cztcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVSZWxlYXNlQ29udGV4dCIsImluaXRpYWxpc2VSZWxlYXNlQ29udGV4dHMiLCJkZXBlbmRlbmN5IiwiZGVwZW5kZW50TmFtZXMiLCJjb250ZXh0IiwiY2FsbGJhY2siLCJyZWxlYXNlQ29udGV4dE1hcCIsIm5hbWUiLCJnZXROYW1lIiwicmVsZWFzZU5hbWUiLCJyZWxlYXNlQ29udGV4dCIsImVycm9yIiwicmVsZWFzZUNvbnRleHRGcm9tUmVsZWFzZU5hbWVBbmRTaG9ydGVuZWRWZXJzaW9uIiwibG9nIiwiY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsImluaXRpYWxpc2VSZWxlYXNlQ29udGV4dCIsImluaXRpYWxpc2VkIiwiaXNJbml0aWFsaXNlZCIsImRlcGVuZGVuY2llcyIsImdldERlcGVuZGVuY2llcyIsImZvckVhY2hEZXBlbmRlbmN5IiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsInJldHJpZXZlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsImluaXRpYWxpc2UiLCJjaGVja0N5Y2xpY0RlcGVuZGVuY3lFeGlzdHMiLCJkZXBlbmRlbmN5TmFtZSIsImRlcGVuZGVudE5hbWVzSW5jbHVkZXNEZXBlbmRlbmN5TmFtZSIsImluY2x1ZGVzIiwiY3ljbGljRGVwZW5kZW5jeUV4aXN0cyIsImZpcnN0RGVwZW5kZW50TmFtZSIsImZpcnN0IiwiZGVwZW5kZW5jeU5hbWVzIiwiZGVwZW5kZW5jeU5hbWVzU3RyaW5nIiwiam9pbiIsImdldFJlbGVhc2VOYW1lIiwiZG9uZSIsImFzeW5jaHJvbm91c0ZvckVhY2hEZXBlbmRlbmN5IiwibmV4dCIsImRlcGVuZGVuY3lSZWxlYXNlTmFtZSIsImRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dCIsImRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNJbmNsdWRlc0RlcGVuZGVuY3lSZWxlYXNlQ29udGV4dCIsInB1c2giXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVnQkEsb0JBQW9CO2VBQXBCQTs7SUFpREFDLHlCQUF5QjtlQUF6QkE7O0lBTWhCLE9BR0U7ZUFIRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXZETyxTQUFTRCxxQkFBcUJFLFVBQVUsRUFBRUMsY0FBYyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRTtJQUNsRixJQUFNLEFBQUVDLG9CQUFzQkYsUUFBdEJFLG1CQUNGQyxPQUFPTCxXQUFXTSxPQUFPLElBQ3pCQyxjQUFjRixNQUNkRyxpQkFBaUJKLGlCQUFpQixDQUFDRyxZQUFZLElBQUksSUFBSTtJQUU3RCxJQUFJQyxtQkFBbUIsSUFBSSxFQUFFO1FBQzNCLElBQU1DLFFBQVEsS0FBSztRQUVuQk4sU0FBU007UUFFVDtJQUNGLENBQUM7SUFFRCxJQUFNLEFBQUVDLG1EQUFxRFIsUUFBckRRO0lBRVJBLGlEQUFpRFYsWUFBWUUsU0FBUyxTQUFDTyxPQUFPRCxnQkFBbUI7UUFDL0YsSUFBSUMsT0FBTztZQUNUTixTQUFTTTtZQUVUO1FBQ0YsQ0FBQztRQUVELElBQUlELG1CQUFtQixJQUFJLEVBQUU7WUFDM0IsSUFBTSxBQUFFRyxNQUFRVCxRQUFSUztZQUVSQSxJQUFJRixLQUFLLENBQUMsQUFBQyxRQUFtQixPQUFaRixhQUFZO1lBRTlCSCxpQkFBaUIsQ0FBQ0csWUFBWSxHQUFHQztZQUVqQ0wsU0FBU007WUFFVDtRQUNGLENB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
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVsZWFzZUNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dE1hcCB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgLy8vXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdIHx8IG51bGw7XG5cbiAgaWYgKHJlbGVhc2VDb250ZXh0ICE9PSBudWxsKSB7XG4gICAgY29uc3QgZXJyb3IgPSBudWxsO1xuXG4gICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5QW5kRGVwZW5kZW50TmFtZXMgfSA9IGNvbnRleHQ7XG5cbiAgcmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeUFuZERlcGVuZGVudE5hbWVzKGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0LCAoZXJyb3IsIHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBjYWxsYmFjayhlcnJvcik7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0gPSByZWxlYXNlQ29udGV4dDtcblxuICAgIGlmIChyZWxlYXNlQ29udGV4dCA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQ7XG5cbiAgICAgIGxvZy5lcnJvcihgVGhlICcke3JlbGVhc2VOYW1lfScgcGFja2FnZSBjb3VsZCBub3QgYmUgY3JlYXRlZC5gKTtcblxuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spO1xuICB9LCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRNYXAgfSA9IGNvbnRleHQsXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSB8fCBudWxsO1xuXG4gIGlmIChyZWxlYXNlQ29udGV4dCA9PT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGluaXRpYWxpc2VkID0gcmVsZWFzZUNvbnRleHQuaXNJbml0aWFsaXNlZCgpO1xuXG4gIGlmIChpbml0aWFsaXNlZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IHJlbGVhc2VDb250ZXh0LmdldERlcGVuZGVuY2llcygpO1xuXG4gIGRlcGVuZGVuY2llcy5mb3JFYWNoRGVwZW5kZW5jeSgoZGVwZW5kZW5jeSkgPT4ge1xuICAgIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBjb250ZXh0KTtcbiAgfSk7XG5cbiAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHJldHJpZXZlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCBjb250ZXh0KTtcblxuICByZWxlYXNlQ29udGV4dC5pbml0aWFsaXNlKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGNyZWF0ZVJlbGVhc2VDb250ZXh0LFxuICBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHRcbn07XG5cbmZ1bmN0aW9uIGNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCkge1xuICBjb25zdCBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICBkZXBlbmRlbnROYW1lc0luY2x1ZGVzRGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbnROYW1lcy5pbmNsdWRlcyhkZXBlbmRlbmN5TmFtZSksXG4gICAgICAgIGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMgPSBkZXBlbmRlbnROYW1lc0luY2x1ZGVzRGVwZW5kZW5jeU5hbWU7ICAvLy9cblxuICBpZiAoY3ljbGljRGVwZW5kZW5jeUV4aXN0cykge1xuICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0LFxuICAgICAgICAgIGZpcnN0RGVwZW5kZW50TmFtZSA9IGZpcnN0KGRlcGVuZGVudE5hbWVzKSxcbiAgICAgICAgICBkZXBlbmRlbmN5TmFtZXMgPSBbICAvLy9cbiAgICAgICAgICAgICAgLi4uZGVwZW5kZW50TmFtZXMsXG4gICAgICAgICAgICBmaXJzdERlcGVuZGVudE5hbWVcbiAgICAgICAgICBdLFxuICAgICAgICAgIGRlcGVuZGVuY3lOYW1lc1N0cmluZyA9IGRlcGVuZGVuY3lOYW1lcy5qb2luKGAnIC0+ICdgKTtcblxuICAgIGxvZy5lcnJvcihgVGhlcmUgaXMgYSBjeWNsaWMgZGVwZW5kZW5jeTogJyR7ZGVwZW5kZW5jeU5hbWVzU3RyaW5nfScuYCk7XG4gIH1cblxuICByZXR1cm4gY3ljbGljRGVwZW5kZW5jeUV4aXN0cztcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dE1hcCB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgLy8vXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdLFxuICAgICAgICBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKSxcbiAgICAgICAgZG9uZSA9ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICAgICAgICBjYWxsYmFjayhlcnJvcik7XG4gICAgICAgIH1cblxuICBkZXBlbmRlbnROYW1lcyA9IFsgLi4uZGVwZW5kZW50TmFtZXMsIGRlcGVuZGVuY3lOYW1lIF07ICAvLy9cblxuICBkZXBlbmRlbmNpZXMuYXN5bmNocm9ub3VzRm9yRWFjaERlcGVuZGVuY3koKGRlcGVuZGVuY3ksIG5leHQsIGRvbmUpID0+IHtcbiAgICBjb25zdCBjeWNsaWNEZXBlbmRlbmN5RXhpc3RzID0gY2hlY2tDeWNsaWNEZXBlbmRlbmN5RXhpc3RzKGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGlmIChjeWNsaWNEZXBlbmRlbmN5RXhpc3RzKSB7XG4gICAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNyZWF0ZVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0LCAoZXJyb3IpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICBjYWxsYmFjayhlcnJvcik7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sIGRvbmUpO1xufVxuXG5mdW5jdGlvbiByZXRyaWV2ZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoZGVwZW5kZW5jeSwgY29udGV4dCwgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IFtdKSB7XG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRNYXAgfSA9IGNvbnRleHQsXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSB8fCBudWxsO1xuXG4gIGlmIChyZWxlYXNlQ29udGV4dCA9PT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0ID0gZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5pbmNsdWRlcyhyZWxlYXNlQ29udGV4dCk7XG5cbiAgaWYgKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgZGVwZW5kZW5jaWVzLmZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7XG4gICAgcmV0cmlldmVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKGRlcGVuZGVuY3ksIGNvbnRleHQsIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMpO1xuICB9KTtcblxuICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLnB1c2gocmVsZWFzZUNvbnRleHQpO1xuXG4gIHJldHVybiBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzO1xufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVJlbGVhc2VDb250ZXh0IiwiaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0IiwiZGVwZW5kZW5jeSIsImRlcGVuZGVudE5hbWVzIiwiY29udGV4dCIsImNhbGxiYWNrIiwicmVsZWFzZUNvbnRleHRNYXAiLCJkZXBlbmRlbmN5TmFtZSIsImdldE5hbWUiLCJyZWxlYXNlTmFtZSIsInJlbGVhc2VDb250ZXh0IiwiZXJyb3IiLCJyZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5QW5kRGVwZW5kZW50TmFtZXMiLCJsb2ciLCJjcmVhdGVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwiaW5pdGlhbGlzZWQiLCJpc0luaXRpYWxpc2VkIiwiZGVwZW5kZW5jaWVzIiwiZ2V0RGVwZW5kZW5jaWVzIiwiZm9yRWFjaERlcGVuZGVuY3kiLCJkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwicmV0cmlldmVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwiaW5pdGlhbGlzZSIsImNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyIsImRlcGVuZGVudE5hbWVzSW5jbHVkZXNEZXBlbmRlbmN5TmFtZSIsImluY2x1ZGVzIiwiY3ljbGljRGVwZW5kZW5jeUV4aXN0cyIsImZpcnN0RGVwZW5kZW50TmFtZSIsImZpcnN0IiwiZGVwZW5kZW5jeU5hbWVzIiwiZGVwZW5kZW5jeU5hbWVzU3RyaW5nIiwiam9pbiIsImRvbmUiLCJhc3luY2hyb25vdXNGb3JFYWNoRGVwZW5kZW5jeSIsIm5leHQiLCJkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCIsInB1c2giXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVnQkEsb0JBQW9CO2VBQXBCQTs7SUF1Q0FDLHdCQUF3QjtlQUF4QkE7O0lBMkJoQixPQUdFO2VBSEY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFsRU8sU0FBU0QscUJBQXFCRSxVQUFVLEVBQUVDLGNBQWMsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVB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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.
|
|
4
|
+
"version": "0.0.390",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-verify-cli",
|
|
7
7
|
"description": "Occam's Verifier",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"necessary": "^11.1.11",
|
|
15
15
|
"occam-custom-grammars": "^5.0.359",
|
|
16
16
|
"occam-dom": "^3.0.171",
|
|
17
|
-
"occam-file-system": "^5.0.
|
|
17
|
+
"occam-file-system": "^5.0.82",
|
|
18
18
|
"occam-grammar-utilities": "^7.0.66"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
@@ -2,65 +2,49 @@
|
|
|
2
2
|
|
|
3
3
|
export function createReleaseContext(dependency, dependentNames, context, callback) {
|
|
4
4
|
const { releaseContextMap } = context,
|
|
5
|
-
|
|
6
|
-
releaseName =
|
|
5
|
+
dependencyName = dependency.getName(),
|
|
6
|
+
releaseName = dependencyName, ///
|
|
7
7
|
releaseContext = releaseContextMap[releaseName] || null;
|
|
8
8
|
|
|
9
9
|
if (releaseContext !== null) {
|
|
10
|
-
const error =
|
|
10
|
+
const error = null;
|
|
11
11
|
|
|
12
12
|
callback(error);
|
|
13
13
|
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
const {
|
|
17
|
+
const { releaseContextFromDependencyAndDependentNames } = context;
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
releaseContextFromDependencyAndDependentNames(dependency, dependentNames, context, (error, releaseContext) => {
|
|
20
20
|
if (error) {
|
|
21
21
|
callback(error);
|
|
22
22
|
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
releaseContextMap[releaseName] = releaseContext;
|
|
27
|
+
|
|
26
28
|
if (releaseContext === null) {
|
|
27
29
|
const { log } = context;
|
|
28
30
|
|
|
29
31
|
log.error(`The '${releaseName}' package could not be created.`);
|
|
30
32
|
|
|
31
|
-
releaseContextMap[releaseName] = releaseContext;
|
|
32
|
-
|
|
33
33
|
callback(error);
|
|
34
34
|
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
createDependencyReleaseContexts(
|
|
39
|
-
if (error) {
|
|
40
|
-
callback(error);
|
|
41
|
-
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
releaseContextMap[releaseName] = releaseContext;
|
|
46
|
-
|
|
47
|
-
callback(error);
|
|
48
|
-
});
|
|
38
|
+
createDependencyReleaseContexts(dependency, dependentNames, context, callback);
|
|
49
39
|
}, context);
|
|
50
40
|
}
|
|
51
41
|
|
|
52
|
-
export function
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
export default {
|
|
59
|
-
createReleaseContext,
|
|
60
|
-
initialiseReleaseContexts
|
|
61
|
-
};
|
|
42
|
+
export function initialiseReleaseContext(dependency, context) {
|
|
43
|
+
const { releaseContextMap } = context,
|
|
44
|
+
dependencyName = dependency.getName(),
|
|
45
|
+
releaseName = dependencyName, ///
|
|
46
|
+
releaseContext = releaseContextMap[releaseName] || null;
|
|
62
47
|
|
|
63
|
-
function initialiseReleaseContext(releaseContext, releaseContextMap) {
|
|
64
48
|
if (releaseContext === null) {
|
|
65
49
|
return;
|
|
66
50
|
}
|
|
@@ -74,39 +58,44 @@ function initialiseReleaseContext(releaseContext, releaseContextMap) {
|
|
|
74
58
|
const dependencies = releaseContext.getDependencies();
|
|
75
59
|
|
|
76
60
|
dependencies.forEachDependency((dependency) => {
|
|
77
|
-
|
|
78
|
-
releaseName = name, ///
|
|
79
|
-
releaseContext = releaseContextMap[releaseName];
|
|
80
|
-
|
|
81
|
-
initialiseReleaseContext(releaseContext, releaseContextMap);
|
|
61
|
+
initialiseReleaseContext(dependency, context);
|
|
82
62
|
});
|
|
83
63
|
|
|
84
|
-
const dependencyReleaseContexts = retrieveDependencyReleaseContexts(
|
|
64
|
+
const dependencyReleaseContexts = retrieveDependencyReleaseContexts(dependency, context);
|
|
85
65
|
|
|
86
66
|
releaseContext.initialise(dependencyReleaseContexts);
|
|
87
67
|
}
|
|
88
68
|
|
|
89
|
-
|
|
69
|
+
export default {
|
|
70
|
+
createReleaseContext,
|
|
71
|
+
initialiseReleaseContext
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
function checkCyclicDependencyExists(dependency, dependentNames, context) {
|
|
90
75
|
const dependencyName = dependency.getName(),
|
|
91
76
|
dependentNamesIncludesDependencyName = dependentNames.includes(dependencyName),
|
|
92
77
|
cyclicDependencyExists = dependentNamesIncludesDependencyName; ///
|
|
93
78
|
|
|
94
79
|
if (cyclicDependencyExists) {
|
|
95
|
-
const
|
|
80
|
+
const { log } = context,
|
|
81
|
+
firstDependentName = first(dependentNames),
|
|
96
82
|
dependencyNames = [ ///
|
|
97
83
|
...dependentNames,
|
|
98
84
|
firstDependentName
|
|
99
85
|
],
|
|
100
86
|
dependencyNamesString = dependencyNames.join(`' -> '`);
|
|
101
87
|
|
|
102
|
-
|
|
88
|
+
log.error(`There is a cyclic dependency: '${dependencyNamesString}'.`);
|
|
103
89
|
}
|
|
104
90
|
|
|
105
91
|
return cyclicDependencyExists;
|
|
106
92
|
}
|
|
107
93
|
|
|
108
|
-
function createDependencyReleaseContexts(
|
|
109
|
-
const
|
|
94
|
+
function createDependencyReleaseContexts(dependency, dependentNames, context, callback) {
|
|
95
|
+
const { releaseContextMap } = context,
|
|
96
|
+
dependencyName = dependency.getName(),
|
|
97
|
+
releaseName = dependencyName, ///
|
|
98
|
+
releaseContext = releaseContextMap[releaseName],
|
|
110
99
|
dependencies = releaseContext.getDependencies(),
|
|
111
100
|
done = () => {
|
|
112
101
|
const error = null;
|
|
@@ -114,10 +103,10 @@ function createDependencyReleaseContexts(releaseContext, dependentNames, context
|
|
|
114
103
|
callback(error);
|
|
115
104
|
}
|
|
116
105
|
|
|
117
|
-
dependentNames = [ ...dependentNames,
|
|
106
|
+
dependentNames = [ ...dependentNames, dependencyName ]; ///
|
|
118
107
|
|
|
119
108
|
dependencies.asynchronousForEachDependency((dependency, next, done) => {
|
|
120
|
-
const cyclicDependencyExists = checkCyclicDependencyExists(dependency, dependentNames,
|
|
109
|
+
const cyclicDependencyExists = checkCyclicDependencyExists(dependency, dependentNames, context);
|
|
121
110
|
|
|
122
111
|
if (cyclicDependencyExists) {
|
|
123
112
|
const error = null;
|
|
@@ -139,28 +128,29 @@ function createDependencyReleaseContexts(releaseContext, dependentNames, context
|
|
|
139
128
|
}, done);
|
|
140
129
|
}
|
|
141
130
|
|
|
142
|
-
function retrieveDependencyReleaseContexts(
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
dependencyReleaseName = dependencyName, ///
|
|
148
|
-
dependencyReleaseContext = releaseContextMap[dependencyReleaseName];
|
|
131
|
+
function retrieveDependencyReleaseContexts(dependency, context, dependencyReleaseContexts = []) {
|
|
132
|
+
const { releaseContextMap } = context,
|
|
133
|
+
dependencyName = dependency.getName(),
|
|
134
|
+
releaseName = dependencyName, ///
|
|
135
|
+
releaseContext = releaseContextMap[releaseName] || null;
|
|
149
136
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
137
|
+
if (releaseContext === null) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
153
140
|
|
|
154
|
-
|
|
141
|
+
const dependencyReleaseContextsIncludesReleaseContext = dependencyReleaseContexts.includes(releaseContext);
|
|
155
142
|
|
|
156
|
-
|
|
157
|
-
|
|
143
|
+
if (dependencyReleaseContextsIncludesReleaseContext) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
158
146
|
|
|
159
|
-
|
|
147
|
+
const dependencies = releaseContext.getDependencies();
|
|
160
148
|
|
|
161
|
-
|
|
162
|
-
|
|
149
|
+
dependencies.forEachDependency((dependency) => {
|
|
150
|
+
retrieveDependencyReleaseContexts(dependency, context, dependencyReleaseContexts);
|
|
163
151
|
});
|
|
164
152
|
|
|
153
|
+
dependencyReleaseContexts.push(releaseContext);
|
|
154
|
+
|
|
165
155
|
return dependencyReleaseContexts;
|
|
166
156
|
}
|