@casual-simulation/expect 2.0.18

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.
Files changed (132) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +4 -0
  3. package/index.d.ts +6 -0
  4. package/index.js +5 -0
  5. package/index.js.map +1 -0
  6. package/package.json +35 -0
  7. package/src/asymmetricMatchers.d.ts +67 -0
  8. package/src/asymmetricMatchers.js +188 -0
  9. package/src/asymmetricMatchers.js.map +1 -0
  10. package/src/diff/cleanupSemantic.d.ts +58 -0
  11. package/src/diff/cleanupSemantic.js +526 -0
  12. package/src/diff/cleanupSemantic.js.map +1 -0
  13. package/src/diff/constants.d.ts +9 -0
  14. package/src/diff/constants.js +10 -0
  15. package/src/diff/constants.js.map +1 -0
  16. package/src/diff/diffLines.d.ts +13 -0
  17. package/src/diff/diffLines.js +138 -0
  18. package/src/diff/diffLines.js.map +1 -0
  19. package/src/diff/diffStrings.d.ts +10 -0
  20. package/src/diff/diffStrings.js +36 -0
  21. package/src/diff/diffStrings.js.map +1 -0
  22. package/src/diff/getAlignedDiffs.d.ts +11 -0
  23. package/src/diff/getAlignedDiffs.js +187 -0
  24. package/src/diff/getAlignedDiffs.js.map +1 -0
  25. package/src/diff/index.d.ts +16 -0
  26. package/src/diff/index.js +139 -0
  27. package/src/diff/index.js.map +1 -0
  28. package/src/diff/joinAlignedDiffs.d.ts +11 -0
  29. package/src/diff/joinAlignedDiffs.js +191 -0
  30. package/src/diff/joinAlignedDiffs.js.map +1 -0
  31. package/src/diff/normalizeDiffOptions.d.ts +10 -0
  32. package/src/diff/normalizeDiffOptions.js +40 -0
  33. package/src/diff/normalizeDiffOptions.js.map +1 -0
  34. package/src/diff/printDiffs.d.ts +11 -0
  35. package/src/diff/printDiffs.js +46 -0
  36. package/src/diff/printDiffs.js.map +1 -0
  37. package/src/diff/types.d.ts +49 -0
  38. package/src/diff/types.js +2 -0
  39. package/src/diff/types.js.map +1 -0
  40. package/src/diff-sequences/index.d.ts +19 -0
  41. package/src/diff-sequences/index.js +506 -0
  42. package/src/diff-sequences/index.js.map +1 -0
  43. package/src/extractExpectedAssertionsErrors.d.ts +11 -0
  44. package/src/extractExpectedAssertionsErrors.js +58 -0
  45. package/src/extractExpectedAssertionsErrors.js.map +1 -0
  46. package/src/get-type/index.d.ts +11 -0
  47. package/src/get-type/index.js +57 -0
  48. package/src/get-type/index.js.map +1 -0
  49. package/src/index.d.ts +16 -0
  50. package/src/index.js +247 -0
  51. package/src/index.js.map +1 -0
  52. package/src/jasmineUtils.d.ts +9 -0
  53. package/src/jasmineUtils.js +218 -0
  54. package/src/jasmineUtils.js.map +1 -0
  55. package/src/jestMatchersObject.d.ts +14 -0
  56. package/src/jestMatchersObject.js +78 -0
  57. package/src/jestMatchersObject.js.map +1 -0
  58. package/src/matcher-utils/Replaceable.d.ts +18 -0
  59. package/src/matcher-utils/Replaceable.js +57 -0
  60. package/src/matcher-utils/Replaceable.js.map +1 -0
  61. package/src/matcher-utils/deepCyclicCopyReplaceable.d.ts +8 -0
  62. package/src/matcher-utils/deepCyclicCopyReplaceable.js +96 -0
  63. package/src/matcher-utils/deepCyclicCopyReplaceable.js.map +1 -0
  64. package/src/matcher-utils/index.d.ts +53 -0
  65. package/src/matcher-utils/index.js +341 -0
  66. package/src/matcher-utils/index.js.map +1 -0
  67. package/src/matchers.d.ts +11 -0
  68. package/src/matchers.js +575 -0
  69. package/src/matchers.js.map +1 -0
  70. package/src/message-util/index.d.ts +11 -0
  71. package/src/message-util/index.js +34 -0
  72. package/src/message-util/index.js.map +1 -0
  73. package/src/pretty-format/collections.d.ts +33 -0
  74. package/src/pretty-format/collections.js +130 -0
  75. package/src/pretty-format/collections.js.map +1 -0
  76. package/src/pretty-format/index.d.ts +25 -0
  77. package/src/pretty-format/index.js +390 -0
  78. package/src/pretty-format/index.js.map +1 -0
  79. package/src/pretty-format/plugins/AsymmetricMatcher.d.ts +12 -0
  80. package/src/pretty-format/plugins/AsymmetricMatcher.js +53 -0
  81. package/src/pretty-format/plugins/AsymmetricMatcher.js.map +1 -0
  82. package/src/pretty-format/plugins/ConvertAnsi.d.ts +12 -0
  83. package/src/pretty-format/plugins/ConvertAnsi.js +58 -0
  84. package/src/pretty-format/plugins/ConvertAnsi.js.map +1 -0
  85. package/src/pretty-format/plugins/DOMCollection.d.ts +12 -0
  86. package/src/pretty-format/plugins/DOMCollection.js +39 -0
  87. package/src/pretty-format/plugins/DOMCollection.js.map +1 -0
  88. package/src/pretty-format/plugins/DOMElement.d.ts +12 -0
  89. package/src/pretty-format/plugins/DOMElement.js +68 -0
  90. package/src/pretty-format/plugins/DOMElement.js.map +1 -0
  91. package/src/pretty-format/plugins/Immutable.d.ts +12 -0
  92. package/src/pretty-format/plugins/Immutable.js +113 -0
  93. package/src/pretty-format/plugins/Immutable.js.map +1 -0
  94. package/src/pretty-format/plugins/ReactTestComponent.d.ts +19 -0
  95. package/src/pretty-format/plugins/ReactTestComponent.js +29 -0
  96. package/src/pretty-format/plugins/ReactTestComponent.js.map +1 -0
  97. package/src/pretty-format/plugins/lib/escapeHTML.d.ts +8 -0
  98. package/src/pretty-format/plugins/lib/escapeHTML.js +10 -0
  99. package/src/pretty-format/plugins/lib/escapeHTML.js.map +1 -0
  100. package/src/pretty-format/plugins/lib/markup.d.ts +14 -0
  101. package/src/pretty-format/plugins/lib/markup.js +98 -0
  102. package/src/pretty-format/plugins/lib/markup.js.map +1 -0
  103. package/src/pretty-format/types.d.ts +109 -0
  104. package/src/pretty-format/types.js +8 -0
  105. package/src/pretty-format/types.js.map +1 -0
  106. package/src/print.d.ts +16 -0
  107. package/src/print.js +71 -0
  108. package/src/print.js.map +1 -0
  109. package/src/spyMatchers.d.ts +10 -0
  110. package/src/spyMatchers.js +766 -0
  111. package/src/spyMatchers.js.map +1 -0
  112. package/src/test-utils/ConditionalTest.d.ts +10 -0
  113. package/src/test-utils/ConditionalTest.js +25 -0
  114. package/src/test-utils/ConditionalTest.js.map +1 -0
  115. package/src/test-utils/alignedAnsiStyleSerializer.d.ts +9 -0
  116. package/src/test-utils/alignedAnsiStyleSerializer.js +46 -0
  117. package/src/test-utils/alignedAnsiStyleSerializer.js.map +1 -0
  118. package/src/test-utils/config.d.ts +10 -0
  119. package/src/test-utils/config.js +143 -0
  120. package/src/test-utils/config.js.map +1 -0
  121. package/src/test-utils/index.d.ts +10 -0
  122. package/src/test-utils/index.js +10 -0
  123. package/src/test-utils/index.js.map +1 -0
  124. package/src/toThrowMatchers.d.ts +12 -0
  125. package/src/toThrowMatchers.js +258 -0
  126. package/src/toThrowMatchers.js.map +1 -0
  127. package/src/types.d.ts +327 -0
  128. package/src/types.js +9 -0
  129. package/src/types.js.map +1 -0
  130. package/src/utils.d.ts +26 -0
  131. package/src/utils.js +303 -0
  132. package/src/utils.js.map +1 -0
@@ -0,0 +1,526 @@
1
+ /**
2
+ * Diff Match and Patch
3
+ * Copyright 2018 The diff-match-patch Authors.
4
+ * https://github.com/google/diff-match-patch
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ /**
19
+ * @fileoverview Computes the difference between two texts to create a patch.
20
+ * Applies the patch onto another text, allowing for errors.
21
+ * @author fraser@google.com (Neil Fraser)
22
+ */
23
+ /**
24
+ * CHANGES by pedrottimark to diff_match_patch_uncompressed.ts file:
25
+ *
26
+ * 1. Delete anything not needed to use diff_cleanupSemantic method
27
+ * 2. Convert from prototype properties to var declarations
28
+ * 3. Convert Diff to class from constructor and prototype
29
+ * 4. Add type annotations for arguments and return values
30
+ * 5. Add exports
31
+ */
32
+ /**
33
+ * The data structure representing a diff is an array of tuples:
34
+ * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]
35
+ * which means: delete 'Hello', add 'Goodbye' and keep ' world.'
36
+ */
37
+ var DIFF_DELETE = -1;
38
+ var DIFF_INSERT = 1;
39
+ var DIFF_EQUAL = 0;
40
+ /**
41
+ * Class representing one diff tuple.
42
+ * Attempts to look like a two-element array (which is what this used to be).
43
+ * @param {number} op Operation, one of: DIFF_DELETE, DIFF_INSERT, DIFF_EQUAL.
44
+ * @param {string} text Text to be deleted, inserted, or retained.
45
+ * @constructor
46
+ */
47
+ class Diff {
48
+ constructor(op, text) {
49
+ this[0] = op;
50
+ this[1] = text;
51
+ }
52
+ }
53
+ /**
54
+ * Determine the common prefix of two strings.
55
+ * @param {string} text1 First string.
56
+ * @param {string} text2 Second string.
57
+ * @return {number} The number of characters common to the start of each
58
+ * string.
59
+ */
60
+ var diff_commonPrefix = function (text1, text2) {
61
+ // Quick check for common null cases.
62
+ if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {
63
+ return 0;
64
+ }
65
+ // Binary search.
66
+ // Performance analysis: https://neil.fraser.name/news/2007/10/09/
67
+ var pointermin = 0;
68
+ var pointermax = Math.min(text1.length, text2.length);
69
+ var pointermid = pointermax;
70
+ var pointerstart = 0;
71
+ while (pointermin < pointermid) {
72
+ if (text1.substring(pointerstart, pointermid) ==
73
+ text2.substring(pointerstart, pointermid)) {
74
+ pointermin = pointermid;
75
+ pointerstart = pointermin;
76
+ }
77
+ else {
78
+ pointermax = pointermid;
79
+ }
80
+ pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);
81
+ }
82
+ return pointermid;
83
+ };
84
+ /**
85
+ * Determine the common suffix of two strings.
86
+ * @param {string} text1 First string.
87
+ * @param {string} text2 Second string.
88
+ * @return {number} The number of characters common to the end of each string.
89
+ */
90
+ var diff_commonSuffix = function (text1, text2) {
91
+ // Quick check for common null cases.
92
+ if (!text1 ||
93
+ !text2 ||
94
+ text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {
95
+ return 0;
96
+ }
97
+ // Binary search.
98
+ // Performance analysis: https://neil.fraser.name/news/2007/10/09/
99
+ var pointermin = 0;
100
+ var pointermax = Math.min(text1.length, text2.length);
101
+ var pointermid = pointermax;
102
+ var pointerend = 0;
103
+ while (pointermin < pointermid) {
104
+ if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==
105
+ text2.substring(text2.length - pointermid, text2.length - pointerend)) {
106
+ pointermin = pointermid;
107
+ pointerend = pointermin;
108
+ }
109
+ else {
110
+ pointermax = pointermid;
111
+ }
112
+ pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);
113
+ }
114
+ return pointermid;
115
+ };
116
+ /**
117
+ * Determine if the suffix of one string is the prefix of another.
118
+ * @param {string} text1 First string.
119
+ * @param {string} text2 Second string.
120
+ * @return {number} The number of characters common to the end of the first
121
+ * string and the start of the second string.
122
+ * @private
123
+ */
124
+ var diff_commonOverlap_ = function (text1, text2) {
125
+ // Cache the text lengths to prevent multiple calls.
126
+ var text1_length = text1.length;
127
+ var text2_length = text2.length;
128
+ // Eliminate the null case.
129
+ if (text1_length == 0 || text2_length == 0) {
130
+ return 0;
131
+ }
132
+ // Truncate the longer string.
133
+ if (text1_length > text2_length) {
134
+ text1 = text1.substring(text1_length - text2_length);
135
+ }
136
+ else if (text1_length < text2_length) {
137
+ text2 = text2.substring(0, text1_length);
138
+ }
139
+ var text_length = Math.min(text1_length, text2_length);
140
+ // Quick check for the worst case.
141
+ if (text1 == text2) {
142
+ return text_length;
143
+ }
144
+ // Start by looking for a single character match
145
+ // and increase length until no match is found.
146
+ // Performance analysis: https://neil.fraser.name/news/2010/11/04/
147
+ var best = 0;
148
+ var length = 1;
149
+ while (true) {
150
+ var pattern = text1.substring(text_length - length);
151
+ var found = text2.indexOf(pattern);
152
+ if (found == -1) {
153
+ return best;
154
+ }
155
+ length += found;
156
+ if (found == 0 ||
157
+ text1.substring(text_length - length) == text2.substring(0, length)) {
158
+ best = length;
159
+ length++;
160
+ }
161
+ }
162
+ };
163
+ /**
164
+ * Reduce the number of edits by eliminating semantically trivial equalities.
165
+ * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.
166
+ */
167
+ var diff_cleanupSemantic = function (diffs) {
168
+ var changes = false;
169
+ var equalities = []; // Stack of indices where equalities are found.
170
+ var equalitiesLength = 0; // Keeping our own length var is faster in JS.
171
+ /** @type {?string} */
172
+ var lastEquality = null;
173
+ // Always equal to diffs[equalities[equalitiesLength - 1]][1]
174
+ var pointer = 0; // Index of current position.
175
+ // Number of characters that changed prior to the equality.
176
+ var length_insertions1 = 0;
177
+ var length_deletions1 = 0;
178
+ // Number of characters that changed after the equality.
179
+ var length_insertions2 = 0;
180
+ var length_deletions2 = 0;
181
+ while (pointer < diffs.length) {
182
+ if (diffs[pointer][0] == DIFF_EQUAL) {
183
+ // Equality found.
184
+ equalities[equalitiesLength++] = pointer;
185
+ length_insertions1 = length_insertions2;
186
+ length_deletions1 = length_deletions2;
187
+ length_insertions2 = 0;
188
+ length_deletions2 = 0;
189
+ lastEquality = diffs[pointer][1];
190
+ }
191
+ else {
192
+ // An insertion or deletion.
193
+ if (diffs[pointer][0] == DIFF_INSERT) {
194
+ length_insertions2 += diffs[pointer][1].length;
195
+ }
196
+ else {
197
+ length_deletions2 += diffs[pointer][1].length;
198
+ }
199
+ // Eliminate an equality that is smaller or equal to the edits on both
200
+ // sides of it.
201
+ if (lastEquality &&
202
+ lastEquality.length <=
203
+ Math.max(length_insertions1, length_deletions1) &&
204
+ lastEquality.length <=
205
+ Math.max(length_insertions2, length_deletions2)) {
206
+ // Duplicate record.
207
+ diffs.splice(equalities[equalitiesLength - 1], 0, new Diff(DIFF_DELETE, lastEquality));
208
+ // Change second copy to insert.
209
+ diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT;
210
+ // Throw away the equality we just deleted.
211
+ equalitiesLength--;
212
+ // Throw away the previous equality (it needs to be reevaluated).
213
+ equalitiesLength--;
214
+ pointer =
215
+ equalitiesLength > 0
216
+ ? equalities[equalitiesLength - 1]
217
+ : -1;
218
+ length_insertions1 = 0; // Reset the counters.
219
+ length_deletions1 = 0;
220
+ length_insertions2 = 0;
221
+ length_deletions2 = 0;
222
+ lastEquality = null;
223
+ changes = true;
224
+ }
225
+ }
226
+ pointer++;
227
+ }
228
+ // Normalize the diff.
229
+ if (changes) {
230
+ diff_cleanupMerge(diffs);
231
+ }
232
+ diff_cleanupSemanticLossless(diffs);
233
+ // Find any overlaps between deletions and insertions.
234
+ // e.g: <del>abcxxx</del><ins>xxxdef</ins>
235
+ // -> <del>abc</del>xxx<ins>def</ins>
236
+ // e.g: <del>xxxabc</del><ins>defxxx</ins>
237
+ // -> <ins>def</ins>xxx<del>abc</del>
238
+ // Only extract an overlap if it is as big as the edit ahead or behind it.
239
+ pointer = 1;
240
+ while (pointer < diffs.length) {
241
+ if (diffs[pointer - 1][0] == DIFF_DELETE &&
242
+ diffs[pointer][0] == DIFF_INSERT) {
243
+ var deletion = diffs[pointer - 1][1];
244
+ var insertion = diffs[pointer][1];
245
+ var overlap_length1 = diff_commonOverlap_(deletion, insertion);
246
+ var overlap_length2 = diff_commonOverlap_(insertion, deletion);
247
+ if (overlap_length1 >= overlap_length2) {
248
+ if (overlap_length1 >= deletion.length / 2 ||
249
+ overlap_length1 >= insertion.length / 2) {
250
+ // Overlap found. Insert an equality and trim the surrounding edits.
251
+ diffs.splice(pointer, 0, new Diff(DIFF_EQUAL, insertion.substring(0, overlap_length1)));
252
+ diffs[pointer - 1][1] = deletion.substring(0, deletion.length - overlap_length1);
253
+ diffs[pointer + 1][1] =
254
+ insertion.substring(overlap_length1);
255
+ pointer++;
256
+ }
257
+ }
258
+ else {
259
+ if (overlap_length2 >= deletion.length / 2 ||
260
+ overlap_length2 >= insertion.length / 2) {
261
+ // Reverse overlap found.
262
+ // Insert an equality and swap and trim the surrounding edits.
263
+ diffs.splice(pointer, 0, new Diff(DIFF_EQUAL, deletion.substring(0, overlap_length2)));
264
+ diffs[pointer - 1][0] = DIFF_INSERT;
265
+ diffs[pointer - 1][1] = insertion.substring(0, insertion.length - overlap_length2);
266
+ diffs[pointer + 1][0] = DIFF_DELETE;
267
+ diffs[pointer + 1][1] = deletion.substring(overlap_length2);
268
+ pointer++;
269
+ }
270
+ }
271
+ pointer++;
272
+ }
273
+ pointer++;
274
+ }
275
+ };
276
+ /**
277
+ * Look for single edits surrounded on both sides by equalities
278
+ * which can be shifted sideways to align the edit to a word boundary.
279
+ * e.g: The c<ins>at c</ins>ame. -> The <ins>cat </ins>came.
280
+ * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.
281
+ */
282
+ var diff_cleanupSemanticLossless = function (diffs) {
283
+ /**
284
+ * Given two strings, compute a score representing whether the internal
285
+ * boundary falls on logical boundaries.
286
+ * Scores range from 6 (best) to 0 (worst).
287
+ * Closure, but does not reference any external variables.
288
+ * @param {string} one First string.
289
+ * @param {string} two Second string.
290
+ * @return {number} The score.
291
+ * @private
292
+ */
293
+ function diff_cleanupSemanticScore_(one, two) {
294
+ if (!one || !two) {
295
+ // Edges are the best.
296
+ return 6;
297
+ }
298
+ // Each port of this function behaves slightly differently due to
299
+ // subtle differences in each language's definition of things like
300
+ // 'whitespace'. Since this function's purpose is largely cosmetic,
301
+ // the choice has been made to use each language's native features
302
+ // rather than force total conformity.
303
+ var char1 = one.charAt(one.length - 1);
304
+ var char2 = two.charAt(0);
305
+ var nonAlphaNumeric1 = char1.match(nonAlphaNumericRegex_);
306
+ var nonAlphaNumeric2 = char2.match(nonAlphaNumericRegex_);
307
+ var whitespace1 = nonAlphaNumeric1 && char1.match(whitespaceRegex_);
308
+ var whitespace2 = nonAlphaNumeric2 && char2.match(whitespaceRegex_);
309
+ var lineBreak1 = whitespace1 && char1.match(linebreakRegex_);
310
+ var lineBreak2 = whitespace2 && char2.match(linebreakRegex_);
311
+ var blankLine1 = lineBreak1 && one.match(blanklineEndRegex_);
312
+ var blankLine2 = lineBreak2 && two.match(blanklineStartRegex_);
313
+ if (blankLine1 || blankLine2) {
314
+ // Five points for blank lines.
315
+ return 5;
316
+ }
317
+ else if (lineBreak1 || lineBreak2) {
318
+ // Four points for line breaks.
319
+ return 4;
320
+ }
321
+ else if (nonAlphaNumeric1 && !whitespace1 && whitespace2) {
322
+ // Three points for end of sentences.
323
+ return 3;
324
+ }
325
+ else if (whitespace1 || whitespace2) {
326
+ // Two points for whitespace.
327
+ return 2;
328
+ }
329
+ else if (nonAlphaNumeric1 || nonAlphaNumeric2) {
330
+ // One point for non-alphanumeric.
331
+ return 1;
332
+ }
333
+ return 0;
334
+ }
335
+ var pointer = 1;
336
+ // Intentionally ignore the first and last element (don't need checking).
337
+ while (pointer < diffs.length - 1) {
338
+ if (diffs[pointer - 1][0] == DIFF_EQUAL &&
339
+ diffs[pointer + 1][0] == DIFF_EQUAL) {
340
+ // This is a single edit surrounded by equalities.
341
+ var equality1 = diffs[pointer - 1][1];
342
+ var edit = diffs[pointer][1];
343
+ var equality2 = diffs[pointer + 1][1];
344
+ // First, shift the edit as far left as possible.
345
+ var commonOffset = diff_commonSuffix(equality1, edit);
346
+ if (commonOffset) {
347
+ var commonString = edit.substring(edit.length - commonOffset);
348
+ equality1 = equality1.substring(0, equality1.length - commonOffset);
349
+ edit =
350
+ commonString +
351
+ edit.substring(0, edit.length - commonOffset);
352
+ equality2 = commonString + equality2;
353
+ }
354
+ // Second, step character by character right, looking for the best fit.
355
+ var bestEquality1 = equality1;
356
+ var bestEdit = edit;
357
+ var bestEquality2 = equality2;
358
+ var bestScore = diff_cleanupSemanticScore_(equality1, edit) +
359
+ diff_cleanupSemanticScore_(edit, equality2);
360
+ while (edit.charAt(0) === equality2.charAt(0)) {
361
+ equality1 += edit.charAt(0);
362
+ edit = edit.substring(1) + equality2.charAt(0);
363
+ equality2 = equality2.substring(1);
364
+ var score = diff_cleanupSemanticScore_(equality1, edit) +
365
+ diff_cleanupSemanticScore_(edit, equality2);
366
+ // The >= encourages trailing rather than leading whitespace on edits.
367
+ if (score >= bestScore) {
368
+ bestScore = score;
369
+ bestEquality1 = equality1;
370
+ bestEdit = edit;
371
+ bestEquality2 = equality2;
372
+ }
373
+ }
374
+ if (diffs[pointer - 1][1] != bestEquality1) {
375
+ // We have an improvement, save it back to the diff.
376
+ if (bestEquality1) {
377
+ diffs[pointer - 1][1] = bestEquality1;
378
+ }
379
+ else {
380
+ diffs.splice(pointer - 1, 1);
381
+ pointer--;
382
+ }
383
+ diffs[pointer][1] = bestEdit;
384
+ if (bestEquality2) {
385
+ diffs[pointer + 1][1] = bestEquality2;
386
+ }
387
+ else {
388
+ diffs.splice(pointer + 1, 1);
389
+ pointer--;
390
+ }
391
+ }
392
+ }
393
+ pointer++;
394
+ }
395
+ };
396
+ // Define some regex patterns for matching boundaries.
397
+ var nonAlphaNumericRegex_ = /[^a-zA-Z0-9]/;
398
+ var whitespaceRegex_ = /\s/;
399
+ var linebreakRegex_ = /[\r\n]/;
400
+ var blanklineEndRegex_ = /\n\r?\n$/;
401
+ var blanklineStartRegex_ = /^\r?\n\r?\n/;
402
+ /**
403
+ * Reorder and merge like edit sections. Merge equalities.
404
+ * Any edit section can move as long as it doesn't cross an equality.
405
+ * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.
406
+ */
407
+ var diff_cleanupMerge = function (diffs) {
408
+ // Add a dummy entry at the end.
409
+ diffs.push(new Diff(DIFF_EQUAL, ''));
410
+ var pointer = 0;
411
+ var count_delete = 0;
412
+ var count_insert = 0;
413
+ var text_delete = '';
414
+ var text_insert = '';
415
+ var commonlength;
416
+ while (pointer < diffs.length) {
417
+ switch (diffs[pointer][0]) {
418
+ case DIFF_INSERT:
419
+ count_insert++;
420
+ text_insert += diffs[pointer][1];
421
+ pointer++;
422
+ break;
423
+ case DIFF_DELETE:
424
+ count_delete++;
425
+ text_delete += diffs[pointer][1];
426
+ pointer++;
427
+ break;
428
+ case DIFF_EQUAL:
429
+ // Upon reaching an equality, check for prior redundancies.
430
+ if (count_delete + count_insert > 1) {
431
+ if (count_delete !== 0 && count_insert !== 0) {
432
+ // Factor out any common prefixies.
433
+ commonlength = diff_commonPrefix(text_insert, text_delete);
434
+ if (commonlength !== 0) {
435
+ if (pointer - count_delete - count_insert > 0 &&
436
+ diffs[pointer - count_delete - count_insert - 1][0] == DIFF_EQUAL) {
437
+ diffs[pointer - count_delete - count_insert - 1][1] += text_insert.substring(0, commonlength);
438
+ }
439
+ else {
440
+ diffs.splice(0, 0, new Diff(DIFF_EQUAL, text_insert.substring(0, commonlength)));
441
+ pointer++;
442
+ }
443
+ text_insert = text_insert.substring(commonlength);
444
+ text_delete = text_delete.substring(commonlength);
445
+ }
446
+ // Factor out any common suffixies.
447
+ commonlength = diff_commonSuffix(text_insert, text_delete);
448
+ if (commonlength !== 0) {
449
+ diffs[pointer][1] =
450
+ text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1];
451
+ text_insert = text_insert.substring(0, text_insert.length - commonlength);
452
+ text_delete = text_delete.substring(0, text_delete.length - commonlength);
453
+ }
454
+ }
455
+ // Delete the offending records and add the merged ones.
456
+ pointer -= count_delete + count_insert;
457
+ diffs.splice(pointer, count_delete + count_insert);
458
+ if (text_delete.length) {
459
+ diffs.splice(pointer, 0, new Diff(DIFF_DELETE, text_delete));
460
+ pointer++;
461
+ }
462
+ if (text_insert.length) {
463
+ diffs.splice(pointer, 0, new Diff(DIFF_INSERT, text_insert));
464
+ pointer++;
465
+ }
466
+ pointer++;
467
+ }
468
+ else if (pointer !== 0 &&
469
+ diffs[pointer - 1][0] == DIFF_EQUAL) {
470
+ // Merge this equality with the previous one.
471
+ diffs[pointer - 1][1] += diffs[pointer][1];
472
+ diffs.splice(pointer, 1);
473
+ }
474
+ else {
475
+ pointer++;
476
+ }
477
+ count_insert = 0;
478
+ count_delete = 0;
479
+ text_delete = '';
480
+ text_insert = '';
481
+ break;
482
+ }
483
+ }
484
+ if (diffs[diffs.length - 1][1] === '') {
485
+ diffs.pop(); // Remove the dummy entry at the end.
486
+ }
487
+ // Second pass: look for single edits surrounded on both sides by equalities
488
+ // which can be shifted sideways to eliminate an equality.
489
+ // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC
490
+ var changes = false;
491
+ pointer = 1;
492
+ // Intentionally ignore the first and last element (don't need checking).
493
+ while (pointer < diffs.length - 1) {
494
+ if (diffs[pointer - 1][0] == DIFF_EQUAL &&
495
+ diffs[pointer + 1][0] == DIFF_EQUAL) {
496
+ // This is a single edit surrounded by equalities.
497
+ if (diffs[pointer][1].substring(diffs[pointer][1].length - diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {
498
+ // Shift the edit over the previous equality.
499
+ diffs[pointer][1] =
500
+ diffs[pointer - 1][1] +
501
+ diffs[pointer][1].substring(0, diffs[pointer][1].length - diffs[pointer - 1][1].length);
502
+ diffs[pointer + 1][1] =
503
+ diffs[pointer - 1][1] + diffs[pointer + 1][1];
504
+ diffs.splice(pointer - 1, 1);
505
+ changes = true;
506
+ }
507
+ else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==
508
+ diffs[pointer + 1][1]) {
509
+ // Shift the edit over the next equality.
510
+ diffs[pointer - 1][1] += diffs[pointer + 1][1];
511
+ diffs[pointer][1] =
512
+ diffs[pointer][1].substring(diffs[pointer + 1][1].length) +
513
+ diffs[pointer + 1][1];
514
+ diffs.splice(pointer + 1, 1);
515
+ changes = true;
516
+ }
517
+ }
518
+ pointer++;
519
+ }
520
+ // If shifts were made, the diff needs reordering and another shift sweep.
521
+ if (changes) {
522
+ diff_cleanupMerge(diffs);
523
+ }
524
+ };
525
+ export { Diff, DIFF_EQUAL, DIFF_DELETE, DIFF_INSERT, diff_cleanupSemantic as cleanupSemantic, };
526
+ //# sourceMappingURL=cleanupSemantic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanupSemantic.js","sourceRoot":"","sources":["cleanupSemantic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ export declare const NO_DIFF_MESSAGE = "Compared values have no visual difference.";
8
+ export declare const SIMILAR_MESSAGE: string;
9
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ export const NO_DIFF_MESSAGE = 'Compared values have no visual difference.';
8
+ export const SIMILAR_MESSAGE = 'Compared values serialize to the same structure.\n' +
9
+ 'Printing internal object structure without calling `toJSON` instead.';
10
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,4CAA4C,CAAC;AAE5E,MAAM,CAAC,MAAM,eAAe,GACxB,oDAAoD;IACpD,sEAAsE,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { Diff } from './cleanupSemantic';
8
+ import type { DiffOptions, DiffOptionsNormalized } from './types';
9
+ export declare const printDiffLines: (diffs: Array<Diff>, options: DiffOptionsNormalized) => string;
10
+ export declare const diffLinesUnified: (aLines: Array<string>, bLines: Array<string>, options?: DiffOptions) => string;
11
+ export declare const diffLinesUnified2: (aLinesDisplay: Array<string>, bLinesDisplay: Array<string>, aLinesCompare: Array<string>, bLinesCompare: Array<string>, options?: DiffOptions) => string;
12
+ export declare const diffLinesRaw: (aLines: Array<string>, bLines: Array<string>) => Array<Diff>;
13
+ //# sourceMappingURL=diffLines.d.ts.map