loro-crdt 1.4.6 → 1.5.0

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/web/loro_wasm.js CHANGED
@@ -613,6 +613,52 @@ export class AwarenessWasm {
613
613
  }
614
614
  }
615
615
 
616
+ const ChangeModifierFinalization = (typeof FinalizationRegistry === 'undefined')
617
+ ? { register: () => {}, unregister: () => {} }
618
+ : new FinalizationRegistry(ptr => wasm.__wbg_changemodifier_free(ptr >>> 0));
619
+ /**
620
+ */
621
+ export class ChangeModifier {
622
+
623
+ static __wrap(ptr) {
624
+ ptr = ptr >>> 0;
625
+ const obj = Object.create(ChangeModifier.prototype);
626
+ obj.__wbg_ptr = ptr;
627
+ ChangeModifierFinalization.register(obj, obj.__wbg_ptr, obj);
628
+ return obj;
629
+ }
630
+
631
+ __destroy_into_raw() {
632
+ const ptr = this.__wbg_ptr;
633
+ this.__wbg_ptr = 0;
634
+ ChangeModifierFinalization.unregister(this);
635
+ return ptr;
636
+ }
637
+
638
+ free() {
639
+ const ptr = this.__destroy_into_raw();
640
+ wasm.__wbg_changemodifier_free(ptr);
641
+ }
642
+ /**
643
+ * @param {string} message
644
+ * @returns {ChangeModifier}
645
+ */
646
+ setMessage(message) {
647
+ const ptr0 = passStringToWasm0(message, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
648
+ const len0 = WASM_VECTOR_LEN;
649
+ const ret = wasm.changemodifier_setMessage(this.__wbg_ptr, ptr0, len0);
650
+ return ChangeModifier.__wrap(ret);
651
+ }
652
+ /**
653
+ * @param {number} timestamp
654
+ * @returns {ChangeModifier}
655
+ */
656
+ setTimestamp(timestamp) {
657
+ const ret = wasm.changemodifier_setTimestamp(this.__wbg_ptr, timestamp);
658
+ return ChangeModifier.__wrap(ret);
659
+ }
660
+ }
661
+
616
662
  const CursorFinalization = (typeof FinalizationRegistry === 'undefined')
617
663
  ? { register: () => {}, unregister: () => {} }
618
664
  : new FinalizationRegistry(ptr => wasm.__wbg_cursor_free(ptr >>> 0));
@@ -745,6 +791,161 @@ export class Cursor {
745
791
  }
746
792
  }
747
793
 
794
+ const EphemeralStoreWasmFinalization = (typeof FinalizationRegistry === 'undefined')
795
+ ? { register: () => {}, unregister: () => {} }
796
+ : new FinalizationRegistry(ptr => wasm.__wbg_ephemeralstorewasm_free(ptr >>> 0));
797
+ /**
798
+ */
799
+ export class EphemeralStoreWasm {
800
+
801
+ __destroy_into_raw() {
802
+ const ptr = this.__wbg_ptr;
803
+ this.__wbg_ptr = 0;
804
+ EphemeralStoreWasmFinalization.unregister(this);
805
+ return ptr;
806
+ }
807
+
808
+ free() {
809
+ const ptr = this.__destroy_into_raw();
810
+ wasm.__wbg_ephemeralstorewasm_free(ptr);
811
+ }
812
+ /**
813
+ * Creates a new `EphemeralStore` instance.
814
+ *
815
+ * The `timeout` parameter specifies the duration in milliseconds.
816
+ * A state of a peer is considered outdated, if the last update of the state of the peer
817
+ * is older than the `timeout`.
818
+ * @param {number} timeout
819
+ */
820
+ constructor(timeout) {
821
+ const ret = wasm.ephemeralstorewasm_new(timeout);
822
+ this.__wbg_ptr = ret >>> 0;
823
+ return this;
824
+ }
825
+ /**
826
+ * @param {string} key
827
+ * @param {any} value
828
+ */
829
+ set(key, value) {
830
+ const ptr0 = passStringToWasm0(key, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
831
+ const len0 = WASM_VECTOR_LEN;
832
+ wasm.ephemeralstorewasm_set(this.__wbg_ptr, ptr0, len0, addHeapObject(value));
833
+ }
834
+ /**
835
+ * @param {string} key
836
+ */
837
+ delete(key) {
838
+ const ptr0 = passStringToWasm0(key, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
839
+ const len0 = WASM_VECTOR_LEN;
840
+ wasm.ephemeralstorewasm_delete(this.__wbg_ptr, ptr0, len0);
841
+ }
842
+ /**
843
+ * @param {string} key
844
+ * @returns {any}
845
+ */
846
+ get(key) {
847
+ const ptr0 = passStringToWasm0(key, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
848
+ const len0 = WASM_VECTOR_LEN;
849
+ const ret = wasm.ephemeralstorewasm_get(this.__wbg_ptr, ptr0, len0);
850
+ return takeObject(ret);
851
+ }
852
+ /**
853
+ * @returns {any}
854
+ */
855
+ getAllStates() {
856
+ const ret = wasm.ephemeralstorewasm_getAllStates(this.__wbg_ptr);
857
+ return takeObject(ret);
858
+ }
859
+ /**
860
+ * @param {Function} f
861
+ * @returns {any}
862
+ */
863
+ subscribeLocalUpdates(f) {
864
+ const ret = wasm.ephemeralstorewasm_subscribeLocalUpdates(this.__wbg_ptr, addHeapObject(f));
865
+ return takeObject(ret);
866
+ }
867
+ /**
868
+ * @param {Function} f
869
+ * @returns {any}
870
+ */
871
+ subscribe(f) {
872
+ const ret = wasm.ephemeralstorewasm_subscribe(this.__wbg_ptr, addHeapObject(f));
873
+ return takeObject(ret);
874
+ }
875
+ /**
876
+ * @param {string} key
877
+ * @returns {Uint8Array}
878
+ */
879
+ encode(key) {
880
+ try {
881
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
882
+ const ptr0 = passStringToWasm0(key, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
883
+ const len0 = WASM_VECTOR_LEN;
884
+ wasm.ephemeralstorewasm_encode(retptr, this.__wbg_ptr, ptr0, len0);
885
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
886
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
887
+ var v2 = getArrayU8FromWasm0(r0, r1).slice();
888
+ wasm.__wbindgen_export_5(r0, r1 * 1, 1);
889
+ return v2;
890
+ } finally {
891
+ wasm.__wbindgen_add_to_stack_pointer(16);
892
+ }
893
+ }
894
+ /**
895
+ * @returns {Uint8Array}
896
+ */
897
+ encodeAll() {
898
+ try {
899
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
900
+ wasm.ephemeralstorewasm_encodeAll(retptr, this.__wbg_ptr);
901
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
902
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
903
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
904
+ wasm.__wbindgen_export_5(r0, r1 * 1, 1);
905
+ return v1;
906
+ } finally {
907
+ wasm.__wbindgen_add_to_stack_pointer(16);
908
+ }
909
+ }
910
+ /**
911
+ * @param {Uint8Array} data
912
+ */
913
+ apply(data) {
914
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export_0);
915
+ const len0 = WASM_VECTOR_LEN;
916
+ wasm.ephemeralstorewasm_apply(this.__wbg_ptr, ptr0, len0);
917
+ }
918
+ /**
919
+ */
920
+ removeOutdated() {
921
+ wasm.ephemeralstorewasm_removeOutdated(this.__wbg_ptr);
922
+ }
923
+ /**
924
+ * If the state is empty.
925
+ * @returns {boolean}
926
+ */
927
+ isEmpty() {
928
+ const ret = wasm.ephemeralstorewasm_isEmpty(this.__wbg_ptr);
929
+ return ret !== 0;
930
+ }
931
+ /**
932
+ * @returns {(string)[]}
933
+ */
934
+ keys() {
935
+ try {
936
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
937
+ wasm.ephemeralstorewasm_keys(retptr, this.__wbg_ptr);
938
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
939
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
940
+ var v1 = getArrayJsValueFromWasm0(r0, r1).slice();
941
+ wasm.__wbindgen_export_5(r0, r1 * 4, 4);
942
+ return v1;
943
+ } finally {
944
+ wasm.__wbindgen_add_to_stack_pointer(16);
945
+ }
946
+ }
947
+ }
948
+
748
949
  const LoroCounterFinalization = (typeof FinalizationRegistry === 'undefined')
749
950
  ? { register: () => {}, unregister: () => {} }
750
951
  : new FinalizationRegistry(ptr => wasm.__wbg_lorocounter_free(ptr >>> 0));
@@ -2797,6 +2998,61 @@ export class LoroDoc {
2797
2998
  wasm.__wbindgen_add_to_stack_pointer(16);
2798
2999
  }
2799
3000
  }
3001
+ /**
3002
+ * Get the pending operations from the current transaction in JSON format
3003
+ *
3004
+ * This method returns a JSON representation of operations that have been applied
3005
+ * but not yet committed in the current transaction.
3006
+ *
3007
+ * It will use the same data format as `doc.exportJsonUpdates()`
3008
+ *
3009
+ * @example
3010
+ * ```ts
3011
+ * const doc = new LoroDoc();
3012
+ * const text = doc.getText("text");
3013
+ * text.insert(0, "Hello");
3014
+ * // Get pending ops before commit
3015
+ * const pendingOps = doc.getPendingOpsFromCurrentTxnAsJson();
3016
+ * doc.commit();
3017
+ * const emptyOps = doc.getPendingOpsFromCurrentTxnAsJson(); // this is undefined
3018
+ * ```
3019
+ * @returns {JsonSchema | undefined}
3020
+ */
3021
+ getUncommittedOpsAsJson() {
3022
+ try {
3023
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3024
+ wasm.lorodoc_getUncommittedOpsAsJson(retptr, this.__wbg_ptr);
3025
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
3026
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
3027
+ var r2 = getInt32Memory0()[retptr / 4 + 2];
3028
+ if (r2) {
3029
+ throw takeObject(r1);
3030
+ }
3031
+ return takeObject(r0);
3032
+ } finally {
3033
+ wasm.__wbindgen_add_to_stack_pointer(16);
3034
+ }
3035
+ }
3036
+ /**
3037
+ * @param {Function} f
3038
+ * @returns {any}
3039
+ */
3040
+ subscribeFirstCommitFromPeer(f) {
3041
+ const ret = wasm.lorodoc_subscribeFirstCommitFromPeer(this.__wbg_ptr, addHeapObject(f));
3042
+ return takeObject(ret);
3043
+ }
3044
+ /**
3045
+ * Subscribe to the pre-commit event.
3046
+ *
3047
+ * The callback will be called when the changes are committed but not yet applied to the OpLog.
3048
+ * You can modify the commit message and timestamp in the callback by `ChangeModifier`.
3049
+ * @param {Function} f
3050
+ * @returns {any}
3051
+ */
3052
+ subscribePreCommit(f) {
3053
+ const ret = wasm.lorodoc_subscribePreCommit(this.__wbg_ptr, addHeapObject(f));
3054
+ return takeObject(ret);
3055
+ }
2800
3056
  }
2801
3057
 
2802
3058
  const LoroListFinalization = (typeof FinalizationRegistry === 'undefined')
@@ -4627,8 +4883,6 @@ export class LoroText {
4627
4883
  *
4628
4884
  * You can use it to create a highlight, make a range of text bold, or add a link to a range of text.
4629
4885
  *
4630
- * Note: this is not suitable for unmergeable annotations like comments.
4631
- *
4632
4886
  * @example
4633
4887
  * ```ts
4634
4888
  * import { LoroDoc } from "loro-crdt";
@@ -6176,10 +6430,6 @@ function __wbg_get_imports() {
6176
6430
  const ret = LoroCounter.__wrap(arg0);
6177
6431
  return addHeapObject(ret);
6178
6432
  };
6179
- imports.wbg.__wbg_lorotreenode_new = function(arg0) {
6180
- const ret = LoroTreeNode.__wrap(arg0);
6181
- return addHeapObject(ret);
6182
- };
6183
6433
  imports.wbg.__wbg_cursor_new = function(arg0) {
6184
6434
  const ret = Cursor.__wrap(arg0);
6185
6435
  return addHeapObject(ret);
@@ -6188,26 +6438,34 @@ function __wbg_get_imports() {
6188
6438
  const ret = LoroMap.__wrap(arg0);
6189
6439
  return addHeapObject(ret);
6190
6440
  };
6191
- imports.wbg.__wbg_lorotext_new = function(arg0) {
6192
- const ret = LoroText.__wrap(arg0);
6441
+ imports.wbg.__wbg_lorotreenode_new = function(arg0) {
6442
+ const ret = LoroTreeNode.__wrap(arg0);
6193
6443
  return addHeapObject(ret);
6194
6444
  };
6195
- imports.wbg.__wbg_lorotree_new = function(arg0) {
6196
- const ret = LoroTree.__wrap(arg0);
6445
+ imports.wbg.__wbg_lorolist_new = function(arg0) {
6446
+ const ret = LoroList.__wrap(arg0);
6447
+ return addHeapObject(ret);
6448
+ };
6449
+ imports.wbg.__wbg_lorotext_new = function(arg0) {
6450
+ const ret = LoroText.__wrap(arg0);
6197
6451
  return addHeapObject(ret);
6198
6452
  };
6199
6453
  imports.wbg.__wbg_loromovablelist_new = function(arg0) {
6200
6454
  const ret = LoroMovableList.__wrap(arg0);
6201
6455
  return addHeapObject(ret);
6202
6456
  };
6203
- imports.wbg.__wbg_lorolist_new = function(arg0) {
6204
- const ret = LoroList.__wrap(arg0);
6457
+ imports.wbg.__wbg_lorotree_new = function(arg0) {
6458
+ const ret = LoroTree.__wrap(arg0);
6205
6459
  return addHeapObject(ret);
6206
6460
  };
6207
6461
  imports.wbg.__wbg_versionvector_new = function(arg0) {
6208
6462
  const ret = VersionVector.__wrap(arg0);
6209
6463
  return addHeapObject(ret);
6210
6464
  };
6465
+ imports.wbg.__wbg_changemodifier_new = function(arg0) {
6466
+ const ret = ChangeModifier.__wrap(arg0);
6467
+ return addHeapObject(ret);
6468
+ };
6211
6469
  imports.wbg.__wbindgen_is_function = function(arg0) {
6212
6470
  const ret = typeof(getObject(arg0)) === 'function';
6213
6471
  return ret;
@@ -6396,7 +6654,7 @@ function __wbg_get_imports() {
6396
6654
  wasm.__wbindgen_export_5(deferred0_0, deferred0_1, 1);
6397
6655
  }
6398
6656
  };
6399
- imports.wbg.__wbg_now_cd30a09c9b727b65 = typeof Date.now == 'function' ? Date.now : notDefined('Date.now');
6657
+ imports.wbg.__wbg_now_761faa1e2f3f9d93 = typeof Date.now == 'function' ? Date.now : notDefined('Date.now');
6400
6658
  imports.wbg.__wbg_crypto_1d1f22824a6a080c = function(arg0) {
6401
6659
  const ret = getObject(arg0).crypto;
6402
6660
  return addHeapObject(ret);
@@ -6421,12 +6679,12 @@ function __wbg_get_imports() {
6421
6679
  const ret = getObject(arg0).msCrypto;
6422
6680
  return addHeapObject(ret);
6423
6681
  };
6424
- imports.wbg.__wbg_getRandomValues_3aa56aa6edec874c = function() { return handleError(function (arg0, arg1) {
6425
- getObject(arg0).getRandomValues(getObject(arg1));
6426
- }, arguments) };
6427
6682
  imports.wbg.__wbg_randomFillSync_5c9c955aa56b6049 = function() { return handleError(function (arg0, arg1) {
6428
6683
  getObject(arg0).randomFillSync(takeObject(arg1));
6429
6684
  }, arguments) };
6685
+ imports.wbg.__wbg_getRandomValues_3aa56aa6edec874c = function() { return handleError(function (arg0, arg1) {
6686
+ getObject(arg0).getRandomValues(getObject(arg1));
6687
+ }, arguments) };
6430
6688
  imports.wbg.__wbg_self_ce0dbfc45cf2f5be = function() { return handleError(function () {
6431
6689
  const ret = self.self;
6432
6690
  return addHeapObject(ret);
@@ -6659,12 +6917,12 @@ function __wbg_get_imports() {
6659
6917
  const ret = wasm.memory;
6660
6918
  return addHeapObject(ret);
6661
6919
  };
6662
- imports.wbg.__wbindgen_closure_wrapper482 = function(arg0, arg1, arg2) {
6663
- const ret = makeMutClosure(arg0, arg1, 8, __wbg_adapter_60);
6920
+ imports.wbg.__wbindgen_closure_wrapper487 = function(arg0, arg1, arg2) {
6921
+ const ret = makeMutClosure(arg0, arg1, 10, __wbg_adapter_60);
6664
6922
  return addHeapObject(ret);
6665
6923
  };
6666
- imports.wbg.__wbindgen_closure_wrapper485 = function(arg0, arg1, arg2) {
6667
- const ret = makeMutClosure(arg0, arg1, 10, __wbg_adapter_63);
6924
+ imports.wbg.__wbindgen_closure_wrapper489 = function(arg0, arg1, arg2) {
6925
+ const ret = makeMutClosure(arg0, arg1, 8, __wbg_adapter_63);
6668
6926
  return addHeapObject(ret);
6669
6927
  };
6670
6928
 
Binary file
@@ -27,6 +27,20 @@ export function awarenesswasm_removeOutdated(a: number, b: number): void;
27
27
  export function awarenesswasm_length(a: number): number;
28
28
  export function awarenesswasm_isEmpty(a: number): number;
29
29
  export function awarenesswasm_peers(a: number, b: number): void;
30
+ export function __wbg_ephemeralstorewasm_free(a: number): void;
31
+ export function ephemeralstorewasm_new(a: number): number;
32
+ export function ephemeralstorewasm_set(a: number, b: number, c: number, d: number): void;
33
+ export function ephemeralstorewasm_delete(a: number, b: number, c: number): void;
34
+ export function ephemeralstorewasm_get(a: number, b: number, c: number): number;
35
+ export function ephemeralstorewasm_getAllStates(a: number): number;
36
+ export function ephemeralstorewasm_subscribeLocalUpdates(a: number, b: number): number;
37
+ export function ephemeralstorewasm_subscribe(a: number, b: number): number;
38
+ export function ephemeralstorewasm_encode(a: number, b: number, c: number, d: number): void;
39
+ export function ephemeralstorewasm_encodeAll(a: number, b: number): void;
40
+ export function ephemeralstorewasm_apply(a: number, b: number, c: number): void;
41
+ export function ephemeralstorewasm_removeOutdated(a: number): void;
42
+ export function ephemeralstorewasm_isEmpty(a: number): number;
43
+ export function ephemeralstorewasm_keys(a: number, b: number): void;
30
44
  export function LORO_VERSION(a: number): void;
31
45
  export function run(): void;
32
46
  export function encodeFrontiers(a: number, b: number, c: number): void;
@@ -107,6 +121,9 @@ export function lorodoc_getChangedContainersIn(a: number, b: number, c: number,
107
121
  export function lorodoc_revertTo(a: number, b: number, c: number, d: number): void;
108
122
  export function lorodoc_applyDiff(a: number, b: number, c: number): void;
109
123
  export function lorodoc_diff(a: number, b: number, c: number, d: number, e: number, f: number, g: number): void;
124
+ export function lorodoc_getUncommittedOpsAsJson(a: number, b: number): void;
125
+ export function lorodoc_subscribeFirstCommitFromPeer(a: number, b: number): number;
126
+ export function lorodoc_subscribePreCommit(a: number, b: number): number;
110
127
  export function __wbg_lorotext_free(a: number): void;
111
128
  export function lorotext_new(): number;
112
129
  export function lorotext_kind(a: number): number;
@@ -278,6 +295,9 @@ export function versionvector_setLast(a: number, b: number, c: number): void;
278
295
  export function versionvector_remove(a: number, b: number, c: number): void;
279
296
  export function versionvector_length(a: number): number;
280
297
  export function decodeImportBlobMeta(a: number, b: number, c: number, d: number): void;
298
+ export function __wbg_changemodifier_free(a: number): void;
299
+ export function changemodifier_setMessage(a: number, b: number, c: number): number;
300
+ export function changemodifier_setTimestamp(a: number, b: number): number;
281
301
  export function __wbg_loromovablelist_free(a: number): void;
282
302
  export function lorodoc_importUpdateBatch(a: number, b: number, c: number): void;
283
303
  export function loromovablelist_parent(a: number): number;