* docs: make the merge interval unit clear
* fix: prevent merging remote changes with small intervals and improve commit message handling
The changeMergeInterval config should only work for local changes.
* docs: refine docs
* feat: add a method to find id spans between frontiers
* feat(wasm): expose frontiers (from&to) in event
* test: fix test
* chore: changeset
* refactor: rename to findIdSpansBetween
* test: fix test err
* refactor: rename the fields of version vector diff
replace `left` and `right` with `retreat` and `forward`
* docs: add more details about find_id_spans_between
This change will make the internal operations more accessible to the application code.
* feat: add exportJsonInIdSpan and make peer compression optional
- Introduced `export_json_updates_without_peer_compression` method to allow exporting JSON updates without compressing peer IDs, making it easier for application code to process.
- Updated existing `export_json_updates` method to accept a `with_peer_compression` parameter, defaulting to true.
- Refactored related code in various files to accommodate the new functionality, ensuring backward compatibility.
* fix: slice err & add tests
* chore: changeset
- Added `toJsonWithReplacer` method to `LoroDoc` allowing custom serialization of document values.
- Introduced new type `TreeNodeShallowValue` for tree node representation.
- Enhanced tests to cover various scenarios for the new JSON serialization method, including handling of nested containers and value transformations.
* feat: return import status in import_batch method
* feat(wasm): add importUpdateBatch returned status support
* chore: add changeset update
* chore: update ffi return type
* fix: tree should use jitter 0 by default
Otherwise, there may be inconsistency between the event and the actual data. But this will increase the cost when the index property is not used.
* chore: add changeset
* chore: fix warning
* refactor: enable tree move by default
* docs: update related docs
* feat: Add isDeleted() method to containers
- Add isDeleted() method to all container types (Text, Map, List, Tree, etc.)
- Fix deletion tracking for containers in tree operations
- Add tests to verify deletion state across different scenarios
* chore: fix redundant field names
---------
Co-authored-by: Leon Zhao <leeeon233@gmail.com>
* feat: allow users to query the changed containers in the target id range
* chore: add changeset note
* chore: update cargo toml
* test: add related tests and add a commit before get_changed_container_in
* perf: use a priority-queue-based search for updating text
It tends to produce diffs with more continuous edits,
which is more efficient when we need to apply them to CRDTs
* fix: use better text diff calc
* refactor: add text update options struct
* chore: update text.update comments
* chore: fix warnings
* fix: rm a dumb optimization