| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 | 
							- 'use strict';
 
- Object.defineProperty(exports, '__esModule', {
 
-   value: true
 
- });
 
- exports.printDiffLines =
 
-   exports.diffLinesUnified2 =
 
-   exports.diffLinesUnified =
 
-   exports.diffLinesRaw =
 
-     void 0;
 
- var _diffSequences = _interopRequireDefault(require('diff-sequences'));
 
- var _cleanupSemantic = require('./cleanupSemantic');
 
- var _joinAlignedDiffs = require('./joinAlignedDiffs');
 
- var _normalizeDiffOptions = require('./normalizeDiffOptions');
 
- function _interopRequireDefault(obj) {
 
-   return obj && obj.__esModule ? obj : {default: obj};
 
- }
 
- /**
 
-  * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
 
-  *
 
-  * This source code is licensed under the MIT license found in the
 
-  * LICENSE file in the root directory of this source tree.
 
-  */
 
- const isEmptyString = lines => lines.length === 1 && lines[0].length === 0;
 
- const countChanges = diffs => {
 
-   let a = 0;
 
-   let b = 0;
 
-   diffs.forEach(diff => {
 
-     switch (diff[0]) {
 
-       case _cleanupSemantic.DIFF_DELETE:
 
-         a += 1;
 
-         break;
 
-       case _cleanupSemantic.DIFF_INSERT:
 
-         b += 1;
 
-         break;
 
-     }
 
-   });
 
-   return {
 
-     a,
 
-     b
 
-   };
 
- };
 
- const printAnnotation = (
 
-   {
 
-     aAnnotation,
 
-     aColor,
 
-     aIndicator,
 
-     bAnnotation,
 
-     bColor,
 
-     bIndicator,
 
-     includeChangeCounts,
 
-     omitAnnotationLines
 
-   },
 
-   changeCounts
 
- ) => {
 
-   if (omitAnnotationLines) {
 
-     return '';
 
-   }
 
-   let aRest = '';
 
-   let bRest = '';
 
-   if (includeChangeCounts) {
 
-     const aCount = String(changeCounts.a);
 
-     const bCount = String(changeCounts.b); // Padding right aligns the ends of the annotations.
 
-     const baAnnotationLengthDiff = bAnnotation.length - aAnnotation.length;
 
-     const aAnnotationPadding = ' '.repeat(Math.max(0, baAnnotationLengthDiff));
 
-     const bAnnotationPadding = ' '.repeat(Math.max(0, -baAnnotationLengthDiff)); // Padding left aligns the ends of the counts.
 
-     const baCountLengthDiff = bCount.length - aCount.length;
 
-     const aCountPadding = ' '.repeat(Math.max(0, baCountLengthDiff));
 
-     const bCountPadding = ' '.repeat(Math.max(0, -baCountLengthDiff));
 
-     aRest =
 
-       aAnnotationPadding + '  ' + aIndicator + ' ' + aCountPadding + aCount;
 
-     bRest =
 
-       bAnnotationPadding + '  ' + bIndicator + ' ' + bCountPadding + bCount;
 
-   }
 
-   return (
 
-     aColor(aIndicator + ' ' + aAnnotation + aRest) +
 
-     '\n' +
 
-     bColor(bIndicator + ' ' + bAnnotation + bRest) +
 
-     '\n\n'
 
-   );
 
- };
 
- const printDiffLines = (diffs, options) =>
 
-   printAnnotation(options, countChanges(diffs)) +
 
-   (options.expand
 
-     ? (0, _joinAlignedDiffs.joinAlignedDiffsExpand)(diffs, options)
 
-     : (0, _joinAlignedDiffs.joinAlignedDiffsNoExpand)(diffs, options)); // Compare two arrays of strings line-by-line. Format as comparison lines.
 
- exports.printDiffLines = printDiffLines;
 
- const diffLinesUnified = (aLines, bLines, options) =>
 
-   printDiffLines(
 
-     diffLinesRaw(
 
-       isEmptyString(aLines) ? [] : aLines,
 
-       isEmptyString(bLines) ? [] : bLines
 
-     ),
 
-     (0, _normalizeDiffOptions.normalizeDiffOptions)(options)
 
-   ); // Given two pairs of arrays of strings:
 
- // Compare the pair of comparison arrays line-by-line.
 
- // Format the corresponding lines in the pair of displayable arrays.
 
- exports.diffLinesUnified = diffLinesUnified;
 
- const diffLinesUnified2 = (
 
-   aLinesDisplay,
 
-   bLinesDisplay,
 
-   aLinesCompare,
 
-   bLinesCompare,
 
-   options
 
- ) => {
 
-   if (isEmptyString(aLinesDisplay) && isEmptyString(aLinesCompare)) {
 
-     aLinesDisplay = [];
 
-     aLinesCompare = [];
 
-   }
 
-   if (isEmptyString(bLinesDisplay) && isEmptyString(bLinesCompare)) {
 
-     bLinesDisplay = [];
 
-     bLinesCompare = [];
 
-   }
 
-   if (
 
-     aLinesDisplay.length !== aLinesCompare.length ||
 
-     bLinesDisplay.length !== bLinesCompare.length
 
-   ) {
 
-     // Fall back to diff of display lines.
 
-     return diffLinesUnified(aLinesDisplay, bLinesDisplay, options);
 
-   }
 
-   const diffs = diffLinesRaw(aLinesCompare, bLinesCompare); // Replace comparison lines with displayable lines.
 
-   let aIndex = 0;
 
-   let bIndex = 0;
 
-   diffs.forEach(diff => {
 
-     switch (diff[0]) {
 
-       case _cleanupSemantic.DIFF_DELETE:
 
-         diff[1] = aLinesDisplay[aIndex];
 
-         aIndex += 1;
 
-         break;
 
-       case _cleanupSemantic.DIFF_INSERT:
 
-         diff[1] = bLinesDisplay[bIndex];
 
-         bIndex += 1;
 
-         break;
 
-       default:
 
-         diff[1] = bLinesDisplay[bIndex];
 
-         aIndex += 1;
 
-         bIndex += 1;
 
-     }
 
-   });
 
-   return printDiffLines(
 
-     diffs,
 
-     (0, _normalizeDiffOptions.normalizeDiffOptions)(options)
 
-   );
 
- }; // Compare two arrays of strings line-by-line.
 
- exports.diffLinesUnified2 = diffLinesUnified2;
 
- const diffLinesRaw = (aLines, bLines) => {
 
-   const aLength = aLines.length;
 
-   const bLength = bLines.length;
 
-   const isCommon = (aIndex, bIndex) => aLines[aIndex] === bLines[bIndex];
 
-   const diffs = [];
 
-   let aIndex = 0;
 
-   let bIndex = 0;
 
-   const foundSubsequence = (nCommon, aCommon, bCommon) => {
 
-     for (; aIndex !== aCommon; aIndex += 1) {
 
-       diffs.push(
 
-         new _cleanupSemantic.Diff(_cleanupSemantic.DIFF_DELETE, aLines[aIndex])
 
-       );
 
-     }
 
-     for (; bIndex !== bCommon; bIndex += 1) {
 
-       diffs.push(
 
-         new _cleanupSemantic.Diff(_cleanupSemantic.DIFF_INSERT, bLines[bIndex])
 
-       );
 
-     }
 
-     for (; nCommon !== 0; nCommon -= 1, aIndex += 1, bIndex += 1) {
 
-       diffs.push(
 
-         new _cleanupSemantic.Diff(_cleanupSemantic.DIFF_EQUAL, bLines[bIndex])
 
-       );
 
-     }
 
-   };
 
-   (0, _diffSequences.default)(aLength, bLength, isCommon, foundSubsequence); // After the last common subsequence, push remaining change items.
 
-   for (; aIndex !== aLength; aIndex += 1) {
 
-     diffs.push(
 
-       new _cleanupSemantic.Diff(_cleanupSemantic.DIFF_DELETE, aLines[aIndex])
 
-     );
 
-   }
 
-   for (; bIndex !== bLength; bIndex += 1) {
 
-     diffs.push(
 
-       new _cleanupSemantic.Diff(_cleanupSemantic.DIFF_INSERT, bLines[bIndex])
 
-     );
 
-   }
 
-   return diffs;
 
- };
 
- exports.diffLinesRaw = diffLinesRaw;
 
 
  |