occam-verify-cli 0.0.443 → 0.0.445

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.
@@ -67,7 +67,7 @@ function createReleaseContext(dependency, dependentNames, context, callback) {
67
67
  createDependencyReleaseContexts(dependency, dependentNames, context, callback);
68
68
  }, context);
69
69
  }
70
- function initialiseReleaseContext(dependency, context) {
70
+ function initialiseReleaseContext(dependency, dependentName, verified, context) {
71
71
  var releaseContextMap = context.releaseContextMap, dependencyName = dependency.getName(), releaseName = dependencyName, releaseContext = releaseContextMap[releaseName] || null;
72
72
  if (releaseContext === null) {
73
73
  return;
@@ -76,9 +76,19 @@ function initialiseReleaseContext(dependency, context) {
76
76
  if (initialised) {
77
77
  return;
78
78
  }
79
+ var releaseContextVerified = releaseContext.isVerified();
80
+ if (verified) {
81
+ if (!releaseContextVerified) {
82
+ var log = context.log;
83
+ log.error("Unable to initialise the '".concat(releaseName, "' dependency's context because its '").concat(dependentName, "' dependent is a package."));
84
+ return;
85
+ }
86
+ }
87
+ verified = releaseContextVerified; ///
88
+ dependentName = releaseName; ///
79
89
  var dependencies = releaseContext.getDependencies();
80
90
  dependencies.forEachDependency(function(dependency) {
81
- initialiseReleaseContext(dependency, context);
91
+ initialiseReleaseContext(dependency, dependentName, verified, context);
82
92
  });
83
93
  var dependencyReleaseContexts = retrieveDependencyReleaseContexts(dependency, context);
84
94
  releaseContext.initialise(dependencyReleaseContexts);
@@ -139,4 +149,4 @@ function retrieveDependencyReleaseContexts(dependency, context) {
139
149
  return dependencyReleaseContexts;
140
150
  }
141
151
 
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVsZWFzZUNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dE1hcCB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgLy8vXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdIHx8IG51bGw7XG5cbiAgaWYgKHJlbGVhc2VDb250ZXh0ICE9PSBudWxsKSB7XG4gICAgY29uc3QgZXJyb3IgPSBudWxsO1xuXG4gICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5QW5kRGVwZW5kZW50TmFtZXMgfSA9IGNvbnRleHQ7XG5cbiAgcmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeUFuZERlcGVuZGVudE5hbWVzKGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0LCAoZXJyb3IsIHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBjYWxsYmFjayhlcnJvcik7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0gPSByZWxlYXNlQ29udGV4dDtcblxuICAgIGlmIChyZWxlYXNlQ29udGV4dCA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQ7XG5cbiAgICAgIGxvZy5lcnJvcihgVGhlICcke3JlbGVhc2VOYW1lfScgcGFja2FnZSBjb3VsZCBub3QgYmUgY3JlYXRlZC5gKTtcblxuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spO1xuICB9LCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRNYXAgfSA9IGNvbnRleHQsXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSB8fCBudWxsO1xuXG4gIGlmIChyZWxlYXNlQ29udGV4dCA9PT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGluaXRpYWxpc2VkID0gcmVsZWFzZUNvbnRleHQuaXNJbml0aWFsaXNlZCgpO1xuXG4gIGlmIChpbml0aWFsaXNlZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IHJlbGVhc2VDb250ZXh0LmdldERlcGVuZGVuY2llcygpO1xuXG4gIGRlcGVuZGVuY2llcy5mb3JFYWNoRGVwZW5kZW5jeSgoZGVwZW5kZW5jeSkgPT4ge1xuICAgIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBjb250ZXh0KTtcbiAgfSk7XG5cbiAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHJldHJpZXZlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCBjb250ZXh0KTtcblxuICByZWxlYXNlQ29udGV4dC5pbml0aWFsaXNlKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGNyZWF0ZVJlbGVhc2VDb250ZXh0LFxuICBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHRcbn07XG5cbmZ1bmN0aW9uIGNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCkge1xuICBjb25zdCBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICBkZXBlbmRlbnROYW1lc0luY2x1ZGVzRGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbnROYW1lcy5pbmNsdWRlcyhkZXBlbmRlbmN5TmFtZSksXG4gICAgICAgIGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMgPSBkZXBlbmRlbnROYW1lc0luY2x1ZGVzRGVwZW5kZW5jeU5hbWU7ICAvLy9cblxuICBpZiAoY3ljbGljRGVwZW5kZW5jeUV4aXN0cykge1xuICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0LFxuICAgICAgICAgIGZpcnN0RGVwZW5kZW50TmFtZSA9IGZpcnN0KGRlcGVuZGVudE5hbWVzKSxcbiAgICAgICAgICBkZXBlbmRlbmN5TmFtZXMgPSBbICAvLy9cbiAgICAgICAgICAgICAgLi4uZGVwZW5kZW50TmFtZXMsXG4gICAgICAgICAgICBmaXJzdERlcGVuZGVudE5hbWVcbiAgICAgICAgICBdLFxuICAgICAgICAgIGRlcGVuZGVuY3lOYW1lc1N0cmluZyA9IGRlcGVuZGVuY3lOYW1lcy5qb2luKGAnIC0+ICdgKTtcblxuICAgIGxvZy5lcnJvcihgVGhlcmUgaXMgYSBjeWNsaWMgZGVwZW5kZW5jeTogJyR7ZGVwZW5kZW5jeU5hbWVzU3RyaW5nfScuYCk7XG4gIH1cblxuICByZXR1cm4gY3ljbGljRGVwZW5kZW5jeUV4aXN0cztcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dE1hcCB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgLy8vXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdLFxuICAgICAgICBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKTtcblxuICBkZXBlbmRlbnROYW1lcyA9IFsgLi4uZGVwZW5kZW50TmFtZXMsIGRlcGVuZGVuY3lOYW1lIF07ICAvLy9cblxuICBkZXBlbmRlbmNpZXMuYXN5bmNocm9ub3VzRm9yRWFjaERlcGVuZGVuY3koKGRlcGVuZGVuY3ksIG5leHQsIGRvbmUpID0+IHtcbiAgICBjb25zdCBjeWNsaWNEZXBlbmRlbmN5RXhpc3RzID0gY2hlY2tDeWNsaWNEZXBlbmRlbmN5RXhpc3RzKGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGlmIChjeWNsaWNEZXBlbmRlbmN5RXhpc3RzKSB7XG4gICAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNyZWF0ZVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0LCAoZXJyb3IpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICBjYWxsYmFjayhlcnJvcik7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICBjYWxsYmFjayhlcnJvcik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXRyaWV2ZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoZGVwZW5kZW5jeSwgY29udGV4dCwgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IFtdKSB7XG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRNYXAgfSA9IGNvbnRleHQsXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSxcbiAgICAgICAgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgZGVwZW5kZW5jaWVzLmZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7XG4gICAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IGRlcGVuZGVuY3lOYW1lLCAvLy9cbiAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSB8fCBudWxsO1xuXG4gICAgaWYgKHJlbGVhc2VDb250ZXh0ID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQgPSBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmluY2x1ZGVzKHJlbGVhc2VDb250ZXh0KTtcblxuICAgIGlmIChkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHJpZXZlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCBjb250ZXh0LCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKTtcblxuICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMucHVzaChyZWxlYXNlQ29udGV4dCk7XG4gIH0pO1xuXG4gIHJldHVybiBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzO1xufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVJlbGVhc2VDb250ZXh0IiwiaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0IiwiZGVwZW5kZW5jeSIsImRlcGVuZGVudE5hbWVzIiwiY29udGV4dCIsImNhbGxiYWNrIiwicmVsZWFzZUNvbnRleHRNYXAiLCJkZXBlbmRlbmN5TmFtZSIsImdldE5hbWUiLCJyZWxlYXNlTmFtZSIsInJlbGVhc2VDb250ZXh0IiwiZXJyb3IiLCJyZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5QW5kRGVwZW5kZW50TmFtZXMiLCJsb2ciLCJjcmVhdGVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwiaW5pdGlhbGlzZWQiLCJpc0luaXRpYWxpc2VkIiwiZGVwZW5kZW5jaWVzIiwiZ2V0RGVwZW5kZW5jaWVzIiwiZm9yRWFjaERlcGVuZGVuY3kiLCJkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwicmV0cmlldmVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwiaW5pdGlhbGlzZSIsImNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyIsImRlcGVuZGVudE5hbWVzSW5jbHVkZXNEZXBlbmRlbmN5TmFtZSIsImluY2x1ZGVzIiwiY3ljbGljRGVwZW5kZW5jeUV4aXN0cyIsImZpcnN0RGVwZW5kZW50TmFtZSIsImZpcnN0IiwiZGVwZW5kZW5jeU5hbWVzIiwiZGVwZW5kZW5jeU5hbWVzU3RyaW5nIiwiam9pbiIsImFzeW5jaHJvbm91c0ZvckVhY2hEZXBlbmRlbmN5IiwibmV4dCIsImRvbmUiLCJkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCIsInB1c2giXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVnQkEsb0JBQW9CO2VB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
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVsZWFzZUNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dE1hcCB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgLy8vXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdIHx8IG51bGw7XG5cbiAgaWYgKHJlbGVhc2VDb250ZXh0ICE9PSBudWxsKSB7XG4gICAgY29uc3QgZXJyb3IgPSBudWxsO1xuXG4gICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5QW5kRGVwZW5kZW50TmFtZXMgfSA9IGNvbnRleHQ7XG5cbiAgcmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeUFuZERlcGVuZGVudE5hbWVzKGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0LCAoZXJyb3IsIHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBjYWxsYmFjayhlcnJvcik7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0gPSByZWxlYXNlQ29udGV4dDtcblxuICAgIGlmIChyZWxlYXNlQ29udGV4dCA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQ7XG5cbiAgICAgIGxvZy5lcnJvcihgVGhlICcke3JlbGVhc2VOYW1lfScgcGFja2FnZSBjb3VsZCBub3QgYmUgY3JlYXRlZC5gKTtcblxuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spO1xuICB9LCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lLCB2ZXJpZmllZCwgY29udGV4dCkge1xuICBjb25zdCB7IHJlbGVhc2VDb250ZXh0TWFwIH0gPSBjb250ZXh0LFxuICAgICAgICBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICByZWxlYXNlTmFtZSA9IGRlcGVuZGVuY3lOYW1lLCAvLy9cbiAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0gfHwgbnVsbDtcblxuICBpZiAocmVsZWFzZUNvbnRleHQgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBpbml0aWFsaXNlZCA9IHJlbGVhc2VDb250ZXh0LmlzSW5pdGlhbGlzZWQoKTtcblxuICBpZiAoaW5pdGlhbGlzZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCByZWxlYXNlQ29udGV4dFZlcmlmaWVkID0gcmVsZWFzZUNvbnRleHQuaXNWZXJpZmllZCgpO1xuXG4gIGlmICh2ZXJpZmllZCkge1xuICAgIGlmICghcmVsZWFzZUNvbnRleHRWZXJpZmllZCkge1xuICAgICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQ7XG5cbiAgICAgIGxvZyAuZXJyb3IoYFVuYWJsZSB0byBpbml0aWFsaXNlIHRoZSAnJHtyZWxlYXNlTmFtZX0nIGRlcGVuZGVuY3kncyBjb250ZXh0IGJlY2F1c2UgaXRzICcke2RlcGVuZGVudE5hbWV9JyBkZXBlbmRlbnQgaXMgYSBwYWNrYWdlLmApO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgdmVyaWZpZWQgPSByZWxlYXNlQ29udGV4dFZlcmlmaWVkOyAgLy8vXG5cbiAgZGVwZW5kZW50TmFtZSA9IHJlbGVhc2VOYW1lOyAgLy8vXG5cbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgZGVwZW5kZW5jaWVzLmZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7XG4gICAgaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWUsIHZlcmlmaWVkLCBjb250ZXh0KTtcbiAgfSk7XG5cbiAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHJldHJpZXZlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCBjb250ZXh0KTtcblxuICByZWxlYXNlQ29udGV4dC5pbml0aWFsaXNlKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGNyZWF0ZVJlbGVhc2VDb250ZXh0LFxuICBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHRcbn07XG5cbmZ1bmN0aW9uIGNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCkge1xuICBjb25zdCBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICBkZXBlbmRlbnROYW1lc0luY2x1ZGVzRGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbnROYW1lcy5pbmNsdWRlcyhkZXBlbmRlbmN5TmFtZSksXG4gICAgICAgIGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMgPSBkZXBlbmRlbnROYW1lc0luY2x1ZGVzRGVwZW5kZW5jeU5hbWU7ICAvLy9cblxuICBpZiAoY3ljbGljRGVwZW5kZW5jeUV4aXN0cykge1xuICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0LFxuICAgICAgICAgIGZpcnN0RGVwZW5kZW50TmFtZSA9IGZpcnN0KGRlcGVuZGVudE5hbWVzKSxcbiAgICAgICAgICBkZXBlbmRlbmN5TmFtZXMgPSBbICAvLy9cbiAgICAgICAgICAgICAgLi4uZGVwZW5kZW50TmFtZXMsXG4gICAgICAgICAgICBmaXJzdERlcGVuZGVudE5hbWVcbiAgICAgICAgICBdLFxuICAgICAgICAgIGRlcGVuZGVuY3lOYW1lc1N0cmluZyA9IGRlcGVuZGVuY3lOYW1lcy5qb2luKGAnIC0+ICdgKTtcblxuICAgIGxvZy5lcnJvcihgVGhlcmUgaXMgYSBjeWNsaWMgZGVwZW5kZW5jeTogJyR7ZGVwZW5kZW5jeU5hbWVzU3RyaW5nfScuYCk7XG4gIH1cblxuICByZXR1cm4gY3ljbGljRGVwZW5kZW5jeUV4aXN0cztcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dE1hcCB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgLy8vXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdLFxuICAgICAgICBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKTtcblxuICBkZXBlbmRlbnROYW1lcyA9IFsgLi4uZGVwZW5kZW50TmFtZXMsIGRlcGVuZGVuY3lOYW1lIF07ICAvLy9cblxuICBkZXBlbmRlbmNpZXMuYXN5bmNocm9ub3VzRm9yRWFjaERlcGVuZGVuY3koKGRlcGVuZGVuY3ksIG5leHQsIGRvbmUpID0+IHtcbiAgICBjb25zdCBjeWNsaWNEZXBlbmRlbmN5RXhpc3RzID0gY2hlY2tDeWNsaWNEZXBlbmRlbmN5RXhpc3RzKGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGlmIChjeWNsaWNEZXBlbmRlbmN5RXhpc3RzKSB7XG4gICAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNyZWF0ZVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0LCAoZXJyb3IpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICBjYWxsYmFjayhlcnJvcik7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICBjYWxsYmFjayhlcnJvcik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXRyaWV2ZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoZGVwZW5kZW5jeSwgY29udGV4dCwgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IFtdKSB7XG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRNYXAgfSA9IGNvbnRleHQsXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSxcbiAgICAgICAgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgZGVwZW5kZW5jaWVzLmZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7XG4gICAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IGRlcGVuZGVuY3lOYW1lLCAvLy9cbiAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSB8fCBudWxsO1xuXG4gICAgaWYgKHJlbGVhc2VDb250ZXh0ID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQgPSBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmluY2x1ZGVzKHJlbGVhc2VDb250ZXh0KTtcblxuICAgIGlmIChkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHJpZXZlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCBjb250ZXh0LCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKTtcblxuICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMucHVzaChyZWxlYXNlQ29udGV4dCk7XG4gIH0pO1xuXG4gIHJldHVybiBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzO1xufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVJlbGVhc2VDb250ZXh0IiwiaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0IiwiZGVwZW5kZW5jeSIsImRlcGVuZGVudE5hbWVzIiwiY29udGV4dCIsImNhbGxiYWNrIiwicmVsZWFzZUNvbnRleHRNYXAiLCJkZXBlbmRlbmN5TmFtZSIsImdldE5hbWUiLCJyZWxlYXNlTmFtZSIsInJlbGVhc2VDb250ZXh0IiwiZXJyb3IiLCJyZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5QW5kRGVwZW5kZW50TmFtZXMiLCJsb2ciLCJjcmVhdGVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwiZGVwZW5kZW50TmFtZSIsInZlcmlmaWVkIiwiaW5pdGlhbGlzZWQiLCJpc0luaXRpYWxpc2VkIiwicmVsZWFzZUNvbnRleHRWZXJpZmllZCIsImlzVmVyaWZpZWQiLCJkZXBlbmRlbmNpZXMiLCJnZXREZXBlbmRlbmNpZXMiLCJmb3JFYWNoRGVwZW5kZW5jeSIsImRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJyZXRyaWV2ZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJpbml0aWFsaXNlIiwiY2hlY2tDeWNsaWNEZXBlbmRlbmN5RXhpc3RzIiwiZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lIiwiaW5jbHVkZXMiLCJjeWNsaWNEZXBlbmRlbmN5RXhpc3RzIiwiZmlyc3REZXBlbmRlbnROYW1lIiwiZmlyc3QiLCJkZXBlbmRlbmN5TmFtZXMiLCJkZXBlbmRlbmN5TmFtZXNTdHJpbmciLCJqb2luIiwiYXN5bmNocm9ub3VzRm9yRWFjaERlcGVuZGVuY3kiLCJuZXh0IiwiZG9uZSIsImRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0IiwicHVzaCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBRWdCQSxvQkFBb0I7ZUFBcEJBOztJQXVDQUMsd0JBQXdCO2VBQXhCQTs7SUEyQ2hCLE9BR0U7ZUFIRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWxGTyxTQUFTRCxxQkFBcUJFLFVBQVUsRUFBRUMsY0FBYyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRTtJQUNsRixJQUFNLEFBQUVDLG9CQUFzQkYsUUFBdEJFLG1CQUNGQyxpQkFBaUJMLFdBQVdNLE9BQU8sSUFDbkNDLGNBQWNGLGdCQUNkRyxpQkFBaUJKLGlCQUFpQixDQUFDRyxZQUFZLElBQUksSUFBSTtJQUU3RCxJQUFJQyxtQkFBbUIsSUFBSSxFQUFFO1FBQzNCLElBQU1DLFFBQVEsSUFBSTtRQUVsQk4sU0FBU007UUFFVDtJQUNGLENBQUM7SUFFRCxJQUFNLEFBQUVDLGdEQUFrRFIsUUFBbERRO0lBRVJBLDhDQUE4Q1YsWUFB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
@@ -16,19 +16,24 @@ function _interopRequireDefault(obj) {
16
16
  default: obj
17
17
  };
18
18
  }
19
- var topLevelDeclarationNodesQuery = (0, _query.nodesQuery)("/document/topLevelDeclaration");
19
+ var errorNodesQuery = (0, _query.nodesQuery)("/document/error"), topLevelDeclarationNodesQuery = (0, _query.nodesQuery)("/document/topLevelDeclaration");
20
20
  function verifyFile(filePath, releaseContext) {
21
21
  var fileVerified = false;
22
22
  releaseContext.debug("Verifying the '".concat(filePath, "' file..."));
23
- var fileContext = _file.default.fromReleaseContextAndFilePath(releaseContext, filePath), node = fileContext.getNode(), topLevelDeclarationNodes = topLevelDeclarationNodesQuery(node), topLevelDeclarationsVerified = topLevelDeclarationNodes.every(function(topLevelDeclarationNode) {
24
- var topLevelDeclarationVerified = (0, _topLevel.default)(topLevelDeclarationNode, fileContext);
25
- if (topLevelDeclarationVerified) {
26
- return true;
23
+ var fileContext = _file.default.fromReleaseContextAndFilePath(releaseContext, filePath), node = fileContext.getNode(), errorNodes = errorNodesQuery(node), errorNodesLength = errorNodes.length;
24
+ if (errorNodesLength > 0) {
25
+ releaseContext.error("The '".concat(filePath, "' file cannot be verified because it contains errors."));
26
+ } else {
27
+ var topLevelDeclarationNodes = topLevelDeclarationNodesQuery(node), topLevelDeclarationsVerified = topLevelDeclarationNodes.every(function(topLevelDeclarationNode) {
28
+ var topLevelDeclarationVerified = (0, _topLevel.default)(topLevelDeclarationNode, fileContext);
29
+ if (topLevelDeclarationVerified) {
30
+ return true;
31
+ }
32
+ });
33
+ if (topLevelDeclarationsVerified) {
34
+ releaseContext.addFileContext(fileContext);
35
+ fileVerified = true;
27
36
  }
28
- });
29
- if (topLevelDeclarationsVerified) {
30
- releaseContext.addFileContext(fileContext);
31
- fileVerified = true;
32
37
  }
33
38
  if (fileVerified) {
34
39
  releaseContext.info("Verified the '".concat(filePath, "' file."));
@@ -36,4 +41,4 @@ function verifyFile(filePath, releaseContext) {
36
41
  return fileVerified;
37
42
  }
38
43
 
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZmlsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEZpbGVDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2ZpbGVcIjtcbmltcG9ydCB2ZXJpZnlUb3BMZXZlbERlY2xhcmF0aW9uIGZyb20gXCIuL2RlY2xhcmF0aW9uL3RvcExldmVsXCI7XG5cbmltcG9ydCB7IG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHRvcExldmVsRGVjbGFyYXRpb25Ob2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9kb2N1bWVudC90b3BMZXZlbERlY2xhcmF0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlGaWxlKGZpbGVQYXRoLCByZWxlYXNlQ29udGV4dCkge1xuICBsZXQgZmlsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgcmVsZWFzZUNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7ZmlsZVBhdGh9JyBmaWxlLi4uYCk7XG5cbiAgY29uc3QgZmlsZUNvbnRleHQgPSBGaWxlQ29udGV4dC5mcm9tUmVsZWFzZUNvbnRleHRBbmRGaWxlUGF0aChyZWxlYXNlQ29udGV4dCwgZmlsZVBhdGgpLFxuICAgICAgICBub2RlID0gZmlsZUNvbnRleHQuZ2V0Tm9kZSgpLFxuICAgICAgICB0b3BMZXZlbERlY2xhcmF0aW9uTm9kZXMgPSB0b3BMZXZlbERlY2xhcmF0aW9uTm9kZXNRdWVyeShub2RlKSxcbiAgICAgICAgdG9wTGV2ZWxEZWNsYXJhdGlvbnNWZXJpZmllZCA9IHRvcExldmVsRGVjbGFyYXRpb25Ob2Rlcy5ldmVyeSgodG9wTGV2ZWxEZWNsYXJhdGlvbk5vZGUpID0+IHtcbiAgICAgICAgICBjb25zdCB0b3BMZXZlbERlY2xhcmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlUb3BMZXZlbERlY2xhcmF0aW9uKHRvcExldmVsRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICAgICAgICBpZiAodG9wTGV2ZWxEZWNsYXJhdGlvblZlcmlmaWVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gIGlmICh0b3BMZXZlbERlY2xhcmF0aW9uc1ZlcmlmaWVkKSB7XG4gICAgcmVsZWFzZUNvbnRleHQuYWRkRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpO1xuXG4gICAgZmlsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChmaWxlVmVyaWZpZWQpIHtcbiAgICByZWxlYXNlQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7ZmlsZVBhdGh9JyBmaWxlLmApO1xuICB9XG5cbiAgcmV0dXJuIGZpbGVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlGaWxlIiwidG9wTGV2ZWxEZWNsYXJhdGlvbk5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwiZmlsZVBhdGgiLCJyZWxlYXNlQ29udGV4dCIsImZpbGVWZXJpZmllZCIsImRlYnVnIiwiZmlsZUNvbnRleHQiLCJGaWxlQ29udGV4dCIsImZyb21SZWxlYXNlQ29udGV4dEFuZEZpbGVQYXRoIiwibm9kZSIsImdldE5vZGUiLCJ0b3BMZXZlbERlY2xhcmF0aW9uTm9kZXMiLCJ0b3BMZXZlbERlY2xhcmF0aW9uc1ZlcmlmaWVkIiwiZXZlcnkiLCJ0b3BMZXZlbERlY2xhcmF0aW9uTm9kZSIsInRvcExldmVsRGVjbGFyYXRpb25WZXJpZmllZCIsInZlcmlmeVRvcExldmVsRGVjbGFyYXRpb24iLCJhZGRGaWxlQ29udGV4dCIsImluZm8iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBd0JBOzs7eURBUEE7NkRBQ2M7cUJBRVg7Ozs7OztBQUUzQixJQUFNQyxnQ0FBZ0NDLElBQUFBLGlCQUFVLEVBQUM7QUFFbEMsU0FBU0YsV0FBV0csUUFBUSxFQUFFQyxjQUFjLEVBQUU7SUFDM0QsSUFBSUMsZUFBZSxLQUFLO0lBRXhCRCxlQUFlRSxLQUFLLENBQUMsQUFBQyxrQkFBMEIsT0FBVEgsVUFBUztJQUVoRCxJQUFNSSxjQUFjQyxhQUFXLENBQUNDLDZCQUE2QixDQUFDTCxnQkFBZ0JELFdBQ3hFTyxPQUFPSCxZQUFZSSxPQUFPLElBQzFCQywyQkFBMkJYLDhCQUE4QlMsT0FDekRHLCtCQUErQkQseUJBQXlCRSxLQUFLLENBQUMsU0FBQ0MseUJBQTRCO1FBQ3pGLElBQU1DLDhCQUE4QkMsSUFBQUEsaUJBQXlCLEVBQUNGLHlCQUF5QlI7UUFFdkYsSUFBSVMsNkJBQTZCO1lBQy9CLE9BQU8sSUFBSTtRQUNiLENBQUM7SUFDSDtJQUVOLElBQUlILDhCQUE4QjtRQUNoQ1QsZUFBZWMsY0FBYyxDQUFDWDtRQUU5QkYsZUFBZSxJQUFJO0lBQ3JCLENBQUM7SUFFRCxJQUFJQSxjQUFjO1FBQ2hCRCxlQUFlZSxJQUFJLENBQUMsQUFBQyxpQkFBeUIsT0FBVGhCLFVBQVM7SUFDaEQsQ0FBQztJQUVELE9BQU9FO0FBQ1QifQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZmlsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEZpbGVDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2ZpbGVcIjtcbmltcG9ydCB2ZXJpZnlUb3BMZXZlbERlY2xhcmF0aW9uIGZyb20gXCIuL2RlY2xhcmF0aW9uL3RvcExldmVsXCI7XG5cbmltcG9ydCB7IG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGVycm9yTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvZG9jdW1lbnQvZXJyb3JcIiksXG4gICAgICB0b3BMZXZlbERlY2xhcmF0aW9uTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvZG9jdW1lbnQvdG9wTGV2ZWxEZWNsYXJhdGlvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5RmlsZShmaWxlUGF0aCwgcmVsZWFzZUNvbnRleHQpIHtcbiAgbGV0IGZpbGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIHJlbGVhc2VDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke2ZpbGVQYXRofScgZmlsZS4uLmApO1xuXG4gIGNvbnN0IGZpbGVDb250ZXh0ID0gRmlsZUNvbnRleHQuZnJvbVJlbGVhc2VDb250ZXh0QW5kRmlsZVBhdGgocmVsZWFzZUNvbnRleHQsIGZpbGVQYXRoKSxcbiAgICAgICAgbm9kZSA9IGZpbGVDb250ZXh0LmdldE5vZGUoKSxcbiAgICAgICAgZXJyb3JOb2RlcyA9IGVycm9yTm9kZXNRdWVyeShub2RlKSxcbiAgICAgICAgZXJyb3JOb2Rlc0xlbmd0aCA9IGVycm9yTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChlcnJvck5vZGVzTGVuZ3RoID4gMCkge1xuICAgIHJlbGVhc2VDb250ZXh0LmVycm9yKGBUaGUgJyR7ZmlsZVBhdGh9JyBmaWxlIGNhbm5vdCBiZSB2ZXJpZmllZCBiZWNhdXNlIGl0IGNvbnRhaW5zIGVycm9ycy5gKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0b3BMZXZlbERlY2xhcmF0aW9uTm9kZXMgPSB0b3BMZXZlbERlY2xhcmF0aW9uTm9kZXNRdWVyeShub2RlKSxcbiAgICAgICAgICB0b3BMZXZlbERlY2xhcmF0aW9uc1ZlcmlmaWVkID0gdG9wTGV2ZWxEZWNsYXJhdGlvbk5vZGVzLmV2ZXJ5KCh0b3BMZXZlbERlY2xhcmF0aW9uTm9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdG9wTGV2ZWxEZWNsYXJhdGlvblZlcmlmaWVkID0gdmVyaWZ5VG9wTGV2ZWxEZWNsYXJhdGlvbih0b3BMZXZlbERlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgICAgICAgICBpZiAodG9wTGV2ZWxEZWNsYXJhdGlvblZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgaWYgKHRvcExldmVsRGVjbGFyYXRpb25zVmVyaWZpZWQpIHtcbiAgICAgIHJlbGVhc2VDb250ZXh0LmFkZEZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuICAgICAgZmlsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAoZmlsZVZlcmlmaWVkKSB7XG4gICAgcmVsZWFzZUNvbnRleHQuaW5mbyhgVmVyaWZpZWQgdGhlICcke2ZpbGVQYXRofScgZmlsZS5gKTtcbiAgfVxuXG4gIHJldHVybiBmaWxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5RmlsZSIsImVycm9yTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJ0b3BMZXZlbERlY2xhcmF0aW9uTm9kZXNRdWVyeSIsImZpbGVQYXRoIiwicmVsZWFzZUNvbnRleHQiLCJmaWxlVmVyaWZpZWQiLCJkZWJ1ZyIsImZpbGVDb250ZXh0IiwiRmlsZUNvbnRleHQiLCJmcm9tUmVsZWFzZUNvbnRleHRBbmRGaWxlUGF0aCIsIm5vZGUiLCJnZXROb2RlIiwiZXJyb3JOb2RlcyIsImVycm9yTm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJlcnJvciIsInRvcExldmVsRGVjbGFyYXRpb25Ob2RlcyIsInRvcExldmVsRGVjbGFyYXRpb25zVmVyaWZpZWQiLCJldmVyeSIsInRvcExldmVsRGVjbGFyYXRpb25Ob2RlIiwidG9wTGV2ZWxEZWNsYXJhdGlvblZlcmlmaWVkIiwidmVyaWZ5VG9wTGV2ZWxEZWNsYXJhdGlvbiIsImFkZEZpbGVDb250ZXh0IiwiaW5mbyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUF3QkE7Ozt5REFSQTs2REFDYztxQkFFWDs7Ozs7O0FBRTNCLElBQU1DLGtCQUFrQkMsSUFBQUEsaUJBQVUsRUFBQyxvQkFDN0JDLGdDQUFnQ0QsSUFBQUEsaUJBQVUsRUFBQztBQUVsQyxTQUFTRixXQUFXSSxRQUFRLEVBQUVDLGNBQWMsRUFBRTtJQUMzRCxJQUFJQyxlQUFlLEtBQUs7SUFFeEJELGVBQWVFLEtBQUssQ0FBQyxBQUFDLGtCQUEwQixPQUFUSCxVQUFTO0lBRWhELElBQU1JLGNBQWNDLGFBQVcsQ0FBQ0MsNkJBQTZCLENBQUNMLGdCQUFnQkQsV0FDeEVPLE9BQU9ILFlBQVlJLE9BQU8sSUFDMUJDLGFBQWFaLGdCQUFnQlUsT0FDN0JHLG1CQUFtQkQsV0FBV0UsTUFBTTtJQUUxQyxJQUFJRCxtQkFBbUIsR0FBRztRQUN4QlQsZUFBZVcsS0FBSyxDQUFDLEFBQUMsUUFBZ0IsT0FBVFosVUFBUztJQUN4QyxPQUFPO1FBQ0wsSUFBTWEsMkJBQTJCZCw4QkFBOEJRLE9BQ3pETywrQkFBK0JELHlCQUF5QkUsS0FBSyxDQUFDLFNBQUNDLHlCQUE0QjtZQUN6RixJQUFNQyw4QkFBOEJDLElBQUFBLGlCQUF5QixFQUFDRix5QkFBeUJaO1lBRXZGLElBQUlhLDZCQUE2QjtnQkFDL0IsT0FBTyxJQUFJO1lBQ2IsQ0FBQztRQUNIO1FBRU4sSUFBSUgsOEJBQThCO1lBQ2hDYixlQUFla0IsY0FBYyxDQUFDZjtZQUU5QkYsZUFBZSxJQUFJO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSUEsY0FBYztRQUNoQkQsZUFBZW1CLElBQUksQ0FBQyxBQUFDLGlCQUF5QixPQUFUcEIsVUFBUztJQUNoRCxDQUFDO0lBRUQsT0FBT0U7QUFDVCJ9
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.443",
4
+ "version": "0.0.445",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
package/src/axiom.js CHANGED
@@ -71,43 +71,38 @@ export default class Axiom {
71
71
  return json;
72
72
  }
73
73
 
74
- static fromJSON(json, callback) {
75
- let axiom = null;
76
-
74
+ static fromJSON(json, releaseContext) {
77
75
  let { labels } = json;
78
76
 
79
- const { statement, consequent, supposition } = json;
77
+ const labelsJSON = labels; ///
80
78
 
81
- labels = labels.reduce((labels, label) => {
82
- if (labels !== null) {
83
- const json = label; ///
79
+ labels = labelsJSON.map((labelJSON) => {
80
+ const json = labelJSON, ///
81
+ label = Label.fromJSON(json, releaseContext);
84
82
 
85
- label = Label.fromJSON(json, callback); ///
83
+ return label;
84
+ });
86
85
 
87
- if (label !== null) {
88
- labels.push(label);
89
- } else {
90
- labels = null;
91
- }
92
- }
86
+ const { statement, consequent, supposition } = json;
93
87
 
94
- return labels;
95
- }, []);
88
+ let axiom;
96
89
 
97
- if (statement !== null) {
90
+ if (false) {
91
+ ///
92
+ } else if (statement !== null) {
98
93
  const ruleName = UNQUALIFIED_STATEMENT_RULE_NAME,
99
94
  content = `${statement}
100
95
  `,
101
- unqualifiedStatementNode = callback(content, ruleName),
96
+ node = releaseContext.nodeFromContentAndRuleName(content, ruleName),
97
+ unqualifiedStatementNode = node, ///
102
98
  statementNode = statementNodeQuery(unqualifiedStatementNode),
103
99
  consequentNode = null,
104
100
  suppositionNode = null;
105
101
 
106
102
  axiom = new Axiom(labels, statementNode, consequentNode, suppositionNode);
107
- }
108
-
109
- if ((consequent !== null) && (supposition !== null)) {
110
- let content,
103
+ } else if ((consequent !== null) && (supposition !== null)) {
104
+ let node,
105
+ content,
111
106
  statementNode,
112
107
  unqualifiedStatementNode;
113
108
 
@@ -116,7 +111,9 @@ export default class Axiom {
116
111
  content = `${consequent}
117
112
  `;
118
113
 
119
- unqualifiedStatementNode = callback(content, ruleName);
114
+ node = releaseContext.nodeFromContentAndRuleName(content, ruleName);
115
+
116
+ unqualifiedStatementNode = node; ///
120
117
 
121
118
  statementNode = statementNodeQuery(unqualifiedStatementNode);
122
119
 
@@ -125,7 +122,9 @@ export default class Axiom {
125
122
  content = `${supposition}
126
123
  `;
127
124
 
128
- unqualifiedStatementNode = callback(content, ruleName);
125
+ node = releaseContext.nodeFromContentAndRuleName(content, ruleName);
126
+
127
+ unqualifiedStatementNode = node; ///
129
128
 
130
129
  statementNode = statementNodeQuery(unqualifiedStatementNode);
131
130
 
package/src/combinator.js CHANGED
@@ -34,12 +34,13 @@ export default class Combinator {
34
34
  return json;
35
35
  }
36
36
 
37
- static fromJSON(json, callback) {
37
+ static fromJSON(json, releaseContext) {
38
38
  const { statement } = json,
39
39
  ruleName = COMBINATOR_DECLARATION_RULE_NAME,
40
40
  content = `Combinator ${statement}
41
41
  `,
42
- combinatorDeclarationNode = callback(content, ruleName),
42
+ node = releaseContext.nodeFromContentAndRuleName(content, ruleName),
43
+ combinatorDeclarationNode = node, ///
43
44
  statementNode = statementNodeQuery(combinatorDeclarationNode),
44
45
  combinator = new Combinator(statementNode);
45
46
 
package/src/conclusion.js CHANGED
@@ -36,19 +36,15 @@ export default class Conclusion {
36
36
  return json;
37
37
  }
38
38
 
39
- static fromJSON(json, callback) {
40
- let conclusion = null;
41
-
39
+ static fromJSON(json, releaseContext) {
42
40
  const { metastatement } = json,
43
41
  ruleName = UNQUALIFIED_METASTATEMENT_RULE_NAME,
44
42
  content = `${metastatement}
45
43
  `,
46
- unqualifiedMetastatementNode = callback(content, ruleName),
47
- metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode);
48
-
49
- if (metastatementNode !== null) {
50
- conclusion = new Conclusion(metastatementNode);
51
- }
44
+ node = releaseContext.nodeFromContentAndRuleName(content, ruleName),
45
+ unqualifiedMetastatementNode = node, ///
46
+ metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
47
+ conclusion = new Conclusion(metastatementNode);
52
48
 
53
49
  return conclusion;
54
50
  }
@@ -57,19 +57,26 @@ export default class Constructor {
57
57
  return json;
58
58
  }
59
59
 
60
- static fromJSON(json, callback) {
61
- let { type } = json;
62
-
60
+ static fromJSON(json, releaseContext) {
63
61
  const { term } = json,
64
62
  ruleName = CONSTRUCTOR_DECLARATION_RULE_NAME,
65
63
  content = `Constructor ${term}
66
64
  `,
67
- constructorDeclarationNode = callback(content, ruleName),
65
+ node = releaseContext.nodeFromContentAndRuleName(content, ruleName),
66
+ constructorDeclarationNode = node, ///
68
67
  termNode = statementNodeQuery(constructorDeclarationNode);
69
68
 
70
- json = type; ///
69
+ let { type } = json;
70
+
71
+ const typeJSON = type; ///
72
+
73
+ json = typeJSON; ///
74
+
75
+ type = Type.fromJSON(json, releaseContext);
76
+
77
+ const typeName = type.getName();
71
78
 
72
- type = Type.fromJSON(json);
79
+ type = releaseContext.findTypeByTypeName(typeName); ///
73
80
 
74
81
  const constructor = new Constructor(termNode, type);
75
82
 
@@ -6,13 +6,13 @@ import { push } from "../utilities/array";
6
6
  import { leastLineIndexFromNodeAndTokens, greatestLineIndexFromNodeAndTokens } from "../utilities/tokens";
7
7
 
8
8
  export default class FileContext {
9
- constructor(releaseContext, filePath, tokens, node, rules, types, axioms, variables, combinators, constructors) {
9
+ constructor(releaseContext, filePath, tokens, node, types, rules, axioms, variables, combinators, constructors) {
10
10
  this.releaseContext = releaseContext;
11
11
  this.filePath = filePath;
12
12
  this.tokens = tokens;
13
13
  this.node = node;
14
- this.rules = rules;
15
14
  this.types = types;
15
+ this.rules = rules;
16
16
  this.axioms = axioms;
17
17
  this.variables = variables;
18
18
  this.combinators = combinators;
@@ -63,32 +63,32 @@ export default class FileContext {
63
63
  return labels;
64
64
  }
65
65
 
66
- getRules(includeRelease = true) {
67
- const rules = []
66
+ getTypes(includeRelease = true) {
67
+ const types = [];
68
68
 
69
- push(rules, this.rules);
69
+ push(types, this.types);
70
70
 
71
71
  if (includeRelease) {
72
- const releaseContextRules = this.releaseContext.getRules();
72
+ const releaseContextTypes = this.releaseContext.getTypes();
73
73
 
74
- push(rules, releaseContextRules);
74
+ push(types, releaseContextTypes);
75
75
  }
76
76
 
77
- return rules;
77
+ return types;
78
78
  }
79
79
 
80
- getTypes(includeRelease = true) {
81
- const types = [];
80
+ getRules(includeRelease = true) {
81
+ const rules = []
82
82
 
83
- push(types, this.types);
83
+ push(rules, this.rules);
84
84
 
85
85
  if (includeRelease) {
86
- const releaseContextTypes = this.releaseContext.getTypes();
86
+ const releaseContextRules = this.releaseContext.getRules();
87
87
 
88
- push(types, releaseContextTypes);
88
+ push(rules, releaseContextRules);
89
89
  }
90
90
 
91
- return types;
91
+ return rules;
92
92
  }
93
93
 
94
94
  getAxioms(includeRelease = true) {
@@ -295,18 +295,18 @@ export default class FileContext {
295
295
  toJSON() {
296
296
  const json = [];
297
297
 
298
- this.rules.forEach((rule) => {
299
- const ruleJSON = rule.toJSON();
300
-
301
- json.push(ruleJSON);
302
- });
303
-
304
298
  this.types.forEach((type) => {
305
299
  const typeJSON = type.toJSON();
306
300
 
307
301
  json.push(typeJSON);
308
302
  });
309
303
 
304
+ this.rules.forEach((rule) => {
305
+ const ruleJSON = rule.toJSON();
306
+
307
+ json.push(ruleJSON);
308
+ });
309
+
310
310
  this.axioms.forEach((axiom) => {
311
311
  const axiomJSON = axiom.toJSON();
312
312
 
@@ -336,13 +336,13 @@ export default class FileContext {
336
336
 
337
337
  rewriteNodes(node);
338
338
 
339
- const rules = [],
340
- types = [],
339
+ const types = [],
340
+ rules = [],
341
341
  axioms = [],
342
342
  variables = [],
343
343
  combinators = [],
344
344
  constructors = [],
345
- fileContext = new FileContext(releaseContext, filePath, tokens, node, rules, types, axioms, variables, combinators, constructors);
345
+ fileContext = new FileContext(releaseContext, filePath, tokens, node, types, rules, axioms, variables, combinators, constructors);
346
346
 
347
347
  return fileContext;
348
348
  }
@@ -154,73 +154,65 @@ export default class FileReleaseContext extends ReleaseContext {
154
154
  return constructors;
155
155
  }
156
156
 
157
- initialise(dependencyReleaseContexts) {
158
- super.initialise(dependencyReleaseContexts);
157
+ nodeFromContentAndRuleName(content, ruleName) {
158
+ const ruleMap = this.florenceParser.getRuleMap(),
159
+ rule = ruleMap[ruleName],
160
+ tokens = this.florenceLexer.tokenise(content),
161
+ node = this.florenceParser.parse(tokens, rule);
162
+
163
+ if (node !== null) {
164
+ rewriteNodes(node);
165
+ }
159
166
 
160
- const jsonArray = this.contextJSON, ///
161
- callback = (content, ruleName) => {
162
- const ruleMap = this.florenceParser.getRuleMap(),
163
- tokens = this.florenceLexer.tokenise(content),
164
- rule = ruleMap[ruleName],
165
- node = this.florenceParser.parse(tokens, rule);
167
+ return node;
168
+ }
166
169
 
167
- if (node !== null) {
168
- rewriteNodes(node);
169
- }
170
+ initialise(dependencyReleaseContexts) {
171
+ super.initialise(dependencyReleaseContexts);
170
172
 
171
- return node;
172
- };
173
+ const jsonArray = this.contextJSON,
174
+ releaseContext = this; ///
173
175
 
174
176
  jsonArray.forEach((json) => {
175
177
  const { kind } = json;
176
178
 
177
179
  switch (kind) {
178
180
  case TYPE_KIND: {
179
- const type = Type.fromJSON(json);
181
+ const type = Type.fromJSON(json, releaseContext);
180
182
 
181
- if (type !== null) {
182
- this.types.push(type);
183
- }
183
+ this.types.push(type);
184
184
 
185
185
  break;
186
186
  }
187
187
 
188
188
  case RULE_KIND: {
189
- const rule = Rule.fromJSON(json, callback);
189
+ const rule = Rule.fromJSON(json, releaseContext);
190
190
 
191
- if (rule !== null) {
192
- this.rules.push(rule);
193
- }
191
+ this.rules.push(rule);
194
192
 
195
193
  break;
196
194
  }
197
195
 
198
196
  case AXIOM_KIND: {
199
- const axiom = Axiom.fromJSON(json, callback);
197
+ const axiom = Axiom.fromJSON(json, releaseContext);
200
198
 
201
- if (axiom !== null) {
202
- this.axioms.push(axiom);
203
- }
199
+ this.axioms.push(axiom);
204
200
 
205
201
  break;
206
202
  }
207
203
 
208
204
  case COMBINATOR_KIND: {
209
- const combinator = Combinator.fromJSON(json, callback);
205
+ const combinator = Combinator.fromJSON(json, releaseContext);
210
206
 
211
- if (combinator !== null) {
212
- this.combinators.push(combinator);
213
- }
207
+ this.combinators.push(combinator);
214
208
 
215
209
  break;
216
210
  }
217
211
 
218
212
  case CONSTRUCTOR_KIND: {
219
- const constructor = Constructor.fromJSON(json, callback);
213
+ const constructor = Constructor.fromJSON(json, releaseContext);
220
214
 
221
- if (constructor !== null) {
222
- this.constructors.push(constructor);
223
- }
215
+ this.constructors.push(constructor);
224
216
 
225
217
  break;
226
218
  }
@@ -56,6 +56,19 @@ export default class ReleaseContext {
56
56
  return this.dependencyReleaseContexts;
57
57
  }
58
58
 
59
+ findTypeByTypeName(typeName) {
60
+ const types = this.getTypes(),
61
+ type = types.find((type) => {
62
+ const matches = type.matchTypeName(typeName);
63
+
64
+ if (matches) {
65
+ return true;
66
+ }
67
+ }) || null;
68
+
69
+ return type;
70
+ }
71
+
59
72
  getReleaseName() {
60
73
  const name = this.getName(),
61
74
  releaseName = name; ///
package/src/label.js CHANGED
@@ -34,16 +34,11 @@ export default class Label {
34
34
  return json;
35
35
  }
36
36
 
37
- static fromJSON(json, callback) {
38
- let label = null;
39
-
37
+ static fromJSON(json, releaseContext) {
40
38
  const content = json, ///
41
39
  ruleName = LABEL_RULE_NAME,
42
- node = callback(content, ruleName);
43
-
44
- if (node !== null) {
45
- label = new Label(node);
46
- }
40
+ node = releaseContext.nodeFromContentAndRuleName(content, ruleName),
41
+ label = new Label(node);
47
42
 
48
43
  return label;
49
44
  }
package/src/premise.js CHANGED
@@ -71,19 +71,15 @@ export default class Premise {
71
71
  return json;
72
72
  }
73
73
 
74
- static fromJSON(json, callback) {
75
- let premise = null;
76
-
74
+ static fromJSON(json, releaseContext) {
77
75
  const { metastatement } = json,
78
76
  ruleName = UNQUALIFIED_METASTATEMENT_RULE_NAME,
79
77
  content = `${metastatement}
80
78
  `,
81
- unqualifiedMetastatementNode = callback(content, ruleName),
82
- metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode);
83
-
84
- if (metastatementNode !== null) {
85
- premise = new Premise(metastatementNode);
86
- }
79
+ node = releaseContext.nodeFromContentAndRuleName(content, ruleName),
80
+ unqualifiedMetastatementNode = node, ///
81
+ metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode),
82
+ premise = new Premise(metastatementNode);
87
83
 
88
84
  return premise;
89
85
  }
package/src/rule.js CHANGED
@@ -91,50 +91,40 @@ export default class Rule {
91
91
  return json;
92
92
  }
93
93
 
94
- static fromJSON(json, callback) {
95
- let rule = null;
94
+ static fromJSON(json, releaseContext) {
95
+ let rule;
96
96
 
97
- let { labels, premises, conclusion } = json;
97
+ let { labels } = json;
98
98
 
99
- labels = labels.reduce((labels, label) => {
100
- if (labels !== null) {
101
- const json = label; ///
99
+ const labelsJSON = labels; ///
102
100
 
103
- label = Label.fromJSON(json, callback); ///
101
+ labels = labelsJSON.map((labelJSON) => {
102
+ const json = labelJSON, ///
103
+ label = Label.fromJSON(json, releaseContext);
104
104
 
105
- if (label !== null) {
106
- labels.push(label);
107
- } else {
108
- labels = null;
109
- }
110
- }
105
+ return label;
106
+ });
111
107
 
112
- return labels;
113
- }, []);
108
+ let { premises } = json;
114
109
 
115
- premises = premises.reduce((premises, premise) => {
116
- if (premises !== null) {
117
- const json = premise; ///
110
+ const premisesJSON = premises; ///
118
111
 
119
- premise = Premise.fromJSON(json, callback); ///
112
+ premises = premisesJSON.map((premiseJSON) => {
113
+ const json = premiseJSON, ///
114
+ premise = Premise.fromJSON(json, releaseContext);
120
115
 
121
- if (premise !== null) {
122
- premises.push(premise);
123
- } else {
124
- premises = null;
125
- }
126
- }
116
+ return premise;
117
+ });
127
118
 
128
- return premises;
129
- }, []);
119
+ let { conclusion } = json;
130
120
 
131
- json = conclusion; ///
121
+ const conclusionJSON = conclusion; ///
132
122
 
133
- conclusion = Conclusion.fromJSON(json, callback);
123
+ json = conclusionJSON; ///
134
124
 
135
- if ((labels !== null) && (premises !== null) && (conclusion !== null)) {
136
- rule = new Rule(labels, premises, conclusion);
137
- }
125
+ conclusion = Conclusion.fromJSON(json, releaseContext);
126
+
127
+ rule = new Rule(labels, premises, conclusion);
138
128
 
139
129
  return rule;
140
130
  }