summaryrefslogtreecommitdiff
path: root/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare
diff options
context:
space:
mode:
authorRaindropsSys <raindrops@equestria.dev>2023-10-24 17:43:37 +0200
committerRaindropsSys <raindrops@equestria.dev>2023-10-24 17:43:37 +0200
commitae187b6d75c8079da0be1dc288613bad8466fe61 (patch)
tree5ea0d34185a2270f29ffaa65e1f5258028d7d5d0 /desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare
downloadmist-ae187b6d75c8079da0be1dc288613bad8466fe61.tar.gz
mist-ae187b6d75c8079da0be1dc288613bad8466fe61.tar.bz2
mist-ae187b6d75c8079da0be1dc288613bad8466fe61.zip
Initial commit
Diffstat (limited to 'desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare')
-rw-r--r--desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.d.ts15
-rw-r--r--desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.d.ts.map1
-rw-r--r--desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.js3
-rw-r--r--desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.js.map1
-rw-r--r--desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.d.ts27
-rw-r--r--desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.d.ts.map1
-rw-r--r--desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.js40
-rw-r--r--desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.js.map1
-rw-r--r--desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.d.ts4
-rw-r--r--desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.d.ts.map1
-rw-r--r--desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.js78
-rw-r--r--desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.js.map1
12 files changed, 173 insertions, 0 deletions
diff --git a/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.d.ts b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.d.ts
new file mode 100644
index 0000000..e826dd0
--- /dev/null
+++ b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.d.ts
@@ -0,0 +1,15 @@
+export interface CompareLinesResult {
+ /**
+ * Whether compared lines are identical.
+ */
+ isEqual: boolean;
+ /**
+ * Lines that were not compared due to unbalanced buffers.
+ */
+ restLines1: string[];
+ /**
+ * Lines that were not compared due to unbalanced buffers.
+ */
+ restLines2: string[];
+}
+//# sourceMappingURL=CompareLinesResult.d.ts.map \ No newline at end of file
diff --git a/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.d.ts.map b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.d.ts.map
new file mode 100644
index 0000000..fa1fdd2
--- /dev/null
+++ b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"CompareLinesResult.d.ts","sourceRoot":"","sources":["../../../../../src/fileCompareHandler/lines/compare/CompareLinesResult.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB;;OAEG;IACH,UAAU,EAAE,MAAM,EAAE,CAAA;CACvB"} \ No newline at end of file
diff --git a/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.js b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.js
new file mode 100644
index 0000000..3f82bd6
--- /dev/null
+++ b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.js
@@ -0,0 +1,3 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=CompareLinesResult.js.map \ No newline at end of file
diff --git a/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.js.map b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.js.map
new file mode 100644
index 0000000..0500c02
--- /dev/null
+++ b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/CompareLinesResult.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"CompareLinesResult.js","sourceRoot":"","sources":["../../../../../src/fileCompareHandler/lines/compare/CompareLinesResult.ts"],"names":[],"mappings":""} \ No newline at end of file
diff --git a/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.d.ts b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.d.ts
new file mode 100644
index 0000000..1c49810
--- /dev/null
+++ b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.d.ts
@@ -0,0 +1,27 @@
+import { Options } from '../../../index';
+import { LineBatch } from '../lineReader/LineBatch';
+interface RestLines {
+ restLines1: string[];
+ restLines2: string[];
+}
+interface CompareLineBatchResult {
+ reachedEof: boolean;
+ batchIsEqual: boolean;
+ /**
+ * Lines that were not compared because the two line batches
+ * contained different number of lines.
+ * These remaining lines will be compared in the next step.
+ */
+ restLines: RestLines;
+}
+/**
+ * Compares two batches of lines.
+ *
+ * @param lineBatch1 Batch to compare.
+ * @param lineBatch2 Batch to compare.
+ * @param context Comparison context.
+ * @param options Comparison options.
+ */
+export declare function compareLineBatches(lineBatch1: LineBatch, lineBatch2: LineBatch, options: Options): CompareLineBatchResult;
+export {};
+//# sourceMappingURL=compareLineBatches.d.ts.map \ No newline at end of file
diff --git a/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.d.ts.map b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.d.ts.map
new file mode 100644
index 0000000..6697bc4
--- /dev/null
+++ b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"compareLineBatches.d.ts","sourceRoot":"","sources":["../../../../../src/fileCompareHandler/lines/compare/compareLineBatches.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGnD,UAAU,SAAS;IACf,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,UAAU,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,UAAU,sBAAsB;IAC5B,UAAU,EAAE,OAAO,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;IACrB;;;;OAIG;IACH,SAAS,EAAE,SAAS,CAAA;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,sBAAsB,CAuBzH"} \ No newline at end of file
diff --git a/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.js b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.js
new file mode 100644
index 0000000..26b377d
--- /dev/null
+++ b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.js
@@ -0,0 +1,40 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.compareLineBatches = void 0;
+const compareLines_1 = require("./compareLines");
+/**
+ * Compares two batches of lines.
+ *
+ * @param lineBatch1 Batch to compare.
+ * @param lineBatch2 Batch to compare.
+ * @param context Comparison context.
+ * @param options Comparison options.
+ */
+function compareLineBatches(lineBatch1, lineBatch2, options) {
+ const compareResult = compareLines_1.compareLines(lineBatch1.lines, lineBatch2.lines, options);
+ if (!compareResult.isEqual) {
+ return { batchIsEqual: false, reachedEof: false, restLines: emptyRestLines() };
+ }
+ const reachedEof = lineBatch1.reachedEof && lineBatch2.reachedEof;
+ const hasMoreLinesToProcess = compareResult.restLines1.length > 0 || compareResult.restLines2.length > 0;
+ if (reachedEof && hasMoreLinesToProcess) {
+ return { batchIsEqual: false, reachedEof: true, restLines: emptyRestLines() };
+ }
+ if (reachedEof) {
+ return { batchIsEqual: true, reachedEof: true, restLines: emptyRestLines() };
+ }
+ return { batchIsEqual: true, reachedEof: false,
+ restLines: {
+ restLines1: compareResult.restLines1,
+ restLines2: compareResult.restLines2,
+ }
+ };
+}
+exports.compareLineBatches = compareLineBatches;
+function emptyRestLines() {
+ return {
+ restLines1: [],
+ restLines2: []
+ };
+}
+//# sourceMappingURL=compareLineBatches.js.map \ No newline at end of file
diff --git a/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.js.map b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.js.map
new file mode 100644
index 0000000..eab6a39
--- /dev/null
+++ b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"compareLineBatches.js","sourceRoot":"","sources":["../../../../../src/fileCompareHandler/lines/compare/compareLineBatches.ts"],"names":[],"mappings":";;;AAEA,iDAA6C;AAkB7C;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,UAAqB,EAAE,UAAqB,EAAE,OAAgB;IAE7F,MAAM,aAAa,GAAG,2BAAY,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC/E,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;QACxB,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,EAAC,CAAA;KAChF;IAED,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAA;IACjE,MAAM,qBAAqB,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;IACxG,IAAI,UAAU,IAAI,qBAAqB,EAAE;QACrC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAG,SAAS,EAAE,cAAc,EAAE,EAAC,CAAA;KAChF;IAED,IAAI,UAAU,EAAE;QACZ,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAG,SAAS,EAAE,cAAc,EAAE,EAAC,CAAA;KAC/E;IAED,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK;QAC1C,SAAS,EAAE;YACP,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,UAAU,EAAE,aAAa,CAAC,UAAU;SACvC;KACJ,CAAA;AACL,CAAC;AAvBD,gDAuBC;AAED,SAAS,cAAc;IACnB,OAAO;QACH,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;KACjB,CAAA;AACL,CAAC"} \ No newline at end of file
diff --git a/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.d.ts b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.d.ts
new file mode 100644
index 0000000..2519563
--- /dev/null
+++ b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.d.ts
@@ -0,0 +1,4 @@
+import { Options } from "../../../index";
+import { CompareLinesResult } from "./CompareLinesResult";
+export declare function compareLines(lines1: string[], lines2: string[], options: Options): CompareLinesResult;
+//# sourceMappingURL=compareLines.d.ts.map \ No newline at end of file
diff --git a/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.d.ts.map b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.d.ts.map
new file mode 100644
index 0000000..83bef63
--- /dev/null
+++ b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"compareLines.d.ts","sourceRoot":"","sources":["../../../../../src/fileCompareHandler/lines/compare/compareLines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAMzD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,kBAAkB,CAkBrG"} \ No newline at end of file
diff --git a/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.js b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.js
new file mode 100644
index 0000000..132a71e
--- /dev/null
+++ b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.js
@@ -0,0 +1,78 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.compareLines = void 0;
+const TRIM_WHITE_SPACES_REGEXP = /^[ \f\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+|[ \f\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+$/g;
+const TRIM_LINE_ENDING_REGEXP = /\r\n|\n$/g;
+const REMOVE_WHITE_SPACES_REGEXP = /[ \f\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]/g;
+function compareLines(lines1, lines2, options) {
+ if (options.ignoreEmptyLines) {
+ lines1 = removeEmptyLines(lines1);
+ lines2 = removeEmptyLines(lines2);
+ }
+ const len = Math.min(lines1.length, lines2.length);
+ let i = 0;
+ for (; i < len; i++) {
+ const isEqual = compareLine(options, lines1[i], lines2[i]);
+ if (!isEqual) {
+ return { isEqual: false, restLines1: [], restLines2: [] };
+ }
+ }
+ return {
+ isEqual: true,
+ restLines1: lines1.slice(i),
+ restLines2: lines2.slice(i)
+ };
+}
+exports.compareLines = compareLines;
+function compareLine(options, line1, line2) {
+ if (options.ignoreLineEnding) {
+ line1 = trimLineEnding(line1);
+ line2 = trimLineEnding(line2);
+ }
+ if (options.ignoreWhiteSpaces) {
+ line1 = trimSpaces(line1);
+ line2 = trimSpaces(line2);
+ }
+ if (options.ignoreAllWhiteSpaces) {
+ line1 = removeSpaces(line1);
+ line2 = removeSpaces(line2);
+ }
+ return line1 === line2;
+}
+// Trims string like ' abc \n' into 'abc\n'
+function trimSpaces(s) {
+ const { content, lineEnding } = separateEol(s);
+ const trimmed = content.replace(TRIM_WHITE_SPACES_REGEXP, '');
+ return trimmed + lineEnding;
+}
+function trimLineEnding(s) {
+ return s.replace(TRIM_LINE_ENDING_REGEXP, '');
+}
+function removeSpaces(s) {
+ return s.replace(REMOVE_WHITE_SPACES_REGEXP, '');
+}
+function removeEmptyLines(lines) {
+ return lines.filter(line => !isEmptyLine(line));
+}
+function isEmptyLine(line) {
+ return line === '\n' || line === '\r\n';
+}
+function separateEol(s) {
+ const len = s.length;
+ let lineEnding = '';
+ let content = s;
+ if (s[len - 1] === '\n') {
+ if (s[len - 2] === '\r') {
+ return {
+ lineEnding: '\r\n',
+ content: s.slice(0, len - 2)
+ };
+ }
+ {
+ lineEnding = '\n';
+ content = s.slice(0, len - 1);
+ }
+ }
+ return { content, lineEnding };
+}
+//# sourceMappingURL=compareLines.js.map \ No newline at end of file
diff --git a/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.js.map b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.js.map
new file mode 100644
index 0000000..0070f97
--- /dev/null
+++ b/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLines.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"compareLines.js","sourceRoot":"","sources":["../../../../../src/fileCompareHandler/lines/compare/compareLines.ts"],"names":[],"mappings":"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"} \ No newline at end of file