occam-verify-cli 0.0.952 → 0.0.955

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -21,23 +21,23 @@ _export(exports, {
21
21
  customGrammarUtilities: function() {
22
22
  return _customGrammar.default;
23
23
  },
24
- initialiseReleaseContext: function() {
25
- return _initialise.default;
26
- },
27
24
  verifyRelease: function() {
28
25
  return _release.default;
26
+ },
27
+ verifyReleaseContext: function() {
28
+ return _verify.default;
29
29
  }
30
30
  });
31
31
  var _log = /*#__PURE__*/ _interop_require_default(require("./log"));
32
32
  var _release = /*#__PURE__*/ _interop_require_default(require("./verify/release"));
33
33
  var _release1 = /*#__PURE__*/ _interop_require_default(require("./context/release"));
34
- var _customGrammar = /*#__PURE__*/ _interop_require_default(require("./utilities/customGrammar"));
35
34
  var _create = /*#__PURE__*/ _interop_require_default(require("./releaseContext/create"));
36
- var _initialise = /*#__PURE__*/ _interop_require_default(require("./releaseContext/initialise"));
35
+ var _verify = /*#__PURE__*/ _interop_require_default(require("./releaseContext/verify"));
36
+ var _customGrammar = /*#__PURE__*/ _interop_require_default(require("./utilities/customGrammar"));
37
37
  function _interop_require_default(obj) {
38
38
  return obj && obj.__esModule ? obj : {
39
39
  default: obj
40
40
  };
41
41
  }
42
42
 
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2cgfSBmcm9tIFwiLi9sb2dcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyB2ZXJpZnlSZWxlYXNlIH0gZnJvbSBcIi4vdmVyaWZ5L3JlbGVhc2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L3JlbGVhc2VcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBjdXN0b21HcmFtbWFyVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2N1c3RvbUdyYW1tYXJcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBjcmVhdGVSZWxlYXNlQ29udGV4dCB9IGZyb20gXCIuL3JlbGVhc2VDb250ZXh0L2NyZWF0ZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9yZWxlYXNlQ29udGV4dC9pbml0aWFsaXNlXCI7XG4iXSwibmFtZXMiOlsiTG9nIiwiUmVsZWFzZUNvbnRleHQiLCJjcmVhdGVSZWxlYXNlQ29udGV4dCIsImN1c3RvbUdyYW1tYXJVdGlsaXRpZXMiLCJpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQiLCJ2ZXJpZnlSZWxlYXNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFb0JBLEdBQUc7ZUFBSEEsWUFBRzs7SUFHSEMsY0FBYztlQUFkQSxpQkFBYzs7SUFJZEMsb0JBQW9CO2VBQXBCQSxlQUFvQjs7SUFGcEJDLHNCQUFzQjtlQUF0QkEsc0JBQXNCOztJQUd0QkMsd0JBQXdCO2VBQXhCQSxtQkFBd0I7O0lBTnhCQyxhQUFhO2VBQWJBLGdCQUFhOzs7MERBRkY7OERBRVU7K0RBQ0M7b0VBRVE7NkRBRUY7aUVBQ0kifQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2cgfSBmcm9tIFwiLi9sb2dcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdmVyaWZ5UmVsZWFzZSB9IGZyb20gXCIuL3ZlcmlmeS9yZWxlYXNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlbGVhc2VDb250ZXh0IH0gZnJvbSBcIi4vY29udGV4dC9yZWxlYXNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNyZWF0ZVJlbGVhc2VDb250ZXh0IH0gZnJvbSBcIi4vcmVsZWFzZUNvbnRleHQvY3JlYXRlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHZlcmlmeVJlbGVhc2VDb250ZXh0IH0gZnJvbSBcIi4vcmVsZWFzZUNvbnRleHQvdmVyaWZ5XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGN1c3RvbUdyYW1tYXJVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvY3VzdG9tR3JhbW1hclwiO1xuXG4iXSwibmFtZXMiOlsiTG9nIiwiUmVsZWFzZUNvbnRleHQiLCJjcmVhdGVSZWxlYXNlQ29udGV4dCIsImN1c3RvbUdyYW1tYXJVdGlsaXRpZXMiLCJ2ZXJpZnlSZWxlYXNlIiwidmVyaWZ5UmVsZWFzZUNvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVvQkEsR0FBRztlQUFIQSxZQUFHOztJQUVIQyxjQUFjO2VBQWRBLGlCQUFjOztJQUNkQyxvQkFBb0I7ZUFBcEJBLGVBQW9COztJQUVwQkMsc0JBQXNCO2VBQXRCQSxzQkFBc0I7O0lBSnRCQyxhQUFhO2VBQWJBLGdCQUFhOztJQUdiQyxvQkFBb0I7ZUFBcEJBLGVBQW9COzs7MERBSlQ7OERBQ1U7K0RBQ0M7NkRBQ007NkRBQ0E7b0VBQ0UifQ==
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return verifyReleaseContext;
9
+ }
10
+ });
11
+ function verifyReleaseContext(dependency, dependentName, dependentReleased, context) {
12
+ var releaseContextInitialised = false;
13
+ var releaseContextMap = context.releaseContextMap, dependencyName = dependency.getName(), releaseName = dependencyName, releaseContext = releaseContextMap[releaseName] || null;
14
+ if (releaseContext === null) {
15
+ var log = context.log;
16
+ log.error("Unable to verify the '".concat(dependencyName, "' dependency's context because it has not been created."));
17
+ } else {
18
+ var verified = releaseContext.isInitialised();
19
+ if (verified) {
20
+ releaseContextInitialised = true;
21
+ } else {
22
+ var released = releaseContext.isReleased();
23
+ if (!released && dependentReleased) {
24
+ var log1 = context.log;
25
+ log1.error("Unable to verify the '".concat(dependencyName, "' dependency's context because its '").concat(dependentName, "' dependent is a package."));
26
+ } else {
27
+ var dependencies = releaseContext.getDependencies();
28
+ dependentName = dependencyName; ///
29
+ dependentReleased = released; ///
30
+ releaseContextInitialised = dependencies.everyDependency(function(dependency) {
31
+ var releaseContextInitialised = verifyReleaseContext(dependency, dependentName, dependentReleased, context);
32
+ if (releaseContextInitialised) {
33
+ return true;
34
+ }
35
+ });
36
+ if (releaseContextInitialised) {
37
+ var releaseContexts = retrieveReleaseContexts(releaseContext, releaseContextMap);
38
+ releaseContext.verify(releaseContexts);
39
+ }
40
+ }
41
+ }
42
+ }
43
+ return releaseContextInitialised;
44
+ }
45
+ function retrieveReleaseContexts(releaseContext, releaseContextMap) {
46
+ var releaseContexts = [], remainingReleaseContext = releaseContext, remainingReleaseContexts = [
47
+ remainingReleaseContext
48
+ ];
49
+ var remainingReleaseContextsLength = remainingReleaseContexts.length;
50
+ while(remainingReleaseContextsLength > 0){
51
+ var remainingReleaseContext1 = remainingReleaseContexts.shift(), _$releaseContext = remainingReleaseContext1; ///
52
+ releaseContexts.push(_$releaseContext);
53
+ var dependencies = _$releaseContext.getDependencies();
54
+ dependencies.forEachDependency(function(dependency) {
55
+ var dependencyName = dependency.getName(), releaseName = dependencyName, _$releaseContext = releaseContextMap[releaseName], releaseContextsIncludesReleaseContext = releaseContexts.includes(_$releaseContext), remainingReleaseContextsIncludesReleaseContext = remainingReleaseContexts.includes(_$releaseContext);
56
+ if (!releaseContextsIncludesReleaseContext && !remainingReleaseContextsIncludesReleaseContext) {
57
+ var remainingReleaseContext = _$releaseContext; ///
58
+ remainingReleaseContexts.push(remainingReleaseContext);
59
+ }
60
+ });
61
+ remainingReleaseContextsLength = remainingReleaseContexts.length;
62
+ }
63
+ return releaseContexts;
64
+ }
65
+
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWxlYXNlQ29udGV4dC92ZXJpZnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWUsIGRlcGVuZGVudFJlbGVhc2VkLCBjb250ZXh0KSB7XG4gIGxldCByZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkID0gZmFsc2U7XG5cbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dE1hcCB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgLy8vXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdIHx8IG51bGw7XG5cbiAgaWYgKHJlbGVhc2VDb250ZXh0ID09PSBudWxsKSB7XG4gICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQ7XG5cbiAgICBsb2cuZXJyb3IoYFVuYWJsZSB0byB2ZXJpZnkgdGhlICcke2RlcGVuZGVuY3lOYW1lfScgZGVwZW5kZW5jeSdzIGNvbnRleHQgYmVjYXVzZSBpdCBoYXMgbm90IGJlZW4gY3JlYXRlZC5gKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB2ZXJpZmllZCA9IHJlbGVhc2VDb250ZXh0LmlzSW5pdGlhbGlzZWQoKTtcblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VkID0gcmVsZWFzZUNvbnRleHQuaXNSZWxlYXNlZCgpO1xuXG4gICAgICBpZiAoIXJlbGVhc2VkICYmIGRlcGVuZGVudFJlbGVhc2VkKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0O1xuXG4gICAgICAgIGxvZy5lcnJvcihgVW5hYmxlIHRvIHZlcmlmeSB0aGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBkZXBlbmRlbmN5J3MgY29udGV4dCBiZWNhdXNlIGl0cyAnJHtkZXBlbmRlbnROYW1lfScgZGVwZW5kZW50IGlzIGEgcGFja2FnZS5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IHJlbGVhc2VDb250ZXh0LmdldERlcGVuZGVuY2llcygpO1xuXG4gICAgICAgIGRlcGVuZGVudE5hbWUgPSBkZXBlbmRlbmN5TmFtZTsgIC8vL1xuXG4gICAgICAgIGRlcGVuZGVudFJlbGVhc2VkID0gcmVsZWFzZWQ7ICAvLy9cblxuICAgICAgICByZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkID0gZGVwZW5kZW5jaWVzLmV2ZXJ5RGVwZW5kZW5jeSgoZGVwZW5kZW5jeSkgPT4geyAgLy8vXG4gICAgICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCA9IHZlcmlmeVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWUsIGRlcGVuZGVudFJlbGVhc2VkLCBjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChyZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkKSB7XG4gICAgICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRzID0gcmV0cmlldmVSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIHJlbGVhc2VDb250ZXh0TWFwKTtcblxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0LnZlcmlmeShyZWxlYXNlQ29udGV4dHMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQ7XG59XG5cbmZ1bmN0aW9uIHJldHJpZXZlUmVsZWFzZUNvbnRleHRzKHJlbGVhc2VDb250ZXh0LCByZWxlYXNlQ29udGV4dE1hcCkge1xuICBjb25zdCByZWxlYXNlQ29udGV4dHMgPSBbXSxcbiAgICAgICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dCwgIC8vL1xuICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMgPSBbXG4gICAgICAgICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRcbiAgICAgICAgXTtcblxuICBsZXQgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzTGVuZ3RoID0gcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLmxlbmd0aDtcblxuICB3aGlsZSAocmVtYWluaW5nUmVsZWFzZUNvbnRleHRzTGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0ID0gcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLnNoaWZ0KCksXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dDsgIC8vL1xuXG4gICAgcmVsZWFzZUNvbnRleHRzLnB1c2gocmVsZWFzZUNvbnRleHQpO1xuXG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgICBkZXBlbmRlbmNpZXMuZm9yRWFjaERlcGVuZGVuY3koKGRlcGVuZGVuY3kpID0+IHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgICAgICByZWxlYXNlTmFtZSA9IGRlcGVuZGVuY3lOYW1lLCAvLy9cbiAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdLFxuICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0cy5pbmNsdWRlcyhyZWxlYXNlQ29udGV4dCksXG4gICAgICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0ID0gcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLmluY2x1ZGVzKHJlbGVhc2VDb250ZXh0KTtcblxuICAgICAgaWYgKCFyZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0ICYmICFyZW1haW5pbmdSZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHQ7IC8vL1xuXG4gICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cy5wdXNoKHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0xlbmd0aCA9IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cy5sZW5ndGg7XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZUNvbnRleHRzO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVJlbGVhc2VDb250ZXh0IiwiZGVwZW5kZW5jeSIsImRlcGVuZGVudE5hbWUiLCJkZXBlbmRlbnRSZWxlYXNlZCIsImNvbnRleHQiLCJyZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkIiwicmVsZWFzZUNvbnRleHRNYXAiLCJkZXBlbmRlbmN5TmFtZSIsImdldE5hbWUiLCJyZWxlYXNlTmFtZSIsInJlbGVhc2VDb250ZXh0IiwibG9nIiwiZXJyb3IiLCJ2ZXJpZmllZCIsImlzSW5pdGlhbGlzZWQiLCJyZWxlYXNlZCIsImlzUmVsZWFzZWQiLCJkZXBlbmRlbmNpZXMiLCJnZXREZXBlbmRlbmNpZXMiLCJldmVyeURlcGVuZGVuY3kiLCJyZWxlYXNlQ29udGV4dHMiLCJyZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyIsInZlcmlmeSIsInJlbWFpbmluZ1JlbGVhc2VDb250ZXh0IiwicmVtYWluaW5nUmVsZWFzZUNvbnRleHRzIiwicmVtYWluaW5nUmVsZWFzZUNvbnRleHRzTGVuZ3RoIiwibGVuZ3RoIiwic2hpZnQiLCJwdXNoIiwiZm9yRWFjaERlcGVuZGVuY3kiLCJyZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0IiwiaW5jbHVkZXMiLCJyZW1haW5pbmdSZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFFQTs7O2VBQXdCQTs7O0FBQVQsU0FBU0EscUJBQXFCQyxVQUFVLEVBQUVDLGFBQWEsRUFBRUMsaUJBQWlCLEVBQUVDLE9BQU87SUFDaEcsSUFBSUMsNEJBQTRCO0lBRWhDLElBQU0sQUFBRUMsb0JBQXNCRixRQUF0QkUsbUJBQ0ZDLGlCQUFpQk4sV0FBV08sT0FBTyxJQUNuQ0MsY0FBY0YsZ0JBQ2RHLGlCQUFpQkosaUJBQWlCLENBQUNHLFlBQVksSUFBSTtJQUV6RCxJQUFJQyxtQkFBbUIsTUFBTTtRQUMzQixJQUFNLEFBQUVDLE1BQVFQLFFBQVJPO1FBRVJBLElBQUlDLEtBQUssQ0FBQyxBQUFDLHlCQUF1QyxPQUFmTCxnQkFBZTtJQUNwRCxPQUFPO1FBQ0wsSUFBTU0sV0FBV0gsZUFBZUksYUFBYTtRQUU3QyxJQUFJRCxVQUFVO1lBQ1pSLDRCQUE0QjtRQUM5QixPQUFPO1lBQ0wsSUFBTVUsV0FBV0wsZUFBZU0sVUFBVTtZQUUxQyxJQUFJLENBQUNELFlBQVlaLG1CQUFtQjtnQkFDbEMsSUFBTSxBQUFFUSxPQUFRUCxRQUFSTztnQkFFUkEsS0FBSUMsS0FBSyxDQUFDLEFBQUMseUJBQTZFVixPQUFyREssZ0JBQWUsd0NBQW9ELE9BQWRMLGVBQWM7WUFDeEcsT0FBTztnQkFDTCxJQUFNZSxlQUFlUCxlQUFlUSxlQUFlO2dCQUVuRGhCLGdCQUFnQkssZ0JBQWlCLEdBQUc7Z0JBRXBDSixvQkFBb0JZLFVBQVcsR0FBRztnQkFFbENWLDRCQUE0QlksYUFBYUUsZUFBZSxDQUFDLFNBQUNsQjtvQkFDeEQsSUFBTUksNEJBQTRCTCxxQkFBcUJDLFlBQVlDLGVBQWVDLG1CQUFtQkM7b0JBRXJHLElBQUlDLDJCQUEyQjt3QkFDN0IsT0FBTztvQkFDVDtnQkFDRjtnQkFFQSxJQUFJQSwyQkFBMkI7b0JBQzdCLElBQU1lLGtCQUFrQkMsd0JBQXdCWCxnQkFBZ0JKO29CQUVoRUksZUFBZVksTUFBTSxDQUFDRjtnQkFDeEI7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxPQUFPZjtBQUNUO0FBRUEsU0FBU2dCLHdCQUF3QlgsY0FBYyxFQUFFSixpQkFBaUI7SUFDaEUsSUFBTWMsa0JBQWtCLEVBQUUsRUFDcEJHLDBCQUEwQmIsZ0JBQzFCYywyQkFBMkI7UUFDekJEO0tBQ0Q7SUFFUCxJQUFJRSxpQ0FBaUNELHlCQUF5QkUsTUFBTTtJQUVwRSxNQUFPRCxpQ0FBaUMsRUFBRztRQUN6QyxJQUFNRiwyQkFBMEJDLHlCQUF5QkcsS0FBSyxJQUN4RGpCLG1CQUFpQmEsMEJBQTBCLEdBQUc7UUFFcERILGdCQUFnQlEsSUFBSSxDQUFDbEI7UUFFckIsSUFBTU8sZUFBZVAsaUJBQWVRLGVBQWU7UUFFbkRELGFBQWFZLGlCQUFpQixDQUFDLFNBQUM1QjtZQUM5QixJQUFNTSxpQkFBaUJOLFdBQVdPLE9BQU8sSUFDbkNDLGNBQWNGLGdCQUNkRyxtQkFBaUJKLGlCQUFpQixDQUFDRyxZQUFZLEVBQy9DcUIsd0NBQXdDVixnQkFBZ0JXLFFBQVEsQ0FBQ3JCLG1CQUNqRXNCLGlEQUFpRFIseUJBQXlCTyxRQUFRLENBQUNyQjtZQUV6RixJQUFJLENBQUNvQix5Q0FBeUMsQ0FBQ0UsZ0RBQWdEO2dCQUM3RixJQUFNVCwwQkFBMEJiLGtCQUFnQixHQUFHO2dCQUVuRGMseUJBQXlCSSxJQUFJLENBQUNMO1lBQ2hDO1FBQ0Y7UUFFQUUsaUNBQWlDRCx5QkFBeUJFLE1BQU07SUFDbEU7SUFFQSxPQUFPTjtBQUNUIn0=
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.952",
4
+ "version": "0.0.955",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
package/src/index.js CHANGED
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  export { default as Log } from "./log";
4
-
5
4
  export { default as verifyRelease } from "./verify/release";
6
5
  export { default as ReleaseContext } from "./context/release";
7
-
6
+ export { default as createReleaseContext } from "./releaseContext/create";
7
+ export { default as verifyReleaseContext } from "./releaseContext/verify";
8
8
  export { default as customGrammarUtilities } from "./utilities/customGrammar";
9
9
 
10
- export { default as createReleaseContext } from "./releaseContext/create";
11
- export { default as initialiseReleaseContext } from "./releaseContext/initialise";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- export default function initialiseReleaseContext(dependency, dependentName, dependentReleased, context) {
3
+ export default function verifyReleaseContext(dependency, dependentName, dependentReleased, context) {
4
4
  let releaseContextInitialised = false;
5
5
 
6
6
  const { releaseContextMap } = context,
@@ -11,11 +11,11 @@ export default function initialiseReleaseContext(dependency, dependentName, depe
11
11
  if (releaseContext === null) {
12
12
  const { log } = context;
13
13
 
14
- log.error(`Unable to initialise the '${dependencyName}' dependency's context because it has not been created.`);
14
+ log.error(`Unable to verify the '${dependencyName}' dependency's context because it has not been created.`);
15
15
  } else {
16
- const initialised = releaseContext.isInitialised();
16
+ const verified = releaseContext.isInitialised();
17
17
 
18
- if (initialised) {
18
+ if (verified) {
19
19
  releaseContextInitialised = true;
20
20
  } else {
21
21
  const released = releaseContext.isReleased();
@@ -23,7 +23,7 @@ export default function initialiseReleaseContext(dependency, dependentName, depe
23
23
  if (!released && dependentReleased) {
24
24
  const { log } = context;
25
25
 
26
- log.error(`Unable to initialise the '${dependencyName}' dependency's context because its '${dependentName}' dependent is a package.`);
26
+ log.error(`Unable to verify the '${dependencyName}' dependency's context because its '${dependentName}' dependent is a package.`);
27
27
  } else {
28
28
  const dependencies = releaseContext.getDependencies();
29
29
 
@@ -32,7 +32,7 @@ export default function initialiseReleaseContext(dependency, dependentName, depe
32
32
  dependentReleased = released; ///
33
33
 
34
34
  releaseContextInitialised = dependencies.everyDependency((dependency) => { ///
35
- const releaseContextInitialised = initialiseReleaseContext(dependency, dependentName, dependentReleased, context);
35
+ const releaseContextInitialised = verifyReleaseContext(dependency, dependentName, dependentReleased, context);
36
36
 
37
37
  if (releaseContextInitialised) {
38
38
  return true;
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return initialiseReleaseContext;
9
- }
10
- });
11
- function initialiseReleaseContext(dependency, dependentName, dependentReleased, context) {
12
- var releaseContextInitialised = false;
13
- var releaseContextMap = context.releaseContextMap, dependencyName = dependency.getName(), releaseName = dependencyName, releaseContext = releaseContextMap[releaseName] || null;
14
- if (releaseContext === null) {
15
- var log = context.log;
16
- log.error("Unable to initialise the '".concat(dependencyName, "' dependency's context because it has not been created."));
17
- } else {
18
- var initialised = releaseContext.isInitialised();
19
- if (initialised) {
20
- releaseContextInitialised = true;
21
- } else {
22
- var released = releaseContext.isReleased();
23
- if (!released && dependentReleased) {
24
- var log1 = context.log;
25
- log1.error("Unable to initialise the '".concat(dependencyName, "' dependency's context because its '").concat(dependentName, "' dependent is a package."));
26
- } else {
27
- var dependencies = releaseContext.getDependencies();
28
- dependentName = dependencyName; ///
29
- dependentReleased = released; ///
30
- releaseContextInitialised = dependencies.everyDependency(function(dependency) {
31
- var releaseContextInitialised = initialiseReleaseContext(dependency, dependentName, dependentReleased, context);
32
- if (releaseContextInitialised) {
33
- return true;
34
- }
35
- });
36
- if (releaseContextInitialised) {
37
- var releaseContexts = retrieveReleaseContexts(releaseContext, releaseContextMap);
38
- releaseContext.verify(releaseContexts);
39
- }
40
- }
41
- }
42
- }
43
- return releaseContextInitialised;
44
- }
45
- function retrieveReleaseContexts(releaseContext, releaseContextMap) {
46
- var releaseContexts = [], remainingReleaseContext = releaseContext, remainingReleaseContexts = [
47
- remainingReleaseContext
48
- ];
49
- var remainingReleaseContextsLength = remainingReleaseContexts.length;
50
- while(remainingReleaseContextsLength > 0){
51
- var remainingReleaseContext1 = remainingReleaseContexts.shift(), _$releaseContext = remainingReleaseContext1; ///
52
- releaseContexts.push(_$releaseContext);
53
- var dependencies = _$releaseContext.getDependencies();
54
- dependencies.forEachDependency(function(dependency) {
55
- var dependencyName = dependency.getName(), releaseName = dependencyName, _$releaseContext = releaseContextMap[releaseName], releaseContextsIncludesReleaseContext = releaseContexts.includes(_$releaseContext), remainingReleaseContextsIncludesReleaseContext = remainingReleaseContexts.includes(_$releaseContext);
56
- if (!releaseContextsIncludesReleaseContext && !remainingReleaseContextsIncludesReleaseContext) {
57
- var remainingReleaseContext = _$releaseContext; ///
58
- remainingReleaseContexts.push(remainingReleaseContext);
59
- }
60
- });
61
- remainingReleaseContextsLength = remainingReleaseContexts.length;
62
- }
63
- return releaseContexts;
64
- }
65
-
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWxlYXNlQ29udGV4dC9pbml0aWFsaXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZSwgZGVwZW5kZW50UmVsZWFzZWQsIGNvbnRleHQpIHtcbiAgbGV0IHJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQgPSBmYWxzZTtcblxuICBjb25zdCB7IHJlbGVhc2VDb250ZXh0TWFwIH0gPSBjb250ZXh0LFxuICAgICAgICBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICByZWxlYXNlTmFtZSA9IGRlcGVuZGVuY3lOYW1lLCAvLy9cbiAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0gfHwgbnVsbDtcblxuICBpZiAocmVsZWFzZUNvbnRleHQgPT09IG51bGwpIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dDtcblxuICAgIGxvZy5lcnJvcihgVW5hYmxlIHRvIGluaXRpYWxpc2UgdGhlICcke2RlcGVuZGVuY3lOYW1lfScgZGVwZW5kZW5jeSdzIGNvbnRleHQgYmVjYXVzZSBpdCBoYXMgbm90IGJlZW4gY3JlYXRlZC5gKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBpbml0aWFsaXNlZCA9IHJlbGVhc2VDb250ZXh0LmlzSW5pdGlhbGlzZWQoKTtcblxuICAgIGlmIChpbml0aWFsaXNlZCkge1xuICAgICAgcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VkID0gcmVsZWFzZUNvbnRleHQuaXNSZWxlYXNlZCgpO1xuXG4gICAgICBpZiAoIXJlbGVhc2VkICYmIGRlcGVuZGVudFJlbGVhc2VkKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0O1xuXG4gICAgICAgIGxvZy5lcnJvcihgVW5hYmxlIHRvIGluaXRpYWxpc2UgdGhlICcke2RlcGVuZGVuY3lOYW1lfScgZGVwZW5kZW5jeSdzIGNvbnRleHQgYmVjYXVzZSBpdHMgJyR7ZGVwZW5kZW50TmFtZX0nIGRlcGVuZGVudCBpcyBhIHBhY2thZ2UuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKTtcblxuICAgICAgICBkZXBlbmRlbnROYW1lID0gZGVwZW5kZW5jeU5hbWU7ICAvLy9cblxuICAgICAgICBkZXBlbmRlbnRSZWxlYXNlZCA9IHJlbGVhc2VkOyAgLy8vXG5cbiAgICAgICAgcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCA9IGRlcGVuZGVuY2llcy5ldmVyeURlcGVuZGVuY3koKGRlcGVuZGVuY3kpID0+IHsgIC8vL1xuICAgICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQgPSBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZSwgZGVwZW5kZW50UmVsZWFzZWQsIGNvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKHJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQpIHtcbiAgICAgICAgICBjb25zdCByZWxlYXNlQ29udGV4dHMgPSByZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXApO1xuXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQudmVyaWZ5KHJlbGVhc2VDb250ZXh0cyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZDtcbn1cblxuZnVuY3Rpb24gcmV0cmlldmVSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIHJlbGVhc2VDb250ZXh0TWFwKSB7XG4gIGNvbnN0IHJlbGVhc2VDb250ZXh0cyA9IFtdLFxuICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0LCAgLy8vXG4gICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cyA9IFtcbiAgICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dFxuICAgICAgICBdO1xuXG4gIGxldCByZW1haW5pbmdSZWxlYXNlQ29udGV4dHNMZW5ndGggPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMubGVuZ3RoO1xuXG4gIHdoaWxlIChyZW1haW5pbmdSZWxlYXNlQ29udGV4dHNMZW5ndGggPiAwKSB7XG4gICAgY29uc3QgcmVtYWluaW5nUmVsZWFzZUNvbnRleHQgPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMuc2hpZnQoKSxcbiAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0OyAgLy8vXG5cbiAgICByZWxlYXNlQ29udGV4dHMucHVzaChyZWxlYXNlQ29udGV4dCk7XG5cbiAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKTtcblxuICAgIGRlcGVuZGVuY2llcy5mb3JFYWNoRGVwZW5kZW5jeSgoZGVwZW5kZW5jeSkgPT4ge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0sXG4gICAgICAgICAgICByZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRzLmluY2x1ZGVzKHJlbGVhc2VDb250ZXh0KSxcbiAgICAgICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQgPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMuaW5jbHVkZXMocmVsZWFzZUNvbnRleHQpO1xuXG4gICAgICBpZiAoIXJlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQgJiYgIXJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVtYWluaW5nUmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dDsgLy8vXG5cbiAgICAgICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLnB1c2gocmVtYWluaW5nUmVsZWFzZUNvbnRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzTGVuZ3RoID0gcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLmxlbmd0aDtcbiAgfVxuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dHM7XG59XG4iXSwibmFtZXMiOlsiaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0IiwiZGVwZW5kZW5jeSIsImRlcGVuZGVudE5hbWUiLCJkZXBlbmRlbnRSZWxlYXNlZCIsImNvbnRleHQiLCJyZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkIiwicmVsZWFzZUNvbnRleHRNYXAiLCJkZXBlbmRlbmN5TmFtZSIsImdldE5hbWUiLCJyZWxlYXNlTmFtZSIsInJlbGVhc2VDb250ZXh0IiwibG9nIiwiZXJyb3IiLCJpbml0aWFsaXNlZCIsImlzSW5pdGlhbGlzZWQiLCJyZWxlYXNlZCIsImlzUmVsZWFzZWQiLCJkZXBlbmRlbmNpZXMiLCJnZXREZXBlbmRlbmNpZXMiLCJldmVyeURlcGVuZGVuY3kiLCJyZWxlYXNlQ29udGV4dHMiLCJyZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyIsInZlcmlmeSIsInJlbWFpbmluZ1JlbGVhc2VDb250ZXh0IiwicmVtYWluaW5nUmVsZWFzZUNvbnRleHRzIiwicmVtYWluaW5nUmVsZWFzZUNvbnRleHRzTGVuZ3RoIiwibGVuZ3RoIiwic2hpZnQiLCJwdXNoIiwiZm9yRWFjaERlcGVuZGVuY3kiLCJyZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0IiwiaW5jbHVkZXMiLCJyZW1haW5pbmdSZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFFQTs7O2VBQXdCQTs7O0FBQVQsU0FBU0EseUJBQXlCQyxVQUFVLEVBQUVDLGFBQWEsRUFBRUMsaUJBQWlCLEVBQUVDLE9BQU87SUFDcEcsSUFBSUMsNEJBQTRCO0lBRWhDLElBQU0sQUFBRUMsb0JBQXNCRixRQUF0QkUsbUJBQ0ZDLGlCQUFpQk4sV0FBV08sT0FBTyxJQUNuQ0MsY0FBY0YsZ0JBQ2RHLGlCQUFpQkosaUJBQWlCLENBQUNHLFlBQVksSUFBSTtJQUV6RCxJQUFJQyxtQkFBbUIsTUFBTTtRQUMzQixJQUFNLEFBQUVDLE1BQVFQLFFBQVJPO1FBRVJBLElBQUlDLEtBQUssQ0FBQyxBQUFDLDZCQUEyQyxPQUFmTCxnQkFBZTtJQUN4RCxPQUFPO1FBQ0wsSUFBTU0sY0FBY0gsZUFBZUksYUFBYTtRQUVoRCxJQUFJRCxhQUFhO1lBQ2ZSLDRCQUE0QjtRQUM5QixPQUFPO1lBQ0wsSUFBTVUsV0FBV0wsZUFBZU0sVUFBVTtZQUUxQyxJQUFJLENBQUNELFlBQVlaLG1CQUFtQjtnQkFDbEMsSUFBTSxBQUFFUSxPQUFRUCxRQUFSTztnQkFFUkEsS0FBSUMsS0FBSyxDQUFDLEFBQUMsNkJBQWlGVixPQUFyREssZ0JBQWUsd0NBQW9ELE9BQWRMLGVBQWM7WUFDNUcsT0FBTztnQkFDTCxJQUFNZSxlQUFlUCxlQUFlUSxlQUFlO2dCQUVuRGhCLGdCQUFnQkssZ0JBQWlCLEdBQUc7Z0JBRXBDSixvQkFBb0JZLFVBQVcsR0FBRztnQkFFbENWLDRCQUE0QlksYUFBYUUsZUFBZSxDQUFDLFNBQUNsQjtvQkFDeEQsSUFBTUksNEJBQTRCTCx5QkFBeUJDLFlBQVlDLGVBQWVDLG1CQUFtQkM7b0JBRXpHLElBQUlDLDJCQUEyQjt3QkFDN0IsT0FBTztvQkFDVDtnQkFDRjtnQkFFQSxJQUFJQSwyQkFBMkI7b0JBQzdCLElBQU1lLGtCQUFrQkMsd0JBQXdCWCxnQkFBZ0JKO29CQUVoRUksZUFBZVksTUFBTSxDQUFDRjtnQkFDeEI7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxPQUFPZjtBQUNUO0FBRUEsU0FBU2dCLHdCQUF3QlgsY0FBYyxFQUFFSixpQkFBaUI7SUFDaEUsSUFBTWMsa0JBQWtCLEVBQUUsRUFDcEJHLDBCQUEwQmIsZ0JBQzFCYywyQkFBMkI7UUFDekJEO0tBQ0Q7SUFFUCxJQUFJRSxpQ0FBaUNELHlCQUF5QkUsTUFBTTtJQUVwRSxNQUFPRCxpQ0FBaUMsRUFBRztRQUN6QyxJQUFNRiwyQkFBMEJDLHlCQUF5QkcsS0FBSyxJQUN4RGpCLG1CQUFpQmEsMEJBQTBCLEdBQUc7UUFFcERILGdCQUFnQlEsSUFBSSxDQUFDbEI7UUFFckIsSUFBTU8sZUFBZVAsaUJBQWVRLGVBQWU7UUFFbkRELGFBQWFZLGlCQUFpQixDQUFDLFNBQUM1QjtZQUM5QixJQUFNTSxpQkFBaUJOLFdBQVdPLE9BQU8sSUFDbkNDLGNBQWNGLGdCQUNkRyxtQkFBaUJKLGlCQUFpQixDQUFDRyxZQUFZLEVBQy9DcUIsd0NBQXdDVixnQkFBZ0JXLFFBQVEsQ0FBQ3JCLG1CQUNqRXNCLGlEQUFpRFIseUJBQXlCTyxRQUFRLENBQUNyQjtZQUV6RixJQUFJLENBQUNvQix5Q0FBeUMsQ0FBQ0UsZ0RBQWdEO2dCQUM3RixJQUFNVCwwQkFBMEJiLGtCQUFnQixHQUFHO2dCQUVuRGMseUJBQXlCSSxJQUFJLENBQUNMO1lBQ2hDO1FBQ0Y7UUFFQUUsaUNBQWlDRCx5QkFBeUJFLE1BQU07SUFDbEU7SUFFQSxPQUFPTjtBQUNUIn0=