@libp2p/daemon-client 0.0.0 → 1.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/dist/src/dht.d.ts +5 -8
- package/dist/src/dht.d.ts.map +1 -1
- package/dist/src/dht.js +3 -6
- package/dist/src/dht.js.map +1 -1
- package/dist/src/index.d.ts +16 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -33
- 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 +1 -1
- package/dist/src/pubsub.js.map +1 -1
- package/package.json +9 -17
- package/src/dht.ts +8 -11
- package/src/index.ts +23 -43
- package/src/pubsub.ts +2 -2
- package/dist/src/stream-handler.d.ts +0 -28
- package/dist/src/stream-handler.d.ts.map +0 -1
- package/dist/src/stream-handler.js +0 -47
- package/dist/src/stream-handler.js.map +0 -1
- package/dist/src/util/index.d.ts +0 -12
- package/dist/src/util/index.d.ts.map +0 -1
- package/dist/src/util/index.js +0 -24
- package/dist/src/util/index.js.map +0 -1
- package/src/stream-handler.ts +0 -65
- package/src/util/index.ts +0 -27
package/dist/src/dht.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { CID } from 'multiformats/cid';
|
|
2
2
|
import type { DaemonClient } from './index.js';
|
|
3
3
|
import { PeerId } from '@libp2p/interfaces/peer-id';
|
|
4
|
-
import type {
|
|
4
|
+
import type { PeerInfo } from '@libp2p/interfaces/peer-info';
|
|
5
5
|
export declare class DHT {
|
|
6
|
-
private client;
|
|
6
|
+
private readonly client;
|
|
7
7
|
constructor(client: DaemonClient);
|
|
8
8
|
/**
|
|
9
9
|
* Write a value to a key in the DHT
|
|
@@ -15,11 +15,8 @@ export declare class DHT {
|
|
|
15
15
|
get(key: Uint8Array): Promise<Uint8Array>;
|
|
16
16
|
/**
|
|
17
17
|
* Query the DHT for a given peer's known addresses.
|
|
18
|
-
*
|
|
19
|
-
* @param {PeerId} peerId
|
|
20
|
-
* @returns {PeerInfo}
|
|
21
18
|
*/
|
|
22
|
-
findPeer(peerId: PeerId): Promise<
|
|
19
|
+
findPeer(peerId: PeerId): Promise<PeerInfo>;
|
|
23
20
|
/**
|
|
24
21
|
* Announce to the network that the peer have data addressed by the provided CID
|
|
25
22
|
*/
|
|
@@ -27,11 +24,11 @@ export declare class DHT {
|
|
|
27
24
|
/**
|
|
28
25
|
* Query the DHT for peers that have a piece of content, identified by a CID
|
|
29
26
|
*/
|
|
30
|
-
findProviders(cid: CID, count?: number):
|
|
27
|
+
findProviders(cid: CID, count?: number): AsyncIterable<PeerInfo>;
|
|
31
28
|
/**
|
|
32
29
|
* Query the DHT routing table for peers that are closest to a provided key.
|
|
33
30
|
*/
|
|
34
|
-
getClosestPeers(key: Uint8Array): AsyncIterable<
|
|
31
|
+
getClosestPeers(key: Uint8Array): AsyncIterable<PeerInfo>;
|
|
35
32
|
/**
|
|
36
33
|
* Query the DHT routing table for a given peer's public key.
|
|
37
34
|
*/
|
package/dist/src/dht.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dht.d.ts","sourceRoot":"","sources":["../../src/dht.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAStC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAY,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAG5D,qBAAa,GAAG;IACd,OAAO,CAAC,MAAM,CAAc;
|
|
1
|
+
{"version":3,"file":"dht.d.ts","sourceRoot":"","sources":["../../src/dht.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAStC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAY,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAG5D,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;IA4B7D;;OAEG;IACG,GAAG,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IA6BhD;;OAEG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAiClD;;OAEG;IACG,OAAO,CAAE,GAAG,EAAE,GAAG;IAuBvB;;OAEG;IACK,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,KAAK,GAAE,MAAU,GAAG,aAAa,CAAC,QAAQ,CAAC;IAiD5E;;OAEG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC;IAiDlE;;OAEG;IACG,YAAY,CAAE,MAAM,EAAE,MAAM;CA4BnC"}
|
package/dist/src/dht.js
CHANGED
|
@@ -60,9 +60,6 @@ export class DHT {
|
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
62
|
* Query the DHT for a given peer's known addresses.
|
|
63
|
-
*
|
|
64
|
-
* @param {PeerId} peerId
|
|
65
|
-
* @returns {PeerInfo}
|
|
66
63
|
*/
|
|
67
64
|
async findPeer(peerId) {
|
|
68
65
|
if (!isPeerId(peerId)) {
|
|
@@ -128,10 +125,10 @@ export class DHT {
|
|
|
128
125
|
});
|
|
129
126
|
let message = await sh.read();
|
|
130
127
|
// stream begin message
|
|
131
|
-
|
|
128
|
+
const response = Response.decode(message);
|
|
132
129
|
if (response.type !== Response.Type.OK) {
|
|
133
130
|
await sh.close();
|
|
134
|
-
throw errcode(new Error(response.error?.msg
|
|
131
|
+
throw errcode(new Error(response.error?.msg ?? 'DHT find providers failed'), 'ERR_DHT_FIND_PROVIDERS_FAILED');
|
|
135
132
|
}
|
|
136
133
|
while (true) {
|
|
137
134
|
message = await sh.read();
|
|
@@ -172,7 +169,7 @@ export class DHT {
|
|
|
172
169
|
});
|
|
173
170
|
// stream begin message
|
|
174
171
|
let message = await sh.read();
|
|
175
|
-
|
|
172
|
+
const response = Response.decode(message);
|
|
176
173
|
if (response.type !== Response.Type.OK) {
|
|
177
174
|
await sh.close();
|
|
178
175
|
throw errcode(new Error(response.error?.msg ?? 'DHT find providers failed'), 'ERR_DHT_FIND_PROVIDERS_FAILED');
|
package/dist/src/dht.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dht.js","sourceRoot":"","sources":["../../src/dht.ts"],"names":[],"mappings":"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
|
|
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,7 +1,10 @@
|
|
|
1
|
-
import { IRequest } from '@libp2p/daemon-protocol';
|
|
2
|
-
import { StreamHandler } from '
|
|
1
|
+
import { IRequest, PSMessage } from '@libp2p/daemon-protocol';
|
|
2
|
+
import { StreamHandler } from '@libp2p/daemon-protocol/stream-handler';
|
|
3
3
|
import { Multiaddr } from '@multiformats/multiaddr';
|
|
4
4
|
import { PeerId } from '@libp2p/interfaces/peer-id';
|
|
5
|
+
import type { Duplex } from 'it-stream-types';
|
|
6
|
+
import type { CID } from 'multiformats/cid';
|
|
7
|
+
import type { PeerInfo } from '@libp2p/interfaces/peer-info';
|
|
5
8
|
export interface IdentifyResult {
|
|
6
9
|
peerId: PeerId;
|
|
7
10
|
addrs: Multiaddr[];
|
|
@@ -9,13 +12,24 @@ export interface IdentifyResult {
|
|
|
9
12
|
export interface DHTClient {
|
|
10
13
|
put: (key: Uint8Array, value: Uint8Array) => Promise<void>;
|
|
11
14
|
get: (key: Uint8Array) => Promise<Uint8Array>;
|
|
15
|
+
provide: (cid: CID) => Promise<void>;
|
|
16
|
+
findProviders: (cid: CID, count?: number) => AsyncIterable<PeerInfo>;
|
|
17
|
+
findPeer: (peerId: PeerId) => Promise<PeerInfo>;
|
|
18
|
+
getClosestPeers: (key: Uint8Array) => AsyncIterable<PeerInfo>;
|
|
19
|
+
}
|
|
20
|
+
export interface PubSubClient {
|
|
21
|
+
publish: (topic: string, data: Uint8Array) => Promise<void>;
|
|
22
|
+
subscribe: (topic: string) => AsyncIterable<PSMessage>;
|
|
23
|
+
getTopics: () => Promise<string[]>;
|
|
12
24
|
}
|
|
13
25
|
export interface DaemonClient {
|
|
14
26
|
identify: () => Promise<IdentifyResult>;
|
|
15
27
|
listPeers: () => Promise<PeerId[]>;
|
|
16
28
|
connect: (peerId: PeerId, addrs: Multiaddr[]) => Promise<void>;
|
|
17
29
|
dht: DHTClient;
|
|
30
|
+
pubsub: PubSubClient;
|
|
18
31
|
send: (request: IRequest) => Promise<StreamHandler>;
|
|
32
|
+
openStream: (peerId: PeerId, protocol: string) => Promise<Duplex<Uint8Array>>;
|
|
19
33
|
}
|
|
20
34
|
export declare function createClient(multiaddr: Multiaddr): DaemonClient;
|
|
21
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAqB,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAqB,MAAM,yBAAyB,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGnD,OAAO,EAAY,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAG7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAqM5D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1D,GAAG,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7C,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAA;IACpE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/C,eAAe,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAA;CAC9D;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,aAAa,CAAC,SAAS,CAAC,CAAA;IACtD,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAA;IACvC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAClC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,GAAG,EAAE,SAAS,CAAA;IACd,MAAM,EAAE,YAAY,CAAA;IAEpB,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IACnD,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;CAC9E;AAED,wBAAgB,YAAY,CAAE,SAAS,EAAE,SAAS,GAAG,YAAY,CAEhE"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import errcode from 'err-code';
|
|
2
2
|
import { TCP } from '@libp2p/tcp';
|
|
3
3
|
import { Request, Response } from '@libp2p/daemon-protocol';
|
|
4
|
-
import { StreamHandler } from '
|
|
4
|
+
import { StreamHandler } from '@libp2p/daemon-protocol/stream-handler';
|
|
5
5
|
import { Multiaddr } from '@multiformats/multiaddr';
|
|
6
6
|
import { DHT } from './dht.js';
|
|
7
7
|
import { Pubsub } from './pubsub.js';
|
|
8
8
|
import { isPeerId } from '@libp2p/interfaces/peer-id';
|
|
9
|
-
import { passThroughUpgrader } from '
|
|
9
|
+
import { passThroughUpgrader } from '@libp2p/daemon-protocol/upgrader';
|
|
10
10
|
import { peerIdFromBytes } from '@libp2p/peer-id';
|
|
11
11
|
class Client {
|
|
12
12
|
constructor(addr) {
|
|
@@ -22,29 +22,11 @@ class Client {
|
|
|
22
22
|
* @async
|
|
23
23
|
* @returns {MultiaddrConnection}
|
|
24
24
|
*/
|
|
25
|
-
connectDaemon() {
|
|
26
|
-
return this.tcp.dial(this.multiaddr, {
|
|
25
|
+
async connectDaemon() {
|
|
26
|
+
return await this.tcp.dial(this.multiaddr, {
|
|
27
27
|
upgrader: passThroughUpgrader
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Starts a server listening at `socketPath`. New connections
|
|
32
|
-
* will be sent to the `connectionHandler`.
|
|
33
|
-
*
|
|
34
|
-
* @param {Multiaddr} addr
|
|
35
|
-
* @param {function(Stream)} connectionHandler
|
|
36
|
-
* @returns {Promise}
|
|
37
|
-
*/
|
|
38
|
-
async start(addr, connectionHandler) {
|
|
39
|
-
if (this.listener) {
|
|
40
|
-
await this.close();
|
|
41
|
-
}
|
|
42
|
-
this.listener = this.tcp.createListener({
|
|
43
|
-
handler: maConn => connectionHandler(maConn),
|
|
44
|
-
upgrader: passThroughUpgrader
|
|
45
|
-
});
|
|
46
|
-
await this.listener.listen(addr);
|
|
47
|
-
}
|
|
48
30
|
/**
|
|
49
31
|
* Sends the request to the daemon and returns a stream. This
|
|
50
32
|
* should only be used when sending daemon requests.
|
|
@@ -55,18 +37,8 @@ class Client {
|
|
|
55
37
|
streamHandler.write(Request.encode(request).finish());
|
|
56
38
|
return streamHandler;
|
|
57
39
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Closes the socket
|
|
60
|
-
*/
|
|
61
|
-
async close() {
|
|
62
|
-
this.listener && await this.listener.close();
|
|
63
|
-
this.listener = undefined;
|
|
64
|
-
}
|
|
65
40
|
/**
|
|
66
41
|
* Connect requests a connection to a known peer on a given set of addresses
|
|
67
|
-
*
|
|
68
|
-
* @param {PeerId} peerId
|
|
69
|
-
* @param {Array.<multiaddr>} addrs
|
|
70
42
|
*/
|
|
71
43
|
async connect(peerId, addrs) {
|
|
72
44
|
if (!isPeerId(peerId)) {
|
|
@@ -88,7 +60,7 @@ class Client {
|
|
|
88
60
|
}
|
|
89
61
|
});
|
|
90
62
|
const message = await sh.read();
|
|
91
|
-
if (
|
|
63
|
+
if (message == null) {
|
|
92
64
|
throw errcode(new Error('unspecified'), 'ERR_CONNECT_FAILED');
|
|
93
65
|
}
|
|
94
66
|
const response = Response.decode(message);
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/pubsub.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PSMessage } from '@libp2p/daemon-protocol';
|
|
2
2
|
import type { DaemonClient } from './index.js';
|
|
3
3
|
export declare class Pubsub {
|
|
4
|
-
private client;
|
|
4
|
+
private readonly client;
|
|
5
5
|
constructor(client: DaemonClient);
|
|
6
6
|
/**
|
|
7
7
|
* Get a list of topics the node is subscribed to.
|
package/dist/src/pubsub.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pubsub.d.ts","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,SAAS,EACV,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAc;
|
|
1
|
+
{"version":3,"file":"pubsub.d.ts","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,SAAS,EACV,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAExB,MAAM,EAAE,YAAY;IAIjC;;;;OAIG;IACG,SAAS,IAAK,OAAO,CAAC,MAAM,EAAE,CAAC;IAwBrC;;OAEG;IACG,OAAO,CAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IA4B9C;;OAEG;IACK,SAAS,CAAE,KAAK,EAAE,MAAM;CA0BjC"}
|
package/dist/src/pubsub.js
CHANGED
|
@@ -67,7 +67,7 @@ export class Pubsub {
|
|
|
67
67
|
}
|
|
68
68
|
});
|
|
69
69
|
let message = await sh.read();
|
|
70
|
-
|
|
70
|
+
const response = Response.decode(message);
|
|
71
71
|
if (response.type !== Response.Type.OK) {
|
|
72
72
|
throw errcode(new Error(response.error?.msg ?? 'Pubsub publish failed'), 'ERR_PUBSUB_PUBLISH_FAILED');
|
|
73
73
|
}
|
package/dist/src/pubsub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EACL,OAAO,EACP,QAAQ,EACR,SAAS,EACT,SAAS,EACV,MAAM,yBAAyB,CAAA;AAGhC,MAAM,OAAO,MAAM;IAGjB,YAAa,MAAoB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;YACzB,MAAM,EAAE;gBACN,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;aAChC;SACF,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAA;QAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEzC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAA;QAEhB,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE;YACtC,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,IAAI,0BAA0B,CAAC,EAAE,8BAA8B,CAAC,CAAA;SAC5G;QAED,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE;YAC7D,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE,8BAA8B,CAAC,CAAA;SAC7E;QAED,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAE,KAAa,EAAE,IAAgB;QAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,EAAE,mBAAmB,CAAC,CAAA;SACxE;QAED,IAAI,CAAC,CAAC,IAAI,YAAY,UAAU,CAAC,EAAE;YACjC,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,EAAE,kBAAkB,CAAC,CAAA;SAClF;QAED,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;YACzB,MAAM,EAAE;gBACN,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO;gBAC5B,KAAK;gBACL,IAAI;aACL;SACF,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAA;QAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEzC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAA;QAEhB,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE;YACtC,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,IAAI,uBAAuB,CAAC,EAAE,2BAA2B,CAAC,CAAA;SACtG;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAE,SAAS,CAAE,KAAa;QAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,EAAE,mBAAmB,CAAC,CAAA;SACxE;QAED,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;YACzB,MAAM,EAAE;gBACN,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS;gBAC9B,KAAK;aACN;SACF,CAAC,CAAA;QAEF,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAA;QAC7B,
|
|
1
|
+
{"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/daemon-client",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "libp2p-daemon client implementation",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p-daemon/tree/master/packages/libp2p-daemon-client#readme",
|
|
@@ -120,6 +120,7 @@
|
|
|
120
120
|
},
|
|
121
121
|
"scripts": {
|
|
122
122
|
"lint": "aegir lint",
|
|
123
|
+
"dep-check": "aegir dep-check dist/src/**/*.js dist/test/**/*.js",
|
|
123
124
|
"build": "tsc",
|
|
124
125
|
"pretest": "npm run build",
|
|
125
126
|
"test": "aegir test -t node -f ./dist/test/*.js",
|
|
@@ -127,34 +128,25 @@
|
|
|
127
128
|
"release": "semantic-release"
|
|
128
129
|
},
|
|
129
130
|
"dependencies": {
|
|
130
|
-
"@libp2p/daemon-protocol": "^0.0.
|
|
131
|
+
"@libp2p/daemon-protocol": "^0.0.1",
|
|
131
132
|
"@libp2p/interfaces": "^1.3.17",
|
|
132
133
|
"@libp2p/logger": "^1.1.2",
|
|
133
134
|
"@libp2p/peer-id": "^1.1.8",
|
|
135
|
+
"@libp2p/tcp": "^1.0.6",
|
|
134
136
|
"@multiformats/multiaddr": "^10.1.8",
|
|
135
137
|
"err-code": "^3.0.1",
|
|
136
|
-
"it-handshake": "^3.0.1",
|
|
137
|
-
"it-length-prefixed": "^7.0.1",
|
|
138
138
|
"it-stream-types": "^1.0.4",
|
|
139
|
-
"
|
|
140
|
-
"libp2p-tcp": "^0.17.1",
|
|
141
|
-
"multiaddr": "^10.0.0",
|
|
142
|
-
"multiformats": "^9.4.2",
|
|
143
|
-
"peer-id": "^0.16.0"
|
|
139
|
+
"multiformats": "^9.4.2"
|
|
144
140
|
},
|
|
145
141
|
"devDependencies": {
|
|
142
|
+
"@libp2p/interface-compliance-tests": "^1.1.20",
|
|
143
|
+
"@libp2p/daemon-server": "^0.0.2",
|
|
146
144
|
"@libp2p/peer-id-factory": "^1.0.8",
|
|
147
|
-
"@libp2p/tcp": "^1.0.6",
|
|
148
145
|
"aegir": "^36.0.0",
|
|
149
|
-
"it-
|
|
146
|
+
"it-all": "^1.0.6",
|
|
150
147
|
"it-pipe": "^2.0.3",
|
|
151
|
-
"it-pushable": "^2.0.1",
|
|
152
|
-
"mocha": "^9.1.1",
|
|
153
|
-
"net": "^1.0.2",
|
|
154
|
-
"os": "^0.1.2",
|
|
155
|
-
"path": "^0.12.7",
|
|
156
148
|
"sinon": "^13.0.1",
|
|
157
|
-
"
|
|
149
|
+
"ts-sinon": "^2.0.2",
|
|
158
150
|
"uint8arrays": "^3.0.0"
|
|
159
151
|
}
|
|
160
152
|
}
|
package/src/dht.ts
CHANGED
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
} from '@libp2p/daemon-protocol'
|
|
10
10
|
import type { DaemonClient } from './index.js'
|
|
11
11
|
import { isPeerId, PeerId } from '@libp2p/interfaces/peer-id'
|
|
12
|
-
import type {
|
|
12
|
+
import type { PeerInfo } from '@libp2p/interfaces/peer-info'
|
|
13
13
|
import { peerIdFromBytes } from '@libp2p/peer-id'
|
|
14
14
|
|
|
15
15
|
export class DHT {
|
|
16
|
-
private client: DaemonClient
|
|
16
|
+
private readonly client: DaemonClient
|
|
17
17
|
|
|
18
18
|
constructor (client: DaemonClient) {
|
|
19
19
|
this.client = client
|
|
@@ -84,11 +84,8 @@ export class DHT {
|
|
|
84
84
|
|
|
85
85
|
/**
|
|
86
86
|
* Query the DHT for a given peer's known addresses.
|
|
87
|
-
*
|
|
88
|
-
* @param {PeerId} peerId
|
|
89
|
-
* @returns {PeerInfo}
|
|
90
87
|
*/
|
|
91
|
-
async findPeer (peerId: PeerId): Promise<
|
|
88
|
+
async findPeer (peerId: PeerId): Promise<PeerInfo> {
|
|
92
89
|
if (!isPeerId(peerId)) {
|
|
93
90
|
throw errcode(new Error('invalid peer id received'), 'ERR_INVALID_PEER_ID')
|
|
94
91
|
}
|
|
@@ -150,7 +147,7 @@ export class DHT {
|
|
|
150
147
|
/**
|
|
151
148
|
* Query the DHT for peers that have a piece of content, identified by a CID
|
|
152
149
|
*/
|
|
153
|
-
async * findProviders (cid: CID, count: number = 1):
|
|
150
|
+
async * findProviders (cid: CID, count: number = 1): AsyncIterable<PeerInfo> {
|
|
154
151
|
if (cid == null || CID.asCID(cid) == null) {
|
|
155
152
|
throw errcode(new Error('invalid cid received'), 'ERR_INVALID_CID')
|
|
156
153
|
}
|
|
@@ -167,11 +164,11 @@ export class DHT {
|
|
|
167
164
|
let message = await sh.read()
|
|
168
165
|
|
|
169
166
|
// stream begin message
|
|
170
|
-
|
|
167
|
+
const response = Response.decode(message)
|
|
171
168
|
|
|
172
169
|
if (response.type !== Response.Type.OK) {
|
|
173
170
|
await sh.close()
|
|
174
|
-
throw errcode(new Error(response.error?.msg
|
|
171
|
+
throw errcode(new Error(response.error?.msg ?? 'DHT find providers failed'), 'ERR_DHT_FIND_PROVIDERS_FAILED')
|
|
175
172
|
}
|
|
176
173
|
|
|
177
174
|
while (true) {
|
|
@@ -202,7 +199,7 @@ export class DHT {
|
|
|
202
199
|
/**
|
|
203
200
|
* Query the DHT routing table for peers that are closest to a provided key.
|
|
204
201
|
*/
|
|
205
|
-
async * getClosestPeers (key: Uint8Array): AsyncIterable<
|
|
202
|
+
async * getClosestPeers (key: Uint8Array): AsyncIterable<PeerInfo> {
|
|
206
203
|
if (!(key instanceof Uint8Array)) {
|
|
207
204
|
throw errcode(new Error('invalid key received'), 'ERR_INVALID_KEY')
|
|
208
205
|
}
|
|
@@ -217,7 +214,7 @@ export class DHT {
|
|
|
217
214
|
|
|
218
215
|
// stream begin message
|
|
219
216
|
let message = await sh.read()
|
|
220
|
-
|
|
217
|
+
const response = Response.decode(message)
|
|
221
218
|
|
|
222
219
|
if (response.type !== Response.Type.OK) {
|
|
223
220
|
await sh.close()
|
package/src/index.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import errcode from 'err-code'
|
|
2
2
|
import { TCP } from '@libp2p/tcp'
|
|
3
|
-
import { IRequest, Request, Response } from '@libp2p/daemon-protocol'
|
|
4
|
-
import { StreamHandler } from '
|
|
3
|
+
import { IRequest, PSMessage, Request, Response } from '@libp2p/daemon-protocol'
|
|
4
|
+
import { StreamHandler } from '@libp2p/daemon-protocol/stream-handler'
|
|
5
5
|
import { Multiaddr } from '@multiformats/multiaddr'
|
|
6
6
|
import { DHT } from './dht.js'
|
|
7
7
|
import { Pubsub } from './pubsub.js'
|
|
8
8
|
import { isPeerId, PeerId } from '@libp2p/interfaces/peer-id'
|
|
9
|
-
import { passThroughUpgrader } from '
|
|
10
|
-
import type { ConnectionHandler, Listener } from '@libp2p/interfaces/transport'
|
|
9
|
+
import { passThroughUpgrader } from '@libp2p/daemon-protocol/upgrader'
|
|
11
10
|
import { peerIdFromBytes } from '@libp2p/peer-id'
|
|
12
11
|
import type { Duplex } from 'it-stream-types'
|
|
12
|
+
import type { CID } from 'multiformats/cid'
|
|
13
|
+
import type { PeerInfo } from '@libp2p/interfaces/peer-info'
|
|
13
14
|
|
|
14
15
|
class Client implements DaemonClient {
|
|
15
|
-
private multiaddr: Multiaddr
|
|
16
|
+
private readonly multiaddr: Multiaddr
|
|
16
17
|
public dht: DHT
|
|
17
18
|
public pubsub: Pubsub
|
|
18
|
-
private tcp: TCP
|
|
19
|
-
private listener?: Listener
|
|
19
|
+
private readonly tcp: TCP
|
|
20
20
|
|
|
21
21
|
constructor (addr: Multiaddr) {
|
|
22
22
|
this.multiaddr = addr
|
|
@@ -33,33 +33,12 @@ class Client implements DaemonClient {
|
|
|
33
33
|
* @async
|
|
34
34
|
* @returns {MultiaddrConnection}
|
|
35
35
|
*/
|
|
36
|
-
connectDaemon () {
|
|
37
|
-
return this.tcp.dial(this.multiaddr, {
|
|
36
|
+
async connectDaemon () {
|
|
37
|
+
return await this.tcp.dial(this.multiaddr, {
|
|
38
38
|
upgrader: passThroughUpgrader
|
|
39
39
|
})
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
/**
|
|
43
|
-
* Starts a server listening at `socketPath`. New connections
|
|
44
|
-
* will be sent to the `connectionHandler`.
|
|
45
|
-
*
|
|
46
|
-
* @param {Multiaddr} addr
|
|
47
|
-
* @param {function(Stream)} connectionHandler
|
|
48
|
-
* @returns {Promise}
|
|
49
|
-
*/
|
|
50
|
-
async start (addr: Multiaddr, connectionHandler: ConnectionHandler) {
|
|
51
|
-
if (this.listener) {
|
|
52
|
-
await this.close()
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
this.listener = this.tcp.createListener({
|
|
56
|
-
handler: maConn => connectionHandler(maConn),
|
|
57
|
-
upgrader: passThroughUpgrader
|
|
58
|
-
})
|
|
59
|
-
|
|
60
|
-
await this.listener.listen(addr)
|
|
61
|
-
}
|
|
62
|
-
|
|
63
42
|
/**
|
|
64
43
|
* Sends the request to the daemon and returns a stream. This
|
|
65
44
|
* should only be used when sending daemon requests.
|
|
@@ -72,19 +51,8 @@ class Client implements DaemonClient {
|
|
|
72
51
|
return streamHandler
|
|
73
52
|
}
|
|
74
53
|
|
|
75
|
-
/**
|
|
76
|
-
* Closes the socket
|
|
77
|
-
*/
|
|
78
|
-
async close () {
|
|
79
|
-
this.listener && await this.listener.close()
|
|
80
|
-
this.listener = undefined
|
|
81
|
-
}
|
|
82
|
-
|
|
83
54
|
/**
|
|
84
55
|
* Connect requests a connection to a known peer on a given set of addresses
|
|
85
|
-
*
|
|
86
|
-
* @param {PeerId} peerId
|
|
87
|
-
* @param {Array.<multiaddr>} addrs
|
|
88
56
|
*/
|
|
89
57
|
async connect (peerId: PeerId, addrs: Multiaddr[]) {
|
|
90
58
|
if (!isPeerId(peerId)) {
|
|
@@ -110,13 +78,13 @@ class Client implements DaemonClient {
|
|
|
110
78
|
})
|
|
111
79
|
|
|
112
80
|
const message = await sh.read()
|
|
113
|
-
if (
|
|
81
|
+
if (message == null) {
|
|
114
82
|
throw errcode(new Error('unspecified'), 'ERR_CONNECT_FAILED')
|
|
115
83
|
}
|
|
116
84
|
|
|
117
85
|
const response = Response.decode(message)
|
|
118
86
|
if (response.type !== Response.Type.OK) {
|
|
119
|
-
const errResponse = response.error ??
|
|
87
|
+
const errResponse = response.error ?? { msg: 'unspecified' }
|
|
120
88
|
throw errcode(new Error(errResponse.msg ?? 'unspecified'), 'ERR_CONNECT_FAILED')
|
|
121
89
|
}
|
|
122
90
|
|
|
@@ -247,6 +215,16 @@ export interface IdentifyResult {
|
|
|
247
215
|
export interface DHTClient {
|
|
248
216
|
put: (key: Uint8Array, value: Uint8Array) => Promise<void>
|
|
249
217
|
get: (key: Uint8Array) => Promise<Uint8Array>
|
|
218
|
+
provide: (cid: CID) => Promise<void>
|
|
219
|
+
findProviders: (cid: CID, count?: number) => AsyncIterable<PeerInfo>
|
|
220
|
+
findPeer: (peerId: PeerId) => Promise<PeerInfo>
|
|
221
|
+
getClosestPeers: (key: Uint8Array) => AsyncIterable<PeerInfo>
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
export interface PubSubClient {
|
|
225
|
+
publish: (topic: string, data: Uint8Array) => Promise<void>
|
|
226
|
+
subscribe: (topic: string) => AsyncIterable<PSMessage>
|
|
227
|
+
getTopics: () => Promise<string[]>
|
|
250
228
|
}
|
|
251
229
|
|
|
252
230
|
export interface DaemonClient {
|
|
@@ -254,8 +232,10 @@ export interface DaemonClient {
|
|
|
254
232
|
listPeers: () => Promise<PeerId[]>
|
|
255
233
|
connect: (peerId: PeerId, addrs: Multiaddr[]) => Promise<void>
|
|
256
234
|
dht: DHTClient
|
|
235
|
+
pubsub: PubSubClient
|
|
257
236
|
|
|
258
237
|
send: (request: IRequest) => Promise<StreamHandler>
|
|
238
|
+
openStream: (peerId: PeerId, protocol: string) => Promise<Duplex<Uint8Array>>
|
|
259
239
|
}
|
|
260
240
|
|
|
261
241
|
export function createClient (multiaddr: Multiaddr): DaemonClient {
|
package/src/pubsub.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
import type { DaemonClient } from './index.js'
|
|
9
9
|
|
|
10
10
|
export class Pubsub {
|
|
11
|
-
private client: DaemonClient
|
|
11
|
+
private readonly client: DaemonClient
|
|
12
12
|
|
|
13
13
|
constructor (client: DaemonClient) {
|
|
14
14
|
this.client = client
|
|
@@ -91,7 +91,7 @@ export class Pubsub {
|
|
|
91
91
|
})
|
|
92
92
|
|
|
93
93
|
let message = await sh.read()
|
|
94
|
-
|
|
94
|
+
const response = Response.decode(message)
|
|
95
95
|
|
|
96
96
|
if (response.type !== Response.Type.OK) {
|
|
97
97
|
throw errcode(new Error(response.error?.msg ?? 'Pubsub publish failed'), 'ERR_PUBSUB_PUBLISH_FAILED')
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { Duplex } from 'it-stream-types';
|
|
2
|
-
export interface StreamHandlerOptions {
|
|
3
|
-
stream: Duplex<Uint8Array>;
|
|
4
|
-
maxLength?: number;
|
|
5
|
-
}
|
|
6
|
-
export declare class StreamHandler {
|
|
7
|
-
private stream;
|
|
8
|
-
private shake;
|
|
9
|
-
private decoder;
|
|
10
|
-
/**
|
|
11
|
-
* Create a stream handler for connection
|
|
12
|
-
*/
|
|
13
|
-
constructor(opts: StreamHandlerOptions);
|
|
14
|
-
/**
|
|
15
|
-
* Read and decode message
|
|
16
|
-
*/
|
|
17
|
-
read(): Promise<any>;
|
|
18
|
-
write(msg: Uint8Array): void;
|
|
19
|
-
/**
|
|
20
|
-
* Return the handshake rest stream and invalidate handler
|
|
21
|
-
*/
|
|
22
|
-
rest(): Duplex<Uint8Array, Uint8Array, Promise<void>>;
|
|
23
|
-
/**
|
|
24
|
-
* Close the stream
|
|
25
|
-
*/
|
|
26
|
-
close(): void;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=stream-handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stream-handler.d.ts","sourceRoot":"","sources":["../../src/stream-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,iBAAiB,CAAA;AAKrD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,OAAO,CAAoB;IACnC;;OAEG;gBACU,IAAI,EAAE,oBAAoB;IAQvC;;OAEG;IACG,IAAI;IAWV,KAAK,CAAE,GAAG,EAAE,UAAU;IAOtB;;OAEG;IACH,IAAI;IAKJ;;OAEG;IACH,KAAK;CAIN"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import * as lp from 'it-length-prefixed';
|
|
2
|
-
import { handshake } from 'it-handshake';
|
|
3
|
-
import { logger } from '@libp2p/logger';
|
|
4
|
-
const log = logger('libp2p:daemon-client:stream-handler');
|
|
5
|
-
export class StreamHandler {
|
|
6
|
-
/**
|
|
7
|
-
* Create a stream handler for connection
|
|
8
|
-
*/
|
|
9
|
-
constructor(opts) {
|
|
10
|
-
const { stream, maxLength } = opts;
|
|
11
|
-
this.stream = stream;
|
|
12
|
-
this.shake = handshake(this.stream);
|
|
13
|
-
this.decoder = lp.decode.fromReader(this.shake.reader, { maxDataLength: maxLength ?? 4096 });
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Read and decode message
|
|
17
|
-
*/
|
|
18
|
-
async read() {
|
|
19
|
-
// @ts-expect-error decoder is really a generator
|
|
20
|
-
const msg = await this.decoder.next();
|
|
21
|
-
if (msg.value) {
|
|
22
|
-
return msg.value.slice();
|
|
23
|
-
}
|
|
24
|
-
log('read received no value, closing stream');
|
|
25
|
-
// End the stream, we didn't get data
|
|
26
|
-
this.close();
|
|
27
|
-
}
|
|
28
|
-
write(msg) {
|
|
29
|
-
log('write message');
|
|
30
|
-
this.shake.write(lp.encode.single(msg).slice());
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Return the handshake rest stream and invalidate handler
|
|
34
|
-
*/
|
|
35
|
-
rest() {
|
|
36
|
-
this.shake.rest();
|
|
37
|
-
return this.shake.stream;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Close the stream
|
|
41
|
-
*/
|
|
42
|
-
close() {
|
|
43
|
-
log('closing the stream');
|
|
44
|
-
this.rest().sink([]);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=stream-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stream-handler.js","sourceRoot":"","sources":["../../src/stream-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAIvC,MAAM,GAAG,GAAG,MAAM,CAAC,qCAAqC,CAAC,CAAA;AAOzD,MAAM,OAAO,aAAa;IAIxB;;OAEG;IACH,YAAa,IAA0B;QACrC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QAElC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,SAAS,IAAI,IAAI,EAAE,CAAC,CAAA;IAC9F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,iDAAiD;QACjD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QACrC,IAAI,GAAG,CAAC,KAAK,EAAE;YACb,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;SACzB;QACD,GAAG,CAAC,wCAAwC,CAAC,CAAA;QAC7C,qCAAqC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAED,KAAK,CAAE,GAAe;QACpB,GAAG,CAAC,eAAe,CAAC,CAAA;QACpB,IAAI,CAAC,KAAK,CAAC,KAAK,CACd,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAC9B,CAAA;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACzB,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACtB,CAAC;CACF"}
|
package/dist/src/util/index.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { Upgrader } from '@libp2p/interfaces/transport';
|
|
2
|
-
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
3
|
-
export declare const passThroughUpgrader: Upgrader;
|
|
4
|
-
/**
|
|
5
|
-
* Converts the multiaddr to a nodejs NET compliant option
|
|
6
|
-
* for .connect or .listen
|
|
7
|
-
*
|
|
8
|
-
* @param {Multiaddr} addr
|
|
9
|
-
* @returns {string|object} A nodejs NET compliant option
|
|
10
|
-
*/
|
|
11
|
-
export declare function multiaddrToNetConfig(addr: Multiaddr): string | import("@multiformats/multiaddr").NodeAddress;
|
|
12
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGxD,eAAO,MAAM,mBAAmB,EAAE,QAKjC,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAE,IAAI,EAAE,SAAS,0DAQpD"}
|
package/dist/src/util/index.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { resolve } from 'path';
|
|
2
|
-
export const passThroughUpgrader = {
|
|
3
|
-
// @ts-expect-error
|
|
4
|
-
upgradeInbound: maConn => maConn,
|
|
5
|
-
// @ts-expect-error
|
|
6
|
-
upgradeOutbound: maConn => maConn
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* Converts the multiaddr to a nodejs NET compliant option
|
|
10
|
-
* for .connect or .listen
|
|
11
|
-
*
|
|
12
|
-
* @param {Multiaddr} addr
|
|
13
|
-
* @returns {string|object} A nodejs NET compliant option
|
|
14
|
-
*/
|
|
15
|
-
export function multiaddrToNetConfig(addr) {
|
|
16
|
-
const listenPath = addr.getPath();
|
|
17
|
-
// unix socket listening
|
|
18
|
-
if (listenPath) {
|
|
19
|
-
return resolve(listenPath);
|
|
20
|
-
}
|
|
21
|
-
// tcp listening
|
|
22
|
-
return addr.nodeAddress();
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAE9B,MAAM,CAAC,MAAM,mBAAmB,GAAa;IAC3C,mBAAmB;IACnB,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM;IAChC,mBAAmB;IACnB,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM;CAClC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAE,IAAe;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;IACjC,wBAAwB;IACxB,IAAI,UAAU,EAAE;QACd,OAAO,OAAO,CAAC,UAAU,CAAC,CAAA;KAC3B;IACD,gBAAgB;IAChB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;AAC3B,CAAC"}
|
package/src/stream-handler.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import * as lp from 'it-length-prefixed'
|
|
2
|
-
import { handshake } from 'it-handshake'
|
|
3
|
-
import { logger } from '@libp2p/logger'
|
|
4
|
-
import type { Duplex, Source } from 'it-stream-types'
|
|
5
|
-
import type { Handshake } from 'it-handshake'
|
|
6
|
-
|
|
7
|
-
const log = logger('libp2p:daemon-client:stream-handler')
|
|
8
|
-
|
|
9
|
-
export interface StreamHandlerOptions {
|
|
10
|
-
stream: Duplex<Uint8Array>
|
|
11
|
-
maxLength?: number
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export class StreamHandler {
|
|
15
|
-
private stream: Duplex<Uint8Array>
|
|
16
|
-
private shake: Handshake
|
|
17
|
-
private decoder: Source<Uint8Array>
|
|
18
|
-
/**
|
|
19
|
-
* Create a stream handler for connection
|
|
20
|
-
*/
|
|
21
|
-
constructor (opts: StreamHandlerOptions) {
|
|
22
|
-
const { stream, maxLength } = opts
|
|
23
|
-
|
|
24
|
-
this.stream = stream
|
|
25
|
-
this.shake = handshake(this.stream)
|
|
26
|
-
this.decoder = lp.decode.fromReader(this.shake.reader, { maxDataLength: maxLength ?? 4096 })
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Read and decode message
|
|
31
|
-
*/
|
|
32
|
-
async read () {
|
|
33
|
-
// @ts-expect-error decoder is really a generator
|
|
34
|
-
const msg = await this.decoder.next()
|
|
35
|
-
if (msg.value) {
|
|
36
|
-
return msg.value.slice()
|
|
37
|
-
}
|
|
38
|
-
log('read received no value, closing stream')
|
|
39
|
-
// End the stream, we didn't get data
|
|
40
|
-
this.close()
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
write (msg: Uint8Array) {
|
|
44
|
-
log('write message')
|
|
45
|
-
this.shake.write(
|
|
46
|
-
lp.encode.single(msg).slice()
|
|
47
|
-
)
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Return the handshake rest stream and invalidate handler
|
|
52
|
-
*/
|
|
53
|
-
rest () {
|
|
54
|
-
this.shake.rest()
|
|
55
|
-
return this.shake.stream
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Close the stream
|
|
60
|
-
*/
|
|
61
|
-
close () {
|
|
62
|
-
log('closing the stream')
|
|
63
|
-
this.rest().sink([])
|
|
64
|
-
}
|
|
65
|
-
}
|
package/src/util/index.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { Upgrader } from '@libp2p/interfaces/transport'
|
|
2
|
-
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
3
|
-
import { resolve } from 'path'
|
|
4
|
-
|
|
5
|
-
export const passThroughUpgrader: Upgrader = {
|
|
6
|
-
// @ts-expect-error
|
|
7
|
-
upgradeInbound: maConn => maConn,
|
|
8
|
-
// @ts-expect-error
|
|
9
|
-
upgradeOutbound: maConn => maConn
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Converts the multiaddr to a nodejs NET compliant option
|
|
14
|
-
* for .connect or .listen
|
|
15
|
-
*
|
|
16
|
-
* @param {Multiaddr} addr
|
|
17
|
-
* @returns {string|object} A nodejs NET compliant option
|
|
18
|
-
*/
|
|
19
|
-
export function multiaddrToNetConfig (addr: Multiaddr) {
|
|
20
|
-
const listenPath = addr.getPath()
|
|
21
|
-
// unix socket listening
|
|
22
|
-
if (listenPath) {
|
|
23
|
-
return resolve(listenPath)
|
|
24
|
-
}
|
|
25
|
-
// tcp listening
|
|
26
|
-
return addr.nodeAddress()
|
|
27
|
-
}
|