浏览代码

chore: add read view info event

appflowy 3 年之前
父节点
当前提交
ae4cc496fc
共有 23 个文件被更改,包括 288 次插入95 次删除
  1. 2 0
      frontend/app_flowy/lib/workspace/presentation/plugins/board/src/board_page.dart
  2. 33 16
      frontend/app_flowy/packages/flowy_sdk/lib/dispatch/dart_event/flowy-folder/dart_event.dart
  3. 7 5
      frontend/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-folder/event_map.pbenum.dart
  4. 6 5
      frontend/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-folder/event_map.pbjson.dart
  5. 82 15
      frontend/rust-lib/Cargo.lock
  6. 10 6
      frontend/rust-lib/flowy-folder/src/event_map.rs
  7. 19 16
      frontend/rust-lib/flowy-folder/src/protobuf/model/event_map.rs
  8. 5 4
      frontend/rust-lib/flowy-folder/src/protobuf/proto/event_map.proto
  9. 0 1
      frontend/rust-lib/flowy-folder/src/services/persistence/mod.rs
  10. 1 0
      frontend/rust-lib/flowy-folder/src/services/persistence/version_1/v1_impl.rs
  11. 0 1
      frontend/rust-lib/flowy-folder/src/services/persistence/version_2/v2_impl.rs
  12. 31 0
      frontend/rust-lib/flowy-folder/src/services/view/controller.rs
  13. 5 6
      frontend/rust-lib/flowy-folder/src/services/view/event_handler.rs
  14. 1 1
      frontend/rust-lib/flowy-grid/Cargo.toml
  15. 1 1
      frontend/rust-lib/flowy-net/Cargo.toml
  16. 1 1
      frontend/rust-lib/flowy-revision/Cargo.toml
  17. 1 1
      frontend/rust-lib/flowy-text-block/Cargo.toml
  18. 1 1
      frontend/rust-lib/lib-dispatch/Cargo.toml
  19. 78 11
      shared-lib/Cargo.lock
  20. 1 1
      shared-lib/flowy-derive/Cargo.toml
  21. 1 1
      shared-lib/flowy-sync/Cargo.toml
  22. 1 1
      shared-lib/lib-ot/Cargo.toml
  23. 1 1
      shared-lib/lib-ws/Cargo.toml

+ 2 - 0
frontend/app_flowy/lib/workspace/presentation/plugins/board/src/board_page.dart

@@ -1,3 +1,5 @@
+// ignore_for_file: unused_field
+
 import 'package:flowy_sdk/protobuf/flowy-folder-data-model/view.pb.dart';
 import 'package:flowy_sdk/protobuf/flowy-folder-data-model/view.pb.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/material.dart';
 
 

+ 33 - 16
frontend/app_flowy/packages/flowy_sdk/lib/dispatch/dart_event/flowy-folder/dart_event.dart

@@ -253,44 +253,61 @@ class FolderEventDuplicateView {
     }
     }
 }
 }
 
 
-class FolderEventCopyLink {
-    FolderEventCopyLink();
+class FolderEventCloseView {
+     ViewId request;
+     FolderEventCloseView(this.request);
 
 
     Future<Either<Unit, FlowyError>> send() {
     Future<Either<Unit, FlowyError>> send() {
-     final request = FFIRequest.create()
-        ..event = FolderEvent.CopyLink.toString();
+    final request = FFIRequest.create()
+          ..event = FolderEvent.CloseView.toString()
+          ..payload = requestToBytes(this.request);
 
 
-     return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold(
-        (bytes) => left(unit),
-        (errBytes) => right(FlowyError.fromBuffer(errBytes)),
-      ));
+    return Dispatch.asyncRequest(request)
+        .then((bytesResult) => bytesResult.fold(
+           (bytes) => left(unit),
+           (errBytes) => right(FlowyError.fromBuffer(errBytes)),
+        ));
     }
     }
 }
 }
 
 
-class FolderEventSetLatestView {
+class FolderEventReadViewInfo {
      ViewId request;
      ViewId request;
-     FolderEventSetLatestView(this.request);
+     FolderEventReadViewInfo(this.request);
 
 
-    Future<Either<Unit, FlowyError>> send() {
+    Future<Either<ViewInfo, FlowyError>> send() {
     final request = FFIRequest.create()
     final request = FFIRequest.create()
-          ..event = FolderEvent.SetLatestView.toString()
+          ..event = FolderEvent.ReadViewInfo.toString()
           ..payload = requestToBytes(this.request);
           ..payload = requestToBytes(this.request);
 
 
     return Dispatch.asyncRequest(request)
     return Dispatch.asyncRequest(request)
         .then((bytesResult) => bytesResult.fold(
         .then((bytesResult) => bytesResult.fold(
-           (bytes) => left(unit),
+           (okBytes) => left(ViewInfo.fromBuffer(okBytes)),
            (errBytes) => right(FlowyError.fromBuffer(errBytes)),
            (errBytes) => right(FlowyError.fromBuffer(errBytes)),
         ));
         ));
     }
     }
 }
 }
 
 
-class FolderEventCloseView {
+class FolderEventCopyLink {
+    FolderEventCopyLink();
+
+    Future<Either<Unit, FlowyError>> send() {
+     final request = FFIRequest.create()
+        ..event = FolderEvent.CopyLink.toString();
+
+     return Dispatch.asyncRequest(request).then((bytesResult) => bytesResult.fold(
+        (bytes) => left(unit),
+        (errBytes) => right(FlowyError.fromBuffer(errBytes)),
+      ));
+    }
+}
+
+class FolderEventSetLatestView {
      ViewId request;
      ViewId request;
-     FolderEventCloseView(this.request);
+     FolderEventSetLatestView(this.request);
 
 
     Future<Either<Unit, FlowyError>> send() {
     Future<Either<Unit, FlowyError>> send() {
     final request = FFIRequest.create()
     final request = FFIRequest.create()
-          ..event = FolderEvent.CloseView.toString()
+          ..event = FolderEvent.SetLatestView.toString()
           ..payload = requestToBytes(this.request);
           ..payload = requestToBytes(this.request);
 
 
     return Dispatch.asyncRequest(request)
     return Dispatch.asyncRequest(request)

+ 7 - 5
frontend/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-folder/event_map.pbenum.dart

@@ -25,10 +25,11 @@ class FolderEvent extends $pb.ProtobufEnum {
   static const FolderEvent UpdateView = FolderEvent._(203, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UpdateView');
   static const FolderEvent UpdateView = FolderEvent._(203, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UpdateView');
   static const FolderEvent DeleteView = FolderEvent._(204, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DeleteView');
   static const FolderEvent DeleteView = FolderEvent._(204, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DeleteView');
   static const FolderEvent DuplicateView = FolderEvent._(205, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DuplicateView');
   static const FolderEvent DuplicateView = FolderEvent._(205, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DuplicateView');
-  static const FolderEvent CopyLink = FolderEvent._(206, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'CopyLink');
-  static const FolderEvent SetLatestView = FolderEvent._(207, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'SetLatestView');
-  static const FolderEvent CloseView = FolderEvent._(208, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'CloseView');
-  static const FolderEvent MoveFolderItem = FolderEvent._(209, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'MoveFolderItem');
+  static const FolderEvent CloseView = FolderEvent._(206, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'CloseView');
+  static const FolderEvent ReadViewInfo = FolderEvent._(207, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ReadViewInfo');
+  static const FolderEvent CopyLink = FolderEvent._(220, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'CopyLink');
+  static const FolderEvent SetLatestView = FolderEvent._(221, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'SetLatestView');
+  static const FolderEvent MoveFolderItem = FolderEvent._(230, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'MoveFolderItem');
   static const FolderEvent ReadTrash = FolderEvent._(300, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ReadTrash');
   static const FolderEvent ReadTrash = FolderEvent._(300, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ReadTrash');
   static const FolderEvent PutbackTrash = FolderEvent._(301, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'PutbackTrash');
   static const FolderEvent PutbackTrash = FolderEvent._(301, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'PutbackTrash');
   static const FolderEvent DeleteTrash = FolderEvent._(302, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DeleteTrash');
   static const FolderEvent DeleteTrash = FolderEvent._(302, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'DeleteTrash');
@@ -51,9 +52,10 @@ class FolderEvent extends $pb.ProtobufEnum {
     UpdateView,
     UpdateView,
     DeleteView,
     DeleteView,
     DuplicateView,
     DuplicateView,
+    CloseView,
+    ReadViewInfo,
     CopyLink,
     CopyLink,
     SetLatestView,
     SetLatestView,
-    CloseView,
     MoveFolderItem,
     MoveFolderItem,
     ReadTrash,
     ReadTrash,
     PutbackTrash,
     PutbackTrash,

+ 6 - 5
frontend/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-folder/event_map.pbjson.dart

@@ -27,10 +27,11 @@ const FolderEvent$json = const {
     const {'1': 'UpdateView', '2': 203},
     const {'1': 'UpdateView', '2': 203},
     const {'1': 'DeleteView', '2': 204},
     const {'1': 'DeleteView', '2': 204},
     const {'1': 'DuplicateView', '2': 205},
     const {'1': 'DuplicateView', '2': 205},
-    const {'1': 'CopyLink', '2': 206},
-    const {'1': 'SetLatestView', '2': 207},
-    const {'1': 'CloseView', '2': 208},
-    const {'1': 'MoveFolderItem', '2': 209},
+    const {'1': 'CloseView', '2': 206},
+    const {'1': 'ReadViewInfo', '2': 207},
+    const {'1': 'CopyLink', '2': 220},
+    const {'1': 'SetLatestView', '2': 221},
+    const {'1': 'MoveFolderItem', '2': 230},
     const {'1': 'ReadTrash', '2': 300},
     const {'1': 'ReadTrash', '2': 300},
     const {'1': 'PutbackTrash', '2': 301},
     const {'1': 'PutbackTrash', '2': 301},
     const {'1': 'DeleteTrash', '2': 302},
     const {'1': 'DeleteTrash', '2': 302},
@@ -40,4 +41,4 @@ const FolderEvent$json = const {
 };
 };
 
 
 /// Descriptor for `FolderEvent`. Decode as a `google.protobuf.EnumDescriptorProto`.
 /// Descriptor for `FolderEvent`. Decode as a `google.protobuf.EnumDescriptorProto`.
-final $typed_data.Uint8List folderEventDescriptor = $convert.base64Decode('CgtGb2xkZXJFdmVudBITCg9DcmVhdGVXb3Jrc3BhY2UQABIUChBSZWFkQ3VyV29ya3NwYWNlEAESEgoOUmVhZFdvcmtzcGFjZXMQAhITCg9EZWxldGVXb3Jrc3BhY2UQAxIRCg1PcGVuV29ya3NwYWNlEAQSFQoRUmVhZFdvcmtzcGFjZUFwcHMQBRINCglDcmVhdGVBcHAQZRINCglEZWxldGVBcHAQZhILCgdSZWFkQXBwEGcSDQoJVXBkYXRlQXBwEGgSDwoKQ3JlYXRlVmlldxDJARINCghSZWFkVmlldxDKARIPCgpVcGRhdGVWaWV3EMsBEg8KCkRlbGV0ZVZpZXcQzAESEgoNRHVwbGljYXRlVmlldxDNARINCghDb3B5TGluaxDOARISCg1TZXRMYXRlc3RWaWV3EM8BEg4KCUNsb3NlVmlldxDQARITCg5Nb3ZlRm9sZGVySXRlbRDRARIOCglSZWFkVHJhc2gQrAISEQoMUHV0YmFja1RyYXNoEK0CEhAKC0RlbGV0ZVRyYXNoEK4CEhQKD1Jlc3RvcmVBbGxUcmFzaBCvAhITCg5EZWxldGVBbGxUcmFzaBCwAg==');
+final $typed_data.Uint8List folderEventDescriptor = $convert.base64Decode('CgtGb2xkZXJFdmVudBITCg9DcmVhdGVXb3Jrc3BhY2UQABIUChBSZWFkQ3VyV29ya3NwYWNlEAESEgoOUmVhZFdvcmtzcGFjZXMQAhITCg9EZWxldGVXb3Jrc3BhY2UQAxIRCg1PcGVuV29ya3NwYWNlEAQSFQoRUmVhZFdvcmtzcGFjZUFwcHMQBRINCglDcmVhdGVBcHAQZRINCglEZWxldGVBcHAQZhILCgdSZWFkQXBwEGcSDQoJVXBkYXRlQXBwEGgSDwoKQ3JlYXRlVmlldxDJARINCghSZWFkVmlldxDKARIPCgpVcGRhdGVWaWV3EMsBEg8KCkRlbGV0ZVZpZXcQzAESEgoNRHVwbGljYXRlVmlldxDNARIOCglDbG9zZVZpZXcQzgESEQoMUmVhZFZpZXdJbmZvEM8BEg0KCENvcHlMaW5rENwBEhIKDVNldExhdGVzdFZpZXcQ3QESEwoOTW92ZUZvbGRlckl0ZW0Q5gESDgoJUmVhZFRyYXNoEKwCEhEKDFB1dGJhY2tUcmFzaBCtAhIQCgtEZWxldGVUcmFzaBCuAhIUCg9SZXN0b3JlQWxsVHJhc2gQrwISEwoORGVsZXRlQWxsVHJhc2gQsAI=');

+ 82 - 15
frontend/rust-lib/Cargo.lock

@@ -591,12 +591,13 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "dashmap"
 name = "dashmap"
-version = "4.0.2"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c"
+checksum = "4c8858831f7781322e539ea39e72449c46b059638250c14344fec8d0aa6e539c"
 dependencies = [
 dependencies = [
  "cfg-if",
  "cfg-if",
  "num_cpus",
  "num_cpus",
+ "parking_lot 0.12.1",
 ]
 ]
 
 
 [[package]]
 [[package]]
@@ -887,7 +888,7 @@ dependencies = [
  "lib-infra",
  "lib-infra",
  "lib-ot",
  "lib-ot",
  "log",
  "log",
- "parking_lot",
+ "parking_lot 0.11.2",
  "pin-project",
  "pin-project",
  "protobuf",
  "protobuf",
  "serde",
  "serde",
@@ -1002,7 +1003,7 @@ dependencies = [
  "lib-ws",
  "lib-ws",
  "log",
  "log",
  "nanoid",
  "nanoid",
- "parking_lot",
+ "parking_lot 0.11.2",
  "protobuf",
  "protobuf",
  "reqwest",
  "reqwest",
  "serde",
  "serde",
@@ -1061,7 +1062,7 @@ dependencies = [
  "lib-log",
  "lib-log",
  "lib-ws",
  "lib-ws",
  "log",
  "log",
- "parking_lot",
+ "parking_lot 0.11.2",
  "protobuf",
  "protobuf",
  "serde",
  "serde",
  "tokio",
  "tokio",
@@ -1085,7 +1086,7 @@ dependencies = [
  "lib-ot",
  "lib-ot",
  "log",
  "log",
  "md5",
  "md5",
- "parking_lot",
+ "parking_lot 0.11.2",
  "protobuf",
  "protobuf",
  "serde",
  "serde",
  "serde_json",
  "serde_json",
@@ -1187,7 +1188,7 @@ dependencies = [
  "log",
  "log",
  "nanoid",
  "nanoid",
  "once_cell",
  "once_cell",
- "parking_lot",
+ "parking_lot 0.11.2",
  "protobuf",
  "protobuf",
  "serde",
  "serde",
  "serde_json",
  "serde_json",
@@ -1806,7 +1807,7 @@ dependencies = [
  "futures-util",
  "futures-util",
  "lib-infra",
  "lib-infra",
  "log",
  "log",
- "parking_lot",
+ "parking_lot 0.11.2",
  "paste",
  "paste",
  "pin-project",
  "pin-project",
  "protobuf",
  "protobuf",
@@ -1843,9 +1844,9 @@ checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
 
 
 [[package]]
 [[package]]
 name = "lock_api"
 name = "lock_api"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109"
+checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b"
 dependencies = [
 dependencies = [
  "scopeguard",
  "scopeguard",
 ]
 ]
@@ -2126,7 +2127,17 @@ checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
 dependencies = [
 dependencies = [
  "instant",
  "instant",
  "lock_api",
  "lock_api",
- "parking_lot_core",
+ "parking_lot_core 0.8.5",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core 0.9.3",
 ]
 ]
 
 
 [[package]]
 [[package]]
@@ -2143,6 +2154,19 @@ dependencies = [
  "winapi",
  "winapi",
 ]
 ]
 
 
+[[package]]
+name = "parking_lot_core"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.2.10",
+ "smallvec",
+ "windows-sys",
+]
+
 [[package]]
 [[package]]
 name = "parse-zoneinfo"
 name = "parse-zoneinfo"
 version = "0.3.0"
 version = "0.3.0"
@@ -2526,7 +2550,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "545c5bc2b880973c9c10e4067418407a0ccaa3091781d1671d46eb35107cb26f"
 checksum = "545c5bc2b880973c9c10e4067418407a0ccaa3091781d1671d46eb35107cb26f"
 dependencies = [
 dependencies = [
  "log",
  "log",
- "parking_lot",
+ "parking_lot 0.11.2",
  "scheduled-thread-pool",
  "scheduled-thread-pool",
 ]
 ]
 
 
@@ -2804,7 +2828,7 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc6f74fd1204073fa02d5d5d68bec8021be4c38690b61264b2fdb48083d0e7d7"
 checksum = "dc6f74fd1204073fa02d5d5d68bec8021be4c38690b61264b2fdb48083d0e7d7"
 dependencies = [
 dependencies = [
- "parking_lot",
+ "parking_lot 0.11.2",
 ]
 ]
 
 
 [[package]]
 [[package]]
@@ -2947,7 +2971,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e0bccbcf40c8938196944a3da0e133e031a33f4d6b72db3bda3cc556e361905d"
 checksum = "e0bccbcf40c8938196944a3da0e133e031a33f4d6b72db3bda3cc556e361905d"
 dependencies = [
 dependencies = [
  "lazy_static",
  "lazy_static",
- "parking_lot",
+ "parking_lot 0.11.2",
  "serial_test_derive",
  "serial_test_derive",
 ]
 ]
 
 
@@ -3241,7 +3265,7 @@ dependencies = [
  "mio",
  "mio",
  "num_cpus",
  "num_cpus",
  "once_cell",
  "once_cell",
- "parking_lot",
+ "parking_lot 0.11.2",
  "pin-project-lite",
  "pin-project-lite",
  "signal-hook-registry",
  "signal-hook-registry",
  "tokio-macros",
  "tokio-macros",
@@ -3766,6 +3790,49 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 
+[[package]]
+name = "windows-sys"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
+dependencies = [
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
+
 [[package]]
 [[package]]
 name = "winreg"
 name = "winreg"
 version = "0.7.0"
 version = "0.7.0"

+ 10 - 6
frontend/rust-lib/flowy-folder/src/event_map.rs

@@ -59,6 +59,7 @@ pub fn create(folder: Arc<FolderManager>) -> Module {
     module = module
     module = module
         .event(FolderEvent::CreateView, create_view_handler)
         .event(FolderEvent::CreateView, create_view_handler)
         .event(FolderEvent::ReadView, read_view_handler)
         .event(FolderEvent::ReadView, read_view_handler)
+        .event(FolderEvent::ReadViewInfo, read_view_info_handler)
         .event(FolderEvent::UpdateView, update_view_handler)
         .event(FolderEvent::UpdateView, update_view_handler)
         .event(FolderEvent::DeleteView, delete_view_handler)
         .event(FolderEvent::DeleteView, delete_view_handler)
         .event(FolderEvent::DuplicateView, duplicate_view_handler)
         .event(FolderEvent::DuplicateView, duplicate_view_handler)
@@ -124,17 +125,20 @@ pub enum FolderEvent {
     #[event(input = "ViewId")]
     #[event(input = "ViewId")]
     DuplicateView = 205,
     DuplicateView = 205,
 
 
-    #[event()]
-    CopyLink = 206,
-
     #[event(input = "ViewId")]
     #[event(input = "ViewId")]
-    SetLatestView = 207,
+    CloseView = 206,
+
+    #[event(input = "ViewId", output = "ViewInfo")]
+    ReadViewInfo = 207,
+
+    #[event()]
+    CopyLink = 220,
 
 
     #[event(input = "ViewId")]
     #[event(input = "ViewId")]
-    CloseView = 208,
+    SetLatestView = 221,
 
 
     #[event(input = "MoveFolderItemPayload")]
     #[event(input = "MoveFolderItemPayload")]
-    MoveFolderItem = 209,
+    MoveFolderItem = 230,
 
 
     #[event(output = "RepeatedTrash")]
     #[event(output = "RepeatedTrash")]
     ReadTrash = 300,
     ReadTrash = 300,

+ 19 - 16
frontend/rust-lib/flowy-folder/src/protobuf/model/event_map.rs

@@ -40,10 +40,11 @@ pub enum FolderEvent {
     UpdateView = 203,
     UpdateView = 203,
     DeleteView = 204,
     DeleteView = 204,
     DuplicateView = 205,
     DuplicateView = 205,
-    CopyLink = 206,
-    SetLatestView = 207,
-    CloseView = 208,
-    MoveFolderItem = 209,
+    CloseView = 206,
+    ReadViewInfo = 207,
+    CopyLink = 220,
+    SetLatestView = 221,
+    MoveFolderItem = 230,
     ReadTrash = 300,
     ReadTrash = 300,
     PutbackTrash = 301,
     PutbackTrash = 301,
     DeleteTrash = 302,
     DeleteTrash = 302,
@@ -73,10 +74,11 @@ impl ::protobuf::ProtobufEnum for FolderEvent {
             203 => ::std::option::Option::Some(FolderEvent::UpdateView),
             203 => ::std::option::Option::Some(FolderEvent::UpdateView),
             204 => ::std::option::Option::Some(FolderEvent::DeleteView),
             204 => ::std::option::Option::Some(FolderEvent::DeleteView),
             205 => ::std::option::Option::Some(FolderEvent::DuplicateView),
             205 => ::std::option::Option::Some(FolderEvent::DuplicateView),
-            206 => ::std::option::Option::Some(FolderEvent::CopyLink),
-            207 => ::std::option::Option::Some(FolderEvent::SetLatestView),
-            208 => ::std::option::Option::Some(FolderEvent::CloseView),
-            209 => ::std::option::Option::Some(FolderEvent::MoveFolderItem),
+            206 => ::std::option::Option::Some(FolderEvent::CloseView),
+            207 => ::std::option::Option::Some(FolderEvent::ReadViewInfo),
+            220 => ::std::option::Option::Some(FolderEvent::CopyLink),
+            221 => ::std::option::Option::Some(FolderEvent::SetLatestView),
+            230 => ::std::option::Option::Some(FolderEvent::MoveFolderItem),
             300 => ::std::option::Option::Some(FolderEvent::ReadTrash),
             300 => ::std::option::Option::Some(FolderEvent::ReadTrash),
             301 => ::std::option::Option::Some(FolderEvent::PutbackTrash),
             301 => ::std::option::Option::Some(FolderEvent::PutbackTrash),
             302 => ::std::option::Option::Some(FolderEvent::DeleteTrash),
             302 => ::std::option::Option::Some(FolderEvent::DeleteTrash),
@@ -103,9 +105,10 @@ impl ::protobuf::ProtobufEnum for FolderEvent {
             FolderEvent::UpdateView,
             FolderEvent::UpdateView,
             FolderEvent::DeleteView,
             FolderEvent::DeleteView,
             FolderEvent::DuplicateView,
             FolderEvent::DuplicateView,
+            FolderEvent::CloseView,
+            FolderEvent::ReadViewInfo,
             FolderEvent::CopyLink,
             FolderEvent::CopyLink,
             FolderEvent::SetLatestView,
             FolderEvent::SetLatestView,
-            FolderEvent::CloseView,
             FolderEvent::MoveFolderItem,
             FolderEvent::MoveFolderItem,
             FolderEvent::ReadTrash,
             FolderEvent::ReadTrash,
             FolderEvent::PutbackTrash,
             FolderEvent::PutbackTrash,
@@ -140,19 +143,19 @@ impl ::protobuf::reflect::ProtobufValue for FolderEvent {
 }
 }
 
 
 static file_descriptor_proto_data: &'static [u8] = b"\
 static file_descriptor_proto_data: &'static [u8] = b"\
-    \n\x0fevent_map.proto*\xc3\x03\n\x0bFolderEvent\x12\x13\n\x0fCreateWorks\
+    \n\x0fevent_map.proto*\xd6\x03\n\x0bFolderEvent\x12\x13\n\x0fCreateWorks\
     pace\x10\0\x12\x14\n\x10ReadCurWorkspace\x10\x01\x12\x12\n\x0eReadWorksp\
     pace\x10\0\x12\x14\n\x10ReadCurWorkspace\x10\x01\x12\x12\n\x0eReadWorksp\
     aces\x10\x02\x12\x13\n\x0fDeleteWorkspace\x10\x03\x12\x11\n\rOpenWorkspa\
     aces\x10\x02\x12\x13\n\x0fDeleteWorkspace\x10\x03\x12\x11\n\rOpenWorkspa\
     ce\x10\x04\x12\x15\n\x11ReadWorkspaceApps\x10\x05\x12\r\n\tCreateApp\x10\
     ce\x10\x04\x12\x15\n\x11ReadWorkspaceApps\x10\x05\x12\r\n\tCreateApp\x10\
     e\x12\r\n\tDeleteApp\x10f\x12\x0b\n\x07ReadApp\x10g\x12\r\n\tUpdateApp\
     e\x12\r\n\tDeleteApp\x10f\x12\x0b\n\x07ReadApp\x10g\x12\r\n\tUpdateApp\
     \x10h\x12\x0f\n\nCreateView\x10\xc9\x01\x12\r\n\x08ReadView\x10\xca\x01\
     \x10h\x12\x0f\n\nCreateView\x10\xc9\x01\x12\r\n\x08ReadView\x10\xca\x01\
     \x12\x0f\n\nUpdateView\x10\xcb\x01\x12\x0f\n\nDeleteView\x10\xcc\x01\x12\
     \x12\x0f\n\nUpdateView\x10\xcb\x01\x12\x0f\n\nDeleteView\x10\xcc\x01\x12\
-    \x12\n\rDuplicateView\x10\xcd\x01\x12\r\n\x08CopyLink\x10\xce\x01\x12\
-    \x12\n\rSetLatestView\x10\xcf\x01\x12\x0e\n\tCloseView\x10\xd0\x01\x12\
-    \x13\n\x0eMoveFolderItem\x10\xd1\x01\x12\x0e\n\tReadTrash\x10\xac\x02\
-    \x12\x11\n\x0cPutbackTrash\x10\xad\x02\x12\x10\n\x0bDeleteTrash\x10\xae\
-    \x02\x12\x14\n\x0fRestoreAllTrash\x10\xaf\x02\x12\x13\n\x0eDeleteAllTras\
-    h\x10\xb0\x02b\x06proto3\
+    \x12\n\rDuplicateView\x10\xcd\x01\x12\x0e\n\tCloseView\x10\xce\x01\x12\
+    \x11\n\x0cReadViewInfo\x10\xcf\x01\x12\r\n\x08CopyLink\x10\xdc\x01\x12\
+    \x12\n\rSetLatestView\x10\xdd\x01\x12\x13\n\x0eMoveFolderItem\x10\xe6\
+    \x01\x12\x0e\n\tReadTrash\x10\xac\x02\x12\x11\n\x0cPutbackTrash\x10\xad\
+    \x02\x12\x10\n\x0bDeleteTrash\x10\xae\x02\x12\x14\n\x0fRestoreAllTrash\
+    \x10\xaf\x02\x12\x13\n\x0eDeleteAllTrash\x10\xb0\x02b\x06proto3\
 ";
 ";
 
 
 static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
 static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;

+ 5 - 4
frontend/rust-lib/flowy-folder/src/protobuf/proto/event_map.proto

@@ -16,10 +16,11 @@ enum FolderEvent {
     UpdateView = 203;
     UpdateView = 203;
     DeleteView = 204;
     DeleteView = 204;
     DuplicateView = 205;
     DuplicateView = 205;
-    CopyLink = 206;
-    SetLatestView = 207;
-    CloseView = 208;
-    MoveFolderItem = 209;
+    CloseView = 206;
+    ReadViewInfo = 207;
+    CopyLink = 220;
+    SetLatestView = 221;
+    MoveFolderItem = 230;
     ReadTrash = 300;
     ReadTrash = 300;
     PutbackTrash = 301;
     PutbackTrash = 301;
     DeleteTrash = 302;
     DeleteTrash = 302;

+ 0 - 1
frontend/rust-lib/flowy-folder/src/services/persistence/mod.rs

@@ -9,7 +9,6 @@ use crate::{
 };
 };
 use flowy_database::ConnectionPool;
 use flowy_database::ConnectionPool;
 use flowy_error::{FlowyError, FlowyResult};
 use flowy_error::{FlowyError, FlowyResult};
-
 use flowy_folder_data_model::revision::{AppRevision, TrashRevision, ViewRevision, WorkspaceRevision};
 use flowy_folder_data_model::revision::{AppRevision, TrashRevision, ViewRevision, WorkspaceRevision};
 use flowy_revision::disk::{RevisionRecord, RevisionState};
 use flowy_revision::disk::{RevisionRecord, RevisionState};
 use flowy_revision::mk_revision_disk_cache;
 use flowy_revision::mk_revision_disk_cache;

+ 1 - 0
frontend/rust-lib/flowy-folder/src/services/persistence/version_1/v1_impl.rs

@@ -10,6 +10,7 @@ use flowy_database::DBConnection;
 use flowy_error::FlowyResult;
 use flowy_error::FlowyResult;
 use flowy_folder_data_model::revision::{AppRevision, TrashRevision, ViewRevision, WorkspaceRevision};
 use flowy_folder_data_model::revision::{AppRevision, TrashRevision, ViewRevision, WorkspaceRevision};
 
 
+/// V1Transaction is deprecated since version 0.0.2 version
 pub struct V1Transaction<'a>(pub &'a DBConnection);
 pub struct V1Transaction<'a>(pub &'a DBConnection);
 
 
 impl<'a> FolderPersistenceTransaction for V1Transaction<'a> {
 impl<'a> FolderPersistenceTransaction for V1Transaction<'a> {

+ 0 - 1
frontend/rust-lib/flowy-folder/src/services/persistence/version_2/v2_impl.rs

@@ -3,7 +3,6 @@ use crate::services::{
     persistence::{AppChangeset, FolderPersistenceTransaction, ViewChangeset, WorkspaceChangeset},
     persistence::{AppChangeset, FolderPersistenceTransaction, ViewChangeset, WorkspaceChangeset},
 };
 };
 use flowy_error::{FlowyError, FlowyResult};
 use flowy_error::{FlowyError, FlowyResult};
-
 use flowy_folder_data_model::revision::{AppRevision, TrashRevision, ViewRevision, WorkspaceRevision};
 use flowy_folder_data_model::revision::{AppRevision, TrashRevision, ViewRevision, WorkspaceRevision};
 use std::sync::Arc;
 use std::sync::Arc;
 
 

+ 31 - 0
frontend/rust-lib/flowy-folder/src/services/view/controller.rs

@@ -15,6 +15,7 @@ use crate::{
 use bytes::Bytes;
 use bytes::Bytes;
 use flowy_database::kv::KV;
 use flowy_database::kv::KV;
 use flowy_folder_data_model::entities::view::{gen_view_id, ViewDataType};
 use flowy_folder_data_model::entities::view::{gen_view_id, ViewDataType};
+use flowy_folder_data_model::entities::{ViewExtData, ViewInfo};
 use flowy_folder_data_model::revision::ViewRevision;
 use flowy_folder_data_model::revision::ViewRevision;
 use flowy_sync::entities::text_block_info::TextBlockId;
 use flowy_sync::entities::text_block_info::TextBlockId;
 use futures::{FutureExt, StreamExt};
 use futures::{FutureExt, StreamExt};
@@ -121,6 +122,36 @@ impl ViewController {
         Ok(view_rev)
         Ok(view_rev)
     }
     }
 
 
+    #[tracing::instrument(level = "debug", skip(self, view_id), fields(view_id = %view_id.value), err)]
+    pub(crate) async fn read_view_info(&self, view_id: ViewId) -> Result<ViewInfo, FlowyError> {
+        let view_info = self
+            .persistence
+            .begin_transaction(|transaction| {
+                let view_rev = transaction.read_view(&view_id.value)?;
+
+                let items: Vec<View> = view_rev
+                    .belongings
+                    .into_iter()
+                    .map(|view_rev| view_rev.into())
+                    .collect();
+
+                let ext_data = ViewExtData::from(view_rev.ext_data);
+                let view_info = ViewInfo {
+                    id: view_rev.id,
+                    belong_to_id: view_rev.belong_to_id,
+                    name: view_rev.name,
+                    desc: view_rev.desc,
+                    data_type: view_rev.data_type,
+                    belongings: RepeatedView { items },
+                    ext_data,
+                };
+                Ok(view_info)
+            })
+            .await?;
+
+        Ok(view_info)
+    }
+
     pub(crate) async fn read_local_views(&self, ids: Vec<String>) -> Result<Vec<ViewRevision>, FlowyError> {
     pub(crate) async fn read_local_views(&self, ids: Vec<String>) -> Result<Vec<ViewRevision>, FlowyError> {
         self.persistence
         self.persistence
             .begin_transaction(|transaction| {
             .begin_transaction(|transaction| {

+ 5 - 6
frontend/rust-lib/flowy-folder/src/services/view/event_handler.rs

@@ -35,13 +35,12 @@ pub(crate) async fn read_view_handler(
 }
 }
 
 
 pub(crate) async fn read_view_info_handler(
 pub(crate) async fn read_view_info_handler(
-    _data: Data<ViewId>,
-    _controller: AppData<Arc<ViewController>>,
+    data: Data<ViewId>,
+    controller: AppData<Arc<ViewController>>,
 ) -> DataResult<ViewInfo, FlowyError> {
 ) -> DataResult<ViewInfo, FlowyError> {
-    // For the moment, app and view can contains lots of views. Reading the view
-    // belongings using the view_id.
-    // view.belongings = controller.read_views_belong_to(&view_id.value).await?;
-    todo!()
+    let view_id: ViewId = data.into_inner();
+    let view_info = controller.read_view_info(view_id.clone()).await?;
+    data_result(view_info)
 }
 }
 
 
 #[tracing::instrument(level = "debug", skip(data, controller), err)]
 #[tracing::instrument(level = "debug", skip(data, controller), err)]

+ 1 - 1
frontend/rust-lib/flowy-grid/Cargo.toml

@@ -28,7 +28,7 @@ chrono = "0.4.19"
 nanoid = "0.4.0"
 nanoid = "0.4.0"
 bytes = { version = "1.0" }
 bytes = { version = "1.0" }
 diesel = {version = "1.4.8", features = ["sqlite"]}
 diesel = {version = "1.4.8", features = ["sqlite"]}
-dashmap = "4.0"
+dashmap = "5"
 tokio = {version = "1", features = ["sync"]}
 tokio = {version = "1", features = ["sync"]}
 rayon = "1.5.2"
 rayon = "1.5.2"
 serde = { version = "1.0", features = ["derive"] }
 serde = { version = "1.0", features = ["derive"] }

+ 1 - 1
frontend/rust-lib/flowy-net/Cargo.toml

@@ -26,7 +26,7 @@ parking_lot = "0.11"
 strum = "0.21"
 strum = "0.21"
 strum_macros = "0.21"
 strum_macros = "0.21"
 tracing = { version = "0.1", features = ["log"] }
 tracing = { version = "0.1", features = ["log"] }
-dashmap = {version = "4.0"}
+dashmap = "5"
 async-stream = "0.3.2"
 async-stream = "0.3.2"
 futures-util = "0.3.15"
 futures-util = "0.3.15"
 http-flowy = { git = "https://github.com/AppFlowy-IO/AppFlowy-Server", features = ["with_reqwest"] }
 http-flowy = { git = "https://github.com/AppFlowy-IO/AppFlowy-Server", features = ["with_reqwest"] }

+ 1 - 1
frontend/rust-lib/flowy-revision/Cargo.toml

@@ -19,7 +19,7 @@ tokio = {version = "1", features = ["sync"]}
 bytes = { version = "1.1" }
 bytes = { version = "1.1" }
 strum = "0.21"
 strum = "0.21"
 strum_macros = "0.21"
 strum_macros = "0.21"
-dashmap = "4.0"
+dashmap = "5"
 serde = { version = "1.0", features = ["derive"] }
 serde = { version = "1.0", features = ["derive"] }
 futures-util = "0.3.15"
 futures-util = "0.3.15"
 async-stream = "0.3.2"
 async-stream = "0.3.2"

+ 1 - 1
frontend/rust-lib/flowy-text-block/Cargo.toml

@@ -29,7 +29,7 @@ tracing = { version = "0.1", features = ["log"] }
 bytes = { version = "1.1" }
 bytes = { version = "1.1" }
 strum = "0.21"
 strum = "0.21"
 strum_macros = "0.21"
 strum_macros = "0.21"
-dashmap = "4.0"
+dashmap = "5"
 url = "2.2"
 url = "2.2"
 serde = { version = "1.0", features = ["derive"] }
 serde = { version = "1.0", features = ["derive"] }
 serde_json = {version = "1.0"}
 serde_json = {version = "1.0"}

+ 1 - 1
frontend/rust-lib/lib-dispatch/Cargo.toml

@@ -24,7 +24,7 @@ dyn-clone = "1.0"
 derivative = "2.2.0"
 derivative = "2.2.0"
 serde_json = {version = "1.0"}
 serde_json = {version = "1.0"}
 serde = { version = "1.0", features = ["derive"] }
 serde = { version = "1.0", features = ["derive"] }
-dashmap = "4.0"
+dashmap = "5"
 
 
 #optional crate
 #optional crate
 bincode = { version = "1.3", optional = true}
 bincode = { version = "1.3", optional = true}

+ 78 - 11
shared-lib/Cargo.lock

@@ -262,12 +262,13 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "dashmap"
 name = "dashmap"
-version = "4.0.2"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c"
+checksum = "4c8858831f7781322e539ea39e72449c46b059638250c14344fec8d0aa6e539c"
 dependencies = [
 dependencies = [
  "cfg-if",
  "cfg-if",
  "num_cpus",
  "num_cpus",
+ "parking_lot 0.12.1",
 ]
 ]
 
 
 [[package]]
 [[package]]
@@ -476,7 +477,7 @@ dependencies = [
  "lib-ot",
  "lib-ot",
  "log",
  "log",
  "md5",
  "md5",
- "parking_lot",
+ "parking_lot 0.11.2",
  "protobuf",
  "protobuf",
  "serde",
  "serde",
  "serde_json",
  "serde_json",
@@ -881,7 +882,7 @@ dependencies = [
  "futures-util",
  "futures-util",
  "lib-infra",
  "lib-infra",
  "log",
  "log",
- "parking_lot",
+ "parking_lot 0.11.2",
  "paste",
  "paste",
  "pin-project",
  "pin-project",
  "protobuf",
  "protobuf",
@@ -901,9 +902,9 @@ checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219"
 
 
 [[package]]
 [[package]]
 name = "lock_api"
 name = "lock_api"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109"
+checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b"
 dependencies = [
 dependencies = [
  "scopeguard",
  "scopeguard",
 ]
 ]
@@ -1002,9 +1003,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "num_cpus"
 name = "num_cpus"
-version = "1.13.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
+checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
 dependencies = [
 dependencies = [
  "hermit-abi",
  "hermit-abi",
  "libc",
  "libc",
@@ -1046,7 +1047,17 @@ checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
 dependencies = [
 dependencies = [
  "instant",
  "instant",
  "lock_api",
  "lock_api",
- "parking_lot_core",
+ "parking_lot_core 0.8.5",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core 0.9.3",
 ]
 ]
 
 
 [[package]]
 [[package]]
@@ -1063,6 +1074,19 @@ dependencies = [
  "winapi",
  "winapi",
 ]
 ]
 
 
+[[package]]
+name = "parking_lot_core"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-sys",
+]
+
 [[package]]
 [[package]]
 name = "parse-zoneinfo"
 name = "parse-zoneinfo"
 version = "0.3.0"
 version = "0.3.0"
@@ -1624,7 +1648,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e0bccbcf40c8938196944a3da0e133e031a33f4d6b72db3bda3cc556e361905d"
 checksum = "e0bccbcf40c8938196944a3da0e133e031a33f4d6b72db3bda3cc556e361905d"
 dependencies = [
 dependencies = [
  "lazy_static",
  "lazy_static",
- "parking_lot",
+ "parking_lot 0.11.2",
  "serial_test_derive",
  "serial_test_derive",
 ]
 ]
 
 
@@ -1858,7 +1882,7 @@ dependencies = [
  "mio",
  "mio",
  "num_cpus",
  "num_cpus",
  "once_cell",
  "once_cell",
- "parking_lot",
+ "parking_lot 0.11.2",
  "pin-project-lite",
  "pin-project-lite",
  "signal-hook-registry",
  "signal-hook-registry",
  "tokio-macros",
  "tokio-macros",
@@ -2178,3 +2202,46 @@ name = "winapi-x86_64-pc-windows-gnu"
 version = "0.4.0"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
+dependencies = [
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"

+ 1 - 1
shared-lib/flowy-derive/Cargo.toml

@@ -19,7 +19,7 @@ quote = "1.0"
 proc-macro2 = "1.0"
 proc-macro2 = "1.0"
 flowy-ast = { path = "../flowy-ast" }
 flowy-ast = { path = "../flowy-ast" }
 lazy_static = {version = "1.4.0"}
 lazy_static = {version = "1.4.0"}
-dashmap = "4.0"
+dashmap = "5"
 lib-infra = { path = "../lib-infra", features = ["proto_gen"]}
 lib-infra = { path = "../lib-infra", features = ["proto_gen"]}
 serde_json = "1.0"
 serde_json = "1.0"
 walkdir = "2.3.1"
 walkdir = "2.3.1"

+ 1 - 1
shared-lib/flowy-sync/Cargo.toml

@@ -25,7 +25,7 @@ strum = "0.21"
 strum_macros = "0.21"
 strum_macros = "0.21"
 chrono = "0.4.19"
 chrono = "0.4.19"
 parking_lot = "0.11"
 parking_lot = "0.11"
-dashmap = "4.0"
+dashmap = "5"
 futures = "0.3.15"
 futures = "0.3.15"
 async-stream = "0.3.2"
 async-stream = "0.3.2"
 
 

+ 1 - 1
shared-lib/lib-ot/Cargo.toml

@@ -11,7 +11,7 @@ serde = { version = "1.0", features = ["derive"] }
 #protobuf = {version = "2.18.0"}
 #protobuf = {version = "2.18.0"}
 #flowy-derive = { path = "../flowy-derive" }
 #flowy-derive = { path = "../flowy-derive" }
 tokio = {version = "1", features = ["sync"]}
 tokio = {version = "1", features = ["sync"]}
-dashmap = "4.0"
+dashmap = "5"
 md5 = "0.7.0"
 md5 = "0.7.0"
 anyhow = "1.0"
 anyhow = "1.0"
 thiserror = "1.0"
 thiserror = "1.0"

+ 1 - 1
shared-lib/lib-ws/Cargo.toml

@@ -25,7 +25,7 @@ protobuf = {version = "2.18.0"}
 strum = "0.21"
 strum = "0.21"
 strum_macros = "0.21"
 strum_macros = "0.21"
 parking_lot = "0.11"
 parking_lot = "0.11"
-dashmap = "4.0"
+dashmap = "5"
 
 
 [build-dependencies]
 [build-dependencies]
 lib-infra = { path = "../lib-infra", features = ["protobuf_file_gen"] }
 lib-infra = { path = "../lib-infra", features = ["protobuf_file_gen"] }