@dxos/protocols 0.4.7 → 0.4.8-main.27faba7

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 (31) hide show
  1. package/dist/cjs/src/errors/encoding.js.map +1 -1
  2. package/dist/cjs/src/errors/helpers.js.map +1 -1
  3. package/dist/cjs/src/proto/gen/dxos/client/services.d.ts +213 -179
  4. package/dist/cjs/src/proto/gen/dxos/client/services.d.ts.map +1 -1
  5. package/dist/cjs/src/proto/gen/dxos/client/services.js +29 -25
  6. package/dist/cjs/src/proto/gen/dxos/client/services.js.map +1 -1
  7. package/dist/cjs/src/proto/gen/dxos/echo/metadata.d.ts +1 -0
  8. package/dist/cjs/src/proto/gen/dxos/echo/metadata.d.ts.map +1 -1
  9. package/dist/cjs/src/proto/gen/index.d.ts +1 -0
  10. package/dist/cjs/src/proto/gen/index.d.ts.map +1 -1
  11. package/dist/cjs/src/proto/gen/index.js +1 -1
  12. package/dist/cjs/src/proto/gen/index.js.map +1 -1
  13. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  14. package/dist/esm/src/errors/encoding.js.map +1 -1
  15. package/dist/esm/src/errors/helpers.js.map +1 -1
  16. package/dist/esm/src/proto/gen/dxos/client/services.d.ts +213 -179
  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 +28 -24
  19. package/dist/esm/src/proto/gen/dxos/client/services.js.map +1 -1
  20. package/dist/esm/src/proto/gen/dxos/echo/metadata.d.ts +1 -0
  21. package/dist/esm/src/proto/gen/dxos/echo/metadata.d.ts.map +1 -1
  22. package/dist/esm/src/proto/gen/index.d.ts +1 -0
  23. package/dist/esm/src/proto/gen/index.d.ts.map +1 -1
  24. package/dist/esm/src/proto/gen/index.js +1 -1
  25. package/dist/esm/src/proto/gen/index.js.map +1 -1
  26. package/package.json +5 -5
  27. package/src/proto/dxos/client/services.proto +26 -1
  28. package/src/proto/dxos/echo/metadata.proto +3 -0
  29. package/src/proto/gen/dxos/client/services.ts +213 -179
  30. package/src/proto/gen/dxos/echo/metadata.ts +1 -0
  31. package/src/proto/gen/index.ts +2 -1
@@ -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;AA6DhE,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAuhB7C,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,46nGAA46nG,CAAC,CAAC,CAAC;AACr+nG,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;AA6DhE,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAwhB7C,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,qnpGAAqnpG,CAAC,CAAC,CAAC;AAC9qpG,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.4.7",
3
+ "version": "0.4.8-main.27faba7",
4
4
  "description": "Protobuf definitions for DXOS protocols.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -33,10 +33,10 @@
33
33
  "src"
34
34
  ],
35
35
  "dependencies": {
36
- "@dxos/codec-protobuf": "0.4.7",
37
- "@dxos/invariant": "0.4.7",
38
- "@dxos/keys": "0.4.7",
39
- "@dxos/timeframe": "0.4.7"
36
+ "@dxos/invariant": "0.4.8-main.27faba7",
37
+ "@dxos/timeframe": "0.4.8-main.27faba7",
38
+ "@dxos/keys": "0.4.8-main.27faba7",
39
+ "@dxos/codec-protobuf": "0.4.8-main.27faba7"
40
40
  },
41
41
  "devDependencies": {
42
42
  "glob": "~7.1.6"
@@ -351,6 +351,9 @@ message CreateEpochRequest {
351
351
 
352
352
  /// Init empty automerge document as the space root. Disables legacy ECHO snapshot creation.
353
353
  INIT_AUTOMERGE = 1;
354
+
355
+ /// Init new automerge root by clonning the current space root. History is pruned.
356
+ PRUNE_AUTOMERGE_ROOT_HISTORY = 2;
354
357
  }
355
358
 
356
359
  dxos.keys.PublicKey space_key = 1;
@@ -416,6 +419,7 @@ message Invitation {
416
419
  CANCELLED = 6;
417
420
  TIMEOUT = 7;
418
421
  ERROR = 8;
422
+ EXPIRED = 9;
419
423
  }
420
424
 
421
425
  /// Local identifier (random).
@@ -436,7 +440,7 @@ message Invitation {
436
440
  /// Local state.
437
441
  State state = 6;
438
442
 
439
- /// Timeout (ms).
443
+ /// Timeout for guest to complete invitation once connected (ms).
440
444
  optional int32 timeout = 7;
441
445
 
442
446
  /// Guest's identity.
@@ -450,6 +454,17 @@ message Invitation {
450
454
 
451
455
  /// Path or identifier to navigate to after successful authentication.
452
456
  optional string target = 11;
457
+
458
+ // TODO(nf): should these exist elsewhere since they only have meaning to the host?
459
+ /// Host should resume invitation on startup until timeout.
460
+ optional bool persistent = 12;
461
+
462
+ optional google.protobuf.Timestamp created = 13;
463
+
464
+ /// Number of seconds the host will honor the invitation. 0 means the invitation persists forever.
465
+ // TODO(nf): some feedback mechanism or GC for immortal invitations?
466
+ // TODO(nf): should the creator have a way to make an invitation last as long as the client? this was the previous behavior.
467
+ optional int32 lifetime = 14;
453
468
  }
454
469
 
455
470
  message AcceptInvitationRequest {
@@ -477,6 +492,8 @@ message QueryInvitationsResponse {
477
492
  enum Action {
478
493
  ADDED = 0;
479
494
  REMOVED = 1;
495
+ SAVED = 2;
496
+ LOAD_COMPLETE = 3;
480
497
  }
481
498
 
482
499
  enum Type {
@@ -487,6 +504,13 @@ message QueryInvitationsResponse {
487
504
  Action action = 1;
488
505
  Type type = 2;
489
506
  repeated Invitation invitations = 3;
507
+ // indicate to caller that invitations of this action/type were existing at time of initial response.
508
+ optional bool existing = 4;
509
+ }
510
+
511
+ // Informational, consumers must share invitations to receive CancellableInvitation
512
+ message LoadPersistentInvitationsResponse {
513
+ repeated Invitation invitations = 1;
490
514
  }
491
515
 
492
516
  service InvitationsService {
@@ -495,6 +519,7 @@ service InvitationsService {
495
519
  rpc Authenticate(AuthenticationRequest) returns (google.protobuf.Empty);
496
520
  rpc CancelInvitation(CancelInvitationRequest) returns (google.protobuf.Empty);
497
521
  rpc QueryInvitations(google.protobuf.Empty) returns (stream QueryInvitationsResponse);
522
+ rpc LoadPersistentInvitations(google.protobuf.Empty) returns (LoadPersistentInvitationsResponse);
498
523
  }
499
524
 
500
525
  //
@@ -6,6 +6,7 @@ syntax = "proto3";
6
6
 
7
7
  import "google/protobuf/timestamp.proto";
8
8
 
9
+ import "dxos/client/services.proto";
9
10
  import "dxos/echo/model/document.proto";
10
11
  import "dxos/echo/timeframe.proto";
11
12
  import "dxos/keys.proto";
@@ -29,6 +30,8 @@ message EchoMetadata {
29
30
 
30
31
  /// List of the data spaces.
31
32
  repeated SpaceMetadata spaces = 11;
33
+
34
+ repeated dxos.client.services.Invitation invitations = 12;
32
35
  }
33
36
 
34
37
  /// Per-space metadata. Frequent updates. Keep small.
@@ -59,181 +59,6 @@ import * as dxos_value from "../value";
59
59
  import * as example_testing_data from "../../example/testing/data";
60
60
  import * as example_testing_rpc from "../../example/testing/rpc";
61
61
  import * as google_protobuf from "../../google/protobuf";
62
- /**
63
- * Defined in:
64
- * {@link file://./../../../dxos/client/logging.proto}
65
- */
66
- export interface Metrics {
67
- timestamp: ReturnType<(typeof substitutions)["google.protobuf.Timestamp"]["decode"]>;
68
- values?: Metrics.KeyPair[];
69
- }
70
- export namespace Metrics {
71
- /**
72
- * Defined in:
73
- * {@link file://./../../../dxos/client/logging.proto}
74
- */
75
- export interface KeyPair {
76
- /**
77
- * Options:
78
- * - proto3_optional = true
79
- */
80
- key?: string;
81
- /**
82
- * Options:
83
- * - proto3_optional = true
84
- */
85
- value?: dxos_value.Value;
86
- /**
87
- * Options:
88
- * - proto3_optional = true
89
- */
90
- stats?: dxos_value.Stats;
91
- }
92
- }
93
- /**
94
- * Defined in:
95
- * {@link file://./../../../dxos/client/logging.proto}
96
- */
97
- export interface ControlMetricsRequest {
98
- /**
99
- * Options:
100
- * - proto3_optional = true
101
- */
102
- reset?: boolean;
103
- /**
104
- * Options:
105
- * - proto3_optional = true
106
- */
107
- record?: boolean;
108
- }
109
- /**
110
- * Defined in:
111
- * {@link file://./../../../dxos/client/logging.proto}
112
- */
113
- export interface ControlMetricsResponse {
114
- /**
115
- * Options:
116
- * - proto3_optional = true
117
- */
118
- recording?: boolean;
119
- }
120
- /**
121
- * Defined in:
122
- * {@link file://./../../../dxos/client/logging.proto}
123
- */
124
- export interface QueryMetricsRequest {
125
- /**
126
- * Options:
127
- * - proto3_optional = true
128
- */
129
- interval?: number;
130
- }
131
- /**
132
- * Defined in:
133
- * {@link file://./../../../dxos/client/logging.proto}
134
- */
135
- export interface QueryMetricsResponse {
136
- timestamp: ReturnType<(typeof substitutions)["google.protobuf.Timestamp"]["decode"]>;
137
- metrics: Metrics;
138
- }
139
- /**
140
- * Defined in:
141
- * {@link file://./../../../dxos/client/logging.proto}
142
- */
143
- export enum LogLevel {
144
- TRACE = 5,
145
- DEBUG = 10,
146
- INFO = 11,
147
- WARN = 12,
148
- ERROR = 13
149
- }
150
- /**
151
- * Defined in:
152
- * {@link file://./../../../dxos/client/logging.proto}
153
- */
154
- export interface QueryLogsRequest {
155
- filters?: QueryLogsRequest.Filter[];
156
- /**
157
- * Options:
158
- * - proto3_optional = true
159
- */
160
- options?: QueryLogsRequest.MatchingOptions;
161
- }
162
- export namespace QueryLogsRequest {
163
- /**
164
- * Defined in:
165
- * {@link file://./../../../dxos/client/logging.proto}
166
- */
167
- export enum MatchingOptions {
168
- INCLUSIVE = 1,
169
- EXPLICIT = 2
170
- }
171
- /**
172
- * Defined in:
173
- * {@link file://./../../../dxos/client/logging.proto}
174
- */
175
- export interface Filter {
176
- level: LogLevel;
177
- /**
178
- * Options:
179
- * - proto3_optional = true
180
- */
181
- pattern?: string;
182
- }
183
- }
184
- /**
185
- * Defined in:
186
- * {@link file://./../../../dxos/client/logging.proto}
187
- */
188
- export interface LogEntry {
189
- level: LogLevel;
190
- message: string;
191
- /**
192
- * Options:
193
- * - proto3_optional = true
194
- */
195
- context?: ReturnType<(typeof substitutions)["google.protobuf.Struct"]["decode"]>;
196
- /**
197
- * Options:
198
- * - proto3_optional = true
199
- */
200
- meta?: LogEntry.Meta;
201
- /**
202
- * Options:
203
- * - proto3_optional = true
204
- */
205
- error?: dxos_error.Error;
206
- timestamp: ReturnType<(typeof substitutions)["google.protobuf.Timestamp"]["decode"]>;
207
- }
208
- export namespace LogEntry {
209
- /**
210
- * Defined in:
211
- * {@link file://./../../../dxos/client/logging.proto}
212
- */
213
- export interface Meta {
214
- file: string;
215
- line: number;
216
- /**
217
- * Options:
218
- * - proto3_optional = true
219
- */
220
- scope?: ReturnType<(typeof substitutions)["google.protobuf.Struct"]["decode"]>;
221
- /**
222
- * Options:
223
- * - proto3_optional = true
224
- */
225
- resourceId?: number;
226
- }
227
- }
228
- /**
229
- * Defined in:
230
- * {@link file://./../../../dxos/client/logging.proto}
231
- */
232
- export interface LoggingService {
233
- controlMetrics: (request: ControlMetricsRequest, options?: RequestOptions) => Promise<ControlMetricsResponse>;
234
- queryMetrics: (request: QueryMetricsRequest, options?: RequestOptions) => Stream<QueryMetricsResponse>;
235
- queryLogs: (request: QueryLogsRequest, options?: RequestOptions) => Stream<LogEntry>;
236
- }
237
62
  /**
238
63
  * Defined in:
239
64
  * {@link file://./../../../dxos/client/services.proto}
@@ -802,7 +627,8 @@ export namespace CreateEpochRequest {
802
627
  */
803
628
  export enum Migration {
804
629
  NONE = 0,
805
- INIT_AUTOMERGE = 1
630
+ INIT_AUTOMERGE = 1,
631
+ PRUNE_AUTOMERGE_ROOT_HISTORY = 2
806
632
  }
807
633
  }
808
634
  /**
@@ -863,7 +689,7 @@ export interface Invitation {
863
689
  */
864
690
  state: Invitation.State;
865
691
  /**
866
- * Timeout (ms).
692
+ * Timeout for guest to complete invitation once connected (ms).
867
693
  *
868
694
  * Options:
869
695
  * - proto3_optional = true
@@ -897,6 +723,23 @@ export interface Invitation {
897
723
  * - proto3_optional = true
898
724
  */
899
725
  target?: string;
726
+ /**
727
+ * Host should resume invitation on startup until timeout.
728
+ *
729
+ * Options:
730
+ * - proto3_optional = true
731
+ */
732
+ persistent?: boolean;
733
+ /**
734
+ * Options:
735
+ * - proto3_optional = true
736
+ */
737
+ created?: ReturnType<(typeof substitutions)["google.protobuf.Timestamp"]["decode"]>;
738
+ /**
739
+ * Options:
740
+ * - proto3_optional = true
741
+ */
742
+ lifetime?: number;
900
743
  }
901
744
  export namespace Invitation {
902
745
  /**
@@ -937,7 +780,8 @@ export namespace Invitation {
937
780
  SUCCESS = 5,
938
781
  CANCELLED = 6,
939
782
  TIMEOUT = 7,
940
- ERROR = 8
783
+ ERROR = 8,
784
+ EXPIRED = 9
941
785
  }
942
786
  }
943
787
  /**
@@ -983,6 +827,11 @@ export interface QueryInvitationsResponse {
983
827
  action: QueryInvitationsResponse.Action;
984
828
  type: QueryInvitationsResponse.Type;
985
829
  invitations?: Invitation[];
830
+ /**
831
+ * Options:
832
+ * - proto3_optional = true
833
+ */
834
+ existing?: boolean;
986
835
  }
987
836
  export namespace QueryInvitationsResponse {
988
837
  /**
@@ -991,7 +840,9 @@ export namespace QueryInvitationsResponse {
991
840
  */
992
841
  export enum Action {
993
842
  ADDED = 0,
994
- REMOVED = 1
843
+ REMOVED = 1,
844
+ SAVED = 2,
845
+ LOAD_COMPLETE = 3
995
846
  }
996
847
  /**
997
848
  * Defined in:
@@ -1002,6 +853,13 @@ export namespace QueryInvitationsResponse {
1002
853
  ACCEPTED = 1
1003
854
  }
1004
855
  }
856
+ /**
857
+ * Defined in:
858
+ * {@link file://./../../../dxos/client/services.proto}
859
+ */
860
+ export interface LoadPersistentInvitationsResponse {
861
+ invitations?: Invitation[];
862
+ }
1005
863
  /**
1006
864
  * Defined in:
1007
865
  * {@link file://./../../../dxos/client/services.proto}
@@ -1012,6 +870,7 @@ export interface InvitationsService {
1012
870
  authenticate: (request: AuthenticationRequest, options?: RequestOptions) => Promise<void>;
1013
871
  cancelInvitation: (request: CancelInvitationRequest, options?: RequestOptions) => Promise<void>;
1014
872
  queryInvitations: (request: void, options?: RequestOptions) => Stream<QueryInvitationsResponse>;
873
+ loadPersistentInvitations: (request: void, options?: RequestOptions) => Promise<LoadPersistentInvitationsResponse>;
1015
874
  }
1016
875
  /**
1017
876
  * Defined in:
@@ -1055,3 +914,178 @@ export interface NetworkService {
1055
914
  updateConfig: (request: UpdateConfigRequest, options?: RequestOptions) => Promise<void>;
1056
915
  queryStatus: (request: void, options?: RequestOptions) => Stream<NetworkStatus>;
1057
916
  }
917
+ /**
918
+ * Defined in:
919
+ * {@link file://./../../../dxos/client/logging.proto}
920
+ */
921
+ export interface Metrics {
922
+ timestamp: ReturnType<(typeof substitutions)["google.protobuf.Timestamp"]["decode"]>;
923
+ values?: Metrics.KeyPair[];
924
+ }
925
+ export namespace Metrics {
926
+ /**
927
+ * Defined in:
928
+ * {@link file://./../../../dxos/client/logging.proto}
929
+ */
930
+ export interface KeyPair {
931
+ /**
932
+ * Options:
933
+ * - proto3_optional = true
934
+ */
935
+ key?: string;
936
+ /**
937
+ * Options:
938
+ * - proto3_optional = true
939
+ */
940
+ value?: dxos_value.Value;
941
+ /**
942
+ * Options:
943
+ * - proto3_optional = true
944
+ */
945
+ stats?: dxos_value.Stats;
946
+ }
947
+ }
948
+ /**
949
+ * Defined in:
950
+ * {@link file://./../../../dxos/client/logging.proto}
951
+ */
952
+ export interface ControlMetricsRequest {
953
+ /**
954
+ * Options:
955
+ * - proto3_optional = true
956
+ */
957
+ reset?: boolean;
958
+ /**
959
+ * Options:
960
+ * - proto3_optional = true
961
+ */
962
+ record?: boolean;
963
+ }
964
+ /**
965
+ * Defined in:
966
+ * {@link file://./../../../dxos/client/logging.proto}
967
+ */
968
+ export interface ControlMetricsResponse {
969
+ /**
970
+ * Options:
971
+ * - proto3_optional = true
972
+ */
973
+ recording?: boolean;
974
+ }
975
+ /**
976
+ * Defined in:
977
+ * {@link file://./../../../dxos/client/logging.proto}
978
+ */
979
+ export interface QueryMetricsRequest {
980
+ /**
981
+ * Options:
982
+ * - proto3_optional = true
983
+ */
984
+ interval?: number;
985
+ }
986
+ /**
987
+ * Defined in:
988
+ * {@link file://./../../../dxos/client/logging.proto}
989
+ */
990
+ export interface QueryMetricsResponse {
991
+ timestamp: ReturnType<(typeof substitutions)["google.protobuf.Timestamp"]["decode"]>;
992
+ metrics: Metrics;
993
+ }
994
+ /**
995
+ * Defined in:
996
+ * {@link file://./../../../dxos/client/logging.proto}
997
+ */
998
+ export enum LogLevel {
999
+ TRACE = 5,
1000
+ DEBUG = 10,
1001
+ INFO = 11,
1002
+ WARN = 12,
1003
+ ERROR = 13
1004
+ }
1005
+ /**
1006
+ * Defined in:
1007
+ * {@link file://./../../../dxos/client/logging.proto}
1008
+ */
1009
+ export interface QueryLogsRequest {
1010
+ filters?: QueryLogsRequest.Filter[];
1011
+ /**
1012
+ * Options:
1013
+ * - proto3_optional = true
1014
+ */
1015
+ options?: QueryLogsRequest.MatchingOptions;
1016
+ }
1017
+ export namespace QueryLogsRequest {
1018
+ /**
1019
+ * Defined in:
1020
+ * {@link file://./../../../dxos/client/logging.proto}
1021
+ */
1022
+ export enum MatchingOptions {
1023
+ INCLUSIVE = 1,
1024
+ EXPLICIT = 2
1025
+ }
1026
+ /**
1027
+ * Defined in:
1028
+ * {@link file://./../../../dxos/client/logging.proto}
1029
+ */
1030
+ export interface Filter {
1031
+ level: LogLevel;
1032
+ /**
1033
+ * Options:
1034
+ * - proto3_optional = true
1035
+ */
1036
+ pattern?: string;
1037
+ }
1038
+ }
1039
+ /**
1040
+ * Defined in:
1041
+ * {@link file://./../../../dxos/client/logging.proto}
1042
+ */
1043
+ export interface LogEntry {
1044
+ level: LogLevel;
1045
+ message: string;
1046
+ /**
1047
+ * Options:
1048
+ * - proto3_optional = true
1049
+ */
1050
+ context?: ReturnType<(typeof substitutions)["google.protobuf.Struct"]["decode"]>;
1051
+ /**
1052
+ * Options:
1053
+ * - proto3_optional = true
1054
+ */
1055
+ meta?: LogEntry.Meta;
1056
+ /**
1057
+ * Options:
1058
+ * - proto3_optional = true
1059
+ */
1060
+ error?: dxos_error.Error;
1061
+ timestamp: ReturnType<(typeof substitutions)["google.protobuf.Timestamp"]["decode"]>;
1062
+ }
1063
+ export namespace LogEntry {
1064
+ /**
1065
+ * Defined in:
1066
+ * {@link file://./../../../dxos/client/logging.proto}
1067
+ */
1068
+ export interface Meta {
1069
+ file: string;
1070
+ line: number;
1071
+ /**
1072
+ * Options:
1073
+ * - proto3_optional = true
1074
+ */
1075
+ scope?: ReturnType<(typeof substitutions)["google.protobuf.Struct"]["decode"]>;
1076
+ /**
1077
+ * Options:
1078
+ * - proto3_optional = true
1079
+ */
1080
+ resourceId?: number;
1081
+ }
1082
+ }
1083
+ /**
1084
+ * Defined in:
1085
+ * {@link file://./../../../dxos/client/logging.proto}
1086
+ */
1087
+ export interface LoggingService {
1088
+ controlMetrics: (request: ControlMetricsRequest, options?: RequestOptions) => Promise<ControlMetricsResponse>;
1089
+ queryMetrics: (request: QueryMetricsRequest, options?: RequestOptions) => Stream<QueryMetricsResponse>;
1090
+ queryLogs: (request: QueryLogsRequest, options?: RequestOptions) => Stream<LogEntry>;
1091
+ }
@@ -83,6 +83,7 @@ export interface EchoMetadata {
83
83
  * List of the data spaces.
84
84
  */
85
85
  spaces?: SpaceMetadata[];
86
+ invitations?: dxos_client_services.Invitation[];
86
87
  }
87
88
  /**
88
89
  * Per-space metadata. Frequent updates. Keep small.