@dxos/protocols 0.1.9 → 0.1.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/proto/gen/index.ts"],"names":[],"mappings":";;;;;;AAAA,yDAA8C;AAyC9C,qEAA6C;AAqWhC,QAAA,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,qmiHAAqmiH,CAAC,CAAC;AAC/niH,QAAA,MAAM,GAAG,uBAAM,CAAC,QAAQ,CAAkB,kBAAU,EAAE,uBAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/proto/gen/index.ts"],"names":[],"mappings":";;;;;;AAAA,yDAA8C;AAyC9C,qEAA6C;AAsWhC,QAAA,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,ygjHAAygjH,CAAC,CAAC;AACnijH,QAAA,MAAM,GAAG,uBAAM,CAAC,QAAQ,CAAkB,kBAAU,EAAE,uBAAa,CAAC,CAAC"}
@@ -3,17 +3,17 @@ import { PublicKey } from '@dxos/keys';
3
3
  import { Timeframe } from '@dxos/timeframe';
4
4
  import { TYPES } from './proto';
5
5
  import { EchoEnvelope, FeedMessage, CredentialsMessage } from './proto/gen/dxos/echo/feed';
6
- export declare type TypedMessage = TypedProtoMessage<TYPES>;
7
- export declare type FeedMeta = {
6
+ export type TypedMessage = TypedProtoMessage<TYPES>;
7
+ export type FeedMeta = {
8
8
  feedKey: PublicKey;
9
9
  seq: number;
10
10
  };
11
- export declare type FeedBlock<T> = {
11
+ export type FeedBlock<T> = {
12
12
  feedKey: PublicKey;
13
13
  seq: number;
14
14
  data: T;
15
15
  };
16
- export declare type FeedMessageBlock = FeedBlock<FeedMessage>;
16
+ export type FeedMessageBlock = FeedBlock<FeedMessage>;
17
17
  export interface MutationMeta extends FeedMeta {
18
18
  memberKey: PublicKey;
19
19
  }
@@ -28,6 +28,6 @@ export interface IEchoStream {
28
28
  meta: MutationMetaWithTimeframe;
29
29
  data: EchoEnvelope;
30
30
  }
31
- export declare type ItemID = string;
32
- export declare type ItemType = string;
31
+ export type ItemID = string;
32
+ export type ItemType = string;
33
33
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAG3F,oBAAY,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAGpD,oBAAY,QAAQ,GAAG;IACrB,OAAO,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,oBAAY,SAAS,CAAC,CAAC,IAAI;IACzB,OAAO,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAEF,oBAAY,gBAAgB,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AAEtD,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,yBAA0B,SAAQ,YAAY;IAC7D,SAAS,EAAE,SAAS,CAAC;CACtB;AAGD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAGD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,yBAAyB,CAAC;IAChC,IAAI,EAAE,YAAY,CAAC;CACpB;AAGD,oBAAY,MAAM,GAAG,MAAM,CAAC;AAC5B,oBAAY,QAAQ,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAG3F,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAGpD,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,OAAO,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AAEtD,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,yBAA0B,SAAQ,YAAY;IAC7D,SAAS,EAAE,SAAS,CAAC;CACtB;AAGD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAGD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,yBAAyB,CAAC;IAChC,IAAI,EAAE,YAAY,CAAC;CACpB;AAGD,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/protocols",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "Protobuf definitions for DXOS protocols.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -18,12 +18,12 @@
18
18
  "src"
19
19
  ],
20
20
  "dependencies": {
21
- "@dxos/codec-protobuf": "0.1.9",
22
- "@dxos/hypercore": "0.1.9",
23
- "@dxos/keys": "0.1.9",
24
- "@dxos/timeframe": "0.1.9",
25
21
  "assert": "^2.0.0",
26
- "util": "^0.12.4"
22
+ "util": "^0.12.4",
23
+ "@dxos/codec-protobuf": "0.1.11",
24
+ "@dxos/hypercore": "0.1.11",
25
+ "@dxos/keys": "0.1.11",
26
+ "@dxos/timeframe": "0.1.11"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/debug": "^4.1.7",
@@ -32,8 +32,5 @@
32
32
  },
33
33
  "publishConfig": {
34
34
  "access": "public"
35
- },
36
- "scripts": {
37
- "check": "true"
38
35
  }
39
36
  }
@@ -74,6 +74,8 @@ message Profile {
74
74
  // TODO(burdon): Remove identity from Profile (space of identity).
75
75
  dxos.keys.PublicKey identity_key = 1;
76
76
  optional string displayName = 2;
77
+ // TODO(mykola): Factor out. It was added to make deviceKey available in the HaloProxy.
78
+ optional dxos.keys.PublicKey device_key = 3;
77
79
  }
78
80
 
79
81
  message SubscribeProfileResponse {
@@ -12,7 +12,7 @@ import "google/protobuf/timestamp.proto";
12
12
  import "dxos/keys.proto";
13
13
 
14
14
  //
15
- // TODO(burdon): Move these notes to the design doc commentary.
15
+ // TODO(burdon): Reference/extract these notes to the design doc commentary.
16
16
  // Peers maintain Feeds that are admitted to HALO and ECHO Spaces.
17
17
  // Peers act as Verifiers for Credentials that may be Presented from other Peers.
18
18
  // Since Feeds implement a signed hash-linked data structure, they constitute a chain-of-authority for chained Credentials.
@@ -21,21 +21,22 @@ import "dxos/keys.proto";
21
21
 
22
22
  //
23
23
  // **SpaceGenesis** -
24
- // First message written to initial Feed in a new Space.
24
+ // First message written to initial Feed in a new Space.
25
25
  //
26
26
 
27
+ // [ASSERTION]
27
28
  message SpaceGenesis {
28
29
  dxos.keys.PublicKey space_key = 1; // Feeds belong to Spaces.
29
30
  }
30
31
 
31
32
  //
32
33
  // **Claim** -
33
- // Statement about a subject.
34
- // Claims can be written directly to a feed or used within Credentials.
34
+ // Statement about a subject.
35
+ // Claims can be written directly to a feed or used within Credentials.
35
36
  //
36
37
 
37
38
  // TODO(burdon): Reconcile with dxos.client.SpaceMember.
38
- // Agent is authorized to access Space.
39
+ // [ASSERTION]: Agent is authorized to access Space.
39
40
  message SpaceMember {
40
41
  // TODO(burdon): Consider permissions (e.g., for Bots).
41
42
  enum Role {
@@ -50,16 +51,19 @@ message SpaceMember {
50
51
 
51
52
  dxos.keys.PublicKey space_key = 1;
52
53
  Role role = 2;
54
+
55
+ // TODO: Move elsewhere.
56
+ optional ProfileDocument profile = 3;
53
57
  }
54
58
 
55
- // Device is authorized to sign messages for a given Agent (Identity).
59
+ // [ASSERTION]: Device is authorized to sign messages for a given Agent (Identity).
56
60
  // NOTE: Devices are Admitted to Identities.
57
61
  message AuthorizedDevice {
58
62
  dxos.keys.PublicKey identity_key = 1;
59
63
  dxos.keys.PublicKey device_key = 2; // Existing authorized device.
60
64
  }
61
65
 
62
- // Feed is admitted to the Space for replication.
66
+ // [ASSERTION]: Feed is admitted to the Space for replication.
63
67
  // NOTE: Feeds are Admitted to Spaces.
64
68
  message AdmittedFeed {
65
69
  enum Designation {
@@ -78,18 +82,19 @@ message AdmittedFeed {
78
82
  /// Owning device.
79
83
  dxos.keys.PublicKey device_key = 3;
80
84
 
81
- /// Controls sets the feed designation. Feeds with different designations are consumed by separate pipelines.
85
+ /// Controls sets the feed designation.
86
+ /// Feeds with different designations are consumed by separate pipelines.
82
87
  Designation designation = 4;
83
88
  }
84
89
 
85
- /// Associtaes a space that will implement Agent's HALO with an Identity.
90
+ /// [ASSERTION]: Associtaes a space that will implement Agent's HALO with an Identity.
86
91
  message HaloSpace {
87
92
  dxos.keys.PublicKey identity_key = 1;
88
93
  /// Space key.
89
94
  dxos.keys.PublicKey halo_key = 2;
90
95
  }
91
96
 
92
- /// Grants recovery permissions to a recovery key.
97
+ /// [ASSERTION]: Grants recovery permissions to a recovery key.
93
98
  message IdentityRecovery {
94
99
  dxos.keys.PublicKey identity_key = 1;
95
100
  /// Public key derrived from the recovery seedphrase.
@@ -101,7 +106,7 @@ message ProfileDocument {
101
106
  optional string avatar_cid = 2;
102
107
  }
103
108
 
104
- /// Sets profile information.
109
+ /// [ASSERTION]: Sets profile information.
105
110
  message IdentityProfile {
106
111
 
107
112
  // TODO(dmaretskyi): This could also be a DXNS link or stored in user's public HALO (we could also index the public HALO in the DMG).
@@ -120,8 +125,8 @@ message Auth {
120
125
 
121
126
  //
122
127
  // **Claim** -
123
- // Statement about a subject.
124
- // Claims can be written directly to a feed or used within Credentials.
128
+ // Statement about a subject.
129
+ // Claims can be written directly to a feed or used within Credentials.
125
130
  //
126
131
 
127
132
  message Claim {
@@ -131,9 +136,9 @@ message Claim {
131
136
 
132
137
  //
133
138
  // **Proof** -
134
- // Signature that makes Credential tamper-evident.
135
- // The proof is signed by the issuer of the Credential.
136
- // Ref: https://www.w3.org/TR/vc-data-model/#proofs-signatures
139
+ // Signature that makes Credential tamper-evident.
140
+ // The proof is signed by the issuer of the Credential.
141
+ // Ref: https://www.w3.org/TR/vc-data-model/#proofs-signatures
137
142
  //
138
143
 
139
144
  message Proof {
@@ -171,9 +176,9 @@ message Chain {
171
176
 
172
177
  //
173
178
  // **Credential** -
174
- // Set of claims containing a proof signed by the issuer.
175
- // Credentials may be stored in a Credential Repository (e.g., digital wallet.)
176
- // Credentials may also be store within feeds (e.g., an agent's HALO).
179
+ // Set of claims containing a proof signed by the issuer.
180
+ // Credentials may be stored in a Credential Repository (e.g., digital wallet.)
181
+ // Credentials may also be store within feeds (e.g., an agent's HALO).
177
182
  //
178
183
 
179
184
  message Credential {
@@ -188,9 +193,9 @@ message Credential {
188
193
 
189
194
  //
190
195
  // **Presentation** -
191
- // Signed Credential(s) sent to a Verifier.
192
- // Presentations are typically NOT stored any may include a challenge (e.g., nonce).
193
- // Presentations may contain multiple Credentials (and require multiple proofs).
196
+ // Signed Credential(s) sent to a Verifier.
197
+ // Presentations are typically NOT stored any may include a challenge (e.g., nonce).
198
+ // Presentations may contain multiple Credentials (and require multiple proofs).
194
199
  //
195
200
 
196
201
  message Presentation {
@@ -200,20 +205,23 @@ message Presentation {
200
205
 
201
206
  //
202
207
  // **Metadata** -
203
- // Persistant metadata stored outside of used to bootsrapt the stack.
208
+ // Persistent metadata stored outside of used to bootsrapt the stack.
204
209
  //
205
210
 
206
211
  /// Information needed to bootstrap a Space.
207
212
  message SpaceRecord {
208
213
  dxos.keys.PublicKey space_key = 1;
209
214
 
210
- /// All feeds in the space must form a DAG (or a tree?). This is the root feed of that structure.
215
+ /// All feeds in the space must form a DAG (or a tree?)
216
+ /// This is the root feed of that structure.
211
217
  dxos.keys.PublicKey genesis_feed_key = 2;
212
218
 
213
- /// Key of the writable feed for control messages. Keyring must have the asscoiated private key.
219
+ /// Key of the writable feed for control messages.
220
+ /// Keyring must have the associated private key.
214
221
  dxos.keys.PublicKey write_control_feed_key = 3;
215
222
 
216
- /// Key of the writable feed for data messages. Keyring must have the asscoiated private key.
223
+ /// Key of the writable feed for data messages.
224
+ /// Keyring must have the associated private key.
217
225
  dxos.keys.PublicKey write_data_feed_key = 4;
218
226
  }
219
227
 
@@ -225,7 +233,7 @@ message IdentityRecord {
225
233
  SpaceRecord halo_space = 3;
226
234
 
227
235
  /// Public profile information.
228
- /// Not yet implemented. Must be null.
236
+ /// TODO(burdon): Not yet implemented. Must be null.
229
237
  optional SpaceRecord profile_space = 4;
230
238
 
231
239
  /// Cached profile.
@@ -57,9 +57,14 @@ message SpaceAdmissionCredentials {
57
57
  dxos.keys.PublicKey data_feed_key = 4;
58
58
  }
59
59
 
60
+ message AdmissionParameters {
61
+ /// Guest's profile.
62
+ optional ProfileDocument profile = 1;
63
+ }
64
+
60
65
  service SpaceHostService {
61
66
  /// Process admission request.
62
- rpc RequestAdmission(google.protobuf.Empty) returns (SpaceAdmissionOffer);
67
+ rpc RequestAdmission(AdmissionParameters) returns (SpaceAdmissionOffer);
63
68
 
64
69
  /// Authenticate request.
65
70
  rpc Authenticate(AuthenticationRequest) returns (google.protobuf.Empty);
@@ -128,6 +128,11 @@ export interface Profile {
128
128
  * - proto3_optional = true
129
129
  */
130
130
  displayName?: string;
131
+ /**
132
+ * Options:
133
+ * - proto3_optional = true
134
+ */
135
+ deviceKey?: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
131
136
  }
132
137
  /**
133
138
  * Defined in:
@@ -53,6 +53,11 @@ export interface SpaceGenesis {
53
53
  export interface SpaceMember {
54
54
  spaceKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
55
55
  role: SpaceMember.Role;
56
+ /**
57
+ * Options:
58
+ * - proto3_optional = true
59
+ */
60
+ profile?: ProfileDocument;
56
61
  }
57
62
  export namespace SpaceMember {
58
63
  /**
@@ -86,7 +91,7 @@ export interface AdmittedFeed {
86
91
  identityKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
87
92
  deviceKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
88
93
  /**
89
- * Controls sets the feed designation. Feeds with different designations are consumed by separate pipelines.
94
+ * Feeds with different designations are consumed by separate pipelines.
90
95
  */
91
96
  designation: AdmittedFeed.Designation;
92
97
  }
@@ -102,7 +107,7 @@ export namespace AdmittedFeed {
102
107
  }
103
108
  }
104
109
  /**
105
- * Associtaes a space that will implement Agent's HALO with an Identity.
110
+ * [ASSERTION]: Associtaes a space that will implement Agent's HALO with an Identity.
106
111
  *
107
112
  * Defined in:
108
113
  * {@link file://./../../../dxos/halo/credentials.proto}
@@ -115,7 +120,7 @@ export interface HaloSpace {
115
120
  haloKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
116
121
  }
117
122
  /**
118
- * Grants recovery permissions to a recovery key.
123
+ * [ASSERTION]: Grants recovery permissions to a recovery key.
119
124
  *
120
125
  * Defined in:
121
126
  * {@link file://./../../../dxos/halo/credentials.proto}
@@ -144,7 +149,7 @@ export interface ProfileDocument {
144
149
  avatarCid?: string;
145
150
  }
146
151
  /**
147
- * Sets profile information.
152
+ * [ASSERTION]: Sets profile information.
148
153
  *
149
154
  * Defined in:
150
155
  * {@link file://./../../../dxos/halo/credentials.proto}
@@ -270,15 +275,15 @@ export interface Presentation {
270
275
  export interface SpaceRecord {
271
276
  spaceKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
272
277
  /**
273
- * All feeds in the space must form a DAG (or a tree?). This is the root feed of that structure.
278
+ * This is the root feed of that structure.
274
279
  */
275
280
  genesisFeedKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
276
281
  /**
277
- * Key of the writable feed for control messages. Keyring must have the asscoiated private key.
282
+ * Keyring must have the associated private key.
278
283
  */
279
284
  writeControlFeedKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
280
285
  /**
281
- * Key of the writable feed for data messages. Keyring must have the asscoiated private key.
286
+ * Keyring must have the associated private key.
282
287
  */
283
288
  writeDataFeedKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
284
289
  }
@@ -293,7 +298,7 @@ export interface IdentityRecord {
293
298
  deviceKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
294
299
  haloSpace: SpaceRecord;
295
300
  /**
296
- * Not yet implemented. Must be null.
301
+ * TODO(burdon): Not yet implemented. Must be null.
297
302
  *
298
303
  * Options:
299
304
  * - proto3_optional = true
@@ -100,6 +100,19 @@ export interface SpaceAdmissionCredentials {
100
100
  controlFeedKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
101
101
  dataFeedKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
102
102
  }
103
+ /**
104
+ * Defined in:
105
+ * {@link file://./../../../dxos/halo/invitations.proto}
106
+ */
107
+ export interface AdmissionParameters {
108
+ /**
109
+ * Guest's profile.
110
+ *
111
+ * Options:
112
+ * - proto3_optional = true
113
+ */
114
+ profile?: dxos_halo_credentials.ProfileDocument;
115
+ }
103
116
  /**
104
117
  * Defined in:
105
118
  * {@link file://./../../../dxos/halo/invitations.proto}
@@ -108,7 +121,7 @@ export interface SpaceHostService {
108
121
  /**
109
122
  * Process admission request.
110
123
  */
111
- requestAdmission: (request: void) => Promise<SpaceAdmissionOffer>;
124
+ requestAdmission: (request: AdmissionParameters) => Promise<SpaceAdmissionOffer>;
112
125
  /**
113
126
  * Authenticate request.
114
127
  */