summaryrefslogtreecommitdiff
path: root/desktop/node_modules/dir-compare/build/src/entry
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/node_modules/dir-compare/build/src/entry')
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryBuilder.d.ts53
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryBuilder.d.ts.map1
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryBuilder.js114
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryBuilder.js.map1
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryComparator.d.ts3
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryComparator.d.ts.map1
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryComparator.js26
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryComparator.js.map1
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryEquality.d.ts37
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryEquality.d.ts.map1
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryEquality.js121
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryEquality.js.map1
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryType.d.ts9
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryType.d.ts.map1
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryType.js18
-rw-r--r--desktop/node_modules/dir-compare/build/src/entry/entryType.js.map1
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":"AAAA,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AACxB,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AACtC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AACjC,MAAM,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAEpD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAA;AAE9B,MAAM,CAAC,OAAO,GAAG;IAChB;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO;QAC3D,MAAM,GAAG,GAAG,EAAE,CAAA;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YAC/B,MAAM,iBAAiB,GAAG,SAAS,CAAC,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAA;YACvE,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAA;YAEvD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;YAC/E,IAAI,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,EAAE;gBAC5C,KAAK,CAAC,IAAI,GAAG,SAAS,CAAA;aACtB;YAED,IAAI,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;gBAC9C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aACf;SACD;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IACvE,CAAC;IAED,UAAU,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO;QAC3C,MAAM,KAAK,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAA;QACnD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;QAE5C,IAAI,kBAAkB,GAAG,KAAK,CAAA;QAC9B,IAAI,OAAO,CAAC,sBAAsB,EAAE;YACnC,MAAM,MAAM,GAAG,CAAC,WAAW,CAAA;YAC3B,kBAAkB,GAAG,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;SACvE;QAED,OAAO;YACN,IAAI,EAAE,IAAI;YACV,YAAY,EAAE,YAAY;YAC1B,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE;YACvC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW;YACX,kBAAkB;SAClB,CAAA;IACF,CAAC;CAED,CAAA;AAED,SAAS,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO;IACzD,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;QACtC,OAAO,KAAK,CAAA;KACZ;IACD,IAAI;QACH,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC9C,OAAO,KAAK,CAAA;KACZ;IAAC,WAAM;QACP,OAAO,IAAI,CAAA;KACX;AACF,CAAC;AAED,SAAS,uBAAuB,CAAC,YAAY;IAC5C,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IACxC,IAAI;QACH,OAAO;YACN,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC/B,KAAK,EAAE,KAAK;YACZ,YAAY,EAAE,KAAK;SACnB,CAAA;KACD;IAAC,OAAO,KAAK,EAAE;QACf,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC5B,OAAO;gBACN,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,KAAK;gBACZ,YAAY,EAAE,IAAI;aAClB,CAAA;SACD;QACD,MAAM,KAAK,CAAA;KACX;AACF,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO;IAChD,IAAI,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,YAAY,EAAE;QAC5C,OAAO,KAAK,CAAA;KACZ;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAErD,IAAI,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;QACxF,OAAO,KAAK,CAAA;KACZ;IAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE;QAC5F,OAAO,KAAK,CAAA;KACZ;IAED,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE;QACpE,OAAO,KAAK,CAAA;KACZ;IAED,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,SAAS,UAAU,CAAC,IAAI;IACvB,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,KAAK,CAAC,IAAI,EAAE,OAAO;IAC3B,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,QAAQ;YACnE,OAAO,IAAI,CAAA;SACX;KACD;IACD,OAAO,KAAK,CAAA;AACb,CAAC"} \ 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":"AAAA,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AACxB;;GAEG;AACH,MAAM,CAAC,OAAO,GAAG;IACb,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;QAC1C,IAAI,IAAI,KAAK,MAAM,EAAE;YACjB,OAAO,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;SAClD;QACD,IAAI,IAAI,KAAK,WAAW,EAAE;YACtB,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;SACnD;QACD,IAAI,IAAI,KAAK,aAAa,EAAE;YACxB,OAAO,iBAAiB,EAAE,CAAA;SAC7B;QACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;QACpD,IAAI,IAAI,KAAK,MAAM,EAAE;YACjB,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;SAClE;QACD,IAAI,IAAI,KAAK,WAAW,EAAE;YACtB,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;SACnD;QACD,IAAI,IAAI,KAAK,aAAa,EAAE;YACxB,OAAO,iBAAiB,EAAE,CAAA;SAC7B;QACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAA;IAC9C,CAAC;CACJ,CAAA;AAGD,SAAS,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO;IAC5C,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAA;IACnD,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAA;IACnD,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;QAC3D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAA;KACtD;IACD,IAAI,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;QAC9D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAA;KACnD;IACD,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE;QAClG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAA;KACnD;IACD,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;QAC/F,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAA;KACtD;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AACzB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAC5D,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAA;IACnD,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAA;IACnD,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;QAC3D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAA;KACtD;IACD,IAAI,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;QAC9D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAA;KAC3E;IAED,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE;QAClG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAA;KAC3E;IAED,IAAI,OAAO,CAAC,cAAc,EAAE;QACxB,IAAI,WAAW,GAAG,SAAS,CAAA;QAC3B,IAAI,UAAU,CAAA;QACd,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACpB,UAAU,GAAG,EAAE,CAAA;YACf,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;SAC3B;QACD,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;aAC5E,IAAI,CAAC,CAAC,gBAAgB,EAAE,EAAE;YACvB,IAAI,IAAI,EAAE,KAAK,CAAA;YACf,IAAI,OAAO,CAAC,gBAAgB,CAAC,KAAK,SAAS,EAAE;gBACzC,IAAI,GAAG,gBAAgB,CAAA;aAC1B;iBAAM;gBACH,KAAK,GAAG,gBAAgB,CAAA;aAC3B;YAED,OAAO;gBACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;gBAC1C,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI;gBACtC,OAAO,EAAE,UAAU;gBACnB,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB;aACjD,CAAA;QACL,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACf,KAAK,EAAE,KAAK;SACf,CAAC,CAAC,CAAA;QAEP,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,CAAA;KACvD;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAA;AACjD,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO;IAC7C,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;QAC3D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAA;KACtD;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AACzB,CAAC;AAED,SAAS,iBAAiB;IACtB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA,CAAC,0CAA0C;AAC5F,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;AAClF,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAM,EAAE,MAAM;IAClC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;QACxC,OAAO,IAAI,CAAA;KACd;IACD,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,IAAI,gBAAgB,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE;QACpG,OAAO,IAAI,CAAA;KACd;IACD,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAK,EAAE,KAAK;IAClC,OAAO,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;AAC5D,CAAC"} \ 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