@peerbit/rpc 3.0.6 → 3.0.8

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,7 +1,6 @@
1
1
  import { AbstractType } from "@dao-xyz/borsh";
2
2
  import { PublicSignKey } from "@peerbit/crypto";
3
3
  import { RPCOptions, RPCResponse, PublishOptions } from "./io.js";
4
- import { DataEvent } from "@peerbit/pubsub-interface";
5
4
  import { Program } from "@peerbit/program";
6
5
  export type RPCSetupOptions<Q, R> = {
7
6
  topic: string;
@@ -32,7 +31,7 @@ export declare class RPC<Q, R> extends Program<RPCSetupOptions<Q, R>> {
32
31
  drop(from?: Program): Promise<boolean>;
33
32
  private _subscribing;
34
33
  subscribe(): Promise<void>;
35
- _onMessage(evt: CustomEvent<DataEvent>): Promise<void>;
34
+ private _onMessage;
36
35
  private seal;
37
36
  private getPublishOptions;
38
37
  /**
@@ -49,6 +48,6 @@ export declare class RPC<Q, R> extends Program<RPCSetupOptions<Q, R>> {
49
48
  * @returns
50
49
  */
51
50
  request(request: Q, options?: RPCOptions<R>): Promise<RPCResponse<R>[]>;
52
- get rpcTopic(): string;
51
+ get topic(): string;
53
52
  getTopics(): string[];
54
53
  }
@@ -9,6 +9,7 @@ import { DecryptedThing, toBase64, AccessError, X25519Keypair } from "@peerbit/c
9
9
  import { RequestV0, ResponseV0, RPCMessage } from "./encoding.js";
10
10
  import { logger } from "./io.js";
11
11
  import { Program } from "@peerbit/program";
12
+ import { SilentDelivery, deliveryModeHasReceiver } from "@peerbit/stream-interface";
12
13
  import pDefer from "p-defer";
13
14
  import { waitFor } from "@peerbit/time";
14
15
  const createValueResolver = (type) => {
@@ -45,7 +46,7 @@ let RPC = class RPC extends Program {
45
46
  }
46
47
  async _close(from) {
47
48
  if (this._subscribed) {
48
- await this.node.services.pubsub.unsubscribe(this.rpcTopic);
49
+ await this.node.services.pubsub.unsubscribe(this.topic);
49
50
  await this.node.services.pubsub.removeEventListener("data", this._onMessageBinded);
50
51
  this._subscribed = false;
51
52
  }
@@ -75,13 +76,13 @@ let RPC = class RPC extends Program {
75
76
  this._subscribed = true;
76
77
  this._onMessageBinded = this._onMessageBinded || this._onMessage.bind(this);
77
78
  this.node.services.pubsub.addEventListener("data", this._onMessageBinded);
78
- this._subscribing = this.node.services.pubsub.subscribe(this.rpcTopic);
79
+ this._subscribing = this.node.services.pubsub.subscribe(this.topic);
79
80
  await this._subscribing;
80
- logger.debug("subscribing to query topic (responses): " + this.rpcTopic);
81
+ logger.debug("subscribing to query topic (responses): " + this.topic);
81
82
  }
82
83
  async _onMessage(evt) {
83
84
  const { data, message } = evt.detail;
84
- if (data?.topics.find((x) => x === this.rpcTopic) != null) {
85
+ if (data?.topics.find((x) => x === this.topic) != null) {
85
86
  try {
86
87
  const rpcMessage = deserialize(data.data, RPCMessage);
87
88
  if (rpcMessage instanceof RequestV0) {
@@ -108,8 +109,12 @@ let RPC = class RPC extends Program {
108
109
  response: maybeEncryptedMessage,
109
110
  requestId: message.id
110
111
  })), {
111
- topics: [this.rpcTopic],
112
- to: [message.header.signatures.publicKeys[0]]
112
+ topics: [this.topic],
113
+ /// TODO make redundancy parameter configurable?
114
+ mode: new SilentDelivery({
115
+ to: [message.header.signatures.publicKeys[0]],
116
+ redundancy: 1
117
+ })
113
118
  });
114
119
  }
115
120
  }
@@ -159,13 +164,10 @@ let RPC = class RPC extends Program {
159
164
  return requestMessage;
160
165
  }
161
166
  getPublishOptions(options) {
162
- return options?.to
163
- ? {
164
- mode: options?.mode,
165
- to: options.to,
166
- topics: [this.rpcTopic]
167
- }
168
- : { mode: options?.mode, topics: [this.rpcTopic] };
167
+ return {
168
+ mode: options?.mode,
169
+ topics: [this.topic]
170
+ };
169
171
  }
170
172
  /**
171
173
  * Send message and don't expect any response
@@ -238,8 +240,8 @@ let RPC = class RPC extends Program {
238
240
  timeoutFn = setTimeout(() => {
239
241
  deferredPromise.resolve();
240
242
  }, options?.timeout || 10 * 1000);
241
- const expectedResponders = options?.to && options.to.length > 0
242
- ? new Set(options.to.map((x) => (typeof x === "string" ? x : x.hashcode())))
243
+ const expectedResponders = options?.mode && deliveryModeHasReceiver(options.mode)
244
+ ? new Set(options.mode.to)
243
245
  : undefined;
244
246
  const responders = new Set();
245
247
  const id = toBase64(await this.node.services.pubsub.publish(requestBytes, this.getPublishOptions(options)));
@@ -259,14 +261,14 @@ let RPC = class RPC extends Program {
259
261
  this._responseResolver.delete(id);
260
262
  return allResults;
261
263
  }
262
- get rpcTopic() {
264
+ get topic() {
263
265
  if (!this._rpcTopic) {
264
266
  throw new Error("Not initialized");
265
267
  }
266
268
  return this._rpcTopic;
267
269
  }
268
270
  getTopics() {
269
- return [this.rpcTopic];
271
+ return [this.topic];
270
272
  }
271
273
  };
272
274
  RPC = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/controller.ts"],"names":[],"mappings":"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"}
package/lib/esm/io.d.ts CHANGED
@@ -5,7 +5,6 @@ export type RPCOptions<R> = {
5
5
  amount?: number;
6
6
  timeout?: number;
7
7
  isTrusted?: (publicKey: PublicSignKey) => Promise<boolean>;
8
- strict?: boolean;
9
8
  onResponse?: (response: R, from?: PublicSignKey) => void;
10
9
  stopper?: (stopper: () => void) => void;
11
10
  } & PublishOptions;
@@ -14,7 +13,6 @@ export type PublishOptions = {
14
13
  key: X25519Keypair;
15
14
  responders?: (X25519PublicKey | Ed25519PublicKey)[];
16
15
  };
17
- to?: PublicSignKey[] | string[];
18
16
  strict?: boolean;
19
17
  mode?: DeliveryMode;
20
18
  };
package/lib/esm/utils.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { SilentDelivery } from "@peerbit/stream-interface";
1
2
  export class MissingResponsesError extends Error {
2
3
  constructor(message) {
3
4
  super(message);
@@ -23,7 +24,7 @@ export const queryAll = (rpc, groups, request, responseHandler, options) => {
23
24
  if (peersToQuery.length > 0) {
24
25
  const results = await rpc.request(request, {
25
26
  ...options,
26
- to: peersToQuery
27
+ mode: new SilentDelivery({ to: peersToQuery, redundancy: 1 }) // TODO configuration redundancy?
27
28
  });
28
29
  for (const result of results) {
29
30
  if (!result.from) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/rpc",
3
- "version": "3.0.6",
3
+ "version": "3.0.8",
4
4
  "description": "RPC calls for peers",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -32,13 +32,13 @@
32
32
  "license": "MIT",
33
33
  "dependencies": {
34
34
  "@dao-xyz/borsh": "^5.1.8",
35
- "@peerbit/crypto": "2.1.0",
35
+ "@peerbit/crypto": "2.1.1",
36
36
  "@peerbit/logger": "1.0.2",
37
- "@peerbit/program": "3.0.5",
38
- "@peerbit/time": "2.0.0"
37
+ "@peerbit/program": "3.0.6",
38
+ "@peerbit/time": "2.0.1"
39
39
  },
40
40
  "devDependencies": {
41
- "@peerbit/test-utils": "^2.0.6"
41
+ "@peerbit/test-utils": "^2.0.8"
42
42
  },
43
- "gitHead": "c88b8601709962f01398be6c9e81f05f3daa3654"
43
+ "gitHead": "49199539ce93c306bcc1e2055b3b11b66b886d89"
44
44
  }
package/src/controller.ts CHANGED
@@ -21,7 +21,11 @@ import {
21
21
  PublishOptions as PubSubPublishOptions
22
22
  } from "@peerbit/pubsub-interface";
23
23
  import { Program } from "@peerbit/program";
24
- import { DataMessage } from "@peerbit/stream-interface";
24
+ import {
25
+ DataMessage,
26
+ SilentDelivery,
27
+ deliveryModeHasReceiver
28
+ } from "@peerbit/stream-interface";
25
29
  import pDefer, { DeferredPromise } from "p-defer";
26
30
  import { waitFor } from "@peerbit/time";
27
31
 
@@ -84,7 +88,7 @@ export class RPC<Q, R> extends Program<RPCSetupOptions<Q, R>> {
84
88
 
85
89
  private async _close(from?: Program): Promise<void> {
86
90
  if (this._subscribed) {
87
- await this.node.services.pubsub.unsubscribe(this.rpcTopic);
91
+ await this.node.services.pubsub.unsubscribe(this.topic);
88
92
  await this.node.services.pubsub.removeEventListener(
89
93
  "data",
90
94
  this._onMessageBinded
@@ -123,16 +127,16 @@ export class RPC<Q, R> extends Program<RPCSetupOptions<Q, R>> {
123
127
 
124
128
  this.node.services.pubsub.addEventListener("data", this._onMessageBinded!);
125
129
 
126
- this._subscribing = this.node.services.pubsub.subscribe(this.rpcTopic);
130
+ this._subscribing = this.node.services.pubsub.subscribe(this.topic);
127
131
 
128
132
  await this._subscribing;
129
- logger.debug("subscribing to query topic (responses): " + this.rpcTopic);
133
+ logger.debug("subscribing to query topic (responses): " + this.topic);
130
134
  }
131
135
 
132
- async _onMessage(evt: CustomEvent<DataEvent>): Promise<void> {
136
+ private async _onMessage(evt: CustomEvent<DataEvent>): Promise<void> {
133
137
  const { data, message } = evt.detail;
134
138
 
135
- if (data?.topics.find((x) => x === this.rpcTopic) != null) {
139
+ if (data?.topics.find((x) => x === this.topic) != null) {
136
140
  try {
137
141
  const rpcMessage = deserialize(data.data, RPCMessage);
138
142
  if (rpcMessage instanceof RequestV0) {
@@ -176,8 +180,13 @@ export class RPC<Q, R> extends Program<RPCSetupOptions<Q, R>> {
176
180
  })
177
181
  ),
178
182
  {
179
- topics: [this.rpcTopic],
180
- to: [message.header.signatures!.publicKeys[0]]
183
+ topics: [this.topic],
184
+
185
+ /// TODO make redundancy parameter configurable?
186
+ mode: new SilentDelivery({
187
+ to: [message.header.signatures!.publicKeys[0]],
188
+ redundancy: 1
189
+ })
181
190
  }
182
191
  );
183
192
  }
@@ -246,13 +255,10 @@ export class RPC<Q, R> extends Program<RPCSetupOptions<Q, R>> {
246
255
  }
247
256
 
248
257
  private getPublishOptions(options?: PublishOptions): PubSubPublishOptions {
249
- return options?.to
250
- ? {
251
- mode: options?.mode,
252
- to: options.to,
253
- topics: [this.rpcTopic]
254
- }
255
- : { mode: options?.mode, topics: [this.rpcTopic] };
258
+ return {
259
+ mode: options?.mode,
260
+ topics: [this.topic]
261
+ };
256
262
  }
257
263
 
258
264
  /**
@@ -358,10 +364,8 @@ export class RPC<Q, R> extends Program<RPCSetupOptions<Q, R>> {
358
364
  );
359
365
 
360
366
  const expectedResponders =
361
- options?.to && options.to.length > 0
362
- ? new Set(
363
- options.to.map((x) => (typeof x === "string" ? x : x.hashcode()))
364
- )
367
+ options?.mode && deliveryModeHasReceiver(options.mode)
368
+ ? new Set(options.mode.to)
365
369
  : undefined;
366
370
 
367
371
  const responders = new Set<string>();
@@ -401,7 +405,7 @@ export class RPC<Q, R> extends Program<RPCSetupOptions<Q, R>> {
401
405
  return allResults;
402
406
  }
403
407
 
404
- public get rpcTopic(): string {
408
+ public get topic(): string {
405
409
  if (!this._rpcTopic) {
406
410
  throw new Error("Not initialized");
407
411
  }
@@ -409,6 +413,6 @@ export class RPC<Q, R> extends Program<RPCSetupOptions<Q, R>> {
409
413
  }
410
414
 
411
415
  getTopics(): string[] {
412
- return [this.rpcTopic];
416
+ return [this.topic];
413
417
  }
414
418
  }
package/src/io.ts CHANGED
@@ -12,7 +12,6 @@ export type RPCOptions<R> = {
12
12
  amount?: number;
13
13
  timeout?: number;
14
14
  isTrusted?: (publicKey: PublicSignKey) => Promise<boolean>;
15
- strict?: boolean;
16
15
  onResponse?: (response: R, from?: PublicSignKey) => void;
17
16
  stopper?: (stopper: () => void) => void;
18
17
  } & PublishOptions;
@@ -22,7 +21,6 @@ export type PublishOptions = {
22
21
  key: X25519Keypair;
23
22
  responders?: (X25519PublicKey | Ed25519PublicKey)[];
24
23
  };
25
- to?: PublicSignKey[] | string[];
26
24
  strict?: boolean;
27
25
  mode?: DeliveryMode;
28
26
  };
package/src/utils.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { SilentDelivery } from "@peerbit/stream-interface";
1
2
  import { RPC } from "./controller";
2
3
  import { RPCOptions, RPCResponse } from "./io";
3
4
  export class MissingResponsesError extends Error {
@@ -34,7 +35,7 @@ export const queryAll = <Q, R>(
34
35
  if (peersToQuery.length > 0) {
35
36
  const results = await rpc.request(request, {
36
37
  ...options,
37
- to: peersToQuery
38
+ mode: new SilentDelivery({ to: peersToQuery, redundancy: 1 }) // TODO configuration redundancy?
38
39
  });
39
40
 
40
41
  for (const result of results) {