@libp2p/peer-store 11.2.1 → 11.2.2-2a7425cdb

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.
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * The peer store is where libp2p stores data about the peers it has encountered on the network.
5
5
  */
6
- import type { ComponentLogger, Libp2pEvents, TypedEventTarget, PeerId, PeerStore } from '@libp2p/interface';
6
+ import type { ComponentLogger, Libp2pEvents, TypedEventTarget, PeerId, PeerStore, AbortOptions, Metrics } from '@libp2p/interface';
7
7
  import type { Multiaddr } from '@multiformats/multiaddr';
8
8
  import type { Datastore } from 'interface-datastore';
9
9
  export interface PersistentPeerStoreComponents {
@@ -11,12 +11,13 @@ export interface PersistentPeerStoreComponents {
11
11
  datastore: Datastore;
12
12
  events: TypedEventTarget<Libp2pEvents>;
13
13
  logger: ComponentLogger;
14
+ metrics?: Metrics;
14
15
  }
15
16
  /**
16
17
  * Return true to allow storing the passed multiaddr for the passed peer
17
18
  */
18
19
  export interface AddressFilter {
19
- (peerId: PeerId, multiaddr: Multiaddr): Promise<boolean> | boolean;
20
+ (peerId: PeerId, multiaddr: Multiaddr, options?: AbortOptions): Promise<boolean> | boolean;
20
21
  }
21
22
  export interface PersistentPeerStoreInit {
22
23
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAU,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAuC,MAAM,mBAAmB,CAAA;AACxJ,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IACtC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;CACnE;AAED,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAE7B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AA0MD,wBAAgB,mBAAmB,CAAE,UAAU,EAAE,6BAA6B,EAAE,IAAI,GAAE,uBAA4B,GAAG,SAAS,CAE7H"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAU,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAuC,YAAY,EAA4B,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACzM,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IACtC,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;CAC3F;AAED,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAE7B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AA4KD,wBAAgB,mBAAmB,CAAE,UAAU,EAAE,6BAA6B,EAAE,IAAI,GAAE,uBAA4B,GAAG,SAAS,CAE7H"}
package/dist/src/index.js CHANGED
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * The peer store is where libp2p stores data about the peers it has encountered on the network.
5
5
  */
6
+ import { isPeerId } from '@libp2p/interface';
6
7
  import { peerIdFromCID } from '@libp2p/peer-id';
7
8
  import { RecordEnvelope, PeerRecord } from '@libp2p/peer-record';
8
9
  import all from 'it-all';
@@ -23,118 +24,85 @@ class PersistentPeerStore {
23
24
  }
24
25
  [Symbol.toStringTag] = '@libp2p/peer-store';
25
26
  async forEach(fn, query) {
26
- this.log.trace('forEach await read lock');
27
- const release = await this.store.lock.readLock();
28
- this.log.trace('forEach got read lock');
29
- try {
30
- for await (const peer of this.store.all(query)) {
31
- fn(peer);
32
- }
33
- }
34
- finally {
35
- this.log.trace('forEach release read lock');
36
- release();
27
+ for await (const peer of this.store.all(query)) {
28
+ fn(peer);
37
29
  }
38
30
  }
39
31
  async all(query) {
40
- this.log.trace('all await read lock');
41
- const release = await this.store.lock.readLock();
42
- this.log.trace('all got read lock');
43
- try {
44
- return await all(this.store.all(query));
45
- }
46
- finally {
47
- this.log.trace('all release read lock');
48
- release();
49
- }
32
+ return all(this.store.all(query));
50
33
  }
51
- async delete(peerId) {
52
- this.log.trace('delete await write lock');
53
- const release = await this.store.lock.writeLock();
54
- this.log.trace('delete got write lock');
34
+ async delete(peerId, options) {
35
+ const release = await this.store.getReadLock(peerId, options);
55
36
  try {
56
- await this.store.delete(peerId);
37
+ await this.store.delete(peerId, options);
57
38
  }
58
39
  finally {
59
- this.log.trace('delete release write lock');
60
40
  release();
61
41
  }
62
42
  }
63
- async has(peerId) {
64
- this.log.trace('has await read lock');
65
- const release = await this.store.lock.readLock();
66
- this.log.trace('has got read lock');
43
+ async has(peerId, options) {
44
+ const release = await this.store.getReadLock(peerId, options);
67
45
  try {
68
- return await this.store.has(peerId);
46
+ return await this.store.has(peerId, options);
69
47
  }
70
48
  finally {
71
49
  this.log.trace('has release read lock');
72
- release();
50
+ release?.();
73
51
  }
74
52
  }
75
- async get(peerId) {
76
- this.log.trace('get await read lock');
77
- const release = await this.store.lock.readLock();
78
- this.log.trace('get got read lock');
53
+ async get(peerId, options) {
54
+ const release = await this.store.getReadLock(peerId, options);
79
55
  try {
80
- return await this.store.load(peerId);
56
+ return await this.store.load(peerId, options);
81
57
  }
82
58
  finally {
83
- this.log.trace('get release read lock');
84
- release();
59
+ release?.();
85
60
  }
86
61
  }
87
- async getInfo(peerId) {
88
- const peer = await this.get(peerId);
62
+ async getInfo(peerId, options) {
63
+ const peer = await this.get(peerId, options);
89
64
  return {
90
65
  id: peer.id,
91
66
  multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
92
67
  };
93
68
  }
94
- async save(id, data) {
95
- this.log.trace('save await write lock');
96
- const release = await this.store.lock.writeLock();
97
- this.log.trace('save got write lock');
69
+ async save(id, data, options) {
70
+ const release = await this.store.getWriteLock(id, options);
98
71
  try {
99
- const result = await this.store.save(id, data);
72
+ const result = await this.store.save(id, data, options);
100
73
  this.#emitIfUpdated(id, result);
101
74
  return result.peer;
102
75
  }
103
76
  finally {
104
- this.log.trace('save release write lock');
105
- release();
77
+ release?.();
106
78
  }
107
79
  }
108
- async patch(id, data) {
109
- this.log.trace('patch await write lock');
110
- const release = await this.store.lock.writeLock();
111
- this.log.trace('patch got write lock');
80
+ async patch(id, data, options) {
81
+ const release = await this.store.getWriteLock(id, options);
112
82
  try {
113
- const result = await this.store.patch(id, data);
83
+ const result = await this.store.patch(id, data, options);
114
84
  this.#emitIfUpdated(id, result);
115
85
  return result.peer;
116
86
  }
117
87
  finally {
118
- this.log.trace('patch release write lock');
119
- release();
88
+ release?.();
120
89
  }
121
90
  }
122
- async merge(id, data) {
123
- this.log.trace('merge await write lock');
124
- const release = await this.store.lock.writeLock();
125
- this.log.trace('merge got write lock');
91
+ async merge(id, data, options) {
92
+ const release = await this.store.getWriteLock(id, options);
126
93
  try {
127
- const result = await this.store.merge(id, data);
94
+ const result = await this.store.merge(id, data, options);
128
95
  this.#emitIfUpdated(id, result);
129
96
  return result.peer;
130
97
  }
131
98
  finally {
132
- this.log.trace('merge release write lock');
133
- release();
99
+ release?.();
134
100
  }
135
101
  }
136
- async consumePeerRecord(buf, expectedPeer) {
137
- const envelope = await RecordEnvelope.openAndCertify(buf, PeerRecord.DOMAIN);
102
+ async consumePeerRecord(buf, arg1, arg2) {
103
+ const expectedPeer = isPeerId(arg1) ? arg1 : isPeerId(arg1?.expectedPeer) ? arg1.expectedPeer : undefined;
104
+ const options = isPeerId(arg1) ? arg2 : arg1 === undefined ? arg2 : arg1;
105
+ const envelope = await RecordEnvelope.openAndCertify(buf, PeerRecord.DOMAIN, options);
138
106
  const peerId = peerIdFromCID(envelope.publicKey.toCID());
139
107
  if (expectedPeer?.equals(peerId) === false) {
140
108
  this.log('envelope peer id was not the expected peer id - expected: %p received: %p', expectedPeer, peerId);
@@ -143,7 +111,7 @@ class PersistentPeerStore {
143
111
  const peerRecord = PeerRecord.createFromProtobuf(envelope.payload);
144
112
  let peer;
145
113
  try {
146
- peer = await this.get(peerId);
114
+ peer = await this.get(peerId, options);
147
115
  }
148
116
  catch (err) {
149
117
  if (err.name !== 'NotFoundError') {
@@ -152,7 +120,7 @@ class PersistentPeerStore {
152
120
  }
153
121
  // ensure seq is greater than, or equal to, the last received
154
122
  if (peer?.peerRecordEnvelope != null) {
155
- const storedEnvelope = await RecordEnvelope.createFromProtobuf(peer.peerRecordEnvelope);
123
+ const storedEnvelope = RecordEnvelope.createFromProtobuf(peer.peerRecordEnvelope);
156
124
  const storedRecord = PeerRecord.createFromProtobuf(storedEnvelope.payload);
157
125
  if (storedRecord.seqNumber >= peerRecord.seqNumber) {
158
126
  this.log('sequence number was lower or equal to existing sequence number - stored: %d received: %d', storedRecord.seqNumber, peerRecord.seqNumber);
@@ -165,7 +133,7 @@ class PersistentPeerStore {
165
133
  isCertified: true,
166
134
  multiaddr
167
135
  }))
168
- });
136
+ }, options);
169
137
  return true;
170
138
  }
171
139
  #emitIfUpdated(id, result) {
@@ -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,7 +1,8 @@
1
1
  import { Peer as PeerPB } from './pb/peer.js';
2
2
  import type { PersistentPeerStoreComponents, PersistentPeerStoreInit } from './index.js';
3
3
  import type { PeerUpdate as PeerUpdateExternal, PeerId, Peer, PeerData, PeerQuery } from '@libp2p/interface';
4
- import type { Mortice } from 'mortice';
4
+ import type { AbortOptions } from '@multiformats/multiaddr';
5
+ import type { Mortice, Release } from 'mortice';
5
6
  /**
6
7
  * Event detail emitted when peer data changes
7
8
  */
@@ -12,22 +13,30 @@ export interface ExistingPeer {
12
13
  peerPB: PeerPB;
13
14
  peer: Peer;
14
15
  }
16
+ export interface Lock {
17
+ refs: number;
18
+ lock: Mortice;
19
+ }
15
20
  export declare class PersistentStore {
16
21
  #private;
17
22
  private readonly peerId;
18
23
  private readonly datastore;
19
- readonly lock: Mortice;
24
+ private locks;
20
25
  private readonly addressFilter?;
21
26
  private readonly log;
22
27
  private readonly maxAddressAge;
23
28
  private readonly maxPeerAge;
24
29
  constructor(components: PersistentPeerStoreComponents, init?: PersistentPeerStoreInit);
25
- has(peerId: PeerId): Promise<boolean>;
26
- delete(peerId: PeerId): Promise<void>;
27
- load(peerId: PeerId): Promise<Peer>;
28
- save(peerId: PeerId, data: PeerData): Promise<PeerUpdate>;
29
- patch(peerId: PeerId, data: Partial<PeerData>): Promise<PeerUpdate>;
30
- merge(peerId: PeerId, data: PeerData): Promise<PeerUpdate>;
31
- all(query?: PeerQuery): AsyncGenerator<Peer, void, unknown>;
30
+ getLock(peerId: PeerId): Lock;
31
+ private maybeRemoveLock;
32
+ getReadLock(peerId: PeerId, options?: AbortOptions): Promise<Release>;
33
+ getWriteLock(peerId: PeerId, options?: AbortOptions): Promise<Release>;
34
+ has(peerId: PeerId, options?: AbortOptions): Promise<boolean>;
35
+ delete(peerId: PeerId, options?: AbortOptions): Promise<void>;
36
+ load(peerId: PeerId, options?: AbortOptions): Promise<Peer>;
37
+ save(peerId: PeerId, data: PeerData, options?: AbortOptions): Promise<PeerUpdate>;
38
+ patch(peerId: PeerId, data: Partial<PeerData>, options?: AbortOptions): Promise<PeerUpdate>;
39
+ merge(peerId: PeerId, data: PeerData, options?: AbortOptions): Promise<PeerUpdate>;
40
+ all(options?: PeerQuery): AsyncGenerator<Peer, void, unknown>;
32
41
  }
33
42
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,cAAc,CAAA;AAK7C,OAAO,KAAK,EAAiB,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACvG,OAAO,KAAK,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAU,MAAM,mBAAmB,CAAA;AAEpH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,kBAAkB;IACpD,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,IAAI,CAAA;CACX;AA4BD,qBAAa,eAAe;;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,SAAgB,IAAI,EAAE,OAAO,CAAA;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;gBAEtB,UAAU,EAAE,6BAA6B,EAAE,IAAI,GAAE,uBAA4B;IAapF,GAAG,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IActC,MAAM,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtC,IAAI,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAapC,IAAI,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAU1D,KAAK,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAWpE,KAAK,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAWzD,GAAG,CAAE,KAAK,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;CA2ErE"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,cAAc,CAAA;AAK7C,OAAO,KAAK,EAAiB,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACvG,OAAO,KAAK,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAU,MAAM,mBAAmB,CAAA;AACpH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE3D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAE/C;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,kBAAkB;IACpD,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,IAAI,CAAA;CACX;AA4BD,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;CACd;AAED,qBAAa,eAAe;;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;gBAEtB,UAAU,EAAE,6BAA6B,EAAE,IAAI,GAAE,uBAA4B;IAa1F,OAAO,CAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAoB9B,OAAO,CAAC,eAAe;IAQjB,WAAW,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBtE,YAAY,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBvE,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAc9D,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9D,IAAI,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5D,IAAI,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAWlF,KAAK,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAY5F,KAAK,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAWjF,GAAG,CAAE,OAAO,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;CA2EvE"}
package/dist/src/store.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { NotFoundError } from '@libp2p/interface';
2
+ import { PeerMap, trackedPeerMap } from '@libp2p/peer-collections';
2
3
  import { peerIdFromCID } from '@libp2p/peer-id';
3
4
  import mortice from 'mortice';
4
5
  import { base32 } from 'multiformats/bases/base32';
@@ -33,7 +34,7 @@ function mapQuery(query, maxAddressAge) {
33
34
  export class PersistentStore {
34
35
  peerId;
35
36
  datastore;
36
- lock;
37
+ locks;
37
38
  addressFilter;
38
39
  log;
39
40
  maxAddressAge;
@@ -43,16 +44,65 @@ export class PersistentStore {
43
44
  this.peerId = components.peerId;
44
45
  this.datastore = components.datastore;
45
46
  this.addressFilter = init.addressFilter;
46
- this.lock = mortice({
47
- name: 'peer-store',
48
- singleProcess: true
47
+ this.locks = trackedPeerMap({
48
+ name: 'libp2p_peer_store_locks',
49
+ metrics: components.metrics
49
50
  });
50
51
  this.maxAddressAge = init.maxAddressAge ?? MAX_ADDRESS_AGE;
51
52
  this.maxPeerAge = init.maxPeerAge ?? MAX_PEER_AGE;
52
53
  }
53
- async has(peerId) {
54
+ getLock(peerId) {
55
+ let lock = this.locks.get(peerId);
56
+ if (lock == null) {
57
+ lock = {
58
+ refs: 0,
59
+ lock: mortice({
60
+ name: peerId.toString(),
61
+ singleProcess: true
62
+ })
63
+ };
64
+ this.locks.set(peerId, lock);
65
+ }
66
+ lock.refs++;
67
+ return lock;
68
+ }
69
+ maybeRemoveLock(peerId, lock) {
70
+ lock.refs--;
71
+ if (lock.refs === 0) {
72
+ this.locks.delete(peerId);
73
+ }
74
+ }
75
+ async getReadLock(peerId, options) {
76
+ const lock = this.getLock(peerId);
77
+ try {
78
+ const release = await lock.lock.readLock(options);
79
+ return () => {
80
+ release();
81
+ this.maybeRemoveLock(peerId, lock);
82
+ };
83
+ }
84
+ catch (err) {
85
+ this.maybeRemoveLock(peerId, lock);
86
+ throw err;
87
+ }
88
+ }
89
+ async getWriteLock(peerId, options) {
90
+ const lock = this.getLock(peerId);
91
+ try {
92
+ const release = await lock.lock.writeLock(options);
93
+ return () => {
94
+ release();
95
+ this.maybeRemoveLock(peerId, lock);
96
+ };
97
+ }
98
+ catch (err) {
99
+ this.maybeRemoveLock(peerId, lock);
100
+ throw err;
101
+ }
102
+ }
103
+ async has(peerId, options) {
54
104
  try {
55
- await this.load(peerId);
105
+ await this.load(peerId, options);
56
106
  return true;
57
107
  }
58
108
  catch (err) {
@@ -62,47 +112,49 @@ export class PersistentStore {
62
112
  }
63
113
  return false;
64
114
  }
65
- async delete(peerId) {
115
+ async delete(peerId, options) {
66
116
  if (this.peerId.equals(peerId)) {
67
117
  return;
68
118
  }
69
- await this.datastore.delete(peerIdToDatastoreKey(peerId));
119
+ await this.datastore.delete(peerIdToDatastoreKey(peerId), options);
70
120
  }
71
- async load(peerId) {
121
+ async load(peerId, options) {
72
122
  const key = peerIdToDatastoreKey(peerId);
73
- const buf = await this.datastore.get(key);
123
+ const buf = await this.datastore.get(key, options);
74
124
  const peer = PeerPB.decode(buf);
75
125
  if (this.#peerIsExpired(peerId, peer)) {
76
- await this.datastore.delete(key);
126
+ await this.datastore.delete(key, options);
77
127
  throw new NotFoundError();
78
128
  }
79
129
  return pbToPeer(peerId, peer, this.peerId.equals(peerId) ? Infinity : this.maxAddressAge);
80
130
  }
81
- async save(peerId, data) {
82
- const existingPeer = await this.#findExistingPeer(peerId);
131
+ async save(peerId, data, options) {
132
+ const existingPeer = await this.#findExistingPeer(peerId, options);
83
133
  const peerPb = await toPeerPB(peerId, data, 'patch', {
134
+ ...options,
84
135
  addressFilter: this.addressFilter
85
136
  });
86
137
  return this.#saveIfDifferent(peerId, peerPb, existingPeer);
87
138
  }
88
- async patch(peerId, data) {
89
- const existingPeer = await this.#findExistingPeer(peerId);
139
+ async patch(peerId, data, options) {
140
+ const existingPeer = await this.#findExistingPeer(peerId, options);
90
141
  const peerPb = await toPeerPB(peerId, data, 'patch', {
142
+ ...options,
91
143
  addressFilter: this.addressFilter,
92
144
  existingPeer
93
145
  });
94
146
  return this.#saveIfDifferent(peerId, peerPb, existingPeer);
95
147
  }
96
- async merge(peerId, data) {
97
- const existingPeer = await this.#findExistingPeer(peerId);
148
+ async merge(peerId, data, options) {
149
+ const existingPeer = await this.#findExistingPeer(peerId, options);
98
150
  const peerPb = await toPeerPB(peerId, data, 'merge', {
99
151
  addressFilter: this.addressFilter,
100
152
  existingPeer
101
153
  });
102
154
  return this.#saveIfDifferent(peerId, peerPb, existingPeer);
103
155
  }
104
- async *all(query) {
105
- for await (const { key, value } of this.datastore.query(mapQuery(query ?? {}, this.maxAddressAge))) {
156
+ async *all(options) {
157
+ for await (const { key, value } of this.datastore.query(mapQuery(options ?? {}, this.maxAddressAge), options)) {
106
158
  const peerId = keyToPeerId(key);
107
159
  // skip self peer if present
108
160
  if (peerId.equals(this.peerId)) {
@@ -111,25 +163,25 @@ export class PersistentStore {
111
163
  const peer = PeerPB.decode(value);
112
164
  // remove expired peer
113
165
  if (this.#peerIsExpired(peerId, peer)) {
114
- await this.datastore.delete(key);
166
+ await this.datastore.delete(key, options);
115
167
  continue;
116
168
  }
117
169
  yield pbToPeer(peerId, peer, this.peerId.equals(peerId) ? Infinity : this.maxAddressAge);
118
170
  }
119
171
  }
120
- async #findExistingPeer(peerId) {
172
+ async #findExistingPeer(peerId, options) {
121
173
  try {
122
174
  const key = peerIdToDatastoreKey(peerId);
123
- const buf = await this.datastore.get(key);
175
+ const buf = await this.datastore.get(key, options);
124
176
  const peerPB = PeerPB.decode(buf);
125
177
  // remove expired peer
126
178
  if (this.#peerIsExpired(peerId, peerPB)) {
127
- await this.datastore.delete(key);
179
+ await this.datastore.delete(key, options);
128
180
  throw new NotFoundError();
129
181
  }
130
182
  return {
131
183
  peerPB,
132
- peer: bytesToPeer(peerId, buf, this.maxAddressAge)
184
+ peer: pbToPeer(peerId, peerPB, this.maxAddressAge)
133
185
  };
134
186
  }
135
187
  catch (err) {
@@ -138,13 +190,13 @@ export class PersistentStore {
138
190
  }
139
191
  }
140
192
  }
141
- async #saveIfDifferent(peerId, peer, existingPeer) {
193
+ async #saveIfDifferent(peerId, peer, existingPeer, options) {
142
194
  // record last update
143
195
  peer.updated = Date.now();
144
196
  const buf = PeerPB.encode(peer);
145
- await this.datastore.put(peerIdToDatastoreKey(peerId), buf);
197
+ await this.datastore.put(peerIdToDatastoreKey(peerId), buf, options);
146
198
  return {
147
- peer: bytesToPeer(peerId, buf, this.maxAddressAge),
199
+ peer: pbToPeer(peerId, peer, this.maxAddressAge),
148
200
  previous: existingPeer?.peer,
149
201
  updated: existingPeer == null || !peerEquals(peer, existingPeer.peerPB)
150
202
  };
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bytes-to-peer.d.ts","sourceRoot":"","sources":["../../../src/utils/bytes-to-peer.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAO,MAAM,mBAAmB,CAAA;AAmB1D,wBAAgB,WAAW,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAIzF;AAED,wBAAgB,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CA8BnF"}
1
+ {"version":3,"file":"bytes-to-peer.d.ts","sourceRoot":"","sources":["../../../src/utils/bytes-to-peer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAO,MAAM,mBAAmB,CAAA;AAmB1D,wBAAgB,WAAW,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAIzF;AAED,wBAAgB,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CA8BnF"}
@@ -1,8 +1,6 @@
1
1
  import { publicKeyFromProtobuf } from '@libp2p/crypto/keys';
2
2
  import { peerIdFromPublicKey } from '@libp2p/peer-id';
3
3
  import { multiaddr } from '@multiformats/multiaddr';
4
- import { base58btc } from 'multiformats/bases/base58';
5
- import * as Digest from 'multiformats/hashes/digest';
6
4
  import { Peer as PeerPB } from '../pb/peer.js';
7
5
  function populatePublicKey(peerId, protobuf) {
8
6
  if (peerId.publicKey != null || protobuf.publicKey == null) {
@@ -11,8 +9,7 @@ function populatePublicKey(peerId, protobuf) {
11
9
  let digest;
12
10
  if (peerId.type === 'RSA') {
13
11
  // avoid hashing public key
14
- const multihash = base58btc.decode(`z${peerId}`);
15
- digest = Digest.decode(multihash);
12
+ digest = peerId.toMultihash();
16
13
  }
17
14
  const publicKey = publicKeyFromProtobuf(protobuf.publicKey, digest);
18
15
  return peerIdFromPublicKey(publicKey);
@@ -1 +1 @@
1
- {"version":3,"file":"bytes-to-peer.js","sourceRoot":"","sources":["../../../src/utils/bytes-to-peer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,eAAe,CAAA;AAG9C,SAAS,iBAAiB,CAAE,MAAc,EAAE,QAAgB;IAC1D,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,QAAQ,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,MAAW,CAAA;IAEf,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,2BAA2B;QAC3B,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC,CAAA;QAChD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IACnE,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,WAAW,CAAE,MAAc,EAAE,GAAe,EAAE,aAAqB;IACjF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAE/B,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAE,MAAc,EAAE,IAAY,EAAE,aAAqB;IAC3E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAe,CAAA;IAEnC,0BAA0B;IAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7C,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC3C,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACpB,CAAC;IAED,OAAO;QACL,GAAG,IAAI;QACP,EAAE,EAAE,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC;QACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACvB,gCAAgC;aAC/B,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC;aACrF,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YACtC,OAAO;gBACL,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;gBACxB,WAAW,EAAE,WAAW,IAAI,KAAK;aAClC,CAAA;QACH,CAAC,CAAC;QACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,SAAS;QACxD,IAAI;KACL,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"bytes-to-peer.js","sourceRoot":"","sources":["../../../src/utils/bytes-to-peer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,eAAe,CAAA;AAI9C,SAAS,iBAAiB,CAAE,MAAc,EAAE,QAAgB;IAC1D,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,QAAQ,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,MAAsC,CAAA;IAE1C,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,2BAA2B;QAC3B,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;IAC/B,CAAC;IAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IACnE,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,WAAW,CAAE,MAAc,EAAE,GAAe,EAAE,aAAqB;IACjF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAE/B,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAE,MAAc,EAAE,IAAY,EAAE,aAAqB;IAC3E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAe,CAAA;IAEnC,0BAA0B;IAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7C,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC3C,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACpB,CAAC;IAED,OAAO;QACL,GAAG,IAAI;QACP,EAAE,EAAE,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC;QACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACvB,gCAAgC;aAC/B,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC;aACrF,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YACtC,OAAO;gBACL,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;gBACxB,WAAW,EAAE,WAAW,IAAI,KAAK;aAClC,CAAA;QACH,CAAC,CAAC;QACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,SAAS;QACxD,IAAI;KACL,CAAA;AACH,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { AddressFilter } from '../index.js';
2
2
  import type { Address as AddressPB } from '../pb/peer.js';
3
3
  import type { PeerId, Address } from '@libp2p/interface';
4
- export declare function dedupeFilterAndSortAddresses(peerId: PeerId, filter: AddressFilter, addresses: Array<Address | AddressPB | undefined>, existingAddresses?: AddressPB[]): Promise<AddressPB[]>;
4
+ import type { AbortOptions } from '@multiformats/multiaddr';
5
+ export declare function dedupeFilterAndSortAddresses(peerId: PeerId, filter: AddressFilter, addresses: Array<Address | AddressPB | undefined>, existingAddresses?: AddressPB[], options?: AbortOptions): Promise<AddressPB[]>;
5
6
  //# sourceMappingURL=dedupe-addresses.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dedupe-addresses.d.ts","sourceRoot":"","sources":["../../../src/utils/dedupe-addresses.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAExD,wBAAsB,4BAA4B,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC,EAAE,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAmDnM"}
1
+ {"version":3,"file":"dedupe-addresses.d.ts","sourceRoot":"","sources":["../../../src/utils/dedupe-addresses.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE3D,wBAAsB,4BAA4B,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC,EAAE,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAmD3N"}
@@ -1,6 +1,6 @@
1
1
  import { InvalidParametersError } from '@libp2p/interface';
2
2
  import { isMultiaddr, multiaddr } from '@multiformats/multiaddr';
3
- export async function dedupeFilterAndSortAddresses(peerId, filter, addresses, existingAddresses) {
3
+ export async function dedupeFilterAndSortAddresses(peerId, filter, addresses, existingAddresses, options) {
4
4
  const addressMap = new Map();
5
5
  for (const addr of addresses) {
6
6
  if (addr == null) {
@@ -12,7 +12,7 @@ export async function dedupeFilterAndSortAddresses(peerId, filter, addresses, ex
12
12
  if (!isMultiaddr(addr.multiaddr)) {
13
13
  throw new InvalidParametersError('Multiaddr was invalid');
14
14
  }
15
- if (!(await filter(peerId, addr.multiaddr))) {
15
+ if (!(await filter(peerId, addr.multiaddr, options))) {
16
16
  continue;
17
17
  }
18
18
  const isCertified = addr.isCertified ?? false;
@@ -1 +1 @@
1
- {"version":3,"file":"dedupe-addresses.js","sourceRoot":"","sources":["../../../src/utils/dedupe-addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAKhE,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAE,MAAc,EAAE,MAAqB,EAAE,SAAiD,EAAE,iBAA+B;IAC3K,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAA;IAE7C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,SAAQ;QACV,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,YAAY,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC5C,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,sBAAsB,CAAC,uBAAuB,CAAC,CAAA;QAC3D,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC5C,SAAQ;QACV,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,KAAK,CAAA;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAA;QACvC,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAE1C,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,WAAW,CAAA;QAC5D,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE;gBACpB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW;aACZ,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;SAC5B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;IACrE,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE;QACtC,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,EAAE,CAAA;QAE/B,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAA;QAClD,CAAC;QAED,OAAO;YACL,WAAW;YACX,SAAS,EAAE,EAAE,CAAC,KAAK;SACpB,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"dedupe-addresses.js","sourceRoot":"","sources":["../../../src/utils/dedupe-addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAMhE,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAE,MAAc,EAAE,MAAqB,EAAE,SAAiD,EAAE,iBAA+B,EAAE,OAAsB;IACnM,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAA;IAE7C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,SAAQ;QACV,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,YAAY,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC5C,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,sBAAsB,CAAC,uBAAuB,CAAC,CAAA;QAC3D,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;YACrD,SAAQ;QACV,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,KAAK,CAAA;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAA;QACvC,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAE1C,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,WAAW,CAAA;QAC5D,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE;gBACpB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW;aACZ,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;SAC5B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;IACrE,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE;QACtC,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,EAAE,CAAA;QAE/B,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAA;QAClD,CAAC;QAED,OAAO;YACL,WAAW;YACX,SAAS,EAAE,EAAE,CAAC,KAAK;SACpB,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}