@libp2p/peer-store 0.0.0 → 1.0.3

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.
@@ -1,15 +1,15 @@
1
1
  import { Multiaddr } from '@multiformats/multiaddr';
2
2
  import { RecordEnvelope } from '@libp2p/peer-record';
3
- import { PeerId } from '@libp2p/peer-id';
4
3
  import type { PeerStore } from '@libp2p/interfaces/peer-store';
5
4
  import type { Store } from './store.js';
6
5
  import type { AddressFilter, AddressSorter } from './index.js';
7
6
  import type { Envelope } from '@libp2p/interfaces/record';
7
+ import type { PeerId } from '@libp2p/interfaces/peer-id';
8
8
  export declare class PeerStoreAddressBook {
9
- private emit;
10
- private store;
11
- private addressFilter;
12
- constructor(emit: PeerStore["emit"], store: Store, addressFilter?: AddressFilter);
9
+ private readonly dispatchEvent;
10
+ private readonly store;
11
+ private readonly addressFilter;
12
+ constructor(dispatchEvent: PeerStore['dispatchEvent'], store: Store, addressFilter?: AddressFilter);
13
13
  /**
14
14
  * ConsumePeerRecord adds addresses from a signed peer record contained in a record envelope.
15
15
  * This will return a boolean that indicates if the record was successfully processed and added
@@ -1 +1 @@
1
- {"version":3,"file":"address-book.d.ts","sourceRoot":"","sources":["../../src/address-book.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAc,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAOhE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AASzD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,aAAa,CAAe;gBAEvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,aAAa;IAMjF;;;;OAIG;IACG,iBAAiB,CAAE,QAAQ,EAAE,QAAQ;IA+DrC,cAAc,CAAE,MAAM,EAAE,MAAM;IAmBpC;;;OAGG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM;IAU7B,GAAG,CAAE,MAAM,EAAE,MAAM;IAuBnB,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;IAwD5C,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;IAuD5C,MAAM,CAAE,MAAM,EAAE,MAAM;IAyBtB,oBAAoB,CAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAE,aAA4B;CAcxF"}
1
+ {"version":3,"file":"address-book.d.ts","sourceRoot":"","sources":["../../src/address-book.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAc,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAShE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AASxD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;gBAEhC,aAAa,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,aAAa;IAMnG;;;;OAIG;IACG,iBAAiB,CAAE,QAAQ,EAAE,QAAQ;IAiErC,cAAc,CAAE,MAAM,EAAE,MAAM;IAmBpC;;;OAGG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM;IAU7B,GAAG,CAAE,MAAM,EAAE,MAAM;IAuBnB,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;IA8D5C,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;IA2D5C,MAAM,CAAE,MAAM,EAAE,MAAM;IA2BtB,oBAAoB,CAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAE,aAA4B;CAgBxF"}
@@ -9,15 +9,16 @@ import filter from 'it-filter';
9
9
  import map from 'it-map';
10
10
  import each from 'it-foreach';
11
11
  import { base58btc } from 'multiformats/bases/base58';
12
- import { PeerId } from '@libp2p/peer-id';
12
+ import { peerIdFromPeerId } from '@libp2p/peer-id';
13
+ import { CustomEvent } from '@libp2p/interfaces';
13
14
  const log = logger('libp2p:peer-store:address-book');
14
15
  const EVENT_NAME = 'change:multiaddrs';
15
16
  async function allowAll() {
16
17
  return true;
17
18
  }
18
19
  export class PeerStoreAddressBook {
19
- constructor(emit, store, addressFilter) {
20
- this.emit = emit;
20
+ constructor(dispatchEvent, store, addressFilter) {
21
+ this.dispatchEvent = dispatchEvent;
21
22
  this.store = store;
22
23
  this.addressFilter = addressFilter ?? allowAll;
23
24
  }
@@ -49,12 +50,12 @@ export class PeerStoreAddressBook {
49
50
  return false;
50
51
  }
51
52
  // ensure the record has multiaddrs
52
- if (!multiaddrs || !multiaddrs.length) {
53
+ if (multiaddrs == null || multiaddrs.length === 0) {
53
54
  return false;
54
55
  }
55
56
  if (await this.store.has(peerId)) {
56
57
  const peer = await this.store.load(peerId);
57
- if (peer.peerRecordEnvelope) {
58
+ if (peer.peerRecordEnvelope != null) {
58
59
  const storedEnvelope = await RecordEnvelope.createFromProtobuf(peer.peerRecordEnvelope);
59
60
  const storedRecord = PeerRecord.createFromProtobuf(storedEnvelope.payload);
60
61
  // ensure seq is greater than, or equal to, the last received
@@ -75,7 +76,9 @@ export class PeerStoreAddressBook {
75
76
  log('consumePeerRecord release write lock');
76
77
  release();
77
78
  }
78
- this.emit(EVENT_NAME, { peerId, multiaddrs: updatedPeer.addresses.map(({ multiaddr }) => multiaddr) });
79
+ this.dispatchEvent(new CustomEvent(EVENT_NAME, {
80
+ detail: { peerId, multiaddrs: updatedPeer.addresses.map(({ multiaddr }) => multiaddr) }
81
+ }));
79
82
  return true;
80
83
  }
81
84
  async getRawEnvelope(peerId) {
@@ -102,13 +105,13 @@ export class PeerStoreAddressBook {
102
105
  */
103
106
  async getPeerRecord(peerId) {
104
107
  const raw = await this.getRawEnvelope(peerId);
105
- if (!raw) {
108
+ if (raw == null) {
106
109
  return undefined;
107
110
  }
108
- return RecordEnvelope.createFromProtobuf(raw);
111
+ return await RecordEnvelope.createFromProtobuf(raw);
109
112
  }
110
113
  async get(peerId) {
111
- peerId = PeerId.fromPeerId(peerId);
114
+ peerId = peerIdFromPeerId(peerId);
112
115
  log('get wait for read lock');
113
116
  const release = await this.store.lock.readLock();
114
117
  log('get got read lock');
@@ -128,7 +131,7 @@ export class PeerStoreAddressBook {
128
131
  return [];
129
132
  }
130
133
  async set(peerId, multiaddrs) {
131
- peerId = PeerId.fromPeerId(peerId);
134
+ peerId = peerIdFromPeerId(peerId);
132
135
  if (!Array.isArray(multiaddrs)) {
133
136
  log.error('multiaddrs must be an array of Multiaddrs');
134
137
  throw errcode(new Error('multiaddrs must be an array of Multiaddrs'), codes.ERR_INVALID_PARAMETERS);
@@ -141,7 +144,7 @@ export class PeerStoreAddressBook {
141
144
  try {
142
145
  const addresses = await filterMultiaddrs(peerId, multiaddrs, this.addressFilter);
143
146
  // No valid addresses found
144
- if (!addresses.length) {
147
+ if (addresses.length === 0) {
145
148
  return;
146
149
  }
147
150
  try {
@@ -167,14 +170,20 @@ export class PeerStoreAddressBook {
167
170
  log('set release write lock');
168
171
  release();
169
172
  }
170
- this.emit(EVENT_NAME, { peerId, multiaddrs: updatedPeer.addresses.map(addr => addr.multiaddr) });
173
+ this.dispatchEvent(new CustomEvent(EVENT_NAME, {
174
+ detail: { peerId, multiaddrs: updatedPeer.addresses.map(addr => addr.multiaddr) }
175
+ }));
171
176
  // Notify the existence of a new peer
172
177
  if (!hasPeer) {
173
- this.emit('peer', peerId);
178
+ this.dispatchEvent(new CustomEvent('peer', {
179
+ detail: {
180
+ peerId
181
+ }
182
+ }));
174
183
  }
175
184
  }
176
185
  async add(peerId, multiaddrs) {
177
- peerId = PeerId.fromPeerId(peerId);
186
+ peerId = peerIdFromPeerId(peerId);
178
187
  if (!Array.isArray(multiaddrs)) {
179
188
  log.error('multiaddrs must be an array of Multiaddrs');
180
189
  throw errcode(new Error('multiaddrs must be an array of Multiaddrs'), codes.ERR_INVALID_PARAMETERS);
@@ -187,7 +196,7 @@ export class PeerStoreAddressBook {
187
196
  try {
188
197
  const addresses = await filterMultiaddrs(peerId, multiaddrs, this.addressFilter);
189
198
  // No valid addresses found
190
- if (!addresses.length) {
199
+ if (addresses.length === 0) {
191
200
  return;
192
201
  }
193
202
  try {
@@ -212,14 +221,18 @@ export class PeerStoreAddressBook {
212
221
  log('set release write lock');
213
222
  release();
214
223
  }
215
- this.emit(EVENT_NAME, { peerId, multiaddrs: updatedPeer.addresses.map(addr => addr.multiaddr) });
224
+ this.dispatchEvent(new CustomEvent(EVENT_NAME, {
225
+ detail: { peerId, multiaddrs: updatedPeer.addresses.map(addr => addr.multiaddr) }
226
+ }));
216
227
  // Notify the existence of a new peer
217
- if (!hasPeer) {
218
- this.emit('peer', peerId);
228
+ if (hasPeer === true) {
229
+ this.dispatchEvent(new CustomEvent('peer', {
230
+ detail: { peerId }
231
+ }));
219
232
  }
220
233
  }
221
234
  async delete(peerId) {
222
- peerId = PeerId.fromPeerId(peerId);
235
+ peerId = peerIdFromPeerId(peerId);
223
236
  log('delete await write lock');
224
237
  const release = await this.store.lock.writeLock();
225
238
  log('delete got write lock');
@@ -235,7 +248,9 @@ export class PeerStoreAddressBook {
235
248
  release();
236
249
  }
237
250
  if (has) {
238
- this.emit(EVENT_NAME, { peerId, multiaddrs: [] });
251
+ this.dispatchEvent(new CustomEvent(EVENT_NAME, {
252
+ detail: { peerId, multiaddrs: [] }
253
+ }));
239
254
  }
240
255
  }
241
256
  async getMultiaddrsForPeer(peerId, addressSorter = (mas) => mas) {
@@ -243,23 +258,24 @@ export class PeerStoreAddressBook {
243
258
  return addressSorter(addresses).map((address) => {
244
259
  const multiaddr = address.multiaddr;
245
260
  const idString = multiaddr.getPeerId();
246
- if (idString && idString === peerId.toString())
261
+ if (idString === peerId.toString()) {
247
262
  return multiaddr;
263
+ }
248
264
  return multiaddr.encapsulate(`/p2p/${peerId.toString(base58btc)}`);
249
265
  });
250
266
  }
251
267
  }
252
- function filterMultiaddrs(peerId, multiaddrs, addressFilter, isCertified = false) {
253
- return pipe(multiaddrs, (source) => each(source, (multiaddr) => {
268
+ async function filterMultiaddrs(peerId, multiaddrs, addressFilter, isCertified = false) {
269
+ return await pipe(multiaddrs, (source) => each(source, (multiaddr) => {
254
270
  if (!Multiaddr.isMultiaddr(multiaddr)) {
255
271
  log.error('multiaddr must be an instance of Multiaddr');
256
272
  throw errcode(new Error('multiaddr must be an instance of Multiaddr'), codes.ERR_INVALID_PARAMETERS);
257
273
  }
258
- }), (source) => filter(source, (multiaddr) => addressFilter(peerId, multiaddr)), (source) => map(source, (multiaddr) => {
274
+ }), (source) => filter(source, async (multiaddr) => await addressFilter(peerId, multiaddr)), (source) => map(source, (multiaddr) => {
259
275
  return {
260
276
  multiaddr: new Multiaddr(multiaddr.toString()),
261
277
  isCertified
262
278
  };
263
- }), (source) => all(source));
279
+ }), async (source) => await all(source));
264
280
  }
265
281
  //# sourceMappingURL=address-book.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"address-book.js","sourceRoot":"","sources":["../../src/address-book.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"address-book.js","sourceRoot":"","sources":["../../src/address-book.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,IAAI,MAAM,YAAY,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAOhD,MAAM,GAAG,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAA;AACpD,MAAM,UAAU,GAAG,mBAAmB,CAAA;AAEtC,KAAK,UAAU,QAAQ;IACrB,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,OAAO,oBAAoB;IAK/B,YAAa,aAAyC,EAAE,KAAY,EAAE,aAA6B;QACjG,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,QAAQ,CAAA;IAChD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAE,QAAkB;QACzC,GAAG,CAAC,oCAAoC,CAAC,CAAA;QACzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QACjD,GAAG,CAAC,kCAAkC,CAAC,CAAA;QAEvC,IAAI,MAAM,CAAA;QACV,IAAI,WAAW,CAAA;QAEf,IAAI;YACF,IAAI,UAAU,CAAA;YACd,IAAI;gBACF,UAAU,GAAG,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;aAC7D;YAAC,OAAO,GAAQ,EAAE;gBACjB,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;gBACzC,OAAO,KAAK,CAAA;aACb;YAED,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;YAC1B,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAA;YAExC,gBAAgB;YAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACnC,GAAG,CAAC,qDAAqD,CAAC,CAAA;gBAC1D,OAAO,KAAK,CAAA;aACb;YAED,mCAAmC;YACnC,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjD,OAAO,KAAK,CAAA;aACb;YAED,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAChC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAE1C,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;oBACnC,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;oBACvF,MAAM,YAAY,GAAG,UAAU,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;oBAE1E,6DAA6D;oBAC7D,IAAI,YAAY,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,EAAE;wBAClD,OAAO,KAAK,CAAA;qBACb;iBACF;aACF;YAED,6DAA6D;YAC7D,sEAAsE;YACtE,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;gBACnD,SAAS,EAAE,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;gBAC/E,kBAAkB,EAAE,QAAQ,CAAC,OAAO,EAAE;aACvC,CAAC,CAAA;YAEF,GAAG,CAAC,mCAAmC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;SAChF;gBAAS;YACR,GAAG,CAAC,sCAAsC,CAAC,CAAA;YAC3C,OAAO,EAAE,CAAA;SACV;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE;YAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE;SACxF,CAAC,CAAC,CAAA;QAEH,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,cAAc,CAAE,MAAc;QAClC,GAAG,CAAC,gCAAgC,CAAC,CAAA;QACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChD,GAAG,CAAC,8BAA8B,CAAC,CAAA;QAEnC,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAE1C,OAAO,IAAI,CAAC,kBAAkB,CAAA;SAC/B;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE;gBACpC,MAAM,GAAG,CAAA;aACV;SACF;gBAAS;YACR,GAAG,CAAC,kCAAkC,CAAC,CAAA;YACvC,OAAO,EAAE,CAAA;SACV;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAE,MAAc;QACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAE7C,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,OAAO,SAAS,CAAA;SACjB;QAED,OAAO,MAAM,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,MAAc;QACvB,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAEjC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChD,GAAG,CAAC,mBAAmB,CAAC,CAAA;QAExB,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAE1C,OAAO,IAAI,CAAC,SAAS,CAAA;SACtB;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE;gBACpC,MAAM,GAAG,CAAA;aACV;SACF;gBAAS;YACR,GAAG,CAAC,uBAAuB,CAAC,CAAA;YAC5B,OAAO,EAAE,CAAA;SACV;QAED,OAAO,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,MAAc,EAAE,UAAuB;QAChD,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAEjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC9B,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;YACtD,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;SACpG;QAED,GAAG,CAAC,sBAAsB,CAAC,CAAA;QAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QACjD,GAAG,CAAC,oBAAoB,CAAC,CAAA;QAEzB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,WAAW,CAAA;QAEf,IAAI;YACF,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YAEhF,2BAA2B;YAC3B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1B,OAAM;aACP;YAED,IAAI;gBACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC1C,OAAO,GAAG,IAAI,CAAA;gBAEd,IAAI,IAAI,GAAG,CAAC;oBACV,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACzD,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;iBAC/D,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;oBAC/E,2CAA2C;oBAC3C,OAAM;iBACP;aACF;YAAC,OAAO,GAAQ,EAAE;gBACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE;oBACpC,MAAM,GAAG,CAAA;iBACV;aACF;YAED,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;YAEnE,GAAG,CAAC,sBAAsB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;SACxD;gBAAS;YACR,GAAG,CAAC,wBAAwB,CAAC,CAAA;YAC7B,OAAO,EAAE,CAAA;SACV;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE;YAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;SAClF,CAAC,CAAC,CAAA;QAEH,qCAAqC;QACrC,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE;gBACzC,MAAM,EAAE;oBACN,MAAM;iBACP;aACF,CAAC,CAAC,CAAA;SACJ;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,MAAc,EAAE,UAAuB;QAChD,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAEjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC9B,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;YACtD,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;SACpG;QAED,GAAG,CAAC,sBAAsB,CAAC,CAAA;QAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QACjD,GAAG,CAAC,oBAAoB,CAAC,CAAA;QAEzB,IAAI,OAAO,CAAA;QACX,IAAI,WAAW,CAAA;QAEf,IAAI;YACF,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YAEhF,2BAA2B;YAC3B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1B,OAAM;aACP;YAED,IAAI;gBACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC1C,OAAO,GAAG,IAAI,CAAA;gBAEd,IAAI,IAAI,GAAG,CAAC;oBACV,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACzD,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;iBAC/D,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;oBACjC,OAAM;iBACP;aACF;YAAC,OAAO,GAAQ,EAAE;gBACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE;oBACpC,MAAM,GAAG,CAAA;iBACV;aACF;YAED,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;YAEnE,GAAG,CAAC,wBAAwB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;SAC1D;gBAAS;YACR,GAAG,CAAC,wBAAwB,CAAC,CAAA;YAC7B,OAAO,EAAE,CAAA;SACV;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE;YAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;SAClF,CAAC,CAAC,CAAA;QAEH,qCAAqC;QACrC,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE;gBACzC,MAAM,EAAE,EAAE,MAAM,EAAE;aACnB,CAAC,CAAC,CAAA;SACJ;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,MAAc;QAC1B,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAEjC,GAAG,CAAC,yBAAyB,CAAC,CAAA;QAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QACjD,GAAG,CAAC,uBAAuB,CAAC,CAAA;QAE5B,IAAI,GAAG,CAAA;QAEP,IAAI;YACF,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAElC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;gBACrC,SAAS,EAAE,EAAE;aACd,CAAC,CAAA;SACH;gBAAS;YACR,GAAG,CAAC,2BAA2B,CAAC,CAAA;YAChC,OAAO,EAAE,CAAA;SACV;QAED,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE;gBAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;aACnC,CAAC,CAAC,CAAA;SACJ;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAE,MAAc,EAAE,gBAA+B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG;QACrF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAExC,OAAO,aAAa,CAClB,SAAS,CACV,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAChB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;YACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,EAAE,CAAA;YAEtC,IAAI,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,EAAE;gBAClC,OAAO,SAAS,CAAA;aACjB;YAED,OAAO,SAAS,CAAC,WAAW,CAAC,QAAQ,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QACpE,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAED,KAAK,UAAU,gBAAgB,CAAE,MAAc,EAAE,UAAuB,EAAE,aAA4B,EAAE,cAAuB,KAAK;IAClI,OAAO,MAAM,IAAI,CACf,UAAU,EACV,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE;QACrC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;YACrC,GAAG,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAA;YACvD,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,4CAA4C,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;SACrG;IACH,CAAC,CAAC,EACF,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EACvF,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE;QACpC,OAAO;YACL,SAAS,EAAE,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC9C,WAAW;SACZ,CAAA;IACH,CAAC,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,CACpC,CAAA;AACH,CAAC"}
@@ -1,6 +1,5 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- import type { PeerStore, Address, AddressBook, KeyBook, MetadataBook, ProtoBook } from '@libp2p/interfaces/peer-store';
1
+ import { EventEmitter } from '@libp2p/interfaces';
2
+ import type { PeerStore, Address, AddressBook, KeyBook, MetadataBook, ProtoBook, PeerStoreEvents } from '@libp2p/interfaces/peer-store';
4
3
  import type { PeerId } from '@libp2p/interfaces/peer-id';
5
4
  import type { Multiaddr } from '@multiformats/multiaddr';
6
5
  import type { Datastore } from 'interface-datastore';
@@ -18,13 +17,13 @@ export interface PeerStoreOptions {
18
17
  /**
19
18
  * An implementation of PeerStore that stores data in a Datastore
20
19
  */
21
- export declare class DefaultPeerStore extends EventEmitter implements PeerStore {
20
+ export declare class PeerStoreImpl extends EventEmitter<PeerStoreEvents> implements PeerStore {
22
21
  addressBook: AddressBook;
23
22
  keyBook: KeyBook;
24
23
  metadataBook: MetadataBook;
25
24
  protoBook: ProtoBook;
26
- private peerId;
27
- private store;
25
+ private readonly peerId;
26
+ private readonly store;
28
27
  constructor(options: PeerStoreOptions);
29
28
  getPeers(): AsyncGenerator<import("@libp2p/interfaces/peer-store").Peer, void, unknown>;
30
29
  /**
@@ -40,4 +39,5 @@ export declare class DefaultPeerStore extends EventEmitter implements PeerStore
40
39
  */
41
40
  has(peerId: PeerId): Promise<boolean>;
42
41
  }
42
+ export declare function createPeerStore(opts: PeerStoreOptions): PeerStore;
43
43
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAMrC,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AACtH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAKpD,MAAM,WAAW,aAAa;IAC5B,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACzD;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAA;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,SAAS;IAC9D,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IAE3B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,KAAK,CAAO;gBAEP,OAAO,EAAE,gBAAgB;IAc9B,QAAQ;IAoBhB;;OAEG;IACG,MAAM,CAAE,MAAM,EAAE,MAAM;IAa5B;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM;IAazB;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM;CAY1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAMjD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACvI,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAKpD,MAAM,WAAW,aAAa;IAC5B,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACzD;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAA;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY,CAAC,eAAe,CAAE,YAAW,SAAS;IAC5E,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;gBAEhB,OAAO,EAAE,gBAAgB;IAc9B,QAAQ;IAoBhB;;OAEG;IACG,MAAM,CAAE,MAAM,EAAE,MAAM;IAa5B;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM;IAazB;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM;CAY1B;AAED,wBAAgB,eAAe,CAAE,IAAI,EAAE,gBAAgB,GAAG,SAAS,CAElE"}
package/dist/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { logger } from '@libp2p/logger';
2
- import { EventEmitter } from 'events';
2
+ import { EventEmitter } from '@libp2p/interfaces';
3
3
  import { PeerStoreAddressBook } from './address-book.js';
4
4
  import { PeerStoreKeyBook } from './key-book.js';
5
5
  import { PeerStoreMetadataBook } from './metadata-book.js';
@@ -10,16 +10,16 @@ const log = logger('libp2p:peer-store');
10
10
  /**
11
11
  * An implementation of PeerStore that stores data in a Datastore
12
12
  */
13
- export class DefaultPeerStore extends EventEmitter {
13
+ export class PeerStoreImpl extends EventEmitter {
14
14
  constructor(options) {
15
15
  super();
16
16
  const { peerId, datastore, addressFilter } = options;
17
17
  this.peerId = peerId;
18
18
  this.store = new PersistentStore(datastore);
19
- this.addressBook = new PeerStoreAddressBook(this.emit.bind(this), this.store, addressFilter);
20
- this.keyBook = new PeerStoreKeyBook(this.emit.bind(this), this.store);
21
- this.metadataBook = new PeerStoreMetadataBook(this.emit.bind(this), this.store);
22
- this.protoBook = new PeerStoreProtoBook(this.emit.bind(this), this.store);
19
+ this.addressBook = new PeerStoreAddressBook(this.dispatchEvent.bind(this), this.store, addressFilter);
20
+ this.keyBook = new PeerStoreKeyBook(this.dispatchEvent.bind(this), this.store);
21
+ this.metadataBook = new PeerStoreMetadataBook(this.dispatchEvent.bind(this), this.store);
22
+ this.protoBook = new PeerStoreProtoBook(this.dispatchEvent.bind(this), this.store);
23
23
  }
24
24
  async *getPeers() {
25
25
  log('getPeers await read lock');
@@ -62,7 +62,7 @@ export class DefaultPeerStore extends EventEmitter {
62
62
  const release = await this.store.lock.readLock();
63
63
  log('get got read lock');
64
64
  try {
65
- return this.store.load(peerId);
65
+ return await this.store.load(peerId);
66
66
  }
67
67
  finally {
68
68
  log('get release read lock');
@@ -77,7 +77,7 @@ export class DefaultPeerStore extends EventEmitter {
77
77
  const release = await this.store.lock.readLock();
78
78
  log('has got read lock');
79
79
  try {
80
- return this.store.has(peerId);
80
+ return await this.store.has(peerId);
81
81
  }
82
82
  finally {
83
83
  log('has release read lock');
@@ -85,4 +85,7 @@ export class DefaultPeerStore extends EventEmitter {
85
85
  }
86
86
  }
87
87
  }
88
+ export function createPeerStore(opts) {
89
+ return new PeerStoreImpl(opts);
90
+ }
88
91
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import { PeerId } from '@libp2p/peer-id';
2
1
  import type { Store } from './store.js';
3
2
  import type { PeerStore, KeyBook } from '@libp2p/interfaces/src/peer-store';
3
+ import type { PeerId } from '@libp2p/interfaces/peer-id';
4
4
  export declare class PeerStoreKeyBook implements KeyBook {
5
- private emit;
6
- private store;
5
+ private readonly dispatchEvent;
6
+ private readonly store;
7
7
  /**
8
8
  * The KeyBook is responsible for keeping the known public keys of a peer
9
9
  */
10
- constructor(emit: PeerStore["emit"], store: Store);
10
+ constructor(dispatchEvent: PeerStore['dispatchEvent'], store: Store);
11
11
  /**
12
12
  * Set the Peer public key
13
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"key-book.d.ts","sourceRoot":"","sources":["../../src/key-book.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAY3E,qBAAa,gBAAiB,YAAW,OAAO;IAC9C,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,KAAK,CAAO;IAEpB;;OAEG;gBACU,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK;IAKlD;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU;IAyChD;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM;IAqBnB,MAAM,CAAE,MAAM,EAAE,MAAM;CAkB7B"}
1
+ {"version":3,"file":"key-book.d.ts","sourceRoot":"","sources":["../../src/key-book.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAMxD,qBAAa,gBAAiB,YAAW,OAAO;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAE7B;;OAEG;gBACU,aAAa,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK;IAKpE;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU;IA2ChD;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM;IAqBnB,MAAM,CAAE,MAAM,EAAE,MAAM;CAoB7B"}
@@ -1,30 +1,26 @@
1
1
  import { logger } from '@libp2p/logger';
2
2
  import errcode from 'err-code';
3
3
  import { codes } from './errors.js';
4
- import { PeerId } from '@libp2p/peer-id';
4
+ import { peerIdFromPeerId } from '@libp2p/peer-id';
5
5
  import { equals as uint8arrayEquals } from 'uint8arrays/equals';
6
- /**
7
- * @typedef {import('./types').PeerStore} PeerStore
8
- * @typedef {import('./types').KeyBook} KeyBook
9
- * @typedef {import('libp2p-interfaces/src/keys/types').PublicKey} PublicKey
10
- */
6
+ import { CustomEvent } from '@libp2p/interfaces';
11
7
  const log = logger('libp2p:peer-store:key-book');
12
8
  const EVENT_NAME = 'change:pubkey';
13
9
  export class PeerStoreKeyBook {
14
10
  /**
15
11
  * The KeyBook is responsible for keeping the known public keys of a peer
16
12
  */
17
- constructor(emit, store) {
18
- this.emit = emit;
13
+ constructor(dispatchEvent, store) {
14
+ this.dispatchEvent = dispatchEvent;
19
15
  this.store = store;
20
16
  }
21
17
  /**
22
18
  * Set the Peer public key
23
19
  */
24
20
  async set(peerId, publicKey) {
25
- peerId = PeerId.fromPeerId(peerId);
26
- if (!publicKey) {
27
- log.error('publicKey must be an instance of PublicKey to store data');
21
+ peerId = peerIdFromPeerId(peerId);
22
+ if (!(publicKey instanceof Uint8Array)) {
23
+ log.error('publicKey must be an instance of Uint8Array to store data');
28
24
  throw errcode(new Error('publicKey must be an instance of PublicKey'), codes.ERR_INVALID_PARAMETERS);
29
25
  }
30
26
  log('set await write lock');
@@ -34,7 +30,7 @@ export class PeerStoreKeyBook {
34
30
  try {
35
31
  try {
36
32
  const existing = await this.store.load(peerId);
37
- if (existing.pubKey && uint8arrayEquals(existing.pubKey, publicKey)) {
33
+ if ((existing.pubKey != null) && uint8arrayEquals(existing.pubKey, publicKey)) {
38
34
  return;
39
35
  }
40
36
  }
@@ -53,14 +49,16 @@ export class PeerStoreKeyBook {
53
49
  release();
54
50
  }
55
51
  if (updatedKey) {
56
- this.emit(EVENT_NAME, { peerId, pubKey: publicKey });
52
+ this.dispatchEvent(new CustomEvent(EVENT_NAME, {
53
+ detail: { peerId, pubKey: publicKey }
54
+ }));
57
55
  }
58
56
  }
59
57
  /**
60
58
  * Get Public key of the given PeerId, if stored
61
59
  */
62
60
  async get(peerId) {
63
- peerId = PeerId.fromPeerId(peerId);
61
+ peerId = peerIdFromPeerId(peerId);
64
62
  log('get await write lock');
65
63
  const release = await this.store.lock.readLock();
66
64
  log('get got write lock');
@@ -79,7 +77,7 @@ export class PeerStoreKeyBook {
79
77
  }
80
78
  }
81
79
  async delete(peerId) {
82
- peerId = PeerId.fromPeerId(peerId);
80
+ peerId = peerIdFromPeerId(peerId);
83
81
  log('delete await write lock');
84
82
  const release = await this.store.lock.writeLock();
85
83
  log('delete got write lock');
@@ -92,7 +90,9 @@ export class PeerStoreKeyBook {
92
90
  log('delete release write lock');
93
91
  release();
94
92
  }
95
- this.emit(EVENT_NAME, { peerId, pubKey: undefined });
93
+ this.dispatchEvent(new CustomEvent(EVENT_NAME, {
94
+ detail: { peerId, pubKey: undefined }
95
+ }));
96
96
  }
97
97
  }
98
98
  //# sourceMappingURL=key-book.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"key-book.js","sourceRoot":"","sources":["../../src/key-book.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-book.js","sourceRoot":"","sources":["../../src/key-book.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
- import { PeerId } from '@libp2p/peer-id';
2
1
  import type { Store } from './store.js';
3
2
  import type { PeerStore, MetadataBook } from '@libp2p/interfaces/src/peer-store';
3
+ import type { PeerId } from '@libp2p/interfaces/peer-id';
4
4
  export declare class PeerStoreMetadataBook implements MetadataBook {
5
- private emit;
6
- private store;
5
+ private readonly dispatchEvent;
6
+ private readonly store;
7
7
  /**
8
8
  * The MetadataBook is responsible for keeping metadata
9
9
  * about known peers
10
10
  */
11
- constructor(emit: PeerStore["emit"], store: Store);
11
+ constructor(dispatchEvent: PeerStore['dispatchEvent'], store: Store);
12
12
  /**
13
13
  * Get the known data of a provided peer
14
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-book.d.ts","sourceRoot":"","sources":["../../src/metadata-book.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAMhF,qBAAa,qBAAsB,YAAW,YAAY;IACxD,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,KAAK,CAAO;IAEpB;;;OAGG;gBACU,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK;IAKlD;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM;IAuBzB;;OAEG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAqBrC,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC;IAwB5D;;OAEG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAuCxD,MAAM,CAAE,MAAM,EAAE,MAAM;IA2BtB,WAAW,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CA+B/C"}
1
+ {"version":3,"file":"metadata-book.d.ts","sourceRoot":"","sources":["../../src/metadata-book.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAMxD,qBAAa,qBAAsB,YAAW,YAAY;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAE7B;;;OAGG;gBACU,aAAa,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK;IAKpE;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM;IAuBzB;;OAEG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAqBrC,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC;IA0B5D;;OAEG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAyCxD,MAAM,CAAE,MAAM,EAAE,MAAM;IA6BtB,WAAW,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAiC/C"}
@@ -1,8 +1,9 @@
1
1
  import { logger } from '@libp2p/logger';
2
2
  import errcode from 'err-code';
3
3
  import { codes } from './errors.js';
4
- import { PeerId } from '@libp2p/peer-id';
4
+ import { peerIdFromPeerId } from '@libp2p/peer-id';
5
5
  import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
6
+ import { CustomEvent } from '@libp2p/interfaces';
6
7
  const log = logger('libp2p:peer-store:metadata-book');
7
8
  const EVENT_NAME = 'change:metadata';
8
9
  export class PeerStoreMetadataBook {
@@ -10,15 +11,15 @@ export class PeerStoreMetadataBook {
10
11
  * The MetadataBook is responsible for keeping metadata
11
12
  * about known peers
12
13
  */
13
- constructor(emit, store) {
14
- this.emit = emit;
14
+ constructor(dispatchEvent, store) {
15
+ this.dispatchEvent = dispatchEvent;
15
16
  this.store = store;
16
17
  }
17
18
  /**
18
19
  * Get the known data of a provided peer
19
20
  */
20
21
  async get(peerId) {
21
- peerId = PeerId.fromPeerId(peerId);
22
+ peerId = peerIdFromPeerId(peerId);
22
23
  log('get await read lock');
23
24
  const release = await this.store.lock.readLock();
24
25
  log('get got read lock');
@@ -41,7 +42,7 @@ export class PeerStoreMetadataBook {
41
42
  * Get specific metadata value, if it exists
42
43
  */
43
44
  async getValue(peerId, key) {
44
- peerId = PeerId.fromPeerId(peerId);
45
+ peerId = peerIdFromPeerId(peerId);
45
46
  log('getValue await read lock');
46
47
  const release = await this.store.lock.readLock();
47
48
  log('getValue got read lock');
@@ -60,8 +61,8 @@ export class PeerStoreMetadataBook {
60
61
  }
61
62
  }
62
63
  async set(peerId, metadata) {
63
- peerId = PeerId.fromPeerId(peerId);
64
- if (!metadata || !(metadata instanceof Map)) {
64
+ peerId = peerIdFromPeerId(peerId);
65
+ if (!(metadata instanceof Map)) {
65
66
  log.error('valid metadata must be provided to store data');
66
67
  throw errcode(new Error('valid metadata must be provided'), codes.ERR_INVALID_PARAMETERS);
67
68
  }
@@ -77,13 +78,15 @@ export class PeerStoreMetadataBook {
77
78
  log('set release write lock');
78
79
  release();
79
80
  }
80
- this.emit(EVENT_NAME, { peerId, metadata });
81
+ this.dispatchEvent(new CustomEvent(EVENT_NAME, {
82
+ detail: { peerId, metadata }
83
+ }));
81
84
  }
82
85
  /**
83
86
  * Set metadata key and value of a provided peer
84
87
  */
85
88
  async setValue(peerId, key, value) {
86
- peerId = PeerId.fromPeerId(peerId);
89
+ peerId = peerIdFromPeerId(peerId);
87
90
  if (typeof key !== 'string' || !(value instanceof Uint8Array)) {
88
91
  log.error('valid key and value must be provided to store data');
89
92
  throw errcode(new Error('valid key and value must be provided'), codes.ERR_INVALID_PARAMETERS);
@@ -113,10 +116,12 @@ export class PeerStoreMetadataBook {
113
116
  log('setValue release write lock');
114
117
  release();
115
118
  }
116
- this.emit(EVENT_NAME, { peerId, metadata: updatedPeer.metadata });
119
+ this.dispatchEvent(new CustomEvent(EVENT_NAME, {
120
+ detail: { peerId, metadata: updatedPeer.metadata }
121
+ }));
117
122
  }
118
123
  async delete(peerId) {
119
- peerId = PeerId.fromPeerId(peerId);
124
+ peerId = peerIdFromPeerId(peerId);
120
125
  log('delete await write lock');
121
126
  const release = await this.store.lock.writeLock();
122
127
  log('delete got write lock');
@@ -134,11 +139,13 @@ export class PeerStoreMetadataBook {
134
139
  release();
135
140
  }
136
141
  if (has) {
137
- this.emit(EVENT_NAME, { peerId, metadata: new Map() });
142
+ this.dispatchEvent(new CustomEvent(EVENT_NAME, {
143
+ detail: { peerId, metadata: new Map() }
144
+ }));
138
145
  }
139
146
  }
140
147
  async deleteValue(peerId, key) {
141
- peerId = PeerId.fromPeerId(peerId);
148
+ peerId = peerIdFromPeerId(peerId);
142
149
  log('deleteValue await write lock');
143
150
  const release = await this.store.lock.writeLock();
144
151
  log('deleteValue got write lock');
@@ -160,8 +167,10 @@ export class PeerStoreMetadataBook {
160
167
  log('deleteValue release write lock');
161
168
  release();
162
169
  }
163
- if (metadata) {
164
- this.emit(EVENT_NAME, { peerId, metadata });
170
+ if (metadata != null) {
171
+ this.dispatchEvent(new CustomEvent(EVENT_NAME, {
172
+ detail: { peerId, metadata }
173
+ }));
165
174
  }
166
175
  }
167
176
  }