Automerge adheres to Semantic Versioning for assigning version numbers.
All notable changes to Automerge will be documented in this file, which is based on Keep a Changelog.
0.9.0 — 2018-09-18
- #112: Added
Automerge.undo()
andAutomerge.redo()
(@ept) - #118: Introduced new Frontend and Backend APIs, and refactored existing APIs to use them; this allows some of the work to be moved to a background thread, and provides better modularisation (@ept)
- Removed the experimental Immutable.js-compatible API (
Automerge.initImmutable()
), a casualty of the refactoring in #118 (@ept)
0.8.0 — 2018-08-02
- #106: New
doc._get(UUID)
method allows looking up an object by its_objectId
inside anAutomerge.change()
callback (@mattkrick) - #109: Export
OpSet.getMissingChanges
on the Automerge object (@mattkrick) - #111: New
Automerge.emptyChange()
allows a "change" record to be created without actually changing the document (@ept)
- #110: Require that the change message in
Automerge.change()
must be a string (@ept) - #111: If
Automerge.change()
does not modify the document, the function now returns the original document object untouched (@ept)
0.7.11 — 2018-06-26
- #97:
delete
operator no longer throws an exception if the property doesn't exist (@salzhrani, @EthanRBrown) - #104: Fix an error when loading the webpack-packaged version of Automerge in Node.js (@ept)
0.7.10 — 2018-06-12
- #93: Allow the UUID implementation to be replaced for testing purposes (@kpruden)
- #74: Automerge.diff() now includes the path from the root to the modified object (@ept)
0.7.9 — 2018-05-25
- #90: Compatibility with Node 10 (@aslakhellesoy)
0.7.8 — 2018-05-15
0.7.7 — 2018-04-24
- #87: Remove babel-polyfill from transpiled library (@EthanRBrown)
0.7.4, 0.7.5, 0.7.6 — 2018-04-19
- Version bump to fix a build tooling issue
0.7.3 — 2018-04-19
- #85: Publish Babel-transpiled code to npm to improve compatibility (@EthanRBrown)
0.7.2 — 2018-04-17
- #83: Changed
_objectId
property on Automerge map objects to be non-enumerable (@EthanRBrown, @ept) - #84: Changed
_conflicts
,_state
, and_actorId
to be non-enumerable properties (@ept)
- #77: Fixed exception when a list element is inserted and updated in the same change callback (@mmcgrana, @ept)
- #78: Better error message when trying to use an unsupported datatype (@ept)
0.7.1 — 2018-02-26
- #69:
Automerge.load
generates random actorId if none specified (@saranrapjs) - #64:
Automerge.applyChanges()
allows changes to be applied out-of-order (@jimpick, @ept)
0.7.0 — 2018-01-15
- #62: Initial support for Immutable.js API compatibility (read-only for now) (@ept, @jeffpeterson)
- #45: Added experimental APIs
Automerge.getMissingDeps
,Automerge.getChangesForActor
, andAutomerge.WatchableDoc
to support integration with dat hypercore (@pvh, @ept) - #46: Automerge list objects now also have a
_conflicts
property that records concurrent assignments to the same list index, just like map objects have had all along (@ept)
- #60:
splice
in anAutomerge.change()
callback returns an array of deleted elements (to match behaviour ofArray#splice
). (@aslakhellesoy)
0.6.0 — 2017-12-13
- #44: New APIs
Automerge.getChanges
andAutomerge.applyChanges
to provide more flexibility for network protocol layer (@ept) - #41: New
Automerge.Text
datatype, which is more efficient than a list for character-by-character editing of text (@ept) - #40: Lists are now backed by a new indexed skip list data structure, which is faster (@ept)
- #38: To save memory,
Automerge.getHistory
now builds snapshots of past states only when requested, rather than remembering them by default (@ept)
0.5.0 — 2017-09-19
- #37: Added
Automerge.diff
to find the differences between to Automerge documents (@ept) - #37: Added support for incremental cache maintenance, bringing a 20x speedup for a 1,000-element list (@ept)
- #36: Added
Automerge.Connection
andAutomerge.DocSet
classes to support peer-to-peer network protocols (@ept, @pvh)
- Renamed
Automerge.changeset
toAutomerge.change
(@ept)
0.4.3 — 2017-08-16
- #34: Fixed a bug that caused list elements to sometimes disappear (@aslakhellesoy, @ept)
- #32: Fixed a test failure in recent Node.js versions (@aslakhellesoy)
0.4.2 — 2017-06-29
- Set up Karma to run tests in web browsers (@ept)
- Set up Webpack to produce bundled JavaScript file for web browsers (@ept)
0.4.1 — 2017-06-26
Automerge.getHistory
API now uses the object cache, which should be faster (@ept)
0.4.0 — 2017-06-23
- Automerge documents are now just regular JavaScript objects, and Proxy is used only within
Automerge.changeset
callbacks. Previously everything used Proxy. (@ept) - #30: Made
_objectId
an enumerable property, so that it is visible by default (@ept) - Support all standard JavaScript array methods and iterators on list proxy object (@ept)
0.3.0 — 2017-06-13
- First public release.