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.
- package/README.md +7 -17
- package/bin/action/clone.js +15 -24
- package/bin/action/createAccount.js +41 -0
- package/bin/action/deprecate.js +13 -14
- package/bin/action/help.js +4 -14
- package/bin/action/initialise.js +12 -2
- package/bin/action/install.js +6 -6
- package/bin/action/publish.js +12 -11
- package/bin/action/resetPassword.js +11 -13
- package/bin/action/setOptions.js +10 -26
- package/bin/action/signIn.js +37 -0
- package/bin/action/signOut.js +16 -0
- package/bin/actions.js +11 -26
- package/bin/commands.js +8 -18
- package/bin/configuration/version_1_5.js +1 -22
- package/bin/configuration/version_2_0.js +1 -16
- package/bin/configuration/version_5_0.js +42 -0
- package/bin/configuration.js +26 -21
- package/bin/constants.js +2 -0
- package/bin/defaults.js +3 -3
- package/bin/descriptions.js +2 -8
- package/bin/messages.js +24 -50
- package/bin/operation/checkMetaJSONFileExists.js +0 -4
- package/bin/operation/checkReadmeFileExists.js +0 -4
- package/bin/{cloneRepository.js → operation/clone.js} +12 -8
- package/bin/operation/createAccount.js +33 -0
- package/bin/operation/createRelease.js +1 -4
- package/bin/operation/deflateRelease.js +1 -1
- package/bin/operation/deprecate.js +23 -0
- package/bin/operation/getIdentityToken.js +21 -0
- package/bin/operation/prompt/areYouSure.js +5 -5
- package/bin/operation/prompt/emailAddressOrUsername.js +53 -0
- package/bin/operation/prompt/useSSH.js +4 -4
- package/bin/operation/publish.js +24 -0
- package/bin/operation/repository.js +29 -0
- package/bin/operation/resetPassword.js +19 -0
- package/bin/operation/setIdentityToken.js +13 -0
- package/bin/operation/setOptions.js +25 -0
- package/bin/operation/signIn.js +32 -0
- package/bin/post.js +16 -49
- package/bin/uris.js +5 -15
- package/bin/utilities/validate.js +21 -4
- package/bin/versions.js +4 -2
- package/lib/entries.js +5 -5
- package/lib/node/dependency.js +4 -4
- package/lib/node/repository.js +4 -4
- package/lib/project.js +5 -5
- package/lib/projects.js +3 -3
- package/lib/utilities/fileSystem.js +4 -4
- package/lib/utilities/tokens.js +3 -3
- package/package.json +3 -3
- package/bin/action/changeEmailAddress.js +0 -38
- package/bin/action/changePassword.js +0 -42
- package/bin/action/confirmEmailAddress.js +0 -36
- package/bin/action/login.js +0 -41
- package/bin/action/logout.js +0 -26
- package/bin/action/register.js +0 -40
- package/bin/action/remove.js +0 -9
- package/bin/action/resendConfirmationCode.js +0 -32
- package/bin/action.js +0 -19
- package/bin/configuration/unversioned.js +0 -24
- package/bin/operation/prompt/confirmNewPassword.js +0 -42
- package/bin/operation/prompt/confirmationCode.js +0 -41
- package/bin/operation/prompt/newEmailAddress.js +0 -41
- package/bin/operation/prompt/newPassword.js +0 -41
- 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
|
|
190
|
+
var topmostDirectoryNames;
|
|
191
191
|
var subEntryNames = readDirectory(projectsDirectoryPath);
|
|
192
|
-
|
|
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
|
|
203
|
+
return topmostDirectoryNames;
|
|
204
204
|
}
|
|
205
205
|
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCBta2RpcnAgZnJvbSBcIm1rZGlycFwiO1xyXG5cclxuaW1wb3J0IHsgY2hhcmFjdGVycywgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcclxuXHJcbmltcG9ydCBGaWxlIGZyb20gXCIuLi9maWxlXCI7XHJcbmltcG9ydCBGaWxlcyBmcm9tIFwiLi4vZmlsZXNcIjtcclxuaW1wb3J0IEVudHJpZXMgZnJvbSBcIi4uL2VudHJpZXNcIjtcclxuaW1wb3J0IFByb2plY3QgZnJvbSBcIi4uL3Byb2plY3RcIjtcclxuaW1wb3J0IFJlbGVhc2UgZnJvbSBcIi4uL3JlbGVhc2VcIjtcclxuaW1wb3J0IFByb2plY3RzIGZyb20gXCIuLi9wcm9qZWN0c1wiO1xyXG5pbXBvcnQgRGlyZWN0b3J5IGZyb20gXCIuLi9kaXJlY3RvcnlcIjtcclxuXHJcbmltcG9ydCB7IGlzTmFtZUhpZGRlbk5hbWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcclxuaW1wb3J0IHsgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVBhdGhcIjtcclxuaW1wb3J0IHsgY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIH0gZnJvbSBcIi4uL2ZpbGVcIjtcclxuaW1wb3J0IHsgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFIH0gZnJvbSBcIi4uL21lc3NhZ2VzXCI7XHJcblxyXG5jb25zdCB7IFBFUklPRF9DSEFSQUNURVIgfSA9IGNoYXJhY3RlcnMsXHJcbiAgICAgIHsgY29uY2F0ZW5hdGVQYXRocywgdG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aCB9ID0gcGF0aFV0aWxpdGllcyxcclxuICAgICAgeyByZWFkRmlsZSwgd3JpdGVGaWxlLCBpc0VudHJ5RmlsZSwgcmVhZERpcmVjdG9yeSwgaXNFbnRyeURpcmVjdG9yeSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgZmlsZSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgICBlbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGlmIChlbnRyeUZpbGUpIHtcclxuICAgICAgbGV0IGNvbnRlbnQgPSByZWFkRmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xyXG5cclxuICAgICAgZmlsZSA9IG5ldyBGaWxlKHBhdGgsIGNvbnRlbnQpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiBmaWxlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgcGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxyXG4gICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKSxcclxuICAgICAgICBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgdG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCA9IHRvcG1vc3REaXJlY3RvcnlQYXRoRnJvbVBhdGgoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgbWtkaXJwLnN5bmModG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHdyaXRlRmlsZShhYnNvbHV0ZVBhdGgsIGNvbnRlbnQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZEZpbGVzKHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBhcnJheSA9IFtdLFxyXG4gICAgICAgIGZpbGVzID0gbmV3IEZpbGVzKGFycmF5KTtcclxuXHJcbiAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgZmlsZXMuYWRkRmlsZShmaWxlKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGVzKGZpbGVzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBmaWxlcy5mb3JFYWNoRmlsZSgoZmlsZSkgPT4ge1xyXG4gICAgc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRQcm9qZWN0KHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgY29uc3QgbmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lLCAgLy8vXHJcbiAgICAgICAgZW50cmllcyA9IGVudHJpZXNGcm9tVG9wbW9zdERpcmVjdG9yeU5hbWUodG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpLFxyXG4gICAgICAgIHByb2plY3QgPSBuZXcgUHJvamVjdChuYW1lLCBlbnRyaWVzKTtcclxuXHJcbiAgcmV0dXJuIHByb2plY3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcywgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gIGxldCBwcm9qZWN0cztcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGFycmF5ID0gW107XHJcblxyXG4gICAgcHJvamVjdHMgPSBuZXcgUHJvamVjdHMoYXJyYXkpO1xyXG5cclxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lcyA9IHRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMuZm9yRWFjaCgodG9wbW9zdERpcmVjdG9yeU5hbWUpID0+IHtcclxuICAgICAgY29uc3QgcHJvamVjdCA9IGxvYWRQcm9qZWN0KHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgICAgIHByb2plY3RzLmFkZFByb2plY3QocHJvamVjdCk7XHJcbiAgICB9KTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgcHJvamVjdHMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHByb2plY3RzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVsZWFzZUZyb21OYW1lKG5hbWUpIHtcclxuICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IG5hbWUsIC8vL1xyXG4gICAgICAgIHByb2plY3RzRGlyZWN0b3J5UGF0aCA9IFBFUklPRF9DSEFSQUNURVIsXHJcbiAgICAgICAgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMgPSB0cnVlLFxyXG4gICAgICAgIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMgPSB0cnVlLFxyXG4gICAgICAgIGVudHJpZXMgPSBlbnRyaWVzRnJvbVRvcG1vc3REaXJlY3RvcnlOYW1lKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSxcclxuICAgICAgICB2ZXJzaW9uTnVtYmVyID0gbnVsbCwgLy8vXHJcbiAgICAgICAgcmVsZWFzZSA9IG5ldyBSZWxlYXNlKG5hbWUsIGVudHJpZXMsIHZlcnNpb25OdW1iZXIpO1xyXG5cclxuICByZXR1cm4gcmVsZWFzZTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIGxvYWRGaWxlLFxyXG4gIHNhdmVGaWxlLFxyXG4gIGxvYWRGaWxlcyxcclxuICBzYXZlRmlsZXMsXHJcbiAgbG9hZFByb2plY3QsXHJcbiAgbG9hZFByb2plY3RzLFxyXG4gIHJlbGVhc2VGcm9tTmFtZVxyXG59O1xyXG5cclxuZnVuY3Rpb24gZGlyZWN0b3J5RnJvbVBhdGgocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IGRpcmVjdG9yeSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgICBlbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICBpZiAoZW50cnlEaXJlY3RvcnkpIHtcclxuICAgICAgZGlyZWN0b3J5ID0gbmV3IERpcmVjdG9yeShwYXRoKTtcclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gZGlyZWN0b3J5O1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbnRyaWVzRnJvbVRvcG1vc3REaXJlY3RvcnlOYW1lKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgY29uc3QgYXJyYXkgPSBbXSxcclxuICAgICAgICByZWxhdGl2ZURpcmVjdG9yeVBhdGggPSB0b3Btb3N0RGlyZWN0b3J5TmFtZTsgIC8vL1xyXG5cclxuICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChhcnJheSwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgY29uc3QgZW50cmllcyA9IG5ldyBFbnRyaWVzKGFycmF5KTtcclxuXHJcbiAgcmV0dXJuIGVudHJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGFycmF5LCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICBjb25zdCBhYnNvbHV0ZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICBzdWJFbnRyeU5hbWVzID0gcmVhZERpcmVjdG9yeShhYnNvbHV0ZURpcmVjdG9yeVBhdGgpO1xyXG5cclxuICBzdWJFbnRyeU5hbWVzLmZvckVhY2goKHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3Qgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgPSAhc3ViRW50cnlOYW1lSGlkZGVuTmFtZSxcclxuICAgICAgICAgIGxvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzID0gIWRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMsXHJcbiAgICAgICAgICBsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3RvcmllcyA9ICFsb2FkT25seVJlY29nbmlzZWRGaWxlcztcclxuXHJcbiAgICBpZiAoc3ViRW50cnlOYW1lTm90SGlkZGVuTmFtZSB8fCBsb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gICAgICBsZXQgZW50cnk7XHJcblxyXG4gICAgICBjb25zdCBwYXRoID0gY29uY2F0ZW5hdGVQYXRocyhyZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICAgIGRpcmVjdG9yeSA9IGRpcmVjdG9yeUZyb21QYXRoKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoZGlyZWN0b3J5ICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgZGlyZWN0b3J5UGF0aCA9IHBhdGg7IC8vL1xyXG5cclxuICAgICAgICBpZiAobG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgIGVudHJ5ID0gZGlyZWN0b3J5OyAgLy8vXHJcblxyXG4gICAgICAgICAgYXJyYXkucHVzaChlbnRyeSk7ICAvLy9cclxuXHJcbiAgICAgICAgICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICBpZiAoYXJyYXlMZW5ndGggPiBFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIX0VYQ0VFREVEX01FU1NBR0UpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChhcnJheSwgZGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcywgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcyk7IC8vL1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKSxcclxuICAgICAgICAgICAgICAgIGZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoID0gaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aChmaWxlUGF0aCksXHJcbiAgICAgICAgICAgICAgICBmaWxlUmVjb2duaXNlZEZpbGUgPSBmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aDsgIC8vL1xyXG5cclxuICAgICAgICAgIGlmIChmaWxlUmVjb2duaXNlZEZpbGUgfHwgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgICAgZW50cnkgPSBmaWxlOyAvLy9cclxuXHJcbiAgICAgICAgICAgIGFycmF5LnB1c2goZW50cnkpOyAgLy8vXHJcblxyXG4gICAgICAgICAgICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIGlmIChhcnJheUxlbmd0aCA+IEVOVFJJRVNfTUFYSU1VTV9BUlJBWV9MRU5HVEgpIHtcclxuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgbGV0IHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxuXHJcbiAgY29uc3Qgc3ViRW50cnlOYW1lcyA9IHJlYWREaXJlY3RvcnkocHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgdG9wbW9zdERpcmVjdG9yeU5hbWVzID0gc3ViRW50cnlOYW1lcy5yZWR1Y2UoKHRvcG1vc3REaXJlY3RvcnlOYW1lcywgc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVN1YkVudHJ5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgPSAhc3ViRW50cnlOYW1lSGlkZGVuTmFtZSxcclxuICAgICAgICAgIGxvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzID0gIWRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXM7XHJcblxyXG4gICAgaWYgKHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgfHwgbG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgY29uc3Qgc3ViRW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlU3ViRW50cnlQYXRoKTtcclxuXHJcbiAgICAgIGlmIChzdWJFbnRyeURpcmVjdG9yeSkge1xyXG4gICAgICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gc3ViRW50cnlOYW1lOyAgLy8vXHJcblxyXG4gICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lcy5wdXNoKHRvcG1vc3REaXJlY3RvcnlOYW1lKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcbn1cclxuIl0sIm5hbWVzIjpbImxvYWRGaWxlIiwic2F2ZUZpbGUiLCJsb2FkRmlsZXMiLCJzYXZlRmlsZXMiLCJsb2FkUHJvamVjdCIsImxvYWRQcm9qZWN0cyIsInJlbGVhc2VGcm9tTmFtZSIsIlBFUklPRF9DSEFSQUNURVIiLCJjaGFyYWN0ZXJzIiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJ0b3Btb3N0RGlyZWN0b3J5UGF0aEZyb21QYXRoIiwicmVhZEZpbGUiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwid3JpdGVGaWxlIiwiaXNFbnRyeUZpbGUiLCJyZWFkRGlyZWN0b3J5IiwiaXNFbnRyeURpcmVjdG9yeSIsInBhdGgiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJmaWxlIiwiYWJzb2x1dGVQYXRoIiwiZW50cnlGaWxlIiwiY29udGVudCIsImNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZSIsIkZpbGUiLCJlcnJvciIsImdldFBhdGgiLCJnZXRDb250ZW50IiwidG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCIsIm1rZGlycCIsInN5bmMiLCJwYXRocyIsImFycmF5IiwiZmlsZXMiLCJGaWxlcyIsImZvckVhY2giLCJhZGRGaWxlIiwiZm9yRWFjaEZpbGUiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZSIsImxvYWRPbmx5UmVjb2duaXNlZEZpbGVzIiwiZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3RvcmllcyIsIm5hbWUiLCJlbnRyaWVzIiwiZW50cmllc0Zyb21Ub3Btb3N0RGlyZWN0b3J5TmFtZSIsInByb2plY3QiLCJQcm9qZWN0IiwicHJvamVjdHMiLCJQcm9qZWN0cyIsInRvcG1vc3REaXJlY3RvcnlOYW1lcyIsInRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJhZGRQcm9qZWN0IiwidmVyc2lvbk51bWJlciIsInJlbGVhc2UiLCJSZWxlYXNlIiwiZGlyZWN0b3J5RnJvbVBhdGgiLCJkaXJlY3RvcnkiLCJlbnRyeURpcmVjdG9yeSIsIkRpcmVjdG9yeSIsInJlbGF0aXZlRGlyZWN0b3J5UGF0aCIsImVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoIiwiRW50cmllcyIsImFic29sdXRlRGlyZWN0b3J5UGF0aCIsInN1YkVudHJ5TmFtZXMiLCJzdWJFbnRyeU5hbWUiLCJzdWJFbnRyeU5hbWVIaWRkZW5OYW1lIiwiaXNOYW1lSGlkZGVuTmFtZSIsInN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUiLCJsb2FkSGlkZGVuRmlsZXNBbmREaXJlY3RvcmllcyIsImxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzIiwiZW50cnkiLCJkaXJlY3RvcnlQYXRoIiwicHVzaCIsImFycmF5TGVuZ3RoIiwibGVuZ3RoIiwiRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCIsIkVycm9yIiwiRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFIiwiZmlsZVBhdGgiLCJmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCIsImlzRmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgiLCJmaWxlUmVjb2duaXNlZEZpbGUiLCJyZWR1Y2UiLCJhYnNvbHV0ZVN1YkVudHJ5UGF0aCIsInN1YkVudHJ5RGlyZWN0b3J5Il0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7Ozs7UUF3QkdBLFFBQVEsR0FBUkEsUUFBUTtRQXFCUkMsUUFBUSxHQUFSQSxRQUFRO1FBV1JDLFNBQVMsR0FBVEEsU0FBUztRQWFUQyxTQUFTLEdBQVRBLFNBQVM7UUFNVEMsV0FBVyxHQUFYQSxXQUFXO1FBUVhDLFlBQVksR0FBWkEsWUFBWTtRQXNCWkMsZUFBZSxHQUFmQSxlQUFlOztBQXZHWixJQUFBLE9BQVEsa0NBQVIsUUFBUSxFQUFBO0FBRW9DLElBQUEsVUFBVyxXQUFYLFdBQVcsQ0FBQTtBQUV6RCxJQUFBLEtBQVMsbUNBQVQsU0FBUyxFQUFBO0FBQ1IsSUFBQSxNQUFVLGtDQUFWLFVBQVUsRUFBQTtBQUNSLElBQUEsUUFBWSxrQ0FBWixZQUFZLEVBQUE7QUFDWixJQUFBLFFBQVksa0NBQVosWUFBWSxFQUFBO0FBQ1osSUFBQSxRQUFZLGtDQUFaLFlBQVksRUFBQTtBQUNYLElBQUEsU0FBYSxrQ0FBYixhQUFhLEVBQUE7QUFDWixJQUFBLFVBQWMsa0NBQWQsY0FBYyxFQUFBO0FBRUgsSUFBQSxLQUFtQixXQUFuQixtQkFBbUIsQ0FBQTtBQUNQLElBQUEsVUFBYyxXQUFkLGNBQWMsQ0FBQTtBQUNkLElBQUEsU0FBdUIsV0FBdkIsdUJBQXVCLENBQUE7QUFFTixJQUFBLFNBQWEsV0FBYixhQUFhLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUzRSxJQUFNLEFBQUVDLGdCQUFnQixHQUFLQyxVQUFVLFdBQUEsQ0FBL0JELGdCQUFnQixBQUFlLEVBQy9CRSxnQkFBZ0IsR0FBbUNDLFVBQWEsY0FBQSxDQUFoRUQsZ0JBQWdCLEVBQUVFLDRCQUE0QixHQUFLRCxVQUFhLGNBQUEsQ0FBOUNDLDRCQUE0QixFQUM5Q0MsUUFBUSxHQUE4REMsVUFBbUIsb0JBQUEsQ0FBekZELFFBQVEsRUFBRUUsU0FBUyxHQUFtREQsVUFBbUIsb0JBQUEsQ0FBL0VDLFNBQVMsRUFBRUMsV0FBVyxHQUFzQ0YsVUFBbUIsb0JBQUEsQ0FBcEVFLFdBQVcsRUFBRUMsYUFBYSxHQUF1QkgsVUFBbUIsb0JBQUEsQ0FBdkRHLGFBQWEsRUFBRUMsZ0JBQWdCLEdBQUtKLFVBQW1CLG9CQUFBLENBQXhDSSxnQkFBZ0IsQUFBeUI7QUFFM0YsU0FBU2pCLFFBQVEsQ0FBQ2tCLElBQUksRUFBRUMscUJBQXFCLEVBQUU7SUFDcEQsSUFBSUMsSUFBSSxHQUFHLElBQUksQUFBQztJQUVoQixJQUFJO1FBQ0YsSUFBTUMsWUFBWSxHQUFHWixnQkFBZ0IsQ0FBQ1UscUJBQXFCLEVBQUVELElBQUksQ0FBQyxFQUM1REksU0FBUyxHQUFHUCxXQUFXLENBQUNNLFlBQVksQ0FBQyxBQUFDO1FBRTVDLElBQUlDLFNBQVMsRUFBRTtZQUNiLElBQUlDLE9BQU8sR0FBR1gsUUFBUSxDQUFDUyxZQUFZLENBQUMsQUFBQztZQUVyQ0UsT0FBTyxHQUFHQyxDQUFBQSxHQUFBQSxLQUE4QixBQUFTLENBQUEsK0JBQVQsQ0FBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBRSxHQUFHO1lBRXZESCxJQUFJLEdBQUcsSUFBSUssS0FBSSxRQUFBLENBQUNQLElBQUksRUFBRUssT0FBTyxDQUFDLENBQUM7U0FDaEM7S0FDRixDQUFDLE9BQU9HLEtBQUssRUFBRTtJQUNkLEdBQUc7S0FDSjtJQUVELE9BQU9OLElBQUksQ0FBQztDQUNiO0FBRU0sU0FBU25CLFFBQVEsQ0FBQ21CLElBQUksRUFBRUQscUJBQXFCLEVBQUU7SUFDcEQsSUFBTUQsSUFBSSxHQUFHRSxJQUFJLENBQUNPLE9BQU8sRUFBRSxFQUNyQkosT0FBTyxHQUFHSCxJQUFJLENBQUNRLFVBQVUsRUFBRSxFQUMzQlAsWUFBWSxHQUFHWixnQkFBZ0IsQ0FBQ1UscUJBQXFCLEVBQUVELElBQUksQ0FBQyxFQUM1RFcsNEJBQTRCLEdBQUdsQiw0QkFBNEIsQ0FBQ1UsWUFBWSxDQUFDLEFBQUM7SUFFaEZTLE9BQU0sUUFBQSxDQUFDQyxJQUFJLENBQUNGLDRCQUE0QixDQUFDLENBQUM7SUFFMUNmLFNBQVMsQ0FBQ08sWUFBWSxFQUFFRSxPQUFPLENBQUMsQ0FBQztDQUNsQztBQUVNLFNBQVNyQixTQUFTLENBQUM4QixLQUFLLEVBQUViLHFCQUFxQixFQUFFO0lBQ3RELElBQU1jLEtBQUssR0FBRyxFQUFFLEVBQ1ZDLEtBQUssR0FBRyxJQUFJQyxNQUFLLFFBQUEsQ0FBQ0YsS0FBSyxDQUFDLEFBQUM7SUFFL0JELEtBQUssQ0FBQ0ksT0FBTyxDQUFDLFNBQUNsQixJQUFJLEVBQUs7UUFDdEIsSUFBTUUsSUFBSSxHQUFHcEIsUUFBUSxDQUFDa0IsSUFBSSxFQUFFQyxxQkFBcUIsQ0FBQyxBQUFDO1FBRW5EZSxLQUFLLENBQUNHLE9BQU8sQ0FBQ2pCLElBQUksQ0FBQyxDQUFDO0tBQ3JCLENBQUMsQ0FBQztJQUVILE9BQU9jLEtBQUssQ0FBQztDQUNkO0FBRU0sU0FBUy9CLFNBQVMsQ0FBQytCLEtBQUssRUFBRWYscUJBQXFCLEVBQUU7SUFDdERlLEtBQUssQ0FBQ0ksV0FBVyxDQUFDLFNBQUNsQixJQUFJLEVBQUs7UUFDMUJuQixRQUFRLENBQUNtQixJQUFJLEVBQUVELHFCQUFxQixDQUFDLENBQUM7S0FDdkMsQ0FBQyxDQUFDO0NBQ0o7QUFFTSxTQUFTZixXQUFXLENBQUNtQyxvQkFBb0IsRUFBRXBCLHFCQUFxQixFQUFFcUIsdUJBQXVCLEVBQUVDLGtDQUFrQyxFQUFFO0lBQ3BJLElBQU1DLElBQUksR0FBR0gsb0JBQW9CLEVBQzNCSSxPQUFPLEdBQUdDLCtCQUErQixDQUFDTCxvQkFBb0IsRUFBRXBCLHFCQUFxQixFQUFFcUIsdUJBQXVCLEVBQUVDLGtDQUFrQyxDQUFDLEVBQ25KSSxPQUFPLEdBQUcsSUFBSUMsUUFBTyxRQUFBLENBQUNKLElBQUksRUFBRUMsT0FBTyxDQUFDLEFBQUM7SUFFM0MsT0FBT0UsT0FBTyxDQUFDO0NBQ2hCO0FBRU0sU0FBU3hDLFlBQVksQ0FBQ2MscUJBQXFCLEVBQUVxQix1QkFBdUIsRUFBRUMsa0NBQWtDLEVBQUU7SUFDL0csSUFBSU0sUUFBUSxBQUFDO0lBRWIsSUFBSTtRQUNGLElBQU1kLEtBQUssR0FBRyxFQUFFLEFBQUM7UUFFakJjLFFBQVEsR0FBRyxJQUFJQyxTQUFRLFFBQUEsQ0FBQ2YsS0FBSyxDQUFDLENBQUM7UUFFL0IsSUFBTWdCLHFCQUFxQixHQUFHQyw4Q0FBOEMsQ0FBQy9CLHFCQUFxQixFQUFFc0Isa0NBQWtDLENBQUMsQUFBQztRQUV4SVEscUJBQXFCLENBQUNiLE9BQU8sQ0FBQyxTQUFDRyxvQkFBb0IsRUFBSztZQUN0RCxJQUFNTSxPQUFPLEdBQUd6QyxXQUFXLENBQUNtQyxvQkFBb0IsRUFBRXBCLHFCQUFxQixFQUFFcUIsdUJBQXVCLEVBQUVDLGtDQUFrQyxDQUFDLEFBQUM7WUFFdElNLFFBQVEsQ0FBQ0ksVUFBVSxDQUFDTixPQUFPLENBQUMsQ0FBQztTQUM5QixDQUFDLENBQUM7S0FDSixDQUFDLE9BQU9uQixLQUFLLEVBQUU7UUFDZHFCLFFBQVEsR0FBRyxJQUFJLENBQUM7S0FDakI7SUFFRCxPQUFPQSxRQUFRLENBQUM7Q0FDakI7QUFFTSxTQUFTekMsZUFBZSxDQUFDb0MsSUFBSSxFQUFFO0lBQ3BDLElBQU1ILG9CQUFvQixHQUFHRyxJQUFJLEVBQzNCdkIscUJBQXFCLEdBQUdaLGdCQUFnQixFQUN4Q2lDLHVCQUF1QixHQUFHLElBQUksRUFDOUJDLGtDQUFrQyxHQUFHLElBQUksRUFDekNFLE9BQU8sR0FBR0MsK0JBQStCLENBQUNMLG9CQUFvQixFQUFFcEIscUJBQXFCLEVBQUVxQix1QkFBdUIsRUFBRUMsa0NBQWtDLENBQUMsRUFDbkpXLGFBQWEsR0FBRyxJQUFJLEVBQ3BCQyxPQUFPLEdBQUcsSUFBSUMsUUFBTyxRQUFBLENBQUNaLElBQUksRUFBRUMsT0FBTyxFQUFFUyxhQUFhLENBQUMsQUFBQztJQUUxRCxPQUFPQyxPQUFPLENBQUM7Q0FDaEI7ZUFFYztJQUNickQsUUFBUSxFQUFSQSxRQUFRO0lBQ1JDLFFBQVEsRUFBUkEsUUFBUTtJQUNSQyxTQUFTLEVBQVRBLFNBQVM7SUFDVEMsU0FBUyxFQUFUQSxTQUFTO0lBQ1RDLFdBQVcsRUFBWEEsV0FBVztJQUNYQyxZQUFZLEVBQVpBLFlBQVk7SUFDWkMsZUFBZSxFQUFmQSxlQUFlO0NBQ2hCOztBQUVELFNBQVNpRCxpQkFBaUIsQ0FBQ3JDLElBQUksRUFBRUMscUJBQXFCLEVBQUU7SUFDdEQsSUFBSXFDLFNBQVMsR0FBRyxJQUFJLEFBQUM7SUFFckIsSUFBSTtRQUNGLElBQU1uQyxZQUFZLEdBQUdaLGdCQUFnQixDQUFDVSxxQkFBcUIsRUFBRUQsSUFBSSxDQUFDLEVBQzVEdUMsY0FBYyxHQUFHeEMsZ0JBQWdCLENBQUNJLFlBQVksQ0FBQyxBQUFDO1FBRXRELElBQUlvQyxjQUFjLEVBQUU7WUFDbEJELFNBQVMsR0FBRyxJQUFJRSxVQUFTLFFBQUEsQ0FBQ3hDLElBQUksQ0FBQyxDQUFDO1NBQ2pDO0tBQ0YsQ0FBQyxPQUFPUSxLQUFLLEVBQUU7SUFDZCxHQUFHO0tBQ0o7SUFFRCxPQUFPOEIsU0FBUyxDQUFDO0NBQ2xCO0FBRUQsU0FBU1osK0JBQStCLENBQUNMLG9CQUFvQixFQUFFcEIscUJBQXFCLEVBQUVxQix1QkFBdUIsRUFBRUMsa0NBQWtDLEVBQUU7SUFDakosSUFBTVIsS0FBSyxHQUFHLEVBQUUsRUFDVjBCLHFCQUFxQixHQUFHcEIsb0JBQW9CLEFBQUMsRUFBRSxHQUFHO0lBRXhEcUIsZ0NBQWdDLENBQUMzQixLQUFLLEVBQUUwQixxQkFBcUIsRUFBRXhDLHFCQUFxQixFQUFFcUIsdUJBQXVCLEVBQUVDLGtDQUFrQyxDQUFDLENBQUM7SUFFbkosSUFBTUUsT0FBTyxHQUFHLElBQUlrQixRQUFPLFFBQUEsQ0FBQzVCLEtBQUssQ0FBQyxBQUFDO0lBRW5DLE9BQU9VLE9BQU8sQ0FBQztDQUNoQjtBQUVELFNBQVNpQixnQ0FBZ0MsQ0FBQzNCLEtBQUssRUFBRTBCLHFCQUFxQixFQUFFeEMscUJBQXFCLEVBQUVxQix1QkFBdUIsRUFBRUMsa0NBQWtDLEVBQUU7SUFDMUosSUFBTXFCLHFCQUFxQixHQUFHckQsZ0JBQWdCLENBQUNVLHFCQUFxQixFQUFFd0MscUJBQXFCLENBQUMsRUFDdEZJLGFBQWEsR0FBRy9DLGFBQWEsQ0FBQzhDLHFCQUFxQixDQUFDLEFBQUM7SUFFM0RDLGFBQWEsQ0FBQzNCLE9BQU8sQ0FBQyxTQUFDNEIsWUFBWSxFQUFLO1FBQ3RDLElBQU1DLHNCQUFzQixHQUFHQyxDQUFBQSxHQUFBQSxLQUFnQixBQUFjLENBQUEsaUJBQWQsQ0FBQ0YsWUFBWSxDQUFDLEVBQ3ZERyx5QkFBeUIsR0FBRyxDQUFDRixzQkFBc0IsRUFDbkRHLDZCQUE2QixHQUFHLENBQUMzQixrQ0FBa0MsRUFDbkU0QixtQ0FBbUMsR0FBRyxDQUFDN0IsdUJBQXVCLEFBQUM7UUFFckUsSUFBSTJCLHlCQUF5QixJQUFJQyw2QkFBNkIsRUFBRTtZQUM5RCxJQUFJRSxLQUFLLEFBQUM7WUFFVixJQUFNcEQsSUFBSSxHQUFHVCxnQkFBZ0IsQ0FBQ2tELHFCQUFxQixFQUFFSyxZQUFZLENBQUMsRUFDNURSLFNBQVMsR0FBR0QsaUJBQWlCLENBQUNyQyxJQUFJLEVBQUVDLHFCQUFxQixDQUFDLEFBQUM7WUFFakUsSUFBSXFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7Z0JBQ3RCLElBQU1lLGFBQWEsR0FBR3JELElBQUksQUFBQyxFQUFDLEdBQUc7Z0JBRS9CLElBQUltRCxtQ0FBbUMsRUFBRTtvQkFDdkNDLEtBQUssR0FBR2QsU0FBUyxDQUFDLENBQUUsR0FBRztvQkFFdkJ2QixLQUFLLENBQUN1QyxJQUFJLENBQUNGLEtBQUssQ0FBQyxDQUFDLENBQUUsR0FBRztvQkFFdkIsSUFBTUcsV0FBVyxHQUFHeEMsS0FBSyxDQUFDeUMsTUFBTSxBQUFDO29CQUVqQyxJQUFJRCxXQUFXLEdBQUdFLFVBQTRCLDZCQUFBLEVBQUU7d0JBQzlDLE1BQU0sSUFBSUMsS0FBSyxDQUFDQyxTQUE2Qyw4Q0FBQSxDQUFDLENBQUE7cUJBQy9EO2lCQUNGO2dCQUVEakIsZ0NBQWdDLENBQUMzQixLQUFLLEVBQUVzQyxhQUFhLEVBQUVwRCxxQkFBcUIsRUFBRXFCLHVCQUF1QixFQUFFQyxrQ0FBa0MsQ0FBQyxDQUFDLENBQUMsR0FBRzthQUNoSixNQUFNO2dCQUNMLElBQU1yQixJQUFJLEdBQUdwQixRQUFRLENBQUNrQixJQUFJLEVBQUVDLHFCQUFxQixDQUFDLEFBQUM7Z0JBRW5ELElBQUlDLElBQUksS0FBSyxJQUFJLEVBQUU7b0JBQ2pCLElBQU0wRCxRQUFRLEdBQUcxRCxJQUFJLENBQUNPLE9BQU8sRUFBRSxFQUN6Qm9ELDBCQUEwQixHQUFHQyxDQUFBQSxHQUFBQSxTQUE0QixBQUFVLENBQUEsNkJBQVYsQ0FBQ0YsUUFBUSxDQUFDLEVBQ25FRyxrQkFBa0IsR0FBR0YsMEJBQTBCLEFBQUMsRUFBRSxHQUFHO29CQUUzRCxJQUFJRSxrQkFBa0IsSUFBSVosbUNBQW1DLEVBQUU7d0JBQzdEQyxLQUFLLEdBQUdsRCxJQUFJLENBQUMsQ0FBQyxHQUFHO3dCQUVqQmEsS0FBSyxDQUFDdUMsSUFBSSxDQUFDRixLQUFLLENBQUMsQ0FBQyxDQUFFLEdBQUc7d0JBRXZCLElBQU1HLFlBQVcsR0FBR3hDLEtBQUssQ0FBQ3lDLE1BQU0sQUFBQzt3QkFFakMsSUFBSUQsWUFBVyxHQUFHRSxVQUE0Qiw2QkFBQSxFQUFFOzRCQUM5QyxNQUFNLElBQUlDLEtBQUssQ0FBQ0MsU0FBNkMsOENBQUEsQ0FBQyxDQUFBO3lCQUMvRDtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDLENBQUM7Q0FDSjtBQUVELFNBQVMzQiw4Q0FBOEMsQ0FBQy9CLHFCQUFxQixFQUFFc0Isa0NBQWtDLEVBQUU7SUFDakgsSUFBSVEsc0JBQXFCLEFBQUM7SUFFMUIsSUFBTWMsYUFBYSxHQUFHL0MsYUFBYSxDQUFDRyxxQkFBcUIsQ0FBQyxBQUFDO0lBRTNEOEIsc0JBQXFCLEdBQUdjLGFBQWEsQ0FBQ21CLE1BQU0sQ0FBQyxTQUFDakMscUJBQXFCLEVBQUVlLFlBQVksRUFBSztRQUNwRixJQUFNbUIsb0JBQW9CLEdBQUcxRSxnQkFBZ0IsQ0FBQ1UscUJBQXFCLEVBQUU2QyxZQUFZLENBQUMsRUFDNUVDLHNCQUFzQixHQUFHQyxDQUFBQSxHQUFBQSxLQUFnQixBQUFjLENBQUEsaUJBQWQsQ0FBQ0YsWUFBWSxDQUFDLEVBQ3ZERyx5QkFBeUIsR0FBRyxDQUFDRixzQkFBc0IsRUFDbkRHLDZCQUE2QixHQUFHLENBQUMzQixrQ0FBa0MsQUFBQztRQUUxRSxJQUFJMEIseUJBQXlCLElBQUlDLDZCQUE2QixFQUFFO1lBQzlELElBQU1nQixpQkFBaUIsR0FBR25FLGdCQUFnQixDQUFDa0Usb0JBQW9CLENBQUMsQUFBQztZQUVqRSxJQUFJQyxpQkFBaUIsRUFBRTtnQkFDckIsSUFBTTdDLG9CQUFvQixHQUFHeUIsWUFBWSxBQUFDLEVBQUUsR0FBRztnQkFFL0NmLHFCQUFxQixDQUFDdUIsSUFBSSxDQUFDakMsb0JBQW9CLENBQUM7YUFDakQ7U0FDRjtRQUVELE9BQU9VLHFCQUFxQixDQUFDO0tBQzlCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxPQUFPQSxzQkFBcUIsQ0FBQztDQUM5QiJ9
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCBta2RpcnAgZnJvbSBcIm1rZGlycFwiO1xyXG5cclxuaW1wb3J0IHsgY2hhcmFjdGVycywgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcclxuXHJcbmltcG9ydCBGaWxlIGZyb20gXCIuLi9maWxlXCI7XHJcbmltcG9ydCBGaWxlcyBmcm9tIFwiLi4vZmlsZXNcIjtcclxuaW1wb3J0IEVudHJpZXMgZnJvbSBcIi4uL2VudHJpZXNcIjtcclxuaW1wb3J0IFByb2plY3QgZnJvbSBcIi4uL3Byb2plY3RcIjtcclxuaW1wb3J0IFJlbGVhc2UgZnJvbSBcIi4uL3JlbGVhc2VcIjtcclxuaW1wb3J0IFByb2plY3RzIGZyb20gXCIuLi9wcm9qZWN0c1wiO1xyXG5pbXBvcnQgRGlyZWN0b3J5IGZyb20gXCIuLi9kaXJlY3RvcnlcIjtcclxuXHJcbmltcG9ydCB7IGlzTmFtZUhpZGRlbk5hbWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcclxuaW1wb3J0IHsgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVBhdGhcIjtcclxuaW1wb3J0IHsgY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIH0gZnJvbSBcIi4uL2ZpbGVcIjtcclxuaW1wb3J0IHsgRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFIH0gZnJvbSBcIi4uL21lc3NhZ2VzXCI7XHJcblxyXG5jb25zdCB7IFBFUklPRF9DSEFSQUNURVIgfSA9IGNoYXJhY3RlcnMsXHJcbiAgICAgIHsgY29uY2F0ZW5hdGVQYXRocywgdG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aCB9ID0gcGF0aFV0aWxpdGllcyxcclxuICAgICAgeyByZWFkRmlsZSwgd3JpdGVGaWxlLCBpc0VudHJ5RmlsZSwgcmVhZERpcmVjdG9yeSwgaXNFbnRyeURpcmVjdG9yeSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgZmlsZSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgICBlbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGlmIChlbnRyeUZpbGUpIHtcclxuICAgICAgbGV0IGNvbnRlbnQgPSByZWFkRmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xyXG5cclxuICAgICAgZmlsZSA9IG5ldyBGaWxlKHBhdGgsIGNvbnRlbnQpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiBmaWxlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgcGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxyXG4gICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKSxcclxuICAgICAgICBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgdG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCA9IHRvcG1vc3REaXJlY3RvcnlQYXRoRnJvbVBhdGgoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgbWtkaXJwLnN5bmModG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHdyaXRlRmlsZShhYnNvbHV0ZVBhdGgsIGNvbnRlbnQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZEZpbGVzKHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBhcnJheSA9IFtdLFxyXG4gICAgICAgIGZpbGVzID0gbmV3IEZpbGVzKGFycmF5KTtcclxuXHJcbiAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgZmlsZXMuYWRkRmlsZShmaWxlKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGVzKGZpbGVzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBmaWxlcy5mb3JFYWNoRmlsZSgoZmlsZSkgPT4ge1xyXG4gICAgc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRQcm9qZWN0KHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgY29uc3QgbmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lLCAgLy8vXHJcbiAgICAgICAgZW50cmllcyA9IGVudHJpZXNGcm9tVG9wbW9zdERpcmVjdG9yeU5hbWUodG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpLFxyXG4gICAgICAgIHByb2plY3QgPSBuZXcgUHJvamVjdChuYW1lLCBlbnRyaWVzKTtcclxuXHJcbiAgcmV0dXJuIHByb2plY3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcywgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gIGxldCBwcm9qZWN0cztcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGFycmF5ID0gW107XHJcblxyXG4gICAgcHJvamVjdHMgPSBuZXcgUHJvamVjdHMoYXJyYXkpO1xyXG5cclxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lcyA9IHRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMuZm9yRWFjaCgodG9wbW9zdERpcmVjdG9yeU5hbWUpID0+IHtcclxuICAgICAgY29uc3QgcHJvamVjdCA9IGxvYWRQcm9qZWN0KHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgICAgIHByb2plY3RzLmFkZFByb2plY3QocHJvamVjdCk7XHJcbiAgICB9KTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgcHJvamVjdHMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHByb2plY3RzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVsZWFzZUZyb21OYW1lKG5hbWUpIHtcclxuICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IG5hbWUsIC8vL1xyXG4gICAgICAgIHByb2plY3RzRGlyZWN0b3J5UGF0aCA9IFBFUklPRF9DSEFSQUNURVIsXHJcbiAgICAgICAgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMgPSB0cnVlLFxyXG4gICAgICAgIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMgPSB0cnVlLFxyXG4gICAgICAgIGVudHJpZXMgPSBlbnRyaWVzRnJvbVRvcG1vc3REaXJlY3RvcnlOYW1lKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSxcclxuICAgICAgICB2ZXJzaW9uTnVtYmVyID0gbnVsbCwgLy8vXHJcbiAgICAgICAgcmVsZWFzZSA9IG5ldyBSZWxlYXNlKG5hbWUsIGVudHJpZXMsIHZlcnNpb25OdW1iZXIpO1xyXG5cclxuICByZXR1cm4gcmVsZWFzZTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIGxvYWRGaWxlLFxyXG4gIHNhdmVGaWxlLFxyXG4gIGxvYWRGaWxlcyxcclxuICBzYXZlRmlsZXMsXHJcbiAgbG9hZFByb2plY3QsXHJcbiAgbG9hZFByb2plY3RzLFxyXG4gIHJlbGVhc2VGcm9tTmFtZVxyXG59O1xyXG5cclxuZnVuY3Rpb24gZGlyZWN0b3J5RnJvbVBhdGgocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IGRpcmVjdG9yeSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgICBlbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICBpZiAoZW50cnlEaXJlY3RvcnkpIHtcclxuICAgICAgZGlyZWN0b3J5ID0gbmV3IERpcmVjdG9yeShwYXRoKTtcclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gZGlyZWN0b3J5O1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbnRyaWVzRnJvbVRvcG1vc3REaXJlY3RvcnlOYW1lKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgY29uc3QgYXJyYXkgPSBbXSxcclxuICAgICAgICByZWxhdGl2ZURpcmVjdG9yeVBhdGggPSB0b3Btb3N0RGlyZWN0b3J5TmFtZTsgIC8vL1xyXG5cclxuICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChhcnJheSwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKTtcclxuXHJcbiAgY29uc3QgZW50cmllcyA9IG5ldyBFbnRyaWVzKGFycmF5KTtcclxuXHJcbiAgcmV0dXJuIGVudHJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGFycmF5LCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMsIGRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICBjb25zdCBhYnNvbHV0ZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICBzdWJFbnRyeU5hbWVzID0gcmVhZERpcmVjdG9yeShhYnNvbHV0ZURpcmVjdG9yeVBhdGgpO1xyXG5cclxuICBzdWJFbnRyeU5hbWVzLmZvckVhY2goKHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3Qgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgPSAhc3ViRW50cnlOYW1lSGlkZGVuTmFtZSxcclxuICAgICAgICAgIGxvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzID0gIWRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMsXHJcbiAgICAgICAgICBsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3RvcmllcyA9ICFsb2FkT25seVJlY29nbmlzZWRGaWxlcztcclxuXHJcbiAgICBpZiAoc3ViRW50cnlOYW1lTm90SGlkZGVuTmFtZSB8fCBsb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gICAgICBsZXQgZW50cnk7XHJcblxyXG4gICAgICBjb25zdCBwYXRoID0gY29uY2F0ZW5hdGVQYXRocyhyZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICAgIGRpcmVjdG9yeSA9IGRpcmVjdG9yeUZyb21QYXRoKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoZGlyZWN0b3J5ICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgZGlyZWN0b3J5UGF0aCA9IHBhdGg7IC8vL1xyXG5cclxuICAgICAgICBpZiAobG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgIGVudHJ5ID0gZGlyZWN0b3J5OyAgLy8vXHJcblxyXG4gICAgICAgICAgYXJyYXkucHVzaChlbnRyeSk7ICAvLy9cclxuXHJcbiAgICAgICAgICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICBpZiAoYXJyYXlMZW5ndGggPiBFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihFTlRSSUVTX01BWElNVU1fQVJSQVlfTEVOR1RIX0VYQ0VFREVEX01FU1NBR0UpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChhcnJheSwgZGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcywgZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3Rvcmllcyk7IC8vL1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKSxcclxuICAgICAgICAgICAgICAgIGZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoID0gaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aChmaWxlUGF0aCksXHJcbiAgICAgICAgICAgICAgICBmaWxlUmVjb2duaXNlZEZpbGUgPSBmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aDsgIC8vL1xyXG5cclxuICAgICAgICAgIGlmIChmaWxlUmVjb2duaXNlZEZpbGUgfHwgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgICAgZW50cnkgPSBmaWxlOyAvLy9cclxuXHJcbiAgICAgICAgICAgIGFycmF5LnB1c2goZW50cnkpOyAgLy8vXHJcblxyXG4gICAgICAgICAgICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIGlmIChhcnJheUxlbmd0aCA+IEVOVFJJRVNfTUFYSU1VTV9BUlJBWV9MRU5HVEgpIHtcclxuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBkb05vdExvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgbGV0IHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxuXHJcbiAgY29uc3Qgc3ViRW50cnlOYW1lcyA9IHJlYWREaXJlY3RvcnkocHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgdG9wbW9zdERpcmVjdG9yeU5hbWVzID0gc3ViRW50cnlOYW1lcy5yZWR1Y2UoKHRvcG1vc3REaXJlY3RvcnlOYW1lcywgc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVN1YkVudHJ5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgPSAhc3ViRW50cnlOYW1lSGlkZGVuTmFtZSxcclxuICAgICAgICAgIGxvYWRIaWRkZW5GaWxlc0FuZERpcmVjdG9yaWVzID0gIWRvTm90TG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXM7XHJcblxyXG4gICAgaWYgKHN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUgfHwgbG9hZEhpZGRlbkZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgY29uc3Qgc3ViRW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlU3ViRW50cnlQYXRoKTtcclxuXHJcbiAgICAgIGlmIChzdWJFbnRyeURpcmVjdG9yeSkge1xyXG4gICAgICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gc3ViRW50cnlOYW1lOyAgLy8vXHJcblxyXG4gICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lcy5wdXNoKHRvcG1vc3REaXJlY3RvcnlOYW1lKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcbn1cclxuIl0sIm5hbWVzIjpbImxvYWRGaWxlIiwic2F2ZUZpbGUiLCJsb2FkRmlsZXMiLCJzYXZlRmlsZXMiLCJsb2FkUHJvamVjdCIsImxvYWRQcm9qZWN0cyIsInJlbGVhc2VGcm9tTmFtZSIsIlBFUklPRF9DSEFSQUNURVIiLCJjaGFyYWN0ZXJzIiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJ0b3Btb3N0RGlyZWN0b3J5UGF0aEZyb21QYXRoIiwicmVhZEZpbGUiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwid3JpdGVGaWxlIiwiaXNFbnRyeUZpbGUiLCJyZWFkRGlyZWN0b3J5IiwiaXNFbnRyeURpcmVjdG9yeSIsInBhdGgiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJmaWxlIiwiYWJzb2x1dGVQYXRoIiwiZW50cnlGaWxlIiwiY29udGVudCIsImNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZSIsIkZpbGUiLCJlcnJvciIsImdldFBhdGgiLCJnZXRDb250ZW50IiwidG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCIsIm1rZGlycCIsInN5bmMiLCJwYXRocyIsImFycmF5IiwiZmlsZXMiLCJGaWxlcyIsImZvckVhY2giLCJhZGRGaWxlIiwiZm9yRWFjaEZpbGUiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZSIsImxvYWRPbmx5UmVjb2duaXNlZEZpbGVzIiwiZG9Ob3RMb2FkSGlkZGVuRmlsZXNBbmREaXJlY3RvcmllcyIsIm5hbWUiLCJlbnRyaWVzIiwiZW50cmllc0Zyb21Ub3Btb3N0RGlyZWN0b3J5TmFtZSIsInByb2plY3QiLCJQcm9qZWN0IiwicHJvamVjdHMiLCJQcm9qZWN0cyIsInRvcG1vc3REaXJlY3RvcnlOYW1lcyIsInRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJhZGRQcm9qZWN0IiwidmVyc2lvbk51bWJlciIsInJlbGVhc2UiLCJSZWxlYXNlIiwiZGlyZWN0b3J5RnJvbVBhdGgiLCJkaXJlY3RvcnkiLCJlbnRyeURpcmVjdG9yeSIsIkRpcmVjdG9yeSIsInJlbGF0aXZlRGlyZWN0b3J5UGF0aCIsImVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoIiwiRW50cmllcyIsImFic29sdXRlRGlyZWN0b3J5UGF0aCIsInN1YkVudHJ5TmFtZXMiLCJzdWJFbnRyeU5hbWUiLCJzdWJFbnRyeU5hbWVIaWRkZW5OYW1lIiwiaXNOYW1lSGlkZGVuTmFtZSIsInN1YkVudHJ5TmFtZU5vdEhpZGRlbk5hbWUiLCJsb2FkSGlkZGVuRmlsZXNBbmREaXJlY3RvcmllcyIsImxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzIiwiZW50cnkiLCJkaXJlY3RvcnlQYXRoIiwicHVzaCIsImFycmF5TGVuZ3RoIiwibGVuZ3RoIiwiRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSCIsIkVycm9yIiwiRU5UUklFU19NQVhJTVVNX0FSUkFZX0xFTkdUSF9FWENFRURFRF9NRVNTQUdFIiwiZmlsZVBhdGgiLCJmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCIsImlzRmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgiLCJmaWxlUmVjb2duaXNlZEZpbGUiLCJyZWR1Y2UiLCJhYnNv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
|
package/lib/utilities/tokens.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
exports.significantTokensFromTokens = significantTokensFromTokens;
|
|
6
6
|
function significantTokensFromTokens(tokens) {
|
|
7
|
-
var
|
|
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
|
|
15
|
+
return significantTokens;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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
|
+
"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.
|
|
16
|
-
"occam-parsers": "^16.0.
|
|
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;
|
package/bin/action/login.js
DELETED
|
@@ -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;
|
package/bin/action/logout.js
DELETED
|
@@ -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;
|
package/bin/action/register.js
DELETED
|
@@ -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;
|
package/bin/action/remove.js
DELETED
|
@@ -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;
|