occam-file-system 5.0.121 → 5.0.123

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/release.js CHANGED
@@ -99,8 +99,8 @@ var Release = /*#__PURE__*/ function() {
99
99
  key: "fromNameAndEntries",
100
100
  value: function fromNameAndEntries(name, entries) {
101
101
  var release = null;
102
- var filesReleasable = areEntriesReleasable(entries);
103
- if (filesReleasable) {
102
+ var entriesReleasable = areEntriesReleasable(entries);
103
+ if (entriesReleasable) {
104
104
  release = new Release(name, entries);
105
105
  }
106
106
  return release;
@@ -111,7 +111,7 @@ var Release = /*#__PURE__*/ function() {
111
111
  value: function fromProject(project) {
112
112
  var release = null, entries = project.getEntries();
113
113
  var entriesReleasable = areEntriesReleasable(entries);
114
- if (entriesReleasable()) {
114
+ if (entriesReleasable) {
115
115
  var name = project.getName(), releasedEntries = releaseEntries(entries);
116
116
  entries = releasedEntries; ///
117
117
  release = new Release(name, entries);
@@ -137,12 +137,12 @@ function areEntriesReleasable(entries) {
137
137
  var entriesReleasable = false;
138
138
  var files = entries.getFiles(), readmeFile = (0, _files.readmeFileFromFiles)(files), metaJSONFile = (0, _files.metaJSONFileFromFiles)(files);
139
139
  if (readmeFile !== null && metaJSONFile !== null) {
140
- var metaJSONNode = (0, _metaJSON.metaJSONNodeFromMetaJSONFile)(metaJSONFile);
141
- if (metaJSONNode !== null) {
140
+ var metaJSONFileValid = (0, _metaJSON.isMetaJSONFileValid)(metaJSONFile);
141
+ if (metaJSONFileValid !== null) {
142
142
  entriesReleasable = true;
143
143
  }
144
144
  }
145
145
  return entriesReleasable;
146
146
  }
147
147
 
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRmlsZSBmcm9tIFwiLi9maWxlXCI7XG5pbXBvcnQgRW50cmllcyBmcm9tIFwiLi9lbnRyaWVzXCI7XG5pbXBvcnQgZW50cmllc01peGlucyBmcm9tIFwiLi9taXhpbnMvZW50cmllc1wiO1xuXG5pbXBvcnQgeyBET1VCTEVfU1BBQ0UgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IG1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGUgfSBmcm9tIFwiLi91dGlsaXRpZXMvbWV0YUpTT05cIjtcbmltcG9ydCB7IHJlYWRtZUZpbGVGcm9tRmlsZXMsIG1ldGFKU09ORmlsZUZyb21GaWxlcyB9IGZyb20gXCIuL3V0aWxpdGllcy9maWxlc1wiO1xuXG5jbGFzcyBSZWxlYXNlIHtcbiAgY29uc3RydWN0b3IobmFtZSwgZW50cmllcykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5lbnRyaWVzID0gZW50cmllcztcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldEVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcztcbiAgfVxuXG4gIHVwZGF0ZVZlcnNpb24odmVyc2lvbikge1xuICAgIGxldCByZXBvc2l0b3J5ID0gdGhpcy5nZXRSZXBvc2l0b3J5KCksXG4gICAgICAgIGRlcGVuZGVuY2llcyA9IHRoaXMuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgICBjb25zdCB2ZXJzaW9uU3RyaW5nID0gdmVyc2lvbi50b1N0cmluZygpLFxuICAgICAgICAgIHJlcG9zaXRvcnlKU09OID0gcmVwb3NpdG9yeSwgIC8vL1xuICAgICAgICAgIGRlcGVuZGVuY2llc0pTT04gPSBkZXBlbmRlbmNpZXMudG9KU09OKCk7XG5cbiAgICB2ZXJzaW9uID0gdmVyc2lvblN0cmluZzsgIC8vL1xuICAgIHJlcG9zaXRvcnkgPSByZXBvc2l0b3J5SlNPTjsgIC8vL1xuICAgIGRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llc0pTT047ICAvLy9cblxuICAgIGNvbnN0IG1ldGFKU09ORmlsZSA9IHRoaXMuZ2V0TWV0YUpTT05GaWxlKCksXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHZlcnNpb24sXG4gICAgICAgICAgICByZXBvc2l0b3J5LFxuICAgICAgICAgICAgZGVwZW5kZW5jaWVzXG4gICAgICAgICAgfSxcbiAgICAgICAgICBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgRE9VQkxFX1NQQUNFKSxcbiAgICAgICAgICBmaWxlID0gbWV0YUpTT05GaWxlLCAgLy8vXG4gICAgICAgICAgY29udGVudCA9IGpzb25TdHJpbmc7IC8vL1xuXG4gICAgZmlsZS5zZXRDb250ZW50KGNvbnRlbnQpO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGVudHJpZXNKU09OID0gdGhpcy5lbnRyaWVzLnRvSlNPTigpLFxuICAgICAgICAgIG5hbWUgPSB0aGlzLm5hbWUsXG4gICAgICAgICAgZW50cmllcyA9IGVudHJpZXNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBlbnRyaWVzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBsZXQgeyBlbnRyaWVzIH0gPSBqc29uO1xuXG4gICAgY29uc3QgeyBuYW1lIH0gPSBqc29uLFxuICAgICAgICAgIGVudHJpZXNKU09OID0gZW50cmllczsgIC8vL1xuXG4gICAganNvbiA9IGVudHJpZXNKU09OOyAvLy9cblxuICAgIGVudHJpZXMgPSBFbnRyaWVzLmZyb21KU09OKGpzb24pOyAvLy9cblxuICAgIGNvbnN0IHJlbGVhc2UgPSBuZXcgUmVsZWFzZShuYW1lLCBlbnRyaWVzKTtcblxuICAgIHJldHVybiByZWxlYXNlO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKSB7XG4gICAgbGV0IHJlbGVhc2UgPSBudWxsO1xuXG4gICAgY29uc3QgZmlsZXNSZWxlYXNhYmxlID0gYXJlRW50cmllc1JlbGVhc2FibGUoZW50cmllcyk7XG5cbiAgICBpZiAoZmlsZXNSZWxlYXNhYmxlKSB7XG4gICAgICByZWxlYXNlID0gbmV3IFJlbGVhc2UobmFtZSwgZW50cmllcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlbGVhc2U7XG4gIH1cblxuICBzdGF0aWMgZnJvbVByb2plY3QocHJvamVjdCkge1xuICAgIGxldCByZWxlYXNlID0gbnVsbCxcbiAgICAgICAgZW50cmllcyA9IHByb2plY3QuZ2V0RW50cmllcygpO1xuXG4gICAgY29uc3QgZW50cmllc1JlbGVhc2FibGUgPSBhcmVFbnRyaWVzUmVsZWFzYWJsZShlbnRyaWVzKTtcblxuICAgIGlmIChlbnRyaWVzUmVsZWFzYWJsZSgpKSB7XG4gICAgICBjb25zdCBuYW1lID0gcHJvamVjdC5nZXROYW1lKCksXG4gICAgICAgICAgICByZWxlYXNlZEVudHJpZXMgPSByZWxlYXNlRW50cmllcyhlbnRyaWVzKTtcblxuICAgICAgZW50cmllcyA9IHJlbGVhc2VkRW50cmllczsgIC8vL1xuXG4gICAgICByZWxlYXNlID0gbmV3IFJlbGVhc2UobmFtZSwgZW50cmllcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlbGVhc2U7XG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihSZWxlYXNlLnByb3RvdHlwZSwgZW50cmllc01peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlbGVhc2U7XG5cbmZ1bmN0aW9uIHJlbGVhc2VFbnRyaWVzKGVudHJpZXMpIHtcbiAgY29uc3QgcmVsZWFzZWRFbnRyaWVzID0gRW50cmllcy5mcm9tTm90aGluZygpLCAgLy8vXG4gICAgICAgIGZpbGVzID0gZW50cmllcy5nZXRGaWxlcygpO1xuXG4gIGZpbGVzLmZvckVhY2hGaWxlKChmaWxlKSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxuICAgICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICByZWxlYXNlZCA9IHRydWU7XG5cbiAgICBmaWxlID0gRmlsZS5mcm9tUGF0aENvbnRlbnRBbmRSZWxlYXNlZChwYXRoLCBjb250ZW50LCByZWxlYXNlZCk7ICAvLy9cblxuICAgIHJlbGVhc2VkRW50cmllcy5hZGRGaWxlKGZpbGUpO1xuICB9KTtcblxuICByZXR1cm4gcmVsZWFzZWRFbnRyaWVzO1xufVxuXG5mdW5jdGlvbiBhcmVFbnRyaWVzUmVsZWFzYWJsZShlbnRyaWVzKSB7XG4gIGxldCBlbnRyaWVzUmVsZWFzYWJsZSA9IGZhbHNlO1xuXG4gIGNvbnN0IGZpbGVzID0gZW50cmllcy5nZXRGaWxlcygpLFxuICAgICAgICByZWFkbWVGaWxlID0gcmVhZG1lRmlsZUZyb21GaWxlcyhmaWxlcyksXG4gICAgICAgIG1ldGFKU09ORmlsZSA9IG1ldGFKU09ORmlsZUZyb21GaWxlcyhmaWxlcyk7XG5cbiAgaWYgKChyZWFkbWVGaWxlICE9PSBudWxsKSAmJiAobWV0YUpTT05GaWxlICE9PSBudWxsKSkge1xuICAgIGNvbnN0IG1ldGFKU09OTm9kZSA9IG1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGUobWV0YUpTT05GaWxlKTtcblxuICAgIGlmIChtZXRhSlNPTk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGVudHJpZXNSZWxlYXNhYmxlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZW50cmllc1JlbGVhc2FibGU7XG59XG4iXSwibmFtZXMiOlsiUmVsZWFzZSIsIm5hbWUiLCJlbnRyaWVzIiwiZ2V0TmFtZSIsImdldEVudHJpZXMiLCJ1cGRhdGVWZXJzaW9uIiwidmVyc2lvbiIsInJlcG9zaXRvcnkiLCJnZXRSZXBvc2l0b3J5IiwiZGVwZW5kZW5jaWVzIiwiZ2V0RGVwZW5kZW5jaWVzIiwidmVyc2lvblN0cmluZyIsInRvU3RyaW5nIiwicmVwb3NpdG9yeUpTT04iLCJkZXBlbmRlbmNpZXNKU09OIiwidG9KU09OIiwibWV0YUpTT05GaWxlIiwiZ2V0TWV0YUpTT05GaWxlIiwianNvbiIsImpzb25TdHJpbmciLCJKU09OIiwic3RyaW5naWZ5IiwiRE9VQkxFX1NQQUNFIiwiZmlsZSIsImNvbnRlbnQiLCJzZXRDb250ZW50IiwiZW50cmllc0pTT04iLCJmcm9tSlNPTiIsIkVudHJpZXMiLCJyZWxlYXNlIiwiZnJvbU5hbWVBbmRFbnRyaWVzIiwiZmlsZXNSZWxlYXNhYmxlIiwiYXJlRW50cmllc1JlbGVhc2FibGUiLCJmcm9tUHJvamVjdCIsInByb2plY3QiLCJlbnRyaWVzUmVsZWFzYWJsZSIsInJlbGVhc2VkRW50cmllcyIsInJlbGVhc2VFbnRyaWVzIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwiZW50cmllc01peGlucyIsImZyb21Ob3RoaW5nIiwiZmlsZXMiLCJnZXRGaWxlcyIsImZvckVhY2hGaWxlIiwicGF0aCIsImdldFBhdGgiLCJnZXRDb250ZW50IiwicmVsZWFzZWQiLCJGaWxlIiwiZnJvbVBhdGhDb250ZW50QW5kUmVsZWFzZWQiLCJhZGRGaWxlIiwicmVhZG1lRmlsZSIsInJlYWRtZUZpbGVGcm9tRmlsZXMiLCJtZXRhSlNPTkZpbGVGcm9tRmlsZXMiLCJtZXRhSlNPTk5vZGUiLCJtZXRhSlNPTk5vZGVGcm9tTWV0YUpTT05GaWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE2R0E7OztlQUFBOzs7eURBM0dpQjs0REFDRzs2REFDTTt5QkFFRzt3QkFDZ0I7cUJBQ2M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFM0QsSUFBQSxBQUFNQSx3QkFpR0gsQUFqR0g7YUFBTUEsUUFDUUMsSUFBSSxFQUFFQyxPQUFPOzhCQURyQkY7UUFFRixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLE9BQU8s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
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRmlsZSBmcm9tIFwiLi9maWxlXCI7XG5pbXBvcnQgRW50cmllcyBmcm9tIFwiLi9lbnRyaWVzXCI7XG5pbXBvcnQgZW50cmllc01peGlucyBmcm9tIFwiLi9taXhpbnMvZW50cmllc1wiO1xuXG5pbXBvcnQgeyBET1VCTEVfU1BBQ0UgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGlzTWV0YUpTT05GaWxlVmFsaWQgfSBmcm9tIFwiLi91dGlsaXRpZXMvbWV0YUpTT05cIjtcbmltcG9ydCB7IHJlYWRtZUZpbGVGcm9tRmlsZXMsIG1ldGFKU09ORmlsZUZyb21GaWxlcyB9IGZyb20gXCIuL3V0aWxpdGllcy9maWxlc1wiO1xuXG5jbGFzcyBSZWxlYXNlIHtcbiAgY29uc3RydWN0b3IobmFtZSwgZW50cmllcykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5lbnRyaWVzID0gZW50cmllcztcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldEVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcztcbiAgfVxuXG4gIHVwZGF0ZVZlcnNpb24odmVyc2lvbikge1xuICAgIGxldCByZXBvc2l0b3J5ID0gdGhpcy5nZXRSZXBvc2l0b3J5KCksXG4gICAgICAgIGRlcGVuZGVuY2llcyA9IHRoaXMuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgICBjb25zdCB2ZXJzaW9uU3RyaW5nID0gdmVyc2lvbi50b1N0cmluZygpLFxuICAgICAgICAgIHJlcG9zaXRvcnlKU09OID0gcmVwb3NpdG9yeSwgIC8vL1xuICAgICAgICAgIGRlcGVuZGVuY2llc0pTT04gPSBkZXBlbmRlbmNpZXMudG9KU09OKCk7XG5cbiAgICB2ZXJzaW9uID0gdmVyc2lvblN0cmluZzsgIC8vL1xuICAgIHJlcG9zaXRvcnkgPSByZXBvc2l0b3J5SlNPTjsgIC8vL1xuICAgIGRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llc0pTT047ICAvLy9cblxuICAgIGNvbnN0IG1ldGFKU09ORmlsZSA9IHRoaXMuZ2V0TWV0YUpTT05GaWxlKCksXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHZlcnNpb24sXG4gICAgICAgICAgICByZXBvc2l0b3J5LFxuICAgICAgICAgICAgZGVwZW5kZW5jaWVzXG4gICAgICAgICAgfSxcbiAgICAgICAgICBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgRE9VQkxFX1NQQUNFKSxcbiAgICAgICAgICBmaWxlID0gbWV0YUpTT05GaWxlLCAgLy8vXG4gICAgICAgICAgY29udGVudCA9IGpzb25TdHJpbmc7IC8vL1xuXG4gICAgZmlsZS5zZXRDb250ZW50KGNvbnRlbnQpO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGVudHJpZXNKU09OID0gdGhpcy5lbnRyaWVzLnRvSlNPTigpLFxuICAgICAgICAgIG5hbWUgPSB0aGlzLm5hbWUsXG4gICAgICAgICAgZW50cmllcyA9IGVudHJpZXNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBlbnRyaWVzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBsZXQgeyBlbnRyaWVzIH0gPSBqc29uO1xuXG4gICAgY29uc3QgeyBuYW1lIH0gPSBqc29uLFxuICAgICAgICAgIGVudHJpZXNKU09OID0gZW50cmllczsgIC8vL1xuXG4gICAganNvbiA9IGVudHJpZXNKU09OOyAvLy9cblxuICAgIGVudHJpZXMgPSBFbnRyaWVzLmZyb21KU09OKGpzb24pOyAvLy9cblxuICAgIGNvbnN0IHJlbGVhc2UgPSBuZXcgUmVsZWFzZShuYW1lLCBlbnRyaWVzKTtcblxuICAgIHJldHVybiByZWxlYXNlO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKSB7XG4gICAgbGV0IHJlbGVhc2UgPSBudWxsO1xuXG4gICAgY29uc3QgZW50cmllc1JlbGVhc2FibGUgPSBhcmVFbnRyaWVzUmVsZWFzYWJsZShlbnRyaWVzKTtcblxuICAgIGlmIChlbnRyaWVzUmVsZWFzYWJsZSkge1xuICAgICAgcmVsZWFzZSA9IG5ldyBSZWxlYXNlKG5hbWUsIGVudHJpZXMpO1xuICAgIH1cblxuICAgIHJldHVybiByZWxlYXNlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Qcm9qZWN0KHByb2plY3QpIHtcbiAgICBsZXQgcmVsZWFzZSA9IG51bGwsXG4gICAgICAgIGVudHJpZXMgPSBwcm9qZWN0LmdldEVudHJpZXMoKTtcblxuICAgIGNvbnN0IGVudHJpZXNSZWxlYXNhYmxlID0gYXJlRW50cmllc1JlbGVhc2FibGUoZW50cmllcyk7XG5cbiAgICBpZiAoZW50cmllc1JlbGVhc2FibGUpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBwcm9qZWN0LmdldE5hbWUoKSxcbiAgICAgICAgICAgIHJlbGVhc2VkRW50cmllcyA9IHJlbGVhc2VFbnRyaWVzKGVudHJpZXMpO1xuXG4gICAgICBlbnRyaWVzID0gcmVsZWFzZWRFbnRyaWVzOyAgLy8vXG5cbiAgICAgIHJlbGVhc2UgPSBuZXcgUmVsZWFzZShuYW1lLCBlbnRyaWVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVsZWFzZTtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKFJlbGVhc2UucHJvdG90eXBlLCBlbnRyaWVzTWl4aW5zKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVsZWFzZTtcblxuZnVuY3Rpb24gcmVsZWFzZUVudHJpZXMoZW50cmllcykge1xuICBjb25zdCByZWxlYXNlZEVudHJpZXMgPSBFbnRyaWVzLmZyb21Ob3RoaW5nKCksICAvLy9cbiAgICAgICAgZmlsZXMgPSBlbnRyaWVzLmdldEZpbGVzKCk7XG5cbiAgZmlsZXMuZm9yRWFjaEZpbGUoKGZpbGUpID0+IHtcbiAgICBjb25zdCBwYXRoID0gZmlsZS5nZXRQYXRoKCksXG4gICAgICAgICAgY29udGVudCA9IGZpbGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHJlbGVhc2VkID0gdHJ1ZTtcblxuICAgIGZpbGUgPSBGaWxlLmZyb21QYXRoQ29udGVudEFuZFJlbGVhc2VkKHBhdGgsIGNvbnRlbnQsIHJlbGVhc2VkKTsgIC8vL1xuXG4gICAgcmVsZWFzZWRFbnRyaWVzLmFkZEZpbGUoZmlsZSk7XG4gIH0pO1xuXG4gIHJldHVybiByZWxlYXNlZEVudHJpZXM7XG59XG5cbmZ1bmN0aW9uIGFyZUVudHJpZXNSZWxlYXNhYmxlKGVudHJpZXMpIHtcbiAgbGV0IGVudHJpZXNSZWxlYXNhYmxlID0gZmFsc2U7XG5cbiAgY29uc3QgZmlsZXMgPSBlbnRyaWVzLmdldEZpbGVzKCksXG4gICAgICAgIHJlYWRtZUZpbGUgPSByZWFkbWVGaWxlRnJvbUZpbGVzKGZpbGVzKSxcbiAgICAgICAgbWV0YUpTT05GaWxlID0gbWV0YUpTT05GaWxlRnJvbUZpbGVzKGZpbGVzKTtcblxuICBpZiAoKHJlYWRtZUZpbGUgIT09IG51bGwpICYmIChtZXRhSlNPTkZpbGUgIT09IG51bGwpKSB7XG4gICAgY29uc3QgbWV0YUpTT05GaWxlVmFsaWQgPSBpc01ldGFKU09ORmlsZVZhbGlkKG1ldGFKU09ORmlsZSk7XG5cbiAgICBpZiAobWV0YUpTT05GaWxlVmFsaWQgIT09IG51bGwpIHtcbiAgICAgIGVudHJpZXNSZWxlYXNhYmxlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZW50cmllc1JlbGVhc2FibGU7XG59XG4iXSwibmFtZXMiOlsiUmVsZWFzZSIsIm5hbWUiLCJlbnRyaWVzIiwiZ2V0TmFtZSIsImdldEVudHJpZXMiLCJ1cGRhdGVWZXJzaW9uIiwidmVyc2lvbiIsInJlcG9zaXRvcnkiLCJnZXRSZXBvc2l0b3J5IiwiZGVwZW5kZW5jaWVzIiwiZ2V0RGVwZW5kZW5jaWVzIiwidmVyc2lvblN0cmluZyIsInRvU3RyaW5nIiwicmVwb3NpdG9yeUpTT04iLCJkZXBlbmRlbmNpZXNKU09OIiwidG9KU09OIiwibWV0YUpTT05GaWxlIiwiZ2V0TWV0YUpTT05GaWxlIiwianNvbiIsImpzb25TdHJpbmciLCJKU09OIiwic3RyaW5naWZ5IiwiRE9VQkxFX1NQQUNFIiwiZmlsZSIsImNvbnRlbnQiLCJzZXRDb250ZW50IiwiZW50cmllc0pTT04iLCJmcm9tSlNPTiIsIkVudHJpZXMiLCJyZWxlYXNlIiwiZnJvbU5hbWVBbmRFbnRyaWVzIiwiZW50cmllc1JlbGVhc2FibGUiLCJhcmVFbnRyaWVzUmVsZWFzYWJsZSIsImZyb21Qcm9qZWN0IiwicHJvamVjdCIsInJlbGVhc2VkRW50cmllcyIsInJlbGVhc2VFbnRyaWVzIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwiZW50cmllc01peGlucyIsImZyb21Ob3RoaW5nIiwiZmlsZXMiLCJnZXRGaWxlcyIsImZvckVhY2hGaWxlIiwicGF0aCIsImdldFBhdGgiLCJnZXRDb250ZW50IiwicmVsZWFzZWQiLCJGaWxlIiwiZnJvbVBhdGhDb250ZW50QW5kUmVsZWFzZWQiLCJhZGRGaWxlIiwicmVhZG1lRmlsZSIsInJlYWRtZUZpbGVGcm9tRmlsZXMiLCJtZXRhSlNPTkZpbGVGcm9tRmlsZXMiLCJtZXRhSlNPTkZpbGVWYWxpZCIsImlzTWV0YUpTT05GaWxlVmFsaWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQTZHQTs7O2VBQUE7Ozt5REEzR2lCOzREQUNHOzZEQUNNO3lCQUVHO3dCQUNPO3FCQUN1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUzRCxJQUFBLEFBQU1BLHdCQWlHSCxBQWpHSDthQUFNQSxRQUNRQyxJQUFJLEVBQUVDLE9BQU87OEJBRHJCRjtRQUVGLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTs7aUJBSGJGOztZQU1KRyxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVTtnQkFDUixPQUFPLElBQUksQ0FBQ0YsSUFBSTtZQUNsQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxhQUFhO2dCQUNYLE9BQU8sSUFBSSxDQUFDRixPQUFPO1lBQ3JCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLGNBQWNDLE9BQU8sRUFBRTtnQkFDckIsSUFBSUMsYUFBYSxJQUFJLENBQUNDLGFBQWEsSUFDL0JDLGVBQWUsSUFBSSxDQUFDQyxlQUFlO2dCQUV2QyxJQUFNQyxnQkFBZ0JMLFFBQVFNLFFBQVEsSUFDaENDLGlCQUFpQk4sWUFDakJPLG1CQUFtQkwsYUFBYU0sTUFBTTtnQkFFNUNULFVBQVVLLGVBQWdCLEdBQUc7Z0JBQzdCSixhQUFhTSxnQkFBaUIsR0FBRztnQkFDakNKLGVBQWVLLGtCQUFtQixHQUFHO2dCQUVyQyxJQUFNRSxlQUFlLElBQUksQ0FBQ0MsZUFBZSxJQUNuQ0MsT0FBTztvQkFDTFosU0FBQUE7b0JBQ0FDLFlBQUFBO29CQUNBRSxjQUFBQTtnQkFDRixHQUNBVSxhQUFhQyxLQUFLQyxTQUFTLENBQUNILE1BQU0sSUFBSSxFQUFFSSx1QkFBWSxHQUNwREMsT0FBT1AsY0FDUFEsVUFBVUwsWUFBWSxHQUFHO2dCQUUvQkksS0FBS0UsVUFBVSxDQUFDRDtZQUNsQjs7O1lBRUFULEtBQUFBO21CQUFBQSxTQUFBQSxTQUFTO2dCQUNQLElBQU1XLGNBQWMsSUFBSSxDQUFDeEIsT0FBTyxDQUFDYSxNQUFNLElBQ2pDZCxPQUFPLElBQUksQ0FBQ0EsSUFBSSxFQUNoQkMsVUFBVXdCLGFBQ1ZSLE9BQU87b0JBQ0xqQixNQUFBQTtvQkFDQUMsU0FBQUE7Z0JBQ0Y7Z0JBRU4sT0FBT2dCO1lBQ1Q7Ozs7WUFFT1MsS0FBQUE7bUJBQVAsU0FBT0EsU0FBU1QsSUFBSSxFQUFFO2dCQUNwQixJQUFJLEFBQUVoQixVQUFZZ0IsS0FBWmhCO2dCQUVOLElBQU0sQUFBRUQsT0FBU2lCLEtBQVRqQixNQUNGeUIsY0FBY3hCLFNBQVUsR0FBRztnQkFFakNnQixPQUFPUSxhQUFhLEdBQUc7Z0JBRXZCeEIsVUFBVTBCLGdCQUFPLENBQUNELFFBQVEsQ0FBQ1QsT0FBTyxHQUFHO2dCQUVyQyxJQUFNVyxVQUFVLElBN0RkN0IsUUE2RDBCQyxNQUFNQztnQkFFbEMsT0FBTzJCO1lBQ1Q7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxtQkFBbUI3QixJQUFJLEVBQUVDLE9BQU8sRUFBRTtnQkFDdkMsSUFBSTJCLFVBQVUsSUFBSTtnQkFFbEIsSUFBTUUsb0JBQW9CQyxxQkFBcUI5QjtnQkFFL0MsSUFBSTZCLG1CQUFtQjtvQkFDckJGLFVBQVUsSUF4RVY3QixRQXdFc0JDLE1BQU1DO2dCQUM5QixDQUFDO2dCQUVELE9BQU8yQjtZQUNUOzs7WUFFT0ksS0FBQUE7bUJBQVAsU0FBT0EsWUFBWUMsT0FBTyxFQUFFO2dCQUMxQixJQUFJTCxVQUFVLElBQUksRUFDZDNCLFVBQVVnQyxRQUFROUIsVUFBVTtnQkFFaEMsSUFBTTJCLG9CQUFvQkMscUJBQXFCOUI7Z0JBRS9DLElBQUk2QixtQkFBbUI7b0JBQ3JCLElBQU05QixPQUFPaUMsUUFBUS9CLE9BQU8sSUFDdEJnQyxrQkFBa0JDLGVBQWVsQztvQkFFdkNBLFVBQVVpQyxpQkFBa0IsR0FBRztvQkFFL0JOLFVBQVUsSUExRlY3QixRQTBGc0JDLE1BQU1DO2dCQUM5QixDQUFDO2dCQUVELE9BQU8yQjtZQUNUOzs7V0E5Rkk3Qjs7QUFpR05xQyxPQUFPQyxNQUFNLENBQUN0QyxRQUFRdUMsU0FBUyxFQUFFQyxpQkFBYTtJQUU5QyxXQUFleEM7QUFFZixTQUFTb0MsZUFBZWxDLE9BQU8sRUFBRTtJQUMvQixJQUFNaUMsa0JBQWtCUCxnQkFBTyxDQUFDYSxXQUFXLElBQ3JDQyxRQUFReEMsUUFBUXlDLFFBQVE7SUFFOUJELE1BQU1FLFdBQVcsQ0FBQyxTQUFDckIsTUFBUztRQUMxQixJQUFNc0IsT0FBT3RCLEtBQUt1QixPQUFPLElBQ25CdEIsVUFBVUQsS0FBS3dCLFVBQVUsSUFDekJDLFdBQVcsSUFBSTtRQUVyQnpCLE9BQU8wQixhQUFJLENBQUNDLDBCQUEwQixDQUFDTCxNQUFNckIsU0FBU3dCLFdBQVksR0FBRztRQUVyRWIsZ0JBQWdCZ0IsT0FBTyxDQUFDNUI7SUFDMUI7SUFFQSxPQUFPWTtBQUNUO0FBRUEsU0FBU0gscUJBQXFCOUIsT0FBTyxFQUFFO0lBQ3JDLElBQUk2QixvQkFBb0IsS0FBSztJQUU3QixJQUFNVyxRQUFReEMsUUFBUXlDLFFBQVEsSUFDeEJTLGFBQWFDLElBQUFBLDBCQUFtQixFQUFDWCxRQUNqQzFCLGVBQWVzQyxJQUFBQSw0QkFBcUIsRUFBQ1o7SUFFM0MsSUFBSSxBQUFDVSxlQUFlLElBQUksSUFBTXBDLGlCQUFpQixJQUFJLEVBQUc7UUFDcEQsSUFBTXVDLG9CQUFvQkMsSUFBQUEsNkJBQW1CLEVBQUN4QztRQUU5QyxJQUFJdUMsc0JBQXNCLElBQUksRUFBRTtZQUM5QnhCLG9CQUFvQixJQUFJO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBT0E7QUFDVCJ9
@@ -15,6 +15,9 @@ _export(exports, {
15
15
  repositoryFromNode: function() {
16
16
  return repositoryFromNode;
17
17
  },
18
+ isMetaJSONFileValid: function() {
19
+ return isMetaJSONFileValid;
20
+ },
18
21
  dependenciesFromNode: function() {
19
22
  return dependenciesFromNode;
20
23
  },
@@ -44,7 +47,7 @@ function _interopRequireDefault(obj) {
44
47
  default: obj
45
48
  };
46
49
  }
47
- var metaJSONLexer = _occamGrammars.MetaJSONLexer.fromNothing(), metaJSONParser = _occamGrammars.MetaJSONParser.fromNothing(), dependencyNodesQuery = (0, _query.nodesQuery)("//dependencies/dependency"), repositoryTerminalNodeQuery = (0, _query.nodeQuery)("//repository!/@*!"), versionNumberTerminalNodeQuery = (0, _query.nodeQuery)("//version!/versionNumber!/@*!"), dependencyNameTerminalNodeQuery = (0, _query.nodeQuery)("/dependency/name!/@*!"), shortenedVersionNumberTerminalNodeQuery = (0, _query.nodeQuery)("//dependency/shortenedVersionNumber/@*!");
50
+ var metaJSONLexer = _occamGrammars.MetaJSONLexer.fromNothing(), metaJSONParser = _occamGrammars.MetaJSONParser.fromNothing(), errorNodesQuery = (0, _query.nodesQuery)("//error"), dependencyNodesQuery = (0, _query.nodesQuery)("//dependencies/dependency"), repositoryTerminalNodeQuery = (0, _query.nodeQuery)("//repository!/@*!"), versionNumberTerminalNodeQuery = (0, _query.nodeQuery)("//version!/versionNumber!/@*!"), dependencyNameTerminalNodeQuery = (0, _query.nodeQuery)("/dependency/name!/@*!"), shortenedVersionNumberTerminalNodeQuery = (0, _query.nodeQuery)("//dependency/shortenedVersionNumber/@*!");
48
51
  function versionFromNode(node) {
49
52
  var version = null;
50
53
  if (node !== null) {
@@ -61,6 +64,17 @@ function repositoryFromNode(node) {
61
64
  }
62
65
  return repository;
63
66
  }
67
+ function isMetaJSONFileValid(metaJSONFile) {
68
+ var metaJSONFileValid = false;
69
+ var metaJSONNode = metaJSONNodeFromMetaJSONFile(metaJSONFile);
70
+ if (metaJSONNode !== null) {
71
+ var node = metaJSONNode, errorNodes = errorNodesQuery(node), errorNodesLength = errorNodes.length;
72
+ if (errorNodesLength === 0) {
73
+ metaJSONFileValid = true;
74
+ }
75
+ }
76
+ return metaJSONFileValid;
77
+ }
64
78
  function dependenciesFromNode(node) {
65
79
  var dependencies = _dependencies.default.fromNothing();
66
80
  if (node !== null) {
@@ -103,10 +117,11 @@ function metaJSONNodeFromMetaJSONFile(metaJSONFile) {
103
117
  var _default = {
104
118
  versionFromNode: versionFromNode,
105
119
  repositoryFromNode: repositoryFromNode,
120
+ isMetaJSONFileValid: isMetaJSONFileValid,
106
121
  dependenciesFromNode: dependenciesFromNode,
107
122
  dependencyNamesFromNode: dependencyNamesFromNode,
108
123
  updateMetaJSONFileVersion: updateMetaJSONFileVersion,
109
124
  metaJSONNodeFromMetaJSONFile: metaJSONNodeFromMetaJSONFile
110
125
  };
111
126
 
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWV0YUpTT04uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IE1ldGFKU09OTGV4ZXIsIE1ldGFKU09OUGFyc2VyIH0gZnJvbSBcIm9jY2FtLWdyYW1tYXJzXCI7XG5cbmltcG9ydCBWZXJzaW9uIGZyb20gXCIuLi92ZXJzaW9uXCI7XG5pbXBvcnQgRGVwZW5kZW5jeSBmcm9tIFwiLi4vZGVwZW5kZW5jeVwiO1xuaW1wb3J0IERlcGVuZGVuY2llcyBmcm9tIFwiLi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgU2hvcnRlbmVkVmVyc2lvbiBmcm9tIFwiLi4vc2hvcnRlbmVkVmVyc2lvblwiO1xuXG5pbXBvcnQgeyBET1VCTEVfU1BBQ0UgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB0cmltRG91YmxlUXVvdGVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZW50XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IG1ldGFKU09OTGV4ZXIgPSBNZXRhSlNPTkxleGVyLmZyb21Ob3RoaW5nKCksXG4gICAgICBtZXRhSlNPTlBhcnNlciA9IE1ldGFKU09OUGFyc2VyLmZyb21Ob3RoaW5nKCksXG4gICAgICBkZXBlbmRlbmN5Tm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvL2RlcGVuZGVuY2llcy9kZXBlbmRlbmN5XCIpLFxuICAgICAgcmVwb3NpdG9yeVRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiLy9yZXBvc2l0b3J5IS9AKiFcIiksXG4gICAgICB2ZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvL3ZlcnNpb24hL3ZlcnNpb25OdW1iZXIhL0AqIVwiKSxcbiAgICAgIGRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZGVwZW5kZW5jeS9uYW1lIS9AKiFcIiksXG4gICAgICBzaG9ydGVuZWRWZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvL2RlcGVuZGVuY3kvc2hvcnRlbmVkVmVyc2lvbk51bWJlci9AKiFcIik7XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJzaW9uRnJvbU5vZGUobm9kZSkge1xuICBsZXQgdmVyc2lvbiA9IG51bGw7XG5cbiAgaWYgKG5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB2ZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlID0gdmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZVF1ZXJ5KG5vZGUpLFxuICAgICAgICAgIHZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVDb250ZW50ID0gdmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgc3RyaW5nID0gdHJpbURvdWJsZVF1b3Rlcyh2ZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlQ29udGVudCk7IC8vXG5cbiAgICB2ZXJzaW9uID0gVmVyc2lvbi5mcm9tU3RyaW5nKHN0cmluZyk7XG4gIH1cblxuICByZXR1cm4gdmVyc2lvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcG9zaXRvcnlGcm9tTm9kZShub2RlKSB7XG4gIGxldCByZXBvc2l0b3J5ID0gbnVsbDtcblxuICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHJlcG9zaXRvcnlUZXJtaW5hbE5vZGUgPSByZXBvc2l0b3J5VGVybWluYWxOb2RlUXVlcnkobm9kZSksXG4gICAgICAgICAgcmVwb3NpdG9yeVRlcm1pbmFsTm9kZUNvbnRlbnQgPSByZXBvc2l0b3J5VGVybWluYWxOb2RlLmdldENvbnRlbnQoKTtcblxuICAgIHJlcG9zaXRvcnkgPSB0cmltRG91YmxlUXVvdGVzKHJlcG9zaXRvcnlUZXJtaW5hbE5vZGVDb250ZW50KTsgLy9cbiAgfVxuXG4gIHJldHVybiByZXBvc2l0b3J5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVwZW5kZW5jaWVzRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSBEZXBlbmRlbmNpZXMuZnJvbU5vdGhpbmcoKTtcblxuICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGRlcGVuZGVuY3lOb2RlcyA9IGRlcGVuZGVuY3lOb2Rlc1F1ZXJ5KG5vZGUpO1xuXG4gICAgZGVwZW5kZW5jeU5vZGVzLmZvckVhY2goKGRlcGVuZGVuY3lOb2RlKSA9PiB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5TmFtZVRlcm1pbmFsTm9kZSA9IGRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlUXVlcnkoZGVwZW5kZW5jeU5vZGUpLFxuICAgICAgICAgICAgc2hvcnRlbmVkVmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZSA9IHNob3J0ZW5lZFZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVRdWVyeShkZXBlbmRlbmN5Tm9kZSksXG4gICAgICAgICAgICBkZXBlbmRlbmN5TmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQgPSBkZXBlbmRlbmN5TmFtZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgICBzaG9ydGVuZWRWZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlQ29udGVudCA9IHNob3J0ZW5lZFZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgICAgc3RyaW5nID0gdHJpbURvdWJsZVF1b3RlcyhzaG9ydGVuZWRWZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlQ29udGVudCksICAvLy9cbiAgICAgICAgICAgIG5hbWUgPSB0cmltRG91YmxlUXVvdGVzKGRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlQ29udGVudCksLy8vXG4gICAgICAgICAgICBzaG9ydGVuZWRWZXJzaW9uID0gU2hvcnRlbmVkVmVyc2lvbi5mcm9tU3RyaW5nKHN0cmluZyksXG4gICAgICAgICAgICBkZXBlbmRlbmN5ID0gRGVwZW5kZW5jeS5mcm9tTmFtZUFuZFNob3J0ZW5lZFZlcnNpb24obmFtZSwgc2hvcnRlbmVkVmVyc2lvbik7XG5cbiAgICAgIGRlcGVuZGVuY2llcy5hZGREZXBlbmRlbmN5KGRlcGVuZGVuY3kpO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGRlcGVuZGVuY2llcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcGVuZGVuY3lOYW1lc0Zyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gZGVwZW5kZW5jaWVzRnJvbU5vZGUobm9kZSksXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lcyA9IGRlcGVuZGVuY2llcy5tYXBEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKTtcblxuICAgICAgICAgIHJldHVybiBkZXBlbmRlbmN5TmFtZTtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIGRlcGVuZGVuY3lOYW1lcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZU1ldGFKU09ORmlsZVZlcnNpb24obWV0YUpTT05GaWxlLCB2ZXJzaW9uKSB7XG4gIGNvbnN0IG1ldGFKU09OTm9kZSA9IG1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGUobWV0YUpTT05GaWxlKSxcbiAgICAgICAgbm9kZSA9IG1ldGFKU09OTm9kZSwgIC8vL1xuICAgICAgICByZXBvc2l0b3J5ID0gcmVwb3NpdG9yeUZyb21Ob2RlKG5vZGUpO1xuXG4gIGxldCBkZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXNGcm9tTm9kZShub2RlKTtcblxuICBjb25zdCBzdHJpbmcgPSB2ZXJzaW9uLnRvU3RyaW5nKCksXG4gICAgICBkZXBlbmRlbmNpZXNKU09OID0gZGVwZW5kZW5jaWVzLnRvSlNPTigpO1xuXG4gIHZlcnNpb24gPSBzdHJpbmc7ICAvLy9cblxuICBkZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXNKU09OOyAgLy8vXG5cbiAgY29uc3QgbWV0YUpTT04gPSB7XG4gICAgICAgICAgdmVyc2lvbixcbiAgICAgICAgICByZXBvc2l0b3J5LFxuICAgICAgICAgIGRlcGVuZGVuY2llc1xuICAgICAgICB9LFxuICAgICAgICBtZXRhSlNPTlN0cmluZyA9IEpTT04uc3RyaW5naWZ5KG1ldGFKU09OLCBudWxsLCBET1VCTEVfU1BBQ0UpLFxuICAgICAgICBtZXRhSlNPTkZpbGVDb250ZW50ID0gbWV0YUpTT05TdHJpbmc7IC8vL1xuXG4gIG1ldGFKU09ORmlsZS5zZXRDb250ZW50KG1ldGFKU09ORmlsZUNvbnRlbnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YUpTT05Ob2RlRnJvbU1ldGFKU09ORmlsZShtZXRhSlNPTkZpbGUpIHtcbiAgbGV0IG1ldGFKU09OTm9kZSA9IG51bGw7XG5cbiAgaWYgKG1ldGFKU09ORmlsZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBtZXRhSlNPTkZpbGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHRva2VucyA9IG1ldGFKU09OTGV4ZXIudG9rZW5pc2UoY29udGVudCksXG4gICAgICAgICAgbm9kZSA9IG1ldGFKU09OUGFyc2VyLnBhcnNlKHRva2Vucyk7XG5cbiAgICBtZXRhSlNPTk5vZGUgPSBub2RlOyAgLy8vXG4gIH1cblxuICByZXR1cm4gbWV0YUpTT05Ob2RlO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHZlcnNpb25Gcm9tTm9kZSxcbiAgcmVwb3NpdG9yeUZyb21Ob2RlLFxuICBkZXBlbmRlbmNpZXNGcm9tTm9kZSxcbiAgZGVwZW5kZW5jeU5hbWVzRnJvbU5vZGUsXG4gIHVwZGF0ZU1ldGFKU09ORmlsZVZlcnNpb24sXG4gIG1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGVcbn07XG4iXSwibmFtZXMiOlsidmVyc2lvbkZyb21Ob2RlIiwicmVwb3NpdG9yeUZyb21Ob2RlIiwiZGVwZW5kZW5jaWVzRnJvbU5vZGUiLCJkZXBlbmRlbmN5TmFtZXNGcm9tTm9kZSIsInVwZGF0ZU1ldGFKU09ORmlsZVZlcnNpb24iLCJtZXRhSlNPTk5vZGVGcm9tTWV0YUpTT05GaWxlIiwibWV0YUpTT05MZXhlciIsIk1ldGFKU09OTGV4ZXIiLCJmcm9tTm90aGluZyIsIm1ldGFKU09OUGFyc2VyIiwiTWV0YUpTT05QYXJzZXIiLCJkZXBlbmRlbmN5Tm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJyZXBvc2l0b3J5VGVybWluYWxOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2ZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlUXVlcnkiLCJkZXBlbmRlbmN5TmFtZVRlcm1pbmFsTm9kZVF1ZXJ5Iiwic2hvcnRlbmVkVmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZVF1ZXJ5Iiwibm9kZSIsInZlcnNpb24iLCJ2ZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlIiwidmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZUNvbnRlbnQiLCJnZXRDb250ZW50Iiwic3RyaW5nIiwidHJpbURvdWJsZVF1b3RlcyIsIlZlcnNpb24iLCJmcm9tU3RyaW5nIiwicmVwb3NpdG9yeSIsInJlcG9zaXRvcnlUZXJtaW5hbE5vZGUiLCJyZXBvc2l0b3J5VGVybWluYWxOb2RlQ29udGVudCIsImRlcGVuZGVuY2llcyIsIkRlcGVuZGVuY2llcyIsImRlcGVuZGVuY3lOb2RlcyIsImZvckVhY2giLCJkZXBlbmRlbmN5Tm9kZSIsImRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlIiwic2hvcnRlbmVkVmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZSIsImRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlQ29udGVudCIsInNob3J0ZW5lZFZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVDb250ZW50IiwibmFtZSIsInNob3J0ZW5lZFZlcnNpb24iLCJTaG9ydGVuZWRWZXJzaW9uIiwiZGVwZW5kZW5jeSIsIkRlcGVuZGVuY3kiLCJmcm9tTmFtZUFuZFNob3J0ZW5lZFZlcnNpb24iLCJhZGREZXBlbmRlbmN5IiwiZGVwZW5kZW5jeU5hbWVzIiwibWFwRGVwZW5kZW5jeSIsImRlcGVuZGVuY3lOYW1lIiwiZ2V0TmFtZSIsIm1ldGFKU09ORmlsZSIsIm1ldGFKU09OTm9kZSIsInRvU3RyaW5nIiwiZGVwZW5kZW5jaWVzSlNPTiIsInRvSlNPTiIsIm1ldGFKU09OIiwibWV0YUpTT05TdHJpbmciLCJKU09OIiwic3RyaW5naWZ5IiwiRE9VQkxFX1NQQUNFIiwibWV0YUpTT05GaWxlQ29udGVudCIsInNldENvbnRlbnQiLCJjb250ZW50IiwidG9rZW5zIiwidG9rZW5pc2UiLCJwYXJzZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBcUJnQkEsZUFBZTtlQUFmQTs7SUFjQUMsa0JBQWtCO2VBQWxCQTs7SUFhQUMsb0JBQW9CO2VBQXBCQTs7SUF1QkFDLHVCQUF1QjtlQUF2QkE7O0lBV0FDLHlCQUF5QjtlQUF6QkE7O0lBeUJBQyw0QkFBNEI7ZUFBNUJBOztJQWNoQixPQU9FO2VBUEY7Ozs2QkF2SDhDOzREQUUxQjsrREFDRztpRUFDRTtxRUFDSTt5QkFFQTt1QkFDSTtxQkFDSzs7Ozs7O0FBRXRDLElBQU1DLGdCQUFnQkMsNEJBQWEsQ0FBQ0MsV0FBVyxJQUN6Q0MsaUJBQWlCQyw2QkFBYyxDQUFDRixXQUFXLElBQzNDRyx1QkFBdUJDLElBQUFBLGlCQUFVLEVBQUMsOEJBQ2xDQyw4QkFBOEJDLElBQUFBLGdCQUFTLEVBQUMsc0JBQ3hDQyxpQ0FBaUNELElBQUFBLGdCQUFTLEVBQUMsa0NBQzNDRSxrQ0FBa0NGLElBQUFBLGdCQUFTLEVBQUMsMEJBQzVDRywwQ0FBMENILElBQUFBLGdCQUFTLEVBQUM7QUFFbkQsU0FBU2QsZ0JBQWdCa0IsSUFBSSxFQUFFO0lBQ3BDLElBQUlDLFVBQVUsSUFBSTtJQUVsQixJQUFJRCxTQUFTLElBQUksRUFBRTtRQUNqQixJQUFNRSw0QkFBNEJMLCtCQUErQkcsT0FDM0RHLG1DQUFtQ0QsMEJBQTBCRSxVQUFVLElBQ3ZFQyxTQUFTQyxJQUFBQSx5QkFBZ0IsRUFBQ0gsbUNBQW1DLEVBQUU7UUFFckVGLFVBQVVNLGdCQUFPLENB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
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWV0YUpTT04uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IE1ldGFKU09OTGV4ZXIsIE1ldGFKU09OUGFyc2VyIH0gZnJvbSBcIm9jY2FtLWdyYW1tYXJzXCI7XG5cbmltcG9ydCBWZXJzaW9uIGZyb20gXCIuLi92ZXJzaW9uXCI7XG5pbXBvcnQgRGVwZW5kZW5jeSBmcm9tIFwiLi4vZGVwZW5kZW5jeVwiO1xuaW1wb3J0IERlcGVuZGVuY2llcyBmcm9tIFwiLi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgU2hvcnRlbmVkVmVyc2lvbiBmcm9tIFwiLi4vc2hvcnRlbmVkVmVyc2lvblwiO1xuXG5pbXBvcnQgeyBET1VCTEVfU1BBQ0UgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB0cmltRG91YmxlUXVvdGVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZW50XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IG1ldGFKU09OTGV4ZXIgPSBNZXRhSlNPTkxleGVyLmZyb21Ob3RoaW5nKCksXG4gICAgICBtZXRhSlNPTlBhcnNlciA9IE1ldGFKU09OUGFyc2VyLmZyb21Ob3RoaW5nKCksXG4gICAgICBlcnJvck5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiLy9lcnJvclwiKSxcbiAgICAgIGRlcGVuZGVuY3lOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi8vZGVwZW5kZW5jaWVzL2RlcGVuZGVuY3lcIiksXG4gICAgICByZXBvc2l0b3J5VGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvL3JlcG9zaXRvcnkhL0AqIVwiKSxcbiAgICAgIHZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi8vdmVyc2lvbiEvdmVyc2lvbk51bWJlciEvQCohXCIpLFxuICAgICAgZGVwZW5kZW5jeU5hbWVUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9kZXBlbmRlbmN5L25hbWUhL0AqIVwiKSxcbiAgICAgIHNob3J0ZW5lZFZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi8vZGVwZW5kZW5jeS9zaG9ydGVuZWRWZXJzaW9uTnVtYmVyL0AqIVwiKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZlcnNpb25Gcm9tTm9kZShub2RlKSB7XG4gIGxldCB2ZXJzaW9uID0gbnVsbDtcblxuICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGUgPSB2ZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlUXVlcnkobm9kZSksXG4gICAgICAgICAgdmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZUNvbnRlbnQgPSB2ZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICBzdHJpbmcgPSB0cmltRG91YmxlUXVvdGVzKHZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVDb250ZW50KTsgLy9cblxuICAgIHZlcnNpb24gPSBWZXJzaW9uLmZyb21TdHJpbmcoc3RyaW5nKTtcbiAgfVxuXG4gIHJldHVybiB2ZXJzaW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVwb3NpdG9yeUZyb21Ob2RlKG5vZGUpIHtcbiAgbGV0IHJlcG9zaXRvcnkgPSBudWxsO1xuXG4gIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmVwb3NpdG9yeVRlcm1pbmFsTm9kZSA9IHJlcG9zaXRvcnlUZXJtaW5hbE5vZGVRdWVyeShub2RlKSxcbiAgICAgICAgICByZXBvc2l0b3J5VGVybWluYWxOb2RlQ29udGVudCA9IHJlcG9zaXRvcnlUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpO1xuXG4gICAgcmVwb3NpdG9yeSA9IHRyaW1Eb3VibGVRdW90ZXMocmVwb3NpdG9yeVRlcm1pbmFsTm9kZUNvbnRlbnQpOyAvL1xuICB9XG5cbiAgcmV0dXJuIHJlcG9zaXRvcnk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc01ldGFKU09ORmlsZVZhbGlkKG1ldGFKU09ORmlsZSkge1xuICBsZXQgbWV0YUpTT05GaWxlVmFsaWQgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhSlNPTk5vZGUgPSBtZXRhSlNPTk5vZGVGcm9tTWV0YUpTT05GaWxlKG1ldGFKU09ORmlsZSk7XG5cbiAgaWYgKG1ldGFKU09OTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG5vZGUgPSBtZXRhSlNPTk5vZGUsICAvLy9cbiAgICAgICAgICBlcnJvck5vZGVzID0gZXJyb3JOb2Rlc1F1ZXJ5KG5vZGUpLFxuICAgICAgICAgIGVycm9yTm9kZXNMZW5ndGggPSBlcnJvck5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChlcnJvck5vZGVzTGVuZ3RoID09PSAwKSB7XG4gICAgICBtZXRhSlNPTkZpbGVWYWxpZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1ldGFKU09ORmlsZVZhbGlkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVwZW5kZW5jaWVzRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSBEZXBlbmRlbmNpZXMuZnJvbU5vdGhpbmcoKTtcblxuICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGRlcGVuZGVuY3lOb2RlcyA9IGRlcGVuZGVuY3lOb2Rlc1F1ZXJ5KG5vZGUpO1xuXG4gICAgZGVwZW5kZW5jeU5vZGVzLmZvckVhY2goKGRlcGVuZGVuY3lOb2RlKSA9PiB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5TmFtZVRlcm1pbmFsTm9kZSA9IGRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlUXVlcnkoZGVwZW5kZW5jeU5vZGUpLFxuICAgICAgICAgICAgc2hvcnRlbmVkVmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZSA9IHNob3J0ZW5lZFZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVRdWVyeShkZXBlbmRlbmN5Tm9kZSksXG4gICAgICAgICAgICBkZXBlbmRlbmN5TmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQgPSBkZXBlbmRlbmN5TmFtZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgICBzaG9ydGVuZWRWZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlQ29udGVudCA9IHNob3J0ZW5lZFZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgICAgc3RyaW5nID0gdHJpbURvdWJsZVF1b3RlcyhzaG9ydGVuZWRWZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlQ29udGVudCksICAvLy9cbiAgICAgICAgICAgIG5hbWUgPSB0cmltRG91YmxlUXVvdGVzKGRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlQ29udGVudCksLy8vXG4gICAgICAgICAgICBzaG9ydGVuZWRWZXJzaW9uID0gU2hvcnRlbmVkVmVyc2lvbi5mcm9tU3RyaW5nKHN0cmluZyksXG4gICAgICAgICAgICBkZXBlbmRlbmN5ID0gRGVwZW5kZW5jeS5mcm9tTmFtZUFuZFNob3J0ZW5lZFZlcnNpb24obmFtZSwgc2hvcnRlbmVkVmVyc2lvbik7XG5cbiAgICAgIGRlcGVuZGVuY2llcy5hZGREZXBlbmRlbmN5KGRlcGVuZGVuY3kpO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGRlcGVuZGVuY2llcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcGVuZGVuY3lOYW1lc0Zyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gZGVwZW5kZW5jaWVzRnJvbU5vZGUobm9kZSksXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lcyA9IGRlcGVuZGVuY2llcy5tYXBEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKTtcblxuICAgICAgICAgIHJldHVybiBkZXBlbmRlbmN5TmFtZTtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIGRlcGVuZGVuY3lOYW1lcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZU1ldGFKU09ORmlsZVZlcnNpb24obWV0YUpTT05GaWxlLCB2ZXJzaW9uKSB7XG4gIGNvbnN0IG1ldGFKU09OTm9kZSA9IG1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGUobWV0YUpTT05GaWxlKSxcbiAgICAgICAgbm9kZSA9IG1ldGFKU09OTm9kZSwgIC8vL1xuICAgICAgICByZXBvc2l0b3J5ID0gcmVwb3NpdG9yeUZyb21Ob2RlKG5vZGUpO1xuXG4gIGxldCBkZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXNGcm9tTm9kZShub2RlKTtcblxuICBjb25zdCBzdHJpbmcgPSB2ZXJzaW9uLnRvU3RyaW5nKCksXG4gICAgICBkZXBlbmRlbmNpZXNKU09OID0gZGVwZW5kZW5jaWVzLnRvSlNPTigpO1xuXG4gIHZlcnNpb24gPSBzdHJpbmc7ICAvLy9cblxuICBkZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXNKU09OOyAgLy8vXG5cbiAgY29uc3QgbWV0YUpTT04gPSB7XG4gICAgICAgICAgdmVyc2lvbixcbiAgICAgICAgICByZXBvc2l0b3J5LFxuICAgICAgICAgIGRlcGVuZGVuY2llc1xuICAgICAgICB9LFxuICAgICAgICBtZXRhSlNPTlN0cmluZyA9IEpTT04uc3RyaW5naWZ5KG1ldGFKU09OLCBudWxsLCBET1VCTEVfU1BBQ0UpLFxuICAgICAgICBtZXRhSlNPTkZpbGVDb250ZW50ID0gbWV0YUpTT05TdHJpbmc7IC8vL1xuXG4gIG1ldGFKU09ORmlsZS5zZXRDb250ZW50KG1ldGFKU09ORmlsZUNvbnRlbnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YUpTT05Ob2RlRnJvbU1ldGFKU09ORmlsZShtZXRhSlNPTkZpbGUpIHtcbiAgbGV0IG1ldGFKU09OTm9kZSA9IG51bGw7XG5cbiAgaWYgKG1ldGFKU09ORmlsZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBtZXRhSlNPTkZpbGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHRva2VucyA9IG1ldGFKU09OTGV4ZXIudG9rZW5pc2UoY29udGVudCksXG4gICAgICAgICAgbm9kZSA9IG1ldGFKU09OUGFyc2VyLnBhcnNlKHRva2Vucyk7XG5cbiAgICBtZXRhSlNPTk5vZGUgPSBub2RlOyAgLy8vXG4gIH1cblxuICByZXR1cm4gbWV0YUpTT05Ob2RlO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHZlcnNpb25Gcm9tTm9kZSxcbiAgcmVwb3NpdG9yeUZyb21Ob2RlLFxuICBpc01ldGFKU09ORmlsZVZhbGlkLFxuICBkZXBlbmRlbmNpZXNGcm9tTm9kZSxcbiAgZGVwZW5kZW5jeU5hbWVzRnJvbU5vZGUsXG4gIHVwZGF0ZU1ldGFKU09ORmlsZVZlcnNpb24sXG4gIG1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGVcbn07XG4iXSwibmFtZXMiOlsidmVyc2lvbkZyb21Ob2RlIiwicmVwb3NpdG9yeUZyb21Ob2RlIiwiaXNNZXRhSlNPTkZpbGVWYWxpZCIsImRlcGVuZGVuY2llc0Zyb21Ob2RlIiwiZGVwZW5kZW5jeU5hbWVzRnJvbU5vZGUiLCJ1cGRhdGVNZXRhSlNPTkZpbGVWZXJzaW9uIiwibWV0YUpTT05Ob2RlRnJvbU1ldGFKU09ORmlsZSIsIm1ldGFKU09OTGV4ZXIiLCJNZXRhSlNPTkxleGVyIiwiZnJvbU5vdGhpbmciLCJtZXRhSlNPTlBhcnNlciIsIk1ldGFKU09OUGFyc2VyIiwiZXJyb3JOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsImRlcGVuZGVuY3lOb2Rlc1F1ZXJ5IiwicmVwb3NpdG9yeVRlcm1pbmFsTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZVF1ZXJ5IiwiZGVwZW5kZW5jeU5hbWVUZXJtaW5hbE5vZGVRdWVyeSIsInNob3J0ZW5lZFZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVRdWVyeSIsIm5vZGUiLCJ2ZXJzaW9uIiwidmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZSIsInZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVDb250ZW50IiwiZ2V0Q29udGVudCIsInN0cmluZyIsInRyaW1Eb3VibGVRdW90ZXMiLCJWZXJzaW9uIiwiZnJvbVN0cmluZyIsInJlcG9zaXRvcnkiLCJyZXBvc2l0b3J5VGVybWluYWxOb2RlIiwicmVwb3NpdG9yeVRlcm1pbmFsTm9kZUNvbnRlbnQiLCJtZXRhSlNPTkZpbGUiLCJtZXRhSlNPTkZpbGVWYWxpZCIsIm1ldGFKU09OTm9kZSIsImVycm9yTm9kZXMiLCJlcnJvck5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwiZGVwZW5kZW5jaWVzIiwiRGVwZW5kZW5jaWVzIiwiZGVwZW5kZW5jeU5vZGVzIiwiZm9yRWFjaCIsImRlcGVuZGVuY3lOb2RlIiwiZGVwZW5kZW5jeU5hbWVUZXJtaW5hbE5vZGUiLCJzaG9ydGVuZWRWZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlIiwiZGVwZW5kZW5jeU5hbWVUZXJtaW5hbE5vZGVDb250ZW50Iiwic2hvcnRlbmVkVmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZUNvbnRlbnQiLCJuYW1lIiwic2hvcnRlbmVkVmVyc2lvbiIsIlNob3J0ZW5lZFZlcnNpb24iLCJkZXBlbmRlbmN5IiwiRGVwZW5kZW5jeSIsImZyb21OYW1lQW5kU2hvcnRlbmVkVmVyc2lvbiIsImFkZERlcGVuZGVuY3kiLCJkZXBlbmRlbmN5TmFtZXMiLCJtYXBEZXBlbmRlbmN5IiwiZGVwZW5kZW5jeU5hbWUiLCJnZXROYW1lIiwidG9TdHJpbmciLCJkZXBlbmRlbmNpZXNKU09OIiwidG9KU09OIiwibWV0YUpTT04iLCJtZXRhSlNPTlN0cmluZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJET1VCTEVfU1BBQ0UiLCJtZXRhSlNPTkZpbGVDb250ZW50Iiwic2V0Q29udGVudCIsImNvbnRlbnQiLCJ0b2tlbnMiLCJ0b2tlbmlzZSIsInBhcnNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFzQmdCQSxlQUFlO2VBQWZB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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-file-system",
3
3
  "author": "James Smith",
4
- "version": "5.0.121",
4
+ "version": "5.0.123",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-file-system",
7
7
  "description": "Occam's file system functionality.",
package/src/release.js CHANGED
@@ -5,7 +5,7 @@ import Entries from "./entries";
5
5
  import entriesMixins from "./mixins/entries";
6
6
 
7
7
  import { DOUBLE_SPACE } from "./constants";
8
- import { metaJSONNodeFromMetaJSONFile } from "./utilities/metaJSON";
8
+ import { isMetaJSONFileValid } from "./utilities/metaJSON";
9
9
  import { readmeFileFromFiles, metaJSONFileFromFiles } from "./utilities/files";
10
10
 
11
11
  class Release {
@@ -77,9 +77,9 @@ class Release {
77
77
  static fromNameAndEntries(name, entries) {
78
78
  let release = null;
79
79
 
80
- const filesReleasable = areEntriesReleasable(entries);
80
+ const entriesReleasable = areEntriesReleasable(entries);
81
81
 
82
- if (filesReleasable) {
82
+ if (entriesReleasable) {
83
83
  release = new Release(name, entries);
84
84
  }
85
85
 
@@ -92,7 +92,7 @@ class Release {
92
92
 
93
93
  const entriesReleasable = areEntriesReleasable(entries);
94
94
 
95
- if (entriesReleasable()) {
95
+ if (entriesReleasable) {
96
96
  const name = project.getName(),
97
97
  releasedEntries = releaseEntries(entries);
98
98
 
@@ -134,9 +134,9 @@ function areEntriesReleasable(entries) {
134
134
  metaJSONFile = metaJSONFileFromFiles(files);
135
135
 
136
136
  if ((readmeFile !== null) && (metaJSONFile !== null)) {
137
- const metaJSONNode = metaJSONNodeFromMetaJSONFile(metaJSONFile);
137
+ const metaJSONFileValid = isMetaJSONFileValid(metaJSONFile);
138
138
 
139
- if (metaJSONNode !== null) {
139
+ if (metaJSONFileValid !== null) {
140
140
  entriesReleasable = true;
141
141
  }
142
142
  }
@@ -13,6 +13,7 @@ import { nodeQuery, nodesQuery } from "../utilities/query";
13
13
 
14
14
  const metaJSONLexer = MetaJSONLexer.fromNothing(),
15
15
  metaJSONParser = MetaJSONParser.fromNothing(),
16
+ errorNodesQuery = nodesQuery("//error"),
16
17
  dependencyNodesQuery = nodesQuery("//dependencies/dependency"),
17
18
  repositoryTerminalNodeQuery = nodeQuery("//repository!/@*!"),
18
19
  versionNumberTerminalNodeQuery = nodeQuery("//version!/versionNumber!/@*!"),
@@ -46,6 +47,24 @@ export function repositoryFromNode(node) {
46
47
  return repository;
47
48
  }
48
49
 
50
+ export function isMetaJSONFileValid(metaJSONFile) {
51
+ let metaJSONFileValid = false;
52
+
53
+ const metaJSONNode = metaJSONNodeFromMetaJSONFile(metaJSONFile);
54
+
55
+ if (metaJSONNode !== null) {
56
+ const node = metaJSONNode, ///
57
+ errorNodes = errorNodesQuery(node),
58
+ errorNodesLength = errorNodes.length;
59
+
60
+ if (errorNodesLength === 0) {
61
+ metaJSONFileValid = true;
62
+ }
63
+ }
64
+
65
+ return metaJSONFileValid;
66
+ }
67
+
49
68
  export function dependenciesFromNode(node) {
50
69
  const dependencies = Dependencies.fromNothing();
51
70
 
@@ -122,6 +141,7 @@ export function metaJSONNodeFromMetaJSONFile(metaJSONFile) {
122
141
  export default {
123
142
  versionFromNode,
124
143
  repositoryFromNode,
144
+ isMetaJSONFileValid,
125
145
  dependenciesFromNode,
126
146
  dependencyNamesFromNode,
127
147
  updateMetaJSONFileVersion,