diff options
Diffstat (limited to 'desktop/node_modules/dir-compare/build/src/entry')
16 files changed, 389 insertions, 0 deletions
diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryBuilder.d.ts b/desktop/node_modules/dir-compare/build/src/entry/entryBuilder.d.ts new file mode 100644 index 0000000..4782009 --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryBuilder.d.ts @@ -0,0 +1,53 @@ +/// <reference types="node" /> +import fs = require("fs"); +/** + * Returns the sorted list of entries in a directory. + */ +export function buildDirEntries(rootEntry: any, dirEntries: any, relativePath: any, options: any): { + name: any; + absolutePath: any; + path: any; + stat: fs.Stats; + lstat: fs.Stats; + isSymlink: boolean; + isBrokenLink: boolean; + isDirectory: boolean; + isPermissionDenied: boolean; +}[]; +/** + * Returns the sorted list of entries in a directory. + */ +export function buildDirEntries(rootEntry: any, dirEntries: any, relativePath: any, options: any): { + name: any; + absolutePath: any; + path: any; + stat: fs.Stats; + lstat: fs.Stats; + isSymlink: boolean; + isBrokenLink: boolean; + isDirectory: boolean; + isPermissionDenied: boolean; +}[]; +export function buildEntry(absolutePath: any, path: any, name: any, options: any): { + name: any; + absolutePath: any; + path: any; + stat: fs.Stats; + lstat: fs.Stats; + isSymlink: boolean; + isBrokenLink: boolean; + isDirectory: boolean; + isPermissionDenied: boolean; +}; +export function buildEntry(absolutePath: any, path: any, name: any, options: any): { + name: any; + absolutePath: any; + path: any; + stat: fs.Stats; + lstat: fs.Stats; + isSymlink: boolean; + isBrokenLink: boolean; + isDirectory: boolean; + isPermissionDenied: boolean; +}; +//# sourceMappingURL=entryBuilder.d.ts.map
\ No newline at end of file diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryBuilder.d.ts.map b/desktop/node_modules/dir-compare/build/src/entry/entryBuilder.d.ts.map new file mode 100644 index 0000000..b7b559c --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryBuilder.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"entryBuilder.d.ts","sourceRoot":"","sources":["../../../src/entry/entryBuilder.js"],"names":[],"mappings":";;AAQC;;GAEG;AACH;;;;;;;;;;IAiBC;AApBD;;GAEG;AACH;;;;;;;;;;IAiBC;AAED;;;;;;;;;;EAqBC;AArBD;;;;;;;;;;EAqBC"}
\ No newline at end of file diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryBuilder.js b/desktop/node_modules/dir-compare/build/src/entry/entryBuilder.js new file mode 100644 index 0000000..781ac4c --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryBuilder.js @@ -0,0 +1,114 @@ +const fs = require('fs'); +const minimatch = require('minimatch'); +const pathUtils = require('path'); +const entryComparator = require('./entryComparator'); +const PATH_SEP = pathUtils.sep; +module.exports = { + /** + * Returns the sorted list of entries in a directory. + */ + buildDirEntries(rootEntry, dirEntries, relativePath, options) { + const res = []; + for (let i = 0; i < dirEntries.length; i++) { + const entryName = dirEntries[i]; + const entryAbsolutePath = rootEntry.absolutePath + PATH_SEP + entryName; + const entryPath = rootEntry.path + PATH_SEP + entryName; + const entry = this.buildEntry(entryAbsolutePath, entryPath, entryName, options); + if (options.skipSymlinks && entry.isSymlink) { + entry.stat = undefined; + } + if (filterEntry(entry, relativePath, options)) { + res.push(entry); + } + } + return res.sort((a, b) => entryComparator.compareEntry(a, b, options)); + }, + buildEntry(absolutePath, path, name, options) { + const stats = getStatIgnoreBrokenLink(absolutePath); + const isDirectory = stats.stat.isDirectory(); + let isPermissionDenied = false; + if (options.handlePermissionDenied) { + const isFile = !isDirectory; + isPermissionDenied = hasPermissionDenied(absolutePath, isFile, options); + } + return { + name: name, + absolutePath: absolutePath, + path: path, + stat: stats.stat, + lstat: stats.lstat, + isSymlink: stats.lstat.isSymbolicLink(), + isBrokenLink: stats.isBrokenLink, + isDirectory, + isPermissionDenied + }; + }, +}; +function hasPermissionDenied(absolutePath, isFile, options) { + if (isFile && !options.compareContent) { + return false; + } + try { + fs.accessSync(absolutePath, fs.constants.R_OK); + return false; + } + catch (_a) { + return true; + } +} +function getStatIgnoreBrokenLink(absolutePath) { + const lstat = fs.lstatSync(absolutePath); + try { + return { + stat: fs.statSync(absolutePath), + lstat: lstat, + isBrokenLink: false + }; + } + catch (error) { + if (error.code === 'ENOENT') { + return { + stat: lstat, + lstat: lstat, + isBrokenLink: true + }; + } + throw error; + } +} +/** + * Filter entries by file name. Returns true if the file is to be processed. + */ +function filterEntry(entry, relativePath, options) { + if (entry.isSymlink && options.skipSymlinks) { + return false; + } + const path = pathUtils.join(relativePath, entry.name); + if (options.skipEmptyDirs && entry.stat.isDirectory() && isEmptyDir(entry.absolutePath)) { + return false; + } + if ((entry.stat.isFile() && options.includeFilter) && (!match(path, options.includeFilter))) { + return false; + } + if ((options.excludeFilter) && (match(path, options.excludeFilter))) { + return false; + } + return true; +} +function isEmptyDir(path) { + return fs.readdirSync(path).length === 0; +} +/** + * Matches path by pattern. + */ +function match(path, pattern) { + const patternArray = pattern.split(','); + for (let i = 0; i < patternArray.length; i++) { + const pat = patternArray[i]; + if (minimatch(path, pat, { dot: true, matchBase: true })) { //nocase + return true; + } + } + return false; +} +//# sourceMappingURL=entryBuilder.js.map
\ No newline at end of file diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryBuilder.js.map b/desktop/node_modules/dir-compare/build/src/entry/entryBuilder.js.map new file mode 100644 index 0000000..e5decbf --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryBuilder.js.map @@ -0,0 +1 @@ +{"version":3,"file":"entryBuilder.js","sourceRoot":"","sources":["../../../src/entry/entryBuilder.js"],"names":[],"mappings":"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"}
\ No newline at end of file diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryComparator.d.ts b/desktop/node_modules/dir-compare/build/src/entry/entryComparator.d.ts new file mode 100644 index 0000000..45a46c5 --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryComparator.d.ts @@ -0,0 +1,3 @@ +export function compareEntry(a: any, b: any, options: any): any; +export function compareEntry(a: any, b: any, options: any): any; +//# sourceMappingURL=entryComparator.d.ts.map
\ No newline at end of file diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryComparator.d.ts.map b/desktop/node_modules/dir-compare/build/src/entry/entryComparator.d.ts.map new file mode 100644 index 0000000..464d112 --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryComparator.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"entryComparator.d.ts","sourceRoot":"","sources":["../../../src/entry/entryComparator.js"],"names":[],"mappings":"AAIC,gEAcC;AAdD,gEAcC"}
\ No newline at end of file diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryComparator.js b/desktop/node_modules/dir-compare/build/src/entry/entryComparator.js new file mode 100644 index 0000000..58d0cb3 --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryComparator.js @@ -0,0 +1,26 @@ +/** + * Determines order criteria for sorting entries in a directory. + */ +module.exports = { + compareEntry(a, b, options) { + if (a.isBrokenLink && b.isBrokenLink) { + return options.compareNameHandler(a.name, b.name, options); + } + else if (a.isBrokenLink) { + return -1; + } + else if (b.isBrokenLink) { + return 1; + } + else if (a.stat.isDirectory() && b.stat.isFile()) { + return -1; + } + else if (a.stat.isFile() && b.stat.isDirectory()) { + return 1; + } + else { + return options.compareNameHandler(a.name, b.name, options); + } + } +}; +//# sourceMappingURL=entryComparator.js.map
\ No newline at end of file diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryComparator.js.map b/desktop/node_modules/dir-compare/build/src/entry/entryComparator.js.map new file mode 100644 index 0000000..74c5d50 --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryComparator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"entryComparator.js","sourceRoot":"","sources":["../../../src/entry/entryComparator.js"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,GAAG;IAChB,YAAY,CAAE,CAAC,EAAE,CAAC,EAAE,OAAO;QAC1B,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,EAAE;YACrC,OAAO,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;SAC1D;aAAM,IAAI,CAAC,CAAC,YAAY,EAAE;YAC1B,OAAO,CAAC,CAAC,CAAA;SACT;aAAM,IAAI,CAAC,CAAC,YAAY,EAAE;YAC1B,OAAO,CAAC,CAAA;SACR;aAAM,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;YACnD,OAAO,CAAC,CAAC,CAAA;SACT;aAAM,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACnD,OAAO,CAAC,CAAA;SACR;aAAM;YACN,OAAO,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;SAC1D;IACF,CAAC;CACD,CAAA"}
\ No newline at end of file diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryEquality.d.ts b/desktop/node_modules/dir-compare/build/src/entry/entryEquality.d.ts new file mode 100644 index 0000000..8c5ff18 --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryEquality.d.ts @@ -0,0 +1,37 @@ +export function isEntryEqualSync(entry1: any, entry2: any, type: any, options: any): { + same: boolean; + reason: string; +} | { + same: boolean; + reason?: undefined; +}; +export function isEntryEqualSync(entry1: any, entry2: any, type: any, options: any): { + same: boolean; + reason: string; +} | { + same: boolean; + reason?: undefined; +}; +export function isEntryEqualAsync(entry1: any, entry2: any, type: any, diffSet: any, options: any): { + same: undefined; + samePromise: any; + reason?: undefined; +} | { + same: boolean; + reason: string; +} | { + same: boolean; + reason?: undefined; +}; +export function isEntryEqualAsync(entry1: any, entry2: any, type: any, diffSet: any, options: any): { + same: undefined; + samePromise: any; + reason?: undefined; +} | { + same: boolean; + reason: string; +} | { + same: boolean; + reason?: undefined; +}; +//# sourceMappingURL=entryEquality.d.ts.map
\ No newline at end of file diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryEquality.d.ts.map b/desktop/node_modules/dir-compare/build/src/entry/entryEquality.d.ts.map new file mode 100644 index 0000000..a2d59e8 --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryEquality.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"entryEquality.d.ts","sourceRoot":"","sources":["../../../src/entry/entryEquality.js"],"names":[],"mappings":"AAKI;;;;;;EAWC;AAXD;;;;;;EAWC;AAED;;;;;;;;;;EAWC;AAXD;;;;;;;;;;EAWC"}
\ No newline at end of file diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryEquality.js b/desktop/node_modules/dir-compare/build/src/entry/entryEquality.js new file mode 100644 index 0000000..481ec0d --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryEquality.js @@ -0,0 +1,121 @@ +const fs = require('fs'); +/** + * Compares two entries with identical name and type. + */ +module.exports = { + isEntryEqualSync(entry1, entry2, type, options) { + if (type === 'file') { + return isFileEqualSync(entry1, entry2, options); + } + if (type === 'directory') { + return isDirectoryEqual(entry1, entry2, options); + } + if (type === 'broken-link') { + return isBrokenLinkEqual(); + } + throw new Error('Unexpected type ' + type); + }, + isEntryEqualAsync(entry1, entry2, type, diffSet, options) { + if (type === 'file') { + return isFileEqualAsync(entry1, entry2, type, diffSet, options); + } + if (type === 'directory') { + return isDirectoryEqual(entry1, entry2, options); + } + if (type === 'broken-link') { + return isBrokenLinkEqual(); + } + throw new Error('Unexpected type ' + type); + } +}; +function isFileEqualSync(entry1, entry2, options) { + const p1 = entry1 ? entry1.absolutePath : undefined; + const p2 = entry2 ? entry2.absolutePath : undefined; + if (options.compareSymlink && !isSymlinkEqual(entry1, entry2)) { + return { same: false, reason: 'different-symlink' }; + } + if (options.compareSize && entry1.stat.size !== entry2.stat.size) { + return { same: false, reason: 'different-size' }; + } + if (options.compareDate && !isDateEqual(entry1.stat.mtime, entry2.stat.mtime, options.dateTolerance)) { + return { same: false, reason: 'different-date' }; + } + if (options.compareContent && !options.compareFileSync(p1, entry1.stat, p2, entry2.stat, options)) { + return { same: false, reason: 'different-content' }; + } + return { same: true }; +} +function isFileEqualAsync(entry1, entry2, type, diffSet, options) { + const p1 = entry1 ? entry1.absolutePath : undefined; + const p2 = entry2 ? entry2.absolutePath : undefined; + if (options.compareSymlink && !isSymlinkEqual(entry1, entry2)) { + return { same: false, reason: 'different-symlink' }; + } + if (options.compareSize && entry1.stat.size !== entry2.stat.size) { + return { same: false, samePromise: undefined, reason: 'different-size' }; + } + if (options.compareDate && !isDateEqual(entry1.stat.mtime, entry2.stat.mtime, options.dateTolerance)) { + return { same: false, samePromise: undefined, reason: 'different-date' }; + } + if (options.compareContent) { + let samePromise = undefined; + let subDiffSet; + if (!options.noDiffSet) { + subDiffSet = []; + diffSet.push(subDiffSet); + } + samePromise = options.compareFileAsync(p1, entry1.stat, p2, entry2.stat, options) + .then((comparisonResult) => { + let same, error; + if (typeof (comparisonResult) === "boolean") { + same = comparisonResult; + } + else { + error = comparisonResult; + } + return { + entry1: entry1, entry2: entry2, same: same, + error: error, type1: type, type2: type, + diffSet: subDiffSet, + reason: same ? undefined : 'different-content' + }; + }) + .catch((error) => ({ + error: error + })); + return { same: undefined, samePromise: samePromise }; + } + return { same: true, samePromise: undefined }; +} +function isDirectoryEqual(entry1, entry2, options) { + if (options.compareSymlink && !isSymlinkEqual(entry1, entry2)) { + return { same: false, reason: 'different-symlink' }; + } + return { same: true }; +} +function isBrokenLinkEqual() { + return { same: false, reason: 'broken-link' }; // broken links are never considered equal +} +/** + * Compares two dates and returns true/false depending on tolerance (milliseconds). + * Two dates are considered equal if the difference in milliseconds between them is less or equal than tolerance. + */ +function isDateEqual(date1, date2, tolerance) { + return Math.abs(date1.getTime() - date2.getTime()) <= tolerance ? true : false; +} +/** + * Compares two entries for symlink equality. + */ +function isSymlinkEqual(entry1, entry2) { + if (!entry1.isSymlink && !entry2.isSymlink) { + return true; + } + if (entry1.isSymlink && entry2.isSymlink && hasIdenticalLink(entry1.absolutePath, entry2.absolutePath)) { + return true; + } + return false; +} +function hasIdenticalLink(path1, path2) { + return fs.readlinkSync(path1) === fs.readlinkSync(path2); +} +//# sourceMappingURL=entryEquality.js.map
\ No newline at end of file diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryEquality.js.map b/desktop/node_modules/dir-compare/build/src/entry/entryEquality.js.map new file mode 100644 index 0000000..e5b58a2 --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryEquality.js.map @@ -0,0 +1 @@ +{"version":3,"file":"entryEquality.js","sourceRoot":"","sources":["../../../src/entry/entryEquality.js"],"names":[],"mappings":"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"}
\ No newline at end of file diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryType.d.ts b/desktop/node_modules/dir-compare/build/src/entry/entryType.d.ts new file mode 100644 index 0000000..98570b7 --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryType.d.ts @@ -0,0 +1,9 @@ +/** + * One of 'missing','file','directory','broken-link' + */ +export function getType(entry: any): "file" | "broken-link" | "missing" | "directory"; +/** + * One of 'missing','file','directory','broken-link' + */ +export function getType(entry: any): "file" | "broken-link" | "missing" | "directory"; +//# sourceMappingURL=entryType.d.ts.map
\ No newline at end of file diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryType.d.ts.map b/desktop/node_modules/dir-compare/build/src/entry/entryType.d.ts.map new file mode 100644 index 0000000..9d5b26b --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryType.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"entryType.d.ts","sourceRoot":"","sources":["../../../src/entry/entryType.js"],"names":[],"mappings":"AAEC;;GAEG;AACH,sFAWC;AAdD;;GAEG;AACH,sFAWC"}
\ No newline at end of file diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryType.js b/desktop/node_modules/dir-compare/build/src/entry/entryType.js new file mode 100644 index 0000000..a9a3afa --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryType.js @@ -0,0 +1,18 @@ +module.exports = { + /** + * One of 'missing','file','directory','broken-link' + */ + getType(entry) { + if (!entry) { + return 'missing'; + } + if (entry.isBrokenLink) { + return 'broken-link'; + } + if (entry.isDirectory) { + return 'directory'; + } + return 'file'; + } +}; +//# sourceMappingURL=entryType.js.map
\ No newline at end of file diff --git a/desktop/node_modules/dir-compare/build/src/entry/entryType.js.map b/desktop/node_modules/dir-compare/build/src/entry/entryType.js.map new file mode 100644 index 0000000..5648e78 --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/entry/entryType.js.map @@ -0,0 +1 @@ +{"version":3,"file":"entryType.js","sourceRoot":"","sources":["../../../src/entry/entryType.js"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,GAAG;IAChB;;OAEG;IACH,OAAO,CAAE,KAAK;QACb,IAAI,CAAC,KAAK,EAAE;YACX,OAAO,SAAS,CAAA;SAChB;QACD,IAAI,KAAK,CAAC,YAAY,EAAE;YACvB,OAAO,aAAa,CAAA;SACpB;QACD,IAAI,KAAK,CAAC,WAAW,EAAE;YACtB,OAAO,WAAW,CAAA;SAClB;QACD,OAAO,MAAM,CAAA;IACd,CAAC;CACD,CAAA"}
\ No newline at end of file |