occam-file-system 5.0.27 → 5.0.28

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/project.js CHANGED
@@ -14,6 +14,8 @@ var _files = /*#__PURE__*/ _interopRequireDefault(require("./mixins/files"));
14
14
  var _dependencies = /*#__PURE__*/ _interopRequireDefault(require("./dependencies"));
15
15
  var _entries1 = /*#__PURE__*/ _interopRequireDefault(require("./mixins/entries"));
16
16
  var _pattern = /*#__PURE__*/ _interopRequireDefault(require("./mixins/pattern"));
17
+ var _files1 = require("./utilities/files");
18
+ var _metaJSON = require("./utilities/metaJSON");
17
19
  function _classCallCheck(instance, Constructor) {
18
20
  if (!(instance instanceof Constructor)) {
19
21
  throw new TypeError("Cannot call a class as a function");
@@ -103,8 +105,8 @@ var Project = /*#__PURE__*/ function() {
103
105
  entries = _entries.default.fromJSON(json); ///
104
106
  json = dependenciesJSON; ///
105
107
  dependencies = _dependencies.default.fromJSON(json);
106
- var release = new Project(name, entries, repository, dependencies);
107
- return release;
108
+ var project = new Project(name, entries, repository, dependencies);
109
+ return project;
108
110
  }
109
111
  },
110
112
  {
@@ -115,8 +117,18 @@ var Project = /*#__PURE__*/ function() {
115
117
  }
116
118
  },
117
119
  {
118
- key: "fromNameEntriesRepositoryAndDependencies",
119
- value: function fromNameEntriesRepositoryAndDependencies(name, entries, repository, dependencies) {
120
+ key: "fromNameAndEntries",
121
+ value: function fromNameAndEntries(name, entries) {
122
+ var files = entries.getFiles(), metaJSONFile = (0, _files1.metaJSONFileFromFiles)(files);
123
+ var repository = null, dependencies = _dependencies.default.fromNothing();
124
+ if (metaJSONFile !== null) {
125
+ var metaJSONNode = (0, _metaJSON.metaJSONNodeFromMetaJSONFile)(metaJSONFile);
126
+ if (metaJSONNode !== null) {
127
+ var node = metaJSONNode; ///
128
+ repository = (0, _metaJSON.repositoryFromNode)(node);
129
+ dependencies = (0, _metaJSON.dependenciesFromNode)(node);
130
+ }
131
+ }
120
132
  var project = new Project(name, entries, repository, dependencies);
121
133
  return project;
122
134
  }
@@ -130,4 +142,4 @@ Object.assign(Project.prototype, _entries1.default);
130
142
  Object.assign(Project.prototype, _pattern.default);
131
143
  var _default = Project;
132
144
 
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9qZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRW50cmllcyBmcm9tIFwiLi9lbnRyaWVzXCI7XG5pbXBvcnQgYm5mTWl4aW5zIGZyb20gXCIuL21peGlucy9ibmZcIjtcbmltcG9ydCBmaWxlc01peGlucyBmcm9tIFwiLi9taXhpbnMvZmlsZXNcIjtcbmltcG9ydCBEZXBlbmRlbmNpZXMgZnJvbSBcIi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgZW50cmllc01peGlucyBmcm9tIFwiLi9taXhpbnMvZW50cmllc1wiO1xuaW1wb3J0IHBhdHRlcm5NaXhpbnMgZnJvbSBcIi4vbWl4aW5zL3BhdHRlcm5cIjtcblxuY2xhc3MgUHJvamVjdCB7XG4gIGNvbnN0cnVjdG9yKG5hbWUsIGVudHJpZXMsIHJlcG9zaXRvcnksIGRlcGVuZGVuY2llcykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5lbnRyaWVzID0gZW50cmllcztcbiAgICB0aGlzLnJlcG9zaXRvcnkgPSByZXBvc2l0b3J5O1xuICAgIHRoaXMuZGVwZW5kZW5jaWVzID0gZGVwZW5kZW5jaWVzO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0RW50cmllcygpIHtcbiAgICByZXR1cm4gdGhpcy5lbnRyaWVzO1xuICB9XG5cbiAgZ2V0UmVwb3NpdG9yeSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBvc2l0b3J5O1xuICB9XG5cbiAgZ2V0RGVwZW5kZW5jaWVzKCkge1xuICAgIHJldHVybiB0aGlzLmRlcGVuZGVuY2llcztcbiAgfVxuXG4gIGdldERlcGVuZGVuY3lOYW1lcygpIHtcbiAgICBjb25zdCBkZXBlbmRlbmN5TmFtZXMgPSB0aGlzLmRlcGVuZGVuZGllcy5tYXBEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpO1xuXG4gICAgICByZXR1cm4gZGVwZW5kZW5jeU5hbWU7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGVwZW5kZW5jeU5hbWVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGVudHJpZXNKU09OID0gdGhpcy5lbnRyaWVzLnRvSlNPTigpLFxuICAgICAgICAgIGRlcGVuZGVuY2llc0pTT04gPSB0aGlzLmRlcGVuZGVuY2llcy50b0pTT04oKSxcbiAgICAgICAgICBuYW1lID0gdGhpcy5uYW1lLFxuICAgICAgICAgIGVudHJpZXMgPSBlbnRyaWVzSlNPTiwgIC8vL1xuICAgICAgICAgIHJlcG9zaXRvcnkgPSB0aGlzLnJlcG9zaXRvcnksXG4gICAgICAgICAgZGVwZW5kZW5jaWVzID0gZGVwZW5kZW5jaWVzSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgZW50cmllcyxcbiAgICAgICAgICAgIHJlcG9zaXRvcnksXG4gICAgICAgICAgICBkZXBlbmRlbmNpZXNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGxldCB7IGVudHJpZXMsIGRlcGVuZGVuY2llcyB9ID0ganNvbjtcblxuICAgIGNvbnN0IHsgbmFtZSwgcmVwb3NpdG9yeSB9ID0ganNvbixcbiAgICAgICAgICBlbnRyaWVzSlNPTiA9IGVudHJpZXMsICAvLy9cbiAgICAgICAgICBkZXBlbmRlbmNpZXNKU09OID0gZGVwZW5kZW5jaWVzOyAvLy9cblxuICAgIGpzb24gPSBlbnRyaWVzSlNPTjsgLy8vXG5cbiAgICBlbnRyaWVzID0gRW50cmllcy5mcm9tSlNPTihqc29uKTsgLy8vXG5cbiAgICBqc29uID0gZGVwZW5kZW5jaWVzSlNPTjsgLy8vXG5cbiAgICBkZXBlbmRlbmNpZXMgPSBEZXBlbmRlbmNpZXMuZnJvbUpTT04oanNvbik7XG5cbiAgICBjb25zdCByZWxlYXNlID0gbmV3IFByb2plY3QobmFtZSwgZW50cmllcywgcmVwb3NpdG9yeSwgZGVwZW5kZW5jaWVzKTtcblxuICAgIHJldHVybiByZWxlYXNlO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lKG5hbWUpIHtcbiAgICBjb25zdCBlbnRyaWVzID0gRW50cmllcy5mcm9tTm90aGluZygpLFxuICAgICAgICAgIHJlcG9zaXRvcnkgPSBudWxsLCAgLy8vXG4gICAgICAgICAgZGVwZW5kZW5jaWVzID0gRGVwZW5kZW5jaWVzLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgcHJvamVjdCA9IG5ldyBQcm9qZWN0KG5hbWUsIGVudHJpZXMsIHJlcG9zaXRvcnksIGRlcGVuZGVuY2llcyk7XG5cbiAgICByZXR1cm4gcHJvamVjdDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTmFtZUVudHJpZXNSZXBvc2l0b3J5QW5kRGVwZW5kZW5jaWVzKG5hbWUsIGVudHJpZXMsIHJlcG9zaXRvcnksIGRlcGVuZGVuY2llcykge1xuICAgIGNvbnN0IHByb2plY3QgPSBuZXcgUHJvamVjdChuYW1lLCBlbnRyaWVzLCByZXBvc2l0b3J5LCBkZXBlbmRlbmNpZXMpO1xuXG4gICAgcmV0dXJuIHByb2plY3Q7XG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihQcm9qZWN0LnByb3RvdHlwZSwgYm5mTWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oUHJvamVjdC5wcm90b3R5cGUsIGZpbGVzTWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oUHJvamVjdC5wcm90b3R5cGUsIGVudHJpZXNNaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihQcm9qZWN0LnByb3RvdHlwZSwgcGF0dGVybk1peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IFByb2plY3Q7XG4iXSwibmFtZXMiOlsiUHJvamVjdCIsIm5hbWUiLCJlbnRyaWVzIiwicmVwb3NpdG9yeSIsImRlcGVuZGVuY2llcyIsImdldE5hbWUiLCJnZXRFbnRyaWVzIiwiZ2V0UmVwb3NpdG9yeSIsImdldERlcGVuZGVuY2llcyIsImdldERlcGVuZGVuY3lOYW1lcyIsImRlcGVuZGVuY3lOYW1lcyIsImRlcGVuZGVuZGllcyIsIm1hcERlcGVuZGVuY3kiLCJkZXBlbmRlbmN5IiwiZGVwZW5kZW5jeU5hbWUiLCJ0b0pTT04iLCJlbnRyaWVzSlNPTiIsImRlcGVuZGVuY2llc0pTT04iLCJqc29uIiwiZnJvbUpTT04iLCJFbnRyaWVzIiwiRGVwZW5kZW5jaWVzIiwicmVsZWFzZSIsImZyb21OYW1lIiwiZnJvbU5vdGhpbmciLCJwcm9qZWN0IiwiZnJvbU5hbWVFbnRyaWVzUmVwb3NpdG9yeUFuZERlcGVuZGVuY2llcyIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSIsImJuZk1peGlucyIsImZpbGVzTWl4aW5zIiwiZW50cmllc01peGlucyIsInBhdHRlcm5NaXhpbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXFHQTs7O2VBQUE7Ozs0REFuR29CO3dEQUNFOzBEQUNFO2lFQUNDOzZEQUNDOzREQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFCLElBQUEsQUFBTUEsd0JBdUZILEFBdkZIO2FBQU1BLFFBQ1FDLElBQUksRUFBRUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLFlBQVk7OEJBRC9DSjtRQUVGLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLFlBQVksR0FBR0E7O2lCQUxsQko7O1lBUUpLLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVO2dCQUNSLE9BQU8sSUFBSSxDQUFDSixJQUFJO1lBQ2xCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBLGFBQWE7Z0JBQ1gsT0FBTyxJQUFJLENBQUNKLE9BQU87WUFDckI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsZ0JBQWdCO2dCQUNkLE9BQU8sSUFBSSxDQUFDSixVQUFVO1lBQ3hCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBLGtCQUFrQjtnQkFDaEIsT0FBTyxJQUFJLENBQUNKLFlBQVk7WUFDMUI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEscUJBQXFCO2dCQUNuQixJQUFNQyxrQkFBa0IsSUFBSSxDQUFDQyxZQUFZLENBQUNDLGFBQWEsQ0FBQyxTQUFDQyxZQUFlO29CQUN0RSxJQUFNQyxpQkFBaUJELFdBQVdSLE9BQU87b0JBRXpDLE9BQU9TO2dCQUNUO2dCQUVBLE9BQU9KO1lBQ1Q7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsU0FBUztnQkFDUCxJQUFNQyxjQUFjLElBQUksQ0FBQ2QsT0FBTyxDQUFDYSxNQUFNLElBQ2pDRSxtQkFBbUIsSUFBSSxDQUFDYixZQUFZLENBQUNXLE1BQU0sSUFDM0NkLE9BQU8sSUFBSSxDQUFDQSxJQUFJLEVBQ2hCQyxVQUFVYyxhQUNWYixhQUFhLElBQUksQ0FBQ0EsVUFBVSxFQUM1QkMsZUFBZWEsa0JBQ2ZDLE9BQU87b0JBQ0xqQixNQUFBQTtvQkFDQUMsU0FBQUE7b0JBQ0FDLFlBQUFBO29CQUNBQyxjQUFBQTtnQkFDRjtnQkFFTixPQUFPYztZQUNUOzs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLFNBQVNELElBQUksRUFBRTtnQkFDcEIsSUFBTWhCLFVBQTBCZ0IsS0FBMUJoQixTQUFTRSxlQUFpQmMsS0FBakJkO2dCQUVmLElBQVFILE9BQXFCaUIsS0FBckJqQixNQUFNRSxhQUFlZSxLQUFmZixZQUNSYSxjQUFjZCxTQUNkZSxtQkFBbUJiLGNBQWMsR0FBRztnQkFFMUNjLE9BQU9GLGFBQWEsR0FBRztnQkFFdkJkLFVBQVVrQixnQkFBTyxDQUFDRCxRQUFRLENBQUNELE9BQU8sR0FBRztnQkFFckNBLE9BQU9ELGtCQUFrQixHQUFHO2dCQUU1QmIsZUFBZWlCLHFCQUFZLENBQUNGLFFBQVEsQ0FBQ0Q7Z0JBRXJDLElBQU1JLFVBQVUsSUFsRWR0QixRQWtFMEJDLE1BQU1DLFNBQVNDLFlBQVlDO2dCQUV2RCxPQUFPa0I7WUFDVDs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLFNBQVN0QixJQUFJLEVBQUU7Z0JBQ3BCLElBQU1DLFVBQVVrQixnQkFBTyxDQUFDSSxXQUFXLElBQzdCckIsYUFBYSxJQUFJLEVBQ2pCQyxlQUFlaUIscUJBQVksQ0FBQ0csV0FBVyxJQUN2Q0MsVUFBVSxJQTNFZHpCLFFBMkUwQkMsTUFBTUMsU0FBU0MsWUFBWUM7Z0JBRXZELE9BQU9xQjtZQUNUOzs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0EseUNBQXlDekIsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsWUFBWSxFQUFFO2dCQUN2RixJQUFNcUIsVUFBVSxJQWpGZHpCLFFBaUYwQkMsTUFBTUMsU0FBU0MsWUFBWUM7Z0JBRXZELE9BQU9xQjtZQUNUOzs7V0FwRkl6Qjs7QUF1Rk4yQixPQUFPQyxNQUFNLENBQUM1QixRQUFRNkIsU0FBUyxFQUFFQyxZQUFTO0FBQzFDSCxPQUFPQyxNQUFNLENBQUM1QixRQUFRNkIsU0FBUyxFQUFFRSxjQUFXO0FBQzVDSixPQUFPQyxNQUFNLENBQUM1QixRQUFRNkIsU0FBUyxFQUFFRyxpQkFBYTtBQUM5Q0wsT0FBT0MsTUFBTSxDQUFDNUIsUUFBUTZCLFNBQVMsRUFBRUksZ0JBQWE7SUFFOUMsV0FBZWpDIn0=
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9qZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRW50cmllcyBmcm9tIFwiLi9lbnRyaWVzXCI7XG5pbXBvcnQgYm5mTWl4aW5zIGZyb20gXCIuL21peGlucy9ibmZcIjtcbmltcG9ydCBmaWxlc01peGlucyBmcm9tIFwiLi9taXhpbnMvZmlsZXNcIjtcbmltcG9ydCBEZXBlbmRlbmNpZXMgZnJvbSBcIi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgZW50cmllc01peGlucyBmcm9tIFwiLi9taXhpbnMvZW50cmllc1wiO1xuaW1wb3J0IHBhdHRlcm5NaXhpbnMgZnJvbSBcIi4vbWl4aW5zL3BhdHRlcm5cIjtcblxuaW1wb3J0IHsgbWV0YUpTT05GaWxlRnJvbUZpbGVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2ZpbGVzXCI7XG5pbXBvcnQgeyByZXBvc2l0b3J5RnJvbU5vZGUsIGRlcGVuZGVuY2llc0Zyb21Ob2RlLCBtZXRhSlNPTk5vZGVGcm9tTWV0YUpTT05GaWxlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL21ldGFKU09OXCI7XG5cbmNsYXNzIFByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihuYW1lLCBlbnRyaWVzLCByZXBvc2l0b3J5LCBkZXBlbmRlbmNpZXMpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMuZW50cmllcyA9IGVudHJpZXM7XG4gICAgdGhpcy5yZXBvc2l0b3J5ID0gcmVwb3NpdG9yeTtcbiAgICB0aGlzLmRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llcztcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldEVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcztcbiAgfVxuXG4gIGdldFJlcG9zaXRvcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVwb3NpdG9yeTtcbiAgfVxuXG4gIGdldERlcGVuZGVuY2llcygpIHtcbiAgICByZXR1cm4gdGhpcy5kZXBlbmRlbmNpZXM7XG4gIH1cblxuICBnZXREZXBlbmRlbmN5TmFtZXMoKSB7XG4gICAgY29uc3QgZGVwZW5kZW5jeU5hbWVzID0gdGhpcy5kZXBlbmRlbmRpZXMubWFwRGVwZW5kZW5jeSgoZGVwZW5kZW5jeSkgPT4ge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKTtcblxuICAgICAgcmV0dXJuIGRlcGVuZGVuY3lOYW1lO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRlcGVuZGVuY3lOYW1lcztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBlbnRyaWVzSlNPTiA9IHRoaXMuZW50cmllcy50b0pTT04oKSxcbiAgICAgICAgICBkZXBlbmRlbmNpZXNKU09OID0gdGhpcy5kZXBlbmRlbmNpZXMudG9KU09OKCksXG4gICAgICAgICAgbmFtZSA9IHRoaXMubmFtZSxcbiAgICAgICAgICBlbnRyaWVzID0gZW50cmllc0pTT04sICAvLy9cbiAgICAgICAgICByZXBvc2l0b3J5ID0gdGhpcy5yZXBvc2l0b3J5LFxuICAgICAgICAgIGRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llc0pTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIGVudHJpZXMsXG4gICAgICAgICAgICByZXBvc2l0b3J5LFxuICAgICAgICAgICAgZGVwZW5kZW5jaWVzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBsZXQgeyBlbnRyaWVzLCBkZXBlbmRlbmNpZXMgfSA9IGpzb247XG5cbiAgICBjb25zdCB7IG5hbWUsIHJlcG9zaXRvcnkgfSA9IGpzb24sXG4gICAgICAgICAgZW50cmllc0pTT04gPSBlbnRyaWVzLCAgLy8vXG4gICAgICAgICAgZGVwZW5kZW5jaWVzSlNPTiA9IGRlcGVuZGVuY2llczsgLy8vXG5cbiAgICBqc29uID0gZW50cmllc0pTT047IC8vL1xuXG4gICAgZW50cmllcyA9IEVudHJpZXMuZnJvbUpTT04oanNvbik7IC8vL1xuXG4gICAganNvbiA9IGRlcGVuZGVuY2llc0pTT047IC8vL1xuXG4gICAgZGVwZW5kZW5jaWVzID0gRGVwZW5kZW5jaWVzLmZyb21KU09OKGpzb24pO1xuXG4gICAgY29uc3QgcHJvamVjdCA9IG5ldyBQcm9qZWN0KG5hbWUsIGVudHJpZXMsIHJlcG9zaXRvcnksIGRlcGVuZGVuY2llcyk7XG5cbiAgICByZXR1cm4gcHJvamVjdDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTmFtZShuYW1lKSB7XG4gICAgY29uc3QgZW50cmllcyA9IEVudHJpZXMuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICByZXBvc2l0b3J5ID0gbnVsbCwgIC8vL1xuICAgICAgICAgIGRlcGVuZGVuY2llcyA9IERlcGVuZGVuY2llcy5mcm9tTm90aGluZygpLFxuICAgICAgICAgIHByb2plY3QgPSBuZXcgUHJvamVjdChuYW1lLCBlbnRyaWVzLCByZXBvc2l0b3J5LCBkZXBlbmRlbmNpZXMpO1xuXG4gICAgcmV0dXJuIHByb2plY3Q7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5hbWVBbmRFbnRyaWVzKG5hbWUsIGVudHJpZXMpIHtcbiAgICBjb25zdCBmaWxlcyA9IGVudHJpZXMuZ2V0RmlsZXMoKSxcbiAgICAgICAgICBtZXRhSlNPTkZpbGUgPSBtZXRhSlNPTkZpbGVGcm9tRmlsZXMoZmlsZXMpO1xuXG4gICAgbGV0IHJlcG9zaXRvcnkgPSBudWxsLFxuICAgICAgICBkZXBlbmRlbmNpZXMgPSBEZXBlbmRlbmNpZXMuZnJvbU5vdGhpbmcoKTtcblxuICAgIGlmIChtZXRhSlNPTkZpbGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1ldGFKU09OTm9kZSA9IG1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGUobWV0YUpTT05GaWxlKTtcblxuICAgICAgaWYgKG1ldGFKU09OTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBub2RlID0gbWV0YUpTT05Ob2RlOyAgLy8vXG5cbiAgICAgICAgcmVwb3NpdG9yeSA9IHJlcG9zaXRvcnlGcm9tTm9kZShub2RlKTtcbiAgICAgICAgZGVwZW5kZW5jaWVzID0gZGVwZW5kZW5jaWVzRnJvbU5vZGUobm9kZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcHJvamVjdCA9IG5ldyBQcm9qZWN0KG5hbWUsIGVudHJpZXMsIHJlcG9zaXRvcnksIGRlcGVuZGVuY2llcyk7XG5cbiAgICByZXR1cm4gcHJvamVjdDtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKFByb2plY3QucHJvdG90eXBlLCBibmZNaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihQcm9qZWN0LnByb3RvdHlwZSwgZmlsZXNNaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihQcm9qZWN0LnByb3RvdHlwZSwgZW50cmllc01peGlucyk7XG5PYmplY3QuYXNzaWduKFByb2plY3QucHJvdG90eXBlLCBwYXR0ZXJuTWl4aW5zKTtcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdDtcbiJdLCJuYW1lcyI6WyJQcm9qZWN0IiwibmFtZSIsImVudHJpZXMiLCJyZXBvc2l0b3J5IiwiZGVwZW5kZW5jaWVzIiwiZ2V0TmFtZSIsImdldEVudHJpZXMiLCJnZXRSZXBvc2l0b3J5IiwiZ2V0RGVwZW5kZW5jaWVzIiwiZ2V0RGVwZW5kZW5jeU5hbWVzIiwiZGVwZW5kZW5jeU5hbWVzIiwiZGVwZW5kZW5kaWVzIiwibWFwRGVwZW5kZW5jeSIsImRlcGVuZGVuY3kiLCJkZXBlbmRlbmN5TmFtZSIsInRvSlNPTiIsImVudHJpZXNKU09OIiwiZGVwZW5kZW5jaWVzSlNPTiIsImpzb24iLCJmcm9tSlNPTiIsIkVudHJpZXMiLCJEZXBlbmRlbmNpZXMiLCJwcm9qZWN0IiwiZnJvbU5hbWUiLCJmcm9tTm90aGluZyIsImZyb21OYW1lQW5kRW50cmllcyIsImZpbGVzIiwiZ2V0RmlsZXMiLCJtZXRhSlNPTkZpbGUiLCJtZXRhSlNPTkZpbGVGcm9tRmlsZXMiLCJtZXRhSlNPTk5vZGUiLCJtZXRhSlNPTk5vZGVGcm9tTWV0YUpTT05GaWxlIiwibm9kZSIsInJlcG9zaXRvcnlGcm9tTm9kZSIsImRlcGVuZGVuY2llc0Zyb21Ob2RlIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwiYm5mTWl4aW5zIiwiZmlsZXNNaXhpbnMiLCJlbnRyaWVzTWl4aW5zIiwicGF0dGVybk1peGlucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBeUhBOzs7ZUFBQTs7OzREQXZIb0I7d0RBQ0U7MERBQ0U7aUVBQ0M7NkRBQ0M7NERBQ0E7c0JBRVk7d0JBQ2lEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXZGLElBQUEsQUFBTUEsd0JBd0dILEFBeEdIO2FBQU1BLFFBQ1FDLElBQUksRUFBRUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLFlBQVk7OEJBRC9DSjtRQUVGLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLFlBQVksR0FBR0E7O2lCQUxsQko7O1lBUUpLLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVO2dCQUNSLE9BQU8sSUFBSSxDQUFDSixJQUFJO1lBQ2xCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBLGFBQWE7Z0JBQ1gsT0FBTyxJQUFJLENBQUNKLE9BQU87WUFDckI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsZ0JBQWdCO2dCQUNkLE9BQU8sSUFBSSxDQUFDSixVQUFVO1lBQ3hCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBLGtCQUFrQjtnQkFDaEIsT0FBTyxJQUFJLENBQUNKLFlBQVk7WUFDMUI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEscUJBQXFCO2dCQUNuQixJQUFNQyxrQkFBa0IsSUFBSSxDQUFDQyxZQUFZLENBQUNDLGFBQWEsQ0FBQyxTQUFDQyxZQUFlO29C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
package/lib/release.js CHANGED
@@ -15,6 +15,8 @@ var _files = /*#__PURE__*/ _interopRequireDefault(require("./mixins/files"));
15
15
  var _dependencies = /*#__PURE__*/ _interopRequireDefault(require("./dependencies"));
16
16
  var _entries1 = /*#__PURE__*/ _interopRequireDefault(require("./mixins/entries"));
17
17
  var _pattern = /*#__PURE__*/ _interopRequireDefault(require("./mixins/pattern"));
18
+ var _files1 = require("./utilities/files");
19
+ var _metaJSON = require("./utilities/metaJSON");
18
20
  function _classCallCheck(instance, Constructor) {
19
21
  if (!(instance instanceof Constructor)) {
20
22
  throw new TypeError("Cannot call a class as a function");
@@ -119,9 +121,17 @@ var Release = /*#__PURE__*/ function() {
119
121
  }
120
122
  },
121
123
  {
122
- key: "fromNameEntriesVersionRepositoryAndDependencies",
123
- value: function fromNameEntriesVersionRepositoryAndDependencies(name, entries, version, repository, dependencies) {
124
- var release = new Release(name, entries, version, repository, dependencies);
124
+ key: "fromNameAndEntries",
125
+ value: function fromNameAndEntries(name, entries) {
126
+ var release = null;
127
+ var files = entries.getFiles(), readmeFile = (0, _files1.readmeFileFromFiles)(files), metaJSONFile = (0, _files1.metaJSONFileFromFiles)(files);
128
+ if (readmeFile !== null && metaJSONFile !== null) {
129
+ var metaJSONNode = (0, _metaJSON.metaJSONNodeFromMetaJSONFile)(metaJSONFile);
130
+ if (metaJSONNode !== null) {
131
+ var node = metaJSONNode, version = (0, _metaJSON.versionFromNode)(node), repository = (0, _metaJSON.repositoryFromNode)(node), dependencies = (0, _metaJSON.dependenciesFromNode)(node);
132
+ release = new Release(name, entries, version, repository, dependencies);
133
+ }
134
+ }
125
135
  return release;
126
136
  }
127
137
  }
@@ -134,4 +144,4 @@ Object.assign(Release.prototype, _entries1.default);
134
144
  Object.assign(Release.prototype, _pattern.default);
135
145
  var _default = Release;
136
146
 
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRW50cmllcyBmcm9tIFwiLi9lbnRyaWVzXCI7XG5pbXBvcnQgVmVyc2lvbiBmcm9tIFwiLi92ZXJzaW9uXCI7XG5pbXBvcnQgYm5mTWl4aW5zIGZyb20gXCIuL21peGlucy9ibmZcIjtcbmltcG9ydCBmaWxlc01peGlucyBmcm9tIFwiLi9taXhpbnMvZmlsZXNcIjtcbmltcG9ydCBEZXBlbmRlbmNpZXMgZnJvbSBcIi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgZW50cmllc01peGlucyBmcm9tIFwiLi9taXhpbnMvZW50cmllc1wiO1xuaW1wb3J0IHBhdHRlcm5NaXhpbnMgZnJvbSBcIi4vbWl4aW5zL3BhdHRlcm5cIjtcblxuY2xhc3MgUmVsZWFzZSB7XG4gIGNvbnN0cnVjdG9yKG5hbWUsIGVudHJpZXMsIHZlcnNpb24sIHJlcG9zaXRvcnksIGRlcGVuZGVuY2llcykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5lbnRyaWVzID0gZW50cmllcztcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIHRoaXMucmVwb3NpdG9yeSA9IHJlcG9zaXRvcnk7XG4gICAgdGhpcy5kZXBlbmRlbmRpZXMgPSBkZXBlbmRlbmNpZXM7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRFbnRyaWVzKCkge1xuICAgIHJldHVybiB0aGlzLmVudHJpZXM7XG4gIH1cblxuICBnZXRWZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnZlcnNpb247XG4gIH1cblxuICBnZXRSZXBvc2l0b3J5KCkge1xuICAgIHJldHVybiB0aGlzLnJlcG9zaXRvcnk7XG4gIH1cblxuICBnZXREZXBlbmRlbmNpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVwZW5kZW5kaWVzO1xuICB9XG5cbiAgZ2V0RGVwZW5kZW5jeU5hbWVzKCkge1xuICAgIGNvbnN0IGRlcGVuZGVuY3lOYW1lcyA9IHRoaXMuZGVwZW5kZW5kaWVzLm1hcERlcGVuZGVuY3koKGRlcGVuZGVuY3kpID0+IHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCk7XG5cbiAgICAgIHJldHVybiBkZXBlbmRlbmN5TmFtZTtcbiAgICB9KTtcblxuICAgIHJldHVybiBkZXBlbmRlbmN5TmFtZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgZW50cmllc0pTT04gPSB0aGlzLmVudHJpZXMudG9KU09OKCksXG4gICAgICAgICAgdmVyc2lvbkpTT04gPSB0aGlzLnZlcnNpb24udG9KU09OKCksXG4gICAgICAgICAgZGVwZW5kZW5jaWVzSlNPTiA9IHRoaXMuZGVwZW5kZW5kaWVzLnRvSlNPTigpLFxuICAgICAgICAgIG5hbWUgPSB0aGlzLm5hbWUsXG4gICAgICAgICAgZW50cmllcyA9IGVudHJpZXNKU09OLCAgLy8vXG4gICAgICAgICAgdmVyc2lvbiA9IHZlcnNpb25KU09OLCAgLy8vXG4gICAgICAgICAgcmVwb3NpdG9yeSA9IHRoaXMucmVwb3NpdG9yeSxcbiAgICAgICAgICBkZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBlbnRyaWVzLFxuICAgICAgICAgICAgdmVyc2lvbixcbiAgICAgICAgICAgIHJlcG9zaXRvcnksXG4gICAgICAgICAgICBkZXBlbmRlbmNpZXNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGxldCB7IGVudHJpZXMsIHZlcnNpb24sIGRlcGVuZGVuY2llcyB9ID0ganNvbjtcblxuICAgIGNvbnN0IHsgbmFtZSwgcmVwb3NpdG9yeSB9ID0ganNvbixcbiAgICAgICAgICBlbnRyaWVzSlNPTiA9IGVudHJpZXMsICAvLy9cbiAgICAgICAgICB2ZXJzaW9uSlNPTSA9IHZlcnNpb24sICAvLy9cbiAgICAgICAgICBkZXBlbmRlbmNpZXNKU09OID0gZGVwZW5kZW5jaWVzOyAvLy9cblxuICAgIGpzb24gPSBlbnRyaWVzSlNPTjsgLy8vXG5cbiAgICBlbnRyaWVzID0gRW50cmllcy5mcm9tSlNPTihqc29uKTsgLy8vXG5cbiAgICBqc29uID0gdmVyc2lvbkpTT007IC8vL1xuXG4gICAgdmVyc2lvbiA9IFZlcnNpb24uZnJvbUpTT04oanNvbik7XG5cbiAgICBqc29uID0gZGVwZW5kZW5jaWVzSlNPTjsgLy8vXG5cbiAgICBkZXBlbmRlbmNpZXMgPSBEZXBlbmRlbmNpZXMuZnJvbUpTT04oanNvbik7XG5cbiAgICBjb25zdCByZWxlYXNlID0gbmV3IFJlbGVhc2UobmFtZSwgZW50cmllcywgdmVyc2lvbiwgcmVwb3NpdG9yeSwgZGVwZW5kZW5jaWVzKTtcblxuICAgIHJldHVybiByZWxlYXNlO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lRW50cmllc1ZlcnNpb25SZXBvc2l0b3J5QW5kRGVwZW5kZW5jaWVzKG5hbWUsIGVudHJpZXMsIHZlcnNpb24sIHJlcG9zaXRvcnksIGRlcGVuZGVuY2llcykge1xuICAgIGNvbnN0IHJlbGVhc2UgPSBuZXcgUmVsZWFzZShuYW1lLCBlbnRyaWVzLCB2ZXJzaW9uLCByZXBvc2l0b3J5LCBkZXBlbmRlbmNpZXMpO1xuXG4gICAgcmV0dXJuIHJlbGVhc2U7XG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihSZWxlYXNlLnByb3RvdHlwZSwgYm5mTWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oUmVsZWFzZS5wcm90b3R5cGUsIGZpbGVzTWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oUmVsZWFzZS5wcm90b3R5cGUsIGVudHJpZXNNaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihSZWxlYXNlLnByb3RvdHlwZSwgcGF0dGVybk1peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlbGVhc2U7XG4iXSwibmFtZXMiOlsiUmVsZWFzZSIsIm5hbWUiLCJlbnRyaWVzIiwidmVyc2lvbiIsInJlcG9zaXRvcnkiLCJkZXBlbmRlbmNpZXMiLCJkZXBlbmRlbmRpZXMiLCJnZXROYW1lIiwiZ2V0RW50cmllcyIsImdldFZlcnNpb24iLCJnZXRSZXBvc2l0b3J5IiwiZ2V0RGVwZW5kZW5jaWVzIiwiZ2V0RGVwZW5kZW5jeU5hbWVzIiwiZGVwZW5kZW5jeU5hbWVzIiwibWFwRGVwZW5kZW5jeSIsImRlcGVuZGVuY3kiLCJkZXBlbmRlbmN5TmFtZSIsInRvSlNPTiIsImVudHJpZXNKU09OIiwidmVyc2lvbkpTT04iLCJkZXBlbmRlbmNpZXNKU09OIiwianNvbiIsImZyb21KU09OIiwidmVyc2lvbkpTT00iLCJFbnRyaWVzIiwiVmVyc2lvbiIsIkRlcGVuZGVuY2llcyIsInJlbGVhc2UiLCJmcm9tTmFtZUVudHJpZXNWZXJzaW9uUmVwb3NpdG9yeUFuZERlcGVuZGVuY2llcyIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSIsImJuZk1peGlucyIsImZpbGVzTWl4aW5zIiwiZW50cmllc01peGlucyIsInBhdHRlcm5NaXhpbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQTBHQTs7O2VBQUE7Ozs0REF4R29COzREQUNBO3dEQUNFOzBEQUNFO2lFQUNDOzZEQUNDOzREQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFCLElBQUEsQUFBTUEsd0JBMkZILEFBM0ZIO2FBQU1BLFFBQ1FDLElBQUksRUFBRUMsT0FBTyxFQUFFQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsWUFBWTs4QkFEeERMO1FBRUYsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0UsWUFBWSxHQUFHRDs7aUJBTmxCTDs7WUFTSk8sS0FBQUE7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
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgRW50cmllcyBmcm9tIFwiLi9lbnRyaWVzXCI7XG5pbXBvcnQgVmVyc2lvbiBmcm9tIFwiLi92ZXJzaW9uXCI7XG5pbXBvcnQgYm5mTWl4aW5zIGZyb20gXCIuL21peGlucy9ibmZcIjtcbmltcG9ydCBmaWxlc01peGlucyBmcm9tIFwiLi9taXhpbnMvZmlsZXNcIjtcbmltcG9ydCBEZXBlbmRlbmNpZXMgZnJvbSBcIi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgZW50cmllc01peGlucyBmcm9tIFwiLi9taXhpbnMvZW50cmllc1wiO1xuaW1wb3J0IHBhdHRlcm5NaXhpbnMgZnJvbSBcIi4vbWl4aW5zL3BhdHRlcm5cIjtcblxuaW1wb3J0IHsgcmVhZG1lRmlsZUZyb21GaWxlcywgbWV0YUpTT05GaWxlRnJvbUZpbGVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2ZpbGVzXCI7XG5pbXBvcnQgeyB2ZXJzaW9uRnJvbU5vZGUsIHJlcG9zaXRvcnlGcm9tTm9kZSwgZGVwZW5kZW5jaWVzRnJvbU5vZGUsIG1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGUgfSBmcm9tIFwiLi91dGlsaXRpZXMvbWV0YUpTT05cIjtcblxuY2xhc3MgUmVsZWFzZSB7XG4gIGNvbnN0cnVjdG9yKG5hbWUsIGVudHJpZXMsIHZlcnNpb24sIHJlcG9zaXRvcnksIGRlcGVuZGVuY2llcykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5lbnRyaWVzID0gZW50cmllcztcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIHRoaXMucmVwb3NpdG9yeSA9IHJlcG9zaXRvcnk7XG4gICAgdGhpcy5kZXBlbmRlbmRpZXMgPSBkZXBlbmRlbmNpZXM7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRFbnRyaWVzKCkge1xuICAgIHJldHVybiB0aGlzLmVudHJpZXM7XG4gIH1cblxuICBnZXRWZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnZlcnNpb247XG4gIH1cblxuICBnZXRSZXBvc2l0b3J5KCkge1xuICAgIHJldHVybiB0aGlzLnJlcG9zaXRvcnk7XG4gIH1cblxuICBnZXREZXBlbmRlbmNpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVwZW5kZW5kaWVzO1xuICB9XG5cbiAgZ2V0RGVwZW5kZW5jeU5hbWVzKCkge1xuICAgIGNvbnN0IGRlcGVuZGVuY3lOYW1lcyA9IHRoaXMuZGVwZW5kZW5kaWVzLm1hcERlcGVuZGVuY3koKGRlcGVuZGVuY3kpID0+IHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCk7XG5cbiAgICAgIHJldHVybiBkZXBlbmRlbmN5TmFtZTtcbiAgICB9KTtcblxuICAgIHJldHVybiBkZXBlbmRlbmN5TmFtZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgZW50cmllc0pTT04gPSB0aGlzLmVudHJpZXMudG9KU09OKCksXG4gICAgICAgICAgdmVyc2lvbkpTT04gPSB0aGlzLnZlcnNpb24udG9KU09OKCksXG4gICAgICAgICAgZGVwZW5kZW5jaWVzSlNPTiA9IHRoaXMuZGVwZW5kZW5kaWVzLnRvSlNPTigpLFxuICAgICAgICAgIG5hbWUgPSB0aGlzLm5hbWUsXG4gICAgICAgICAgZW50cmllcyA9IGVudHJpZXNKU09OLCAgLy8vXG4gICAgICAgICAgdmVyc2lvbiA9IHZlcnNpb25KU09OLCAgLy8vXG4gICAgICAgICAgcmVwb3NpdG9yeSA9IHRoaXMucmVwb3NpdG9yeSxcbiAgICAgICAgICBkZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBlbnRyaWVzLFxuICAgICAgICAgICAgdmVyc2lvbixcbiAgICAgICAgICAgIHJlcG9zaXRvcnksXG4gICAgICAgICAgICBkZXBlbmRlbmNpZXNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGxldCB7IGVudHJpZXMsIHZlcnNpb24sIGRlcGVuZGVuY2llcyB9ID0ganNvbjtcblxuICAgIGNvbnN0IHsgbmFtZSwgcmVwb3NpdG9yeSB9ID0ganNvbixcbiAgICAgICAgICBlbnRyaWVzSlNPTiA9IGVudHJpZXMsICAvLy9cbiAgICAgICAgICB2ZXJzaW9uSlNPTSA9IHZlcnNpb24sICAvLy9cbiAgICAgICAgICBkZXBlbmRlbmNpZXNKU09OID0gZGVwZW5kZW5jaWVzOyAvLy9cblxuICAgIGpzb24gPSBlbnRyaWVzSlNPTjsgLy8vXG5cbiAgICBlbnRyaWVzID0gRW50cmllcy5mcm9tSlNPTihqc29uKTsgLy8vXG5cbiAgICBqc29uID0gdmVyc2lvbkpTT007IC8vL1xuXG4gICAgdmVyc2lvbiA9IFZlcnNpb24uZnJvbUpTT04oanNvbik7XG5cbiAgICBqc29uID0gZGVwZW5kZW5jaWVzSlNPTjsgLy8vXG5cbiAgICBkZXBlbmRlbmNpZXMgPSBEZXBlbmRlbmNpZXMuZnJvbUpTT04oanNvbik7XG5cbiAgICBjb25zdCByZWxlYXNlID0gbmV3IFJlbGVhc2UobmFtZSwgZW50cmllcywgdmVyc2lvbiwgcmVwb3NpdG9yeSwgZGVwZW5kZW5jaWVzKTtcblxuICAgIHJldHVybiByZWxlYXNlO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKSB7XG4gICAgbGV0IHJlbGVhc2UgPSBudWxsO1xuXG4gICAgY29uc3QgZmlsZXMgPSBlbnRyaWVzLmdldEZpbGVzKCksXG4gICAgICAgICAgcmVhZG1lRmlsZSA9IHJlYWRtZUZpbGVGcm9tRmlsZXMoZmlsZXMpLFxuICAgICAgICAgIG1ldGFKU09ORmlsZSA9IG1ldGFKU09ORmlsZUZyb21GaWxlcyhmaWxlcyk7XG5cbiAgICBpZiAoKHJlYWRtZUZpbGUgIT09IG51bGwpICYmIChtZXRhSlNPTkZpbGUgIT09IG51bGwpKSB7XG4gICAgICBjb25zdCBtZXRhSlNPTk5vZGUgPSBtZXRhSlNPTk5vZGVGcm9tTWV0YUpTT05GaWxlKG1ldGFKU09ORmlsZSk7XG5cbiAgICAgIGlmIChtZXRhSlNPTk5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IG1ldGFKU09OTm9kZSwgIC8vL1xuICAgICAgICAgICAgICB2ZXJzaW9uID0gdmVyc2lvbkZyb21Ob2RlKG5vZGUpLFxuICAgICAgICAgICAgICByZXBvc2l0b3J5ID0gcmVwb3NpdG9yeUZyb21Ob2RlKG5vZGUpLFxuICAgICAgICAgICAgICBkZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXNGcm9tTm9kZShub2RlKTtcblxuICAgICAgICByZWxlYXNlID0gbmV3IFJlbGVhc2UobmFtZSwgZW50cmllcywgdmVyc2lvbiwgcmVwb3NpdG9yeSwgZGVwZW5kZW5jaWVzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVsZWFzZTtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKFJlbGVhc2UucHJvdG90eXBlLCBibmZNaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihSZWxlYXNlLnByb3RvdHlwZSwgZmlsZXNNaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihSZWxlYXNlLnByb3RvdHlwZSwgZW50cmllc01peGlucyk7XG5PYmplY3QuYXNzaWduKFJlbGVhc2UucHJvdG90eXBlLCBwYXR0ZXJuTWl4aW5zKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVsZWFzZTtcbiJdLCJuYW1lcyI6WyJSZWxlYXNlIiwibmFtZSIsImVudHJpZXMiLCJ2ZXJzaW9uIiwicmVwb3NpdG9yeSIsImRlcGVuZGVuY2llcyIsImRlcGVuZGVuZGllcyIsImdldE5hbWUiLCJnZXRFbnRyaWVzIiwiZ2V0VmVyc2lvbiIsImdldFJlcG9zaXRvcnkiLCJnZXREZXBlbmRlbmNpZXMiLCJnZXREZXBlbmRlbmN5TmFtZXMiLCJkZXBlbmRlbmN5TmFtZXMiLCJtYXBEZXBlbmRlbmN5IiwiZGVwZW5kZW5jeSIsImRlcGVuZGVuY3lOYW1lIiwidG9KU09OIiwiZW50cmllc0pTT04iLCJ2ZXJzaW9uSlNPTiIsImRlcGVuZGVuY2llc0pTT04iLCJqc29uIiwiZnJvbUpTT04iLCJ2ZXJzaW9uSlNPTSIsIkVudHJpZXMiLCJWZXJzaW9uIiwiRGVwZW5kZW5jaWVzIiwicmVsZWFzZSIsImZyb21OYW1lQW5kRW50cmllcyIsImZpbGVzIiwiZ2V0RmlsZXMiLCJyZWFkbWVGaWxlIiwicmVhZG1lRmlsZUZyb21GaWxlcyIsIm1ldGFKU09ORmlsZSIsIm1ldGFKU09ORmlsZUZyb21GaWxlcyIsIm1ldGFKU09OTm9kZSIsIm1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGUiLCJub2RlIiwidmVyc2lvbkZyb21Ob2RlIiwicmVwb3NpdG9yeUZyb21Ob2RlIiwiZGVwZW5kZW5jaWVzRnJvbU5vZGUiLCJPYmplY3QiLCJhc3NpZ24iLCJwcm90b3R5cGUiLCJibmZNaXhpbnMiLCJmaWxlc01peGlucyIsImVudHJpZXNNaXhpbnMiLCJwYXR0ZXJuTWl4aW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE4SEE7OztlQUFBOzs7NERBNUhvQjs0REFDQTt3REFDRTswREFDRTtpRUFDQzs2REFDQzs0REFDQTtzQkFFaUM7d0JBQzZDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXhHLElBQUEsQUFBTUEsd0JBNEdILEFBNUdIO2FBQU1BLFFBQ1FDLElBQUksRUFBRUMsT0FBTyxFQUFFQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsWUFBWTs4QkFEeERMO1FBRUYsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0UsWUFBWSxHQUFHRDs7aUJBTmxCTDs7WUFT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
@@ -41,7 +41,6 @@ _export(exports, {
41
41
  }
42
42
  });
43
43
  var _mkdirp = /*#__PURE__*/ _interopRequireDefault(require("mkdirp"));
44
- var _occamGrammars = require("occam-grammars");
45
44
  var _necessary = require("necessary");
46
45
  var _file = /*#__PURE__*/ _interopRequireDefault(require("../file"));
47
46
  var _files = /*#__PURE__*/ _interopRequireDefault(require("../files"));
@@ -53,15 +52,12 @@ var _directory = /*#__PURE__*/ _interopRequireDefault(require("../directory"));
53
52
  var _name = require("../utilities/name");
54
53
  var _filePath = require("../utilities/filePath");
55
54
  var _content = require("../utilities/content");
56
- var _files1 = require("../utilities/files");
57
- var _metaJSON = require("./metaJSON");
58
55
  function _interopRequireDefault(obj) {
59
56
  return obj && obj.__esModule ? obj : {
60
57
  default: obj
61
58
  };
62
59
  }
63
60
  var concatenatePaths = _necessary.pathUtilities.concatenatePaths, topmostDirectoryPathFromPath = _necessary.pathUtilities.topmostDirectoryPathFromPath, readFile = _necessary.fileSystemUtilities.readFile, writeFile = _necessary.fileSystemUtilities.writeFile, isEntryFile = _necessary.fileSystemUtilities.isEntryFile, readDirectory = _necessary.fileSystemUtilities.readDirectory, isEntryDirectory = _necessary.fileSystemUtilities.isEntryDirectory;
64
- var metaJSONLexer = _occamGrammars.MetaJSONLexer.fromNothing(), metaJSONParser = _occamGrammars.MetaJSONParser.fromNothing();
65
61
  function loadFile(path, projectsDirectoryPath) {
66
62
  var file = null;
67
63
  try {
@@ -100,26 +96,11 @@ function loadEntries(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecogn
100
96
  return entries;
101
97
  }
102
98
  function loadRelease(topmostDirectoryName, projectsDirectoryPath) {
103
- var release = null;
104
- var name = topmostDirectoryName, loadOnlyRecognisedFiles = true, entries = loadEntries(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles), files = entries.getFiles(), readmeFile = (0, _files1.readmeFileFromFiles)(files), metaJSONFile = (0, _files1.metaJSONFileFromFiles)(files);
105
- if (readmeFile !== null && metaJSONFile !== null) {
106
- var metaJSONNode = metaJSONNodeFromMetaJSONFile(metaJSONFile);
107
- if (metaJSONNode !== null) {
108
- var node = metaJSONNode, version = (0, _metaJSON.versionFromNode)(node), repository = (0, _metaJSON.repositoryFromNode)(node), dependencies = (0, _metaJSON.dependenciesFromNode)(node);
109
- release = Release.fromNameEntriesVersionRepositoryAndDependencies(name, entries, version, repository, dependencies);
110
- }
111
- }
99
+ var name = topmostDirectoryName, loadOnlyRecognisedFiles = true, entries = loadEntries(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles), release = Release.fromNameAndEntries(name, entries);
112
100
  return release;
113
101
  }
114
102
  function loadProject(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles) {
115
- var name = topmostDirectoryName, entries = loadEntries(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles), files = entries.getFiles(), metaJSONFile = (0, _files1.metaJSONFileFromFiles)(files);
116
- var repository = null, dependencies = [];
117
- if (metaJSONFile !== null) {
118
- var metaJSONNode = metaJSONNodeFromMetaJSONFile(metaJSONFile), node = metaJSONNode;
119
- repository = (0, _metaJSON.repositoryFromNode)(node);
120
- dependencies = (0, _metaJSON.dependenciesFromNode)(node);
121
- }
122
- var project = _project.default.fromNameEntriesRepositoryAndDependencies(name, entries, repository, dependencies);
103
+ var name = topmostDirectoryName, entries = loadEntries(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles), project = _project.default.fromNameAndEntries(name, entries);
123
104
  return project;
124
105
  }
125
106
  function loadReleases(projectsDirectoryPath) {
@@ -162,10 +143,6 @@ function loadDirectory(path, projectsDirectoryPath) {
162
143
  }
163
144
  return directory;
164
145
  }
165
- function metaJSONNodeFromMetaJSONFile(metaJSONFile) {
166
- var content = metaJSONFile.getContent(), tokens = metaJSONLexer.tokenise(content), node = metaJSONParser.parse(tokens), metaJSONNode = node; ///
167
- return metaJSONNode;
168
- }
169
146
  function entriesFromRelativeDirectoryPath(entries, relativeDirectoryPath, projectsDirectoryPath, loadOnlyRecognisedFiles) {
170
147
  var absoluteDirectoryPath = concatenatePaths(projectsDirectoryPath, relativeDirectoryPath), subEntryNames = readDirectory(absoluteDirectoryPath);
171
148
  subEntryNames.forEach(function(subEntryName) {
@@ -223,4 +200,4 @@ function topmostDirectoryNamesFromProjectsDirectoryPath(projectsDirectoryPath) {
223
200
  return topmostDirectoryNames;
224
201
  }
225
202
 
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCBta2RpcnAgZnJvbSBcIm1rZGlycFwiO1xyXG5cclxuaW1wb3J0IHsgTWV0YUpTT05MZXhlciwgTWV0YUpTT05QYXJzZXIgfSBmcm9tIFwib2NjYW0tZ3JhbW1hcnNcIjtcclxuaW1wb3J0IHsgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcclxuXHJcbmltcG9ydCBGaWxlIGZyb20gXCIuLi9maWxlXCI7XHJcbmltcG9ydCBGaWxlcyBmcm9tIFwiLi4vZmlsZXNcIjtcclxuaW1wb3J0IEVudHJpZXMgZnJvbSBcIi4uL2VudHJpZXNcIjtcclxuaW1wb3J0IFByb2plY3QgZnJvbSBcIi4uL3Byb2plY3RcIjtcclxuaW1wb3J0IFByb2plY3RzIGZyb20gXCIuLi9wcm9qZWN0c1wiO1xyXG5pbXBvcnQgUmVsZWFzZXMgZnJvbSBcIi4uL3JlbGVhc2VzXCI7XHJcbmltcG9ydCBEaXJlY3RvcnkgZnJvbSBcIi4uL2RpcmVjdG9yeVwiO1xyXG5cclxuaW1wb3J0IHsgaXNOYW1lSGlkZGVuTmFtZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvbmFtZVwiO1xyXG5pbXBvcnQgeyBpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9maWxlUGF0aFwiO1xyXG5pbXBvcnQgeyBjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRlbnRcIjtcclxuaW1wb3J0IHsgbWV0YUpTT05GaWxlRnJvbUZpbGVzLCByZWFkbWVGaWxlRnJvbUZpbGVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9maWxlc1wiO1xyXG5pbXBvcnQgeyB2ZXJzaW9uRnJvbU5vZGUsIHJlcG9zaXRvcnlGcm9tTm9kZSwgZGVwZW5kZW5jaWVzRnJvbU5vZGUgfSBmcm9tIFwiLi9tZXRhSlNPTlwiO1xyXG5cclxuY29uc3QgeyBjb25jYXRlbmF0ZVBhdGhzLCB0b3Btb3N0RGlyZWN0b3J5UGF0aEZyb21QYXRoIH0gPSBwYXRoVXRpbGl0aWVzLFxyXG4gICAgICB7IHJlYWRGaWxlLCB3cml0ZUZpbGUsIGlzRW50cnlGaWxlLCByZWFkRGlyZWN0b3J5LCBpc0VudHJ5RGlyZWN0b3J5IH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xyXG5cclxuY29uc3QgbWV0YUpTT05MZXhlciA9IE1ldGFKU09OTGV4ZXIuZnJvbU5vdGhpbmcoKSxcclxuICAgICAgbWV0YUpTT05QYXJzZXIgPSBNZXRhSlNPTlBhcnNlci5mcm9tTm90aGluZygpO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoKSxcclxuICAgICAgICAgIGVudHJ5RmlsZSA9IGlzRW50cnlGaWxlKGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgaWYgKGVudHJ5RmlsZSkge1xyXG4gICAgICBsZXQgY29udGVudCA9IHJlYWRGaWxlKGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICBjb250ZW50ID0gY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlKGNvbnRlbnQpOyAgLy8vXHJcblxyXG4gICAgICBmaWxlID0gRmlsZS5mcm9tUGF0aEFuZENvbnRlbnQocGF0aCwgY29udGVudCk7XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzYXZlRmlsZShmaWxlLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBwYXRoID0gZmlsZS5nZXRQYXRoKCksXHJcbiAgICAgICAgY29udGVudCA9IGZpbGUuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgIGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoKSxcclxuICAgICAgICB0b3Btb3N0QWJzb2x1dGVEaXJlY3RvcnlQYXRoID0gdG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aChhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICBta2RpcnAuc3luYyh0b3Btb3N0QWJzb2x1dGVEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgd3JpdGVGaWxlKGFic29sdXRlUGF0aCwgY29udGVudCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkRmlsZXMocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGNvbnN0IGZpbGVzID0gRmlsZXMuZnJvbU5vdGhpbmcoKTtcclxuXHJcbiAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgZmlsZXMuYWRkRmlsZShmaWxlKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGVzKGZpbGVzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBmaWxlcy5mb3JFYWNoRmlsZSgoZmlsZSkgPT4ge1xyXG4gICAgc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRFbnRyaWVzKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKSB7XHJcbiAgY29uc3QgZW50cmllcyA9IEVudHJpZXMuZnJvbU5vdGhpbmcoKSxcclxuICAgICAgICByZWxhdGl2ZURpcmVjdG9yeVBhdGggPSB0b3Btb3N0RGlyZWN0b3J5TmFtZTsgIC8vL1xyXG5cclxuICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChlbnRyaWVzLCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpO1xyXG5cclxuICByZXR1cm4gZW50cmllcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRSZWxlYXNlKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgcmVsZWFzZSA9IG51bGw7XHJcblxyXG4gIGNvbnN0IG5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZSwgIC8vL1xyXG4gICAgICAgIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzID0gdHJ1ZSxcclxuICAgICAgICBlbnRyaWVzID0gbG9hZEVudHJpZXModG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpLFxyXG4gICAgICAgIGZpbGVzID0gZW50cmllcy5nZXRGaWxlcygpLFxyXG4gICAgICAgIHJlYWRtZUZpbGUgPSByZWFkbWVGaWxlRnJvbUZpbGVzKGZpbGVzKSxcclxuICAgICAgICBtZXRhSlNPTkZpbGUgPSBtZXRhSlNPTkZpbGVGcm9tRmlsZXMoZmlsZXMpO1xyXG5cclxuICBpZiAoKHJlYWRtZUZpbGUgIT09IG51bGwpICYmIChtZXRhSlNPTkZpbGUgIT09IG51bGwpKSB7XHJcbiAgICBjb25zdCBtZXRhSlNPTk5vZGUgPSBtZXRhSlNPTk5vZGVGcm9tTWV0YUpTT05GaWxlKG1ldGFKU09ORmlsZSk7XHJcblxyXG4gICAgaWYgKG1ldGFKU09OTm9kZSAhPT0gbnVsbCkge1xyXG4gICAgICBjb25zdCBub2RlID0gbWV0YUpTT05Ob2RlLCAgLy8vXHJcbiAgICAgICAgICAgIHZlcnNpb24gPSB2ZXJzaW9uRnJvbU5vZGUobm9kZSksXHJcbiAgICAgICAgICAgIHJlcG9zaXRvcnkgPSByZXBvc2l0b3J5RnJvbU5vZGUobm9kZSksXHJcbiAgICAgICAgICAgIGRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llc0Zyb21Ob2RlKG5vZGUpO1xyXG5cclxuICAgICAgcmVsZWFzZSA9IFJlbGVhc2UuZnJvbU5hbWVFbnRyaWVzVmVyc2lvblJlcG9zaXRvcnlBbmREZXBlbmRlbmNpZXMobmFtZSwgZW50cmllcywgdmVyc2lvbiwgcmVwb3NpdG9yeSwgZGVwZW5kZW5jaWVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiByZWxlYXNlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZFByb2plY3QodG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpIHtcclxuICBjb25zdCBuYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWUsICAvLy9cclxuICAgICAgICBlbnRyaWVzID0gbG9hZEVudHJpZXModG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpLFxyXG4gICAgICAgIGZpbGVzID0gZW50cmllcy5nZXRGaWxlcygpLFxyXG4gICAgICAgIG1ldGFKU09ORmlsZSA9IG1ldGFKU09ORmlsZUZyb21GaWxlcyhmaWxlcyk7XHJcblxyXG4gIGxldCByZXBvc2l0b3J5ID0gbnVsbCxcclxuICAgICAgZGVwZW5kZW5jaWVzID0gW107XHJcblxyXG4gIGlmIChtZXRhSlNPTkZpbGUgIT09IG51bGwpIHtcclxuICAgIGNvbnN0IG1ldGFKU09OTm9kZSA9IG1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGUobWV0YUpTT05GaWxlKSxcclxuICAgICAgICAgIG5vZGUgPSBtZXRhSlNPTk5vZGU7XHJcblxyXG4gICAgcmVwb3NpdG9yeSA9IHJlcG9zaXRvcnlGcm9tTm9kZShub2RlKTtcclxuICAgIGRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llc0Zyb21Ob2RlKG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcHJvamVjdCA9IFByb2plY3QuZnJvbU5hbWVFbnRyaWVzUmVwb3NpdG9yeUFuZERlcGVuZGVuY2llcyhuYW1lLCBlbnRyaWVzLCByZXBvc2l0b3J5LCBkZXBlbmRlbmNpZXMpO1xyXG5cclxuICByZXR1cm4gcHJvamVjdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRSZWxlYXNlcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgcmVsZWFzZXM7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCByZWxlYXNlcyA9IFJlbGVhc2VzLmZyb21Ob3RoaW5nKCksXHJcbiAgICAgICAgICB0b3Btb3N0RmlsZU5hbWVzID0gdG9wbW9zdEZpbGVOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICB0b3Btb3N0RmlsZU5hbWVzLmZvckVhY2goKHRvcG1vc3RGaWxlTmFtZSkgPT4ge1xyXG4gICAgICBjb25zdCByZWxlYXNlID0gbG9hZFJlbGVhc2UodG9wbW9zdEZpbGVOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKHJlbGVhc2UgIT09IG51bGwpIHtcclxuICAgICAgICByZWxlYXNlcy5hZGRSZWxlYXNlKHJlbGVhc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgcmVsZWFzZXMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJlbGVhc2VzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZFByb2plY3RzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpIHtcclxuICBsZXQgcHJvamVjdHMgPSBQcm9qZWN0cy5mcm9tTm90aGluZygpO1xyXG5cclxuICB0cnkge1xyXG4gICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWVzID0gdG9wbW9zdERpcmVjdG9yeU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lcy5mb3JFYWNoKCh0b3Btb3N0RGlyZWN0b3J5TmFtZSkgPT4ge1xyXG4gICAgICBjb25zdCBwcm9qZWN0ID0gbG9hZFByb2plY3QodG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpO1xyXG5cclxuICAgICAgcHJvamVjdHMuYWRkUHJvamVjdChwcm9qZWN0KTtcclxuICAgIH0pO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICBwcm9qZWN0cyA9IG51bGw7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcHJvamVjdHM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkRGlyZWN0b3J5KHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBkaXJlY3RvcnkgPSBudWxsO1xyXG5cclxuICB0cnkge1xyXG4gICAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGgpLFxyXG4gICAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgaWYgKGVudHJ5RGlyZWN0b3J5KSB7XHJcbiAgICAgIGRpcmVjdG9yeSA9IERpcmVjdG9yeS5mcm9tUGF0aChwYXRoKTtcclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gZGlyZWN0b3J5O1xyXG59XHJcblxyXG5mdW5jdGlvbiBtZXRhSlNPTk5vZGVGcm9tTWV0YUpTT05GaWxlKG1ldGFKU09ORmlsZSkge1xyXG4gIGNvbnN0IGNvbnRlbnQgPSBtZXRhSlNPTkZpbGUuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgIHRva2VucyA9IG1ldGFKU09OTGV4ZXIudG9rZW5pc2UoY29udGVudCksXHJcbiAgICAgICAgbm9kZSA9IG1ldGFKU09OUGFyc2VyLnBhcnNlKHRva2VucyksXHJcbiAgICAgICAgbWV0YUpTT05Ob2RlID0gbm9kZTsgIC8vL1xyXG5cclxuICByZXR1cm4gbWV0YUpTT05Ob2RlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChlbnRyaWVzLCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpIHtcclxuICBjb25zdCBhYnNvbHV0ZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICBzdWJFbnRyeU5hbWVzID0gcmVhZERpcmVjdG9yeShhYnNvbHV0ZURpcmVjdG9yeVBhdGgpO1xyXG5cclxuICBzdWJFbnRyeU5hbWVzLmZvckVhY2goKHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3Qgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIGxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzID0gIWxvYWRPbmx5UmVjb2duaXNlZEZpbGVzO1xyXG5cclxuICAgIGlmICghc3ViRW50cnlOYW1lSGlkZGVuTmFtZSkge1xyXG4gICAgICBjb25zdCBwYXRoID0gY29uY2F0ZW5hdGVQYXRocyhyZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICAgIGRpcmVjdG9yeSA9IGxvYWREaXJlY3RvcnkocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICAgIGlmIChkaXJlY3RvcnkgIT09IG51bGwpIHtcclxuICAgICAgICBjb25zdCBkaXJlY3RvcnlQYXRoID0gcGF0aDsgLy8vXHJcblxyXG4gICAgICAgIGlmIChsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gICAgICAgICAgZW50cmllcy5hZGREaXJlY3RvcnkoZGlyZWN0b3J5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGVudHJpZXMsIGRpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpOyAvLy9cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBmaWxlID0gbG9hZEZpbGUocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGUgIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gZmlsZS5nZXRQYXRoKCksXHJcbiAgICAgICAgICAgICAgICBmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCA9IGlzRmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgoZmlsZVBhdGgpLFxyXG4gICAgICAgICAgICAgICAgZmlsZVJlY29nbmlzZWRGaWxlID0gZmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGg7ICAvLy9cclxuXHJcbiAgICAgICAgICBpZiAoZmlsZVJlY29nbmlzZWRGaWxlIHx8IGxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgICAgICAgICAgIGVudHJpZXMuYWRkRmlsZShmaWxlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gdG9wbW9zdEZpbGVOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IHRvcG1vc3RGaWxlTmFtZXM7XHJcblxyXG4gIGNvbnN0IHN1YkVudHJ5TmFtZXMgPSByZWFkRGlyZWN0b3J5KHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHRvcG1vc3RGaWxlTmFtZXMgPSBzdWJFbnRyeU5hbWVzLnJlZHVjZSgodG9wbW9zdEZpbGVOYW1lcywgc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVN1YkVudHJ5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKTtcclxuXHJcbiAgICBpZiAoIXN1YkVudHJ5TmFtZUhpZGRlbk5hbWUpIHtcclxuICAgICAgY29uc3Qgc3ViRW50cnlGaWxlID0gaXNFbnRyeUZpbGUoYWJzb2x1dGVTdWJFbnRyeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKHN1YkVudHJ5RmlsZSkge1xyXG4gICAgICAgIGNvbnN0IHRvcG1vc3RGaWxlTmFtZSA9IHN1YkVudHJ5TmFtZTsgIC8vL1xyXG5cclxuICAgICAgICB0b3Btb3N0RmlsZU5hbWVzLnB1c2godG9wbW9zdEZpbGVOYW1lKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRvcG1vc3RGaWxlTmFtZXM7XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gdG9wbW9zdEZpbGVOYW1lcztcclxufVxyXG5cclxuZnVuY3Rpb24gdG9wbW9zdERpcmVjdG9yeU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgdG9wbW9zdERpcmVjdG9yeU5hbWVzO1xyXG5cclxuICBjb25zdCBzdWJFbnRyeU5hbWVzID0gcmVhZERpcmVjdG9yeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMgPSBzdWJFbnRyeU5hbWVzLnJlZHVjZSgodG9wbW9zdERpcmVjdG9yeU5hbWVzLCBzdWJFbnRyeU5hbWUpID0+IHtcclxuICAgIGNvbnN0IGFic29sdXRlU3ViRW50cnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICBzdWJFbnRyeU5hbWVIaWRkZW5OYW1lID0gaXNOYW1lSGlkZGVuTmFtZShzdWJFbnRyeU5hbWUpO1xyXG5cclxuICAgIGlmICghc3ViRW50cnlOYW1lSGlkZGVuTmFtZSkge1xyXG4gICAgICBjb25zdCBzdWJFbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVTdWJFbnRyeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKHN1YkVudHJ5RGlyZWN0b3J5KSB7XHJcbiAgICAgICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSBzdWJFbnRyeU5hbWU7ICAvLy9cclxuXHJcbiAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWVzLnB1c2godG9wbW9zdERpcmVjdG9yeU5hbWUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdG9wbW9zdERpcmVjdG9yeU5hbWVzO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxufVxyXG4iXSwibmFtZXMiOlsibG9hZEZpbGUiLCJzYXZlRmlsZSIsImxvYWRGaWxlcyIsInNhdmVGaWxlcyIsImxvYWRFbnRyaWVzIiwibG9hZFJlbGVhc2UiLCJsb2FkUHJvamVjdCIsImxvYWRSZWxlYXNlcyIsImxvYWRQcm9qZWN0cyIsImxvYWREaXJlY3RvcnkiLCJjb25jYXRlbmF0ZVBhdGhzIiwicGF0aFV0aWxpdGllcyIsInRvcG1vc3REaXJlY3RvcnlQYXRoRnJvbVBhdGgiLCJyZWFkRmlsZSIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJ3cml0ZUZpbGUiLCJpc0VudHJ5RmlsZSIsInJlYWREaXJlY3RvcnkiLCJpc0VudHJ5RGlyZWN0b3J5IiwibWV0YUpTT05MZXhlciIsIk1ldGFKU09OTGV4ZXIiLCJmcm9tTm90aGluZyIsIm1ldGFKU09OUGFyc2VyIiwiTWV0YUpTT05QYXJzZXIiLCJwYXRoIiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwiZmlsZSIsImFic29sdXRlUGF0aCIsImVudHJ5RmlsZSIsImNvbnRlbnQiLCJjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UiLCJGaWxlIiwiZnJvbVBhdGhBbmRDb250ZW50IiwiZXJyb3IiLCJnZXRQYXRoIiwiZ2V0Q29udGVudCIsInRvcG1vc3RBYnNvbHV0ZURpcmVjdG9yeVBhdGgiLCJta2RpcnAiLCJzeW5jIiwicGF0aHMiLCJmaWxlcyIsIkZpbGVzIiwiZm9yRWFjaCIsImFkZEZpbGUiLCJmb3JFYWNoRmlsZSIsInRvcG1vc3REaXJlY3RvcnlOYW1lIiwibG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMiLCJlbnRyaWVzIiwiRW50cmllcyIsInJlbGF0aXZlRGlyZWN0b3J5UGF0aCIsImVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoIiwicmVsZWFzZSIsIm5hbWUiLCJnZXRGaWxlcyIsInJlYWRtZUZpbGUiLCJyZWFkbWVGaWxlRnJvbUZpbGVzIiwibWV0YUpTT05GaWxlIiwibWV0YUpTT05GaWxlRnJvbUZpbGVzIiwibWV0YUpTT05Ob2RlIiwibWV0YUpTT05Ob2RlRnJvbU1ldGFKU09ORmlsZSIsIm5vZGUiLCJ2ZXJzaW9uIiwidmVyc2lvbkZyb21Ob2RlIiwicmVwb3NpdG9yeSIsInJlcG9zaXRvcnlGcm9tTm9kZSIsImRlcGVuZGVuY2llcyIsImRlcGVuZGVuY2llc0Zyb21Ob2RlIiwiUmVsZWFzZSIsImZyb21OYW1lRW50cmllc1ZlcnNpb25SZXBvc2l0b3J5QW5kRGVwZW5kZW5jaWVzIiwicHJvamVjdCIsIlByb2plY3QiLCJmcm9tTmFtZUVudHJpZXNSZXBvc2l0b3J5QW5kRGVwZW5kZW5jaWVzIiwicmVsZWFzZXMiLCJSZWxlYXNlcyIsInRvcG1vc3RGaWxlTmFtZXMiLCJ0b3Btb3N0RmlsZU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aCIsInRvcG1vc3RGaWxlTmFtZSIsImFkZFJlbGVhc2UiLCJwcm9qZWN0cyIsIlByb2plY3RzIiwidG9wbW9zdERpcmVjdG9yeU5hbWVzIiwidG9wbW9zdERpcmVjdG9yeU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aCIsImFkZFByb2plY3QiLCJkaXJlY3RvcnkiLCJlbnRyeURpcmVjdG9yeSIsIkRpcmVjdG9yeSIsImZyb21QYXRoIiwidG9rZW5zIiwidG9rZW5pc2UiLCJwYXJzZSIsImFic29sdXRlRGlyZWN0b3J5UGF0aCIsInN1YkVudHJ5TmFtZXMiLCJzdWJFbnRyeU5hbWUiLCJzdWJFbnRyeU5hbWVIaWRkZW5OYW1lIiwiaXNOYW1lSGlkZGVuTmFtZSIsImxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzIiwiZGlyZWN0b3J5UGF0aCIsImFkZERpcmVjdG9yeSIsImZpbGVQYXRoIiwiZmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgiLCJpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoIiwiZmlsZVJlY29nbmlzZWRGaWxlIiwicmVkdWNlIiwiYWJzb2x1dGVTdWJFbnRyeVBhdGgiLCJzdWJFbnRyeUZpbGUiLCJwdXNoIiwic3ViRW50cnlEaXJlY3RvcnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQTJCZ0JBLFFBQVE7ZUFBUkE7O0lBcUJBQyxRQUFRO2VBQVJBOztJQVdBQyxTQUFTO2VBQVRBOztJQVlBQyxTQUFTO2VBQVRBOztJQU1BQyxXQUFXO2VBQVhBOztJQVNBQyxXQUFXO2VBQVhBOztJQTBCQUMsV0FBVztlQUFYQTs7SUFzQkFDLFlBQVk7ZUFBWkE7O0lBcUJB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
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCBta2RpcnAgZnJvbSBcIm1rZGlycFwiO1xyXG5cclxuaW1wb3J0IHsgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcclxuXHJcbmltcG9ydCBGaWxlIGZyb20gXCIuLi9maWxlXCI7XHJcbmltcG9ydCBGaWxlcyBmcm9tIFwiLi4vZmlsZXNcIjtcclxuaW1wb3J0IEVudHJpZXMgZnJvbSBcIi4uL2VudHJpZXNcIjtcclxuaW1wb3J0IFByb2plY3QgZnJvbSBcIi4uL3Byb2plY3RcIjtcclxuaW1wb3J0IFByb2plY3RzIGZyb20gXCIuLi9wcm9qZWN0c1wiO1xyXG5pbXBvcnQgUmVsZWFzZXMgZnJvbSBcIi4uL3JlbGVhc2VzXCI7XHJcbmltcG9ydCBEaXJlY3RvcnkgZnJvbSBcIi4uL2RpcmVjdG9yeVwiO1xyXG5cclxuaW1wb3J0IHsgaXNOYW1lSGlkZGVuTmFtZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvbmFtZVwiO1xyXG5pbXBvcnQgeyBpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9maWxlUGF0aFwiO1xyXG5pbXBvcnQgeyBjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRlbnRcIjtcclxuXHJcbmNvbnN0IHsgY29uY2F0ZW5hdGVQYXRocywgdG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aCB9ID0gcGF0aFV0aWxpdGllcyxcclxuICAgICAgeyByZWFkRmlsZSwgd3JpdGVGaWxlLCBpc0VudHJ5RmlsZSwgcmVhZERpcmVjdG9yeSwgaXNFbnRyeURpcmVjdG9yeSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgZmlsZSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgICBlbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGlmIChlbnRyeUZpbGUpIHtcclxuICAgICAgbGV0IGNvbnRlbnQgPSByZWFkRmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xyXG5cclxuICAgICAgZmlsZSA9IEZpbGUuZnJvbVBhdGhBbmRDb250ZW50KHBhdGgsIGNvbnRlbnQpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiBmaWxlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgcGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxyXG4gICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKSxcclxuICAgICAgICBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgdG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCA9IHRvcG1vc3REaXJlY3RvcnlQYXRoRnJvbVBhdGgoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgbWtkaXJwLnN5bmModG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHdyaXRlRmlsZShhYnNvbHV0ZVBhdGgsIGNvbnRlbnQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZEZpbGVzKHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBmaWxlcyA9IEZpbGVzLmZyb21Ob3RoaW5nKCk7XHJcblxyXG4gIHBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcclxuICAgIGNvbnN0IGZpbGUgPSBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgIGZpbGVzLmFkZEZpbGUoZmlsZSk7XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiBmaWxlcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVGaWxlcyhmaWxlcywgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgZmlsZXMuZm9yRWFjaEZpbGUoKGZpbGUpID0+IHtcclxuICAgIHNhdmVGaWxlKGZpbGUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkRW50cmllcyh0b3Btb3N0RGlyZWN0b3J5TmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcykge1xyXG4gIGNvbnN0IGVudHJpZXMgPSBFbnRyaWVzLmZyb21Ob3RoaW5nKCksXHJcbiAgICAgICAgcmVsYXRpdmVEaXJlY3RvcnlQYXRoID0gdG9wbW9zdERpcmVjdG9yeU5hbWU7ICAvLy9cclxuXHJcbiAgZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgoZW50cmllcywgcmVsYXRpdmVEaXJlY3RvcnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKTtcclxuXHJcbiAgcmV0dXJuIGVudHJpZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUmVsZWFzZSh0b3Btb3N0RGlyZWN0b3J5TmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgbmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lLCAgLy8vXHJcbiAgICAgICAgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMgPSB0cnVlLFxyXG4gICAgICAgIGVudHJpZXMgPSBsb2FkRW50cmllcyh0b3Btb3N0RGlyZWN0b3J5TmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcyksXHJcbiAgICAgICAgcmVsZWFzZSA9IFJlbGVhc2UuZnJvbU5hbWVBbmRFbnRyaWVzKG5hbWUsIGVudHJpZXMpO1xyXG5cclxuICByZXR1cm4gcmVsZWFzZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRQcm9qZWN0KHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKSB7XHJcbiAgY29uc3QgbmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lLCAgLy8vXHJcbiAgICAgICAgZW50cmllcyA9IGxvYWRFbnRyaWVzKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKSxcclxuICAgICAgICBwcm9qZWN0ID0gUHJvamVjdC5mcm9tTmFtZUFuZEVudHJpZXMobmFtZSwgZW50cmllcyk7XHJcblxyXG4gIHJldHVybiBwcm9qZWN0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZFJlbGVhc2VzKHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCByZWxlYXNlcztcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHJlbGVhc2VzID0gUmVsZWFzZXMuZnJvbU5vdGhpbmcoKSxcclxuICAgICAgICAgIHRvcG1vc3RGaWxlTmFtZXMgPSB0b3Btb3N0RmlsZU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgIHRvcG1vc3RGaWxlTmFtZXMuZm9yRWFjaCgodG9wbW9zdEZpbGVOYW1lKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlbGVhc2UgPSBsb2FkUmVsZWFzZSh0b3Btb3N0RmlsZU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgICBpZiAocmVsZWFzZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIHJlbGVhc2VzLmFkZFJlbGVhc2UocmVsZWFzZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICByZWxlYXNlcyA9IG51bGw7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcmVsZWFzZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcykge1xyXG4gIGxldCBwcm9qZWN0cyA9IFByb2plY3RzLmZyb21Ob3RoaW5nKCk7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZXMgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoKHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgdG9wbW9zdERpcmVjdG9yeU5hbWVzLmZvckVhY2goKHRvcG1vc3REaXJlY3RvcnlOYW1lKSA9PiB7XHJcbiAgICAgIGNvbnN0IHByb2plY3QgPSBsb2FkUHJvamVjdCh0b3Btb3N0RGlyZWN0b3J5TmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcyk7XHJcblxyXG4gICAgICBwcm9qZWN0cy5hZGRQcm9qZWN0KHByb2plY3QpO1xyXG4gICAgfSk7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIHByb2plY3RzID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHJldHVybiBwcm9qZWN0cztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWREaXJlY3RvcnkocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IGRpcmVjdG9yeSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgICBlbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICBpZiAoZW50cnlEaXJlY3RvcnkpIHtcclxuICAgICAgZGlyZWN0b3J5ID0gRGlyZWN0b3J5LmZyb21QYXRoKHBhdGgpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiBkaXJlY3Rvcnk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGVudHJpZXMsIHJlbGF0aXZlRGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcykge1xyXG4gIGNvbnN0IGFic29sdXRlRGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCByZWxhdGl2ZURpcmVjdG9yeVBhdGgpLFxyXG4gICAgICAgIHN1YkVudHJ5TmFtZXMgPSByZWFkRGlyZWN0b3J5KGFic29sdXRlRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHN1YkVudHJ5TmFtZXMuZm9yRWFjaCgoc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBzdWJFbnRyeU5hbWVIaWRkZW5OYW1lID0gaXNOYW1lSGlkZGVuTmFtZShzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMgPSAhbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXM7XHJcblxyXG4gICAgaWYgKCFzdWJFbnRyeU5hbWVIaWRkZW5OYW1lKSB7XHJcbiAgICAgIGNvbnN0IHBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHJlbGF0aXZlRGlyZWN0b3J5UGF0aCwgc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgICAgZGlyZWN0b3J5ID0gbG9hZERpcmVjdG9yeShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKGRpcmVjdG9yeSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeVBhdGggPSBwYXRoOyAvLy9cclxuXHJcbiAgICAgICAgaWYgKGxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgICAgICAgICBlbnRyaWVzLmFkZERpcmVjdG9yeShkaXJlY3RvcnkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgoZW50cmllcywgZGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcyk7IC8vL1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKSxcclxuICAgICAgICAgICAgICAgIGZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoID0gaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aChmaWxlUGF0aCksXHJcbiAgICAgICAgICAgICAgICBmaWxlUmVjb2duaXNlZEZpbGUgPSBmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aDsgIC8vL1xyXG5cclxuICAgICAgICAgIGlmIChmaWxlUmVjb2duaXNlZEZpbGUgfHwgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgICAgZW50cmllcy5hZGRGaWxlKGZpbGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0b3Btb3N0RmlsZU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgdG9wbW9zdEZpbGVOYW1lcztcclxuXHJcbiAgY29uc3Qgc3ViRW50cnlOYW1lcyA9IHJlYWREaXJlY3RvcnkocHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgdG9wbW9zdEZpbGVOYW1lcyA9IHN1YkVudHJ5TmFtZXMucmVkdWNlKCh0b3Btb3N0RmlsZU5hbWVzLCBzdWJFbnRyeU5hbWUpID0+IHtcclxuICAgIGNvbnN0IGFic29sdXRlU3ViRW50cnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICBzdWJFbnRyeU5hbWVIaWRkZW5OYW1lID0gaXNOYW1lSGlkZGVuTmFtZShzdWJFbnRyeU5hbWUpO1xyXG5cclxuICAgIGlmICghc3ViRW50cnlOYW1lSGlkZGVuTmFtZSkge1xyXG4gICAgICBjb25zdCBzdWJFbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVN1YkVudHJ5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoc3ViRW50cnlGaWxlKSB7XHJcbiAgICAgICAgY29uc3QgdG9wbW9zdEZpbGVOYW1lID0gc3ViRW50cnlOYW1lOyAgLy8vXHJcblxyXG4gICAgICAgIHRvcG1vc3RGaWxlTmFtZXMucHVzaCh0b3Btb3N0RmlsZU5hbWUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdG9wbW9zdEZpbGVOYW1lcztcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiB0b3Btb3N0RmlsZU5hbWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0b3Btb3N0RGlyZWN0b3J5TmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoKHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcblxyXG4gIGNvbnN0IHN1YkVudHJ5TmFtZXMgPSByZWFkRGlyZWN0b3J5KHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHRvcG1vc3REaXJlY3RvcnlOYW1lcyA9IHN1YkVudHJ5TmFtZXMucmVkdWNlKCh0b3Btb3N0RGlyZWN0b3J5TmFtZXMsIHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3QgYWJzb2x1dGVTdWJFbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZUhpZGRlbk5hbWUgPSBpc05hbWVIaWRkZW5OYW1lKHN1YkVudHJ5TmFtZSk7XHJcblxyXG4gICAgaWYgKCFzdWJFbnRyeU5hbWVIaWRkZW5OYW1lKSB7XHJcbiAgICAgIGNvbnN0IHN1YkVudHJ5RGlyZWN0b3J5ID0gaXNFbnRyeURpcmVjdG9yeShhYnNvbHV0ZVN1YkVudHJ5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoc3ViRW50cnlEaXJlY3RvcnkpIHtcclxuICAgICAgICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHN1YkVudHJ5TmFtZTsgIC8vL1xyXG5cclxuICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMucHVzaCh0b3Btb3N0RGlyZWN0b3J5TmFtZSlcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gdG9wbW9zdERpcmVjdG9yeU5hbWVzO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJsb2FkRmlsZSIsInNhdmVGaWxlIiwibG9hZEZpbGVzIiwic2F2ZUZpbGVzIiwibG9hZEVudHJpZXMiLCJsb2FkUmVsZWFzZSIsImxvYWRQcm9qZWN0IiwibG9hZFJlbGVhc2VzIiwibG9hZFByb2plY3RzIiwibG9hZERpcmVjdG9yeSIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwidG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aCIsInJlYWRGaWxlIiwiZmlsZVN5c3RlbVV0aWxpdGllcyIsIndyaXRlRmlsZSIsImlzRW50cnlGaWxlIiwicmVhZERpcmVjdG9yeSIsImlzRW50cnlEaXJlY3RvcnkiLCJwYXRoIiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwiZmlsZSIsImFic29sdXRlUGF0aCIsImVudHJ5RmlsZSIsImNvbnRlbnQiLCJjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UiLCJGaWxlIiwiZnJvbVBhdGhBbmRDb250ZW50IiwiZXJyb3IiLCJnZXRQYXRoIiwiZ2V0Q29udGVudCIsInRvcG1vc3RBYnNvbHV0ZURpcmVjdG9yeVBhdGgiLCJta2RpcnAiLCJzeW5jIiwicGF0aHMiLCJmaWxlcyIsIkZpbGVzIiwiZnJvbU5vdGhpbmciLCJmb3JFYWNoIiwiYWRkRmlsZSIsImZvckVhY2hGaWxlIiwidG9wbW9zdERpcmVjdG9yeU5hbWUiLCJsb2FkT25seVJlY29nbmlzZWRGaWxlcyIsImVudHJpZXMiLCJFbnRyaWVzIiwicmVsYXRpdmVEaXJlY3RvcnlQYXRoIiwiZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgiLCJuYW1lIiwicmVsZWFzZSIsIlJlbGVhc2UiLCJmcm9tTmFtZUFuZEVudHJpZXMiLCJwcm9qZWN0IiwiUHJvamVjdCIsInJlbGVhc2VzIiwiUmVsZWFzZXMiLCJ0b3Btb3N0RmlsZU5hbWVzIiwidG9wbW9zdEZpbGVOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJ0b3Btb3N0RmlsZU5hbWUiLCJhZGRSZWxlYXNlIiwicHJvamVjdHMiLCJQcm9qZWN0cyIsInRvcG1vc3REaXJlY3RvcnlOYW1lcyIsInRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJhZGRQcm9qZWN0IiwiZGlyZWN0b3J5IiwiZW50cnlEaXJlY3RvcnkiLCJEaXJlY3RvcnkiLCJmcm9tUGF0aCIsImFic29sdXRlRGlyZWN0b3J5UGF0aCIsInN1YkVudHJ5TmFtZXMiLCJzdWJFbnRyeU5hbWUiLCJzdWJFbnRyeU5hbWVIaWRkZW5OYW1lIiwiaXNOYW1lSGlkZGVuTmFtZSIsImxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzIiwiZGlyZWN0b3J5UGF0aCIsImFkZERpcmVjdG9yeSIsImZpbGVQYXRoIiwiZmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgiLCJpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoIiwiZmlsZVJlY29nbmlzZWRGaWxlIiwicmVkdWNlIiwiYWJzb2x1dGVTdWJFbnRyeVBhdGgiLCJzdWJFbnRyeUZpbGUiLCJwdXNoIiwic3ViRW50cnlEaXJlY3RvcnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXFCZ0JBLFFBQVE7ZUFBUkE7O0lBcUJBQyxRQUFRO2VBQVJBOztJQVdBQyxTQUFTO2VBQVRBOztJQVlBQyxTQUFTO2VBQVRBOztJQU1BQyxXQUFXO2VBQVhBOztJQVNBQyxXQUFXO2VBQVhBOztJQVNBQyxXQUFXO2VBQVhBOztJQVFBQyxZQUFZO2VBQVpBOztJQXFCQUMsWUFBWTtlQUFaQTs7SUFrQkFDLGFBQWE7ZUFBYkE7OzsyREF0SUc7eUJBRWdDO3lEQUVsQzswREFDQzs0REFDRTs0REFDQTs2REFDQzs2REFDQTs4REFDQztvQkFFVzt3QkFDWTt1QkFDRTs7Ozs7O0FBRS9DLElBQVFDLG1CQUFtREMsd0JBQWEsQ0FBaEVELGtCQUFrQkUsK0JBQWlDRCx3QkFBYSxDQUE5Q0MsOEJBQ2xCQyxXQUFzRUMsOEJBQW1CLENBQXpGRCxVQUFVRSxZQUE0REQsOEJBQW1CLENBQS9FQyxXQUFXQyxjQUFpREYsOEJBQW1CLENBQXBFRSxhQUFhQyxnQkFBb0NILDhCQUFtQixDQUF2REcsZUFBZUMsbUJBQXFCSiw4QkFBbUIsQ0FBeENJO0FBRWxELFNBQVNsQixTQUFTbUIsSUFBSSxFQUFF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
@@ -21,10 +21,14 @@ _export(exports, {
21
21
  dependencyNamesFromNode: function() {
22
22
  return dependencyNamesFromNode;
23
23
  },
24
+ metaJSONNodeFromMetaJSONFile: function() {
25
+ return metaJSONNodeFromMetaJSONFile;
26
+ },
24
27
  default: function() {
25
28
  return _default;
26
29
  }
27
30
  });
31
+ var _occamGrammars = require("occam-grammars");
28
32
  var _version = /*#__PURE__*/ _interopRequireDefault(require("../version"));
29
33
  var _dependency = /*#__PURE__*/ _interopRequireDefault(require("../dependency"));
30
34
  var _dependencies = /*#__PURE__*/ _interopRequireDefault(require("../dependencies"));
@@ -36,7 +40,7 @@ function _interopRequireDefault(obj) {
36
40
  default: obj
37
41
  };
38
42
  }
39
- var 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/@*!");
43
+ 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/@*!");
40
44
  function versionFromNode(node) {
41
45
  var version = null;
42
46
  if (node !== null) {
@@ -71,6 +75,10 @@ function dependencyNamesFromNode(node) {
71
75
  });
72
76
  return dependencyNames;
73
77
  }
78
+ function metaJSONNodeFromMetaJSONFile(metaJSONFile) {
79
+ var content = metaJSONFile.getContent(), tokens = metaJSONLexer.tokenise(content), node = metaJSONParser.parse(tokens), metaJSONNode = node; ///
80
+ return metaJSONNode;
81
+ }
74
82
  var _default = {
75
83
  versionFromNode: versionFromNode,
76
84
  repositoryFromNode: repositoryFromNode,
@@ -78,4 +86,4 @@ var _default = {
78
86
  dependencyNamesFromNode: dependencyNamesFromNode
79
87
  };
80
88
 
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWV0YUpTT04uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBWZXJzaW9uIGZyb20gXCIuLi92ZXJzaW9uXCI7XG5pbXBvcnQgRGVwZW5kZW5jeSBmcm9tIFwiLi4vZGVwZW5kZW5jeVwiO1xuaW1wb3J0IERlcGVuZGVuY2llcyBmcm9tIFwiLi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgU2hvcnRlbmVkVmVyc2lvbiBmcm9tIFwiLi4vc2hvcnRlbmVkVmVyc2lvblwiO1xuXG5pbXBvcnQgeyB0cmltRG91YmxlUXVvdGVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZW50XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGRlcGVuZGVuY3lOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi8vZGVwZW5kZW5jaWVzL2RlcGVuZGVuY3lcIiksXG4gICAgICByZXBvc2l0b3J5VGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvL3JlcG9zaXRvcnkhL0AqIVwiKSxcbiAgICAgIHZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi8vdmVyc2lvbiEvdmVyc2lvbk51bWJlciEvQCohXCIpLFxuICAgICAgZGVwZW5kZW5jeU5hbWVUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9kZXBlbmRlbmN5L25hbWUhL0AqIVwiKSxcbiAgICAgIHNob3J0ZW5lZFZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi8vZGVwZW5kZW5jeS9zaG9ydGVuZWRWZXJzaW9uTnVtYmVyL0AqIVwiKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZlcnNpb25Gcm9tTm9kZShub2RlKSB7XG4gIGxldCB2ZXJzaW9uID0gbnVsbDtcblxuICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGUgPSB2ZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlUXVlcnkobm9kZSksXG4gICAgICAgICAgdmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZUNvbnRlbnQgPSB2ZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICB2ZXJzaW9uTnVtYmVyID0gdHJpbURvdWJsZVF1b3Rlcyh2ZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlQ29udGVudCk7IC8vXG5cbiAgICB2ZXJzaW9uID0gVmVyc2lvbi5mcm9tVmVyc2lvbk51bWJlcih2ZXJzaW9uTnVtYmVyKTtcbiAgfVxuXG4gIHJldHVybiB2ZXJzaW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVwb3NpdG9yeUZyb21Ob2RlKG5vZGUpIHtcbiAgbGV0IHJlcG9zaXRvcnkgPSBudWxsO1xuXG4gIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmVwb3NpdG9yeVRlcm1pbmFsTm9kZSA9IHJlcG9zaXRvcnlUZXJtaW5hbE5vZGVRdWVyeShub2RlKSxcbiAgICAgICAgICByZXBvc2l0b3J5VGVybWluYWxOb2RlQ29udGVudCA9IHJlcG9zaXRvcnlUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpO1xuXG4gICAgcmVwb3NpdG9yeSA9IHRyaW1Eb3VibGVRdW90ZXMocmVwb3NpdG9yeVRlcm1pbmFsTm9kZUNvbnRlbnQpOyAvL1xuICB9XG5cbiAgcmV0dXJuIHJlcG9zaXRvcnk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXBlbmRlbmNpZXNGcm9tTm9kZShub2RlKSB7XG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IERlcGVuZGVuY2llcy5mcm9tTm90aGluZygpO1xuXG4gIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgZGVwZW5kZW5jeU5vZGVzID0gZGVwZW5kZW5jeU5vZGVzUXVlcnkobm9kZSk7XG5cbiAgICBkZXBlbmRlbmN5Tm9kZXMuZm9yRWFjaCgoZGVwZW5kZW5jeU5vZGUpID0+IHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlID0gZGVwZW5kZW5jeU5hbWVUZXJtaW5hbE5vZGVRdWVyeShkZXBlbmRlbmN5Tm9kZSksXG4gICAgICAgICAgICBzaG9ydGVuZWRWZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlID0gc2hvcnRlbmVkVmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZVF1ZXJ5KGRlcGVuZGVuY3lOb2RlKSxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlQ29udGVudCA9IGRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICAgIHNob3J0ZW5lZFZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVDb250ZW50ID0gc2hvcnRlbmVkVmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgICBzdHJpbmcgPSB0cmltRG91YmxlUXVvdGVzKHNob3J0ZW5lZFZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVDb250ZW50KSwgIC8vL1xuICAgICAgICAgICAgbmFtZSA9IHRyaW1Eb3VibGVRdW90ZXMoZGVwZW5kZW5jeU5hbWVUZXJtaW5hbE5vZGVDb250ZW50KSwvLy9cbiAgICAgICAgICAgIHNob3J0ZW5lZFZlcnNpb24gPSBTaG9ydGVuZWRWZXJzaW9uLmZyb21TdHJpbmcoc3RyaW5nKSxcbiAgICAgICAgICAgIGRlcGVuZGVuY3kgPSBEZXBlbmRlbmN5LmZyb21OYW1lQW5kU2hvcnRlbmVkVmVyc2lvbihuYW1lLCBzaG9ydGVuZWRWZXJzaW9uKTtcblxuICAgICAgZGVwZW5kZW5jaWVzLmFkZERlcGVuZGVuY3koZGVwZW5kZW5jeSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZGVwZW5kZW5jaWVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVwZW5kZW5jeU5hbWVzRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXNGcm9tTm9kZShub2RlKSxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWVzID0gZGVwZW5kZW5jaWVzLm1hcERlcGVuZGVuY3koKGRlcGVuZGVuY3kpID0+IHtcbiAgICAgICAgICBjb25zdCBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpO1xuXG4gICAgICAgICAgcmV0dXJuIGRlcGVuZGVuY3lOYW1lO1xuICAgICAgICB9KTtcblxuICByZXR1cm4gZGVwZW5kZW5jeU5hbWVzO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHZlcnNpb25Gcm9tTm9kZSxcbiAgcmVwb3NpdG9yeUZyb21Ob2RlLFxuICBkZXBlbmRlbmNpZXNGcm9tTm9kZSxcbiAgZGVwZW5kZW5jeU5hbWVzRnJvbU5vZGVcbn07XG4iXSwibmFtZXMiOlsidmVyc2lvbkZyb21Ob2RlIiwicmVwb3NpdG9yeUZyb21Ob2RlIiwiZGVwZW5kZW5jaWVzRnJvbU5vZGUiLCJkZXBlbmRlbmN5TmFtZXNGcm9tTm9kZSIsImRlcGVuZGVuY3lOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInJlcG9zaXRvcnlUZXJtaW5hbE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVRdWVyeSIsImRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlUXVlcnkiLCJzaG9ydGVuZWRWZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlUXVlcnkiLCJub2RlIiwidmVyc2lvbiIsInZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGUiLCJ2ZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlQ29udGVudCIsImdldENvbnRlbnQiLCJ2ZXJzaW9uTnVtYmVyIiwidHJpbURvdWJsZVF1b3RlcyIsIlZlcnNpb24iLCJmcm9tVmVyc2lvbk51bWJlciIsInJlcG9zaXRvcnkiLCJyZXBvc2l0b3J5VGVybWluYWxOb2RlIiwicmVwb3NpdG9yeVRlcm1pbmFsTm9kZUNvbnRlbnQiLCJkZXBlbmRlbmNpZXMiLCJEZXBlbmRlbmNpZXMiLCJmcm9tTm90aGluZyIsImRlcGVuZGVuY3lOb2RlcyIsImZvckVhY2giLCJkZXBlbmRlbmN5Tm9kZSIsImRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlIiwic2hvcnRlbmVkVmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZSIsImRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlQ29udGVudCIsInNob3J0ZW5lZFZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVDb250ZW50Iiwic3RyaW5nIiwibmFtZSIsInNob3J0ZW5lZFZlcnNpb24iLCJTaG9ydGVuZWRWZXJzaW9uIiwiZnJvbVN0cmluZyIsImRlcGVuZGVuY3kiLCJEZXBlbmRlbmN5IiwiZnJvbU5hbWVBbmRTaG9ydGVuZWRWZXJzaW9uIiwiYWRkRGVwZW5kZW5jeSIsImRlcGVuZGVuY3lOYW1lcyIsIm1hcERlcGVuZGVuY3kiLCJkZXBlbmRlbmN5TmFtZSIsImdldE5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQWdCZ0JBLGVBQWU7ZUFBZkE7O0lBY0FDLGtCQUFrQjtlQUFsQkE7O0lBYUFDLG9CQUFvQjtlQUFwQkE7O0lBdUJBQyx1QkFBdUI7ZUFBdkJBOztJQVdoQixPQUtFO2VBTEY7Ozs0REEzRW9COytEQUNHO2lFQUNFO3FFQUNJO3VCQUVJO3FCQUNLOzs7Ozs7QUFFdEMsSUFBTUMsdUJBQXVCQyxJQUFBQSxpQkFBVSxFQUFDLDhCQUNsQ0MsOEJBQThCQyxJQUFBQSxnQkFBUyxFQUFDLHNCQUN4Q0MsaUNBQWlDRCxJQUFBQSxnQkFBUyxFQUFDLGtDQUMzQ0Usa0NBQWtDRixJQUFBQSxnQkFBUyxFQUFDLDBCQUM1Q0csMENBQTBDSCxJQUFBQSxnQkFBUyxFQUFDO0FBRW5ELFNBQVNQLGdCQUFnQlcsSUFBSSxFQUFFO0lBQ3BDLElBQUlDLFVBQVUsSUFBSTtJQUVsQixJQUFJRCxTQUFTLElBQUksRUFBRTtRQUNqQixJQUFNRSw0QkFBNEJMLCtCQUErQkcsT0FDM0RHLG1DQUFtQ0QsMEJBQTBCRSxVQUFVLElBQ3ZFQyxnQkFBZ0JDLElBQUFBLHlCQUFnQixFQUFDSCxtQ0FBbUMsRUFBRTtRQUU1RUYsVUFBVU0sZ0JBQU8sQ0FBQ0MsaUJBQWlCLENBQUNIO0lBQ3RDLENBQUM7SUFFRCxPQUFPSjtBQUNUO0FBRU8sU0FBU1gsbUJBQW1CVSxJQUFJLEVBQUU7SUFDdkMsSUFBSVMsYUFBYSxJQUFJO0lBRXJCLElBQUlULFNBQVMsSUFBSSxFQUFFO1FBQ2pCLElBQU1VLHlCQUF5QmYsNEJBQTRCSyxPQUNyRFcsZ0NBQWdDRCx1QkFBdUJOLFVBQVU7UUFFdkVLLGFBQWFILElBQUFBLHlCQUFnQixFQUFDSyxnQ0FBZ0MsRUFBRTtJQUNsRSxDQUFDO0lBRUQsT0FBT0Y7QUFDVDtBQUVPLFNBQVNsQixxQkFBcUJTLElBQUksRUFBRTtJQUN6QyxJQUFNWSxlQUFlQyxxQkFBWSxDQUFDQyxXQUFXO0lBRTdDLElBQUlkLFNBQVMsSUFBSSxFQUFFO1FBQ2pCLElBQU1lLGtCQUFrQnRCLHFCQUFxQk87UUFFN0NlLGdCQUFnQkMsT0FBTyxDQUFDLFNBQUNDLGdCQUFtQjtZQUMxQyxJQUFNQyw2QkFBNkJwQixnQ0FBZ0NtQixpQkFDN0RFLHFDQUFxQ3BCLHdDQUF3Q2tCLGlCQUM3RUcsb0NBQW9DRiwyQkFBMkJkLFVBQVUsSUFDekVpQiw0Q0FBNENGLG1DQUFtQ2YsVUFBVSxJQUN6RmtCLFNBQVNoQixJQUFBQSx5QkFBZ0IsRUFBQ2UsNENBQzFCRSxPQUFPakIsSUFBQUEseUJBQWdCLEVBQUNjLG9DQUN4QkksbUJBQW1CQyx5QkFBZ0IsQ0FBQ0MsVUFBVSxDQUFDSixTQUMvQ0ssYUFBYUMsbUJBQVUsQ0FBQ0MsMkJBQTJCLENBQUNOLE1BQU1DO1lBRWhFWixhQUFha0IsYUFBYSxDQUFDSDtRQUM3QjtJQUNGLENBQUM7SUFFRCxPQUFPZjtBQUNUO0FBRU8sU0FBU3BCLHdCQUF3QlEsSUFBSSxFQUFFO0lBQzVDLElBQU1ZLGVBQWVyQixxQkFBcUJTLE9BQ3BDK0Isa0JBQWtCbkIsYUFBYW9CLGFBQWEsQ0FBQyxTQUFDTCxZQUFlO1FBQzNELElBQU1NLGlCQUFpQk4sV0FBV08sT0FBTztRQUV6QyxPQUFPRDtJQUNUO0lBRU4sT0FBT0Y7QUFDVDtJQUVBLFdBQWU7SUFDYjFDLGlCQUFBQTtJQUNBQyxvQkFBQUE7SUFDQUMsc0JBQUFBO0lBQ0FDLHlCQUFBQTtBQUNGIn0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWV0YUpTT04uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IE1ldGFKU09OTGV4ZXIsIE1ldGFKU09OUGFyc2VyIH0gZnJvbSBcIm9jY2FtLWdyYW1tYXJzXCI7XG5cbmltcG9ydCBWZXJzaW9uIGZyb20gXCIuLi92ZXJzaW9uXCI7XG5pbXBvcnQgRGVwZW5kZW5jeSBmcm9tIFwiLi4vZGVwZW5kZW5jeVwiO1xuaW1wb3J0IERlcGVuZGVuY2llcyBmcm9tIFwiLi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgU2hvcnRlbmVkVmVyc2lvbiBmcm9tIFwiLi4vc2hvcnRlbmVkVmVyc2lvblwiO1xuXG5pbXBvcnQgeyB0cmltRG91YmxlUXVvdGVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZW50XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IG1ldGFKU09OTGV4ZXIgPSBNZXRhSlNPTkxleGVyLmZyb21Ob3RoaW5nKCksXG4gICAgICBtZXRhSlNPTlBhcnNlciA9IE1ldGFKU09OUGFyc2VyLmZyb21Ob3RoaW5nKCksXG4gICAgICBkZXBlbmRlbmN5Tm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvL2RlcGVuZGVuY2llcy9kZXBlbmRlbmN5XCIpLFxuICAgICAgcmVwb3NpdG9yeVRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiLy9yZXBvc2l0b3J5IS9AKiFcIiksXG4gICAgICB2ZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvL3ZlcnNpb24hL3ZlcnNpb25OdW1iZXIhL0AqIVwiKSxcbiAgICAgIGRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZGVwZW5kZW5jeS9uYW1lIS9AKiFcIiksXG4gICAgICBzaG9ydGVuZWRWZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvL2RlcGVuZGVuY3kvc2hvcnRlbmVkVmVyc2lvbk51bWJlci9AKiFcIik7XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJzaW9uRnJvbU5vZGUobm9kZSkge1xuICBsZXQgdmVyc2lvbiA9IG51bGw7XG5cbiAgaWYgKG5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB2ZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlID0gdmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZVF1ZXJ5KG5vZGUpLFxuICAgICAgICAgIHZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVDb250ZW50ID0gdmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgdmVyc2lvbk51bWJlciA9IHRyaW1Eb3VibGVRdW90ZXModmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZUNvbnRlbnQpOyAvL1xuXG4gICAgdmVyc2lvbiA9IFZlcnNpb24uZnJvbVZlcnNpb25OdW1iZXIodmVyc2lvbk51bWJlcik7XG4gIH1cblxuICByZXR1cm4gdmVyc2lvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcG9zaXRvcnlGcm9tTm9kZShub2RlKSB7XG4gIGxldCByZXBvc2l0b3J5ID0gbnVsbDtcblxuICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHJlcG9zaXRvcnlUZXJtaW5hbE5vZGUgPSByZXBvc2l0b3J5VGVybWluYWxOb2RlUXVlcnkobm9kZSksXG4gICAgICAgICAgcmVwb3NpdG9yeVRlcm1pbmFsTm9kZUNvbnRlbnQgPSByZXBvc2l0b3J5VGVybWluYWxOb2RlLmdldENvbnRlbnQoKTtcblxuICAgIHJlcG9zaXRvcnkgPSB0cmltRG91YmxlUXVvdGVzKHJlcG9zaXRvcnlUZXJtaW5hbE5vZGVDb250ZW50KTsgLy9cbiAgfVxuXG4gIHJldHVybiByZXBvc2l0b3J5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVwZW5kZW5jaWVzRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSBEZXBlbmRlbmNpZXMuZnJvbU5vdGhpbmcoKTtcblxuICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGRlcGVuZGVuY3lOb2RlcyA9IGRlcGVuZGVuY3lOb2Rlc1F1ZXJ5KG5vZGUpO1xuXG4gICAgZGVwZW5kZW5jeU5vZGVzLmZvckVhY2goKGRlcGVuZGVuY3lOb2RlKSA9PiB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5TmFtZVRlcm1pbmFsTm9kZSA9IGRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlUXVlcnkoZGVwZW5kZW5jeU5vZGUpLFxuICAgICAgICAgICAgc2hvcnRlbmVkVmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZSA9IHNob3J0ZW5lZFZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVRdWVyeShkZXBlbmRlbmN5Tm9kZSksXG4gICAgICAgICAgICBkZXBlbmRlbmN5TmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQgPSBkZXBlbmRlbmN5TmFtZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgICBzaG9ydGVuZWRWZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlQ29udGVudCA9IHNob3J0ZW5lZFZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgICAgc3RyaW5nID0gdHJpbURvdWJsZVF1b3RlcyhzaG9ydGVuZWRWZXJzaW9uTnVtYmVyVGVybWluYWxOb2RlQ29udGVudCksICAvLy9cbiAgICAgICAgICAgIG5hbWUgPSB0cmltRG91YmxlUXVvdGVzKGRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlQ29udGVudCksLy8vXG4gICAgICAgICAgICBzaG9ydGVuZWRWZXJzaW9uID0gU2hvcnRlbmVkVmVyc2lvbi5mcm9tU3RyaW5nKHN0cmluZyksXG4gICAgICAgICAgICBkZXBlbmRlbmN5ID0gRGVwZW5kZW5jeS5mcm9tTmFtZUFuZFNob3J0ZW5lZFZlcnNpb24obmFtZSwgc2hvcnRlbmVkVmVyc2lvbik7XG5cbiAgICAgIGRlcGVuZGVuY2llcy5hZGREZXBlbmRlbmN5KGRlcGVuZGVuY3kpO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGRlcGVuZGVuY2llcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcGVuZGVuY3lOYW1lc0Zyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gZGVwZW5kZW5jaWVzRnJvbU5vZGUobm9kZSksXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lcyA9IGRlcGVuZGVuY2llcy5tYXBEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKTtcblxuICAgICAgICAgIHJldHVybiBkZXBlbmRlbmN5TmFtZTtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIGRlcGVuZGVuY3lOYW1lcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGFKU09OTm9kZUZyb21NZXRhSlNPTkZpbGUobWV0YUpTT05GaWxlKSB7XG4gIGNvbnN0IGNvbnRlbnQgPSBtZXRhSlNPTkZpbGUuZ2V0Q29udGVudCgpLFxuICAgICAgICB0b2tlbnMgPSBtZXRhSlNPTkxleGVyLnRva2VuaXNlKGNvbnRlbnQpLFxuICAgICAgICBub2RlID0gbWV0YUpTT05QYXJzZXIucGFyc2UodG9rZW5zKSxcbiAgICAgICAgbWV0YUpTT05Ob2RlID0gbm9kZTsgIC8vL1xuXG4gIHJldHVybiBtZXRhSlNPTk5vZGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdmVyc2lvbkZyb21Ob2RlLFxuICByZXBvc2l0b3J5RnJvbU5vZGUsXG4gIGRlcGVuZGVuY2llc0Zyb21Ob2RlLFxuICBkZXBlbmRlbmN5TmFtZXNGcm9tTm9kZVxufTtcbiJdLCJuYW1lcyI6WyJ2ZXJzaW9uRnJvbU5vZGUiLCJyZXBvc2l0b3J5RnJvbU5vZGUiLCJkZXBlbmRlbmNpZXNGcm9tTm9kZSIsImRlcGVuZGVuY3lOYW1lc0Zyb21Ob2RlIiwibWV0YUpTT05Ob2RlRnJvbU1ldGFKU09ORmlsZSIsIm1ldGFKU09OTGV4ZXIiLCJNZXRhSlNPTkxleGVyIiwiZnJvbU5vdGhpbmciLCJtZXRhSlNPTlBhcnNlciIsIk1ldGFKU09OUGFyc2VyIiwiZGVwZW5kZW5jeU5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicmVwb3NpdG9yeVRlcm1pbmFsTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZVF1ZXJ5IiwiZGVwZW5kZW5jeU5hbWVUZXJtaW5hbE5vZGVRdWVyeSIsInNob3J0ZW5lZFZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVRdWVyeSIsIm5vZGUiLCJ2ZXJzaW9uIiwidmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZSIsInZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVDb250ZW50IiwiZ2V0Q29udGVudCIsInZlcnNpb25OdW1iZXIiLCJ0cmltRG91YmxlUXVvdGVzIiwiVmVyc2lvbiIsImZyb21WZXJzaW9uTnVtYmVyIiwicmVwb3NpdG9yeSIsInJlcG9zaXRvcnlUZXJtaW5hbE5vZGUiLCJyZXBvc2l0b3J5VGVybWluYWxOb2RlQ29udGVudCIsImRlcGVuZGVuY2llcyIsIkRlcGVuZGVuY2llcyIsImRlcGVuZGVuY3lOb2RlcyIsImZvckVhY2giLCJkZXBlbmRlbmN5Tm9kZSIsImRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlIiwic2hvcnRlbmVkVmVyc2lvbk51bWJlclRlcm1pbmFsTm9kZSIsImRlcGVuZGVuY3lOYW1lVGVybWluYWxOb2RlQ29udGVudCIsInNob3J0ZW5lZFZlcnNpb25OdW1iZXJUZXJtaW5hbE5vZGVDb250ZW50Iiwic3RyaW5nIiwibmFtZSIsInNob3J0ZW5lZFZlcnNpb24iLCJTaG9ydGVuZWRWZXJzaW9uIiwiZnJvbVN0cmluZyIsImRlcGVuZGVuY3kiLCJEZXBlbmRlbmN5IiwiZnJvbU5hbWVBbmRTaG9ydGVuZWRWZXJzaW9uIiwiYWRkRGVwZW5kZW5jeSIsImRlcGVuZGVuY3lOYW1lcyIsIm1hcERlcGVuZGVuY3kiLCJkZXBlbmRlbmN5TmFtZSIsImdldE5hbWUiLCJtZXRhSlNPTkZpbGUiLCJjb250ZW50IiwidG9rZW5zIiwidG9rZW5pc2UiLCJwYXJzZSIsIm1ldGFKU09OTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBb0JnQkEsZUFBZTtlQUFmQTs7SUFjQUMsa0JBQWtCO2VBQWxCQTs7SUFhQUMsb0JBQW9CO2VBQXBCQTs7SUF1QkFDLHVCQUF1QjtlQUF2QkE7O0lBV0FDLDRCQUE0QjtlQUE1QkE7O0lBU2hCLE9BS0U7ZUFMRjs7OzZCQXhGOEM7NERBRTFCOytEQUNHO2lFQUNFO3FFQUNJO3VCQUVJO3FCQUNLOzs7Ozs7QUFFdEMsSUFBTUMsZ0JBQWdCQyw0QkFBYSxDQUFDQyxXQUFXLElBQ3pDQyxpQkFBaUJDLDZCQUFjLENBQUNGLFdBQVcsSUFDM0NHLHVCQUF1QkMsSUFBQUEsaUJBQVUsRUFBQyw4QkFDbENDLDhCQUE4QkMsSUFBQUEsZ0JBQVMsRUFBQyxzQkFDeENDLGlDQUFpQ0QsSUFBQUEsZ0JBQVMsRUFBQyxrQ0FDM0NFLGtDQUFrQ0YsSUFBQUEsZ0JBQVMsRUFBQywwQkFDNUNHLDBDQUEwQ0gsSUFBQUEsZ0JBQVMsRUFBQztBQUVuRCxTQUFTYixnQkFBZ0JpQixJQUFJLEVBQUU7SUFDcEMsSUFBSUMsVUFBVSxJQUFJO0lBRWxCLElBQUlELFNBQVMsSUFBSSxFQUFFO1FBQ2pCLElBQU1FLDRCQUE0QkwsK0JBQStCRyxPQUMzREcsbUNBQW1DRCwwQkFBMEJFLFVBQVUsSUFDdkVDLGdCQUFnQkMsSUFBQUEseUJBQWdCLEVBQUNILG1DQUFtQyxFQUFFO1FBRTVFRixVQUFVTSxnQkFBTyxDQUFDQyxpQkFBaUIsQ0FBQ0g7SUFDdEMsQ0FBQztJQUVELE9BQU9KO0FBQ1Q7QUFFTyxTQUFTakIsbUJBQW1CZ0IsSUFBSSxFQUFFO0lBQ3ZDLElBQUlTLGFBQWEsSUFBSTtJQUVyQixJQUFJVCxTQUFTLElBQUksRUFBRTtRQUNqQixJQUFNVSx5QkFBeUJmLDRCQUE0QkssT0FDckRXLGdDQUFnQ0QsdUJBQXVCTixVQUFVO1FBRXZFSyxhQUFhSCxJQUFBQSx5QkFBZ0IsRUFBQ0ssZ0NBQWdDLEVBQUU7SUFDbEUsQ0FBQztJQUVELE9BQU9GO0FBQ1Q7QUFFTyxTQUFTeEIscUJBQXFCZSxJQUFJLEVBQUU7SUFDekMsSUFBTVksZUFBZUMscUJBQVksQ0FBQ3ZCLFdBQVc7SUFFN0MsSUFBSVUsU0FBUyxJQUFJLEVBQUU7UUFDakIsSUFBTWMsa0JBQWtCckIscUJBQXFCTztRQUU3Q2MsZ0JBQWdCQyxPQUFPLENBQUMsU0FBQ0MsZ0JBQW1CO1lBQzFDLElBQU1DLDZCQUE2Qm5CLGdDQUFnQ2tCLGlCQUM3REUscUNBQXFDbkIsd0NBQXdDaUIsaUJBQzdFRyxvQ0FBb0NGLDJCQUEyQmIsVUFBVSxJQUN6RWdCLDRDQUE0Q0YsbUNBQW1DZCxVQUFVLElBQ3pGaUIsU0FBU2YsSUFBQUEseUJBQWdCLEVBQUNjLDRDQUMxQkUsT0FBT2hCLElBQUFBLHlCQUFnQixFQUFDYSxvQ0FDeEJJLG1CQUFtQkMseUJBQWdCLENBQUNDLFVBQVUsQ0FBQ0osU0FDL0NLLGFBQWFDLG1CQUFVLENBQUNDLDJCQUEyQixDQUFDTixNQUFNQztZQUVoRVgsYUFBYWlCLGFBQWEsQ0FBQ0g7UUFDN0I7SUFDRixDQUFDO0lBRUQsT0FBT2Q7QUFDVDtBQUVPLFNBQVMxQix3QkFBd0JjLElBQUksRUFBRTtJQUM1QyxJQUFNWSxlQUFlM0IscUJBQXFCZSxPQUNwQzhCLGtCQUFrQmxCLGFBQWFtQixhQUFhLENBQUMsU0FBQ0wsWUFBZTtRQUMzRCxJQUFNTSxpQkFBaUJOLFdBQVdPLE9BQU87UUFFekMsT0FBT0Q7SUFDVDtJQUVOLE9BQU9GO0FBQ1Q7QUFFTyxTQUFTM0MsNkJBQTZCK0MsWUFBWSxFQUFFO0lBQ3pELElBQU1DLFVBQVVELGFBQWE5QixVQUFVLElBQ2pDZ0MsU0FBU2hELGNBQWNpRCxRQUFRLENBQUNGLFVBQ2hDbkMsT0FBT1QsZUFBZStDLEtBQUssQ0FBQ0YsU0FDNUJHLGVBQWV2QyxNQUFPLEdBQUc7SUFFL0IsT0FBT3VDO0FBQ1Q7SUFFQSxXQUFlO0lBQ2J4RCxpQkFBQUE7SUFDQUMsb0JBQUFBO0lBQ0FDLHNCQUFBQTtJQUNBQyx5QkFBQUE7QUFDRiJ9
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.27",
4
+ "version": "5.0.28",
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/project.js CHANGED
@@ -7,6 +7,9 @@ import Dependencies from "./dependencies";
7
7
  import entriesMixins from "./mixins/entries";
8
8
  import patternMixins from "./mixins/pattern";
9
9
 
10
+ import { metaJSONFileFromFiles } from "./utilities/files";
11
+ import { repositoryFromNode, dependenciesFromNode, metaJSONNodeFromMetaJSONFile } from "./utilities/metaJSON";
12
+
10
13
  class Project {
11
14
  constructor(name, entries, repository, dependencies) {
12
15
  this.name = name;
@@ -73,9 +76,9 @@ class Project {
73
76
 
74
77
  dependencies = Dependencies.fromJSON(json);
75
78
 
76
- const release = new Project(name, entries, repository, dependencies);
79
+ const project = new Project(name, entries, repository, dependencies);
77
80
 
78
- return release;
81
+ return project;
79
82
  }
80
83
 
81
84
  static fromName(name) {
@@ -87,7 +90,24 @@ class Project {
87
90
  return project;
88
91
  }
89
92
 
90
- static fromNameEntriesRepositoryAndDependencies(name, entries, repository, dependencies) {
93
+ static fromNameAndEntries(name, entries) {
94
+ const files = entries.getFiles(),
95
+ metaJSONFile = metaJSONFileFromFiles(files);
96
+
97
+ let repository = null,
98
+ dependencies = Dependencies.fromNothing();
99
+
100
+ if (metaJSONFile !== null) {
101
+ const metaJSONNode = metaJSONNodeFromMetaJSONFile(metaJSONFile);
102
+
103
+ if (metaJSONNode !== null) {
104
+ const node = metaJSONNode; ///
105
+
106
+ repository = repositoryFromNode(node);
107
+ dependencies = dependenciesFromNode(node);
108
+ }
109
+ }
110
+
91
111
  const project = new Project(name, entries, repository, dependencies);
92
112
 
93
113
  return project;
package/src/release.js CHANGED
@@ -8,6 +8,9 @@ import Dependencies from "./dependencies";
8
8
  import entriesMixins from "./mixins/entries";
9
9
  import patternMixins from "./mixins/pattern";
10
10
 
11
+ import { readmeFileFromFiles, metaJSONFileFromFiles } from "./utilities/files";
12
+ import { versionFromNode, repositoryFromNode, dependenciesFromNode, metaJSONNodeFromMetaJSONFile } from "./utilities/metaJSON";
13
+
11
14
  class Release {
12
15
  constructor(name, entries, version, repository, dependencies) {
13
16
  this.name = name;
@@ -92,8 +95,25 @@ class Release {
92
95
  return release;
93
96
  }
94
97
 
95
- static fromNameEntriesVersionRepositoryAndDependencies(name, entries, version, repository, dependencies) {
96
- const release = new Release(name, entries, version, repository, dependencies);
98
+ static fromNameAndEntries(name, entries) {
99
+ let release = null;
100
+
101
+ const files = entries.getFiles(),
102
+ readmeFile = readmeFileFromFiles(files),
103
+ metaJSONFile = metaJSONFileFromFiles(files);
104
+
105
+ if ((readmeFile !== null) && (metaJSONFile !== null)) {
106
+ const metaJSONNode = metaJSONNodeFromMetaJSONFile(metaJSONFile);
107
+
108
+ if (metaJSONNode !== null) {
109
+ const node = metaJSONNode, ///
110
+ version = versionFromNode(node),
111
+ repository = repositoryFromNode(node),
112
+ dependencies = dependenciesFromNode(node);
113
+
114
+ release = new Release(name, entries, version, repository, dependencies);
115
+ }
116
+ }
97
117
 
98
118
  return release;
99
119
  }
@@ -2,7 +2,6 @@
2
2
 
3
3
  import mkdirp from "mkdirp";
4
4
 
5
- import { MetaJSONLexer, MetaJSONParser } from "occam-grammars";
6
5
  import { pathUtilities, fileSystemUtilities } from "necessary";
7
6
 
8
7
  import File from "../file";
@@ -16,15 +15,10 @@ import Directory from "../directory";
16
15
  import { isNameHiddenName } from "../utilities/name";
17
16
  import { isFilePathRecognisedFilePath } from "../utilities/filePath";
18
17
  import { convertContentTabsToWhitespace } from "../utilities/content";
19
- import { metaJSONFileFromFiles, readmeFileFromFiles } from "../utilities/files";
20
- import { versionFromNode, repositoryFromNode, dependenciesFromNode } from "./metaJSON";
21
18
 
22
19
  const { concatenatePaths, topmostDirectoryPathFromPath } = pathUtilities,
23
20
  { readFile, writeFile, isEntryFile, readDirectory, isEntryDirectory } = fileSystemUtilities;
24
21
 
25
- const metaJSONLexer = MetaJSONLexer.fromNothing(),
26
- metaJSONParser = MetaJSONParser.fromNothing();
27
-
28
22
  export function loadFile(path, projectsDirectoryPath) {
29
23
  let file = null;
30
24
 
@@ -85,27 +79,10 @@ export function loadEntries(topmostDirectoryName, projectsDirectoryPath, loadOnl
85
79
  }
86
80
 
87
81
  export function loadRelease(topmostDirectoryName, projectsDirectoryPath) {
88
- let release = null;
89
-
90
82
  const name = topmostDirectoryName, ///
91
83
  loadOnlyRecognisedFiles = true,
92
84
  entries = loadEntries(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles),
93
- files = entries.getFiles(),
94
- readmeFile = readmeFileFromFiles(files),
95
- metaJSONFile = metaJSONFileFromFiles(files);
96
-
97
- if ((readmeFile !== null) && (metaJSONFile !== null)) {
98
- const metaJSONNode = metaJSONNodeFromMetaJSONFile(metaJSONFile);
99
-
100
- if (metaJSONNode !== null) {
101
- const node = metaJSONNode, ///
102
- version = versionFromNode(node),
103
- repository = repositoryFromNode(node),
104
- dependencies = dependenciesFromNode(node);
105
-
106
- release = Release.fromNameEntriesVersionRepositoryAndDependencies(name, entries, version, repository, dependencies);
107
- }
108
- }
85
+ release = Release.fromNameAndEntries(name, entries);
109
86
 
110
87
  return release;
111
88
  }
@@ -113,21 +90,7 @@ export function loadRelease(topmostDirectoryName, projectsDirectoryPath) {
113
90
  export function loadProject(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles) {
114
91
  const name = topmostDirectoryName, ///
115
92
  entries = loadEntries(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles),
116
- files = entries.getFiles(),
117
- metaJSONFile = metaJSONFileFromFiles(files);
118
-
119
- let repository = null,
120
- dependencies = [];
121
-
122
- if (metaJSONFile !== null) {
123
- const metaJSONNode = metaJSONNodeFromMetaJSONFile(metaJSONFile),
124
- node = metaJSONNode;
125
-
126
- repository = repositoryFromNode(node);
127
- dependencies = dependenciesFromNode(node);
128
- }
129
-
130
- const project = Project.fromNameEntriesRepositoryAndDependencies(name, entries, repository, dependencies);
93
+ project = Project.fromNameAndEntries(name, entries);
131
94
 
132
95
  return project;
133
96
  }
@@ -188,15 +151,6 @@ export function loadDirectory(path, projectsDirectoryPath) {
188
151
  return directory;
189
152
  }
190
153
 
191
- function metaJSONNodeFromMetaJSONFile(metaJSONFile) {
192
- const content = metaJSONFile.getContent(),
193
- tokens = metaJSONLexer.tokenise(content),
194
- node = metaJSONParser.parse(tokens),
195
- metaJSONNode = node; ///
196
-
197
- return metaJSONNode;
198
- }
199
-
200
154
  function entriesFromRelativeDirectoryPath(entries, relativeDirectoryPath, projectsDirectoryPath, loadOnlyRecognisedFiles) {
201
155
  const absoluteDirectoryPath = concatenatePaths(projectsDirectoryPath, relativeDirectoryPath),
202
156
  subEntryNames = readDirectory(absoluteDirectoryPath);
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ import { MetaJSONLexer, MetaJSONParser } from "occam-grammars";
4
+
3
5
  import Version from "../version";
4
6
  import Dependency from "../dependency";
5
7
  import Dependencies from "../dependencies";
@@ -8,7 +10,9 @@ import ShortenedVersion from "../shortenedVersion";
8
10
  import { trimDoubleQuotes } from "../utilities/content";
9
11
  import { nodeQuery, nodesQuery } from "../utilities/query";
10
12
 
11
- const dependencyNodesQuery = nodesQuery("//dependencies/dependency"),
13
+ const metaJSONLexer = MetaJSONLexer.fromNothing(),
14
+ metaJSONParser = MetaJSONParser.fromNothing(),
15
+ dependencyNodesQuery = nodesQuery("//dependencies/dependency"),
12
16
  repositoryTerminalNodeQuery = nodeQuery("//repository!/@*!"),
13
17
  versionNumberTerminalNodeQuery = nodeQuery("//version!/versionNumber!/@*!"),
14
18
  dependencyNameTerminalNodeQuery = nodeQuery("/dependency/name!/@*!"),
@@ -75,6 +79,15 @@ export function dependencyNamesFromNode(node) {
75
79
  return dependencyNames;
76
80
  }
77
81
 
82
+ export function metaJSONNodeFromMetaJSONFile(metaJSONFile) {
83
+ const content = metaJSONFile.getContent(),
84
+ tokens = metaJSONLexer.tokenise(content),
85
+ node = metaJSONParser.parse(tokens),
86
+ metaJSONNode = node; ///
87
+
88
+ return metaJSONNode;
89
+ }
90
+
78
91
  export default {
79
92
  versionFromNode,
80
93
  repositoryFromNode,