@dxos/protocols 0.4.10-main.f68a1ca → 0.4.10-main.f937af6

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 (71) hide show
  1. package/dist/cjs/src/indexing.d.ts +4 -3
  2. package/dist/cjs/src/indexing.d.ts.map +1 -1
  3. package/dist/cjs/src/indexing.js.map +1 -1
  4. package/dist/cjs/src/proto/gen/dxos/client/services.d.ts +29 -3
  5. package/dist/cjs/src/proto/gen/dxos/client/services.d.ts.map +1 -1
  6. package/dist/cjs/src/proto/gen/dxos/client/services.js +2 -1
  7. package/dist/cjs/src/proto/gen/dxos/client/services.js.map +1 -1
  8. package/dist/cjs/src/proto/gen/dxos/config.d.ts +5 -5
  9. package/dist/cjs/src/proto/gen/dxos/config.d.ts.map +1 -1
  10. package/dist/cjs/src/proto/gen/dxos/config.js.map +1 -1
  11. package/dist/cjs/src/proto/gen/dxos/echo/model/document.d.ts +0 -1
  12. package/dist/cjs/src/proto/gen/dxos/echo/model/document.d.ts.map +1 -1
  13. package/dist/cjs/src/proto/gen/dxos/echo/model/document.js.map +1 -1
  14. package/dist/cjs/src/proto/gen/dxos/echo/service.d.ts +9 -1
  15. package/dist/cjs/src/proto/gen/dxos/echo/service.d.ts.map +1 -1
  16. package/dist/cjs/src/proto/gen/dxos/halo/invitations.d.ts +23 -2
  17. package/dist/cjs/src/proto/gen/dxos/halo/invitations.d.ts.map +1 -1
  18. package/dist/cjs/src/proto/gen/dxos/halo/invitations.js +1 -0
  19. package/dist/cjs/src/proto/gen/dxos/halo/invitations.js.map +1 -1
  20. package/dist/cjs/src/proto/gen/dxos/mesh/swarm.d.ts +6 -2
  21. package/dist/cjs/src/proto/gen/dxos/mesh/swarm.d.ts.map +1 -1
  22. package/dist/cjs/src/proto/gen/google/protobuf.d.ts +4 -4
  23. package/dist/cjs/src/proto/gen/google/protobuf.d.ts.map +1 -1
  24. package/dist/cjs/src/proto/gen/index.d.ts +1 -0
  25. package/dist/cjs/src/proto/gen/index.d.ts.map +1 -1
  26. package/dist/cjs/src/proto/gen/index.js +1 -1
  27. package/dist/cjs/src/proto/gen/index.js.map +1 -1
  28. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  29. package/dist/esm/src/indexing.d.ts +4 -3
  30. package/dist/esm/src/indexing.d.ts.map +1 -1
  31. package/dist/esm/src/indexing.js.map +1 -1
  32. package/dist/esm/src/proto/gen/dxos/client/services.d.ts +29 -3
  33. package/dist/esm/src/proto/gen/dxos/client/services.d.ts.map +1 -1
  34. package/dist/esm/src/proto/gen/dxos/client/services.js +2 -1
  35. package/dist/esm/src/proto/gen/dxos/client/services.js.map +1 -1
  36. package/dist/esm/src/proto/gen/dxos/config.d.ts +5 -5
  37. package/dist/esm/src/proto/gen/dxos/config.d.ts.map +1 -1
  38. package/dist/esm/src/proto/gen/dxos/config.js.map +1 -1
  39. package/dist/esm/src/proto/gen/dxos/echo/model/document.d.ts +0 -1
  40. package/dist/esm/src/proto/gen/dxos/echo/model/document.d.ts.map +1 -1
  41. package/dist/esm/src/proto/gen/dxos/echo/model/document.js.map +1 -1
  42. package/dist/esm/src/proto/gen/dxos/echo/service.d.ts +9 -1
  43. package/dist/esm/src/proto/gen/dxos/echo/service.d.ts.map +1 -1
  44. package/dist/esm/src/proto/gen/dxos/halo/invitations.d.ts +23 -2
  45. package/dist/esm/src/proto/gen/dxos/halo/invitations.d.ts.map +1 -1
  46. package/dist/esm/src/proto/gen/dxos/halo/invitations.js +1 -0
  47. package/dist/esm/src/proto/gen/dxos/halo/invitations.js.map +1 -1
  48. package/dist/esm/src/proto/gen/dxos/mesh/swarm.d.ts +6 -2
  49. package/dist/esm/src/proto/gen/dxos/mesh/swarm.d.ts.map +1 -1
  50. package/dist/esm/src/proto/gen/google/protobuf.d.ts +4 -4
  51. package/dist/esm/src/proto/gen/google/protobuf.d.ts.map +1 -1
  52. package/dist/esm/src/proto/gen/index.d.ts +1 -0
  53. package/dist/esm/src/proto/gen/index.d.ts.map +1 -1
  54. package/dist/esm/src/proto/gen/index.js +1 -1
  55. package/dist/esm/src/proto/gen/index.js.map +1 -1
  56. package/package.json +5 -5
  57. package/src/indexing.ts +5 -3
  58. package/src/proto/dxos/client/services.proto +20 -4
  59. package/src/proto/dxos/config.proto +8 -3
  60. package/src/proto/dxos/echo/model/document.proto +0 -3
  61. package/src/proto/dxos/echo/service.proto +5 -1
  62. package/src/proto/dxos/halo/invitations.proto +9 -1
  63. package/src/proto/dxos/mesh/swarm.proto +11 -3
  64. package/src/proto/gen/dxos/client/services.ts +29 -3
  65. package/src/proto/gen/dxos/config.ts +5 -5
  66. package/src/proto/gen/dxos/echo/model/document.ts +0 -1
  67. package/src/proto/gen/dxos/echo/service.ts +9 -1
  68. package/src/proto/gen/dxos/halo/invitations.ts +23 -2
  69. package/src/proto/gen/dxos/mesh/swarm.ts +6 -2
  70. package/src/proto/gen/google/protobuf.ts +4 -4
  71. 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;AA8DhE,OAAO,aAAa,MAAM,kBAAkB,CAAC;AA4hB7C,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,8isGAA8isG,CAAC,CAAC,CAAC;AACvmsG,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;AA8DhE,OAAO,aAAa,MAAM,kBAAkB,CAAC;AA6hB7C,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,mmuGAAmmuG,CAAC,CAAC,CAAC;AAC5puG,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.10-main.f68a1ca",
3
+ "version": "0.4.10-main.f937af6",
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/keys": "0.4.10-main.f68a1ca",
37
- "@dxos/timeframe": "0.4.10-main.f68a1ca",
38
- "@dxos/invariant": "0.4.10-main.f68a1ca",
39
- "@dxos/codec-protobuf": "0.4.10-main.f68a1ca"
36
+ "@dxos/invariant": "0.4.10-main.f937af6",
37
+ "@dxos/timeframe": "0.4.10-main.f937af6",
38
+ "@dxos/codec-protobuf": "0.4.10-main.f937af6",
39
+ "@dxos/keys": "0.4.10-main.f937af6"
40
40
  },
41
41
  "devDependencies": {
42
42
  "glob": "~7.1.6"
package/src/indexing.ts CHANGED
@@ -2,14 +2,16 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- export type IdDecoded = {
5
+ export type ObjectPointerDecoded = {
6
6
  documentId: string;
7
7
  objectId: string;
8
8
  };
9
9
 
10
+ export type ObjectPointerEncoded = string;
11
+
10
12
  export const idCodec = {
11
- encode: ({ documentId, objectId }: IdDecoded) => `${documentId}|${objectId}`,
12
- decode: (id: string): IdDecoded => {
13
+ encode: ({ documentId, objectId }: ObjectPointerDecoded): ObjectPointerEncoded => `${documentId}|${objectId}`,
14
+ decode: (id: ObjectPointerEncoded): ObjectPointerDecoded => {
13
15
  const [documentId, objectId] = id.split('|');
14
16
  return { documentId, objectId };
15
17
  },
@@ -405,9 +405,12 @@ message Invitation {
405
405
  enum Type {
406
406
  /// Requires both to be online to complete key exchange.
407
407
  INTERACTIVE = 0;
408
- /// Guest's identity key is known; invitation can be accepted by any valid peer.
409
- OFFLINE = 1;
410
- /// Multiple-use interactive invitation.
408
+ /// Invitation can be accepted by any valid peer.
409
+ DELEGATED = 1;
410
+ /**
411
+ * Multi-use interactive invitations.
412
+ * @deprecated use multiUse flag with type=interactive instead.
413
+ */
411
414
  MULTIUSE = 2;
412
415
  }
413
416
 
@@ -422,6 +425,9 @@ message Invitation {
422
425
 
423
426
  /// Guest should call `Authenticate` with the shared secret.
424
427
  SHARED_SECRET = 1;
428
+
429
+ /// Guest should prove they possess a private key corresponding to the known public key recorded in an invitation.
430
+ KNOWN_PUBLIC_KEY = 2;
425
431
  }
426
432
 
427
433
  enum State {
@@ -480,6 +486,17 @@ message Invitation {
480
486
  // TODO(nf): some feedback mechanism or GC for immortal invitations?
481
487
  // TODO(nf): should the creator have a way to make an invitation last as long as the client? this was the previous behavior.
482
488
  optional int32 lifetime = 14;
489
+
490
+ /// Whether an invitation can be used multiple times.
491
+ optional bool multi_use = 15;
492
+
493
+ /// Guest's keypair required for AuthMethod.KNOWN_PUBLIC_KEY.
494
+ optional AdmissionKeypair guest_keypair = 16;
495
+ }
496
+
497
+ message AdmissionKeypair {
498
+ dxos.keys.PublicKey public_key = 1;
499
+ optional dxos.keys.PrivateKey private_key = 2;
483
500
  }
484
501
 
485
502
  message AcceptInvitationRequest {
@@ -534,7 +551,6 @@ service InvitationsService {
534
551
  rpc Authenticate(AuthenticationRequest) returns (google.protobuf.Empty);
535
552
  rpc CancelInvitation(CancelInvitationRequest) returns (google.protobuf.Empty);
536
553
  rpc QueryInvitations(google.protobuf.Empty) returns (stream QueryInvitationsResponse);
537
- rpc LoadPersistentInvitations(google.protobuf.Empty) returns (LoadPersistentInvitationsResponse);
538
554
  }
539
555
 
540
556
  //
@@ -103,6 +103,10 @@ message Runtime {
103
103
  optional StorageDriver key_store = 2;
104
104
  optional StorageDriver data_store = 3;
105
105
  optional string data_root = 4;
106
+
107
+ /**
108
+ * @deprecated
109
+ */
106
110
  optional bool space_fragmentation = 5;
107
111
  }
108
112
 
@@ -127,12 +131,13 @@ message Runtime {
127
131
  /// Location of the remote client host.
128
132
  // TODO(burdon): Rename vault_endpoint (generalize http/ws; drop vault.html).
129
133
  optional string remote_source = 6;
130
-
134
+
135
+ // Authenticate via `Sec-WebSocket-Protocol` header hack.
136
+ optional string remote_source_authentication_token = 8;
137
+
131
138
  /// Connect to and serve client services to a remote proxy.
132
139
  optional string devtools_proxy = 7;
133
140
 
134
- /// Enable E.object api
135
- optional bool use_reactive_object_api = 8;
136
141
  }
137
142
 
138
143
  message App {
@@ -32,9 +32,6 @@ message Value {
32
32
  Array array = 21;
33
33
 
34
34
  Reference reference = 30;
35
-
36
- // YJS state snapshot.
37
- YJS yjs = 40;
38
35
  }
39
36
  }
40
37
 
@@ -47,7 +47,11 @@ message MutationReceipt {
47
47
  }
48
48
 
49
49
  message FlushRequest {
50
- dxos.keys.PublicKey space_key = 1;
50
+ optional dxos.keys.PublicKey space_key = 1;
51
+ /**
52
+ * Automerge specific document ids to wait to flush.
53
+ */
54
+ repeated string document_ids = 2;
51
55
  }
52
56
 
53
57
  // Automerge specific.
@@ -33,12 +33,19 @@ message IntroductionRequest {
33
33
  message IntroductionResponse {
34
34
  dxos.client.services.Invitation.AuthMethod auth_method = 1;
35
35
 
36
+ /// Present when auth_method is KNOWN_PUBLIC_KEY.
37
+ optional bytes challenge = 2;
38
+
36
39
  /// Only present for testing invitation types.
37
40
  optional dxos.keys.PublicKey space_key = 100;
38
41
  }
39
42
 
40
43
  message AuthenticationRequest {
41
- string auth_code = 1;
44
+ /// Present when auth_method is SHARED_SECRET.
45
+ optional string auth_code = 1;
46
+
47
+ /// Present when auth_method is KNOWN_PUBLIC_KEY.
48
+ optional bytes signed_challenge = 2;
42
49
  }
43
50
 
44
51
  message AuthenticationResponse {
@@ -47,6 +54,7 @@ message AuthenticationResponse {
47
54
  INVALID_OTP = 1;
48
55
  INVALID_OPT_ATTEMPTS = 2;
49
56
  INTERNAL_ERROR = 3;
57
+ INVALID_SIGNATURE = 4;
50
58
  }
51
59
 
52
60
  optional Status status = 1;
@@ -9,14 +9,19 @@ import "dxos/keys.proto";
9
9
 
10
10
  package dxos.mesh.swarm;
11
11
 
12
+ /**
13
+ * Use for:
14
+ * - Initial peer discovery (initiate session id between two peers).
15
+ * - RTC negotiation (SDP offer/answer and ICE).
16
+ */
12
17
  message SwarmMessage {
13
- /// Swarm identefier.
18
+ /// Swarm identifier.
14
19
  dxos.keys.PublicKey topic = 3;
15
20
  /// Unique connection identifier.
16
21
  dxos.keys.PublicKey session_id = 4;
17
22
  /// Message payload.
18
23
  MessageData data = 5;
19
- /// Unique message identifier. Used for Acknolegment and matching Anwers to Offers.
24
+ /// Unique message identifier. Used for ACK and matching Answers to Offers.
20
25
  dxos.keys.PublicKey message_id = 6;
21
26
  }
22
27
 
@@ -29,7 +34,6 @@ message MessageData {
29
34
  * @deprecated Use SignalBatch instead.
30
35
  */
31
36
  Signal signal = 3;
32
-
33
37
  SignalBatch signal_batch = 4;
34
38
  }
35
39
  }
@@ -43,6 +47,10 @@ message Answer {
43
47
  optional dxos.keys.PublicKey offer_message_id = 2;
44
48
  }
45
49
 
50
+ //
51
+ // RTC messages.
52
+ //
53
+
46
54
  message Signal {
47
55
  google.protobuf.Struct payload = 1;
48
56
  }
@@ -925,6 +925,20 @@ export interface Invitation {
925
925
  * - proto3_optional = true
926
926
  */
927
927
  lifetime?: number;
928
+ /**
929
+ * Whether an invitation can be used multiple times.
930
+ *
931
+ * Options:
932
+ * - proto3_optional = true
933
+ */
934
+ multiUse?: boolean;
935
+ /**
936
+ * Guest's keypair required for AuthMethod.KNOWN_PUBLIC_KEY.
937
+ *
938
+ * Options:
939
+ * - proto3_optional = true
940
+ */
941
+ guestKeypair?: AdmissionKeypair;
928
942
  }
929
943
  export namespace Invitation {
930
944
  /**
@@ -933,7 +947,7 @@ export namespace Invitation {
933
947
  */
934
948
  export enum Type {
935
949
  INTERACTIVE = 0,
936
- OFFLINE = 1,
950
+ DELEGATED = 1,
937
951
  MULTIUSE = 2
938
952
  }
939
953
  /**
@@ -950,7 +964,8 @@ export namespace Invitation {
950
964
  */
951
965
  export enum AuthMethod {
952
966
  NONE = 0,
953
- SHARED_SECRET = 1
967
+ SHARED_SECRET = 1,
968
+ KNOWN_PUBLIC_KEY = 2
954
969
  }
955
970
  /**
956
971
  * Defined in:
@@ -969,6 +984,18 @@ export namespace Invitation {
969
984
  EXPIRED = 9
970
985
  }
971
986
  }
987
+ /**
988
+ * Defined in:
989
+ * {@link file://./../../../dxos/client/services.proto}
990
+ */
991
+ export interface AdmissionKeypair {
992
+ publicKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
993
+ /**
994
+ * Options:
995
+ * - proto3_optional = true
996
+ */
997
+ privateKey?: ReturnType<(typeof substitutions)["dxos.keys.PrivateKey"]["decode"]>;
998
+ }
972
999
  /**
973
1000
  * Defined in:
974
1001
  * {@link file://./../../../dxos/client/services.proto}
@@ -1055,7 +1082,6 @@ export interface InvitationsService {
1055
1082
  authenticate: (request: AuthenticationRequest, options?: RequestOptions) => Promise<void>;
1056
1083
  cancelInvitation: (request: CancelInvitationRequest, options?: RequestOptions) => Promise<void>;
1057
1084
  queryInvitations: (request: void, options?: RequestOptions) => Stream<QueryInvitationsResponse>;
1058
- loadPersistentInvitations: (request: void, options?: RequestOptions) => Promise<LoadPersistentInvitationsResponse>;
1059
1085
  }
1060
1086
  /**
1061
1087
  * Defined in:
@@ -292,19 +292,17 @@ export namespace Runtime {
292
292
  */
293
293
  remoteSource?: string;
294
294
  /**
295
- * Connect to and serve client services to a remote proxy.
296
- *
297
295
  * Options:
298
296
  * - proto3_optional = true
299
297
  */
300
- devtoolsProxy?: string;
298
+ remoteSourceAuthenticationToken?: string;
301
299
  /**
302
- * Enable E.object api
300
+ * Connect to and serve client services to a remote proxy.
303
301
  *
304
302
  * Options:
305
303
  * - proto3_optional = true
306
304
  */
307
- useReactiveObjectApi?: boolean;
305
+ devtoolsProxy?: string;
308
306
  }
309
307
  export namespace Client {
310
308
  /**
@@ -333,6 +331,8 @@ export namespace Runtime {
333
331
  */
334
332
  dataRoot?: string;
335
333
  /**
334
+ * @deprecated
335
+ *
336
336
  * Options:
337
337
  * - proto3_optional = true
338
338
  */
@@ -78,7 +78,6 @@ export interface Value {
78
78
  object?: KeyValueObject;
79
79
  array?: Array;
80
80
  reference?: Reference;
81
- yjs?: YJS;
82
81
  }
83
82
  /**
84
83
  * Ordered collection of values.
@@ -135,7 +135,15 @@ export interface MutationReceipt {
135
135
  * {@link file://./../../../dxos/echo/service.proto}
136
136
  */
137
137
  export interface FlushRequest {
138
- spaceKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
138
+ /**
139
+ * Options:
140
+ * - proto3_optional = true
141
+ */
142
+ spaceKey?: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
143
+ /**
144
+ * Automerge specific document ids to wait to flush.
145
+ */
146
+ documentIds?: string[];
139
147
  }
140
148
  /**
141
149
  * Defined in:
@@ -104,6 +104,13 @@ export interface IntroductionRequest {
104
104
  */
105
105
  export interface IntroductionResponse {
106
106
  authMethod: dxos_client_services.Invitation.AuthMethod;
107
+ /**
108
+ * Present when auth_method is KNOWN_PUBLIC_KEY.
109
+ *
110
+ * Options:
111
+ * - proto3_optional = true
112
+ */
113
+ challenge?: Uint8Array;
107
114
  /**
108
115
  * Only present for testing invitation types.
109
116
  *
@@ -117,7 +124,20 @@ export interface IntroductionResponse {
117
124
  * {@link file://./../../../dxos/halo/invitations.proto}
118
125
  */
119
126
  export interface AuthenticationRequest {
120
- authCode: string;
127
+ /**
128
+ * Present when auth_method is SHARED_SECRET.
129
+ *
130
+ * Options:
131
+ * - proto3_optional = true
132
+ */
133
+ authCode?: string;
134
+ /**
135
+ * Present when auth_method is KNOWN_PUBLIC_KEY.
136
+ *
137
+ * Options:
138
+ * - proto3_optional = true
139
+ */
140
+ signedChallenge?: Uint8Array;
121
141
  }
122
142
  /**
123
143
  * Defined in:
@@ -139,7 +159,8 @@ export namespace AuthenticationResponse {
139
159
  OK = 0,
140
160
  INVALID_OTP = 1,
141
161
  INVALID_OPT_ATTEMPTS = 2,
142
- INTERNAL_ERROR = 3
162
+ INTERNAL_ERROR = 3,
163
+ INVALID_SIGNATURE = 4
143
164
  }
144
165
  }
145
166
  /**
@@ -61,12 +61,16 @@ import * as example_testing_data from "../../example/testing/data";
61
61
  import * as example_testing_rpc from "../../example/testing/rpc";
62
62
  import * as google_protobuf from "../../google/protobuf";
63
63
  /**
64
+ * Use for:
65
+ * - Initial peer discovery (initiate session id between two peers).
66
+ * - RTC negotiation (SDP offer/answer and ICE).
67
+ *
64
68
  * Defined in:
65
69
  * {@link file://./../../../dxos/mesh/swarm.proto}
66
70
  */
67
71
  export interface SwarmMessage {
68
72
  /**
69
- * Swarm identefier.
73
+ * Swarm identifier.
70
74
  */
71
75
  topic: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
72
76
  /**
@@ -78,7 +82,7 @@ export interface SwarmMessage {
78
82
  */
79
83
  data: MessageData;
80
84
  /**
81
- * Unique message identifier. Used for Acknolegment and matching Anwers to Offers.
85
+ * Unique message identifier. Used for ACK and matching Answers to Offers.
82
86
  */
83
87
  messageId: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
84
88
  }
@@ -79,14 +79,14 @@ export enum NullValue {
79
79
  export interface ListValue {
80
80
  values?: Value[];
81
81
  }
82
- export interface Any {
83
- type_url: string;
84
- value: Uint8Array;
85
- }
86
82
  export interface Timestamp {
87
83
  seconds: string;
88
84
  nanos: number;
89
85
  }
86
+ export interface Any {
87
+ type_url: string;
88
+ value: Uint8Array;
89
+ }
90
90
  export interface FileDescriptorSet {
91
91
  file?: FileDescriptorProto[];
92
92
  }