occam-open-cli 5.0.45 → 5.0.47

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/version.js CHANGED
@@ -86,8 +86,26 @@ var Version = /*#__PURE__*/ function() {
86
86
  var number = this.majorNumber * 1e12 + this.minorNumber * 1e6 + this.patchNumber * 1e0; ///
87
87
  return number;
88
88
  }
89
+ },
90
+ {
91
+ key: "toJSON",
92
+ value: function toJSON() {
93
+ var majorNumber = this.majorNumber, minorNumber = this.minorNumber, patchNumber = this.patchNumber, json = {
94
+ majorNumber: majorNumber,
95
+ minorNumber: minorNumber,
96
+ patchNumber: patchNumber
97
+ };
98
+ return json;
99
+ }
89
100
  }
90
101
  ], [
102
+ {
103
+ key: "fromJSON",
104
+ value: function fromJSON(json) {
105
+ var majorNumber = json.majorNumber, minorNumber = json.minorNumber, patchNumber = json.patchNumber, version = new Version(majorNumber, minorNumber, patchNumber);
106
+ return version;
107
+ }
108
+ },
91
109
  {
92
110
  key: "fromString",
93
111
  value: function fromString(string) {
@@ -142,4 +160,4 @@ function patchNumberFromString(string) {
142
160
  return patchNumber;
143
161
  }
144
162
 
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBzZWNvbmQgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZXJzaW9uIHtcbiAgY29uc3RydWN0b3IobWFqb3JOdW1iZXIsIG1pbm9yTnVtYmVyLCBwYXRjaE51bWJlcikge1xuICAgIHRoaXMubWFqb3JOdW1iZXIgPSBtYWpvck51bWJlcjtcbiAgICB0aGlzLm1pbm9yTnVtYmVyID0gbWlub3JOdW1iZXI7XG4gICAgdGhpcy5wYXRjaE51bWJlciA9IHBhdGNoTnVtYmVyO1xuICB9XG5cbiAgZ2V0TWFqb3JOdW1iZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFqb3JOdW1iZXI7XG4gIH1cblxuICBnZXRNaW5vck51bWJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5taW5vck51bWJlcjtcbiAgfVxuXG4gIGdldFBhdGNoTnVtYmVyKCkge1xuICAgIHJldHVybiB0aGlzLnBhdGNoTnVtYmVyO1xuICB9XG5cbiAgYnVtcE1ham9yTnVtYmVyKCkge1xuICAgIHRoaXMubWFqb3JOdW1iZXIgKz0gMTtcbiAgfVxuXG4gIGJ1bXBNaW5vck51bWJlcigpIHtcbiAgICB0aGlzLm1pbm9yTnVtYmVyICs9IDE7XG4gIH1cblxuICBidW1wUGF0Y2hOdW1iZXIoKSB7XG4gICAgdGhpcy5wYXRjaE51bWJlciArPSAxO1xuICB9XG5cbiAgdG9TdHJpbmcoKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gYCR7dGhpcy5tYWpvck51bWJlcn0uJHt0aGlzLm1pbm9yTnVtYmVyfS4ke3RoaXMucGF0Y2hOdW1iZXJ9YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBhc051bWJlcigpIHtcbiAgICBjb25zdCBudW1iZXIgPSB0aGlzLm1ham9yTnVtYmVyICogMWUxMiArIHRoaXMubWlub3JOdW1iZXIgKiAxZTYgKyB0aGlzLnBhdGNoTnVtYmVyICogMWUwOyAvLy9cblxuICAgIHJldHVybiBudW1iZXI7XG4gIH1cblxuICBzdGF0aWMgZnJvbVN0cmluZyhzdHJpbmcpIHtcbiAgICBjb25zdCBtYWpvck51bWJlciA9IG1ham9yTnVtYmVyRnJvbVN0cmluZyhzdHJpbmcpLFxuICAgICAgICAgIG1pbm9yTnVtYmVyID0gbWlub3JOdW1iZXJGcm9tU3RyaW5nKHN0cmluZyksXG4gICAgICAgICAgcGF0Y2hOdW1iZXIgPSBwYXRjaE51bWJlckZyb21TdHJpbmcoc3RyaW5nKSxcbiAgICAgICAgICB2ZXJzaW9uID0gbmV3IFZlcnNpb24obWFqb3JOdW1iZXIsIG1pbm9yTnVtYmVyLCBwYXRjaE51bWJlcik7XG5cbiAgICByZXR1cm4gdmVyc2lvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmVyc2lvbk51bWJlcih2ZXJzaW9uTnVtYmVyKSB7XG4gICAgY29uc3QgbnVtYmVyID0gdmVyc2lvbk51bWJlciwgLy8vXG4gICAgICAgICAgbWFqb3JOdW1iZXIgPSBtYWpvck51bWJlckZyb21OdW1iZXIobnVtYmVyKSxcbiAgICAgICAgICBtaW5vck51bWJlciA9IG1pbm9yTnVtYmVyRnJvbU51bWJlcihudW1iZXIpLFxuICAgICAgICAgIHBhdGNoTnVtYmVyID0gcGF0Y2hOdW1iZXJGcm9tTnVtYmVyKG51bWJlciksXG4gICAgICAgICAgdmVyc2lvbiA9IG5ldyBWZXJzaW9uKG1ham9yTnVtYmVyLCBtaW5vck51bWJlciwgcGF0Y2hOdW1iZXIpO1xuXG4gICAgcmV0dXJuIHZlcnNpb247XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFqb3JOdW1iZXJGcm9tTnVtYmVyKG51bWJlcikge1xuICBjb25zdCBtYWpvck51bWJlciA9IChudW1iZXIgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IobnVtYmVyIC8gMWUxMikgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAwOyAgLy8vXG5cbiAgcmV0dXJuIG1ham9yTnVtYmVyO1xufVxuXG5mdW5jdGlvbiBtaW5vck51bWJlckZyb21OdW1iZXIobnVtYmVyKSB7XG4gIGNvbnN0IG1pbm9yTnVtYmVyID0gKG51bWJlciAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5mbG9vcihudW1iZXIgLyAxZTYpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgMDsgIC8vL1xuXG4gIHJldHVybiBtaW5vck51bWJlcjtcbn1cblxuZnVuY3Rpb24gcGF0Y2hOdW1iZXJGcm9tTnVtYmVyKG51bWJlcikge1xuICBjb25zdCBwYXRjaE51bWJlciA9IChudW1iZXIgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IobnVtYmVyIC8gMWUwKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDA7ICAvLy9cblxuICByZXR1cm4gcGF0Y2hOdW1iZXI7XG59XG5cbmZ1bmN0aW9uIG1ham9yTnVtYmVyRnJvbVN0cmluZyhzdHJpbmcpIHtcbiAgbGV0IG1ham9yTnVtYmVyID0gMDtcblxuICBpZiAoc3RyaW5nKSB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHN0cmluZy5tYXRjaCgvXihcXGQrKVxcLlxcZCtcXC5cXGQrJC8pLFxuICAgICAgICAgIHNlY29uZE1hdGNoID0gc2Vjb25kKG1hdGNoZXMpO1xuXG4gICAgbWFqb3JOdW1iZXIgPSBzZWNvbmRNYXRjaDsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIG1ham9yTnVtYmVyO1xufVxuXG5mdW5jdGlvbiBtaW5vck51bWJlckZyb21TdHJpbmcoc3RyaW5nKSB7XG4gIGxldCBtaW5vck51bWJlciA9IDA7XG5cbiAgaWYgKHN0cmluZykge1xuICAgIGNvbnN0IG1hdGNoZXMgPSBzdHJpbmcubWF0Y2goL15cXGQrXFwuKFxcZCspXFwuXFxkKyQvKSxcbiAgICAgICAgICBzZWNvbmRNYXRjaCA9IHNlY29uZChtYXRjaGVzKTtcblxuICAgIG1pbm9yTnVtYmVyID0gc2Vjb25kTWF0Y2g7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBtaW5vck51bWJlcjtcbn1cblxuZnVuY3Rpb24gcGF0Y2hOdW1iZXJGcm9tU3RyaW5nKHN0cmluZykge1xuICBsZXQgcGF0Y2hOdW1iZXIgPSAwO1xuXG4gIGlmIChzdHJpbmcpIHtcbiAgICBjb25zdCBtYXRjaGVzID0gc3RyaW5nLm1hdGNoKC9eXFxkK1xcLlxcZCtcXC4oXFxkKykkLyksXG4gICAgICAgICAgc2Vjb25kTWF0Y2ggPSBzZWNvbmQobWF0Y2hlcyk7XG5cbiAgICBwYXRjaE51bWJlciA9IHNlY29uZE1hdGNoOyAgLy8vXG4gIH1cblxuICByZXR1cm4gcGF0Y2hOdW1iZXI7XG59XG4iXSwibmFtZXMiOlsiVmVyc2lvbiIsInNlY29uZCIsImFycmF5VXRpbGl0aWVzIiwibWFqb3JOdW1iZXIiLCJtaW5vck51bWJlciIsInBhdGNoTnVtYmVyIiwiZ2V0TWFqb3JOdW1iZXIiLCJnZXRNaW5vck51bWJlciIsImdldFBhdGNoTnVtYmVyIiwiYnVtcE1ham9yTnVtYmVyIiwiYnVtcE1pbm9yTnVtYmVyIiwiYnVtcFBhdGNoTnVtYmVyIiwidG9TdHJpbmciLCJzdHJpbmciLCJhc051bWJlciIsIm51bWJlciIsImZyb21TdHJpbmciLCJtYWpvck51bWJlckZyb21TdHJpbmciLCJtaW5vck51bWJlckZyb21TdHJpbmciLCJwYXRjaE51bWJlckZyb21TdHJpbmciLCJ2ZXJzaW9uIiwiZnJvbVZlcnNpb25OdW1iZXIiLCJ2ZXJzaW9uTnVtYmVyIiwibWFqb3JOdW1iZXJGcm9tTnVtYmVyIiwibWlub3JOdW1iZXJGcm9tTnVtYmVyIiwicGF0Y2hOdW1iZXJGcm9tTnVtYmVyIiwiTWF0aCIsImZsb29yIiwibWF0Y2hlcyIsIm1hdGNoIiwic2Vjb25kTWF0Y2giXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBTXFCQTs7O3lCQUpVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUvQixJ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
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBzZWNvbmQgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZXJzaW9uIHtcbiAgY29uc3RydWN0b3IobWFqb3JOdW1iZXIsIG1pbm9yTnVtYmVyLCBwYXRjaE51bWJlcikge1xuICAgIHRoaXMubWFqb3JOdW1iZXIgPSBtYWpvck51bWJlcjtcbiAgICB0aGlzLm1pbm9yTnVtYmVyID0gbWlub3JOdW1iZXI7XG4gICAgdGhpcy5wYXRjaE51bWJlciA9IHBhdGNoTnVtYmVyO1xuICB9XG5cbiAgZ2V0TWFqb3JOdW1iZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFqb3JOdW1iZXI7XG4gIH1cblxuICBnZXRNaW5vck51bWJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5taW5vck51bWJlcjtcbiAgfVxuXG4gIGdldFBhdGNoTnVtYmVyKCkge1xuICAgIHJldHVybiB0aGlzLnBhdGNoTnVtYmVyO1xuICB9XG5cbiAgYnVtcE1ham9yTnVtYmVyKCkge1xuICAgIHRoaXMubWFqb3JOdW1iZXIgKz0gMTtcbiAgfVxuXG4gIGJ1bXBNaW5vck51bWJlcigpIHtcbiAgICB0aGlzLm1pbm9yTnVtYmVyICs9IDE7XG4gIH1cblxuICBidW1wUGF0Y2hOdW1iZXIoKSB7XG4gICAgdGhpcy5wYXRjaE51bWJlciArPSAxO1xuICB9XG5cbiAgdG9TdHJpbmcoKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gYCR7dGhpcy5tYWpvck51bWJlcn0uJHt0aGlzLm1pbm9yTnVtYmVyfS4ke3RoaXMucGF0Y2hOdW1iZXJ9YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBhc051bWJlcigpIHtcbiAgICBjb25zdCBudW1iZXIgPSB0aGlzLm1ham9yTnVtYmVyICogMWUxMiArIHRoaXMubWlub3JOdW1iZXIgKiAxZTYgKyB0aGlzLnBhdGNoTnVtYmVyICogMWUwOyAvLy9cblxuICAgIHJldHVybiBudW1iZXI7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgbWFqb3JOdW1iZXIgPSB0aGlzLm1ham9yTnVtYmVyLFxuICAgICAgICAgIG1pbm9yTnVtYmVyID0gdGhpcy5taW5vck51bWJlcixcbiAgICAgICAgICBwYXRjaE51bWJlciA9IHRoaXMucGF0Y2hOdW1iZXIsXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIG1ham9yTnVtYmVyLFxuICAgICAgICAgICAgbWlub3JOdW1iZXIsXG4gICAgICAgICAgICBwYXRjaE51bWJlclxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBtYWpvck51bWJlciwgbWlub3JOdW1iZXIsIHBhdGNoTnVtYmVyIH0gPSBqc29uLFxuICAgICAgICAgIHZlcnNpb24gPSBuZXcgVmVyc2lvbihtYWpvck51bWJlciwgbWlub3JOdW1iZXIsIHBhdGNoTnVtYmVyKTtcblxuICAgIHJldHVybiB2ZXJzaW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdHJpbmcoc3RyaW5nKSB7XG4gICAgY29uc3QgbWFqb3JOdW1iZXIgPSBtYWpvck51bWJlckZyb21TdHJpbmcoc3RyaW5nKSxcbiAgICAgICAgICBtaW5vck51bWJlciA9IG1pbm9yTnVtYmVyRnJvbVN0cmluZyhzdHJpbmcpLFxuICAgICAgICAgIHBhdGNoTnVtYmVyID0gcGF0Y2hOdW1iZXJGcm9tU3RyaW5nKHN0cmluZyksXG4gICAgICAgICAgdmVyc2lvbiA9IG5ldyBWZXJzaW9uKG1ham9yTnVtYmVyLCBtaW5vck51bWJlciwgcGF0Y2hOdW1iZXIpO1xuXG4gICAgcmV0dXJuIHZlcnNpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbVZlcnNpb25OdW1iZXIodmVyc2lvbk51bWJlcikge1xuICAgIGNvbnN0IG51bWJlciA9IHZlcnNpb25OdW1iZXIsIC8vL1xuICAgICAgICAgIG1ham9yTnVtYmVyID0gbWFqb3JOdW1iZXJGcm9tTnVtYmVyKG51bWJlciksXG4gICAgICAgICAgbWlub3JOdW1iZXIgPSBtaW5vck51bWJlckZyb21OdW1iZXIobnVtYmVyKSxcbiAgICAgICAgICBwYXRjaE51bWJlciA9IHBhdGNoTnVtYmVyRnJvbU51bWJlcihudW1iZXIpLFxuICAgICAgICAgIHZlcnNpb24gPSBuZXcgVmVyc2lvbihtYWpvck51bWJlciwgbWlub3JOdW1iZXIsIHBhdGNoTnVtYmVyKTtcblxuICAgIHJldHVybiB2ZXJzaW9uO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1ham9yTnVtYmVyRnJvbU51bWJlcihudW1iZXIpIHtcbiAgY29uc3QgbWFqb3JOdW1iZXIgPSAobnVtYmVyICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKG51bWJlciAvIDFlMTIpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgMDsgIC8vL1xuXG4gIHJldHVybiBtYWpvck51bWJlcjtcbn1cblxuZnVuY3Rpb24gbWlub3JOdW1iZXJGcm9tTnVtYmVyKG51bWJlcikge1xuICBjb25zdCBtaW5vck51bWJlciA9IChudW1iZXIgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IobnVtYmVyIC8gMWU2KSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDA7ICAvLy9cblxuICByZXR1cm4gbWlub3JOdW1iZXI7XG59XG5cbmZ1bmN0aW9uIHBhdGNoTnVtYmVyRnJvbU51bWJlcihudW1iZXIpIHtcbiAgY29uc3QgcGF0Y2hOdW1iZXIgPSAobnVtYmVyICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKG51bWJlciAvIDFlMCkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAwOyAgLy8vXG5cbiAgcmV0dXJuIHBhdGNoTnVtYmVyO1xufVxuXG5mdW5jdGlvbiBtYWpvck51bWJlckZyb21TdHJpbmcoc3RyaW5nKSB7XG4gIGxldCBtYWpvck51bWJlciA9IDA7XG5cbiAgaWYgKHN0cmluZykge1xuICAgIGNvbnN0IG1hdGNoZXMgPSBzdHJpbmcubWF0Y2goL14oXFxkKylcXC5cXGQrXFwuXFxkKyQvKSxcbiAgICAgICAgICBzZWNvbmRNYXRjaCA9IHNlY29uZChtYXRjaGVzKTtcblxuICAgIG1ham9yTnVtYmVyID0gc2Vjb25kTWF0Y2g7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBtYWpvck51bWJlcjtcbn1cblxuZnVuY3Rpb24gbWlub3JOdW1iZXJGcm9tU3RyaW5nKHN0cmluZykge1xuICBsZXQgbWlub3JOdW1iZXIgPSAwO1xuXG4gIGlmIChzdHJpbmcpIHtcbiAgICBjb25zdCBtYXRjaGVzID0gc3RyaW5nLm1hdGNoKC9eXFxkK1xcLihcXGQrKVxcLlxcZCskLyksXG4gICAgICAgICAgc2Vjb25kTWF0Y2ggPSBzZWNvbmQobWF0Y2hlcyk7XG5cbiAgICBtaW5vck51bWJlciA9IHNlY29uZE1hdGNoOyAgLy8vXG4gIH1cblxuICByZXR1cm4gbWlub3JOdW1iZXI7XG59XG5cbmZ1bmN0aW9uIHBhdGNoTnVtYmVyRnJvbVN0cmluZyhzdHJpbmcpIHtcbiAgbGV0IHBhdGNoTnVtYmVyID0gMDtcblxuICBpZiAoc3RyaW5nKSB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHN0cmluZy5tYXRjaCgvXlxcZCtcXC5cXGQrXFwuKFxcZCspJC8pLFxuICAgICAgICAgIHNlY29uZE1hdGNoID0gc2Vjb25kKG1hdGNoZXMpO1xuXG4gICAgcGF0Y2hOdW1iZXIgPSBzZWNvbmRNYXRjaDsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIHBhdGNoTnVtYmVyO1xufVxuIl0sIm5hbWVzIjpbIlZlcnNpb24iLCJzZWNvbmQiLCJhcnJheVV0aWxpdGllcyIsIm1ham9yTnVtYmVyIiwibWlub3JOdW1iZXIiLCJwYXRjaE51bWJlciIsImdldE1ham9yTnVtYmVyIiwiZ2V0TWlub3JOdW1iZXIiLCJnZXRQYXRjaE51bWJlciIsImJ1bXBNYWpvck51bWJlciIsImJ1bXBNaW5vck51bWJlciIsImJ1bXBQYXRjaE51bWJlciIsInRvU3RyaW5nIiwic3RyaW5nIiwiYXNOdW1iZXIiLCJudW1iZXIiLCJ0b0pTT04iLCJqc29uIiwiZnJvbUpTT04iLCJ2ZXJzaW9uIiwiZnJvbVN0cmluZyIsIm1ham9yTnVtYmVyRnJvbVN0cmluZyIsIm1pbm9yTnVtYmVyRnJvbVN0cmluZyIsInBhdGNoTnVtYmVyRnJvbVN0cmluZyIsImZyb21WZXJzaW9uTnVtYmVyIiwidmVyc2lvbk51bWJlciIsIm1ham9yTnVtYmVyRnJvbU51bWJlciIsIm1pbm9yTnVtYmVyRnJvbU51bWJlciIsInBhdGNoTnVtYmVyRnJvbU51bWJlciIsIk1hdGgiLCJmbG9vciIsIm1hdGNoZXMiLCJtYXRjaCIsInNlY29uZE1hdGNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQU1xQkE7Ozt5QkFKVTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFL0IsSUFBTSxBQUFFQyxTQUFXQyx5QkFBYyxDQUF6QkQ7QUFFTyxJQUFBLEFBQU1ELHdCQW1GbEIsQUFuRlk7YUFBTUEsUUFDUEcsV0FBVyxFQUFFQyxXQUFXLEVBQUVDLFdBQVc7OEJBRDlCTDtRQUVqQixJQUFJLENBQUNHLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTs7aUJBSkZMOztZQU9uQk0sS0FBQUE7bUJBQUFBLFNBQUFBLGlCQUFpQjtnQkFDZixPQUFPLElBQUksQ0FBQ0gsV0FBVztZQUN6Qjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQSxpQkFBaUI7Z0JBQ2YsT0FBTyxJQUFJLENBQUNILFdBQVc7WUFDekI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUEsaUJBQWlCO2dCQUNmLE9BQU8sSUFBSSxDQUFDSCxXQUFXO1lBQ3pCOzs7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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-open-cli",
3
3
  "author": "James Smith",
4
- "version": "5.0.45",
4
+ "version": "5.0.47",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-open-cli",
7
7
  "description": "Occam's command line package management tool.",
@@ -11,7 +11,9 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "argumentative": "^2.0.15",
14
- "necessary": "^11.1.4"
14
+ "necessary": "^11.1.4",
15
+ "occam-dom": "^3.0.255",
16
+ "occam-grammars": "^1.0.323"
15
17
  },
16
18
  "devDependencies": {
17
19
  "@swc/core": "^1.2.51",
package/src/browser.js CHANGED
@@ -8,12 +8,11 @@ export { default as Entries } from "./entries";
8
8
  export { default as Project } from "./project";
9
9
  export { default as Projects } from "./projects";
10
10
  export { default as Dependency } from "./dependency";
11
+ export { default as Dependencies } from "./dependencies";
11
12
  export { default as ShortenedVersion } from "./shortenedVersion";
12
13
 
13
- export { default as types } from "./types";
14
- export { default as fileNames } from "./fileNames";
15
-
16
14
  export { default as nameUtilities } from "./utilities/name";
17
15
  export { default as contentUtilities } from "./utilities/content";
18
16
 
19
17
  export { default as filePathUtilities } from "./utilities/filePath";
18
+ export { default as metaJSONUtilities } from "./utilities/metaJSON";
package/src/constants.js CHANGED
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
2
 
3
+ export const EMPTY_STRING = "";
3
4
  export const DOUBLE_SPACE = " ";
4
5
  export const ENTRIES_MAXIMUM_ARRAY_LENGTH = 1024;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ import Dependency from "./dependency";
4
+
5
+ export default class Dependencies {
6
+ constructor(array) {
7
+ this.array = array;
8
+ }
9
+
10
+ toJSON() {
11
+ const dependenciesJSON = this.array.map((dependency) => {
12
+ const dependencyJSON = dependency.toJSON();
13
+
14
+ return dependencyJSON;
15
+ }),
16
+ json = dependenciesJSON; ///
17
+
18
+ return json;
19
+ }
20
+
21
+ static fromJSON(json) {
22
+ const dependenciesJSON = json, ///
23
+ array = dependenciesJSON.map((dependencyJSON) => { ///
24
+ const json = dependencyJSON, ///
25
+ dependency = Dependency.fromJSON(json);
26
+
27
+ return dependency;
28
+ }),
29
+ dependencies = new Dependencies(array);
30
+
31
+ return dependencies;
32
+ }
33
+
34
+ static fromNothing() {
35
+ const array = [],
36
+ dependencies = new Dependencies(array);
37
+
38
+ return dependencies;
39
+ }
40
+ }
package/src/main.js CHANGED
@@ -8,12 +8,11 @@ export { default as Entries } from "./entries";
8
8
  export { default as Project } from "./project";
9
9
  export { default as Projects } from "./projects";
10
10
  export { default as Dependency } from "./dependency";
11
+ export { default as Dependencies } from "./dependencies";
11
12
  export { default as ShortenedVersion } from "./shortenedVersion";
12
13
 
13
- export { default as types } from "./types";
14
- export { default as fileNames } from "./fileNames";
15
-
16
14
  export { default as nameUtilities } from "./utilities/name";
17
15
  export { default as contentUtilities } from "./utilities/content";
18
16
  export { default as entriesUtilities } from "./utilities/entries";
19
17
  export { default as filePathUtilities } from "./utilities/filePath";
18
+ export { default as metaJSONUtilities } from "./utilities/metaJSON";
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ import { fileNameFromFilePath } from "../utilities/name";
4
+ import { TERM_BNF_FILE_NAME, STATEMENT_BNF_FILE_NAME, METASTATEMENT_BNF_FILE_NAME } from "../fileNames";
5
+
6
+ function getBNF(bnfFileName) {
7
+ let bnf = null;
8
+
9
+ const customGrammarBNFFiles = this.getCustomGrammarBNFFiles(),
10
+ customGrammarBNFFile = customGrammarBNFFiles.find((customGrammarBNFFile) => {
11
+ const customGrammarBNFFilePath = customGrammarBNFFile.getPath(),
12
+ customGrammarBNFFileName = fileNameFromFilePath(customGrammarBNFFilePath);
13
+
14
+ if (customGrammarBNFFileName === bnfFileName) {
15
+ return true;
16
+ }
17
+ }) || null;
18
+
19
+ if (customGrammarBNFFile !== null) {
20
+ const customGrammarBNFFileContent = customGrammarBNFFile.getContent();
21
+
22
+ bnf = customGrammarBNFFileContent; ///
23
+ }
24
+
25
+ return bnf;
26
+ }
27
+
28
+ function getTermBNF() {
29
+ const fileName = TERM_BNF_FILE_NAME, ///
30
+ bnf = this.getBNF(fileName),
31
+ termBNF = bnf; ///
32
+
33
+ return termBNF;
34
+ }
35
+
36
+ function getStatementBNF() {
37
+ const fileName = STATEMENT_BNF_FILE_NAME, ///
38
+ bnf = this.getBNF(fileName),
39
+ statementBNF = bnf; ///
40
+
41
+ return statementBNF;
42
+ }
43
+
44
+ function getMetastatementBNF() {
45
+ const fileName = METASTATEMENT_BNF_FILE_NAME, ///
46
+ bnf = this.getBNF(fileName),
47
+ metastatementBNF = bnf; ///
48
+
49
+ return metastatementBNF;
50
+ }
51
+
52
+ const bnfMixins = {
53
+ getBNF,
54
+ getTermBNF,
55
+ getStatementBNF,
56
+ getMetastatementBNF
57
+ };
58
+
59
+ export default bnfMixins;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ function getFile(filePath) { return this.entries.getFile(filePath); }
4
+
5
+ function getFiles() { return this.entries.getFiles(); }
6
+
7
+ function getFilePaths() { return this.entries.getFilePaths(); }
8
+
9
+ function getDirectoryPaths() { return this.entries.getDirectoryPaths(); }
10
+
11
+ const entriesMixins = {
12
+ getFile,
13
+ getFiles,
14
+ getFilePaths,
15
+ getDirectoryPaths
16
+ };
17
+
18
+ export default entriesMixins;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ import { readmeFileFromFiles,
4
+ metaJSONFileFromFiles,
5
+ florenceFilesFromFiles,
6
+ customGrammarBNFFilesFromFiles,
7
+ customGrammarPatternFilesFromFiles } from "../utilities/files";
8
+
9
+ function getReadmeFile() {
10
+ const files = this.getFiles(),
11
+ readmeFile = readmeFileFromFiles(files);
12
+
13
+ return readmeFile;
14
+ }
15
+
16
+ function getMetaJSONFile() {
17
+ const files = this.getFiles(),
18
+ metaJSONFile = metaJSONFileFromFiles(files);
19
+
20
+ return metaJSONFile;
21
+ }
22
+
23
+ function getFlorenceFiles() {
24
+ const files = this.getFiles(),
25
+ florenceFiles = florenceFilesFromFiles(files);
26
+
27
+ return florenceFiles;
28
+ }
29
+
30
+ function getCustomGrammarBNFFiles() {
31
+ const files = this.getFiles(),
32
+ customGrammarBNFFiles = customGrammarBNFFilesFromFiles(files);
33
+
34
+ return customGrammarBNFFiles;
35
+ }
36
+
37
+ function getCustomGrammarPatternFiles() {
38
+ const files = this.getFiles(),
39
+ customGrammarPatternFiles = customGrammarPatternFilesFromFiles(files);
40
+
41
+ return customGrammarPatternFiles;
42
+ }
43
+
44
+ const filesMixins = {
45
+ getReadmeFile,
46
+ getMetaJSONFile,
47
+ getFlorenceFiles,
48
+ getCustomGrammarBNFFiles,
49
+ getCustomGrammarPatternFiles
50
+ };
51
+
52
+ export default filesMixins;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ import { fileNameFromFilePath } from "../utilities/name";
4
+ import { TYPE_PATTERN_FILE_NAME, SYMBOL_PATTERN_FILE_NAME, OPERATOR_PATTERN_FILE_NAME } from "../fileNames";
5
+
6
+ function getPattern(patternFileName) {
7
+ let pattern = null;
8
+
9
+ const customGrammarPatternFiles = this.getCustomGrammarPatternFiles(),
10
+ customGrammarPatternFile = customGrammarPatternFiles.find((customGrammarPatternFile) => {
11
+ const customGrammarPatternFilePath = customGrammarPatternFile.getPath(),
12
+ customGrammarPatternFileName = fileNameFromFilePath(customGrammarPatternFilePath);
13
+
14
+ if (customGrammarPatternFileName === patternFileName) {
15
+ return true;
16
+ }
17
+ }) || null;
18
+
19
+ if (customGrammarPatternFile !== null) {
20
+ const customGrammarPatternFileContent = customGrammarPatternFile.getContent();
21
+
22
+ pattern = customGrammarPatternFileContent; ///
23
+ }
24
+
25
+ return pattern;
26
+ }
27
+
28
+ function getTypePattern() {
29
+ const fileName = TYPE_PATTERN_FILE_NAME, ///
30
+ pattern = this.getPattern(fileName),
31
+ typePattern = pattern; ///
32
+
33
+ return typePattern;
34
+ }
35
+
36
+ function getSymbolPattern() {
37
+ const fileName = SYMBOL_PATTERN_FILE_NAME, ///
38
+ pattern = this.getPattern(fileName),
39
+ symbolPattern = pattern; ///
40
+
41
+ return symbolPattern;
42
+ }
43
+
44
+ function getOperatorPattern() {
45
+ const fileName = OPERATOR_PATTERN_FILE_NAME, ///
46
+ pattern = this.getPattern(fileName),
47
+ operatorPattern = pattern; ///
48
+
49
+ return operatorPattern;
50
+ }
51
+
52
+ const patternMixins = {
53
+ getPattern,
54
+ getTypePattern,
55
+ getSymbolPattern,
56
+ getOperatorPattern
57
+ };
58
+
59
+ export default patternMixins;
package/src/project.js CHANGED
@@ -1,16 +1,26 @@
1
1
  "use strict";
2
2
 
3
+ import { MetaJSONLexer, MetaJSONParser } from "occam-grammars";
4
+
3
5
  import Entries from "./entries";
6
+ import bnfMixins from "./mixins/bnf";
7
+ import filesMixins from "./mixins/files";
8
+ import Dependencies from "./dependencies";
9
+ import entriesMixins from "./mixins/entries";
10
+ import patternMixins from "./mixins/pattern";
11
+
12
+ import { metaJSONFIleFromFiles } from "./utilities/files";
13
+ import { repositoryFromNode, dependenciesFromNode } from "./utilities/metaJSON";
4
14
 
5
- import { isFilePathFlorenceFilePath,
6
- isFilePathMetaJSONFilePath,
7
- isFilePathCustomGrammarBNFFilePath,
8
- isFilePathCustomGrammarPatternFilePath } from "./utilities/filePath";
15
+ const metaJSONLexer = MetaJSONLexer.fromNothing(),
16
+ metaJSONParser = MetaJSONParser.fromNothing();
9
17
 
10
- export default class Project {
11
- constructor(name, entries) {
18
+ class Project {
19
+ constructor(name, entries, repository, dependencies) {
12
20
  this.name = name;
13
21
  this.entries = entries;
22
+ this.repository = repository;
23
+ this.dependendies = dependencies;
14
24
  }
15
25
 
16
26
  getName() {
@@ -21,112 +31,117 @@ export default class Project {
21
31
  return this.entries;
22
32
  }
23
33
 
24
- getFiles() { return this.entries.getFiles(); }
34
+ getRepository() {
35
+ return this.repository;
36
+ }
25
37
 
26
- getFilePaths() { return this.entries.getFilePaths(); }
38
+ getDependencies() {
39
+ return this.dependendies;
40
+ }
27
41
 
28
- getDirectoryPaths() { return this.entries.getDirectoryPaths(); }
42
+ toJSON() {
43
+ const entriesJSON = this.entries.toJSON(),
44
+ dependenciesJSON = this.dependendies.toJSON(),
45
+ name = this.name,
46
+ entries = entriesJSON, ///
47
+ repository = this.repository,
48
+ dependencies = dependenciesJSON, ///
49
+ json = {
50
+ name,
51
+ entries,
52
+ repository,
53
+ dependencies
54
+ };
29
55
 
30
- getFile(filePath) { return this.entries.getFile(filePath); }
56
+ return json;
57
+ }
31
58
 
32
- getMetaJSONFile() {
33
- const files = this.getFiles(),
34
- metaJSONFile = files.findFile((file) => {
35
- const filePath = file.getPath(),
36
- filePathMetaJSONFilePath = isFilePathMetaJSONFilePath(filePath);
59
+ static fromJSON(json) {
60
+ let { entries, dependencies } = json;
37
61
 
38
- if (filePathMetaJSONFilePath) {
39
- return true;
40
- }
41
- });
62
+ const { name, repository } = json,
63
+ entriesJSON = entries, ///
64
+ dependenciesJSON = dependencies; ///
42
65
 
43
- return metaJSONFile;
44
- }
66
+ json = entriesJSON; ///
45
67
 
46
- getFlorenceFiles() {
47
- const files = this.getFiles(),
48
- florenceFiles = files.reduceFile((florenceFiles, file) => {
49
- const filePath = file.getPath(),
50
- filePathFlorenceFilePath = isFilePathFlorenceFilePath(filePath),
51
- fileFlorenceFile = filePathFlorenceFilePath; ///
68
+ entries = Entries.fromJSON(json); ///
52
69
 
53
- if (fileFlorenceFile) {
54
- const florenceFile = file; ///
70
+ json = dependenciesJSON; ///
55
71
 
56
- florenceFiles.push(florenceFile);
57
- }
72
+ dependencies = Dependencies.fromJSON(json);
58
73
 
59
- return florenceFiles;
60
- }, []);
74
+ const release = new Release(name, entries, repository, dependencies);
61
75
 
62
- return florenceFiles;
76
+ return release;
63
77
  }
64
78
 
65
- getCustomGrammarBNFFiles() {
66
- const files = this.getFiles(),
67
- customGrammarBNFFiles = files.reduceFile((customGrammarBNFFiles, file) => {
68
- const filePath = file.getPath(),
69
- filePathCustomGrammarBNFFilePath = isFilePathCustomGrammarBNFFilePath(filePath),
70
- fileCustomGrammarBNFFile = filePathCustomGrammarBNFFilePath; ///
71
-
72
- if (fileCustomGrammarBNFFile) {
73
- const customGrammarBNFFile = file; ///
79
+ static fromName(name) {
80
+ const entries = Entries.fromNothing(),
81
+ repository = null, ///
82
+ dependencies = Dependencies.fromNothing(),
83
+ project = new Project(name, entries, repository, dependencies);
74
84
 
75
- customGrammarBNFFiles.push(customGrammarBNFFile);
76
- }
85
+ return project;
86
+ }
77
87
 
78
- return customGrammarBNFFiles;
79
- }, []);
88
+ static fromNameAndEntries(name, entries) {
89
+ const repository = repositoryFromEntries(entries),
90
+ dependencies = dependenciesFromEntries(entries),
91
+ project = new Project(name, entries, repository, dependencies);
80
92
 
81
- return customGrammarBNFFiles;
93
+ return project;
82
94
  }
95
+ }
83
96
 
84
- getCustomGrammarPatternFiles() {
85
- const files = this.getFiles(),
86
- customGrammarPatternFiles = files.reduceFile((customGrammarPatternFiles, file) => {
87
- const filePath = file.getPath(),
88
- filePathCustomGrammarPatternFilePath = isFilePathCustomGrammarPatternFilePath(filePath),
89
- fileCustomGrammarPatternFile = filePathCustomGrammarPatternFilePath; ///
90
-
91
- if (fileCustomGrammarPatternFile) {
92
- const customGrammarPatternFile = file; ///
97
+ Object.assign(Project.prototype, bnfMixins);
98
+ Object.assign(Project.prototype, filesMixins);
99
+ Object.assign(Project.prototype, entriesMixins);
100
+ Object.assign(Project.prototype, patternMixins);
93
101
 
94
- customGrammarPatternFiles.push(customGrammarPatternFile);
95
- }
102
+ export default Project;
96
103
 
97
- return customGrammarPatternFiles;
98
- }, []);
104
+ function repositoryFromEntries(entries) {
105
+ let repository = null;
99
106
 
100
- return customGrammarPatternFiles;
101
- }
107
+ const metaJSONFileNode = metaJSONFileNodeFromEntries(entries)
102
108
 
103
- toJSON() {
104
- const name = this.name,
105
- entriesJSON = this.entries.toJSON(),
106
- entries = entriesJSON, ///
107
- json = {
108
- name,
109
- entries
110
- };
109
+ if (metaJSONFileNode !== null) {
110
+ const node = metaJSONFileNode;///
111
111
 
112
- return json;
112
+ repository = repositoryFromNode(node);
113
113
  }
114
114
 
115
- static fromJSON(json) {
116
- const { name, entries: entriesJSON } = json;
115
+ return repository;
116
+ }
117
117
 
118
- json = entriesJSON; ///
118
+ function dependenciesFromEntries(entries) {
119
+ let dependencies = [];
119
120
 
120
- const entries = Entries.fromJSON(json),
121
- project = new Project(name, entries);
121
+ const metaJSONFileNode = metaJSONFileNodeFromEntries(entries)
122
122
 
123
- return project;
123
+ if (metaJSONFileNode !== null) {
124
+ const node = metaJSONFileNode;///
125
+
126
+ dependencies = dependenciesFromNode(node);
124
127
  }
125
128
 
126
- static fromName(name) {
127
- const entries = Entries.fromNothing(),
128
- project = new Project(name, entries);
129
+ return dependencies;
130
+ }
129
131
 
130
- return project;
132
+ function metaJSONFileNodeFromEntries(entries) {
133
+ let metaJSONFileNode = null;
134
+
135
+ const files = entries.getFiles(),
136
+ metaJSONFile = metaJSONFIleFromFiles(files);
137
+
138
+ if (metaJSONFile !== null) {
139
+ const content = metaJSONFile.getContent(),
140
+ tokens = metaJSONLexer.tokenise(content),
141
+ node = metaJSONParser.parse(tokens);
142
+
143
+ metaJSONFileNode = node; ///
131
144
  }
145
+
146
+ return metaJSONFileNode;
132
147
  }