loro-crdt 1.5.1 → 1.5.3

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 CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.5.3
4
+
5
+ ### Patch Changes
6
+
7
+ - ed4fe83: fix: from_snapshot with shallow snapshot err #712
8
+
9
+ ## 1.5.2
10
+
11
+ ### Patch Changes
12
+
13
+ - 81c7bb7: fix ephemeral store recursive use by adding mutex in the inner
14
+ - bf94a03: feat: add functionality to delete and hide empty root containers #708
15
+
3
16
  ## 1.5.1
4
17
 
5
18
  ### Patch Changes
package/base64/index.js CHANGED
@@ -3029,6 +3029,55 @@ class LoroDoc {
3029
3029
  const ret = wasm.lorodoc_subscribePreCommit(this.__wbg_ptr, addHeapObject(f));
3030
3030
  return takeObject(ret);
3031
3031
  }
3032
+ /**
3033
+ * Delete all content from a root container and hide it from the document.
3034
+ *
3035
+ * When a root container is empty and hidden:
3036
+ * - It won't show up in `get_deep_value()` results
3037
+ * - It won't be included in document snapshots
3038
+ *
3039
+ * Only works on root containers (containers without parents).
3040
+ * @param {ContainerID} cid
3041
+ */
3042
+ deleteRootContainer(cid) {
3043
+ try {
3044
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3045
+ wasm.lorodoc_deleteRootContainer(retptr, this.__wbg_ptr, addHeapObject(cid));
3046
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3047
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3048
+ if (r1) {
3049
+ throw takeObject(r0);
3050
+ }
3051
+ } finally {
3052
+ wasm.__wbindgen_add_to_stack_pointer(16);
3053
+ }
3054
+ }
3055
+ /**
3056
+ * Set whether to hide empty root containers.
3057
+ *
3058
+ * @example
3059
+ * ```ts
3060
+ * const doc = new LoroDoc();
3061
+ * const map = doc.getMap("map");
3062
+ * console.log(doc.toJSON()); // { map: {} }
3063
+ * doc.setHideEmptyRootContainers(true);
3064
+ * console.log(doc.toJSON()); // {}
3065
+ * ```
3066
+ * @param {boolean} hide
3067
+ */
3068
+ setHideEmptyRootContainers(hide) {
3069
+ try {
3070
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3071
+ wasm.lorodoc_setHideEmptyRootContainers(retptr, this.__wbg_ptr, hide);
3072
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3073
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3074
+ if (r1) {
3075
+ throw takeObject(r0);
3076
+ }
3077
+ } finally {
3078
+ wasm.__wbindgen_add_to_stack_pointer(16);
3079
+ }
3080
+ }
3032
3081
  }
3033
3082
 
3034
3083
  const LoroListFinalization = (typeof FinalizationRegistry === 'undefined')
@@ -6759,11 +6808,11 @@ function __wbindgen_cb_drop(arg0) {
6759
6808
  const ret = false;
6760
6809
  return ret;
6761
6810
  }
6762
- function __wbindgen_closure_wrapper487(arg0, arg1, arg2) {
6811
+ function __wbindgen_closure_wrapper483(arg0, arg1, arg2) {
6763
6812
  const ret = makeMutClosure(arg0, arg1, 10, __wbg_adapter_60);
6764
6813
  return addHeapObject(ret);
6765
6814
  }
6766
- function __wbindgen_closure_wrapper490(arg0, arg1, arg2) {
6815
+ function __wbindgen_closure_wrapper486(arg0, arg1, arg2) {
6767
6816
  const ret = makeMutClosure(arg0, arg1, 8, __wbg_adapter_63);
6768
6817
  return addHeapObject(ret);
6769
6818
  }
@@ -6969,8 +7018,8 @@ var imports = /*#__PURE__*/Object.freeze({
6969
7018
  __wbindgen_bigint_get_as_i64: __wbindgen_bigint_get_as_i64,
6970
7019
  __wbindgen_boolean_get: __wbindgen_boolean_get,
6971
7020
  __wbindgen_cb_drop: __wbindgen_cb_drop,
6972
- __wbindgen_closure_wrapper487: __wbindgen_closure_wrapper487,
6973
- __wbindgen_closure_wrapper490: __wbindgen_closure_wrapper490,
7021
+ __wbindgen_closure_wrapper483: __wbindgen_closure_wrapper483,
7022
+ __wbindgen_closure_wrapper486: __wbindgen_closure_wrapper486,
6974
7023
  __wbindgen_debug_string: __wbindgen_debug_string,
6975
7024
  __wbindgen_error_new: __wbindgen_error_new,
6976
7025
  __wbindgen_in: __wbindgen_in,
@@ -7005,7 +7054,7 @@ var imports = /*#__PURE__*/Object.freeze({
7005
7054
  // Without this patch, Cloudflare Worker would raise issue like: "Uncaught TypeError: wasm2.__wbindgen_start is not a function"
7006
7055
 
7007
7056
 
7008
- import loro_wasm_bg_js from './loro_wasm_bg-c5907423.js';
7057
+ import loro_wasm_bg_js from './loro_wasm_bg-006667bd.js';
7009
7058
  const instance = new WebAssembly.Instance(loro_wasm_bg_js(), {
7010
7059
  "./loro_wasm_bg.js": imports,
7011
7060
  });
@@ -7307,4 +7356,4 @@ function idStrToId(idStr) {
7307
7356
  };
7308
7357
  }
7309
7358
 
7310
- export { Awareness, AwarenessWasm, ChangeModifier, Cursor, EphemeralStore, EphemeralStoreWasm, LORO_VERSION, Loro, LoroCounter, LoroDoc, LoroList, LoroMap, LoroMovableList, LoroText, LoroTree, LoroTreeNode, UndoManager, VersionVector, __wbg_String_8f0eb39a4a4c2f66, __wbg_apply_9bb7fe8fff013a3f, __wbg_buffer_ef9774282e5dab94, __wbg_call_0ad083564791763a, __wbg_call_a34b6b4765f27be0, __wbg_call_d00953b926be4879, __wbg_call_efe5a4db7065d1a2, __wbg_changemodifier_new, __wbg_crypto_ed58b8e10a292839, __wbg_cursor_new, __wbg_done_f4c254830a095eaf, __wbg_entries_4dce6361e3ba6fbc, __wbg_entries_83beb641792ccb9c, __wbg_error_7534b8e9a36f1ab4, __wbg_error_9912f7d6d7835a4b, __wbg_from_3aa0fcaa8eef0104, __wbg_getRandomValues_bcb4912f16000dc4, __wbg_get_0c3cc364764a0b98, __wbg_get_b996a12be035ef4f, __wbg_getindex_a471648b3037c750, __wbg_getwithrefkey_1dc361bd10053bfe, __wbg_globalThis_6b4d52a0b6aaeaea, __wbg_global_49324ce12193de77, __wbg_instanceof_ArrayBuffer_ff40e55b5978e215, __wbg_instanceof_Map_0f3f3653f757ced1, __wbg_instanceof_Object_9108547bac1f91b1, __wbg_instanceof_Uint8Array_db97368f94b1373f, __wbg_isArray_8738f1062fa88586, __wbg_isSafeInteger_a1b3e0811faecf2f, __wbg_iterator_c0c688f37fa815e6, __wbg_length_12246a78d2f65d3a, __wbg_length_c24da17096edfe57, __wbg_log_0cc1b7768397bcfe, __wbg_log_0fd6c49475c7bece, __wbg_log_cb9e190acc5753fb, __wbg_lorocounter_new, __wbg_lorolist_new, __wbg_loromap_new, __wbg_loromovablelist_new, __wbg_lorotext_new, __wbg_lorotree_new, __wbg_lorotreenode_new, __wbg_mark_7438147ce31e9d4b, __wbg_measure_fb7825c11612c823, __wbg_msCrypto_0a36e2ec3a343d26, __wbg_new_518e2184725aa711, __wbg_new_59845962d1127937, __wbg_new_67abf4a77618ee3e, __wbg_new_8a6f238a6ece86ea, __wbg_new_e2d07398d7689006, __wbg_newnoargs_a136448eeb7d48ac, __wbg_newwithbyteoffsetandlength_84908302a4c137cf, __wbg_newwithlength_4c216eaaf23f2f9a, __wbg_newwithlength_88b49de1eb24d63e, __wbg_next_928df8c15fc0c9b0, __wbg_next_9dc0926f351c7090, __wbg_node_02999533c4ea02e3, __wbg_now_3e8577e703add0ba, __wbg_ownKeys_b16312a839a4152c, __wbg_process_5c1d670bc53614b8, __wbg_push_e7d7247e69dad3ee, __wbg_randomFillSync_ab2cfe79ebbf2740, __wbg_require_79b1e9274cde3c87, __wbg_resolve_267ff08e7e1d2ce4, __wbg_self_cca3ca60d61220f4, __wbg_set_1b50d2de855a9d50, __wbg_set_393f510a6b7e9da5, __wbg_set_3f1d0b984ed272ed, __wbg_set_5deee49b10b2b780, __wbg_set_93ba9407b5476ec6, __wbg_set_wasm, __wbg_setindex_e0b7b31bfc87ba3f, __wbg_stack_0ed75d68575b0f3c, __wbg_subarray_2dc34705c0dc7cdb, __wbg_then_84907e7a6730461e, __wbg_value_51f8a88d4a1805fb, __wbg_versions_c71aa1626a93e0a1, __wbg_versionvector_new, __wbg_window_2aba046d3fc4ad7c, __wbindgen_as_number, __wbindgen_bigint_from_i64, __wbindgen_bigint_from_u64, __wbindgen_bigint_get_as_i64, __wbindgen_boolean_get, __wbindgen_cb_drop, __wbindgen_closure_wrapper487, __wbindgen_closure_wrapper490, __wbindgen_debug_string, __wbindgen_error_new, __wbindgen_in, __wbindgen_is_array, __wbindgen_is_bigint, __wbindgen_is_falsy, __wbindgen_is_function, __wbindgen_is_null, __wbindgen_is_object, __wbindgen_is_string, __wbindgen_is_undefined, __wbindgen_jsval_eq, __wbindgen_jsval_loose_eq, __wbindgen_memory, __wbindgen_number_get, __wbindgen_number_new, __wbindgen_object_clone_ref, __wbindgen_object_drop_ref, __wbindgen_rethrow, __wbindgen_string_get, __wbindgen_string_new, __wbindgen_throw, __wbindgen_typeof, decodeFrontiers, decodeImportBlobMeta, encodeFrontiers, getType, idStrToId, isContainer, isContainerId, newContainerID, newRootContainerID, run, setDebug };
7359
+ export { Awareness, AwarenessWasm, ChangeModifier, Cursor, EphemeralStore, EphemeralStoreWasm, LORO_VERSION, Loro, LoroCounter, LoroDoc, LoroList, LoroMap, LoroMovableList, LoroText, LoroTree, LoroTreeNode, UndoManager, VersionVector, __wbg_String_8f0eb39a4a4c2f66, __wbg_apply_9bb7fe8fff013a3f, __wbg_buffer_ef9774282e5dab94, __wbg_call_0ad083564791763a, __wbg_call_a34b6b4765f27be0, __wbg_call_d00953b926be4879, __wbg_call_efe5a4db7065d1a2, __wbg_changemodifier_new, __wbg_crypto_ed58b8e10a292839, __wbg_cursor_new, __wbg_done_f4c254830a095eaf, __wbg_entries_4dce6361e3ba6fbc, __wbg_entries_83beb641792ccb9c, __wbg_error_7534b8e9a36f1ab4, __wbg_error_9912f7d6d7835a4b, __wbg_from_3aa0fcaa8eef0104, __wbg_getRandomValues_bcb4912f16000dc4, __wbg_get_0c3cc364764a0b98, __wbg_get_b996a12be035ef4f, __wbg_getindex_a471648b3037c750, __wbg_getwithrefkey_1dc361bd10053bfe, __wbg_globalThis_6b4d52a0b6aaeaea, __wbg_global_49324ce12193de77, __wbg_instanceof_ArrayBuffer_ff40e55b5978e215, __wbg_instanceof_Map_0f3f3653f757ced1, __wbg_instanceof_Object_9108547bac1f91b1, __wbg_instanceof_Uint8Array_db97368f94b1373f, __wbg_isArray_8738f1062fa88586, __wbg_isSafeInteger_a1b3e0811faecf2f, __wbg_iterator_c0c688f37fa815e6, __wbg_length_12246a78d2f65d3a, __wbg_length_c24da17096edfe57, __wbg_log_0cc1b7768397bcfe, __wbg_log_0fd6c49475c7bece, __wbg_log_cb9e190acc5753fb, __wbg_lorocounter_new, __wbg_lorolist_new, __wbg_loromap_new, __wbg_loromovablelist_new, __wbg_lorotext_new, __wbg_lorotree_new, __wbg_lorotreenode_new, __wbg_mark_7438147ce31e9d4b, __wbg_measure_fb7825c11612c823, __wbg_msCrypto_0a36e2ec3a343d26, __wbg_new_518e2184725aa711, __wbg_new_59845962d1127937, __wbg_new_67abf4a77618ee3e, __wbg_new_8a6f238a6ece86ea, __wbg_new_e2d07398d7689006, __wbg_newnoargs_a136448eeb7d48ac, __wbg_newwithbyteoffsetandlength_84908302a4c137cf, __wbg_newwithlength_4c216eaaf23f2f9a, __wbg_newwithlength_88b49de1eb24d63e, __wbg_next_928df8c15fc0c9b0, __wbg_next_9dc0926f351c7090, __wbg_node_02999533c4ea02e3, __wbg_now_3e8577e703add0ba, __wbg_ownKeys_b16312a839a4152c, __wbg_process_5c1d670bc53614b8, __wbg_push_e7d7247e69dad3ee, __wbg_randomFillSync_ab2cfe79ebbf2740, __wbg_require_79b1e9274cde3c87, __wbg_resolve_267ff08e7e1d2ce4, __wbg_self_cca3ca60d61220f4, __wbg_set_1b50d2de855a9d50, __wbg_set_393f510a6b7e9da5, __wbg_set_3f1d0b984ed272ed, __wbg_set_5deee49b10b2b780, __wbg_set_93ba9407b5476ec6, __wbg_set_wasm, __wbg_setindex_e0b7b31bfc87ba3f, __wbg_stack_0ed75d68575b0f3c, __wbg_subarray_2dc34705c0dc7cdb, __wbg_then_84907e7a6730461e, __wbg_value_51f8a88d4a1805fb, __wbg_versions_c71aa1626a93e0a1, __wbg_versionvector_new, __wbg_window_2aba046d3fc4ad7c, __wbindgen_as_number, __wbindgen_bigint_from_i64, __wbindgen_bigint_from_u64, __wbindgen_bigint_get_as_i64, __wbindgen_boolean_get, __wbindgen_cb_drop, __wbindgen_closure_wrapper483, __wbindgen_closure_wrapper486, __wbindgen_debug_string, __wbindgen_error_new, __wbindgen_in, __wbindgen_is_array, __wbindgen_is_bigint, __wbindgen_is_falsy, __wbindgen_is_function, __wbindgen_is_null, __wbindgen_is_object, __wbindgen_is_string, __wbindgen_is_undefined, __wbindgen_jsval_eq, __wbindgen_jsval_loose_eq, __wbindgen_memory, __wbindgen_number_get, __wbindgen_number_new, __wbindgen_object_clone_ref, __wbindgen_object_drop_ref, __wbindgen_rethrow, __wbindgen_string_get, __wbindgen_string_new, __wbindgen_throw, __wbindgen_typeof, decodeFrontiers, decodeImportBlobMeta, encodeFrontiers, getType, idStrToId, isContainer, isContainerId, newContainerID, newRootContainerID, run, setDebug };
@@ -2508,6 +2508,29 @@ export class LoroDoc {
2508
2508
  * ```
2509
2509
  */
2510
2510
  getUncommittedOpsAsJson(): JsonSchema | undefined;
2511
+ /**
2512
+ * Delete all content from a root container and hide it from the document.
2513
+ *
2514
+ * When a root container is empty and hidden:
2515
+ * - It won't show up in `get_deep_value()` results
2516
+ * - It won't be included in document snapshots
2517
+ *
2518
+ * Only works on root containers (containers without parents).
2519
+ */
2520
+ deleteRootContainer(cid: ContainerID): void;
2521
+ /**
2522
+ * Set whether to hide empty root containers.
2523
+ *
2524
+ * @example
2525
+ * ```ts
2526
+ * const doc = new LoroDoc();
2527
+ * const map = doc.getMap("map");
2528
+ * console.log(doc.toJSON()); // { map: {} }
2529
+ * doc.setHideEmptyRootContainers(true);
2530
+ * console.log(doc.toJSON()); // {}
2531
+ * ```
2532
+ */
2533
+ setHideEmptyRootContainers(hide: boolean): void;
2511
2534
  /**
2512
2535
  * Peer ID of the current writer.
2513
2536
  */