occam-open-cli 4.0.66 → 5.0.1

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.
Files changed (66) hide show
  1. package/README.md +7 -17
  2. package/bin/action/clone.js +15 -24
  3. package/bin/action/createAccount.js +41 -0
  4. package/bin/action/deprecate.js +13 -14
  5. package/bin/action/help.js +4 -14
  6. package/bin/action/initialise.js +12 -2
  7. package/bin/action/install.js +6 -6
  8. package/bin/action/publish.js +12 -11
  9. package/bin/action/resetPassword.js +11 -13
  10. package/bin/action/setOptions.js +10 -26
  11. package/bin/action/signIn.js +37 -0
  12. package/bin/action/signOut.js +16 -0
  13. package/bin/actions.js +11 -26
  14. package/bin/commands.js +8 -18
  15. package/bin/configuration/version_1_5.js +1 -22
  16. package/bin/configuration/version_2_0.js +1 -16
  17. package/bin/configuration/version_5_0.js +42 -0
  18. package/bin/configuration.js +26 -21
  19. package/bin/constants.js +2 -0
  20. package/bin/defaults.js +3 -3
  21. package/bin/descriptions.js +2 -8
  22. package/bin/messages.js +24 -50
  23. package/bin/operation/checkMetaJSONFileExists.js +0 -4
  24. package/bin/operation/checkReadmeFileExists.js +0 -4
  25. package/bin/{cloneRepository.js → operation/clone.js} +12 -8
  26. package/bin/operation/createAccount.js +33 -0
  27. package/bin/operation/createRelease.js +1 -4
  28. package/bin/operation/deflateRelease.js +1 -1
  29. package/bin/operation/deprecate.js +23 -0
  30. package/bin/operation/getIdentityToken.js +21 -0
  31. package/bin/operation/prompt/areYouSure.js +5 -5
  32. package/bin/operation/prompt/emailAddressOrUsername.js +53 -0
  33. package/bin/operation/prompt/useSSH.js +4 -4
  34. package/bin/operation/publish.js +24 -0
  35. package/bin/operation/repository.js +29 -0
  36. package/bin/operation/resetPassword.js +19 -0
  37. package/bin/operation/setIdentityToken.js +13 -0
  38. package/bin/operation/setOptions.js +25 -0
  39. package/bin/operation/signIn.js +32 -0
  40. package/bin/post.js +16 -49
  41. package/bin/uris.js +5 -15
  42. package/bin/utilities/validate.js +21 -4
  43. package/bin/versions.js +4 -2
  44. package/lib/entries.js +5 -5
  45. package/lib/node/dependency.js +4 -4
  46. package/lib/node/repository.js +4 -4
  47. package/lib/project.js +5 -5
  48. package/lib/projects.js +3 -3
  49. package/lib/utilities/fileSystem.js +4 -4
  50. package/lib/utilities/tokens.js +3 -3
  51. package/package.json +3 -3
  52. package/bin/action/changeEmailAddress.js +0 -38
  53. package/bin/action/changePassword.js +0 -42
  54. package/bin/action/confirmEmailAddress.js +0 -36
  55. package/bin/action/login.js +0 -41
  56. package/bin/action/logout.js +0 -26
  57. package/bin/action/register.js +0 -40
  58. package/bin/action/remove.js +0 -9
  59. package/bin/action/resendConfirmationCode.js +0 -32
  60. package/bin/action.js +0 -19
  61. package/bin/configuration/unversioned.js +0 -24
  62. package/bin/operation/prompt/confirmNewPassword.js +0 -42
  63. package/bin/operation/prompt/confirmationCode.js +0 -41
  64. package/bin/operation/prompt/newEmailAddress.js +0 -41
  65. package/bin/operation/prompt/newPassword.js +0 -41
  66. package/bin/operation/retrieveAccessToken.js +0 -24
@@ -187,9 +187,9 @@ function entriesFromRelativeDirectoryPath(array, relativeDirectoryPath, projects
187
187
  });
188
188
  }
189
189
  function topmostDirectoryNamesFromProjectsDirectoryPath(projectsDirectoryPath, doNotLoadHiddenFilesAndDirectories) {
190
- var topmostDirectoryNames1;
190
+ var topmostDirectoryNames;
191
191
  var subEntryNames = readDirectory(projectsDirectoryPath);
192
- topmostDirectoryNames1 = subEntryNames.reduce(function(topmostDirectoryNames, subEntryName) {
192
+ topmostDirectoryNames = subEntryNames.reduce(function(topmostDirectoryNames, subEntryName) {
193
193
  var absoluteSubEntryPath = concatenatePaths(projectsDirectoryPath, subEntryName), subEntryNameHiddenName = (0, _name).isNameHiddenName(subEntryName), subEntryNameNotHiddenName = !subEntryNameHiddenName, loadHiddenFilesAndDirectories = !doNotLoadHiddenFilesAndDirectories;
194
194
  if (subEntryNameNotHiddenName || loadHiddenFilesAndDirectories) {
195
195
  var subEntryDirectory = isEntryDirectory(absoluteSubEntryPath);
@@ -200,7 +200,7 @@ function topmostDirectoryNamesFromProjectsDirectoryPath(projectsDirectoryPath, d
200
200
  }
201
201
  return topmostDirectoryNames;
202
202
  }, []);
203
- return topmostDirectoryNames1;
203
+ return topmostDirectoryNames;
204
204
  }
205
205
 
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCBta2RpcnAgZnJvbSBcIm1rZGlycFwiO1xyXG5cclxuaW1wb3J0IHsgY2hhcmFjdGVycywgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcclxuXHJcbmltcG9ydCBGaWxlIGZyb20gXCIuLi9maWxlXCI7XHJcbmltcG9ydCBGaWxlcyBmcm9tIFwiLi4vZmlsZXNcIjtcclxuaW1wb3J0IEVudHJpZXMgZnJvbSBcIi4uL2VudHJpZXNcIjtcclxuaW1wb3J0IFByb2plY3QgZnJvbSBcIi4uL3Byb2plY3RcIjtcclxuaW1wb3J0IFJlbGVhc2UgZnJvbSBcIi4uL3JlbGVhc2VcIjtcclxuaW1wb3J0IFByb2plY3RzIGZyb20gXCIuLi9wcm9qZWN0c1wiO1xyXG5pbXBvcnQgRGlyZWN0b3J5IGZyb20gXCIuLi9kaXJlY3RvcnlcIjtcclxuXHJcbmltcG9ydCB7IGlzTmFtZUhpZGRlbk5hbWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcclxuaW1wb3J0IHsgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVBhdGhcIjtcclxuaW1wb3J0IHsgY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIH0gZnJvbSBcIi4uL2ZpbGVcIjtcclxuaW1wb3J0IHsgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFIH0gZnJvbSBcIi4uL21lc3NhZ2VzXCI7XHJcblxyXG5jb25zdCB7IFBFUklPRF9DSEFSQUNURVIgfSA9IGNoYXJhY3RlcnMsXHJcbiAgICAgIHsgY29uY2F0ZW5hdGVQYXRocywgdG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aCB9ID0gcGF0aFV0aWxpdGllcyxcclxuICAgICAgeyByZWFkRmlsZSwgd3JpdGVGaWxlLCBpc0VudHJ5RmlsZSwgcmVhZERpcmVjdG9yeSwgaXNFbnRyeURpcmVjdG9yeSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgZmlsZSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgICBlbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGlmIChlbnRyeUZpbGUpIHtcclxuICAgICAgbGV0IGNvbnRlbnQgPSByZWFkRmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xyXG5cclxuICAgICAgZmlsZSA9IG5ldyBGaWxlKHBhdGgsIGNvbnRlbnQpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiBmaWxlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgcGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxyXG4gICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKSxcclxuICAgICAgICBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgdG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCA9IHRvcG1vc3REaXJlY3RvcnlQYXRoRnJvbVBhdGgoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgbWtkaXJwLnN5bmModG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHdyaXRlRmlsZShhYnNvbHV0ZVBhdGgsIGNvbnRlbnQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZEZpbGVzKHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBhcnJheSA9IFtdLFxyXG4gICAgICAgIGZpbGVzID0gbmV3IEZpbGVzKGFycmF5KTtcclxuXHJcbiAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgZmlsZXMuYWRkRmlsZShmaWxlKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGVzKGZpbGVzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBmaWxlcy5mb3JFYWNoRmlsZSgoZmlsZSkgPT4ge1xyXG4gICAgc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRQcm9qZWN0KHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgY29uc3QgbmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lLCAgLy8vXHJcbiAgICAgICAgZW50cmllcyA9IGVudHJpZXNGcm9tVG9wbW9zdERpcmVjdG9yeU5hbWUodG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpLFxyXG4gICAgICAgIHByb2plY3QgPSBuZXcgUHJvamVjdChuYW1lLCBlbnRyaWVzKTtcclxuXHJcbiAgcmV0dXJuIHByb2plY3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcywgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gIGxldCBwcm9qZWN0cztcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGFycmF5ID0gW107XHJcblxyXG4gICAgcHJvamVjdHMgPSBuZXcgUHJvamVjdHMoYXJyYXkpO1xyXG5cclxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lcyA9IHRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMuZm9yRWFjaCgodG9wbW9zdERpcmVjdG9yeU5hbWUpID0+IHtcclxuICAgICAgY29uc3QgcHJvamVjdCA9IGxvYWRQcm9qZWN0KHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgICAgIHByb2plY3RzLmFkZFByb2plY3QocHJvamVjdCk7XHJcbiAgICB9KTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgcHJvamVjdHMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHByb2plY3RzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVsZWFzZUZyb21OYW1lKG5hbWUpIHtcclxuICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IG5hbWUsIC8vL1xyXG4gICAgICAgIHByb2plY3RzRGlyZWN0b3J5UGF0aCA9IFBFUklPRF9DSEFSQUNURVIsXHJcbiAgICAgICAgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMgPSB0cnVlLFxyXG4gICAgICAgIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMgPSB0cnVlLFxyXG4gICAgICAgIGVudHJpZXMgPSBlbnRyaWVzRnJvbVRvcG1vc3REaXJlY3RvcnlOYW1lKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSxcclxuICAgICAgICB2ZXJzaW9uTnVtYmVyID0gbnVsbCwgLy8vXHJcbiAgICAgICAgcmVsZWFzZSA9IG5ldyBSZWxlYXNlKG5hbWUsIGVudHJpZXMsIHZlcnNpb25OdW1iZXIpO1xyXG5cclxuICByZXR1cm4gcmVsZWFzZTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIGxvYWRGaWxlLFxyXG4gIHNhdmVGaWxlLFxyXG4gIGxvYWRGaWxlcyxcclxuICBzYXZlRmlsZXMsXHJcbiAgbG9hZFByb2plY3QsXHJcbiAgbG9hZFByb2plY3RzLFxyXG4gIHJlbGVhc2VGcm9tTmFtZVxyXG59O1xyXG5cclxuZnVuY3Rpb24gZGlyZWN0b3J5RnJvbVBhdGgocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IGRpcmVjdG9yeSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgICBlbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICBpZiAoZW50cnlEaXJlY3RvcnkpIHtcclxuICAgICAgZGlyZWN0b3J5ID0gbmV3IERpcmVjdG9yeShwYXRoKTtcclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gZGlyZWN0b3J5O1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbnRyaWVzRnJvbVRvcG1vc3REaXJlY3RvcnlOYW1lKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgY29uc3QgYXJyYXkgPSBbXSxcclxuICAgICAgICByZWxhdGl2ZURpcmVjdG9yeVBhdGggPSB0b3Btb3N0RGlyZWN0b3J5TmFtZTsgIC8vL1xyXG5cclxuICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChhcnJheSwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgY29uc3QgZW50cmllcyA9IG5ldyBFbnRyaWVzKGFycmF5KTtcclxuXHJcbiAgcmV0dXJuIGVudHJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGFycmF5LCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICBjb25zdCBhYnNvbHV0ZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICBzdWJFbnRyeU5hbWVzID0gcmVhZERpcmVjdG9yeShhYnNvbHV0ZURpcmVjdG9yeVBhdGgpO1xyXG5cclxuICBzdWJFbnRyeU5hbWVzLmZvckVhY2goKHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3Qgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgPSAhc3ViRW50cnlOYW1lSGlkZGVuTmFtZSxcclxuICAgICAgICAgIGxvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzID0gIWRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMsXHJcbiAgICAgICAgICBsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3RvcmllcyA9ICFsb2FkT25seVJlY29nbmlzZWRGaWxlcztcclxuXHJcbiAgICBpZiAoc3ViRW50cnlOYW1lTm90SGlkZGVuTmFtZSB8fCBsb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gICAgICBsZXQgZW50cnk7XHJcblxyXG4gICAgICBjb25zdCBwYXRoID0gY29uY2F0ZW5hdGVQYXRocyhyZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICAgIGRpcmVjdG9yeSA9IGRpcmVjdG9yeUZyb21QYXRoKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoZGlyZWN0b3J5ICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgZGlyZWN0b3J5UGF0aCA9IHBhdGg7IC8vL1xyXG5cclxuICAgICAgICBpZiAobG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgIGVudHJ5ID0gZGlyZWN0b3J5OyAgLy8vXHJcblxyXG4gICAgICAgICAgYXJyYXkucHVzaChlbnRyeSk7ICAvLy9cclxuXHJcbiAgICAgICAgICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICBpZiAoYXJyYXlMZW5ndGggPiBFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIX0VYQ0VFREVEX01FU1NBR0UpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChhcnJheSwgZGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcywgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcyk7IC8vL1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKSxcclxuICAgICAgICAgICAgICAgIGZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoID0gaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aChmaWxlUGF0aCksXHJcbiAgICAgICAgICAgICAgICBmaWxlUmVjb2duaXNlZEZpbGUgPSBmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aDsgIC8vL1xyXG5cclxuICAgICAgICAgIGlmIChmaWxlUmVjb2duaXNlZEZpbGUgfHwgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgICAgZW50cnkgPSBmaWxlOyAvLy9cclxuXHJcbiAgICAgICAgICAgIGFycmF5LnB1c2goZW50cnkpOyAgLy8vXHJcblxyXG4gICAgICAgICAgICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIGlmIChhcnJheUxlbmd0aCA+IEVOVFJJRVNfTUFYSU1VTV9BUlJBWV9MRU5HVEgpIHtcclxuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgbGV0IHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxuXHJcbiAgY29uc3Qgc3ViRW50cnlOYW1lcyA9IHJlYWREaXJlY3RvcnkocHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgdG9wbW9zdERpcmVjdG9yeU5hbWVzID0gc3ViRW50cnlOYW1lcy5yZWR1Y2UoKHRvcG1vc3REaXJlY3RvcnlOYW1lcywgc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVN1YkVudHJ5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgPSAhc3ViRW50cnlOYW1lSGlkZGVuTmFtZSxcclxuICAgICAgICAgIGxvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzID0gIWRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXM7XHJcblxyXG4gICAgaWYgKHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgfHwgbG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgY29uc3Qgc3ViRW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlU3ViRW50cnlQYXRoKTtcclxuXHJcbiAgICAgIGlmIChzdWJFbnRyeURpcmVjdG9yeSkge1xyXG4gICAgICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gc3ViRW50cnlOYW1lOyAgLy8vXHJcblxyXG4gICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lcy5wdXNoKHRvcG1vc3REaXJlY3RvcnlOYW1lKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcbn1cclxuIl0sIm5hbWVzIjpbImxvYWRGaWxlIiwic2F2ZUZpbGUiLCJsb2FkRmlsZXMiLCJzYXZlRmlsZXMiLCJsb2FkUHJvamVjdCIsImxvYWRQcm9qZWN0cyIsInJlbGVhc2VGcm9tTmFtZSIsIlBFUklPRF9DSEFSQUNURVIiLCJjaGFyYWN0ZXJzIiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJ0b3Btb3N0RGlyZWN0b3J5UGF0aEZyb21QYXRoIiwicmVhZEZpbGUiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwid3JpdGVGaWxlIiwiaXNFbnRyeUZpbGUiLCJyZWFkRGlyZWN0b3J5IiwiaXNFbnRyeURpcmVjdG9yeSIsInBhdGgiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJmaWxlIiwiYWJzb2x1dGVQYXRoIiwiZW50cnlGaWxlIiwiY29udGVudCIsImNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZSIsIkZpbGUiLCJlcnJvciIsImdldFBhdGgiLCJnZXRDb250ZW50IiwidG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCIsIm1rZGlycCIsInN5bmMiLCJwYXRocyIsImFycmF5IiwiZmlsZXMiLCJGaWxlcyIsImZvckVhY2giLCJhZGRGaWxlIiwiZm9yRWFjaEZpbGUiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZSIsImxvYWRPbmx5UmVjb2duaXNlZEZpbGVzIiwiZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3RvcmllcyIsIm5hbWUiLCJlbnRyaWVzIiwiZW50cmllc0Zyb21Ub3Btb3N0RGlyZWN0b3J5TmFtZSIsInByb2plY3QiLCJQcm9qZWN0IiwicHJvamVjdHMiLCJQcm9qZWN0cyIsInRvcG1vc3REaXJlY3RvcnlOYW1lcyIsInRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJhZGRQcm9qZWN0IiwidmVyc2lvbk51bWJlciIsInJlbGVhc2UiLCJSZWxlYXNlIiwiZGlyZWN0b3J5RnJvbVBhdGgiLCJkaXJlY3RvcnkiLCJlbnRyeURpcmVjdG9yeSIsIkRpcmVjdG9yeSIsInJlbGF0aXZlRGlyZWN0b3J5UGF0aCIsImVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoIiwiRW50cmllcyIsImFic29sdXRlRGlyZWN0b3J5UGF0aCIsInN1YkVudHJ5TmFtZXMiLCJzdWJFbnRyeU5hbWUiLCJzdWJFbnRyeU5hbWVIaWRkZW5OYW1lIiwiaXNOYW1lSGlkZGVuTmFtZSIsInN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUiLCJsb2FkSGlkZGVuRmlsZXNBbmREaXJlY3RvcmllcyIsImxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzIiwiZW50cnkiLCJkaXJlY3RvcnlQYXRoIiwicHVzaCIsImFycmF5TGVuZ3RoIiwibGVuZ3RoIiwiRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCIsIkVycm9yIiwiRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFIiwiZmlsZVBhdGgiLCJmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCIsImlzRmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgiLCJmaWxlUmVjb2duaXNlZEZpbGUiLCJyZWR1Y2UiLCJhYnNv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
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCBta2RpcnAgZnJvbSBcIm1rZGlycFwiO1xyXG5cclxuaW1wb3J0IHsgY2hhcmFjdGVycywgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcclxuXHJcbmltcG9ydCBGaWxlIGZyb20gXCIuLi9maWxlXCI7XHJcbmltcG9ydCBGaWxlcyBmcm9tIFwiLi4vZmlsZXNcIjtcclxuaW1wb3J0IEVudHJpZXMgZnJvbSBcIi4uL2VudHJpZXNcIjtcclxuaW1wb3J0IFByb2plY3QgZnJvbSBcIi4uL3Byb2plY3RcIjtcclxuaW1wb3J0IFJlbGVhc2UgZnJvbSBcIi4uL3JlbGVhc2VcIjtcclxuaW1wb3J0IFByb2plY3RzIGZyb20gXCIuLi9wcm9qZWN0c1wiO1xyXG5pbXBvcnQgRGlyZWN0b3J5IGZyb20gXCIuLi9kaXJlY3RvcnlcIjtcclxuXHJcbmltcG9ydCB7IGlzTmFtZUhpZGRlbk5hbWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcclxuaW1wb3J0IHsgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVBhdGhcIjtcclxuaW1wb3J0IHsgY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIH0gZnJvbSBcIi4uL2ZpbGVcIjtcclxuaW1wb3J0IHsgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFIH0gZnJvbSBcIi4uL21lc3NhZ2VzXCI7XHJcblxyXG5jb25zdCB7IFBFUklPRF9DSEFSQUNURVIgfSA9IGNoYXJhY3RlcnMsXHJcbiAgICAgIHsgY29uY2F0ZW5hdGVQYXRocywgdG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aCB9ID0gcGF0aFV0aWxpdGllcyxcclxuICAgICAgeyByZWFkRmlsZSwgd3JpdGVGaWxlLCBpc0VudHJ5RmlsZSwgcmVhZERpcmVjdG9yeSwgaXNFbnRyeURpcmVjdG9yeSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgZmlsZSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgICBlbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGlmIChlbnRyeUZpbGUpIHtcclxuICAgICAgbGV0IGNvbnRlbnQgPSByZWFkRmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xyXG5cclxuICAgICAgZmlsZSA9IG5ldyBGaWxlKHBhdGgsIGNvbnRlbnQpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiBmaWxlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgcGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxyXG4gICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKSxcclxuICAgICAgICBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgdG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCA9IHRvcG1vc3REaXJlY3RvcnlQYXRoRnJvbVBhdGgoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgbWtkaXJwLnN5bmModG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHdyaXRlRmlsZShhYnNvbHV0ZVBhdGgsIGNvbnRlbnQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZEZpbGVzKHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBhcnJheSA9IFtdLFxyXG4gICAgICAgIGZpbGVzID0gbmV3IEZpbGVzKGFycmF5KTtcclxuXHJcbiAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgZmlsZXMuYWRkRmlsZShmaWxlKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGVzKGZpbGVzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBmaWxlcy5mb3JFYWNoRmlsZSgoZmlsZSkgPT4ge1xyXG4gICAgc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRQcm9qZWN0KHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgY29uc3QgbmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lLCAgLy8vXHJcbiAgICAgICAgZW50cmllcyA9IGVudHJpZXNGcm9tVG9wbW9zdERpcmVjdG9yeU5hbWUodG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpLFxyXG4gICAgICAgIHByb2plY3QgPSBuZXcgUHJvamVjdChuYW1lLCBlbnRyaWVzKTtcclxuXHJcbiAgcmV0dXJuIHByb2plY3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcywgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gIGxldCBwcm9qZWN0cztcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGFycmF5ID0gW107XHJcblxyXG4gICAgcHJvamVjdHMgPSBuZXcgUHJvamVjdHMoYXJyYXkpO1xyXG5cclxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lcyA9IHRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMuZm9yRWFjaCgodG9wbW9zdERpcmVjdG9yeU5hbWUpID0+IHtcclxuICAgICAgY29uc3QgcHJvamVjdCA9IGxvYWRQcm9qZWN0KHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgICAgIHByb2plY3RzLmFkZFByb2plY3QocHJvamVjdCk7XHJcbiAgICB9KTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgcHJvamVjdHMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHByb2plY3RzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVsZWFzZUZyb21OYW1lKG5hbWUpIHtcclxuICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IG5hbWUsIC8vL1xyXG4gICAgICAgIHByb2plY3RzRGlyZWN0b3J5UGF0aCA9IFBFUklPRF9DSEFSQUNURVIsXHJcbiAgICAgICAgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMgPSB0cnVlLFxyXG4gICAgICAgIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMgPSB0cnVlLFxyXG4gICAgICAgIGVudHJpZXMgPSBlbnRyaWVzRnJvbVRvcG1vc3REaXJlY3RvcnlOYW1lKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSxcclxuICAgICAgICB2ZXJzaW9uTnVtYmVyID0gbnVsbCwgLy8vXHJcbiAgICAgICAgcmVsZWFzZSA9IG5ldyBSZWxlYXNlKG5hbWUsIGVudHJpZXMsIHZlcnNpb25OdW1iZXIpO1xyXG5cclxuICByZXR1cm4gcmVsZWFzZTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIGxvYWRGaWxlLFxyXG4gIHNhdmVGaWxlLFxyXG4gIGxvYWRGaWxlcyxcclxuICBzYXZlRmlsZXMsXHJcbiAgbG9hZFByb2plY3QsXHJcbiAgbG9hZFByb2plY3RzLFxyXG4gIHJlbGVhc2VGcm9tTmFtZVxyXG59O1xyXG5cclxuZnVuY3Rpb24gZGlyZWN0b3J5RnJvbVBhdGgocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IGRpcmVjdG9yeSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgICBlbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICBpZiAoZW50cnlEaXJlY3RvcnkpIHtcclxuICAgICAgZGlyZWN0b3J5ID0gbmV3IERpcmVjdG9yeShwYXRoKTtcclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gZGlyZWN0b3J5O1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbnRyaWVzRnJvbVRvcG1vc3REaXJlY3RvcnlOYW1lKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgY29uc3QgYXJyYXkgPSBbXSxcclxuICAgICAgICByZWxhdGl2ZURpcmVjdG9yeVBhdGggPSB0b3Btb3N0RGlyZWN0b3J5TmFtZTsgIC8vL1xyXG5cclxuICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChhcnJheSwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgY29uc3QgZW50cmllcyA9IG5ldyBFbnRyaWVzKGFycmF5KTtcclxuXHJcbiAgcmV0dXJuIGVudHJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGFycmF5LCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICBjb25zdCBhYnNvbHV0ZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICBzdWJFbnRyeU5hbWVzID0gcmVhZERpcmVjdG9yeShhYnNvbHV0ZURpcmVjdG9yeVBhdGgpO1xyXG5cclxuICBzdWJFbnRyeU5hbWVzLmZvckVhY2goKHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3Qgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgPSAhc3ViRW50cnlOYW1lSGlkZGVuTmFtZSxcclxuICAgICAgICAgIGxvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzID0gIWRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMsXHJcbiAgICAgICAgICBsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3RvcmllcyA9ICFsb2FkT25seVJlY29nbmlzZWRGaWxlcztcclxuXHJcbiAgICBpZiAoc3ViRW50cnlOYW1lTm90SGlkZGVuTmFtZSB8fCBsb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gICAgICBsZXQgZW50cnk7XHJcblxyXG4gICAgICBjb25zdCBwYXRoID0gY29uY2F0ZW5hdGVQYXRocyhyZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICAgIGRpcmVjdG9yeSA9IGRpcmVjdG9yeUZyb21QYXRoKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoZGlyZWN0b3J5ICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgZGlyZWN0b3J5UGF0aCA9IHBhdGg7IC8vL1xyXG5cclxuICAgICAgICBpZiAobG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgIGVudHJ5ID0gZGlyZWN0b3J5OyAgLy8vXHJcblxyXG4gICAgICAgICAgYXJyYXkucHVzaChlbnRyeSk7ICAvLy9cclxuXHJcbiAgICAgICAgICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICBpZiAoYXJyYXlMZW5ndGggPiBFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIX0VYQ0VFREVEX01FU1NBR0UpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChhcnJheSwgZGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcywgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcyk7IC8vL1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKSxcclxuICAgICAgICAgICAgICAgIGZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoID0gaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aChmaWxlUGF0aCksXHJcbiAgICAgICAgICAgICAgICBmaWxlUmVjb2duaXNlZEZpbGUgPSBmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aDsgIC8vL1xyXG5cclxuICAgICAgICAgIGlmIChmaWxlUmVjb2duaXNlZEZpbGUgfHwgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgICAgZW50cnkgPSBmaWxlOyAvLy9cclxuXHJcbiAgICAgICAgICAgIGFycmF5LnB1c2goZW50cnkpOyAgLy8vXHJcblxyXG4gICAgICAgICAgICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIGlmIChhcnJheUxlbmd0aCA+IEVOVFJJRVNfTUFYSU1VTV9BUlJBWV9MRU5HVEgpIHtcclxuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgbGV0IHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxuXHJcbiAgY29uc3Qgc3ViRW50cnlOYW1lcyA9IHJlYWREaXJlY3RvcnkocHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgdG9wbW9zdERpcmVjdG9yeU5hbWVzID0gc3ViRW50cnlOYW1lcy5yZWR1Y2UoKHRvcG1vc3REaXJlY3RvcnlOYW1lcywgc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVN1YkVudHJ5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgPSAhc3ViRW50cnlOYW1lSGlkZGVuTmFtZSxcclxuICAgICAgICAgIGxvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzID0gIWRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXM7XHJcblxyXG4gICAgaWYgKHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgfHwgbG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgY29uc3Qgc3ViRW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlU3ViRW50cnlQYXRoKTtcclxuXHJcbiAgICAgIGlmIChzdWJFbnRyeURpcmVjdG9yeSkge1xyXG4gICAgICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gc3ViRW50cnlOYW1lOyAgLy8vXHJcblxyXG4gICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lcy5wdXNoKHRvcG1vc3REaXJlY3RvcnlOYW1lKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcbn1cclxuIl0sIm5hbWVzIjpbImxvYWRGaWxlIiwic2F2ZUZpbGUiLCJsb2FkRmlsZXMiLCJzYXZlRmlsZXMiLCJsb2FkUHJvamVjdCIsImxvYWRQcm9qZWN0cyIsInJlbGVhc2VGcm9tTmFtZSIsIlBFUklPRF9DSEFSQUNURVIiLCJjaGFyYWN0ZXJzIiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJ0b3Btb3N0RGlyZWN0b3J5UGF0aEZyb21QYXRoIiwicmVhZEZpbGUiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwid3JpdGVGaWxlIiwiaXNFbnRyeUZpbGUiLCJyZWFkRGlyZWN0b3J5IiwiaXNFbnRyeURpcmVjdG9yeSIsInBhdGgiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJmaWxlIiwiYWJzb2x1dGVQYXRoIiwiZW50cnlGaWxlIiwiY29udGVudCIsImNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZSIsIkZpbGUiLCJlcnJvciIsImdldFBhdGgiLCJnZXRDb250ZW50IiwidG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCIsIm1rZGlycCIsInN5bmMiLCJwYXRocyIsImFycmF5IiwiZmlsZXMiLCJGaWxlcyIsImZvckVhY2giLCJhZGRGaWxlIiwiZm9yRWFjaEZpbGUiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZSIsImxvYWRPbmx5UmVjb2duaXNlZEZpbGVzIiwiZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3RvcmllcyIsIm5hbWUiLCJlbnRyaWVzIiwiZW50cmllc0Zyb21Ub3Btb3N0RGlyZWN0b3J5TmFtZSIsInByb2plY3QiLCJQcm9qZWN0IiwicHJvamVjdHMiLCJQcm9qZWN0cyIsInRvcG1vc3REaXJlY3RvcnlOYW1lcyIsInRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJhZGRQcm9qZWN0IiwidmVyc2lvbk51bWJlciIsInJlbGVhc2UiLCJSZWxlYXNlIiwiZGlyZWN0b3J5RnJvbVBhdGgiLCJkaXJlY3RvcnkiLCJlbnRyeURpcmVjdG9yeSIsIkRpcmVjdG9yeSIsInJlbGF0aXZlRGlyZWN0b3J5UGF0aCIsImVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoIiwiRW50cmllcyIsImFic29sdXRlRGlyZWN0b3J5UGF0aCIsInN1YkVudHJ5TmFtZXMiLCJzdWJFbnRyeU5hbWUiLCJzdWJFbnRyeU5hbWVIaWRkZW5OYW1lIiwiaXNOYW1lSGlkZGVuTmFtZSIsInN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUiLCJsb2FkSGlkZGVuRmlsZXNBbmREaXJlY3RvcmllcyIsImxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzIiwiZW50cnkiLCJkaXJlY3RvcnlQYXRoIiwicHVzaCIsImFycmF5TGVuZ3RoIiwibGVuZ3RoIiwiRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCIsIkVycm9yIiwiRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFIiwiZmlsZVBhdGgiLCJmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCIsImlzRmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgiLCJmaWxlUmVjb2duaXNlZEZpbGUiLCJyZWR1Y2UiLCJhYnNv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
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  exports.significantTokensFromTokens = significantTokensFromTokens;
6
6
  function significantTokensFromTokens(tokens) {
7
- var significantTokens1 = tokens.reduce(function(significantTokens, token) {
7
+ var significantTokens = tokens.reduce(function(significantTokens, token) {
8
8
  var tokenSignificant = token.isSignificant();
9
9
  if (tokenSignificant) {
10
10
  var significantToken = token; ///
@@ -12,7 +12,7 @@ function significantTokensFromTokens(tokens) {
12
12
  }
13
13
  return significantTokens;
14
14
  }, []);
15
- return significantTokens1;
15
+ return significantTokens;
16
16
  }
17
17
 
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdG9rZW5zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmlmaWNhbnRUb2tlbnNGcm9tVG9rZW5zKHRva2Vucykge1xuICBjb25zdCBzaWduaWZpY2FudFRva2VucyA9IHRva2Vucy5yZWR1Y2UoKHNpZ25pZmljYW50VG9rZW5zLCB0b2tlbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHRva2VuU2lnbmlmaWNhbnQgPSB0b2tlbi5pc1NpZ25pZmljYW50KCk7XG5cbiAgICAgICAgICBpZiAodG9rZW5TaWduaWZpY2FudCkge1xuICAgICAgICAgICAgY29uc3Qgc2lnbmlmaWNhbnRUb2tlbiA9IHRva2VuOyAvLy9cblxuICAgICAgICAgICAgc2lnbmlmaWNhbnRUb2tlbnMucHVzaChzaWduaWZpY2FudFRva2VuKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gc2lnbmlmaWNhbnRUb2tlbnM7XG4gICAgICAgIH0sIFtdKTtcblxuICByZXR1cm4gc2lnbmlmaWNhbnRUb2tlbnM7XG59XG4iXSwibmFtZXMiOlsic2lnbmlmaWNhbnRUb2tlbnNGcm9tVG9rZW5zIiwidG9rZW5zIiwic2lnbmlmaWNhbnRUb2tlbnMiLCJyZWR1Y2UiLCJ0b2tlbiIsInRva2VuU2lnbmlmaWNhbnQiLCJpc1NpZ25pZmljYW50Iiwic2lnbmlmaWNhbnRUb2tlbiIsInB1c2giXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7OztRQUVHQSwyQkFBMkIsR0FBM0JBLDJCQUEyQjtBQUFwQyxTQUFTQSwyQkFBMkIsQ0FBQ0MsTUFBTSxFQUFFO0lBQ2xELElBQU1DLGtCQUFpQixHQUFHRCxNQUFNLENBQUNFLE1BQU0sQ0FBQyxTQUFDRCxpQkFBaUIsRUFBRUUsS0FBSyxFQUFLO1FBQzlELElBQU1DLGdCQUFnQixHQUFHRCxLQUFLLENBQUNFLGFBQWEsRUFBRSxBQUFDO1FBRS9DLElBQUlELGdCQUFnQixFQUFFO1lBQ3BCLElBQU1FLGdCQUFnQixHQUFHSCxLQUFLLEFBQUMsRUFBQyxHQUFHO1lBRW5DRixpQkFBaUIsQ0FBQ00sSUFBSSxDQUFDRCxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsT0FBT0wsaUJBQWlCLENBQUM7S0FDMUIsRUFBRSxFQUFFLENBQUMsQUFBQztJQUViLE9BQU9BLGtCQUFpQixDQUFDO0NBQzFCIn0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdG9rZW5zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmlmaWNhbnRUb2tlbnNGcm9tVG9rZW5zKHRva2Vucykge1xuICBjb25zdCBzaWduaWZpY2FudFRva2VucyA9IHRva2Vucy5yZWR1Y2UoKHNpZ25pZmljYW50VG9rZW5zLCB0b2tlbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHRva2VuU2lnbmlmaWNhbnQgPSB0b2tlbi5pc1NpZ25pZmljYW50KCk7XG5cbiAgICAgICAgICBpZiAodG9rZW5TaWduaWZpY2FudCkge1xuICAgICAgICAgICAgY29uc3Qgc2lnbmlmaWNhbnRUb2tlbiA9IHRva2VuOyAvLy9cblxuICAgICAgICAgICAgc2lnbmlmaWNhbnRUb2tlbnMucHVzaChzaWduaWZpY2FudFRva2VuKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gc2lnbmlmaWNhbnRUb2tlbnM7XG4gICAgICAgIH0sIFtdKTtcblxuICByZXR1cm4gc2lnbmlmaWNhbnRUb2tlbnM7XG59XG4iXSwibmFtZXMiOlsic2lnbmlmaWNhbnRUb2tlbnNGcm9tVG9rZW5zIiwidG9rZW5zIiwic2lnbmlmaWNhbnRUb2tlbnMiLCJyZWR1Y2UiLCJ0b2tlbiIsInRva2VuU2lnbmlmaWNhbnQiLCJpc1NpZ25pZmljYW50Iiwic2lnbmlmaWNhbnRUb2tlbiIsInB1c2giXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7OztRQUVHQSwyQkFBMkIsR0FBM0JBLDJCQUEyQjtBQUFwQyxTQUFTQSwyQkFBMkIsQ0FBQ0MsTUFBTSxFQUFFO0lBQ2xELElBQU1DLGlCQUFpQixHQUFHRCxNQUFNLENBQUNFLE1BQU0sQ0FBQyxTQUFDRCxpQkFBaUIsRUFBRUUsS0FBSyxFQUFLO1FBQzlELElBQU1DLGdCQUFnQixHQUFHRCxLQUFLLENBQUNFLGFBQWEsRUFBRSxBQUFDO1FBRS9DLElBQUlELGdCQUFnQixFQUFFO1lBQ3BCLElBQU1FLGdCQUFnQixHQUFHSCxLQUFLLEFBQUMsRUFBQyxHQUFHO1lBRW5DRixpQkFBaUIsQ0FBQ00sSUFBSSxDQUFDRCxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsT0FBT0wsaUJBQWlCLENBQUM7S0FDMUIsRUFBRSxFQUFFLENBQUMsQUFBQztJQUViLE9BQU9BLGlCQUFpQixDQUFDO0NBQzFCIn0=
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.66",
4
+ "version": "5.0.1",
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": "^11.0.40",
16
- "occam-parsers": "^16.0.45"
15
+ "necessary": "^11.1.4",
16
+ "occam-parsers": "^16.0.51"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@swc/core": "^1.2.51",
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- const action = require("../action"),
4
- usernamePromptOperation = require("../operation/prompt/username"),
5
- emailAddressPromptOperation = require("../operation/prompt/emailAddress"),
6
- retrieveAccessTokenOperation = require("../operation/retrieveAccessToken"),
7
- newEmailAddressPromptOperation = require("../operation/prompt/newEmailAddress");
8
-
9
- const { CHANGE_EMAIL_ADDRESS_API_URI } = require("../uris"),
10
- { FAILED_CHANGE_EMAIL_ADDRESS_MESSAGE, SUCCESSFUL_CHANGE_EMAIL_ADDRESS_MESSAGE } = require("../messages");
11
-
12
- function changeEmailAddress(argument) {
13
- const username = argument, ///
14
- emailAddress = null,
15
- uri = CHANGE_EMAIL_ADDRESS_API_URI,
16
- operations = [
17
- retrieveAccessTokenOperation,
18
- usernamePromptOperation,
19
- emailAddressPromptOperation,
20
- newEmailAddressPromptOperation
21
- ],
22
- context = {
23
- username,
24
- emailAddress
25
- };
26
-
27
- action(operations, uri, (json) => {
28
- const { success } = json;
29
-
30
- success ?
31
- console.log(SUCCESSFUL_CHANGE_EMAIL_ADDRESS_MESSAGE) :
32
- console.log(FAILED_CHANGE_EMAIL_ADDRESS_MESSAGE);
33
-
34
- process.exit();
35
- }, context);
36
- }
37
-
38
- module.exports = changeEmailAddress;
@@ -1,42 +0,0 @@
1
- "use strict";
2
-
3
- const action = require("../action"),
4
- usernamePromptOperation = require("../operation/prompt/username"),
5
- passwordPromptOperation = require("../operation/prompt/password"),
6
- newPasswordPromptOperation = require("../operation/prompt/newPassword"),
7
- retrieveAccessTokenOperation = require("../operation/retrieveAccessToken"),
8
- confirmNewPasswordPromptOperation = require("../operation/prompt/confirmNewPassword");
9
-
10
- const { CHANGE_PASSWORD_API_URI } = require("../uris"),
11
- { FAILED_CHANGE_PASSWORD_MESSAGE, SUCCESSFUL_CHANGE_PASSWORD_MESSAGE } = require("../messages");
12
-
13
- function changePassword(argument) {
14
- const username = argument, ///
15
- oldPassword = null,
16
- newPassword = null,
17
- uri = CHANGE_PASSWORD_API_URI,
18
- operations = [
19
- retrieveAccessTokenOperation,
20
- usernamePromptOperation,
21
- passwordPromptOperation,
22
- newPasswordPromptOperation,
23
- confirmNewPasswordPromptOperation
24
- ],
25
- context = {
26
- username,
27
- oldPassword,
28
- newPassword
29
- };
30
-
31
- action(operations, uri, (json) => {
32
- const { success } = json;
33
-
34
- success ?
35
- console.log(SUCCESSFUL_CHANGE_PASSWORD_MESSAGE) :
36
- console.log(FAILED_CHANGE_PASSWORD_MESSAGE);
37
-
38
- process.exit();
39
- }, context);
40
- }
41
-
42
- module.exports = changePassword;
@@ -1,36 +0,0 @@
1
- "use strict";
2
-
3
- const action = require("../action"),
4
- emailAddressPromptOperation = require("../operation/prompt/emailAddress"),
5
- retrieveAccessTokenOperation = require("../operation/retrieveAccessToken"),
6
- confirmationCodePromptOperation = require("../operation/prompt/confirmationCode");
7
-
8
- const { CONFIRM_EMAIL_ADDRESS_API_URI } = require("../uris"),
9
- { FAILED_CONFIRM_EMAIL_ADDRESS_MESSAGE, SUCCESSFUL_CONFIRM_EMAIL_ADDRESS_MESSAGE } = require("../messages");
10
-
11
- function confirmEmailAddress(argument) {
12
- const emailAddress = argument, ///
13
- confirmationCode = null,
14
- uri = CONFIRM_EMAIL_ADDRESS_API_URI,
15
- operations = [
16
- retrieveAccessTokenOperation,
17
- emailAddressPromptOperation,
18
- confirmationCodePromptOperation
19
- ],
20
- context = {
21
- emailAddress,
22
- confirmationCode
23
- };
24
-
25
- action(operations, uri, (json) => {
26
- const { success } = json;
27
-
28
- success ?
29
- console.log(SUCCESSFUL_CONFIRM_EMAIL_ADDRESS_MESSAGE) :
30
- console.log(FAILED_CONFIRM_EMAIL_ADDRESS_MESSAGE);
31
-
32
- process.exit();
33
- }, context);
34
- }
35
-
36
- module.exports = confirmEmailAddress;
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- const action = require("../action"),
4
- passwordPromptOperation = require("../operation/prompt/password"),
5
- emailAddressPromptOperation = require("../operation/prompt/emailAddress");
6
-
7
- const { LOGIN_API_URI } = require("../uris"),
8
- { addAccessToken } = require("../configuration"),
9
- { FAILED_LOGIN_MESSAGE, SUCCESSFUL_LOGIN_MESSAGE } = require("../messages");
10
-
11
- function login(argument) {
12
- const emailAddress = argument, ///
13
- password = null,
14
- uri = LOGIN_API_URI,
15
- operations = [
16
- emailAddressPromptOperation,
17
- passwordPromptOperation
18
- ],
19
- context = {
20
- emailAddress,
21
- password
22
- };
23
-
24
- action(operations, uri, (json) => {
25
- const { success } = json;
26
-
27
- success ?
28
- console.log(SUCCESSFUL_LOGIN_MESSAGE) :
29
- console.log(FAILED_LOGIN_MESSAGE);
30
-
31
- if (success) {
32
- const { accessToken } = json;
33
-
34
- addAccessToken(accessToken);
35
- }
36
-
37
- process.exit();
38
- }, context);
39
- }
40
-
41
- module.exports = login;
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- const action = require("../action"),
4
- retrieveAccessTokenOperation = require("../operation/retrieveAccessToken");
5
-
6
- const { LOGOUT_API_URI } = require("../uris"),
7
- { removeAccessToken } = require("../configuration"),
8
- { LOGGED_OUT_MESSAGE } = require("../messages");
9
-
10
- function logout() {
11
- const uri = LOGOUT_API_URI,
12
- operations = [
13
- retrieveAccessTokenOperation
14
- ],
15
- context = {};
16
-
17
- action(operations, uri, (json) => {
18
- removeAccessToken();
19
-
20
- console.log(LOGGED_OUT_MESSAGE);
21
-
22
- process.exit();
23
- }, context);
24
- }
25
-
26
- module.exports = logout;
@@ -1,40 +0,0 @@
1
- "use strict";
2
-
3
- const action = require("../action"),
4
- usernamePromptOperation = require("../operation/prompt/username"),
5
- passwordPromptOperation = require("../operation/prompt/password"),
6
- emailAddressPromptOperation = require("../operation/prompt/emailAddress"),
7
- confirmPasswordPromptOperation = require("../operation/prompt/confirmPassword");
8
-
9
- const { REGISTER_API_URI } = require("../uris"),
10
- { FAILED_REGISTER_MESSAGE, SUCCESSFUL_REGISTER_MESSAGE } = require("../messages");
11
-
12
- function register(argument) {
13
- const emailAddress = argument, ///
14
- username = null,
15
- password = null,
16
- uri = REGISTER_API_URI,
17
- operations = [
18
- emailAddressPromptOperation,
19
- usernamePromptOperation,
20
- passwordPromptOperation,
21
- confirmPasswordPromptOperation
22
- ],
23
- context = {
24
- username,
25
- password,
26
- emailAddress
27
- };
28
-
29
- action(operations, uri, (json) => {
30
- const { success } = json;
31
-
32
- success ?
33
- console.log(SUCCESSFUL_REGISTER_MESSAGE) :
34
- console.log(FAILED_REGISTER_MESSAGE);
35
-
36
- process.exit();
37
- }, context);
38
- }
39
-
40
- module.exports = register;
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- function remove(argument) {
4
- const releaseName = argument; ///
5
-
6
- console.log("This functionality is not implemented yet.");
7
- }
8
-
9
- module.exports = remove;
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- const action = require("../action"),
4
- emailAddressPromptOperation = require("../operation/prompt/emailAddress"),
5
- retrieveAccessTokenOperation = require("../operation/retrieveAccessToken");
6
-
7
- const { RESEND_CONFIRMATION_CODE_API_URI } = require("../uris"),
8
- { SUCCESSFUL_RESEND_CONFIRMATION_CODE_MESSAGE, FAILED_RESEND_CONFIRMATION_CODE_MESSAGE } = require("../messages");
9
-
10
- function resendConfirmationCode(argument) {
11
- const emailAddress = argument, ///
12
- uri = RESEND_CONFIRMATION_CODE_API_URI,
13
- operations = [
14
- retrieveAccessTokenOperation,
15
- emailAddressPromptOperation
16
- ],
17
- context = {
18
- emailAddress
19
- };
20
-
21
- action(operations, uri, (json) => {
22
- const { success } = json;
23
-
24
- success ?
25
- console.log(SUCCESSFUL_RESEND_CONFIRMATION_CODE_MESSAGE) :
26
- console.log(FAILED_RESEND_CONFIRMATION_CODE_MESSAGE);
27
-
28
- process.exit();
29
- }, context);
30
- }
31
-
32
- module.exports = resendConfirmationCode;
package/bin/action.js DELETED
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- const post = require("./post");
4
-
5
- const { executeOperations } = require("./utilities/operation");
6
-
7
- function action(operations, uri, callback, context) {
8
- executeOperations(operations, (completed) => {
9
- if (!completed) {
10
- process.exit(1);
11
- }
12
-
13
- const data = context; ///
14
-
15
- post(uri, data, callback);
16
- }, context);
17
- }
18
-
19
- module.exports = action;
@@ -1,24 +0,0 @@
1
- "use strict";
2
-
3
- const { DEFAULT_USE_SSH, DEFAULT_HOST_URL, DEFAULT_HOST_NAME_SUFFIX } = require("../defaults");
4
-
5
- function createConfiguration() {
6
- const useSSH = DEFAULT_USE_SSH,
7
- hostURL = DEFAULT_HOST_URL,
8
- hostNameSuffix = DEFAULT_HOST_NAME_SUFFIX,
9
- defaultOptions = {
10
- useSSH,
11
- hostURL,
12
- hostNameSuffix
13
- },
14
- options = defaultOptions, ///
15
- configuration = {
16
- options
17
- };
18
-
19
- return configuration;
20
- }
21
-
22
- module.exports = {
23
- createConfiguration
24
- };
@@ -1,42 +0,0 @@
1
- "use strict";
2
-
3
- const { shellUtilities } = require("necessary");
4
-
5
- const { PASSWORDS_DO_NOT_MATCH_MESSAGE } = require("../../messages"),
6
- { CONFIRM_NEW_PASSWORD_DESCRIPTION } = require("../../descriptions");
7
-
8
- const { prompt } = shellUtilities;
9
-
10
- function confirmNewPasswordPromptOperation(proceed, abort, context) {
11
- const { newPassword } = context,
12
- hidden = true,
13
- description = CONFIRM_NEW_PASSWORD_DESCRIPTION,
14
- errorMessage = PASSWORDS_DO_NOT_MATCH_MESSAGE,
15
- options = {
16
- hidden,
17
- description,
18
- errorMessage,
19
- validationFunction
20
- };
21
-
22
- prompt(options, (answer) => {
23
- const newPassword = answer, ///
24
- valid = (newPassword !== null);
25
-
26
- if (valid) {
27
- proceed();
28
-
29
- return;
30
- }
31
-
32
- abort();
33
- });
34
-
35
- function validationFunction(value) {
36
- const valid = (value === newPassword); ///
37
-
38
- return valid;
39
- }
40
- }
41
-
42
- module.exports = confirmNewPasswordPromptOperation;
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- const { shellUtilities } = require("necessary");
4
-
5
- const { validateConfirmationCode } = require("../../utilities/validate"),
6
- { CONFIRMATION_CODE_DESCRIPTION } = require("../../descriptions"),
7
- { INVALID_CONFIRMATION_CODE_MESSAGE } = require("../../messages");
8
-
9
- const { prompt } = shellUtilities;
10
-
11
- function confirmationCodePromptOperation(proceed, abort, context) {
12
- const hidden = true,
13
- description = CONFIRMATION_CODE_DESCRIPTION,
14
- errorMessage = INVALID_CONFIRMATION_CODE_MESSAGE,
15
- validationFunction = validateConfirmationCode, ///
16
- options = {
17
- hidden,
18
- description,
19
- errorMessage,
20
- validationFunction
21
- };
22
-
23
- prompt(options, (answer) => {
24
- const confirmationCode = answer, ///
25
- valid = (confirmationCode !== null);
26
-
27
- if (valid) {
28
- Object.assign(context, {
29
- confirmationCode
30
- });
31
-
32
- proceed();
33
-
34
- return;
35
- }
36
-
37
- abort();
38
- });
39
- }
40
-
41
- module.exports = confirmationCodePromptOperation;
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- const { shellUtilities } = require("necessary");
4
-
5
- const { validateEmailAddress } = require("../../utilities/validate"),
6
- { INVALID_EMAIL_ADDRESS_MESSAGE } = require("../../messages"),
7
- { NEW_EMAIL_ADDRESS_DESCRIPTION } = require("../../descriptions");
8
-
9
- const { prompt } = shellUtilities;
10
-
11
- function newEmailAddressPromptOperation(proceed, abort, context) {
12
- const hidden = false,
13
- description = NEW_EMAIL_ADDRESS_DESCRIPTION,
14
- errorMessage = INVALID_EMAIL_ADDRESS_MESSAGE,
15
- validationFunction = validateEmailAddress, ///
16
- options = {
17
- hidden,
18
- description,
19
- errorMessage,
20
- validationFunction
21
- };
22
-
23
- prompt(options, (answer) => {
24
- const newEmailAddress = answer, ///
25
- valid = (newEmailAddress !== null);
26
-
27
- if (valid) {
28
- Object.assign(context, {
29
- newEmailAddress
30
- });
31
-
32
- proceed();
33
-
34
- return;
35
- }
36
-
37
- abort();
38
- });
39
- }
40
-
41
- module.exports = newEmailAddressPromptOperation;
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- const { shellUtilities } = require("necessary");
4
-
5
- const { validatePassword } = require("../../utilities/validate"),
6
- { INVALID_PASSWORD_MESSAGE } = require("../../messages"),
7
- { NEW_PASSWORD_DESCRIPTION } = require("../../descriptions");
8
-
9
- const { prompt } = shellUtilities;
10
-
11
- function newPasswordPromptOperation(proceed, abort, context) {
12
- const hidden = true,
13
- description = NEW_PASSWORD_DESCRIPTION,
14
- errorMessage = INVALID_PASSWORD_MESSAGE,
15
- validationFunction = validatePassword, ///
16
- options = {
17
- hidden,
18
- description,
19
- errorMessage,
20
- validationFunction
21
- };
22
-
23
- prompt(options, (answer) => {
24
- const newPassword = answer, ///
25
- valid = (newPassword !== null);
26
-
27
- if (valid) {
28
- Object.assign(context, {
29
- newPassword
30
- });
31
-
32
- proceed();
33
-
34
- return;
35
- }
36
-
37
- abort();
38
- });
39
- }
40
-
41
- module.exports = newPasswordPromptOperation;