- Fixing prototype pollution issue (@arjunshibu).
- Adding TypeScript declaration files.
- Refreshing the library's build to fix
babel
issues when consuming the library.
- Fixing the library's export.
- Fixing issue related to monkey not firing the correct events (@roark).
- Adding the
monkeyBusiness
option (@Tuhis).
- Better
tree/cursor.splice
(@jrust).
- Fixing monkey-related memory leak (@jrust).
- Fixing
tree/cursor.splice
descriptor (@Nimelrian).
- Handling non-enumerable properties (@BrendanAnnable).
- Fixing an issue concerning objects created through
Object.create(null)
(@fmal).
- Fixing issue concerning merging and monkeys.
- Fixing path coercion in monkeys' dependencies.
- Adding internal
tree.getMonkey
. - Fixing issue concerning monkey's recursivity.
- Fixing a bug concerning setters & dynamic paths.
- Adding the
tree/cursor.clone
and thetree/cursor.deepClone
methods. - Adding the
tree/cursor.pop
and thetree/cursor.shift
methods. - Adding a way to disable a single monkey's immutability.
- Fixing an issue where the
tree.commit
method would fire a useless update. - Fixing an issue related to updates and dynamic paths.
- Fixing the
tree/cursor.splice
to correctly handle negative indexes. - Fixing a bug related to eager monkeys and immutability.
- Fixing a bug with watcher not able to handle path polymorphisms.
- Cursors are now ES6 iterables (@kirjs).
- Dropping the
.babelrc
file from the npm build.
- Storing hashed paths using
λ
as delimiter instead of/
to enable some edge cases (@nivekmai). - Fixing an issue with cursors where a stopped history wouldn't restart correctly (@nikvm).
- Fixing monkeys' laziness.
- Fixing an edge case when one watches over paths beneath monkeys.
- Fixing existence checking of
undefined
values. - Fixing the
lazyMonkeys
option. - Fixing the tree's behavior regarding ES6 collections (@askmatey).
- Fixing the
splice
method (@SaphuA).
- Adding the
lazyMonkeys
option. - Adding relative paths for monkeys' dependencies.
- Fixing monkeys' laziness (@Zache).
- Fixing issues related to the root cursor.
- Fixing
get
event edge cases.
- The tree is now immutable by default.
- Cursor's setters method won't return themselves but rather the affected node now.
- Adding
cursor.concat
. - Adding
cursor.deepMerge
. - Adding
cursor.serialize
. - Adding
cursor.project
. - Adding
cursor.exists
. - Adding
tree.watch
. - Adding the
pure
option. - Changing the way you can define computed data in the tree, aka "facets". Facets are now to be defined within the tree itself, are called "monkeys", and can be accessed using the exact same API as normal data.
- Adding an alternative dynamic node definition syntax for convenience.
- Dropped the
syncwrite
option. The tree is now writing synchronously but still emits its updates asynchronously by default. - Max number of records is now set to
Infinity
by default, meaning there is no limit. - Update events are now exposing the detail of each transaction so you can replay them elsewhere.
- Fixing
cursor.push/unshift
behavior. - Dropped the
$cursor
helper. - Dropped the
update
specs for a simpler transaction syntax. - Updated
emmett
to3.1.1
. - ES6 codebase rewrite.
- Full code self documentation.
- Updating
emmett
tov3.0.1
. - Adding missing setters methods to the tree.
- Fixing
cursor.root
method.
- Adding an
immutable
option to the tree. - Adding a
syncwrite
option to the tree. - Adding a
get
andselect
event to the tree. - Facets getters are now applied within the tree's scope.
update
events are now exposing the related data for convenience.- Fixing a
$cursor
related bug. - Fixing
type.Primitive
. - Fixing
facet.release
issues.
- Exposing
Cursor
andFacet
classes for type checking (@charlieschwabacher). - Fixing
type.Object
. - Fixing root updates.
- Fixing facets related issues (internal).
- Fixing cases where falsy paths in cursors setters would fail the update.
- Fixing
$splice
behavior. - Fixing
$merge
behavior. - Persistent history rather than deep cloned.
- Improving performances on single update cases.
- Fixing scope argument of
tree.createFacet
. - Fixing facet mappings edge cases.
- Facets can now use facets.
- Fixing merge edge cases.
- Fixing update edge cases.
- Fixing bug where setting falsy values would fail.
- Dropping
cursor.edit
andcursor.remove
in favor ofcursor.set
andcursor.unset
polymorphisms. - Dropping
typology
dependency. - Dropping options:
clone
,cloningFunction
,singletonCursors
,shiftReferences
,maxHistory
,mixins
andtypology
. - Updated
emmett
tov3.0.0
. - Moving react integration to baobab-react.
- Shifting references is now default.
- Adding facets.
- Adding
$splice
keyword andcursor.splice
. - Adding
validationBehavior
option. - Adding
$cursor
paths. - Adding path polymorphisms to every cursor's setters.
- Reworking history to work at cursor level.
- Reworking validation process.
- Fixing some bugs.
- Fixing
cursor.root
. - Fixing
cursor.release
. - Fixing build procedure for latest
node
andbrowserify
versions. - I9 support.
- Adding React mixins function polymorphisms thanks to @denisw.
- Fixing
cursor.chain
thanks to @jonypawks. - Fixing transaction flow issues thanks to @jmisterka.
- Fixing deep object comparison and dynamic paths matching thanks to @angus-c.
- Safer cursor update methods.
- Fixing
cursor.chain
. - Fixing unset behavior when acting on lists.
- Fixing release methods.
- Path polymorphism for
tree/cursor.set
. - Adding
tree/cursor.root
method. - Reducing leak risks by making cursors and combinations lazier.
- Several webpack-friendly changes.
- Fixing complex paths solving.
- Better
release
methods. - Tree instantiation minimal polymorphism.
- Shooting gremlins in the head.
- Better internals.
- Implementing the
unset
andremove
methods.
- Bug fixes thanks to @jacomyal, @jondot.
- Better perfs thanks to @christianalfoni.
release
method for the tree.
- Fixing reference shifting behaviours.
release
method for cursors.
- Exposing
getIn
helper. - Merged mixins are now executed after baobab's ones.
- Cursor combinations.
- Cursor data now available through component's state.
- Retrieval and selection sugar with functions and descriptive objects.
- Adding
referenceShifting
option. - Cursor predicates.
$merge
command.- Various optimizations and bug fixes.
- Updating dependencies.
- Fixing several bugs.
- Better unit testing for mixins.
mixins
settings.- Bower support.
- Several bug fixes.