occam-verify-cli 0.0.387 → 0.0.389
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
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
const {
|
|
3
|
+
const { Dependency } = require("occam-file-system"),
|
|
4
|
+
{ loggingUtilities } = require("necessary"),
|
|
4
5
|
{ verifyRelease, releaseContextUtilities } = require("../../lib/index");
|
|
5
6
|
|
|
6
7
|
const { releaseContextFromReleaseNameAndShortenedVersion } = require("../utilities/fileSystem");
|
|
@@ -10,10 +11,11 @@ const { log } = loggingUtilities,
|
|
|
10
11
|
{ createReleaseContext, initialiseReleaseContexts } = releaseContextUtilities;
|
|
11
12
|
|
|
12
13
|
function verifyAction(argument, logLevel) {
|
|
13
|
-
const
|
|
14
|
+
const name = argument, ///
|
|
14
15
|
releaseContextMap = {},
|
|
15
16
|
shortenedVersion = null,
|
|
16
17
|
dependentNames = [],
|
|
18
|
+
dependency = Dependency.fromNameAndShortenedVersion(name, shortenedVersion),
|
|
17
19
|
context = {
|
|
18
20
|
log,
|
|
19
21
|
releaseContextMap,
|
|
@@ -22,13 +24,15 @@ function verifyAction(argument, logLevel) {
|
|
|
22
24
|
|
|
23
25
|
setLogLevel(logLevel);
|
|
24
26
|
|
|
25
|
-
createReleaseContext(
|
|
27
|
+
createReleaseContext(dependency, dependentNames, context, (error) => {
|
|
26
28
|
if (error) {
|
|
27
29
|
///
|
|
28
30
|
|
|
29
31
|
return;
|
|
30
32
|
}
|
|
31
33
|
|
|
34
|
+
const releaseName = name; ///
|
|
35
|
+
|
|
32
36
|
initialiseReleaseContexts(releaseName, releaseContextMap);
|
|
33
37
|
|
|
34
38
|
const releaseVerified = verifyRelease(releaseName, releaseContextMap);
|
|
@@ -9,17 +9,18 @@ const callbacks = require("../callbacks");
|
|
|
9
9
|
const { loadRelease } = occamFileSystemUtilities,
|
|
10
10
|
{ readFile, isEntryFile } = necessaryFileSystemUtilities;
|
|
11
11
|
|
|
12
|
-
function releaseContextFromReleaseNameAndShortenedVersion(
|
|
12
|
+
function releaseContextFromReleaseNameAndShortenedVersion(dependency, context, callback) {
|
|
13
13
|
const projectsDirectoryPath = process.cwd(), ///
|
|
14
|
-
|
|
14
|
+
dependencyName = dependency.getName(),
|
|
15
|
+
entryPath = `${projectsDirectoryPath}/${dependencyName}`,
|
|
15
16
|
entryFile = isEntryFile(entryPath);
|
|
16
17
|
|
|
17
18
|
let releaseContext;
|
|
18
19
|
|
|
19
20
|
try {
|
|
20
21
|
releaseContext = entryFile ?
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
fileReleaseContextFromDependencyAndProjectsDirectoryPath(dependency, projectsDirectoryPath, context) :
|
|
23
|
+
directoryReleaseContextFromDependencyAndProjectsDirectoryPath(dependency, projectsDirectoryPath, context);
|
|
23
24
|
} catch (error) {
|
|
24
25
|
const releaseContext = null;
|
|
25
26
|
|
|
@@ -27,7 +28,7 @@ function releaseContextFromReleaseNameAndShortenedVersion(releaseName, shortened
|
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
if (releaseContext !== null) {
|
|
30
|
-
const releaseMatchesShortedVersion =
|
|
31
|
+
const releaseMatchesShortedVersion = checkReleaseMatchesDependency(dependency, releaseContext, context);
|
|
31
32
|
|
|
32
33
|
if (!releaseMatchesShortedVersion) {
|
|
33
34
|
releaseContext = null;
|
|
@@ -43,11 +44,30 @@ module.exports = {
|
|
|
43
44
|
releaseContextFromReleaseNameAndShortenedVersion
|
|
44
45
|
};
|
|
45
46
|
|
|
46
|
-
function
|
|
47
|
+
function checkReleaseMatchesDependency(dependency, releaseContext, context) {
|
|
48
|
+
const entries = releaseContext.getEntries(),
|
|
49
|
+
shortenedVersion = dependency.getShortedVersion(),
|
|
50
|
+
releaseMatchesShortedVersion = entries.matchShortenedVersion(shortenedVersion);
|
|
51
|
+
|
|
52
|
+
if (!releaseMatchesShortedVersion) {
|
|
53
|
+
const { log } = context,
|
|
54
|
+
version = releaseContext.getVersion(),
|
|
55
|
+
versionString = version.toString(),
|
|
56
|
+
dependencyName = dependency.getName(),
|
|
57
|
+
shortenedVersionString = shortenedVersion.toString();
|
|
58
|
+
|
|
59
|
+
log.error(`The '${dependencyName}' dependency's version of ${versionString} does not match the required shortened version of ${shortenedVersionString}.`);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return releaseMatchesShortedVersion;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function fileReleaseContextFromDependencyAndProjectsDirectoryPath(dependency, projectsDirectoryPath, context) {
|
|
47
66
|
let releaseContext;
|
|
48
67
|
|
|
49
68
|
const { log } = context,
|
|
50
|
-
|
|
69
|
+
dependencyName = dependency.getName(),
|
|
70
|
+
filePath = `${projectsDirectoryPath}/${dependencyName}`,
|
|
51
71
|
content = readFile(filePath),
|
|
52
72
|
releaseJSONString = content, ///
|
|
53
73
|
releaseJSON = JSON.parse(releaseJSONString);
|
|
@@ -62,7 +82,7 @@ function fileReleaseContextFromReleaseNameAndProjectsDirectoryPath(releaseName,
|
|
|
62
82
|
|
|
63
83
|
entries = Entries.fromJSON(json);
|
|
64
84
|
|
|
65
|
-
const name =
|
|
85
|
+
const name = dependencyName, ///
|
|
66
86
|
fileReleaseContext = FileReleaseContext.fromLogNameEntriesCallbacksAndContextJSON(log, name, entries, callbacks, contextJSON);
|
|
67
87
|
|
|
68
88
|
releaseContext = fileReleaseContext; ///
|
|
@@ -70,32 +90,16 @@ function fileReleaseContextFromReleaseNameAndProjectsDirectoryPath(releaseName,
|
|
|
70
90
|
return releaseContext;
|
|
71
91
|
}
|
|
72
92
|
|
|
73
|
-
function
|
|
74
|
-
const entries = releaseContext.getEntries(),
|
|
75
|
-
releaseMatchesShortedVersion = entries.matchShortenedVersion(shortenedVersion);
|
|
76
|
-
|
|
77
|
-
if (!releaseMatchesShortedVersion) {
|
|
78
|
-
const { log } = context,
|
|
79
|
-
version = releaseContext.getVersion(),
|
|
80
|
-
releaseName = releaseContext.getReleaseName(),
|
|
81
|
-
versionString = version.toString(),
|
|
82
|
-
shortenedVersionString = shortenedVersion.toString();
|
|
83
|
-
|
|
84
|
-
log.error(`The '${releaseName}' package's version of ${versionString} does not match the dependency's shortened version of ${shortenedVersionString}.`);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
return releaseMatchesShortedVersion;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
function directoryReleaseContextFromReleaseNameAndProjectsDirectoryPath(releaseName, projectsDirectoryPath, context) {
|
|
93
|
+
function directoryReleaseContextFromDependencyAndProjectsDirectoryPath(dependency, projectsDirectoryPath, context) {
|
|
91
94
|
let releaseContext = null;
|
|
92
95
|
|
|
93
|
-
const
|
|
96
|
+
const dependencyName = dependency.getName(),
|
|
97
|
+
topmostDirectoryName = dependencyName, ///
|
|
94
98
|
release = loadRelease(topmostDirectoryName, projectsDirectoryPath);
|
|
95
99
|
|
|
96
100
|
if (release !== null) {
|
|
97
101
|
const { log } = context,
|
|
98
|
-
name =
|
|
102
|
+
name = dependencyName, ///
|
|
99
103
|
entries = release.getEntries(),
|
|
100
104
|
directoryReleaseContext = DirectoryReleaseContext.fromLogNameEntriesAndCallbacks(log, name, entries, callbacks);
|
|
101
105
|
|
|
@@ -44,15 +44,15 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
|
44
44
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
45
45
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
46
46
|
}
|
|
47
|
-
function createReleaseContext(
|
|
48
|
-
var releaseContextMap = context.releaseContextMap, releaseContext = releaseContextMap[releaseName] || null;
|
|
47
|
+
function createReleaseContext(dependency, dependentNames, context, callback) {
|
|
48
|
+
var releaseContextMap = context.releaseContextMap, name = dependency.getName(), releaseName = name, releaseContext = releaseContextMap[releaseName] || null;
|
|
49
49
|
if (releaseContext !== null) {
|
|
50
50
|
var error = false;
|
|
51
51
|
callback(error);
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
54
|
var releaseContextFromReleaseNameAndShortenedVersion = context.releaseContextFromReleaseNameAndShortenedVersion;
|
|
55
|
-
releaseContextFromReleaseNameAndShortenedVersion(
|
|
55
|
+
releaseContextFromReleaseNameAndShortenedVersion(dependency, context, function(error, releaseContext) {
|
|
56
56
|
if (error) {
|
|
57
57
|
callback(error);
|
|
58
58
|
return;
|
|
@@ -98,10 +98,12 @@ function initialiseReleaseContext(releaseContext, releaseContextMap) {
|
|
|
98
98
|
var dependencyReleaseContexts = retrieveDependencyReleaseContexts(releaseContext, releaseContextMap);
|
|
99
99
|
releaseContext.initialise(dependencyReleaseContexts);
|
|
100
100
|
}
|
|
101
|
-
function checkCyclicDependencyExists(
|
|
102
|
-
var
|
|
101
|
+
function checkCyclicDependencyExists(dependency, dependentNames, releaseContext) {
|
|
102
|
+
var dependencyName = dependency.getName(), dependentNamesIncludesDependencyName = dependentNames.includes(dependencyName), cyclicDependencyExists = dependentNamesIncludesDependencyName; ///
|
|
103
103
|
if (cyclicDependencyExists) {
|
|
104
|
-
var firstDependentName = first(dependentNames), dependencyNames = dependentNames.concat(
|
|
104
|
+
var firstDependentName = first(dependentNames), dependencyNames = _toConsumableArray(dependentNames).concat([
|
|
105
|
+
firstDependentName
|
|
106
|
+
]), dependencyNamesString = dependencyNames.join("' -> '");
|
|
105
107
|
releaseContext.error("There is a cyclic dependency: '".concat(dependencyNamesString, "'."));
|
|
106
108
|
}
|
|
107
109
|
return cyclicDependencyExists;
|
|
@@ -115,13 +117,13 @@ function createDependencyReleaseContexts(releaseContext, dependentNames, context
|
|
|
115
117
|
releaseName
|
|
116
118
|
]); ///
|
|
117
119
|
dependencies.asynchronousForEachDependency(function(dependency, next, done) {
|
|
118
|
-
var
|
|
120
|
+
var cyclicDependencyExists = checkCyclicDependencyExists(dependency, dependentNames, releaseContext);
|
|
119
121
|
if (cyclicDependencyExists) {
|
|
120
122
|
var error = null;
|
|
121
123
|
callback(error);
|
|
122
124
|
return;
|
|
123
125
|
}
|
|
124
|
-
createReleaseContext(
|
|
126
|
+
createReleaseContext(dependency, dependentNames, context, function(error) {
|
|
125
127
|
if (error) {
|
|
126
128
|
callback(error);
|
|
127
129
|
return;
|
|
@@ -148,4 +150,4 @@ function retrieveDependencyReleaseContexts(releaseContext, releaseContextMap) {
|
|
|
148
150
|
return dependencyReleaseContexts;
|
|
149
151
|
}
|
|
150
152
|
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVsZWFzZUNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWxlYXNlQ29udGV4dChyZWxlYXNlTmFtZSwgZGVwZW5kZW50TmFtZXMsIHNob3J0ZW5lZFZlcnNpb24sIGNvbnRleHQsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRNYXAgfSA9IGNvbnRleHQsXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdIHx8IG51bGw7XG5cbiAgaWYgKHJlbGVhc2VDb250ZXh0ICE9PSBudWxsKSB7XG4gICAgY29uc3QgZXJyb3IgPSBmYWxzZTtcblxuICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRGcm9tUmVsZWFzZU5hbWVBbmRTaG9ydGVuZWRWZXJzaW9uIH0gPSBjb250ZXh0O1xuXG4gIHJlbGVhc2VDb250ZXh0RnJvbVJlbGVhc2VOYW1lQW5kU2hvcnRlbmVkVmVyc2lvbihyZWxlYXNlTmFtZSwgc2hvcnRlbmVkVmVyc2lvbiwgY29udGV4dCwgKGVycm9yLCByZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHJlbGVhc2VDb250ZXh0ID09PSBudWxsKSB7XG4gICAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dDtcblxuICAgICAgbG9nLmVycm9yKGBUaGUgJyR7cmVsZWFzZU5hbWV9JyBwYWNrYWdlIGNvdWxkIG5vdCBiZSBjcmVhdGVkLmApO1xuXG4gICAgICByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0gPSByZWxlYXNlQ29udGV4dDtcblxuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQsIChlcnJvcikgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSA9IHJlbGVhc2VDb250ZXh0O1xuXG4gICAgICBjYWxsYmFjayhlcnJvcik7XG4gICAgfSk7XG4gIH0sIGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlTmFtZSwgcmVsZWFzZUNvbnRleHRNYXApIHtcbiAgY29uc3QgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV07XG5cbiAgaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0KHJlbGVhc2VDb250ZXh0LCByZWxlYXNlQ29udGV4dE1hcCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3JlYXRlUmVsZWFzZUNvbnRleHQsXG4gIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dHNcbn07XG5cbmZ1bmN0aW9uIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXApIHtcbiAgaWYgKHJlbGVhc2VDb250ZXh0ID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgaW5pdGlhbGlzZWQgPSByZWxlYXNlQ29udGV4dC5pc0luaXRpYWxpc2VkKCk7XG5cbiAgaWYgKGluaXRpYWxpc2VkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgZGVwZW5kZW5jaWVzLmZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gbmFtZSwgLy8vXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV07XG5cbiAgICBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQocmVsZWFzZUNvbnRleHQsIHJlbGVhc2VDb250ZXh0TWFwKTtcbiAgfSk7XG5cbiAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHJldHJpZXZlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXApO1xuXG4gIHJlbGVhc2VDb250ZXh0LmluaXRpYWxpc2UoZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyk7XG59XG5cbmZ1bmN0aW9uIGNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyhyZWxlYXNlTmFtZSwgZGVwZW5kZW50TmFtZXMsIHJlbGVhc2VDb250ZXh0KSB7XG4gIGNvbnN0IGRlcGVuZGVudE5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IGRlcGVuZGVudE5hbWVzLmluY2x1ZGVzKHJlbGVhc2VOYW1lKSxcbiAgICAgICAgY3ljbGljRGVwZW5kZW5jeUV4aXN0cyA9IGRlcGVuZGVudE5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZTsgIC8vL1xuXG4gIGlmIChjeWNsaWNEZXBlbmRlbmN5RXhpc3RzKSB7XG4gICAgY29uc3QgZmlyc3REZXBlbmRlbnROYW1lID0gZmlyc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgIGRlcGVuZGVuY3lOYW1lcyA9IGRlcGVuZGVudE5hbWVzLmNvbmNhdChmaXJzdERlcGVuZGVudE5hbWUpLFxuICAgICAgICAgIGRlcGVuZGVuY3lOYW1lc1N0cmluZyA9IGRlcGVuZGVuY3lOYW1lcy5qb2luKGAnIC0+ICdgKTtcblxuICAgIHJlbGVhc2VDb250ZXh0LmVycm9yKGBUaGVyZSBpcyBhIGN5Y2xpYyBkZXBlbmRlbmN5OiAnJHtkZXBlbmRlbmN5TmFtZXNTdHJpbmd9Jy5gKTtcbiAgfVxuXG4gIHJldHVybiBjeWNsaWNEZXBlbmRlbmN5RXhpc3RzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spIHtcbiAgY29uc3QgcmVsZWFzZU5hbWUgPSByZWxlYXNlQ29udGV4dC5nZXRSZWxlYXNlTmFtZSgpLFxuICAgICAgICBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKSxcbiAgICAgICAgZG9uZSA9ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICAgICAgICBjYWxsYmFjayhlcnJvcik7XG4gICAgICAgIH1cblxuICBkZXBlbmRlbnROYW1lcyA9IFsgLi4uZGVwZW5kZW50TmFtZXMsIHJlbGVhc2VOYW1lIF07ICAvLy9cblxuICBkZXBlbmRlbmNpZXMuYXN5bmNocm9ub3VzRm9yRWFjaERlcGVuZGVuY3koKGRlcGVuZGVuY3ksIG5leHQsIGRvbmUpID0+IHtcbiAgICBjb25zdCBuYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSBuYW1lLCAvL1xuICAgICAgICAgIHNob3J0ZW5lZFZlcnNpb24gPSBkZXBlbmRlbmN5LmdldFNob3J0ZWRWZXJzaW9uKCksXG4gICAgICAgICAgY3ljbGljRGVwZW5kZW5jeUV4aXN0cyA9IGNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyhyZWxlYXNlTmFtZSwgZGVwZW5kZW50TmFtZXMsIHJlbGVhc2VDb250ZXh0KTtcblxuICAgIGlmIChjeWNsaWNEZXBlbmRlbmN5RXhpc3RzKSB7XG4gICAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNyZWF0ZVJlbGVhc2VDb250ZXh0KHJlbGVhc2VOYW1lLCBkZXBlbmRlbnROYW1lcywgc2hvcnRlbmVkVmVyc2lvbiwgY29udGV4dCwgKGVycm9yKSA9PiB7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCBkb25lKTtcbn1cblxuZnVuY3Rpb24gcmV0cmlldmVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKHJlbGVhc2VDb250ZXh0LCByZWxlYXNlQ29udGV4dE1hcCwgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IFtdKSB7XG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IHJlbGVhc2VDb250ZXh0LmdldERlcGVuZGVuY2llcygpO1xuXG4gIGRlcGVuZGVuY2llcy5mb3JFYWNoRGVwZW5kZW5jeSgoZGVwZW5kZW5jeSkgPT4ge1xuICAgIGNvbnN0IGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgICAgZGVwZW5kZW5jeVJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW2RlcGVuZGVuY3lSZWxlYXNlTmFtZV07XG5cbiAgICBpZiAoZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0ID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0luY2x1ZGVzRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0ID0gZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5pbmNsdWRlcyhkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHQpO1xuXG4gICAgaWYgKCFkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzSW5jbHVkZXNEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHQpIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0ID0gZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0OyAgLy8vXG5cbiAgICAgIHJldHJpZXZlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXAsIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLnB1c2goZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0KTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzO1xufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVJlbGVhc2VDb250ZXh0IiwiaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0cyIsInJlbGVhc2VOYW1lIiwiZGVwZW5kZW50TmFtZXMiLCJzaG9ydGVuZWRWZXJzaW9uIiwiY29udGV4dCIsImNhbGxiYWNrIiwicmVsZWFzZUNvbnRleHRNYXAiLCJyZWxlYXNlQ29udGV4dCIsImVycm9yIiwicmVsZWFzZUNvbnRleHRGcm9tUmVsZWFzZU5hbWVBbmRTaG9ydGVuZWRWZXJzaW9uIiwibG9nIiwiY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsImluaXRpYWxpc2VSZWxlYXNlQ29udGV4dCIsImluaXRpYWxpc2VkIiwiaXNJbml0aWFsaXNlZCIsImRlcGVuZGVuY2llcyIsImdldERlcGVuZGVuY2llcyIsImZvckVhY2hEZXBlbmRlbmN5IiwiZGVwZW5kZW5jeSIsIm5hbWUiLCJnZXROYW1lIiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsInJldHJpZXZlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsImluaXRpYWxpc2UiLCJjaGVja0N5Y2xpY0RlcGVuZGVuY3lFeGlzdHMiLCJkZXBlbmRlbnROYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUiLCJpbmNsdWRlcyIsImN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMiLCJmaXJzdERlcGVuZGVudE5hbWUiLCJmaXJzdCIsImRlcGVuZGVuY3lOYW1lcyIsImNvbmNhdCIsImRlcGVuZGVuY3lOYW1lc1N0cmluZyIsImpvaW4iLCJnZXRSZWxlYXNlTmFtZSIsImRvbmUiLCJhc3luY2hyb25vdXNGb3JFYWNoRGVwZW5kZW5jeSIsIm5leHQiLCJnZXRTaG9ydGVkVmVyc2lvbiIsImRlcGVuZGVuY3lOYW1lIiwiZGVwZW5kZW5jeVJlbGVhc2VOYW1lIiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0IiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0luY2x1ZGVzRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0IiwicHVzaCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBRWdCQSxvQkFBb0I7ZUFBcEJBOztJQStDQUMseUJBQXlCO2VBQXpCQTs7SUFNaEIsT0FHRTtlQUhGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBckRPLFNBQVNELHFCQUFxQkUsV0FBVyxFQUFFQyxjQUFjLEVBQUVDLGdCQUFnQixFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRTtJQUNyRyxJQUFNLEFBQUVDLG9CQUFzQkYsUUFBdEJFLG1CQUNGQyxpQkFBaUJELGlCQUFpQixDQUFDTCxZQUFZLElBQUksSUFBSTtJQUU3RCxJQUFJTSxtQkFBbUIsSUFBSSxFQUFFO1FBQzNCLElBQU1DLFFBQVEsS0FBSztRQUVuQkgsU0FBU0c7UUFFVDtJQUNGLENBQUM7SUFFRCxJQUFNLEFBQUVDLG1EQUFxREwsUUFBckRLO0lBRVJBLGlEQUFpRFIsYUFBYUUsa0JBQWtCQyxTQUFTLFNBQUNJLE9BQU9ELGdCQUFtQjtRQUNsSCxJQUFJQyxPQUFPO1lBQ1RILFNBQVNHO1lBRVQ7UUFDRixDQUFDO1FBRUQsSUFBSUQsbUJBQW1CLElBQUksRUFBRTtZQUMzQixJQUFNLEFBQUVHLE1BQVFOLFFBQVJNO1lBRVJBLElBQUlGLEtBQUssQ0FBQyxBQUFDLFFBQW1CLE9BQVpQLGFBQVk7WUFF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
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVsZWFzZUNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dE1hcCB9ID0gY29udGV4dCxcbiAgICAgICAgbmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICByZWxlYXNlTmFtZSA9IG5hbWUsIC8vL1xuICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSB8fCBudWxsO1xuXG4gIGlmIChyZWxlYXNlQ29udGV4dCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGVycm9yID0gZmFsc2U7XG5cbiAgICBjYWxsYmFjayhlcnJvcik7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IHJlbGVhc2VDb250ZXh0RnJvbVJlbGVhc2VOYW1lQW5kU2hvcnRlbmVkVmVyc2lvbiB9ID0gY29udGV4dDtcblxuICByZWxlYXNlQ29udGV4dEZyb21SZWxlYXNlTmFtZUFuZFNob3J0ZW5lZFZlcnNpb24oZGVwZW5kZW5jeSwgY29udGV4dCwgKGVycm9yLCByZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHJlbGVhc2VDb250ZXh0ID09PSBudWxsKSB7XG4gICAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dDtcblxuICAgICAgbG9nLmVycm9yKGBUaGUgJyR7cmVsZWFzZU5hbWV9JyBwYWNrYWdlIGNvdWxkIG5vdCBiZSBjcmVhdGVkLmApO1xuXG4gICAgICByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0gPSByZWxlYXNlQ29udGV4dDtcblxuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQsIChlcnJvcikgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSA9IHJlbGVhc2VDb250ZXh0O1xuXG4gICAgICBjYWxsYmFjayhlcnJvcik7XG4gICAgfSk7XG4gIH0sIGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlTmFtZSwgcmVsZWFzZUNvbnRleHRNYXApIHtcbiAgY29uc3QgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV07XG5cbiAgaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0KHJlbGVhc2VDb250ZXh0LCByZWxlYXNlQ29udGV4dE1hcCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3JlYXRlUmVsZWFzZUNvbnRleHQsXG4gIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dHNcbn07XG5cbmZ1bmN0aW9uIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXApIHtcbiAgaWYgKHJlbGVhc2VDb250ZXh0ID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgaW5pdGlhbGlzZWQgPSByZWxlYXNlQ29udGV4dC5pc0luaXRpYWxpc2VkKCk7XG5cbiAgaWYgKGluaXRpYWxpc2VkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgZGVwZW5kZW5jaWVzLmZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gbmFtZSwgLy8vXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV07XG5cbiAgICBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQocmVsZWFzZUNvbnRleHQsIHJlbGVhc2VDb250ZXh0TWFwKTtcbiAgfSk7XG5cbiAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHJldHJpZXZlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXApO1xuXG4gIHJlbGVhc2VDb250ZXh0LmluaXRpYWxpc2UoZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyk7XG59XG5cbmZ1bmN0aW9uIGNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgcmVsZWFzZUNvbnRleHQpIHtcbiAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW50TmFtZXMuaW5jbHVkZXMoZGVwZW5kZW5jeU5hbWUpLFxuICAgICAgICBjeWNsaWNEZXBlbmRlbmN5RXhpc3RzID0gZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lOyAgLy8vXG5cbiAgaWYgKGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMpIHtcbiAgICBjb25zdCBmaXJzdERlcGVuZGVudE5hbWUgPSBmaXJzdChkZXBlbmRlbnROYW1lcyksXG4gICAgICAgICAgZGVwZW5kZW5jeU5hbWVzID0gWyAgLy8vXG4gICAgICAgICAgICAgIC4uLmRlcGVuZGVudE5hbWVzLFxuICAgICAgICAgICAgZmlyc3REZXBlbmRlbnROYW1lXG4gICAgICAgICAgXSxcbiAgICAgICAgICBkZXBlbmRlbmN5TmFtZXNTdHJpbmcgPSBkZXBlbmRlbmN5TmFtZXMuam9pbihgJyAtPiAnYCk7XG5cbiAgICByZWxlYXNlQ29udGV4dC5lcnJvcihgVGhlcmUgaXMgYSBjeWNsaWMgZGVwZW5kZW5jeTogJyR7ZGVwZW5kZW5jeU5hbWVzU3RyaW5nfScuYCk7XG4gIH1cblxuICByZXR1cm4gY3ljbGljRGVwZW5kZW5jeUV4aXN0cztcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHJlbGVhc2VOYW1lID0gcmVsZWFzZUNvbnRleHQuZ2V0UmVsZWFzZU5hbWUoKSxcbiAgICAgICAgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCksXG4gICAgICAgIGRvbmUgPSAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXJyb3IgPSBudWxsO1xuXG4gICAgICAgICAgY2FsbGJhY2soZXJyb3IpO1xuICAgICAgICB9XG5cbiAgZGVwZW5kZW50TmFtZXMgPSBbIC4uLmRlcGVuZGVudE5hbWVzLCByZWxlYXNlTmFtZSBdOyAgLy8vXG5cbiAgZGVwZW5kZW5jaWVzLmFzeW5jaHJvbm91c0ZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY29uc3QgY3ljbGljRGVwZW5kZW5jeUV4aXN0cyA9IGNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgcmVsZWFzZUNvbnRleHQpO1xuXG4gICAgaWYgKGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gbnVsbDtcblxuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3JlYXRlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQsIChlcnJvcikgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgZG9uZSk7XG59XG5cbmZ1bmN0aW9uIHJldHJpZXZlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXAsIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSBbXSkge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKTtcblxuICBkZXBlbmRlbmNpZXMuZm9yRWFjaERlcGVuZGVuY3koKGRlcGVuZGVuY3kpID0+IHtcbiAgICBjb25zdCBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICAgIGRlcGVuZGVuY3lSZWxlYXNlTmFtZSA9IGRlcGVuZGVuY3lOYW1lLCAvLy9cbiAgICAgICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtkZXBlbmRlbmN5UmVsZWFzZU5hbWVdO1xuXG4gICAgaWYgKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNJbmNsdWRlc0RlcGVuZGVuY3lSZWxlYXNlQ29udGV4dCA9IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuaW5jbHVkZXMoZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0KTtcblxuICAgIGlmICghZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0luY2x1ZGVzRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0KSB7XG4gICAgICBjb25zdCByZWxlYXNlQ29udGV4dCA9IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dDsgIC8vL1xuXG4gICAgICByZXRyaWV2ZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIHJlbGVhc2VDb250ZXh0TWFwLCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKTtcblxuICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5wdXNoKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dCk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cztcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVSZWxlYXNlQ29udGV4dCIsImluaXRpYWxpc2VSZWxlYXNlQ29udGV4dHMiLCJkZXBlbmRlbmN5IiwiZGVwZW5kZW50TmFtZXMiLCJjb250ZXh0IiwiY2FsbGJhY2siLCJyZWxlYXNlQ29udGV4dE1hcCIsIm5hbWUiLCJnZXROYW1lIiwicmVsZWFzZU5hbWUiLCJyZWxlYXNlQ29udGV4dCIsImVycm9yIiwicmVsZWFzZUNvbnRleHRGcm9tUmVsZWFzZU5hbWVBbmRTaG9ydGVuZWRWZXJzaW9uIiwibG9nIiwiY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsImluaXRpYWxpc2VSZWxlYXNlQ29udGV4dCIsImluaXRpYWxpc2VkIiwiaXNJbml0aWFsaXNlZCIsImRlcGVuZGVuY2llcyIsImdldERlcGVuZGVuY2llcyIsImZvckVhY2hEZXBlbmRlbmN5IiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsInJldHJpZXZlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsImluaXRpYWxpc2UiLCJjaGVja0N5Y2xpY0RlcGVuZGVuY3lFeGlzdHMiLCJkZXBlbmRlbmN5TmFtZSIsImRlcGVuZGVudE5hbWVzSW5jbHVkZXNEZXBlbmRlbmN5TmFtZSIsImluY2x1ZGVzIiwiY3ljbGljRGVwZW5kZW5jeUV4aXN0cyIsImZpcnN0RGVwZW5kZW50TmFtZSIsImZpcnN0IiwiZGVwZW5kZW5jeU5hbWVzIiwiZGVwZW5kZW5jeU5hbWVzU3RyaW5nIiwiam9pbiIsImdldFJlbGVhc2VOYW1lIiwiZG9uZSIsImFzeW5jaHJvbm91c0ZvckVhY2hEZXBlbmRlbmN5IiwibmV4dCIsImRlcGVuZGVuY3lSZWxlYXNlTmFtZSIsImRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dCIsImRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNJbmNsdWRlc0RlcGVuZGVuY3lSZWxlYXNlQ29udGV4dCIsInB1c2giXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVnQkEsb0JBQW9CO2VBQXBCQTs7SUFpREFDLHlCQUF5QjtlQUF6QkE7O0lBTWhCLE9BR0U7ZUFIRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXZETyxTQUFTRCxxQkFBcUJFLFVBQVUsRUFBRUMsY0FBYyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRTtJQUNsRixJQUFNLEFBQUVDLG9CQUFzQkYsUUFBdEJFLG1CQUNGQyxPQUFPTCxXQUFXTSxPQUFPLElBQ3pCQyxjQUFjRixNQUNkRyxpQkFBaUJKLGlCQUFpQixDQUFDRyxZQUFZLElBQUksSUFBSTtJQUU3RCxJQUFJQyxtQkFBbUIsSUFBSSxFQUFFO1FBQzNCLElBQU1DLFFBQVEsS0FBSztRQUVuQk4sU0FBU007UUFFVDtJQUNGLENBQUM7SUFFRCxJQUFNLEFBQUVDLG1EQUFxRFIsUUFBckRRO0lBRVJBLGlEQUFpRFYsWUFBWUUsU0FBUyxTQUFDTyxPQUFPRCxnQkFBbUI7UUFDL0YsSUFBSUMsT0FBTztZQUNUTixTQUFTTTtZQUVUO1FBQ0YsQ0FBQztRQUVELElBQUlELG1CQUFtQixJQUFJLEVBQUU7WUFDM0IsSUFBTSxBQUFFRyxNQUFRVCxRQUFSUztZQUVSQSxJQUFJRixLQUFLLENBQUMsQUFBQyxRQUFtQixPQUFaRixhQUFZO1lBRTlCSCxpQkFBaUIsQ0FBQ0csWUFBWSxHQUFHQztZQUVqQ0wsU0FBU007WUFFVDtRQUNGLENB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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.389",
|
|
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": {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
export function createReleaseContext(
|
|
3
|
+
export function createReleaseContext(dependency, dependentNames, context, callback) {
|
|
4
4
|
const { releaseContextMap } = context,
|
|
5
|
+
name = dependency.getName(),
|
|
6
|
+
releaseName = name, ///
|
|
5
7
|
releaseContext = releaseContextMap[releaseName] || null;
|
|
6
8
|
|
|
7
9
|
if (releaseContext !== null) {
|
|
@@ -14,7 +16,7 @@ export function createReleaseContext(releaseName, dependentNames, shortenedVersi
|
|
|
14
16
|
|
|
15
17
|
const { releaseContextFromReleaseNameAndShortenedVersion } = context;
|
|
16
18
|
|
|
17
|
-
releaseContextFromReleaseNameAndShortenedVersion(
|
|
19
|
+
releaseContextFromReleaseNameAndShortenedVersion(dependency, context, (error, releaseContext) => {
|
|
18
20
|
if (error) {
|
|
19
21
|
callback(error);
|
|
20
22
|
|
|
@@ -84,13 +86,17 @@ function initialiseReleaseContext(releaseContext, releaseContextMap) {
|
|
|
84
86
|
releaseContext.initialise(dependencyReleaseContexts);
|
|
85
87
|
}
|
|
86
88
|
|
|
87
|
-
function checkCyclicDependencyExists(
|
|
88
|
-
const
|
|
89
|
-
|
|
89
|
+
function checkCyclicDependencyExists(dependency, dependentNames, releaseContext) {
|
|
90
|
+
const dependencyName = dependency.getName(),
|
|
91
|
+
dependentNamesIncludesDependencyName = dependentNames.includes(dependencyName),
|
|
92
|
+
cyclicDependencyExists = dependentNamesIncludesDependencyName; ///
|
|
90
93
|
|
|
91
94
|
if (cyclicDependencyExists) {
|
|
92
95
|
const firstDependentName = first(dependentNames),
|
|
93
|
-
dependencyNames =
|
|
96
|
+
dependencyNames = [ ///
|
|
97
|
+
...dependentNames,
|
|
98
|
+
firstDependentName
|
|
99
|
+
],
|
|
94
100
|
dependencyNamesString = dependencyNames.join(`' -> '`);
|
|
95
101
|
|
|
96
102
|
releaseContext.error(`There is a cyclic dependency: '${dependencyNamesString}'.`);
|
|
@@ -111,10 +117,7 @@ function createDependencyReleaseContexts(releaseContext, dependentNames, context
|
|
|
111
117
|
dependentNames = [ ...dependentNames, releaseName ]; ///
|
|
112
118
|
|
|
113
119
|
dependencies.asynchronousForEachDependency((dependency, next, done) => {
|
|
114
|
-
const
|
|
115
|
-
releaseName = name, //
|
|
116
|
-
shortenedVersion = dependency.getShortedVersion(),
|
|
117
|
-
cyclicDependencyExists = checkCyclicDependencyExists(releaseName, dependentNames, releaseContext);
|
|
120
|
+
const cyclicDependencyExists = checkCyclicDependencyExists(dependency, dependentNames, releaseContext);
|
|
118
121
|
|
|
119
122
|
if (cyclicDependencyExists) {
|
|
120
123
|
const error = null;
|
|
@@ -124,7 +127,7 @@ function createDependencyReleaseContexts(releaseContext, dependentNames, context
|
|
|
124
127
|
return;
|
|
125
128
|
}
|
|
126
129
|
|
|
127
|
-
createReleaseContext(
|
|
130
|
+
createReleaseContext(dependency, dependentNames, context, (error) => {
|
|
128
131
|
if (error) {
|
|
129
132
|
callback(error);
|
|
130
133
|
|