occam-open-cli 5.0.39 → 5.0.40

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.
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
 
3
- const { fileSystemUtilities } = require("../../lib/main"); ///
3
+ import { characters } from "necessary";
4
4
 
5
- const { releaseFromReleaseName } = fileSystemUtilities;
5
+ const { Release, entriesUUtilities } = require("../../lib/main"); ///
6
+
7
+ const { PERIOD_CHARACTER } = characters,
8
+ { entriesFromTopmostDirectoryName } = entriesUUtilities;
6
9
 
7
10
  function createReleaseOperation(proceed, abort, context) {
8
11
  const { releaseName } = context,
@@ -22,3 +25,17 @@ function createReleaseOperation(proceed, abort, context) {
22
25
  }
23
26
 
24
27
  module.exports = createReleaseOperation;
28
+
29
+ function releaseFromReleaseName(releaseName) {
30
+ const topmostDirectoryName = releaseName, ///
31
+ projectsDirectoryPath = PERIOD_CHARACTER,
32
+ loadOnlyRecognisedFiles = true,
33
+ doNotLoadHiddenFilesAndDirectories = true,
34
+ name = releaseName, ///
35
+ entries = entriesFromTopmostDirectoryName(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories),
36
+ versionNumber = null, ///
37
+ release = new Release(name, entries, versionNumber);
38
+
39
+ return release;
40
+ }
41
+
package/lib/main.js CHANGED
@@ -39,11 +39,11 @@ _export(exports, {
39
39
  contentUtilities: function() {
40
40
  return _content.default;
41
41
  },
42
+ entriesUtilities: function() {
43
+ return _entries1.default;
44
+ },
42
45
  filePathUtilities: function() {
43
46
  return _filePath.default;
44
- },
45
- fileSystemUtilities: function() {
46
- return _fileSystem.default;
47
47
  }
48
48
  });
49
49
  var _file = /*#__PURE__*/ _interopRequireDefault(require("./file"));
@@ -56,12 +56,12 @@ var _project = /*#__PURE__*/ _interopRequireDefault(require("./project"));
56
56
  var _projects = /*#__PURE__*/ _interopRequireDefault(require("./projects"));
57
57
  var _name = /*#__PURE__*/ _interopRequireDefault(require("./utilities/name"));
58
58
  var _content = /*#__PURE__*/ _interopRequireDefault(require("./utilities/content"));
59
+ var _entries1 = /*#__PURE__*/ _interopRequireDefault(require("./utilities/entries"));
59
60
  var _filePath = /*#__PURE__*/ _interopRequireDefault(require("./utilities/filePath"));
60
- var _fileSystem = /*#__PURE__*/ _interopRequireDefault(require("./utilities/fileSystem"));
61
61
  function _interopRequireDefault(obj) {
62
62
  return obj && obj.__esModule ? obj : {
63
63
  default: obj
64
64
  };
65
65
  }
66
66
 
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlIH0gZnJvbSBcIi4vZmlsZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlcyB9IGZyb20gXCIuL2ZpbGVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHR5cGVzIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVmVyc2lvbiB9IGZyb20gXCIuL3ZlcnNpb25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVsZWFzZSB9IGZyb20gXCIuL3JlbGVhc2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRW50cmllcyB9IGZyb20gXCIuL2VudHJpZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUHJvamVjdCB9IGZyb20gXCIuL3Byb2plY3RcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUHJvamVjdHMgfSBmcm9tIFwiLi9wcm9qZWN0c1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBuYW1lVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL25hbWVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY29udGVudFV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9jb250ZW50XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGZpbGVQYXRoVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2ZpbGVQYXRoXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZmlsZVN5c3RlbVwiO1xuIl0sIm5hbWVzIjpbIkZpbGUiLCJGaWxlcyIsInR5cGVzIiwiVmVyc2lvbiIsIlJlbGVhc2UiLCJFbnRyaWVzIiwiUHJvamVjdCIsIlByb2plY3RzIiwibmFtZVV0aWxpdGllcyIsImNvbnRlbnRVdGlsaXRpZXMiLCJmaWxlUGF0aFV0aWxpdGllcyIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVvQkEsSUFBSTtlQUFKQSxhQUFJOztJQUNKQyxLQUFLO2VBQUxBLGNBQUs7O0lBQ0xDLEtBQUs7ZUFBTEEsY0FBSzs7SUFDTEMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsUUFBUTtlQUFSQSxpQkFBUTs7SUFDUkMsYUFBYTtlQUFiQSxhQUFhOztJQUNiQyxnQkFBZ0I7ZUFBaEJBLGdCQUFnQjs7SUFDaEJDLGlCQUFpQjtlQUFqQkEsaUJBQWlCOztJQUNqQkMsbUJBQW1CO2VBQW5CQSxtQkFBbUI7Ozt5REFYUDswREFDQzswREFDQTs0REFDRTs0REFDQTs0REFDQTs0REFDQTs2REFDQzt5REFDSzs0REFDRzs2REFDQzsrREFDRSJ9
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlIH0gZnJvbSBcIi4vZmlsZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlcyB9IGZyb20gXCIuL2ZpbGVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHR5cGVzIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVmVyc2lvbiB9IGZyb20gXCIuL3ZlcnNpb25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVsZWFzZSB9IGZyb20gXCIuL3JlbGVhc2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRW50cmllcyB9IGZyb20gXCIuL2VudHJpZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUHJvamVjdCB9IGZyb20gXCIuL3Byb2plY3RcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUHJvamVjdHMgfSBmcm9tIFwiLi9wcm9qZWN0c1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBuYW1lVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL25hbWVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY29udGVudFV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9jb250ZW50XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGVudHJpZXNVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZW50cmllc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmaWxlUGF0aFV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9maWxlUGF0aFwiO1xuIl0sIm5hbWVzIjpbIkZpbGUiLCJGaWxlcyIsInR5cGVzIiwiVmVyc2lvbiIsIlJlbGVhc2UiLCJFbnRyaWVzIiwiUHJvamVjdCIsIlByb2plY3RzIiwibmFtZVV0aWxpdGllcyIsImNvbnRlbnRVdGlsaXRpZXMiLCJlbnRyaWVzVXRpbGl0aWVzIiwiZmlsZVBhdGhVdGlsaXRpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVvQkEsSUFBSTtlQUFKQSxhQUFJOztJQUNKQyxLQUFLO2VBQUxBLGNBQUs7O0lBQ0xDLEtBQUs7ZUFBTEEsY0FBSzs7SUFDTEMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsUUFBUTtlQUFSQSxpQkFBUTs7SUFDUkMsYUFBYTtlQUFiQSxhQUFhOztJQUNiQyxnQkFBZ0I7ZUFBaEJBLGdCQUFnQjs7SUFDaEJDLGdCQUFnQjtlQUFoQkEsaUJBQWdCOztJQUNoQkMsaUJBQWlCO2VBQWpCQSxpQkFBaUI7Ozt5REFYTDswREFDQzswREFDQTs0REFDRTs0REFDQTs0REFDQTs0REFDQTs2REFDQzt5REFDSzs0REFDRzs2REFDQTs2REFDQyJ9
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ entriesFromTopmostDirectoryName: function() {
13
+ return entriesFromTopmostDirectoryName;
14
+ },
15
+ default: function() {
16
+ return _default;
17
+ }
18
+ });
19
+ var _necessary = require("necessary");
20
+ var _entries = /*#__PURE__*/ _interopRequireDefault(require("../entries"));
21
+ var _directory = /*#__PURE__*/ _interopRequireDefault(require("../directory"));
22
+ var _name = require("../utilities/name");
23
+ var _constants = require("../constants");
24
+ var _filePath = require("../utilities/filePath");
25
+ var _messages = require("../messages");
26
+ function _interopRequireDefault(obj) {
27
+ return obj && obj.__esModule ? obj : {
28
+ default: obj
29
+ };
30
+ }
31
+ var concatenatePaths = _necessary.pathUtilities.concatenatePaths, readDirectory = _necessary.fileSystemUtilities.readDirectory, isEntryDirectory = _necessary.fileSystemUtilities.isEntryDirectory;
32
+ function entriesFromTopmostDirectoryName(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories) {
33
+ var array = [], relativeDirectoryPath = topmostDirectoryName; ///
34
+ entriesFromRelativeDirectoryPath(array, relativeDirectoryPath, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories);
35
+ var entries = new _entries.default(array);
36
+ return entries;
37
+ }
38
+ var _default = {
39
+ entriesFromTopmostDirectoryName: entriesFromTopmostDirectoryName
40
+ };
41
+ function directoryFromPath(path, projectsDirectoryPath) {
42
+ var directory = null;
43
+ try {
44
+ var absolutePath = concatenatePaths(projectsDirectoryPath, path), entryDirectory = isEntryDirectory(absolutePath);
45
+ if (entryDirectory) {
46
+ directory = new _directory.default(path);
47
+ }
48
+ } catch (error) {
49
+ ///
50
+ }
51
+ return directory;
52
+ }
53
+ function entriesFromRelativeDirectoryPath(array, relativeDirectoryPath, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories) {
54
+ var absoluteDirectoryPath = concatenatePaths(projectsDirectoryPath, relativeDirectoryPath), subEntryNames = readDirectory(absoluteDirectoryPath);
55
+ subEntryNames.forEach(function(subEntryName) {
56
+ var subEntryNameHiddenName = (0, _name.isNameHiddenName)(subEntryName), subEntryNameNotHiddenName = !subEntryNameHiddenName, loadHiddenFilesAndDirectories = !doNotLoadHiddenFilesAndDirectories, loadUnrecognisedFilesAndDirectories = !loadOnlyRecognisedFiles;
57
+ if (subEntryNameNotHiddenName || loadHiddenFilesAndDirectories) {
58
+ var entry;
59
+ var path = concatenatePaths(relativeDirectoryPath, subEntryName), directory = directoryFromPath(path, projectsDirectoryPath);
60
+ if (directory !== null) {
61
+ var directoryPath = path; ///
62
+ if (loadUnrecognisedFilesAndDirectories) {
63
+ entry = directory; ///
64
+ array.push(entry); ///
65
+ var arrayLength = array.length;
66
+ if (arrayLength > _constants.ENTRIES_MAXIMUM_ARRAY_LENGTH) {
67
+ throw new Error(_messages.ENTRIES_MAXIMUM_ARRAY_LENGTH_EXCEEDED_MESSAGE);
68
+ }
69
+ }
70
+ entriesFromRelativeDirectoryPath(array, directoryPath, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories); ///
71
+ } else {
72
+ var file = loadFile(path, projectsDirectoryPath);
73
+ if (file !== null) {
74
+ var filePath = file.getPath(), filePathRecognisedFilePath = (0, _filePath.isFilePathRecognisedFilePath)(filePath), fileRecognisedFile = filePathRecognisedFilePath; ///
75
+ if (fileRecognisedFile || loadUnrecognisedFilesAndDirectories) {
76
+ entry = file; ///
77
+ array.push(entry); ///
78
+ var arrayLength1 = array.length;
79
+ if (arrayLength1 > _constants.ENTRIES_MAXIMUM_ARRAY_LENGTH) {
80
+ throw new Error(_messages.ENTRIES_MAXIMUM_ARRAY_LENGTH_EXCEEDED_MESSAGE);
81
+ }
82
+ }
83
+ }
84
+ }
85
+ }
86
+ });
87
+ }
88
+
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCB7IHBhdGhVdGlsaXRpZXMsIGZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XHJcblxyXG5pbXBvcnQgRW50cmllcyBmcm9tIFwiLi4vZW50cmllc1wiO1xyXG5pbXBvcnQgRGlyZWN0b3J5IGZyb20gXCIuLi9kaXJlY3RvcnlcIjtcclxuXHJcbmltcG9ydCB7IGlzTmFtZUhpZGRlbk5hbWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcclxuaW1wb3J0IHsgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVBhdGhcIjtcclxuaW1wb3J0IHsgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFIH0gZnJvbSBcIi4uL21lc3NhZ2VzXCI7XHJcblxyXG5jb25zdCB7IGNvbmNhdGVuYXRlUGF0aHMgfSA9IHBhdGhVdGlsaXRpZXMsXHJcbiAgICAgIHsgcmVhZERpcmVjdG9yeSwgaXNFbnRyeURpcmVjdG9yeSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBlbnRyaWVzRnJvbVRvcG1vc3REaXJlY3RvcnlOYW1lKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgY29uc3QgYXJyYXkgPSBbXSxcclxuICAgICAgICByZWxhdGl2ZURpcmVjdG9yeVBhdGggPSB0b3Btb3N0RGlyZWN0b3J5TmFtZTsgIC8vL1xyXG5cclxuICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChhcnJheSwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgY29uc3QgZW50cmllcyA9IG5ldyBFbnRyaWVzKGFycmF5KTtcclxuXHJcbiAgcmV0dXJuIGVudHJpZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBlbnRyaWVzRnJvbVRvcG1vc3REaXJlY3RvcnlOYW1lXHJcbn07XHJcblxyXG5mdW5jdGlvbiBkaXJlY3RvcnlGcm9tUGF0aChwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgZGlyZWN0b3J5ID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoKSxcclxuICAgICAgICAgIGVudHJ5RGlyZWN0b3J5ID0gaXNFbnRyeURpcmVjdG9yeShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGlmIChlbnRyeURpcmVjdG9yeSkge1xyXG4gICAgICBkaXJlY3RvcnkgPSBuZXcgRGlyZWN0b3J5KHBhdGgpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiBkaXJlY3Rvcnk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGFycmF5LCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICBjb25zdCBhYnNvbHV0ZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICBzdWJFbnRyeU5hbWVzID0gcmVhZERpcmVjdG9yeShhYnNvbHV0ZURpcmVjdG9yeVBhdGgpO1xyXG5cclxuICBzdWJFbnRyeU5hbWVzLmZvckVhY2goKHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3Qgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgPSAhc3ViRW50cnlOYW1lSGlkZGVuTmFtZSxcclxuICAgICAgICAgIGxvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzID0gIWRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMsXHJcbiAgICAgICAgICBsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3RvcmllcyA9ICFsb2FkT25seVJlY29nbmlzZWRGaWxlcztcclxuXHJcbiAgICBpZiAoc3ViRW50cnlOYW1lTm90SGlkZGVuTmFtZSB8fCBsb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gICAgICBsZXQgZW50cnk7XHJcblxyXG4gICAgICBjb25zdCBwYXRoID0gY29uY2F0ZW5hdGVQYXRocyhyZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICAgIGRpcmVjdG9yeSA9IGRpcmVjdG9yeUZyb21QYXRoKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoZGlyZWN0b3J5ICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgZGlyZWN0b3J5UGF0aCA9IHBhdGg7IC8vL1xyXG5cclxuICAgICAgICBpZiAobG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgIGVudHJ5ID0gZGlyZWN0b3J5OyAgLy8vXHJcblxyXG4gICAgICAgICAgYXJyYXkucHVzaChlbnRyeSk7ICAvLy9cclxuXHJcbiAgICAgICAgICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICBpZiAoYXJyYXlMZW5ndGggPiBFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIX0VYQ0VFREVEX01FU1NBR0UpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChhcnJheSwgZGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcywgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcyk7IC8vL1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKSxcclxuICAgICAgICAgICAgICAgIGZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoID0gaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aChmaWxlUGF0aCksXHJcbiAgICAgICAgICAgICAgICBmaWxlUmVjb2duaXNlZEZpbGUgPSBmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aDsgIC8vL1xyXG5cclxuICAgICAgICAgIGlmIChmaWxlUmVjb2duaXNlZEZpbGUgfHwgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgICAgZW50cnkgPSBmaWxlOyAvLy9cclxuXHJcbiAgICAgICAgICAgIGFycmF5LnB1c2goZW50cnkpOyAgLy8vXHJcblxyXG4gICAgICAgICAgICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIGlmIChhcnJheUxlbmd0aCA+IEVOVFJJRVNfTUFYSU1VTV9BUlJBWV9MRU5HVEgpIHtcclxuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuIl0sIm5hbWVzIjpbImVudHJpZXNGcm9tVG9wbW9zdERpcmVjdG9yeU5hbWUiLCJjb25jYXRlbmF0ZVBhdGhzIiwicGF0aFV0aWxpdGllcyIsInJlYWREaXJlY3RvcnkiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwiaXNFbnRyeURpcmVjdG9yeSIsInRvcG1vc3REaXJlY3RvcnlOYW1lIiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwibG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMiLCJkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzIiwiYXJyYXkiLCJyZWxhdGl2ZURpcmVjdG9yeVBhdGgiLCJlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aCIsImVudHJpZXMiLCJFbnRyaWVzIiwiZGlyZWN0b3J5RnJvbVBhdGgiLCJwYXRoIiwiZGlyZWN0b3J5IiwiYWJzb2x1dGVQYXRoIiwiZW50cnlEaXJlY3RvcnkiLCJEaXJlY3RvcnkiLCJlcnJvciIsImFic29sdXRlRGlyZWN0b3J5UGF0aCIsInN1YkVudHJ5TmFtZXMiLCJmb3JFYWNoIiwic3ViRW50cnlOYW1lIiwic3ViRW50cnlOYW1lSGlkZGVuTmFtZSIsImlzTmFtZUhpZGRlbk5hbWUiLCJzdWJFbnRyeU5hbWVOb3RIaWRkZW5OYW1lIiwibG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMiLCJsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3RvcmllcyIsImVudHJ5IiwiZGlyZWN0b3J5UGF0aCIsInB1c2giLCJhcnJheUxlbmd0aCIsImxlbmd0aCIsIkVOVFJJRVNfTUFYSU1VTV9BUlJBWV9MRU5HVEgiLCJFcnJvciIsIkVOVFJJRVNfTUFYSU1VTV9BUlJBWV9MRU5HVEhfRVhDRUVERURfTUVTU0FHRSIsImZpbGUiLCJsb2FkRmlsZSIsImZpbGVQYXRoIiwiZ2V0UGF0aCIsImZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoIiwiaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCIsImZpbGVSZWNvZ25pc2VkRmlsZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBZWdCQSwrQkFBK0I7ZUFBL0JBOztJQVdoQixPQUVFO2VBRkY7Ozt5QkF4Qm1EOzREQUUvQjs4REFDRTtvQkFFVzt5QkFDWTt3QkFDQTt3QkFDaUI7Ozs7OztBQUU5RCxJQUFNLEFBQUVDLG1CQUFxQkMsd0JBQWEsQ0FBbENELGtCQUNBRSxnQkFBb0NDLDhCQUFtQixDQUF2REQsZUFBZUUsbUJBQXFCRCw4QkFBbUIsQ0FBeENDO0FBRWhCLFNBQVNMLGdDQUFnQ00sb0JBQW9CLEVBQUVDLHFCQUFxQixFQUFFQyx1QkFBdUIsRUFBRUMsa0NBQWtDLEVBQUU7SUFDeEosSUFBTUMsUUFBUSxFQUFFLEVBQ1ZDLHdCQUF3Qkwsc0JBQXVCLEdBQUc7SUFFeERNLGlDQUFpQ0YsT0FBT0MsdUJBQXVCSix1QkFBdUJDLHlCQUF5QkM7SUFFL0csSUFBTUksVUFBVSxJQUFJQyxnQkFBTyxDQUFDSjtJQUU1QixPQUFPRztBQUNUO0lBRUEsV0FBZTtJQUNiYixpQ0FBQUE7QUFDRjtBQUVBLFNBQVNlLGtCQUFrQkMsSUFBSSxFQUFFVCxxQkFBcUIsRUFBRTtJQUN0RCxJQUFJVSxZQUFZLElBQUk7SUFFcEIsSUFBSTtRQUNGLElBQU1DLGVBQWVqQixpQkFBaUJNLHVCQUF1QlMsT0FDdkRHLGlCQUFpQmQsaUJBQWlCYTtRQUV4QyxJQUFJQyxnQkFBZ0I7WUFDbEJGLFlBQVksSUFBSUcsa0JBQVMsQ0FBQ0o7UUFDNUIsQ0FBQztJQUNILEVBQUUsT0FBT0ssT0FBTztJQUNkLEdBQUc7SUFDTDtJQUVBLE9BQU9KO0FBQ1Q7QUFFQSxTQUFTTCxpQ0FBaUNGLEtBQUssRUFBRUMscUJBQXFCLEVBQUVKLHFCQUFxQixFQUFFQyx1QkFBdUIsRUFBRUMsa0NBQWtDLEVBQUU7SUFDMUosSUFBTWEsd0JBQXdCckIsaUJBQWlCTSx1QkFBdUJJLHdCQUNoRVksZ0JBQWdCcEIsY0FBY21CO0lBRXBDQyxjQUFjQyxPQUFPLENBQUMsU0FBQ0MsY0FBaUI7UUFDdEMsSUFBTUMseUJBQXlCQyxJQUFBQSxzQkFBZ0IsRUFBQ0YsZUFDMUNHLDRCQUE0QixDQUFDRix3QkFDN0JHLGdDQUFnQyxDQUFDcEIsb0NBQ2pDcUIsc0NBQXNDLENBQUN0QjtRQUU3QyxJQUFJb0IsNkJBQTZCQywrQkFBK0I7WUFDOUQsSUFBSUU7WUFFSixJQUFNZixPQUFPZixpQkFBaUJVLHVCQUF1QmMsZUFDL0NSLFlBQVlGLGtCQUFrQkMsTUFBTVQ7WUFFMUMsSUFBSVUsY0FBYyxJQUFJLEVBQUU7Z0JBQ3RCLElBQU1lLGdCQUFnQmhCLE1BQU0sR0FBRztnQkFFL0IsSUFBSWMscUNBQXFDO29CQUN2Q0MsUUFBUWQsV0FBWSxHQUFHO29CQUV2QlAsTUFBTXVCLElBQUksQ0FBQ0YsUUFBUyxHQUFHO29CQUV2QixJQUFNRyxjQUFjeEIsTUFBTXlCLE1BQU07b0JBRWhDLElBQUlELGNBQWNFLHVDQUE0QixFQUFFO3dCQUM5QyxNQUFNLElBQUlDLE1BQU1DLHVEQUE2QyxFQUFDO29CQUNoRSxDQUFDO2dCQUNILENBQUM7Z0JBRUQxQixpQ0FBaUNGLE9BQU9zQixlQUFlekIsdUJBQXVCQyx5QkFBeUJDLHFDQUFxQyxHQUFHO1lBQ2pKLE9BQU87Z0JBQ0wsSUFBTThCLE9BQU9DLFNBQVN4QixNQUFNVDtnQkFFNUIsSUFBSWdDLFNBQVMsSUFBSSxFQUFFO29CQUNqQixJQUFNRSxXQUFXRixLQUFLRyxPQUFPLElBQ3ZCQyw2QkFBNkJDLElBQUFBLHNDQUE0QixFQUFDSCxXQUMxREkscUJBQXFCRiw0QkFBNkIsR0FBRztvQkFFM0QsSUFBSUUsc0JBQXNCZixxQ0FBcUM7d0JBQzdEQyxRQUFRUSxNQUFNLEdBQUc7d0JBRWpCN0IsTUFBTXVCLElBQUksQ0FBQ0YsUUFBUyxHQUFHO3dCQUV2QixJQUFNRyxlQUFjeEIsTUFBTXlCLE1BQU07d0JBRWhDLElBQUlELGVBQWNFLHVDQUE0QixFQUFFOzRCQUM5QyxNQUFNLElBQUlDLE1BQU1DLHVEQUE2QyxFQUFDO3dCQUNoRSxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0g7QUFDRiJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-open-cli",
3
3
  "author": "James Smith",
4
- "version": "5.0.39",
4
+ "version": "5.0.40",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-open-cli",
7
7
  "description": "Occam's command line package management tool.",
package/src/main.js CHANGED
@@ -10,5 +10,5 @@ export { default as Project } from "./project";
10
10
  export { default as Projects } from "./projects";
11
11
  export { default as nameUtilities } from "./utilities/name";
12
12
  export { default as contentUtilities } from "./utilities/content";
13
+ export { default as entriesUtilities } from "./utilities/entries";
13
14
  export { default as filePathUtilities } from "./utilities/filePath";
14
- export { default as fileSystemUtilities } from "./utilities/fileSystem";
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
 
3
- import { characters, pathUtilities, fileSystemUtilities } from "necessary";
3
+ import { pathUtilities, fileSystemUtilities } from "necessary";
4
4
 
5
5
  import Entries from "../entries";
6
- import Release from "../release";
7
6
  import Directory from "../directory";
8
7
 
9
8
  import { isNameHiddenName } from "../utilities/name";
@@ -11,25 +10,22 @@ import { ENTRIES_MAXIMUM_ARRAY_LENGTH } from "../constants";
11
10
  import { isFilePathRecognisedFilePath } from "../utilities/filePath";
12
11
  import { ENTRIES_MAXIMUM_ARRAY_LENGTH_EXCEEDED_MESSAGE } from "../messages";
13
12
 
14
- const { PERIOD_CHARACTER } = characters,
15
- { concatenatePaths } = pathUtilities,
13
+ const { concatenatePaths } = pathUtilities,
16
14
  { readDirectory, isEntryDirectory } = fileSystemUtilities;
17
15
 
18
- export function releaseFromReleaseName(releaseName) {
19
- const topmostDirectoryName = releaseName, ///
20
- projectsDirectoryPath = PERIOD_CHARACTER,
21
- loadOnlyRecognisedFiles = true,
22
- doNotLoadHiddenFilesAndDirectories = true,
23
- name = releaseName, ///
24
- entries = entriesFromTopmostDirectoryName(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories),
25
- versionNumber = null, ///
26
- release = new Release(name, entries, versionNumber);
27
-
28
- return release;
16
+ export function entriesFromTopmostDirectoryName(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories) {
17
+ const array = [],
18
+ relativeDirectoryPath = topmostDirectoryName; ///
19
+
20
+ entriesFromRelativeDirectoryPath(array, relativeDirectoryPath, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories);
21
+
22
+ const entries = new Entries(array);
23
+
24
+ return entries;
29
25
  }
30
26
 
31
27
  export default {
32
- releaseFromReleaseName
28
+ entriesFromTopmostDirectoryName
33
29
  };
34
30
 
35
31
  function directoryFromPath(path, projectsDirectoryPath) {
@@ -49,17 +45,6 @@ function directoryFromPath(path, projectsDirectoryPath) {
49
45
  return directory;
50
46
  }
51
47
 
52
- function entriesFromTopmostDirectoryName(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories) {
53
- const array = [],
54
- relativeDirectoryPath = topmostDirectoryName; ///
55
-
56
- entriesFromRelativeDirectoryPath(array, relativeDirectoryPath, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories);
57
-
58
- const entries = new Entries(array);
59
-
60
- return entries;
61
- }
62
-
63
48
  function entriesFromRelativeDirectoryPath(array, relativeDirectoryPath, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories) {
64
49
  const absoluteDirectoryPath = concatenatePaths(projectsDirectoryPath, relativeDirectoryPath),
65
50
  subEntryNames = readDirectory(absoluteDirectoryPath);
@@ -1,94 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- releaseFromReleaseName: function() {
13
- return releaseFromReleaseName;
14
- },
15
- default: function() {
16
- return _default;
17
- }
18
- });
19
- var _necessary = require("necessary");
20
- var _entries = /*#__PURE__*/ _interopRequireDefault(require("../entries"));
21
- var _release = /*#__PURE__*/ _interopRequireDefault(require("../release"));
22
- var _directory = /*#__PURE__*/ _interopRequireDefault(require("../directory"));
23
- var _name = require("../utilities/name");
24
- var _constants = require("../constants");
25
- var _filePath = require("../utilities/filePath");
26
- var _messages = require("../messages");
27
- function _interopRequireDefault(obj) {
28
- return obj && obj.__esModule ? obj : {
29
- default: obj
30
- };
31
- }
32
- var PERIOD_CHARACTER = _necessary.characters.PERIOD_CHARACTER, concatenatePaths = _necessary.pathUtilities.concatenatePaths, readDirectory = _necessary.fileSystemUtilities.readDirectory, isEntryDirectory = _necessary.fileSystemUtilities.isEntryDirectory;
33
- function releaseFromReleaseName(releaseName) {
34
- var topmostDirectoryName = releaseName, projectsDirectoryPath = PERIOD_CHARACTER, loadOnlyRecognisedFiles = true, doNotLoadHiddenFilesAndDirectories = true, name = releaseName, entries = entriesFromTopmostDirectoryName(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories), versionNumber = null, release = new _release.default(name, entries, versionNumber);
35
- return release;
36
- }
37
- var _default = {
38
- releaseFromReleaseName: releaseFromReleaseName
39
- };
40
- function directoryFromPath(path, projectsDirectoryPath) {
41
- var directory = null;
42
- try {
43
- var absolutePath = concatenatePaths(projectsDirectoryPath, path), entryDirectory = isEntryDirectory(absolutePath);
44
- if (entryDirectory) {
45
- directory = new _directory.default(path);
46
- }
47
- } catch (error) {
48
- ///
49
- }
50
- return directory;
51
- }
52
- function entriesFromTopmostDirectoryName(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories) {
53
- var array = [], relativeDirectoryPath = topmostDirectoryName; ///
54
- entriesFromRelativeDirectoryPath(array, relativeDirectoryPath, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories);
55
- var entries = new _entries.default(array);
56
- return entries;
57
- }
58
- function entriesFromRelativeDirectoryPath(array, relativeDirectoryPath, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories) {
59
- var absoluteDirectoryPath = concatenatePaths(projectsDirectoryPath, relativeDirectoryPath), subEntryNames = readDirectory(absoluteDirectoryPath);
60
- subEntryNames.forEach(function(subEntryName) {
61
- var subEntryNameHiddenName = (0, _name.isNameHiddenName)(subEntryName), subEntryNameNotHiddenName = !subEntryNameHiddenName, loadHiddenFilesAndDirectories = !doNotLoadHiddenFilesAndDirectories, loadUnrecognisedFilesAndDirectories = !loadOnlyRecognisedFiles;
62
- if (subEntryNameNotHiddenName || loadHiddenFilesAndDirectories) {
63
- var entry;
64
- var path = concatenatePaths(relativeDirectoryPath, subEntryName), directory = directoryFromPath(path, projectsDirectoryPath);
65
- if (directory !== null) {
66
- var directoryPath = path; ///
67
- if (loadUnrecognisedFilesAndDirectories) {
68
- entry = directory; ///
69
- array.push(entry); ///
70
- var arrayLength = array.length;
71
- if (arrayLength > _constants.ENTRIES_MAXIMUM_ARRAY_LENGTH) {
72
- throw new Error(_messages.ENTRIES_MAXIMUM_ARRAY_LENGTH_EXCEEDED_MESSAGE);
73
- }
74
- }
75
- entriesFromRelativeDirectoryPath(array, directoryPath, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories); ///
76
- } else {
77
- var file = loadFile(path, projectsDirectoryPath);
78
- if (file !== null) {
79
- var filePath = file.getPath(), filePathRecognisedFilePath = (0, _filePath.isFilePathRecognisedFilePath)(filePath), fileRecognisedFile = filePathRecognisedFilePath; ///
80
- if (fileRecognisedFile || loadUnrecognisedFilesAndDirectories) {
81
- entry = file; ///
82
- array.push(entry); ///
83
- var arrayLength1 = array.length;
84
- if (arrayLength1 > _constants.ENTRIES_MAXIMUM_ARRAY_LENGTH) {
85
- throw new Error(_messages.ENTRIES_MAXIMUM_ARRAY_LENGTH_EXCEEDED_MESSAGE);
86
- }
87
- }
88
- }
89
- }
90
- }
91
- });
92
- }
93
-
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCB7IGNoYXJhY3RlcnMsIHBhdGhVdGlsaXRpZXMsIGZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XHJcblxyXG5pbXBvcnQgRW50cmllcyBmcm9tIFwiLi4vZW50cmllc1wiO1xyXG5pbXBvcnQgUmVsZWFzZSBmcm9tIFwiLi4vcmVsZWFzZVwiO1xyXG5pbXBvcnQgRGlyZWN0b3J5IGZyb20gXCIuLi9kaXJlY3RvcnlcIjtcclxuXHJcbmltcG9ydCB7IGlzTmFtZUhpZGRlbk5hbWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcclxuaW1wb3J0IHsgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVBhdGhcIjtcclxuaW1wb3J0IHsgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFIH0gZnJvbSBcIi4uL21lc3NhZ2VzXCI7XHJcblxyXG5jb25zdCB7IFBFUklPRF9DSEFSQUNURVIgfSA9IGNoYXJhY3RlcnMsXHJcbiAgICAgIHsgY29uY2F0ZW5hdGVQYXRocyB9ID0gcGF0aFV0aWxpdGllcyxcclxuICAgICAgeyByZWFkRGlyZWN0b3J5LCBpc0VudHJ5RGlyZWN0b3J5IH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbGVhc2VGcm9tUmVsZWFzZU5hbWUocmVsZWFzZU5hbWUpIHtcclxuICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHJlbGVhc2VOYW1lLCAvLy9cclxuICAgICAgICBwcm9qZWN0c0RpcmVjdG9yeVBhdGggPSBQRVJJT0RfQ0hBUkFDVEVSLFxyXG4gICAgICAgIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzID0gdHJ1ZSxcclxuICAgICAgICBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzID0gdHJ1ZSxcclxuICAgICAgICBuYW1lID0gcmVsZWFzZU5hbWUsIC8vL1xyXG4gICAgICAgIGVudHJpZXMgPSBlbnRyaWVzRnJvbVRvcG1vc3REaXJlY3RvcnlOYW1lKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSxcclxuICAgICAgICB2ZXJzaW9uTnVtYmVyID0gbnVsbCwgLy8vXHJcbiAgICAgICAgcmVsZWFzZSA9IG5ldyBSZWxlYXNlKG5hbWUsIGVudHJpZXMsIHZlcnNpb25OdW1iZXIpO1xyXG5cclxuICByZXR1cm4gcmVsZWFzZTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIHJlbGVhc2VGcm9tUmVsZWFzZU5hbWVcclxufTtcclxuXHJcbmZ1bmN0aW9uIGRpcmVjdG9yeUZyb21QYXRoKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBkaXJlY3RvcnkgPSBudWxsO1xyXG5cclxuICB0cnkge1xyXG4gICAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGgpLFxyXG4gICAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgaWYgKGVudHJ5RGlyZWN0b3J5KSB7XHJcbiAgICAgIGRpcmVjdG9yeSA9IG5ldyBEaXJlY3RvcnkocGF0aCk7XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGRpcmVjdG9yeTtcclxufVxyXG5cclxuZnVuY3Rpb24gZW50cmllc0Zyb21Ub3Btb3N0RGlyZWN0b3J5TmFtZSh0b3Btb3N0RGlyZWN0b3J5TmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcywgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gIGNvbnN0IGFycmF5ID0gW10sXHJcbiAgICAgICAgcmVsYXRpdmVEaXJlY3RvcnlQYXRoID0gdG9wbW9zdERpcmVjdG9yeU5hbWU7ICAvLy9cclxuXHJcbiAgZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgoYXJyYXksIHJlbGF0aXZlRGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcywgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcyk7XHJcblxyXG4gIGNvbnN0IGVudHJpZXMgPSBuZXcgRW50cmllcyhhcnJheSk7XHJcblxyXG4gIHJldHVybiBlbnRyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChhcnJheSwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgY29uc3QgYWJzb2x1dGVEaXJlY3RvcnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHJlbGF0aXZlRGlyZWN0b3J5UGF0aCksXHJcbiAgICAgICAgc3ViRW50cnlOYW1lcyA9IHJlYWREaXJlY3RvcnkoYWJzb2x1dGVEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgc3ViRW50cnlOYW1lcy5mb3JFYWNoKChzdWJFbnRyeU5hbWUpID0+IHtcclxuICAgIGNvbnN0IHN1YkVudHJ5TmFtZUhpZGRlbk5hbWUgPSBpc05hbWVIaWRkZW5OYW1lKHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICBzdWJFbnRyeU5hbWVOb3RIaWRkZW5OYW1lID0gIXN1YkVudHJ5TmFtZUhpZGRlbk5hbWUsXHJcbiAgICAgICAgICBsb2FkSGlkZGVuRmlsZXNBbmREaXJlY3RvcmllcyA9ICFkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzLFxyXG4gICAgICAgICAgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMgPSAhbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXM7XHJcblxyXG4gICAgaWYgKHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgfHwgbG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgbGV0IGVudHJ5O1xyXG5cclxuICAgICAgY29uc3QgcGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocmVsYXRpdmVEaXJlY3RvcnlQYXRoLCBzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgICBkaXJlY3RvcnkgPSBkaXJlY3RvcnlGcm9tUGF0aChwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKGRpcmVjdG9yeSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeVBhdGggPSBwYXRoOyAvLy9cclxuXHJcbiAgICAgICAgaWYgKGxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgICAgICAgICBlbnRyeSA9IGRpcmVjdG9yeTsgIC8vL1xyXG5cclxuICAgICAgICAgIGFycmF5LnB1c2goZW50cnkpOyAgLy8vXHJcblxyXG4gICAgICAgICAgY29uc3QgYXJyYXlMZW5ndGggPSBhcnJheS5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgaWYgKGFycmF5TGVuZ3RoID4gRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgoYXJyYXksIGRpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpOyAvLy9cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBmaWxlID0gbG9hZEZpbGUocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGUgIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gZmlsZS5nZXRQYXRoKCksXHJcbiAgICAgICAgICAgICAgICBmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCA9IGlzRmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgoZmlsZVBhdGgpLFxyXG4gICAgICAgICAgICAgICAgZmlsZVJlY29nbmlzZWRGaWxlID0gZmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGg7ICAvLy9cclxuXHJcbiAgICAgICAgICBpZiAoZmlsZVJlY29nbmlzZWRGaWxlIHx8IGxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgICAgICAgICAgIGVudHJ5ID0gZmlsZTsgLy8vXHJcblxyXG4gICAgICAgICAgICBhcnJheS5wdXNoKGVudHJ5KTsgIC8vL1xyXG5cclxuICAgICAgICAgICAgY29uc3QgYXJyYXlMZW5ndGggPSBhcnJheS5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgICBpZiAoYXJyYXlMZW5ndGggPiBFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIKSB7XHJcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKEVOVFJJRVNfTUFYSU1VTV9BUlJBWV9MRU5HVEhfRVhDRUVERURfTUVTU0FHRSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJyZWxlYXNlRnJvbVJlbGVhc2VOYW1lIiwiUEVSSU9EX0NIQVJBQ1RFUiIsImNoYXJhY3RlcnMiLCJjb25jYXRlbmF0ZVBhdGhzIiwicGF0aFV0aWxpdGllcyIsInJlYWREaXJlY3RvcnkiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwiaXNFbnRyeURpcmVjdG9yeSIsInJlbGVhc2VOYW1lIiwidG9wbW9zdERpcmVjdG9yeU5hbWUiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJsb2FkT25seVJlY29nbmlzZWRGaWxlcyIsImRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMiLCJuYW1lIiwiZW50cmllcyIsImVudHJpZXNGcm9tVG9wbW9zdERpcmVjdG9yeU5hbWUiLCJ2ZXJzaW9uTnVtYmVyIiwicmVsZWFzZSIsIlJlbGVhc2UiLCJkaXJlY3RvcnlGcm9tUGF0aCIsInBhdGgiLCJkaXJlY3RvcnkiLCJhYnNvbHV0ZVBhdGgiLCJlbnRyeURpcmVjdG9yeSIsIkRpcmVjdG9yeSIsImVycm9yIiwiYXJyYXkiLCJyZWxhdGl2ZURpcmVjdG9yeVBhdGgiLCJlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aCIsIkVudHJpZXMiLCJhYnNvbHV0ZURpcmVjdG9yeVBhdGgiLCJzdWJFbnRyeU5hbWVzIiwiZm9yRWFjaCIsInN1YkVudHJ5TmFtZSIsInN1YkVudHJ5TmFtZUhpZGRlbk5hbWUiLCJpc05hbWVIaWRkZW5OYW1lIiwic3ViRW50cnlOYW1lTm90SGlkZGVuTmFtZSIsImxvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzIiwibG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMiLCJlbnRyeSIsImRpcmVjdG9yeVBhdGgiLCJwdXNoIiwiYXJyYXlMZW5ndGgiLCJsZW5ndGgiLCJFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIIiwiRXJyb3IiLCJFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIX0VYQ0VFREVEX01FU1NBR0UiLCJmaWxlIiwibG9hZEZpbGUiLCJmaWxlUGF0aCIsImdldFBhdGgiLCJmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCIsImlzRmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgiLCJmaWxlUmVjb2duaXNlZEZpbGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQWlCZ0JBLHNCQUFzQjtlQUF0QkE7O0lBYWhCLE9BRUU7ZUFGRjs7O3lCQTVCK0Q7NERBRTNDOzREQUNBOzhEQUNFO29CQUVXO3lCQUNZO3dCQUNBO3dCQUNpQjs7Ozs7O0FBRTlELElBQU0sQUFBRUMsbUJBQXFCQyxxQkFBVSxDQUEvQkQsa0JBQ0YsQUFBRUUsbUJBQXFCQyx3QkFBYSxDQUFsQ0Qsa0JBQ0FFLGdCQUFvQ0MsOEJBQW1CLENBQXZERCxlQUFlRSxtQkFBcUJELDhCQUFtQixDQUF4Q0M7QUFFaEIsU0FBU1AsdUJBQXVCUSxXQUFXLEVBQUU7SUFDbEQsSUFBTUMsdUJBQXVCRCxhQUN2QkUsd0JBQXdCVCxrQkFDeEJVLDBCQUEwQixJQUFJLEVBQzlCQyxxQ0FBcUMsSUFBSSxFQUN6Q0MsT0FBT0wsYUFDUE0sVUFBVUMsZ0NBQWdDTixzQkFBc0JDLHVCQUF1QkMseUJBQXlCQyxxQ0FDaEhJLGdCQUFnQixJQUFJLEVBQ3BCQyxVQUFVLElBQUlDLGdCQUFPLENBQUNMLE1BQU1DLFNBQVNFO0lBRTNDLE9BQU9DO0FBQ1Q7SUFFQSxXQUFlO0lBQ2JqQix3QkFBQUE7QUFDRjtBQUVBLFNBQVNtQixrQkFBa0JDLElBQUksRUFBRVYscUJBQXFCLEVBQUU7SUFDdEQsSUFBSVcsWUFBWSxJQUFJO0lBRXBCLElBQUk7UUFDRixJQUFNQyxlQUFlbkIsaUJBQWlCTyx1QkFBdUJVLE9BQ3ZERyxpQkFBaUJoQixpQkFBaUJlO1FBRXhDLElBQUlDLGdCQUFnQjtZQUNsQkYsWUFBWSxJQUFJRyxrQkFBUyxDQUFDSjtRQUM1QixDQUFDO0lBQ0gsRUFBRSxPQUFPSyxPQUFPO0lBQ2QsR0FBRztJQUNMO0lBRUEsT0FBT0o7QUFDVDtBQUVBLFNBQVNOLGdDQUFnQ04sb0JBQW9CLEVBQUVDLHFCQUFxQixFQUFFQyx1QkFBdUIsRUFBRUMsa0NBQWtDLEVBQUU7SUFDakosSUFBTWMsUUFBUSxFQUFFLEVBQ1ZDLHdCQUF3QmxCLHNCQUF1QixHQUFHO0lBRXhEbUIsaUNBQWlDRixPQUFPQyx1QkFBdUJqQix1QkFBdUJDLHlCQUF5QkM7SUFFL0csSUFBTUUsVUFBVSxJQUFJZSxnQkFBTyxDQUFDSDtJQUU1QixPQUFPWjtBQUNUO0FBRUEsU0FBU2MsaUNBQWlDRixLQUFLLEVBQUVDLHFCQUFxQixFQUFFakIscUJBQXFCLEVBQUVDLHVCQUF1QixFQUFFQyxrQ0FBa0MsRUFBRTtJQUMxSixJQUFNa0Isd0JBQXdCM0IsaUJBQWlCTyx1QkFBdUJpQix3QkFDaEVJLGdCQUFnQjFCLGNBQWN5QjtJQUVwQ0MsY0FBY0MsT0FBTyxDQUFDLFNBQUNDLGNBQWlCO1FBQ3RDLElBQU1DLHlCQUF5QkMsSUFBQUEsc0JBQWdCLEVBQUNGLGVBQzFDRyw0QkFBNEIsQ0FBQ0Ysd0JBQzdCRyxnQ0FBZ0MsQ0FBQ3pCLG9DQUNqQzBCLHNDQUFzQyxDQUFDM0I7UUFFN0MsSUFBSXlCLDZCQUE2QkMsK0JBQStCO1lBQzlELElBQUlFO1lBRUosSUFBTW5CLE9BQU9qQixpQkFBaUJ3Qix1QkFBdUJNLGVBQy9DWixZQUFZRixrQkFBa0JDLE1BQU1WO1lBRTFDLElBQUlXLGNBQWMsSUFBSSxFQUFFO2dCQUN0QixJQUFNbUIsZ0JBQWdCcEIsTUFBTSxHQUFHO2dCQUUvQixJQUFJa0IscUNBQXFDO29CQUN2Q0MsUUFBUWxCLFdBQVksR0FBRztvQkFFdkJLLE1BQU1lLElBQUksQ0FBQ0YsUUFBUyxHQUFHO29CQUV2QixJQUFNRyxjQUFjaEIsTUFBTWlCLE1BQU07b0JBRWhDLElBQUlELGNBQWNFLHVDQUE0QixFQUFFO3dCQUM5QyxNQUFNLElBQUlDLE1BQU1DLHVEQUE2QyxFQUFDO29CQUNoRSxDQUFDO2dCQUNILENBQUM7Z0JBRURsQixpQ0FBaUNGLE9BQU9jLGVBQWU5Qix1QkFBdUJDLHlCQUF5QkMscUNBQXFDLEdBQUc7WUFDakosT0FBTztnQkFDTCxJQUFNbUMsT0FBT0MsU0FBUzVCLE1BQU1WO2dCQUU1QixJQUFJcUMsU0FBUyxJQUFJLEVBQUU7b0JBQ2pCLElBQU1FLFdBQVdGLEtBQUtHLE9BQU8sSUFDdkJDLDZCQUE2QkMsSUFBQUEsc0NBQTRCLEVBQUNILFdBQzFESSxxQkFBcUJGLDRCQUE2QixHQUFHO29CQUUzRCxJQUFJRSxzQkFBc0JmLHFDQUFxQzt3QkFDN0RDLFFBQVFRLE1BQU0sR0FBRzt3QkFFakJyQixNQUFNZSxJQUFJLENBQUNGLFFBQVMsR0FBRzt3QkFFdkIsSUFBTUcsZUFBY2hCLE1BQU1pQixNQUFNO3dCQUVoQyxJQUFJRCxlQUFjRSx1Q0FBNEIsRUFBRTs0QkFDOUMsTUFBTSxJQUFJQyxNQUFNQyx1REFBNkMsRUFBQzt3QkFDaEUsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNIO0FBQ0YifQ==