@libp2p/daemon-client 7.0.2 → 8.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/README.md +1 -1
- package/dist/index.min.js +4 -4
- package/dist/src/dht.d.ts +1 -2
- package/dist/src/dht.d.ts.map +1 -1
- package/dist/src/dht.js +34 -70
- package/dist/src/dht.js.map +1 -1
- package/dist/src/index.d.ts +5 -8
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +22 -39
- package/dist/src/index.js.map +1 -1
- package/dist/src/pubsub.d.ts +1 -1
- package/dist/src/pubsub.d.ts.map +1 -1
- package/dist/src/pubsub.js +10 -30
- package/dist/src/pubsub.js.map +1 -1
- package/package.json +16 -12
- package/src/dht.ts +35 -88
- package/src/index.ts +30 -58
- package/src/pubsub.ts +11 -41
package/dist/src/dht.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { type PeerId } from '@libp2p/interface
|
|
1
|
+
import { type PeerId, type PeerInfo } from '@libp2p/interface';
|
|
2
2
|
import { CID } from 'multiformats/cid';
|
|
3
3
|
import type { DaemonClient } from './index.js';
|
|
4
|
-
import type { PeerInfo } from '@libp2p/interface/peer-info';
|
|
5
4
|
export declare class DHT {
|
|
6
5
|
private readonly client;
|
|
7
6
|
constructor(client: DaemonClient);
|
package/dist/src/dht.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dht.d.ts","sourceRoot":"","sources":["../../src/dht.ts"],"names":[],"mappings":"AAOA,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"dht.d.ts","sourceRoot":"","sources":["../../src/dht.ts"],"names":[],"mappings":"AAOA,OAAO,EAAY,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAIxE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAI9C,qBAAa,GAAG;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAExB,MAAM,EAAE,YAAY;IAIjC;;OAEG;IACG,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B7D;;OAEG;IACG,GAAG,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IA4BhD;;OAEG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA+BlD;;OAEG;IACG,OAAO,CAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvC;;OAEG;IACK,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,KAAK,GAAE,MAAU,GAAG,aAAa,CAAC,QAAQ,CAAC;IA6C5E;;OAEG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC;IA8ClE;;OAEG;IACG,YAAY,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;CA2BrE"}
|
package/dist/src/dht.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Request, Response, DHTRequest, DHTResponse } from '@libp2p/daemon-protocol';
|
|
2
|
-
import { CodeError } from '@libp2p/interface
|
|
3
|
-
import { isPeerId } from '@libp2p/interface
|
|
2
|
+
import { CodeError } from '@libp2p/interface';
|
|
3
|
+
import { isPeerId } from '@libp2p/interface';
|
|
4
|
+
import { logger } from '@libp2p/logger';
|
|
4
5
|
import { peerIdFromBytes } from '@libp2p/peer-id';
|
|
5
6
|
import { multiaddr } from '@multiformats/multiaddr';
|
|
6
7
|
import { CID } from 'multiformats/cid';
|
|
8
|
+
const log = logger('libp2p:daemon-client:dht');
|
|
7
9
|
export class DHT {
|
|
8
10
|
client;
|
|
9
11
|
constructor(client) {
|
|
@@ -27,12 +29,9 @@ export class DHT {
|
|
|
27
29
|
value
|
|
28
30
|
}
|
|
29
31
|
});
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
const response = Response.decode(message);
|
|
35
|
-
await sh.close();
|
|
32
|
+
const response = await sh.read(Response);
|
|
33
|
+
log('read', response);
|
|
34
|
+
await sh.unwrap().close();
|
|
36
35
|
if (response.type !== Response.Type.OK) {
|
|
37
36
|
throw new CodeError(response.error?.msg ?? 'DHT put failed', 'ERR_DHT_PUT_FAILED');
|
|
38
37
|
}
|
|
@@ -51,12 +50,8 @@ export class DHT {
|
|
|
51
50
|
key
|
|
52
51
|
}
|
|
53
52
|
});
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
57
|
-
}
|
|
58
|
-
const response = Response.decode(message);
|
|
59
|
-
await sh.close();
|
|
53
|
+
const response = await sh.read(Response);
|
|
54
|
+
await sh.unwrap().close();
|
|
60
55
|
if (response.type !== Response.Type.OK) {
|
|
61
56
|
throw new CodeError(response.error?.msg ?? 'DHT get failed', 'ERR_DHT_GET_FAILED');
|
|
62
57
|
}
|
|
@@ -79,12 +74,8 @@ export class DHT {
|
|
|
79
74
|
peer: peerId.toBytes()
|
|
80
75
|
}
|
|
81
76
|
});
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
85
|
-
}
|
|
86
|
-
const response = Response.decode(message);
|
|
87
|
-
await sh.close();
|
|
77
|
+
const response = await sh.read(Response);
|
|
78
|
+
await sh.unwrap().close();
|
|
88
79
|
if (response.type !== Response.Type.OK) {
|
|
89
80
|
throw new CodeError(response.error?.msg ?? 'DHT find peer failed', 'ERR_DHT_FIND_PEER_FAILED');
|
|
90
81
|
}
|
|
@@ -93,8 +84,7 @@ export class DHT {
|
|
|
93
84
|
}
|
|
94
85
|
return {
|
|
95
86
|
id: peerIdFromBytes(response.dht.peer.id),
|
|
96
|
-
multiaddrs: response.dht.peer.addrs.map((a) => multiaddr(a))
|
|
97
|
-
protocols: []
|
|
87
|
+
multiaddrs: response.dht.peer.addrs.map((a) => multiaddr(a))
|
|
98
88
|
};
|
|
99
89
|
}
|
|
100
90
|
/**
|
|
@@ -111,12 +101,8 @@ export class DHT {
|
|
|
111
101
|
cid: cid.bytes
|
|
112
102
|
}
|
|
113
103
|
});
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
117
|
-
}
|
|
118
|
-
const response = Response.decode(message);
|
|
119
|
-
await sh.close();
|
|
104
|
+
const response = await sh.read(Response);
|
|
105
|
+
await sh.unwrap().close();
|
|
120
106
|
if (response.type !== Response.Type.OK) {
|
|
121
107
|
throw new CodeError(response.error?.msg ?? 'DHT provide failed', 'ERR_DHT_PROVIDE_FAILED');
|
|
122
108
|
}
|
|
@@ -136,38 +122,29 @@ export class DHT {
|
|
|
136
122
|
count
|
|
137
123
|
}
|
|
138
124
|
});
|
|
139
|
-
let message = await sh.read();
|
|
140
|
-
if (message == null) {
|
|
141
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
142
|
-
}
|
|
143
125
|
// stream begin message
|
|
144
|
-
const response =
|
|
126
|
+
const response = await sh.read(Response);
|
|
145
127
|
if (response.type !== Response.Type.OK) {
|
|
146
|
-
await sh.close();
|
|
128
|
+
await sh.unwrap().close();
|
|
147
129
|
throw new CodeError(response.error?.msg ?? 'DHT find providers failed', 'ERR_DHT_FIND_PROVIDERS_FAILED');
|
|
148
130
|
}
|
|
149
131
|
while (true) {
|
|
150
|
-
|
|
151
|
-
if (message == null) {
|
|
152
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
153
|
-
}
|
|
154
|
-
const response = DHTResponse.decode(message);
|
|
132
|
+
const dhtResponse = await sh.read(DHTResponse);
|
|
155
133
|
// Stream end
|
|
156
|
-
if (
|
|
157
|
-
await sh.close();
|
|
134
|
+
if (dhtResponse.type === DHTResponse.Type.END) {
|
|
135
|
+
await sh.unwrap().close();
|
|
158
136
|
return;
|
|
159
137
|
}
|
|
160
138
|
// Stream values
|
|
161
|
-
if (
|
|
139
|
+
if (dhtResponse.type === DHTResponse.Type.VALUE && dhtResponse.peer != null && dhtResponse.peer?.addrs != null) {
|
|
162
140
|
yield {
|
|
163
|
-
id: peerIdFromBytes(
|
|
164
|
-
multiaddrs:
|
|
165
|
-
protocols: []
|
|
141
|
+
id: peerIdFromBytes(dhtResponse.peer.id),
|
|
142
|
+
multiaddrs: dhtResponse.peer.addrs.map((a) => multiaddr(a))
|
|
166
143
|
};
|
|
167
144
|
}
|
|
168
145
|
else {
|
|
169
146
|
// Unexpected message received
|
|
170
|
-
await sh.close();
|
|
147
|
+
await sh.unwrap().close();
|
|
171
148
|
throw new CodeError('unexpected message received', 'ERR_UNEXPECTED_MESSAGE_RECEIVED');
|
|
172
149
|
}
|
|
173
150
|
}
|
|
@@ -187,38 +164,29 @@ export class DHT {
|
|
|
187
164
|
}
|
|
188
165
|
});
|
|
189
166
|
// stream begin message
|
|
190
|
-
|
|
191
|
-
if (message == null) {
|
|
192
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
193
|
-
}
|
|
194
|
-
const response = Response.decode(message);
|
|
167
|
+
const response = await sh.read(Response);
|
|
195
168
|
if (response.type !== Response.Type.OK) {
|
|
196
|
-
await sh.close();
|
|
169
|
+
await sh.unwrap().close();
|
|
197
170
|
throw new CodeError(response.error?.msg ?? 'DHT find providers failed', 'ERR_DHT_FIND_PROVIDERS_FAILED');
|
|
198
171
|
}
|
|
199
172
|
while (true) {
|
|
200
|
-
|
|
201
|
-
if (message == null) {
|
|
202
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
203
|
-
}
|
|
204
|
-
const response = DHTResponse.decode(message);
|
|
173
|
+
const dhtResponse = await sh.read(DHTResponse);
|
|
205
174
|
// Stream end
|
|
206
|
-
if (
|
|
207
|
-
await sh.close();
|
|
175
|
+
if (dhtResponse.type === DHTResponse.Type.END) {
|
|
176
|
+
await sh.unwrap().close();
|
|
208
177
|
return;
|
|
209
178
|
}
|
|
210
179
|
// Stream values
|
|
211
|
-
if (
|
|
212
|
-
const peerId = peerIdFromBytes(
|
|
180
|
+
if (dhtResponse.type === DHTResponse.Type.VALUE && dhtResponse.value != null) {
|
|
181
|
+
const peerId = peerIdFromBytes(dhtResponse.value);
|
|
213
182
|
yield {
|
|
214
183
|
id: peerId,
|
|
215
|
-
multiaddrs: []
|
|
216
|
-
protocols: []
|
|
184
|
+
multiaddrs: []
|
|
217
185
|
};
|
|
218
186
|
}
|
|
219
187
|
else {
|
|
220
188
|
// Unexpected message received
|
|
221
|
-
await sh.close();
|
|
189
|
+
await sh.unwrap().close();
|
|
222
190
|
throw new CodeError('unexpected message received', 'ERR_UNEXPECTED_MESSAGE_RECEIVED');
|
|
223
191
|
}
|
|
224
192
|
}
|
|
@@ -237,12 +205,8 @@ export class DHT {
|
|
|
237
205
|
peer: peerId.toBytes()
|
|
238
206
|
}
|
|
239
207
|
});
|
|
240
|
-
const
|
|
241
|
-
|
|
242
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
243
|
-
}
|
|
244
|
-
const response = Response.decode(message);
|
|
245
|
-
await sh.close();
|
|
208
|
+
const response = await sh.read(Response);
|
|
209
|
+
await sh.unwrap().close();
|
|
246
210
|
if (response.type !== Response.Type.OK) {
|
|
247
211
|
throw new CodeError(response.error?.msg ?? 'DHT get public key failed', 'ERR_DHT_GET_PUBLIC_KEY_FAILED');
|
|
248
212
|
}
|
package/dist/src/dht.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dht.js","sourceRoot":"","sources":["../../src/dht.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,UAAU,EACV,WAAW,EACZ,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"dht.js","sourceRoot":"","sources":["../../src/dht.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import { type PSMessage, Request } from '@libp2p/daemon-protocol';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import type { PeerInfo } from '@libp2p/interface/peer-info';
|
|
2
|
+
import { type ProtobufStream } from 'it-protobuf-stream';
|
|
3
|
+
import type { Stream, PeerId, MultiaddrConnection, PeerInfo } from '@libp2p/interface';
|
|
5
4
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
6
|
-
import type { Duplex, Source } from 'it-stream-types';
|
|
7
5
|
import type { CID } from 'multiformats/cid';
|
|
8
|
-
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
9
6
|
export interface IdentifyResult {
|
|
10
7
|
peerId: PeerId;
|
|
11
8
|
addrs: Multiaddr[];
|
|
12
9
|
}
|
|
13
10
|
export interface StreamHandlerFunction {
|
|
14
|
-
(stream:
|
|
11
|
+
(stream: Stream): Promise<void>;
|
|
15
12
|
}
|
|
16
13
|
export interface DHTClient {
|
|
17
14
|
put(key: Uint8Array, value: Uint8Array): Promise<void>;
|
|
@@ -37,8 +34,8 @@ export interface DaemonClient {
|
|
|
37
34
|
connect(peerId: PeerId, addrs: Multiaddr[]): Promise<void>;
|
|
38
35
|
dht: DHTClient;
|
|
39
36
|
pubsub: PubSubClient;
|
|
40
|
-
send(request: Request): Promise<
|
|
41
|
-
openStream(peerId: PeerId, protocol: string): Promise<
|
|
37
|
+
send(request: Request): Promise<ProtobufStream<MultiaddrConnection>>;
|
|
38
|
+
openStream(peerId: PeerId, protocol: string): Promise<MultiaddrConnection>;
|
|
42
39
|
registerStreamHandler(protocol: string, handler: StreamHandlerFunction): Promise<void>;
|
|
43
40
|
}
|
|
44
41
|
export declare function createClient(multiaddr: Multiaddr): DaemonClient;
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,OAAO,EAAwB,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,OAAO,EAAwB,MAAM,yBAAyB,CAAA;AAQvF,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAa,MAAM,mBAAmB,CAAA;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AA6O3C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACzC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC3C,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;CAC1D;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,IAAI,aAAa,CAAC,SAAS,CAAC,CAAA;IACpC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC/C,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC,CAAA;IACnC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1D,GAAG,EAAE,SAAS,CAAA;IACd,MAAM,EAAE,YAAY,CAAA;IAEpB,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACpE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC1E,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvF;AAED,wBAAgB,YAAY,CAAE,SAAS,EAAE,SAAS,GAAG,YAAY,CAEhE"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Request, Response, StreamInfo } from '@libp2p/daemon-protocol';
|
|
2
2
|
import { StreamHandler } from '@libp2p/daemon-protocol/stream-handler';
|
|
3
3
|
import { passThroughUpgrader } from '@libp2p/daemon-protocol/upgrader';
|
|
4
|
-
import { CodeError } from '@libp2p/interface
|
|
5
|
-
import {
|
|
6
|
-
import { logger } from '@libp2p/logger';
|
|
4
|
+
import { CodeError, isPeerId } from '@libp2p/interface';
|
|
5
|
+
import { defaultLogger, logger } from '@libp2p/logger';
|
|
7
6
|
import { peerIdFromBytes } from '@libp2p/peer-id';
|
|
8
7
|
import { tcp } from '@libp2p/tcp';
|
|
9
8
|
import { multiaddr, isMultiaddr } from '@multiformats/multiaddr';
|
|
9
|
+
import { pbStream } from 'it-protobuf-stream';
|
|
10
10
|
import { DHT } from './dht.js';
|
|
11
11
|
import { Pubsub } from './pubsub.js';
|
|
12
12
|
const log = logger('libp2p:daemon-client');
|
|
@@ -17,7 +17,9 @@ class Client {
|
|
|
17
17
|
tcp;
|
|
18
18
|
constructor(addr) {
|
|
19
19
|
this.multiaddr = addr;
|
|
20
|
-
this.tcp = tcp()(
|
|
20
|
+
this.tcp = tcp()({
|
|
21
|
+
logger: defaultLogger()
|
|
22
|
+
});
|
|
21
23
|
this.dht = new DHT(this);
|
|
22
24
|
this.pubsub = new Pubsub(this);
|
|
23
25
|
}
|
|
@@ -43,9 +45,9 @@ class Client {
|
|
|
43
45
|
const maConn = await this.connectDaemon();
|
|
44
46
|
const subtype = request.pubsub?.type ?? request.dht?.type ?? request.peerStore?.type ?? '';
|
|
45
47
|
log('send', request.type, subtype);
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
return
|
|
48
|
+
const pb = pbStream(maConn);
|
|
49
|
+
await pb.write(request, Request);
|
|
50
|
+
return pb;
|
|
49
51
|
}
|
|
50
52
|
/**
|
|
51
53
|
* Connect requests a connection to a known peer on a given set of addresses
|
|
@@ -69,16 +71,12 @@ class Client {
|
|
|
69
71
|
addrs: addrs.map((a) => a.bytes)
|
|
70
72
|
}
|
|
71
73
|
});
|
|
72
|
-
const
|
|
73
|
-
if (message == null) {
|
|
74
|
-
throw new CodeError('unspecified', 'ERR_CONNECT_FAILED');
|
|
75
|
-
}
|
|
76
|
-
const response = Response.decode(message);
|
|
74
|
+
const response = await sh.read(Response);
|
|
77
75
|
if (response.type !== Response.Type.OK) {
|
|
78
76
|
const errResponse = response.error ?? { msg: 'unspecified' };
|
|
79
77
|
throw new CodeError(errResponse.msg ?? 'unspecified', 'ERR_CONNECT_FAILED');
|
|
80
78
|
}
|
|
81
|
-
await sh.close();
|
|
79
|
+
await sh.unwrap().close();
|
|
82
80
|
}
|
|
83
81
|
/**
|
|
84
82
|
* @typedef {object} IdentifyResponse
|
|
@@ -92,11 +90,7 @@ class Client {
|
|
|
92
90
|
const sh = await this.send({
|
|
93
91
|
type: Request.Type.IDENTIFY
|
|
94
92
|
});
|
|
95
|
-
const
|
|
96
|
-
if (message == null) {
|
|
97
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
98
|
-
}
|
|
99
|
-
const response = Response.decode(message);
|
|
93
|
+
const response = await sh.read(Response);
|
|
100
94
|
if (response.type !== Response.Type.OK) {
|
|
101
95
|
throw new CodeError(response.error?.msg ?? 'Identify failed', 'ERR_IDENTIFY_FAILED');
|
|
102
96
|
}
|
|
@@ -105,7 +99,7 @@ class Client {
|
|
|
105
99
|
}
|
|
106
100
|
const peerId = peerIdFromBytes(response.identify?.id);
|
|
107
101
|
const addrs = response.identify.addrs.map((a) => multiaddr(a));
|
|
108
|
-
await sh.close();
|
|
102
|
+
await sh.unwrap().close();
|
|
109
103
|
return ({ peerId, addrs });
|
|
110
104
|
}
|
|
111
105
|
/**
|
|
@@ -115,15 +109,11 @@ class Client {
|
|
|
115
109
|
const sh = await this.send({
|
|
116
110
|
type: Request.Type.LIST_PEERS
|
|
117
111
|
});
|
|
118
|
-
const
|
|
119
|
-
if (message == null) {
|
|
120
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
121
|
-
}
|
|
122
|
-
const response = Response.decode(message);
|
|
112
|
+
const response = await sh.read(Response);
|
|
123
113
|
if (response.type !== Response.Type.OK) {
|
|
124
114
|
throw new CodeError(response.error?.msg ?? 'List peers failed', 'ERR_LIST_PEERS_FAILED');
|
|
125
115
|
}
|
|
126
|
-
await sh.close();
|
|
116
|
+
await sh.unwrap().close();
|
|
127
117
|
return response.peers.map((peer) => peerIdFromBytes(peer.id));
|
|
128
118
|
}
|
|
129
119
|
/**
|
|
@@ -143,16 +133,12 @@ class Client {
|
|
|
143
133
|
proto: [protocol]
|
|
144
134
|
}
|
|
145
135
|
});
|
|
146
|
-
const
|
|
147
|
-
if (message == null) {
|
|
148
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
149
|
-
}
|
|
150
|
-
const response = Response.decode(message);
|
|
136
|
+
const response = await sh.read(Response);
|
|
151
137
|
if (response.type !== Response.Type.OK) {
|
|
152
|
-
await sh.close();
|
|
138
|
+
await sh.unwrap().close();
|
|
153
139
|
throw new CodeError(response.error?.msg ?? 'Open stream failed', 'ERR_OPEN_STREAM_FAILED');
|
|
154
140
|
}
|
|
155
|
-
return sh.
|
|
141
|
+
return sh.unwrap();
|
|
156
142
|
}
|
|
157
143
|
/**
|
|
158
144
|
* Register a handler for inbound streams on a given protocol
|
|
@@ -164,11 +150,11 @@ class Client {
|
|
|
164
150
|
// open a tcp port, pipe any data from it to the handler function
|
|
165
151
|
const listener = this.tcp.createListener({
|
|
166
152
|
upgrader: passThroughUpgrader,
|
|
153
|
+
// @ts-expect-error because we are using a passthrough upgrader, this is a MultiaddrConnection
|
|
167
154
|
handler: (connection) => {
|
|
168
155
|
Promise.resolve()
|
|
169
156
|
.then(async () => {
|
|
170
157
|
const sh = new StreamHandler({
|
|
171
|
-
// @ts-expect-error because we are using a passthrough upgrader, this is a MultiaddrConnection
|
|
172
158
|
stream: connection
|
|
173
159
|
});
|
|
174
160
|
const message = await sh.read();
|
|
@@ -179,6 +165,7 @@ class Client {
|
|
|
179
165
|
if (response.proto !== protocol) {
|
|
180
166
|
throw new CodeError('Incorrect protocol', 'ERR_OPEN_STREAM_FAILED');
|
|
181
167
|
}
|
|
168
|
+
// @ts-expect-error because we are using a passthrough upgrader, this is a MultiaddrConnection
|
|
182
169
|
await handler(sh.rest());
|
|
183
170
|
})
|
|
184
171
|
.finally(() => {
|
|
@@ -205,12 +192,8 @@ class Client {
|
|
|
205
192
|
proto: [protocol]
|
|
206
193
|
}
|
|
207
194
|
});
|
|
208
|
-
const
|
|
209
|
-
|
|
210
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
211
|
-
}
|
|
212
|
-
const response = Response.decode(message);
|
|
213
|
-
await sh.close();
|
|
195
|
+
const response = await sh.read(Response);
|
|
196
|
+
await sh.unwrap().close();
|
|
214
197
|
if (response.type !== Response.Type.OK) {
|
|
215
198
|
throw new CodeError(response.error?.msg ?? 'Register stream handler failed', 'ERR_REGISTER_STREAM_HANDLER_FAILED');
|
|
216
199
|
}
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/pubsub.d.ts
CHANGED
package/dist/src/pubsub.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pubsub.d.ts","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pubsub.d.ts","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAExB,MAAM,EAAE,YAAY;IAIjC;;;;OAIG;IACG,SAAS,IAAK,OAAO,CAAC,MAAM,EAAE,CAAC;IAuBrC;;OAEG;IACG,OAAO,CAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B9D;;OAEG;IACG,SAAS,CAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAoChD,cAAc,CAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CA2BxD"}
|
package/dist/src/pubsub.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Request, Response, PSRequest, PSMessage } from '@libp2p/daemon-protocol';
|
|
2
|
-
import { CodeError } from '@libp2p/interface
|
|
2
|
+
import { CodeError } from '@libp2p/interface';
|
|
3
3
|
import { peerIdFromBytes } from '@libp2p/peer-id';
|
|
4
4
|
export class Pubsub {
|
|
5
5
|
client;
|
|
@@ -18,12 +18,8 @@ export class Pubsub {
|
|
|
18
18
|
type: PSRequest.Type.GET_TOPICS
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
24
|
-
}
|
|
25
|
-
const response = Response.decode(message);
|
|
26
|
-
await sh.close();
|
|
21
|
+
const response = await sh.read(Response);
|
|
22
|
+
await sh.unwrap().close();
|
|
27
23
|
if (response.type !== Response.Type.OK) {
|
|
28
24
|
throw new CodeError(response.error?.msg ?? 'Pubsub get topics failed', 'ERR_PUBSUB_GET_TOPICS_FAILED');
|
|
29
25
|
}
|
|
@@ -50,12 +46,8 @@ export class Pubsub {
|
|
|
50
46
|
data
|
|
51
47
|
}
|
|
52
48
|
});
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
56
|
-
}
|
|
57
|
-
const response = Response.decode(message);
|
|
58
|
-
await sh.close();
|
|
49
|
+
const response = await sh.read(Response);
|
|
50
|
+
await sh.unwrap().close();
|
|
59
51
|
if (response.type !== Response.Type.OK) {
|
|
60
52
|
throw new CodeError(response.error?.msg ?? 'Pubsub publish failed', 'ERR_PUBSUB_PUBLISH_FAILED');
|
|
61
53
|
}
|
|
@@ -74,11 +66,7 @@ export class Pubsub {
|
|
|
74
66
|
topic
|
|
75
67
|
}
|
|
76
68
|
});
|
|
77
|
-
|
|
78
|
-
if (message == null) {
|
|
79
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
80
|
-
}
|
|
81
|
-
const response = Response.decode(message);
|
|
69
|
+
const response = await sh.read(Response);
|
|
82
70
|
if (response.type !== Response.Type.OK) {
|
|
83
71
|
throw new CodeError(response.error?.msg ?? 'Pubsub publish failed', 'ERR_PUBSUB_PUBLISH_FAILED');
|
|
84
72
|
}
|
|
@@ -86,16 +74,12 @@ export class Pubsub {
|
|
|
86
74
|
const subscription = {
|
|
87
75
|
async *messages() {
|
|
88
76
|
while (subscribed) { // eslint-disable-line no-unmodified-loop-condition
|
|
89
|
-
|
|
90
|
-
if (message == null) {
|
|
91
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
92
|
-
}
|
|
93
|
-
yield PSMessage.decode(message);
|
|
77
|
+
yield await sh.read(PSMessage);
|
|
94
78
|
}
|
|
95
79
|
},
|
|
96
80
|
async cancel() {
|
|
97
81
|
subscribed = false;
|
|
98
|
-
await sh.close();
|
|
82
|
+
await sh.unwrap().close();
|
|
99
83
|
}
|
|
100
84
|
};
|
|
101
85
|
return subscription;
|
|
@@ -111,12 +95,8 @@ export class Pubsub {
|
|
|
111
95
|
topic
|
|
112
96
|
}
|
|
113
97
|
});
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
throw new CodeError('Empty response from remote', 'ERR_EMPTY_RESPONSE');
|
|
117
|
-
}
|
|
118
|
-
const response = Response.decode(message);
|
|
119
|
-
await sh.close();
|
|
98
|
+
const response = await sh.read(Response);
|
|
99
|
+
await sh.unwrap().close();
|
|
120
100
|
if (response.type !== Response.Type.OK) {
|
|
121
101
|
throw new CodeError(response.error?.msg ?? 'Pubsub get subscribers failed', 'ERR_PUBSUB_GET_SUBSCRIBERS_FAILED');
|
|
122
102
|
}
|
package/dist/src/pubsub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,SAAS,EACT,SAAS,EACV,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"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"}
|