@peerbit/rpc 1.0.14 → 2.0.0
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.
- package/lib/esm/controller.d.ts +8 -12
- package/lib/esm/controller.js +3 -3
- package/lib/esm/controller.js.map +1 -1
- package/package.json +6 -6
- package/src/controller.ts +10 -11
package/lib/esm/controller.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
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 {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
export type SearchContext = (() => Address) | AbstractProgram;
|
|
4
|
+
import { Address } from "@peerbit/program";
|
|
5
|
+
import { DataEvent } from "@peerbit/pubsub-interface";
|
|
6
|
+
import { Program } from "@peerbit/program";
|
|
7
|
+
export type SearchContext = (() => Address) | Program;
|
|
9
8
|
export type CanRead = (key?: PublicSignKey) => Promise<boolean> | boolean;
|
|
10
9
|
export type RPCSetupOptions<Q, R> = {
|
|
11
10
|
topic: string;
|
|
@@ -20,7 +19,7 @@ export type QueryContext = {
|
|
|
20
19
|
address: string;
|
|
21
20
|
};
|
|
22
21
|
export type ResponseHandler<Q, R> = (query: Q, context: QueryContext) => Promise<R | undefined> | R | undefined;
|
|
23
|
-
export declare class RPC<Q, R> extends
|
|
22
|
+
export declare class RPC<Q, R> extends Program<RPCSetupOptions<Q, R>> {
|
|
24
23
|
canRead: CanRead;
|
|
25
24
|
private _subscribed;
|
|
26
25
|
private _responseHandler?;
|
|
@@ -35,14 +34,11 @@ export declare class RPC<Q, R> extends ComposableProgram<RPCSetupOptions<Q, R>>
|
|
|
35
34
|
private _getRequestValueFn;
|
|
36
35
|
open(args: RPCSetupOptions<Q, R>): Promise<void>;
|
|
37
36
|
private _close;
|
|
38
|
-
close(from?:
|
|
39
|
-
drop(from?:
|
|
37
|
+
close(from?: Program): Promise<boolean>;
|
|
38
|
+
drop(from?: Program): Promise<boolean>;
|
|
40
39
|
private _subscribing;
|
|
41
40
|
private _subscribe;
|
|
42
|
-
_onMessage(evt: CustomEvent<
|
|
43
|
-
data: PubSubData;
|
|
44
|
-
message: DataMessage;
|
|
45
|
-
}>): Promise<void>;
|
|
41
|
+
_onMessage(evt: CustomEvent<DataEvent>): Promise<void>;
|
|
46
42
|
private seal;
|
|
47
43
|
private getPublishOptions;
|
|
48
44
|
/**
|
package/lib/esm/controller.js
CHANGED
|
@@ -8,7 +8,7 @@ import { BorshError, deserialize, serialize, variant, } from "@dao-xyz/borsh";
|
|
|
8
8
|
import { DecryptedThing, toBase64, AccessError, X25519Keypair, } from "@peerbit/crypto";
|
|
9
9
|
import { RequestV0, ResponseV0, RPCMessage } from "./encoding.js";
|
|
10
10
|
import { logger } from "./io.js";
|
|
11
|
-
import {
|
|
11
|
+
import { Program } from "@peerbit/program";
|
|
12
12
|
import pDefer from "p-defer";
|
|
13
13
|
import { waitFor } from "@peerbit/time";
|
|
14
14
|
const createValueResolver = (type) => {
|
|
@@ -19,7 +19,7 @@ const createValueResolver = (type) => {
|
|
|
19
19
|
return (decrypted) => decrypted.getValue(type);
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
|
-
export let RPC = class RPC extends
|
|
22
|
+
export let RPC = class RPC extends Program {
|
|
23
23
|
canRead;
|
|
24
24
|
_subscribed = false;
|
|
25
25
|
_responseHandler;
|
|
@@ -79,7 +79,7 @@ export let RPC = class RPC extends ComposableProgram {
|
|
|
79
79
|
this._subscribing = this.node.services.pubsub
|
|
80
80
|
.subscribe(this.rpcTopic, { data: this._subscriptionMetaData })
|
|
81
81
|
.then(() => {
|
|
82
|
-
this.node.services.pubsub.addEventListener("data", this._onMessageBinded);
|
|
82
|
+
return this.node.services.pubsub.addEventListener("data", this._onMessageBinded);
|
|
83
83
|
});
|
|
84
84
|
await this._subscribing;
|
|
85
85
|
await this.node.services.pubsub.requestSubscribers(this.rpcTopic);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/controller.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAEN,UAAU,EACV,WAAW,EACX,SAAS,EACT,OAAO,GACP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,cAAc,EAGd,QAAQ,EACR,WAAW,EAEX,aAAa,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAc,MAAM,EAA+B,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/controller.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
|
+
"version": "2.0.0",
|
|
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.5",
|
|
35
|
-
"@peerbit/crypto": "1.0.
|
|
35
|
+
"@peerbit/crypto": "1.0.4",
|
|
36
36
|
"@peerbit/logger": "1.0.1",
|
|
37
|
-
"@peerbit/program": "
|
|
38
|
-
"@peerbit/time": "1.0.
|
|
37
|
+
"@peerbit/program": "2.0.0",
|
|
38
|
+
"@peerbit/time": "1.0.2"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@peerbit/test-utils": "^1.0.
|
|
41
|
+
"@peerbit/test-utils": "^1.0.14"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "32f61ad9f3d5906e13d46f2a80f61c1826a3e817"
|
|
44
44
|
}
|
package/src/controller.ts
CHANGED
|
@@ -16,17 +16,18 @@ import {
|
|
|
16
16
|
} from "@peerbit/crypto";
|
|
17
17
|
import { RequestV0, ResponseV0, RPCMessage } from "./encoding.js";
|
|
18
18
|
import { RPCOptions, logger, RPCResponse, PublishOptions } from "./io.js";
|
|
19
|
-
import {
|
|
19
|
+
import { Address } from "@peerbit/program";
|
|
20
20
|
import {
|
|
21
|
+
DataEvent,
|
|
21
22
|
PubSubData,
|
|
22
23
|
PublishOptions as PubSubPublishOptions,
|
|
23
24
|
} from "@peerbit/pubsub-interface";
|
|
24
|
-
import {
|
|
25
|
+
import { Program } from "@peerbit/program";
|
|
25
26
|
import { DataMessage } from "@peerbit/stream-interface";
|
|
26
27
|
import pDefer, { DeferredPromise } from "p-defer";
|
|
27
28
|
import { waitFor } from "@peerbit/time";
|
|
28
29
|
|
|
29
|
-
export type SearchContext = (() => Address) |
|
|
30
|
+
export type SearchContext = (() => Address) | Program;
|
|
30
31
|
export type CanRead = (key?: PublicSignKey) => Promise<boolean> | boolean;
|
|
31
32
|
|
|
32
33
|
export type RPCSetupOptions<Q, R> = {
|
|
@@ -57,7 +58,7 @@ const createValueResolver = <T>(
|
|
|
57
58
|
};
|
|
58
59
|
|
|
59
60
|
@variant("rpc")
|
|
60
|
-
export class RPC<Q, R> extends
|
|
61
|
+
export class RPC<Q, R> extends Program<RPCSetupOptions<Q, R>> {
|
|
61
62
|
canRead: CanRead;
|
|
62
63
|
|
|
63
64
|
private _subscribed = false;
|
|
@@ -93,7 +94,7 @@ export class RPC<Q, R> extends ComposableProgram<RPCSetupOptions<Q, R>> {
|
|
|
93
94
|
await this._subscribe();
|
|
94
95
|
}
|
|
95
96
|
|
|
96
|
-
private async _close(from?:
|
|
97
|
+
private async _close(from?: Program): Promise<void> {
|
|
97
98
|
if (this._subscribed) {
|
|
98
99
|
await this.node.services.pubsub.unsubscribe(this.rpcTopic);
|
|
99
100
|
await this.node.services.pubsub.removeEventListener(
|
|
@@ -103,7 +104,7 @@ export class RPC<Q, R> extends ComposableProgram<RPCSetupOptions<Q, R>> {
|
|
|
103
104
|
this._subscribed = false;
|
|
104
105
|
}
|
|
105
106
|
}
|
|
106
|
-
public async close(from?:
|
|
107
|
+
public async close(from?: Program): Promise<boolean> {
|
|
107
108
|
const superClosed = await super.close(from);
|
|
108
109
|
if (!superClosed) {
|
|
109
110
|
return false;
|
|
@@ -112,7 +113,7 @@ export class RPC<Q, R> extends ComposableProgram<RPCSetupOptions<Q, R>> {
|
|
|
112
113
|
return true;
|
|
113
114
|
}
|
|
114
115
|
|
|
115
|
-
public async drop(from?:
|
|
116
|
+
public async drop(from?: Program): Promise<boolean> {
|
|
116
117
|
const superDropped = await super.drop(from);
|
|
117
118
|
if (!superDropped) {
|
|
118
119
|
return false;
|
|
@@ -132,7 +133,7 @@ export class RPC<Q, R> extends ComposableProgram<RPCSetupOptions<Q, R>> {
|
|
|
132
133
|
this._subscribing = this.node.services.pubsub
|
|
133
134
|
.subscribe(this.rpcTopic, { data: this._subscriptionMetaData })
|
|
134
135
|
.then(() => {
|
|
135
|
-
this.node.services.pubsub.addEventListener(
|
|
136
|
+
return this.node.services.pubsub.addEventListener(
|
|
136
137
|
"data",
|
|
137
138
|
this._onMessageBinded!
|
|
138
139
|
);
|
|
@@ -144,9 +145,7 @@ export class RPC<Q, R> extends ComposableProgram<RPCSetupOptions<Q, R>> {
|
|
|
144
145
|
logger.debug("subscribing to query topic (responses): " + this.rpcTopic);
|
|
145
146
|
}
|
|
146
147
|
|
|
147
|
-
async _onMessage(
|
|
148
|
-
evt: CustomEvent<{ data: PubSubData; message: DataMessage }>
|
|
149
|
-
): Promise<void> {
|
|
148
|
+
async _onMessage(evt: CustomEvent<DataEvent>): Promise<void> {
|
|
150
149
|
const { data, message } = evt.detail;
|
|
151
150
|
|
|
152
151
|
if (data?.topics.find((x) => x === this.rpcTopic) != null) {
|