@dxos/client 2.33.7-dev.848c0285 → 2.33.7-dev.c2ba88fb

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 (57) hide show
  1. package/dist/src/api/client.d.ts +1 -1
  2. package/dist/src/api/client.d.ts.map +1 -1
  3. package/dist/src/api/client.js +1 -0
  4. package/dist/src/api/client.js.map +1 -1
  5. package/dist/src/api/invitations/invitation-proxy.js +7 -7
  6. package/dist/src/api/invitations/invitation-proxy.js.map +1 -1
  7. package/dist/src/api/proxies/echo-proxy.d.ts.map +1 -1
  8. package/dist/src/api/proxies/echo-proxy.js +2 -2
  9. package/dist/src/api/proxies/echo-proxy.js.map +1 -1
  10. package/dist/src/api/proxies/halo-proxy.d.ts.map +1 -1
  11. package/dist/src/api/proxies/halo-proxy.js +2 -2
  12. package/dist/src/api/proxies/halo-proxy.js.map +1 -1
  13. package/dist/src/api/proxies/party-proxy.d.ts.map +1 -1
  14. package/dist/src/api/proxies/party-proxy.js +1 -1
  15. package/dist/src/api/proxies/party-proxy.js.map +1 -1
  16. package/dist/src/devtools/devtools-host.d.ts.map +1 -1
  17. package/dist/src/devtools/devtools-host.js +4 -5
  18. package/dist/src/devtools/devtools-host.js.map +1 -1
  19. package/dist/src/devtools/feeds.d.ts +3 -3
  20. package/dist/src/devtools/feeds.d.ts.map +1 -1
  21. package/dist/src/devtools/feeds.js +50 -28
  22. package/dist/src/devtools/feeds.js.map +1 -1
  23. package/dist/src/devtools/parties.d.ts +2 -2
  24. package/dist/src/devtools/parties.d.ts.map +1 -1
  25. package/dist/src/devtools/parties.js +14 -2
  26. package/dist/src/devtools/parties.js.map +1 -1
  27. package/dist/src/proto/gen/dxos/devtools.d.ts +20 -16
  28. package/dist/src/proto/gen/dxos/devtools.d.ts.map +1 -1
  29. package/dist/src/proto/gen/google/protobuf.d.ts +4 -4
  30. package/dist/src/proto/gen/google/protobuf.d.ts.map +1 -1
  31. package/dist/src/proto/gen/index.d.ts +4 -4
  32. package/dist/src/proto/gen/index.d.ts.map +1 -1
  33. package/dist/src/proto/gen/index.js +1 -1
  34. package/dist/src/proto/gen/index.js.map +1 -1
  35. package/dist/src/services/services.test.js +3 -3
  36. package/dist/src/services/services.test.js.map +1 -1
  37. package/dist/src/util/subscription.d.ts.map +1 -1
  38. package/dist/src/util/subscription.js +1 -1
  39. package/dist/src/util/subscription.js.map +1 -1
  40. package/dist/src/version.d.ts +1 -1
  41. package/dist/src/version.js +1 -1
  42. package/dist/tsconfig.tsbuildinfo +1 -1
  43. package/package.json +18 -18
  44. package/src/api/client.ts +1 -0
  45. package/src/api/invitations/invitation-proxy.ts +7 -7
  46. package/src/api/proxies/echo-proxy.ts +4 -2
  47. package/src/api/proxies/halo-proxy.ts +4 -2
  48. package/src/api/proxies/party-proxy.ts +2 -1
  49. package/src/devtools/devtools-host.ts +9 -7
  50. package/src/devtools/feeds.ts +68 -30
  51. package/src/devtools/parties.ts +20 -2
  52. package/src/proto/gen/dxos/devtools.ts +20 -16
  53. package/src/proto/gen/google/protobuf.ts +4 -4
  54. package/src/proto/gen/index.ts +5 -5
  55. package/src/services/services.test.ts +4 -5
  56. package/src/util/subscription.ts +2 -1
  57. package/src/version.ts +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/client",
3
- "version": "2.33.7-dev.848c0285",
3
+ "version": "2.33.7-dev.c2ba88fb",
4
4
  "license": "MIT",
5
5
  "author": "DXOS.org",
6
6
  "main": "dist/src/index.js",
@@ -10,21 +10,21 @@
10
10
  "src"
11
11
  ],
12
12
  "dependencies": {
13
- "@dxos/async": "2.33.7-dev.848c0285",
14
- "@dxos/codec-protobuf": "2.33.7-dev.848c0285",
15
- "@dxos/config": "2.33.7-dev.848c0285",
16
- "@dxos/credentials": "2.33.7-dev.848c0285",
17
- "@dxos/crypto": "2.33.7-dev.848c0285",
18
- "@dxos/debug": "2.33.7-dev.848c0285",
19
- "@dxos/echo-db": "2.33.7-dev.848c0285",
20
- "@dxos/echo-protocol": "2.33.7-dev.848c0285",
21
- "@dxos/feed-store": "2.33.7-dev.848c0285",
22
- "@dxos/model-factory": "2.33.7-dev.848c0285",
23
- "@dxos/network-manager": "2.33.7-dev.848c0285",
24
- "@dxos/object-model": "2.33.7-dev.848c0285",
25
- "@dxos/protocols": "2.33.7-dev.848c0285",
26
- "@dxos/rpc": "2.33.7-dev.848c0285",
27
- "@dxos/util": "2.33.7-dev.848c0285",
13
+ "@dxos/async": "2.33.7-dev.c2ba88fb",
14
+ "@dxos/codec-protobuf": "2.33.7-dev.c2ba88fb",
15
+ "@dxos/config": "2.33.7-dev.c2ba88fb",
16
+ "@dxos/credentials": "2.33.7-dev.c2ba88fb",
17
+ "@dxos/crypto": "2.33.7-dev.c2ba88fb",
18
+ "@dxos/debug": "2.33.7-dev.c2ba88fb",
19
+ "@dxos/echo-db": "2.33.7-dev.c2ba88fb",
20
+ "@dxos/echo-protocol": "2.33.7-dev.c2ba88fb",
21
+ "@dxos/feed-store": "2.33.7-dev.c2ba88fb",
22
+ "@dxos/model-factory": "2.33.7-dev.c2ba88fb",
23
+ "@dxos/network-manager": "2.33.7-dev.c2ba88fb",
24
+ "@dxos/object-model": "2.33.7-dev.c2ba88fb",
25
+ "@dxos/protocols": "2.33.7-dev.c2ba88fb",
26
+ "@dxos/rpc": "2.33.7-dev.c2ba88fb",
27
+ "@dxos/util": "2.33.7-dev.c2ba88fb",
28
28
  "abstract-leveldown": "~7.0.0",
29
29
  "assert": "^2.0.0",
30
30
  "debug": "^4.3.3",
@@ -37,9 +37,9 @@
37
37
  "uuid": "^8.3.2"
38
38
  },
39
39
  "devDependencies": {
40
- "@dxos/eslint-plugin": "~1.0.33",
40
+ "@dxos/eslint-plugin": "~1.0.34",
41
41
  "@dxos/protocols-toolchain": "2.33.6",
42
- "@dxos/random-access-multi-storage": "2.33.7-dev.848c0285",
42
+ "@dxos/random-access-multi-storage": "2.33.7-dev.c2ba88fb",
43
43
  "@dxos/testutils": "2.33.6",
44
44
  "@types/debug": "^4.1.7",
45
45
  "@types/jest": "^26.0.7",
package/src/api/client.ts CHANGED
@@ -261,6 +261,7 @@ export class Client {
261
261
  * Registers a new ECHO model.
262
262
  * @deprecated
263
263
  */
264
+ // TODO(burdon): Remove (moved to echo).
264
265
  registerModel (constructor: ModelConstructor<any>): this {
265
266
  this._echo.modelFactory.registerModel(constructor);
266
267
  return this;
@@ -69,11 +69,11 @@ export class InvitationProxy {
69
69
  reject(err);
70
70
  error.emit(err);
71
71
  }
72
- }, error => {
73
- if (error) {
74
- console.error(error);
75
- reject(error);
72
+ }, err => {
73
+ if (err) {
76
74
  // TODO(rzadp): Handle retry.
75
+ console.error(err);
76
+ reject(error);
77
77
  }
78
78
  });
79
79
  });
@@ -102,10 +102,10 @@ export class InvitationProxy {
102
102
  // TODO(dmaretskyi): Should result in an error inside the returned Invitation, rejecting the promise in Invitation.wait().
103
103
  throwUnhandledRejection(error);
104
104
  }
105
- }, error => {
106
- if (error && !(error instanceof RpcClosedError)) {
105
+ }, err => {
106
+ if (err && !(err instanceof RpcClosedError)) {
107
107
  // TODO(dmaretskyi): Should result in an error inside the returned Invitation, rejecting the promise in Invitation.wait().
108
- throwUnhandledRejection(error);
108
+ throwUnhandledRejection(err);
109
109
  }
110
110
  });
111
111
 
@@ -119,12 +119,14 @@ export class EchoProxy implements Echo {
119
119
 
120
120
  partyProxy._processPartyUpdate(party);
121
121
  this._partiesChanged.emit();
122
- }, () => {});
122
+ });
123
+
123
124
  this._subscriptions.push(() => partyStream.close());
124
125
  }
125
126
  }
127
+
126
128
  this._partiesChanged.emit();
127
- }, () => {});
129
+ });
128
130
 
129
131
  this._subscriptions.push(() => partiesStream.close());
130
132
 
@@ -192,14 +192,16 @@ export class HaloProxy implements Halo {
192
192
  profileStream.subscribe(data => {
193
193
  this._profile = data.profile;
194
194
  this.profileChanged.emit();
195
- }, () => {});
195
+ });
196
+
196
197
  this._subscriptions.push(() => profileStream.close());
197
198
 
198
199
  const contactsStream = this._serviceProvider.services.HaloService.subscribeContacts();
199
200
  contactsStream.subscribe(data => {
200
201
  this._contacts = data.contacts as PartyMember[];
201
202
  this._contactsChanged.emit();
202
- }, () => {});
203
+ });
204
+
203
205
  this._subscriptions.push(() => contactsStream.close());
204
206
 
205
207
  await Promise.all([gotProfile, gotContacts]);
@@ -51,6 +51,7 @@ export interface Party {
51
51
  setTitle (title: string): Promise<void>
52
52
  getTitle (): string
53
53
 
54
+ // TODO(burdon): Rename (info?)
54
55
  getDetails(): Promise<PartyDetails>
55
56
 
56
57
  get properties (): ObjectProperties
@@ -112,7 +113,7 @@ export class PartyProxy implements Party {
112
113
  }
113
114
  }
114
115
 
115
- // TODO(burdon): Getter require by react hook.
116
+ // TODO(burdon): Getter required by react hook.
116
117
  get invitationProxy () {
117
118
  return this._invitationProxy;
118
119
  }
@@ -9,7 +9,7 @@ import { getConfig } from './config';
9
9
  import { enableDebugLogging, disableDebugLogging } from './debug-logging';
10
10
  import { DevtoolsServiceDependencies } from './devtools-context';
11
11
  import { DevtoolsHostEvents } from './devtools-host-events';
12
- import { subscribeToFeed, subscribeToFeeds } from './feeds';
12
+ import { subscribeToFeeds, subscribeToFeedBlocks } from './feeds';
13
13
  import { subscribeToItems } from './items';
14
14
  import { subscribeToCredentialMessages, subscribeToKeyringKeys } from './keys';
15
15
  import {
@@ -22,15 +22,17 @@ import {
22
22
  import { getPartySnapshot, savePartySnapshot, subscribeToParties } from './parties';
23
23
  import { resetStorage } from './storage';
24
24
 
25
- export const createDevtoolsHost = (context: DevtoolsServiceDependencies, events: DevtoolsHostEvents): DevtoolsHost => ({
25
+ export const createDevtoolsHost = (
26
+ context: DevtoolsServiceDependencies,
27
+ events: DevtoolsHostEvents
28
+ ): DevtoolsHost => ({
26
29
  events: () => new Stream<ClientAPIEvent>(({ next }) => {
27
30
  events.ready.on(() => {
28
31
  next({ ready: {} });
29
32
  });
30
33
  }),
31
34
  getConfig: async () => {
32
- const config = getConfig(context);
33
- return config;
35
+ return getConfig(context);
34
36
  },
35
37
  resetStorage: async () => {
36
38
  await resetStorage(context);
@@ -45,10 +47,10 @@ export const createDevtoolsHost = (context: DevtoolsServiceDependencies, events:
45
47
  },
46
48
  subscribeToKeyringKeys: () => subscribeToKeyringKeys(context),
47
49
  subscribeToCredentialMessages: (request) => subscribeToCredentialMessages(context, request),
48
- subscribeToParties: () => subscribeToParties(context),
50
+ subscribeToParties: (request) => subscribeToParties(context, request),
49
51
  subscribeToItems: () => subscribeToItems(context),
50
- subscribeToFeeds: () => subscribeToFeeds(context),
51
- subscribeToFeed: (request) => subscribeToFeed(context, request),
52
+ subscribeToFeeds: (request) => subscribeToFeeds(context, request),
53
+ subscribeToFeedBlocks: (request) => subscribeToFeedBlocks(context, request),
52
54
  getPartySnapshot: async (request) => getPartySnapshot(context, request),
53
55
  savePartySnapshot: async (request) => savePartySnapshot(context, request),
54
56
  clearSnapshots: async () => {
@@ -5,45 +5,80 @@
5
5
  import { Readable } from 'readable-stream';
6
6
 
7
7
  import { Stream } from '@dxos/codec-protobuf';
8
+ import { PublicKey } from '@dxos/crypto';
8
9
  import { createBatchStream } from '@dxos/feed-store';
9
10
 
10
- import { SubscribeToFeedRequest, SubscribeToFeedResponse, SubscribeToFeedsResponse } from '../proto/gen/dxos/devtools';
11
+ import {
12
+ SubscribeToFeedsRequest,
13
+ SubscribeToFeedsResponse,
14
+ SubscribeToFeedBlocksRequest,
15
+ SubscribeToFeedBlocksResponse
16
+ } from '../proto/gen/dxos/devtools';
11
17
  import { DevtoolsServiceDependencies } from './devtools-context';
12
18
 
13
- export const subscribeToFeeds = ({ echo }: DevtoolsServiceDependencies) => new Stream<SubscribeToFeedsResponse>(({ next }) => {
14
- const update = () => {
19
+ export const subscribeToFeeds = (
20
+ { echo }: DevtoolsServiceDependencies,
21
+ { partyKey, feedKeys }: SubscribeToFeedsRequest
22
+ ) => new Stream<SubscribeToFeedsResponse>(({ next }) => {
23
+ if (!partyKey || feedKeys?.length === 0) {
24
+ return;
25
+ }
26
+
27
+ const feedMap = new Map<PublicKey, { feedKey: PublicKey, stream: Readable, length: number }>();
28
+
29
+ setImmediate(async () => {
15
30
  const { value: parties } = echo.queryParties();
16
- next({
17
- parties: parties.map(party => ({
18
- key: party.key,
19
- feeds: party.getFeeds().map(feed => feed.key)
20
- }))
21
- });
22
- };
31
+ const party = parties.find(party => party.key.equals(partyKey));
32
+ if (!party) {
33
+ return;
34
+ }
23
35
 
24
- const partySubscriptions: Record<string, () => void> = {};
25
- const unsubscribe = echo.queryParties().subscribe((parties) => {
26
- parties.forEach((party) => {
27
- if (!partySubscriptions[party.key.toHex()]) {
28
- // Send updates on timeframe changes.
29
- partySubscriptions[party.key.toHex()] = party.timeframeUpdate.on(() => update());
30
- }
31
- });
36
+ const feeds = await party.getFeeds();
37
+ feeds
38
+ .filter(feed => !feedKeys?.length || feedKeys.some(feedKey => feedKey.equals(feed.key)))
39
+ .forEach(feed => {
40
+ let feedInfo = feedMap.get(feed.key);
41
+ if (!feedInfo) {
42
+ // TODO(wittjosiah): Start from timeframe?
43
+ // TODO(wittjosiah): Bi-directional lazy loading to feed into virtualized table.
44
+ // Tail feed so as to not overload the browser.
45
+ const feedStream = new Readable({ objectMode: true })
46
+ .wrap(createBatchStream(feed.feed, {
47
+ live: true,
48
+ start: 0
49
+ }));
32
50
 
33
- // Send feeds for new parties.
34
- update();
35
- });
51
+ feedStream.on('data', blocks => {
52
+ feedInfo!.length += blocks.length;
53
+
54
+ next({
55
+ feeds: Array.from(feedMap.values()).map(({ feedKey, length }) => ({
56
+ feedKey,
57
+ length
58
+ }))
59
+ });
60
+ });
36
61
 
37
- // Send initial feeds.
38
- update();
62
+ feedInfo = {
63
+ feedKey: feed.key,
64
+ stream: feedStream,
65
+ length: 0
66
+ };
67
+
68
+ feedMap.set(feed.key, feedInfo);
69
+ }
70
+ });
71
+ });
39
72
 
40
73
  return () => {
41
- unsubscribe();
42
- Object.values(partySubscriptions).forEach(unsubscribe => unsubscribe());
74
+ feedMap.forEach(({ stream }) => stream.destroy());
43
75
  };
44
76
  });
45
77
 
46
- export const subscribeToFeed = ({ echo }: DevtoolsServiceDependencies, { partyKey, feedKey }: SubscribeToFeedRequest) => new Stream<SubscribeToFeedResponse>(({ next }) => {
78
+ export const subscribeToFeedBlocks = (
79
+ { echo }: DevtoolsServiceDependencies,
80
+ { partyKey, feedKey, maxBlocks = 10 }: SubscribeToFeedBlocksRequest
81
+ ) => new Stream<SubscribeToFeedBlocksResponse>(({ next }) => {
47
82
  if (!partyKey || !feedKey) {
48
83
  return;
49
84
  }
@@ -56,16 +91,19 @@ export const subscribeToFeed = ({ echo }: DevtoolsServiceDependencies, { partyKe
56
91
  return;
57
92
  }
58
93
 
59
- const feed = await party.getFeeds().find(feed => feed.key.equals(feedKey));
60
- if (!feed) {
94
+ const descriptor = await party.getFeeds().find(feed => feed.key.equals(feedKey));
95
+ if (!descriptor) {
61
96
  return;
62
97
  }
63
98
 
64
99
  // TODO(wittjosiah): Start from timeframe?
65
- // TODO(wittjosiah): Bidirectional lazy loading to feed into virtualized table.
100
+ // TODO(wittjosiah): Bi-directional lazy loading to feed into virtualized table.
66
101
  // Tail feed so as to not overload the browser.
67
102
  feedStream = new Readable({ objectMode: true })
68
- .wrap(createBatchStream(feed.feed, { live: true, start: Math.max(0, feed.feed.length - 10) }));
103
+ .wrap(createBatchStream(descriptor.feed, {
104
+ live: true,
105
+ start: Math.max(0, descriptor.feed.length - maxBlocks)
106
+ }));
69
107
 
70
108
  feedStream.on('data', blocks => {
71
109
  next({ blocks });
@@ -9,14 +9,32 @@ import {
9
9
  GetPartySnapshotResponse,
10
10
  SavePartySnapshotRequest,
11
11
  SavePartySnapshotResponse,
12
+ SubscribeToPartiesRequest,
12
13
  SubscribeToPartiesResponse
13
14
  } from '../proto/gen/dxos/devtools';
14
15
  import { DevtoolsServiceDependencies } from './devtools-context';
15
16
 
16
- export const subscribeToParties = ({ echo }: DevtoolsServiceDependencies) => new Stream<SubscribeToPartiesResponse>(({ next }) => {
17
+ export const subscribeToParties = (
18
+ { echo }: DevtoolsServiceDependencies,
19
+ { partyKeys = [] }: SubscribeToPartiesRequest
20
+ ) => new Stream<SubscribeToPartiesResponse>(({ next }) => {
17
21
  const update = () => {
18
22
  const { value: parties } = echo.queryParties();
19
- next({ parties: parties.map(party => party.partyInfo) });
23
+ const filteredParties = parties.filter(
24
+ party => !partyKeys?.length || partyKeys.some(partyKey => partyKey.equals(party.key)));
25
+
26
+ next({
27
+ parties: filteredParties.map(party => {
28
+ return {
29
+ key: party.key,
30
+ isOpen: party.isOpen,
31
+ isActive: party.isActive,
32
+ timeframe: party.timeframe,
33
+ feeds: party.getFeeds().map(feed => feed.key),
34
+ properties: party.isOpen ? party.getPropertiesSet().expectOne().model.toObject() : undefined
35
+ };
36
+ })
37
+ });
20
38
  };
21
39
 
22
40
  const partySubscriptions: Record<string, () => void> = {};
@@ -22,7 +22,7 @@ export interface DevtoolsHost {
22
22
  subscribeToParties: (request: SubscribeToPartiesRequest) => Stream<SubscribeToPartiesResponse>;
23
23
  subscribeToItems: (request: SubscribeToItemsRequest) => Stream<SubscribeToItemsResponse>;
24
24
  subscribeToFeeds: (request: SubscribeToFeedsRequest) => Stream<SubscribeToFeedsResponse>;
25
- subscribeToFeed: (request: SubscribeToFeedRequest) => Stream<SubscribeToFeedResponse>;
25
+ subscribeToFeedBlocks: (request: SubscribeToFeedBlocksRequest) => Stream<SubscribeToFeedBlocksResponse>;
26
26
  getPartySnapshot: (request: GetPartySnapshotRequest) => Promise<GetPartySnapshotResponse>;
27
27
  savePartySnapshot: (request: SavePartySnapshotRequest) => Promise<SavePartySnapshotResponse>;
28
28
  clearSnapshots: (request: ClearSnapshotsRequest) => Promise<void>;
@@ -79,18 +79,19 @@ export namespace GetNetworkPeersResponse {
79
79
  }
80
80
  }
81
81
  export interface SubscribeToPartiesRequest {
82
+ partyKeys?: ReturnType<(typeof substitutions)["dxos.halo.keys.PubKey"]["decode"]>[];
82
83
  }
83
84
  export interface SubscribeToPartiesResponse {
84
85
  parties?: SubscribeToPartiesResponse.PartyInfo[];
85
86
  }
86
87
  export namespace SubscribeToPartiesResponse {
87
88
  export interface PartyInfo {
88
- key?: string;
89
+ key?: ReturnType<(typeof substitutions)["dxos.halo.keys.PubKey"]["decode"]>;
89
90
  isOpen?: boolean;
90
91
  isActive?: boolean;
91
- feedKeys?: number;
92
- properties?: Partial<Record<string, string>>;
93
92
  timeframe?: ReturnType<(typeof substitutions)["dxos.echo.timeframe.TimeframeVector"]["decode"]>;
93
+ feeds?: ReturnType<(typeof substitutions)["dxos.halo.keys.PubKey"]["decode"]>[];
94
+ properties?: Partial<Record<string, string>>;
94
95
  }
95
96
  }
96
97
  export interface SubscribeToItemsRequest {
@@ -99,25 +100,28 @@ export interface SubscribeToItemsResponse {
99
100
  data?: string;
100
101
  }
101
102
  export interface SubscribeToFeedsRequest {
103
+ partyKey?: ReturnType<(typeof substitutions)["dxos.halo.keys.PubKey"]["decode"]>;
104
+ feedKeys?: ReturnType<(typeof substitutions)["dxos.halo.keys.PubKey"]["decode"]>[];
102
105
  }
103
106
  export interface SubscribeToFeedsResponse {
104
- parties?: SubscribeToFeedsResponse.Party[];
107
+ feeds?: SubscribeToFeedsResponse.Feed[];
105
108
  }
106
109
  export namespace SubscribeToFeedsResponse {
107
- export interface Party {
108
- key?: ReturnType<(typeof substitutions)["dxos.halo.keys.PubKey"]["decode"]>;
109
- feeds?: ReturnType<(typeof substitutions)["dxos.halo.keys.PubKey"]["decode"]>[];
110
+ export interface Feed {
111
+ feedKey?: ReturnType<(typeof substitutions)["dxos.halo.keys.PubKey"]["decode"]>;
112
+ length?: number;
110
113
  }
111
114
  }
112
- export interface SubscribeToFeedRequest {
115
+ export interface SubscribeToFeedBlocksRequest {
113
116
  partyKey?: ReturnType<(typeof substitutions)["dxos.halo.keys.PubKey"]["decode"]>;
114
117
  feedKey?: ReturnType<(typeof substitutions)["dxos.halo.keys.PubKey"]["decode"]>;
118
+ maxBlocks?: number;
115
119
  }
116
- export interface SubscribeToFeedResponse {
117
- blocks?: SubscribeToFeedResponse.EchoFeedBlock[];
120
+ export interface SubscribeToFeedBlocksResponse {
121
+ blocks?: SubscribeToFeedBlocksResponse.Block[];
118
122
  }
119
- export namespace SubscribeToFeedResponse {
120
- export interface EchoFeedBlock {
123
+ export namespace SubscribeToFeedBlocksResponse {
124
+ export interface Block {
121
125
  key?: Uint8Array;
122
126
  seq?: number;
123
127
  sync?: boolean;
@@ -193,10 +197,10 @@ export namespace SubscribeToSwarmInfoResponse {
193
197
  }
194
198
  }
195
199
  }
196
- export interface SetTracingOptionsRequest {
197
- enable?: boolean;
198
- }
199
200
  export interface TracingService {
200
201
  setTracingOptions: (request: SetTracingOptionsRequest) => Promise<void>;
201
202
  subscribeToRpcTrace: (request: void) => Stream<dxos_rpc.RpcMessage>;
202
203
  }
204
+ export interface SetTracingOptionsRequest {
205
+ enable?: boolean;
206
+ }
@@ -13,14 +13,14 @@ import * as dxos_halo_keys from "../dxos/halo/keys";
13
13
  import * as dxos_rpc from "../dxos/rpc";
14
14
  export interface Empty {
15
15
  }
16
- export interface Timestamp {
17
- seconds?: string;
18
- nanos?: number;
19
- }
20
16
  export interface Any {
21
17
  type_url?: string;
22
18
  value?: Uint8Array;
23
19
  }
20
+ export interface Timestamp {
21
+ seconds?: string;
22
+ nanos?: number;
23
+ }
24
24
  export interface FileDescriptorSet {
25
25
  file?: FileDescriptorProto[];
26
26
  }