loro-crdt 1.0.7 β†’ 1.0.8-alpha.1

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 ADDED
@@ -0,0 +1,739 @@
1
+ # Changelog
2
+
3
+ ## 1.0.8-alpha.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Include the build for web
8
+
9
+ ## 1.0.8-alpha.0
10
+
11
+ ### Patch Changes
12
+
13
+ - Refactor simplify js binding
14
+
15
+ ## 1.0.7
16
+
17
+ ### Patch Changes
18
+
19
+ - Skip published version
20
+
21
+ ## 1.0.1
22
+
23
+ ### Patch Changes
24
+
25
+ - Release v1.0.1
26
+
27
+ ## 1.0.0
28
+
29
+ ### Patch Changes
30
+
31
+ - dd3bd92: Release v1.0
32
+
33
+ ## 1.0.0-beta.5
34
+
35
+ ### Patch Changes
36
+
37
+ - - Fork at should restore detached state (#523)
38
+ - Subscription convert error (#525)
39
+
40
+ ## 1.0.0-beta.4
41
+
42
+ ### Patch Changes
43
+
44
+ - Fix: ForkAt should inherit the config and auto commit from the original doc
45
+
46
+ ## 1.0.0-beta.3
47
+
48
+ ### Patch Changes
49
+
50
+ - - Wasm api 1.0 (#521)
51
+ - Rename wasm export from (#519)
52
+ - Rename tree event (#520)
53
+
54
+ ## 1.0.0-beta.2
55
+
56
+ ### Patch Changes
57
+
58
+ - _(wasm)_ Add methods to encode and decode Frontiers (#517)
59
+ - Avoid auto unsubscribe (due to gc) in js env (#516)
60
+
61
+ ## 1.0.0-beta.1
62
+
63
+ ### Patch Changes
64
+
65
+ - Performance improvement and bug fixes
66
+
67
+ ### πŸš€ Features
68
+
69
+ - Redact (#504)
70
+
71
+ ### πŸ› Bug Fixes
72
+
73
+ - Ffi Subscription (#505)
74
+ - Ffi remove try unwrap (#506)
75
+ - Movable list undo impl (#509)
76
+ - Tracker skip applied deletion error (#512)
77
+ - IsContainerDeleted cache err (#513)
78
+
79
+ ### πŸ“š Documentation
80
+
81
+ - Refine wasm docs
82
+
83
+ ### ⚑ Performance
84
+
85
+ - Optimize shrink frontiers
86
+ - Optimize batch container registrations on arena (#510)
87
+ - Optimize high concurrency performance (#514)
88
+ - Use better data structure for frontiers (#515)
89
+
90
+ ### Perf
91
+
92
+ - Commit speed & text insert cache (#511)
93
+
94
+ ## 1.0.0-alpha.5
95
+
96
+ ### Patch Changes
97
+
98
+ - ## Fix
99
+
100
+ - Use release build
101
+
102
+ ## Test
103
+
104
+ - Add compatibility tests (#503)
105
+
106
+ ## 1.0.0-alpha.4
107
+
108
+ ### Patch Changes
109
+
110
+ - ### πŸš€ Features
111
+
112
+ - _(wasm)_ Commit message & get pending ops length (#477)
113
+ - Update text by line (#480)
114
+ - Add clear methods (#478)
115
+ - Travel change's ancestors (#483)
116
+ - Compact state store
117
+ - Add FFI for Loro (#420)
118
+ - Add dag allocation tree algorithm (#415)
119
+ - Add import status (#494)
120
+
121
+ ### πŸ› Bug Fixes
122
+
123
+ - Get correct tree_cache current vv when retreating (#476)
124
+ - Gc snapshot error (#481)
125
+ - Checkout into middle of marks
126
+ - Checkout diff-calc cache issue
127
+ - Return err if snapshot container has unknown container (#488)
128
+ - Do not set peer id with max (#491)
129
+ - Fork error (#493)
130
+ - FFI new sub import status (#497)
131
+ - Create event cannot find parent (#498)
132
+
133
+ ### 🚜 Refactor
134
+
135
+ - [**breaking**] Don't wait for `commit` to update version info
136
+ - Avoid footgun of impl ord for cid
137
+ - Loro import function should return LoroEncodeError (#487)
138
+ - [**breaking**] Better event api (#489)
139
+ - Change the first param of travel change from id to ids (#492)
140
+ - [**breaking**] List state snapshot schema for v1.0 (#485)
141
+
142
+ ### ⚑ Performance
143
+
144
+ - Make shrink frontiers faster when the peer num is large (#482)
145
+ - Optimize tree cache find children speed
146
+ - Avoid memory leak when forking repeatedly (#500)
147
+ - Optimize kv export_all by reusing encoded block (#501)
148
+ - Optimize speed of large maps (#496)
149
+ - Optimize diff calc cache use (#475)
150
+
151
+ ### πŸ§ͺ Testing
152
+
153
+ - Make awareness more robust
154
+ - Bench large folder with 1M files & 100M ops (#495)
155
+
156
+ ### βš™οΈ Miscellaneous Tasks
157
+
158
+ - Use cached diff calc
159
+
160
+ ## 1.0.0-alpha.3
161
+
162
+ ### Patch Changes
163
+
164
+ - ### πŸ› Bug Fixes
165
+
166
+ - Cursor behavior when using gc-snapshot (#472)
167
+ - _(wasm)_ Type err
168
+
169
+ ### βš™οΈ Miscellaneous Tasks
170
+
171
+ - Make tree parent id pub on loro crate
172
+
173
+ ### Feat
174
+
175
+ - Allow editing on detached mode (#473)
176
+
177
+ ### Fix
178
+
179
+ - Get tree's alive children correctly (#474)
180
+ - Should not emit event when exporting gc-snapshot (#471)
181
+
182
+ ## 1.0.0-alpha.2
183
+
184
+ ### Patch Changes
185
+
186
+ - ### πŸš€ Features
187
+
188
+ - Fork doc at the target version (#469)
189
+
190
+ ### 🚜 Refactor
191
+
192
+ - BREAKING CHANGE: Use hierarchy value for tree value (#470)
193
+
194
+ ## 1.0.0-alpha.1
195
+
196
+ ### Patch Changes
197
+
198
+ - ### πŸš€ Features
199
+
200
+ - Get shallow value of doc (#463)
201
+ - Add state only snapshot & refine check slow test
202
+ - Add new cid method to js binding
203
+ - Jsonpath experimental support (#466)
204
+
205
+ ### πŸ› Bug Fixes
206
+
207
+ - Raise error if perform action on a deleted container (#465)
208
+ - Raise error if moving a deleted node
209
+ - Export snapshot error on a gc doc
210
+
211
+ ### 🚜 Refactor
212
+
213
+ - Tree contains & isDeleted (#467)
214
+
215
+ ### πŸ§ͺ Testing
216
+
217
+ - Check state correctness on shallow doc
218
+
219
+ ## 1.0.0-alpha.0
220
+
221
+ - Better encode schema that can be 100x faster
222
+ - Less memory usage
223
+ - You can trim needless history in snapshot now
224
+ - Better architecture and extensibility
225
+
226
+ ## 0.16.12
227
+
228
+ ### Patch Changes
229
+
230
+ - 46e21fc: Fix tree move issues
231
+
232
+ ## 0.16.11
233
+
234
+ ### Patch Changes
235
+
236
+ - dce00ab: Make loro-wasm work in cloudflare worker
237
+
238
+ ## 0.16.10
239
+
240
+ ### Patch Changes
241
+
242
+ - 7cf54e8: Fix batch importing with snapshot
243
+
244
+ ## 0.16.9
245
+
246
+ ### Patch Changes
247
+
248
+ - a761430: Fix build script
249
+
250
+ ## 0.16.8
251
+
252
+ ### Patch Changes
253
+
254
+ - 38b4bcf: Add text update API
255
+
256
+ - Remove the patch for crypto
257
+ - Add text update API (#404)
258
+ - Check invalid root container name (#411)
259
+
260
+ ### πŸ› Bug Fixes
261
+
262
+ - Workaround lldb bug make loro crate debuggable (#414)
263
+ - Delete the **bring back** tree node from the undo container remap (#423)
264
+
265
+ ### πŸ“š Documentation
266
+
267
+ - Fix typo
268
+ - Refine docs about event (#417)
269
+
270
+ ### 🎨 Styling
271
+
272
+ - Use clippy to perf code (#407)
273
+
274
+ ### βš™οΈ Miscellaneous Tasks
275
+
276
+ - Add test tools (#410)
277
+
278
+ ## 0.16.7
279
+
280
+ ### Patch Changes
281
+
282
+ - 45c98d5: Better text APIs and bug fixes
283
+
284
+ ### πŸš€ Features
285
+
286
+ - Add insert_utf8 and delete_utf8 for Rust Text API (#396)
287
+ - Add text iter (#400)
288
+ - Add more text api (#398)
289
+
290
+ ### πŸ› Bug Fixes
291
+
292
+ - Tree undo when processing deleted node (#399)
293
+ - Tree diff calc children should be sorted by idlp (#401)
294
+ - When computing the len of the map, do not count elements that are None (#402)
295
+
296
+ ### πŸ“š Documentation
297
+
298
+ - Update wasm docs
299
+ - Rm experimental warning
300
+
301
+ ### βš™οΈ Miscellaneous Tasks
302
+
303
+ - Update fuzz config
304
+ - Pnpm
305
+ - Rename position to fractional_index (#381)
306
+
307
+ ## 0.16.6
308
+
309
+ ### Patch Changes
310
+
311
+ - 1e94248: Add `.fork()` to duplicate the doc
312
+
313
+ ## 0.16.5
314
+
315
+ ### Patch Changes
316
+
317
+ - 439e4e9: Update pkg desc
318
+
319
+ ## 0.16.4
320
+
321
+ ### Patch Changes
322
+
323
+ - afac347: feat: implement `Counter` and expose it to js side
324
+
325
+ ## 0.16.4-alpha.0
326
+
327
+ ### Patch Changes
328
+
329
+ - Export/import JSON schema
330
+
331
+ ## 0.16.3
332
+
333
+ ### Patch Changes
334
+
335
+ - 6d47015: Make cursors transformation better in undo/redo loop
336
+ - dc55055: Perf(wasm) cache text.toDelta
337
+
338
+ ## 0.16.2
339
+
340
+ ### Patch Changes
341
+
342
+ - 34f6064: Better undo events & transform cursors by undo manager (#369)
343
+
344
+ #### πŸ§ͺ Testing
345
+
346
+ - Enable compatibility test (#367)
347
+
348
+ ## 0.16.1
349
+
350
+ ### Patch Changes
351
+
352
+ - 5cd80b0: Refine undo impl
353
+
354
+ - Add "undo" origin for undo and redo event
355
+ - Allow users to skip certain local operations
356
+ - Skip undo/redo ops that are not visible to users
357
+ - Add returned bool value to indicate whether undo/redo is executed
358
+
359
+ ## 0.16.0
360
+
361
+ ### Minor Changes
362
+
363
+ - c12c2b9: Movable Tree Children & Undo
364
+
365
+ #### πŸ› Bug Fixes
366
+
367
+ - Refine error message on corrupted data (#356)
368
+ - Add MovableList to CONTAINER_TYPES (#359)
369
+ - Better jitter for fractional index (#360)
370
+
371
+ #### πŸ§ͺ Testing
372
+
373
+ - Add compatibility tests (#357)
374
+
375
+ #### Feat
376
+
377
+ - Make the encoding format forward and backward compatible (#329)
378
+ - Undo (#361)
379
+ - Use fractional index to order the children of the tree (#298)
380
+
381
+ #### πŸ› Bug Fixes
382
+
383
+ - Tree fuzz sort value (#351)
384
+ - Upgrade wasm-bindgen to fix str free err (#353)
385
+
386
+ ## 0.15.3
387
+
388
+ ### Patch Changes
389
+
390
+ - 43506cc: Fix unsound issue caused by wasm-bindgen
391
+
392
+ #### πŸ› Bug Fixes
393
+
394
+ - Fix potential movable list bug (#354)
395
+ - Tree fuzz sort value (#351)
396
+ - Upgrade wasm-bindgen to fix str free err (#353)
397
+
398
+ #### πŸ“š Documentation
399
+
400
+ - Simplify readme (#352)
401
+
402
+ ## 0.15.2
403
+
404
+ ### Patch Changes
405
+
406
+ - e30678d: Perf: fix deletions merge
407
+
408
+ #### πŸ› Bug Fixes
409
+
410
+ - _(wasm)_ Movable list .kind() (#342)
411
+
412
+ #### ⚑ Performance
413
+
414
+ - Delete span merge err (#348)
415
+
416
+ #### βš™οΈ Miscellaneous Tasks
417
+
418
+ - Warn missing debug impl (#347)
419
+
420
+ <!-- generated by git-cliff -->
421
+
422
+ ## 0.15.1
423
+
424
+ ### Patch Changes
425
+
426
+ - 04c6290: Bug fixes and improvements.
427
+
428
+ #### πŸ› Bug Fixes
429
+
430
+ - Impl a few unimplemented! for movable tree (#335)
431
+ - Refine ts type; reject invalid operations (#334)
432
+ - Get cursor err on text and movable list (#337)
433
+ - Missing MovableList in all container type (#343)
434
+ - Upgrade generic-btree to allow large btree (#344)
435
+
436
+ #### πŸ“š Documentation
437
+
438
+ - Add warn(missing_docs) to loro and loro-wasm (#339)
439
+ - Minor fix on set_change_merge_interval api (#341)
440
+
441
+ #### βš™οΈ Miscellaneous Tasks
442
+
443
+ - Skip the checking if not debug_assertions (#340)
444
+
445
+ <!-- generated by git-cliff -->
446
+
447
+ ## 0.15.0
448
+
449
+ ### Minor Changes
450
+
451
+ - 35b9b6e: Movable List (#293)
452
+
453
+ Loro's List supports insert and delete operations but lacks built-in methods for `set` and `move`. To simulate set and move, developers might combine delete and insert. However, this approach can lead to issues during concurrent operations on the same element, often resulting in duplicate entries upon merging.
454
+
455
+ For instance, consider a list [0, 1, 2]. If user A moves the element '0' to position 1, while user B moves it to position 2, the ideal merged outcome should be either [1, 0, 2] or [1, 2, 0]. However, using the delete-insert method to simulate a move results in [1, 0, 2, 0], as both users delete '0' from its original position and insert it independently at new positions.
456
+
457
+ To address this, we introduce a MovableList container. This new container type directly supports move and set operations, aligning more closely with user expectations and preventing the issues associated with simulated moves.
458
+
459
+ ## Example
460
+
461
+ ```ts
462
+ import { Loro } from "loro-crdt";
463
+ import { expect } from "vitest";
464
+
465
+ const doc = new Loro();
466
+ const list = doc.getMovableList("list");
467
+ list.push("a");
468
+ list.push("b");
469
+ list.push("c");
470
+ expect(list.toArray()).toEqual(["a", "b", "c"]);
471
+ list.set(2, "d");
472
+ list.move(0, 1);
473
+ const doc2 = new Loro();
474
+ const list2 = doc2.getMovableList("list");
475
+ expect(list2.length).toBe(0);
476
+ doc2.import(doc.exportFrom());
477
+ expect(list2.length).toBe(3);
478
+ expect(list2.get(0)).toBe("b");
479
+ expect(list2.get(1)).toBe("a");
480
+ expect(list2.get(2)).toBe("d");
481
+ ```
482
+
483
+ ## 0.14.6
484
+
485
+ ### Patch Changes
486
+
487
+ - 24cf9b9: Bug Fix
488
+
489
+ #### πŸ› Bug Fixes
490
+
491
+ - Attached container can be inserted to `Map` or `List` (#331)
492
+
493
+ ## 0.14.5
494
+
495
+ ### Patch Changes
496
+
497
+ - 73e3ba5: Bug Fix
498
+
499
+ #### πŸ› Bug Fixes
500
+
501
+ - _(js)_ Allow convert from undefined to LoroValue (#323)
502
+
503
+ #### 🚜 Refactor
504
+
505
+ - Refine ts type (#322)
506
+
507
+ ## 0.14.4
508
+
509
+ ### Patch Changes
510
+
511
+ - 598d97e: ### 🚜 Refactor
512
+
513
+ - Refine the TS Type of Awareness
514
+ - Parse Uint8array to LoroValue::Binary (#320)
515
+
516
+ ### πŸ“š Documentation
517
+
518
+ - Update how to publish new npm pkgs
519
+
520
+ ## 0.14.3
521
+
522
+ ### Patch Changes
523
+
524
+ - a1fc2e3: Feat: Awareness (#318)
525
+
526
+ ## 0.14.2
527
+
528
+ ### Patch Changes
529
+
530
+ - Refactor rename `StablePosition` to `Cursor`
531
+
532
+ - Rename stable pos to cursor (#317)
533
+
534
+ <!-- generated by git-cliff -->
535
+
536
+ ## 0.14.1
537
+
538
+ ### Patch Changes
539
+
540
+ - Supports Cursors
541
+
542
+ #### πŸš€ Features
543
+
544
+ - Cursors (#290)
545
+
546
+ ## 0.14.0
547
+
548
+ ### Minor Changes
549
+
550
+ - Improved API
551
+
552
+ ### πŸš€ Features
553
+
554
+ - Access value/container by path (#308)
555
+ - Decode import blob meta (#307)
556
+
557
+ ### πŸ› Bug Fixes
558
+
559
+ - Decode iter return result by updating columnar to 0.3.4 (#309)
560
+
561
+ ### 🚜 Refactor
562
+
563
+ - Replace "local" and "fromCheckout" in event with "triggeredBy" (#312)
564
+ - Add concrete type for each different container (#313)
565
+ - _(ts)_ Make types better (#315)
566
+
567
+ ### πŸ“š Documentation
568
+
569
+ - Refine wasm docs (#304)
570
+ - Clarify that peer id should be convertible to a u64 (#306)
571
+
572
+ ### βš™οΈ Miscellaneous Tasks
573
+
574
+ - Add coverage report cli (#311)
575
+
576
+ ## 0.13.1
577
+
578
+ ### Patch Changes
579
+
580
+ - Fix type errors and conversion from js->rust error
581
+
582
+ ## 0.13.0
583
+
584
+ ### Minor Changes
585
+
586
+ - BREAKING CHANGE: `detached` mode for Containers #300
587
+
588
+ Now creating sub-containers is much easier.
589
+
590
+ A container can be either attached to a document or detached. When it's detached, its history/state is not persisted. You can attach a container to a document by inserting it into an existing attached container. Once a container is attached, its state, along with all of its descendants's states, will be recreated in the document. After attaching, the container and its descendants will each have their corresponding "attached" version of themselves.
591
+
592
+ When a detached container x is attached to a document, you can use `x.getAttached()` to obtain the corresponding attached container.
593
+
594
+ When we use const text = new LoroList(), it's not attached to a doc. But we can insert it into a doc by map.insertContainer(”t”, text), where the map is attached. But if we want the operations on the text to be recorded to the doc, we now need to get its attached version. So we can use β€œlet attachedText = text.getAttached()”
595
+
596
+ ## 0.12.0
597
+
598
+ ### Minor Changes
599
+
600
+ - Add getParent and getOrCreate
601
+
602
+ ## 0.11.1
603
+
604
+ ### Patch Changes
605
+
606
+ - Fix batch import
607
+
608
+ ## 0.11.0
609
+
610
+ ### Minor Changes
611
+
612
+ - Fix a few bugs and include BREAKING CHANG refactors
613
+
614
+ - fix: should not reset the state when calling checkout to latest (#265)
615
+ - refactor: only send a event for one `import`/`transaction`/`checkout` (#263)
616
+ - perf: optimize snapshot encoding speed (#264)
617
+ - feat: remove deleted set in tree state and optimize api (#259)
618
+
619
+ ## 0.10.1
620
+
621
+ ### Patch Changes
622
+
623
+ - fix: remove checking after checkout
624
+
625
+ ## 0.10.0
626
+
627
+ ### Minor Changes
628
+
629
+ - New encoding schema
630
+ - BREAKING CHANGE: refactor: Optimizing Encoding Representation for Child Container Creation to Reduce Document Size (#247)
631
+ - feat: compare frontiers causal order (#257)
632
+ - docs: update docs about rich text style (#258)
633
+
634
+ ## 0.9.4
635
+
636
+ ### Patch Changes
637
+
638
+ - Fix a few richtext time travel issues
639
+
640
+ ## 0.9.3
641
+
642
+ ### Patch Changes
643
+
644
+ - feat: add getChangeAtLamport
645
+
646
+ ## 0.9.2
647
+
648
+ ### Patch Changes
649
+
650
+ - Fix a few rich text issue
651
+ - fix: time travel back should be able to nullify rich text span (#254)
652
+ - fix: formalize apply delta method (#252)
653
+ - fix: how to find best insert pos for richtext & expand type reverse behavior (#250)
654
+
655
+ ## 0.9.1
656
+
657
+ ### Patch Changes
658
+
659
+ - Fix use consistnt peer id repr and expose VersionVector type
660
+
661
+ ## 0.9.0
662
+
663
+ ### Minor Changes
664
+
665
+ - Refine the rich text CRDT in Loro
666
+
667
+ ## 0.8.0
668
+
669
+ ### Minor Changes
670
+
671
+ - Stabilize encoding and fix several issues related to time travel
672
+
673
+ ## 0.7.2-alpha.4
674
+
675
+ ### Patch Changes
676
+
677
+ - Fix encoding value err
678
+
679
+ ## 0.7.2-alpha.3
680
+
681
+ ### Patch Changes
682
+
683
+ - Fix export compressed snapshot
684
+
685
+ ## 0.7.2-alpha.2
686
+
687
+ ### Patch Changes
688
+
689
+ - Add compressed method
690
+
691
+ ## 0.7.2-alpha.1
692
+
693
+ ### Patch Changes
694
+
695
+ - Fix v0 exports
696
+
697
+ ## 0.7.2-alpha.0
698
+
699
+ ### Patch Changes
700
+
701
+ - Add experimental encode methods
702
+
703
+ ## 0.7.1
704
+
705
+ ### Patch Changes
706
+
707
+ - Fix a few richtext errors
708
+
709
+ ## 0.7.0
710
+
711
+ ### Minor Changes
712
+
713
+ - refactor: remove setPanicHook and call it internally when loaded
714
+
715
+ ## 0.6.5
716
+
717
+ ### Patch Changes
718
+
719
+ - Fix checkout err on seq data
720
+
721
+ ## 0.6.4
722
+
723
+ ### Patch Changes
724
+
725
+ - Fix time travel issue #211
726
+
727
+ ## 0.6.1
728
+
729
+ ### Patch Changes
730
+
731
+ - 6753c2f: Refine loro-crdt api
732
+
733
+ ## 0.6.0
734
+
735
+ ### Minor Changes
736
+
737
+ - Improve API of event
738
+
739
+ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.