@dxos/protocols 0.6.2-main.c33bf0c → 0.6.2-main.d41f0d2

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 (35) hide show
  1. package/dist/cjs/src/proto/gen/dxos/client/services.d.ts +175 -175
  2. package/dist/cjs/src/proto/gen/dxos/client/services.d.ts.map +1 -1
  3. package/dist/cjs/src/proto/gen/dxos/client/services.js +25 -25
  4. package/dist/cjs/src/proto/gen/dxos/client/services.js.map +1 -1
  5. package/dist/cjs/src/proto/gen/dxos/echo/service.d.ts +59 -51
  6. package/dist/cjs/src/proto/gen/dxos/echo/service.d.ts.map +1 -1
  7. package/dist/cjs/src/proto/gen/dxos/echo/service.js +0 -12
  8. package/dist/cjs/src/proto/gen/dxos/echo/service.js.map +1 -1
  9. package/dist/cjs/src/proto/gen/google/protobuf.d.ts +4 -4
  10. package/dist/cjs/src/proto/gen/google/protobuf.d.ts.map +1 -1
  11. package/dist/cjs/src/proto/gen/index.d.ts +3 -3
  12. package/dist/cjs/src/proto/gen/index.d.ts.map +1 -1
  13. package/dist/cjs/src/proto/gen/index.js +1 -1
  14. package/dist/cjs/src/proto/gen/index.js.map +1 -1
  15. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  16. package/dist/esm/src/proto/gen/dxos/client/services.d.ts +175 -175
  17. package/dist/esm/src/proto/gen/dxos/client/services.d.ts.map +1 -1
  18. package/dist/esm/src/proto/gen/dxos/client/services.js +24 -24
  19. package/dist/esm/src/proto/gen/dxos/client/services.js.map +1 -1
  20. package/dist/esm/src/proto/gen/dxos/echo/service.d.ts +59 -51
  21. package/dist/esm/src/proto/gen/dxos/echo/service.d.ts.map +1 -1
  22. package/dist/esm/src/proto/gen/dxos/echo/service.js +1 -11
  23. package/dist/esm/src/proto/gen/dxos/echo/service.js.map +1 -1
  24. package/dist/esm/src/proto/gen/google/protobuf.d.ts +4 -4
  25. package/dist/esm/src/proto/gen/google/protobuf.d.ts.map +1 -1
  26. package/dist/esm/src/proto/gen/index.d.ts +3 -3
  27. package/dist/esm/src/proto/gen/index.d.ts.map +1 -1
  28. package/dist/esm/src/proto/gen/index.js +1 -1
  29. package/dist/esm/src/proto/gen/index.js.map +1 -1
  30. package/package.json +6 -6
  31. package/src/proto/dxos/echo/service.proto +60 -30
  32. package/src/proto/gen/dxos/client/services.ts +175 -175
  33. package/src/proto/gen/dxos/echo/service.ts +59 -50
  34. package/src/proto/gen/google/protobuf.ts +4 -4
  35. package/src/proto/gen/index.ts +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/proto/gen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAgEhE,OAAO,aAAa,MAAM,kBAAkB,CAAC;AA2jB7C,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,wk6GAAwk6G,CAAC,CAAC,CAAC;AACjo6G,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAkB,UAAU,EAAE,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/proto/gen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAgEhE,OAAO,aAAa,MAAM,kBAAkB,CAAC;AA2jB7C,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,ww7GAAww7G,CAAC,CAAC,CAAC;AACj07G,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAkB,UAAU,EAAE,aAAa,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/protocols",
3
- "version": "0.6.2-main.c33bf0c",
3
+ "version": "0.6.2-main.d41f0d2",
4
4
  "description": "Protobuf definitions for DXOS protocols.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -34,11 +34,11 @@
34
34
  ],
35
35
  "dependencies": {
36
36
  "@effect/schema": "^0.67.16",
37
- "@dxos/codec-protobuf": "0.6.2-main.c33bf0c",
38
- "@dxos/keys": "0.6.2-main.c33bf0c",
39
- "@dxos/timeframe": "0.6.2-main.c33bf0c",
40
- "@dxos/invariant": "0.6.2-main.c33bf0c",
41
- "@dxos/util": "0.6.2-main.c33bf0c"
37
+ "@dxos/codec-protobuf": "0.6.2-main.d41f0d2",
38
+ "@dxos/invariant": "0.6.2-main.d41f0d2",
39
+ "@dxos/keys": "0.6.2-main.d41f0d2",
40
+ "@dxos/timeframe": "0.6.2-main.d41f0d2",
41
+ "@dxos/util": "0.6.2-main.d41f0d2"
42
42
  },
43
43
  "devDependencies": {
44
44
  "glob": "~7.1.6"
@@ -4,46 +4,42 @@
4
4
 
5
5
  syntax = "proto3";
6
6
 
7
- import "dxos/echo/object.proto";
8
- import "dxos/echo/snapshot.proto";
9
- import "dxos/echo/timeframe.proto";
10
7
  import "dxos/keys.proto";
8
+ import "google/protobuf/empty.proto";
11
9
 
12
10
  package dxos.echo.service;
13
11
 
14
12
  message SubscribeRequest {
15
- dxos.keys.PublicKey space_key = 1;
13
+ string subscription_id = 1;
16
14
  }
17
15
 
18
- message EchoEvent {
19
- /// If this event comes as a response to this client wirting the mutation, this field will be set to the tag in the mutation.
20
- optional string client_tag = 1;
21
-
22
- /// For mutations read from the feed store those fields will be set to the position of the mutation in the feed.
23
- optional dxos.keys.PublicKey feed_key = 2;
24
- optional int32 seq = 3;
25
-
26
- enum DatabaseAction {
27
- RESET = 0;
28
- }
29
-
30
- optional DatabaseAction action = 4;
31
-
32
- dxos.echo.object.EchoObjectBatch batch = 10;
16
+ message BatchedDocumentUpdates {
17
+ repeated DocumentUpdate updates = 1;
33
18
  }
34
19
 
35
20
  message WriteRequest {
36
- dxos.keys.PublicKey space_key = 1;
37
-
38
- /// Ephermal tag to correlate events in the subscription.
39
- optional string client_tag = 2;
40
-
41
- dxos.echo.object.EchoObjectBatch batch = 10;
21
+ string subscription_id = 1;
22
+ repeated DocumentUpdate updates = 2;
42
23
  }
43
24
 
44
- message MutationReceipt {
45
- dxos.keys.PublicKey feed_key = 1;
46
- int32 seq = 2;
25
+ message UpdateSubscriptionRequest {
26
+ /**
27
+ * Id of the subscription to update.
28
+ * Subscription id is returned by `Subscribe` rpc.
29
+ */
30
+ string subscription_id = 1;
31
+
32
+ /**
33
+ * Automerge document ids to subscribe for updates.
34
+ * Used for already existing documents.
35
+ * To add new document use `write` rpc.
36
+ */
37
+ repeated string add_ids = 3;
38
+
39
+ /**
40
+ * Automerge document ids to unsubscribe from.
41
+ */
42
+ repeated string remove_ids = 4;
47
43
  }
48
44
 
49
45
  message FlushRequest {
@@ -60,6 +56,25 @@ message FlushRequest {
60
56
  repeated DocState states = 2;
61
57
  }
62
58
 
59
+ message DocumentUpdate {
60
+ /**
61
+ * Automerge document id.
62
+ */
63
+ string document_id = 1;
64
+
65
+ /**
66
+ * Automerge document incremental update.
67
+ * Value returned by `Automerge.saveSince()`.
68
+ */
69
+ bytes mutation = 2;
70
+
71
+ /**
72
+ * Set to true for init mutation of document.
73
+ * default: undefined.
74
+ */
75
+ optional bool is_new = 3;
76
+ }
77
+
63
78
  // Automerge specific.
64
79
  message HostInfo {
65
80
  string peer_id = 1;
@@ -101,8 +116,23 @@ message ReIndexHeadsRequest {
101
116
  }
102
117
 
103
118
  service DataService {
104
- rpc Subscribe(SubscribeRequest) returns (stream EchoEvent);
105
- rpc Write(WriteRequest) returns (MutationReceipt); // TODO(burdon): Rename SubmitMutation.
119
+ /**
120
+ * Subscribe to incremental updates of multiple automerge socuments.
121
+ * Which documents are subscribed to is defined in the `UpdateSubscription`.
122
+ * Used to propagate changes from services to client.
123
+ */
124
+ rpc Subscribe(SubscribeRequest) returns (stream BatchedDocumentUpdates);
125
+
126
+ /**
127
+ * Change which documents are subscribed to for specific subscription.
128
+ */
129
+ rpc UpdateSubscription(UpdateSubscriptionRequest) returns (google.protobuf.Empty);
130
+
131
+ /**
132
+ * Write incremental updates to multiple automerge documents.
133
+ * Used to propagate changes from client to services.
134
+ */
135
+ rpc Write(WriteRequest) returns (google.protobuf.Empty);
106
136
  rpc Flush(FlushRequest) returns (google.protobuf.Empty);
107
137
 
108
138
  // Automerge specific.
@@ -62,181 +62,6 @@ import * as dxos_value from "../value";
62
62
  import * as example_testing_data from "../../example/testing/data";
63
63
  import * as example_testing_rpc from "../../example/testing/rpc";
64
64
  import * as google_protobuf from "../../google/protobuf";
65
- /**
66
- * Defined in:
67
- * {@link file://./../../../dxos/client/logging.proto}
68
- */
69
- export interface Metrics {
70
- timestamp: ReturnType<(typeof substitutions)["google.protobuf.Timestamp"]["decode"]>;
71
- values?: Metrics.KeyPair[];
72
- }
73
- export namespace Metrics {
74
- /**
75
- * Defined in:
76
- * {@link file://./../../../dxos/client/logging.proto}
77
- */
78
- export interface KeyPair {
79
- /**
80
- * Options:
81
- * - proto3_optional = true
82
- */
83
- key?: string;
84
- /**
85
- * Options:
86
- * - proto3_optional = true
87
- */
88
- value?: dxos_value.Value;
89
- /**
90
- * Options:
91
- * - proto3_optional = true
92
- */
93
- stats?: dxos_value.Stats;
94
- }
95
- }
96
- /**
97
- * Defined in:
98
- * {@link file://./../../../dxos/client/logging.proto}
99
- */
100
- export interface ControlMetricsRequest {
101
- /**
102
- * Options:
103
- * - proto3_optional = true
104
- */
105
- reset?: boolean;
106
- /**
107
- * Options:
108
- * - proto3_optional = true
109
- */
110
- record?: boolean;
111
- }
112
- /**
113
- * Defined in:
114
- * {@link file://./../../../dxos/client/logging.proto}
115
- */
116
- export interface ControlMetricsResponse {
117
- /**
118
- * Options:
119
- * - proto3_optional = true
120
- */
121
- recording?: boolean;
122
- }
123
- /**
124
- * Defined in:
125
- * {@link file://./../../../dxos/client/logging.proto}
126
- */
127
- export interface QueryMetricsRequest {
128
- /**
129
- * Options:
130
- * - proto3_optional = true
131
- */
132
- interval?: number;
133
- }
134
- /**
135
- * Defined in:
136
- * {@link file://./../../../dxos/client/logging.proto}
137
- */
138
- export interface QueryMetricsResponse {
139
- timestamp: ReturnType<(typeof substitutions)["google.protobuf.Timestamp"]["decode"]>;
140
- metrics: Metrics;
141
- }
142
- /**
143
- * Defined in:
144
- * {@link file://./../../../dxos/client/logging.proto}
145
- */
146
- export enum LogLevel {
147
- TRACE = 5,
148
- DEBUG = 10,
149
- INFO = 11,
150
- WARN = 12,
151
- ERROR = 13
152
- }
153
- /**
154
- * Defined in:
155
- * {@link file://./../../../dxos/client/logging.proto}
156
- */
157
- export interface QueryLogsRequest {
158
- filters?: QueryLogsRequest.Filter[];
159
- /**
160
- * Options:
161
- * - proto3_optional = true
162
- */
163
- options?: QueryLogsRequest.MatchingOptions;
164
- }
165
- export namespace QueryLogsRequest {
166
- /**
167
- * Defined in:
168
- * {@link file://./../../../dxos/client/logging.proto}
169
- */
170
- export enum MatchingOptions {
171
- INCLUSIVE = 1,
172
- EXPLICIT = 2
173
- }
174
- /**
175
- * Defined in:
176
- * {@link file://./../../../dxos/client/logging.proto}
177
- */
178
- export interface Filter {
179
- level: LogLevel;
180
- /**
181
- * Options:
182
- * - proto3_optional = true
183
- */
184
- pattern?: string;
185
- }
186
- }
187
- /**
188
- * Defined in:
189
- * {@link file://./../../../dxos/client/logging.proto}
190
- */
191
- export interface LogEntry {
192
- level: LogLevel;
193
- message: string;
194
- /**
195
- * Options:
196
- * - proto3_optional = true
197
- */
198
- context?: ReturnType<(typeof substitutions)["google.protobuf.Struct"]["decode"]>;
199
- /**
200
- * Options:
201
- * - proto3_optional = true
202
- */
203
- meta?: LogEntry.Meta;
204
- /**
205
- * Options:
206
- * - proto3_optional = true
207
- */
208
- error?: dxos_error.Error;
209
- timestamp: ReturnType<(typeof substitutions)["google.protobuf.Timestamp"]["decode"]>;
210
- }
211
- export namespace LogEntry {
212
- /**
213
- * Defined in:
214
- * {@link file://./../../../dxos/client/logging.proto}
215
- */
216
- export interface Meta {
217
- file: string;
218
- line: number;
219
- /**
220
- * Options:
221
- * - proto3_optional = true
222
- */
223
- scope?: ReturnType<(typeof substitutions)["google.protobuf.Struct"]["decode"]>;
224
- /**
225
- * Options:
226
- * - proto3_optional = true
227
- */
228
- resourceId?: number;
229
- }
230
- }
231
- /**
232
- * Defined in:
233
- * {@link file://./../../../dxos/client/logging.proto}
234
- */
235
- export interface LoggingService {
236
- controlMetrics: (request: ControlMetricsRequest, options?: RequestOptions) => Promise<ControlMetricsResponse>;
237
- queryMetrics: (request: QueryMetricsRequest, options?: RequestOptions) => Stream<QueryMetricsResponse>;
238
- queryLogs: (request: QueryLogsRequest, options?: RequestOptions) => Stream<LogEntry>;
239
- }
240
65
  /**
241
66
  * Defined in:
242
67
  * {@link file://./../../../dxos/client/services.proto}
@@ -1219,3 +1044,178 @@ export interface NetworkService {
1219
1044
  updateConfig: (request: UpdateConfigRequest, options?: RequestOptions) => Promise<void>;
1220
1045
  queryStatus: (request: void, options?: RequestOptions) => Stream<NetworkStatus>;
1221
1046
  }
1047
+ /**
1048
+ * Defined in:
1049
+ * {@link file://./../../../dxos/client/logging.proto}
1050
+ */
1051
+ export interface Metrics {
1052
+ timestamp: ReturnType<(typeof substitutions)["google.protobuf.Timestamp"]["decode"]>;
1053
+ values?: Metrics.KeyPair[];
1054
+ }
1055
+ export namespace Metrics {
1056
+ /**
1057
+ * Defined in:
1058
+ * {@link file://./../../../dxos/client/logging.proto}
1059
+ */
1060
+ export interface KeyPair {
1061
+ /**
1062
+ * Options:
1063
+ * - proto3_optional = true
1064
+ */
1065
+ key?: string;
1066
+ /**
1067
+ * Options:
1068
+ * - proto3_optional = true
1069
+ */
1070
+ value?: dxos_value.Value;
1071
+ /**
1072
+ * Options:
1073
+ * - proto3_optional = true
1074
+ */
1075
+ stats?: dxos_value.Stats;
1076
+ }
1077
+ }
1078
+ /**
1079
+ * Defined in:
1080
+ * {@link file://./../../../dxos/client/logging.proto}
1081
+ */
1082
+ export interface ControlMetricsRequest {
1083
+ /**
1084
+ * Options:
1085
+ * - proto3_optional = true
1086
+ */
1087
+ reset?: boolean;
1088
+ /**
1089
+ * Options:
1090
+ * - proto3_optional = true
1091
+ */
1092
+ record?: boolean;
1093
+ }
1094
+ /**
1095
+ * Defined in:
1096
+ * {@link file://./../../../dxos/client/logging.proto}
1097
+ */
1098
+ export interface ControlMetricsResponse {
1099
+ /**
1100
+ * Options:
1101
+ * - proto3_optional = true
1102
+ */
1103
+ recording?: boolean;
1104
+ }
1105
+ /**
1106
+ * Defined in:
1107
+ * {@link file://./../../../dxos/client/logging.proto}
1108
+ */
1109
+ export interface QueryMetricsRequest {
1110
+ /**
1111
+ * Options:
1112
+ * - proto3_optional = true
1113
+ */
1114
+ interval?: number;
1115
+ }
1116
+ /**
1117
+ * Defined in:
1118
+ * {@link file://./../../../dxos/client/logging.proto}
1119
+ */
1120
+ export interface QueryMetricsResponse {
1121
+ timestamp: ReturnType<(typeof substitutions)["google.protobuf.Timestamp"]["decode"]>;
1122
+ metrics: Metrics;
1123
+ }
1124
+ /**
1125
+ * Defined in:
1126
+ * {@link file://./../../../dxos/client/logging.proto}
1127
+ */
1128
+ export enum LogLevel {
1129
+ TRACE = 5,
1130
+ DEBUG = 10,
1131
+ INFO = 11,
1132
+ WARN = 12,
1133
+ ERROR = 13
1134
+ }
1135
+ /**
1136
+ * Defined in:
1137
+ * {@link file://./../../../dxos/client/logging.proto}
1138
+ */
1139
+ export interface QueryLogsRequest {
1140
+ filters?: QueryLogsRequest.Filter[];
1141
+ /**
1142
+ * Options:
1143
+ * - proto3_optional = true
1144
+ */
1145
+ options?: QueryLogsRequest.MatchingOptions;
1146
+ }
1147
+ export namespace QueryLogsRequest {
1148
+ /**
1149
+ * Defined in:
1150
+ * {@link file://./../../../dxos/client/logging.proto}
1151
+ */
1152
+ export enum MatchingOptions {
1153
+ INCLUSIVE = 1,
1154
+ EXPLICIT = 2
1155
+ }
1156
+ /**
1157
+ * Defined in:
1158
+ * {@link file://./../../../dxos/client/logging.proto}
1159
+ */
1160
+ export interface Filter {
1161
+ level: LogLevel;
1162
+ /**
1163
+ * Options:
1164
+ * - proto3_optional = true
1165
+ */
1166
+ pattern?: string;
1167
+ }
1168
+ }
1169
+ /**
1170
+ * Defined in:
1171
+ * {@link file://./../../../dxos/client/logging.proto}
1172
+ */
1173
+ export interface LogEntry {
1174
+ level: LogLevel;
1175
+ message: string;
1176
+ /**
1177
+ * Options:
1178
+ * - proto3_optional = true
1179
+ */
1180
+ context?: ReturnType<(typeof substitutions)["google.protobuf.Struct"]["decode"]>;
1181
+ /**
1182
+ * Options:
1183
+ * - proto3_optional = true
1184
+ */
1185
+ meta?: LogEntry.Meta;
1186
+ /**
1187
+ * Options:
1188
+ * - proto3_optional = true
1189
+ */
1190
+ error?: dxos_error.Error;
1191
+ timestamp: ReturnType<(typeof substitutions)["google.protobuf.Timestamp"]["decode"]>;
1192
+ }
1193
+ export namespace LogEntry {
1194
+ /**
1195
+ * Defined in:
1196
+ * {@link file://./../../../dxos/client/logging.proto}
1197
+ */
1198
+ export interface Meta {
1199
+ file: string;
1200
+ line: number;
1201
+ /**
1202
+ * Options:
1203
+ * - proto3_optional = true
1204
+ */
1205
+ scope?: ReturnType<(typeof substitutions)["google.protobuf.Struct"]["decode"]>;
1206
+ /**
1207
+ * Options:
1208
+ * - proto3_optional = true
1209
+ */
1210
+ resourceId?: number;
1211
+ }
1212
+ }
1213
+ /**
1214
+ * Defined in:
1215
+ * {@link file://./../../../dxos/client/logging.proto}
1216
+ */
1217
+ export interface LoggingService {
1218
+ controlMetrics: (request: ControlMetricsRequest, options?: RequestOptions) => Promise<ControlMetricsResponse>;
1219
+ queryMetrics: (request: QueryMetricsRequest, options?: RequestOptions) => Stream<QueryMetricsResponse>;
1220
+ queryLogs: (request: QueryLogsRequest, options?: RequestOptions) => Stream<LogEntry>;
1221
+ }
@@ -67,70 +67,43 @@ import * as google_protobuf from "../../google/protobuf";
67
67
  * {@link file://./../../../dxos/echo/service.proto}
68
68
  */
69
69
  export interface SubscribeRequest {
70
- spaceKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
70
+ subscriptionId: string;
71
71
  }
72
72
  /**
73
73
  * Defined in:
74
74
  * {@link file://./../../../dxos/echo/service.proto}
75
75
  */
76
- export interface EchoEvent {
77
- /**
78
- * If this event comes as a response to this client wirting the mutation, this field will be set to the tag in the mutation.
79
- *
80
- * Options:
81
- * - proto3_optional = true
82
- */
83
- clientTag?: string;
84
- /**
85
- * For mutations read from the feed store those fields will be set to the position of the mutation in the feed.
86
- *
87
- * Options:
88
- * - proto3_optional = true
89
- */
90
- feedKey?: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
91
- /**
92
- * Options:
93
- * - proto3_optional = true
94
- */
95
- seq?: number;
96
- /**
97
- * Options:
98
- * - proto3_optional = true
99
- */
100
- action?: EchoEvent.DatabaseAction;
101
- batch: dxos_echo_object.EchoObjectBatch;
102
- }
103
- export namespace EchoEvent {
104
- /**
105
- * Defined in:
106
- * {@link file://./../../../dxos/echo/service.proto}
107
- */
108
- export enum DatabaseAction {
109
- RESET = 0
110
- }
76
+ export interface BatchedDocumentUpdates {
77
+ updates?: DocumentUpdate[];
111
78
  }
112
79
  /**
113
80
  * Defined in:
114
81
  * {@link file://./../../../dxos/echo/service.proto}
115
82
  */
116
83
  export interface WriteRequest {
117
- spaceKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
118
- /**
119
- * Ephermal tag to correlate events in the subscription.
120
- *
121
- * Options:
122
- * - proto3_optional = true
123
- */
124
- clientTag?: string;
125
- batch: dxos_echo_object.EchoObjectBatch;
84
+ subscriptionId: string;
85
+ updates?: DocumentUpdate[];
126
86
  }
127
87
  /**
128
88
  * Defined in:
129
89
  * {@link file://./../../../dxos/echo/service.proto}
130
90
  */
131
- export interface MutationReceipt {
132
- feedKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
133
- seq: number;
91
+ export interface UpdateSubscriptionRequest {
92
+ /**
93
+ * Id of the subscription to update.
94
+ * Subscription id is returned by `Subscribe` rpc.
95
+ */
96
+ subscriptionId: string;
97
+ /**
98
+ * Automerge document ids to subscribe for updates.
99
+ * Used for already existing documents.
100
+ * To add new document use `write` rpc.
101
+ */
102
+ addIds?: string[];
103
+ /**
104
+ * Automerge document ids to unsubscribe from.
105
+ */
106
+ removeIds?: string[];
134
107
  }
135
108
  /**
136
109
  * Defined in:
@@ -157,6 +130,29 @@ export namespace FlushRequest {
157
130
  heads?: string[];
158
131
  }
159
132
  }
133
+ /**
134
+ * Defined in:
135
+ * {@link file://./../../../dxos/echo/service.proto}
136
+ */
137
+ export interface DocumentUpdate {
138
+ /**
139
+ * Automerge document id.
140
+ */
141
+ documentId: string;
142
+ /**
143
+ * Automerge document incremental update.
144
+ * Value returned by `Automerge.saveSince()`.
145
+ */
146
+ mutation: Uint8Array;
147
+ /**
148
+ * Set to true for init mutation of document.
149
+ * default: undefined.
150
+ *
151
+ * Options:
152
+ * - proto3_optional = true
153
+ */
154
+ isNew?: boolean;
155
+ }
160
156
  /**
161
157
  * Defined in:
162
158
  * {@link file://./../../../dxos/echo/service.proto}
@@ -237,8 +233,21 @@ export interface ReIndexHeadsRequest {
237
233
  * {@link file://./../../../dxos/echo/service.proto}
238
234
  */
239
235
  export interface DataService {
240
- subscribe: (request: SubscribeRequest, options?: RequestOptions) => Stream<EchoEvent>;
241
- write: (request: WriteRequest, options?: RequestOptions) => Promise<MutationReceipt>;
236
+ /**
237
+ * Subscribe to incremental updates of multiple automerge socuments.
238
+ * Which documents are subscribed to is defined in the `UpdateSubscription`.
239
+ * Used to propagate changes from services to client.
240
+ */
241
+ subscribe: (request: SubscribeRequest, options?: RequestOptions) => Stream<BatchedDocumentUpdates>;
242
+ /**
243
+ * Change which documents are subscribed to for specific subscription.
244
+ */
245
+ updateSubscription: (request: UpdateSubscriptionRequest, options?: RequestOptions) => Promise<void>;
246
+ /**
247
+ * Write incremental updates to multiple automerge documents.
248
+ * Used to propagate changes from client to services.
249
+ */
250
+ write: (request: WriteRequest, options?: RequestOptions) => Promise<void>;
242
251
  flush: (request: FlushRequest, options?: RequestOptions) => Promise<void>;
243
252
  getHostInfo: (request: void, options?: RequestOptions) => Promise<HostInfo>;
244
253
  syncRepo: (request: SyncRepoRequest, options?: RequestOptions) => Stream<SyncRepoResponse>;
@@ -81,14 +81,14 @@ export enum NullValue {
81
81
  export interface ListValue {
82
82
  values?: Value[];
83
83
  }
84
- export interface Any {
85
- type_url: string;
86
- value: Uint8Array;
87
- }
88
84
  export interface Timestamp {
89
85
  seconds: string;
90
86
  nanos: number;
91
87
  }
88
+ export interface Any {
89
+ type_url: string;
90
+ value: Uint8Array;
91
+ }
92
92
  export interface FileDescriptorSet {
93
93
  file?: FileDescriptorProto[];
94
94
  }