@libp2p/kad-dht 15.0.2 → 15.1.0-aa25d38ab

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.
Files changed (101) hide show
  1. package/dist/index.min.js +2 -15
  2. package/dist/index.min.js.map +7 -0
  3. package/dist/src/constants.d.ts +1 -1
  4. package/dist/src/constants.d.ts.map +1 -1
  5. package/dist/src/constants.js +1 -1
  6. package/dist/src/constants.js.map +1 -1
  7. package/dist/src/content-fetching/index.d.ts +4 -4
  8. package/dist/src/content-fetching/index.d.ts.map +1 -1
  9. package/dist/src/content-fetching/index.js +40 -13
  10. package/dist/src/content-fetching/index.js.map +1 -1
  11. package/dist/src/content-routing/index.d.ts.map +1 -1
  12. package/dist/src/content-routing/index.js +88 -38
  13. package/dist/src/content-routing/index.js.map +1 -1
  14. package/dist/src/index.d.ts +58 -6
  15. package/dist/src/index.d.ts.map +1 -1
  16. package/dist/src/index.js +1 -0
  17. package/dist/src/index.js.map +1 -1
  18. package/dist/src/kad-dht.d.ts +3 -1
  19. package/dist/src/kad-dht.d.ts.map +1 -1
  20. package/dist/src/kad-dht.js +14 -10
  21. package/dist/src/kad-dht.js.map +1 -1
  22. package/dist/src/message/dht.d.ts +1 -1
  23. package/dist/src/message/dht.d.ts.map +1 -1
  24. package/dist/src/message/dht.js +0 -5
  25. package/dist/src/message/dht.js.map +1 -1
  26. package/dist/src/network.d.ts +14 -8
  27. package/dist/src/network.d.ts.map +1 -1
  28. package/dist/src/network.js +17 -16
  29. package/dist/src/network.js.map +1 -1
  30. package/dist/src/peer-distance-list.d.ts +10 -3
  31. package/dist/src/peer-distance-list.d.ts.map +1 -1
  32. package/dist/src/peer-distance-list.js +13 -5
  33. package/dist/src/peer-distance-list.js.map +1 -1
  34. package/dist/src/peer-routing/index.d.ts +10 -8
  35. package/dist/src/peer-routing/index.d.ts.map +1 -1
  36. package/dist/src/peer-routing/index.js +79 -49
  37. package/dist/src/peer-routing/index.js.map +1 -1
  38. package/dist/src/providers.d.ts +4 -4
  39. package/dist/src/providers.d.ts.map +1 -1
  40. package/dist/src/providers.js +12 -12
  41. package/dist/src/providers.js.map +1 -1
  42. package/dist/src/query/events.d.ts +15 -3
  43. package/dist/src/query/events.d.ts.map +1 -1
  44. package/dist/src/query/events.js +9 -0
  45. package/dist/src/query/events.js.map +1 -1
  46. package/dist/src/query/manager.d.ts +3 -5
  47. package/dist/src/query/manager.d.ts.map +1 -1
  48. package/dist/src/query/manager.js +41 -16
  49. package/dist/src/query/manager.js.map +1 -1
  50. package/dist/src/query/query-path.d.ts +10 -14
  51. package/dist/src/query/query-path.d.ts.map +1 -1
  52. package/dist/src/query/query-path.js +67 -53
  53. package/dist/src/query/query-path.js.map +1 -1
  54. package/dist/src/query/types.d.ts +6 -5
  55. package/dist/src/query/types.d.ts.map +1 -1
  56. package/dist/src/query-self.d.ts +2 -3
  57. package/dist/src/query-self.d.ts.map +1 -1
  58. package/dist/src/query-self.js +11 -14
  59. package/dist/src/query-self.js.map +1 -1
  60. package/dist/src/routing-table/closest-peers.js +1 -1
  61. package/dist/src/routing-table/closest-peers.js.map +1 -1
  62. package/dist/src/routing-table/k-bucket.js +1 -1
  63. package/dist/src/routing-table/k-bucket.js.map +1 -1
  64. package/dist/src/rpc/handlers/add-provider.d.ts +1 -1
  65. package/dist/src/rpc/handlers/add-provider.d.ts.map +1 -1
  66. package/dist/src/rpc/handlers/get-providers.js +1 -1
  67. package/dist/src/rpc/handlers/get-providers.js.map +1 -1
  68. package/dist/src/rpc/index.d.ts +7 -7
  69. package/dist/src/rpc/index.d.ts.map +1 -1
  70. package/dist/src/rpc/index.js +1 -1
  71. package/dist/src/rpc/index.js.map +1 -1
  72. package/dist/src/topology-listener.d.ts +2 -2
  73. package/dist/src/topology-listener.d.ts.map +1 -1
  74. package/dist/src/utils.d.ts +1 -0
  75. package/dist/src/utils.d.ts.map +1 -1
  76. package/dist/src/utils.js +4 -0
  77. package/dist/src/utils.js.map +1 -1
  78. package/package.json +30 -39
  79. package/src/constants.ts +1 -1
  80. package/src/content-fetching/index.ts +41 -14
  81. package/src/content-routing/index.ts +93 -45
  82. package/src/index.ts +65 -6
  83. package/src/kad-dht.ts +14 -10
  84. package/src/message/dht.ts +2 -7
  85. package/src/network.ts +36 -22
  86. package/src/peer-distance-list.ts +19 -7
  87. package/src/peer-routing/index.ts +84 -53
  88. package/src/providers.ts +13 -13
  89. package/src/query/events.ts +27 -3
  90. package/src/query/manager.ts +48 -22
  91. package/src/query/query-path.ts +86 -76
  92. package/src/query/types.ts +7 -5
  93. package/src/query-self.ts +15 -17
  94. package/src/routing-table/closest-peers.ts +1 -1
  95. package/src/routing-table/k-bucket.ts +1 -1
  96. package/src/rpc/handlers/add-provider.ts +1 -1
  97. package/src/rpc/handlers/get-providers.ts +1 -1
  98. package/src/rpc/index.ts +12 -8
  99. package/src/topology-listener.ts +2 -2
  100. package/src/utils.ts +9 -0
  101. package/dist/typedoc-urls.json +0 -59
@@ -29,26 +29,34 @@ 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.map(pd => pd.peer);
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 = { index: -1, queued: 0, running: 0, total: 0 }) {
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 = { index: -1, queued: 0, running: 0, total: 0 }) {
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
  };
53
+ if (this.peerDistances.length === this.capacity) {
54
+ const lastPeer = this.peerDistances[this.peerDistances.length - 1];
55
+ // only add if it's closer than our furthest peer
56
+ if (lastPeer != null && uint8ArrayXorCompare(el.distance, lastPeer.distance) !== -1) {
57
+ return;
58
+ }
59
+ }
52
60
  let added = false;
53
61
  for (let j = 0; j < this.peerDistances.length; j++) {
54
62
  const distance = uint8ArrayXorCompare(this.peerDistances[j].distance, el.distance);
@@ -1 +1 @@
1
- {"version":3,"file":"peer-distance-list.js","sourceRoot":"","sources":["../../src/peer-distance-list.ts"],"names":[],"mappings":"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"}
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;AAU1C;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAC3B;;OAEG;IACc,YAAY,CAAY;IAEzC;;OAEG;IACc,QAAQ,CAAQ;IAEzB,aAAa,CAAgB;IAErC,YAAa,YAAwB,EAAE,QAAgB;QACrD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAA;IAClC,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAA;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAE,IAAc,EAAE,OAAqB,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QAC5F,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAE3C,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACvC,CAAC;IAED;;OAEG;IACH,YAAY,CAAE,IAAc,EAAE,KAAiB,EAAE,OAAqB,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QAClH,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YACtE,OAAM;QACR,CAAC;QAED,MAAM,EAAE,GAAiB;YACvB,IAAI;YACJ,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;YACjD,IAAI;SACL,CAAA;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAElE,iDAAiD;YACjD,IAAI,QAAQ,IAAI,IAAI,IAAI,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACpF,OAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,KAAK,GAAG,KAAK,CAAA;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;YAClF,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACrC,KAAK,GAAG,IAAI,CAAA;gBACZ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;gBACnC,MAAK;YACP,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7B,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAE,MAAc;QAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAA;QAC1C,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QAC1D,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAA;QAEnF,OAAO,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;IACjE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAE,OAAiB;QAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,OAAO,CAAC,GAAG,CAChB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CACnD,CAAA;IACH,CAAC;CACF"}
@@ -1,13 +1,15 @@
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';
6
+ import type { ConnectionManager } from '@libp2p/interface-internal';
6
7
  export interface PeerRoutingComponents {
7
8
  peerId: PeerId;
8
9
  peerStore: PeerStore;
9
10
  logger: ComponentLogger;
10
11
  metrics?: Metrics;
12
+ connectionManager: ConnectionManager;
11
13
  }
12
14
  export interface PeerRoutingInit {
13
15
  routingTable: RoutingTable;
@@ -22,8 +24,7 @@ export declare class PeerRouting {
22
24
  private readonly network;
23
25
  private readonly validators;
24
26
  private readonly queryManager;
25
- private readonly peerStore;
26
- private readonly peerId;
27
+ private readonly components;
27
28
  constructor(components: PeerRoutingComponents, init: PeerRoutingInit);
28
29
  /**
29
30
  * Look if we are connected to a peer with the given id.
@@ -33,7 +34,7 @@ export declare class PeerRouting {
33
34
  /**
34
35
  * Get a value via rpc call for the given parameters
35
36
  */
36
- _getValueSingle(peer: PeerId, key: Uint8Array, options?: RoutingOptions): AsyncGenerator<QueryEvent>;
37
+ _getValueSingle(peer: PeerId, key: Uint8Array, options: SendMessageOptions): AsyncGenerator<QueryEvent>;
37
38
  /**
38
39
  * Get the public key directly from a node
39
40
  */
@@ -43,8 +44,8 @@ export declare class PeerRouting {
43
44
  */
44
45
  findPeer(id: PeerId, options?: RoutingOptions): AsyncGenerator<FinalPeerEvent | QueryEvent>;
45
46
  /**
46
- * Kademlia 'FIND_NODE' operation on a key, which could be the bytes from
47
- * a multihash or a peer ID
47
+ * Kademlia 'FIND_NODE' operation on a key, which could be the bytes from a
48
+ * multihash or a peer ID
48
49
  */
49
50
  getClosestPeers(key: Uint8Array, options?: QueryOptions): AsyncGenerator<QueryEvent>;
50
51
  /**
@@ -53,14 +54,15 @@ export declare class PeerRouting {
53
54
  *
54
55
  * Note: The peerStore is updated with new addresses found for the given peer.
55
56
  */
56
- getValueOrPeers(peer: PeerId, key: Uint8Array, options?: RoutingOptions): AsyncGenerator<QueryEvent>;
57
+ getValueOrPeers(peer: PeerId, key: Uint8Array, options: SendMessageOptions): AsyncGenerator<QueryEvent>;
57
58
  /**
58
59
  * Verify a record, fetching missing public keys from the network.
59
60
  * Throws an error if the record is invalid.
60
61
  */
61
62
  _verifyRecordOnline(record: DHTRecord): Promise<void>;
62
63
  /**
63
- * Get the nearest peers to the given query, but if closer than self
64
+ * Get the peers in our routing table that are closer than the passed PeerId
65
+ * to the passed key
64
66
  */
65
67
  getCloserPeersOffline(key: Uint8Array, closerThan: PeerId): Promise<PeerInfo[]>;
66
68
  }
@@ -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;AAC5C,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,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IASjH;;OAEG;IACK,oBAAoB,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IA6BrG;;OAEG;IACK,QAAQ,CAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,cAAc,GAAG,UAAU,CAAC;IA4DxG;;;OAGG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IA0CjG;;;;;OAKG;IACK,eAAe,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,UAAU,CAAC;IAqBjH;;;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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer-routing/index.ts"],"names":[],"mappings":"AAiBA,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;AACtH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAEnE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;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,UAAU,CAAuB;gBAErC,UAAU,EAAE,qBAAqB,EAAE,IAAI,EAAE,eAAe;IAgBrE;;;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;IAuCrG;;OAEG;IACK,QAAQ,CAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,cAAc,CAAC,cAAc,GAAG,UAAU,CAAC;IAuExG;;;OAGG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IAqDjG;;;;;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;;;OAGG;IACG,qBAAqB,CAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CA+CvF"}
@@ -3,7 +3,6 @@ import { InvalidPublicKeyError, NotFoundError } from '@libp2p/interface';
3
3
  import { peerIdFromPublicKey, peerIdFromMultihash } from '@libp2p/peer-id';
4
4
  import { Libp2pRecord } from '@libp2p/record';
5
5
  import * as Digest from 'multiformats/hashes/digest';
6
- import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
7
6
  import { xor as uint8ArrayXor } from 'uint8arrays/xor';
8
7
  import { xorCompare as uint8ArrayXorCompare } from 'uint8arrays/xor-compare';
9
8
  import { QueryError, InvalidRecordError } from '../errors.js';
@@ -18,15 +17,13 @@ export class PeerRouting {
18
17
  network;
19
18
  validators;
20
19
  queryManager;
21
- peerStore;
22
- peerId;
20
+ components;
23
21
  constructor(components, init) {
24
22
  this.routingTable = init.routingTable;
25
23
  this.network = init.network;
26
24
  this.validators = init.validators;
27
25
  this.queryManager = init.queryManager;
28
- this.peerStore = components.peerStore;
29
- this.peerId = components.peerId;
26
+ this.components = components;
30
27
  this.log = components.logger.forComponent(`${init.logPrefix}:peer-routing`);
31
28
  this.findPeer = components.metrics?.traceFunction('libp2p.kadDHT.findPeer', this.findPeer.bind(this), {
32
29
  optionsIndex: 1
@@ -45,7 +42,7 @@ export class PeerRouting {
45
42
  if (p != null) {
46
43
  this.log('findPeerLocal found %p in routing table', peer);
47
44
  try {
48
- peerData = await this.peerStore.get(p);
45
+ peerData = await this.components.peerStore.get(p);
49
46
  }
50
47
  catch (err) {
51
48
  if (err.name !== 'NotFoundError') {
@@ -55,7 +52,7 @@ export class PeerRouting {
55
52
  }
56
53
  if (peerData == null) {
57
54
  try {
58
- peerData = await this.peerStore.get(peer);
55
+ peerData = await this.components.peerStore.get(peer);
59
56
  }
60
57
  catch (err) {
61
58
  if (err.name !== 'NotFoundError') {
@@ -75,7 +72,7 @@ export class PeerRouting {
75
72
  /**
76
73
  * Get a value via rpc call for the given parameters
77
74
  */
78
- async *_getValueSingle(peer, key, options = {}) {
75
+ async *_getValueSingle(peer, key, options) {
79
76
  const msg = {
80
77
  type: MessageType.GET_VALUE,
81
78
  key
@@ -87,7 +84,16 @@ export class PeerRouting {
87
84
  */
88
85
  async *getPublicKeyFromNode(peer, options = {}) {
89
86
  const pkKey = keyForPublicKey(peer);
90
- for await (const event of this._getValueSingle(peer, pkKey, options)) {
87
+ const path = {
88
+ index: -1,
89
+ queued: 0,
90
+ running: 0,
91
+ total: 0
92
+ };
93
+ for await (const event of this._getValueSingle(peer, pkKey, {
94
+ ...options,
95
+ path
96
+ })) {
91
97
  yield event;
92
98
  if (event.name === 'PEER_RESPONSE' && event.record != null) {
93
99
  const publicKey = publicKeyFromProtobuf(event.record.value);
@@ -101,7 +107,8 @@ export class PeerRouting {
101
107
  }
102
108
  yield valueEvent({
103
109
  from: peer,
104
- value: event.record.value
110
+ value: event.record.value,
111
+ path
105
112
  }, options);
106
113
  }
107
114
  }
@@ -119,30 +126,41 @@ export class PeerRouting {
119
126
  if (pi != null) {
120
127
  this.log('found local');
121
128
  yield finalPeerEvent({
122
- from: this.peerId,
123
- peer: pi
129
+ from: this.components.peerId,
130
+ peer: pi,
131
+ path: {
132
+ index: -1,
133
+ queued: 0,
134
+ running: 0,
135
+ total: 0
136
+ }
124
137
  }, options);
125
138
  return;
126
139
  }
127
140
  }
128
141
  let foundPeer = false;
129
142
  if (options.useNetwork !== false) {
130
- const self = this; // eslint-disable-line @typescript-eslint/no-this-alias
131
- const findPeerQuery = async function* ({ peer, signal }) {
143
+ const self = this;
144
+ const findPeerQuery = async function* ({ peer, signal, path }) {
132
145
  const request = {
133
146
  type: MessageType.FIND_NODE,
134
147
  key: id.toMultihash().bytes
135
148
  };
136
- for await (const event of self.network.sendRequest(peer, request, {
149
+ for await (const event of self.network.sendRequest(peer.id, request, {
137
150
  ...options,
138
- signal
151
+ signal,
152
+ path
139
153
  })) {
140
154
  yield event;
141
155
  if (event.name === 'PEER_RESPONSE') {
142
156
  const match = event.closer.find((p) => p.id.equals(id));
143
157
  // found the peer
144
158
  if (match != null) {
145
- yield finalPeerEvent({ from: event.from, peer: match }, options);
159
+ yield finalPeerEvent({
160
+ from: event.from,
161
+ peer: match,
162
+ path: event.path
163
+ }, options);
146
164
  }
147
165
  }
148
166
  }
@@ -155,45 +173,56 @@ export class PeerRouting {
155
173
  }
156
174
  }
157
175
  if (!foundPeer) {
158
- yield queryErrorEvent({ from: this.peerId, error: new NotFoundError('Not found') }, options);
176
+ throw new NotFoundError('Not found');
159
177
  }
160
178
  }
161
179
  /**
162
- * Kademlia 'FIND_NODE' operation on a key, which could be the bytes from
163
- * a multihash or a peer ID
180
+ * Kademlia 'FIND_NODE' operation on a key, which could be the bytes from a
181
+ * multihash or a peer ID
164
182
  */
165
183
  async *getClosestPeers(key, options = {}) {
166
184
  this.log('getClosestPeers to %b', key);
167
185
  const kadId = await convertBuffer(key);
168
- const tablePeers = this.routingTable.closestPeers(kadId);
169
- const self = this; // eslint-disable-line @typescript-eslint/no-this-alias
170
186
  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 }) {
173
- self.log('closerPeersSingle %s from %p', uint8ArrayToString(key, 'base32'), peer);
187
+ const self = this;
188
+ const getCloserPeersQuery = async function* ({ peer, path, peerKadId, signal }) {
189
+ self.log('getClosestPeers asking %p', peer);
174
190
  const request = {
175
191
  type: MessageType.FIND_NODE,
176
192
  key
177
193
  };
178
- yield* self.network.sendRequest(peer, request, {
194
+ yield* self.network.sendRequest(peer.id, request, {
179
195
  ...options,
180
- signal
196
+ signal,
197
+ path
181
198
  });
199
+ // add the peer to the list if we've managed to contact it successfully
200
+ peers.addWithKadId(peer, peerKadId, path);
182
201
  };
183
- for await (const event of this.queryManager.run(key, getCloserPeersQuery, options)) {
184
- if (event.name === 'PEER_RESPONSE') {
185
- await Promise.all(event.closer.map(async (peerData) => {
186
- await peers.add(peerData);
187
- }));
188
- }
189
- yield event;
190
- }
202
+ yield* this.queryManager.run(key, getCloserPeersQuery, options);
191
203
  this.log('found %d peers close to %b', peers.length, key);
192
- for (const peer of peers.peers) {
193
- yield finalPeerEvent({
194
- from: this.peerId,
195
- peer
196
- }, options);
204
+ for (let { peer, path } of peers.peers) {
205
+ try {
206
+ if (peer.multiaddrs.length === 0) {
207
+ peer = await self.components.peerStore.getInfo(peer.id);
208
+ }
209
+ if (peer.multiaddrs.length === 0) {
210
+ continue;
211
+ }
212
+ yield finalPeerEvent({
213
+ from: this.components.peerId,
214
+ peer: await self.components.peerStore.getInfo(peer.id),
215
+ path: {
216
+ index: path.index,
217
+ queued: 0,
218
+ running: 0,
219
+ total: 0
220
+ }
221
+ }, options);
222
+ }
223
+ catch {
224
+ continue;
225
+ }
197
226
  }
198
227
  }
199
228
  /**
@@ -202,7 +231,7 @@ export class PeerRouting {
202
231
  *
203
232
  * Note: The peerStore is updated with new addresses found for the given peer.
204
233
  */
205
- async *getValueOrPeers(peer, key, options = {}) {
234
+ async *getValueOrPeers(peer, key, options) {
206
235
  for await (const event of this._getValueSingle(peer, key, options)) {
207
236
  if (event.name === 'PEER_RESPONSE') {
208
237
  if (event.record != null) {
@@ -213,7 +242,11 @@ export class PeerRouting {
213
242
  catch (err) {
214
243
  const errMsg = 'invalid record received, discarded';
215
244
  this.log(errMsg);
216
- yield queryErrorEvent({ from: event.from, error: new QueryError(errMsg) }, options);
245
+ yield queryErrorEvent({
246
+ from: event.from,
247
+ error: new QueryError(errMsg),
248
+ path: options.path
249
+ }, options);
217
250
  continue;
218
251
  }
219
252
  }
@@ -232,7 +265,8 @@ export class PeerRouting {
232
265
  await verifyRecord(this.validators, new Libp2pRecord(record.key, record.value, record.timeReceived));
233
266
  }
234
267
  /**
235
- * Get the nearest peers to the given query, but if closer than self
268
+ * Get the peers in our routing table that are closer than the passed PeerId
269
+ * to the passed key
236
270
  */
237
271
  async getCloserPeersOffline(key, closerThan) {
238
272
  const output = [];
@@ -240,7 +274,7 @@ export class PeerRouting {
240
274
  try {
241
275
  const multihash = Digest.decode(key);
242
276
  const targetPeerId = peerIdFromMultihash(multihash);
243
- const peer = await this.peerStore.get(targetPeerId);
277
+ const peer = await this.components.peerStore.get(targetPeerId);
244
278
  output.push({
245
279
  id: peer.id,
246
280
  multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
@@ -259,11 +293,7 @@ export class PeerRouting {
259
293
  continue;
260
294
  }
261
295
  try {
262
- const peer = await this.peerStore.get(peerId);
263
- output.push({
264
- id: peerId,
265
- multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
266
- });
296
+ output.push(await this.components.peerStore.getInfo(peerId));
267
297
  }
268
298
  catch (err) {
269
299
  if (err.name !== 'NotFoundError') {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/peer-routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,GAAG,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACX,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAwB3E,MAAM,OAAO,WAAW;IACL,GAAG,CAAQ;IACX,YAAY,CAAc;IAC1B,OAAO,CAAS;IAChB,UAAU,CAAY;IACtB,YAAY,CAAc;IAC1B,SAAS,CAAW;IACpB,MAAM,CAAQ;IAE/B,YAAa,UAAiC,EAAE,IAAqB;QACnE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QACrC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;QACrC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;QAC/B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,eAAe,CAAC,CAAA;QAE3E,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpG,YAAY,EAAE,CAAC;SAChB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAA;QACnB,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,+BAA+B,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzH,YAAY,EAAE,CAAC;SAChB,CAAC,IAAI,IAAI,CAAC,eAAe,CAAA;IAC5B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAE,IAAY;QAC/B,IAAI,QAAQ,CAAA;QACZ,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE5C,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,yCAAyC,EAAE,IAAI,CAAC,CAAA;YAEzD,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACxC,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBACjC,MAAM,GAAG,CAAA;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC3C,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBACjC,MAAM,GAAG,CAAA;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,sCAAsC,EAAE,IAAI,CAAC,CAAA;YAEtD,OAAO;gBACL,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;aACnE,CAAA;QACH,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAE,eAAe,CAAE,IAAY,EAAE,GAAe,EAAE,UAA0B,EAAE;QAClF,MAAM,GAAG,GAAqB;YAC5B,IAAI,EAAE,WAAW,CAAC,SAAS;YAC3B,GAAG;SACJ,CAAA;QAED,KAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAE,oBAAoB,CAAE,IAAY,EAAE,UAA0B,EAAE;QACtE,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;QAEnC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YACrE,MAAM,KAAK,CAAA;YAEX,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC3D,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC3D,MAAM,OAAO,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;gBAE9C,gCAAgC;gBAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,qBAAqB,CAAC,8BAA8B,CAAC,CAAA;gBACjE,CAAC;gBAED,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;oBAC9B,MAAM,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,CAAA;gBACvD,CAAC;gBAED,MAAM,UAAU,CAAC;oBACf,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;iBAC1B,EAAE,OAAO,CAAC,CAAA;YACb,CAAC;QACH,CAAC;QAED,MAAM,IAAI,UAAU,CAAC,4CAA4C,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IACrF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAE,QAAQ,CAAE,EAAU,EAAE,UAA0B,EAAE;QACxD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;QAE3B,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC/B,sBAAsB;YACtB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;YAEvC,iBAAiB;YACjB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;gBACvB,MAAM,cAAc,CAAC;oBACnB,IAAI,EAAE,IAAI,CAAC,MAAM;oBACjB,IAAI,EAAE,EAAE;iBACT,EAAE,OAAO,CAAC,CAAA;gBACX,OAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAA;QAErB,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,CAAA,CAAC,uDAAuD;YAEzE,MAAM,aAAa,GAAc,KAAK,SAAU,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBACjE,MAAM,OAAO,GAAqB;oBAChC,IAAI,EAAE,WAAW,CAAC,SAAS;oBAC3B,GAAG,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK;iBAC5B,CAAA;gBAED,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE;oBAChE,GAAG,OAAO;oBACV,MAAM;iBACP,CAAC,EAAE,CAAC;oBACH,MAAM,KAAK,CAAA;oBAEX,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;wBACnC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;wBAEvD,iBAAiB;wBACjB,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;4BAClB,MAAM,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAA;wBAClE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC,CAAA;YAED,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC;gBAChG,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChC,SAAS,GAAG,IAAI,CAAA;gBAClB,CAAC;gBAED,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QAC9F,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAE,eAAe,CAAE,GAAe,EAAE,UAAwB,EAAE;QAClE,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAA;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACxD,MAAM,IAAI,GAAG,IAAI,CAAA,CAAC,uDAAuD;QAEzE,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;QACxE,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAA;QAElG,MAAM,mBAAmB,GAAc,KAAK,SAAU,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACvE,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAA;YACjF,MAAM,OAAO,GAAqB;gBAChC,IAAI,EAAE,WAAW,CAAC,SAAS;gBAC3B,GAAG;aACJ,CAAA;YAED,KAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE;gBAC9C,GAAG,OAAO;gBACV,MAAM;aACP,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,CAAC;YACnF,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACnC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE;oBAClD,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBAC3B,CAAC,CAAC,CAAC,CAAA;YACL,CAAC;YAED,MAAM,KAAK,CAAA;QACb,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAEzD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,cAAc,CAAC;gBACnB,IAAI,EAAE,IAAI,CAAC,MAAM;gBACjB,IAAI;aACL,EAAE,OAAO,CAAC,CAAA;QACb,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,CAAE,eAAe,CAAE,IAAY,EAAE,GAAe,EAAE,UAA0B,EAAE;QAClF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;YACnE,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACnC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;oBACzB,mBAAmB;oBACnB,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;oBAC9C,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAClB,MAAM,MAAM,GAAG,oCAAoC,CAAA;wBACnD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;wBAEhB,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;wBACnF,SAAQ;oBACV,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CAAE,MAAiB;QAC1C,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YAChC,MAAM,IAAI,kBAAkB,CAAC,yBAAyB,CAAC,CAAA;QACzD,CAAC;QAED,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IACtG,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CAAE,GAAe,EAAE,UAAkB;QAC9D,MAAM,MAAM,GAAe,EAAE,CAAA;QAE7B,gCAAgC;QAChC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACpC,MAAM,YAAY,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;YAEnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YAEnD,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;aAC7D,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAA;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QACpD,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAA;QACvD,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;QAE7D,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAA;YAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;YAElD,gDAAgD;YAChD,IAAI,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACvD,SAAQ;YACV,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBAE7C,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE,EAAE,MAAM;oBACV,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;iBAC7D,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBACjC,MAAM,GAAG,CAAA;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,6DAA6D,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;QACzG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,mGAAmG,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACxJ,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/peer-routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,GAAG,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACX,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AA0B3E,MAAM,OAAO,WAAW;IACL,GAAG,CAAQ;IACX,YAAY,CAAc;IAC1B,OAAO,CAAS;IAChB,UAAU,CAAY;IACtB,YAAY,CAAc;IAC1B,UAAU,CAAuB;IAElD,YAAa,UAAiC,EAAE,IAAqB;QACnE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,eAAe,CAAC,CAAA;QAE3E,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpG,YAAY,EAAE,CAAC;SAChB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAA;QACnB,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,+BAA+B,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzH,YAAY,EAAE,CAAC;SAChB,CAAC,IAAI,IAAI,CAAC,eAAe,CAAA;IAC5B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAE,IAAY;QAC/B,IAAI,QAAQ,CAAA;QACZ,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE5C,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,yCAAyC,EAAE,IAAI,CAAC,CAAA;YAEzD,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACnD,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBACjC,MAAM,GAAG,CAAA;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACtD,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBACjC,MAAM,GAAG,CAAA;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,sCAAsC,EAAE,IAAI,CAAC,CAAA;YAEtD,OAAO;gBACL,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;aACnE,CAAA;QACH,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAE,eAAe,CAAE,IAAY,EAAE,GAAe,EAAE,OAA2B;QACjF,MAAM,GAAG,GAAqB;YAC5B,IAAI,EAAE,WAAW,CAAC,SAAS;YAC3B,GAAG;SACJ,CAAA;QAED,KAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAE,oBAAoB,CAAE,IAAY,EAAE,UAA0B,EAAE;QACtE,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,CAAC,CAAC;YACT,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;SACT,CAAA;QAED,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE;YAC1D,GAAG,OAAO;YACV,IAAI;SACL,CAAC,EAAE,CAAC;YACH,MAAM,KAAK,CAAA;YAEX,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC3D,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC3D,MAAM,OAAO,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;gBAE9C,gCAAgC;gBAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,qBAAqB,CAAC,8BAA8B,CAAC,CAAA;gBACjE,CAAC;gBAED,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;oBAC9B,MAAM,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,CAAA;gBACvD,CAAC;gBAED,MAAM,UAAU,CAAC;oBACf,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;oBACzB,IAAI;iBACL,EAAE,OAAO,CAAC,CAAA;YACb,CAAC;QACH,CAAC;QAED,MAAM,IAAI,UAAU,CAAC,4CAA4C,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IACrF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAE,QAAQ,CAAE,EAAU,EAAE,UAA0B,EAAE;QACxD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;QAE3B,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC/B,sBAAsB;YACtB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;YAEvC,iBAAiB;YACjB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;gBACvB,MAAM,cAAc,CAAC;oBACnB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;oBAC5B,IAAI,EAAE,EAAE;oBACR,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC,CAAC;wBACT,MAAM,EAAE,CAAC;wBACT,OAAO,EAAE,CAAC;wBACV,KAAK,EAAE,CAAC;qBACT;iBACF,EAAE,OAAO,CAAC,CAAA;gBACX,OAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAA;QAErB,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,CAAA;YAEjB,MAAM,aAAa,GAAc,KAAK,SAAU,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;gBACvE,MAAM,OAAO,GAAqB;oBAChC,IAAI,EAAE,WAAW,CAAC,SAAS;oBAC3B,GAAG,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK;iBAC5B,CAAA;gBAED,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE;oBACnE,GAAG,OAAO;oBACV,MAAM;oBACN,IAAI;iBACL,CAAC,EAAE,CAAC;oBACH,MAAM,KAAK,CAAA;oBAEX,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;wBACnC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;wBAEvD,iBAAiB;wBACjB,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;4BAClB,MAAM,cAAc,CAAC;gCACnB,IAAI,EAAE,KAAK,CAAC,IAAI;gCAChB,IAAI,EAAE,KAAK;gCACX,IAAI,EAAE,KAAK,CAAC,IAAI;6BACjB,EAAE,OAAO,CAAC,CAAA;wBACb,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC,CAAA;YAED,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC;gBAChG,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChC,SAAS,GAAG,IAAI,CAAA;gBAClB,CAAC;gBAED,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAE,eAAe,CAAE,GAAe,EAAE,UAAwB,EAAE;QAClE,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;QACxE,MAAM,IAAI,GAAG,IAAI,CAAA;QAEjB,MAAM,mBAAmB,GAAc,KAAK,SAAU,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE;YACxF,IAAI,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAA;YAC3C,MAAM,OAAO,GAAqB;gBAChC,IAAI,EAAE,WAAW,CAAC,SAAS;gBAC3B,GAAG;aACJ,CAAA;YAED,KAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE;gBACjD,GAAG,OAAO;gBACV,MAAM;gBACN,IAAI;aACL,CAAC,CAAA;YAEF,uEAAuE;YACvE,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;QAC3C,CAAC,CAAA;QAED,KAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAA;QAEhE,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAEzD,KAAK,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBACzD,CAAC;gBAED,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,SAAQ;gBACV,CAAC;gBAED,MAAM,cAAc,CAAC;oBACnB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;oBAC5B,IAAI,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtD,IAAI,EAAE;wBACJ,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,MAAM,EAAE,CAAC;wBACT,OAAO,EAAE,CAAC;wBACV,KAAK,EAAE,CAAC;qBACT;iBACF,EAAE,OAAO,CAAC,CAAA;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,SAAQ;YACV,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,CAAE,eAAe,CAAE,IAAY,EAAE,GAAe,EAAE,OAA2B;QACjF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;YACnE,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACnC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;oBACzB,mBAAmB;oBACnB,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;oBAC9C,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAClB,MAAM,MAAM,GAAG,oCAAoC,CAAA;wBACnD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;wBAEhB,MAAM,eAAe,CAAC;4BACpB,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,KAAK,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC;4BAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;yBACnB,EAAE,OAAO,CAAC,CAAA;wBACX,SAAQ;oBACV,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CAAE,MAAiB;QAC1C,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YAChC,MAAM,IAAI,kBAAkB,CAAC,yBAAyB,CAAC,CAAA;QACzD,CAAC;QAED,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IACtG,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,qBAAqB,CAAE,GAAe,EAAE,UAAkB;QAC9D,MAAM,MAAM,GAAe,EAAE,CAAA;QAE7B,gCAAgC;QAChC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACpC,MAAM,YAAY,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;YAEnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YAE9D,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;aAC7D,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAA;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QACpD,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAA;QACvD,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;QAE7D,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAA;YAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;YAElD,gDAAgD;YAChD,IAAI,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACvD,SAAQ;YACV,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;YAC9D,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBACjC,MAAM,GAAG,CAAA;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,6DAA6D,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;QACzG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,mGAAmG,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACxJ,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -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;AACjF,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,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7D;;OAEG;IACG,cAAc,CAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhE;;OAEG;IACG,YAAY,CAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAchD;;OAEG;YACW,kBAAkB;IAOhC;;OAEG;YACW,aAAa;CAW5B"}
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"}
@@ -18,10 +18,10 @@ 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
- this.log('%p provides %s', provider, cid);
24
+ this.log.trace('%p provides %s', provider, cid);
25
25
  await this.writeProviderEntry(cid, provider);
26
26
  }
27
27
  finally {
@@ -31,11 +31,11 @@ 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);
38
- this.log('%p no longer provides %s', provider, cid);
38
+ this.log.trace('%p no longer provides %s', provider, cid);
39
39
  await this.datastore.delete(key);
40
40
  }
41
41
  finally {
@@ -45,12 +45,12 @@ 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
- this.log('get providers for %c', cid);
52
- const provs = await this.loadProviders(cid);
53
- this.log('got %d providers for %c', provs.size, cid);
51
+ this.log.trace('get providers for %c', cid);
52
+ const provs = await this.loadProviders(cid, options);
53
+ this.log.trace('got %d providers for %c', provs.size, cid);
54
54
  return [...provs.keys()];
55
55
  }
56
56
  finally {
@@ -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":"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"}
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, DialPeerEvent, AddPeerEvent, ValueEvent, ProviderEvent, QueryErrorEvent, FinalPeerEvent } from '../index.js';
1
+ import type { MessageType, SendQueryEvent, PeerResponseEvent, AddPeerEvent, ValueEvent, ProviderEvent, QueryErrorEvent, FinalPeerEvent, DisjointPath, PathEndedEvent, DialPeerEvent } 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: DisjointPath;
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: DisjointPath;
13
15
  closer?: PeerInfo[];
14
16
  providers?: PeerInfo[];
15
17
  record?: Libp2pRecord;
@@ -18,29 +20,39 @@ export declare function peerResponseEvent(fields: PeerResponseEventFields, optio
18
20
  export interface FinalPeerEventFields {
19
21
  from: PeerId;
20
22
  peer: PeerInfo;
23
+ path: DisjointPath;
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: DisjointPath;
26
30
  }
27
31
  export declare function queryErrorEvent(fields: ErrorEventFields, options?: ProgressOptions): QueryErrorEvent;
28
32
  export interface ProviderEventFields {
29
33
  from: PeerId;
30
34
  providers: PeerInfo[];
35
+ path: DisjointPath;
31
36
  }
32
37
  export declare function providerEvent(fields: ProviderEventFields, options?: ProgressOptions): ProviderEvent;
33
38
  export interface ValueEventFields {
34
39
  from: PeerId;
35
40
  value: Uint8Array;
41
+ path: DisjointPath;
36
42
  }
37
43
  export declare function valueEvent(fields: ValueEventFields, options?: ProgressOptions): ValueEvent;
38
- export interface PeerEventFields {
44
+ export interface AddPeerEventFields {
39
45
  peer: PeerId;
46
+ path: DisjointPath;
40
47
  }
41
- export declare function addPeerEvent(fields: PeerEventFields, options?: ProgressOptions): AddPeerEvent;
48
+ export declare function addPeerEvent(fields: AddPeerEventFields, options?: ProgressOptions): AddPeerEvent;
42
49
  export interface DialPeerEventFields {
43
50
  peer: PeerId;
51
+ path: DisjointPath;
44
52
  }
45
53
  export declare function dialPeerEvent(fields: DialPeerEventFields, options?: ProgressOptions): DialPeerEvent;
54
+ export interface PathEndedEventFields {
55
+ path: DisjointPath;
56
+ }
57
+ export declare function pathEndedEvent(fields: PathEndedEventFields, options?: ProgressOptions): PathEndedEvent;
46
58
  //# 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,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC1K,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;CAClB;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,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;CACf;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;CACb;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,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,YAAY,CAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAE,eAAoB,GAAG,YAAY,CAUlG;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,aAAa,CAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,GAAE,eAAoB,GAAG,aAAa,CAUxG"}
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,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACxM,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,YAAY,CAAA;CACnB;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,YAAY,CAAA;IAClB,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,YAAY,CAAA;CACnB;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,EAAE,YAAY,CAAA;CACnB;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;IACrB,IAAI,EAAE,YAAY,CAAA;CACnB;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;IACjB,IAAI,EAAE,YAAY,CAAA;CACnB;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,YAAY,CAAA;CACnB;AAED,wBAAgB,YAAY,CAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,GAAE,eAAoB,GAAG,YAAY,CAUrG;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,YAAY,CAAA;CACnB;AAED,wBAAgB,aAAa,CAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,GAAE,eAAoB,GAAG,aAAa,CAUxG;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,YAAY,CAAA;CACnB;AAED,wBAAgB,cAAc,CAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,GAAE,eAAoB,GAAG,cAAc,CAU3G"}