@dxos/protocols 0.4.10-main.c42bfdb → 0.4.10-main.c75170d

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 (52) 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 -0
  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/halo/invitations.d.ts +23 -2
  12. package/dist/cjs/src/proto/gen/dxos/halo/invitations.d.ts.map +1 -1
  13. package/dist/cjs/src/proto/gen/dxos/halo/invitations.js +1 -0
  14. package/dist/cjs/src/proto/gen/dxos/halo/invitations.js.map +1 -1
  15. package/dist/cjs/src/proto/gen/dxos/mesh/swarm.d.ts +6 -2
  16. package/dist/cjs/src/proto/gen/dxos/mesh/swarm.d.ts.map +1 -1
  17. package/dist/cjs/src/proto/gen/index.d.ts +1 -0
  18. package/dist/cjs/src/proto/gen/index.d.ts.map +1 -1
  19. package/dist/cjs/src/proto/gen/index.js +1 -1
  20. package/dist/cjs/src/proto/gen/index.js.map +1 -1
  21. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  22. package/dist/esm/src/indexing.d.ts +4 -3
  23. package/dist/esm/src/indexing.d.ts.map +1 -1
  24. package/dist/esm/src/indexing.js.map +1 -1
  25. package/dist/esm/src/proto/gen/dxos/client/services.d.ts +29 -3
  26. package/dist/esm/src/proto/gen/dxos/client/services.d.ts.map +1 -1
  27. package/dist/esm/src/proto/gen/dxos/client/services.js +2 -1
  28. package/dist/esm/src/proto/gen/dxos/client/services.js.map +1 -1
  29. package/dist/esm/src/proto/gen/dxos/config.d.ts +5 -0
  30. package/dist/esm/src/proto/gen/dxos/config.d.ts.map +1 -1
  31. package/dist/esm/src/proto/gen/dxos/config.js.map +1 -1
  32. package/dist/esm/src/proto/gen/dxos/halo/invitations.d.ts +23 -2
  33. package/dist/esm/src/proto/gen/dxos/halo/invitations.d.ts.map +1 -1
  34. package/dist/esm/src/proto/gen/dxos/halo/invitations.js +1 -0
  35. package/dist/esm/src/proto/gen/dxos/halo/invitations.js.map +1 -1
  36. package/dist/esm/src/proto/gen/dxos/mesh/swarm.d.ts +6 -2
  37. package/dist/esm/src/proto/gen/dxos/mesh/swarm.d.ts.map +1 -1
  38. package/dist/esm/src/proto/gen/index.d.ts +1 -0
  39. package/dist/esm/src/proto/gen/index.d.ts.map +1 -1
  40. package/dist/esm/src/proto/gen/index.js +1 -1
  41. package/dist/esm/src/proto/gen/index.js.map +1 -1
  42. package/package.json +5 -5
  43. package/src/indexing.ts +5 -4
  44. package/src/proto/dxos/client/services.proto +20 -4
  45. package/src/proto/dxos/config.proto +5 -1
  46. package/src/proto/dxos/halo/invitations.proto +9 -1
  47. package/src/proto/dxos/mesh/swarm.proto +11 -3
  48. package/src/proto/gen/dxos/client/services.ts +29 -3
  49. package/src/proto/gen/dxos/config.ts +5 -0
  50. package/src/proto/gen/dxos/halo/invitations.ts +23 -2
  51. package/src/proto/gen/dxos/mesh/swarm.ts +6 -2
  52. 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,8hsGAA8hsG,CAAC,CAAC,CAAC;AACvlsG,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.c42bfdb",
3
+ "version": "0.4.10-main.c75170d",
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.10-main.c42bfdb",
37
- "@dxos/keys": "0.4.10-main.c42bfdb",
38
- "@dxos/timeframe": "0.4.10-main.c42bfdb",
39
- "@dxos/invariant": "0.4.10-main.c42bfdb"
36
+ "@dxos/invariant": "0.4.10-main.c75170d",
37
+ "@dxos/keys": "0.4.10-main.c75170d",
38
+ "@dxos/timeframe": "0.4.10-main.c75170d",
39
+ "@dxos/codec-protobuf": "0.4.10-main.c75170d"
40
40
  },
41
41
  "devDependencies": {
42
42
  "glob": "~7.1.6"
package/src/indexing.ts CHANGED
@@ -2,15 +2,16 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- // TODO(dmaretskyi): Rename ObjectPointer{Decoded/Encoded}.
6
- export type IdDecoded = {
5
+ export type ObjectPointerDecoded = {
7
6
  documentId: string;
8
7
  objectId: string;
9
8
  };
10
9
 
10
+ export type ObjectPointerEncoded = string;
11
+
11
12
  export const idCodec = {
12
- encode: ({ documentId, objectId }: IdDecoded) => `${documentId}|${objectId}`,
13
- decode: (id: string): IdDecoded => {
13
+ encode: ({ documentId, objectId }: ObjectPointerDecoded): ObjectPointerEncoded => `${documentId}|${objectId}`,
14
+ decode: (id: ObjectPointerEncoded): ObjectPointerDecoded => {
14
15
  const [documentId, objectId] = id.split('|');
15
16
  return { documentId, objectId };
16
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
  //
@@ -131,9 +131,13 @@ message Runtime {
131
131
  /// Location of the remote client host.
132
132
  // TODO(burdon): Rename vault_endpoint (generalize http/ws; drop vault.html).
133
133
  optional string remote_source = 6;
134
-
134
+
135
+ // Authenticate via `Sec-WebSocket-Protocol` header hack.
136
+ optional string remote_source_authentication_token = 8;
137
+
135
138
  /// Connect to and serve client services to a remote proxy.
136
139
  optional string devtools_proxy = 7;
140
+
137
141
  }
138
142
 
139
143
  message App {
@@ -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:
@@ -291,6 +291,11 @@ export namespace Runtime {
291
291
  * - proto3_optional = true
292
292
  */
293
293
  remoteSource?: string;
294
+ /**
295
+ * Options:
296
+ * - proto3_optional = true
297
+ */
298
+ remoteSourceAuthenticationToken?: string;
294
299
  /**
295
300
  * Connect to and serve client services to a remote proxy.
296
301
  *
@@ -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
  }