@libp2p/peer-store 11.2.2 → 11.2.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.
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +4 -4
- package/dist/src/index.d.ts +4 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +36 -68
- package/dist/src/index.js.map +1 -1
- package/dist/src/store.d.ts +18 -9
- package/dist/src/store.d.ts.map +1 -1
- package/dist/src/store.js +80 -27
- package/dist/src/store.js.map +1 -1
- package/dist/src/utils/bytes-to-peer.d.ts.map +1 -1
- package/dist/src/utils/bytes-to-peer.js +1 -4
- package/dist/src/utils/bytes-to-peer.js.map +1 -1
- package/dist/src/utils/dedupe-addresses.d.ts +2 -1
- package/dist/src/utils/dedupe-addresses.d.ts.map +1 -1
- package/dist/src/utils/dedupe-addresses.js +2 -2
- package/dist/src/utils/dedupe-addresses.js.map +1 -1
- package/dist/src/utils/to-peer-pb.d.ts +2 -1
- package/dist/src/utils/to-peer-pb.d.ts.map +1 -1
- package/dist/src/utils/to-peer-pb.js +7 -4
- package/dist/src/utils/to-peer-pb.js.map +1 -1
- package/package.json +12 -10
- package/src/index.ts +43 -70
- package/src/store.ts +100 -28
- package/src/utils/bytes-to-peer.ts +3 -5
- package/src/utils/dedupe-addresses.ts +3 -2
- package/src/utils/to-peer-pb.ts +12 -5
package/dist/src/index.d.ts
CHANGED
|
@@ -3,20 +3,22 @@
|
|
|
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,
|
|
6
|
+
import type { ComponentLogger, Libp2pEvents, PeerId, PeerStore, AbortOptions, Metrics } from '@libp2p/interface';
|
|
7
7
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
8
8
|
import type { Datastore } from 'interface-datastore';
|
|
9
|
+
import type { TypedEventTarget } from 'main-event';
|
|
9
10
|
export interface PersistentPeerStoreComponents {
|
|
10
11
|
peerId: PeerId;
|
|
11
12
|
datastore: Datastore;
|
|
12
13
|
events: TypedEventTarget<Libp2pEvents>;
|
|
13
14
|
logger: ComponentLogger;
|
|
15
|
+
metrics?: Metrics;
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
16
18
|
* Return true to allow storing the passed multiaddr for the passed peer
|
|
17
19
|
*/
|
|
18
20
|
export interface AddressFilter {
|
|
19
|
-
(peerId: PeerId, multiaddr: Multiaddr): Promise<boolean> | boolean;
|
|
21
|
+
(peerId: PeerId, multiaddr: Multiaddr, options?: AbortOptions): Promise<boolean> | boolean;
|
|
20
22
|
}
|
|
21
23
|
export interface PersistentPeerStoreInit {
|
|
22
24
|
/**
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAU,MAAM,EAAE,SAAS,EAAuC,YAAY,EAA4B,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACvL,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,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.
|
|
27
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
105
|
-
release();
|
|
77
|
+
release?.();
|
|
106
78
|
}
|
|
107
79
|
}
|
|
108
|
-
async patch(id, data) {
|
|
109
|
-
this.
|
|
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
|
-
|
|
119
|
-
release();
|
|
88
|
+
release?.();
|
|
120
89
|
}
|
|
121
90
|
}
|
|
122
|
-
async merge(id, data) {
|
|
123
|
-
this.
|
|
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
|
-
|
|
133
|
-
release();
|
|
99
|
+
release?.();
|
|
134
100
|
}
|
|
135
101
|
}
|
|
136
|
-
async consumePeerRecord(buf,
|
|
137
|
-
const
|
|
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 =
|
|
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) {
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/store.d.ts
CHANGED
|
@@ -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 {
|
|
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
|
-
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
package/dist/src/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"
|
|
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;IASjB,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
|
-
|
|
37
|
+
locks;
|
|
37
38
|
addressFilter;
|
|
38
39
|
log;
|
|
39
40
|
maxAddressAge;
|
|
@@ -43,16 +44,66 @@ export class PersistentStore {
|
|
|
43
44
|
this.peerId = components.peerId;
|
|
44
45
|
this.datastore = components.datastore;
|
|
45
46
|
this.addressFilter = init.addressFilter;
|
|
46
|
-
this.
|
|
47
|
-
name: '
|
|
48
|
-
|
|
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
|
-
|
|
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
|
+
lock.lock.finalize();
|
|
73
|
+
this.locks.delete(peerId);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async getReadLock(peerId, options) {
|
|
77
|
+
const lock = this.getLock(peerId);
|
|
78
|
+
try {
|
|
79
|
+
const release = await lock.lock.readLock(options);
|
|
80
|
+
return () => {
|
|
81
|
+
release();
|
|
82
|
+
this.maybeRemoveLock(peerId, lock);
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
this.maybeRemoveLock(peerId, lock);
|
|
87
|
+
throw err;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async getWriteLock(peerId, options) {
|
|
91
|
+
const lock = this.getLock(peerId);
|
|
92
|
+
try {
|
|
93
|
+
const release = await lock.lock.writeLock(options);
|
|
94
|
+
return () => {
|
|
95
|
+
release();
|
|
96
|
+
this.maybeRemoveLock(peerId, lock);
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
this.maybeRemoveLock(peerId, lock);
|
|
101
|
+
throw err;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async has(peerId, options) {
|
|
54
105
|
try {
|
|
55
|
-
await this.load(peerId);
|
|
106
|
+
await this.load(peerId, options);
|
|
56
107
|
return true;
|
|
57
108
|
}
|
|
58
109
|
catch (err) {
|
|
@@ -62,47 +113,49 @@ export class PersistentStore {
|
|
|
62
113
|
}
|
|
63
114
|
return false;
|
|
64
115
|
}
|
|
65
|
-
async delete(peerId) {
|
|
116
|
+
async delete(peerId, options) {
|
|
66
117
|
if (this.peerId.equals(peerId)) {
|
|
67
118
|
return;
|
|
68
119
|
}
|
|
69
|
-
await this.datastore.delete(peerIdToDatastoreKey(peerId));
|
|
120
|
+
await this.datastore.delete(peerIdToDatastoreKey(peerId), options);
|
|
70
121
|
}
|
|
71
|
-
async load(peerId) {
|
|
122
|
+
async load(peerId, options) {
|
|
72
123
|
const key = peerIdToDatastoreKey(peerId);
|
|
73
|
-
const buf = await this.datastore.get(key);
|
|
124
|
+
const buf = await this.datastore.get(key, options);
|
|
74
125
|
const peer = PeerPB.decode(buf);
|
|
75
126
|
if (this.#peerIsExpired(peerId, peer)) {
|
|
76
|
-
await this.datastore.delete(key);
|
|
127
|
+
await this.datastore.delete(key, options);
|
|
77
128
|
throw new NotFoundError();
|
|
78
129
|
}
|
|
79
130
|
return pbToPeer(peerId, peer, this.peerId.equals(peerId) ? Infinity : this.maxAddressAge);
|
|
80
131
|
}
|
|
81
|
-
async save(peerId, data) {
|
|
82
|
-
const existingPeer = await this.#findExistingPeer(peerId);
|
|
132
|
+
async save(peerId, data, options) {
|
|
133
|
+
const existingPeer = await this.#findExistingPeer(peerId, options);
|
|
83
134
|
const peerPb = await toPeerPB(peerId, data, 'patch', {
|
|
135
|
+
...options,
|
|
84
136
|
addressFilter: this.addressFilter
|
|
85
137
|
});
|
|
86
138
|
return this.#saveIfDifferent(peerId, peerPb, existingPeer);
|
|
87
139
|
}
|
|
88
|
-
async patch(peerId, data) {
|
|
89
|
-
const existingPeer = await this.#findExistingPeer(peerId);
|
|
140
|
+
async patch(peerId, data, options) {
|
|
141
|
+
const existingPeer = await this.#findExistingPeer(peerId, options);
|
|
90
142
|
const peerPb = await toPeerPB(peerId, data, 'patch', {
|
|
143
|
+
...options,
|
|
91
144
|
addressFilter: this.addressFilter,
|
|
92
145
|
existingPeer
|
|
93
146
|
});
|
|
94
147
|
return this.#saveIfDifferent(peerId, peerPb, existingPeer);
|
|
95
148
|
}
|
|
96
|
-
async merge(peerId, data) {
|
|
97
|
-
const existingPeer = await this.#findExistingPeer(peerId);
|
|
149
|
+
async merge(peerId, data, options) {
|
|
150
|
+
const existingPeer = await this.#findExistingPeer(peerId, options);
|
|
98
151
|
const peerPb = await toPeerPB(peerId, data, 'merge', {
|
|
99
152
|
addressFilter: this.addressFilter,
|
|
100
153
|
existingPeer
|
|
101
154
|
});
|
|
102
155
|
return this.#saveIfDifferent(peerId, peerPb, existingPeer);
|
|
103
156
|
}
|
|
104
|
-
async *all(
|
|
105
|
-
for await (const { key, value } of this.datastore.query(mapQuery(
|
|
157
|
+
async *all(options) {
|
|
158
|
+
for await (const { key, value } of this.datastore.query(mapQuery(options ?? {}, this.maxAddressAge), options)) {
|
|
106
159
|
const peerId = keyToPeerId(key);
|
|
107
160
|
// skip self peer if present
|
|
108
161
|
if (peerId.equals(this.peerId)) {
|
|
@@ -111,25 +164,25 @@ export class PersistentStore {
|
|
|
111
164
|
const peer = PeerPB.decode(value);
|
|
112
165
|
// remove expired peer
|
|
113
166
|
if (this.#peerIsExpired(peerId, peer)) {
|
|
114
|
-
await this.datastore.delete(key);
|
|
167
|
+
await this.datastore.delete(key, options);
|
|
115
168
|
continue;
|
|
116
169
|
}
|
|
117
170
|
yield pbToPeer(peerId, peer, this.peerId.equals(peerId) ? Infinity : this.maxAddressAge);
|
|
118
171
|
}
|
|
119
172
|
}
|
|
120
|
-
async #findExistingPeer(peerId) {
|
|
173
|
+
async #findExistingPeer(peerId, options) {
|
|
121
174
|
try {
|
|
122
175
|
const key = peerIdToDatastoreKey(peerId);
|
|
123
|
-
const buf = await this.datastore.get(key);
|
|
176
|
+
const buf = await this.datastore.get(key, options);
|
|
124
177
|
const peerPB = PeerPB.decode(buf);
|
|
125
178
|
// remove expired peer
|
|
126
179
|
if (this.#peerIsExpired(peerId, peerPB)) {
|
|
127
|
-
await this.datastore.delete(key);
|
|
180
|
+
await this.datastore.delete(key, options);
|
|
128
181
|
throw new NotFoundError();
|
|
129
182
|
}
|
|
130
183
|
return {
|
|
131
184
|
peerPB,
|
|
132
|
-
peer:
|
|
185
|
+
peer: pbToPeer(peerId, peerPB, this.maxAddressAge)
|
|
133
186
|
};
|
|
134
187
|
}
|
|
135
188
|
catch (err) {
|
|
@@ -138,13 +191,13 @@ export class PersistentStore {
|
|
|
138
191
|
}
|
|
139
192
|
}
|
|
140
193
|
}
|
|
141
|
-
async #saveIfDifferent(peerId, peer, existingPeer) {
|
|
194
|
+
async #saveIfDifferent(peerId, peer, existingPeer, options) {
|
|
142
195
|
// record last update
|
|
143
196
|
peer.updated = Date.now();
|
|
144
197
|
const buf = PeerPB.encode(peer);
|
|
145
|
-
await this.datastore.put(peerIdToDatastoreKey(peerId), buf);
|
|
198
|
+
await this.datastore.put(peerIdToDatastoreKey(peerId), buf, options);
|
|
146
199
|
return {
|
|
147
|
-
peer:
|
|
200
|
+
peer: pbToPeer(peerId, peer, this.maxAddressAge),
|
|
148
201
|
previous: existingPeer?.peer,
|
|
149
202
|
updated: existingPeer == null || !peerEquals(peer, existingPeer.peerPB)
|
|
150
203
|
};
|
package/dist/src/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC5F,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;
|
|
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":"
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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;
|
|
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;
|
|
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"}
|