occam-file-system 5.0.228 → 5.0.230

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.
@@ -14,12 +14,17 @@ _export(exports, {
14
14
  },
15
15
  createEntryOperation: function() {
16
16
  return createEntryOperation;
17
+ },
18
+ createDirectory: function() {
19
+ return createDirectory;
20
+ },
21
+ createFile: function() {
22
+ return createFile;
17
23
  }
18
24
  });
19
25
  var _necessary = require("necessary");
20
- var _fsextra = require("fs-extra");
21
26
  var _pathMaps = require("./utilities/pathMaps");
22
- var concatenatePaths = _necessary.pathUtilities.concatenatePaths, checkEntryExists = _necessary.fileSystemUtilities.checkEntryExists;
27
+ var concatenatePaths = _necessary.pathUtilities.concatenatePaths, pathWithoutBottommostNameFromPath = _necessary.pathUtilities.pathWithoutBottommostNameFromPath, createFileEx = _necessary.fileSystemUtilities.createFile, createDirectoryEx = _necessary.fileSystemUtilities.createDirectory, checkFileExists = _necessary.fileSystemUtilities.checkEntryExists, checkDirectoryExists = _necessary.fileSystemUtilities.checkEntryExists;
23
28
  function createProjectEntries(projectsDirectoryPath, json, callback) {
24
29
  var pathMaps = json.pathMaps;
25
30
  createEntries(pathMaps, projectsDirectoryPath, function(targetEntryPaths) {
@@ -32,6 +37,34 @@ function createProjectEntries(projectsDirectoryPath, json, callback) {
32
37
  function createEntryOperation(sourceEntryPath, targetEntryPath, entryDirectory, projectsDirectoryPath, callback) {
33
38
  entryDirectory ? createDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) : createFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback);
34
39
  }
40
+ function createDirectory(directoryPath, callback) {
41
+ var error = null;
42
+ var directoryPathWithoutBottommostName = pathWithoutBottommostNameFromPath(directoryPath), parentDirectoryPath = directoryPathWithoutBottommostName, parentDirectoryExists = checkDirectoryExists(parentDirectoryPath);
43
+ if (!parentDirectoryExists) {
44
+ error = "The '".concat(directoryPath, "' directory's parent directory does not exist");
45
+ } else {
46
+ try {
47
+ createDirectoryEx(directoryPath);
48
+ } catch (nativeError) {
49
+ error = nativeError; ///
50
+ }
51
+ }
52
+ callback(error);
53
+ }
54
+ function createFile(filePath, callback) {
55
+ var error = null;
56
+ var filePathWithoutBottommostName = pathWithoutBottommostNameFromPath(filePath), parentDirectoryPath = filePathWithoutBottommostName, parentDirectoryExists = checkDirectoryExists(parentDirectoryPath);
57
+ if (!parentDirectoryExists) {
58
+ error = "The '".concat(filePath, "' file's parent directory does not exist");
59
+ } else {
60
+ try {
61
+ createFileEx(filePath);
62
+ } catch (nativeError) {
63
+ error = nativeError; ///
64
+ }
65
+ }
66
+ callback(error);
67
+ }
35
68
  function createEntries(pathMaps, projectsDirectoryPath, callback) {
36
69
  var targetEntryPaths = [];
37
70
  (0, _pathMaps.asynchronousForEach)(pathMaps, function(sourceEntryPath, targetEntryPath, entryDirectory, next, done, index) {
@@ -44,13 +77,14 @@ function createEntries(pathMaps, projectsDirectoryPath, callback) {
44
77
  });
45
78
  }
46
79
  function createFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
47
- var targetFilePath = targetEntryPath, absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath), targetFileExists = checkEntryExists(absoluteTargetFilePath);
80
+ var targetFilePath = targetEntryPath, absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath), targetFileExists = checkFileExists(absoluteTargetFilePath);
48
81
  if (targetFileExists) {
49
82
  targetEntryPath = null;
50
83
  callback(sourceEntryPath, targetEntryPath);
51
84
  return;
52
85
  }
53
- (0, _fsextra.createFile)(absoluteTargetFilePath, function(error) {
86
+ var filePath = absoluteTargetFilePath; ///
87
+ createFile(filePath, function(error) {
54
88
  if (error) {
55
89
  targetEntryPath = null;
56
90
  }
@@ -58,13 +92,13 @@ function createFileOperation(sourceEntryPath, targetEntryPath, projectsDirectory
58
92
  });
59
93
  }
60
94
  function createDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
61
- var targetDirectoryPath = targetEntryPath, absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath), targetDirectoryExists = checkEntryExists(absoluteTargetDirectoryPath);
95
+ var targetDirectoryPath = targetEntryPath, absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath), targetDirectoryExists = checkFileExists(absoluteTargetDirectoryPath);
62
96
  if (targetDirectoryExists) {
63
97
  targetEntryPath = null;
64
98
  callback(sourceEntryPath, targetEntryPath);
65
99
  return;
66
100
  }
67
- (0, _fsextra.mkdirs)(absoluteTargetDirectoryPath, function(error) {
101
+ createDirectory(absoluteTargetDirectoryPath, function(error) {
68
102
  if (error) {
69
103
  targetEntryPath = null;
70
104
  }
@@ -72,4 +106,4 @@ function createDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDire
72
106
  });
73
107
  }
74
108
 
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVQcm9qZWN0RW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7IGNyZWF0ZUZpbGUsIG1rZGlycyBhcyBjcmVhdGVEaXJlY3RvcnkgfSBmcm9tIFwiZnMtZXh0cmFcIjtcblxuaW1wb3J0IHsgYXN5bmNocm9ub3VzRm9yRWFjaCB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoTWFwc1wiO1xuXG5jb25zdCB7IGNvbmNhdGVuYXRlUGF0aHMgfSA9IHBhdGhVdGlsaXRpZXMsXG4gICAgICB7IGNoZWNrRW50cnlFeGlzdHMgfSA9IGZpbGVTeXN0ZW1VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVByb2plY3RFbnRyaWVzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwganNvbiwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyBwYXRoTWFwcyB9ID0ganNvbjtcblxuICBjcmVhdGVFbnRyaWVzKHBhdGhNYXBzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsICh0YXJnZXRFbnRyeVBhdGhzKSA9PiB7XG4gICAgY29uc3QganNvbiA9IHtcbiAgICAgIHRhcmdldEVudHJ5UGF0aHNcbiAgICB9O1xuXG4gICAgY2FsbGJhY2soanNvbik7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRW50cnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGVudHJ5RGlyZWN0b3J5ID9cbiAgICBjcmVhdGVEaXJlY3RvcnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIDpcbiAgICAgIGNyZWF0ZUZpbGVPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVFbnRyaWVzKHBhdGhNYXBzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHRhcmdldEVudHJ5UGF0aHMgPSBbXTtcblxuICBhc3luY2hyb25vdXNGb3JFYWNoKFxuICAgIHBhdGhNYXBzLFxuICAgIChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgZW50cnlEaXJlY3RvcnksIG5leHQsIGRvbmUsIGluZGV4KSA9PiB7XG4gICAgICBjcmVhdGVFbnRyeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgZW50cnlEaXJlY3RvcnksIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKSA9PiB7XG4gICAgICAgIHRhcmdldEVudHJ5UGF0aHMucHVzaCh0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgKCkgPT4ge1xuICAgICAgY2FsbGJhY2sodGFyZ2V0RW50cnlQYXRocyk7XG4gICAgfVxuICApO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWxlT3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHRhcmdldEZpbGVQYXRoID0gdGFyZ2V0RW50cnlQYXRoLCAvLy9cbiAgICAgICAgYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0YXJnZXRGaWxlUGF0aCksXG4gICAgICAgIHRhcmdldEZpbGVFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGFic29sdXRlVGFyZ2V0RmlsZVBhdGgpO1xuXG4gIGlmICh0YXJnZXRGaWxlRXhpc3RzKSB7XG4gICAgdGFyZ2V0RW50cnlQYXRoID0gbnVsbDtcblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNyZWF0ZUZpbGUoYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZURpcmVjdG9yeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCB0YXJnZXREaXJlY3RvcnlQYXRoID0gdGFyZ2V0RW50cnlQYXRoLCAgLy8vXG4gICAgICAgIGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0YXJnZXREaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgdGFyZ2V0RGlyZWN0b3J5RXhpc3RzID0gY2hlY2tFbnRyeUV4aXN0cyhhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICh0YXJnZXREaXJlY3RvcnlFeGlzdHMpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsO1xuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY3JlYXRlRGlyZWN0b3J5KGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlUHJvamVjdEVudHJpZXMiLCJjcmVhdGVFbnRyeU9wZXJhdGlvbiIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwiY2hlY2tFbnRyeUV4aXN0cyIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJqc29uIiwiY2FsbGJhY2siLCJwYXRoTWFwcyIsImNyZWF0ZUVudHJpZXMiLCJ0YXJnZXRFbnRyeVBhdGhzIiwic291cmNlRW50cnlQYXRoIiwidGFyZ2V0RW50cnlQYXRoIiwiZW50cnlEaXJlY3RvcnkiLCJjcmVhdGVEaXJlY3RvcnlPcGVyYXRpb24iLCJjcmVhdGVGaWxlT3BlcmF0aW9uIiwiYXN5bmNocm9ub3VzRm9yRWFjaCIsIm5leHQiLCJkb25lIiwiaW5kZXgiLCJwdXNoIiwidGFyZ2V0RmlsZVBhdGgiLCJhYnNvbHV0ZVRhcmdldEZpbGVQYXRoIiwidGFyZ2V0RmlsZUV4aXN0cyIsImNyZWF0ZUZpbGUiLCJlcnJvciIsInRhcmdldERpcmVjdG9yeVBhdGgiLCJhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgiLCJ0YXJnZXREaXJlY3RvcnlFeGlzdHMiLCJjcmVhdGVEaXJlY3RvcnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVVBLE9BVUM7ZUFWdUJBOztJQVlSQyxvQkFBb0I7ZUFBcEJBOzs7eUJBcEJtQzt1QkFDRzt3QkFFbEI7QUFFcEMsSUFBTSxBQUFFQyxtQkFBcUJDLHdCQUFhLENBQWxDRCxrQkFDRixBQUFFRSxtQkFBcUJDLDhCQUFtQixDQUF4Q0Q7QUFFTyxTQUFTSixxQkFBcUJNLHFCQUFxQixFQUFFQyxJQUFJLEVBQUVDLFFBQVE7SUFDaEYsSUFBTSxBQUFFQyxXQUFhRixLQUFiRTtJQUVSQyxjQUFjRCxVQUFVSCx1QkFBdUIsU0FBQ0s7UUFDOUMsSUFBTUosU0FBTztZQUNYSSxrQkFBQUE7UUFDRjtRQUVBSCxTQUFTRDtJQUNYO0FBQ0Y7QUFFTyxTQUFTTixxQkFBcUJXLGVBQWUsRUFBRUMsZUFBZSxFQUFFQyxjQUFjLEVBQUVSLHFCQUFxQixFQUFFRSxRQUFRO0lBQ3BITSxpQkFDRUMseUJBQXlCSCxpQkFBaUJDLGlCQUFpQlAsdUJBQXVCRSxZQUNoRlEsb0JBQW9CSixpQkFBaUJDLGlCQUFpQlAsdUJBQXVCRTtBQUNuRjtBQUVBLFNBQVNFLGNBQWNELFFBQVEsRUFBRUgscUJBQXFCLEVBQUVFLFFBQVE7SUFDOUQsSUFBTUcsbUJBQW1CLEVBQUU7SUFFM0JNLElBQUFBLDZCQUFtQixFQUNqQlIsVUFDQSxTQUFDRyxpQkFBaUJDLGlCQUFpQkMsZ0JBQWdCSSxNQUFNQyxNQUFNQztRQUM3RG5CLHFCQUFxQlcsaUJBQWlCQyxpQkFBaUJDLGdCQUFnQlIsdUJBQXVCLFNBQUNNLGlCQUFpQkM7WUFDOUdGLGlCQUFpQlUsSUFBSSxDQUFDUjtZQUV0Qks7UUFDRjtJQUNGLEdBQ0E7UUFDRVYsU0FBU0c7SUFDWDtBQUVKO0FBRUEsU0FBU0ssb0JBQW9CSixlQUFlLEVBQUVDLGVBQWUsRUFBRVAscUJBQXFCLEVBQUVFLFFBQVE7SUFDNUYsSUFBTWMsaUJBQWlCVCxpQkFDakJVLHlCQUF5QnJCLGlCQUFpQkksdUJBQXVCZ0IsaUJBQ2pFRSxtQkFBbUJwQixpQkFBaUJtQjtJQUUxQyxJQUFJQyxrQkFBa0I7UUFDcEJYLGtCQUFrQjtRQUVsQkwsU0FBU0ksaUJBQWlCQztRQUUxQjtJQUNGO0lBRUFZLElBQUFBLG1CQUFVLEVBQUNGLHdCQUF3QixTQUFDRztRQUNsQyxJQUFJQSxPQUFPO1lBQ1RiLGtCQUFrQjtRQUNwQjtRQUVBTCxTQUFTSSxpQkFBaUJDO0lBQzVCO0FBQ0Y7QUFFQSxTQUFTRSx5QkFBeUJILGVBQWUsRUFBRUMsZUFBZSxFQUFFUCxxQkFBcUIsRUFBRUUsUUFBUTtJQUNqRyxJQUFNbUIsc0JBQXNCZCxpQkFDdEJlLDhCQUE4QjFCLGlCQUFpQkksdUJBQXVCcUIsc0JBQ3RFRSx3QkFBd0J6QixpQkFBaUJ3QjtJQUUvQyxJQUFJQyx1QkFBdUI7UUFDekJoQixrQkFBa0I7UUFFbEJMLFNBQVNJLGlCQUFpQkM7UUFFMUI7SUFDRjtJQUVBaUIsSUFBQUEsZUFBZSxFQUFDRiw2QkFBNkIsU0FBQ0Y7UUFDNUMsSUFBSUEsT0FBTztZQUNUYixrQkFBa0I7UUFDcEI7UUFFQUwsU0FBU0ksaUJBQWlCQztJQUM1QjtBQUNGIn0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVQcm9qZWN0RW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgYXN5bmNocm9ub3VzRm9yRWFjaCB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoTWFwc1wiO1xuXG5jb25zdCB7IGNvbmNhdGVuYXRlUGF0aHMsIHBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWVGcm9tUGF0aCB9ID0gcGF0aFV0aWxpdGllcyxcbiAgICAgIHsgY3JlYXRlRmlsZTogY3JlYXRlRmlsZUV4LFxuICAgICAgICBjcmVhdGVEaXJlY3Rvcnk6IGNyZWF0ZURpcmVjdG9yeUV4LFxuICAgICAgICBjaGVja0VudHJ5RXhpc3RzOiBjaGVja0ZpbGVFeGlzdHMsXG4gICAgICAgIGNoZWNrRW50cnlFeGlzdHM6IGNoZWNrRGlyZWN0b3J5RXhpc3RzIH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVQcm9qZWN0RW50cmllcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGpzb24sIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHsgcGF0aE1hcHMgfSA9IGpzb247XG5cbiAgY3JlYXRlRW50cmllcyhwYXRoTWFwcywgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCAodGFyZ2V0RW50cnlQYXRocykgPT4ge1xuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGhzXG4gICAgfTtcblxuICAgIGNhbGxiYWNrKGpzb24pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBlbnRyeURpcmVjdG9yeSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBlbnRyeURpcmVjdG9yeSA/XG4gICAgY3JlYXRlRGlyZWN0b3J5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSA6XG4gICAgICBjcmVhdGVGaWxlT3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURpcmVjdG9yeShkaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBsZXQgZXJyb3IgPSBudWxsO1xuXG4gIGNvbnN0IGRpcmVjdG9yeVBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWUgPSBwYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lRnJvbVBhdGgoZGlyZWN0b3J5UGF0aCksXG4gICAgICAgIHBhcmVudERpcmVjdG9yeVBhdGggPSBkaXJlY3RvcnlQYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lLCAgLy8vXG4gICAgICAgIHBhcmVudERpcmVjdG9yeUV4aXN0cyA9IGNoZWNrRGlyZWN0b3J5RXhpc3RzKHBhcmVudERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICghcGFyZW50RGlyZWN0b3J5RXhpc3RzKSB7XG4gICAgZXJyb3IgPSBgVGhlICcke2RpcmVjdG9yeVBhdGh9JyBkaXJlY3RvcnkncyBwYXJlbnQgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0YDtcbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgY3JlYXRlRGlyZWN0b3J5RXgoZGlyZWN0b3J5UGF0aClcbiAgICB9IGNhdGNoIChuYXRpdmVFcnJvcikge1xuICAgICAgZXJyb3IgPSBuYXRpdmVFcnJvcjsgIC8vL1xuICAgIH1cbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZpbGUoZmlsZVBhdGgsIGNhbGxiYWNrKSB7XG4gIGxldCBlcnJvciA9IG51bGw7XG5cbiAgY29uc3QgZmlsZVBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWUgPSBwYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lRnJvbVBhdGgoZmlsZVBhdGgpLFxuICAgICAgICBwYXJlbnREaXJlY3RvcnlQYXRoID0gZmlsZVBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWUsICAvLy9cbiAgICAgICAgcGFyZW50RGlyZWN0b3J5RXhpc3RzID0gY2hlY2tEaXJlY3RvcnlFeGlzdHMocGFyZW50RGlyZWN0b3J5UGF0aCk7XG5cbiAgaWYgKCFwYXJlbnREaXJlY3RvcnlFeGlzdHMpIHtcbiAgICBlcnJvciA9IGBUaGUgJyR7ZmlsZVBhdGh9JyBmaWxlJ3MgcGFyZW50IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdGA7XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIGNyZWF0ZUZpbGVFeChmaWxlUGF0aClcbiAgICB9IGNhdGNoIChuYXRpdmVFcnJvcikge1xuICAgICAgZXJyb3IgPSBuYXRpdmVFcnJvcjsgIC8vL1xuICAgIH1cbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9yKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRW50cmllcyhwYXRoTWFwcywgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCB0YXJnZXRFbnRyeVBhdGhzID0gW107XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChcbiAgICBwYXRoTWFwcyxcbiAgICAoc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBuZXh0LCBkb25lLCBpbmRleCkgPT4ge1xuICAgICAgY3JlYXRlRW50cnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCkgPT4ge1xuICAgICAgICB0YXJnZXRFbnRyeVBhdGhzLnB1c2godGFyZ2V0RW50cnlQYXRoKTtcblxuICAgICAgICBuZXh0KCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgICgpID0+IHtcbiAgICAgIGNhbGxiYWNrKHRhcmdldEVudHJ5UGF0aHMpO1xuICAgIH1cbiAgKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRmlsZU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCB0YXJnZXRGaWxlUGF0aCA9IHRhcmdldEVudHJ5UGF0aCwgLy8vXG4gICAgICAgIGFic29sdXRlVGFyZ2V0RmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdGFyZ2V0RmlsZVBhdGgpLFxuICAgICAgICB0YXJnZXRGaWxlRXhpc3RzID0gY2hlY2tGaWxlRXhpc3RzKGFic29sdXRlVGFyZ2V0RmlsZVBhdGgpO1xuXG4gIGlmICh0YXJnZXRGaWxlRXhpc3RzKSB7XG4gICAgdGFyZ2V0RW50cnlQYXRoID0gbnVsbDtcblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGZpbGVQYXRoID0gYWJzb2x1dGVUYXJnZXRGaWxlUGF0aDsgIC8vL1xuXG4gIGNyZWF0ZUZpbGUoZmlsZVBhdGgsIChlcnJvcikgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgdGFyZ2V0RW50cnlQYXRoID0gbnVsbDtcbiAgICB9XG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEaXJlY3RvcnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3QgdGFyZ2V0RGlyZWN0b3J5UGF0aCA9IHRhcmdldEVudHJ5UGF0aCwgIC8vL1xuICAgICAgICBhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdGFyZ2V0RGlyZWN0b3J5UGF0aCksXG4gICAgICAgIHRhcmdldERpcmVjdG9yeUV4aXN0cyA9IGNoZWNrRmlsZUV4aXN0cyhhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICh0YXJnZXREaXJlY3RvcnlFeGlzdHMpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsO1xuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY3JlYXRlRGlyZWN0b3J5KGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlUHJvamVjdEVudHJpZXMiLCJjcmVhdGVFbnRyeU9wZXJhdGlvbiIsImNyZWF0ZURpcmVjdG9yeSIsImNyZWF0ZUZpbGUiLCJjb25jYXRlbmF0ZVBhdGhzIiwicGF0aFV0aWxpdGllcyIsInBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWVGcm9tUGF0aCIsImNyZWF0ZUZpbGVFeCIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJjcmVhdGVEaXJlY3RvcnlFeCIsImNoZWNrRW50cnlFeGlzdHMiLCJjaGVja0ZpbGVFeGlzdHMiLCJjaGVja0RpcmVjdG9yeUV4aXN0cyIsInByb2plY3RzRGlyZWN0b3J5UGF0aCIsImpzb24iLCJjYWxsYmFjayIsInBhdGhNYXBzIiwiY3JlYXRlRW50cmllcyIsInRhcmdldEVudHJ5UGF0aHMiLCJzb3VyY2VFbnRyeVBhdGgiLCJ0YXJnZXRFbnRyeVBhdGgiLCJlbnRyeURpcmVjdG9yeSIsImNyZWF0ZURpcmVjdG9yeU9wZXJhdGlvbiIsImNyZWF0ZUZpbGVPcGVyYXRpb24iLCJkaXJlY3RvcnlQYXRoIiwiZXJyb3IiLCJkaXJlY3RvcnlQYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lIiwicGFyZW50RGlyZWN0b3J5UGF0aCIsInBhcmVudERpcmVjdG9yeUV4aXN0cyIsIm5hdGl2ZUVycm9yIiwiZmlsZVBhdGgiLCJmaWxlUGF0aFdpdGhvdXRCb3R0b21tb3N0TmFtZSIsImFzeW5jaHJvbm91c0ZvckVhY2giLCJuZXh0IiwiZG9uZSIsImluZGV4IiwicHVzaCIsInRhcmdldEZpbGVQYXRoIiwiYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCIsInRhcmdldEZpbGVFeGlzdHMiLCJ0YXJnZXREaXJlY3RvcnlQYXRoIiwiYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoIiwidGFyZ2V0RGlyZWN0b3J5RXhpc3RzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFZQSxPQVVDO2VBVnVCQTs7SUFZUkMsb0JBQW9CO2VBQXBCQTs7SUFNQUMsZUFBZTtlQUFmQTs7SUFvQkFDLFVBQVU7ZUFBVkE7Ozt5QkFoRG1DO3dCQUVmO0FBRXBDLElBQVFDLG1CQUF3REMsd0JBQWEsQ0FBckVELGtCQUFrQkUsb0NBQXNDRCx3QkFBYSxDQUFuREMsbUNBQ2xCSCxBQUFZSSxlQUcrQkMsOEJBQW1CLENBSDlETCxZQUNBRCxBQUFpQk8sb0JBRTBCRCw4QkFBbUIsQ0FGOUROLGlCQUNBUSxBQUFrQkMsa0JBQ3lCSCw4QkFBbUIsQ0FEOURFLGtCQUNBQSxBQUFrQkUsdUJBQXlCSiw4QkFBbUIsQ0FBOURFO0FBRU8sU0FBU1YscUJBQXFCYSxxQkFBcUIsRUFBRUMsSUFBSSxFQUFFQyxRQUFRO0lBQ2hGLElBQU0sQUFBRUMsV0FBYUYsS0FBYkU7SUFFUkMsY0FBY0QsVUFBVUgsdUJBQXVCLFNBQUNLO1FBQzlDLElBQU1KLFNBQU87WUFDWEksa0JBQUFBO1FBQ0Y7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
@@ -16,9 +16,9 @@ _export(exports, {
16
16
  return editEntryOperation;
17
17
  }
18
18
  });
19
- var _fsextra = require("fs-extra");
20
19
  var _necessary = require("necessary");
21
20
  var _pathMaps = require("./utilities/pathMaps");
21
+ var _moveProjectEntries = require("./moveProjectEntries");
22
22
  var concatenatePaths = _necessary.pathUtilities.concatenatePaths, checkEntryExists = _necessary.fileSystemUtilities.checkEntryExists, isDirectoryEmpty = _necessary.fileSystemUtilities.isDirectoryEmpty;
23
23
  function editProjectEntries(projectsDirectoryPath, json, callback) {
24
24
  var pathMaps = json.pathMaps;
@@ -56,7 +56,8 @@ function editFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPa
56
56
  callback(sourceEntryPath, targetEntryPath);
57
57
  return;
58
58
  }
59
- (0, _fsextra.move)(absoluteSourceFilePath, absoluteTargetFilePath, function(error) {
59
+ var oldFilePath = absoluteSourceFilePath, newFilePath = absoluteTargetFilePath; ///
60
+ (0, _moveProjectEntries.moveFile)(oldFilePath, newFilePath, function(error) {
60
61
  if (error) {
61
62
  targetEntryPath = sourceEntryPath; ///
62
63
  }
@@ -72,7 +73,8 @@ function editDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirect
72
73
  }
73
74
  var absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath), targetDirectoryExists = checkEntryExists(absoluteTargetDirectoryPath);
74
75
  if (targetDirectoryExists) {
75
- (0, _fsextra.remove)(absoluteSourceDirectoryPath, function(error) {
76
+ var directoryPath = absoluteSourceDirectoryPath; ///
77
+ removeDirectory(directoryPath, function(error) {
76
78
  if (error) {
77
79
  targetEntryPath = sourceEntryPath; ///
78
80
  }
@@ -80,7 +82,8 @@ function editDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirect
80
82
  });
81
83
  return;
82
84
  }
83
- (0, _fsextra.move)(absoluteSourceDirectoryPath, absoluteTargetDirectoryPath, function(error) {
85
+ var oldDirectoryPath = absoluteSourceDirectoryPath, newDirectoryPath = absoluteTargetDirectoryPath; ///
86
+ (0, _moveProjectEntries.moveDirectory)(oldDirectoryPath, newDirectoryPath, function(error) {
84
87
  if (error) {
85
88
  targetEntryPath = sourceEntryPath; ///
86
89
  }
@@ -88,4 +91,4 @@ function editDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirect
88
91
  });
89
92
  }
90
93
 
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lZGl0UHJvamVjdEVudHJpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG1vdmUgYXMgZWRpdCwgcmVtb3ZlIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBwYXRoVXRpbGl0aWVzLCBmaWxlU3lzdGVtVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBhc3luY2hyb25vdXNGb3JFYWNoIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BhdGhNYXBzXCI7XG5cbmNvbnN0IHsgY29uY2F0ZW5hdGVQYXRocyB9ID0gcGF0aFV0aWxpdGllcyxcbiAgICAgIHsgY2hlY2tFbnRyeUV4aXN0cywgaXNEaXJlY3RvcnlFbXB0eSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZWRpdFByb2plY3RFbnRyaWVzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwganNvbiwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyBwYXRoTWFwcyB9ID0ganNvbjtcblxuICBlZGl0RW50cmllcyhwYXRoTWFwcywgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCAodGFyZ2V0RW50cnlQYXRocykgPT4ge1xuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGhzXG4gICAgfTtcblxuICAgIGNhbGxiYWNrKGpzb24pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVkaXRFbnRyeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgZW50cnlEaXJlY3RvcnksIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3QgYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRW50cnlQYXRoKSxcbiAgICAgICAgc291cmNlRW50cnlFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGFic29sdXRlU291cmNlRW50cnlQYXRoKTtcblxuICBpZiAoIXNvdXJjZUVudHJ5RXhpc3RzKSB7XG4gICAgdGFyZ2V0RW50cnlQYXRoID0gbnVsbDtcblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGVudHJ5RGlyZWN0b3J5ID9cbiAgICBlZGl0RGlyZWN0b3J5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSA6XG4gICAgICBlZGl0RmlsZU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjayk7XG59XG5cbmZ1bmN0aW9uIGVkaXRFbnRyaWVzKHBhdGhNYXBzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHRhcmdldEVudHJ5UGF0aHMgPSBbXTtcblxuICBhc3luY2hyb25vdXNGb3JFYWNoKFxuICAgIHBhdGhNYXBzLFxuICAgIChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgZW50cnlEaXJlY3RvcnksIG5leHQsIGRvbmUsIGluZGV4KSA9PiB7XG4gICAgICBlZGl0RW50cnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCkgPT4ge1xuICAgICAgICB0YXJnZXRFbnRyeVBhdGhzLnB1c2godGFyZ2V0RW50cnlQYXRoKTtcblxuICAgICAgICBuZXh0KCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgICgpID0+IHtcbiAgICAgIGNhbGxiYWNrKHRhcmdldEVudHJ5UGF0aHMpO1xuICAgIH1cbiAgKTtcbn1cblxuZnVuY3Rpb24gZWRpdEZpbGVPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3Qgc291cmNlRmlsZVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsIC8vL1xuICAgICAgICB0YXJnZXRGaWxlUGF0aCA9IHRhcmdldEVudHJ5UGF0aCwgLy8vXG4gICAgICAgIGFic29sdXRlU291cmNlRmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRmlsZVBhdGgpLFxuICAgICAgICBhYnNvbHV0ZVRhcmdldEZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRhcmdldEZpbGVQYXRoKSxcbiAgICAgICAgdGFyZ2V0RmlsZUV4aXN0cyA9IGNoZWNrRW50cnlFeGlzdHMoYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCk7XG5cbiAgaWYgKHRhcmdldEZpbGVFeGlzdHMpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGVkaXQoYWJzb2x1dGVTb3VyY2VGaWxlUGF0aCwgYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cbiAgICB9XG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBlZGl0RGlyZWN0b3J5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHNvdXJjZURpcmVjdG9yeVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsICAvLy9cbiAgICAgICAgdGFyZ2V0RGlyZWN0b3J5UGF0aCA9IHRhcmdldEVudHJ5UGF0aCwgIC8vL1xuICAgICAgICBhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRGlyZWN0b3J5UGF0aCksXG4gICAgICAgIHNvdXJjZURpcmVjdG9yeUVtcHR5ID0gaXNEaXJlY3RvcnlFbXB0eShhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICghc291cmNlRGlyZWN0b3J5RW1wdHkpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0YXJnZXREaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgdGFyZ2V0RGlyZWN0b3J5RXhpc3RzID0gY2hlY2tFbnRyeUV4aXN0cyhhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICh0YXJnZXREaXJlY3RvcnlFeGlzdHMpIHtcbiAgICByZW1vdmUoYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoLCAoZXJyb3IpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cbiAgICAgIH1cblxuICAgICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZWRpdChhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgsIGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cbiAgICB9XG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImVkaXRQcm9qZWN0RW50cmllcyIsImVkaXRFbnRyeU9wZXJhdGlvbiIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwiY2hlY2tFbnRyeUV4aXN0cyIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJpc0RpcmVjdG9yeUVtcHR5IiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwianNvbiIsImNhbGxiYWNrIiwicGF0aE1hcHMiLCJlZGl0RW50cmllcyIsInRhcmdldEVudHJ5UGF0aHMiLCJzb3VyY2VFbnRyeVBhdGgiLCJ0YXJnZXRFbnRyeVBhdGgiLCJlbnRyeURpcmVjdG9yeSIsImFic29sdXRlU291cmNlRW50cnlQYXRoIiwic291cmNlRW50cnlFeGlzdHMiLCJlZGl0RGlyZWN0b3J5T3BlcmF0aW9uIiwiZWRpdEZpbGVPcGVyYXRpb24iLCJhc3luY2hyb25vdXNGb3JFYWNoIiwibmV4dCIsImRvbmUiLCJpbmRleCIsInB1c2giLCJzb3VyY2VGaWxlUGF0aCIsInRhcmdldEZpbGVQYXRoIiwiYWJzb2x1dGVTb3VyY2VGaWxlUGF0aCIsImFic29sdXRlVGFyZ2V0RmlsZVBhdGgiLCJ0YXJnZXRGaWxlRXhpc3RzIiwiZWRpdCIsImVycm9yIiwic291cmNlRGlyZWN0b3J5UGF0aCIsInRhcmdldERpcmVjdG9yeVBhdGgiLCJhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgiLCJzb3VyY2VEaXJlY3RvcnlFbXB0eSIsImFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCIsInRhcmdldERpcmVjdG9yeUV4aXN0cyIsInJlbW92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
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lZGl0UHJvamVjdEVudHJpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHBhdGhVdGlsaXRpZXMsIGZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IGFzeW5jaHJvbm91c0ZvckVhY2ggfSBmcm9tIFwiLi91dGlsaXRpZXMvcGF0aE1hcHNcIjtcblxuaW1wb3J0IHsgbW92ZUZpbGUgYXMgZWRpdEZpbGUsIG1vdmVEaXJlY3RvcnkgYXMgZWRpdERpcmVjdG9yeSB9IGZyb20gXCIuL21vdmVQcm9qZWN0RW50cmllc1wiO1xuXG5jb25zdCB7IGNvbmNhdGVuYXRlUGF0aHMgfSA9IHBhdGhVdGlsaXRpZXMsXG4gICAgICB7IGNoZWNrRW50cnlFeGlzdHMsIGlzRGlyZWN0b3J5RW1wdHkgfSA9IGZpbGVTeXN0ZW1VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGVkaXRQcm9qZWN0RW50cmllcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGpzb24sIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHsgcGF0aE1hcHMgfSA9IGpzb247XG5cbiAgZWRpdEVudHJpZXMocGF0aE1hcHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgKHRhcmdldEVudHJ5UGF0aHMpID0+IHtcbiAgICBjb25zdCBqc29uID0ge1xuICAgICAgdGFyZ2V0RW50cnlQYXRoc1xuICAgIH07XG5cbiAgICBjYWxsYmFjayhqc29uKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlZGl0RW50cnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGFic29sdXRlU291cmNlRW50cnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZUVudHJ5UGF0aCksXG4gICAgICAgIHNvdXJjZUVudHJ5RXhpc3RzID0gY2hlY2tFbnRyeUV4aXN0cyhhYnNvbHV0ZVNvdXJjZUVudHJ5UGF0aCk7XG5cbiAgaWYgKCFzb3VyY2VFbnRyeUV4aXN0cykge1xuICAgIHRhcmdldEVudHJ5UGF0aCA9IG51bGw7XG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBlbnRyeURpcmVjdG9yeSA/XG4gICAgZWRpdERpcmVjdG9yeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykgOlxuICAgICAgZWRpdEZpbGVPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spO1xufVxuXG5mdW5jdGlvbiBlZGl0RW50cmllcyhwYXRoTWFwcywgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCB0YXJnZXRFbnRyeVBhdGhzID0gW107XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChcbiAgICBwYXRoTWFwcyxcbiAgICAoc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBuZXh0LCBkb25lLCBpbmRleCkgPT4ge1xuICAgICAgZWRpdEVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBlbnRyeURpcmVjdG9yeSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCAoc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpID0+IHtcbiAgICAgICAgdGFyZ2V0RW50cnlQYXRocy5wdXNoKHRhcmdldEVudHJ5UGF0aCk7XG5cbiAgICAgICAgbmV4dCgpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICAoKSA9PiB7XG4gICAgICBjYWxsYmFjayh0YXJnZXRFbnRyeVBhdGhzKTtcbiAgICB9XG4gICk7XG59XG5cbmZ1bmN0aW9uIGVkaXRGaWxlT3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHNvdXJjZUZpbGVQYXRoID0gc291cmNlRW50cnlQYXRoLCAvLy9cbiAgICAgICAgdGFyZ2V0RmlsZVBhdGggPSB0YXJnZXRFbnRyeVBhdGgsIC8vL1xuICAgICAgICBhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZUZpbGVQYXRoKSxcbiAgICAgICAgYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0YXJnZXRGaWxlUGF0aCksXG4gICAgICAgIHRhcmdldEZpbGVFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGFic29sdXRlVGFyZ2V0RmlsZVBhdGgpO1xuXG4gIGlmICh0YXJnZXRGaWxlRXhpc3RzKSB7XG4gICAgdGFyZ2V0RW50cnlQYXRoID0gc291cmNlRW50cnlQYXRoOyAgLy8vXG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBvbGRGaWxlUGF0aCA9IGFic29sdXRlU291cmNlRmlsZVBhdGgsIC8vL1xuICAgICAgICBuZXdGaWxlUGF0aCA9IGFic29sdXRlVGFyZ2V0RmlsZVBhdGg7IC8vL1xuXG4gIGVkaXRGaWxlKG9sZEZpbGVQYXRoLCBuZXdGaWxlUGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cbiAgICB9XG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBlZGl0RGlyZWN0b3J5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHNvdXJjZURpcmVjdG9yeVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsICAvLy9cbiAgICAgICAgdGFyZ2V0RGlyZWN0b3J5UGF0aCA9IHRhcmdldEVudHJ5UGF0aCwgIC8vL1xuICAgICAgICBhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRGlyZWN0b3J5UGF0aCksXG4gICAgICAgIHNvdXJjZURpcmVjdG9yeUVtcHR5ID0gaXNEaXJlY3RvcnlFbXB0eShhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICghc291cmNlRGlyZWN0b3J5RW1wdHkpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0YXJnZXREaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgdGFyZ2V0RGlyZWN0b3J5RXhpc3RzID0gY2hlY2tFbnRyeUV4aXN0cyhhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICh0YXJnZXREaXJlY3RvcnlFeGlzdHMpIHtcbiAgICBjb25zdCBkaXJlY3RvcnlQYXRoID0gYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoOyAgLy8vXG5cbiAgICByZW1vdmVEaXJlY3RvcnkoZGlyZWN0b3J5UGF0aCwgKGVycm9yKSA9PiB7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgdGFyZ2V0RW50cnlQYXRoID0gc291cmNlRW50cnlQYXRoOyAgLy8vXG4gICAgICB9XG5cbiAgICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgICB9KTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG9sZERpcmVjdG9yeVBhdGggPSBhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgsIC8vL1xuICAgICAgICBuZXdEaXJlY3RvcnlQYXRoID0gYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoOyAvLy9cblxuICBlZGl0RGlyZWN0b3J5KG9sZERpcmVjdG9yeVBhdGgsIG5ld0RpcmVjdG9yeVBhdGgsIChlcnJvcikgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgdGFyZ2V0RW50cnlQYXRoID0gc291cmNlRW50cnlQYXRoOyAgLy8vXG4gICAgfVxuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJlZGl0UHJvamVjdEVudHJpZXMiLCJlZGl0RW50cnlPcGVyYXRpb24iLCJjb25jYXRlbmF0ZVBhdGhzIiwicGF0aFV0aWxpdGllcyIsImNoZWNrRW50cnlFeGlzdHMiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwiaXNEaXJlY3RvcnlFbXB0eSIsInByb2plY3RzRGlyZWN0b3J5UGF0aCIsImpzb24iLCJjYWxsYmFjayIsInBhdGhNYXBzIiwiZWRpdEVudHJpZXMiLCJ0YXJnZXRFbnRyeVBhdGhzIiwic291cmNlRW50cnlQYXRoIiwidGFyZ2V0RW50cnlQYXRoIiwiZW50cnlEaXJlY3RvcnkiLCJhYnNvbHV0ZVNvdXJjZUVudHJ5UGF0aCIsInNvdXJjZUVudHJ5RXhpc3RzIiwiZWRpdERpcmVjdG9yeU9wZXJhdGlvbiIsImVkaXRGaWxlT3BlcmF0aW9uIiwiYXN5bmNocm9ub3VzRm9yRWFjaCIsIm5leHQiLCJkb25lIiwiaW5kZXgiLCJwdXNoIiwic291cmNlRmlsZVBhdGgiLCJ0YXJnZXRGaWxlUGF0aCIsImFic29sdXRlU291cmNlRmlsZVBhdGgiLCJhYnNvbHV0ZVRhcmdldEZpbGVQYXRoIiwidGFyZ2V0RmlsZUV4aXN0cyIsIm9sZEZpbGVQYXRoIiwibmV3RmlsZVBhdGgiLCJlZGl0RmlsZSIsImVycm9yIiwic291cmNlRGlyZWN0b3J5UGF0aCIsInRhcmdldERpcmVjdG9yeVBhdGgiLCJhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgiLCJzb3VyY2VEaXJlY3RvcnlFbXB0eSIsImFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCIsInRhcmdldERpcmVjdG9yeUV4aXN0cyIsImRpcmVjdG9yeVBhdGgiLCJyZW1vdmVEaXJlY3RvcnkiLCJvbGREaXJlY3RvcnlQYXRoIiwibmV3RGlyZWN0b3J5UGF0aCIsImVkaXREaXJlY3RvcnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVdBLE9BVUM7ZUFWdUJBOztJQVlSQyxrQkFBa0I7ZUFBbEJBOzs7eUJBckJtQzt3QkFFZjtrQ0FFaUM7QUFFckUsSUFBTSxBQUFFQyxtQkFBcUJDLHdCQUFhLENBQWxDRCxrQkFDQUUsbUJBQXVDQyw4QkFBbUIsQ0FBMURELGtCQUFrQkUsbUJBQXFCRCw4QkFBbUIsQ0FBeENDO0FBRVgsU0FBU04sbUJBQW1CTyxxQkFBcUIsRUFBRUMsSUFBSSxFQUFFQyxRQUFRO0lBQzlFLElBQU0sQUFBRUMsV0FBYUYsS0FBYkU7SUFFUkMsWUFBWUQsVUFBVUgsdUJBQXVCLFNBQUNLO1FBQzVDLElBQU1KLFNBQU87WUFDWEksa0JBQUFBO1FBQ0Y7UUFFQUgsU0FBU0Q7SUFDWDtBQUNGO0FBRU8sU0FBU1AsbUJBQW1CWSxlQUFlLEVBQUVDLGVBQWUsRUFBRUMsY0FBYyxFQUFFUixxQkFBcUIsRUFBRUUsUUFBUTtJQUNsSCxJQUFNTywwQkFBMEJkLGlCQUFpQkssdUJBQXVCTSxrQkFDbEVJLG9CQUFvQmIsaUJBQWlCWTtJQUUz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
@@ -14,13 +14,18 @@ _export(exports, {
14
14
  },
15
15
  moveEntryOperation: function() {
16
16
  return moveEntryOperation;
17
+ },
18
+ moveDirectory: function() {
19
+ return moveDirectory;
20
+ },
21
+ moveFile: function() {
22
+ return moveFile;
17
23
  }
18
24
  });
19
- var _fsextra = require("fs-extra");
20
25
  var _necessary = require("necessary");
21
26
  var _pathMaps = require("./utilities/pathMaps");
22
27
  var _removeProjectEntries = require("./removeProjectEntries");
23
- var concatenatePaths = _necessary.pathUtilities.concatenatePaths, checkEntryExists = _necessary.fileSystemUtilities.checkEntryExists, isDirectoryEmpty = _necessary.fileSystemUtilities.isDirectoryEmpty;
28
+ var concatenatePaths = _necessary.pathUtilities.concatenatePaths, pathWithoutBottommostName = _necessary.pathUtilities.pathWithoutBottommostName, isDirectoryEmpty = _necessary.fileSystemUtilities.isDirectoryEmpty, checkEntryExists = _necessary.fileSystemUtilities.checkEntryExists, renameFileEx = _necessary.fileSystemUtilities.renameFile, renameDirectoryEx = _necessary.fileSystemUtilities.renameDirectory, checkDirectoryExists = _necessary.fileSystemUtilities.checkEntryExists;
24
29
  function moveProjectEntries(projectsDirectoryPath, json, callback) {
25
30
  var pathMaps = json.pathMaps;
26
31
  moveEntries(pathMaps, projectsDirectoryPath, function(targetEntryPaths) {
@@ -43,6 +48,34 @@ function moveEntryOperation(sourceEntryPath, targetEntryPath, entryDirectory, pr
43
48
  }
44
49
  entryDirectory ? moveDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) : moveFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback);
45
50
  }
51
+ function moveDirectory(oldDirectoryPath, newDirectoryPath, callback) {
52
+ var error = null;
53
+ var newDirectoryPathWithoutBottommostName = pathWithoutBottommostName(newDirectoryPath), newParentDirectoryPath = newDirectoryPathWithoutBottommostName, newParentDirectoryExists = checkDirectoryExists(newParentDirectoryPath);
54
+ if (!newParentDirectoryExists) {
55
+ error = "The new '".concat(newDirectoryPath, "' directory's parent directory does not exist.");
56
+ } else {
57
+ try {
58
+ renameDirectoryEx(oldDirectoryPath);
59
+ } catch (nativeError) {
60
+ error = nativeError; ///
61
+ }
62
+ }
63
+ callback(error);
64
+ }
65
+ function moveFile(oldFilePath, newFilePath, callback) {
66
+ var error = null;
67
+ var newFilePathWithoutBottommostName = pathWithoutBottommostName(newFilePath), newParentDirectoryPath = newFilePathWithoutBottommostName, newParentDirectoryExists = checkFileExists(newParentDirectoryPath);
68
+ if (!newParentDirectoryExists) {
69
+ error = "The new '".concat(newFilePath, "' file's parent directory does not exist.");
70
+ } else {
71
+ try {
72
+ renameFileEx(oldFilePath, newFilePath);
73
+ } catch (nativeError) {
74
+ error = nativeError; ///
75
+ }
76
+ }
77
+ callback(error);
78
+ }
46
79
  function moveEntries(pathMaps, projectsDirectoryPath, callback) {
47
80
  var targetEntryPaths = [];
48
81
  (0, _pathMaps.asynchronousForEach)(pathMaps, function(sourceEntryPath, targetEntryPath, entryDirectory, next, done, index) {
@@ -61,7 +94,8 @@ function moveFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPa
61
94
  callback(sourceEntryPath, targetEntryPath);
62
95
  return;
63
96
  }
64
- (0, _fsextra.move)(absoluteSourceFilePath, absoluteTargetFilePath, function(error) {
97
+ var oldFilePath = absoluteSourceFilePath, newFilePath = absoluteTargetFilePath; ///
98
+ moveFile(oldFilePath, newFilePath, function(error) {
65
99
  if (error) {
66
100
  targetEntryPath = null;
67
101
  }
@@ -77,7 +111,8 @@ function moveDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirect
77
111
  }
78
112
  var absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath), targetDirectoryExists = checkEntryExists(absoluteTargetDirectoryPath);
79
113
  if (targetDirectoryExists) {
80
- (0, _fsextra.remove)(absoluteSourceDirectoryPath, function(error) {
114
+ var directoryPath = absoluteSourceDirectoryPath; ///
115
+ (0, _removeProjectEntries.removeEntry)(directoryPath, function(error) {
81
116
  if (error) {
82
117
  targetEntryPath = sourceEntryPath; ///
83
118
  }
@@ -85,7 +120,8 @@ function moveDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirect
85
120
  });
86
121
  return;
87
122
  }
88
- (0, _fsextra.move)(absoluteSourceDirectoryPath, absoluteTargetDirectoryPath, function(error) {
123
+ var oldDirectoryPath = absoluteSourceDirectoryPath, newDirectoryPath = absoluteTargetDirectoryPath; ///
124
+ moveDirectory(oldDirectoryPath, newDirectoryPath, function(error) {
89
125
  if (error) {
90
126
  targetEntryPath = sourceEntryPath; ///
91
127
  }
@@ -93,4 +129,4 @@ function moveDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirect
93
129
  });
94
130
  }
95
131
 
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tb3ZlUHJvamVjdEVudHJpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG1vdmUsIHJlbW92ZSB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHsgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgYXN5bmNocm9ub3VzRm9yRWFjaCB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoTWFwc1wiO1xuaW1wb3J0IHsgcmVtb3ZlRW50cnlPcGVyYXRpb24gfSBmcm9tIFwiLi9yZW1vdmVQcm9qZWN0RW50cmllc1wiO1xuXG5jb25zdCB7IGNvbmNhdGVuYXRlUGF0aHMgfSA9IHBhdGhVdGlsaXRpZXMsXG4gICAgICB7IGNoZWNrRW50cnlFeGlzdHMsIGlzRGlyZWN0b3J5RW1wdHkgfSA9IGZpbGVTeXN0ZW1VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1vdmVQcm9qZWN0RW50cmllcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGpzb24sIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHsgcGF0aE1hcHMgfSA9IGpzb247XG5cbiAgbW92ZUVudHJpZXMocGF0aE1hcHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgKHRhcmdldEVudHJ5UGF0aHMpID0+IHtcbiAgICBjb25zdCBqc29uID0ge1xuICAgICAgdGFyZ2V0RW50cnlQYXRoc1xuICAgIH07XG5cbiAgICBjYWxsYmFjayhqc29uKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlRW50cnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGlmICh0YXJnZXRFbnRyeVBhdGggPT09IG51bGwpIHtcbiAgICByZW1vdmVFbnRyeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgZW50cnlEaXJlY3RvcnksIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRW50cnlQYXRoKSxcbiAgICAgICAgc291cmNlRW50cnlFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGFic29sdXRlU291cmNlRW50cnlQYXRoKTtcblxuICBpZiAoIXNvdXJjZUVudHJ5RXhpc3RzKSB7XG4gICAgdGFyZ2V0RW50cnlQYXRoID0gbnVsbDtcblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGVudHJ5RGlyZWN0b3J5ID9cbiAgICBtb3ZlRGlyZWN0b3J5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSA6XG4gICAgICBtb3ZlRmlsZU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjayk7XG59XG5cbmZ1bmN0aW9uIG1vdmVFbnRyaWVzKHBhdGhNYXBzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHRhcmdldEVudHJ5UGF0aHMgPSBbXTtcblxuICBhc3luY2hyb25vdXNGb3JFYWNoKFxuICAgIHBhdGhNYXBzLFxuICAgIChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgZW50cnlEaXJlY3RvcnksIG5leHQsIGRvbmUsIGluZGV4KSA9PiB7XG4gICAgICBtb3ZlRW50cnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCkgPT4ge1xuICAgICAgICB0YXJnZXRFbnRyeVBhdGhzLnB1c2godGFyZ2V0RW50cnlQYXRoKTtcblxuICAgICAgICBuZXh0KCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgICgpID0+IHtcbiAgICAgIGNhbGxiYWNrKHRhcmdldEVudHJ5UGF0aHMpO1xuICAgIH1cbiAgKTtcbn1cblxuZnVuY3Rpb24gbW92ZUZpbGVPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3Qgc291cmNlRmlsZVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsIC8vL1xuICAgICAgICB0YXJnZXRGaWxlUGF0aCA9IHRhcmdldEVudHJ5UGF0aCwgLy8vXG4gICAgICAgIGFic29sdXRlU291cmNlRmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRmlsZVBhdGgpLFxuICAgICAgICBhYnNvbHV0ZVRhcmdldEZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRhcmdldEZpbGVQYXRoKSxcbiAgICAgICAgdGFyZ2V0RmlsZUV4aXN0cyA9IGNoZWNrRW50cnlFeGlzdHMoYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCk7XG5cbiAgaWYgKHRhcmdldEZpbGVFeGlzdHMpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIG1vdmUoYWJzb2x1dGVTb3VyY2VGaWxlUGF0aCwgYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG1vdmVEaXJlY3RvcnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3Qgc291cmNlRGlyZWN0b3J5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aCwgIC8vL1xuICAgICAgICB0YXJnZXREaXJlY3RvcnlQYXRoID0gdGFyZ2V0RW50cnlQYXRoLCAgLy8vXG4gICAgICAgIGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VEaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgc291cmNlRGlyZWN0b3J5RW1wdHkgPSBpc0RpcmVjdG9yeUVtcHR5KGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCk7XG5cbiAgaWYgKCFzb3VyY2VEaXJlY3RvcnlFbXB0eSkge1xuICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRhcmdldERpcmVjdG9yeVBhdGgpLFxuICAgICAgICB0YXJnZXREaXJlY3RvcnlFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCk7XG5cbiAgaWYgKHRhcmdldERpcmVjdG9yeUV4aXN0cykge1xuICAgIHJlbW92ZShhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgsIChlcnJvcikgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgICAgfVxuXG4gICAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBtb3ZlKGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCwgYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoLCAoZXJyb3IpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsibW92ZVByb2plY3RFbnRyaWVzIiwibW92ZUVudHJ5T3BlcmF0aW9uIiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJjaGVja0VudHJ5RXhpc3RzIiwiZmlsZVN5c3RlbVV0aWxpdGllcyIsImlzRGlyZWN0b3J5RW1wdHkiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJqc29uIiwiY2FsbGJhY2siLCJwYXRoTWFwcyIsIm1vdmVFbnRyaWVzIiwidGFyZ2V0RW50cnlQYXRocyIsInNvdXJjZUVudHJ5UGF0aCIsInRhcmdldEVudHJ5UGF0aCIsImVudHJ5RGlyZWN0b3J5IiwicmVtb3ZlRW50cnlPcGVyYXRpb24iLCJhYnNvbHV0ZVNvdXJjZUVudHJ5UGF0aCIsInNvdXJjZUVudHJ5RXhpc3RzIiwibW92ZURpcmVjdG9yeU9wZXJhdGlvbiIsIm1vdmVGaWxlT3BlcmF0aW9uIiwiYXN5bmNocm9ub3VzRm9yRWFjaCIsIm5leHQiLCJkb25lIiwiaW5kZXgiLCJwdXNoIiwic291cmNlRmlsZVBhdGgiLCJ0YXJnZXRGaWxlUGF0aCIsImFic29sdXRlU291cmNlRmlsZVBhdGgiLCJhYnNvbHV0ZVRhcmdldEZpbGVQYXRoIiwidGFyZ2V0RmlsZUV4aXN0cyIsIm1vdmUiLCJlcnJvciIsInNvdXJjZURpcmVjdG9yeVBhdGgiLCJ0YXJnZXREaXJlY3RvcnlQYXRoIiwiYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoIiwic291cmNlRGlyZWN0b3J5RW1wdHkiLCJhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgiLCJ0YXJnZXREaXJlY3RvcnlFeGlzdHMiLCJyZW1vdmUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVdBLE9BVUM7ZUFWdUJBOztJQVlSQyxrQkFBa0I7ZUFBbEJBOzs7dUJBckJhO3lCQUNzQjt3QkFFZjtvQ0FDQztBQUVyQyxJQUFNLEFBQUVDLG1CQUFxQkMsd0JBQWEsQ0FBbENELGtCQUNBRSxtQkFBdUNDLDhCQUFtQixDQUExREQsa0JBQWtCRSxtQkFBcUJELDhCQUFtQixDQUF4Q0M7QUFFWCxTQUFTTixtQkFBbUJPLHFCQUFxQixFQUFFQyxJQUFJLEVBQUVDLFFBQVE7SUFDOUUsSUFBTSxBQUFFQyxXQUFhRixLQUFiRTtJQUVSQyxZQUFZRCxVQUFVSCx1QkFBdUIsU0FBQ0s7UUFDNUMsSUFBTUosU0FBTztZQUNYSSxrQkFBQUE7UUFDRjtRQUVBSCxTQUFTRDtJQUNYO0FBQ0Y7QUFFTyxTQUFTUCxtQkFBbUJZLGVBQWUsRUFBRUMsZUFBZSxFQUFFQyxjQUFjLEVBQUVSLHFCQUFxQixFQUFFRSxRQUFRO0lBQ2xILElBQUlLLG9CQUFvQixNQUFNO1FBQzVCRSxJQUFBQSwwQ0FBb0IsRUFBQ0gsaUJBQWlCQyxpQkFBaUJDLGdCQUFnQlIsdUJBQXVCRTtRQUU5RjtJQUNGO0lBRUEsSUFBTVEsMEJBQTBCZixpQkFBaUJLLHVCQUF1Qk0sa0JBQ2xFSyxvQkFBb0JkLGlCQUFpQmE7SUFFM0MsSUFBSSxDQUFDQyxtQkFBbUI7UUFDdEJKLGtCQUFrQjtRQUVsQkwsU0FBU0ksaUJBQWlCQztRQUUxQjtJQUNGO0lBRUFDLGlCQUNFSSx1QkFBdUJOLGlCQUFpQkMsaUJBQWlCUCx1QkFBdUJFLFlBQzlFVyxrQkFBa0JQLGlCQUFpQkMsaUJBQWlCUCx1QkFBdUJFO0FBQ2pGO0FBRUEsU0FBU0UsWUFBWUQsUUFBUSxFQUFFSCxxQkFBcUIsRUFBRUUsUUFBUTtJQUM1RCxJQUFNRyxtQkFBbUIsRUFBRTtJQUUzQlMsSUFBQUEsNkJBQW1CLEVBQ2pCWCxVQUNBLFNBQUNHLGlCQUFpQkMsaUJBQWlCQyxnQkFBZ0JPLE1BQU1DLE1BQU1DO1FBQzdEdkIsbUJBQW1CWSxpQkFBaUJDLGlCQUFpQkMsZ0JBQWdCUix1QkFBdUIsU0FBQ00saUJBQWlCQztZQUM1R0YsaUJBQWlCYSxJQUFJLENBQUNYO1lBRXRCUTtRQUNGO0lBQ0YsR0FDQTtRQUNFYixTQUFTRztJQUNYO0FBRUo7QUFFQSxTQUFTUSxrQkFBa0JQLGVBQWUsRUFBRUMsZUFBZSxFQUFFUCxxQkFBcUIsRUFBRUUsUUFBUTtJQUMxRixJQUFNaUIsaUJBQWlCYixpQkFDakJjLGlCQUFpQmIsaUJBQ2pCYyx5QkFBeUIxQixpQkFBaUJLLHVCQUF1Qm1CLGlCQUNqRUcseUJBQXlCM0IsaUJBQWlCSyx1QkFBdUJvQixpQkFDakVHLG1CQUFtQjFCLGlCQUFpQnlCO0lBRTFDLElBQUlDLGtCQUFrQjtRQUNwQmhCLGtCQUFrQkQsaUJBQWtCLEdBQUc7UUFFdkNKLFNBQVNJLGlCQUFpQkM7UUFFMUI7SUFDRjtJQUVBaUIsSUFBQUEsYUFBSSxFQUFDSCx3QkFBd0JDLHdCQUF3QixTQUFDRztRQUNwRCxJQUFJQSxPQUFPO1lBQ1RsQixrQkFBa0I7UUFDcEI7UUFFQUwsU0FBU0ksaUJBQWlCQztJQUM1QjtBQUNGO0FBRUEsU0FBU0ssdUJBQXVCTixlQUFlLEVBQUVDLGVBQWUsRUFBRVAscUJBQXFCLEVBQUVFLFFBQVE7SUFDL0YsSUFBTXdCLHNCQUFzQnBCLGlCQUN0QnFCLHNCQUFzQnBCLGlCQUN0QnFCLDhCQUE4QmpDLGlCQUFpQkssdUJBQXVCMEIsc0JBQ3RFRyx1QkFBdUI5QixpQkFBaUI2QjtJQUU5QyxJQUFJLENBQUNDLHNCQUFzQjtRQUN6QnRCLGtCQUFrQkQsaUJBQWtCLEdBQUc7UUFFdkNKLFNBQVNJLGlCQUFpQkM7UUFFMUI7SUFDRjtJQUVBLElBQU11Qiw4QkFBOEJuQyxpQkFBaUJLLHVCQUF1QjJCLHNCQUN0RUksd0JBQXdCbEMsaUJBQWlCaUM7SUFFL0MsSUFBSUMsdUJBQXVCO1FBQ3pCQyxJQUFBQSxlQUFNLEVBQUNKLDZCQUE2QixTQUFDSDtZQUNuQyxJQUFJQSxPQUFPO2dCQUNUbEIsa0JBQWtCRCxpQkFBa0IsR0FBRztZQUN6QztZQUVBSixTQUFTSSxpQkFBaUJDO1FBQzVCO1FBRUE7SUFDRjtJQUVBaUIsSUFBQUEsYUFBSSxFQUFDSSw2QkFBNkJFLDZCQUE2QixTQUFDTDtRQUM5RCxJQUFJQSxPQUFPO1lBQ1RsQixrQkFBa0JELGlCQUFrQixHQUFHO1FBQ3pDO1FBRUFKLFNBQVNJLGlCQUFpQkM7SUFDNUI7QUFDRiJ9
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tb3ZlUHJvamVjdEVudHJpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHBhdGhVdGlsaXRpZXMsIGZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IGFzeW5jaHJvbm91c0ZvckVhY2ggfSBmcm9tIFwiLi91dGlsaXRpZXMvcGF0aE1hcHNcIjtcbmltcG9ydCB7IHJlbW92ZUVudHJ5T3BlcmF0aW9uIH0gZnJvbSBcIi4vcmVtb3ZlUHJvamVjdEVudHJpZXNcIjtcbmltcG9ydCB7IHJlbW92ZUVudHJ5IGFzIHJlbW92ZURpcmVjdG9yeSB9IGZyb20gXCIuL3JlbW92ZVByb2plY3RFbnRyaWVzXCI7XG5cbmNvbnN0IHsgY29uY2F0ZW5hdGVQYXRocywgcGF0aFdpdGhvdXRCb3R0b21tb3N0TmFtZSB9ID0gcGF0aFV0aWxpdGllcyxcbiAgICAgIHsgaXNEaXJlY3RvcnlFbXB0eSxcbiAgICAgICAgY2hlY2tFbnRyeUV4aXN0cyxcbiAgICAgICAgcmVuYW1lRmlsZTogcmVuYW1lRmlsZUV4LFxuICAgICAgICByZW5hbWVEaXJlY3Rvcnk6IHJlbmFtZURpcmVjdG9yeUV4LFxuICAgICAgICBjaGVja0VudHJ5RXhpc3RzOiBjaGVja0RpcmVjdG9yeUV4aXN0cyB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbW92ZVByb2plY3RFbnRyaWVzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwganNvbiwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyBwYXRoTWFwcyB9ID0ganNvbjtcblxuICBtb3ZlRW50cmllcyhwYXRoTWFwcywgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCAodGFyZ2V0RW50cnlQYXRocykgPT4ge1xuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGhzXG4gICAgfTtcblxuICAgIGNhbGxiYWNrKGpzb24pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdmVFbnRyeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgZW50cnlEaXJlY3RvcnksIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgaWYgKHRhcmdldEVudHJ5UGF0aCA9PT0gbnVsbCkge1xuICAgIHJlbW92ZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBlbnRyeURpcmVjdG9yeSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjayk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBhYnNvbHV0ZVNvdXJjZUVudHJ5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VFbnRyeVBhdGgpLFxuICAgICAgICBzb3VyY2VFbnRyeUV4aXN0cyA9IGNoZWNrRW50cnlFeGlzdHMoYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGgpO1xuXG4gIGlmICghc291cmNlRW50cnlFeGlzdHMpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsO1xuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZW50cnlEaXJlY3RvcnkgP1xuICAgIG1vdmVEaXJlY3RvcnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIDpcbiAgICAgIG1vdmVGaWxlT3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdmVEaXJlY3Rvcnkob2xkRGlyZWN0b3J5UGF0aCwgbmV3RGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgbGV0IGVycm9yID0gbnVsbDtcblxuICBjb25zdCBuZXdEaXJlY3RvcnlQYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lID0gcGF0aFdpdGhvdXRCb3R0b21tb3N0TmFtZShuZXdEaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgbmV3UGFyZW50RGlyZWN0b3J5UGF0aCA9IG5ld0RpcmVjdG9yeVBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWUsIC8vL1xuICAgICAgICBuZXdQYXJlbnREaXJlY3RvcnlFeGlzdHMgPSBjaGVja0RpcmVjdG9yeUV4aXN0cyhuZXdQYXJlbnREaXJlY3RvcnlQYXRoKTtcblxuICBpZiAoIW5ld1BhcmVudERpcmVjdG9yeUV4aXN0cykge1xuICAgIGVycm9yID0gYFRoZSBuZXcgJyR7bmV3RGlyZWN0b3J5UGF0aH0nIGRpcmVjdG9yeSdzIHBhcmVudCBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QuYDtcbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgcmVuYW1lRGlyZWN0b3J5RXgob2xkRGlyZWN0b3J5UGF0aCk7XG4gICAgfSBjYXRjaCAobmF0aXZlRXJyb3IpIHtcbiAgICAgIGVycm9yID0gbmF0aXZlRXJyb3I7ICAvLy9cbiAgICB9XG4gIH1cblxuICBjYWxsYmFjayhlcnJvcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlRmlsZShvbGRGaWxlUGF0aCwgbmV3RmlsZVBhdGgsIGNhbGxiYWNrKSB7XG4gIGxldCBlcnJvciA9IG51bGw7XG5cbiAgY29uc3QgbmV3RmlsZVBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWUgPSBwYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lKG5ld0ZpbGVQYXRoKSxcbiAgICAgICAgbmV3UGFyZW50RGlyZWN0b3J5UGF0aCA9IG5ld0ZpbGVQYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lLCAvLy9cbiAgICAgICAgbmV3UGFyZW50RGlyZWN0b3J5RXhpc3RzID0gY2hlY2tGaWxlRXhpc3RzKG5ld1BhcmVudERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICghbmV3UGFyZW50RGlyZWN0b3J5RXhpc3RzKSB7XG4gICAgZXJyb3IgPSBgVGhlIG5ldyAnJHtuZXdGaWxlUGF0aH0nIGZpbGUncyBwYXJlbnQgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0LmA7XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIHJlbmFtZUZpbGVFeChvbGRGaWxlUGF0aCwgbmV3RmlsZVBhdGgpO1xuICAgIH0gY2F0Y2ggKG5hdGl2ZUVycm9yKSB7XG4gICAgICBlcnJvciA9IG5hdGl2ZUVycm9yOyAgLy8vXG4gICAgfVxuICB9XG5cbiAgY2FsbGJhY2soZXJyb3IpO1xufVxuXG5mdW5jdGlvbiBtb3ZlRW50cmllcyhwYXRoTWFwcywgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCB0YXJnZXRFbnRyeVBhdGhzID0gW107XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChcbiAgICBwYXRoTWFwcyxcbiAgICAoc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBuZXh0LCBkb25lLCBpbmRleCkgPT4ge1xuICAgICAgbW92ZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBlbnRyeURpcmVjdG9yeSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCAoc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpID0+IHtcbiAgICAgICAgdGFyZ2V0RW50cnlQYXRocy5wdXNoKHRhcmdldEVudHJ5UGF0aCk7XG5cbiAgICAgICAgbmV4dCgpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICAoKSA9PiB7XG4gICAgICBjYWxsYmFjayh0YXJnZXRFbnRyeVBhdGhzKTtcbiAgICB9XG4gICk7XG59XG5cbmZ1bmN0aW9uIG1vdmVGaWxlT3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHNvdXJjZUZpbGVQYXRoID0gc291cmNlRW50cnlQYXRoLCAvLy9cbiAgICAgICAgdGFyZ2V0RmlsZVBhdGggPSB0YXJnZXRFbnRyeVBhdGgsIC8vL1xuICAgICAgICBhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZUZpbGVQYXRoKSxcbiAgICAgICAgYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0YXJnZXRGaWxlUGF0aCksXG4gICAgICAgIHRhcmdldEZpbGVFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGFic29sdXRlVGFyZ2V0RmlsZVBhdGgpO1xuXG4gIGlmICh0YXJnZXRGaWxlRXhpc3RzKSB7XG4gICAgdGFyZ2V0RW50cnlQYXRoID0gc291cmNlRW50cnlQYXRoOyAgLy8vXG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBvbGRGaWxlUGF0aCA9IGFic29sdXRlU291cmNlRmlsZVBhdGgsIC8vL1xuICAgICAgICBuZXdGaWxlUGF0aCA9IGFic29sdXRlVGFyZ2V0RmlsZVBhdGg7IC8vL1xuXG4gIG1vdmVGaWxlKG9sZEZpbGVQYXRoLCBuZXdGaWxlUGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG1vdmVEaXJlY3RvcnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3Qgc291cmNlRGlyZWN0b3J5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aCwgIC8vL1xuICAgICAgICB0YXJnZXREaXJlY3RvcnlQYXRoID0gdGFyZ2V0RW50cnlQYXRoLCAgLy8vXG4gICAgICAgIGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VEaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgc291cmNlRGlyZWN0b3J5RW1wdHkgPSBpc0RpcmVjdG9yeUVtcHR5KGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCk7XG5cbiAgaWYgKCFzb3VyY2VEaXJlY3RvcnlFbXB0eSkge1xuICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRhcmdldERpcmVjdG9yeVBhdGgpLFxuICAgICAgICB0YXJnZXREaXJlY3RvcnlFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCk7XG5cbiAgaWYgKHRhcmdldERpcmVjdG9yeUV4aXN0cykge1xuICAgIGNvbnN0IGRpcmVjdG9yeVBhdGggPSBhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGg7ICAvLy9cblxuICAgIHJlbW92ZURpcmVjdG9yeShkaXJlY3RvcnlQYXRoLCAoZXJyb3IpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cbiAgICAgIH1cblxuICAgICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgb2xkRGlyZWN0b3J5UGF0aCA9IGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCwgLy8vXG4gICAgICAgIG5ld0RpcmVjdG9yeVBhdGggPSBhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGg7IC8vL1xuXG4gIG1vdmVEaXJlY3Rvcnkob2xkRGlyZWN0b3J5UGF0aCwgbmV3RGlyZWN0b3J5UGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cbiAgICB9XG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbIm1vdmVQcm9qZWN0RW50cmllcyIsIm1vdmVFbnRyeU9wZXJhdGlvbiIsIm1vdmVEaXJlY3RvcnkiLCJtb3ZlRmlsZSIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwicGF0aFdpdGhvdXRCb3R0b21tb3N0TmFtZSIsImlzRGlyZWN0b3J5RW1wdHkiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwiY2hlY2tFbnRyeUV4aXN0cyIsInJlbmFtZUZpbGUiLCJyZW5hbWVGaWxlRXgiLCJyZW5hbWVEaXJlY3RvcnkiLCJyZW5hbWVEaXJlY3RvcnlFeCIsImNoZWNrRGlyZWN0b3J5RXhpc3RzIiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwianNvbiIsImNhbGxiYWNrIiwicGF0aE1hcHMiLCJtb3ZlRW50cmllcyIsInRhcmdldEVudHJ5UGF0aHMiLCJzb3VyY2VFbnRyeVBhdGgiLCJ0YXJnZXRFbnRyeVBhdGgiLCJlbnRyeURpcmVjdG9yeSIsInJlbW92ZUVudHJ5T3BlcmF0aW9uIiwiYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGgiLCJzb3VyY2VFbnRyeUV4aXN0cyIsIm1vdmVEaXJlY3RvcnlPcGVyYXRpb24iLCJtb3ZlRmlsZU9wZXJhdGlvbiIsIm9sZERpcmVjdG9yeVBhdGgiLCJuZXdEaXJlY3RvcnlQYXRoIiwiZXJyb3IiLCJuZXdEaXJlY3RvcnlQYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lIiwibmV3UGFyZW50RGlyZWN0b3J5UGF0aCIsIm5ld1BhcmVudERpcmVjdG9yeUV4aXN0cyIsIm5hdGl2ZUVycm9yIiwib2xkRmlsZVBhdGgiLCJuZXdGaWxlUGF0aCIsIm5ld0ZpbGVQYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lIiwiY2hlY2tGaWxlRXhpc3RzIiwiYXN5bmNocm9ub3VzRm9yRWFjaCIsIm5leHQiLCJkb25lIiwiaW5kZXgiLCJwdXNoIiwic291cmNlRmlsZVBhdGgiLCJ0YXJnZXRGaWxlUGF0aCIsImFic29sdXRlU291cmNlRmlsZVBhdGgiLCJhYnNvbHV0ZVRhcmdldEZpbGVQYXRoIiwidGFyZ2V0RmlsZUV4aXN0cyIsInNvdXJjZURpcmVjdG9yeVBhdGgiLCJ0YXJnZXREaXJlY3RvcnlQYXRoIiwiYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoIiwic291cmNlRGlyZWN0b3J5RW1wdHkiLCJhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgiLCJ0YXJnZXREaXJlY3RvcnlFeGlzdHMiLCJkaXJlY3RvcnlQYXRoIiwicmVtb3ZlRGlyZWN0b3J5Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFlQSxPQVVDO2VBVnVCQTs7SUFZUkMsa0JBQWtCO2VBQWxCQTs7SUF1QkFDLGFBQWE7ZUFBYkE7O0lBb0JBQyxRQUFRO2VBQVJBOzs7eUJBcEVtQzt3QkFFZjtvQ0FDQztBQUdyQyxJQUFRQyxtQkFBZ0RDLHdCQUFhLENBQTdERCxrQkFBa0JFLDRCQUE4QkQsd0JBQWEsQ0FBM0NDLDJCQUNsQkMsbUJBSTJDQyw4QkFBbUIsQ0FKOURELGtCQUNBRSxtQkFHMkNELDhCQUFtQixDQUg5REMsa0JBQ0FDLEFBQVlDLGVBRStCSCw4QkFBbUIsQ0FGOURFLFlBQ0FFLEFBQWlCQyxvQkFDMEJMLDhCQUFtQixDQUQ5REksaUJBQ0FILEFBQWtCSyx1QkFBeUJOLDhCQUFtQixDQUE5REM7QUFFTyxTQUFTVCxtQkFBbUJlLHFCQUFxQixFQUFFQyxJQUFJLEVBQUVDLFFBQVE7SUFDOUUsSUFBTSxBQUFFQyxXQUFhRixLQUFiRTtJQUVSQyxZQUFZRCxVQUFVSCx1QkFBdUIsU0FBQ0s7UUFDNUMsSUFBTUosU0FBTztZQUNYSSxrQkFBQUE7UUFDRjtRQUVBSCxTQUFTRDtJQUNYO0FBQ0Y7QUFFTyxTQUFTZixtQkFBbUJvQixlQUFlLEVBQUVDLGVBQWUsRUFBRUMsY0FBYyxFQUFFUixxQkFBcUIsRUFBRUUsUUFBUTtJQUNsSCxJQUFJSyxvQkFBb0IsTUFBTTtRQUM1QkUsSUFBQUEsMENBQW9CLEVBQUNILGlCQUFpQkMsaUJBQWlCQyxnQkFBZ0JSLHVCQUF1QkU7UUFFOUY7SUFDRjtJQUVBLElBQU1RLDBCQUEwQnJCLGlCQUFpQlcsdUJBQXVCTSxrQkFDbEVLLG9CQUFvQmpCLGlCQUFpQmdCO0lBRTNDLElBQUksQ0FBQ0MsbUJBQW1CO1FBQ3RCSixrQkFBa0I7UUFFbEJMLFNBQVNJLGlCQUFpQkM7UUFFMUI7SUFDRjtJQUVBQyxpQkFDRUksdUJBQXVCTixpQkFBaUJDLGlCQUFpQlAsdUJBQXVCRSxZQUM5RVcsa0JBQWtCUCxpQkFBaUJDLGlCQUFpQlAsdUJBQXVCRTtBQUNqRjtBQUVPLFNBQVNmLGNBQWMyQixnQkFBZ0IsRUFBRUMsZ0JBQWdCLEVBQUViLFFBQVE7SUFDeEUsSUFBSWMsUUFBUTtJQUVaLElBQU1DLHdDQUF3QzFCLDBCQUEwQndCLG1CQUNsRUcseUJBQXlCRCx1Q0FDekJFLDJCQUEyQnBCLHFCQUFxQm1CO0lBRXRELElBQUksQ0FBQ0MsMEJBQTBCO1FBQzdCSCxRQUFRLEFBQUMsWUFBNEIsT0FBakJELGtCQUFpQjtJQUN2QyxPQUFPO1FBQ0wsSUFBSTtZQUNGakIsa0JBQWtCZ0I7UUFDcEIsRUFBRSxPQUFPTSxhQUFhO1lBQ3BCSixRQUFRSSxhQUFjLEdBQUc7UUFDM0I7SUFDRjtJQUVBbEIsU0FBU2M7QUFDWDtBQUVPLFNBQVM1QixTQUFTaUMsV0FBVyxFQUFFQyxXQUFXLEVBQUVwQixRQUFRO0lBQ3pELElBQUljLFFBQVE7SUFFWixJQUFNTyxtQ0FBbUNoQywwQkFBMEIrQixjQUM3REoseUJBQXlCSyxrQ0FDekJKLDJCQUEyQkssZ0JBQWdCTjtJQUVqRCxJQUFJLENBQUNDLDBCQUEwQjtRQUM3QkgsUUFBUSxBQUFDLFlBQXVCLE9BQVpNLGFBQVk7SUFDbEMsT0FBTztRQUNMLElBQUk7WUFDRjFCLGFBQWF5QixhQUFhQztRQUM1QixFQUFFLE9BQU9GLGFBQWE7WUFDcEJKLFFBQVFJLGFBQWMsR0FBRztRQUMzQjtJQUNGO0lBRUFsQixTQUFTYztBQUNYO0FBRUEsU0FBU1osWUFBWUQsUUFBUSxFQUFFSCxxQkFBcUIsRUFBRUUsUUFBUTtJQUM1RCxJQUFNRyxtQkFBbUIsRUFBRTtJQUUzQm9CLElBQUFBLDZCQUFtQixFQUNqQnRCLFVBQ0EsU0FBQ0csaUJBQWlCQyxpQkFBaUJDLGdCQUFnQmtCLE1BQU1DLE1BQU1DO1FBQzdEMUMsbUJBQW1Cb0IsaUJBQWlCQyxpQkFBaUJDLGdCQUFnQlIsdUJBQXVCLFNBQUNNLGlCQUFpQkM7WUFDNUdGLGlCQUFpQndCLElBQUksQ0FBQ3RCO1lBRXRCbUI7UUFDRjtJQUNGLEdBQ0E7UUFDRXhCLFNBQVNHO0lBQ1g7QUFFSjtBQUVBLFNBQVNRLGtCQUFrQlAsZUFBZSxFQUFFQyxlQUFlLEVBQUVQLHFCQUFxQixFQUFFRSxRQUFRO0lBQzFGLElBQU00QixpQkFBaUJ4QixpQkFDakJ5QixpQkFBaUJ4QixpQkFDakJ5Qix5QkFBeUIzQyxpQkFBaUJXLHVCQUF1QjhCLGlCQUNqRUcseUJBQXlCNUMsaUJBQWlCVyx1QkFBdUIrQixpQkFDakVHLG1CQUFtQnhDLGlCQUFpQnVDO0lBRTFDLElBQUlDLGtCQUFrQjtRQUNwQjNCLGtCQUFrQkQsaUJBQWtCLEdBQUc7UUFFdkNKLFNBQVNJLGlCQUFpQkM7UUFFMUI7SUFDRjtJQUVBLElBQU1jLGNBQWNXLHdCQUNkVixjQUFjVyx3QkFBd0IsR0FBRztJQUUvQzdDLFNBQVNpQyxhQUFhQyxhQUFhLFNBQUNOO1FBQ2xDLElBQUlBLE9BQU87WUFDVFQsa0JBQWtCO1FBQ3BCO1FBRUFMLFNBQVNJLGlCQUFpQkM7SUFDNUI7QUFDRjtBQUVBLFNBQVNLLHVCQUF1Qk4sZUFBZSxFQUFFQyxlQUFlLEVBQUVQLHFCQUFxQixFQUFFRSxRQUFRO0lBQy9GLElBQU1pQyxzQkFBc0I3QixpQkFDdEI4QixzQkFBc0I3QixpQkFDdEI4Qiw4QkFBOEJoRCxpQkFBaUJXLHVCQUF1Qm1DLHNCQUN0RUcsdUJBQXVCOUMsaUJBQWlCNkM7SUFFOUMsSUFBSSxDQUFDQyxzQkFBc0I7UUFDekIvQixrQkFBa0JELGlCQUFrQixHQUFHO1FBRXZDSixTQUFTSSxpQkFBaUJDO1FBRTFCO0lBQ0Y7SUFFQSxJQUFNZ0MsOEJBQThCbEQsaUJBQWlCVyx1QkFBdUJvQyxzQkFDdEVJLHdCQUF3QjlDLGlCQUFpQjZDO0lBRS9DLElBQUlDLHVCQUF1QjtRQUN6QixJQUFNQyxnQkFBZ0JKLDZCQUE4QixHQUFHO1FBRXZESyxJQUFBQSxpQ0FBZSxFQUFDRCxlQUFlLFNBQUN6QjtZQUM5QixJQUFJQSxPQUFPO2dCQUNUVCxrQkFBa0JELGlCQUFrQixHQUFHO1lBQ3pDO1lBRUFKLFNBQVNJLGlCQUFpQkM7UUFDNUI7UUFFQTtJQUNGO0lBRUEsSUFBTU8sbUJBQW1CdUIsNkJBQ25CdEIsbUJBQW1Cd0IsNkJBQTZCLEdBQUc7SUFFekRwRCxjQUFjMkIsa0JBQWtCQyxrQkFBa0IsU0FBQ0M7UUFDakQsSUFBSUEsT0FBTztZQUNUVCxrQkFBa0JELGlCQUFrQixHQUFHO1FBQ3pDO1FBRUFKLFNBQVNJLGlCQUFpQkM7SUFDNUI7QUFDRiJ9
@@ -14,12 +14,14 @@ _export(exports, {
14
14
  },
15
15
  removeEntryOperation: function() {
16
16
  return removeEntryOperation;
17
+ },
18
+ removeEntry: function() {
19
+ return removeEntry;
17
20
  }
18
21
  });
19
- var _fsextra = require("fs-extra");
20
22
  var _necessary = require("necessary");
21
23
  var _pathMaps = require("./utilities/pathMaps");
22
- var concatenatePaths = _necessary.pathUtilities.concatenatePaths, checkEntryExists = _necessary.fileSystemUtilities.checkEntryExists, isDirectoryEmpty = _necessary.fileSystemUtilities.isDirectoryEmpty;
24
+ var concatenatePaths = _necessary.pathUtilities.concatenatePaths, checkEntryExists = _necessary.fileSystemUtilities.checkEntryExists, isDirectoryEmpty = _necessary.fileSystemUtilities.isDirectoryEmpty, removeEntryEx = _necessary.fileSystemUtilities.removeEntry;
23
25
  function removeProjectEntries(projectsDirectoryPath, json, callback) {
24
26
  var pathMaps = json.pathMaps;
25
27
  removeEntries(pathMaps, projectsDirectoryPath, function(targetEntryPaths) {
@@ -38,6 +40,20 @@ function removeEntryOperation(sourceEntryPath, targetEntryPath, entryDirectory,
38
40
  }
39
41
  entryDirectory ? removeDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) : removeFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback);
40
42
  }
43
+ function removeEntry(entryPath, callback) {
44
+ var error = null;
45
+ var entryExists = checkEntryExists(entryPath);
46
+ if (!entryExists) {
47
+ error = "The '".concat(entryPath, "' entry does not exist.");
48
+ } else {
49
+ try {
50
+ removeEntryEx(entryPath);
51
+ } catch (nativeError) {
52
+ error = nativeError; ///
53
+ }
54
+ }
55
+ callback(error);
56
+ }
41
57
  function removeEntries(pathMaps, projectsDirectoryPath, callback) {
42
58
  var targetEntryPaths = [];
43
59
  (0, _pathMaps.asynchronousForEach)(pathMaps, function(sourceEntryPath, targetEntryPath, entryDirectory, next, done, index) {
@@ -50,8 +66,8 @@ function removeEntries(pathMaps, projectsDirectoryPath, callback) {
50
66
  });
51
67
  }
52
68
  function removeFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
53
- var sourceFilePath = sourceEntryPath, absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath);
54
- (0, _fsextra.remove)(absoluteSourceFilePath, function(error) {
69
+ var sourceFilePath = sourceEntryPath, absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath), entryPath = absoluteSourceFilePath; ///
70
+ removeEntry(entryPath, function(error) {
55
71
  if (error) {
56
72
  targetEntryPath = sourceEntryPath; ///
57
73
  }
@@ -65,7 +81,8 @@ function removeDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDire
65
81
  callback(sourceEntryPath, targetEntryPath);
66
82
  return;
67
83
  }
68
- (0, _fsextra.remove)(absoluteSourceDirectoryPath, function(error) {
84
+ var entryPath = absoluteSourceDirectoryPath; ///
85
+ removeEntry(entryPath, function(error) {
69
86
  if (error) {
70
87
  targetEntryPath = sourceEntryPath; ///
71
88
  }
@@ -73,4 +90,4 @@ function removeDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDire
73
90
  });
74
91
  }
75
92
 
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW1vdmVQcm9qZWN0RW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcmVtb3ZlIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBwYXRoVXRpbGl0aWVzLCBmaWxlU3lzdGVtVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBhc3luY2hyb25vdXNGb3JFYWNoIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BhdGhNYXBzXCI7XG5cbmNvbnN0IHsgY29uY2F0ZW5hdGVQYXRocyB9ID0gcGF0aFV0aWxpdGllcyxcbiAgICAgIHsgY2hlY2tFbnRyeUV4aXN0cywgaXNEaXJlY3RvcnlFbXB0eSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVtb3ZlUHJvamVjdEVudHJpZXMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBqc29uLCBjYWxsYmFjaykge1xuICBjb25zdCB7IHBhdGhNYXBzIH0gPSBqc29uO1xuXG4gIHJlbW92ZUVudHJpZXMocGF0aE1hcHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgKHRhcmdldEVudHJ5UGF0aHMpID0+IHtcbiAgICBjb25zdCBqc29uID0ge1xuICAgICAgdGFyZ2V0RW50cnlQYXRoc1xuICAgIH07XG5cbiAgICBjYWxsYmFjayhqc29uKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVFbnRyeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgZW50cnlEaXJlY3RvcnksIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3QgYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRW50cnlQYXRoKSxcbiAgICAgICAgc291cmNlRW50cnlFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGFic29sdXRlU291cmNlRW50cnlQYXRoKTtcblxuICBpZiAoIXNvdXJjZUVudHJ5RXhpc3RzKSB7XG4gICAgdGFyZ2V0RW50cnlQYXRoID0gbnVsbDtcblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGVudHJ5RGlyZWN0b3J5ID9cbiAgICByZW1vdmVEaXJlY3RvcnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIDpcbiAgICAgIHJlbW92ZUZpbGVPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spO1xufVxuXG5mdW5jdGlvbiByZW1vdmVFbnRyaWVzKHBhdGhNYXBzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHRhcmdldEVudHJ5UGF0aHMgPSBbXTtcblxuICBhc3luY2hyb25vdXNGb3JFYWNoKFxuICAgIHBhdGhNYXBzLFxuICAgIChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgZW50cnlEaXJlY3RvcnksIG5leHQsIGRvbmUsIGluZGV4KSA9PiB7XG4gICAgICByZW1vdmVFbnRyeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgZW50cnlEaXJlY3RvcnksIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKSA9PiB7XG4gICAgICAgIHRhcmdldEVudHJ5UGF0aHMucHVzaCh0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgKCkgPT4ge1xuICAgICAgY2FsbGJhY2sodGFyZ2V0RW50cnlQYXRocyk7XG4gICAgfVxuICApO1xufVxuXG5mdW5jdGlvbiByZW1vdmVGaWxlT3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHNvdXJjZUZpbGVQYXRoID0gc291cmNlRW50cnlQYXRoLCAvLy9cbiAgICAgICAgYWJzb2x1dGVTb3VyY2VGaWxlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VGaWxlUGF0aCk7XG5cbiAgcmVtb3ZlKGFic29sdXRlU291cmNlRmlsZVBhdGgsIChlcnJvcikgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgdGFyZ2V0RW50cnlQYXRoID0gc291cmNlRW50cnlQYXRoOyAgLy8vXG4gICAgfVxuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlRGlyZWN0b3J5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHNvdXJjZURpcmVjdG9yeVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsICAvLy9cbiAgICAgICAgYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZURpcmVjdG9yeVBhdGgpLFxuICAgICAgICBzb3VyY2VEaXJlY3RvcnlFbXB0eSA9IGlzRGlyZWN0b3J5RW1wdHkoYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoKTtcblxuICBpZiAoIXNvdXJjZURpcmVjdG9yeUVtcHR5KSB7XG4gICAgdGFyZ2V0RW50cnlQYXRoID0gc291cmNlRW50cnlQYXRoOyAgLy8vXG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICByZW1vdmUoYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoLCAoZXJyb3IpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsicmVtb3ZlUHJvamVjdEVudHJpZXMiLCJyZW1vdmVFbnRyeU9wZXJhdGlvbiIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwiY2hlY2tFbnRyeUV4aXN0cyIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJpc0RpcmVjdG9yeUVtcHR5IiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwianNvbiIsImNhbGxiYWNrIiwicGF0aE1hcHMiLCJyZW1vdmVFbnRyaWVzIiwidGFyZ2V0RW50cnlQYXRocyIsInNvdXJjZUVudHJ5UGF0aCIsInRhcmdldEVudHJ5UGF0aCIsImVudHJ5RGlyZWN0b3J5IiwiYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGgiLCJzb3VyY2VFbnRyeUV4aXN0cyIsInJlbW92ZURpcmVjdG9yeU9wZXJhdGlvbiIsInJlbW92ZUZpbGVPcGVyYXRpb24iLCJhc3luY2hyb25vdXNGb3JFYWNoIiwibmV4dCIsImRvbmUiLCJpbmRleCIsInB1c2giLCJzb3VyY2VGaWxlUGF0aCIsImFic29sdXRlU291cmNlRmlsZVBhdGgiLCJyZW1vdmUiLCJlcnJvciIsInNvdXJjZURpcmVjdG9yeVBhdGgiLCJhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgiLCJzb3VyY2VEaXJlY3RvcnlFbXB0eSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBVUEsT0FVQztlQVZ1QkE7O0lBWVJDLG9CQUFvQjtlQUFwQkE7Ozt1QkFwQk87eUJBQzRCO3dCQUVmO0FBRXBDLElBQU0sQUFBRUMsbUJBQXFCQyx3QkFBYSxDQUFsQ0Qsa0JBQ0FFLG1CQUF1Q0MsOEJBQW1CLENBQTFERCxrQkFBa0JFLG1CQUFxQkQsOEJBQW1CLENBQXhDQztBQUVYLFNBQVNOLHFCQUFxQk8scUJBQXFCLEVBQUVDLElBQUksRUFBRUMsUUFBUTtJQUNoRixJQUFNLEFBQUVDLFdBQWFGLEtBQWJFO0lBRVJDLGNBQWNELFVBQVVILHVCQUF1QixTQUFDSztRQUM5QyxJQUFNSixTQUFPO1lBQ1hJLGtCQUFBQTtRQUNGO1FBRUFILFNBQVNEO0lBQ1g7QUFDRjtBQUVPLFNBQVNQLHFCQUFxQlksZUFBZSxFQUFFQyxlQUFlLEVBQUVDLGNBQWMsRUFBRVIscUJBQXFCLEVBQUVFLFFBQVE7SUFDcEgsSUFBTU8sMEJBQTBCZCxpQkFBaUJLLHVCQUF1Qk0sa0JBQ2xFSSxvQkFBb0JiLGlCQUFpQlk7SUFFM0MsSUFBSSxDQUFDQyxtQkFBbUI7UUFDdEJILGtCQUFrQjtRQUVsQkwsU0FBU0ksaUJBQWlCQztRQUUxQjtJQUNGO0lBRUFDLGlCQUNFRyx5QkFBeUJMLGlCQUFpQkMsaUJBQWlCUCx1QkFBdUJFLFlBQ2hGVSxvQkFBb0JOLGlCQUFpQkMsaUJBQWlCUCx1QkFBdUJFO0FBQ25GO0FBRUEsU0FBU0UsY0FBY0QsUUFBUSxFQUFFSCxxQkFBcUIsRUFBRUUsUUFBUTtJQUM5RCxJQUFNRyxtQkFBbUIsRUFBRTtJQUUzQlEsSUFBQUEsNkJBQW1CLEVBQ2pCVixVQUNBLFNBQUNHLGlCQUFpQkMsaUJBQWlCQyxnQkFBZ0JNLE1BQU1DLE1BQU1DO1FBQzdEdEIscUJBQXFCWSxpQkFBaUJDLGlCQUFpQkMsZ0JBQWdCUix1QkFBdUIsU0FBQ00saUJBQWlCQztZQUM5R0YsaUJBQWlCWSxJQUFJLENBQUNWO1lBRXRCTztRQUNGO0lBQ0YsR0FDQTtRQUNFWixTQUFTRztJQUNYO0FBRUo7QUFFQSxTQUFTTyxvQkFBb0JOLGVBQWUsRUFBRUMsZUFBZSxFQUFFUCxxQkFBcUIsRUFBRUUsUUFBUTtJQUM1RixJQUFNZ0IsaUJBQWlCWixpQkFDakJhLHlCQUF5QnhCLGlCQUFpQkssdUJBQXVCa0I7SUFFdkVFLElBQUFBLGVBQU0sRUFBQ0Qsd0JBQXdCLFNBQUNFO1FBQzlCLElBQUlBLE9BQU87WUFDVGQsa0JBQWtCRCxpQkFBa0IsR0FBRztRQUN6QztRQUVBSixTQUFTSSxpQkFBaUJDO0lBQzVCO0FBQ0Y7QUFFQSxTQUFTSSx5QkFBeUJMLGVBQWUsRUFBRUMsZUFBZSxFQUFFUCxxQkFBcUIsRUFBRUUsUUFBUTtJQUNqRyxJQUFNb0Isc0JBQXNCaEIsaUJBQ3RCaUIsOEJBQThCNUIsaUJBQWlCSyx1QkFBdUJzQixzQkFDdEVFLHVCQUF1QnpCLGlCQUFpQndCO0lBRTlDLElBQUksQ0FBQ0Msc0JBQXNCO1FBQ3pCakIsa0JBQWtCRCxpQkFBa0IsR0FBRztRQUV2Q0osU0FBU0ksaUJBQWlCQztRQUUxQjtJQUNGO0lBRUFhLElBQUFBLGVBQU0sRUFBQ0csNkJBQTZCLFNBQUNGO1FBQ25DLElBQUlBLE9BQU87WUFDVGQsa0JBQWtCRCxpQkFBa0IsR0FBRztRQUN6QztRQUVBSixTQUFTSSxpQkFBaUJDO0lBQzVCO0FBQ0YifQ==
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW1vdmVQcm9qZWN0RW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgYXN5bmNocm9ub3VzRm9yRWFjaCB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoTWFwc1wiO1xuXG5jb25zdCB7IGNvbmNhdGVuYXRlUGF0aHMgfSA9IHBhdGhVdGlsaXRpZXMsXG4gICAgICB7IGNoZWNrRW50cnlFeGlzdHMsIGlzRGlyZWN0b3J5RW1wdHksIHJlbW92ZUVudHJ5OiByZW1vdmVFbnRyeUV4IH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZW1vdmVQcm9qZWN0RW50cmllcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGpzb24sIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHsgcGF0aE1hcHMgfSA9IGpzb247XG5cbiAgcmVtb3ZlRW50cmllcyhwYXRoTWFwcywgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCAodGFyZ2V0RW50cnlQYXRocykgPT4ge1xuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGhzXG4gICAgfTtcblxuICAgIGNhbGxiYWNrKGpzb24pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBlbnRyeURpcmVjdG9yeSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCBhYnNvbHV0ZVNvdXJjZUVudHJ5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VFbnRyeVBhdGgpLFxuICAgICAgICBzb3VyY2VFbnRyeUV4aXN0cyA9IGNoZWNrRW50cnlFeGlzdHMoYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGgpO1xuXG4gIGlmICghc291cmNlRW50cnlFeGlzdHMpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsO1xuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZW50cnlEaXJlY3RvcnkgP1xuICAgIHJlbW92ZURpcmVjdG9yeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykgOlxuICAgICAgcmVtb3ZlRmlsZU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVFbnRyeShlbnRyeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGxldCBlcnJvciA9IG51bGw7XG5cbiAgY29uc3QgZW50cnlFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGVudHJ5UGF0aCk7XG5cbiAgaWYgKCFlbnRyeUV4aXN0cykge1xuICAgIGVycm9yID0gYFRoZSAnJHtlbnRyeVBhdGh9JyBlbnRyeSBkb2VzIG5vdCBleGlzdC5gO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICByZW1vdmVFbnRyeUV4KGVudHJ5UGF0aCk7XG4gICAgfSBjYXRjaCAobmF0aXZlRXJyb3IpIHtcbiAgICAgIGVycm9yID0gbmF0aXZlRXJyb3I7ICAvLy9cbiAgICB9XG4gIH1cblxuICBjYWxsYmFjayhlcnJvcik7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUVudHJpZXMocGF0aE1hcHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3QgdGFyZ2V0RW50cnlQYXRocyA9IFtdO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goXG4gICAgcGF0aE1hcHMsXG4gICAgKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBlbnRyeURpcmVjdG9yeSwgbmV4dCwgZG9uZSwgaW5kZXgpID0+IHtcbiAgICAgIHJlbW92ZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBlbnRyeURpcmVjdG9yeSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCAoc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpID0+IHtcbiAgICAgICAgdGFyZ2V0RW50cnlQYXRocy5wdXNoKHRhcmdldEVudHJ5UGF0aCk7XG5cbiAgICAgICAgbmV4dCgpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICAoKSA9PiB7XG4gICAgICBjYWxsYmFjayh0YXJnZXRFbnRyeVBhdGhzKTtcbiAgICB9XG4gICk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUZpbGVPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3Qgc291cmNlRmlsZVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsIC8vL1xuICAgICAgICBhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZUZpbGVQYXRoKSxcbiAgICAgICAgZW50cnlQYXRoID0gYWJzb2x1dGVTb3VyY2VGaWxlUGF0aDsgLy8vXG5cbiAgcmVtb3ZlRW50cnkoZW50cnlQYXRoLCAoZXJyb3IpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZURpcmVjdG9yeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCBzb3VyY2VEaXJlY3RvcnlQYXRoID0gc291cmNlRW50cnlQYXRoLCAgLy8vXG4gICAgICAgIGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VEaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgc291cmNlRGlyZWN0b3J5RW1wdHkgPSBpc0RpcmVjdG9yeUVtcHR5KGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCk7XG5cbiAgaWYgKCFzb3VyY2VEaXJlY3RvcnlFbXB0eSkge1xuICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZW50cnlQYXRoID0gYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoOyAgLy8vXG5cbiAgcmVtb3ZlRW50cnkoZW50cnlQYXRoLCAoZXJyb3IpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsicmVtb3ZlUHJvamVjdEVudHJpZXMiLCJyZW1vdmVFbnRyeU9wZXJhdGlvbiIsInJlbW92ZUVudHJ5IiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJjaGVja0VudHJ5RXhpc3RzIiwiZmlsZVN5c3RlbVV0aWxpdGllcyIsImlzRGlyZWN0b3J5RW1wdHkiLCJyZW1vdmVFbnRyeUV4IiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwianNvbiIsImNhbGxiYWNrIiwicGF0aE1hcHMiLCJyZW1vdmVFbnRyaWVzIiwidGFyZ2V0RW50cnlQYXRocyIsInNvdXJjZUVudHJ5UGF0aCIsInRhcmdldEVudHJ5UGF0aCIsImVudHJ5RGlyZWN0b3J5IiwiYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGgiLCJzb3VyY2VFbnRyeUV4aXN0cyIsInJlbW92ZURpcmVjdG9yeU9wZXJhdGlvbiIsInJlbW92ZUZpbGVPcGVyYXRpb24iLCJlbnRyeVBhdGgiLCJlcnJvciIsImVudHJ5RXhpc3RzIiwibmF0aXZlRXJyb3IiLCJhc3luY2hyb25vdXNGb3JFYWNoIiwibmV4dCIsImRvbmUiLCJpbmRleCIsInB1c2giLCJzb3VyY2VGaWxlUGF0aCIsImFic29sdXRlU291cmNlRmlsZVBhdGgiLCJzb3VyY2VEaXJlY3RvcnlQYXRoIiwiYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoIiwic291cmNlRGlyZWN0b3J5RW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVNBLE9BVUM7ZUFWdUJBOztJQVlSQyxvQkFBb0I7ZUFBcEJBOztJQWlCQUMsV0FBVztlQUFYQTs7O3lCQXBDbUM7d0JBRWY7QUFFcEMsSUFBTSxBQUFFQyxtQkFBcUJDLHdCQUFhLENBQWxDRCxrQkFDQUUsbUJBQW1FQyw4QkFBbUIsQ0FBdEZELGtCQUFrQkUsbUJBQWlERCw4QkFBbUIsQ0FBcEVDLGtCQUFrQkwsQUFBYU0sZ0JBQWtCRiw4QkFBbUIsQ0FBbERKO0FBRTdCLFNBQVNGLHFCQUFxQlMscUJBQXFCLEVBQUVDLElBQUksRUFBRUMsUUFBUTtJQUNoRixJQUFNLEFBQUVDLFdBQWFGLEtBQWJFO0lBRVJDLGNBQWNELFVBQVVILHVCQUF1QixTQUFDSztRQUM5QyxJQUFNSixTQUFPO1lBQ1hJLGtCQUFBQTtRQUNGO1FBRUFILFNBQVNEO0lBQ1g7QUFDRjtBQUVPLFNBQVNULHFCQUFxQmMsZUFBZSxFQUFFQyxlQUFlLEVBQUVDLGNBQWMsRUFBRVIscUJBQXFCLEVBQUVFLFFBQVE7SUFDcEgsSUFBTU8sMEJBQTBCZixpQkFBaUJNLHVCQUF1Qk0sa0JBQ2xFSSxvQkFBb0JkLGlCQUFpQmE7SUFFM0MsSUFBSSxDQUFDQyxtQkFBbUI7UUFDdEJILGtCQUFrQjtRQUVsQkwsU0FBU0ksaUJBQWlCQztRQUUxQjtJQUNGO0lBRUFDLGlCQUNFRyx5QkFBeUJMLGlCQUFpQkMsaUJBQWlCUCx1QkFBdUJFLFlBQ2hGVSxvQkFBb0JOLGlCQUFpQkMsaUJBQWlCUCx1QkFBdUJFO0FBQ25GO0FBRU8sU0FBU1QsWUFBWW9CLFNBQVMsRUFBRVgsUUFBUTtJQUM3QyxJQUFJWSxRQUFRO0lBRVosSUFBTUMsY0FBY25CLGlCQUFpQmlCO0lBRXJDLElBQUksQ0FBQ0UsYUFBYTtRQUNoQkQsUUFBUSxBQUFDLFFBQWlCLE9BQVZELFdBQVU7SUFDNUIsT0FBTztRQUNMLElBQUk7WUFDRmQsY0FBY2M7UUFDaEIsRUFBRSxPQUFPRyxhQUFhO1lBQ3BCRixRQUFRRSxhQUFjLEdBQUc7UUFDM0I7SUFDRjtJQUVBZCxTQUFTWTtBQUNYO0FBRUEsU0FBU1YsY0FBY0QsUUFBUSxFQUFFSCxxQkFBcUIsRUFBRUUsUUFBUTtJQUM5RCxJQUFNRyxtQkFBbUIsRUFBRTtJQUUzQlksSUFBQUEsNkJBQW1CLEVBQ2pCZCxVQUNBLFNBQUNHLGlCQUFpQkMsaUJBQWlCQyxnQkFBZ0JVLE1BQU1DLE1BQU1DO1FBQzdENUIscUJBQXFCYyxpQkFBaUJDLGlCQUFpQkMsZ0JBQWdCUix1QkFBdUIsU0FBQ00saUJBQWlCQztZQUM5R0YsaUJBQWlCZ0IsSUFBSSxDQUFDZDtZQUV0Qlc7UUFDRjtJQUNGLEdBQ0E7UUFDRWhCLFNBQVNHO0lBQ1g7QUFFSjtBQUVBLFNBQVNPLG9CQUFvQk4sZUFBZSxFQUFFQyxlQUFlLEVBQUVQLHFCQUFxQixFQUFFRSxRQUFRO0lBQzVGLElBQU1vQixpQkFBaUJoQixpQkFDakJpQix5QkFBeUI3QixpQkFBaUJNLHVCQUF1QnNCLGlCQUNqRVQsWUFBWVUsd0JBQXdCLEdBQUc7SUFFN0M5QixZQUFZb0IsV0FBVyxTQUFDQztRQUN0QixJQUFJQSxPQUFPO1lBQ1RQLGtCQUFrQkQsaUJBQWtCLEdBQUc7UUFDekM7UUFFQUosU0FBU0ksaUJBQWlCQztJQUM1QjtBQUNGO0FBRUEsU0FBU0kseUJBQXlCTCxlQUFlLEVBQUVDLGVBQWUsRUFBRVAscUJBQXFCLEVBQUVFLFFBQVE7SUFDakcsSUFBTXNCLHNCQUFzQmxCLGlCQUN0Qm1CLDhCQUE4Qi9CLGlCQUFpQk0sdUJBQXVCd0Isc0JBQ3RFRSx1QkFBdUI1QixpQkFBaUIyQjtJQUU5QyxJQUFJLENBQUNDLHNCQUFzQjtRQUN6Qm5CLGtCQUFrQkQsaUJBQWtCLEdBQUc7UUFFdkNKLFNBQVNJLGlCQUFpQkM7UUFFMUI7SUFDRjtJQUVBLElBQU1NLFlBQVlZLDZCQUE4QixHQUFHO0lBRW5EaEMsWUFBWW9CLFdBQVcsU0FBQ0M7UUFDdEIsSUFBSUEsT0FBTztZQUNUUCxrQkFBa0JELGlCQUFrQixHQUFHO1FBQ3pDO1FBRUFKLFNBQVNJLGlCQUFpQkM7SUFDNUI7QUFDRiJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-file-system",
3
3
  "author": "James Smith",
4
- "version": "5.0.228",
4
+ "version": "5.0.230",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-file-system",
7
7
  "description": "Occam's file system functionality.",
@@ -11,9 +11,8 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "argumentative": "^2.0.21",
14
- "fs-extra": "^9.0.0",
15
14
  "mkdirp": "^0.5.1",
16
- "necessary": "^11.0.40",
15
+ "necessary": "^11.6.0",
17
16
  "occam-dom": "^3.1.31",
18
17
  "occam-grammars": "^1.0.451"
19
18
  },
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  import { pathUtilities, fileSystemUtilities } from "necessary";
4
- import { createFile, mkdirs as createDirectory } from "fs-extra";
5
4
 
6
5
  import { asynchronousForEach } from "./utilities/pathMaps";
7
6
 
8
- const { concatenatePaths } = pathUtilities,
9
- { checkEntryExists } = fileSystemUtilities;
7
+ const { concatenatePaths, pathWithoutBottommostNameFromPath } = pathUtilities,
8
+ { createFile: createFileEx,
9
+ createDirectory: createDirectoryEx,
10
+ checkEntryExists: checkFileExists,
11
+ checkEntryExists: checkDirectoryExists } = fileSystemUtilities;
10
12
 
11
13
  export default function createProjectEntries(projectsDirectoryPath, json, callback) {
12
14
  const { pathMaps } = json;
@@ -26,6 +28,46 @@ export function createEntryOperation(sourceEntryPath, targetEntryPath, entryDire
26
28
  createFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback);
27
29
  }
28
30
 
31
+ export function createDirectory(directoryPath, callback) {
32
+ let error = null;
33
+
34
+ const directoryPathWithoutBottommostName = pathWithoutBottommostNameFromPath(directoryPath),
35
+ parentDirectoryPath = directoryPathWithoutBottommostName, ///
36
+ parentDirectoryExists = checkDirectoryExists(parentDirectoryPath);
37
+
38
+ if (!parentDirectoryExists) {
39
+ error = `The '${directoryPath}' directory's parent directory does not exist`;
40
+ } else {
41
+ try {
42
+ createDirectoryEx(directoryPath)
43
+ } catch (nativeError) {
44
+ error = nativeError; ///
45
+ }
46
+ }
47
+
48
+ callback(error);
49
+ }
50
+
51
+ export function createFile(filePath, callback) {
52
+ let error = null;
53
+
54
+ const filePathWithoutBottommostName = pathWithoutBottommostNameFromPath(filePath),
55
+ parentDirectoryPath = filePathWithoutBottommostName, ///
56
+ parentDirectoryExists = checkDirectoryExists(parentDirectoryPath);
57
+
58
+ if (!parentDirectoryExists) {
59
+ error = `The '${filePath}' file's parent directory does not exist`;
60
+ } else {
61
+ try {
62
+ createFileEx(filePath)
63
+ } catch (nativeError) {
64
+ error = nativeError; ///
65
+ }
66
+ }
67
+
68
+ callback(error);
69
+ }
70
+
29
71
  function createEntries(pathMaps, projectsDirectoryPath, callback) {
30
72
  const targetEntryPaths = [];
31
73
 
@@ -47,7 +89,7 @@ function createEntries(pathMaps, projectsDirectoryPath, callback) {
47
89
  function createFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
48
90
  const targetFilePath = targetEntryPath, ///
49
91
  absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath),
50
- targetFileExists = checkEntryExists(absoluteTargetFilePath);
92
+ targetFileExists = checkFileExists(absoluteTargetFilePath);
51
93
 
52
94
  if (targetFileExists) {
53
95
  targetEntryPath = null;
@@ -57,7 +99,9 @@ function createFileOperation(sourceEntryPath, targetEntryPath, projectsDirectory
57
99
  return;
58
100
  }
59
101
 
60
- createFile(absoluteTargetFilePath, (error) => {
102
+ const filePath = absoluteTargetFilePath; ///
103
+
104
+ createFile(filePath, (error) => {
61
105
  if (error) {
62
106
  targetEntryPath = null;
63
107
  }
@@ -69,7 +113,7 @@ function createFileOperation(sourceEntryPath, targetEntryPath, projectsDirectory
69
113
  function createDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
70
114
  const targetDirectoryPath = targetEntryPath, ///
71
115
  absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath),
72
- targetDirectoryExists = checkEntryExists(absoluteTargetDirectoryPath);
116
+ targetDirectoryExists = checkFileExists(absoluteTargetDirectoryPath);
73
117
 
74
118
  if (targetDirectoryExists) {
75
119
  targetEntryPath = null;
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import { move as edit, remove } from "fs-extra";
4
3
  import { pathUtilities, fileSystemUtilities } from "necessary";
5
4
 
6
5
  import { asynchronousForEach } from "./utilities/pathMaps";
7
6
 
7
+ import { moveFile as editFile, moveDirectory as editDirectory } from "./moveProjectEntries";
8
+
8
9
  const { concatenatePaths } = pathUtilities,
9
10
  { checkEntryExists, isDirectoryEmpty } = fileSystemUtilities;
10
11
 
@@ -70,7 +71,10 @@ function editFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPa
70
71
  return;
71
72
  }
72
73
 
73
- edit(absoluteSourceFilePath, absoluteTargetFilePath, (error) => {
74
+ const oldFilePath = absoluteSourceFilePath, ///
75
+ newFilePath = absoluteTargetFilePath; ///
76
+
77
+ editFile(oldFilePath, newFilePath, (error) => {
74
78
  if (error) {
75
79
  targetEntryPath = sourceEntryPath; ///
76
80
  }
@@ -97,7 +101,9 @@ function editDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirect
97
101
  targetDirectoryExists = checkEntryExists(absoluteTargetDirectoryPath);
98
102
 
99
103
  if (targetDirectoryExists) {
100
- remove(absoluteSourceDirectoryPath, (error) => {
104
+ const directoryPath = absoluteSourceDirectoryPath; ///
105
+
106
+ removeDirectory(directoryPath, (error) => {
101
107
  if (error) {
102
108
  targetEntryPath = sourceEntryPath; ///
103
109
  }
@@ -108,7 +114,10 @@ function editDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirect
108
114
  return;
109
115
  }
110
116
 
111
- edit(absoluteSourceDirectoryPath, absoluteTargetDirectoryPath, (error) => {
117
+ const oldDirectoryPath = absoluteSourceDirectoryPath, ///
118
+ newDirectoryPath = absoluteTargetDirectoryPath; ///
119
+
120
+ editDirectory(oldDirectoryPath, newDirectoryPath, (error) => {
112
121
  if (error) {
113
122
  targetEntryPath = sourceEntryPath; ///
114
123
  }
@@ -1,13 +1,17 @@
1
1
  "use strict";
2
2
 
3
- import { move, remove } from "fs-extra";
4
3
  import { pathUtilities, fileSystemUtilities } from "necessary";
5
4
 
6
5
  import { asynchronousForEach } from "./utilities/pathMaps";
7
6
  import { removeEntryOperation } from "./removeProjectEntries";
7
+ import { removeEntry as removeDirectory } from "./removeProjectEntries";
8
8
 
9
- const { concatenatePaths } = pathUtilities,
10
- { checkEntryExists, isDirectoryEmpty } = fileSystemUtilities;
9
+ const { concatenatePaths, pathWithoutBottommostName } = pathUtilities,
10
+ { isDirectoryEmpty,
11
+ checkEntryExists,
12
+ renameFile: renameFileEx,
13
+ renameDirectory: renameDirectoryEx,
14
+ checkEntryExists: checkDirectoryExists } = fileSystemUtilities;
11
15
 
12
16
  export default function moveProjectEntries(projectsDirectoryPath, json, callback) {
13
17
  const { pathMaps } = json;
@@ -44,6 +48,46 @@ export function moveEntryOperation(sourceEntryPath, targetEntryPath, entryDirect
44
48
  moveFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback);
45
49
  }
46
50
 
51
+ export function moveDirectory(oldDirectoryPath, newDirectoryPath, callback) {
52
+ let error = null;
53
+
54
+ const newDirectoryPathWithoutBottommostName = pathWithoutBottommostName(newDirectoryPath),
55
+ newParentDirectoryPath = newDirectoryPathWithoutBottommostName, ///
56
+ newParentDirectoryExists = checkDirectoryExists(newParentDirectoryPath);
57
+
58
+ if (!newParentDirectoryExists) {
59
+ error = `The new '${newDirectoryPath}' directory's parent directory does not exist.`;
60
+ } else {
61
+ try {
62
+ renameDirectoryEx(oldDirectoryPath);
63
+ } catch (nativeError) {
64
+ error = nativeError; ///
65
+ }
66
+ }
67
+
68
+ callback(error);
69
+ }
70
+
71
+ export function moveFile(oldFilePath, newFilePath, callback) {
72
+ let error = null;
73
+
74
+ const newFilePathWithoutBottommostName = pathWithoutBottommostName(newFilePath),
75
+ newParentDirectoryPath = newFilePathWithoutBottommostName, ///
76
+ newParentDirectoryExists = checkFileExists(newParentDirectoryPath);
77
+
78
+ if (!newParentDirectoryExists) {
79
+ error = `The new '${newFilePath}' file's parent directory does not exist.`;
80
+ } else {
81
+ try {
82
+ renameFileEx(oldFilePath, newFilePath);
83
+ } catch (nativeError) {
84
+ error = nativeError; ///
85
+ }
86
+ }
87
+
88
+ callback(error);
89
+ }
90
+
47
91
  function moveEntries(pathMaps, projectsDirectoryPath, callback) {
48
92
  const targetEntryPaths = [];
49
93
 
@@ -77,7 +121,10 @@ function moveFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPa
77
121
  return;
78
122
  }
79
123
 
80
- move(absoluteSourceFilePath, absoluteTargetFilePath, (error) => {
124
+ const oldFilePath = absoluteSourceFilePath, ///
125
+ newFilePath = absoluteTargetFilePath; ///
126
+
127
+ moveFile(oldFilePath, newFilePath, (error) => {
81
128
  if (error) {
82
129
  targetEntryPath = null;
83
130
  }
@@ -104,7 +151,9 @@ function moveDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirect
104
151
  targetDirectoryExists = checkEntryExists(absoluteTargetDirectoryPath);
105
152
 
106
153
  if (targetDirectoryExists) {
107
- remove(absoluteSourceDirectoryPath, (error) => {
154
+ const directoryPath = absoluteSourceDirectoryPath; ///
155
+
156
+ removeDirectory(directoryPath, (error) => {
108
157
  if (error) {
109
158
  targetEntryPath = sourceEntryPath; ///
110
159
  }
@@ -115,7 +164,10 @@ function moveDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirect
115
164
  return;
116
165
  }
117
166
 
118
- move(absoluteSourceDirectoryPath, absoluteTargetDirectoryPath, (error) => {
167
+ const oldDirectoryPath = absoluteSourceDirectoryPath, ///
168
+ newDirectoryPath = absoluteTargetDirectoryPath; ///
169
+
170
+ moveDirectory(oldDirectoryPath, newDirectoryPath, (error) => {
119
171
  if (error) {
120
172
  targetEntryPath = sourceEntryPath; ///
121
173
  }
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import { remove } from "fs-extra";
4
3
  import { pathUtilities, fileSystemUtilities } from "necessary";
5
4
 
6
5
  import { asynchronousForEach } from "./utilities/pathMaps";
7
6
 
8
7
  const { concatenatePaths } = pathUtilities,
9
- { checkEntryExists, isDirectoryEmpty } = fileSystemUtilities;
8
+ { checkEntryExists, isDirectoryEmpty, removeEntry: removeEntryEx } = fileSystemUtilities;
10
9
 
11
10
  export default function removeProjectEntries(projectsDirectoryPath, json, callback) {
12
11
  const { pathMaps } = json;
@@ -37,6 +36,24 @@ export function removeEntryOperation(sourceEntryPath, targetEntryPath, entryDire
37
36
  removeFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback);
38
37
  }
39
38
 
39
+ export function removeEntry(entryPath, callback) {
40
+ let error = null;
41
+
42
+ const entryExists = checkEntryExists(entryPath);
43
+
44
+ if (!entryExists) {
45
+ error = `The '${entryPath}' entry does not exist.`;
46
+ } else {
47
+ try {
48
+ removeEntryEx(entryPath);
49
+ } catch (nativeError) {
50
+ error = nativeError; ///
51
+ }
52
+ }
53
+
54
+ callback(error);
55
+ }
56
+
40
57
  function removeEntries(pathMaps, projectsDirectoryPath, callback) {
41
58
  const targetEntryPaths = [];
42
59
 
@@ -57,9 +74,10 @@ function removeEntries(pathMaps, projectsDirectoryPath, callback) {
57
74
 
58
75
  function removeFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
59
76
  const sourceFilePath = sourceEntryPath, ///
60
- absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath);
77
+ absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath),
78
+ entryPath = absoluteSourceFilePath; ///
61
79
 
62
- remove(absoluteSourceFilePath, (error) => {
80
+ removeEntry(entryPath, (error) => {
63
81
  if (error) {
64
82
  targetEntryPath = sourceEntryPath; ///
65
83
  }
@@ -81,7 +99,9 @@ function removeDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDire
81
99
  return;
82
100
  }
83
101
 
84
- remove(absoluteSourceDirectoryPath, (error) => {
102
+ const entryPath = absoluteSourceDirectoryPath; ///
103
+
104
+ removeEntry(entryPath, (error) => {
85
105
  if (error) {
86
106
  targetEntryPath = sourceEntryPath; ///
87
107
  }