@libp2p/kad-dht 15.0.1 → 15.0.2-185b23eac
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/index.min.js +2 -15
- package/dist/index.min.js.map +7 -0
- package/dist/src/content-fetching/index.d.ts +4 -4
- package/dist/src/content-fetching/index.d.ts.map +1 -1
- package/dist/src/content-fetching/index.js +14 -7
- package/dist/src/content-fetching/index.js.map +1 -1
- package/dist/src/content-routing/index.d.ts.map +1 -1
- package/dist/src/content-routing/index.js +8 -4
- package/dist/src/content-routing/index.js.map +1 -1
- package/dist/src/index.d.ts +9 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/kad-dht.js +2 -2
- package/dist/src/kad-dht.js.map +1 -1
- package/dist/src/network.d.ts +10 -2
- package/dist/src/network.d.ts.map +1 -1
- package/dist/src/network.js +10 -11
- package/dist/src/network.js.map +1 -1
- package/dist/src/peer-distance-list.d.ts +9 -3
- package/dist/src/peer-distance-list.d.ts.map +1 -1
- package/dist/src/peer-distance-list.js +6 -5
- package/dist/src/peer-distance-list.js.map +1 -1
- package/dist/src/peer-routing/index.d.ts +3 -3
- package/dist/src/peer-routing/index.d.ts.map +1 -1
- package/dist/src/peer-routing/index.js +33 -15
- package/dist/src/peer-routing/index.js.map +1 -1
- package/dist/src/providers.d.ts +4 -4
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/providers.js +8 -8
- package/dist/src/providers.js.map +1 -1
- package/dist/src/query/events.d.ts +8 -7
- package/dist/src/query/events.d.ts.map +1 -1
- package/dist/src/query/events.js +0 -9
- package/dist/src/query/events.js.map +1 -1
- package/dist/src/query/manager.d.ts +2 -0
- package/dist/src/query/manager.d.ts.map +1 -1
- package/dist/src/query/manager.js +23 -8
- package/dist/src/query/manager.js.map +1 -1
- package/dist/src/query/query-path.d.ts +3 -3
- package/dist/src/query/query-path.d.ts.map +1 -1
- package/dist/src/query/query-path.js +8 -16
- package/dist/src/query/query-path.js.map +1 -1
- package/dist/src/query/types.d.ts +1 -1
- package/dist/src/query/types.d.ts.map +1 -1
- package/dist/src/query-self.d.ts +2 -3
- package/dist/src/query-self.d.ts.map +1 -1
- package/dist/src/query-self.js +11 -14
- package/dist/src/query-self.js.map +1 -1
- package/dist/src/routing-table/closest-peers.js +1 -1
- package/dist/src/routing-table/closest-peers.js.map +1 -1
- package/dist/src/routing-table/k-bucket.js +1 -1
- package/dist/src/routing-table/k-bucket.js.map +1 -1
- package/package.json +12 -12
- package/src/content-fetching/index.ts +15 -8
- package/src/content-routing/index.ts +8 -4
- package/src/index.ts +9 -2
- package/src/kad-dht.ts +2 -2
- package/src/network.ts +18 -11
- package/src/peer-distance-list.ts +9 -7
- package/src/peer-routing/index.ts +34 -16
- package/src/providers.ts +9 -9
- package/src/query/events.ts +8 -19
- package/src/query/manager.ts +26 -8
- package/src/query/query-path.ts +11 -19
- package/src/query/types.ts +1 -1
- package/src/query-self.ts +15 -17
- package/src/routing-table/closest-peers.ts +1 -1
- package/src/routing-table/k-bucket.ts +1 -1
- package/dist/typedoc-urls.json +0 -59
|
@@ -29,25 +29,26 @@ export class PeerDistanceList {
|
|
|
29
29
|
* The peers in the list, in order of distance from the origin key
|
|
30
30
|
*/
|
|
31
31
|
get peers() {
|
|
32
|
-
return this.peerDistances
|
|
32
|
+
return [...this.peerDistances];
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* Add a peerId to the list.
|
|
36
36
|
*/
|
|
37
|
-
async add(peer) {
|
|
37
|
+
async add(peer, path = -1) {
|
|
38
38
|
const dhtKey = await convertPeerId(peer.id);
|
|
39
|
-
this.addWithKadId(peer, dhtKey);
|
|
39
|
+
this.addWithKadId(peer, dhtKey, path);
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
42
|
* Add a peerId to the list.
|
|
43
43
|
*/
|
|
44
|
-
addWithKadId(peer, kadId) {
|
|
44
|
+
addWithKadId(peer, kadId, path = -1) {
|
|
45
45
|
if (this.peerDistances.find(pd => pd.peer.id.equals(peer.id)) != null) {
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
48
48
|
const el = {
|
|
49
49
|
peer,
|
|
50
|
-
distance: uint8ArrayXor(this.originDhtKey, kadId)
|
|
50
|
+
distance: uint8ArrayXor(this.originDhtKey, kadId),
|
|
51
|
+
path
|
|
51
52
|
};
|
|
52
53
|
let added = false;
|
|
53
54
|
for (let j = 0; j < this.peerDistances.length; j++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-distance-list.js","sourceRoot":"","sources":["../../src/peer-distance-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"peer-distance-list.js","sourceRoot":"","sources":["../../src/peer-distance-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DHTRecord, FinalPeerEvent, QueryEvent, Validators } from '../index.js';
|
|
2
|
-
import type { Network } from '../network.js';
|
|
2
|
+
import type { Network, SendMessageOptions } from '../network.js';
|
|
3
3
|
import type { QueryManager, QueryOptions } from '../query/manager.js';
|
|
4
4
|
import type { RoutingTable } from '../routing-table/index.js';
|
|
5
5
|
import type { ComponentLogger, Metrics, PeerId, PeerInfo, PeerStore, RoutingOptions } from '@libp2p/interface';
|
|
@@ -33,7 +33,7 @@ export declare class PeerRouting {
|
|
|
33
33
|
/**
|
|
34
34
|
* Get a value via rpc call for the given parameters
|
|
35
35
|
*/
|
|
36
|
-
_getValueSingle(peer: PeerId, key: Uint8Array, options
|
|
36
|
+
_getValueSingle(peer: PeerId, key: Uint8Array, options: SendMessageOptions): AsyncGenerator<QueryEvent>;
|
|
37
37
|
/**
|
|
38
38
|
* Get the public key directly from a node
|
|
39
39
|
*/
|
|
@@ -53,7 +53,7 @@ export declare class PeerRouting {
|
|
|
53
53
|
*
|
|
54
54
|
* Note: The peerStore is updated with new addresses found for the given peer.
|
|
55
55
|
*/
|
|
56
|
-
getValueOrPeers(peer: PeerId, key: Uint8Array, options
|
|
56
|
+
getValueOrPeers(peer: PeerId, key: Uint8Array, options: SendMessageOptions): AsyncGenerator<QueryEvent>;
|
|
57
57
|
/**
|
|
58
58
|
* Verify a record, fetching missing public keys from the network.
|
|
59
59
|
* Throws an error if the record is invalid.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer-routing/index.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEpF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer-routing/index.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEpF,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAErE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAU,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEtH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAElB,UAAU,EAAE,qBAAqB,EAAE,IAAI,EAAE,eAAe;IAiBrE;;;OAGG;IACG,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAsCjE;;OAEG;IACK,eAAe,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,GAAG,cAAc,CAAC,UAAU,CAAC;IAShH;;OAEG;IACK,oBAAoB,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IAgCrG;;OAEG;IACK,QAAQ,CAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,cAAc,GAAG,UAAU,CAAC;IAqExG;;;OAGG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IA4CjG;;;;;OAKG;IACK,eAAe,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,GAAG,cAAc,CAAC,UAAU,CAAC;IAyBhH;;;OAGG;IACG,mBAAmB,CAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5D;;OAEG;IACG,qBAAqB,CAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAoDvF"}
|
|
@@ -75,7 +75,7 @@ export class PeerRouting {
|
|
|
75
75
|
/**
|
|
76
76
|
* Get a value via rpc call for the given parameters
|
|
77
77
|
*/
|
|
78
|
-
async *_getValueSingle(peer, key, options
|
|
78
|
+
async *_getValueSingle(peer, key, options) {
|
|
79
79
|
const msg = {
|
|
80
80
|
type: MessageType.GET_VALUE,
|
|
81
81
|
key
|
|
@@ -87,7 +87,10 @@ export class PeerRouting {
|
|
|
87
87
|
*/
|
|
88
88
|
async *getPublicKeyFromNode(peer, options = {}) {
|
|
89
89
|
const pkKey = keyForPublicKey(peer);
|
|
90
|
-
for await (const event of this._getValueSingle(peer, pkKey,
|
|
90
|
+
for await (const event of this._getValueSingle(peer, pkKey, {
|
|
91
|
+
...options,
|
|
92
|
+
path: -1
|
|
93
|
+
})) {
|
|
91
94
|
yield event;
|
|
92
95
|
if (event.name === 'PEER_RESPONSE' && event.record != null) {
|
|
93
96
|
const publicKey = publicKeyFromProtobuf(event.record.value);
|
|
@@ -120,7 +123,8 @@ export class PeerRouting {
|
|
|
120
123
|
this.log('found local');
|
|
121
124
|
yield finalPeerEvent({
|
|
122
125
|
from: this.peerId,
|
|
123
|
-
peer: pi
|
|
126
|
+
peer: pi,
|
|
127
|
+
path: -1
|
|
124
128
|
}, options);
|
|
125
129
|
return;
|
|
126
130
|
}
|
|
@@ -128,21 +132,26 @@ export class PeerRouting {
|
|
|
128
132
|
let foundPeer = false;
|
|
129
133
|
if (options.useNetwork !== false) {
|
|
130
134
|
const self = this; // eslint-disable-line @typescript-eslint/no-this-alias
|
|
131
|
-
const findPeerQuery = async function* ({ peer, signal }) {
|
|
135
|
+
const findPeerQuery = async function* ({ peer, signal, path }) {
|
|
132
136
|
const request = {
|
|
133
137
|
type: MessageType.FIND_NODE,
|
|
134
138
|
key: id.toMultihash().bytes
|
|
135
139
|
};
|
|
136
140
|
for await (const event of self.network.sendRequest(peer, request, {
|
|
137
141
|
...options,
|
|
138
|
-
signal
|
|
142
|
+
signal,
|
|
143
|
+
path
|
|
139
144
|
})) {
|
|
140
145
|
yield event;
|
|
141
146
|
if (event.name === 'PEER_RESPONSE') {
|
|
142
147
|
const match = event.closer.find((p) => p.id.equals(id));
|
|
143
148
|
// found the peer
|
|
144
149
|
if (match != null) {
|
|
145
|
-
yield finalPeerEvent({
|
|
150
|
+
yield finalPeerEvent({
|
|
151
|
+
from: event.from,
|
|
152
|
+
peer: match,
|
|
153
|
+
path: event.path
|
|
154
|
+
}, options);
|
|
146
155
|
}
|
|
147
156
|
}
|
|
148
157
|
}
|
|
@@ -155,7 +164,10 @@ export class PeerRouting {
|
|
|
155
164
|
}
|
|
156
165
|
}
|
|
157
166
|
if (!foundPeer) {
|
|
158
|
-
yield queryErrorEvent({
|
|
167
|
+
yield queryErrorEvent({
|
|
168
|
+
from: this.peerId,
|
|
169
|
+
error: new NotFoundError('Not found')
|
|
170
|
+
}, options);
|
|
159
171
|
}
|
|
160
172
|
}
|
|
161
173
|
/**
|
|
@@ -168,8 +180,8 @@ export class PeerRouting {
|
|
|
168
180
|
const tablePeers = this.routingTable.closestPeers(kadId);
|
|
169
181
|
const self = this; // eslint-disable-line @typescript-eslint/no-this-alias
|
|
170
182
|
const peers = new PeerDistanceList(kadId, this.routingTable.kBucketSize);
|
|
171
|
-
await Promise.all(tablePeers.map(async (peer) => { await peers.add({ id: peer, multiaddrs: [] }); }));
|
|
172
|
-
const getCloserPeersQuery = async function* ({ peer, signal }) {
|
|
183
|
+
await Promise.all(tablePeers.map(async (peer) => { await peers.add({ id: peer, multiaddrs: [] }, -1); }));
|
|
184
|
+
const getCloserPeersQuery = async function* ({ peer, signal, path }) {
|
|
173
185
|
self.log('closerPeersSingle %s from %p', uint8ArrayToString(key, 'base32'), peer);
|
|
174
186
|
const request = {
|
|
175
187
|
type: MessageType.FIND_NODE,
|
|
@@ -177,22 +189,24 @@ export class PeerRouting {
|
|
|
177
189
|
};
|
|
178
190
|
yield* self.network.sendRequest(peer, request, {
|
|
179
191
|
...options,
|
|
180
|
-
signal
|
|
192
|
+
signal,
|
|
193
|
+
path
|
|
181
194
|
});
|
|
182
195
|
};
|
|
183
196
|
for await (const event of this.queryManager.run(key, getCloserPeersQuery, options)) {
|
|
184
197
|
if (event.name === 'PEER_RESPONSE') {
|
|
185
198
|
await Promise.all(event.closer.map(async (peerData) => {
|
|
186
|
-
await peers.add(peerData);
|
|
199
|
+
await peers.add(peerData, event.path);
|
|
187
200
|
}));
|
|
188
201
|
}
|
|
189
202
|
yield event;
|
|
190
203
|
}
|
|
191
204
|
this.log('found %d peers close to %b', peers.length, key);
|
|
192
|
-
for (const peer of peers.peers) {
|
|
205
|
+
for (const { peer, path } of peers.peers) {
|
|
193
206
|
yield finalPeerEvent({
|
|
194
207
|
from: this.peerId,
|
|
195
|
-
peer
|
|
208
|
+
peer,
|
|
209
|
+
path
|
|
196
210
|
}, options);
|
|
197
211
|
}
|
|
198
212
|
}
|
|
@@ -202,7 +216,7 @@ export class PeerRouting {
|
|
|
202
216
|
*
|
|
203
217
|
* Note: The peerStore is updated with new addresses found for the given peer.
|
|
204
218
|
*/
|
|
205
|
-
async *getValueOrPeers(peer, key, options
|
|
219
|
+
async *getValueOrPeers(peer, key, options) {
|
|
206
220
|
for await (const event of this._getValueSingle(peer, key, options)) {
|
|
207
221
|
if (event.name === 'PEER_RESPONSE') {
|
|
208
222
|
if (event.record != null) {
|
|
@@ -213,7 +227,11 @@ export class PeerRouting {
|
|
|
213
227
|
catch (err) {
|
|
214
228
|
const errMsg = 'invalid record received, discarded';
|
|
215
229
|
this.log(errMsg);
|
|
216
|
-
yield queryErrorEvent({
|
|
230
|
+
yield queryErrorEvent({
|
|
231
|
+
from: event.from,
|
|
232
|
+
error: new QueryError(errMsg),
|
|
233
|
+
path: options.path
|
|
234
|
+
}, options);
|
|
217
235
|
continue;
|
|
218
236
|
}
|
|
219
237
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/peer-routing/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/peer-routing/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/providers.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ComponentLogger, Metrics, PeerId } from '@libp2p/interface';
|
|
1
|
+
import type { AbortOptions, ComponentLogger, Metrics, PeerId } from '@libp2p/interface';
|
|
2
2
|
import type { Datastore } from 'interface-datastore';
|
|
3
3
|
import type { Mortice } from 'mortice';
|
|
4
4
|
import type { CID } from 'multiformats';
|
|
@@ -24,15 +24,15 @@ export declare class Providers {
|
|
|
24
24
|
/**
|
|
25
25
|
* Add a new provider for the given CID
|
|
26
26
|
*/
|
|
27
|
-
addProvider(cid: CID, provider: PeerId): Promise<void>;
|
|
27
|
+
addProvider(cid: CID, provider: PeerId, options?: AbortOptions): Promise<void>;
|
|
28
28
|
/**
|
|
29
29
|
* Remove a provider for the given CID
|
|
30
30
|
*/
|
|
31
|
-
removeProvider(cid: CID, provider: PeerId): Promise<void>;
|
|
31
|
+
removeProvider(cid: CID, provider: PeerId, options?: AbortOptions): Promise<void>;
|
|
32
32
|
/**
|
|
33
33
|
* Get a list of providers for the given CID
|
|
34
34
|
*/
|
|
35
|
-
getProviders(cid: CID): Promise<PeerId[]>;
|
|
35
|
+
getProviders(cid: CID, options?: AbortOptions): Promise<PeerId[]>;
|
|
36
36
|
/**
|
|
37
37
|
* Write a provider into the given store
|
|
38
38
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/providers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAU,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/providers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAU,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAEvC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAEjB,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE,aAAa;IAOjE;;OAEG;IACG,WAAW,CAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrF;;OAEG;IACG,cAAc,CAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxF;;OAEG;IACG,YAAY,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAcxE;;OAEG;YACW,kBAAkB;IAOhC;;OAEG;YACW,aAAa;CAW5B"}
|
package/dist/src/providers.js
CHANGED
|
@@ -18,7 +18,7 @@ export class Providers {
|
|
|
18
18
|
/**
|
|
19
19
|
* Add a new provider for the given CID
|
|
20
20
|
*/
|
|
21
|
-
async addProvider(cid, provider) {
|
|
21
|
+
async addProvider(cid, provider, options) {
|
|
22
22
|
const release = await this.lock.readLock();
|
|
23
23
|
try {
|
|
24
24
|
this.log('%p provides %s', provider, cid);
|
|
@@ -31,7 +31,7 @@ export class Providers {
|
|
|
31
31
|
/**
|
|
32
32
|
* Remove a provider for the given CID
|
|
33
33
|
*/
|
|
34
|
-
async removeProvider(cid, provider) {
|
|
34
|
+
async removeProvider(cid, provider, options) {
|
|
35
35
|
const release = await this.lock.writeLock();
|
|
36
36
|
try {
|
|
37
37
|
const key = toProviderKey(this.datastorePrefix, cid, provider);
|
|
@@ -45,11 +45,11 @@ export class Providers {
|
|
|
45
45
|
/**
|
|
46
46
|
* Get a list of providers for the given CID
|
|
47
47
|
*/
|
|
48
|
-
async getProviders(cid) {
|
|
48
|
+
async getProviders(cid, options) {
|
|
49
49
|
const release = await this.lock.readLock();
|
|
50
50
|
try {
|
|
51
51
|
this.log('get providers for %c', cid);
|
|
52
|
-
const provs = await this.loadProviders(cid);
|
|
52
|
+
const provs = await this.loadProviders(cid, options);
|
|
53
53
|
this.log('got %d providers for %c', provs.size, cid);
|
|
54
54
|
return [...provs.keys()];
|
|
55
55
|
}
|
|
@@ -60,18 +60,18 @@ export class Providers {
|
|
|
60
60
|
/**
|
|
61
61
|
* Write a provider into the given store
|
|
62
62
|
*/
|
|
63
|
-
async writeProviderEntry(cid, peerId, time = new Date()) {
|
|
63
|
+
async writeProviderEntry(cid, peerId, time = new Date(), options) {
|
|
64
64
|
const key = toProviderKey(this.datastorePrefix, cid, peerId);
|
|
65
65
|
const buffer = varint.encode(time.getTime());
|
|
66
|
-
await this.datastore.put(key, buffer);
|
|
66
|
+
await this.datastore.put(key, buffer, options);
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
69
69
|
* Load providers for the given CID from the store
|
|
70
70
|
*/
|
|
71
|
-
async loadProviders(cid) {
|
|
71
|
+
async loadProviders(cid, options) {
|
|
72
72
|
const providers = new PeerMap();
|
|
73
73
|
const key = toProviderKey(this.datastorePrefix, cid);
|
|
74
|
-
for await (const entry of this.datastore.query({ prefix: key.toString() })) {
|
|
74
|
+
for await (const entry of this.datastore.query({ prefix: key.toString() }, options)) {
|
|
75
75
|
const { peerId } = parseProviderKey(entry.key);
|
|
76
76
|
providers.set(peerId, readProviderTime(entry.value));
|
|
77
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAkB9E;;GAEG;AACH,MAAM,OAAO,SAAS;IACH,GAAG,CAAQ;IACX,SAAS,CAAW;IACpB,eAAe,CAAQ;IACvB,IAAI,CAAS;IAE9B,YAAa,UAA+B,EAAE,IAAmB;QAC/D,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,YAAY,CAAC,CAAA;QACxE,IAAI,CAAC,eAAe,GAAG,GAAG,IAAI,CAAC,eAAe,WAAW,CAAA;QACzD,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAE,GAAQ,EAAE,QAAgB;
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import type { MessageType, SendQueryEvent, PeerResponseEvent,
|
|
1
|
+
import type { MessageType, SendQueryEvent, PeerResponseEvent, AddPeerEvent, ValueEvent, ProviderEvent, QueryErrorEvent, FinalPeerEvent } from '../index.js';
|
|
2
2
|
import type { PeerId, PeerInfo } from '@libp2p/interface';
|
|
3
3
|
import type { Libp2pRecord } from '@libp2p/record';
|
|
4
4
|
import type { ProgressOptions } from 'progress-events';
|
|
5
5
|
export interface QueryEventFields {
|
|
6
6
|
to: PeerId;
|
|
7
7
|
type: MessageType;
|
|
8
|
+
path: number;
|
|
8
9
|
}
|
|
9
10
|
export declare function sendQueryEvent(fields: QueryEventFields, options?: ProgressOptions): SendQueryEvent;
|
|
10
11
|
export interface PeerResponseEventFields {
|
|
11
12
|
from: PeerId;
|
|
12
13
|
messageType: MessageType;
|
|
14
|
+
path: number;
|
|
13
15
|
closer?: PeerInfo[];
|
|
14
16
|
providers?: PeerInfo[];
|
|
15
17
|
record?: Libp2pRecord;
|
|
@@ -18,11 +20,13 @@ export declare function peerResponseEvent(fields: PeerResponseEventFields, optio
|
|
|
18
20
|
export interface FinalPeerEventFields {
|
|
19
21
|
from: PeerId;
|
|
20
22
|
peer: PeerInfo;
|
|
23
|
+
path: number;
|
|
21
24
|
}
|
|
22
25
|
export declare function finalPeerEvent(fields: FinalPeerEventFields, options?: ProgressOptions): FinalPeerEvent;
|
|
23
26
|
export interface ErrorEventFields {
|
|
24
27
|
from: PeerId;
|
|
25
28
|
error: Error;
|
|
29
|
+
path?: number;
|
|
26
30
|
}
|
|
27
31
|
export declare function queryErrorEvent(fields: ErrorEventFields, options?: ProgressOptions): QueryErrorEvent;
|
|
28
32
|
export interface ProviderEventFields {
|
|
@@ -35,12 +39,9 @@ export interface ValueEventFields {
|
|
|
35
39
|
value: Uint8Array;
|
|
36
40
|
}
|
|
37
41
|
export declare function valueEvent(fields: ValueEventFields, options?: ProgressOptions): ValueEvent;
|
|
38
|
-
export interface
|
|
42
|
+
export interface AddPeerEventFields {
|
|
39
43
|
peer: PeerId;
|
|
44
|
+
path: number;
|
|
40
45
|
}
|
|
41
|
-
export declare function addPeerEvent(fields:
|
|
42
|
-
export interface DialPeerEventFields {
|
|
43
|
-
peer: PeerId;
|
|
44
|
-
}
|
|
45
|
-
export declare function dialPeerEvent(fields: DialPeerEventFields, options?: ProgressOptions): DialPeerEvent;
|
|
46
|
+
export declare function addPeerEvent(fields: AddPeerEventFields, options?: ProgressOptions): AddPeerEvent;
|
|
46
47
|
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/query/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/query/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC3J,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,cAAc,CAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAE,eAAoB,GAAG,cAAc,CAYvG;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,WAAW,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAA;IACnB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAED,wBAAgB,iBAAiB,CAAE,MAAM,EAAE,uBAAuB,EAAE,OAAO,GAAE,eAAoB,GAAG,iBAAiB,CAapH;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,cAAc,CAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,GAAE,eAAoB,GAAG,cAAc,CAU3G;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,KAAK,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,eAAe,CAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAE,eAAoB,GAAG,eAAe,CAUzG;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,QAAQ,EAAE,CAAA;CACtB;AAED,wBAAgB,aAAa,CAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,GAAE,eAAoB,GAAG,aAAa,CAUxG;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,UAAU,CAAA;CAClB;AAED,wBAAgB,UAAU,CAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAE,eAAoB,GAAG,UAAU,CAU/F;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,YAAY,CAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,GAAE,eAAoB,GAAG,YAAY,CAUrG"}
|
package/dist/src/query/events.js
CHANGED
|
@@ -66,13 +66,4 @@ export function addPeerEvent(fields, options = {}) {
|
|
|
66
66
|
options.onProgress?.(new CustomEvent('kad-dht:query:add-peer', { detail: event }));
|
|
67
67
|
return event;
|
|
68
68
|
}
|
|
69
|
-
export function dialPeerEvent(fields, options = {}) {
|
|
70
|
-
const event = {
|
|
71
|
-
...fields,
|
|
72
|
-
name: 'DIAL_PEER',
|
|
73
|
-
type: 7
|
|
74
|
-
};
|
|
75
|
-
options.onProgress?.(new CustomEvent('kad-dht:query:dial-peer', { detail: event }));
|
|
76
|
-
return event;
|
|
77
|
-
}
|
|
78
69
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/query/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/query/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ export interface QueryManagerInit {
|
|
|
13
13
|
disjointPaths?: number;
|
|
14
14
|
alpha?: number;
|
|
15
15
|
initialQuerySelfHasRun: DeferredPromise<void>;
|
|
16
|
+
allowQueryWithZeroPeers?: boolean;
|
|
16
17
|
routingTable: RoutingTable;
|
|
17
18
|
}
|
|
18
19
|
export interface QueryManagerComponents {
|
|
@@ -42,6 +43,7 @@ export declare class QueryManager implements Startable {
|
|
|
42
43
|
private readonly routingTable;
|
|
43
44
|
private initialQuerySelfHasRun?;
|
|
44
45
|
private readonly logPrefix;
|
|
46
|
+
private readonly allowQueryWithZeroPeers;
|
|
45
47
|
constructor(components: QueryManagerComponents, init: QueryManagerInit);
|
|
46
48
|
isStarted(): boolean;
|
|
47
49
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/query/manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/query/manager.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,WAAW,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sBAAsB,EAAE,eAAe,CAAC,IAAI,CAAC,CAAA;IAC7C,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,eAAe,CAAA;IACvB,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAED,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;GAEG;AACH,qBAAa,YAAa,YAAW,SAAS;IACrC,aAAa,EAAE,MAAM,CAAA;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,kBAAkB,CAAiB;IAC3C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,sBAAsB,CAAC,CAAuB;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAS;gBAEpC,UAAU,EAAE,sBAAsB,EAAE,IAAI,EAAE,gBAAgB;IAmBvE,SAAS,IAAK,OAAO;IAIrB;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAa7B;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAMpB,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;CAqI5G"}
|
|
@@ -2,6 +2,7 @@ import { setMaxListeners } from '@libp2p/interface';
|
|
|
2
2
|
import { PeerSet } from '@libp2p/peer-collections';
|
|
3
3
|
import { anySignal } from 'any-signal';
|
|
4
4
|
import merge from 'it-merge';
|
|
5
|
+
import { pEvent } from 'p-event';
|
|
5
6
|
import { raceSignal } from 'race-signal';
|
|
6
7
|
import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
|
|
7
8
|
import { ALPHA, K, DEFAULT_QUERY_TIMEOUT } from '../constants.js';
|
|
@@ -21,6 +22,7 @@ export class QueryManager {
|
|
|
21
22
|
routingTable;
|
|
22
23
|
initialQuerySelfHasRun;
|
|
23
24
|
logPrefix;
|
|
25
|
+
allowQueryWithZeroPeers;
|
|
24
26
|
constructor(components, init) {
|
|
25
27
|
this.logPrefix = init.logPrefix;
|
|
26
28
|
this.disjointPaths = init.disjointPaths ?? K;
|
|
@@ -30,6 +32,7 @@ export class QueryManager {
|
|
|
30
32
|
this.logger = components.logger;
|
|
31
33
|
this.peerId = components.peerId;
|
|
32
34
|
this.connectionManager = components.connectionManager;
|
|
35
|
+
this.allowQueryWithZeroPeers = init.allowQueryWithZeroPeers ?? false;
|
|
33
36
|
// allow us to stop queries on shut down
|
|
34
37
|
this.shutDownController = new AbortController();
|
|
35
38
|
// make sure we don't make a lot of noise in the logs
|
|
@@ -89,6 +92,15 @@ export class QueryManager {
|
|
|
89
92
|
// query a subset of peers up to `kBucketSize / 2` in length
|
|
90
93
|
let queryFinished = false;
|
|
91
94
|
try {
|
|
95
|
+
if (this.routingTable.size === 0 && !this.allowQueryWithZeroPeers) {
|
|
96
|
+
log('routing table was empty, waiting for some peers before running%s query', options.isSelfQuery === true ? ' self' : '');
|
|
97
|
+
// wait to discover at least one DHT peer that isn't us
|
|
98
|
+
await pEvent(this.routingTable, 'peer:add', {
|
|
99
|
+
signal,
|
|
100
|
+
filter: (event) => !this.peerId.equals(event.detail)
|
|
101
|
+
});
|
|
102
|
+
log('routing table has peers, continuing with%s query', options.isSelfQuery === true ? ' self' : '');
|
|
103
|
+
}
|
|
92
104
|
if (options.isSelfQuery !== true && this.initialQuerySelfHasRun != null) {
|
|
93
105
|
log('waiting for initial query-self query before continuing');
|
|
94
106
|
await raceSignal(this.initialQuerySelfHasRun.promise, signal);
|
|
@@ -99,7 +111,7 @@ export class QueryManager {
|
|
|
99
111
|
const peers = this.routingTable.closestPeers(id);
|
|
100
112
|
const peersToQuery = peers.slice(0, Math.min(this.disjointPaths, peers.length));
|
|
101
113
|
if (peers.length === 0) {
|
|
102
|
-
log.error('
|
|
114
|
+
log.error('running query with no peers');
|
|
103
115
|
return;
|
|
104
116
|
}
|
|
105
117
|
// make sure we don't get trapped in a loop
|
|
@@ -113,7 +125,7 @@ export class QueryManager {
|
|
|
113
125
|
ourPeerId: this.peerId,
|
|
114
126
|
signal,
|
|
115
127
|
query: queryFunc,
|
|
116
|
-
|
|
128
|
+
path: index,
|
|
117
129
|
numPaths: peersToQuery.length,
|
|
118
130
|
alpha: this.alpha,
|
|
119
131
|
queryFuncTimeout: options.queryFuncTimeout,
|
|
@@ -131,21 +143,24 @@ export class QueryManager {
|
|
|
131
143
|
if (event.name === 'PEER_RESPONSE') {
|
|
132
144
|
for (const peer of [...event.closer, ...event.providers]) {
|
|
133
145
|
// eslint-disable-next-line max-depth
|
|
134
|
-
if (!(await this.connectionManager.isDialable(peer.multiaddrs
|
|
146
|
+
if (!(await this.connectionManager.isDialable(peer.multiaddrs, {
|
|
147
|
+
signal
|
|
148
|
+
}))) {
|
|
135
149
|
continue;
|
|
136
150
|
}
|
|
137
|
-
await this.routingTable.add(peer.id
|
|
151
|
+
await this.routingTable.add(peer.id, {
|
|
152
|
+
signal
|
|
153
|
+
});
|
|
138
154
|
}
|
|
139
155
|
}
|
|
140
156
|
yield event;
|
|
157
|
+
signal.throwIfAborted();
|
|
141
158
|
}
|
|
142
159
|
queryFinished = true;
|
|
143
160
|
}
|
|
144
161
|
catch (err) {
|
|
145
|
-
if (
|
|
146
|
-
// ignore
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
162
|
+
if (this.running) {
|
|
163
|
+
// ignore errors thrown during shut down
|
|
149
164
|
throw err;
|
|
150
165
|
}
|
|
151
166
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/query/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EACL,KAAK,EAAE,CAAC,EAAE,qBAAqB,EAChC,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/query/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,11 +29,11 @@ export interface QueryPathOptions extends RoutingOptions {
|
|
|
29
29
|
*/
|
|
30
30
|
alpha: number;
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
32
|
+
* The index within `k` this path represents
|
|
33
33
|
*/
|
|
34
|
-
|
|
34
|
+
path: number;
|
|
35
35
|
/**
|
|
36
|
-
* How many
|
|
36
|
+
* How many disjoint paths are in this query
|
|
37
37
|
*/
|
|
38
38
|
numPaths: number;
|
|
39
39
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-path.d.ts","sourceRoot":"","sources":["../../../src/query/query-path.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query-path.d.ts","sourceRoot":"","sources":["../../../src/query/query-path.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAgB,MAAM,mBAAmB,CAAA;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAEvD,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD;;OAEG;IACH,GAAG,EAAE,UAAU,CAAA;IAEf;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,MAAM,EAAE,WAAW,CAAA;IAEnB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAA;IAEhB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAElB;;OAEG;IACH,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAMD;;;GAGG;AACH,wBAAwB,SAAS,CAAE,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,CAiHzG"}
|