@libp2p/daemon-server 0.0.1 → 1.0.1
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 +1 -1
- package/dist/src/dht.d.ts.map +1 -1
- package/dist/src/dht.js +23 -22
- package/dist/src/dht.js.map +1 -1
- package/dist/src/index.d.ts +19 -29
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +131 -123
- 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 +44 -22
- package/dist/src/pubsub.js.map +1 -1
- package/dist/src/responses.d.ts +2 -2
- package/dist/src/responses.d.ts.map +1 -1
- package/dist/src/responses.js +5 -3
- package/dist/src/responses.js.map +1 -1
- package/package.json +16 -21
- package/src/dht.ts +24 -24
- package/src/index.ts +172 -164
- package/src/pubsub.ts +46 -27
- package/src/responses.ts +7 -5
- package/dist/src/client.d.ts +0 -26
- package/dist/src/client.d.ts.map +0 -1
- package/dist/src/client.js +0 -43
- package/dist/src/client.js.map +0 -1
- 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 -13
- package/dist/src/util/index.d.ts.map +0 -1
- package/dist/src/util/index.js +0 -26
- package/dist/src/util/index.js.map +0 -1
- package/src/client.ts +0 -56
- package/src/stream-handler.ts +0 -65
- package/src/util/index.ts +0 -30
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/daemon-server",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "API server for libp2p-daemon instances",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
|
-
"homepage": "https://github.com/libp2p/js-libp2p-daemon/tree/master/packages/libp2p-daemon#readme",
|
|
6
|
+
"homepage": "https://github.com/libp2p/js-libp2p-daemon/tree/master/packages/libp2p-daemon-server#readme",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "git+https://github.com/libp2p/js-libp2p-daemon.git"
|
|
@@ -18,9 +18,6 @@
|
|
|
18
18
|
"node": ">=16.0.0",
|
|
19
19
|
"npm": ">=7.0.0"
|
|
20
20
|
},
|
|
21
|
-
"bin": {
|
|
22
|
-
"jsp2pd": "src/cli/bin.js"
|
|
23
|
-
},
|
|
24
21
|
"type": "module",
|
|
25
22
|
"types": "./dist/src/index.d.ts",
|
|
26
23
|
"files": [
|
|
@@ -126,34 +123,32 @@
|
|
|
126
123
|
]
|
|
127
124
|
},
|
|
128
125
|
"scripts": {
|
|
126
|
+
"clean": "aegir clean",
|
|
129
127
|
"lint": "aegir lint",
|
|
130
|
-
"dep-check": "aegir dep-check
|
|
131
|
-
"build": "
|
|
128
|
+
"dep-check": "aegir dep-check",
|
|
129
|
+
"build": "aegir build",
|
|
132
130
|
"pretest": "npm run build",
|
|
133
|
-
"test": "aegir test -t node
|
|
134
|
-
"test:node": "aegir test -t node
|
|
135
|
-
"release": "
|
|
131
|
+
"test": "aegir test -t node",
|
|
132
|
+
"test:node": "aegir test -t node",
|
|
133
|
+
"release": "aegir release"
|
|
136
134
|
},
|
|
137
135
|
"dependencies": {
|
|
138
|
-
"@
|
|
139
|
-
"@libp2p/daemon-protocol": "^0.0.0",
|
|
136
|
+
"@libp2p/daemon-protocol": "^1.0.0",
|
|
140
137
|
"@libp2p/interfaces": "^1.3.17",
|
|
138
|
+
"@libp2p/logger": "^1.1.2",
|
|
139
|
+
"@libp2p/peer-id": "^1.1.8",
|
|
140
|
+
"@libp2p/tcp": "^1.0.6",
|
|
141
141
|
"@multiformats/multiaddr": "^10.1.8",
|
|
142
142
|
"it-drain": "^1.0.5",
|
|
143
|
-
"it-handshake": "^3.0.1",
|
|
144
143
|
"it-length-prefixed": "^7.0.1",
|
|
145
144
|
"it-pipe": "^2.0.3",
|
|
146
145
|
"it-pushable": "^2.0.1",
|
|
147
|
-
"multiformats": "^9.4
|
|
146
|
+
"multiformats": "^9.6.4",
|
|
148
147
|
"uint8arrays": "^3.0.0"
|
|
149
148
|
},
|
|
150
149
|
"devDependencies": {
|
|
151
|
-
"aegir": "^
|
|
152
|
-
"
|
|
153
|
-
"
|
|
154
|
-
"it-pair": "^2.0.2",
|
|
155
|
-
"mocha": "^9.1.1",
|
|
156
|
-
"p-defer": "^4.0.0",
|
|
157
|
-
"sinon": "^13.0.1"
|
|
150
|
+
"aegir": "^37.0.5",
|
|
151
|
+
"sinon": "^13.0.1",
|
|
152
|
+
"ts-sinon": "^2.0.2"
|
|
158
153
|
}
|
|
159
154
|
}
|
package/src/dht.ts
CHANGED
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
/* eslint max-depth: ["error", 6] */
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
|
-
DHTResponse
|
|
4
|
+
DHTResponse
|
|
5
5
|
} from '@libp2p/daemon-protocol'
|
|
6
6
|
import { ErrorResponse, OkResponse } from './responses.js'
|
|
7
7
|
import type { PeerId } from '@libp2p/interfaces/peer-id'
|
|
8
8
|
import type { DualDHT } from '@libp2p/interfaces/dht'
|
|
9
9
|
import type { CID } from 'multiformats/cid'
|
|
10
10
|
import drain from 'it-drain'
|
|
11
|
+
import { logger } from '@libp2p/logger'
|
|
12
|
+
|
|
13
|
+
const log = logger('libp2p:daemon-server:dht')
|
|
11
14
|
|
|
12
15
|
export interface DHTOperationsInit {
|
|
13
16
|
dht: DualDHT
|
|
14
17
|
}
|
|
15
18
|
|
|
16
19
|
export class DHTOperations {
|
|
17
|
-
private dht: DualDHT
|
|
20
|
+
private readonly dht: DualDHT
|
|
18
21
|
|
|
19
22
|
constructor (init: DHTOperationsInit) {
|
|
20
23
|
const { dht } = init
|
|
@@ -23,8 +26,13 @@ export class DHTOperations {
|
|
|
23
26
|
}
|
|
24
27
|
|
|
25
28
|
async * provide (cid: CID) {
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
try {
|
|
30
|
+
await drain(this.dht.provide(cid))
|
|
31
|
+
yield OkResponse()
|
|
32
|
+
} catch (err: any) {
|
|
33
|
+
log.error(err)
|
|
34
|
+
yield ErrorResponse(err)
|
|
35
|
+
}
|
|
28
36
|
}
|
|
29
37
|
|
|
30
38
|
async * getClosestPeers (key: Uint8Array) {
|
|
@@ -39,33 +47,22 @@ export class DHTOperations {
|
|
|
39
47
|
yield * event.closer.map(peer => DHTResponse.encode({
|
|
40
48
|
type: DHTResponse.Type.VALUE,
|
|
41
49
|
value: peer.id.toBytes()
|
|
42
|
-
})
|
|
50
|
+
}))
|
|
43
51
|
}
|
|
44
52
|
}
|
|
45
53
|
|
|
46
54
|
yield DHTResponse.encode({
|
|
47
55
|
type: DHTResponse.Type.END
|
|
48
|
-
})
|
|
56
|
+
})
|
|
49
57
|
}
|
|
50
58
|
|
|
51
59
|
async * getPublicKey (peerId: PeerId) {
|
|
52
60
|
yield ErrorResponse(new Error('FIX ME: not implemented'))
|
|
53
|
-
|
|
54
|
-
/*
|
|
55
|
-
const pubKey = await this.dht.getPublicKey(peerId)
|
|
56
|
-
|
|
57
|
-
yield OkResponse({
|
|
58
|
-
dht: {
|
|
59
|
-
type: DHTResponse.Type.VALUE,
|
|
60
|
-
value: pubKey.bytes
|
|
61
|
-
}
|
|
62
|
-
})
|
|
63
|
-
*/
|
|
64
61
|
}
|
|
65
62
|
|
|
66
63
|
async * getValue (key: Uint8Array) {
|
|
67
64
|
try {
|
|
68
|
-
for await (const event of this.dht.
|
|
65
|
+
for await (const event of this.dht.get(key)) {
|
|
69
66
|
if (event.name === 'VALUE') {
|
|
70
67
|
yield OkResponse({
|
|
71
68
|
dht: {
|
|
@@ -76,7 +73,8 @@ export class DHTOperations {
|
|
|
76
73
|
}
|
|
77
74
|
}
|
|
78
75
|
} catch (err: any) {
|
|
79
|
-
|
|
76
|
+
log.error(err)
|
|
77
|
+
yield ErrorResponse(err)
|
|
80
78
|
}
|
|
81
79
|
}
|
|
82
80
|
|
|
@@ -86,7 +84,8 @@ export class DHTOperations {
|
|
|
86
84
|
|
|
87
85
|
yield OkResponse()
|
|
88
86
|
} catch (err: any) {
|
|
89
|
-
|
|
87
|
+
log.error(err)
|
|
88
|
+
yield ErrorResponse(err)
|
|
90
89
|
}
|
|
91
90
|
}
|
|
92
91
|
|
|
@@ -108,6 +107,7 @@ export class DHTOperations {
|
|
|
108
107
|
|
|
109
108
|
throw new Error('Peer not found')
|
|
110
109
|
} catch (err: any) {
|
|
110
|
+
log.error(err)
|
|
111
111
|
yield ErrorResponse(err)
|
|
112
112
|
}
|
|
113
113
|
}
|
|
@@ -132,13 +132,13 @@ export class DHTOperations {
|
|
|
132
132
|
type: DHTResponse.Type.VALUE,
|
|
133
133
|
peer: {
|
|
134
134
|
id: provider.id.toBytes(),
|
|
135
|
-
addrs: (provider.multiaddrs
|
|
135
|
+
addrs: (provider.multiaddrs ?? []).map(m => m.bytes)
|
|
136
136
|
}
|
|
137
|
-
})
|
|
137
|
+
})
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
if (maxNumProviders === found) {
|
|
141
|
-
|
|
141
|
+
break
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
144
|
}
|
|
@@ -148,6 +148,6 @@ export class DHTOperations {
|
|
|
148
148
|
|
|
149
149
|
yield DHTResponse.encode({
|
|
150
150
|
type: DHTResponse.Type.END
|
|
151
|
-
})
|
|
151
|
+
})
|
|
152
152
|
}
|
|
153
153
|
}
|