* feat: make vitest tests pass
* chore: update readme & add deno test for web bundle
* chore: bump version to 1.0.8-alpha.0
* chore: bump loro-crdt version
* fix: build script
export init method from loro-wasm/web
* chore: bump version
* chore: specify which files to include for npm publish
* refactor: rename loro-js to loro-js-test
* refactor: remove the old loro-js folder
* fix: build scripts
* chore: 1.0.8-alpha.3
* chore: add release info
* fix: avoid auto unsubscribe (due to gc) in js env
* fix: drop subscription if the subscriber is dropped
* perf: use manually drop
* fix: rm once_cell dep
* fix: should call unsubscribe
* perf: optimize high concurrency performance
* refactor: use new fronteirs impl init
* refactor: fix more type err
* refactor: fix more type err
* fix: fix more type err
* fix: all type errors and warnings
* fix: type error in tests
* fix: Debug impl
* fix: singular value
* fix: err
* fix: avoid potential err of frontiers merging
* fix: a few test issues
* test: add frontiers tests
* fix: all test errors
* chore: fix warnings
* chore: rm testing code
* perf: optimize dag related performance
* chore: rm outdated marks
* refactor: frontiers's map variant should contains at least 2 elements
* perf: reduce the cost of is_deleted check
* perf: speedup get_or_insert container
* perf: reduce the cost of get or insert with
* fix: store len
* perf: cache cursor for text insertions
* chore: fix warnings
* test: bench large folder with 1M files & 100M ops
* test: update task
* test: display trimmed snapshot size
* chore: record current test result
* perf: optimize the speed of ensure_vv
- (js) Refactor subscription mechanism to return unsubscribe function
- (rust) Implement must-use struct for subscriptions in Rust
- Enhance API ergonomics for JavaScript-like environments
- Improve resource cleanup and prevent potential memory leaks
* refactor: Loro import function should return LoroEncodeError
- Change return type
- Add support for handling potential errors:
- Invalid or non-existent frontiers
- Exporting old snapshot format from trimmed snapshot doc
- Improve compatibility with trimmed docs
* fix: add tests and fix a few places that need to return err
* refactor!: change how we encode list state for fast-snapshot
* perf: speedup tree decode
* test: add movable list state snapshot test
* chore: add state encoding overhead test
* fix: error about invalid tree node creation
* chore: update example
---------
Co-authored-by: Leon Zhao <leeeon233@gmail.com>
* test: test failed if use non-cached diff calc
* fix: tree diff calc retreat cache current vv
* feat(wasm): commit message & get pending ops length
* bk
* chore: add tree one doc fuzz
* fix: fix the problem and added a few checks
* chore: rm debugging code
* fix: encode snapshot when detached
---------
Co-authored-by: leeeon233 <leeeon233@gmail.com>
* test: test failed if use non-cached diff calc
* fix: tree diff calc retreat cache current vv
* fix: better tree cache current vv
---------
Co-authored-by: Zixuan Chen <remch183@outlook.com>
* refactor: add detached editing config and prepare the architecture for editing detached doc
* feat: subscribe for peer id change
* fix: undo after checkout & add tests for detached editing
* test: add fuzzer for detached editing
* feat: expose detached editing configure to wasm
* test: add wasm test for detached editing
* test: add no event test
* fix: should not emit event when exporting gc snapshot
* fix: not emitting events when exporting state only snapshot
* fix: type error
* test: a checkout event err
* fix: tree undo convert moving to creating should use new target tree id
---------
Co-authored-by: Zixuan Chen <remch183@outlook.com>
* feat: jsonpath experimental support
* fix: add support for negative index unionindex and unionkey
* chore: export lorodoc in loro-js and fix a few tests related to map's entries order
* chore: fix type err
- Add ContainerDeleted error variant to LoroError
- Implement is_deleted() method for container handlers
- Check for deleted containers before applying operations
- Add dead_containers_cache to DocState to track deleted containers
- Update apply_diff to optionally clear dead container cache
- Add tests for handling operations on deleted containers
- Implement checkout to reset container deleted cache
- Minor code cleanup and typo fixes