occam-file-system 5.0.228 → 5.0.232
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/createProjectEntries.js +41 -7
- package/lib/editProjectEntries.js +8 -5
- package/lib/moveProjectEntries.js +42 -6
- package/lib/removeProjectEntries.js +23 -6
- package/lib/saveFile.js +3 -4
- package/lib/saveFiles.js +3 -4
- package/lib/utilities/fileSystem.js +18 -8
- package/package.json +2 -4
- package/src/createProjectEntries.js +50 -6
- package/src/editProjectEntries.js +13 -4
- package/src/moveProjectEntries.js +58 -6
- package/src/removeProjectEntries.js +25 -5
- package/src/saveFile.js +3 -4
- package/src/saveFiles.js +3 -4
- package/src/utilities/fileSystem.js +26 -12
|
@@ -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 =
|
|
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
|
-
|
|
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 =
|
|
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
|
-
(
|
|
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,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVQcm9qZWN0RW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgYXN5bmNocm9ub3VzRm9yRWFjaCB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoTWFwc1wiO1xuXG5jb25zdCB7IGNvbmNhdGVuYXRlUGF0aHMsIHBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWVGcm9tUGF0aCB9ID0gcGF0aFV0aWxpdGllcyxcbiAgICAgIHsgY3JlYXRlRmlsZTogY3JlYXRlRmlsZUV4LFxuICAgICAgICBjcmVhdGVEaXJlY3Rvcnk6IGNyZWF0ZURpcmVjdG9yeUV4LFxuICAgICAgICBjaGVja0VudHJ5RXhpc3RzOiBjaGVja0ZpbGVFeGlzdHMsXG4gICAgICAgIGNoZWNrRW50cnlFeGlzdHM6IGNoZWNrRGlyZWN0b3J5RXhpc3RzIH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVQcm9qZWN0RW50cmllcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGpzb24sIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHsgcGF0aE1hcHMgfSA9IGpzb247XG5cbiAgY3JlYXRlRW50cmllcyhwYXRoTWFwcywgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCAodGFyZ2V0RW50cnlQYXRocykgPT4ge1xuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGhzXG4gICAgfTtcblxuICAgIGNhbGxiYWNrKGpzb24pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBlbnRyeURpcmVjdG9yeSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBlbnRyeURpcmVjdG9yeSA/XG4gICAgY3JlYXRlRGlyZWN0b3J5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSA6XG4gICAgICBjcmVhdGVGaWxlT3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURpcmVjdG9yeShkaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBsZXQgZXJyb3IgPSBudWxsO1xuXG4gIGNvbnN0IGRpcmVjdG9yeVBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWUgPSBwYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lRnJvbVBhdGgoZGlyZWN0b3J5UGF0aCksXG4gICAgICAgIHBhcmVudERpcmVjdG9yeVBhdGggPSBkaXJlY3RvcnlQYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lLCAgLy8vXG4gICAgICAgIHBhcmVudERpcmVjdG9yeUV4aXN0cyA9IGNoZWNrRGlyZWN0b3J5RXhpc3RzKHBhcmVudERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICghcGFyZW50RGlyZWN0b3J5RXhpc3RzKSB7XG4gICAgZXJyb3IgPSBgVGhlICcke2RpcmVjdG9yeVBhdGh9JyBkaXJlY3RvcnkncyBwYXJlbnQgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0YDtcbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgY3JlYXRlRGlyZWN0b3J5RXgoZGlyZWN0b3J5UGF0aClcbiAgICB9IGNhdGNoIChuYXRpdmVFcnJvcikge1xuICAgICAgZXJyb3IgPSBuYXRpdmVFcnJvcjsgIC8vL1xuICAgIH1cbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZpbGUoZmlsZVBhdGgsIGNhbGxiYWNrKSB7XG4gIGxldCBlcnJvciA9IG51bGw7XG5cbiAgY29uc3QgZmlsZVBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWUgPSBwYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lRnJvbVBhdGgoZmlsZVBhdGgpLFxuICAgICAgICBwYXJlbnREaXJlY3RvcnlQYXRoID0gZmlsZVBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWUsICAvLy9cbiAgICAgICAgcGFyZW50RGlyZWN0b3J5RXhpc3RzID0gY2hlY2tEaXJlY3RvcnlFeGlzdHMocGFyZW50RGlyZWN0b3J5UGF0aCk7XG5cbiAgaWYgKCFwYXJlbnREaXJlY3RvcnlFeGlzdHMpIHtcbiAgICBlcnJvciA9IGBUaGUgJyR7ZmlsZVBhdGh9JyBmaWxlJ3MgcGFyZW50IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdGA7XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIGNyZWF0ZUZpbGVFeChmaWxlUGF0aClcbiAgICB9IGNhdGNoIChuYXRpdmVFcnJvcikge1xuICAgICAgZXJyb3IgPSBuYXRpdmVFcnJvcjsgIC8vL1xuICAgIH1cbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9yKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRW50cmllcyhwYXRoTWFwcywgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCB0YXJnZXRFbnRyeVBhdGhzID0gW107XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChcbiAgICBwYXRoTWFwcyxcbiAgICAoc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBuZXh0LCBkb25lLCBpbmRleCkgPT4ge1xuICAgICAgY3JlYXRlRW50cnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCkgPT4ge1xuICAgICAgICB0YXJnZXRFbnRyeVBhdGhzLnB1c2godGFyZ2V0RW50cnlQYXRoKTtcblxuICAgICAgICBuZXh0KCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgICgpID0+IHtcbiAgICAgIGNhbGxiYWNrKHRhcmdldEVudHJ5UGF0aHMpO1xuICAgIH1cbiAgKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRmlsZU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCB0YXJnZXRGaWxlUGF0aCA9IHRhcmdldEVudHJ5UGF0aCwgLy8vXG4gICAgICAgIGFic29sdXRlVGFyZ2V0RmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdGFyZ2V0RmlsZVBhdGgpLFxuICAgICAgICB0YXJnZXRGaWxlRXhpc3RzID0gY2hlY2tGaWxlRXhpc3RzKGFic29sdXRlVGFyZ2V0RmlsZVBhdGgpO1xuXG4gIGlmICh0YXJnZXRGaWxlRXhpc3RzKSB7XG4gICAgdGFyZ2V0RW50cnlQYXRoID0gbnVsbDtcblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGZpbGVQYXRoID0gYWJzb2x1dGVUYXJnZXRGaWxlUGF0aDsgIC8vL1xuXG4gIGNyZWF0ZUZpbGUoZmlsZVBhdGgsIChlcnJvcikgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgdGFyZ2V0RW50cnlQYXRoID0gbnVsbDtcbiAgICB9XG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEaXJlY3RvcnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3QgdGFyZ2V0RGlyZWN0b3J5UGF0aCA9IHRhcmdldEVudHJ5UGF0aCwgIC8vL1xuICAgICAgICBhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdGFyZ2V0RGlyZWN0b3J5UGF0aCksXG4gICAgICAgIHRhcmdldERpcmVjdG9yeUV4aXN0cyA9IGNoZWNrRmlsZUV4aXN0cyhhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICh0YXJnZXREaXJlY3RvcnlFeGlzdHMpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsO1xuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY3JlYXRlRGlyZWN0b3J5KGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlUHJvamVjdEVudHJpZXMiLCJjcmVhdGVFbnRyeU9wZXJhdGlvbiIsImNyZWF0ZURpcmVjdG9yeSIsImNyZWF0ZUZpbGUiLCJjb25jYXRlbmF0ZVBhdGhzIiwicGF0aFV0aWxpdGllcyIsInBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWVGcm9tUGF0aCIsImNyZWF0ZUZpbGVFeCIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJjcmVhdGVEaXJlY3RvcnlFeCIsImNoZWNrRW50cnlFeGlzdHMiLCJjaGVja0ZpbGVFeGlzdHMiLCJjaGVja0RpcmVjdG9yeUV4aXN0cyIsInByb2plY3RzRGlyZWN0b3J5UGF0aCIsImpzb24iLCJjYWxsYmFjayIsInBhdGhNYXBzIiwiY3JlYXRlRW50cmllcyIsInRhcmdldEVudHJ5UGF0aHMiLCJzb3VyY2VFbnRyeVBhdGgiLCJ0YXJnZXRFbnRyeVBhdGgiLCJlbnRyeURpcmVjdG9yeSIsImNyZWF0ZURpcmVjdG9yeU9wZXJhdGlvbiIsImNyZWF0ZUZpbGVPcGVyYXRpb24iLCJkaXJlY3RvcnlQYXRoIiwiZXJyb3IiLCJkaXJlY3RvcnlQYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lIiwicGFyZW50RGlyZWN0b3J5UGF0aCIsInBhcmVudERpcmVjdG9yeUV4aXN0cyIsIm5hdGl2ZUVycm9yIiwiZmlsZVBhdGgiLCJmaWxlUGF0aFdpdGhvdXRCb3R0b21tb3N0TmFtZSIsImFzeW5jaHJvbm91c0ZvckVhY2giLCJuZXh0IiwiZG9uZSIsImluZGV4IiwicHVzaCIsInRhcmdldEZpbGVQYXRoIiwiYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCIsInRhcmdldEZpbGVFeGlzdHMiLCJ0YXJnZXREaXJlY3RvcnlQYXRoIiwiYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoIiwidGFyZ2V0RGlyZWN0b3J5RXhpc3RzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFZQSxPQVVDO2VBVnVCQTs7SUFZUkMsb0JBQW9CO2VBQXBCQTs7SUFNQUMsZUFBZTtlQUFmQTs7SUFvQkFDLFVBQVU7ZUFBVkE7Ozt5QkFoRG1DO3dCQUVmO0FBRXBDLElBQVFDLG1CQUF3REMsd0JBQWEsQ0FBckVELGtCQUFrQkUsb0NBQXNDRCx3QkFBYSxDQUFuREMsbUNBQ2xCSCxBQUFZSSxlQUcrQkMsOEJBQW1CLENBSDlETCxZQUNBRCxBQUFpQk8sb0JBRTBCRCw4QkFBbUIsQ0FGOUROLGlCQUNBUSxBQUFrQkMsa0JBQ3lCSCw4QkFBbUIsQ0FEOURFLGtCQUNBQSxBQUFrQkUsdUJBQXlCSiw4QkFBbUIsQ0FBOURFO0FBRU8sU0FBU1YscUJBQXFCYSxxQkFBcUIsRUFBRUMsSUFBSSxFQUFFQyxRQUFRO0lBQ2hGLElBQU0sQUFBRUMsV0FBYUYsS0FBYkU7SUFFUkMsY0FBY0QsVUFBVUgsdUJBQXVCLFNBQUNLO1FBQzlDLElBQU1KLFNBQU87WUFDWEksa0JBQUFBO1FBQ0Y7UUFFQUgsU0FBU0Q7SUFDWDtBQUNGO0FBRU8sU0FBU2IscUJBQXFCa0IsZUFBZSxFQUFFQyxlQUFlLEVBQUVDLGNBQWMsRUFBRVIscUJBQXFCLEVBQUVFLFFBQVE7SUFDcEhNLGlCQUNFQyx5QkFBeUJILGlCQUFpQkMsaUJBQWlCUCx1QkFBdUJFLFlBQ2hGUSxvQkFBb0JKLGlCQUFpQkMsaUJBQWlCUCx1QkFBdUJFO0FBQ25GO0FBRU8sU0FBU2IsZ0JBQWdCc0IsYUFBYSxFQUFFVCxRQUFRO0lBQ3JELElBQUlVLFFBQVE7SUFFWixJQUFNQyxxQ0FBcUNwQixrQ0FBa0NrQixnQkFDdkVHLHNCQUFzQkQsb0NBQ3RCRSx3QkFBd0JoQixxQkFBcUJlO0lBRW5ELElBQUksQ0FBQ0MsdUJBQXVCO1FBQzFCSCxRQUFRLEFBQUMsUUFBcUIsT0FBZEQsZUFBYztJQUNoQyxPQUFPO1FBQ0wsSUFBSTtZQUNGZixrQkFBa0JlO1FBQ3BCLEVBQUUsT0FBT0ssYUFBYTtZQUNwQkosUUFBUUksYUFBYyxHQUFHO1FBQzNCO0lBQ0Y7SUFFQWQsU0FBU1U7QUFDWDtBQUVPLFNBQVN0QixXQUFXMkIsUUFBUSxFQUFFZixRQUFRO0lBQzNDLElBQUlVLFFBQVE7SUFFWixJQUFNTSxnQ0FBZ0N6QixrQ0FBa0N3QixXQUNsRUgsc0JBQXNCSSwrQkFDdEJILHdCQUF3QmhCLHFCQUFxQmU7SUFFbkQsSUFBSSxDQUFDQyx1QkFBdUI7UUFDMUJILFFBQVEsQUFBQyxRQUFnQixPQUFUSyxVQUFTO0lBQzNCLE9BQU87UUFDTCxJQUFJO1lBQ0Z2QixhQUFhdUI7UUFDZixFQUFFLE9BQU9ELGFBQWE7WUFDcEJKLFFBQVFJLGFBQWMsR0FBRztRQUMzQjtJQUNGO0lBRUFkLFNBQVNVO0FBQ1g7QUFFQSxTQUFTUixjQUFjRCxRQUFRLEVBQUVILHFCQUFxQixFQUFFRSxRQUFRO0lBQzlELElBQU1HLG1CQUFtQixFQUFFO0lBRTNCYyxJQUFBQSw2QkFBbUIsRUFDakJoQixVQUNBLFNBQUNHLGlCQUFpQkMsaUJBQWlCQyxnQkFBZ0JZLE1BQU1DLE1BQU1DO1FBQzdEbEMscUJBQXFCa0IsaUJBQWlCQyxpQkFBaUJDLGdCQUFnQlIsdUJBQXVCLFNBQUNNLGlCQUFpQkM7WUFDOUdGLGlCQUFpQmtCLElBQUksQ0FBQ2hCO1lBRXRCYTtRQUNGO0lBQ0YsR0FDQTtRQUNFbEIsU0FBU0c7SUFDWDtBQUVKO0FBRUEsU0FBU0ssb0JBQW9CSixlQUFlLEVBQUVDLGVBQWUsRUFBRVAscUJBQXFCLEVBQUVFLFFBQVE7SUFDNUYsSUFBTXNCLGlCQUFpQmpCLGlCQUNqQmtCLHlCQUF5QmxDLGlCQUFpQlMsdUJBQXVCd0IsaUJBQ2pFRSxtQkFBbUI1QixnQkFBZ0IyQjtJQUV6QyxJQUFJQyxrQkFBa0I7UUFDcEJuQixrQkFBa0I7UUFFbEJMLFNBQVNJLGlCQUFpQkM7UUFFMUI7SUFDRjtJQUVBLElBQU1VLFdBQVdRLHdCQUF5QixHQUFHO0lBRTdDbkMsV0FBVzJCLFVBQVUsU0FBQ0w7UUFDcEIsSUFBSUEsT0FBTztZQUNUTCxrQkFBa0I7UUFDcEI7UUFFQUwsU0FBU0ksaUJBQWlCQztJQUM1QjtBQUNGO0FBRUEsU0FBU0UseUJBQXlCSCxlQUFlLEVBQUVDLGVBQWUsRUFBRVAscUJBQXFCLEVBQUVFLFFBQVE7SUFDakcsSUFBTXlCLHNCQUFzQnBCLGlCQUN0QnFCLDhCQUE4QnJDLGlCQUFpQlMsdUJBQXVCMkIsc0JBQ3RFRSx3QkFBd0IvQixnQkFBZ0I4QjtJQUU5QyxJQUFJQyx1QkFBdUI7UUFDekJ0QixrQkFBa0I7UUFFbEJMLFNBQVNJLGlCQUFpQkM7UUFFMUI7SUFDRjtJQUVBbEIsZ0JBQWdCdUMsNkJBQTZCLFNBQUNoQjtRQUM1QyxJQUFJQSxPQUFPO1lBQ1RMLGtCQUFrQjtRQUNwQjtRQUVBTCxTQUFTSSxpQkFBaUJDO0lBQzVCO0FBQ0YifQ==
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cbiAgICAgIH1cblxuICAgICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgb2xkRGlyZWN0b3J5UGF0aCA9IGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCwgLy8vXG4gICAgICAgIG5ld0RpcmVjdG9yeVBhdGggPSBhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGg7IC8vL1xuXG4gIG1vdmVEaXJlY3Rvcnkob2xkRGlyZWN0b3J5UGF0aCwgbmV3RGlyZWN0b3J5UGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGggPSBzb3VyY2VFbnRyeVBhdGg7ICAvLy9cbiAgICB9XG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbIm1vdmVQcm9qZWN0RW50cmllcyIsIm1vdmVFbnRyeU9wZXJhdGlvbiIsIm1vdmVEaXJlY3RvcnkiLCJtb3ZlRmlsZSIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwicGF0aFdpdGhvdXRCb3R0b21tb3N0TmFtZSIsImlzRGlyZWN0b3J5RW1wdHkiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwiY2hlY2tFbnRyeUV4aXN0cyIsInJlbmFtZUZpbGUiLCJyZW5hbWVGaWxlRXgiLCJyZW5hbWVEaXJlY3RvcnkiLCJyZW5hbWVEaXJlY3RvcnlFeCIsImNoZWNrRGlyZWN0b3J5RXhpc3RzIiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwianNvbiIsImNhbGxiYWNrIiwicGF0aE1hcHMiLCJtb3ZlRW50cmllcyIsInRhcmdldEVudHJ5UGF0aHMiLCJzb3VyY2VFbnRyeVBhdGgiLCJ0YXJnZXRFbnRyeVBhdGgiLCJlbnRyeURpcmVjdG9yeSIsInJlbW92ZUVudHJ5T3BlcmF0aW9uIiwiYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGgiLCJzb3VyY2VFbnRyeUV4aXN0cyIsIm1vdmVEaXJlY3RvcnlPcGVyYXRpb24iLCJtb3ZlRmlsZU9wZXJhdGlvbiIsIm9sZERpcmVjdG9yeVBhdGgiLCJuZXdEaXJlY3RvcnlQYXRoIiwiZXJyb3IiLCJuZXdEaXJlY3RvcnlQYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lIiwibmV3UGFyZW50RGlyZWN0b3J5UGF0aCIsIm5ld1BhcmVudERpcmVjdG9yeUV4aXN0cyIsIm5hdGl2ZUVycm9yIiwib2xkRmlsZVBhdGgiLCJuZXdGaWxlUGF0aCIsIm5ld0ZpbGVQYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lIiwiY2hlY2tGaWxlRXhpc3RzIiwiYXN5bmNocm9ub3VzRm9yRWFjaCIsIm5leHQiLCJkb25lIiwiaW5kZXgiLCJwdXNoIiwic291cmNlRmlsZVBhdGgiLCJ0YXJnZXRGaWxlUGF0aCIsImFic29sdXRlU291cmNlRmlsZVBhdGgiLCJhYnNvbHV0ZVRhcmdldEZpbGVQYXRoIiwidGFyZ2V0RmlsZUV4aXN0cyIsInNvdXJjZURpcmVjdG9yeVBhdGgiLCJ0YXJnZXREaXJlY3RvcnlQYXRoIiwiYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoIiwic291cmNlRGlyZWN0b3J5RW1wdHkiLCJhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgiLCJ0YXJnZXREaXJlY3RvcnlFeGlzdHMiLCJkaXJlY3RvcnlQYXRoIiwicmVtb3ZlRGlyZWN0b3J5Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFlQSxPQVVDO2VBVnVCQTs7SUFZUkMsa0JBQWtCO2VBQWxCQTs7SUF1QkFDLGFBQWE7ZUFBYkE7O0lBb0JBQyxRQUFRO2VBQVJBOzs7eUJBcEVtQzt3QkFFZjtvQ0FDQztBQUdyQyxJQUFRQyxtQkFBZ0RDLHdCQUFhLENBQTdERCxrQkFBa0JFLDRCQUE4QkQsd0JBQWEsQ0FBM0NDLDJCQUNsQkMsbUJBSTJDQyw4QkFBbUIsQ0FKOURELGtCQUNBRSxtQkFHMkNELDhCQUFtQixDQUg5REMsa0JBQ0FDLEFBQVlDLGVBRStCSCw4QkFBbUIsQ0FGOURFLFlBQ0FFLEFBQWlCQyxvQkFDMEJMLDhCQUFtQixDQUQ5REksaUJBQ0FILEFBQWtCSyx1QkFBeUJOLDhCQUFtQixDQUE5REM7QUFFTyxTQUFTVCxt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
|
|
@@ -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
|
-
(
|
|
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
|
-
|
|
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,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW1vdmVQcm9qZWN0RW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgYXN5bmNocm9ub3VzRm9yRWFjaCB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoTWFwc1wiO1xuXG5jb25zdCB7IGNvbmNhdGVuYXRlUGF0aHMgfSA9IHBhdGhVdGlsaXRpZXMsXG4gICAgICB7IGNoZWNrRW50cnlFeGlzdHMsIGlzRGlyZWN0b3J5RW1wdHksIHJlbW92ZUVudHJ5OiByZW1vdmVFbnRyeUV4IH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZW1vdmVQcm9qZWN0RW50cmllcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGpzb24sIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHsgcGF0aE1hcHMgfSA9IGpzb247XG5cbiAgcmVtb3ZlRW50cmllcyhwYXRoTWFwcywgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCAodGFyZ2V0RW50cnlQYXRocykgPT4ge1xuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGhzXG4gICAgfTtcblxuICAgIGNhbGxiYWNrKGpzb24pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBlbnRyeURpcmVjdG9yeSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCBhYnNvbHV0ZVNvdXJjZUVudHJ5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VFbnRyeVBhdGgpLFxuICAgICAgICBzb3VyY2VFbnRyeUV4aXN0cyA9IGNoZWNrRW50cnlFeGlzdHMoYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGgpO1xuXG4gIGlmICghc291cmNlRW50cnlFeGlzdHMpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsO1xuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZW50cnlEaXJlY3RvcnkgP1xuICAgIHJlbW92ZURpcmVjdG9yeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykgOlxuICAgICAgcmVtb3ZlRmlsZU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVFbnRyeShlbnRyeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGxldCBlcnJvciA9IG51bGw7XG5cbiAgY29uc3QgZW50cnlFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGVudHJ5UGF0aCk7XG5cbiAgaWYgKCFlbnRyeUV4aXN0cykge1xuICAgIGVycm9yID0gYFRoZSAnJHtlbnRyeVBhdGh9JyBlbnRyeSBkb2VzIG5vdCBleGlzdC5gO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICByZW1vdmVFbnRyeUV4KGVudHJ5UGF0aCk7XG4gICAgfSBjYXRjaCAobmF0aXZlRXJyb3IpIHtcbiAgICAgIGVycm9yID0gbmF0aXZlRXJyb3I7ICAvLy9cbiAgICB9XG4gIH1cblxuICBjYWxsYmFjayhlcnJvcik7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUVudHJpZXMocGF0aE1hcHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3QgdGFyZ2V0RW50cnlQYXRocyA9IFtdO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goXG4gICAgcGF0aE1hcHMsXG4gICAgKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBlbnRyeURpcmVjdG9yeSwgbmV4dCwgZG9uZSwgaW5kZXgpID0+IHtcbiAgICAgIHJlbW92ZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBlbnRyeURpcmVjdG9yeSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCAoc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpID0+IHtcbiAgICAgICAgdGFyZ2V0RW50cnlQYXRocy5wdXNoKHRhcmdldEVudHJ5UGF0aCk7XG5cbiAgICAgICAgbmV4dCgpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICAoKSA9PiB7XG4gICAgICBjYWxsYmFjayh0YXJnZXRFbnRyeVBhdGhzKTtcbiAgICB9XG4gICk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUZpbGVPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3Qgc291cmNlRmlsZVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsIC8vL1xuICAgICAgICBhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZUZpbGVQYXRoKSxcbiAgICAgICAgZW50cnlQYXRoID0gYWJzb2x1dGVTb3VyY2VGaWxlUGF0aDsgLy8vXG5cbiAgcmVtb3ZlRW50cnkoZW50cnlQYXRoLCAoZXJyb3IpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZURpcmVjdG9yeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCBzb3VyY2VEaXJlY3RvcnlQYXRoID0gc291cmNlRW50cnlQYXRoLCAgLy8vXG4gICAgICAgIGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VEaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgc291cmNlRGlyZWN0b3J5RW1wdHkgPSBpc0RpcmVjdG9yeUVtcHR5KGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCk7XG5cbiAgaWYgKCFzb3VyY2VEaXJlY3RvcnlFbXB0eSkge1xuICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZW50cnlQYXRoID0gYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoOyAgLy8vXG5cbiAgcmVtb3ZlRW50cnkoZW50cnlQYXRoLCAoZXJyb3IpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsicmVtb3ZlUHJvamVjdEVudHJpZXMiLCJyZW1vdmVFbnRyeU9wZXJhdGlvbiIsInJlbW92ZUVudHJ5IiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJjaGVja0VudHJ5RXhpc3RzIiwiZmlsZVN5c3RlbVV0aWxpdGllcyIsImlzRGlyZWN0b3J5RW1wdHkiLCJyZW1vdmVFbnRyeUV4IiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwianNvbiIsImNhbGxiYWNrIiwicGF0aE1hcHMiLCJyZW1vdmVFbnRyaWVzIiwidGFyZ2V0RW50cnlQYXRocyIsInNvdXJjZUVudHJ5UGF0aCIsInRhcmdldEVudHJ5UGF0aCIsImVudHJ5RGlyZWN0b3J5IiwiYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGgiLCJzb3VyY2VFbnRyeUV4aXN0cyIsInJlbW92ZURpcmVjdG9yeU9wZXJhdGlvbiIsInJlbW92ZUZpbGVPcGVyYXRpb24iLCJlbnRyeVBhdGgiLCJlcnJvciIsImVudHJ5RXhpc3RzIiwibmF0aXZlRXJyb3IiLCJhc3luY2hyb25vdXNGb3JFYWNoIiwibmV4dCIsImRvbmUiLCJpbmRleCIsInB1c2giLCJzb3VyY2VGaWxlUGF0aCIsImFic29sdXRlU291cmNlRmlsZVBhdGgiLCJzb3VyY2VEaXJlY3RvcnlQYXRoIiwiYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoIiwic291cmNlRGlyZWN0b3J5RW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVNBLE9BVUM7ZUFWdUJBOztJQVlSQyxvQkFBb0I7ZUFBcEJBOztJQWlCQUMsV0FBVztlQUFYQTs7O3lCQXBDbUM7d0JBRWY7QUFFcEMsSUFBTSxBQUFFQyxtQkFBcUJDLHdCQUFhLENBQWxDRCxrQkFDQUUsbUJBQW1FQyw4QkFBbUIsQ0FBdEZELGtCQUFrQkUsbUJBQWlERCw4QkFBbUIsQ0FBcEVDLGtCQUFrQkwsQUFBYU0sZ0JBQWtCRiw4QkFBbUIsQ0FBbERKO0FBRTdCLFNBQVNGLHFCQUFxQlMscUJBQXFCLEVBQUVDLElBQUksRUFBRUMsUUFBUTtJQUNoRixJQUFNLEFBQUVDLFdBQWFGLEtBQWJFO0lBRVJDLGNBQWNELFVBQVVILHVCQUF1QixTQUFDSztRQUM5QyxJQUFNSixTQUFPO1lBQ1hJLGtCQUFBQTtRQUNGO1FBRUFILFNBQVNEO0lBQ1g7QUFDRjtBQUVPLFNBQVNULHFCQUFxQmMsZUFBZSxFQUFFQyxlQUFlLEVBQUVDLGNBQWMsRUFBRVIscUJBQXFCLEVBQUVFLFFBQVE7SUFDcEgsSUFBTU8sMEJBQTBCZixpQkFBaUJNLHVCQUF1Qk0sa0JBQ2xFSSxvQkFBb0JkLGlCQUFpQmE7SUFFM0MsSUFBSSxDQUFDQyxtQkFBbUI7UUFDdEJILGtCQUFrQjtRQUVsQkwsU0FBU0ksaUJBQWlCQztRQUUxQjtJQUNGO0lBRUFDLGlCQUNFRyx5QkFBeUJMLGlCQUFpQkMsaUJBQWlCUCx1QkFBdUJFLFlBQ2hGVSxvQkFBb0JOLGlCQUFpQkMsaUJBQWlCUCx1QkFBdUJFO0FBQ25GO0FBRU8sU0FBU1QsWUFBWW9CLFNBQVMsRUFBRVgsUUFBUTtJQUM3QyxJQUFJWSxRQUFRO0lBRVosSUFBTUMsY0FBY25CLGlCQUFpQmlCO0lBRXJDLElBQUksQ0FBQ0UsYUFBYTtRQUNoQkQsUUFBUSxBQUFDLFFBQWlCLE9BQVZELFdBQVU7SUFDNUIsT0FBTztRQUNMLElBQUk7WUFDRmQsY0FBY2M7UUFDaEIsRUFBRSxPQUFPRyxhQUFhO1lBQ3BCRixRQUFRRSxhQUFjLEdBQUc7UUFDM0I7SUFDRjtJQUVBZCxTQUFTWTtBQUNYO0FBRUEsU0FBU1YsY0FBY0QsUUFBUSxFQUFFSCxxQkFBcUIsRUFBRUUsUUFBUTtJQUM5RCxJQUFNRyxtQkFBbUIsRUFBRTtJQUUzQlksSUFBQUEsNkJBQW1CLEVBQ2pCZCxVQUNBLFNBQUNHLGlCQUFpQkMsaUJBQWlCQyxnQkFBZ0JVLE1BQU1DLE1BQU1DO1FBQzdENUIscUJBQXFCYyxpQkFBaUJDLGlCQUFpQkMsZ0JBQWdCUix1QkFBdUIsU0FBQ00saUJBQWlCQztZQUM5R0YsaUJBQWlCZ0IsSUFBSSxDQUFDZDtZQUV0Qlc7UUFDRjtJQUNGLEdBQ0E7UUFDRWhCLFNBQVNHO0lBQ1g7QUFFSjtBQUVBLFNBQVNPLG9CQUFvQk4sZUFBZSxFQUFFQyxlQUFlLEVBQUVQLHFCQUFxQixFQUFFRSxRQUFRO0lBQzVGLElBQU1vQixpQkFBaUJoQixpQkFDakJpQix5QkFBeUI3QixpQkFBaUJNLHVCQUF1QnNCLGlCQUNqRVQsWUFBWVUsd0JBQXdCLEdBQUc7SUFFN0M5QixZQUFZb0IsV0FBVyxTQUFDQztRQUN0QixJQUFJQSxPQUFPO1lBQ1RQLGtCQUFrQkQsaUJBQWtCLEdBQUc7UUFDekM7UUFFQUosU0FBU0ksaUJBQWlCQztJQUM1QjtBQUNGO0FBRUEsU0FBU0kseUJBQXlCTCxlQUFlLEVBQUVDLGVBQWUsRUFBRVAscUJBQXFCLEVBQUVFLFFBQVE7SUFDakcsSUFBTXNCLHNCQUFzQmxCLGlCQUN0Qm1CLDhCQUE4Qi9CLGlCQUFpQk0sdUJBQXVCd0Isc0JBQ3RFRSx1QkFBdUI1QixpQkFBaUIyQjtJQUU5QyxJQUFJLENBQUNDLHNCQUFzQjtRQUN6Qm5CLGtCQUFrQkQsaUJBQWtCLEdBQUc7UUFFdkNKLFNBQVNJLGlCQUFpQkM7UUFFMUI7SUFDRjtJQUVBLElBQU1NLFlBQVlZLDZCQUE4QixHQUFHO0lBRW5EaEMsWUFBWW9CLFdBQVcsU0FBQ0M7UUFDdEIsSUFBSUEsT0FBTztZQUNUUCxrQkFBa0JELGlCQUFrQixHQUFHO1FBQ3pDO1FBRUFKLFNBQVNJLGlCQUFpQkM7SUFDNUI7QUFDRiJ9
|
package/lib/saveFile.js
CHANGED
|
@@ -16,10 +16,9 @@ function _interop_require_default(obj) {
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
function saveFile(projectsDirectoryPath, json, callback) {
|
|
19
|
-
var file = _file.default.fromJSON(json);
|
|
20
|
-
|
|
21
|
-
json = {}; ///
|
|
19
|
+
var file = _file.default.fromJSON(json), success = (0, _fileSystem.saveFile)(file, projectsDirectoryPath);
|
|
20
|
+
json = success;
|
|
22
21
|
callback(json);
|
|
23
22
|
}
|
|
24
23
|
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zYXZlRmlsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEZpbGUgZnJvbSBcIi4vZmlsZVwiO1xuXG5pbXBvcnQgeyBzYXZlRmlsZSBhcyBzYXZlRmlsZUV4IH0gZnJvbSBcIi4vdXRpbGl0aWVzL2ZpbGVTeXN0ZW1cIlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzYXZlRmlsZShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGpzb24sIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGZpbGUgPSBGaWxlLmZyb21KU09OKGpzb24pLFxuICAgICAgICBzdWNjZXNzID0gc2F2ZUZpbGVFeChmaWxlLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xuXG4gIGpzb24gPSBzdWNjZXNzO1xuXG4gIGNhbGxiYWNrKGpzb24pO1xufVxuIl0sIm5hbWVzIjpbInNhdmVGaWxlIiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwianNvbiIsImNhbGxiYWNrIiwiZmlsZSIsIkZpbGUiLCJmcm9tSlNPTiIsInN1Y2Nlc3MiLCJzYXZlRmlsZUV4Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXdCQTs7OzJEQUpQOzBCQUVzQjs7Ozs7O0FBRXhCLFNBQVNBLFNBQVNDLHFCQUFxQixFQUFFQyxJQUFJLEVBQUVDLFFBQVE7SUFDcEUsSUFBTUMsT0FBT0MsYUFBSSxDQUFDQyxRQUFRLENBQUNKLE9BQ3JCSyxVQUFVQyxJQUFBQSxvQkFBVSxFQUFDSixNQUFNSDtJQUVqQ0MsT0FBT0s7SUFFUEosU0FBU0Q7QUFDWCJ9
|
package/lib/saveFiles.js
CHANGED
|
@@ -16,10 +16,9 @@ function _interop_require_default(obj) {
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
function saveFiles(projectsDirectoryPath, json, callback) {
|
|
19
|
-
var files = _files.default.fromJSON(json);
|
|
20
|
-
|
|
21
|
-
json = {}; ///
|
|
19
|
+
var files = _files.default.fromJSON(json), successes = (0, _fileSystem.saveFiles)(files, projectsDirectoryPath);
|
|
20
|
+
json = successes;
|
|
22
21
|
callback(json);
|
|
23
22
|
}
|
|
24
23
|
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zYXZlRmlsZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBGaWxlcyBmcm9tIFwiLi9maWxlc1wiO1xuXG5pbXBvcnQgeyBzYXZlRmlsZXMgYXMgc2F2ZUZpbGVzRXggfSBmcm9tIFwiLi91dGlsaXRpZXMvZmlsZVN5c3RlbVwiXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNhdmVGaWxlcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGpzb24sIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGZpbGVzID0gRmlsZXMuZnJvbUpTT04oanNvbiksXG4gICAgICAgIHN1Y2Nlc3NlcyA9IHNhdmVGaWxlc0V4KGZpbGVzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xuXG4gIGpzb24gPSBzdWNjZXNzZXM7XG5cbiAgY2FsbGJhY2soanNvbik7XG59XG4iXSwibmFtZXMiOlsic2F2ZUZpbGVzIiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwianNvbiIsImNhbGxiYWNrIiwiZmlsZXMiLCJGaWxlcyIsImZyb21KU09OIiwic3VjY2Vzc2VzIiwic2F2ZUZpbGVzRXgiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBd0JBOzs7NERBSk47MEJBRXVCOzs7Ozs7QUFFMUIsU0FBU0EsVUFBVUMscUJBQXFCLEVBQUVDLElBQUksRUFBRUMsUUFBUTtJQUNyRSxJQUFNQyxRQUFRQyxjQUFLLENBQUNDLFFBQVEsQ0FBQ0osT0FDdkJLLFlBQVlDLElBQUFBLHFCQUFXLEVBQUNKLE9BQU9IO0lBRXJDQyxPQUFPSztJQUVQSixTQUFTRDtBQUNYIn0=
|
|
@@ -37,7 +37,6 @@ _export(exports, {
|
|
|
37
37
|
return _default;
|
|
38
38
|
}
|
|
39
39
|
});
|
|
40
|
-
var _mkdirp = /*#__PURE__*/ _interop_require_default(require("mkdirp"));
|
|
41
40
|
var _necessary = require("necessary");
|
|
42
41
|
var _file = /*#__PURE__*/ _interop_require_default(require("../file"));
|
|
43
42
|
var _files = /*#__PURE__*/ _interop_require_default(require("../files"));
|
|
@@ -55,7 +54,7 @@ function _interop_require_default(obj) {
|
|
|
55
54
|
default: obj
|
|
56
55
|
};
|
|
57
56
|
}
|
|
58
|
-
var first = _necessary.arrayUtilities.first,
|
|
57
|
+
var first = _necessary.arrayUtilities.first, concatenatePaths = _necessary.pathUtilities.concatenatePaths, topmostDirectoryNameFromPath = _necessary.pathUtilities.topmostDirectoryNameFromPath, topmostDirectoryPathFromPath = _necessary.pathUtilities.topmostDirectoryPathFromPath, readFile = _necessary.fileSystemUtilities.readFile, writeFile = _necessary.fileSystemUtilities.writeFile, isEntryFile = _necessary.fileSystemUtilities.isEntryFile, readDirectory = _necessary.fileSystemUtilities.readDirectory, isEntryDirectory = _necessary.fileSystemUtilities.isEntryDirectory, checkFileExists = _necessary.fileSystemUtilities.checkEntryExists;
|
|
59
58
|
function loadFile(path, projectsDirectoryPath) {
|
|
60
59
|
var file = null;
|
|
61
60
|
try {
|
|
@@ -70,9 +69,18 @@ function loadFile(path, projectsDirectoryPath) {
|
|
|
70
69
|
return file;
|
|
71
70
|
}
|
|
72
71
|
function saveFile(file, projectsDirectoryPath) {
|
|
73
|
-
var
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
var success = false;
|
|
73
|
+
var filePath = file.getPath(), absoluteFilePath = concatenatePaths(projectsDirectoryPath, filePath), fileExists = checkFileExists(absoluteFilePath);
|
|
74
|
+
if (fileExists) {
|
|
75
|
+
var filePath1 = absoluteFilePath, content = file.getContent();
|
|
76
|
+
try {
|
|
77
|
+
writeFile(filePath1, content);
|
|
78
|
+
} catch (error) {
|
|
79
|
+
///
|
|
80
|
+
}
|
|
81
|
+
success = true;
|
|
82
|
+
}
|
|
83
|
+
return success;
|
|
76
84
|
}
|
|
77
85
|
function loadFiles(paths, projectsDirectoryPath) {
|
|
78
86
|
var files = null;
|
|
@@ -91,9 +99,11 @@ function loadFiles(paths, projectsDirectoryPath) {
|
|
|
91
99
|
return files;
|
|
92
100
|
}
|
|
93
101
|
function saveFiles(files, projectsDirectoryPath) {
|
|
94
|
-
files.
|
|
95
|
-
saveFile(file, projectsDirectoryPath);
|
|
102
|
+
var successes = files.mapFile(function(file) {
|
|
103
|
+
var success = saveFile(file, projectsDirectoryPath);
|
|
104
|
+
return success;
|
|
96
105
|
});
|
|
106
|
+
return successes;
|
|
97
107
|
}
|
|
98
108
|
function loadRelease(releaseName, projectsDirectoryPath) {
|
|
99
109
|
var release = null;
|
|
@@ -265,4 +275,4 @@ function topmostDirectoryNamesFromProjectsDirectoryPath(projectsDirectoryPath) {
|
|
|
265
275
|
return topmostDirectoryNames;
|
|
266
276
|
}
|
|
267
277
|
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCBta2RpcnAgZnJvbSBcIm1rZGlycFwiO1xyXG5cclxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMsIHBhdGhVdGlsaXRpZXMsIGZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XHJcblxyXG5pbXBvcnQgRmlsZSBmcm9tIFwiLi4vZmlsZVwiO1xyXG5pbXBvcnQgRmlsZXMgZnJvbSBcIi4uL2ZpbGVzXCI7XHJcbmltcG9ydCBFbnRyaWVzIGZyb20gXCIuLi9lbnRyaWVzXCI7XHJcbmltcG9ydCBQcm9qZWN0IGZyb20gXCIuLi9wcm9qZWN0XCI7XHJcbmltcG9ydCBSZWxlYXNlIGZyb20gXCIuLi9yZWxlYXNlXCI7XHJcbmltcG9ydCBQcm9qZWN0cyBmcm9tIFwiLi4vcHJvamVjdHNcIjtcclxuaW1wb3J0IFJlbGVhc2VzIGZyb20gXCIuLi9yZWxlYXNlc1wiO1xyXG5pbXBvcnQgRGlyZWN0b3J5IGZyb20gXCIuLi9kaXJlY3RvcnlcIjtcclxuXHJcbmltcG9ydCB7IGlzTmFtZUhpZGRlbk5hbWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcclxuaW1wb3J0IHsgaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVBhdGhcIjtcclxuaW1wb3J0IHsgY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZW50XCI7XHJcblxyXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcyxcclxuICAgICAgeyByZWFkRmlsZSwgd3JpdGVGaWxlLCBpc0VudHJ5RmlsZSwgcmVhZERpcmVjdG9yeSwgaXNFbnRyeURpcmVjdG9yeSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcyxcclxuICAgICAgeyBjb25jYXRlbmF0ZVBhdGhzLCB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoLCB0b3Btb3N0RGlyZWN0b3J5UGF0aEZyb21QYXRoIH0gPSBwYXRoVXRpbGl0aWVzO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKTtcclxuXHJcbiAgICBpZiAodG9wbW9zdERpcmVjdG9yeU5hbWUgIT09IG51bGwpIHtcclxuICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3REaXJlY3RvcnlOYW1lKSxcclxuICAgICAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICBmaWxlID0gZW50cnlEaXJlY3RvcnkgP1xyXG4gICAgICAgICAgICAgICBmaWxlRnJvbVByb2plY3QocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSA6XHJcbiAgICAgICAgICAgICAgICAgZmlsZUZyb21SZWxlYXNlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzYXZlRmlsZShmaWxlLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBwYXRoID0gZmlsZS5nZXRQYXRoKCksXHJcbiAgICAgICAgY29udGVudCA9IGZpbGUuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgIGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoKSxcclxuICAgICAgICB0b3Btb3N0QWJzb2x1dGVEaXJlY3RvcnlQYXRoID0gdG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aChhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICBta2RpcnAuc3luYyh0b3Btb3N0QWJzb2x1dGVEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgd3JpdGVGaWxlKGFic29sdXRlUGF0aCwgY29udGVudCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkRmlsZXMocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlcyA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBwYXRoc0xlbmd0aCA9IHBhdGhzLmxlbmd0aDtcclxuXHJcbiAgICBpZiAocGF0aHNMZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGZpcnN0UGF0aCA9IGZpcnN0KHBhdGhzKSxcclxuICAgICAgICAgICAgcGF0aCA9IGZpcnN0UGF0aCwgLy8vXHJcbiAgICAgICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKTtcclxuXHJcbiAgICAgIGlmICh0b3Btb3N0RGlyZWN0b3J5TmFtZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0b3Btb3N0RGlyZWN0b3J5TmFtZSksXHJcbiAgICAgICAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICAgIGZpbGVzID0gZW50cnlEaXJlY3RvcnkgP1xyXG4gICAgICAgICAgICAgICAgICBmaWxlc0Zyb21Qcm9qZWN0KHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIDpcclxuICAgICAgICAgICAgICAgICAgICBmaWxlc0Zyb21SZWxlYXNlKHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGVzKGZpbGVzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBmaWxlcy5mb3JFYWNoRmlsZSgoZmlsZSkgPT4ge1xyXG4gICAgc2F2ZUZpbGUoZmlsZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRSZWxlYXNlKHJlbGVhc2VOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgcmVsZWFzZSA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBuYW1lID0gcmVsZWFzZU5hbWUsIC8vL1xyXG4gICAgICAgICAgdG9wbW9zdEZpbGVOYW1lID0gcmVsZWFzZU5hbWUsICAvLy9cclxuICAgICAgICAgIGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCB0b3Btb3N0RmlsZU5hbWUpLFxyXG4gICAgICAgICAgZW50cnlGaWxlID0gaXNFbnRyeUZpbGUoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICBpZiAoZW50cnlGaWxlKSB7XHJcbiAgICAgIGxldCBqc29uLFxyXG4gICAgICAgICAgZW50cmllcztcclxuXHJcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSByZWFkRmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgICAganNvbiA9IEpTT04ucGFyc2UoY29udGVudCk7XHJcblxyXG4gICAgICAoeyBlbnRyaWVzIH0gPSBqc29uKTtcclxuXHJcbiAgICAgIGpzb24gID0gZW50cmllczsgIC8vL1xyXG5cclxuICAgICAgZW50cmllcyA9IEVudHJpZXMuZnJvbUpTT04oanNvbik7XHJcblxyXG4gICAgICByZWxlYXNlID0gUmVsZWFzZS5mcm9tTmFtZUFuZEVudHJpZXMobmFtZSwgZW50cmllcyk7XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJlbGVhc2U7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdChwcm9qZWN0TmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcykge1xyXG4gIGxldCBwcm9qZWN0ID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IG5hbWUgPSBwcm9qZWN0TmFtZSwgIC8vL1xyXG4gICAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSBwcm9qZWN0TmFtZSwgLy8vXHJcbiAgICAgICAgICBlbnRyaWVzID0gbG9hZEVudHJpZXModG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpO1xyXG5cclxuICAgIHByb2plY3QgPSBQcm9qZWN0LmZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gcHJvamVjdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRSZWxlYXNlcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgcmVsZWFzZXM7XHJcblxyXG4gIHRyeSB7XHJcbiAgICByZWxlYXNlcyA9IFJlbGVhc2VzLmZyb21Ob3RoaW5nKCk7XHJcblxyXG4gICAgY29uc3QgdG9wbW9zdEZpbGVOYW1lcyA9IHRvcG1vc3RGaWxlTmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoKHByb2plY3RzRGlyZWN0b3J5UGF0aCksXHJcbiAgICAgICAgICByZWxlYXNlTmFtZXMgPSB0b3Btb3N0RmlsZU5hbWVzOyAgLy8vXHJcblxyXG4gICAgcmVsZWFzZU5hbWVzLmZvckVhY2goKHJlbGVhc2VOYW1lKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlbGVhc2UgPSBsb2FkUmVsZWFzZShyZWxlYXNlTmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICAgIGlmIChyZWxlYXNlICE9PSBudWxsKSB7XHJcbiAgICAgICAgcmVsZWFzZXMuYWRkUmVsZWFzZShyZWxlYXNlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIHJlbGVhc2VzID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHJldHVybiByZWxlYXNlcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRQcm9qZWN0cyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKSB7XHJcbiAgbGV0IHByb2plY3RzO1xyXG5cclxuICB0cnkge1xyXG4gICAgcHJvamVjdHMgPSBQcm9qZWN0cy5mcm9tTm90aGluZygpO1xyXG5cclxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lcyA9IHRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICAgIHByb2plY3ROYW1lcyA9IHRvcG1vc3REaXJlY3RvcnlOYW1lczsgLy8vXHJcblxyXG4gICAgcHJvamVjdE5hbWVzLmZvckVhY2goKHByb2plY3ROYW1lKSA9PiB7XHJcbiAgICAgIGNvbnN0IHByb2plY3QgPSBsb2FkUHJvamVjdChwcm9qZWN0TmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcyk7XHJcblxyXG4gICAgICBpZiAocHJvamVjdCAhPT0gbnVsbCkge1xyXG4gICAgICAgIHByb2plY3RzLmFkZFByb2plY3QocHJvamVjdCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICBwcm9qZWN0cyA9IG51bGw7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcHJvamVjdHM7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBsb2FkRmlsZSxcclxuICBzYXZlRmlsZSxcclxuICBsb2FkRmlsZXMsXHJcbiAgc2F2ZUZpbGVzLFxyXG4gIGxvYWRSZWxlYXNlLFxyXG4gIGxvYWRQcm9qZWN0LFxyXG4gIGxvYWRSZWxlYXNlcyxcclxuICBsb2FkUHJvamVjdHNcclxufTtcclxuXHJcbmZ1bmN0aW9uIGxvYWRFbnRyaWVzKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKSB7XHJcbiAgY29uc3QgZW50cmllcyA9IEVudHJpZXMuZnJvbU5vdGhpbmcoKSxcclxuICAgICAgICByZWxhdGl2ZURpcmVjdG9yeVBhdGggPSB0b3Btb3N0RGlyZWN0b3J5TmFtZTsgIC8vL1xyXG5cclxuICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChlbnRyaWVzLCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpO1xyXG5cclxuICByZXR1cm4gZW50cmllcztcclxufVxyXG5cclxuZnVuY3Rpb24gbG9hZERpcmVjdG9yeShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCksXHJcbiAgICAgICAgZGlyZWN0b3J5ID0gZW50cnlEaXJlY3RvcnkgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgRGlyZWN0b3J5LmZyb21QYXRoKHBhdGgpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcclxuXHJcbiAgcmV0dXJuIGRpcmVjdG9yeTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsZUZyb21Qcm9qZWN0KHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlID0gbnVsbDtcclxuXHJcbiAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGgpLFxyXG4gICAgICAgIGVudHJ5RmlsZSA9IGlzRW50cnlGaWxlKGFic29sdXRlUGF0aCk7XHJcblxyXG4gIGlmIChlbnRyeUZpbGUpIHtcclxuICAgIGNvbnN0IHJlbGVhc2VkID0gZmFsc2U7XHJcblxyXG4gICAgbGV0IGNvbnRlbnQgPSByZWFkRmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGNvbnRlbnQgPSBjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UoY29udGVudCk7ICAvLy9cclxuXHJcbiAgICBmaWxlID0gRmlsZS5mcm9tUGF0aENvbnRlbnRBbmRSZWxlYXNlZChwYXRoLCBjb250ZW50LCByZWxlYXNlZCk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmlsZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsZUZyb21SZWxlYXNlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKSxcclxuICAgICAgICB0b3Btb3N0RmlsZU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZSwgLy8vXHJcbiAgICAgICAgcmVsZWFzZSA9IGxvYWRSZWxlYXNlKHRvcG1vc3RGaWxlTmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICBmaWxlID0gcmVsZWFzZS5nZXRGaWxlKHBhdGgpO1xyXG5cclxuICByZXR1cm4gZmlsZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsZXNGcm9tUHJvamVjdChwYXRocywgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgZmlsZXMgPSBGaWxlcy5mcm9tTm90aGluZygpO1xyXG5cclxuICBwYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XHJcbiAgICBjb25zdCBmaWxlID0gZmlsZUZyb21Qcm9qZWN0KHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgZmlsZXMuYWRkRmlsZShmaWxlKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWxlc0Zyb21SZWxlYXNlKHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBmaWxlcyA9IEZpbGVzLmZyb21Ob3RoaW5nKCksXHJcbiAgICAgICAgcGF0aHNMZW5ndGggPSBwYXRocy5sZW5ndGg7XHJcblxyXG4gIGlmIChwYXRoc0xlbmd0aCA+IDApIHtcclxuICAgIGNvbnN0IGZpcnN0UGF0aCA9IGZpcnN0KHBhdGhzKSxcclxuICAgICAgICAgIHBhdGggPSBmaXJzdFBhdGgsIC8vL1xyXG4gICAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKHBhdGgpLFxyXG4gICAgICAgICAgdG9wbW9zdEZpbGVOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWUsIC8vL1xyXG4gICAgICAgICAgcmVsZWFzZSA9IGxvYWRSZWxlYXNlKHRvcG1vc3RGaWxlTmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICBwYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSByZWxlYXNlLmdldEZpbGUocGF0aCk7XHJcblxyXG4gICAgICBmaWxlcy5hZGRGaWxlKGZpbGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmlsZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGVudHJpZXMsIHJlbGF0aXZlRGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcykge1xyXG4gIGNvbnN0IGFic29sdXRlRGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCByZWxhdGl2ZURpcmVjdG9yeVBhdGgpLFxyXG4gICAgICAgIHN1YkVudHJ5TmFtZXMgPSByZWFkRGlyZWN0b3J5KGFic29sdXRlRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHN1YkVudHJ5TmFtZXMuZm9yRWFjaCgoc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBzdWJFbnRyeU5hbWVIaWRkZW5OYW1lID0gaXNOYW1lSGlkZGVuTmFtZShzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMgPSAhbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXM7XHJcblxyXG4gICAgaWYgKCFzdWJFbnRyeU5hbWVIaWRkZW5OYW1lKSB7XHJcbiAgICAgIGNvbnN0IHBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHJlbGF0aXZlRGlyZWN0b3J5UGF0aCwgc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgICAgZGlyZWN0b3J5ID0gbG9hZERpcmVjdG9yeShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKGRpcmVjdG9yeSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeVBhdGggPSBwYXRoOyAvLy9cclxuXHJcbiAgICAgICAgaWYgKGxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgICAgICAgICBlbnRyaWVzLmFkZERpcmVjdG9yeShkaXJlY3RvcnkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgoZW50cmllcywgZGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcyk7IC8vL1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKSxcclxuICAgICAgICAgICAgICAgIGZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoID0gaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aChmaWxlUGF0aCksXHJcbiAgICAgICAgICAgICAgICBmaWxlUmVjb2duaXNlZEZpbGUgPSBmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aDsgIC8vL1xyXG5cclxuICAgICAgICAgIGlmIChmaWxlUmVjb2duaXNlZEZpbGUgfHwgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgICAgZW50cmllcy5hZGRGaWxlKGZpbGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0b3Btb3N0RmlsZU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgdG9wbW9zdEZpbGVOYW1lcztcclxuXHJcbiAgY29uc3Qgc3ViRW50cnlOYW1lcyA9IHJlYWREaXJlY3RvcnkocHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgdG9wbW9zdEZpbGVOYW1lcyA9IHN1YkVudHJ5TmFtZXMucmVkdWNlKCh0b3Btb3N0RmlsZU5hbWVzLCBzdWJFbnRyeU5hbWUpID0+IHtcclxuICAgIGNvbnN0IGFic29sdXRlU3ViRW50cnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICBzdWJFbnRyeU5hbWVIaWRkZW5OYW1lID0gaXNOYW1lSGlkZGVuTmFtZShzdWJFbnRyeU5hbWUpO1xyXG5cclxuICAgIGlmICghc3ViRW50cnlOYW1lSGlkZGVuTmFtZSkge1xyXG4gICAgICBjb25zdCBzdWJFbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVN1YkVudHJ5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoc3ViRW50cnlGaWxlKSB7XHJcbiAgICAgICAgY29uc3QgdG9wbW9zdEZpbGVOYW1lID0gc3ViRW50cnlOYW1lOyAgLy8vXHJcblxyXG4gICAgICAgIHRvcG1vc3RGaWxlTmFtZXMucHVzaCh0b3Btb3N0RmlsZU5hbWUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdG9wbW9zdEZpbGVOYW1lcztcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiB0b3Btb3N0RmlsZU5hbWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0b3Btb3N0RGlyZWN0b3J5TmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoKHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcblxyXG4gIGNvbnN0IHN1YkVudHJ5TmFtZXMgPSByZWFkRGlyZWN0b3J5KHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHRvcG1vc3REaXJlY3RvcnlOYW1lcyA9IHN1YkVudHJ5TmFtZXMucmVkdWNlKCh0b3Btb3N0RGlyZWN0b3J5TmFtZXMsIHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3QgYWJzb2x1dGVTdWJFbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZUhpZGRlbk5hbWUgPSBpc05hbWVIaWRkZW5OYW1lKHN1YkVudHJ5TmFtZSk7XHJcblxyXG4gICAgaWYgKCFzdWJFbnRyeU5hbWVIaWRkZW5OYW1lKSB7XHJcbiAgICAgIGNvbnN0IHN1YkVudHJ5RGlyZWN0b3J5ID0gaXNFbnRyeURpcmVjdG9yeShhYnNvbHV0ZVN1YkVudHJ5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoc3ViRW50cnlEaXJlY3RvcnkpIHtcclxuICAgICAgICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHN1YkVudHJ5TmFtZTsgIC8vL1xyXG5cclxuICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMucHVzaCh0b3Btb3N0RGlyZWN0b3J5TmFtZSlcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gdG9wbW9zdERpcmVjdG9yeU5hbWVzO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJsb2FkRmlsZSIsInNhdmVGaWxlIiwibG9hZEZpbGVzIiwic2F2ZUZpbGVzIiwibG9hZFJlbGVhc2UiLCJsb2FkUHJvamVjdCIsImxvYWRSZWxlYXNlcyIsImxvYWRQcm9qZWN0cyIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJyZWFkRmlsZSIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJ3cml0ZUZpbGUiLCJpc0VudHJ5RmlsZSIsInJlYWREaXJlY3RvcnkiLCJpc0VudHJ5RGlyZWN0b3J5IiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoIiwidG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aCIsInBhdGgiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJmaWxlIiwidG9wbW9zdERpcmVjdG9yeU5hbWUiLCJhYnNvbHV0ZVBhdGgiLCJlbnRyeURpcmVjdG9yeSIsImZpbGVGcm9tUHJvamVjdCIsImZpbGVGcm9tUmVsZWFzZSIsImVycm9yIiwiZ2V0UGF0aCIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwidG9wbW9zdEFic29sdXRlRGlyZWN0b3J5UGF0aCIsIm1rZGlycCIsInN5bmMiLCJwYXRocyIsImZpbGVzIiwicGF0aHNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdFBhdGgiLCJmaWxlc0Zyb21Qcm9qZWN0IiwiZmlsZXNGcm9tUmVsZWFzZSIsImZvckVhY2hGaWxlIiwicmVsZWFzZU5hbWUiLCJyZWxlYXNlIiwibmFtZSIsInRvcG1vc3RGaWxlTmFtZSIsImVudHJ5RmlsZSIsImpzb24iLCJlbnRyaWVzIiwiSlNPTiIsInBhcnNlIiwiRW50cmllcyIsImZyb21KU09OIiwiUmVsZWFzZSIsImZyb21OYW1lQW5kRW50cmllcyIsInByb2plY3ROYW1lIiwibG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMiLCJwcm9qZWN0IiwibG9hZEVudHJpZXMiLCJQcm9qZWN0IiwicmVsZWFzZXMiLCJSZWxlYXNlcyIsImZyb21Ob3RoaW5nIiwidG9wbW9zdEZpbGVOYW1lcyIsInRvcG1vc3RGaWxlTmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoIiwicmVsZWFzZU5hbWVzIiwiZm9yRWFjaCIsImFkZFJlbGVhc2UiLCJwcm9qZWN0cyIsIlByb2plY3RzIiwidG9wbW9zdERpcmVjdG9yeU5hbWVzIiwidG9wbW9zdERpcmVjdG9yeU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aCIsInByb2plY3ROYW1lcyIsImFkZFByb2plY3QiLCJyZWxhdGl2ZURpcmVjdG9yeVBhdGgiLCJlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aCIsImxvYWREaXJlY3RvcnkiLCJkaXJlY3RvcnkiLCJEaXJlY3RvcnkiLCJmcm9tUGF0aCIsInJlbGVhc2VkIiwiY29udmVydENvbnRlbnRUYWJzVG9XaGl0ZXNwYWNlIiwiRmlsZSIsImZyb21QYXRoQ29udGVudEFuZFJlbGVhc2VkIiwiZ2V0RmlsZSIsIkZpbGVzIiwiYWRkRmlsZSIsImFic29sdXRlRGlyZWN0b3J5UGF0aCIsInN1YkVudHJ5TmFtZXMiLCJzdWJFbnRyeU5hbWUiLCJzdWJFbnRyeU5hbWVIaWRkZW5OYW1lIiwiaXNOYW1lSGlkZGVuTmFtZSIsImxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzIiwiZGlyZWN0b3J5UGF0aCIsImFkZERpcmVjdG9yeSIsImZpbGVQYXRoIiwiZmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgiLCJpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoIiwiZmlsZVJlY29nbmlzZWRGaWxlIiwicmVkdWNlIiwiYWJzb2x1dGVTdWJFbnRyeVBhdGgiLCJzdWJFbnRyeUZpbGUiLCJwdXNoIiwic3ViRW50cnlEaXJlY3RvcnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXVCZ0JBLFFBQVE7ZUFBUkE7O0lBcUJBQyxRQUFRO2VBQVJBOztJQVdBQyxTQUFTO2VBQVRBOztJQTJCQUMsU0FBUztlQUFUQTs7SUFNQUMsV0FBVztlQUFYQTs7SUFnQ0FDLFdBQVc7ZUFBWEE7O0lBZ0JBQyxZQUFZO2VBQVpBOztJQXVCQUMsWUFBWTtlQUFaQTs7SUF1QmhCLE9BU0U7ZUFURjs7OzZEQXBMbUI7eUJBRWdEOzJEQUVsRDs0REFDQzs4REFDRTs4REFDQTs4REFDQTsrREFDQzsrREFDQTtnRUFDQztvQkFFVzt3QkFDWTt1QkFDRTs7Ozs7O0FBRS9DLElBQU0sQUFBRUMsUUFBVUMseUJBQWMsQ0FBeEJELE9BQ0FFLFdBQXNFQyw4QkFBbUIsQ0FBekZELFVBQVVFLFlBQTRERCw4QkFBbUIsQ0FBL0VDLFdBQVdDLGNBQWlERiw4QkFBbUIsQ0FBcEVFLGFBQWFDLGdCQUFvQ0gsOEJBQW1CLENBQXZERyxlQUFlQyxtQkFBcUJKLDhCQUFtQixDQUF4Q0ksa0JBQ2pEQyxtQkFBaUZDLHdCQUFhLENBQTlGRCxrQkFBa0JFLCtCQUErREQsd0JBQWEsQ0FBNUVDLDhCQUE4QkMsK0JBQWlDRix3QkFBYSxDQUE5Q0U7QUFFakQsU0FBU25CLFNBQVNvQixJQUFJLEVBQUVDLHFCQUFxQjtJQUNsRCxJQUFJQyxP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
|
|
278
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzLCBwYXRoVXRpbGl0aWVzLCBmaWxlU3lzdGVtVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xyXG5cclxuaW1wb3J0IEZpbGUgZnJvbSBcIi4uL2ZpbGVcIjtcclxuaW1wb3J0IEZpbGVzIGZyb20gXCIuLi9maWxlc1wiO1xyXG5pbXBvcnQgRW50cmllcyBmcm9tIFwiLi4vZW50cmllc1wiO1xyXG5pbXBvcnQgUHJvamVjdCBmcm9tIFwiLi4vcHJvamVjdFwiO1xyXG5pbXBvcnQgUmVsZWFzZSBmcm9tIFwiLi4vcmVsZWFzZVwiO1xyXG5pbXBvcnQgUHJvamVjdHMgZnJvbSBcIi4uL3Byb2plY3RzXCI7XHJcbmltcG9ydCBSZWxlYXNlcyBmcm9tIFwiLi4vcmVsZWFzZXNcIjtcclxuaW1wb3J0IERpcmVjdG9yeSBmcm9tIFwiLi4vZGlyZWN0b3J5XCI7XHJcblxyXG5pbXBvcnQgeyBpc05hbWVIaWRkZW5OYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9uYW1lXCI7XHJcbmltcG9ydCB7IGlzRmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGggfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2ZpbGVQYXRoXCI7XHJcbmltcG9ydCB7IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGVudFwiO1xyXG5cclxuY29uc3QgeyBmaXJzdCB9ID0gYXJyYXlVdGlsaXRpZXMsXHJcbiAgICAgIHsgY29uY2F0ZW5hdGVQYXRocywgdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aCwgdG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aCB9ID0gcGF0aFV0aWxpdGllcyxcclxuICAgICAgeyByZWFkRmlsZSwgd3JpdGVGaWxlLCBpc0VudHJ5RmlsZSwgcmVhZERpcmVjdG9yeSwgaXNFbnRyeURpcmVjdG9yeSwgY2hlY2tFbnRyeUV4aXN0czogY2hlY2tGaWxlRXhpc3RzIH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKTtcclxuXHJcbiAgICBpZiAodG9wbW9zdERpcmVjdG9yeU5hbWUgIT09IG51bGwpIHtcclxuICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3REaXJlY3RvcnlOYW1lKSxcclxuICAgICAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICBmaWxlID0gZW50cnlEaXJlY3RvcnkgP1xyXG4gICAgICAgICAgICAgICBmaWxlRnJvbVByb2plY3QocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSA6XHJcbiAgICAgICAgICAgICAgICAgZmlsZUZyb21SZWxlYXNlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzYXZlRmlsZShmaWxlLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBmaWxlUGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxyXG4gICAgICAgIGFic29sdXRlRmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgZmlsZVBhdGgpLFxyXG4gICAgICAgIGZpbGVFeGlzdHMgPSBjaGVja0ZpbGVFeGlzdHMoYWJzb2x1dGVGaWxlUGF0aCk7XHJcblxyXG4gIGlmIChmaWxlRXhpc3RzKSB7XHJcbiAgICBjb25zdCBmaWxlUGF0aCA9IGFic29sdXRlRmlsZVBhdGgsICAvLy9cclxuICAgICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICB3cml0ZUZpbGUoZmlsZVBhdGgsIGNvbnRlbnQpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgLy8vXHJcbiAgICB9XHJcblxyXG4gICAgc3VjY2VzcyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gc3VjY2VzcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRGaWxlcyhwYXRocywgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IGZpbGVzID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHBhdGhzTGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xyXG5cclxuICAgIGlmIChwYXRoc0xlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgZmlyc3RQYXRoID0gZmlyc3QocGF0aHMpLFxyXG4gICAgICAgICAgICBwYXRoID0gZmlyc3RQYXRoLCAvLy9cclxuICAgICAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKHBhdGgpO1xyXG5cclxuICAgICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3REaXJlY3RvcnlOYW1lKSxcclxuICAgICAgICAgICAgICBlbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICAgICAgZmlsZXMgPSBlbnRyeURpcmVjdG9yeSA/XHJcbiAgICAgICAgICAgICAgICAgIGZpbGVzRnJvbVByb2plY3QocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkgOlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGVzRnJvbVJlbGVhc2UocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmlsZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzYXZlRmlsZXMoZmlsZXMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGNvbnN0IHN1Y2Nlc3NlcyA9IGZpbGVzLm1hcEZpbGUoKGZpbGUpID0+IHtcclxuICAgIGNvbnN0IHN1Y2Nlc3MgPSBzYXZlRmlsZShmaWxlLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgIHJldHVybiBzdWNjZXNzO1xyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gc3VjY2Vzc2VzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZFJlbGVhc2UocmVsZWFzZU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCByZWxlYXNlID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IG5hbWUgPSByZWxlYXNlTmFtZSwgLy8vXHJcbiAgICAgICAgICB0b3Btb3N0RmlsZU5hbWUgPSByZWxlYXNlTmFtZSwgIC8vL1xyXG4gICAgICAgICAgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3RGaWxlTmFtZSksXHJcbiAgICAgICAgICBlbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGlmIChlbnRyeUZpbGUpIHtcclxuICAgICAgbGV0IGpzb24sXHJcbiAgICAgICAgICBlbnRyaWVzO1xyXG5cclxuICAgICAgY29uc3QgY29udGVudCA9IHJlYWRGaWxlKGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICBqc29uID0gSlNPTi5wYXJzZShjb250ZW50KTtcclxuXHJcbiAgICAgICh7IGVudHJpZXMgfSA9IGpzb24pO1xyXG5cclxuICAgICAganNvbiAgPSBlbnRyaWVzOyAgLy8vXHJcblxyXG4gICAgICBlbnRyaWVzID0gRW50cmllcy5mcm9tSlNPTihqc29uKTtcclxuXHJcbiAgICAgIHJlbGVhc2UgPSBSZWxlYXNlLmZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKTtcclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gcmVsZWFzZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRQcm9qZWN0KHByb2plY3ROYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKSB7XHJcbiAgbGV0IHByb2plY3QgPSBudWxsO1xyXG5cclxuICB0cnkge1xyXG4gICAgY29uc3QgbmFtZSA9IHByb2plY3ROYW1lLCAgLy8vXHJcbiAgICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHByb2plY3ROYW1lLCAvLy9cclxuICAgICAgICAgIGVudHJpZXMgPSBsb2FkRW50cmllcyh0b3Btb3N0RGlyZWN0b3J5TmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcyk7XHJcblxyXG4gICAgcHJvamVjdCA9IFByb2plY3QuZnJvbU5hbWVBbmRFbnRyaWVzKG5hbWUsIGVudHJpZXMpO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiBwcm9qZWN0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZFJlbGVhc2VzKHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCByZWxlYXNlcztcclxuXHJcbiAgdHJ5IHtcclxuICAgIHJlbGVhc2VzID0gUmVsZWFzZXMuZnJvbU5vdGhpbmcoKTtcclxuXHJcbiAgICBjb25zdCB0b3Btb3N0RmlsZU5hbWVzID0gdG9wbW9zdEZpbGVOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICAgIHJlbGVhc2VOYW1lcyA9IHRvcG1vc3RGaWxlTmFtZXM7ICAvLy9cclxuXHJcbiAgICByZWxlYXNlTmFtZXMuZm9yRWFjaCgocmVsZWFzZU5hbWUpID0+IHtcclxuICAgICAgY29uc3QgcmVsZWFzZSA9IGxvYWRSZWxlYXNlKHJlbGVhc2VOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKHJlbGVhc2UgIT09IG51bGwpIHtcclxuICAgICAgICByZWxlYXNlcy5hZGRSZWxlYXNlKHJlbGVhc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgcmVsZWFzZXMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJlbGVhc2VzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZFByb2plY3RzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpIHtcclxuICBsZXQgcHJvamVjdHM7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBwcm9qZWN0cyA9IFByb2plY3RzLmZyb21Ob3RoaW5nKCk7XHJcblxyXG4gICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWVzID0gdG9wbW9zdERpcmVjdG9yeU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgpLFxyXG4gICAgICAgICAgcHJvamVjdE5hbWVzID0gdG9wbW9zdERpcmVjdG9yeU5hbWVzOyAvLy9cclxuXHJcbiAgICBwcm9qZWN0TmFtZXMuZm9yRWFjaCgocHJvamVjdE5hbWUpID0+IHtcclxuICAgICAgY29uc3QgcHJvamVjdCA9IGxvYWRQcm9qZWN0KHByb2plY3ROYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKTtcclxuXHJcbiAgICAgIGlmIChwcm9qZWN0ICE9PSBudWxsKSB7XHJcbiAgICAgICAgcHJvamVjdHMuYWRkUHJvamVjdChwcm9qZWN0KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIHByb2plY3RzID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHJldHVybiBwcm9qZWN0cztcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIGxvYWRGaWxlLFxyXG4gIHNhdmVGaWxlLFxyXG4gIGxvYWRGaWxlcyxcclxuICBzYXZlRmlsZXMsXHJcbiAgbG9hZFJlbGVhc2UsXHJcbiAgbG9hZFByb2plY3QsXHJcbiAgbG9hZFJlbGVhc2VzLFxyXG4gIGxvYWRQcm9qZWN0c1xyXG59O1xyXG5cclxuZnVuY3Rpb24gbG9hZEVudHJpZXModG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpIHtcclxuICBjb25zdCBlbnRyaWVzID0gRW50cmllcy5mcm9tTm90aGluZygpLFxyXG4gICAgICAgIHJlbGF0aXZlRGlyZWN0b3J5UGF0aCA9IHRvcG1vc3REaXJlY3RvcnlOYW1lOyAgLy8vXHJcblxyXG4gIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGVudHJpZXMsIHJlbGF0aXZlRGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcyk7XHJcblxyXG4gIHJldHVybiBlbnRyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBsb2FkRGlyZWN0b3J5KHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGNvbnN0IGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoKSxcclxuICAgICAgICBlbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKSxcclxuICAgICAgICBkaXJlY3RvcnkgPSBlbnRyeURpcmVjdG9yeSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICBEaXJlY3RvcnkuZnJvbVBhdGgocGF0aCkgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsO1xyXG5cclxuICByZXR1cm4gZGlyZWN0b3J5O1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWxlRnJvbVByb2plY3QocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IGZpbGUgPSBudWxsO1xyXG5cclxuICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgZW50cnlGaWxlID0gaXNFbnRyeUZpbGUoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgaWYgKGVudHJ5RmlsZSkge1xyXG4gICAgY29uc3QgcmVsZWFzZWQgPSBmYWxzZTtcclxuXHJcbiAgICBsZXQgY29udGVudCA9IHJlYWRGaWxlKGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xyXG5cclxuICAgIGZpbGUgPSBGaWxlLmZyb21QYXRoQ29udGVudEFuZFJlbGVhc2VkKHBhdGgsIGNvbnRlbnQsIHJlbGVhc2VkKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBmaWxlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWxlRnJvbVJlbGVhc2UocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKHBhdGgpLFxyXG4gICAgICAgIHRvcG1vc3RGaWxlTmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lLCAvLy9cclxuICAgICAgICByZWxlYXNlID0gbG9hZFJlbGVhc2UodG9wbW9zdEZpbGVOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpLFxyXG4gICAgICAgIGZpbGUgPSByZWxlYXNlLmdldEZpbGUocGF0aCk7XHJcblxyXG4gIHJldHVybiBmaWxlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWxlc0Zyb21Qcm9qZWN0KHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBmaWxlcyA9IEZpbGVzLmZyb21Ob3RoaW5nKCk7XHJcblxyXG4gIHBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcclxuICAgIGNvbnN0IGZpbGUgPSBmaWxlRnJvbVByb2plY3QocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICBmaWxlcy5hZGRGaWxlKGZpbGUpO1xyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gZmlsZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbGVzRnJvbVJlbGVhc2UocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGNvbnN0IGZpbGVzID0gRmlsZXMuZnJvbU5vdGhpbmcoKSxcclxuICAgICAgICBwYXRoc0xlbmd0aCA9IHBhdGhzLmxlbmd0aDtcclxuXHJcbiAgaWYgKHBhdGhzTGVuZ3RoID4gMCkge1xyXG4gICAgY29uc3QgZmlyc3RQYXRoID0gZmlyc3QocGF0aHMpLFxyXG4gICAgICAgICAgcGF0aCA9IGZpcnN0UGF0aCwgLy8vXHJcbiAgICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgocGF0aCksXHJcbiAgICAgICAgICB0b3Btb3N0RmlsZU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZSwgLy8vXHJcbiAgICAgICAgICByZWxlYXNlID0gbG9hZFJlbGVhc2UodG9wbW9zdEZpbGVOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgIHBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcclxuICAgICAgY29uc3QgZmlsZSA9IHJlbGVhc2UuZ2V0RmlsZShwYXRoKTtcclxuXHJcbiAgICAgIGZpbGVzLmFkZEZpbGUoZmlsZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJldHVybiBmaWxlcztcclxufVxyXG5cclxuZnVuY3Rpb24gZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgoZW50cmllcywgcmVsYXRpdmVEaXJlY3RvcnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKSB7XHJcbiAgY29uc3QgYWJzb2x1dGVEaXJlY3RvcnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHJlbGF0aXZlRGlyZWN0b3J5UGF0aCksXHJcbiAgICAgICAgc3ViRW50cnlOYW1lcyA9IHJlYWREaXJlY3RvcnkoYWJzb2x1dGVEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgc3ViRW50cnlOYW1lcy5mb3JFYWNoKChzdWJFbnRyeU5hbWUpID0+IHtcclxuICAgIGNvbnN0IHN1YkVudHJ5TmFtZUhpZGRlbk5hbWUgPSBpc05hbWVIaWRkZW5OYW1lKHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICBsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3RvcmllcyA9ICFsb2FkT25seVJlY29nbmlzZWRGaWxlcztcclxuXHJcbiAgICBpZiAoIXN1YkVudHJ5TmFtZUhpZGRlbk5hbWUpIHtcclxuICAgICAgY29uc3QgcGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocmVsYXRpdmVEaXJlY3RvcnlQYXRoLCBzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgICBkaXJlY3RvcnkgPSBsb2FkRGlyZWN0b3J5KHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoZGlyZWN0b3J5ICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgZGlyZWN0b3J5UGF0aCA9IHBhdGg7IC8vL1xyXG5cclxuICAgICAgICBpZiAobG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgIGVudHJpZXMuYWRkRGlyZWN0b3J5KGRpcmVjdG9yeSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChlbnRyaWVzLCBkaXJlY3RvcnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKTsgLy8vXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgZmlsZSA9IGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgICAgIGlmIChmaWxlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxyXG4gICAgICAgICAgICAgICAgZmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGggPSBpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoKGZpbGVQYXRoKSxcclxuICAgICAgICAgICAgICAgIGZpbGVSZWNvZ25pc2VkRmlsZSA9IGZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoOyAgLy8vXHJcblxyXG4gICAgICAgICAgaWYgKGZpbGVSZWNvZ25pc2VkRmlsZSB8fCBsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gICAgICAgICAgICBlbnRyaWVzLmFkZEZpbGUoZmlsZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvcG1vc3RGaWxlTmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoKHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCB0b3Btb3N0RmlsZU5hbWVzO1xyXG5cclxuICBjb25zdCBzdWJFbnRyeU5hbWVzID0gcmVhZERpcmVjdG9yeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICB0b3Btb3N0RmlsZU5hbWVzID0gc3ViRW50cnlOYW1lcy5yZWR1Y2UoKHRvcG1vc3RGaWxlTmFtZXMsIHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3QgYWJzb2x1dGVTdWJFbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZUhpZGRlbk5hbWUgPSBpc05hbWVIaWRkZW5OYW1lKHN1YkVudHJ5TmFtZSk7XHJcblxyXG4gICAgaWYgKCFzdWJFbnRyeU5hbWVIaWRkZW5OYW1lKSB7XHJcbiAgICAgIGNvbnN0IHN1YkVudHJ5RmlsZSA9IGlzRW50cnlGaWxlKGFic29sdXRlU3ViRW50cnlQYXRoKTtcclxuXHJcbiAgICAgIGlmIChzdWJFbnRyeUZpbGUpIHtcclxuICAgICAgICBjb25zdCB0b3Btb3N0RmlsZU5hbWUgPSBzdWJFbnRyeU5hbWU7ICAvLy9cclxuXHJcbiAgICAgICAgdG9wbW9zdEZpbGVOYW1lcy5wdXNoKHRvcG1vc3RGaWxlTmFtZSlcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0b3Btb3N0RmlsZU5hbWVzO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIHRvcG1vc3RGaWxlTmFtZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxuXHJcbiAgY29uc3Qgc3ViRW50cnlOYW1lcyA9IHJlYWREaXJlY3RvcnkocHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgdG9wbW9zdERpcmVjdG9yeU5hbWVzID0gc3ViRW50cnlOYW1lcy5yZWR1Y2UoKHRvcG1vc3REaXJlY3RvcnlOYW1lcywgc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVN1YkVudHJ5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKTtcclxuXHJcbiAgICBpZiAoIXN1YkVudHJ5TmFtZUhpZGRlbk5hbWUpIHtcclxuICAgICAgY29uc3Qgc3ViRW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlU3ViRW50cnlQYXRoKTtcclxuXHJcbiAgICAgIGlmIChzdWJFbnRyeURpcmVjdG9yeSkge1xyXG4gICAgICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gc3ViRW50cnlOYW1lOyAgLy8vXHJcblxyXG4gICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lcy5wdXNoKHRvcG1vc3REaXJlY3RvcnlOYW1lKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcbn1cclxuIl0sIm5hbWVzIjpbImxvYWRGaWxlIiwic2F2ZUZpbGUiLCJsb2FkRmlsZXMiLCJzYXZlRmlsZXMiLCJsb2FkUmVsZWFzZSIsImxvYWRQcm9qZWN0IiwibG9hZFJlbGVhc2VzIiwibG9hZFByb2plY3RzIiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwidG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aCIsInRvcG1vc3REaXJlY3RvcnlQYXRoRnJvbVBhdGgiLCJyZWFkRmlsZSIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJ3cml0ZUZpbGUiLCJpc0VudHJ5RmlsZSIsInJlYWREaXJlY3RvcnkiLCJpc0VudHJ5RGlyZWN0b3J5IiwiY2hlY2tFbnRyeUV4aXN0cyIsImNoZWNrRmlsZUV4aXN0cyIsInBhdGgiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJmaWxlIiwidG9wbW9zdERpcmVjdG9yeU5hbWUiLCJhYnNvbHV0ZVBhdGgiLCJlbnRyeURpcmVjdG9yeSIsImZpbGVGcm9tUHJvamVjdCIsImZpbGVGcm9tUmVsZWFzZSIsImVycm9yIiwic3VjY2VzcyIsImZpbGVQYXRoIiwiZ2V0UGF0aCIsImFic29sdXRlRmlsZVBhdGgiLCJmaWxlRXhpc3RzIiwiY29udGVudCIsImdldENvbnRlbnQiLCJwYXRocyIsImZpbGVzIiwicGF0aHNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdFBhdGgiLCJmaWxlc0Zyb21Qcm9qZWN0IiwiZmlsZXNGcm9tUmVsZWFzZSIsInN1Y2Nlc3NlcyIsIm1hcEZpbGUiLCJyZWxlYXNlTmFtZSIsInJlbGVhc2UiLCJuYW1lIiwidG9wbW9zdEZpbGVOYW1lIiwiZW50cnlGaWxlIiwianNvbiIsImVudHJpZXMiLCJKU09OIiwicGFyc2UiLCJFbnRyaWVzIiwiZnJvbUpTT04iLCJSZWxlYXNlIiwiZnJvbU5hbWVBbmRFbnRyaWVzIiwicHJvamVjdE5hbWUiLCJsb2FkT25seVJlY29nbmlzZWRGaWxlcyIsInByb2plY3QiLCJsb2FkRW50cmllcyIsIlByb2plY3QiLCJyZWxlYXNlcyIsIlJlbGVhc2VzIiwiZnJvbU5vdGhpbmciLCJ0b3Btb3N0RmlsZU5hbWVzIiwidG9wbW9zdEZpbGVOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJyZWxlYXNlTmFtZXMiLCJmb3JFYWNoIiwiYWRkUmVsZWFzZSIsInByb2plY3RzIiwiUHJvamVjdHMiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZXMiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoIiwicHJvamVjdE5hbWVzIiwiYWRkUHJvamVjdCIsInJlbGF0aXZlRGlyZWN0b3J5UGF0aCIsImVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoIiwibG9hZERpcmVjdG9yeSIsImRpcmVjdG9yeSIsIkRpcmVjdG9yeSIsImZyb21QYXRoIiwicmVsZWFzZWQiLCJjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UiLCJGaWxlIiwiZnJvbVBhdGhDb250ZW50QW5kUmVsZWFzZWQiLCJnZXRGaWxlIiwiRmlsZXMiLCJhZGRGaWxlIiwiYWJzb2x1dGVEaXJlY3RvcnlQYXRoIiwic3ViRW50cnlOYW1lcyIsInN1YkVudHJ5TmFtZSIsInN1YkVudHJ5TmFtZUhpZGRlbk5hbWUiLCJpc05hbWVIaWRkZW5OYW1lIiwibG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMiLCJkaXJlY3RvcnlQYXRoIiwiYWRkRGlyZWN0b3J5IiwiZmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgiLCJpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoIiwiZmlsZVJlY29nbmlzZWRGaWxlIiwicmVkdWNlIiwiYWJzb2x1dGVTdWJFbnRyeVBhdGgiLCJzdWJFbnRyeUZpbGUiLCJwdXNoIiwic3ViRW50cnlEaXJlY3RvcnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXFCZ0JBLFFBQVE7ZUFBUkE7O0lBcUJBQyxRQUFRO2VBQVJBOztJQXVCQUMsU0FBUztlQUFUQTs7SUEyQkFDLFNBQVM7ZUFBVEE7O0lBVUFDLFdBQVc7ZUFBWEE7O0lBZ0NBQyxXQUFXO2VBQVhBOztJQWdCQUMsWUFBWTtlQUFaQTs7SUF1QkFDLFlBQVk7ZUFBWkE7O0lBdUJoQixPQVNFO2VBVEY7Ozt5QkFsTW1FOzJEQUVsRDs0REFDQzs4REFDRTs4REFDQTs4REFDQTsrREFDQzsrREFDQTtnRUFDQztvQkFFVzt3QkFDWTt1QkFDRTs7Ozs7O0FBRS9DLElBQU0sQUFBRUMsUUFBVUMseUJBQWMsQ0FBeEJELE9B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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-file-system",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "5.0.
|
|
4
|
+
"version": "5.0.232",
|
|
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,7 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"argumentative": "^2.0.21",
|
|
14
|
-
"
|
|
15
|
-
"mkdirp": "^0.5.1",
|
|
16
|
-
"necessary": "^11.0.40",
|
|
14
|
+
"necessary": "^11.6.0",
|
|
17
15
|
"occam-dom": "^3.1.31",
|
|
18
16
|
"occam-grammars": "^1.0.451"
|
|
19
17
|
},
|
|
@@ -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
|
-
{
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
{
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
102
|
+
const entryPath = absoluteSourceDirectoryPath; ///
|
|
103
|
+
|
|
104
|
+
removeEntry(entryPath, (error) => {
|
|
85
105
|
if (error) {
|
|
86
106
|
targetEntryPath = sourceEntryPath; ///
|
|
87
107
|
}
|
package/src/saveFile.js
CHANGED
|
@@ -5,11 +5,10 @@ import File from "./file";
|
|
|
5
5
|
import { saveFile as saveFileEx } from "./utilities/fileSystem"
|
|
6
6
|
|
|
7
7
|
export default function saveFile(projectsDirectoryPath, json, callback) {
|
|
8
|
-
const file = File.fromJSON(json)
|
|
8
|
+
const file = File.fromJSON(json),
|
|
9
|
+
success = saveFileEx(file, projectsDirectoryPath);
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
json = {}; ///
|
|
11
|
+
json = success;
|
|
13
12
|
|
|
14
13
|
callback(json);
|
|
15
14
|
}
|
package/src/saveFiles.js
CHANGED
|
@@ -5,11 +5,10 @@ import Files from "./files";
|
|
|
5
5
|
import { saveFiles as saveFilesEx } from "./utilities/fileSystem"
|
|
6
6
|
|
|
7
7
|
export default function saveFiles(projectsDirectoryPath, json, callback) {
|
|
8
|
-
const files = Files.fromJSON(json)
|
|
8
|
+
const files = Files.fromJSON(json),
|
|
9
|
+
successes = saveFilesEx(files, projectsDirectoryPath);
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
json = {}; ///
|
|
11
|
+
json = successes;
|
|
13
12
|
|
|
14
13
|
callback(json);
|
|
15
14
|
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import mkdirp from "mkdirp";
|
|
4
|
-
|
|
5
3
|
import { arrayUtilities, pathUtilities, fileSystemUtilities } from "necessary";
|
|
6
4
|
|
|
7
5
|
import File from "../file";
|
|
@@ -18,8 +16,8 @@ import { isFilePathRecognisedFilePath } from "../utilities/filePath";
|
|
|
18
16
|
import { convertContentTabsToWhitespace } from "../utilities/content";
|
|
19
17
|
|
|
20
18
|
const { first } = arrayUtilities,
|
|
21
|
-
{
|
|
22
|
-
{
|
|
19
|
+
{ concatenatePaths, topmostDirectoryNameFromPath, topmostDirectoryPathFromPath } = pathUtilities,
|
|
20
|
+
{ readFile, writeFile, isEntryFile, readDirectory, isEntryDirectory, checkEntryExists: checkFileExists } = fileSystemUtilities;
|
|
23
21
|
|
|
24
22
|
export function loadFile(path, projectsDirectoryPath) {
|
|
25
23
|
let file = null;
|
|
@@ -43,14 +41,26 @@ export function loadFile(path, projectsDirectoryPath) {
|
|
|
43
41
|
}
|
|
44
42
|
|
|
45
43
|
export function saveFile(file, projectsDirectoryPath) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
let success = false;
|
|
45
|
+
|
|
46
|
+
const filePath = file.getPath(),
|
|
47
|
+
absoluteFilePath = concatenatePaths(projectsDirectoryPath, filePath),
|
|
48
|
+
fileExists = checkFileExists(absoluteFilePath);
|
|
49
|
+
|
|
50
|
+
if (fileExists) {
|
|
51
|
+
const filePath = absoluteFilePath, ///
|
|
52
|
+
content = file.getContent();
|
|
53
|
+
|
|
54
|
+
try {
|
|
55
|
+
writeFile(filePath, content);
|
|
56
|
+
} catch (error) {
|
|
57
|
+
///
|
|
58
|
+
}
|
|
50
59
|
|
|
51
|
-
|
|
60
|
+
success = true;
|
|
61
|
+
}
|
|
52
62
|
|
|
53
|
-
|
|
63
|
+
return success;
|
|
54
64
|
}
|
|
55
65
|
|
|
56
66
|
export function loadFiles(paths, projectsDirectoryPath) {
|
|
@@ -81,9 +91,13 @@ export function loadFiles(paths, projectsDirectoryPath) {
|
|
|
81
91
|
}
|
|
82
92
|
|
|
83
93
|
export function saveFiles(files, projectsDirectoryPath) {
|
|
84
|
-
files.
|
|
85
|
-
saveFile(file, projectsDirectoryPath);
|
|
94
|
+
const successes = files.mapFile((file) => {
|
|
95
|
+
const success = saveFile(file, projectsDirectoryPath);
|
|
96
|
+
|
|
97
|
+
return success;
|
|
86
98
|
});
|
|
99
|
+
|
|
100
|
+
return successes;
|
|
87
101
|
}
|
|
88
102
|
|
|
89
103
|
export function loadRelease(releaseName, projectsDirectoryPath) {
|