release-notes.md
  1  # Release Notes
  2  
  3  ## Development
  4  
  5  [Commits](https://github.com/kpdecker/jsdiff/compare/v5.0.0...master)
  6  
  7  ## v5.0.0
  8  
  9  - Breaking: UMD export renamed from `JsDiff` to `Diff`.
 10  - Breaking: Newlines separated into separate tokens for word diff.
 11  - Breaking: Unified diffs now match ["quirks"](https://www.artima.com/weblogs/viewpost.jsp?thread=164293)
 12  
 13  [Commits](https://github.com/kpdecker/jsdiff/compare/v4.0.1...v5.0.0)
 14  
 15  ## v4.0.1 - January 6th, 2019
 16  
 17  - Fix main reference path - b826104
 18  
 19  [Commits](https://github.com/kpdecker/jsdiff/compare/v4.0.0...v4.0.1)
 20  
 21  ## v4.0.0 - January 5th, 2019
 22  
 23  - [#94](https://github.com/kpdecker/jsdiff/issues/94) - Missing "No newline at end of file" when comparing two texts that do not end in newlines ([@federicotdn](https://api.github.com/users/federicotdn))
 24  - [#227](https://github.com/kpdecker/jsdiff/issues/227) - Licence
 25  - [#199](https://github.com/kpdecker/jsdiff/issues/199) - Import statement for jsdiff
 26  - [#159](https://github.com/kpdecker/jsdiff/issues/159) - applyPatch affecting wrong line number with with new lines
 27  - [#8](https://github.com/kpdecker/jsdiff/issues/8) - A new state "replace"
 28  - Drop ie9 from karma targets - 79c31bd
 29  - Upgrade deps. Convert from webpack to rollup - 2c1a29c
 30  - Make ()[]"' as word boundaries between each other - f27b899
 31  - jsdiff: Replaced phantomJS by chrome - ec3114e
 32  - Add yarn.lock to .npmignore - 29466d8
 33  
 34  Compatibility notes:
 35  
 36  - Bower and Component packages no longer supported
 37  
 38  [Commits](https://github.com/kpdecker/jsdiff/compare/v3.5.0...v4.0.0)
 39  
 40  ## v3.5.0 - March 4th, 2018
 41  
 42  - Omit redundant slice in join method of diffArrays - 1023590
 43  - Support patches with empty lines - fb0f208
 44  - Accept a custom JSON replacer function for JSON diffing - 69c7f0a
 45  - Optimize parch header parser - 2aec429
 46  - Fix typos - e89c832
 47  
 48  [Commits](https://github.com/kpdecker/jsdiff/compare/v3.4.0...v3.5.0)
 49  
 50  ## v3.4.0 - October 7th, 2017
 51  
 52  - [#183](https://github.com/kpdecker/jsdiff/issues/183) - Feature request: ability to specify a custom equality checker for `diffArrays`
 53  - [#173](https://github.com/kpdecker/jsdiff/issues/173) - Bug: diffArrays gives wrong result on array of booleans
 54  - [#158](https://github.com/kpdecker/jsdiff/issues/158) - diffArrays will not compare the empty string in array?
 55  - comparator for custom equality checks - 30e141e
 56  - count oldLines and newLines when there are conflicts - 53bf384
 57  - Fix: diffArrays can compare falsey items - 9e24284
 58  - Docs: Replace grunt with npm test - 00e2f94
 59  
 60  [Commits](https://github.com/kpdecker/jsdiff/compare/v3.3.1...v3.4.0)
 61  
 62  ## v3.3.1 - September 3rd, 2017
 63  
 64  - [#141](https://github.com/kpdecker/jsdiff/issues/141) - Cannot apply patch because my file delimiter is "/r/n" instead of "/n"
 65  - [#192](https://github.com/kpdecker/jsdiff/pull/192) - Fix: Bad merge when adding new files (#189)
 66  - correct spelling mistake - 21fa478
 67  
 68  [Commits](https://github.com/kpdecker/jsdiff/compare/v3.3.0...v3.3.1)
 69  
 70  ## v3.3.0 - July 5th, 2017
 71  
 72  - [#114](https://github.com/kpdecker/jsdiff/issues/114) - /patch/merge not exported
 73  - Gracefully accept invalid newStart in hunks, same as patch(1) does. - d8a3635
 74  - Use regex rather than starts/ends with for parsePatch - 6cab62c
 75  - Add browser flag - e64f674
 76  - refactor: simplified code a bit more - 8f8e0f2
 77  - refactor: simplified code a bit - b094a6f
 78  - fix: some corrections re ignoreCase option - 3c78fd0
 79  - ignoreCase option - 3cbfbb5
 80  - Sanitize filename while parsing patches - 2fe8129
 81  - Added better installation methods - aced50b
 82  - Simple export of functionality - 8690f31
 83  
 84  [Commits](https://github.com/kpdecker/jsdiff/compare/v3.2.0...v3.3.0)
 85  
 86  ## v3.2.0 - December 26th, 2016
 87  
 88  - [#156](https://github.com/kpdecker/jsdiff/pull/156) - Add `undefinedReplacement` option to `diffJson` ([@ewnd9](https://api.github.com/users/ewnd9))
 89  - [#154](https://github.com/kpdecker/jsdiff/pull/154) - Add `examples` and `images` to `.npmignore`. ([@wtgtybhertgeghgtwtg](https://api.github.com/users/wtgtybhertgeghgtwtg))
 90  - [#153](https://github.com/kpdecker/jsdiff/pull/153) - feat(structuredPatch): Pass options to diffLines ([@Kiougar](https://api.github.com/users/Kiougar))
 91  
 92  [Commits](https://github.com/kpdecker/jsdiff/compare/v3.1.0...v3.2.0)
 93  
 94  ## v3.1.0 - November 27th, 2016
 95  
 96  - [#146](https://github.com/kpdecker/jsdiff/pull/146) - JsDiff.diffArrays to compare arrays ([@wvanderdeijl](https://api.github.com/users/wvanderdeijl))
 97  - [#144](https://github.com/kpdecker/jsdiff/pull/144) - Split file using all possible line delimiter instead of hard-coded "/n" and join lines back using the original delimiters ([@soulbeing](https://api.github.com/users/soulbeing))
 98  
 99  [Commits](https://github.com/kpdecker/jsdiff/compare/v3.0.1...v3.1.0)
100  
101  ## v3.0.1 - October 9th, 2016
102  
103  - [#139](https://github.com/kpdecker/jsdiff/pull/139) - Make README.md look nicer in npmjs.com ([@takenspc](https://api.github.com/users/takenspc))
104  - [#135](https://github.com/kpdecker/jsdiff/issues/135) - parsePatch combines patches from multiple files into a single IUniDiff when there is no "Index" line ([@ramya-rao-a](https://api.github.com/users/ramya-rao-a))
105  - [#124](https://github.com/kpdecker/jsdiff/issues/124) - IE7/IE8 failure since 2.0.0 ([@boneskull](https://api.github.com/users/boneskull))
106  
107  [Commits](https://github.com/kpdecker/jsdiff/compare/v3.0.0...v3.0.1)
108  
109  ## v3.0.0 - August 23rd, 2016
110  
111  - [#130](https://github.com/kpdecker/jsdiff/pull/130) - Add callback argument to applyPatches `patched` option ([@piranna](https://api.github.com/users/piranna))
112  - [#120](https://github.com/kpdecker/jsdiff/pull/120) - Correctly handle file names containing spaces ([@adius](https://api.github.com/users/adius))
113  - [#119](https://github.com/kpdecker/jsdiff/pull/119) - Do single reflow ([@wifiextender](https://api.github.com/users/wifiextender))
114  - [#117](https://github.com/kpdecker/jsdiff/pull/117) - Make more usable with long strings. ([@abnbgist](https://api.github.com/users/abnbgist))
115  
116  Compatibility notes:
117  
118  - applyPatches patch callback now is async and requires the callback be called to continue operation
119  
120  [Commits](https://github.com/kpdecker/jsdiff/compare/v2.2.3...v3.0.0)
121  
122  ## v2.2.3 - May 31st, 2016
123  
124  - [#118](https://github.com/kpdecker/jsdiff/pull/118) - Add a fix for applying 0-length destination patches ([@chaaz](https://api.github.com/users/chaaz))
125  - [#115](https://github.com/kpdecker/jsdiff/pull/115) - Fixed grammar in README ([@krizalys](https://api.github.com/users/krizalys))
126  - [#113](https://github.com/kpdecker/jsdiff/pull/113) - fix typo ([@vmazare](https://api.github.com/users/vmazare))
127  
128  [Commits](https://github.com/kpdecker/jsdiff/compare/v2.2.2...v2.2.3)
129  
130  ## v2.2.2 - March 13th, 2016
131  
132  - [#102](https://github.com/kpdecker/jsdiff/issues/102) - diffJson with dates, returns empty curly braces ([@dr-dimitru](https://api.github.com/users/dr-dimitru))
133  - [#97](https://github.com/kpdecker/jsdiff/issues/97) - Whitespaces & diffWords ([@faiwer](https://api.github.com/users/faiwer))
134  - [#92](https://github.com/kpdecker/jsdiff/pull/92) - Fixes typo in the readme ([@bg451](https://api.github.com/users/bg451))
135  
136  [Commits](https://github.com/kpdecker/jsdiff/compare/v2.2.1...v2.2.2)
137  
138  ## v2.2.1 - November 12th, 2015
139  
140  - [#89](https://github.com/kpdecker/jsdiff/pull/89) - add in display selector to readme ([@FranDias](https://api.github.com/users/FranDias))
141  - [#88](https://github.com/kpdecker/jsdiff/pull/88) - Split diffs based on file headers instead of 'Index:' metadata ([@piranna](https://api.github.com/users/piranna))
142  
143  [Commits](https://github.com/kpdecker/jsdiff/compare/v2.2.0...v2.2.1)
144  
145  ## v2.2.0 - October 29th, 2015
146  
147  - [#80](https://github.com/kpdecker/jsdiff/pull/80) - Fix a typo: applyPath -> applyPatch ([@fluxxu](https://api.github.com/users/fluxxu))
148  - [#83](https://github.com/kpdecker/jsdiff/pull/83) - Add basic fuzzy matching to applyPatch ([@piranna](https://github.com/piranna))
149    [Commits](https://github.com/kpdecker/jsdiff/compare/v2.2.0...v2.2.0)
150  
151  ## v2.2.0 - October 29th, 2015
152  
153  - [#80](https://github.com/kpdecker/jsdiff/pull/80) - Fix a typo: applyPath -> applyPatch ([@fluxxu](https://api.github.com/users/fluxxu))
154  - [#83](https://github.com/kpdecker/jsdiff/pull/83) - Add basic fuzzy matching to applyPatch ([@piranna](https://github.com/piranna))
155    [Commits](https://github.com/kpdecker/jsdiff/compare/v2.1.3...v2.2.0)
156  
157  ## v2.1.3 - September 30th, 2015
158  
159  - [#78](https://github.com/kpdecker/jsdiff/pull/78) - fix: error throwing when apply patch to empty string ([@21paradox](https://api.github.com/users/21paradox))
160  
161  [Commits](https://github.com/kpdecker/jsdiff/compare/v2.1.2...v2.1.3)
162  
163  ## v2.1.2 - September 23rd, 2015
164  
165  - [#76](https://github.com/kpdecker/jsdiff/issues/76) - diff headers give error ([@piranna](https://api.github.com/users/piranna))
166  
167  [Commits](https://github.com/kpdecker/jsdiff/compare/v2.1.1...v2.1.2)
168  
169  ## v2.1.1 - September 9th, 2015
170  
171  - [#73](https://github.com/kpdecker/jsdiff/issues/73) - Is applyPatches() exposed in the API? ([@davidparsson](https://api.github.com/users/davidparsson))
172  
173  [Commits](https://github.com/kpdecker/jsdiff/compare/v2.1.0...v2.1.1)
174  
175  ## v2.1.0 - August 27th, 2015
176  
177  - [#72](https://github.com/kpdecker/jsdiff/issues/72) - Consider using options object API for flag permutations ([@kpdecker](https://api.github.com/users/kpdecker))
178  - [#70](https://github.com/kpdecker/jsdiff/issues/70) - diffWords treats \n at the end as significant whitespace ([@nesQuick](https://api.github.com/users/nesQuick))
179  - [#69](https://github.com/kpdecker/jsdiff/issues/69) - Missing count ([@wfalkwallace](https://api.github.com/users/wfalkwallace))
180  - [#68](https://github.com/kpdecker/jsdiff/issues/68) - diffLines seems broken ([@wfalkwallace](https://api.github.com/users/wfalkwallace))
181  - [#60](https://github.com/kpdecker/jsdiff/issues/60) - Support multiple diff hunks ([@piranna](https://api.github.com/users/piranna))
182  - [#54](https://github.com/kpdecker/jsdiff/issues/54) - Feature Request: 3-way merge ([@mog422](https://api.github.com/users/mog422))
183  - [#42](https://github.com/kpdecker/jsdiff/issues/42) - Fuzz factor for applyPatch ([@stuartpb](https://api.github.com/users/stuartpb))
184  - Move whitespace ignore out of equals method - 542063c
185  - Include source maps in babel output - 7f7ab21
186  - Merge diff/line and diff/patch implementations - 1597705
187  - Drop map utility method - 1ddc939
188  - Documentation for parsePatch and applyPatches - 27c4b77
189  
190  Compatibility notes:
191  
192  - The undocumented ignoreWhitespace flag has been removed from the Diff equality check directly. This implementation may be copied to diff utilities if dependencies existed on this functionality.
193  
194  [Commits](https://github.com/kpdecker/jsdiff/compare/v2.0.2...v2.1.0)
195  
196  ## v2.0.2 - August 8th, 2015
197  
198  - [#67](https://github.com/kpdecker/jsdiff/issues/67) - cannot require from npm module in node ([@commenthol](https://api.github.com/users/commenthol))
199  - Convert to chai since we don’t support IE8 - a96bbad
200  
201  [Commits](https://github.com/kpdecker/jsdiff/compare/v2.0.1...v2.0.2)
202  
203  ## v2.0.1 - August 7th, 2015
204  
205  - Add release build at proper step - 57542fd
206  
207  [Commits](https://github.com/kpdecker/jsdiff/compare/v2.0.0...v2.0.1)
208  
209  ## v2.0.0 - August 7th, 2015
210  
211  - [#66](https://github.com/kpdecker/jsdiff/issues/66) - Add karma and sauce tests ([@kpdecker](https://api.github.com/users/kpdecker))
212  - [#65](https://github.com/kpdecker/jsdiff/issues/65) - Create component repository for bower ([@kpdecker](https://api.github.com/users/kpdecker))
213  - [#64](https://github.com/kpdecker/jsdiff/issues/64) - Automatically call removeEmpty for all tokenizer calls ([@kpdecker](https://api.github.com/users/kpdecker))
214  - [#62](https://github.com/kpdecker/jsdiff/pull/62) - Allow access to structured object representation of patch data ([@bittrance](https://api.github.com/users/bittrance))
215  - [#61](https://github.com/kpdecker/jsdiff/pull/61) - Use svg instead of png to get better image quality ([@PeterDaveHello](https://api.github.com/users/PeterDaveHello))
216  - [#29](https://github.com/kpdecker/jsdiff/issues/29) - word tokenizer works only for 7 bit ascii ([@plasmagunman](https://api.github.com/users/plasmagunman))
217  
218  Compatibility notes:
219  
220  - `this.removeEmpty` is now called automatically for all instances. If this is not desired, this may be overridden on a per instance basis.
221  - The library has been refactored to use some ES6 features. The external APIs should remain the same, but bower projects that directly referenced the repository will now have to point to the [components/jsdiff](https://github.com/components/jsdiff) repository.
222  
223  [Commits](https://github.com/kpdecker/jsdiff/compare/v1.4.0...v2.0.0)
224  
225  ## v1.4.0 - May 6th, 2015
226  
227  - [#57](https://github.com/kpdecker/jsdiff/issues/57) - createPatch -> applyPatch failed. ([@mog422](https://api.github.com/users/mog422))
228  - [#56](https://github.com/kpdecker/jsdiff/pull/56) - Two files patch ([@rgeissert](https://api.github.com/users/rgeissert))
229  - [#14](https://github.com/kpdecker/jsdiff/issues/14) - Flip added and removed order? ([@jakesandlund](https://api.github.com/users/jakesandlund))
230  
231  [Commits](https://github.com/kpdecker/jsdiff/compare/v1.3.2...v1.4.0)
232  
233  ## v1.3.2 - March 30th, 2015
234  
235  - [#53](https://github.com/kpdecker/jsdiff/pull/53) - Updated README.MD with Bower installation instructions ([@ofbriggs](https://api.github.com/users/ofbriggs))
236  - [#49](https://github.com/kpdecker/jsdiff/issues/49) - Cannot read property 'oldlines' of undefined ([@nwtn](https://api.github.com/users/nwtn))
237  - [#44](https://github.com/kpdecker/jsdiff/issues/44) - invalid-meta jsdiff is missing "main" entry in bower.json
238  
239  [Commits](https://github.com/kpdecker/jsdiff/compare/v1.3.1...v1.3.2)
240  
241  ## v1.3.1 - March 13th, 2015
242  
243  - [#52](https://github.com/kpdecker/jsdiff/pull/52) - Fix for #51 Wrong result of JsDiff.diffLines ([@felicienfrancois](https://api.github.com/users/felicienfrancois))
244  
245  [Commits](https://github.com/kpdecker/jsdiff/compare/v1.3.0...v1.3.1)
246  
247  ## v1.3.0 - March 2nd, 2015
248  
249  - [#47](https://github.com/kpdecker/jsdiff/pull/47) - Adding Diff Trimmed Lines ([@JamesGould123](https://api.github.com/users/JamesGould123))
250  
251  [Commits](https://github.com/kpdecker/jsdiff/compare/v1.2.2...v1.3.0)
252  
253  ## v1.2.2 - January 26th, 2015
254  
255  - [#45](https://github.com/kpdecker/jsdiff/pull/45) - Fix AMD module loading ([@pedrocarrico](https://api.github.com/users/pedrocarrico))
256  - [#43](https://github.com/kpdecker/jsdiff/pull/43) - added a bower file ([@nbrustein](https://api.github.com/users/nbrustein))
257  
258  [Commits](https://github.com/kpdecker/jsdiff/compare/v1.2.1...v1.2.2)
259  
260  ## v1.2.1 - December 26th, 2014
261  
262  - [#41](https://github.com/kpdecker/jsdiff/pull/41) - change condition of using node export system. ([@ironhee](https://api.github.com/users/ironhee))
263  
264  [Commits](https://github.com/kpdecker/jsdiff/compare/v1.2.0...v1.2.1)
265  
266  ## v1.2.0 - November 29th, 2014
267  
268  - [#37](https://github.com/kpdecker/jsdiff/pull/37) - Add support for sentences. ([@vmariano](https://api.github.com/users/vmariano))
269  - [#28](https://github.com/kpdecker/jsdiff/pull/28) - Implemented diffJson ([@papandreou](https://api.github.com/users/papandreou))
270  - [#27](https://github.com/kpdecker/jsdiff/issues/27) - Slow to execute over diffs with a large number of changes ([@termi](https://api.github.com/users/termi))
271  - Allow for optional async diffing - 19385b9
272  - Fix diffChars implementation - eaa44ed
273  
274  [Commits](https://github.com/kpdecker/jsdiff/compare/v1.1.0...v1.2.0)
275  
276  ## v1.1.0 - November 25th, 2014
277  
278  - [#33](https://github.com/kpdecker/jsdiff/pull/33) - AMD and global exports ([@ovcharik](https://api.github.com/users/ovcharik))
279  - [#32](https://github.com/kpdecker/jsdiff/pull/32) - Add support for component ([@vmariano](https://api.github.com/users/vmariano))
280  - [#31](https://github.com/kpdecker/jsdiff/pull/31) - Don't rely on Array.prototype.map ([@papandreou](https://api.github.com/users/papandreou))
281  
282  [Commits](https://github.com/kpdecker/jsdiff/compare/v1.0.8...v1.1.0)
283  
284  ## v1.0.8 - December 22nd, 2013
285  
286  - [#24](https://github.com/kpdecker/jsdiff/pull/24) - Handle windows newlines on non windows machines. ([@benogle](https://api.github.com/users/benogle))
287  - [#23](https://github.com/kpdecker/jsdiff/pull/23) - Prettied up the API formatting a little, and added basic node and web examples ([@airportyh](https://api.github.com/users/airportyh))
288  
289  [Commits](https://github.com/kpdecker/jsdiff/compare/v1.0.7...v1.0.8)
290  
291  ## v1.0.7 - September 11th, 2013
292  
293  - [#22](https://github.com/kpdecker/jsdiff/pull/22) - Added variant of WordDiff that doesn't ignore whitespace differences ([@papandreou](https://api.github.com/users/papandreou)
294  
295  - Add 0.10 to travis tests - 243a526
296  
297  [Commits](https://github.com/kpdecker/jsdiff/compare/v1.0.6...v1.0.7)
298  
299  ## v1.0.6 - August 30th, 2013
300  
301  - [#19](https://github.com/kpdecker/jsdiff/pull/19) - Explicitly define contents of npm package ([@sindresorhus](https://api.github.com/users/sindresorhus)
302  
303  [Commits](https://github.com/kpdecker/jsdiff/compare/v1.0.5...v1.0.6)