@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.
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +4 -4
- package/dist/src/index.d.ts +3 -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 +79 -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 +10 -9
- package/src/index.ts +42 -70
- package/src/store.ts +99 -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/typedoc-urls.json +0 -10
package/dist/src/index.d.ts
CHANGED
|
@@ -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
|
/**
|
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,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.
|
|
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;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
|
-
|
|
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.
|
|
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
|
+
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(
|
|
105
|
-
for await (const { key, value } of this.datastore.query(mapQuery(
|
|
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:
|
|
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:
|
|
199
|
+
peer: pbToPeer(peerId, peer, this.maxAddressAge),
|
|
148
200
|
previous: existingPeer?.peer,
|
|
149
201
|
updated: existingPeer == null || !peerEquals(peer, existingPeer.peerPB)
|
|
150
202
|
};
|
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"}
|