core-3nweb-client-lib 0.26.1 → 0.27.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.
Files changed (199) hide show
  1. package/build/api-defs/asmail.d.ts +1 -1
  2. package/build/api-defs/files.d.ts +278 -69
  3. package/build/core/app-files.js +7 -7
  4. package/build/core/asmail/config/common.js +2 -2
  5. package/build/core/asmail/config/index.js +2 -2
  6. package/build/core/asmail/config/published-intro-key.js +1 -1
  7. package/build/core/asmail/delivery/common.js +7 -7
  8. package/build/core/asmail/delivery/index.js +5 -5
  9. package/build/core/asmail/delivery/msg.js +4 -4
  10. package/build/core/asmail/delivery/per-recipient-wip.js +1 -1
  11. package/build/core/asmail/inbox/attachments/fs.js +5 -1
  12. package/build/core/asmail/inbox/cached-msgs.js +1 -1
  13. package/build/core/asmail/inbox/inbox-events.js +4 -4
  14. package/build/core/asmail/inbox/index.js +10 -10
  15. package/build/core/asmail/inbox/msg-downloader.js +1 -1
  16. package/build/core/asmail/inbox/msg-indexing.js +1 -1
  17. package/build/core/asmail/inbox/msg-on-disk.js +5 -5
  18. package/build/core/asmail/index.d.ts +3 -3
  19. package/build/core/asmail/index.js +13 -8
  20. package/build/core/asmail/key-verification.js +5 -5
  21. package/build/core/asmail/keyring/common.js +7 -6
  22. package/build/core/asmail/keyring/correspondent-keys.js +8 -7
  23. package/build/core/asmail/keyring/id-to-email-map.js +2 -1
  24. package/build/core/asmail/keyring/index.d.ts +7 -8
  25. package/build/core/asmail/keyring/index.js +15 -14
  26. package/build/core/asmail/keyring/keyring-storage.js +2 -1
  27. package/build/core/asmail/msg/opener.js +3 -3
  28. package/build/core/asmail/msg/packer.js +13 -13
  29. package/build/core/asmail/sending-params/own-params.js +2 -2
  30. package/build/core/asmail/sending-params/params-from-others.js +1 -1
  31. package/build/core/id-manager.js +6 -3
  32. package/build/core/index.d.ts +2 -1
  33. package/build/core/index.js +14 -14
  34. package/build/core/sign-in.js +5 -5
  35. package/build/core/sign-up.js +9 -9
  36. package/build/core/storage/common/json-saving.js +2 -2
  37. package/build/core/storage/common/obj-info-file.d.ts +12 -4
  38. package/build/core/storage/common/obj-info-file.js +66 -34
  39. package/build/core/storage/common/utils.d.ts +2 -0
  40. package/build/core/storage/common/utils.js +32 -0
  41. package/build/core/storage/index.d.ts +3 -17
  42. package/build/core/storage/index.js +56 -76
  43. package/build/core/storage/local/obj-files-gc.d.ts +2 -0
  44. package/build/core/storage/local/obj-files-gc.js +49 -37
  45. package/build/core/storage/local/obj-files.d.ts +4 -7
  46. package/build/core/storage/local/obj-files.js +7 -10
  47. package/build/core/storage/local/obj-status.d.ts +12 -6
  48. package/build/core/storage/local/obj-status.js +24 -9
  49. package/build/core/storage/local/storage.d.ts +9 -6
  50. package/build/core/storage/local/storage.js +29 -18
  51. package/build/core/storage/synced/downloader.js +1 -1
  52. package/build/core/storage/synced/obj-files-gc.d.ts +5 -1
  53. package/build/core/storage/synced/obj-files-gc.js +91 -37
  54. package/build/core/storage/synced/obj-files.d.ts +42 -36
  55. package/build/core/storage/synced/obj-files.js +178 -147
  56. package/build/core/storage/synced/obj-status.d.ts +87 -85
  57. package/build/core/storage/synced/obj-status.js +463 -259
  58. package/build/core/storage/synced/remote-events.d.ts +11 -12
  59. package/build/core/storage/synced/remote-events.js +73 -56
  60. package/build/core/storage/synced/storage.d.ts +18 -9
  61. package/build/core/storage/synced/storage.js +108 -48
  62. package/build/core/storage/synced/upload-header-file.d.ts +4 -0
  63. package/build/core/storage/synced/upload-header-file.js +64 -0
  64. package/build/core/storage/synced/upsyncer.d.ts +12 -7
  65. package/build/core/storage/synced/upsyncer.js +205 -280
  66. package/build/core/storage/system-folders/apps-data.d.ts +16 -0
  67. package/build/core/storage/system-folders/apps-data.js +110 -0
  68. package/build/core/storage/system-folders/index.d.ts +18 -0
  69. package/build/core/storage/system-folders/index.js +77 -0
  70. package/build/core-ipc/common-caps.js +3 -3
  71. package/build/core-ipc/generic.js +8 -8
  72. package/build/core-ipc/startup-caps.js +2 -2
  73. package/build/cryptors.js +6 -2
  74. package/build/ipc-via-protobuf/asmail-cap.js +58 -57
  75. package/build/ipc-via-protobuf/bytes.js +16 -17
  76. package/build/ipc-via-protobuf/connector-clients-side.d.ts +1 -0
  77. package/build/ipc-via-protobuf/connector-clients-side.js +14 -15
  78. package/build/ipc-via-protobuf/connector-services-side.js +10 -10
  79. package/build/ipc-via-protobuf/connector.js +4 -4
  80. package/build/ipc-via-protobuf/file.d.ts +48 -12
  81. package/build/ipc-via-protobuf/file.js +474 -126
  82. package/build/ipc-via-protobuf/fs.d.ts +8 -0
  83. package/build/ipc-via-protobuf/fs.js +577 -142
  84. package/build/ipc-via-protobuf/log-cap.js +2 -2
  85. package/build/ipc-via-protobuf/mailerid.js +3 -3
  86. package/build/ipc-via-protobuf/protobuf-msg.d.ts +1 -0
  87. package/build/ipc-via-protobuf/protobuf-msg.js +11 -7
  88. package/build/ipc-via-protobuf/startup-cap.js +21 -21
  89. package/build/ipc-via-protobuf/storage-cap.js +12 -12
  90. package/build/ipc.js +7 -2
  91. package/build/lib-client/3nstorage/exceptions.d.ts +3 -0
  92. package/build/lib-client/3nstorage/exceptions.js +13 -1
  93. package/build/lib-client/3nstorage/service.d.ts +16 -2
  94. package/build/lib-client/3nstorage/service.js +104 -38
  95. package/build/lib-client/3nstorage/util/file-based-json.d.ts +2 -1
  96. package/build/lib-client/3nstorage/util/file-based-json.js +1 -1
  97. package/build/lib-client/3nstorage/xsp-fs/attrs.js +17 -17
  98. package/build/lib-client/3nstorage/xsp-fs/common.d.ts +42 -18
  99. package/build/lib-client/3nstorage/xsp-fs/common.js +29 -19
  100. package/build/lib-client/3nstorage/xsp-fs/file-node.d.ts +1 -0
  101. package/build/lib-client/3nstorage/xsp-fs/file-node.js +17 -13
  102. package/build/lib-client/3nstorage/xsp-fs/file.d.ts +31 -6
  103. package/build/lib-client/3nstorage/xsp-fs/file.js +73 -25
  104. package/build/lib-client/3nstorage/xsp-fs/folder-node-serialization.js +4 -4
  105. package/build/lib-client/3nstorage/xsp-fs/folder-node.d.ts +24 -11
  106. package/build/lib-client/3nstorage/xsp-fs/folder-node.js +575 -179
  107. package/build/lib-client/3nstorage/xsp-fs/fs.d.ts +35 -4
  108. package/build/lib-client/3nstorage/xsp-fs/fs.js +231 -110
  109. package/build/lib-client/3nstorage/xsp-fs/link-node.d.ts +1 -0
  110. package/build/lib-client/3nstorage/xsp-fs/link-node.js +7 -2
  111. package/build/lib-client/3nstorage/xsp-fs/node-in-fs.d.ts +30 -24
  112. package/build/lib-client/3nstorage/xsp-fs/node-in-fs.js +229 -123
  113. package/build/lib-client/3nstorage/xsp-fs/node-persistence.d.ts +1 -1
  114. package/build/lib-client/3nstorage/xsp-fs/node-persistence.js +17 -18
  115. package/build/lib-client/3nstorage/xsp-fs/xsp-payload-v1.js +3 -3
  116. package/build/lib-client/3nstorage/xsp-fs/xsp-payload-v2.js +53 -53
  117. package/build/lib-client/3nweb-signup.js +4 -4
  118. package/build/lib-client/asmail/recipient.js +15 -15
  119. package/build/lib-client/asmail/sender.js +22 -22
  120. package/build/lib-client/asmail/service-config.js +3 -3
  121. package/build/lib-client/cryptor/cryptor-in-worker.js +18 -16
  122. package/build/lib-client/cryptor/cryptor-wasm.js +1 -1
  123. package/build/lib-client/cryptor/cryptor.js +4 -2
  124. package/build/lib-client/cryptor/cryptor.wasm +0 -0
  125. package/build/lib-client/cryptor/in-proc-js.js +1 -1
  126. package/build/lib-client/cryptor/in-proc-wasm.js +6 -6
  127. package/build/lib-client/cryptor/worker-js.js +2 -2
  128. package/build/lib-client/cryptor/worker-wasm.js +2 -2
  129. package/build/lib-client/files-select.js +1 -1
  130. package/build/lib-client/files.d.ts +1 -1
  131. package/build/lib-client/files.js +71 -6
  132. package/build/lib-client/fs-collection.js +1 -1
  133. package/build/lib-client/fs-sync-utils.d.ts +5 -0
  134. package/build/lib-client/fs-sync-utils.js +61 -0
  135. package/build/lib-client/fs-view.d.ts +14 -0
  136. package/build/lib-client/fs-view.js +33 -0
  137. package/build/lib-client/key-derivation.js +1 -1
  138. package/build/lib-client/local-files/dev-file-sink.js +9 -9
  139. package/build/lib-client/local-files/dev-file-src.js +2 -2
  140. package/build/lib-client/local-files/device-fs.d.ts +1 -1
  141. package/build/lib-client/local-files/device-fs.js +56 -54
  142. package/build/lib-client/logging/log-to-file.d.ts +1 -1
  143. package/build/lib-client/logging/log-to-file.js +7 -7
  144. package/build/lib-client/mailer-id/login.js +7 -7
  145. package/build/lib-client/mailer-id/provisioner.js +12 -12
  146. package/build/lib-client/objs-on-disk/file-writing-proc.js +3 -3
  147. package/build/lib-client/objs-on-disk/obj-folders.js +31 -31
  148. package/build/lib-client/objs-on-disk/obj-on-disk.d.ts +13 -2
  149. package/build/lib-client/objs-on-disk/obj-on-disk.js +24 -9
  150. package/build/lib-client/request-utils.d.ts +1 -0
  151. package/build/lib-client/request-utils.js +13 -13
  152. package/build/lib-client/server-events.d.ts +3 -3
  153. package/build/lib-client/server-events.js +9 -8
  154. package/build/lib-client/service-locator.js +10 -10
  155. package/build/lib-client/user-with-mid-session.js +7 -7
  156. package/build/lib-client/user-with-pkl-session.js +25 -25
  157. package/build/lib-client/ws-utils.js +2 -2
  158. package/build/lib-common/async-cryptor-wrap.js +4 -4
  159. package/build/lib-common/async-fs-node.d.ts +5 -3
  160. package/build/lib-common/async-fs-node.js +16 -16
  161. package/build/lib-common/byte-streaming/pipe.js +1 -1
  162. package/build/lib-common/byte-streaming/wrapping.js +13 -13
  163. package/build/lib-common/canonical-address.js +1 -1
  164. package/build/lib-common/exceptions/error.d.ts +1 -0
  165. package/build/lib-common/exceptions/error.js +7 -6
  166. package/build/lib-common/exceptions/file.js +4 -0
  167. package/build/lib-common/ipc/ws-ipc.js +2 -2
  168. package/build/lib-common/mid-sigs-NaCl-Ed.js +14 -14
  169. package/build/lib-common/objs-on-disk/file-layout.d.ts +19 -0
  170. package/build/lib-common/objs-on-disk/file-layout.js +130 -12
  171. package/build/lib-common/objs-on-disk/obj-file.d.ts +13 -2
  172. package/build/lib-common/objs-on-disk/obj-file.js +96 -35
  173. package/build/lib-common/objs-on-disk/utils.d.ts +1 -0
  174. package/build/lib-common/objs-on-disk/utils.js +3 -3
  175. package/build/lib-common/objs-on-disk/v1-obj-file-format.js +14 -14
  176. package/build/lib-common/processes/labelled-exec-pools.d.ts +1 -1
  177. package/build/lib-common/processes/labelled-exec-pools.js +1 -1
  178. package/build/lib-common/processes/pressure.js +2 -2
  179. package/build/lib-common/processes/synced.js +1 -1
  180. package/build/lib-common/processes/timeout.js +2 -2
  181. package/build/lib-common/random-node.js +7 -7
  182. package/build/lib-common/service-api/3nstorage/owner.d.ts +95 -35
  183. package/build/lib-common/service-api/3nstorage/owner.js +82 -40
  184. package/build/lib-common/service-api/asmail/delivery.js +2 -2
  185. package/build/lib-common/service-api/asmail/retrieval.js +1 -1
  186. package/build/lib-common/timed-cache.d.ts +1 -0
  187. package/build/lib-common/timed-non-weak-cache.d.ts +1 -0
  188. package/build/lib-common/timed-non-weak-cache.js +11 -0
  189. package/build/lib-common/utils-for-observables.js +4 -4
  190. package/build/lib-common/weak-cache.d.ts +1 -0
  191. package/build/lib-common/weak-cache.js +12 -1
  192. package/build/lib-index.d.ts +2 -1
  193. package/build/lib-index.js +10 -7
  194. package/build/protos/asmail.proto.js +12955 -7496
  195. package/build/protos/file.proto.js +4867 -2744
  196. package/build/protos/fs.proto.js +9227 -3768
  197. package/package.json +6 -5
  198. package/protos/file.proto +91 -19
  199. package/protos/fs.proto +107 -8
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "core-3nweb-client-lib",
3
- "version": "0.26.1",
3
+ "version": "0.27.0",
4
4
  "description": "3NWeb client core library, embeddable into different environments",
5
5
  "main": "build/lib-index.js",
6
6
  "types": "build/lib-index.d.ts",
7
7
  "scripts": {
8
8
  "build": "bash packing/protos-to-node-module.sh && tsc -p ts-code && bash packing/copy-api.sh && bash packing/build-wasm-cryptor.sh",
9
+ "build-only-ts": "tsc -p ts-code",
9
10
  "test": "node build/tests/jasmine.js"
10
11
  },
11
12
  "repository": {
@@ -35,10 +36,10 @@
35
36
  },
36
37
  "devDependencies": {
37
38
  "@types/jasmine": "^3.9.1",
38
- "@types/node": "^12.0.4",
39
- "@types/ws": "^4.0.0",
39
+ "@types/node": "^16.11.7",
40
+ "@types/ws": "^7.4.7",
40
41
  "jasmine": "^3.9.0",
41
- "spec-3nweb-server": "^1.4.0",
42
- "typescript": "^3.7.3"
42
+ "spec-3nweb-server": "^1.6.1",
43
+ "typescript": "^4.7.4"
43
44
  }
44
45
  }
package/protos/file.proto CHANGED
@@ -13,6 +13,22 @@ message File {
13
13
  // impl is a reference to object with methods of either
14
14
  // ReadonlyFile or WritableFile
15
15
  common.ObjectReference impl = 5;
16
+ bool is_synced = 6;
17
+ }
18
+
19
+
20
+ message SyncStatusMsg {
21
+ string state = 1;
22
+ SyncVersionsBranchMsg local = 2;
23
+ SyncVersionsBranchMsg synced = 3;
24
+ SyncVersionsBranchMsg remote = 4;
25
+ common.BooleanValue exists_in_synced_parent = 5;
26
+ }
27
+
28
+ message SyncVersionsBranchMsg {
29
+ common.UInt64Value latest = 1;
30
+ repeated uint64 archived = 2;
31
+ common.BooleanValue is_archived = 3;
16
32
  }
17
33
 
18
34
 
@@ -22,14 +38,6 @@ message File {
22
38
  // Request body is empty
23
39
  // Reply body is StatsMsg
24
40
  message StatsMsg {
25
- message SyncInfo {
26
- string state = 1;
27
- common.UInt64Value latest = 2;
28
- common.UInt64Value remote = 3;
29
- repeated uint64 conflicting_remote = 4;
30
- common.BooleanValue deleted_on_remote = 5;
31
- }
32
-
33
41
  common.BooleanValue is_file = 1;
34
42
  common.BooleanValue is_folder = 2;
35
43
  common.BooleanValue is_link = 3;
@@ -38,7 +46,7 @@ message StatsMsg {
38
46
  common.UInt64Value mtime = 6;
39
47
  common.UInt64Value ctime = 7;
40
48
  common.UInt64Value version = 8;
41
- SyncInfo sync = 9;
49
+ SyncStatusMsg sync = 9;
42
50
  }
43
51
 
44
52
  // --- ReadonlyFile.getXAttr ---
@@ -85,10 +93,10 @@ message ReadBytesReplyBody {
85
93
  message FileEventMsg {
86
94
  string type = 1;
87
95
  string path = 2;
88
- common.BooleanValue is_remote = 3;
96
+ common.StringValue src = 3;
89
97
  common.UInt64Value new_version = 4;
90
- common.UInt64Value current = 14;
91
- common.UInt64Value uploaded = 15;
98
+ common.UInt64Value removed_arch_ver = 5;
99
+ common.UInt64Value archived_version = 6;
92
100
  }
93
101
 
94
102
 
@@ -139,6 +147,13 @@ message VersionedGetByteSourceReplyBody {
139
147
  common.ObjectReference src = 2;
140
148
  }
141
149
 
150
+ // --- ReadonlyFileVersionedAPI.listVersions ---
151
+ // Request body is empty
152
+ message ListVersionsReplyBody {
153
+ common.UInt64Value current = 1;
154
+ repeated uint64 archived = 2;
155
+ }
156
+
142
157
 
143
158
  // ==== WritableFile referable as impl object (extends ReadonlyFile) ====
144
159
 
@@ -148,14 +163,15 @@ message UpdateXAttrsRequestBody {
148
163
  XAttrsChanges changes = 1;
149
164
  }
150
165
 
166
+ message NameAndXAttrValue {
167
+ string xa_name = 1;
168
+ common.StringValue str = 2;
169
+ common.StringValue json = 3;
170
+ common.BytesValue bytes = 4;
171
+ }
172
+
151
173
  message XAttrsChanges {
152
- message NameAndAttrValue {
153
- string xa_name = 1;
154
- common.StringValue str = 2;
155
- common.StringValue json = 3;
156
- common.BytesValue bytes = 4;
157
- }
158
- repeated NameAndAttrValue set = 1;
174
+ repeated NameAndXAttrValue set = 1;
159
175
  repeated string remove = 2;
160
176
  }
161
177
 
@@ -223,3 +239,59 @@ message VersionedGetByteSinkReplyBody {
223
239
  // --- WritableFileVersionedAPI.copy ---
224
240
  // Request body is CopyRequestBody
225
241
  // Reply body is common.UInt64Value
242
+
243
+ // --- WritableFileVersionedAPI.archiveCurrent ---
244
+ // Reply body is common.UInt64Value
245
+ message ArchiveCurrentRequestBody {
246
+ common.UInt64Value version = 1;
247
+ }
248
+
249
+
250
+ // ==== ReadonlyFileSyncAPI referable object ====
251
+
252
+ // --- ReadonlyFileSyncAPI.status ---
253
+ // Request body is empty
254
+ // Reply body is SyncStatusMsg
255
+
256
+ // --- ReadonlyFileSyncAPI.updateStatusInfo ---
257
+ // Request body is PathOnlyRequestBody
258
+ // Reply body is SyncState
259
+
260
+ // --- ReadonlyFileSyncAPI.isRemoteVersionOnDisk ---
261
+ message FileSyncIsOnDiskRequestBody {
262
+ uint64 version = 1;
263
+ }
264
+ message FileSyncIsOnDiskReplyBody {
265
+ string status = 1;
266
+ }
267
+
268
+ // --- ReadonlyFileSyncAPI.download ---
269
+ // Reply has only status and body is empty
270
+ message FileSyncDownloadRequestBody {
271
+ uint64 version = 1;
272
+ }
273
+
274
+ // --- ReadonlyFileSyncAPI.adoptRemote ---
275
+ // Reply has only status and body is empty
276
+ message AdoptRemoteRequestBody {
277
+ OptionsToAdopteRemote opts = 1;
278
+ }
279
+
280
+ message OptionsToAdopteRemote {
281
+ common.BooleanValue drop_local_ver = 1;
282
+ common.UInt64Value remote_version = 2;
283
+ }
284
+
285
+
286
+ // ==== WritableFileSyncAPI referable object ====
287
+
288
+ // --- WritableFileSyncAPI.upload ---
289
+ // Reply has only status and body is empty
290
+ message FileSyncUploadRequestBody {
291
+ OptionsToUploadLocal opts = 1;
292
+ }
293
+
294
+ message OptionsToUploadLocal {
295
+ common.UInt64Value local_version = 1;
296
+ common.UInt64Value upload_version = 2;
297
+ }
package/protos/fs.proto CHANGED
@@ -14,6 +14,7 @@ message FS {
14
14
  // impl is a reference to object with methods of either
15
15
  // ReadonlyFS or WritableFS
16
16
  common.ObjectReference impl = 5;
17
+ bool is_synced = 6;
17
18
  }
18
19
 
19
20
 
@@ -78,15 +79,15 @@ message SymLinkTargetReplyBody {
78
79
  message FSEventMsg {
79
80
  string type = 1;
80
81
  string path = 2;
81
- common.BooleanValue is_remote = 3;
82
+ common.StringValue src = 3;
82
83
  common.UInt64Value new_version = 4;
83
- common.StringValue name = 10;
84
- common.StringValue old_name = 11;
85
- common.StringValue new_name = 12;
86
- ListingEntryMsg entry = 13;
87
- common.UInt64Value current = 14;
88
- common.UInt64Value uploaded = 15;
89
- common.UInt64Value move_label = 16;
84
+ common.StringValue name = 5;
85
+ common.StringValue old_name = 6;
86
+ common.StringValue new_name = 7;
87
+ ListingEntryMsg entry = 8;
88
+ common.UInt64Value move_label = 9;
89
+ common.UInt64Value removed_arch_ver = 10;
90
+ common.UInt64Value archived_version = 11;
90
91
  }
91
92
 
92
93
  // --- ReadonlyFS.watchFile ---
@@ -96,6 +97,10 @@ message FSEventMsg {
96
97
  // --- ReadonlyFS.watchTree ---
97
98
  // Its an observable call, and initial request is PathOnlyRequestBody
98
99
  // Observer expects FSEventMsg in next.
100
+ message WatchTreeRequestBody {
101
+ string path = 1;
102
+ common.UInt32Value depth = 2;
103
+ }
99
104
 
100
105
  // --- ReadonlyFS.close ---
101
106
  // Request body is empty
@@ -256,6 +261,10 @@ message VersionedListFolderReplyBody {
256
261
  // Request body is PathOnlyRequestBody
257
262
  // Reply body is file.VersionedGetByteSourceReplyBody
258
263
 
264
+ // --- ReadonlyFSVersionedAPI.getByteSource ---
265
+ // Request body is PathOnlyRequestBody
266
+ // Reply body is file.ListVersionsReplyBody
267
+
259
268
 
260
269
  // ==== WritableFS referable as impl object (extends ReadonlyFS) ====
261
270
 
@@ -430,3 +439,93 @@ message VersionedGetByteSinkRequestBody {
430
439
  VersionedFileFlags flags = 2;
431
440
  }
432
441
 
442
+ // --- WritableFSVersionedAPI.archiveCurrent ---
443
+ // Reply body is common.UInt64Value
444
+ message ArchiveCurrentRequestBody {
445
+ string path = 1;
446
+ common.UInt64Value version = 2;
447
+ }
448
+
449
+
450
+ // ==== ReadonlyFSSyncAPI referable object ====
451
+
452
+ // --- ReadonlyFSSyncAPI.status ---
453
+ // Request body is PathOnlyRequestBody
454
+ // Reply body is file.SyncState
455
+
456
+ // --- ReadonlyFSSyncAPI.updateStatusInfo ---
457
+ // Request body is PathOnlyRequestBody
458
+ // Reply body is file.SyncState
459
+
460
+ // --- ReadonlyFSSyncAPI.isRemoteVersionOnDisk ---
461
+ message FSSyncIsOnDiskRequestBody {
462
+ string path = 1;
463
+ uint64 version = 2;
464
+ }
465
+ message FSSyncIsOnDiskReplyBody {
466
+ string status = 1;
467
+ }
468
+
469
+ // --- ReadonlyFSSyncAPI.download ---
470
+ // Reply has only status and body is empty
471
+ message FSSyncDownloadRequestBody {
472
+ string path = 1;
473
+ uint64 version = 2;
474
+ }
475
+
476
+ // --- ReadonlyFSSyncAPI.adoptRemote ---
477
+ // Reply has only status and body is empty
478
+ message AdoptRemoteRequestBody {
479
+ string path = 1;
480
+ file.OptionsToAdopteRemote opts = 2;
481
+ }
482
+
483
+ // --- ReadonlyFSSyncAPI.diffCurrentAndRemote ---
484
+ message DiffCurrentAndRemoteRequestBody {
485
+ string path = 1;
486
+ common.UInt64Value remote_version = 2;
487
+ }
488
+ message DiffCurrentAndRemoteReplyBody {
489
+ FolderDiff diff = 1;
490
+ }
491
+
492
+ message FolderDiff {
493
+ message TimeStamps {
494
+ uint64 current = 1;
495
+ common.UInt64Value remote = 2;
496
+ }
497
+ message XAttrs {
498
+ repeated file.NameAndXAttrValue in_current = 1;
499
+ repeated file.NameAndXAttrValue in_remote = 2;
500
+ repeated string name_overlaps = 3;
501
+ }
502
+ uint64 current_version = 1;
503
+ common.UInt64Value remote_version = 2;
504
+ repeated ListingEntryMsg in_current = 3;
505
+ repeated ListingEntryMsg in_remote = 4;
506
+ repeated string name_overlaps = 5;
507
+ TimeStamps ctime = 6;
508
+ TimeStamps mtime = 7;
509
+ XAttrs xattrs = 8;
510
+ }
511
+
512
+
513
+ // ==== WritableFSSyncAPI referable object ====
514
+
515
+ // --- WritableFSSyncAPI.upload ---
516
+ // Reply has only status and body is empty
517
+ message FSSyncUploadRequestBody {
518
+ string path = 1;
519
+ file.OptionsToUploadLocal opts = 2;
520
+ }
521
+
522
+ // --- WritableFSSyncAPI.adoptRemoteFolderItem ---
523
+ message AdoptRemoteFolderItemRequestBody {
524
+ message Options {
525
+ common.UInt64Value local_version = 1;
526
+ common.UInt64Value upload_version = 2;
527
+ }
528
+ string path = 1;
529
+ string item_name = 2;
530
+ Options opts = 3;
531
+ }