occam-open-cli 4.0.41 → 4.0.45

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/bin/constants.js CHANGED
@@ -3,23 +3,17 @@
3
3
  const END = "end",
4
4
  DATA = "data",
5
5
  OPEN = "open",
6
- BASE64 = "base64",
7
6
  OPEN_CLI = "Open-CLI",
8
- USER_AGENT = "user-agent",
9
7
  DOUBLE_DOTS = "..",
10
8
  EMPTY_STRING = "",
11
- CONTENT_TYPE = "content-type",
12
9
  PACKAGE_JSON = "package.json";
13
10
 
14
11
  module.exports = {
15
12
  END,
16
13
  DATA,
17
14
  OPEN,
18
- BASE64,
19
15
  OPEN_CLI,
20
- USER_AGENT,
21
16
  DOUBLE_DOTS,
22
17
  EMPTY_STRING,
23
- CONTENT_TYPE,
24
18
  PACKAGE_JSON
25
19
  };
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ import { encodings } from "necessary";
4
+
3
5
  const { deflate } = require("zlib");
4
6
 
5
- const { BASE64 } = require("../constants");
7
+ const { BASE64_ENCODING } = encodings;
6
8
 
7
9
  function deflateReleaseOperation(proceed, abort, context) {
8
10
  const { release } = context,
@@ -16,7 +18,7 @@ function deflateReleaseOperation(proceed, abort, context) {
16
18
  return;
17
19
  }
18
20
 
19
- const encoding = BASE64,
21
+ const encoding = BASE64_ENCODING,
20
22
  deflatedReleaseJSONString = buffer.toString(encoding),
21
23
  deflatedRelease = deflatedReleaseJSONString; ///
22
24
 
package/bin/post.js CHANGED
@@ -3,16 +3,17 @@
3
3
  const os = require("os");
4
4
 
5
5
  const { Readable } = require("stream");
6
- const { requestUtilities } = require("necessary");
6
+ const { headers, contentTypes, requestUtilities } = require("necessary");
7
7
 
8
- const { retrieveHostURL } = require("./configuration"),
8
+ const { OPEN_CLI } = require("./constants"),
9
+ { retrieveHostURL } = require("./configuration"),
9
10
  { getPackageVersion } = require("./utilities/packageJSON"),
10
11
  { contentFromResponse } = require("./utilities/response"),
11
- { USER_AGENT, CONTENT_TYPE, OPEN_CLI } = require("./constants"),
12
- { APPLICATION_JSON_CHARSET_UTF_8_CONTENT_TYPE } = require("./contentTypes"),
13
12
  { SERVER_ERROR_MESSAGE, SERVER_FAILED_TO_RESPOND_ERROR_MESSAGE } = require("./messages");
14
13
 
15
- const { createPostRequest } = requestUtilities;
14
+ const { createPostRequest } = requestUtilities,
15
+ { USER_AGENT_HEADER, CONTENT_TYPE_HEADER } = headers,
16
+ { APPLICATION_JSON_CHARSET_UTF_8_CONTENT_TYPE } = contentTypes;
16
17
 
17
18
  function post(uri, data, callback) {
18
19
  const host = getHost(),
@@ -80,9 +81,9 @@ function getHeaders() {
80
81
  const headers = {},
81
82
  userAgent = getUserAgent();
82
83
 
83
- headers[USER_AGENT] = userAgent;
84
+ headers[USER_AGENT_HEADER] = userAgent;
84
85
 
85
- headers[CONTENT_TYPE] = APPLICATION_JSON_CHARSET_UTF_8_CONTENT_TYPE;
86
+ headers[CONTENT_TYPE_HEADER] = APPLICATION_JSON_CHARSET_UTF_8_CONTENT_TYPE;
86
87
 
87
88
  return headers;
88
89
  }
package/lib/constants.js CHANGED
@@ -2,12 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.ENTRIES_MAXIMUM_ARRAY_LENGTH = exports.DOUBLE_SPACE = exports.DOT = void 0;
6
- var DOT = ".";
7
- exports.DOT = DOT;
5
+ exports.ENTRIES_MAXIMUM_ARRAY_LENGTH = exports.DOUBLE_SPACE = void 0;
8
6
  var DOUBLE_SPACE = " ";
9
7
  exports.DOUBLE_SPACE = DOUBLE_SPACE;
10
8
  var ENTRIES_MAXIMUM_ARRAY_LENGTH = 1024;
11
9
  exports.ENTRIES_MAXIMUM_ARRAY_LENGTH = ENTRIES_MAXIMUM_ARRAY_LENGTH;
12
10
 
13
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBET1QgPSBcIi5cIjtcbmV4cG9ydCBjb25zdCBET1VCTEVfU1BBQ0UgPSBcIiAgXCI7XG5leHBvcnQgY29uc3QgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCA9IDEwMjQ7XG4iXSwibmFtZXMiOlsiRE9UIiwiRE9VQkxFX1NQQUNFIiwiRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFTCxHQUFLLENBQUNBLEdBQUcsR0FBRyxDQUFHO1FBQVRBLEdBQUcsR0FBSEEsR0FBRztBQUNULEdBQUssQ0FBQ0MsWUFBWSxHQUFHLENBQUk7UUFBbkJBLFlBQVksR0FBWkEsWUFBWTtBQUNsQixHQUFLLENBQUNDLDRCQUE0QixHQUFHLElBQUk7UUFBbkNBLDRCQUE0QixHQUE1QkEsNEJBQTRCIn0=
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBET1VCTEVfU1BBQ0UgPSBcIiAgXCI7XG5leHBvcnQgY29uc3QgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCA9IDEwMjQ7XG4iXSwibmFtZXMiOlsiRE9VQkxFX1NQQUNFIiwiRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFTCxHQUFLLENBQUNBLFlBQVksR0FBRyxDQUFJO1FBQW5CQSxZQUFZLEdBQVpBLFlBQVk7QUFDbEIsR0FBSyxDQUFDQyw0QkFBNEIsR0FBRyxJQUFJO1FBQW5DQSw0QkFBNEIsR0FBNUJBLDRCQUE0QiJ9
@@ -64,6 +64,7 @@ function _setPrototypeOf(o, p) {
64
64
  return _setPrototypeOf(o, p);
65
65
  }
66
66
  var _typeof = function(obj) {
67
+ "@swc/helpers - typeof";
67
68
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
68
69
  };
69
70
  function _isNativeReflectConstruct() {
@@ -71,8 +72,7 @@ function _isNativeReflectConstruct() {
71
72
  if (Reflect.construct.sham) return false;
72
73
  if (typeof Proxy === "function") return true;
73
74
  try {
74
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
75
- }));
75
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
76
76
  return true;
77
77
  } catch (e) {
78
78
  return false;
@@ -64,6 +64,7 @@ function _setPrototypeOf(o, p) {
64
64
  return _setPrototypeOf(o, p);
65
65
  }
66
66
  var _typeof = function(obj) {
67
+ "@swc/helpers - typeof";
67
68
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
68
69
  };
69
70
  function _isNativeReflectConstruct() {
@@ -71,8 +72,7 @@ function _isNativeReflectConstruct() {
71
72
  if (Reflect.construct.sham) return false;
72
73
  if (typeof Proxy === "function") return true;
73
74
  try {
74
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
75
- }));
75
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
76
76
  return true;
77
77
  } catch (e) {
78
78
  return false;
@@ -19,8 +19,8 @@ var _project = _interopRequireDefault(require("../project"));
19
19
  var _release = _interopRequireDefault(require("../release"));
20
20
  var _projects = _interopRequireDefault(require("../projects"));
21
21
  var _directory = _interopRequireDefault(require("../directory"));
22
- var _constants = require("../constants");
23
22
  var _name = require("../utilities/name");
23
+ var _constants = require("../constants");
24
24
  var _filePath = require("../utilities/filePath");
25
25
  var _messages = require("../messages");
26
26
  function _interopRequireDefault(obj) {
@@ -32,13 +32,11 @@ function _interopRequireWildcard(obj) {
32
32
  if (obj && obj.__esModule) {
33
33
  return obj;
34
34
  } else {
35
- var newObj = {
36
- };
35
+ var newObj = {};
37
36
  if (obj != null) {
38
37
  for(var key in obj){
39
38
  if (Object.prototype.hasOwnProperty.call(obj, key)) {
40
- var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {
41
- };
39
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
42
40
  if (desc.get || desc.set) {
43
41
  Object.defineProperty(newObj, key, desc);
44
42
  } else {
@@ -51,7 +49,7 @@ function _interopRequireWildcard(obj) {
51
49
  return newObj;
52
50
  }
53
51
  }
54
- 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;
52
+ var PERIOD_CHARACTER = _necessary.characters.PERIOD_CHARACTER, 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;
55
53
  function loadFile(path, projectsDirectoryPath) {
56
54
  var file = null;
57
55
  try {
@@ -104,7 +102,7 @@ function loadProjects(projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadH
104
102
  return projects;
105
103
  }
106
104
  function releaseFromName(name) {
107
- var topmostDirectoryName = name, projectsDirectoryPath = _constants.DOT, loadOnlyRecognisedFiles = true, doNotLoadHiddenFilesAndDirectories = true, entries = entriesFromTopmostDirectoryName(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories), versionNumber = null, release = new _release.default(name, entries, versionNumber);
105
+ var topmostDirectoryName = name, projectsDirectoryPath = PERIOD_CHARACTER, loadOnlyRecognisedFiles = true, doNotLoadHiddenFilesAndDirectories = true, entries = entriesFromTopmostDirectoryName(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories), versionNumber = null, release = new _release.default(name, entries, versionNumber);
108
106
  return release;
109
107
  }
110
108
  var _default = {
@@ -187,4 +185,4 @@ function topmostDirectoryNamesFromProjectsDirectoryPath(projectsDirectoryPath, d
187
185
  return topmostDirectoryNames1;
188
186
  }
189
187
 
190
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCBta2RpcnAgZnJvbSBcIm1rZGlycFwiO1xyXG5cclxuaW1wb3J0IHsgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcclxuXHJcbmltcG9ydCBGaWxlIGZyb20gXCIuLi9maWxlXCI7XHJcbmltcG9ydCBGaWxlcyBmcm9tIFwiLi4vZmlsZXNcIjtcclxuaW1wb3J0IEVudHJpZXMgZnJvbSBcIi4uL2VudHJpZXNcIjtcclxuaW1wb3J0IFByb2plY3QgZnJvbSBcIi4uL3Byb2plY3RcIjtcclxuaW1wb3J0IFJlbGVhc2UgZnJvbSBcIi4uL3JlbGVhc2VcIjtcclxuaW1wb3J0IFByb2plY3RzIGZyb20gXCIuLi9wcm9qZWN0c1wiO1xyXG5pbXBvcnQgRGlyZWN0b3J5IGZyb20gXCIuLi9kaXJlY3RvcnlcIjtcclxuXHJcbmltcG9ydCB7IERPVCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgaXNOYW1lSGlkZGVuTmFtZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvbmFtZVwiO1xyXG5pbXBvcnQgeyBFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9maWxlUGF0aFwiO1xyXG5pbXBvcnQgeyBjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UgfSBmcm9tIFwiLi4vZmlsZVwiO1xyXG5pbXBvcnQgeyBFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIX0VYQ0VFREVEX01FU1NBR0UgfSBmcm9tIFwiLi4vbWVzc2FnZXNcIjtcclxuXHJcbmNvbnN0IHsgY29uY2F0ZW5hdGVQYXRocywgdG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aCB9ID0gcGF0aFV0aWxpdGllcyxcclxuICAgICAgeyByZWFkRmlsZSwgd3JpdGVGaWxlLCBpc0VudHJ5RmlsZSwgcmVhZERpcmVjdG9yeSwgaXNFbnRyeURpcmVjdG9yeSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgZmlsZSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgICBlbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGlmIChlbnRyeUZpbGUpIHtcclxuICAgICAgbGV0IGNvbnRlbnQgPSByZWFkRmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xyXG5cclxuICAgICAgZmlsZSA9IG5ldyBGaWxlKHBhdGgsIGNvbnRlbnQpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiBmaWxlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgcGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxyXG4gICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKSxcclxuICAgICAgICBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgdG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCA9IHRvcG1vc3REaXJlY3RvcnlQYXRoRnJvbVBhdGgoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgbWtkaXJwLnN5bmModG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHdyaXRlRmlsZShhYnNvbHV0ZVBhdGgsIGNvbnRlbnQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZEZpbGVzKHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBhcnJheSA9IFtdLFxyXG4gICAgICAgIGZpbGVzID0gbmV3IEZpbGVzKGFycmF5KTtcclxuXHJcbiAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgZmlsZXMuYWRkRmlsZShmaWxlKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGVzKGZpbGVzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBmaWxlcy5mb3JFYWNoRmlsZSgoZmlsZSkgPT4ge1xyXG4gICAgc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRQcm9qZWN0KHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgY29uc3QgbmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lLCAgLy8vXHJcbiAgICAgICAgZW50cmllcyA9IGVudHJpZXNGcm9tVG9wbW9zdERpcmVjdG9yeU5hbWUodG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpLFxyXG4gICAgICAgIHByb2plY3QgPSBuZXcgUHJvamVjdChuYW1lLCBlbnRyaWVzKTtcclxuXHJcbiAgcmV0dXJuIHByb2plY3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcywgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gIGxldCBwcm9qZWN0cztcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGFycmF5ID0gW107XHJcblxyXG4gICAgcHJvamVjdHMgPSBuZXcgUHJvamVjdHMoYXJyYXkpO1xyXG5cclxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lcyA9IHRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMuZm9yRWFjaCgodG9wbW9zdERpcmVjdG9yeU5hbWUpID0+IHtcclxuICAgICAgY29uc3QgcHJvamVjdCA9IGxvYWRQcm9qZWN0KHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgICAgIHByb2plY3RzLmFkZFByb2plY3QocHJvamVjdCk7XHJcbiAgICB9KTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgcHJvamVjdHMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHByb2plY3RzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVsZWFzZUZyb21OYW1lKG5hbWUpIHtcclxuICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IG5hbWUsIC8vL1xyXG4gICAgICAgIHByb2plY3RzRGlyZWN0b3J5UGF0aCA9IERPVCxcclxuICAgICAgICBsb2FkT25seVJlY29nbmlzZWRGaWxlcyA9IHRydWUsXHJcbiAgICAgICAgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3RvcmllcyA9IHRydWUsXHJcbiAgICAgICAgZW50cmllcyA9IGVudHJpZXNGcm9tVG9wbW9zdERpcmVjdG9yeU5hbWUodG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpLFxyXG4gICAgICAgIHZlcnNpb25OdW1iZXIgPSBudWxsLCAvLy9cclxuICAgICAgICByZWxlYXNlID0gbmV3IFJlbGVhc2UobmFtZSwgZW50cmllcywgdmVyc2lvbk51bWJlcik7XHJcblxyXG4gIHJldHVybiByZWxlYXNlO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbG9hZEZpbGUsXHJcbiAgc2F2ZUZpbGUsXHJcbiAgbG9hZEZpbGVzLFxyXG4gIHNhdmVGaWxlcyxcclxuICBsb2FkUHJvamVjdCxcclxuICBsb2FkUHJvamVjdHMsXHJcbiAgcmVsZWFzZUZyb21OYW1lXHJcbn07XHJcblxyXG5mdW5jdGlvbiBkaXJlY3RvcnlGcm9tUGF0aChwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgZGlyZWN0b3J5ID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoKSxcclxuICAgICAgICAgIGVudHJ5RGlyZWN0b3J5ID0gaXNFbnRyeURpcmVjdG9yeShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGlmIChlbnRyeURpcmVjdG9yeSkge1xyXG4gICAgICBkaXJlY3RvcnkgPSBuZXcgRGlyZWN0b3J5KHBhdGgpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiBkaXJlY3Rvcnk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVudHJpZXNGcm9tVG9wbW9zdERpcmVjdG9yeU5hbWUodG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICBjb25zdCBhcnJheSA9IFtdLFxyXG4gICAgICAgIHJlbGF0aXZlRGlyZWN0b3J5UGF0aCA9IHRvcG1vc3REaXJlY3RvcnlOYW1lOyAgLy8vXHJcblxyXG4gIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGFycmF5LCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpO1xyXG5cclxuICBjb25zdCBlbnRyaWVzID0gbmV3IEVudHJpZXMoYXJyYXkpO1xyXG5cclxuICByZXR1cm4gZW50cmllcztcclxufVxyXG5cclxuZnVuY3Rpb24gZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgoYXJyYXksIHJlbGF0aXZlRGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcywgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gIGNvbnN0IGFic29sdXRlRGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCByZWxhdGl2ZURpcmVjdG9yeVBhdGgpLFxyXG4gICAgICAgIHN1YkVudHJ5TmFtZXMgPSByZWFkRGlyZWN0b3J5KGFic29sdXRlRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHN1YkVudHJ5TmFtZXMuZm9yRWFjaCgoc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBzdWJFbnRyeU5hbWVIaWRkZW5OYW1lID0gaXNOYW1lSGlkZGVuTmFtZShzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgc3ViRW50cnlOYW1lTm90SGlkZGVuTmFtZSA9ICFzdWJFbnRyeU5hbWVIaWRkZW5OYW1lLFxyXG4gICAgICAgICAgbG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMgPSAhZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3RvcmllcyxcclxuICAgICAgICAgIGxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzID0gIWxvYWRPbmx5UmVjb2duaXNlZEZpbGVzO1xyXG5cclxuICAgIGlmIChzdWJFbnRyeU5hbWVOb3RIaWRkZW5OYW1lIHx8IGxvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgICAgIGxldCBlbnRyeTtcclxuXHJcbiAgICAgIGNvbnN0IHBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHJlbGF0aXZlRGlyZWN0b3J5UGF0aCwgc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgICAgZGlyZWN0b3J5ID0gZGlyZWN0b3J5RnJvbVBhdGgocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICAgIGlmIChkaXJlY3RvcnkgIT09IG51bGwpIHtcclxuICAgICAgICBjb25zdCBkaXJlY3RvcnlQYXRoID0gcGF0aDsgLy8vXHJcblxyXG4gICAgICAgIGlmIChsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gICAgICAgICAgZW50cnkgPSBkaXJlY3Rvcnk7ICAvLy9cclxuXHJcbiAgICAgICAgICBhcnJheS5wdXNoKGVudHJ5KTsgIC8vL1xyXG5cclxuICAgICAgICAgIGNvbnN0IGFycmF5TGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xyXG5cclxuICAgICAgICAgIGlmIChhcnJheUxlbmd0aCA+IEVOVFJJRVNfTUFYSU1VTV9BUlJBWV9MRU5HVEgpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKEVOVFJJRVNfTUFYSU1VTV9BUlJBWV9MRU5HVEhfRVhDRUVERURfTUVTU0FHRSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGFycmF5LCBkaXJlY3RvcnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTsgLy8vXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgZmlsZSA9IGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgICAgIGlmIChmaWxlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxyXG4gICAgICAgICAgICAgICAgZmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGggPSBpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoKGZpbGVQYXRoKSxcclxuICAgICAgICAgICAgICAgIGZpbGVSZWNvZ25pc2VkRmlsZSA9IGZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoOyAgLy8vXHJcblxyXG4gICAgICAgICAgaWYgKGZpbGVSZWNvZ25pc2VkRmlsZSB8fCBsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gICAgICAgICAgICBlbnRyeSA9IGZpbGU7IC8vL1xyXG5cclxuICAgICAgICAgICAgYXJyYXkucHVzaChlbnRyeSk7ICAvLy9cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGFycmF5TGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xyXG5cclxuICAgICAgICAgICAgaWYgKGFycmF5TGVuZ3RoID4gRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCkge1xyXG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIX0VYQ0VFREVEX01FU1NBR0UpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gdG9wbW9zdERpcmVjdG9yeU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICBsZXQgdG9wbW9zdERpcmVjdG9yeU5hbWVzO1xyXG5cclxuICBjb25zdCBzdWJFbnRyeU5hbWVzID0gcmVhZERpcmVjdG9yeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMgPSBzdWJFbnRyeU5hbWVzLnJlZHVjZSgodG9wbW9zdERpcmVjdG9yeU5hbWVzLCBzdWJFbnRyeU5hbWUpID0+IHtcclxuICAgIGNvbnN0IGFic29sdXRlU3ViRW50cnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICBzdWJFbnRyeU5hbWVIaWRkZW5OYW1lID0gaXNOYW1lSGlkZGVuTmFtZShzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgc3ViRW50cnlOYW1lTm90SGlkZGVuTmFtZSA9ICFzdWJFbnRyeU5hbWVIaWRkZW5OYW1lLFxyXG4gICAgICAgICAgbG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMgPSAhZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3RvcmllcztcclxuXHJcbiAgICBpZiAoc3ViRW50cnlOYW1lTm90SGlkZGVuTmFtZSB8fCBsb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gICAgICBjb25zdCBzdWJFbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVTdWJFbnRyeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKHN1YkVudHJ5RGlyZWN0b3J5KSB7XHJcbiAgICAgICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSBzdWJFbnRyeU5hbWU7ICAvLy9cclxuXHJcbiAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWVzLnB1c2godG9wbW9zdERpcmVjdG9yeU5hbWUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdG9wbW9zdERpcmVjdG9yeU5hbWVzO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxufVxyXG4iXSwibmFtZXMiOlsibG9hZEZpbGUiLCJzYXZlRmlsZSIsImxvYWRGaWxlcyIsInNhdmVGaWxlcyIsImxvYWRQcm9qZWN0IiwibG9hZFByb2plY3RzIiwicmVsZWFzZUZyb21OYW1lIiwiY29uY2F0ZW5hdGVQYXRocyIsInRvcG1vc3REaXJlY3RvcnlQYXRoRnJvbVBhdGgiLCJyZWFkRmlsZSIsIndyaXRlRmlsZSIsImlzRW50cnlGaWxlIiwicmVhZERpcmVjdG9yeSIsImlzRW50cnlEaXJlY3RvcnkiLCJwYXRoIiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwiZmlsZSIsImFic29sdXRlUGF0aCIsImVudHJ5RmlsZSIsImNvbnRlbnQiLCJlcnJvciIsImdldFBhdGgiLCJnZXRDb250ZW50IiwidG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCIsInN5bmMiLCJwYXRocyIsImFycmF5IiwiZmlsZXMiLCJmb3JFYWNoIiwiYWRkRmlsZSIsImZvckVhY2hGaWxlIiwidG9wbW9zdERpcmVjdG9yeU5hbWUiLCJsb2FkT25seVJlY29nbmlzZWRGaWxlcyIsImRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMiLCJuYW1lIiwiZW50cmllcyIsImVudHJpZXNGcm9tVG9wbW9zdERpcmVjdG9yeU5hbWUiLCJwcm9qZWN0IiwicHJvamVjdHMiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZXMiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoIiwiYWRkUHJvamVjdCIsInZlcnNpb25OdW1iZXIiLCJyZWxlYXNlIiwiZGlyZWN0b3J5RnJvbVBhdGgiLCJkaXJlY3RvcnkiLCJlbnRyeURpcmVjdG9yeSIsInJlbGF0aXZlRGlyZWN0b3J5UGF0aCIsImVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoIiwiYWJzb2x1dGVEaXJlY3RvcnlQYXRoIiwic3ViRW50cnlOYW1lcyIsInN1YkVudHJ5TmFtZSIsInN1YkVudHJ5TmFtZUhpZGRlbk5hbWUiLCJzdWJFbnRyeU5hbWVOb3RIaWRkZW5OYW1lIiwibG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMiLCJsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3RvcmllcyIsImVudHJ5IiwiZGlyZWN0b3J5UGF0aCIsInB1c2giLCJhcnJheUxlbmd0aCIsImxlbmd0aCIsIkVycm9yIiwiZmlsZVBhdGgiLCJmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCIsImZpbGVSZWNvZ25pc2VkRmlsZSIsInJlZHVjZSIsImFic29sdXRlU3ViRW50cnlQYXRoIiwic3ViRW50cnlEaXJlY3RvcnkiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7UUF3QklBLFFBQVEsR0FBUkEsUUFBUTtRQXFCUkMsUUFBUSxHQUFSQSxRQUFRO1FBV1JDLFNBQVMsR0FBVEEsU0FBUztRQWFUQyxTQUFTLEdBQVRBLFNBQVM7UUFNVEMsV0FBVyxHQUFYQSxXQUFXO1FBUVhDLFlBQVksR0FBWkEsWUFBWTtRQXNCWkMsZUFBZSxHQUFmQSxlQUFlOztBQXZHWixHQUFRLENBQVIsT0FBUTtBQUV3QixHQUFXLENBQVgsVUFBVztBQUU3QyxHQUFTLENBQVQsS0FBUztBQUNSLEdBQVUsQ0FBVixNQUFVO0FBQ1IsR0FBWSxDQUFaLFFBQVk7QUFDWixHQUFZLENB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
188
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCBta2RpcnAgZnJvbSBcIm1rZGlycFwiO1xyXG5cclxuaW1wb3J0IHsgY2hhcmFjdGVycywgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcclxuXHJcbmltcG9ydCBGaWxlIGZyb20gXCIuLi9maWxlXCI7XHJcbmltcG9ydCBGaWxlcyBmcm9tIFwiLi4vZmlsZXNcIjtcclxuaW1wb3J0IEVudHJpZXMgZnJvbSBcIi4uL2VudHJpZXNcIjtcclxuaW1wb3J0IFByb2plY3QgZnJvbSBcIi4uL3Byb2plY3RcIjtcclxuaW1wb3J0IFJlbGVhc2UgZnJvbSBcIi4uL3JlbGVhc2VcIjtcclxuaW1wb3J0IFByb2plY3RzIGZyb20gXCIuLi9wcm9qZWN0c1wiO1xyXG5pbXBvcnQgRGlyZWN0b3J5IGZyb20gXCIuLi9kaXJlY3RvcnlcIjtcclxuXHJcbmltcG9ydCB7IGlzTmFtZUhpZGRlbk5hbWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcclxuaW1wb3J0IHsgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVBhdGhcIjtcclxuaW1wb3J0IHsgY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIH0gZnJvbSBcIi4uL2ZpbGVcIjtcclxuaW1wb3J0IHsgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFIH0gZnJvbSBcIi4uL21lc3NhZ2VzXCI7XHJcblxyXG5jb25zdCB7IFBFUklPRF9DSEFSQUNURVIgfSA9IGNoYXJhY3RlcnMsXHJcbiAgICAgIHsgY29uY2F0ZW5hdGVQYXRocywgdG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aCB9ID0gcGF0aFV0aWxpdGllcyxcclxuICAgICAgeyByZWFkRmlsZSwgd3JpdGVGaWxlLCBpc0VudHJ5RmlsZSwgcmVhZERpcmVjdG9yeSwgaXNFbnRyeURpcmVjdG9yeSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgZmlsZSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgICBlbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGlmIChlbnRyeUZpbGUpIHtcclxuICAgICAgbGV0IGNvbnRlbnQgPSByZWFkRmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xyXG5cclxuICAgICAgZmlsZSA9IG5ldyBGaWxlKHBhdGgsIGNvbnRlbnQpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiBmaWxlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgcGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxyXG4gICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKSxcclxuICAgICAgICBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgdG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCA9IHRvcG1vc3REaXJlY3RvcnlQYXRoRnJvbVBhdGgoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgbWtkaXJwLnN5bmModG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHdyaXRlRmlsZShhYnNvbHV0ZVBhdGgsIGNvbnRlbnQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZEZpbGVzKHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBhcnJheSA9IFtdLFxyXG4gICAgICAgIGZpbGVzID0gbmV3IEZpbGVzKGFycmF5KTtcclxuXHJcbiAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgZmlsZXMuYWRkRmlsZShmaWxlKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGVzKGZpbGVzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBmaWxlcy5mb3JFYWNoRmlsZSgoZmlsZSkgPT4ge1xyXG4gICAgc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRQcm9qZWN0KHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgY29uc3QgbmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lLCAgLy8vXHJcbiAgICAgICAgZW50cmllcyA9IGVudHJpZXNGcm9tVG9wbW9zdERpcmVjdG9yeU5hbWUodG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpLFxyXG4gICAgICAgIHByb2plY3QgPSBuZXcgUHJvamVjdChuYW1lLCBlbnRyaWVzKTtcclxuXHJcbiAgcmV0dXJuIHByb2plY3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcywgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gIGxldCBwcm9qZWN0cztcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGFycmF5ID0gW107XHJcblxyXG4gICAgcHJvamVjdHMgPSBuZXcgUHJvamVjdHMoYXJyYXkpO1xyXG5cclxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lcyA9IHRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMuZm9yRWFjaCgodG9wbW9zdERpcmVjdG9yeU5hbWUpID0+IHtcclxuICAgICAgY29uc3QgcHJvamVjdCA9IGxvYWRQcm9qZWN0KHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgICAgIHByb2plY3RzLmFkZFByb2plY3QocHJvamVjdCk7XHJcbiAgICB9KTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgcHJvamVjdHMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHByb2plY3RzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVsZWFzZUZyb21OYW1lKG5hbWUpIHtcclxuICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IG5hbWUsIC8vL1xyXG4gICAgICAgIHByb2plY3RzRGlyZWN0b3J5UGF0aCA9IFBFUklPRF9DSEFSQUNURVIsXHJcbiAgICAgICAgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMgPSB0cnVlLFxyXG4gICAgICAgIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMgPSB0cnVlLFxyXG4gICAgICAgIGVudHJpZXMgPSBlbnRyaWVzRnJvbVRvcG1vc3REaXJlY3RvcnlOYW1lKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSxcclxuICAgICAgICB2ZXJzaW9uTnVtYmVyID0gbnVsbCwgLy8vXHJcbiAgICAgICAgcmVsZWFzZSA9IG5ldyBSZWxlYXNlKG5hbWUsIGVudHJpZXMsIHZlcnNpb25OdW1iZXIpO1xyXG5cclxuICByZXR1cm4gcmVsZWFzZTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIGxvYWRGaWxlLFxyXG4gIHNhdmVGaWxlLFxyXG4gIGxvYWRGaWxlcyxcclxuICBzYXZlRmlsZXMsXHJcbiAgbG9hZFByb2plY3QsXHJcbiAgbG9hZFByb2plY3RzLFxyXG4gIHJlbGVhc2VGcm9tTmFtZVxyXG59O1xyXG5cclxuZnVuY3Rpb24gZGlyZWN0b3J5RnJvbVBhdGgocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IGRpcmVjdG9yeSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgICBlbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICBpZiAoZW50cnlEaXJlY3RvcnkpIHtcclxuICAgICAgZGlyZWN0b3J5ID0gbmV3IERpcmVjdG9yeShwYXRoKTtcclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gZGlyZWN0b3J5O1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbnRyaWVzRnJvbVRvcG1vc3REaXJlY3RvcnlOYW1lKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgY29uc3QgYXJyYXkgPSBbXSxcclxuICAgICAgICByZWxhdGl2ZURpcmVjdG9yeVBhdGggPSB0b3Btb3N0RGlyZWN0b3J5TmFtZTsgIC8vL1xyXG5cclxuICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChhcnJheSwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgY29uc3QgZW50cmllcyA9IG5ldyBFbnRyaWVzKGFycmF5KTtcclxuXHJcbiAgcmV0dXJuIGVudHJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGFycmF5LCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICBjb25zdCBhYnNvbHV0ZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICBzdWJFbnRyeU5hbWVzID0gcmVhZERpcmVjdG9yeShhYnNvbHV0ZURpcmVjdG9yeVBhdGgpO1xyXG5cclxuICBzdWJFbnRyeU5hbWVzLmZvckVhY2goKHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3Qgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgPSAhc3ViRW50cnlOYW1lSGlkZGVuTmFtZSxcclxuICAgICAgICAgIGxvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzID0gIWRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMsXHJcbiAgICAgICAgICBsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3RvcmllcyA9ICFsb2FkT25seVJlY29nbmlzZWRGaWxlcztcclxuXHJcbiAgICBpZiAoc3ViRW50cnlOYW1lTm90SGlkZGVuTmFtZSB8fCBsb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gICAgICBsZXQgZW50cnk7XHJcblxyXG4gICAgICBjb25zdCBwYXRoID0gY29uY2F0ZW5hdGVQYXRocyhyZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICAgIGRpcmVjdG9yeSA9IGRpcmVjdG9yeUZyb21QYXRoKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoZGlyZWN0b3J5ICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgZGlyZWN0b3J5UGF0aCA9IHBhdGg7IC8vL1xyXG5cclxuICAgICAgICBpZiAobG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgIGVudHJ5ID0gZGlyZWN0b3J5OyAgLy8vXHJcblxyXG4gICAgICAgICAgYXJyYXkucHVzaChlbnRyeSk7ICAvLy9cclxuXHJcbiAgICAgICAgICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICBpZiAoYXJyYXlMZW5ndGggPiBFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIX0VYQ0VFREVEX01FU1NBR0UpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChhcnJheSwgZGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcywgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcyk7IC8vL1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKSxcclxuICAgICAgICAgICAgICAgIGZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoID0gaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aChmaWxlUGF0aCksXHJcbiAgICAgICAgICAgICAgICBmaWxlUmVjb2duaXNlZEZpbGUgPSBmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aDsgIC8vL1xyXG5cclxuICAgICAgICAgIGlmIChmaWxlUmVjb2duaXNlZEZpbGUgfHwgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgICAgZW50cnkgPSBmaWxlOyAvLy9cclxuXHJcbiAgICAgICAgICAgIGFycmF5LnB1c2goZW50cnkpOyAgLy8vXHJcblxyXG4gICAgICAgICAgICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIGlmIChhcnJheUxlbmd0aCA+IEVOVFJJRVNfTUFYSU1VTV9BUlJBWV9MRU5HVEgpIHtcclxuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgbGV0IHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxuXHJcbiAgY29uc3Qgc3ViRW50cnlOYW1lcyA9IHJlYWREaXJlY3RvcnkocHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgdG9wbW9zdERpcmVjdG9yeU5hbWVzID0gc3ViRW50cnlOYW1lcy5yZWR1Y2UoKHRvcG1vc3REaXJlY3RvcnlOYW1lcywgc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVN1YkVudHJ5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgPSAhc3ViRW50cnlOYW1lSGlkZGVuTmFtZSxcclxuICAgICAgICAgIGxvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzID0gIWRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXM7XHJcblxyXG4gICAgaWYgKHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgfHwgbG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgY29uc3Qgc3ViRW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlU3ViRW50cnlQYXRoKTtcclxuXHJcbiAgICAgIGlmIChzdWJFbnRyeURpcmVjdG9yeSkge1xyXG4gICAgICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gc3ViRW50cnlOYW1lOyAgLy8vXHJcblxyXG4gICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lcy5wdXNoKHRvcG1vc3REaXJlY3RvcnlOYW1lKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcbn1cclxuIl0sIm5hbWVzIjpbImxvYWRGaWxlIiwic2F2ZUZpbGUiLCJsb2FkRmlsZXMiLCJzYXZlRmlsZXMiLCJsb2FkUHJvamVjdCIsImxvYWRQcm9qZWN0cyIsInJlbGVhc2VGcm9tTmFtZSIsIlBFUklPRF9DSEFSQUNURVIiLCJjb25jYXRlbmF0ZVBhdGhzIiwidG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aCIsInJlYWRGaWxlIiwid3JpdGVGaWxlIiwiaXNFbnRyeUZpbGUiLCJyZWFkRGlyZWN0b3J5IiwiaXNFbnRyeURpcmVjdG9yeSIsInBhdGgiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJmaWxlIiwiYWJzb2x1dGVQYXRoIiwiZW50cnlGaWxlIiwiY29udGVudCIsImVycm9yIiwiZ2V0UGF0aCIsImdldENvbnRlbnQiLCJ0b3Btb3N0QWJzb2x1dGVEaXJlY3RvcnlQYXRoIiwic3luYyIsInBhdGhzIiwiYXJyYXkiLCJmaWxlcyIsImZvckVhY2giLCJhZGRGaWxlIiwiZm9yRWFjaEZpbGUiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZSIsImxvYWRPbmx5UmVjb2duaXNlZEZpbGVzIiwiZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3RvcmllcyIsIm5hbWUiLCJlbnRyaWVzIiwiZW50cmllc0Zyb21Ub3Btb3N0RGlyZWN0b3J5TmFtZSIsInByb2plY3QiLCJwcm9qZWN0cyIsInRvcG1vc3REaXJlY3RvcnlOYW1lcyIsInRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJhZGRQcm9qZWN0IiwidmVyc2lvbk51bWJlciIsInJlbGVhc2UiLCJkaXJlY3RvcnlGcm9tUGF0aCIsImRpcmVjdG9yeSIsImVudHJ5RGlyZWN0b3J5IiwicmVsYXRpdmVEaXJlY3RvcnlQYXRoIiwiZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgiLCJhYnNvbHV0ZURpcmVjdG9yeVBhdGgiLCJzdWJFbnRyeU5hbWVzIiwic3ViRW50cnlOYW1lIiwic3ViRW50cnlOYW1lSGlkZGVuTmFtZSIsInN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUiLCJsb2FkSGlkZGVuRmlsZXNBbmREaXJlY3RvcmllcyIsImxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzIiwiZW50cnkiLCJkaXJlY3RvcnlQYXRoIiwicHVzaCIsImFycmF5TGVuZ3RoIiwibGVuZ3RoIiwiRXJyb3IiLCJmaWxlUGF0aCIsImZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoIiwiZmlsZVJlY29nbmlzZWRGaWxlIiwicmVkdWNlIiwiYWJzb2x1dGVTdWJFbnRyeVBhdGgiLCJzdWJFbnRyeURpcmVjdG9yeSJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQXdCSUEsUUFBUSxHQUFSQSxRQUFRO1FBcUJSQyxRQUFRLEdBQVJBLFFBQVE7UUFXUkMsU0FBUyxHQUFUQSxTQUFTO1FBYVRDLFNBQVMsR0FBVEEsU0FBUztRQU1UQyxXQUFXLEdBQVhBLFdBQVc7UUFRWEMsWUFBWSxHQUFaQSxZQUFZO1FBc0JaQyxlQUFlLEdBQWZBLGVBQWU7O0FBdkdaLEdBQVEsQ0FBUixPQUFRO0FBRW9DLEdBQVcsQ0FBWCxVQUFXO0FBRXpELEdBQVMsQ0FBVCxLQUFTO0FBQ1IsR0FBVSxDQUFWLE1BQVU7QUFDUixHQUFZLENBQVosUUFBWTtBQUNaLEdBQVksQ0FBWixRQUFZO0FBQ1osR0FBWSxDQUFaLFFBQVk7QUFDWCxHQUFhLENBQWIsU0FBYTtBQUNaLEdBQWMsQ0FBZCxVQUFjO0FBRUgsR0FBbUIsQ0FBbkIsS0FBbUI7QUFDUCxHQUFjLENBQWQsVUFBYztBQUNkLEdBQXVCLENBQXZCLFNBQXVCO0FBRU4sR0FBYSxDQUFiLFNBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUzRSxHQUFLLENBQUdDLGdCQUFnQixHQWhCdUMsVUFBVyxZQWdCbEVBLGdCQUFnQixFQUNoQkMsZ0JBQWdCLEdBakJ1QyxVQUFXLGVBaUJsRUEsZ0JBQWdCLEVBQUVDLDRCQUE0QixHQWpCUyxVQUFXLGVBaUJoREEsNEJBQTRCLEVBQzlDQyxRQUFRLEdBbEIrQyxVQUFXLHFCQWtCbEVBLFFBQVEsRUFBRUMsU0FBUyxHQWxCb0MsVUFBVyxxQkFrQnhEQSxTQUFTLEVBQUVDLFdBQVcsR0FsQnVCLFVBQVcscUJBa0I3Q0EsV0FBVyxFQUFFQyxhQUFhLEdBbEJRLFVBQVcscUJBa0JoQ0EsYUFBYSxFQUFFQyxnQkFBZ0IsR0FsQlYsVUFBVyxxQkFrQmpCQSxnQkFBZ0I7U0FFekRkLFFBQVEsQ0FBQ2UsSUFBSSxFQUFFQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3JELEdBQUcsQ0FBQ0MsSUFBSSxHQUFHLElBQUk7SUFFZixHQUFHLENBQUMsQ0FBQztRQUNILEdBQUssQ0FBQ0MsWUFBWSxHQUFHVixnQkFBZ0IsQ0FBQ1EscUJBQXFCLEVBQUVELElBQUksR0FDM0RJLFNBQVMsR0FBR1AsV0FBVyxDQUFDTSxZQUFZO1FBRTFDLEVBQUUsRUFBRUMsU0FBUyxFQUFFLENBQUM7WUFDZCxHQUFHLENBQUNDLE9BQU8sR0FBR1YsUUFBUSxDQUFDUSxZQUFZO1lBRW5DRSxPQUFPLE9BNUJJLEtBQVMsaUNBNEJxQkEsT0FBTyxFQUFJLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztZQUV2REgsSUFBSSxHQUFHLEdBQUcsQ0E5QkMsS0FBUyxTQThCSkYsSUFBSSxFQUFFSyxPQUFPO1FBQy9CLENBQUM7SUFDSCxDQUFDLENBQUMsS0FBSyxFQUFFQyxLQUFLLEVBQUUsQ0FBQztJQUNmLEVBQUcsQUFBSCxDQUFHO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQ0osSUFBSTtBQUNiLENBQUM7U0FFZWhCLFFBQVEsQ0FBQ2dCLElBQUksRUFBRUQscUJBQXFCLEVBQUUsQ0FBQztJQUNyRCxHQUFLLENBQUNELElBQUksR0FBR0UsSUFBSSxDQUFDSyxPQUFPLElBQ25CRixPQUFPLEdBQUdILElBQUksQ0FBQ00sVUFBVSxJQUN6QkwsWUFBWSxHQUFHVixnQkFBZ0IsQ0FBQ1EscUJBQXFCLEVBQUVELElBQUksR0FDM0RTLDRCQUE0QixHQUFHZiw0QkFBNEIsQ0FBQ1MsWUFBWTtJQS9DN0QsT0FBUSxTQWlEbEJPLElBQUksQ0FBQ0QsNEJBQTRCO0lBRXhDYixTQUFTLENBQUNPLFlBQVksRUFBRUUsT0FBTztBQUNqQyxDQUFDO1NBRWVsQixTQUFTLENBQUN3QixLQUFLLEVBQUVWLHFCQUFxQixFQUFFLENBQUM7SUFDdkQsR0FBSyxDQUFDVyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQ1ZDLEtBQUssR0FBRyxHQUFHLENBbkRELE1BQVUsU0FtREZELEtBQUs7SUFFN0JELEtBQUssQ0FBQ0csT0FBTyxDQUFDLFFBQVEsQ0FBUGQsSUFBSSxFQUFLLENBQUM7UUFDdkIsR0FBSyxDQUFDRSxJQUFJLEdBQUdqQixRQUFRLENBQUNlLElBQUksRUFBRUMscUJBQXFCO1FBRWpEWSxLQUFLLENBQUNFLE9BQU8sQ0FBQ2IsSUFBSTtJQUNwQixDQUFDO0lBRUQsTUFBTSxDQUFDVyxLQUFLO0FBQ2QsQ0FBQztTQUVlekIsU0FBUyxDQUFDeUIsS0FBSyxFQUFFWixxQkFBcUIsRUFBRSxDQUFDO0lBQ3ZEWSxLQUFLLENBQUNHLFdBQVcsQ0FBQyxRQUFRLENBQVBkLElBQUksRUFBSyxDQUFDO1FBQzNCaEIsUUFBUSxDQUFDZ0IsSUFBSSxFQUFFRCxxQkFBcUI7SUFDdEMsQ0FBQztBQUNILENBQUM7U0FFZVosV0FBVyxDQUFDNEIsb0JBQW9CLEVBQUVoQixxQkFBcUIsRUFBRWlCLHVCQUF1QixFQUFFQyxrQ0FBa0MsRUFBRSxDQUFDO0lBQ3JJLEdBQUssQ0FBQ0MsSUFBSSxHQUFHSCxvQkFBb0IsRUFDM0JJLE9BQU8sR0FBR0MsK0JBQStCLENBQUNMLG9CQUFvQixFQUFFaEIscUJBQXFCLEVBQUVpQix1QkFBdUIsRUFBRUMsa0NBQWtDLEdBQ2xKSSxPQUFPLEdBQUcsR0FBRyxDQXJFRCxRQUFZLFNBcUVGSCxJQUFJLEVBQUVDLE9BQU87SUFFekMsTUFBTSxDQUFDRSxPQUFPO0FBQ2hCLENBQUM7U0FFZWpDLFlBQVksQ0FBQ1cscUJBQXFCLEVBQUVpQix1QkFBdUIsRUFBRUMsa0NBQWtDLEVBQUUsQ0FBQztJQUNoSCxHQUFHLENBQUNLLFFBQVE7SUFFWixHQUFHLENBQUMsQ0FBQztRQUNILEdBQUssQ0FBQ1osS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVoQlksUUFBUSxHQUFHLEdBQUcsQ0E5RUcsU0FBYSxTQThFTlosS0FBSztRQUU3QixHQUFLLENBQUNhLHFCQUFxQixHQUFHQyw4Q0FBOEMsQ0FBQ3pCLHFCQUFxQixFQUFFa0Isa0NBQWtDO1FBRXRJTSxxQkFBcUIsQ0FBQ1gsT0FBTyxDQUFDLFFBQVEsQ0FBUEcsb0JBQW9CLEVBQUssQ0FBQztZQUN2RCxHQUFLLENBQUNNLE9BQU8sR0FBR2xDLFdBQVcsQ0FBQzRCLG9CQUFvQixFQUFFaEIscUJBQXFCLEVBQUVpQix1QkFBdUIsRUFBRUMsa0NBQWtDO1lBRXBJSyxRQUFRLENBQUNHLFVBQVUsQ0FBQ0osT0FBTztRQUM3QixDQUFDO0lBQ0gsQ0FBQyxDQUFDLEtBQUssRUFBRWpCLEtBQUssRUFBRSxDQUFDO1FBQ2ZrQixRQUFRLEdBQUcsSUFBSTtJQUNqQixDQUFDO0lBRUQsTUFBTSxDQUFDQSxRQUFRO0FBQ2pCLENBQUM7U0FFZWpDLGVBQWUsQ0FBQzZCLElBQUksRUFBRSxDQUFDO0lBQ3JDLEdBQUssQ0FBQ0gsb0JBQW9CLEdBQUdHLElBQUksRUFDM0JuQixxQkFBcUIsR0FBR1QsZ0JBQWdCLEVBQ3hDMEIsdUJBQXVCLEdBQUcsSUFBSSxFQUM5QkMsa0NBQWtDLEdBQUcsSUFBSSxFQUN6Q0UsT0FBTyxHQUFHQywrQkFBK0IsQ0FBQ0wsb0JBQW9CLEVBQUVoQixxQkFBcUIsRUFBRWlCLHVCQUF1QixFQUFFQyxrQ0FBa0MsR0FDbEpTLGFBQWEsR0FBRyxJQUFJLEVBQ3BCQyxPQUFPLEdBQUcsR0FBRyxDQXRHRCxRQUFZLFNBc0dGVCxJQUFJLEVBQUVDLE9BQU8sRUFBRU8sYUFBYTtJQUV4RCxNQUFNLENBQUNDLE9BQU87QUFDaEIsQ0FBQztlQUVjLENBQUM7SUFDZDVDLFFBQVEsRUFBUkEsUUFBUTtJQUNSQyxRQUFRLEVBQVJBLFFBQVE7SUFDUkMsU0FBUyxFQUFUQSxTQUFTO0lBQ1RDLFNBQVMsRUFBVEEsU0FBUztJQUNUQyxXQUFXLEVBQVhBLFdBQVc7SUFDWEMsWUFBWSxFQUFaQSxZQUFZO0lBQ1pDLGVBQWUsRUFBZkEsZUFBZTtBQUNqQixDQUFDOztTQUVRdUMsaUJBQWlCLENBQUM5QixJQUFJLEVBQUVDLHFCQUFxQixFQUFFLENBQUM7SUFDdkQsR0FBRyxDQUFDOEIsU0FBUyxHQUFHLElBQUk7SUFFcEIsR0FBRyxDQUFDLENBQUM7UUFDSCxHQUFLLENBQUM1QixZQUFZLEdBQUdWLGdCQUFnQixDQUFDUSxxQkFBcUIsRUFBRUQsSUFBSSxHQUMzRGdDLGNBQWMsR0FBR2pDLGdCQUFnQixDQUFDSSxZQUFZO1FBRXBELEVBQUUsRUFBRTZCLGNBQWMsRUFBRSxDQUFDO1lBQ25CRCxTQUFTLEdBQUcsR0FBRyxDQTNIQyxVQUFjLFNBMkhKL0IsSUFBSTtRQUNoQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLEtBQUssRUFBRU0sS0FBSyxFQUFFLENBQUM7SUFDZixFQUFHLEFBQUgsQ0FBRztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUN5QixTQUFTO0FBQ2xCLENBQUM7U0FFUVQsK0JBQStCLENBQUNMLG9CQUFvQixFQUFFaEIscUJBQXFCLEVBQUVpQix1QkFBdUIsRUFBRUMsa0NBQWtDLEVBQUUsQ0FBQztJQUNsSixHQUFLLENBQUNQLEtBQUssR0FBRyxDQUFDLENBQUMsRUFDVnFCLHFCQUFxQixHQUFHaEIsb0JBQW9CLENBQUcsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO0lBRXhEaUIsZ0NBQWdDLENBQUN0QixLQUFLLEVBQUVxQixxQkFBcUIsRUFBRWhDLHFCQUFxQixFQUFFaUIsdUJBQXVCLEVBQUVDLGtDQUFrQztJQUVqSixHQUFLLENBQUNFLE9BQU8sR0FBRyxHQUFHLENBOUlELFFBQVksU0E4SUZULEtBQUs7SUFFakMsTUFBTSxDQUFDUyxPQUFPO0FBQ2hCLENBQUM7U0FFUWEsZ0NBQWdDLENBQUN0QixLQUFLLEVBQUVxQixxQkFBcUIsRUFBRWhDLHFCQUFxQixFQUFFaUIsdUJBQXVCLEVBQUVDLGtDQUFrQyxFQUFFLENBQUM7SUFDM0osR0FBSyxDQUFDZ0IscUJBQXFCLEdBQUcxQyxnQkFBZ0IsQ0FBQ1EscUJBQXFCLEVBQUVnQyxxQkFBcUIsR0FDckZHLGFBQWEsR0FBR3RDLGFBQWEsQ0FBQ3FDLHFCQUFxQjtJQUV6REMsYUFBYSxDQUFDdEIsT0FBTyxDQUFDLFFBQVEsQ0FBUHVCLFlBQVksRUFBSyxDQUFDO1FBQ3ZDLEdBQUssQ0FBQ0Msc0JBQXNCLE9BbEpDLEtBQW1CLG1CQWtKQUQsWUFBWSxHQUN0REUseUJBQXlCLElBQUlELHNCQUFzQixFQUNuREUsNkJBQTZCLElBQUlyQixrQ0FBa0MsRUFDbkVzQixtQ0FBbUMsSUFBSXZCLHVCQUF1QjtRQUVwRSxFQUFFLEVBQUVxQix5QkFBeUIsSUFBSUMsNkJBQTZCLEVBQUUsQ0FBQztZQUMvRCxHQUFHLENBQUNFLEtBQUs7WUFFVCxHQUFLLENBQUMxQyxJQUFJLEdBQUdQLGdCQUFnQixDQUFDd0MscUJBQXFCLEVBQUVJLFlBQVksR0FDM0ROLFNBQVMsR0FBR0QsaUJBQWlCLENBQUM5QixJQUFJLEVBQUVDLHFCQUFxQjtZQUUvRCxFQUFFLEVBQUU4QixTQUFTLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3ZCLEdBQUssQ0FBQ1ksYUFBYSxHQUFHM0MsSUFBSSxDQUFFLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztnQkFFL0IsRUFBRSxFQUFFeUMsbUNBQW1DLEVBQUUsQ0FBQztvQkFDeENDLEtBQUssR0FBR1gsU0FBUyxDQUFHLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztvQkFFdkJuQixLQUFLLENBQUNnQyxJQUFJLENBQUNGLEtBQUssRUFBSSxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7b0JBRXZCLEdBQUssQ0FBQ0csV0FBVyxHQUFHakMsS0FBSyxDQUFDa0MsTUFBTTtvQkFFaEMsRUFBRSxFQUFFRCxXQUFXLEdBdEtvQixVQUFjLCtCQXNLRCxDQUFDO3dCQUMvQyxLQUFLLENBQUMsR0FBRyxDQUFDRSxLQUFLLENBcEttQyxTQUFhO29CQXFLakUsQ0FBQztnQkFDSCxDQUFDO2dCQUVEYixnQ0FBZ0MsQ0FBQ3RCLEtBQUssRUFBRStCLGFBQWEsRUFBRTFDLHFCQUFxQixFQUFFaUIsdUJBQXVCLEVBQUVDLGtDQUFrQyxFQUFHLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztZQUNqSixDQUFDLE1BQU0sQ0FBQztnQkFDTixHQUFLLENBQUNqQixJQUFJLEdBQUdqQixRQUFRLENBQUNlLElBQUksRUFBRUMscUJBQXFCO2dCQUVqRCxFQUFFLEVBQUVDLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDbEIsR0FBSyxDQUFDOEMsUUFBUSxHQUFHOUMsSUFBSSxDQUFDSyxPQUFPLElBQ3ZCMEMsMEJBQTBCLE9BaExHLFNBQXVCLCtCQWdMTUQsUUFBUSxHQUNsRUUsa0JBQWtCLEdBQUdELDBCQUEwQixDQUFHLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztvQkFFM0QsRUFBRSxFQUFFQyxrQkFBa0IsSUFBSVQsbUNBQW1DLEVBQUUsQ0FBQzt3QkFDOURDLEtBQUssR0FBR3hDLElBQUksQ0FBRSxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7d0JBRWpCVSxLQUFLLENBQUNnQyxJQUFJLENBQUNGLEtBQUssRUFBSSxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7d0JBRXZCLEdBQUssQ0FBQ0csWUFBVyxHQUFHakMsS0FBSyxDQUFDa0MsTUFBTTt3QkFFaEMsRUFBRSxFQUFFRCxZQUFXLEdBM0xrQixVQUFjLCtCQTJMQyxDQUFDOzRCQUMvQyxLQUFLLENBQUMsR0FBRyxDQUFDRSxLQUFLLENBekxpQyxTQUFhO3dCQTBML0QsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO1NBRVFyQiw4Q0FBOEMsQ0FBQ3pCLHFCQUFxQixFQUFFa0Isa0NBQWtDLEVBQUUsQ0FBQztJQUNsSCxHQUFHLENBQUNNLHNCQUFxQjtJQUV6QixHQUFLLENBQUNXLGFBQWEsR0FBR3RDLGFBQWEsQ0FBQ0cscUJBQXFCO0lBRXpEd0Isc0JBQXFCLEdBQUdXLGFBQWEsQ0FBQ2UsTUFBTSxDQUFDLFFBQVEsQ0FBUDFCLHFCQUFxQixFQUFFWSxZQUFZLEVBQUssQ0FBQztRQUNyRixHQUFLLENBQUNlLG9CQUFvQixHQUFHM0QsZ0JBQWdCLENBQUNRLHFCQUFxQixFQUFFb0MsWUFBWSxHQUMzRUMsc0JBQXNCLE9BN01DLEtBQW1CLG1CQTZNQUQsWUFBWSxHQUN0REUseUJBQXlCLElBQUlELHNCQUFzQixFQUNuREUsNkJBQTZCLElBQUlyQixrQ0FBa0M7UUFFekUsRUFBRSxFQUFFb0IseUJBQXlCLElBQUlDLDZCQUE2QixFQUFFLENBQUM7WUFDL0QsR0FBSyxDQUFDYSxpQkFBaUIsR0FBR3RELGdCQUFnQixDQUFDcUQsb0JBQW9CO1lBRS9ELEVBQUUsRUFBRUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDdEIsR0FBSyxDQUFDcEMsb0JBQW9CLEdBQUdvQixZQUFZLENBQUcsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO2dCQUUvQ1oscUJBQXFCLENBQUNtQixJQUFJLENBQUMzQixvQkFBb0I7WUFDakQsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLENBQUNRLHFCQUFxQjtJQUM5QixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRUwsTUFBTSxDQUFDQSxzQkFBcUI7QUFDOUIsQ0FBQyJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-open-cli",
3
3
  "author": "James Smith",
4
- "version": "4.0.41",
4
+ "version": "4.0.45",
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.",
@@ -12,8 +12,8 @@
12
12
  "dependencies": {
13
13
  "argumentative": "^2.0.15",
14
14
  "mkdirp": "^0.5.1",
15
- "necessary": "^10.0.7",
16
- "occam-parsers": "^14.0.70"
15
+ "necessary": "^11.0.19",
16
+ "occam-parsers": "^14.1.4"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@swc/core": "^1.2.51",
package/src/constants.js CHANGED
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
2
 
3
- export const DOT = ".";
4
3
  export const DOUBLE_SPACE = " ";
5
4
  export const ENTRIES_MAXIMUM_ARRAY_LENGTH = 1024;
@@ -2,7 +2,7 @@
2
2
 
3
3
  import mkdirp from "mkdirp";
4
4
 
5
- import { pathUtilities, fileSystemUtilities } from "necessary";
5
+ import { characters, pathUtilities, fileSystemUtilities } from "necessary";
6
6
 
7
7
  import File from "../file";
8
8
  import Files from "../files";
@@ -12,14 +12,14 @@ import Release from "../release";
12
12
  import Projects from "../projects";
13
13
  import Directory from "../directory";
14
14
 
15
- import { DOT } from "../constants";
16
15
  import { isNameHiddenName } from "../utilities/name";
17
16
  import { ENTRIES_MAXIMUM_ARRAY_LENGTH } from "../constants";
18
17
  import { isFilePathRecognisedFilePath } from "../utilities/filePath";
19
18
  import { convertContentTabsToWhitespace } from "../file";
20
19
  import { ENTRIES_MAXIMUM_ARRAY_LENGTH_EXCEEDED_MESSAGE } from "../messages";
21
20
 
22
- const { concatenatePaths, topmostDirectoryPathFromPath } = pathUtilities,
21
+ const { PERIOD_CHARACTER } = characters,
22
+ { concatenatePaths, topmostDirectoryPathFromPath } = pathUtilities,
23
23
  { readFile, writeFile, isEntryFile, readDirectory, isEntryDirectory } = fileSystemUtilities;
24
24
 
25
25
  export function loadFile(path, projectsDirectoryPath) {
@@ -105,7 +105,7 @@ export function loadProjects(projectsDirectoryPath, loadOnlyRecognisedFiles, doN
105
105
 
106
106
  export function releaseFromName(name) {
107
107
  const topmostDirectoryName = name, ///
108
- projectsDirectoryPath = DOT,
108
+ projectsDirectoryPath = PERIOD_CHARACTER,
109
109
  loadOnlyRecognisedFiles = true,
110
110
  doNotLoadHiddenFilesAndDirectories = true,
111
111
  entries = entriesFromTopmostDirectoryName(topmostDirectoryName, projectsDirectoryPath, loadOnlyRecognisedFiles, doNotLoadHiddenFilesAndDirectories),
@@ -1,7 +0,0 @@
1
- "use strict";
2
-
3
- const APPLICATION_JSON_CHARSET_UTF_8_CONTENT_TYPE = "application/json; charset=utf-8";
4
-
5
- module.exports = {
6
- APPLICATION_JSON_CHARSET_UTF_8_CONTENT_TYPE
7
- };