loro-crdt 1.13.4 β 1.13.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -1
- package/README.md +1 -0
- package/base64/index.js +97 -82
- package/base64/loro_wasm.d.ts +56 -45
- package/browser/index.js +3 -3
- package/browser/loro_wasm.d.ts +56 -45
- package/browser/loro_wasm.js +9 -9
- package/browser/loro_wasm_bg.js +92 -77
- package/browser/loro_wasm_bg.wasm +0 -0
- package/browser/loro_wasm_bg.wasm.d.ts +2 -2
- package/bundler/index.js +3 -3
- package/bundler/loro_wasm.d.ts +56 -45
- package/bundler/loro_wasm_bg.js +92 -77
- package/bundler/loro_wasm_bg.wasm +0 -0
- package/bundler/loro_wasm_bg.wasm.d.ts +2 -2
- package/nodejs/loro_wasm.d.ts +56 -45
- package/nodejs/loro_wasm.js +92 -77
- package/nodejs/loro_wasm_bg.wasm +0 -0
- package/nodejs/loro_wasm_bg.wasm.d.ts +2 -2
- package/package.json +1 -1
- package/web/loro_wasm.d.ts +58 -47
- package/web/loro_wasm.js +92 -77
- package/web/loro_wasm_bg.wasm +0 -0
- package/web/loro_wasm_bg.wasm.d.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.13.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- a4e6174: Fix undo/redo restoring mergeable map children as regular non-mergeable containers.
|
|
8
|
+
- 78f6c8a: Fix a potential deadlock when lazy snapshot loading resolves mergeable container parent depths.
|
|
9
|
+
|
|
10
|
+
## 1.13.5
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- 1727258: Improve text insert and snapshot import performance by avoiding duplicate text boundary validation and skipping eager imported change block parsing.
|
|
15
|
+
- 52d8168: Recover two per-operation editing slowdowns regressed since 1.11.
|
|
16
|
+
|
|
17
|
+
Both are constant-factor regressions on the per-op (auto-commit) editing path
|
|
18
|
+
introduced by the lazy-snapshot work in #985, measured against the 1.11.1
|
|
19
|
+
release.
|
|
20
|
+
|
|
21
|
+
1. Every `MapHandler`/`ListHandler`/`MovableListHandler` insert validated its
|
|
22
|
+
value with `ensure_no_regular_container_value`, which heap-allocated a `Vec`
|
|
23
|
+
on each call even for scalar values (the common case). A scalar fast-path now
|
|
24
|
+
skips the allocation and traversal entirely. `map create 10^4 key`:
|
|
25
|
+
~19.4ms -> ~10.7ms.
|
|
26
|
+
2. The per-op text bounds check (`TextHandler::len`/`len_unicode`/`len_utf16`)
|
|
27
|
+
took two `DocState` locks β one to check whether the container state was
|
|
28
|
+
decoded, then another to query the length. These are now consolidated into a
|
|
29
|
+
single `DocState::get_text_len` that takes one lock and one container-store
|
|
30
|
+
lookup. The lazy-snapshot memory behavior is preserved: a still-lazy
|
|
31
|
+
container reads its cached length metadata without materializing the full
|
|
32
|
+
richtext state. `bench_text B4 apply` (per-op text editing): ~389ms -> ~352ms.
|
|
33
|
+
|
|
3
34
|
## 1.13.4
|
|
4
35
|
|
|
5
36
|
### Patch Changes
|
|
@@ -52,7 +83,7 @@
|
|
|
52
83
|
|
|
53
84
|
### Minor Changes
|
|
54
85
|
|
|
55
|
-
- fa888d8: Add mergeable child containers: child containers created under a map key that converge across peers on concurrent first-write instead of forking. Exposed as `ensureMergeable{Counter,Map,List,MovableList,Text,Tree}` on `LoroMap`. A mergeable child lives at a deterministic `ContainerID` derived from `(parent, key, kind)`, and its visibility is driven by a binary ref the parent map stores at the key, so deletes and kind conflicts resolve through the map's regular LWW.
|
|
86
|
+
- fa888d8: Add mergeable child containers: child containers created under a map key that converge across peers on concurrent first-write instead of forking. Exposed as `ensureMergeable{Counter,Map,List,MovableList,Text,Tree}` on `LoroMap`. A mergeable child lives at a deterministic `ContainerID` derived from `(parent, key, kind)`, and its visibility is driven by a binary ref the parent map stores at the key, so deletes and kind conflicts resolve through the map's regular LWW. `getOrCreateContainer` is deprecated for lazy map-child creation; migrate those call sites to `ensureMergeable*`. `setContainer` and `insertContainer` regular semantics are unchanged.
|
|
56
87
|
|
|
57
88
|
## 1.12.5
|
|
58
89
|
|
package/README.md
CHANGED
|
@@ -60,6 +60,7 @@ Loro is a [CRDTs(Conflict-free Replicated Data Types)](https://crdt.tech/) libra
|
|
|
60
60
|
- π² [Moveable Tree](https://loro.dev/docs/tutorial/tree)
|
|
61
61
|
- π [Moveable List](https://loro.dev/docs/tutorial/list)
|
|
62
62
|
- πΊοΈ [Last-Write-Wins Map](https://loro.dev/docs/tutorial/map)
|
|
63
|
+
- π€ Mergeable map-key children via `ensureMergeable*` for lazy child container creation
|
|
63
64
|
|
|
64
65
|
**Advanced Features in Loro**
|
|
65
66
|
|