occam-file-system 6.0.53 → 6.0.57

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.
@@ -18,7 +18,7 @@ _export(exports, {
18
18
  });
19
19
  var _pathMap = require("./utilities/pathMap");
20
20
  var _necessary = require("necessary");
21
- var concatenatePaths = _necessary.pathUtilities.concatenatePaths, createFile = _necessary.fileSystemUtilities.createFile, createDirectory = _necessary.fileSystemUtilities.createDirectory, checkEntryExists = _necessary.fileSystemUtilities.checkEntryExists;
21
+ var concatenatePaths = _necessary.pathUtilities.concatenatePaths, createFile = _necessary.fileSystemUtilities.createFile, createDirectory = _necessary.fileSystemUtilities.createDirectory, checkFileExists = _necessary.fileSystemUtilities.checkEntryExists, checkDirectoryExists = _necessary.fileSystemUtilities.checkEntryExists;
22
22
  function createProjectEntries(projectsDirectoryPath, json, callback) {
23
23
  var pathMaps = json.pathMaps;
24
24
  pathMaps.forEach(function(pathMap) {
@@ -30,16 +30,15 @@ function createProjectEntries(projectsDirectoryPath, json, callback) {
30
30
  callback(json);
31
31
  }
32
32
  function createProjectEntry(projectsDirectoryPath, pathMap) {
33
- var targetEntryPath = pathMap.targetEntryPath, absoluteTargetEntryPath = concatenatePaths(projectsDirectoryPath, targetEntryPath), targetEntryExists = checkEntryExists(absoluteTargetEntryPath);
34
- if (targetEntryExists) {
35
- (0, _pathMap.nullifyTargetEntryPath)(pathMap);
36
- return;
37
- }
38
33
  var entryDirectory = pathMap.entryDirectory;
39
34
  entryDirectory ? createProjectDirectory(projectsDirectoryPath, pathMap) : createProjectFile(projectsDirectoryPath, pathMap);
40
35
  }
41
36
  function createProjectFile(projectsDirectoryPath, pathMap) {
42
- var targetEntryPath = pathMap.targetEntryPath, targetFilePath = targetEntryPath, absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath);
37
+ var targetEntryPath = pathMap.targetEntryPath, targetFilePath = targetEntryPath, absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath), targetFileExists = checkFileExists(absoluteTargetFilePath);
38
+ if (targetFileExists) {
39
+ (0, _pathMap.nullifyTargetEntryPath)(pathMap);
40
+ return;
41
+ }
43
42
  try {
44
43
  var filePath = absoluteTargetFilePath; ///
45
44
  createFile(filePath);
@@ -48,7 +47,11 @@ function createProjectFile(projectsDirectoryPath, pathMap) {
48
47
  }
49
48
  }
50
49
  function createProjectDirectory(projectsDirectoryPath, pathMap) {
51
- var targetEntryPath = pathMap.targetEntryPath, targetDirectoryPath = targetEntryPath, absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath);
50
+ var targetEntryPath = pathMap.targetEntryPath, targetDirectoryPath = targetEntryPath, absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath), targetDirectoryExists = checkDirectoryExists(absoluteTargetDirectoryPath);
51
+ if (targetDirectoryExists) {
52
+ (0, _pathMap.nullifyTargetEntryPath)(pathMap);
53
+ return;
54
+ }
52
55
  try {
53
56
  var directoryPath = absoluteTargetDirectoryPath; ///
54
57
  createDirectory(directoryPath);
@@ -57,4 +60,4 @@ function createProjectDirectory(projectsDirectoryPath, pathMap) {
57
60
  }
58
61
  }
59
62
 
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVQcm9qZWN0RW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbnVsbGlmeVRhcmdldEVudHJ5UGF0aCB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoTWFwXCI7XG5pbXBvcnQgeyBwYXRoVXRpbGl0aWVzLCBmaWxlU3lzdGVtVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGNvbmNhdGVuYXRlUGF0aHMgfSA9IHBhdGhVdGlsaXRpZXMsXG4gICAgICB7IGNyZWF0ZUZpbGUsIGNyZWF0ZURpcmVjdG9yeSwgY2hlY2tFbnRyeUV4aXN0cyB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUHJvamVjdEVudHJpZXMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBqc29uLCBjYWxsYmFjaykge1xuICBjb25zdCB7IHBhdGhNYXBzIH0gPSBqc29uO1xuXG4gIHBhdGhNYXBzLmZvckVhY2goKHBhdGhNYXApID0+IHtcbiAgICBjcmVhdGVQcm9qZWN0RW50cnkocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwKTtcbiAgfSk7XG5cbiAganNvbiA9IHtcbiAgICBwYXRoTWFwc1xuICB9O1xuXG4gIGNhbGxiYWNrKGpzb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvamVjdEVudHJ5KHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCkge1xuICBjb25zdCB7IHRhcmdldEVudHJ5UGF0aCB9ID0gcGF0aE1hcCxcbiAgICAgICAgYWJzb2x1dGVUYXJnZXRFbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKSxcbiAgICAgICAgdGFyZ2V0RW50cnlFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGFic29sdXRlVGFyZ2V0RW50cnlQYXRoKTtcblxuICBpZiAodGFyZ2V0RW50cnlFeGlzdHMpIHtcbiAgICBudWxsaWZ5VGFyZ2V0RW50cnlQYXRoKHBhdGhNYXApO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyBlbnRyeURpcmVjdG9yeSB9ID0gcGF0aE1hcDtcblxuICBlbnRyeURpcmVjdG9yeSA/XG4gICAgY3JlYXRlUHJvamVjdERpcmVjdG9yeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXApIDpcbiAgICAgIGNyZWF0ZVByb2plY3RGaWxlKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVByb2plY3RGaWxlKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCkge1xuICBjb25zdCB7IHRhcmdldEVudHJ5UGF0aCB9ID0gcGF0aE1hcCxcbiAgICAgICAgdGFyZ2V0RmlsZVBhdGggPSB0YXJnZXRFbnRyeVBhdGgsIC8vL1xuICAgICAgICBhYnNvbHV0ZVRhcmdldEZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRhcmdldEZpbGVQYXRoKTtcblxuICB0cnkge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gYWJzb2x1dGVUYXJnZXRGaWxlUGF0aDsgIC8vL1xuXG4gICAgY3JlYXRlRmlsZShmaWxlUGF0aCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbnVsbGlmeVRhcmdldEVudHJ5UGF0aChwYXRoTWFwKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVQcm9qZWN0RGlyZWN0b3J5KHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCkge1xuICBjb25zdCB7IHRhcmdldEVudHJ5UGF0aCB9ID0gcGF0aE1hcCxcbiAgICAgICAgdGFyZ2V0RGlyZWN0b3J5UGF0aCA9IHRhcmdldEVudHJ5UGF0aCwgLy8vXG4gICAgICAgIGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0YXJnZXREaXJlY3RvcnlQYXRoKTtcblxuICB0cnkge1xuICAgIGNvbnN0IGRpcmVjdG9yeVBhdGggPSBhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGg7ICAvLy9cblxuICAgIGNyZWF0ZURpcmVjdG9yeShkaXJlY3RvcnlQYXRoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBudWxsaWZ5VGFyZ2V0RW50cnlQYXRoKHBhdGhNYXApO1xuICB9XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlUHJvamVjdEVudHJ5IiwiY3JlYXRlUHJvamVjdEVudHJpZXMiLCJjb25jYXRlbmF0ZVBhdGhzIiwicGF0aFV0aWxpdGllcyIsImNyZWF0ZUZpbGUiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwiY3JlYXRlRGlyZWN0b3J5IiwiY2hlY2tFbnRyeUV4aXN0cyIsInByb2plY3RzRGlyZWN0b3J5UGF0aCIsImpzb24iLCJjYWxsYmFjayIsInBhdGhNYXBzIiwiZm9yRWFjaCIsInBhdGhNYXAiLCJ0YXJnZXRFbnRyeVBhdGgiLCJhYnNvbHV0ZVRhcmdldEVudHJ5UGF0aCIsInRhcmdldEVudHJ5RXhpc3RzIiwibnVsbGlmeVRhcmdldEVudHJ5UGF0aCIsImVudHJ5RGlyZWN0b3J5IiwiY3JlYXRlUHJvamVjdERpcmVjdG9yeSIsImNyZWF0ZVByb2plY3RGaWxlIiwidGFyZ2V0RmlsZVBhdGgiLCJhYnNvbHV0ZVRhcmdldEZpbGVQYXRoIiwiZmlsZVBhdGgiLCJlcnJvciIsInRhcmdldERpcmVjdG9yeVBhdGgiLCJhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgiLCJkaXJlY3RvcnlQYXRoIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFzQmdCQSxrQkFBa0I7ZUFBbEJBOztJQWRoQixPQVlDO2VBWnVCQzs7O3VCQU5lO3lCQUNZO0FBRW5ELElBQU0sQUFBRUMsbUJBQXFCQyx3QkFBYSxDQUFsQ0Qsa0JBQ0FFLGFBQWtEQyw4QkFBbUIsQ0FBckVELFlBQVlFLGtCQUFzQ0QsOEJBQW1CLENBQXpEQyxpQkFBaUJDLG1CQUFxQkYsOEJBQW1CLENBQXhDRTtBQUV0QixTQUFTTixxQkFBcUJPLHFCQUFxQixFQUFFQyxJQUFJLEVBQUVDLFFBQVE7SUFDaEYsSUFBTSxBQUFFQyxXQUFhRixLQUFiRTtJQUVSQSxTQUFTQyxPQUFPLENBQUMsU0FBQ0M7UUFDaEJiLG1CQUFtQlEsdUJBQXVCSztJQUM1QztJQUVBSixPQUFPO1FBQ0xFLFVBQUFBO0lBQ0Y7SUFFQUQsU0FBU0Q7QUFDWDtBQUVPLFNBQVNULG1CQUFtQlEscUJBQXFCLEVBQUVLLE9BQU87SUFDL0QsSUFBTSxBQUFFQyxrQkFBb0JELFFBQXBCQyxpQkFDRkMsMEJBQTBCYixpQkFBaUJNLHVCQUF1Qk0sa0JBQ2xFRSxvQkFBb0JULGlCQUFpQlE7SUFFM0MsSUFBSUMsbUJBQW1CO1FBQ3JCQyxJQUFBQSwrQkFBc0IsRUFBQ0o7UUFFdkI7SUFDRjtJQUVBLElBQU0sQUFBRUssaUJBQW1CTCxRQUFuQks7SUFFUkEsaUJBQ0VDLHVCQUF1QlgsdUJBQXVCSyxXQUM1Q08sa0JBQWtCWix1QkFBdUJLO0FBQy9DO0FBRUEsU0FBU08sa0JBQWtCWixxQkFBcUIsRUFBRUssT0FBTztJQUN2RCxJQUFNLEFBQUVDLGtCQUFvQkQsUUFBcEJDLGlCQUNGTyxpQkFBaUJQLGlCQUNqQlEseUJBQXlCcEIsaUJBQWlCTSx1QkFBdUJhO0lBRXZFLElBQUk7UUFDRixJQUFNRSxXQUFXRCx3QkFBeUIsR0FBRztRQUU3Q2xCLFdBQVdtQjtJQUNiLEVBQUUsT0FBT0MsT0FBTztRQUNkUCxJQUFBQSwrQkFBc0IsRUFBQ0o7SUFDekI7QUFDRjtBQUVBLFNBQVNNLHVCQUF1QlgscUJBQXFCLEVBQUVLLE9BQU87SUFDNUQsSUFBTSxBQUFFQyxrQkFBb0JELFFBQXBCQyxpQkFDRlcsc0JBQXNCWCxpQkFDdEJZLDhCQUE4QnhCLGlCQUFpQk0sdUJBQXVCaUI7SUFFNUUsSUFBSTtRQUNGLElBQU1FLGdCQUFnQkQsNkJBQThCLEdBQUc7UUFFdkRwQixnQkFBZ0JxQjtJQUNsQixFQUFFLE9BQU9ILE9BQU87UUFDZFAsSUFBQUEsK0JBQXNCLEVBQUNKO0lBQ3pCO0FBQ0YifQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVQcm9qZWN0RW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbnVsbGlmeVRhcmdldEVudHJ5UGF0aCB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoTWFwXCI7XG5pbXBvcnQgeyBwYXRoVXRpbGl0aWVzLCBmaWxlU3lzdGVtVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGNvbmNhdGVuYXRlUGF0aHMgfSA9IHBhdGhVdGlsaXRpZXMsXG4gICAgICB7IGNyZWF0ZUZpbGUsIGNyZWF0ZURpcmVjdG9yeSwgY2hlY2tFbnRyeUV4aXN0czogY2hlY2tGaWxlRXhpc3RzLCBjaGVja0VudHJ5RXhpc3RzOiBjaGVja0RpcmVjdG9yeUV4aXN0cyB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUHJvamVjdEVudHJpZXMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBqc29uLCBjYWxsYmFjaykge1xuICBjb25zdCB7IHBhdGhNYXBzIH0gPSBqc29uO1xuXG4gIHBhdGhNYXBzLmZvckVhY2goKHBhdGhNYXApID0+IHtcbiAgICBjcmVhdGVQcm9qZWN0RW50cnkocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwKTtcbiAgfSk7XG5cbiAganNvbiA9IHtcbiAgICBwYXRoTWFwc1xuICB9O1xuXG4gIGNhbGxiYWNrKGpzb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvamVjdEVudHJ5KHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCkge1xuICBjb25zdCB7IGVudHJ5RGlyZWN0b3J5IH0gPSBwYXRoTWFwO1xuXG4gIGVudHJ5RGlyZWN0b3J5ID9cbiAgICBjcmVhdGVQcm9qZWN0RGlyZWN0b3J5KHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCkgOlxuICAgICAgY3JlYXRlUHJvamVjdEZpbGUocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlUHJvamVjdEZpbGUocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwKSB7XG4gIGNvbnN0IHsgdGFyZ2V0RW50cnlQYXRoIH0gPSBwYXRoTWFwLFxuICAgICAgICB0YXJnZXRGaWxlUGF0aCA9IHRhcmdldEVudHJ5UGF0aCwgLy8vXG4gICAgICAgIGFic29sdXRlVGFyZ2V0RmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdGFyZ2V0RmlsZVBhdGgpLFxuICAgICAgICB0YXJnZXRGaWxlRXhpc3RzID0gY2hlY2tGaWxlRXhpc3RzKGFic29sdXRlVGFyZ2V0RmlsZVBhdGgpO1xuXG4gIGlmICh0YXJnZXRGaWxlRXhpc3RzKSB7XG4gICAgbnVsbGlmeVRhcmdldEVudHJ5UGF0aChwYXRoTWFwKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgZmlsZVBhdGggPSBhYnNvbHV0ZVRhcmdldEZpbGVQYXRoOyAgLy8vXG5cbiAgICBjcmVhdGVGaWxlKGZpbGVQYXRoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBudWxsaWZ5VGFyZ2V0RW50cnlQYXRoKHBhdGhNYXApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVByb2plY3REaXJlY3RvcnkocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwKSB7XG4gIGNvbnN0IHsgdGFyZ2V0RW50cnlQYXRoIH0gPSBwYXRoTWFwLFxuICAgICAgICB0YXJnZXREaXJlY3RvcnlQYXRoID0gdGFyZ2V0RW50cnlQYXRoLCAvLy9cbiAgICAgICAgYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRhcmdldERpcmVjdG9yeVBhdGgpLFxuICAgICAgICB0YXJnZXREaXJlY3RvcnlFeGlzdHMgPSBjaGVja0RpcmVjdG9yeUV4aXN0cyhhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICh0YXJnZXREaXJlY3RvcnlFeGlzdHMpIHtcbiAgICBudWxsaWZ5VGFyZ2V0RW50cnlQYXRoKHBhdGhNYXApO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBkaXJlY3RvcnlQYXRoID0gYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoOyAgLy8vXG5cbiAgICBjcmVhdGVEaXJlY3RvcnkoZGlyZWN0b3J5UGF0aCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbnVsbGlmeVRhcmdldEVudHJ5UGF0aChwYXRoTWFwKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVByb2plY3RFbnRyeSIsImNyZWF0ZVByb2plY3RFbnRyaWVzIiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJjcmVhdGVGaWxlIiwiZmlsZVN5c3RlbVV0aWxpdGllcyIsImNyZWF0ZURpcmVjdG9yeSIsImNoZWNrRW50cnlFeGlzdHMiLCJjaGVja0ZpbGVFeGlzdHMiLCJjaGVja0RpcmVjdG9yeUV4aXN0cyIsInByb2plY3RzRGlyZWN0b3J5UGF0aCIsImpzb24iLCJjYWxsYmFjayIsInBhdGhNYXBzIiwiZm9yRWFjaCIsInBhdGhNYXAiLCJlbnRyeURpcmVjdG9yeSIsImNyZWF0ZVByb2plY3REaXJlY3RvcnkiLCJjcmVhdGVQcm9qZWN0RmlsZSIsInRhcmdldEVudHJ5UGF0aCIsInRhcmdldEZpbGVQYXRoIiwiYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCIsInRhcmdldEZpbGVFeGlzdHMiLCJudWxsaWZ5VGFyZ2V0RW50cnlQYXRoIiwiZmlsZVBhdGgiLCJlcnJvciIsInRhcmdldERpcmVjdG9yeVBhdGgiLCJhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgiLCJ0YXJnZXREaXJlY3RvcnlFeGlzdHMiLCJkaXJlY3RvcnlQYXRoIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFzQmdCQSxrQkFBa0I7ZUFBbEJBOztJQWRoQixPQVlDO2VBWnVCQzs7O3VCQU5lO3lCQUNZO0FBRW5ELElBQU0sQUFBRUMsbUJBQXFCQyx3QkFBYSxDQUFsQ0Qsa0JBQ0FFLGFBQTJHQyw4QkFBbUIsQ0FBOUhELFlBQVlFLGtCQUErRkQsOEJBQW1CLENBQWxIQyxpQkFBaUJDLEFBQWtCQyxrQkFBNERILDhCQUFtQixDQUFqR0Usa0JBQW1DQSxBQUFrQkUsdUJBQXlCSiw4QkFBbUIsQ0FBOURFO0FBRXpELFNBQVNOLHFCQUFxQlMscUJBQXFCLEVBQUVDLElBQUksRUFBRUMsUUFBUTtJQUNoRixJQUFNLEFBQUVDLFdBQWFGLEtBQWJFO0lBRVJBLFNBQVNDLE9BQU8sQ0FBQyxTQUFDQztRQUNoQmYsbUJBQW1CVSx1QkFBdUJLO0lBQzVDO0lBRUFKLE9BQU87UUFDTEUsVUFBQUE7SUFDRjtJQUVBRCxTQUFTRDtBQUNYO0FBRU8sU0FBU1gsbUJBQW1CVSxxQkFBcUIsRUFBRUssT0FBTztJQUMvRCxJQUFNLEFBQUVDLGlCQUFtQkQsUUFBbkJDO0lBRVJBLGlCQUNFQyx1QkFBdUJQLHVCQUF1QkssV0FDNUNHLGtCQUFrQlIsdUJBQXVCSztBQUMvQztBQUVBLFNBQVNHLGtCQUFrQlIscUJBQXFCLEVBQUVLLE9BQU87SUFDdkQsSUFBTSxBQUFFSSxrQkFBb0JKLFFBQXBCSSxpQkFDRkMsaUJBQWlCRCxpQkFDakJFLHlCQUF5Qm5CLGlCQUFpQlEsdUJBQXVCVSxpQkFDakVFLG1CQUFtQmQsZ0JBQWdCYTtJQUV6QyxJQUFJQyxrQkFBa0I7UUFDcEJDLElBQUFBLCtCQUFzQixFQUFDUjtRQUV2QjtJQUNGO0lBRUEsSUFBSTtRQUNGLElBQU1TLFdBQVdILHdCQUF5QixHQUFHO1FBRTdDakIsV0FBV29CO0lBQ2IsRUFBRSxPQUFPQyxPQUFPO1FBQ2RGLElBQUFBLCtCQUFzQixFQUFDUjtJQUN6QjtBQUNGO0FBRUEsU0FBU0UsdUJBQXVCUCxxQkFBcUIsRUFBRUssT0FBTztJQUM1RCxJQUFNLEFBQUVJLGtCQUFvQkosUUFBcEJJLGlCQUNGTyxzQkFBc0JQLGlCQUN0QlEsOEJBQThCekIsaUJBQWlCUSx1QkFBdUJnQixzQkFDdEVFLHdCQUF3Qm5CLHFCQUFxQmtCO0lBRW5ELElBQUlDLHVCQUF1QjtRQUN6QkwsSUFBQUEsK0JBQXNCLEVBQUNSO1FBRXZCO0lBQ0Y7SUFFQSxJQUFJO1FBQ0YsSUFBTWMsZ0JBQWdCRiw2QkFBOEIsR0FBRztRQUV2RHJCLGdCQUFnQnVCO0lBQ2xCLEVBQUUsT0FBT0osT0FBTztRQUNkRixJQUFBQSwrQkFBc0IsRUFBQ1I7SUFDekI7QUFDRiJ9
@@ -17,8 +17,9 @@ _export(exports, {
17
17
  }
18
18
  });
19
19
  var _necessary = require("necessary");
20
+ var _removeProjectEntries = require("./removeProjectEntries");
20
21
  var _pathMap = require("./utilities/pathMap");
21
- var concatenatePaths = _necessary.pathUtilities.concatenatePaths, moveEntry = _necessary.fileSystemUtilities.moveEntry, checkEntryExists = _necessary.fileSystemUtilities.checkEntryExists, isDirectoryEmpty = _necessary.fileSystemUtilities.isDirectoryEmpty;
22
+ var concatenatePaths = _necessary.pathUtilities.concatenatePaths, moveEntry = _necessary.fileSystemUtilities.moveEntry, isDirectoryEmpty = _necessary.fileSystemUtilities.isDirectoryEmpty, checkEntryExists = _necessary.fileSystemUtilities.checkEntryExists, checkFileExists = _necessary.fileSystemUtilities.checkEntryExists, checkDirectoryExists = _necessary.fileSystemUtilities.checkEntryExists;
22
23
  function moveProjectEntries(projectsDirectoryPath, json, callback) {
23
24
  var pathMaps = json.pathMaps;
24
25
  pathMaps.forEach(function(pathMap) {
@@ -34,11 +35,6 @@ function moveProjectEntry(projectsDirectoryPath, pathMap) {
34
35
  if (targetEntryPath === null) {
35
36
  return;
36
37
  }
37
- var absoluteTargetEntryPath = concatenatePaths(projectsDirectoryPath, targetEntryPath), targetEntryExists = checkEntryExists(absoluteTargetEntryPath);
38
- if (targetEntryExists) {
39
- (0, _pathMap.nullifyEntryPaths)(pathMap);
40
- return;
41
- }
42
38
  var sourceEntryPath = pathMap.sourceEntryPath, absoluteSourceEntryPath = concatenatePaths(projectsDirectoryPath, sourceEntryPath), sourceEntryExists = checkEntryExists(absoluteSourceEntryPath);
43
39
  if (!sourceEntryExists) {
44
40
  (0, _pathMap.nullifyTargetEntryPath)(pathMap);
@@ -48,7 +44,11 @@ function moveProjectEntry(projectsDirectoryPath, pathMap) {
48
44
  entryDirectory ? moveProjectDirectory(projectsDirectoryPath, pathMap) : moveProjectFile(projectsDirectoryPath, pathMap);
49
45
  }
50
46
  function moveProjectFile(projectsDirectoryPath, pathMap) {
51
- var sourceEntryPath = pathMap.sourceEntryPath, targetEntryPath = pathMap.targetEntryPath, sourceFilePath = sourceEntryPath, targetFilePath = targetEntryPath, absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath), absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath);
47
+ var sourceEntryPath = pathMap.sourceEntryPath, targetEntryPath = pathMap.targetEntryPath, sourceFilePath = sourceEntryPath, targetFilePath = targetEntryPath, absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath), absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath), targetFileExists = checkFileExists(absoluteTargetFilePath);
48
+ if (targetFileExists) {
49
+ (0, _pathMap.nullifyEntryPaths)(pathMap);
50
+ return;
51
+ }
52
52
  try {
53
53
  var oldEntryPath = absoluteSourceFilePath, newEntryPath = absoluteTargetFilePath; ///
54
54
  moveEntry(oldEntryPath, newEntryPath);
@@ -57,11 +57,15 @@ function moveProjectFile(projectsDirectoryPath, pathMap) {
57
57
  }
58
58
  }
59
59
  function moveProjectDirectory(projectsDirectoryPath, pathMap) {
60
- var sourceEntryPath = pathMap.sourceEntryPath, targetEntryPath = pathMap.targetEntryPath, sourceDirectoryPath = sourceEntryPath, targetDirectoryPath = targetEntryPath, absoluteSourceDirectoryPath = concatenatePaths(projectsDirectoryPath, sourceDirectoryPath), absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath), directoryEmpty = isDirectoryEmpty(absoluteSourceDirectoryPath);
60
+ var sourceEntryPath = pathMap.sourceEntryPath, targetEntryPath = pathMap.targetEntryPath, sourceDirectoryPath = sourceEntryPath, targetDirectoryPath = targetEntryPath, absoluteSourceDirectoryPath = concatenatePaths(projectsDirectoryPath, sourceDirectoryPath), absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath), targetDirectoryExists = checkDirectoryExists(absoluteTargetDirectoryPath), directoryEmpty = isDirectoryEmpty(absoluteSourceDirectoryPath);
61
61
  if (!directoryEmpty) {
62
62
  (0, _pathMap.nullifyEntryPaths)(pathMap);
63
63
  return;
64
64
  }
65
+ if (targetDirectoryExists) {
66
+ (0, _removeProjectEntries.removeProjectEntry)(projectsDirectoryPath, pathMap);
67
+ return;
68
+ }
65
69
  try {
66
70
  var oldEntryPath = absoluteSourceDirectoryPath, newEntryPath = absoluteTargetDirectoryPath; ///
67
71
  moveEntry(oldEntryPath, newEntryPath);
@@ -70,4 +74,4 @@ function moveProjectDirectory(projectsDirectoryPath, pathMap) {
70
74
  }
71
75
  }
72
76
 
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tb3ZlUHJvamVjdEVudHJpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHBhdGhVdGlsaXRpZXMsIGZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IG51bGxpZnlFbnRyeVBhdGhzLCBudWxsaWZ5VGFyZ2V0RW50cnlQYXRoIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BhdGhNYXBcIjtcblxuY29uc3QgeyBjb25jYXRlbmF0ZVBhdGhzIH0gPSBwYXRoVXRpbGl0aWVzLFxuICAgICAgeyBtb3ZlRW50cnksIGNoZWNrRW50cnlFeGlzdHMsIGlzRGlyZWN0b3J5RW1wdHkgfSA9IGZpbGVTeXN0ZW1VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1vdmVQcm9qZWN0RW50cmllcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGpzb24sIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHsgcGF0aE1hcHMgfSA9IGpzb247XG5cbiAgcGF0aE1hcHMuZm9yRWFjaCgocGF0aE1hcCkgPT4ge1xuICAgIG1vdmVQcm9qZWN0RW50cnkocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwKTtcbiAgfSk7XG5cbiAganNvbiA9IHtcbiAgICBwYXRoTWFwc1xuICB9O1xuXG4gIGNhbGxiYWNrKGpzb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW92ZVByb2plY3RFbnRyeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXApIHtcbiAgY29uc3QgeyB0YXJnZXRFbnRyeVBhdGggfSA9IHBhdGhNYXA7XG5cbiAgaWYgKHRhcmdldEVudHJ5UGF0aCA9PT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGFic29sdXRlVGFyZ2V0RW50cnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRhcmdldEVudHJ5UGF0aCksXG4gICAgICAgIHRhcmdldEVudHJ5RXhpc3RzID0gY2hlY2tFbnRyeUV4aXN0cyhhYnNvbHV0ZVRhcmdldEVudHJ5UGF0aCk7XG5cbiAgaWYgKHRhcmdldEVudHJ5RXhpc3RzKSB7XG4gICAgbnVsbGlmeUVudHJ5UGF0aHMocGF0aE1hcCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IHNvdXJjZUVudHJ5UGF0aCB9ID0gcGF0aE1hcCxcbiAgICAgICAgYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRW50cnlQYXRoKSxcbiAgICAgICAgc291cmNlRW50cnlFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGFic29sdXRlU291cmNlRW50cnlQYXRoKTtcblxuICBpZiAoIXNvdXJjZUVudHJ5RXhpc3RzKSB7XG4gICAgbnVsbGlmeVRhcmdldEVudHJ5UGF0aChwYXRoTWFwKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHsgZW50cnlEaXJlY3RvcnkgfSA9IHBhdGhNYXA7XG5cbiAgZW50cnlEaXJlY3RvcnkgP1xuICAgIG1vdmVQcm9qZWN0RGlyZWN0b3J5KHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCkgOlxuICAgICAgbW92ZVByb2plY3RGaWxlKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCk7XG59XG5cbmZ1bmN0aW9uIG1vdmVQcm9qZWN0RmlsZShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXApIHtcbiAgY29uc3QgeyBzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCB9ID0gcGF0aE1hcCxcbiAgICAgICAgc291cmNlRmlsZVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsIC8vL1xuICAgICAgICB0YXJnZXRGaWxlUGF0aCA9IHRhcmdldEVudHJ5UGF0aCwgLy8vXG4gICAgICAgIGFic29sdXRlU291cmNlRmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRmlsZVBhdGgpLFxuICAgICAgICBhYnNvbHV0ZVRhcmdldEZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRhcmdldEZpbGVQYXRoKTtcblxuICB0cnkge1xuICAgIGNvbnN0IG9sZEVudHJ5UGF0aCA9IGFic29sdXRlU291cmNlRmlsZVBhdGgsIC8vL1xuICAgICAgICAgIG5ld0VudHJ5UGF0aCA9IGFic29sdXRlVGFyZ2V0RmlsZVBhdGg7IC8vL1xuXG4gICAgbW92ZUVudHJ5KG9sZEVudHJ5UGF0aCwgbmV3RW50cnlQYXRoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBudWxsaWZ5RW50cnlQYXRocyhwYXRoTWFwKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtb3ZlUHJvamVjdERpcmVjdG9yeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXApIHtcbiAgY29uc3QgeyBzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCB9ID0gcGF0aE1hcCxcbiAgICAgICAgc291cmNlRGlyZWN0b3J5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aCwgLy8vXG4gICAgICAgIHRhcmdldERpcmVjdG9yeVBhdGggPSB0YXJnZXRFbnRyeVBhdGgsIC8vL1xuICAgICAgICBhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRGlyZWN0b3J5UGF0aCksXG4gICAgICAgIGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0YXJnZXREaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgZGlyZWN0b3J5RW1wdHkgPSBpc0RpcmVjdG9yeUVtcHR5KGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCk7XG5cbiAgaWYgKCFkaXJlY3RvcnlFbXB0eSkge1xuICAgIG51bGxpZnlFbnRyeVBhdGhzKHBhdGhNYXApO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBvbGRFbnRyeVBhdGggPSBhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgsIC8vL1xuICAgICAgICAgIG5ld0VudHJ5UGF0aCA9IGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aDsgLy8vXG5cbiAgICBtb3ZlRW50cnkob2xkRW50cnlQYXRoLCBuZXdFbnRyeVBhdGgpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIG51bGxpZnlFbnRyeVBhdGhzKHBhdGhNYXApO1xuICB9XG59XG4iXSwibmFtZXMiOlsibW92ZVByb2plY3RFbnRyaWVzIiwibW92ZVByb2plY3RFbnRyeSIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwibW92ZUVudHJ5IiwiZmlsZVN5c3RlbVV0aWxpdGllcyIsImNoZWNrRW50cnlFeGlzdHMiLCJpc0RpcmVjdG9yeUVtcHR5IiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwianNvbiIsImNhbGxiYWNrIiwicGF0aE1hcHMiLCJmb3JFYWNoIiwicGF0aE1hcCIsInRhcmdldEVudHJ5UGF0aCIsImFic29sdXRlVGFyZ2V0RW50cnlQYXRoIiwidGFyZ2V0RW50cnlFeGlzdHMiLCJudWxsaWZ5RW50cnlQYXRocyIsInNvdXJjZUVudHJ5UGF0aCIsImFic29sdXRlU291cmNlRW50cnlQYXRoIiwic291cmNlRW50cnlFeGlzdHMiLCJudWxsaWZ5VGFyZ2V0RW50cnlQYXRoIiwiZW50cnlEaXJlY3RvcnkiLCJtb3ZlUHJvamVjdERpcmVjdG9yeSIsIm1vdmVQcm9qZWN0RmlsZSIsInNvdXJjZUZpbGVQYXRoIiwidGFyZ2V0RmlsZVBhdGgiLCJhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoIiwiYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCIsIm9sZEVudHJ5UGF0aCIsIm5ld0VudHJ5UGF0aCIsImVycm9yIiwic291cmNlRGlyZWN0b3J5UGF0aCIsInRhcmdldERpcmVjdG9yeVBhdGgiLCJhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgiLCJhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgiLCJkaXJlY3RvcnlFbXB0eSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBU0EsT0FZQztlQVp1QkE7O0lBY1JDLGdCQUFnQjtlQUFoQkE7Ozt5QkFyQm1DO3VCQUVPO0FBRTFELElBQU0sQUFBRUMsbUJBQXFCQyx3QkFBYSxDQUFsQ0Qsa0JBQ0FFLFlBQWtEQyw4QkFBbUIsQ0FBckVELFdBQVdFLG1CQUF1Q0QsOEJBQW1CLENBQTFEQyxrQkFBa0JDLG1CQUFxQkYsOEJBQW1CLENBQXhDRTtBQUV0QixTQUFTUCxtQkFBbUJRLHFCQUFxQixFQUFFQyxJQUFJLEVBQUVDLFFBQVE7SUFDOUUsSUFBTSxBQUFFQyxXQUFhRixLQUFiRTtJQUVSQSxTQUFTQyxPQUFPLENBQUMsU0FBQ0M7UUFDaEJaLGlCQUFpQk8sdUJBQXVCSztJQUMxQztJQUVBSixPQUFPO1FBQ0xFLFVBQUFBO0lBQ0Y7SUFFQUQsU0FBU0Q7QUFDWDtBQUVPLFNBQVNSLGlCQUFpQk8scUJBQXFCLEVBQUVLLE9BQU87SUFDN0QsSUFBTSxBQUFFQyxrQkFBb0JELFFBQXBCQztJQUVSLElBQUlBLG9CQUFvQixNQUFNO1FBQzVCO0lBQ0Y7SUFFQSxJQUFNQywwQkFBMEJiLGlCQUFpQk0sdUJBQXVCTSxrQkFDbEVFLG9CQUFvQlYsaUJBQWlCUztJQUUzQyxJQUFJQyxtQkFBbUI7UUFDckJDLElBQUFBLDBCQUFpQixFQUFDSjtRQUVsQjtJQUNGO0lBRUEsSUFBTSxBQUFFSyxrQkFBb0JMLFFBQXBCSyxpQkFDRkMsMEJBQTBCakIsaUJBQWlCTSx1QkFBdUJVLGtCQUNsRUUsb0JBQW9CZCxpQkFBaUJhO0lBRTNDLElBQUksQ0FBQ0MsbUJBQW1CO1FBQ3RCQyxJQUFBQSwrQkFBc0IsRUFBQ1I7UUFFdkI7SUFDRjtJQUVBLElBQU0sQUFBRVMsaUJBQW1CVCxRQUFuQlM7SUFFUkEsaUJBQ0VDLHFCQUFxQmYsdUJBQXVCSyxXQUMxQ1csZ0JBQWdCaEIsdUJBQXVCSztBQUM3QztBQUVBLFNBQVNXLGdCQUFnQmhCLHFCQUFxQixFQUFFSyxPQUFPO0lBQ3JELElBQVFLLGtCQUFxQ0wsUUFBckNLLGlCQUFpQkosa0JBQW9CRCxRQUFwQkMsaUJBQ25CVyxpQkFBaUJQLGlCQUNqQlEsaUJBQWlCWixpQkFDakJhLHlCQUF5QnpCLGlCQUFpQk0sdUJBQXVCaUIsaUJBQ2pFRyx5QkFBeUIxQixpQkFBaUJNLHVCQUF1QmtCO0lBRXZFLElBQUk7UUFDRixJQUFNRyxlQUFlRix3QkFDZkcsZUFBZUYsd0JBQXdCLEdBQUc7UUFFaER4QixVQUFVeUIsY0FBY0M7SUFDMUIsRUFBRSxPQUFPQyxPQUFPO1FBQ2RkLElBQUFBLDBCQUFpQixFQUFDSjtJQUNwQjtBQUNGO0FBRUEsU0FBU1UscUJBQXFCZixxQkFBcUIsRUFBRUssT0FBTztJQUMxRCxJQUFRSyxrQkFBcUNMLFFBQXJDSyxpQkFBaUJKLGtCQUFvQkQsUUFBcEJDLGlCQUNuQmtCLHNCQUFzQmQsaUJBQ3RCZSxzQkFBc0JuQixpQkFDdEJvQiw4QkFBOEJoQyxpQkFBaUJNLHVCQUF1QndCLHNCQUN0RUcsOEJBQThCakMsaUJBQWlCTSx1QkFBdUJ5QixzQkFDdEVHLGlCQUFpQjdCLGlCQUFpQjJCO0lBRXhDLElBQUksQ0FBQ0UsZ0JBQWdCO1FBQ25CbkIsSUFBQUEsMEJBQWlCLEVBQUNKO1FBRWxCO0lBQ0Y7SUFFQSxJQUFJO1FBQ0YsSUFBTWdCLGVBQWVLLDZCQUNmSixlQUFlSyw2QkFBNkIsR0FBRztRQUVyRC9CLFVBQVV5QixjQUFjQztJQUMxQixFQUFFLE9BQU9DLE9BQU87UUFDZGQsSUFBQUEsMEJBQWlCLEVBQUNKO0lBQ3BCO0FBQ0YifQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tb3ZlUHJvamVjdEVudHJpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHBhdGhVdGlsaXRpZXMsIGZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IHJlbW92ZVByb2plY3RFbnRyeSB9IGZyb20gXCIuL3JlbW92ZVByb2plY3RFbnRyaWVzXCI7XG5pbXBvcnQgeyBudWxsaWZ5RW50cnlQYXRocywgbnVsbGlmeVRhcmdldEVudHJ5UGF0aCB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoTWFwXCI7XG5cbmNvbnN0IHsgY29uY2F0ZW5hdGVQYXRocyB9ID0gcGF0aFV0aWxpdGllcyxcbiAgICAgIHsgbW92ZUVudHJ5LCBpc0RpcmVjdG9yeUVtcHR5LCBjaGVja0VudHJ5RXhpc3RzLCBjaGVja0VudHJ5RXhpc3RzOiBjaGVja0ZpbGVFeGlzdHMsIGNoZWNrRW50cnlFeGlzdHM6IGNoZWNrRGlyZWN0b3J5RXhpc3RzIH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtb3ZlUHJvamVjdEVudHJpZXMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBqc29uLCBjYWxsYmFjaykge1xuICBjb25zdCB7IHBhdGhNYXBzIH0gPSBqc29uO1xuXG4gIHBhdGhNYXBzLmZvckVhY2goKHBhdGhNYXApID0+IHtcbiAgICBtb3ZlUHJvamVjdEVudHJ5KHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCk7XG4gIH0pO1xuXG4gIGpzb24gPSB7XG4gICAgcGF0aE1hcHNcbiAgfTtcblxuICBjYWxsYmFjayhqc29uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdmVQcm9qZWN0RW50cnkocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwKSB7XG4gIGNvbnN0IHsgdGFyZ2V0RW50cnlQYXRoIH0gPSBwYXRoTWFwO1xuXG4gIGlmICh0YXJnZXRFbnRyeVBhdGggPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IHNvdXJjZUVudHJ5UGF0aCB9ID0gcGF0aE1hcCxcbiAgICAgICAgYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRW50cnlQYXRoKSxcbiAgICAgICAgc291cmNlRW50cnlFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGFic29sdXRlU291cmNlRW50cnlQYXRoKTtcblxuICBpZiAoIXNvdXJjZUVudHJ5RXhpc3RzKSB7XG4gICAgbnVsbGlmeVRhcmdldEVudHJ5UGF0aChwYXRoTWFwKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHsgZW50cnlEaXJlY3RvcnkgfSA9IHBhdGhNYXA7XG5cbiAgZW50cnlEaXJlY3RvcnkgP1xuICAgIG1vdmVQcm9qZWN0RGlyZWN0b3J5KHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCkgOlxuICAgICAgbW92ZVByb2plY3RGaWxlKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCk7XG59XG5cbmZ1bmN0aW9uIG1vdmVQcm9qZWN0RmlsZShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXApIHtcbiAgY29uc3QgeyBzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCB9ID0gcGF0aE1hcCxcbiAgICAgICAgc291cmNlRmlsZVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsIC8vL1xuICAgICAgICB0YXJnZXRGaWxlUGF0aCA9IHRhcmdldEVudHJ5UGF0aCwgLy8vXG4gICAgICAgIGFic29sdXRlU291cmNlRmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRmlsZVBhdGgpLFxuICAgICAgICBhYnNvbHV0ZVRhcmdldEZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRhcmdldEZpbGVQYXRoKSxcbiAgICAgICAgdGFyZ2V0RmlsZUV4aXN0cyA9IGNoZWNrRmlsZUV4aXN0cyhhYnNvbHV0ZVRhcmdldEZpbGVQYXRoKTtcblxuICBpZiAodGFyZ2V0RmlsZUV4aXN0cykge1xuICAgIG51bGxpZnlFbnRyeVBhdGhzKHBhdGhNYXApO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBvbGRFbnRyeVBhdGggPSBhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoLCAvLy9cbiAgICAgICAgICBuZXdFbnRyeVBhdGggPSBhYnNvbHV0ZVRhcmdldEZpbGVQYXRoOyAvLy9cblxuICAgIG1vdmVFbnRyeShvbGRFbnRyeVBhdGgsIG5ld0VudHJ5UGF0aCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbnVsbGlmeUVudHJ5UGF0aHMocGF0aE1hcCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbW92ZVByb2plY3REaXJlY3RvcnkocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwKSB7XG4gIGNvbnN0IHsgc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGggfSA9IHBhdGhNYXAsXG4gICAgICAgIHNvdXJjZURpcmVjdG9yeVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsIC8vL1xuICAgICAgICB0YXJnZXREaXJlY3RvcnlQYXRoID0gdGFyZ2V0RW50cnlQYXRoLCAvLy9cbiAgICAgICAgYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZURpcmVjdG9yeVBhdGgpLFxuICAgICAgICBhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdGFyZ2V0RGlyZWN0b3J5UGF0aCksXG4gICAgICAgIHRhcmdldERpcmVjdG9yeUV4aXN0cyA9IGNoZWNrRGlyZWN0b3J5RXhpc3RzKGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCksXG4gICAgICAgIGRpcmVjdG9yeUVtcHR5ID0gaXNEaXJlY3RvcnlFbXB0eShhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICghZGlyZWN0b3J5RW1wdHkpIHtcbiAgICBudWxsaWZ5RW50cnlQYXRocyhwYXRoTWFwKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICh0YXJnZXREaXJlY3RvcnlFeGlzdHMpIHtcbiAgICByZW1vdmVQcm9qZWN0RW50cnkocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3Qgb2xkRW50cnlQYXRoID0gYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoLCAvLy9cbiAgICAgICAgICBuZXdFbnRyeVBhdGggPSBhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGg7IC8vL1xuXG4gICAgbW92ZUVudHJ5KG9sZEVudHJ5UGF0aCwgbmV3RW50cnlQYXRoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBudWxsaWZ5RW50cnlQYXRocyhwYXRoTWFwKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIm1vdmVQcm9qZWN0RW50cmllcyIsIm1vdmVQcm9qZWN0RW50cnkiLCJjb25jYXRlbmF0ZVBhdGhzIiwicGF0aFV0aWxpdGllcyIsIm1vdmVFbnRyeSIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJpc0RpcmVjdG9yeUVtcHR5IiwiY2hlY2tFbnRyeUV4aXN0cyIsImNoZWNrRmlsZUV4aXN0cyIsImNoZWNrRGlyZWN0b3J5RXhpc3RzIiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwianNvbiIsImNhbGxiYWNrIiwicGF0aE1hcHMiLCJmb3JFYWNoIiwicGF0aE1hcCIsInRhcmdldEVudHJ5UGF0aCIsInNvdXJjZUVudHJ5UGF0aCIsImFic29sdXRlU291cmNlRW50cnlQYXRoIiwic291cmNlRW50cnlFeGlzdHMiLCJudWxsaWZ5VGFyZ2V0RW50cnlQYXRoIiwiZW50cnlEaXJlY3RvcnkiLCJtb3ZlUHJvamVjdERpcmVjdG9yeSIsIm1vdmVQcm9qZWN0RmlsZSIsInNvdXJjZUZpbGVQYXRoIiwidGFyZ2V0RmlsZVBhdGgiLCJhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoIiwiYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCIsInRhcmdldEZpbGVFeGlzdHMiLCJudWxsaWZ5RW50cnlQYXRocyIsIm9sZEVudHJ5UGF0aCIsIm5ld0VudHJ5UGF0aCIsImVycm9yIiwic291cmNlRGlyZWN0b3J5UGF0aCIsInRhcmdldERpcmVjdG9yeVBhdGgiLCJhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgiLCJhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgiLCJ0YXJnZXREaXJlY3RvcnlFeGlzdHMiLCJkaXJlY3RvcnlFbXB0eSIsInJlbW92ZVByb2plY3RFbnRyeSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBVUEsT0FZQztlQVp1QkE7O0lBY1JDLGdCQUFnQjtlQUFoQkE7Ozt5QkF0Qm1DO29DQUVoQjt1QkFDdUI7QUFFMUQsSUFBTSxBQUFFQyxtQkFBcUJDLHdCQUFhLENBQWxDRCxrQkFDQUUsWUFBNkhDLDhCQUFtQixDQUFoSkQsV0FBV0UsbUJBQWtIRCw4QkFBbUIsQ0FBcklDLGtCQUFrQkMsbUJBQWdHRiw4QkFBbUIsQ0FBbkhFLGtCQUFrQkEsQUFBa0JDLGtCQUE0REgsOEJBQW1CLENBQWpHRSxrQkFBbUNBLEFBQWtCRSx1QkFBeUJKLDhCQUFtQixDQUE5REU7QUFFM0UsU0FBU1AsbUJBQW1CVSxxQkFBcUIsRUFBRUMsSUFBSSxFQUFFQyxRQUFRO0lBQzlFLElBQU0sQUFBRUMsV0FBYUYsS0FBYkU7SUFFUkEsU0FBU0MsT0FBTyxDQUFDLFNBQUNDO1FBQ2hCZCxpQkFBaUJTLHVCQUF1Qks7SUFDMUM7SUFFQUosT0FBTztRQUNMRSxVQUFBQTtJQUNGO0lBRUFELFNBQVNEO0FBQ1g7QUFFTyxTQUFTVixpQkFBaUJTLHFCQUFxQixFQUFFSyxPQUFPO0lBQzdELElBQU0sQUFBRUMsa0JBQW9CRCxRQUFwQkM7SUFFUixJQUFJQSxvQkFBb0IsTUFBTTtRQUM1QjtJQUNGO0lBRUEsSUFBTSxBQUFFQyxrQkFBb0JGLFFBQXBCRSxpQkFDRkMsMEJBQTBCaEIsaUJBQWlCUSx1QkFBdUJPLGtCQUNsRUUsb0JBQW9CWixpQkFBaUJXO0lBRTNDLElBQUksQ0FBQ0MsbUJBQW1CO1FBQ3RCQyxJQUFBQSwrQkFBc0IsRUFBQ0w7UUFFdkI7SUFDRjtJQUVBLElBQU0sQUFBRU0saUJBQW1CTixRQUFuQk07SUFFUkEsaUJBQ0VDLHFCQUFxQlosdUJBQXVCSyxXQUMxQ1EsZ0JBQWdCYix1QkFBdUJLO0FBQzdDO0FBRUEsU0FBU1EsZ0JBQWdCYixxQkFBcUIsRUFBRUssT0FBTztJQUNyRCxJQUFRRSxrQkFBcUNGLFFBQXJDRSxpQkFBaUJELGtCQUFvQkQsUUFBcEJDLGlCQUNuQlEsaUJBQWlCUCxpQkFDakJRLGlCQUFpQlQsaUJBQ2pCVSx5QkFBeUJ4QixpQkFBaUJRLHVCQUF1QmMsaUJBQ2pFRyx5QkFBeUJ6QixpQkFBaUJRLHVCQUF1QmUsaUJBQ2pFRyxtQkFBbUJwQixnQkFBZ0JtQjtJQUV6QyxJQUFJQyxrQkFBa0I7UUFDcEJDLElBQUFBLDBCQUFpQixFQUFDZDtRQUVsQjtJQUNGO0lBRUEsSUFBSTtRQUNGLElBQU1lLGVBQWVKLHdCQUNmSyxlQUFlSix3QkFBd0IsR0FBRztRQUVoRHZCLFVBQVUwQixjQUFjQztJQUMxQixFQUFFLE9BQU9DLE9BQU87UUFDZEgsSUFBQUEsMEJBQWlCLEVBQUNkO0lBQ3BCO0FBQ0Y7QUFFQSxTQUFTTyxxQkFBcUJaLHFCQUFxQixFQUFFSyxPQUFPO0lBQzFELElBQVFFLGtCQUFxQ0YsUUFBckNFLGlCQUFpQkQsa0JBQW9CRCxRQUFwQkMsaUJBQ25CaUIsc0JBQXNCaEIsaUJBQ3RCaUIsc0JBQXNCbEIsaUJBQ3RCbUIsOEJBQThCakMsaUJBQWlCUSx1QkFBdUJ1QixzQkFDdEVHLDhCQUE4QmxDLGlCQUFpQlEsdUJBQXVCd0Isc0JBQ3RFRyx3QkFBd0I1QixxQkFBcUIyQiw4QkFDN0NFLGlCQUFpQmhDLGlCQUFpQjZCO0lBRXhDLElBQUksQ0FBQ0csZ0JBQWdCO1FBQ25CVCxJQUFBQSwwQkFBaUIsRUFBQ2Q7UUFFbEI7SUFDRjtJQUVBLElBQUlzQix1QkFBdUI7UUFDekJFLElBQUFBLHdDQUFrQixFQUFDN0IsdUJBQXVCSztRQUUxQztJQUNGO0lBRUEsSUFBSTtRQUNGLElBQU1lLGVBQWVLLDZCQUNmSixlQUFlSyw2QkFBNkIsR0FBRztRQUVyRGhDLFVBQVUwQixjQUFjQztJQUMxQixFQUFFLE9BQU9DLE9BQU87UUFDZEgsSUFBQUEsMEJBQWlCLEVBQUNkO0lBQ3BCO0FBQ0YifQ==
@@ -18,7 +18,7 @@ _export(exports, {
18
18
  });
19
19
  var _necessary = require("necessary");
20
20
  var _pathMap = require("./utilities/pathMap");
21
- var concatenatePaths = _necessary.pathUtilities.concatenatePaths, moveEntry = _necessary.fileSystemUtilities.moveEntry, checkEntryExists = _necessary.fileSystemUtilities.checkEntryExists;
21
+ var concatenatePaths = _necessary.pathUtilities.concatenatePaths, moveEntry = _necessary.fileSystemUtilities.moveEntry, checkEntryExists = _necessary.fileSystemUtilities.checkEntryExists, checkFileExists = _necessary.fileSystemUtilities.checkEntryExists, checkDirectoryExists = _necessary.fileSystemUtilities.checkEntryExists;
22
22
  function renameProjectEntries(projectsDirectoryPath, json, callback) {
23
23
  var pathMaps = json.pathMaps;
24
24
  pathMaps.forEach(function(pathMap) {
@@ -34,11 +34,6 @@ function renameProjectEntry(projectsDirectoryPath, pathMap) {
34
34
  if (targetEntryPath === null) {
35
35
  return;
36
36
  }
37
- var absoluteTargetEntryPath = concatenatePaths(projectsDirectoryPath, targetEntryPath), targetEntryExists = checkEntryExists(absoluteTargetEntryPath);
38
- if (targetEntryExists) {
39
- (0, _pathMap.nullifyEntryPaths)(pathMap);
40
- return;
41
- }
42
37
  var sourceEntryPath = pathMap.sourceEntryPath, absoluteSourceEntryPath = concatenatePaths(projectsDirectoryPath, sourceEntryPath), sourceEntryExists = checkEntryExists(absoluteSourceEntryPath);
43
38
  if (!sourceEntryExists) {
44
39
  (0, _pathMap.nullifyTargetEntryPath)(pathMap);
@@ -48,7 +43,11 @@ function renameProjectEntry(projectsDirectoryPath, pathMap) {
48
43
  entryDirectory ? renameProjectDirectory(projectsDirectoryPath, pathMap) : renameProjectFile(projectsDirectoryPath, pathMap);
49
44
  }
50
45
  function renameProjectFile(projectsDirectoryPath, pathMap) {
51
- var sourceEntryPath = pathMap.sourceEntryPath, targetEntryPath = pathMap.targetEntryPath, sourceFilePath = sourceEntryPath, targetFilePath = targetEntryPath, absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath), absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath);
46
+ var sourceEntryPath = pathMap.sourceEntryPath, targetEntryPath = pathMap.targetEntryPath, sourceFilePath = sourceEntryPath, targetFilePath = targetEntryPath, absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath), absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath), targetFileExists = checkFileExists(absoluteTargetFilePath);
47
+ if (targetFileExists) {
48
+ (0, _pathMap.nullifyEntryPaths)(pathMap);
49
+ return;
50
+ }
52
51
  try {
53
52
  var oldEntryPath = absoluteSourceFilePath, newEntryPath = absoluteTargetFilePath; ///
54
53
  moveEntry(oldEntryPath, newEntryPath); ///
@@ -57,7 +56,11 @@ function renameProjectFile(projectsDirectoryPath, pathMap) {
57
56
  }
58
57
  }
59
58
  function renameProjectDirectory(projectsDirectoryPath, pathMap) {
60
- var sourceEntryPath = pathMap.sourceEntryPath, targetEntryPath = pathMap.targetEntryPath, sourceDirectoryPath = sourceEntryPath, targetDirectoryPath = targetEntryPath, absoluteSourceDirectoryPath = concatenatePaths(projectsDirectoryPath, sourceDirectoryPath), absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath);
59
+ var sourceEntryPath = pathMap.sourceEntryPath, targetEntryPath = pathMap.targetEntryPath, sourceDirectoryPath = sourceEntryPath, targetDirectoryPath = targetEntryPath, absoluteSourceDirectoryPath = concatenatePaths(projectsDirectoryPath, sourceDirectoryPath), absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath), targetDirectoryExists = checkDirectoryExists(absoluteTargetDirectoryPath);
60
+ if (targetDirectoryExists) {
61
+ (0, _pathMap.nullifyEntryPaths)(pathMap);
62
+ return;
63
+ }
61
64
  try {
62
65
  var oldEntryPath = absoluteSourceDirectoryPath, newEntryPath = absoluteTargetDirectoryPath; ///
63
66
  moveEntry(oldEntryPath, newEntryPath); ///
@@ -66,4 +69,4 @@ function renameProjectDirectory(projectsDirectoryPath, pathMap) {
66
69
  }
67
70
  }
68
71
 
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5hbWVQcm9qZWN0RW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgbnVsbGlmeUVudHJ5UGF0aHMsIG51bGxpZnlUYXJnZXRFbnRyeVBhdGggfSBmcm9tIFwiLi91dGlsaXRpZXMvcGF0aE1hcFwiO1xuXG5jb25zdCB7IGNvbmNhdGVuYXRlUGF0aHMgfSA9IHBhdGhVdGlsaXRpZXMsXG4gICAgICB7IG1vdmVFbnRyeSwgY2hlY2tFbnRyeUV4aXN0cyB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVuYW1lUHJvamVjdEVudHJpZXMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBqc29uLCBjYWxsYmFjaykge1xuICBjb25zdCB7IHBhdGhNYXBzIH0gPSBqc29uO1xuXG4gIHBhdGhNYXBzLmZvckVhY2goKHBhdGhNYXApID0+IHtcbiAgICByZW5hbWVQcm9qZWN0RW50cnkocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwKTtcbiAgfSk7XG5cbiAganNvbiA9IHtcbiAgICBwYXRoTWFwc1xuICB9O1xuXG4gIGNhbGxiYWNrKGpzb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuYW1lUHJvamVjdEVudHJ5KHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCkge1xuICBjb25zdCB7IHRhcmdldEVudHJ5UGF0aCB9ID0gcGF0aE1hcDtcblxuICBpZiAodGFyZ2V0RW50cnlQYXRoID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgYWJzb2x1dGVUYXJnZXRFbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKSxcbiAgICAgICAgdGFyZ2V0RW50cnlFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGFic29sdXRlVGFyZ2V0RW50cnlQYXRoKTtcblxuICBpZiAodGFyZ2V0RW50cnlFeGlzdHMpIHtcbiAgICBudWxsaWZ5RW50cnlQYXRocyhwYXRoTWFwKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHsgc291cmNlRW50cnlQYXRoIH0gPSBwYXRoTWFwLFxuICAgICAgICBhYnNvbHV0ZVNvdXJjZUVudHJ5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VFbnRyeVBhdGgpLFxuICAgICAgICBzb3VyY2VFbnRyeUV4aXN0cyA9IGNoZWNrRW50cnlFeGlzdHMoYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGgpO1xuXG4gIGlmICghc291cmNlRW50cnlFeGlzdHMpIHtcbiAgICBudWxsaWZ5VGFyZ2V0RW50cnlQYXRoKHBhdGhNYXApO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyBlbnRyeURpcmVjdG9yeSB9ID0gcGF0aE1hcDtcblxuICBlbnRyeURpcmVjdG9yeSA/XG4gICAgcmVuYW1lUHJvamVjdERpcmVjdG9yeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXApIDpcbiAgICAgIHJlbmFtZVByb2plY3RGaWxlKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCk7XG59XG5cbmZ1bmN0aW9uIHJlbmFtZVByb2plY3RGaWxlKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCkge1xuICBjb25zdCB7IHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoIH0gPSBwYXRoTWFwLFxuICAgICAgICBzb3VyY2VGaWxlUGF0aCA9IHNvdXJjZUVudHJ5UGF0aCwgLy8vXG4gICAgICAgIHRhcmdldEZpbGVQYXRoID0gdGFyZ2V0RW50cnlQYXRoLCAvLy9cbiAgICAgICAgYWJzb2x1dGVTb3VyY2VGaWxlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VGaWxlUGF0aCksXG4gICAgICAgIGFic29sdXRlVGFyZ2V0RmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdGFyZ2V0RmlsZVBhdGgpO1xuXG4gIHRyeSB7XG4gICAgY29uc3Qgb2xkRW50cnlQYXRoID0gYWJzb2x1dGVTb3VyY2VGaWxlUGF0aCwgLy8vXG4gICAgICAgICAgbmV3RW50cnlQYXRoID0gYWJzb2x1dGVUYXJnZXRGaWxlUGF0aDsgLy8vXG5cbiAgICBtb3ZlRW50cnkob2xkRW50cnlQYXRoLCBuZXdFbnRyeVBhdGgpOyAgLy8vXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbnVsbGlmeUVudHJ5UGF0aHMocGF0aE1hcCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVuYW1lUHJvamVjdERpcmVjdG9yeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXApIHtcbiAgY29uc3QgeyBzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCB9ID0gcGF0aE1hcCxcbiAgICAgICAgc291cmNlRGlyZWN0b3J5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aCwgLy8vXG4gICAgICAgIHRhcmdldERpcmVjdG9yeVBhdGggPSB0YXJnZXRFbnRyeVBhdGgsIC8vL1xuICAgICAgICBhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRGlyZWN0b3J5UGF0aCksXG4gICAgICAgIGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0YXJnZXREaXJlY3RvcnlQYXRoKTtcblxuICB0cnkge1xuICAgIGNvbnN0IG9sZEVudHJ5UGF0aCA9IGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCwgLy8vXG4gICAgICAgICAgbmV3RW50cnlQYXRoID0gYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoOyAvLy9cblxuICAgIG1vdmVFbnRyeShvbGRFbnRyeVBhdGgsIG5ld0VudHJ5UGF0aCk7ICAvLy9cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBudWxsaWZ5RW50cnlQYXRocyhwYXRoTWFwKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbInJlbmFtZVByb2plY3RFbnRyaWVzIiwicmVuYW1lUHJvamVjdEVudHJ5IiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJtb3ZlRW50cnkiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwiY2hlY2tFbnRyeUV4aXN0cyIsInByb2plY3RzRGlyZWN0b3J5UGF0aCIsImpzb24iLCJjYWxsYmFjayIsInBhdGhNYXBzIiwiZm9yRWFjaCIsInBhdGhNYXAiLCJ0YXJnZXRFbnRyeVBhdGgiLCJhYnNvbHV0ZVRhcmdldEVudHJ5UGF0aCIsInRhcmdldEVudHJ5RXhpc3RzIiwibnVsbGlmeUVudHJ5UGF0aHMiLCJzb3VyY2VFbnRyeVBhdGgiLCJhYnNvbHV0ZVNvdXJjZUVudHJ5UGF0aCIsInNvdXJjZUVudHJ5RXhpc3RzIiwibnVsbGlmeVRhcmdldEVudHJ5UGF0aCIsImVudHJ5RGlyZWN0b3J5IiwicmVuYW1lUHJvamVjdERpcmVjdG9yeSIsInJlbmFtZVByb2plY3RGaWxlIiwic291cmNlRmlsZVBhdGgiLCJ0YXJnZXRGaWxlUGF0aCIsImFic29sdXRlU291cmNlRmlsZVBhdGgiLCJhYnNvbHV0ZVRhcmdldEZpbGVQYXRoIiwib2xkRW50cnlQYXRoIiwibmV3RW50cnlQYXRoIiwiZXJyb3IiLCJzb3VyY2VEaXJlY3RvcnlQYXRoIiwidGFyZ2V0RGlyZWN0b3J5UGF0aCIsImFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCIsImFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBU0EsT0FZQztlQVp1QkE7O0lBY1JDLGtCQUFrQjtlQUFsQkE7Ozt5QkFyQm1DO3VCQUVPO0FBRTFELElBQU0sQUFBRUMsbUJBQXFCQyx3QkFBYSxDQUFsQ0Qsa0JBQ0FFLFlBQWdDQyw4QkFBbUIsQ0FBbkRELFdBQVdFLG1CQUFxQkQsOEJBQW1CLENBQXhDQztBQUVKLFNBQVNOLHFCQUFxQk8scUJBQXFCLEVBQUVDLElBQUksRUFBRUMsUUFBUTtJQUNoRixJQUFNLEFBQUVDLFdBQWFGLEtBQWJFO0lBRVJBLFNBQVNDLE9BQU8sQ0FBQyxTQUFDQztRQUNoQlgsbUJBQW1CTSx1QkFBdUJLO0lBQzVDO0lBRUFKLE9BQU87UUFDTEUsVUFBQUE7SUFDRjtJQUVBRCxTQUFTRDtBQUNYO0FBRU8sU0FBU1AsbUJBQW1CTSxxQkFBcUIsRUFBRUssT0FBTztJQUMvRCxJQUFNLEFBQUVDLGtCQUFvQkQsUUFBcEJDO0lBRVIsSUFBSUEsb0JBQW9CLE1BQU07UUFDNUI7SUFDRjtJQUVBLElBQU1DLDBCQUEwQlosaUJBQWlCSyx1QkFBdUJNLGtCQUNsRUUsb0JBQW9CVCxpQkFBaUJRO0lBRTNDLElBQUlDLG1CQUFtQjtRQUNyQkMsSUFBQUEsMEJBQWlCLEVBQUNKO1FBRWxCO0lBQ0Y7SUFFQSxJQUFNLEFBQUVLLGtCQUFvQkwsUUFBcEJLLGlCQUNGQywwQkFBMEJoQixpQkFBaUJLLHVCQUF1QlUsa0JBQ2xFRSxvQkFBb0JiLGlCQUFpQlk7SUFFM0MsSUFBSSxDQUFDQyxtQkFBbUI7UUFDdEJDLElBQUFBLCtCQUFzQixFQUFDUjtRQUV2QjtJQUNGO0lBRUEsSUFBTSxBQUFFUyxpQkFBbUJULFFBQW5CUztJQUVSQSxpQkFDRUMsdUJBQXVCZix1QkFBdUJLLFdBQzVDVyxrQkFBa0JoQix1QkFBdUJLO0FBQy9DO0FBRUEsU0FBU1csa0JBQWtCaEIscUJBQXFCLEVBQUVLLE9BQU87SUFDdkQsSUFBUUssa0JBQXFDTCxRQUFyQ0ssaUJBQWlCSixrQkFBb0JELFFBQXBCQyxpQkFDbkJXLGlCQUFpQlAsaUJBQ2pCUSxpQkFBaUJaLGlCQUNqQmEseUJBQXlCeEIsaUJBQWlCSyx1QkFBdUJpQixpQkFDakVHLHlCQUF5QnpCLGlCQUFpQkssdUJBQXVCa0I7SUFFdkUsSUFBSTtRQUNGLElBQU1HLGVBQWVGLHdCQUNmRyxlQUFlRix3QkFBd0IsR0FBRztRQUVoRHZCLFVBQVV3QixjQUFjQyxlQUFnQixHQUFHO0lBQzdDLEVBQUUsT0FBT0MsT0FBTztRQUNkZCxJQUFBQSwwQkFBaUIsRUFBQ0o7SUFDcEI7QUFDRjtBQUVBLFNBQVNVLHVCQUF1QmYscUJBQXFCLEVBQUVLLE9BQU87SUFDNUQsSUFBUUssa0JBQXFDTCxRQUFyQ0ssaUJBQWlCSixrQkFBb0JELFFBQXBCQyxpQkFDbkJrQixzQkFBc0JkLGlCQUN0QmUsc0JBQXNCbkIsaUJBQ3RCb0IsOEJBQThCL0IsaUJBQWlCSyx1QkFBdUJ3QixzQkFDdEVHLDhCQUE4QmhDLGlCQUFpQkssdUJBQXVCeUI7SUFFNUUsSUFBSTtRQUNGLElBQU1KLGVBQWVLLDZCQUNmSixlQUFlSyw2QkFBNkIsR0FBRztRQUVyRDlCLFVBQVV3QixjQUFjQyxlQUFnQixHQUFHO0lBQzdDLEVBQUUsT0FBT0MsT0FBTztRQUNkZCxJQUFBQSwwQkFBaUIsRUFBQ0o7SUFDcEI7QUFDRiJ9
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5hbWVQcm9qZWN0RW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgbnVsbGlmeUVudHJ5UGF0aHMsIG51bGxpZnlUYXJnZXRFbnRyeVBhdGggfSBmcm9tIFwiLi91dGlsaXRpZXMvcGF0aE1hcFwiO1xuXG5jb25zdCB7IGNvbmNhdGVuYXRlUGF0aHMgfSA9IHBhdGhVdGlsaXRpZXMsXG4gICAgICB7IG1vdmVFbnRyeSwgY2hlY2tFbnRyeUV4aXN0cywgY2hlY2tFbnRyeUV4aXN0czogY2hlY2tGaWxlRXhpc3RzLCBjaGVja0VudHJ5RXhpc3RzOiBjaGVja0RpcmVjdG9yeUV4aXN0cyB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVuYW1lUHJvamVjdEVudHJpZXMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBqc29uLCBjYWxsYmFjaykge1xuICBjb25zdCB7IHBhdGhNYXBzIH0gPSBqc29uO1xuXG4gIHBhdGhNYXBzLmZvckVhY2goKHBhdGhNYXApID0+IHtcbiAgICByZW5hbWVQcm9qZWN0RW50cnkocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwKTtcbiAgfSk7XG5cbiAganNvbiA9IHtcbiAgICBwYXRoTWFwc1xuICB9O1xuXG4gIGNhbGxiYWNrKGpzb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuYW1lUHJvamVjdEVudHJ5KHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCkge1xuICBjb25zdCB7IHRhcmdldEVudHJ5UGF0aCB9ID0gcGF0aE1hcDtcblxuICBpZiAodGFyZ2V0RW50cnlQYXRoID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyBzb3VyY2VFbnRyeVBhdGggfSA9IHBhdGhNYXAsXG4gICAgICAgIGFic29sdXRlU291cmNlRW50cnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZUVudHJ5UGF0aCksXG4gICAgICAgIHNvdXJjZUVudHJ5RXhpc3RzID0gY2hlY2tFbnRyeUV4aXN0cyhhYnNvbHV0ZVNvdXJjZUVudHJ5UGF0aCk7XG5cbiAgaWYgKCFzb3VyY2VFbnRyeUV4aXN0cykge1xuICAgIG51bGxpZnlUYXJnZXRFbnRyeVBhdGgocGF0aE1hcCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IGVudHJ5RGlyZWN0b3J5IH0gPSBwYXRoTWFwO1xuXG4gIGVudHJ5RGlyZWN0b3J5ID9cbiAgICByZW5hbWVQcm9qZWN0RGlyZWN0b3J5KHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCkgOlxuICAgICAgcmVuYW1lUHJvamVjdEZpbGUocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwKTtcbn1cblxuZnVuY3Rpb24gcmVuYW1lUHJvamVjdEZpbGUocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwKSB7XG4gIGNvbnN0IHsgc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGggfSA9IHBhdGhNYXAsXG4gICAgICAgIHNvdXJjZUZpbGVQYXRoID0gc291cmNlRW50cnlQYXRoLCAvLy9cbiAgICAgICAgdGFyZ2V0RmlsZVBhdGggPSB0YXJnZXRFbnRyeVBhdGgsIC8vL1xuICAgICAgICBhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZUZpbGVQYXRoKSxcbiAgICAgICAgYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0YXJnZXRGaWxlUGF0aCksXG4gICAgICAgIHRhcmdldEZpbGVFeGlzdHMgPSBjaGVja0ZpbGVFeGlzdHMoYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCk7XG5cbiAgaWYgKHRhcmdldEZpbGVFeGlzdHMpIHtcbiAgICBudWxsaWZ5RW50cnlQYXRocyhwYXRoTWFwKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3Qgb2xkRW50cnlQYXRoID0gYWJzb2x1dGVTb3VyY2VGaWxlUGF0aCwgLy8vXG4gICAgICAgICAgbmV3RW50cnlQYXRoID0gYWJzb2x1dGVUYXJnZXRGaWxlUGF0aDsgLy8vXG5cbiAgICBtb3ZlRW50cnkob2xkRW50cnlQYXRoLCBuZXdFbnRyeVBhdGgpOyAgLy8vXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbnVsbGlmeUVudHJ5UGF0aHMocGF0aE1hcCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVuYW1lUHJvamVjdERpcmVjdG9yeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXApIHtcbiAgY29uc3QgeyBzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCB9ID0gcGF0aE1hcCxcbiAgICAgICAgc291cmNlRGlyZWN0b3J5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aCwgLy8vXG4gICAgICAgIHRhcmdldERpcmVjdG9yeVBhdGggPSB0YXJnZXRFbnRyeVBhdGgsIC8vL1xuICAgICAgICBhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRGlyZWN0b3J5UGF0aCksXG4gICAgICAgIGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0YXJnZXREaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgdGFyZ2V0RGlyZWN0b3J5RXhpc3RzID0gY2hlY2tEaXJlY3RvcnlFeGlzdHMoYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoKTtcblxuICBpZiAodGFyZ2V0RGlyZWN0b3J5RXhpc3RzKSB7XG4gICAgbnVsbGlmeUVudHJ5UGF0aHMocGF0aE1hcCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IG9sZEVudHJ5UGF0aCA9IGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCwgLy8vXG4gICAgICAgICAgbmV3RW50cnlQYXRoID0gYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoOyAvLy9cblxuICAgIG1vdmVFbnRyeShvbGRFbnRyeVBhdGgsIG5ld0VudHJ5UGF0aCk7ICAvLy9cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBudWxsaWZ5RW50cnlQYXRocyhwYXRoTWFwKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbInJlbmFtZVByb2plY3RFbnRyaWVzIiwicmVuYW1lUHJvamVjdEVudHJ5IiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJtb3ZlRW50cnkiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwiY2hlY2tFbnRyeUV4aXN0cyIsImNoZWNrRmlsZUV4aXN0cyIsImNoZWNrRGlyZWN0b3J5RXhpc3RzIiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwianNvbiIsImNhbGxiYWNrIiwicGF0aE1hcHMiLCJmb3JFYWNoIiwicGF0aE1hcCIsInRhcmdldEVudHJ5UGF0aCIsInNvdXJjZUVudHJ5UGF0aCIsImFic29sdXRlU291cmNlRW50cnlQYXRoIiwic291cmNlRW50cnlFeGlzdHMiLCJudWxsaWZ5VGFyZ2V0RW50cnlQYXRoIiwiZW50cnlEaXJlY3RvcnkiLCJyZW5hbWVQcm9qZWN0RGlyZWN0b3J5IiwicmVuYW1lUHJvamVjdEZpbGUiLCJzb3VyY2VGaWxlUGF0aCIsInRhcmdldEZpbGVQYXRoIiwiYWJzb2x1dGVTb3VyY2VGaWxlUGF0aCIsImFic29sdXRlVGFyZ2V0RmlsZVBhdGgiLCJ0YXJnZXRGaWxlRXhpc3RzIiwibnVsbGlmeUVudHJ5UGF0aHMiLCJvbGRFbnRyeVBhdGgiLCJuZXdFbnRyeVBhdGgiLCJlcnJvciIsInNvdXJjZURpcmVjdG9yeVBhdGgiLCJ0YXJnZXREaXJlY3RvcnlQYXRoIiwiYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoIiwiYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoIiwidGFyZ2V0RGlyZWN0b3J5RXhpc3RzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFTQSxPQVlDO2VBWnVCQTs7SUFjUkMsa0JBQWtCO2VBQWxCQTs7O3lCQXJCbUM7dUJBRU87QUFFMUQsSUFBTSxBQUFFQyxtQkFBcUJDLHdCQUFhLENBQWxDRCxrQkFDQUUsWUFBMkdDLDhCQUFtQixDQUE5SEQsV0FBV0UsbUJBQWdHRCw4QkFBbUIsQ0FBbkhDLGtCQUFrQkEsQUFBa0JDLGtCQUE0REYsOEJBQW1CLENBQWpHQyxrQkFBbUNBLEFBQWtCRSx1QkFBeUJILDhCQUFtQixDQUE5REM7QUFFekQsU0FBU04scUJBQXFCUyxxQkFBcUIsRUFBRUMsSUFBSSxFQUFFQyxRQUFRO0lBQ2hGLElBQU0sQUFBRUMsV0FBYUYsS0FBYkU7SUFFUkEsU0FBU0MsT0FBTyxDQUFDLFNBQUNDO1FBQ2hCYixtQkFBbUJRLHVCQUF1Qks7SUFDNUM7SUFFQUosT0FBTztRQUNMRSxVQUFBQTtJQUNGO0lBRUFELFNBQVNEO0FBQ1g7QUFFTyxTQUFTVCxtQkFBbUJRLHFCQUFxQixFQUFFSyxPQUFPO0lBQy9ELElBQU0sQUFBRUMsa0JBQW9CRCxRQUFwQkM7SUFFUixJQUFJQSxvQkFBb0IsTUFBTTtRQUM1QjtJQUNGO0lBRUEsSUFBTSxBQUFFQyxrQkFBb0JGLFFBQXBCRSxpQkFDRkMsMEJBQTBCZixpQkFBaUJPLHVCQUF1Qk8sa0JBQ2xFRSxvQkFBb0JaLGlCQUFpQlc7SUFFM0MsSUFBSSxDQUFDQyxtQkFBbUI7UUFDdEJDLElBQUFBLCtCQUFzQixFQUFDTDtRQUV2QjtJQUNGO0lBRUEsSUFBTSxBQUFFTSxpQkFBbUJOLFFBQW5CTTtJQUVSQSxpQkFDRUMsdUJBQXVCWix1QkFBdUJLLFdBQzVDUSxrQkFBa0JiLHVCQUF1Qks7QUFDL0M7QUFFQSxTQUFTUSxrQkFBa0JiLHFCQUFxQixFQUFFSyxPQUFPO0lBQ3ZELElBQVFFLGtCQUFxQ0YsUUFBckNFLGlCQUFpQkQsa0JBQW9CRCxRQUFwQkMsaUJBQ25CUSxpQkFBaUJQLGlCQUNqQlEsaUJBQWlCVCxpQkFDakJVLHlCQUF5QnZCLGlCQUFpQk8sdUJBQXVCYyxpQkFDakVHLHlCQUF5QnhCLGlCQUFpQk8sdUJBQXVCZSxpQkFDakVHLG1CQUFtQnBCLGdCQUFnQm1CO0lBRXpDLElBQUlDLGtCQUFrQjtRQUNwQkMsSUFBQUEsMEJBQWlCLEVBQUNkO1FBRWxCO0lBQ0Y7SUFFQSxJQUFJO1FBQ0YsSUFBTWUsZUFBZUosd0JBQ2ZLLGVBQWVKLHdCQUF3QixHQUFHO1FBRWhEdEIsVUFBVXlCLGNBQWNDLGVBQWdCLEdBQUc7SUFDN0MsRUFBRSxPQUFPQyxPQUFPO1FBQ2RILElBQUFBLDBCQUFpQixFQUFDZDtJQUNwQjtBQUNGO0FBRUEsU0FBU08sdUJBQXVCWixxQkFBcUIsRUFBRUssT0FBTztJQUM1RCxJQUFRRSxrQkFBcUNGLFFBQXJDRSxpQkFBaUJELGtCQUFvQkQsUUFBcEJDLGlCQUNuQmlCLHNCQUFzQmhCLGlCQUN0QmlCLHNCQUFzQmxCLGlCQUN0Qm1CLDhCQUE4QmhDLGlCQUFpQk8sdUJBQXVCdUIsc0JBQ3RFRyw4QkFBOEJqQyxpQkFBaUJPLHVCQUF1QndCLHNCQUN0RUcsd0JBQXdCNUIscUJBQXFCMkI7SUFFbkQsSUFBSUMsdUJBQXVCO1FBQ3pCUixJQUFBQSwwQkFBaUIsRUFBQ2Q7UUFFbEI7SUFDRjtJQUVBLElBQUk7UUFDRixJQUFNZSxlQUFlSyw2QkFDZkosZUFBZUssNkJBQTZCLEdBQUc7UUFFckQvQixVQUFVeUIsY0FBY0MsZUFBZ0IsR0FBRztJQUM3QyxFQUFFLE9BQU9DLE9BQU87UUFDZEgsSUFBQUEsMEJBQWlCLEVBQUNkO0lBQ3BCO0FBQ0YifQ==
@@ -66,8 +66,9 @@ function saveFile(file, projectsDirectoryPath) {
66
66
  return success;
67
67
  }
68
68
  function loadFiles(paths, projectsDirectoryPath) {
69
- var files = null;
69
+ var files;
70
70
  try {
71
+ files = _occamentities.Files.fromNothing();
71
72
  var pathsLength = paths.length;
72
73
  if (pathsLength > 0) {
73
74
  var firstPath = first(paths), path = firstPath, topmostDirectoryName = topmostDirectoryNameFromPath(path);
@@ -77,7 +78,7 @@ function loadFiles(paths, projectsDirectoryPath) {
77
78
  }
78
79
  }
79
80
  } catch (error) {
80
- ///
81
+ files = null;
81
82
  }
82
83
  return files;
83
84
  }
@@ -248,4 +249,4 @@ function topmostDirectoryNamesFromProjectsDirectoryPath(projectsDirectoryPath) {
248
249
  return topmostDirectoryNames;
249
250
  }
250
251
 
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzLCBwYXRoVXRpbGl0aWVzLCBmaWxlU3lzdGVtVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xyXG5pbXBvcnQgeyBGaWxlLCBGaWxlcywgRW50cmllcywgUHJvamVjdCwgUmVsZWFzZSwgUHJvamVjdHMsIFJlbGVhc2VzLCBEaXJlY3RvcnksIGZpbGVQYXRoVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWVudGl0aWVzXCI7XHJcblxyXG5pbXBvcnQgeyBpc05hbWVIaWRkZW5OYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9uYW1lXCI7XHJcblxyXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcyxcclxuICAgICAgeyBpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoIH0gPSBmaWxlUGF0aFV0aWxpdGllcyxcclxuICAgICAgeyBjb25jYXRlbmF0ZVBhdGhzLCB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoIH0gPSBwYXRoVXRpbGl0aWVzLFxyXG4gICAgICB7IHJlYWRGaWxlLFxyXG4gICAgICAgIHdyaXRlRmlsZSxcclxuICAgICAgICBpc0VudHJ5RmlsZSxcclxuICAgICAgICByZWFkRGlyZWN0b3J5LFxyXG4gICAgICAgIGlzRW50cnlEaXJlY3RvcnksXHJcbiAgICAgICAgY2hlY2tFbnRyeUV4aXN0czogY2hlY2tGaWxlRXhpc3RzIH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKTtcclxuXHJcbiAgICBpZiAodG9wbW9zdERpcmVjdG9yeU5hbWUgIT09IG51bGwpIHtcclxuICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3REaXJlY3RvcnlOYW1lKSxcclxuICAgICAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICBmaWxlID0gZW50cnlEaXJlY3RvcnkgP1xyXG4gICAgICAgICAgICAgICBmaWxlRnJvbVByb2plY3QocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSA6XHJcbiAgICAgICAgICAgICAgICAgZmlsZUZyb21SZWxlYXNlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzYXZlRmlsZShmaWxlLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBmaWxlUGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxyXG4gICAgICAgIGFic29sdXRlRmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgZmlsZVBhdGgpLFxyXG4gICAgICAgIGZpbGVFeGlzdHMgPSBjaGVja0ZpbGVFeGlzdHMoYWJzb2x1dGVGaWxlUGF0aCk7XHJcblxyXG4gIGlmIChmaWxlRXhpc3RzKSB7XHJcbiAgICBjb25zdCBmaWxlUGF0aCA9IGFic29sdXRlRmlsZVBhdGgsICAvLy9cclxuICAgICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICB3cml0ZUZpbGUoZmlsZVBhdGgsIGNvbnRlbnQpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgLy8vXHJcbiAgICB9XHJcblxyXG4gICAgc3VjY2VzcyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gc3VjY2VzcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRGaWxlcyhwYXRocywgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IGZpbGVzID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHBhdGhzTGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xyXG5cclxuICAgIGlmIChwYXRoc0xlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgZmlyc3RQYXRoID0gZmlyc3QocGF0aHMpLFxyXG4gICAgICAgICAgICBwYXRoID0gZmlyc3RQYXRoLCAvLy9cclxuICAgICAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKHBhdGgpO1xyXG5cclxuICAgICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3REaXJlY3RvcnlOYW1lKSxcclxuICAgICAgICAgICAgICBlbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICAgICAgZmlsZXMgPSBlbnRyeURpcmVjdG9yeSA/XHJcbiAgICAgICAgICAgICAgICAgIGZpbGVzRnJvbVByb2plY3QocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkgOlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGVzRnJvbVJlbGVhc2UocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmlsZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUmVsZWFzZShyZWxlYXNlTmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IHJlbGVhc2UgPSBudWxsO1xyXG5cclxuICB0cnkge1xyXG4gICAgY29uc3QgbmFtZSA9IHJlbGVhc2VOYW1lLCAvLy9cclxuICAgICAgICAgIHRvcG1vc3RGaWxlTmFtZSA9IHJlbGVhc2VOYW1lLCAgLy8vXHJcbiAgICAgICAgICBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdG9wbW9zdEZpbGVOYW1lKSxcclxuICAgICAgICAgIGVudHJ5RmlsZSA9IGlzRW50cnlGaWxlKGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgaWYgKGVudHJ5RmlsZSkge1xyXG4gICAgICBsZXQganNvbixcclxuICAgICAgICAgIGVudHJpZXM7XHJcblxyXG4gICAgICBjb25zdCBjb250ZW50ID0gcmVhZEZpbGUoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICAgIGpzb24gPSBKU09OLnBhcnNlKGNvbnRlbnQpO1xyXG5cclxuICAgICAgKHsgZW50cmllcyB9ID0ganNvbik7XHJcblxyXG4gICAgICBqc29uICA9IGVudHJpZXM7ICAvLy9cclxuXHJcbiAgICAgIGVudHJpZXMgPSBFbnRyaWVzLmZyb21KU09OKGpzb24pO1xyXG5cclxuICAgICAgcmVsZWFzZSA9IFJlbGVhc2UuZnJvbU5hbWVBbmRFbnRyaWVzKG5hbWUsIGVudHJpZXMpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiByZWxlYXNlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZFByb2plY3QocHJvamVjdE5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpIHtcclxuICBsZXQgcHJvamVjdCA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBuYW1lID0gcHJvamVjdE5hbWUsICAvLy9cclxuICAgICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lID0gcHJvamVjdE5hbWUsIC8vL1xyXG4gICAgICAgICAgZW50cmllcyA9IGxvYWRFbnRyaWVzKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKTtcclxuXHJcbiAgICBwcm9qZWN0ID0gUHJvamVjdC5mcm9tTmFtZUFuZEVudHJpZXMobmFtZSwgZW50cmllcyk7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHByb2plY3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUmVsZWFzZXMocHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IHJlbGVhc2VzO1xyXG5cclxuICB0cnkge1xyXG4gICAgcmVsZWFzZXMgPSBSZWxlYXNlcy5mcm9tTm90aGluZygpO1xyXG5cclxuICAgIGNvbnN0IHRvcG1vc3RGaWxlTmFtZXMgPSB0b3Btb3N0RmlsZU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgpLFxyXG4gICAgICAgICAgcmVsZWFzZU5hbWVzID0gdG9wbW9zdEZpbGVOYW1lczsgIC8vL1xyXG5cclxuICAgIHJlbGVhc2VOYW1lcy5mb3JFYWNoKChyZWxlYXNlTmFtZSkgPT4ge1xyXG4gICAgICBjb25zdCByZWxlYXNlID0gbG9hZFJlbGVhc2UocmVsZWFzZU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgICBpZiAocmVsZWFzZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIHJlbGVhc2VzLmFkZFJlbGVhc2UocmVsZWFzZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICByZWxlYXNlcyA9IG51bGw7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcmVsZWFzZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcykge1xyXG4gIGxldCBwcm9qZWN0cztcclxuXHJcbiAgdHJ5IHtcclxuICAgIHByb2plY3RzID0gUHJvamVjdHMuZnJvbU5vdGhpbmcoKTtcclxuXHJcbiAgICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZXMgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoKHByb2plY3RzRGlyZWN0b3J5UGF0aCksXHJcbiAgICAgICAgICBwcm9qZWN0TmFtZXMgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7IC8vL1xyXG5cclxuICAgIHByb2plY3ROYW1lcy5mb3JFYWNoKChwcm9qZWN0TmFtZSkgPT4ge1xyXG4gICAgICBjb25zdCBwcm9qZWN0ID0gbG9hZFByb2plY3QocHJvamVjdE5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpO1xyXG5cclxuICAgICAgaWYgKHByb2plY3QgIT09IG51bGwpIHtcclxuICAgICAgICBwcm9qZWN0cy5hZGRQcm9qZWN0KHByb2plY3QpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgcHJvamVjdHMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHByb2plY3RzO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbG9hZEZpbGUsXHJcbiAgc2F2ZUZpbGUsXHJcbiAgbG9hZEZpbGVzLFxyXG4gIGxvYWRSZWxlYXNlLFxyXG4gIGxvYWRQcm9qZWN0LFxyXG4gIGxvYWRSZWxlYXNlcyxcclxuICBsb2FkUHJvamVjdHNcclxufTtcclxuXHJcbmZ1bmN0aW9uIGxvYWRFbnRyaWVzKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKSB7XHJcbiAgY29uc3QgZW50cmllcyA9IEVudHJpZXMuZnJvbU5vdGhpbmcoKSxcclxuICAgICAgICByZWxhdGl2ZURpcmVjdG9yeVBhdGggPSB0b3Btb3N0RGlyZWN0b3J5TmFtZTsgIC8vL1xyXG5cclxuICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChlbnRyaWVzLCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpO1xyXG5cclxuICByZXR1cm4gZW50cmllcztcclxufVxyXG5cclxuZnVuY3Rpb24gbG9hZERpcmVjdG9yeShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCksXHJcbiAgICAgICAgZGlyZWN0b3J5ID0gZW50cnlEaXJlY3RvcnkgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgRGlyZWN0b3J5LmZyb21QYXRoKHBhdGgpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcclxuXHJcbiAgcmV0dXJuIGRpcmVjdG9yeTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsZUZyb21Qcm9qZWN0KHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlID0gbnVsbDtcclxuXHJcbiAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGgpLFxyXG4gICAgICAgIGVudHJ5RmlsZSA9IGlzRW50cnlGaWxlKGFic29sdXRlUGF0aCk7XHJcblxyXG4gIGlmIChlbnRyeUZpbGUpIHtcclxuICAgIGNvbnN0IHJlbGVhc2VkID0gZmFsc2UsXHJcbiAgICAgICAgICBjb250ZW50ID0gcmVhZEZpbGUoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICBmaWxlID0gRmlsZS5mcm9tUGF0aENvbnRlbnRBbmRSZWxlYXNlZChwYXRoLCBjb250ZW50LCByZWxlYXNlZCk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmlsZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsZUZyb21SZWxlYXNlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKSxcclxuICAgICAgICB0b3Btb3N0RmlsZU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZSwgLy8vXHJcbiAgICAgICAgcmVsZWFzZSA9IGxvYWRSZWxlYXNlKHRvcG1vc3RGaWxlTmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICBmaWxlID0gcmVsZWFzZS5nZXRGaWxlKHBhdGgpO1xyXG5cclxuICByZXR1cm4gZmlsZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsZXNGcm9tUHJvamVjdChwYXRocywgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgZmlsZXMgPSBGaWxlcy5mcm9tTm90aGluZygpO1xyXG5cclxuICBwYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XHJcbiAgICBjb25zdCBmaWxlID0gZmlsZUZyb21Qcm9qZWN0KHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgZmlsZXMuYWRkRmlsZShmaWxlKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWxlc0Zyb21SZWxlYXNlKHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBmaWxlcyA9IEZpbGVzLmZyb21Ob3RoaW5nKCksXHJcbiAgICAgICAgcGF0aHNMZW5ndGggPSBwYXRocy5sZW5ndGg7XHJcblxyXG4gIGlmIChwYXRoc0xlbmd0aCA+IDApIHtcclxuICAgIGNvbnN0IGZpcnN0UGF0aCA9IGZpcnN0KHBhdGhzKSxcclxuICAgICAgICAgIHBhdGggPSBmaXJzdFBhdGgsIC8vL1xyXG4gICAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKHBhdGgpLFxyXG4gICAgICAgICAgdG9wbW9zdEZpbGVOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWUsIC8vL1xyXG4gICAgICAgICAgcmVsZWFzZSA9IGxvYWRSZWxlYXNlKHRvcG1vc3RGaWxlTmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICBwYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSByZWxlYXNlLmdldEZpbGUocGF0aCk7XHJcblxyXG4gICAgICBmaWxlcy5hZGRGaWxlKGZpbGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmlsZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGVudHJpZXMsIHJlbGF0aXZlRGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcykge1xyXG4gIGNvbnN0IGFic29sdXRlRGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCByZWxhdGl2ZURpcmVjdG9yeVBhdGgpLFxyXG4gICAgICAgIHN1YkVudHJ5TmFtZXMgPSByZWFkRGlyZWN0b3J5KGFic29sdXRlRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHN1YkVudHJ5TmFtZXMuZm9yRWFjaCgoc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBzdWJFbnRyeU5hbWVIaWRkZW5OYW1lID0gaXNOYW1lSGlkZGVuTmFtZShzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMgPSAhbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXM7XHJcblxyXG4gICAgaWYgKCFzdWJFbnRyeU5hbWVIaWRkZW5OYW1lKSB7XHJcbiAgICAgIGNvbnN0IHBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHJlbGF0aXZlRGlyZWN0b3J5UGF0aCwgc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgICAgZGlyZWN0b3J5ID0gbG9hZERpcmVjdG9yeShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKGRpcmVjdG9yeSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeVBhdGggPSBwYXRoOyAvLy9cclxuXHJcbiAgICAgICAgaWYgKGxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgICAgICAgICBlbnRyaWVzLmFkZERpcmVjdG9yeShkaXJlY3RvcnkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgoZW50cmllcywgZGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcyk7IC8vL1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKSxcclxuICAgICAgICAgICAgICAgIGZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoID0gaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aChmaWxlUGF0aCksXHJcbiAgICAgICAgICAgICAgICBmaWxlUmVjb2duaXNlZEZpbGUgPSBmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aDsgIC8vL1xyXG5cclxuICAgICAgICAgIGlmIChmaWxlUmVjb2duaXNlZEZpbGUgfHwgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgICAgZW50cmllcy5hZGRGaWxlKGZpbGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0b3Btb3N0RmlsZU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgdG9wbW9zdEZpbGVOYW1lcztcclxuXHJcbiAgY29uc3Qgc3ViRW50cnlOYW1lcyA9IHJlYWREaXJlY3RvcnkocHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgdG9wbW9zdEZpbGVOYW1lcyA9IHN1YkVudHJ5TmFtZXMucmVkdWNlKCh0b3Btb3N0RmlsZU5hbWVzLCBzdWJFbnRyeU5hbWUpID0+IHtcclxuICAgIGNvbnN0IGFic29sdXRlU3ViRW50cnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICBzdWJFbnRyeU5hbWVIaWRkZW5OYW1lID0gaXNOYW1lSGlkZGVuTmFtZShzdWJFbnRyeU5hbWUpO1xyXG5cclxuICAgIGlmICghc3ViRW50cnlOYW1lSGlkZGVuTmFtZSkge1xyXG4gICAgICBjb25zdCBzdWJFbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVN1YkVudHJ5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoc3ViRW50cnlGaWxlKSB7XHJcbiAgICAgICAgY29uc3QgdG9wbW9zdEZpbGVOYW1lID0gc3ViRW50cnlOYW1lOyAgLy8vXHJcblxyXG4gICAgICAgIHRvcG1vc3RGaWxlTmFtZXMucHVzaCh0b3Btb3N0RmlsZU5hbWUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdG9wbW9zdEZpbGVOYW1lcztcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiB0b3Btb3N0RmlsZU5hbWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0b3Btb3N0RGlyZWN0b3J5TmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoKHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcblxyXG4gIGNvbnN0IHN1YkVudHJ5TmFtZXMgPSByZWFkRGlyZWN0b3J5KHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHRvcG1vc3REaXJlY3RvcnlOYW1lcyA9IHN1YkVudHJ5TmFtZXMucmVkdWNlKCh0b3Btb3N0RGlyZWN0b3J5TmFtZXMsIHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3QgYWJzb2x1dGVTdWJFbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZUhpZGRlbk5hbWUgPSBpc05hbWVIaWRkZW5OYW1lKHN1YkVudHJ5TmFtZSk7XHJcblxyXG4gICAgaWYgKCFzdWJFbnRyeU5hbWVIaWRkZW5OYW1lKSB7XHJcbiAgICAgIGNvbnN0IHN1YkVudHJ5RGlyZWN0b3J5ID0gaXNFbnRyeURpcmVjdG9yeShhYnNvbHV0ZVN1YkVudHJ5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoc3ViRW50cnlEaXJlY3RvcnkpIHtcclxuICAgICAgICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHN1YkVudHJ5TmFtZTsgIC8vL1xyXG5cclxuICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMucHVzaCh0b3Btb3N0RGlyZWN0b3J5TmFtZSlcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gdG9wbW9zdERpcmVjdG9yeU5hbWVzO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJsb2FkRmlsZSIsImxvYWRGaWxlcyIsImxvYWRQcm9qZWN0IiwibG9hZFByb2plY3RzIiwibG9hZFJlbGVhc2UiLCJsb2FkUmVsZWFzZXMiLCJzYXZlRmlsZSIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoIiwiZmlsZVBhdGhVdGlsaXRpZXMiLCJjb25jYXRlbmF0ZVBhdGhzIiwicGF0aFV0aWxpdGllcyIsInRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgiLCJyZWFkRmlsZSIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJ3cml0ZUZpbGUiLCJpc0VudHJ5RmlsZSIsInJlYWREaXJlY3RvcnkiLCJpc0VudHJ5RGlyZWN0b3J5IiwiY2hlY2tFbnRyeUV4aXN0cyIsImNoZWNrRmlsZUV4aXN0cyIsInBhdGgiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJmaWxlIiwidG9wbW9zdERpcmVjdG9yeU5hbWUiLCJhYnNvbHV0ZVBhdGgiLCJlbnRyeURpcmVjdG9yeSIsImZpbGVGcm9tUHJvamVjdCIsImZpbGVGcm9tUmVsZWFzZSIsImVycm9yIiwic3VjY2VzcyIsImZpbGVQYXRoIiwiZ2V0UGF0aCIsImFic29sdXRlRmlsZVBhdGgiLCJmaWxlRXhpc3RzIiwiY29udGVudCIsImdldENvbnRlbnQiLCJwYXRocyIsImZpbGVzIiwicGF0aHNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdFBhdGgiLCJmaWxlc0Zyb21Qcm9qZWN0IiwiZmlsZXNGcm9tUmVsZWFzZSIsInJlbGVhc2VOYW1lIiwicmVsZWFzZSIsIm5hbWUiLCJ0b3Btb3N0RmlsZU5hbWUiLCJlbnRyeUZpbGUiLCJqc29uIiwiZW50cmllcyIsIkpTT04iLCJwYXJzZSIsIkVudHJpZXMiLCJmcm9tSlNPTiIsIlJlbGVhc2UiLCJmcm9tTmFtZUFuZEVudHJpZXMiLCJwcm9qZWN0TmFtZSIsImxvYWRPbmx5UmVjb2duaXNlZEZpbGVzIiwicHJvamVjdCIsImxvYWRFbnRyaWVzIiwiUHJvamVjdCIsInJlbGVhc2VzIiwiUmVsZWFzZXMiLCJmcm9tTm90aGluZyIsInRvcG1vc3RGaWxlTmFtZXMiLCJ0b3Btb3N0RmlsZU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aCIsInJlbGVhc2VOYW1lcyIsImZvckVhY2giLCJhZGRSZWxlYXNlIiwicHJvamVjdHMiLCJQcm9qZWN0cyIsInRvcG1vc3REaXJlY3RvcnlOYW1lcyIsInRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJwcm9qZWN0TmFtZXMiLCJhZGRQcm9qZWN0IiwicmVsYXRpdmVEaXJlY3RvcnlQYXRoIiwiZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgiLCJsb2FkRGlyZWN0b3J5IiwiZGlyZWN0b3J5IiwiRGlyZWN0b3J5IiwiZnJvbVBhdGgiLCJyZWxlYXNlZCIsIkZpbGUiLCJmcm9tUGF0aENvbnRlbnRBbmRSZWxlYXNlZCIsImdldEZpbGUiLCJGaWxlcyIsImFkZEZpbGUiLCJhYnNvbHV0ZURpcmVjdG9yeVBhdGgiLCJzdWJFbnRyeU5hbWVzIiwic3ViRW50cnlOYW1lIiwic3ViRW50cnlOYW1lSGlkZGVuTmFtZSIsImlzTmFtZUhpZGRlbk5hbWUiLCJsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3RvcmllcyIsImRpcmVjdG9yeVBhdGgiLCJhZGREaXJlY3RvcnkiLCJmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCIsImZpbGVSZWNvZ25pc2VkRmlsZSIsInJlZHVjZSIsImFic29sdXRlU3ViRW50cnlQYXRoIiwic3ViRW50cnlGaWxlIiwicHVzaCIsInN1YkVudHJ5RGlyZWN0b3J5Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFzTEEsT0FRRTtlQVJGOztJQXJLZ0JBLFFBQVE7ZUFBUkE7O0lBNENBQyxT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
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzLCBwYXRoVXRpbGl0aWVzLCBmaWxlU3lzdGVtVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xyXG5pbXBvcnQgeyBGaWxlLCBGaWxlcywgRW50cmllcywgUHJvamVjdCwgUmVsZWFzZSwgUHJvamVjdHMsIFJlbGVhc2VzLCBEaXJlY3RvcnksIGZpbGVQYXRoVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWVudGl0aWVzXCI7XHJcblxyXG5pbXBvcnQgeyBpc05hbWVIaWRkZW5OYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9uYW1lXCI7XHJcblxyXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcyxcclxuICAgICAgeyBpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoIH0gPSBmaWxlUGF0aFV0aWxpdGllcyxcclxuICAgICAgeyBjb25jYXRlbmF0ZVBhdGhzLCB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoIH0gPSBwYXRoVXRpbGl0aWVzLFxyXG4gICAgICB7IHJlYWRGaWxlLFxyXG4gICAgICAgIHdyaXRlRmlsZSxcclxuICAgICAgICBpc0VudHJ5RmlsZSxcclxuICAgICAgICByZWFkRGlyZWN0b3J5LFxyXG4gICAgICAgIGlzRW50cnlEaXJlY3RvcnksXHJcbiAgICAgICAgY2hlY2tFbnRyeUV4aXN0czogY2hlY2tGaWxlRXhpc3RzIH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKTtcclxuXHJcbiAgICBpZiAodG9wbW9zdERpcmVjdG9yeU5hbWUgIT09IG51bGwpIHtcclxuICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3REaXJlY3RvcnlOYW1lKSxcclxuICAgICAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICBmaWxlID0gZW50cnlEaXJlY3RvcnkgP1xyXG4gICAgICAgICAgICAgICBmaWxlRnJvbVByb2plY3QocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSA6XHJcbiAgICAgICAgICAgICAgICAgZmlsZUZyb21SZWxlYXNlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzYXZlRmlsZShmaWxlLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBmaWxlUGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxyXG4gICAgICAgIGFic29sdXRlRmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgZmlsZVBhdGgpLFxyXG4gICAgICAgIGZpbGVFeGlzdHMgPSBjaGVja0ZpbGVFeGlzdHMoYWJzb2x1dGVGaWxlUGF0aCk7XHJcblxyXG4gIGlmIChmaWxlRXhpc3RzKSB7XHJcbiAgICBjb25zdCBmaWxlUGF0aCA9IGFic29sdXRlRmlsZVBhdGgsICAvLy9cclxuICAgICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICB3cml0ZUZpbGUoZmlsZVBhdGgsIGNvbnRlbnQpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgLy8vXHJcbiAgICB9XHJcblxyXG4gICAgc3VjY2VzcyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gc3VjY2VzcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRGaWxlcyhwYXRocywgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IGZpbGVzO1xyXG5cclxuICB0cnkge1xyXG4gICAgZmlsZXMgPSBGaWxlcy5mcm9tTm90aGluZygpO1xyXG5cclxuICAgIGNvbnN0IHBhdGhzTGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xyXG5cclxuICAgIGlmIChwYXRoc0xlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgZmlyc3RQYXRoID0gZmlyc3QocGF0aHMpLFxyXG4gICAgICAgICAgICBwYXRoID0gZmlyc3RQYXRoLCAvLy9cclxuICAgICAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKHBhdGgpO1xyXG5cclxuICAgICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3REaXJlY3RvcnlOYW1lKSxcclxuICAgICAgICAgICAgICBlbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICAgICAgZmlsZXMgPSBlbnRyeURpcmVjdG9yeSA/XHJcbiAgICAgICAgICAgICAgICAgIGZpbGVzRnJvbVByb2plY3QocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkgOlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGVzRnJvbVJlbGVhc2UocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgZmlsZXMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZFJlbGVhc2UocmVsZWFzZU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCByZWxlYXNlID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IG5hbWUgPSByZWxlYXNlTmFtZSwgLy8vXHJcbiAgICAgICAgICB0b3Btb3N0RmlsZU5hbWUgPSByZWxlYXNlTmFtZSwgIC8vL1xyXG4gICAgICAgICAgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3RGaWxlTmFtZSksXHJcbiAgICAgICAgICBlbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGlmIChlbnRyeUZpbGUpIHtcclxuICAgICAgbGV0IGpzb24sXHJcbiAgICAgICAgICBlbnRyaWVzO1xyXG5cclxuICAgICAgY29uc3QgY29udGVudCA9IHJlYWRGaWxlKGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICBqc29uID0gSlNPTi5wYXJzZShjb250ZW50KTtcclxuXHJcbiAgICAgICh7IGVudHJpZXMgfSA9IGpzb24pO1xyXG5cclxuICAgICAganNvbiAgPSBlbnRyaWVzOyAgLy8vXHJcblxyXG4gICAgICBlbnRyaWVzID0gRW50cmllcy5mcm9tSlNPTihqc29uKTtcclxuXHJcbiAgICAgIHJlbGVhc2UgPSBSZWxlYXNlLmZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKTtcclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gcmVsZWFzZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRQcm9qZWN0KHByb2plY3ROYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKSB7XHJcbiAgbGV0IHByb2plY3QgPSBudWxsO1xyXG5cclxuICB0cnkge1xyXG4gICAgY29uc3QgbmFtZSA9IHByb2plY3ROYW1lLCAgLy8vXHJcbiAgICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHByb2plY3ROYW1lLCAvLy9cclxuICAgICAgICAgIGVudHJpZXMgPSBsb2FkRW50cmllcyh0b3Btb3N0RGlyZWN0b3J5TmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcyk7XHJcblxyXG4gICAgcHJvamVjdCA9IFByb2plY3QuZnJvbU5hbWVBbmRFbnRyaWVzKG5hbWUsIGVudHJpZXMpO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiBwcm9qZWN0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZFJlbGVhc2VzKHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCByZWxlYXNlcztcclxuXHJcbiAgdHJ5IHtcclxuICAgIHJlbGVhc2VzID0gUmVsZWFzZXMuZnJvbU5vdGhpbmcoKTtcclxuXHJcbiAgICBjb25zdCB0b3Btb3N0RmlsZU5hbWVzID0gdG9wbW9zdEZpbGVOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICAgIHJlbGVhc2VOYW1lcyA9IHRvcG1vc3RGaWxlTmFtZXM7ICAvLy9cclxuXHJcbiAgICByZWxlYXNlTmFtZXMuZm9yRWFjaCgocmVsZWFzZU5hbWUpID0+IHtcclxuICAgICAgY29uc3QgcmVsZWFzZSA9IGxvYWRSZWxlYXNlKHJlbGVhc2VOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKHJlbGVhc2UgIT09IG51bGwpIHtcclxuICAgICAgICByZWxlYXNlcy5hZGRSZWxlYXNlKHJlbGVhc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgcmVsZWFzZXMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJlbGVhc2VzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZFByb2plY3RzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpIHtcclxuICBsZXQgcHJvamVjdHM7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBwcm9qZWN0cyA9IFByb2plY3RzLmZyb21Ob3RoaW5nKCk7XHJcblxyXG4gICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWVzID0gdG9wbW9zdERpcmVjdG9yeU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgpLFxyXG4gICAgICAgICAgcHJvamVjdE5hbWVzID0gdG9wbW9zdERpcmVjdG9yeU5hbWVzOyAvLy9cclxuXHJcbiAgICBwcm9qZWN0TmFtZXMuZm9yRWFjaCgocHJvamVjdE5hbWUpID0+IHtcclxuICAgICAgY29uc3QgcHJvamVjdCA9IGxvYWRQcm9qZWN0KHByb2plY3ROYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKTtcclxuXHJcbiAgICAgIGlmIChwcm9qZWN0ICE9PSBudWxsKSB7XHJcbiAgICAgICAgcHJvamVjdHMuYWRkUHJvamVjdChwcm9qZWN0KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIHByb2plY3RzID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHJldHVybiBwcm9qZWN0cztcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIGxvYWRGaWxlLFxyXG4gIHNhdmVGaWxlLFxyXG4gIGxvYWRGaWxlcyxcclxuICBsb2FkUmVsZWFzZSxcclxuICBsb2FkUHJvamVjdCxcclxuICBsb2FkUmVsZWFzZXMsXHJcbiAgbG9hZFByb2plY3RzXHJcbn07XHJcblxyXG5mdW5jdGlvbiBsb2FkRW50cmllcyh0b3Btb3N0RGlyZWN0b3J5TmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcykge1xyXG4gIGNvbnN0IGVudHJpZXMgPSBFbnRyaWVzLmZyb21Ob3RoaW5nKCksXHJcbiAgICAgICAgcmVsYXRpdmVEaXJlY3RvcnlQYXRoID0gdG9wbW9zdERpcmVjdG9yeU5hbWU7ICAvLy9cclxuXHJcbiAgZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgoZW50cmllcywgcmVsYXRpdmVEaXJlY3RvcnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKTtcclxuXHJcbiAgcmV0dXJuIGVudHJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGxvYWREaXJlY3RvcnkocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGgpLFxyXG4gICAgICAgIGVudHJ5RGlyZWN0b3J5ID0gaXNFbnRyeURpcmVjdG9yeShhYnNvbHV0ZVBhdGgpLFxyXG4gICAgICAgIGRpcmVjdG9yeSA9IGVudHJ5RGlyZWN0b3J5ID9cclxuICAgICAgICAgICAgICAgICAgICAgIERpcmVjdG9yeS5mcm9tUGF0aChwYXRoKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7XHJcblxyXG4gIHJldHVybiBkaXJlY3Rvcnk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbGVGcm9tUHJvamVjdChwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgZmlsZSA9IG51bGw7XHJcblxyXG4gIGNvbnN0IGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoKSxcclxuICAgICAgICBlbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICBpZiAoZW50cnlGaWxlKSB7XHJcbiAgICBjb25zdCByZWxlYXNlZCA9IGZhbHNlLFxyXG4gICAgICAgICAgY29udGVudCA9IHJlYWRGaWxlKGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgZmlsZSA9IEZpbGUuZnJvbVBhdGhDb250ZW50QW5kUmVsZWFzZWQocGF0aCwgY29udGVudCwgcmVsZWFzZWQpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbGVGcm9tUmVsZWFzZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgocGF0aCksXHJcbiAgICAgICAgdG9wbW9zdEZpbGVOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWUsIC8vL1xyXG4gICAgICAgIHJlbGVhc2UgPSBsb2FkUmVsZWFzZSh0b3Btb3N0RmlsZU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCksXHJcbiAgICAgICAgZmlsZSA9IHJlbGVhc2UuZ2V0RmlsZShwYXRoKTtcclxuXHJcbiAgcmV0dXJuIGZpbGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbGVzRnJvbVByb2plY3QocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGNvbnN0IGZpbGVzID0gRmlsZXMuZnJvbU5vdGhpbmcoKTtcclxuXHJcbiAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IGZpbGVGcm9tUHJvamVjdChwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgIGZpbGVzLmFkZEZpbGUoZmlsZSk7XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiBmaWxlcztcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsZXNGcm9tUmVsZWFzZShwYXRocywgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgZmlsZXMgPSBGaWxlcy5mcm9tTm90aGluZygpLFxyXG4gICAgICAgIHBhdGhzTGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xyXG5cclxuICBpZiAocGF0aHNMZW5ndGggPiAwKSB7XHJcbiAgICBjb25zdCBmaXJzdFBhdGggPSBmaXJzdChwYXRocyksXHJcbiAgICAgICAgICBwYXRoID0gZmlyc3RQYXRoLCAvLy9cclxuICAgICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKSxcclxuICAgICAgICAgIHRvcG1vc3RGaWxlTmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lLCAvLy9cclxuICAgICAgICAgIHJlbGVhc2UgPSBsb2FkUmVsZWFzZSh0b3Btb3N0RmlsZU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xyXG4gICAgICBjb25zdCBmaWxlID0gcmVsZWFzZS5nZXRGaWxlKHBhdGgpO1xyXG5cclxuICAgICAgZmlsZXMuYWRkRmlsZShmaWxlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChlbnRyaWVzLCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpIHtcclxuICBjb25zdCBhYnNvbHV0ZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcmVsYXRpdmVEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICBzdWJFbnRyeU5hbWVzID0gcmVhZERpcmVjdG9yeShhYnNvbHV0ZURpcmVjdG9yeVBhdGgpO1xyXG5cclxuICBzdWJFbnRyeU5hbWVzLmZvckVhY2goKHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3Qgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIGxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzID0gIWxvYWRPbmx5UmVjb2duaXNlZEZpbGVzO1xyXG5cclxuICAgIGlmICghc3ViRW50cnlOYW1lSGlkZGVuTmFtZSkge1xyXG4gICAgICBjb25zdCBwYXRoID0gY29uY2F0ZW5hdGVQYXRocyhyZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICAgIGRpcmVjdG9yeSA9IGxvYWREaXJlY3RvcnkocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICAgIGlmIChkaXJlY3RvcnkgIT09IG51bGwpIHtcclxuICAgICAgICBjb25zdCBkaXJlY3RvcnlQYXRoID0gcGF0aDsgLy8vXHJcblxyXG4gICAgICAgIGlmIChsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gICAgICAgICAgZW50cmllcy5hZGREaXJlY3RvcnkoZGlyZWN0b3J5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGVudHJpZXMsIGRpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpOyAvLy9cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBmaWxlID0gbG9hZEZpbGUocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGUgIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gZmlsZS5nZXRQYXRoKCksXHJcbiAgICAgICAgICAgICAgICBmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCA9IGlzRmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgoZmlsZVBhdGgpLFxyXG4gICAgICAgICAgICAgICAgZmlsZVJlY29nbmlzZWRGaWxlID0gZmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGg7ICAvLy9cclxuXHJcbiAgICAgICAgICBpZiAoZmlsZVJlY29nbmlzZWRGaWxlIHx8IGxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgICAgICAgICAgIGVudHJpZXMuYWRkRmlsZShmaWxlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gdG9wbW9zdEZpbGVOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IHRvcG1vc3RGaWxlTmFtZXM7XHJcblxyXG4gIGNvbnN0IHN1YkVudHJ5TmFtZXMgPSByZWFkRGlyZWN0b3J5KHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHRvcG1vc3RGaWxlTmFtZXMgPSBzdWJFbnRyeU5hbWVzLnJlZHVjZSgodG9wbW9zdEZpbGVOYW1lcywgc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVN1YkVudHJ5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKTtcclxuXHJcbiAgICBpZiAoIXN1YkVudHJ5TmFtZUhpZGRlbk5hbWUpIHtcclxuICAgICAgY29uc3Qgc3ViRW50cnlGaWxlID0gaXNFbnRyeUZpbGUoYWJzb2x1dGVTdWJFbnRyeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKHN1YkVudHJ5RmlsZSkge1xyXG4gICAgICAgIGNvbnN0IHRvcG1vc3RGaWxlTmFtZSA9IHN1YkVudHJ5TmFtZTsgIC8vL1xyXG5cclxuICAgICAgICB0b3Btb3N0RmlsZU5hbWVzLnB1c2godG9wbW9zdEZpbGVOYW1lKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRvcG1vc3RGaWxlTmFtZXM7XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gdG9wbW9zdEZpbGVOYW1lcztcclxufVxyXG5cclxuZnVuY3Rpb24gdG9wbW9zdERpcmVjdG9yeU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgdG9wbW9zdERpcmVjdG9yeU5hbWVzO1xyXG5cclxuICBjb25zdCBzdWJFbnRyeU5hbWVzID0gcmVhZERpcmVjdG9yeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMgPSBzdWJFbnRyeU5hbWVzLnJlZHVjZSgodG9wbW9zdERpcmVjdG9yeU5hbWVzLCBzdWJFbnRyeU5hbWUpID0+IHtcclxuICAgIGNvbnN0IGFic29sdXRlU3ViRW50cnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICBzdWJFbnRyeU5hbWVIaWRkZW5OYW1lID0gaXNOYW1lSGlkZGVuTmFtZShzdWJFbnRyeU5hbWUpO1xyXG5cclxuICAgIGlmICghc3ViRW50cnlOYW1lSGlkZGVuTmFtZSkge1xyXG4gICAgICBjb25zdCBzdWJFbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVTdWJFbnRyeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKHN1YkVudHJ5RGlyZWN0b3J5KSB7XHJcbiAgICAgICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSBzdWJFbnRyeU5hbWU7ICAvLy9cclxuXHJcbiAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWVzLnB1c2godG9wbW9zdERpcmVjdG9yeU5hbWUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdG9wbW9zdERpcmVjdG9yeU5hbWVzO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxufVxyXG4iXSwibmFtZXMiOlsibG9hZEZpbGUiLCJsb2FkRmlsZXMiLCJsb2FkUHJvamVjdCIsImxvYWRQcm9qZWN0cyIsImxvYWRSZWxlYXNlIiwibG9hZFJlbGVhc2VzIiwic2F2ZUZpbGUiLCJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwiaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCIsImZpbGVQYXRoVXRpbGl0aWVzIiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoIiwicmVhZEZpbGUiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwid3JpdGVGaWxlIiwiaXNFbnRyeUZpbGUiLCJyZWFkRGlyZWN0b3J5IiwiaXNFbnRyeURpcmVjdG9yeSIsImNoZWNrRW50cnlFeGlzdHMiLCJjaGVja0ZpbGVFeGlzdHMiLCJwYXRoIiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwiZmlsZSIsInRvcG1vc3REaXJlY3RvcnlOYW1lIiwiYWJzb2x1dGVQYXRoIiwiZW50cnlEaXJlY3RvcnkiLCJmaWxlRnJvbVByb2plY3QiLCJmaWxlRnJvbVJlbGVhc2UiLCJlcnJvciIsInN1Y2Nlc3MiLCJmaWxlUGF0aCIsImdldFBhdGgiLCJhYnNvbHV0ZUZpbGVQYXRoIiwiZmlsZUV4aXN0cyIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwicGF0aHMiLCJmaWxlcyIsIkZpbGVzIiwiZnJvbU5vdGhpbmciLCJwYXRoc0xlbmd0aCIsImxlbmd0aCIsImZpcnN0UGF0aCIsImZpbGVzRnJvbVByb2plY3QiLCJmaWxlc0Zyb21SZWxlYXNlIiwicmVsZWFzZU5hbWUiLCJyZWxlYXNlIiwibmFtZSIsInRvcG1vc3RGaWxlTmFtZSIsImVudHJ5RmlsZSIsImpzb24iLCJlbnRyaWVzIiwiSlNPTiIsInBhcnNlIiwiRW50cmllcyIsImZyb21KU09OIiwiUmVsZWFzZSIsImZyb21OYW1lQW5kRW50cmllcyIsInByb2plY3ROYW1lIiwibG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMiLCJwcm9qZWN0IiwibG9hZEVudHJpZXMiLCJQcm9qZWN0IiwicmVsZWFzZXMiLCJSZWxlYXNlcyIsInRvcG1vc3RGaWxlTmFtZXMiLCJ0b3Btb3N0RmlsZU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aCIsInJlbGVhc2VOYW1lcyIsImZvckVhY2giLCJhZGRSZWxlYXNlIiwicHJvamVjdHMiLCJQcm9qZWN0cyIsInRvcG1vc3REaXJlY3RvcnlOYW1lcyIsInRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJwcm9qZWN0TmFtZXMiLCJhZGRQcm9qZWN0IiwicmVsYXRpdmVEaXJlY3RvcnlQYXRoIiwiZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgiLCJsb2FkRGlyZWN0b3J5IiwiZGlyZWN0b3J5IiwiRGlyZWN0b3J5IiwiZnJvbVBhdGgiLCJyZWxlYXNlZCIsIkZpbGUiLCJmcm9tUGF0aENvbnRlbnRBbmRSZWxlYXNlZCIsImdldEZpbGUiLCJhZGRGaWxlIiwiYWJzb2x1dGVEaXJlY3RvcnlQYXRoIiwic3ViRW50cnlOYW1lcyIsInN1YkVudHJ5TmFtZSIsInN1YkVudHJ5TmFtZUhpZGRlbk5hbWUiLCJpc05hbWVIaWRkZW5OYW1lIiwibG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMiLCJkaXJlY3RvcnlQYXRoIiwiYWRkRGlyZWN0b3J5IiwiZmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgiLCJmaWxlUmVjb2duaXNlZEZpbGUiLCJyZWR1Y2UiLCJhYnNvbHV0ZVN1YkVudHJ5UGF0aCIsInN1YkVudHJ5RmlsZSIsInB1c2giLCJzdWJFbnRyeURpcmVjdG9yeSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lB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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-file-system",
3
3
  "author": "James Smith",
4
- "version": "6.0.53",
4
+ "version": "6.0.57",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-file-system",
7
7
  "description": "Occam's file system functionality.",
@@ -4,7 +4,7 @@ import { nullifyTargetEntryPath } from "./utilities/pathMap";
4
4
  import { pathUtilities, fileSystemUtilities } from "necessary";
5
5
 
6
6
  const { concatenatePaths } = pathUtilities,
7
- { createFile, createDirectory, checkEntryExists } = fileSystemUtilities;
7
+ { createFile, createDirectory, checkEntryExists: checkFileExists, checkEntryExists: checkDirectoryExists } = fileSystemUtilities;
8
8
 
9
9
  export default function createProjectEntries(projectsDirectoryPath, json, callback) {
10
10
  const { pathMaps } = json;
@@ -21,16 +21,6 @@ export default function createProjectEntries(projectsDirectoryPath, json, callba
21
21
  }
22
22
 
23
23
  export function createProjectEntry(projectsDirectoryPath, pathMap) {
24
- const { targetEntryPath } = pathMap,
25
- absoluteTargetEntryPath = concatenatePaths(projectsDirectoryPath, targetEntryPath),
26
- targetEntryExists = checkEntryExists(absoluteTargetEntryPath);
27
-
28
- if (targetEntryExists) {
29
- nullifyTargetEntryPath(pathMap);
30
-
31
- return;
32
- }
33
-
34
24
  const { entryDirectory } = pathMap;
35
25
 
36
26
  entryDirectory ?
@@ -41,7 +31,14 @@ export function createProjectEntry(projectsDirectoryPath, pathMap) {
41
31
  function createProjectFile(projectsDirectoryPath, pathMap) {
42
32
  const { targetEntryPath } = pathMap,
43
33
  targetFilePath = targetEntryPath, ///
44
- absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath);
34
+ absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath),
35
+ targetFileExists = checkFileExists(absoluteTargetFilePath);
36
+
37
+ if (targetFileExists) {
38
+ nullifyTargetEntryPath(pathMap);
39
+
40
+ return;
41
+ }
45
42
 
46
43
  try {
47
44
  const filePath = absoluteTargetFilePath; ///
@@ -55,7 +52,14 @@ function createProjectFile(projectsDirectoryPath, pathMap) {
55
52
  function createProjectDirectory(projectsDirectoryPath, pathMap) {
56
53
  const { targetEntryPath } = pathMap,
57
54
  targetDirectoryPath = targetEntryPath, ///
58
- absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath);
55
+ absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath),
56
+ targetDirectoryExists = checkDirectoryExists(absoluteTargetDirectoryPath);
57
+
58
+ if (targetDirectoryExists) {
59
+ nullifyTargetEntryPath(pathMap);
60
+
61
+ return;
62
+ }
59
63
 
60
64
  try {
61
65
  const directoryPath = absoluteTargetDirectoryPath; ///
@@ -2,10 +2,11 @@
2
2
 
3
3
  import { pathUtilities, fileSystemUtilities } from "necessary";
4
4
 
5
+ import { removeProjectEntry } from "./removeProjectEntries";
5
6
  import { nullifyEntryPaths, nullifyTargetEntryPath } from "./utilities/pathMap";
6
7
 
7
8
  const { concatenatePaths } = pathUtilities,
8
- { moveEntry, checkEntryExists, isDirectoryEmpty } = fileSystemUtilities;
9
+ { moveEntry, isDirectoryEmpty, checkEntryExists, checkEntryExists: checkFileExists, checkEntryExists: checkDirectoryExists } = fileSystemUtilities;
9
10
 
10
11
  export default function moveProjectEntries(projectsDirectoryPath, json, callback) {
11
12
  const { pathMaps } = json;
@@ -28,15 +29,6 @@ export function moveProjectEntry(projectsDirectoryPath, pathMap) {
28
29
  return;
29
30
  }
30
31
 
31
- const absoluteTargetEntryPath = concatenatePaths(projectsDirectoryPath, targetEntryPath),
32
- targetEntryExists = checkEntryExists(absoluteTargetEntryPath);
33
-
34
- if (targetEntryExists) {
35
- nullifyEntryPaths(pathMap);
36
-
37
- return;
38
- }
39
-
40
32
  const { sourceEntryPath } = pathMap,
41
33
  absoluteSourceEntryPath = concatenatePaths(projectsDirectoryPath, sourceEntryPath),
42
34
  sourceEntryExists = checkEntryExists(absoluteSourceEntryPath);
@@ -59,7 +51,14 @@ function moveProjectFile(projectsDirectoryPath, pathMap) {
59
51
  sourceFilePath = sourceEntryPath, ///
60
52
  targetFilePath = targetEntryPath, ///
61
53
  absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath),
62
- absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath);
54
+ absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath),
55
+ targetFileExists = checkFileExists(absoluteTargetFilePath);
56
+
57
+ if (targetFileExists) {
58
+ nullifyEntryPaths(pathMap);
59
+
60
+ return;
61
+ }
63
62
 
64
63
  try {
65
64
  const oldEntryPath = absoluteSourceFilePath, ///
@@ -77,6 +76,7 @@ function moveProjectDirectory(projectsDirectoryPath, pathMap) {
77
76
  targetDirectoryPath = targetEntryPath, ///
78
77
  absoluteSourceDirectoryPath = concatenatePaths(projectsDirectoryPath, sourceDirectoryPath),
79
78
  absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath),
79
+ targetDirectoryExists = checkDirectoryExists(absoluteTargetDirectoryPath),
80
80
  directoryEmpty = isDirectoryEmpty(absoluteSourceDirectoryPath);
81
81
 
82
82
  if (!directoryEmpty) {
@@ -85,6 +85,12 @@ function moveProjectDirectory(projectsDirectoryPath, pathMap) {
85
85
  return;
86
86
  }
87
87
 
88
+ if (targetDirectoryExists) {
89
+ removeProjectEntry(projectsDirectoryPath, pathMap);
90
+
91
+ return;
92
+ }
93
+
88
94
  try {
89
95
  const oldEntryPath = absoluteSourceDirectoryPath, ///
90
96
  newEntryPath = absoluteTargetDirectoryPath; ///
@@ -5,7 +5,7 @@ import { pathUtilities, fileSystemUtilities } from "necessary";
5
5
  import { nullifyEntryPaths, nullifyTargetEntryPath } from "./utilities/pathMap";
6
6
 
7
7
  const { concatenatePaths } = pathUtilities,
8
- { moveEntry, checkEntryExists } = fileSystemUtilities;
8
+ { moveEntry, checkEntryExists, checkEntryExists: checkFileExists, checkEntryExists: checkDirectoryExists } = fileSystemUtilities;
9
9
 
10
10
  export default function renameProjectEntries(projectsDirectoryPath, json, callback) {
11
11
  const { pathMaps } = json;
@@ -28,15 +28,6 @@ export function renameProjectEntry(projectsDirectoryPath, pathMap) {
28
28
  return;
29
29
  }
30
30
 
31
- const absoluteTargetEntryPath = concatenatePaths(projectsDirectoryPath, targetEntryPath),
32
- targetEntryExists = checkEntryExists(absoluteTargetEntryPath);
33
-
34
- if (targetEntryExists) {
35
- nullifyEntryPaths(pathMap);
36
-
37
- return;
38
- }
39
-
40
31
  const { sourceEntryPath } = pathMap,
41
32
  absoluteSourceEntryPath = concatenatePaths(projectsDirectoryPath, sourceEntryPath),
42
33
  sourceEntryExists = checkEntryExists(absoluteSourceEntryPath);
@@ -59,7 +50,14 @@ function renameProjectFile(projectsDirectoryPath, pathMap) {
59
50
  sourceFilePath = sourceEntryPath, ///
60
51
  targetFilePath = targetEntryPath, ///
61
52
  absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath),
62
- absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath);
53
+ absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath),
54
+ targetFileExists = checkFileExists(absoluteTargetFilePath);
55
+
56
+ if (targetFileExists) {
57
+ nullifyEntryPaths(pathMap);
58
+
59
+ return;
60
+ }
63
61
 
64
62
  try {
65
63
  const oldEntryPath = absoluteSourceFilePath, ///
@@ -76,7 +74,14 @@ function renameProjectDirectory(projectsDirectoryPath, pathMap) {
76
74
  sourceDirectoryPath = sourceEntryPath, ///
77
75
  targetDirectoryPath = targetEntryPath, ///
78
76
  absoluteSourceDirectoryPath = concatenatePaths(projectsDirectoryPath, sourceDirectoryPath),
79
- absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath);
77
+ absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath),
78
+ targetDirectoryExists = checkDirectoryExists(absoluteTargetDirectoryPath);
79
+
80
+ if (targetDirectoryExists) {
81
+ nullifyEntryPaths(pathMap);
82
+
83
+ return;
84
+ }
80
85
 
81
86
  try {
82
87
  const oldEntryPath = absoluteSourceDirectoryPath, ///
@@ -60,9 +60,11 @@ export function saveFile(file, projectsDirectoryPath) {
60
60
  }
61
61
 
62
62
  export function loadFiles(paths, projectsDirectoryPath) {
63
- let files = null;
63
+ let files;
64
64
 
65
65
  try {
66
+ files = Files.fromNothing();
67
+
66
68
  const pathsLength = paths.length;
67
69
 
68
70
  if (pathsLength > 0) {
@@ -80,7 +82,7 @@ export function loadFiles(paths, projectsDirectoryPath) {
80
82
  }
81
83
  }
82
84
  } catch (error) {
83
- ///
85
+ files = null;
84
86
  }
85
87
 
86
88
  return files;