occam-file-system 6.0.11 → 6.0.15

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.
@@ -9,101 +9,56 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- createDirectory: function() {
13
- return createDirectory;
14
- },
15
- createEntryOperation: function() {
16
- return createEntryOperation;
17
- },
18
- createFile: function() {
19
- return createFile;
12
+ createProjectEntry: function() {
13
+ return createProjectEntry;
20
14
  },
21
15
  default: function() {
22
16
  return createProjectEntries;
23
17
  }
24
18
  });
25
19
  var _necessary = require("necessary");
26
- var _pathMaps = require("./utilities/pathMaps");
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;
20
+ var concatenatePaths = _necessary.pathUtilities.concatenatePaths, createFile = _necessary.fileSystemUtilities.createFile, createDirectory = _necessary.fileSystemUtilities.createDirectory;
28
21
  function createProjectEntries(projectsDirectoryPath, json, callback) {
29
22
  var pathMaps = json.pathMaps;
30
- createEntries(pathMaps, projectsDirectoryPath, function(targetEntryPaths) {
31
- var _$json = {
32
- targetEntryPaths: targetEntryPaths
33
- };
34
- callback(_$json);
23
+ pathMaps.forEach(function(pathMap) {
24
+ createProjectEntry(pathMap);
35
25
  });
26
+ json = {
27
+ pathMaps: pathMaps
28
+ };
29
+ callback(json);
36
30
  }
37
- function createEntryOperation(sourceEntryPath, targetEntryPath, entryDirectory, projectsDirectoryPath, callback) {
38
- entryDirectory ? createDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) : createFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback);
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
- }
31
+ function createProjectEntry(projectsDirectoryPath, pathMap) {
32
+ var sourcePath = pathMap.sourcePath;
33
+ if (sourcePath === null) {
34
+ return;
65
35
  }
66
- callback(error);
36
+ var entryDirectory = pathMap.entryDirectory;
37
+ entryDirectory ? createProjectDirectory(projectsDirectoryPath, pathMap) : createProjectFile(projectsDirectoryPath, pathMap);
67
38
  }
68
- function createEntries(pathMaps, projectsDirectoryPath, callback) {
69
- var targetEntryPaths = [];
70
- (0, _pathMaps.asynchronousForEach)(pathMaps, function(sourceEntryPath, targetEntryPath, entryDirectory, next, done, index) {
71
- createEntryOperation(sourceEntryPath, targetEntryPath, entryDirectory, projectsDirectoryPath, function(sourceEntryPath, targetEntryPath) {
72
- targetEntryPaths.push(targetEntryPath);
73
- next();
39
+ function createProjectFile(projectsDirectoryPath, pathMap) {
40
+ var sourceEntryPath = pathMap.sourceEntryPath, sourceFilePath = sourceEntryPath, absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath);
41
+ try {
42
+ var filePath = absoluteSourceFilePath; ///
43
+ createFile(filePath);
44
+ } catch (error) {
45
+ var targetEntryPath = null;
46
+ Object.assign(pathMap, {
47
+ targetEntryPath: targetEntryPath
74
48
  });
75
- }, function() {
76
- callback(targetEntryPaths);
77
- });
78
- }
79
- function createFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
80
- var targetFilePath = targetEntryPath, absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath), targetFileExists = checkFileExists(absoluteTargetFilePath);
81
- if (targetFileExists) {
82
- targetEntryPath = null;
83
- callback(sourceEntryPath, targetEntryPath);
84
- return;
85
49
  }
86
- var filePath = absoluteTargetFilePath; ///
87
- createFile(filePath, function(error) {
88
- if (error) {
89
- targetEntryPath = null;
90
- }
91
- callback(sourceEntryPath, targetEntryPath);
92
- });
93
50
  }
94
- function createDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
95
- var targetDirectoryPath = targetEntryPath, absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath), targetDirectoryExists = checkFileExists(absoluteTargetDirectoryPath);
96
- if (targetDirectoryExists) {
97
- targetEntryPath = null;
98
- callback(sourceEntryPath, targetEntryPath);
99
- return;
51
+ function createProjectDirectory(projectsDirectoryPath, pathMap) {
52
+ var sourceEntryPath = pathMap.sourceEntryPath, sourceDirectoryPath = sourceEntryPath, absoluteSourceDirectoryPath = concatenatePaths(projectsDirectoryPath, sourceDirectoryPath);
53
+ try {
54
+ var directoryPath = absoluteSourceDirectoryPath; ///
55
+ createDirectory(directoryPath);
56
+ } catch (error) {
57
+ var targetEntryPath = null;
58
+ Object.assign(pathMap, {
59
+ targetEntryPath: targetEntryPath
60
+ });
100
61
  }
101
- createDirectory(absoluteTargetDirectoryPath, function(error) {
102
- if (error) {
103
- targetEntryPath = null;
104
- }
105
- callback(sourceEntryPath, targetEntryPath);
106
- });
107
62
  }
108
63
 
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVQcm9qZWN0RW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgYXN5bmNocm9ub3VzRm9yRWFjaCB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoTWFwc1wiO1xuXG5jb25zdCB7IGNvbmNhdGVuYXRlUGF0aHMsIHBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWVGcm9tUGF0aCB9ID0gcGF0aFV0aWxpdGllcyxcbiAgICAgIHsgY3JlYXRlRmlsZTogY3JlYXRlRmlsZUV4LFxuICAgICAgICBjcmVhdGVEaXJlY3Rvcnk6IGNyZWF0ZURpcmVjdG9yeUV4LFxuICAgICAgICBjaGVja0VudHJ5RXhpc3RzOiBjaGVja0ZpbGVFeGlzdHMsXG4gICAgICAgIGNoZWNrRW50cnlFeGlzdHM6IGNoZWNrRGlyZWN0b3J5RXhpc3RzIH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVQcm9qZWN0RW50cmllcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGpzb24sIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHsgcGF0aE1hcHMgfSA9IGpzb247XG5cbiAgY3JlYXRlRW50cmllcyhwYXRoTWFwcywgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCAodGFyZ2V0RW50cnlQYXRocykgPT4ge1xuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGhzXG4gICAgfTtcblxuICAgIGNhbGxiYWNrKGpzb24pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBlbnRyeURpcmVjdG9yeSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBlbnRyeURpcmVjdG9yeSA/XG4gICAgY3JlYXRlRGlyZWN0b3J5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSA6XG4gICAgICBjcmVhdGVGaWxlT3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURpcmVjdG9yeShkaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBsZXQgZXJyb3IgPSBudWxsO1xuXG4gIGNvbnN0IGRpcmVjdG9yeVBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWUgPSBwYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lRnJvbVBhdGgoZGlyZWN0b3J5UGF0aCksXG4gICAgICAgIHBhcmVudERpcmVjdG9yeVBhdGggPSBkaXJlY3RvcnlQYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lLCAgLy8vXG4gICAgICAgIHBhcmVudERpcmVjdG9yeUV4aXN0cyA9IGNoZWNrRGlyZWN0b3J5RXhpc3RzKHBhcmVudERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICghcGFyZW50RGlyZWN0b3J5RXhpc3RzKSB7XG4gICAgZXJyb3IgPSBgVGhlICcke2RpcmVjdG9yeVBhdGh9JyBkaXJlY3RvcnkncyBwYXJlbnQgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0YDtcbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgY3JlYXRlRGlyZWN0b3J5RXgoZGlyZWN0b3J5UGF0aClcbiAgICB9IGNhdGNoIChuYXRpdmVFcnJvcikge1xuICAgICAgZXJyb3IgPSBuYXRpdmVFcnJvcjsgIC8vL1xuICAgIH1cbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZpbGUoZmlsZVBhdGgsIGNhbGxiYWNrKSB7XG4gIGxldCBlcnJvciA9IG51bGw7XG5cbiAgY29uc3QgZmlsZVBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWUgPSBwYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lRnJvbVBhdGgoZmlsZVBhdGgpLFxuICAgICAgICBwYXJlbnREaXJlY3RvcnlQYXRoID0gZmlsZVBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWUsICAvLy9cbiAgICAgICAgcGFyZW50RGlyZWN0b3J5RXhpc3RzID0gY2hlY2tEaXJlY3RvcnlFeGlzdHMocGFyZW50RGlyZWN0b3J5UGF0aCk7XG5cbiAgaWYgKCFwYXJlbnREaXJlY3RvcnlFeGlzdHMpIHtcbiAgICBlcnJvciA9IGBUaGUgJyR7ZmlsZVBhdGh9JyBmaWxlJ3MgcGFyZW50IGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdGA7XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIGNyZWF0ZUZpbGVFeChmaWxlUGF0aClcbiAgICB9IGNhdGNoIChuYXRpdmVFcnJvcikge1xuICAgICAgZXJyb3IgPSBuYXRpdmVFcnJvcjsgIC8vL1xuICAgIH1cbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9yKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRW50cmllcyhwYXRoTWFwcywgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCB0YXJnZXRFbnRyeVBhdGhzID0gW107XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChcbiAgICBwYXRoTWFwcyxcbiAgICAoc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBuZXh0LCBkb25lLCBpbmRleCkgPT4ge1xuICAgICAgY3JlYXRlRW50cnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCkgPT4ge1xuICAgICAgICB0YXJnZXRFbnRyeVBhdGhzLnB1c2godGFyZ2V0RW50cnlQYXRoKTtcblxuICAgICAgICBuZXh0KCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgICgpID0+IHtcbiAgICAgIGNhbGxiYWNrKHRhcmdldEVudHJ5UGF0aHMpO1xuICAgIH1cbiAgKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRmlsZU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCB0YXJnZXRGaWxlUGF0aCA9IHRhcmdldEVudHJ5UGF0aCwgLy8vXG4gICAgICAgIGFic29sdXRlVGFyZ2V0RmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdGFyZ2V0RmlsZVBhdGgpLFxuICAgICAgICB0YXJnZXRGaWxlRXhpc3RzID0gY2hlY2tGaWxlRXhpc3RzKGFic29sdXRlVGFyZ2V0RmlsZVBhdGgpO1xuXG4gIGlmICh0YXJnZXRGaWxlRXhpc3RzKSB7XG4gICAgdGFyZ2V0RW50cnlQYXRoID0gbnVsbDtcblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGZpbGVQYXRoID0gYWJzb2x1dGVUYXJnZXRGaWxlUGF0aDsgIC8vL1xuXG4gIGNyZWF0ZUZpbGUoZmlsZVBhdGgsIChlcnJvcikgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgdGFyZ2V0RW50cnlQYXRoID0gbnVsbDtcbiAgICB9XG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEaXJlY3RvcnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3QgdGFyZ2V0RGlyZWN0b3J5UGF0aCA9IHRhcmdldEVudHJ5UGF0aCwgIC8vL1xuICAgICAgICBhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdGFyZ2V0RGlyZWN0b3J5UGF0aCksXG4gICAgICAgIHRhcmdldERpcmVjdG9yeUV4aXN0cyA9IGNoZWNrRmlsZUV4aXN0cyhhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGgpO1xuXG4gIGlmICh0YXJnZXREaXJlY3RvcnlFeGlzdHMpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsO1xuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY3JlYXRlRGlyZWN0b3J5KGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCwgKGVycm9yKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlRGlyZWN0b3J5IiwiY3JlYXRlRW50cnlPcGVyYXRpb24iLCJjcmVhdGVGaWxlIiwiY3JlYXRlUHJvamVjdEVudHJpZXMiLCJjb25jYXRlbmF0ZVBhdGhzIiwicGF0aFV0aWxpdGllcyIsInBhdGhXaXRob3V0Qm90dG9tbW9zdE5hbWVGcm9tUGF0aCIsImNyZWF0ZUZpbGVFeCIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJjcmVhdGVEaXJlY3RvcnlFeCIsImNoZWNrRW50cnlFeGlzdHMiLCJjaGVja0ZpbGVFeGlzdHMiLCJjaGVja0RpcmVjdG9yeUV4aXN0cyIsInByb2plY3RzRGlyZWN0b3J5UGF0aCIsImpzb24iLCJjYWxsYmFjayIsInBhdGhNYXBzIiwiY3JlYXRlRW50cmllcyIsInRhcmdldEVudHJ5UGF0aHMiLCJzb3VyY2VFbnRyeVBhdGgiLCJ0YXJnZXRFbnRyeVBhdGgiLCJlbnRyeURpcmVjdG9yeSIsImNyZWF0ZURpcmVjdG9yeU9wZXJhdGlvbiIsImNyZWF0ZUZpbGVPcGVyYXRpb24iLCJkaXJlY3RvcnlQYXRoIiwiZXJyb3IiLCJkaXJlY3RvcnlQYXRoV2l0aG91dEJvdHRvbW1vc3ROYW1lIiwicGFyZW50RGlyZWN0b3J5UGF0aCIsInBhcmVudERpcmVjdG9yeUV4aXN0cyIsIm5hdGl2ZUVycm9yIiwiZmlsZVBhdGgiLCJmaWxlUGF0aFdpdGhvdXRCb3R0b21tb3N0TmFtZSIsImFzeW5jaHJvbm91c0ZvckVhY2giLCJuZXh0IiwiZG9uZSIsImluZGV4IiwicHVzaCIsInRhcmdldEZpbGVQYXRoIiwiYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCIsInRhcmdldEZpbGVFeGlzdHMiLCJ0YXJnZXREaXJlY3RvcnlQYXRoIiwiYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoIiwidGFyZ2V0RGlyZWN0b3J5RXhpc3RzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUE4QmdCQSxlQUFlO2VBQWZBOztJQU5BQyxvQkFBb0I7ZUFBcEJBOztJQTBCQUMsVUFBVTtlQUFWQTs7SUF0Q2hCLE9BVUM7ZUFWdUJDOzs7eUJBVjJCO3dCQUVmO0FBRXBDLElBQVFDLG1CQUF3REMsd0JBQWEsQ0FBckVELGtCQUFrQkUsb0NBQXNDRCx3QkFBYSxDQUFuREMsbUNBQ2xCSixBQUFZSyxlQUcrQkMsOEJBQW1CLENBSDlETixZQUNBRixBQUFpQlMsb0JBRTBCRCw4QkFBbUIsQ0FGOURSLGlCQUNBVSxBQUFrQkMsa0JBQ3lCSCw4QkFBbUIsQ0FEOURFLGtCQUNBQSxBQUFrQkUsdUJBQXlCSiw4QkFBbUIsQ0FBOURFO0FBRU8sU0FBU1AscUJBQXFCVSxxQkFBcUIsRUFBRUMsSUFBSSxFQUFFQyxRQUFRO0lBQ2hGLElBQU0sQUFBRUMsV0FBYUYsS0FBYkU7SUFFUkMsY0FBY0QsVUFBVUgsdUJBQXVCLFNBQUNLO1FBQzlDLElBQU1KLFNBQU87WUFDWEksa0JBQUFBO1FB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
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVQcm9qZWN0RW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBjb25jYXRlbmF0ZVBhdGhzIH0gPSBwYXRoVXRpbGl0aWVzLFxuICAgICAgeyBjcmVhdGVGaWxlOiBjcmVhdGVGaWxlLCBjcmVhdGVEaXJlY3Rvcnk6IGNyZWF0ZURpcmVjdG9yeSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUHJvamVjdEVudHJpZXMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBqc29uLCBjYWxsYmFjaykge1xuICBjb25zdCB7IHBhdGhNYXBzIH0gPSBqc29uO1xuXG4gIHBhdGhNYXBzLmZvckVhY2goKHBhdGhNYXApID0+IHtcbiAgICBjcmVhdGVQcm9qZWN0RW50cnkocGF0aE1hcCk7XG4gIH0pO1xuXG4gIGpzb24gPSB7XG4gICAgcGF0aE1hcHNcbiAgfTtcblxuICBjYWxsYmFjayhqc29uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb2plY3RFbnRyeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXApIHtcbiAgY29uc3QgeyBzb3VyY2VQYXRoIH0gPSBwYXRoTWFwO1xuXG4gIGlmIChzb3VyY2VQYXRoID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyBlbnRyeURpcmVjdG9yeSB9ID0gcGF0aE1hcDtcblxuICBlbnRyeURpcmVjdG9yeSA/XG4gICAgY3JlYXRlUHJvamVjdERpcmVjdG9yeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXApIDpcbiAgICAgIGNyZWF0ZVByb2plY3RGaWxlKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVByb2plY3RGaWxlKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCkge1xuICBjb25zdCB7IHNvdXJjZUVudHJ5UGF0aCB9ID0gcGF0aE1hcCxcbiAgICAgICAgc291cmNlRmlsZVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsIC8vL1xuICAgICAgICBhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZUZpbGVQYXRoKTtcblxuICB0cnkge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gYWJzb2x1dGVTb3VyY2VGaWxlUGF0aDsgIC8vL1xuXG4gICAgY3JlYXRlRmlsZShmaWxlUGF0aCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgdGFyZ2V0RW50cnlQYXRoID0gbnVsbDtcblxuICAgIE9iamVjdC5hc3NpZ24ocGF0aE1hcCwge1xuICAgICAgdGFyZ2V0RW50cnlQYXRoXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlUHJvamVjdERpcmVjdG9yeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXApIHtcbiAgY29uc3QgeyBzb3VyY2VFbnRyeVBhdGggfSA9IHBhdGhNYXAsXG4gICAgICAgIHNvdXJjZURpcmVjdG9yeVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsIC8vL1xuICAgICAgICBhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRGlyZWN0b3J5UGF0aCk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBkaXJlY3RvcnlQYXRoID0gYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoOyAgLy8vXG5cbiAgICBjcmVhdGVEaXJlY3RvcnkoZGlyZWN0b3J5UGF0aCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgdGFyZ2V0RW50cnlQYXRoID0gbnVsbDtcblxuICAgIE9iamVjdC5hc3NpZ24ocGF0aE1hcCwge1xuICAgICAgdGFyZ2V0RW50cnlQYXRoXG4gICAgfSk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVQcm9qZWN0RW50cnkiLCJjcmVhdGVQcm9qZWN0RW50cmllcyIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwiY3JlYXRlRmlsZSIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJjcmVhdGVEaXJlY3RvcnkiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJqc29uIiwiY2FsbGJhY2siLCJwYXRoTWFwcyIsImZvckVhY2giLCJwYXRoTWFwIiwic291cmNlUGF0aCIsImVudHJ5RGlyZWN0b3J5IiwiY3JlYXRlUHJvamVjdERpcmVjdG9yeSIsImNyZWF0ZVByb2plY3RGaWxlIiwic291cmNlRW50cnlQYXRoIiwic291cmNlRmlsZVBhdGgiLCJhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoIiwiZmlsZVBhdGgiLCJlcnJvciIsInRhcmdldEVudHJ5UGF0aCIsIk9iamVjdCIsImFzc2lnbiIsInNvdXJjZURpcmVjdG9yeVBhdGgiLCJhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgiLCJkaXJlY3RvcnlQYXRoIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFxQmdCQSxrQkFBa0I7ZUFBbEJBOztJQWRoQixPQVlDO2VBWnVCQzs7O3lCQUwyQjtBQUVuRCxJQUFNLEFBQUVDLG1CQUFxQkMsd0JBQWEsQ0FBbENELGtCQUNBRSxBQUFZQSxhQUFpREMsOEJBQW1CLENBQWhGRCxZQUF3QkUsQUFBaUJBLGtCQUFvQkQsOEJBQW1CLENBQXhEQztBQUVqQixTQUFTTCxxQkFBcUJNLHFCQUFxQixFQUFFQyxJQUFJLEVBQUVDLFFBQVE7SUFDaEYsSUFBTSxBQUFFQyxXQUFhRixLQUFiRTtJQUVSQSxTQUFTQyxPQUFPLENBQUMsU0FBQ0M7UUFDaEJaLG1CQUFtQlk7SUFDckI7SUFFQUosT0FBTztRQUNMRSxVQUFBQTtJQUNGO0lBRUFELFNBQVNEO0FBQ1g7QUFFTyxTQUFTUixtQkFBbUJPLHFCQUFxQixFQUFFSyxPQUFPO0lBQy9ELElBQU0sQUFBRUMsYUFBZUQsUUFBZkM7SUFFUixJQUFJQSxlQUFlLE1BQU07UUFDdkI7SUFDRjtJQUVBLElBQU0sQUFBRUMsaUJBQW1CRixRQUFuQkU7SUFFUkEsaUJBQ0VDLHVCQUF1QlIsdUJBQXVCSyxXQUM1Q0ksa0JBQWtCVCx1QkFBdUJLO0FBQy9DO0FBRUEsU0FBU0ksa0JBQWtCVCxxQkFBcUIsRUFBRUssT0FBTztJQUN2RCxJQUFNLEFBQUVLLGtCQUFvQkwsUUFBcEJLLGlCQUNGQyxpQkFBaUJELGlCQUNqQkUseUJBQXlCakIsaUJBQWlCSyx1QkFBdUJXO0lBRXZFLElBQUk7UUFDRixJQUFNRSxXQUFXRCx3QkFBeUIsR0FBRztRQUU3Q2YsV0FBV2dCO0lBQ2IsRUFBRSxPQUFPQyxPQUFPO1FBQ2QsSUFBTUMsa0JBQWtCO1FBRXhCQyxPQUFPQyxNQUFNLENBQUNaLFNBQVM7WUFDckJVLGlCQUFBQTtRQUNGO0lBQ0Y7QUFDRjtBQUVBLFNBQVNQLHVCQUF1QlIscUJBQXFCLEVBQUVLLE9BQU87SUFDNUQsSUFBTSxBQUFFSyxrQkFBb0JMLFFBQXBCSyxpQkFDRlEsc0JBQXNCUixpQkFDdEJTLDhCQUE4QnhCLGlCQUFpQkssdUJBQXVCa0I7SUFFNUUsSUFBSTtRQUNGLElBQU1FLGdCQUFnQkQsNkJBQThCLEdBQUc7UUFFdkRwQixnQkFBZ0JxQjtJQUNsQixFQUFFLE9BQU9OLE9BQU87UUFDZCxJQUFNQyxrQkFBa0I7UUFFeEJDLE9BQU9DLE1BQU0sQ0FBQ1osU0FBUztZQUNyQlUsaUJBQUFBO1FBQ0Y7SUFDRjtBQUNGIn0=
@@ -12,111 +12,59 @@ _export(exports, {
12
12
  default: function() {
13
13
  return moveProjectEntries;
14
14
  },
15
- moveDirectory: function() {
16
- return moveDirectory;
17
- },
18
- moveEntryOperation: function() {
19
- return moveEntryOperation;
20
- },
21
- moveFile: function() {
22
- return moveFile;
15
+ moveProjectEntry: function() {
16
+ return moveProjectEntry;
23
17
  }
24
18
  });
25
19
  var _necessary = require("necessary");
26
- var _pathMaps = require("./utilities/pathMaps");
27
20
  var _removeProjectEntries = require("./removeProjectEntries");
28
- var concatenatePaths = _necessary.pathUtilities.concatenatePaths, isDirectoryEmpty = _necessary.fileSystemUtilities.isDirectoryEmpty, checkEntryExists = _necessary.fileSystemUtilities.checkEntryExists, moveFileEx = _necessary.fileSystemUtilities.moveFile, moveDirectoryEx = _necessary.fileSystemUtilities.moveDirectory;
21
+ var concatenatePaths = _necessary.pathUtilities.concatenatePaths, moveFile = _necessary.fileSystemUtilities.moveFile, moveDirectory = _necessary.fileSystemUtilities.moveDirectory;
29
22
  function moveProjectEntries(projectsDirectoryPath, json, callback) {
30
23
  var pathMaps = json.pathMaps;
31
- moveEntries(pathMaps, projectsDirectoryPath, function(targetEntryPaths) {
32
- var _$json = {
33
- targetEntryPaths: targetEntryPaths
34
- };
35
- callback(_$json);
24
+ pathMaps.forEach(function(pathMap) {
25
+ moveProjectEntry(pathMap);
36
26
  });
27
+ json = {
28
+ pathMaps: pathMaps
29
+ };
30
+ callback(json);
37
31
  }
38
- function moveEntryOperation(sourceEntryPath, targetEntryPath, entryDirectory, projectsDirectoryPath, callback) {
39
- if (targetEntryPath === null) {
40
- (0, _removeProjectEntries.removeEntryOperation)(sourceEntryPath, targetEntryPath, entryDirectory, projectsDirectoryPath, callback);
32
+ function moveProjectEntry(projectsDirectoryPath, pathMap) {
33
+ var sourcePath = pathMap.sourcePath;
34
+ if (sourcePath === null) {
41
35
  return;
42
36
  }
43
- var absoluteSourceEntryPath = concatenatePaths(projectsDirectoryPath, sourceEntryPath), sourceEntryExists = checkEntryExists(absoluteSourceEntryPath);
44
- if (!sourceEntryExists) {
45
- targetEntryPath = null;
46
- callback(sourceEntryPath, targetEntryPath);
37
+ var targetPath = pathMap.targetPath;
38
+ if (targetPath === null) {
39
+ (0, _removeProjectEntries.removeProjectEntry)(projectsDirectoryPath, pathMap);
47
40
  return;
48
41
  }
49
- entryDirectory ? moveDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) : moveFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback);
50
- }
51
- function moveDirectory(oldDirectoryPath, newDirectoryPath, callback) {
52
- var error = null;
53
- try {
54
- moveDirectoryEx(oldDirectoryPath);
55
- } catch (nativeError) {
56
- error = nativeError; ///
57
- }
58
- callback(error);
42
+ var entryDirectory = pathMap.entryDirectory;
43
+ entryDirectory ? moveProjectDirectory(projectsDirectoryPath, pathMap) : moveProjectFile(projectsDirectoryPath, pathMap);
59
44
  }
60
- function moveFile(oldFilePath, newFilePath, callback) {
61
- var error = null;
45
+ function moveProjectFile(projectsDirectoryPath, pathMap) {
46
+ var sourceEntryPath = pathMap.sourceEntryPath, targetEntryPath = pathMap.targetEntryPath, sourceFilePath = sourceEntryPath, targetFilePath = targetEntryPath, absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath), absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath);
62
47
  try {
63
- moveFileEx(oldFilePath, newFilePath);
64
- } catch (nativeError) {
65
- error = nativeError; ///
66
- }
67
- callback(error);
68
- }
69
- function moveEntries(pathMaps, projectsDirectoryPath, callback) {
70
- var targetEntryPaths = [];
71
- (0, _pathMaps.asynchronousForEach)(pathMaps, function(sourceEntryPath, targetEntryPath, entryDirectory, next, done, index) {
72
- moveEntryOperation(sourceEntryPath, targetEntryPath, entryDirectory, projectsDirectoryPath, function(sourceEntryPath, targetEntryPath) {
73
- targetEntryPaths.push(targetEntryPath);
74
- next();
48
+ var oldFilePath = absoluteSourceFilePath, newFilePath = absoluteTargetFilePath; ///
49
+ moveFile(oldFilePath, newFilePath);
50
+ } catch (error) {
51
+ var sourceEntryPath1 = null;
52
+ Object.assign(pathMap, {
53
+ sourceEntryPath: sourceEntryPath1
75
54
  });
76
- }, function() {
77
- callback(targetEntryPaths);
78
- });
79
- }
80
- function moveFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
81
- var sourceFilePath = sourceEntryPath, targetFilePath = targetEntryPath, absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath), absoluteTargetFilePath = concatenatePaths(projectsDirectoryPath, targetFilePath), targetFileExists = checkEntryExists(absoluteTargetFilePath);
82
- if (targetFileExists) {
83
- targetEntryPath = sourceEntryPath; ///
84
- callback(sourceEntryPath, targetEntryPath);
85
- return;
86
55
  }
87
- var oldFilePath = absoluteSourceFilePath, newFilePath = absoluteTargetFilePath; ///
88
- moveFile(oldFilePath, newFilePath, function(error) {
89
- if (error) {
90
- targetEntryPath = sourceEntryPath; ///
91
- }
92
- callback(sourceEntryPath, targetEntryPath);
93
- });
94
56
  }
95
- function moveDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
96
- var sourceDirectoryPath = sourceEntryPath, targetDirectoryPath = targetEntryPath, absoluteSourceDirectoryPath = concatenatePaths(projectsDirectoryPath, sourceDirectoryPath), sourceDirectoryEmpty = isDirectoryEmpty(absoluteSourceDirectoryPath);
97
- if (!sourceDirectoryEmpty) {
98
- targetEntryPath = sourceEntryPath; ///
99
- callback(sourceEntryPath, targetEntryPath);
100
- return;
101
- }
102
- var absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath), targetDirectoryExists = checkEntryExists(absoluteTargetDirectoryPath);
103
- if (targetDirectoryExists) {
104
- var directoryPath = absoluteSourceDirectoryPath; ///
105
- (0, _removeProjectEntries.removeDirectory)(directoryPath, function(error) {
106
- if (error) {
107
- targetEntryPath = sourceEntryPath; ///
108
- }
109
- callback(sourceEntryPath, targetEntryPath);
57
+ function moveProjectDirectory(projectsDirectoryPath, pathMap) {
58
+ var sourceEntryPath = pathMap.sourceEntryPath, targetEntryPath = pathMap.targetEntryPath, sourceDirectoryPath = sourceEntryPath, targetDirectoryPath = targetEntryPath, absoluteSourceDirectoryPath = concatenatePaths(projectsDirectoryPath, sourceDirectoryPath), absoluteTargetDirectoryPath = concatenatePaths(projectsDirectoryPath, targetDirectoryPath);
59
+ try {
60
+ var oldDirectoryPath = absoluteSourceDirectoryPath, newDirectoryPath = absoluteTargetDirectoryPath; ///
61
+ moveDirectory(oldDirectoryPath, newDirectoryPath);
62
+ } catch (error) {
63
+ var sourceEntryPath1 = null;
64
+ Object.assign(pathMap, {
65
+ sourceEntryPath: sourceEntryPath1
110
66
  });
111
- return;
112
67
  }
113
- var oldDirectoryPath = absoluteSourceDirectoryPath, newDirectoryPath = absoluteTargetDirectoryPath; ///
114
- moveDirectory(oldDirectoryPath, newDirectoryPath, function(error) {
115
- if (error) {
116
- targetEntryPath = sourceEntryPath; ///
117
- }
118
- callback(sourceEntryPath, targetEntryPath);
119
- });
120
68
  }
121
69
 
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tb3ZlUHJvamVjdEVudHJpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHBhdGhVdGlsaXRpZXMsIGZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IGFzeW5jaHJvbm91c0ZvckVhY2ggfSBmcm9tIFwiLi91dGlsaXRpZXMvcGF0aE1hcHNcIjtcbmltcG9ydCB7IHJlbW92ZURpcmVjdG9yeSwgcmVtb3ZlRW50cnlPcGVyYXRpb24gfSBmcm9tIFwiLi9yZW1vdmVQcm9qZWN0RW50cmllc1wiO1xuXG5jb25zdCB7IGNvbmNhdGVuYXRlUGF0aHMgfSA9IHBhdGhVdGlsaXRpZXMsXG4gICAgICB7IGlzRGlyZWN0b3J5RW1wdHksXG4gICAgICAgIGNoZWNrRW50cnlFeGlzdHMsXG4gICAgICAgIG1vdmVGaWxlOiBtb3ZlRmlsZUV4LFxuICAgICAgICBtb3ZlRGlyZWN0b3J5OiBtb3ZlRGlyZWN0b3J5RXggfSA9IGZpbGVTeXN0ZW1VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1vdmVQcm9qZWN0RW50cmllcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGpzb24sIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHsgcGF0aE1hcHMgfSA9IGpzb247XG5cbiAgbW92ZUVudHJpZXMocGF0aE1hcHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgKHRhcmdldEVudHJ5UGF0aHMpID0+IHtcbiAgICBjb25zdCBqc29uID0ge1xuICAgICAgdGFyZ2V0RW50cnlQYXRoc1xuICAgIH07XG5cbiAgICBjYWxsYmFjayhqc29uKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlRW50cnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGlmICh0YXJnZXRFbnRyeVBhdGggPT09IG51bGwpIHtcbiAgICByZW1vdmVFbnRyeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgZW50cnlEaXJlY3RvcnksIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRW50cnlQYXRoKSxcbiAgICAgICAgc291cmNlRW50cnlFeGlzdHMgPSBjaGVja0VudHJ5RXhpc3RzKGFic29sdXRlU291cmNlRW50cnlQYXRoKTtcblxuICBpZiAoIXNvdXJjZUVudHJ5RXhpc3RzKSB7XG4gICAgdGFyZ2V0RW50cnlQYXRoID0gbnVsbDtcblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGVudHJ5RGlyZWN0b3J5ID9cbiAgICBtb3ZlRGlyZWN0b3J5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSA6XG4gICAgICBtb3ZlRmlsZU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlRGlyZWN0b3J5KG9sZERpcmVjdG9yeVBhdGgsIG5ld0RpcmVjdG9yeVBhdGgsIGNhbGxiYWNrKSB7XG4gIGxldCBlcnJvciA9IG51bGw7XG5cbiAgdHJ5IHtcbiAgICBtb3ZlRGlyZWN0b3J5RXgob2xkRGlyZWN0b3J5UGF0aCk7XG4gIH0gY2F0Y2ggKG5hdGl2ZUVycm9yKSB7XG4gICAgZXJyb3IgPSBuYXRpdmVFcnJvcjsgIC8vL1xuICB9XG5cbiAgY2FsbGJhY2soZXJyb3IpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW92ZUZpbGUob2xkRmlsZVBhdGgsIG5ld0ZpbGVQYXRoLCBjYWxsYmFjaykge1xuICBsZXQgZXJyb3IgPSBudWxsO1xuXG4gIHRyeSB7XG4gICAgbW92ZUZpbGVFeChvbGRGaWxlUGF0aCwgbmV3RmlsZVBhdGgpO1xuICB9IGNhdGNoIChuYXRpdmVFcnJvcikge1xuICAgIGVycm9yID0gbmF0aXZlRXJyb3I7ICAvLy9cbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9yKTtcbn1cblxuZnVuY3Rpb24gbW92ZUVudHJpZXMocGF0aE1hcHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgY29uc3QgdGFyZ2V0RW50cnlQYXRocyA9IFtdO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goXG4gICAgcGF0aE1hcHMsXG4gICAgKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBlbnRyeURpcmVjdG9yeSwgbmV4dCwgZG9uZSwgaW5kZXgpID0+IHtcbiAgICAgIG1vdmVFbnRyeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgZW50cnlEaXJlY3RvcnksIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKSA9PiB7XG4gICAgICAgIHRhcmdldEVudHJ5UGF0aHMucHVzaCh0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgKCkgPT4ge1xuICAgICAgY2FsbGJhY2sodGFyZ2V0RW50cnlQYXRocyk7XG4gICAgfVxuICApO1xufVxuXG5mdW5jdGlvbiBtb3ZlRmlsZU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCBzb3VyY2VGaWxlUGF0aCA9IHNvdXJjZUVudHJ5UGF0aCwgLy8vXG4gICAgICAgIHRhcmdldEZpbGVQYXRoID0gdGFyZ2V0RW50cnlQYXRoLCAvLy9cbiAgICAgICAgYWJzb2x1dGVTb3VyY2VGaWxlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VGaWxlUGF0aCksXG4gICAgICAgIGFic29sdXRlVGFyZ2V0RmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdGFyZ2V0RmlsZVBhdGgpLFxuICAgICAgICB0YXJnZXRGaWxlRXhpc3RzID0gY2hlY2tFbnRyeUV4aXN0cyhhYnNvbHV0ZVRhcmdldEZpbGVQYXRoKTtcblxuICBpZiAodGFyZ2V0RmlsZUV4aXN0cykge1xuICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgb2xkRmlsZVBhdGggPSBhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoLCAvLy9cbiAgICAgICAgbmV3RmlsZVBhdGggPSBhYnNvbHV0ZVRhcmdldEZpbGVQYXRoOyAvLy9cblxuICBtb3ZlRmlsZShvbGRGaWxlUGF0aCwgbmV3RmlsZVBhdGgsIChlcnJvcikgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgdGFyZ2V0RW50cnlQYXRoID0gc291cmNlRW50cnlQYXRoOyAgLy8vXG4gICAgfVxuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbW92ZURpcmVjdG9yeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCBzb3VyY2VEaXJlY3RvcnlQYXRoID0gc291cmNlRW50cnlQYXRoLCAgLy8vXG4gICAgICAgIHRhcmdldERpcmVjdG9yeVBhdGggPSB0YXJnZXRFbnRyeVBhdGgsICAvLy9cbiAgICAgICAgYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZURpcmVjdG9yeVBhdGgpLFxuICAgICAgICBzb3VyY2VEaXJlY3RvcnlFbXB0eSA9IGlzRGlyZWN0b3J5RW1wdHkoYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoKTtcblxuICBpZiAoIXNvdXJjZURpcmVjdG9yeUVtcHR5KSB7XG4gICAgdGFyZ2V0RW50cnlQYXRoID0gc291cmNlRW50cnlQYXRoOyAgLy8vXG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdGFyZ2V0RGlyZWN0b3J5UGF0aCksXG4gICAgICAgIHRhcmdldERpcmVjdG9yeUV4aXN0cyA9IGNoZWNrRW50cnlFeGlzdHMoYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoKTtcblxuICBpZiAodGFyZ2V0RGlyZWN0b3J5RXhpc3RzKSB7XG4gICAgY29uc3QgZGlyZWN0b3J5UGF0aCA9IGFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aDsgIC8vL1xuXG4gICAgcmVtb3ZlRGlyZWN0b3J5KGRpcmVjdG9yeVBhdGgsIChlcnJvcikgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgICAgfVxuXG4gICAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBvbGREaXJlY3RvcnlQYXRoID0gYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoLCAvLy9cbiAgICAgICAgbmV3RGlyZWN0b3J5UGF0aCA9IGFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aDsgLy8vXG5cbiAgbW92ZURpcmVjdG9yeShvbGREaXJlY3RvcnlQYXRoLCBuZXdEaXJlY3RvcnlQYXRoLCAoZXJyb3IpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsibW92ZVByb2plY3RFbnRyaWVzIiwibW92ZURpcmVjdG9yeSIsIm1vdmVFbnRyeU9wZXJhdGlvbiIsIm1vdmVGaWxlIiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJpc0RpcmVjdG9yeUVtcHR5IiwiZmlsZVN5c3RlbVV0aWxpdGllcyIsImNoZWNrRW50cnlFeGlzdHMiLCJtb3ZlRmlsZUV4IiwibW92ZURpcmVjdG9yeUV4IiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwianNvbiIsImNhbGxiYWNrIiwicGF0aE1hcHMiLCJtb3ZlRW50cmllcyIsInRhcmdldEVudHJ5UGF0aHMiLCJzb3VyY2VFbnRyeVBhdGgiLCJ0YXJnZXRFbnRyeVBhdGgiLCJlbnRyeURpcmVjdG9yeSIsInJlbW92ZUVudHJ5T3BlcmF0aW9uIiwiYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGgiLCJzb3VyY2VFbnRyeUV4aXN0cyIsIm1vdmVEaXJlY3RvcnlPcGVyYXRpb24iLCJtb3ZlRmlsZU9wZXJhdGlvbiIsIm9sZERpcmVjdG9yeVBhdGgiLCJuZXdEaXJlY3RvcnlQYXRoIiwiZXJyb3IiLCJuYXRpdmVFcnJvciIsIm9sZEZpbGVQYXRoIiwibmV3RmlsZVBhdGgiLCJhc3luY2hyb25vdXNGb3JFYWNoIiwibmV4dCIsImRvbmUiLCJpbmRleCIsInB1c2giLCJzb3VyY2VGaWxlUGF0aCIsInRhcmdldEZpbGVQYXRoIiwiYWJzb2x1dGVTb3VyY2VGaWxlUGF0aCIsImFic29sdXRlVGFyZ2V0RmlsZVBhdGgiLCJ0YXJnZXRGaWxlRXhpc3RzIiwic291cmNlRGlyZWN0b3J5UGF0aCIsInRhcmdldERpcmVjdG9yeVBhdGgiLCJhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgiLCJzb3VyY2VEaXJlY3RvcnlFbXB0eSIsImFic29sdXRlVGFyZ2V0RGlyZWN0b3J5UGF0aCIsInRhcmdldERpcmVjdG9yeUV4aXN0cyIsImRpcmVjdG9yeVBhdGgiLCJyZW1vdmVEaXJlY3RvcnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQWFBLE9BVUM7ZUFWdUJBOztJQW1DUkMsYUFBYTtlQUFiQTs7SUF2QkFDLGtCQUFrQjtlQUFsQkE7O0lBbUNBQyxRQUFRO2VBQVJBOzs7eUJBMURtQzt3QkFFZjtvQ0FDa0I7QUFFdEQsSUFBTSxBQUFFQyxtQkFBcUJDLHdCQUFhLENBQWxDRCxrQkFDQUUsbUJBR21DQyw4QkFBbUIsQ0FIdERELGtCQUNBRSxtQkFFbUNELDhCQUFtQixDQUZ0REMsa0JBQ0FMLEFBQVVNLGFBQ3lCRiw4QkFBbUIsQ0FEdERKLFVBQ0FGLEFBQWVTLGtCQUFvQkgsOEJBQW1CLENBQXRETjtBQUVPLFNBQVNELG1CQUFtQlcscUJBQXFCLEVBQUVDLElBQUksRUFBRUMsUUFBUTtJQUM5RSxJQUFNLEFBQUVDLFdBQWFGLEtBQWJFO0lBRVJDLFlBQVlELFVBQVVILHVCQUF1QixTQUFDSztRQUM1QyxJQUFNSixTQUFPO1lBQ1hJLGtCQUFBQTtRQUNGO1FBRUFILFNBQVNEO0lBQ1g7QUFDRjtBQUVPLFNBQVNWLG1CQUFtQmUsZUFBZSxFQUFFQyxlQUFlLEVBQUVDLGNBQWMsRUFBRVIscUJBQXFCLEVBQUVFLFFBQVE7SUFDbEgsSUFBSUssb0JBQW9CLE1BQU07UUFDNUJFLElBQUFBLDBDQUFvQixFQUFDSCxpQkFBaUJDLGlCQUFpQkMsZ0JBQWdCUix1QkFBdUJFO1FBRTlG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
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tb3ZlUHJvamVjdEVudHJpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHBhdGhVdGlsaXRpZXMsIGZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IHJlbW92ZVByb2plY3RFbnRyeSB9IGZyb20gXCIuL3JlbW92ZVByb2plY3RFbnRyaWVzXCI7XG5cbmNvbnN0IHsgY29uY2F0ZW5hdGVQYXRocyB9ID0gcGF0aFV0aWxpdGllcyxcbiAgICAgIHsgbW92ZUZpbGU6IG1vdmVGaWxlLCBtb3ZlRGlyZWN0b3J5OiBtb3ZlRGlyZWN0b3J5IH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtb3ZlUHJvamVjdEVudHJpZXMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBqc29uLCBjYWxsYmFjaykge1xuICBjb25zdCB7IHBhdGhNYXBzIH0gPSBqc29uO1xuXG4gIHBhdGhNYXBzLmZvckVhY2goKHBhdGhNYXApID0+IHtcbiAgICBtb3ZlUHJvamVjdEVudHJ5KHBhdGhNYXApO1xuICB9KTtcblxuICBqc29uID0ge1xuICAgIHBhdGhNYXBzXG4gIH07XG5cbiAgY2FsbGJhY2soanNvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlUHJvamVjdEVudHJ5KHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCkge1xuICBjb25zdCB7IHNvdXJjZVBhdGggfSA9IHBhdGhNYXA7XG5cbiAgaWYgKHNvdXJjZVBhdGggPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IHRhcmdldFBhdGggfSA9IHBhdGhNYXA7XG5cbiAgaWYgKHRhcmdldFBhdGggPT09IG51bGwpIHtcbiAgICByZW1vdmVQcm9qZWN0RW50cnkocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHsgZW50cnlEaXJlY3RvcnkgfSA9IHBhdGhNYXA7XG5cbiAgZW50cnlEaXJlY3RvcnkgP1xuICAgIG1vdmVQcm9qZWN0RGlyZWN0b3J5KHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCkgOlxuICAgICAgbW92ZVByb2plY3RGaWxlKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCk7XG59XG5cbmZ1bmN0aW9uIG1vdmVQcm9qZWN0RmlsZShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXApIHtcbiAgY29uc3QgeyBzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCB9ID0gcGF0aE1hcCxcbiAgICAgICAgc291cmNlRmlsZVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsIC8vL1xuICAgICAgICB0YXJnZXRGaWxlUGF0aCA9IHRhcmdldEVudHJ5UGF0aCwgLy8vXG4gICAgICAgIGFic29sdXRlU291cmNlRmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRmlsZVBhdGgpLFxuICAgICAgICBhYnNvbHV0ZVRhcmdldEZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRhcmdldEZpbGVQYXRoKTtcblxuICB0cnkge1xuICAgIGNvbnN0IG9sZEZpbGVQYXRoID0gYWJzb2x1dGVTb3VyY2VGaWxlUGF0aCwgLy8vXG4gICAgICAgICAgbmV3RmlsZVBhdGggPSBhYnNvbHV0ZVRhcmdldEZpbGVQYXRoOyAvLy9cblxuICAgIG1vdmVGaWxlKG9sZEZpbGVQYXRoLCBuZXdGaWxlUGF0aCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3Qgc291cmNlRW50cnlQYXRoID0gbnVsbDtcblxuICAgIE9iamVjdC5hc3NpZ24ocGF0aE1hcCwge1xuICAgICAgc291cmNlRW50cnlQYXRoXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbW92ZVByb2plY3REaXJlY3RvcnkocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoTWFwKSB7XG4gIGNvbnN0IHsgc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGggfSA9IHBhdGhNYXAsXG4gICAgICAgIHNvdXJjZURpcmVjdG9yeVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsIC8vL1xuICAgICAgICB0YXJnZXREaXJlY3RvcnlQYXRoID0gdGFyZ2V0RW50cnlQYXRoLCAvLy9cbiAgICAgICAgYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZURpcmVjdG9yeVBhdGgpLFxuICAgICAgICBhYnNvbHV0ZVRhcmdldERpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdGFyZ2V0RGlyZWN0b3J5UGF0aCk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBvbGREaXJlY3RvcnlQYXRoID0gYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoLCAvLy9cbiAgICAgICAgICBuZXdEaXJlY3RvcnlQYXRoID0gYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoOyAvLy9cblxuICAgIG1vdmVEaXJlY3Rvcnkob2xkRGlyZWN0b3J5UGF0aCwgbmV3RGlyZWN0b3J5UGF0aCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3Qgc291cmNlRW50cnlQYXRoID0gbnVsbDtcblxuICAgIE9iamVjdC5hc3NpZ24ocGF0aE1hcCwge1xuICAgICAgc291cmNlRW50cnlQYXRoXG4gICAgfSk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJtb3ZlUHJvamVjdEVudHJpZXMiLCJtb3ZlUHJvamVjdEVudHJ5IiwiY29uY2F0ZW5hdGVQYXRocyIsInBhdGhVdGlsaXRpZXMiLCJtb3ZlRmlsZSIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJtb3ZlRGlyZWN0b3J5IiwicHJvamVjdHNEaXJlY3RvcnlQYXRoIiwianNvbiIsImNhbGxiYWNrIiwicGF0aE1hcHMiLCJmb3JFYWNoIiwicGF0aE1hcCIsInNvdXJjZVBhdGgiLCJ0YXJnZXRQYXRoIiwicmVtb3ZlUHJvamVjdEVudHJ5IiwiZW50cnlEaXJlY3RvcnkiLCJtb3ZlUHJvamVjdERpcmVjdG9yeSIsIm1vdmVQcm9qZWN0RmlsZSIsInNvdXJjZUVudHJ5UGF0aCIsInRhcmdldEVudHJ5UGF0aCIsInNvdXJjZUZpbGVQYXRoIiwidGFyZ2V0RmlsZVBhdGgiLCJhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoIiwiYWJzb2x1dGVUYXJnZXRGaWxlUGF0aCIsIm9sZEZpbGVQYXRoIiwibmV3RmlsZVBhdGgiLCJlcnJvciIsIk9iamVjdCIsImFzc2lnbiIsInNvdXJjZURpcmVjdG9yeVBhdGgiLCJ0YXJnZXREaXJlY3RvcnlQYXRoIiwiYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoIiwiYWJzb2x1dGVUYXJnZXREaXJlY3RvcnlQYXRoIiwib2xkRGlyZWN0b3J5UGF0aCIsIm5ld0RpcmVjdG9yeVBhdGgiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVNBLE9BWUM7ZUFadUJBOztJQWNSQyxnQkFBZ0I7ZUFBaEJBOzs7eUJBckJtQztvQ0FFaEI7QUFFbkMsSUFBTSxBQUFFQyxtQkFBcUJDLHdCQUFhLENBQWxDRCxrQkFDQUUsQUFBVUEsV0FBMkNDLDhCQUFtQixDQUF4RUQsVUFBb0JFLEFBQWVBLGdCQUFrQkQsOEJBQW1CLENBQXBEQztBQUViLFNBQVNOLG1CQUFtQk8scUJBQXFCLEVBQUVDLElBQUksRUFBRUMsUUFBUTtJQUM5RSxJQUFNLEFBQUVDLFdBQWFGLEtBQWJFO0lBRVJBLFNBQVNDLE9BQU8sQ0FBQyxTQUFDQztRQUNoQlgsaUJBQWlCVztJQUNuQjtJQUVBSixPQUFPO1FBQ0xFLFVBQUFBO0lBQ0Y7SUFFQUQsU0FBU0Q7QUFDWDtBQUVPLFNBQVNQLGlCQUFpQk0scUJBQXFCLEVBQUVLLE9BQU87SUFDN0QsSUFBTSxBQUFFQyxhQUFlRCxRQUFmQztJQUVSLElBQUlBLGVBQWUsTUFBTTtRQUN2QjtJQUNGO0lBRUEsSUFBTSxBQUFFQyxhQUFlRixRQUFmRTtJQUVSLElBQUlBLGVBQWUsTUFBTTtRQUN2QkMsSUFBQUEsd0NBQWtCLEVBQUNSLHVCQUF1Qks7UUFFMUM7SUFDRjtJQUVBLElBQU0sQUFBRUksaUJBQW1CSixRQUFuQkk7SUFFUkEsaUJBQ0VDLHFCQUFxQlYsdUJBQXVCSyxXQUMxQ00sZ0JBQWdCWCx1QkFBdUJLO0FBQzdDO0FBRUEsU0FBU00sZ0JBQWdCWCxxQkFBcUIsRUFBRUssT0FBTztJQUNyRCxJQUFRTyxrQkFBcUNQLFFBQXJDTyxpQkFBaUJDLGtCQUFvQlIsUUFBcEJRLGlCQUNuQkMsaUJBQWlCRixpQkFDakJHLGlCQUFpQkYsaUJBQ2pCRyx5QkFBeUJyQixpQkFBaUJLLHVCQUF1QmMsaUJBQ2pFRyx5QkFBeUJ0QixpQkFBaUJLLHVCQUF1QmU7SUFFdkUsSUFBSTtRQUNGLElBQU1HLGNBQWNGLHdCQUNkRyxjQUFjRix3QkFBd0IsR0FBRztRQUUvQ3BCLFNBQVNxQixhQUFhQztJQUN4QixFQUFFLE9BQU9DLE9BQU87UUFDZCxJQUFNUixtQkFBa0I7UUFFeEJTLE9BQU9DLE1BQU0sQ0FBQ2pCLFNBQVM7WUFDckJPLGlCQUFBQTtRQUNGO0lBQ0Y7QUFDRjtBQUVBLFNBQVNGLHFCQUFxQlYscUJBQXFCLEVBQUVLLE9BQU87SUFDMUQsSUFBUU8sa0JBQXFDUCxRQUFyQ08saUJBQWlCQyxrQkFBb0JSLFFBQXBCUSxpQkFDbkJVLHNCQUFzQlgsaUJBQ3RCWSxzQkFBc0JYLGlCQUN0QlksOEJBQThCOUIsaUJBQWlCSyx1QkFBdUJ1QixzQkFDdEVHLDhCQUE4Qi9CLGlCQUFpQkssdUJBQXVCd0I7SUFFNUUsSUFBSTtRQUNGLElBQU1HLG1CQUFtQkYsNkJBQ25CRyxtQkFBbUJGLDZCQUE2QixHQUFHO1FBRXpEM0IsY0FBYzRCLGtCQUFrQkM7SUFDbEMsRUFBRSxPQUFPUixPQUFPO1FBQ2QsSUFBTVIsbUJBQWtCO1FBRXhCUyxPQUFPQyxNQUFNLENBQUNqQixTQUFTO1lBQ3JCTyxpQkFBQUE7UUFDRjtJQUNGO0FBQ0YifQ==
@@ -12,89 +12,53 @@ _export(exports, {
12
12
  default: function() {
13
13
  return removeProjectEntries;
14
14
  },
15
- removeDirectory: function() {
16
- return removeDirectory;
17
- },
18
- removeEntryOperation: function() {
19
- return removeEntryOperation;
20
- },
21
- removeFile: function() {
22
- return removeFile;
15
+ removeProjectEntry: function() {
16
+ return removeProjectEntry;
23
17
  }
24
18
  });
25
19
  var _necessary = require("necessary");
26
- var _pathMaps = require("./utilities/pathMaps");
27
- var concatenatePaths = _necessary.pathUtilities.concatenatePaths, isDirectoryEmpty = _necessary.fileSystemUtilities.isDirectoryEmpty, checkEntryExists = _necessary.fileSystemUtilities.checkEntryExists, removeFileEx = _necessary.fileSystemUtilities.removeEntry, removeDirectoryEx = _necessary.fileSystemUtilities.removeEntry;
20
+ var concatenatePaths = _necessary.pathUtilities.concatenatePaths, removeFile = _necessary.fileSystemUtilities.removeEntry, removeDirectory = _necessary.fileSystemUtilities.removeEntry;
28
21
  function removeProjectEntries(projectsDirectoryPath, json, callback) {
29
22
  var pathMaps = json.pathMaps;
30
- removeEntries(pathMaps, projectsDirectoryPath, function(targetEntryPaths) {
31
- var _$json = {
32
- targetEntryPaths: targetEntryPaths
33
- };
34
- callback(_$json);
23
+ pathMaps.forEach(function(pathMap) {
24
+ removeProjectEntry(pathMap);
35
25
  });
26
+ json = {
27
+ pathMaps: pathMaps
28
+ };
29
+ callback(json);
36
30
  }
37
- function removeEntryOperation(sourceEntryPath, targetEntryPath, entryDirectory, projectsDirectoryPath, callback) {
38
- var absoluteSourceEntryPath = concatenatePaths(projectsDirectoryPath, sourceEntryPath), sourceEntryExists = checkEntryExists(absoluteSourceEntryPath);
39
- if (!sourceEntryExists) {
40
- targetEntryPath = null;
41
- callback(sourceEntryPath, targetEntryPath);
31
+ function removeProjectEntry(projectsDirectoryPath, pathMap) {
32
+ var sourcePath = pathMap.sourcePath;
33
+ if (sourcePath === null) {
42
34
  return;
43
35
  }
44
- entryDirectory ? removeDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) : removeFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback);
36
+ var entryDirectory = pathMap.entryDirectory;
37
+ entryDirectory ? removeProjectDirectory(projectsDirectoryPath, pathMap) : removeProjectFile(projectsDirectoryPath, pathMap);
45
38
  }
46
- function removeDirectory(directoryPath, callback) {
47
- var error = null;
39
+ function removeProjectFile(projectsDirectoryPath, pathMap) {
40
+ var sourceEntryPath = pathMap.sourceEntryPath, sourceFilePath = sourceEntryPath, absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath);
48
41
  try {
49
- removeDirectoryEx(directoryPath);
50
- } catch (nativeError) {
51
- error = nativeError; ///
42
+ var filePath = absoluteSourceFilePath; ///
43
+ removeFile(filePath);
44
+ } catch (error) {
45
+ var sourceEntryPath1 = null;
46
+ Object.assign(pathMap, {
47
+ sourceEntryPath: sourceEntryPath1
48
+ });
52
49
  }
53
- callback(error);
54
50
  }
55
- function removeFile(filePath, callback) {
56
- var error = null;
51
+ function removeProjectDirectory(projectsDirectoryPath, pathMap) {
52
+ var sourceEntryPath = pathMap.sourceEntryPath, sourceDirectoryPath = sourceEntryPath, absoluteSourceDirectoryPath = concatenatePaths(projectsDirectoryPath, sourceDirectoryPath);
57
53
  try {
58
- removeFileEx(filePath);
59
- } catch (nativeError) {
60
- error = nativeError; ///
61
- }
62
- callback(error);
63
- }
64
- function removeEntries(pathMaps, projectsDirectoryPath, callback) {
65
- var targetEntryPaths = [];
66
- (0, _pathMaps.asynchronousForEach)(pathMaps, function(sourceEntryPath, targetEntryPath, entryDirectory, next, done, index) {
67
- removeEntryOperation(sourceEntryPath, targetEntryPath, entryDirectory, projectsDirectoryPath, function(sourceEntryPath, targetEntryPath) {
68
- targetEntryPaths.push(targetEntryPath);
69
- next();
54
+ var directoryPath = absoluteSourceDirectoryPath; ///
55
+ removeDirectory(directoryPath);
56
+ } catch (error) {
57
+ var sourceEntryPath1 = null;
58
+ Object.assign(pathMap, {
59
+ sourceEntryPath: sourceEntryPath1
70
60
  });
71
- }, function() {
72
- callback(targetEntryPaths);
73
- });
74
- }
75
- function removeFileOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
76
- var sourceFilePath = sourceEntryPath, absoluteSourceFilePath = concatenatePaths(projectsDirectoryPath, sourceFilePath), entryPath = absoluteSourceFilePath; ///
77
- removeFile(entryPath, function(error) {
78
- if (error) {
79
- targetEntryPath = sourceEntryPath; ///
80
- }
81
- callback(sourceEntryPath, targetEntryPath);
82
- });
83
- }
84
- function removeDirectoryOperation(sourceEntryPath, targetEntryPath, projectsDirectoryPath, callback) {
85
- var sourceDirectoryPath = sourceEntryPath, absoluteSourceDirectoryPath = concatenatePaths(projectsDirectoryPath, sourceDirectoryPath), sourceDirectoryEmpty = isDirectoryEmpty(absoluteSourceDirectoryPath);
86
- if (!sourceDirectoryEmpty) {
87
- targetEntryPath = sourceEntryPath; ///
88
- callback(sourceEntryPath, targetEntryPath);
89
- return;
90
61
  }
91
- var directoryPath = absoluteSourceDirectoryPath; ///
92
- removeDirectory(directoryPath, function(error) {
93
- if (error) {
94
- targetEntryPath = sourceEntryPath; ///
95
- }
96
- callback(sourceEntryPath, targetEntryPath);
97
- });
98
62
  }
99
63
 
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW1vdmVQcm9qZWN0RW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgYXN5bmNocm9ub3VzRm9yRWFjaCB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoTWFwc1wiO1xuXG5cbmNvbnN0IHsgY29uY2F0ZW5hdGVQYXRocyB9ID0gcGF0aFV0aWxpdGllcyxcbiAgICAgIHsgaXNEaXJlY3RvcnlFbXB0eSxcbiAgICAgICAgY2hlY2tFbnRyeUV4aXN0cyxcbiAgICAgICAgcmVtb3ZlRW50cnk6IHJlbW92ZUZpbGVFeCxcbiAgICAgICAgcmVtb3ZlRW50cnk6IHJlbW92ZURpcmVjdG9yeUV4IH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZW1vdmVQcm9qZWN0RW50cmllcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGpzb24sIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHsgcGF0aE1hcHMgfSA9IGpzb247XG5cbiAgcmVtb3ZlRW50cmllcyhwYXRoTWFwcywgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCAodGFyZ2V0RW50cnlQYXRocykgPT4ge1xuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICB0YXJnZXRFbnRyeVBhdGhzXG4gICAgfTtcblxuICAgIGNhbGxiYWNrKGpzb24pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUVudHJ5T3BlcmF0aW9uKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoLCBlbnRyeURpcmVjdG9yeSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuXG5cblxuXG5cblxuICBjb25zdCBhYnNvbHV0ZVNvdXJjZUVudHJ5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VFbnRyeVBhdGgpLFxuICAgICAgICBzb3VyY2VFbnRyeUV4aXN0cyA9IGNoZWNrRW50cnlFeGlzdHMoYWJzb2x1dGVTb3VyY2VFbnRyeVBhdGgpO1xuXG4gIGlmICghc291cmNlRW50cnlFeGlzdHMpIHtcbiAgICB0YXJnZXRFbnRyeVBhdGggPSBudWxsO1xuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZW50cnlEaXJlY3RvcnkgP1xuICAgIHJlbW92ZURpcmVjdG9yeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykgOlxuICAgICAgcmVtb3ZlRmlsZU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVEaXJlY3RvcnkoZGlyZWN0b3J5UGF0aCwgY2FsbGJhY2spIHtcbiAgbGV0IGVycm9yID0gbnVsbDtcblxuICB0cnkge1xuICAgIHJlbW92ZURpcmVjdG9yeUV4KGRpcmVjdG9yeVBhdGgpO1xuICB9IGNhdGNoIChuYXRpdmVFcnJvcikge1xuICAgIGVycm9yID0gbmF0aXZlRXJyb3I7ICAvLy9cbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUZpbGUoZmlsZVBhdGgsIGNhbGxiYWNrKSB7XG4gIGxldCBlcnJvciA9IG51bGw7XG5cbiAgdHJ5IHtcbiAgICByZW1vdmVGaWxlRXgoZmlsZVBhdGgpO1xuICB9IGNhdGNoIChuYXRpdmVFcnJvcikge1xuICAgIGVycm9yID0gbmF0aXZlRXJyb3I7ICAvLy9cbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9yKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlRW50cmllcyhwYXRoTWFwcywgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCB0YXJnZXRFbnRyeVBhdGhzID0gW107XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChcbiAgICBwYXRoTWFwcyxcbiAgICAoc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBuZXh0LCBkb25lLCBpbmRleCkgPT4ge1xuICAgICAgcmVtb3ZlRW50cnlPcGVyYXRpb24oc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgsIGVudHJ5RGlyZWN0b3J5LCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIChzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCkgPT4ge1xuICAgICAgICB0YXJnZXRFbnRyeVBhdGhzLnB1c2godGFyZ2V0RW50cnlQYXRoKTtcblxuICAgICAgICBuZXh0KCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgICgpID0+IHtcbiAgICAgIGNhbGxiYWNrKHRhcmdldEVudHJ5UGF0aHMpO1xuICAgIH1cbiAgKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlRmlsZU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCBzb3VyY2VGaWxlUGF0aCA9IHNvdXJjZUVudHJ5UGF0aCwgLy8vXG5cbiAgICAgICAgYWJzb2x1dGVTb3VyY2VGaWxlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzb3VyY2VGaWxlUGF0aCksXG5cblxuXG5cblxuXG5cblxuXG5cblxuICAgICAgICBlbnRyeVBhdGggPSBhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoOyAvLy9cblxuXG4gIHJlbW92ZUZpbGUoZW50cnlQYXRoLCAoZXJyb3IpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRhcmdldEVudHJ5UGF0aCA9IHNvdXJjZUVudHJ5UGF0aDsgIC8vL1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHNvdXJjZUVudHJ5UGF0aCwgdGFyZ2V0RW50cnlQYXRoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZURpcmVjdG9yeU9wZXJhdGlvbihzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBjYWxsYmFjaykge1xuICBjb25zdCBzb3VyY2VEaXJlY3RvcnlQYXRoID0gc291cmNlRW50cnlQYXRoLCAgLy8vXG5cbiAgICAgICAgYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZURpcmVjdG9yeVBhdGgpLFxuICAgICAgICBzb3VyY2VEaXJlY3RvcnlFbXB0eSA9IGlzRGlyZWN0b3J5RW1wdHkoYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoKTtcblxuICBpZiAoIXNvdXJjZURpcmVjdG9yeUVtcHR5KSB7XG4gICAgdGFyZ2V0RW50cnlQYXRoID0gc291cmNlRW50cnlQYXRoOyAgLy8vXG5cbiAgICBjYWxsYmFjayhzb3VyY2VFbnRyeVBhdGgsIHRhcmdldEVudHJ5UGF0aCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICBjb25zdCBkaXJlY3RvcnlQYXRoID0gYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoOyAgLy8vXG5cbiAgcmVtb3ZlRGlyZWN0b3J5KGRpcmVjdG9yeVBhdGgsIChlcnJvcikgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgdGFyZ2V0RW50cnlQYXRoID0gc291cmNlRW50cnlQYXRoOyAgLy8vXG4gICAgfVxuXG4gICAgY2FsbGJhY2soc291cmNlRW50cnlQYXRoLCB0YXJnZXRFbnRyeVBhdGgpO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJyZW1vdmVQcm9qZWN0RW50cmllcyIsInJlbW92ZURpcmVjdG9yeSIsInJlbW92ZUVudHJ5T3BlcmF0aW9uIiwicmVtb3ZlRmlsZSIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwiaXNEaXJlY3RvcnlFbXB0eSIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJjaGVja0VudHJ5RXhpc3RzIiwicmVtb3ZlRW50cnkiLCJyZW1vdmVGaWxlRXgiLCJyZW1vdmVEaXJlY3RvcnlFeCIsInByb2plY3RzRGlyZWN0b3J5UGF0aCIsImpzb24iLCJjYWxsYmFjayIsInBhdGhNYXBzIiwicmVtb3ZlRW50cmllcyIsInRhcmdldEVudHJ5UGF0aHMiLCJzb3VyY2VFbnRyeVBhdGgiLCJ0YXJnZXRFbnRyeVBhdGgiLCJlbnRyeURpcmVjdG9yeSIsImFic29sdXRlU291cmNlRW50cnlQYXRoIiwic291cmNlRW50cnlFeGlzdHMiLCJyZW1vdmVEaXJlY3RvcnlPcGVyYXRpb24iLCJyZW1vdmVGaWxlT3BlcmF0aW9uIiwiZGlyZWN0b3J5UGF0aCIsImVycm9yIiwibmF0aXZlRXJyb3IiLCJmaWxlUGF0aCIsImFzeW5jaHJvbm91c0ZvckVhY2giLCJuZXh0IiwiZG9uZSIsImluZGV4IiwicHVzaCIsInNvdXJjZUZpbGVQYXRoIiwiYWJzb2x1dGVTb3VyY2VGaWxlUGF0aCIsImVudHJ5UGF0aCIsInNvdXJjZURpcmVjdG9yeVBhdGgiLCJhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGgiLCJzb3VyY2VEaXJlY3RvcnlFbXB0eSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBYUEsT0FVQztlQVZ1QkE7O0lBbUNSQyxlQUFlO2VBQWZBOztJQXZCQUMsb0JBQW9CO2VBQXBCQTs7SUFtQ0FDLFVBQVU7ZUFBVkE7Ozt5QkExRG1DO3dCQUVmO0FBR3BDLElBQU0sQUFBRUMsbUJBQXFCQyx3QkFBYSxDQUFsQ0Qsa0JBQ0FFLG1CQUdtQ0MsOEJBQW1CLENBSHRERCxrQkFDQUUsbUJBRW1DRCw4QkFBbUIsQ0FGdERDLGtCQUNBQyxBQUFhQyxlQUNzQkgsOEJBQW1C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
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW1vdmVQcm9qZWN0RW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGF0aFV0aWxpdGllcywgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBjb25jYXRlbmF0ZVBhdGhzIH0gPSBwYXRoVXRpbGl0aWVzLFxuICAgICAgeyByZW1vdmVFbnRyeTogcmVtb3ZlRmlsZSwgcmVtb3ZlRW50cnk6IHJlbW92ZURpcmVjdG9yeSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVtb3ZlUHJvamVjdEVudHJpZXMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBqc29uLCBjYWxsYmFjaykge1xuICBjb25zdCB7IHBhdGhNYXBzIH0gPSBqc29uO1xuXG4gIHBhdGhNYXBzLmZvckVhY2goKHBhdGhNYXApID0+IHtcbiAgICByZW1vdmVQcm9qZWN0RW50cnkocGF0aE1hcCk7XG4gIH0pO1xuXG4gIGpzb24gPSB7XG4gICAgcGF0aE1hcHNcbiAgfTtcblxuICBjYWxsYmFjayhqc29uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVByb2plY3RFbnRyeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXApIHtcbiAgY29uc3QgeyBzb3VyY2VQYXRoIH0gPSBwYXRoTWFwO1xuXG4gIGlmIChzb3VyY2VQYXRoID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyBlbnRyeURpcmVjdG9yeSB9ID0gcGF0aE1hcDtcblxuICBlbnRyeURpcmVjdG9yeSA/XG4gICAgcmVtb3ZlUHJvamVjdERpcmVjdG9yeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXApIDpcbiAgICAgIHJlbW92ZVByb2plY3RGaWxlKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVByb2plY3RGaWxlKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aE1hcCkge1xuICBjb25zdCB7IHNvdXJjZUVudHJ5UGF0aCB9ID0gcGF0aE1hcCxcbiAgICAgICAgc291cmNlRmlsZVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsIC8vL1xuICAgICAgICBhYnNvbHV0ZVNvdXJjZUZpbGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHNvdXJjZUZpbGVQYXRoKTtcblxuICB0cnkge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gYWJzb2x1dGVTb3VyY2VGaWxlUGF0aDsgIC8vL1xuXG4gICAgcmVtb3ZlRmlsZShmaWxlUGF0aCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3Qgc291cmNlRW50cnlQYXRoID0gbnVsbDtcblxuICAgIE9iamVjdC5hc3NpZ24ocGF0aE1hcCwge1xuICAgICAgc291cmNlRW50cnlQYXRoXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVtb3ZlUHJvamVjdERpcmVjdG9yeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGhNYXApIHtcbiAgY29uc3QgeyBzb3VyY2VFbnRyeVBhdGggfSA9IHBhdGhNYXAsXG4gICAgICAgIHNvdXJjZURpcmVjdG9yeVBhdGggPSBzb3VyY2VFbnRyeVBhdGgsIC8vL1xuICAgICAgICBhYnNvbHV0ZVNvdXJjZURpcmVjdG9yeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc291cmNlRGlyZWN0b3J5UGF0aCk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBkaXJlY3RvcnlQYXRoID0gYWJzb2x1dGVTb3VyY2VEaXJlY3RvcnlQYXRoOyAgLy8vXG5cbiAgICByZW1vdmVEaXJlY3RvcnkoZGlyZWN0b3J5UGF0aCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3Qgc291cmNlRW50cnlQYXRoID0gbnVsbDtcblxuICAgIE9iamVjdC5hc3NpZ24ocGF0aE1hcCwge1xuICAgICAgc291cmNlRW50cnlQYXRoXG4gICAgfSk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJyZW1vdmVQcm9qZWN0RW50cmllcyIsInJlbW92ZVByb2plY3RFbnRyeSIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwicmVtb3ZlRW50cnkiLCJyZW1vdmVGaWxlIiwiZmlsZVN5c3RlbVV0aWxpdGllcyIsInJlbW92ZURpcmVjdG9yeSIsInByb2plY3RzRGlyZWN0b3J5UGF0aCIsImpzb24iLCJjYWxsYmFjayIsInBhdGhNYXBzIiwiZm9yRWFjaCIsInBhdGhNYXAiLCJzb3VyY2VQYXRoIiwiZW50cnlEaXJlY3RvcnkiLCJyZW1vdmVQcm9qZWN0RGlyZWN0b3J5IiwicmVtb3ZlUHJvamVjdEZpbGUiLCJzb3VyY2VFbnRyeVBhdGgiLCJzb3VyY2VGaWxlUGF0aCIsImFic29sdXRlU291cmNlRmlsZVBhdGgiLCJmaWxlUGF0aCIsImVycm9yIiwiT2JqZWN0IiwiYXNzaWduIiwic291cmNlRGlyZWN0b3J5UGF0aCIsImFic29sdXRlU291cmNlRGlyZWN0b3J5UGF0aCIsImRpcmVjdG9yeVBhdGgiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQU9BLE9BWUM7ZUFadUJBOztJQWNSQyxrQkFBa0I7ZUFBbEJBOzs7eUJBbkJtQztBQUVuRCxJQUFNLEFBQUVDLG1CQUFxQkMsd0JBQWEsQ0FBbENELGtCQUNBRSxBQUFhQyxhQUE2Q0MsOEJBQW1CLENBQTdFRixhQUF5QkEsQUFBYUcsa0JBQW9CRCw4QkFBbUIsQ0FBcERGO0FBRWxCLFNBQVNKLHFCQUFxQlEscUJBQXFCLEVBQUVDLElBQUksRUFBRUMsUUFBUTtJQUNoRixJQUFNLEFBQUVDLFdBQWFGLEtBQWJFO0lBRVJBLFNBQVNDLE9BQU8sQ0FBQyxTQUFDQztRQUNoQlosbUJBQW1CWTtJQUNyQjtJQUVBSixPQUFPO1FBQ0xFLFVBQUFBO0lBQ0Y7SUFFQUQsU0FBU0Q7QUFDWDtBQUVPLFNBQVNSLG1CQUFtQk8scUJBQXFCLEVBQUVLLE9BQU87SUFDL0QsSUFBTSxBQUFFQyxhQUFlRCxRQUFmQztJQUVSLElBQUlBLGVBQWUsTUFBTTtRQUN2QjtJQUNGO0lBRUEsSUFBTSxBQUFFQyxpQkFBbUJGLFFBQW5CRTtJQUVSQSxpQkFDRUMsdUJBQXVCUix1QkFBdUJLLFdBQzVDSSxrQkFBa0JULHVCQUF1Qks7QUFDL0M7QUFFQSxTQUFTSSxrQkFBa0JULHFCQUFxQixFQUFFSyxPQUFPO0lBQ3ZELElBQU0sQUFBRUssa0JBQW9CTCxRQUFwQkssaUJBQ0ZDLGlCQUFpQkQsaUJBQ2pCRSx5QkFBeUJsQixpQkFBaUJNLHVCQUF1Qlc7SUFFdkUsSUFBSTtRQUNGLElBQU1FLFdBQVdELHdCQUF5QixHQUFHO1FBRTdDZixXQUFXZ0I7SUFDYixFQUFFLE9BQU9DLE9BQU87UUFDZCxJQUFNSixtQkFBa0I7UUFFeEJLLE9BQU9DLE1BQU0sQ0FBQ1gsU0FBUztZQUNyQkssaUJBQUFBO1FBQ0Y7SUFDRjtBQUNGO0FBRUEsU0FBU0YsdUJBQXVCUixxQkFBcUIsRUFBRUssT0FBTztJQUM1RCxJQUFNLEFBQUVLLGtCQUFvQkwsUUFBcEJLLGlCQUNGTyxzQkFBc0JQLGlCQUN0QlEsOEJBQThCeEIsaUJBQWlCTSx1QkFBdUJpQjtJQUU1RSxJQUFJO1FBQ0YsSUFBTUUsZ0JBQWdCRCw2QkFBOEIsR0FBRztRQUV2RG5CLGdCQUFnQm9CO0lBQ2xCLEVBQUUsT0FBT0wsT0FBTztRQUNkLElBQU1KLG1CQUFrQjtRQUV4QkssT0FBT0MsTUFBTSxDQUFDWCxTQUFTO1lBQ3JCSyxpQkFBQUE7UUFDRjtJQUNGO0FBQ0YifQ==