@libp2p/peer-store 7.0.2 → 8.1.0
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/README.md +0 -170
- package/dist/index.min.js +12 -12
- package/dist/src/errors.d.ts +0 -1
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +1 -2
- package/dist/src/errors.js.map +1 -1
- package/dist/src/index.d.ts +24 -25
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +120 -87
- package/dist/src/index.js.map +1 -1
- package/dist/src/pb/peer.d.ts +28 -9
- package/dist/src/pb/peer.d.ts.map +1 -1
- package/dist/src/pb/peer.js +147 -31
- package/dist/src/pb/peer.js.map +1 -1
- package/dist/src/store.d.ts +18 -28
- package/dist/src/store.d.ts.map +1 -1
- package/dist/src/store.js +77 -147
- package/dist/src/store.js.map +1 -1
- package/dist/src/utils/bytes-to-peer.d.ts +4 -0
- package/dist/src/utils/bytes-to-peer.d.ts.map +1 -0
- package/dist/src/utils/bytes-to-peer.js +33 -0
- package/dist/src/utils/bytes-to-peer.js.map +1 -0
- package/dist/src/utils/dedupe-addresses.d.ts +6 -0
- package/dist/src/utils/dedupe-addresses.d.ts.map +1 -0
- package/dist/src/utils/dedupe-addresses.js +41 -0
- package/dist/src/utils/dedupe-addresses.js.map +1 -0
- package/dist/src/utils/peer-data-to-datastore-peer.d.ts +5 -0
- package/dist/src/utils/peer-data-to-datastore-peer.d.ts.map +1 -0
- package/dist/src/utils/peer-data-to-datastore-peer.js +92 -0
- package/dist/src/utils/peer-data-to-datastore-peer.js.map +1 -0
- package/dist/src/utils/peer-id-to-datastore-key.d.ts +5 -0
- package/dist/src/utils/peer-id-to-datastore-key.d.ts.map +1 -0
- package/dist/src/utils/peer-id-to-datastore-key.js +13 -0
- package/dist/src/utils/peer-id-to-datastore-key.js.map +1 -0
- package/dist/src/utils/to-peer-pb.d.ts +10 -0
- package/dist/src/utils/to-peer-pb.d.ts.map +1 -0
- package/dist/src/utils/to-peer-pb.js +182 -0
- package/dist/src/utils/to-peer-pb.js.map +1 -0
- package/dist/typedoc-urls.json +13 -2
- package/package.json +9 -10
- package/src/errors.ts +1 -2
- package/src/index.ts +133 -97
- package/src/pb/peer.proto +10 -7
- package/src/pb/peer.ts +187 -37
- package/src/store.ts +102 -189
- package/src/utils/bytes-to-peer.ts +41 -0
- package/src/utils/dedupe-addresses.ts +51 -0
- package/src/utils/peer-data-to-datastore-peer.ts +116 -0
- package/src/utils/peer-id-to-datastore-key.ts +15 -0
- package/src/utils/to-peer-pb.ts +237 -0
- package/dist/src/address-book.d.ts +0 -29
- package/dist/src/address-book.d.ts.map +0 -1
- package/dist/src/address-book.js +0 -304
- package/dist/src/address-book.js.map +0 -1
- package/dist/src/key-book.d.ts +0 -21
- package/dist/src/key-book.d.ts.map +0 -1
- package/dist/src/key-book.js +0 -121
- package/dist/src/key-book.js.map +0 -1
- package/dist/src/metadata-book.d.ts +0 -28
- package/dist/src/metadata-book.d.ts.map +0 -1
- package/dist/src/metadata-book.js +0 -211
- package/dist/src/metadata-book.js.map +0 -1
- package/dist/src/pb/tags.d.ts +0 -21
- package/dist/src/pb/tags.d.ts.map +0 -1
- package/dist/src/pb/tags.js +0 -111
- package/dist/src/pb/tags.js.map +0 -1
- package/dist/src/proto-book.d.ts +0 -18
- package/dist/src/proto-book.d.ts.map +0 -1
- package/dist/src/proto-book.js +0 -199
- package/dist/src/proto-book.js.map +0 -1
- package/src/address-book.ts +0 -367
- package/src/key-book.ts +0 -140
- package/src/metadata-book.ts +0 -244
- package/src/pb/tags.proto +0 -11
- package/src/pb/tags.ts +0 -145
- package/src/proto-book.ts +0 -234
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,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,cAAc,CAAA;AAI7C,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAGnC,OAAO,OAAoB,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAShD,MAAM,OAAO,eAAe;IAM1B,YAAa,UAAyC,EAAE,OAAgC,EAAE;;QACxF,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;QAC/B,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACvC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YAClB,IAAI,EAAE,YAAY;YAClB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,MAAc;QACvB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,MAAc;QAC1B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YAC9B,MAAM,IAAI,SAAS,CAAC,yBAAyB,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;SAC7E;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,CAAC,IAAI,CAAE,MAAc;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAA;QAElE,OAAO,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,IAAI,CAAE,MAAc,EAAE,IAAc;QACxC,MAAM,EACJ,WAAW,EACX,YAAY,EACb,GAAG,MAAM,uBAAA,IAAI,qEAAkB,MAAtB,IAAI,EAAmB,MAAM,CAAC,CAAA;QAExC,MAAM,MAAM,GAAW,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;YAC3D,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAA;QAEF,OAAO,MAAM,uBAAA,IAAI,oEAAiB,MAArB,IAAI,EAAkB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;IAC/E,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,MAAc,EAAE,IAAuB;QAClD,MAAM,EACJ,WAAW,EACX,YAAY,EACb,GAAG,MAAM,uBAAA,IAAI,qEAAkB,MAAtB,IAAI,EAAmB,MAAM,CAAC,CAAA;QAExC,MAAM,MAAM,GAAW,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;YAC3D,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,YAAY;SACb,CAAC,CAAA;QAEF,OAAO,MAAM,uBAAA,IAAI,oEAAiB,MAArB,IAAI,EAAkB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;IAC/E,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,MAAc,EAAE,IAAc;QACzC,MAAM,EACJ,WAAW,EACX,YAAY,EACb,GAAG,MAAM,uBAAA,IAAI,qEAAkB,MAAtB,IAAI,EAAmB,MAAM,CAAC,CAAA;QAExC,MAAM,MAAM,GAAW,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;YAC3D,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,YAAY;SACb,CAAC,CAAA;QAEF,OAAO,MAAM,uBAAA,IAAI,oEAAiB,MAArB,IAAI,EAAkB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;IAC/E,CAAC;IAED,KAAK,CAAC,CAAE,GAAG;QACT,IAAI,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACtD,MAAM,EAAE,gBAAgB;SACzB,CAAC,EAAE;YACF,wDAAwD;YACxD,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACpC,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;YAEnC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC9B,4BAA4B;gBAC5B,SAAQ;aACT;YAED,MAAM,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;SACjC;IACH,CAAC;CAuCF;gFArCC,KAAK,4CAAoB,MAAc;IACrC,IAAI;QACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAA;QAC1E,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QAE3D,OAAO;YACL,WAAW;YACX,YAAY;SACb,CAAA;KACF;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE;YAChC,MAAM,GAAG,CAAA;SACV;KACF;IAED,OAAO,EAAE,CAAA;AACX,CAAC,qCAED,KAAK,2CAAmB,MAAc,EAAE,IAAY,EAAE,WAAwB,EAAE,YAAmB;IACjG,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAE/B,IAAI,WAAW,IAAI,IAAI,IAAI,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE;QAC7D,OAAO;YACL,IAAI,EAAE,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC;YACpC,QAAQ,EAAE,YAAY;YACtB,OAAO,EAAE,KAAK;SACf,CAAA;KACF;IAED,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAA;IAE3D,OAAO;QACL,IAAI,EAAE,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC;QACpC,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,IAAI;KACd,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bytes-to-peer.d.ts","sourceRoot":"","sources":["../../../src/utils/bytes-to-peer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAO,MAAM,8BAA8B,CAAA;AAG7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAEvD,wBAAsB,WAAW,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCjF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { multiaddr } from '@multiformats/multiaddr';
|
|
2
|
+
import { Peer as PeerPB } from '../pb/peer.js';
|
|
3
|
+
import { createFromPubKey } from '@libp2p/peer-id-factory';
|
|
4
|
+
import { unmarshalPublicKey } from '@libp2p/crypto/keys';
|
|
5
|
+
export async function bytesToPeer(peerId, buf) {
|
|
6
|
+
const peer = PeerPB.decode(buf);
|
|
7
|
+
if (peer.publicKey != null && peerId.publicKey == null) {
|
|
8
|
+
peerId = await createFromPubKey(unmarshalPublicKey(peer.publicKey));
|
|
9
|
+
}
|
|
10
|
+
const tags = new Map();
|
|
11
|
+
// remove any expired tags
|
|
12
|
+
const now = BigInt(Date.now());
|
|
13
|
+
for (const [key, tag] of peer.tags.entries()) {
|
|
14
|
+
if (tag.expiry != null && tag.expiry < now) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
tags.set(key, tag);
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
...peer,
|
|
21
|
+
id: peerId,
|
|
22
|
+
addresses: peer.addresses.map(({ multiaddr: ma, isCertified }) => {
|
|
23
|
+
return {
|
|
24
|
+
multiaddr: multiaddr(ma),
|
|
25
|
+
isCertified: isCertified ?? false
|
|
26
|
+
};
|
|
27
|
+
}),
|
|
28
|
+
metadata: peer.metadata,
|
|
29
|
+
peerRecordEnvelope: peer.peerRecordEnvelope ?? undefined,
|
|
30
|
+
tags
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=bytes-to-peer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bytes-to-peer.js","sourceRoot":"","sources":["../../../src/utils/bytes-to-peer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,eAAe,CAAA;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAGxD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAE,MAAc,EAAE,GAAe;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAE/B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE;QACtD,MAAM,GAAG,MAAM,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;KACpE;IAED,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;QAC5C,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;YAC1C,SAAQ;SACT;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;KACnB;IAED,OAAO;QACL,GAAG,IAAI;QACP,EAAE,EAAE,MAAM;QACV,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YAC/D,OAAO;gBACL,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;gBACxB,WAAW,EAAE,WAAW,IAAI,KAAK;aAClC,CAAA;QACH,CAAC,CAAC;QACF,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,SAAS;QACxD,IAAI;KACL,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Address as AddressPB } from '../pb/peer.js';
|
|
2
|
+
import type { Address } from '@libp2p/interface-peer-store';
|
|
3
|
+
import type { AddressFilter } from '../index.js';
|
|
4
|
+
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
5
|
+
export declare function dedupeFilterAndSortAddresses(peerId: PeerId, filter: AddressFilter, addresses: Array<Address | AddressPB | undefined>): Promise<AddressPB[]>;
|
|
6
|
+
//# sourceMappingURL=dedupe-addresses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dedupe-addresses.d.ts","sourceRoot":"","sources":["../../../src/utils/dedupe-addresses.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIvD,wBAAsB,4BAA4B,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA0ClK"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { isMultiaddr, multiaddr } from '@multiformats/multiaddr';
|
|
2
|
+
import { CodeError } from '@libp2p/interfaces/errors';
|
|
3
|
+
import { codes } from '../errors.js';
|
|
4
|
+
export async function dedupeFilterAndSortAddresses(peerId, filter, addresses) {
|
|
5
|
+
const addressMap = new Map();
|
|
6
|
+
for (const addr of addresses) {
|
|
7
|
+
if (addr == null) {
|
|
8
|
+
continue;
|
|
9
|
+
}
|
|
10
|
+
if (addr.multiaddr instanceof Uint8Array) {
|
|
11
|
+
addr.multiaddr = multiaddr(addr.multiaddr);
|
|
12
|
+
}
|
|
13
|
+
if (!isMultiaddr(addr.multiaddr)) {
|
|
14
|
+
throw new CodeError('Multiaddr was invalid', codes.ERR_INVALID_PARAMETERS);
|
|
15
|
+
}
|
|
16
|
+
if (!(await filter(peerId, addr.multiaddr))) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
const isCertified = addr.isCertified ?? false;
|
|
20
|
+
const maStr = addr.multiaddr.toString();
|
|
21
|
+
const existingAddr = addressMap.get(maStr);
|
|
22
|
+
if (existingAddr != null) {
|
|
23
|
+
addr.isCertified = existingAddr.isCertified || isCertified;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
addressMap.set(maStr, {
|
|
27
|
+
multiaddr: addr.multiaddr,
|
|
28
|
+
isCertified
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return [...addressMap.values()]
|
|
33
|
+
.sort((a, b) => {
|
|
34
|
+
return a.multiaddr.toString().localeCompare(b.multiaddr.toString());
|
|
35
|
+
})
|
|
36
|
+
.map(({ isCertified, multiaddr }) => ({
|
|
37
|
+
isCertified,
|
|
38
|
+
multiaddr: multiaddr.bytes
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=dedupe-addresses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dedupe-addresses.js","sourceRoot":"","sources":["../../../src/utils/dedupe-addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAKhE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEpC,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAE,MAAc,EAAE,MAAqB,EAAE,SAAiD;IAC1I,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAA;IAE7C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;QAC5B,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,SAAQ;SACT;QAED,IAAI,IAAI,CAAC,SAAS,YAAY,UAAU,EAAE;YACxC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;SAC3C;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAChC,MAAM,IAAI,SAAS,CAAC,uBAAuB,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;SAC3E;QAED,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE;YAC3C,SAAQ;SACT;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;YACxB,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,WAAW,CAAA;SAC3D;aAAM;YACL,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE;gBACpB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW;aACZ,CAAC,CAAA;SACH;KACF;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,CAAC,CAAC;QACpC,WAAW;QACX,SAAS,EAAE,SAAS,CAAC,KAAK;KAC3B,CAAC,CAAC,CAAA;AACP,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Peer as PeerPB } from '../pb/peer.js';
|
|
2
|
+
import type { PeerData } from '@libp2p/interface-peer-store';
|
|
3
|
+
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
4
|
+
export declare function toDatastorePeer(peerId: PeerId, data: PeerData): PeerPB;
|
|
5
|
+
//# sourceMappingURL=peer-data-to-datastore-peer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer-data-to-datastore-peer.d.ts","sourceRoot":"","sources":["../../../src/utils/peer-data-to-datastore-peer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAEvD,wBAAgB,eAAe,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CA0GvE"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { CodeError } from '@libp2p/interfaces/errors';
|
|
2
|
+
import { codes } from '../errors.js';
|
|
3
|
+
import { isMultiaddr } from '@multiformats/multiaddr';
|
|
4
|
+
import { equals as uint8arrayEquals } from 'uint8arrays/equals';
|
|
5
|
+
export function toDatastorePeer(peerId, data) {
|
|
6
|
+
if (data == null) {
|
|
7
|
+
throw new CodeError('Invalid PeerData', codes.ERR_INVALID_PARAMETERS);
|
|
8
|
+
}
|
|
9
|
+
if (data.publicKey != null && peerId.publicKey != null && !uint8arrayEquals(data.publicKey, peerId.publicKey)) {
|
|
10
|
+
throw new CodeError('publicKey bytes do not match peer id publicKey bytes', codes.ERR_INVALID_PARAMETERS);
|
|
11
|
+
}
|
|
12
|
+
// merge addresses and multiaddrs, and dedupe
|
|
13
|
+
const addressSet = new Set();
|
|
14
|
+
const output = {
|
|
15
|
+
addresses: (data.addresses ?? [])
|
|
16
|
+
.concat((data.multiaddrs ?? []).map(multiaddr => ({ multiaddr, isCertified: false })))
|
|
17
|
+
.filter(address => {
|
|
18
|
+
if (!isMultiaddr(address.multiaddr)) {
|
|
19
|
+
throw new CodeError('Invalid mulitaddr', codes.ERR_INVALID_PARAMETERS);
|
|
20
|
+
}
|
|
21
|
+
if (addressSet.has(address.multiaddr.toString())) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
addressSet.add(address.multiaddr.toString());
|
|
25
|
+
return true;
|
|
26
|
+
})
|
|
27
|
+
.sort((a, b) => {
|
|
28
|
+
return a.multiaddr.toString().localeCompare(b.multiaddr.toString());
|
|
29
|
+
})
|
|
30
|
+
.map(({ multiaddr, isCertified }) => ({
|
|
31
|
+
multiaddr: multiaddr.bytes,
|
|
32
|
+
isCertified
|
|
33
|
+
})),
|
|
34
|
+
protocols: (data.protocols ?? []).sort(),
|
|
35
|
+
metadata: new Map(),
|
|
36
|
+
tags: new Map(),
|
|
37
|
+
publicKey: data.publicKey,
|
|
38
|
+
peerRecordEnvelope: data.peerRecordEnvelope
|
|
39
|
+
};
|
|
40
|
+
// remove invalid metadata
|
|
41
|
+
if (data.metadata != null) {
|
|
42
|
+
const metadataEntries = data.metadata instanceof Map ? data.metadata.entries() : Object.entries(data.metadata);
|
|
43
|
+
for (const [key, value] of metadataEntries) {
|
|
44
|
+
if (typeof key !== 'string') {
|
|
45
|
+
throw new CodeError('Peer metadata keys must be strings', codes.ERR_INVALID_PARAMETERS);
|
|
46
|
+
}
|
|
47
|
+
if (value == null) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (!(value instanceof Uint8Array)) {
|
|
51
|
+
throw new CodeError('Peer metadata values must be Uint8Arrays', codes.ERR_INVALID_PARAMETERS);
|
|
52
|
+
}
|
|
53
|
+
output.metadata.set(key, value);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (data.tags != null) {
|
|
57
|
+
const tagsEntries = data.tags instanceof Map ? data.tags.entries() : Object.entries(data.tags);
|
|
58
|
+
for (const [key, value] of tagsEntries) {
|
|
59
|
+
if (typeof key !== 'string') {
|
|
60
|
+
throw new CodeError('Peer tag keys must be strings', codes.ERR_INVALID_PARAMETERS);
|
|
61
|
+
}
|
|
62
|
+
if (value == null) {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
const tag = {
|
|
66
|
+
name: key,
|
|
67
|
+
ttl: value.ttl,
|
|
68
|
+
value: value.value ?? 0
|
|
69
|
+
};
|
|
70
|
+
if (tag.value < 0 || tag.value > 100) {
|
|
71
|
+
throw new CodeError('Tag value must be between 0-100', codes.ERR_INVALID_PARAMETERS);
|
|
72
|
+
}
|
|
73
|
+
if (parseInt(`${tag.value}`, 10) !== tag.value) {
|
|
74
|
+
throw new CodeError('Tag value must be an integer', codes.ERR_INVALID_PARAMETERS);
|
|
75
|
+
}
|
|
76
|
+
if (tag.ttl != null) {
|
|
77
|
+
if (tag.ttl < 0) {
|
|
78
|
+
throw new CodeError('Tag ttl must be between greater than 0', codes.ERR_INVALID_PARAMETERS);
|
|
79
|
+
}
|
|
80
|
+
if (parseInt(`${tag.ttl}`, 10) !== tag.ttl) {
|
|
81
|
+
throw new CodeError('Tag ttl must be an integer', codes.ERR_INVALID_PARAMETERS);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
output.tags.set(tag.name, {
|
|
85
|
+
value: tag.value,
|
|
86
|
+
expiry: tag.ttl == null ? undefined : BigInt(Date.now() + tag.ttl)
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return output;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=peer-data-to-datastore-peer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer-data-to-datastore-peer.js","sourceRoot":"","sources":["../../../src/utils/peer-data-to-datastore-peer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Key } from 'interface-datastore/key';
|
|
2
|
+
import { PeerId } from '@libp2p/interface-peer-id';
|
|
3
|
+
export declare const NAMESPACE_COMMON = "/peers/";
|
|
4
|
+
export declare function peerIdToDatastoreKey(peerId: PeerId): Key;
|
|
5
|
+
//# sourceMappingURL=peer-id-to-datastore-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer-id-to-datastore-key.d.ts","sourceRoot":"","sources":["../../../src/utils/peer-id-to-datastore-key.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAC7C,OAAO,EAAY,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAE5D,eAAO,MAAM,gBAAgB,YAAY,CAAA;AAEzC,wBAAgB,oBAAoB,CAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAOzD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CodeError } from '@libp2p/interfaces/errors';
|
|
2
|
+
import { codes } from '../errors.js';
|
|
3
|
+
import { Key } from 'interface-datastore/key';
|
|
4
|
+
import { isPeerId } from '@libp2p/interface-peer-id';
|
|
5
|
+
export const NAMESPACE_COMMON = '/peers/';
|
|
6
|
+
export function peerIdToDatastoreKey(peerId) {
|
|
7
|
+
if (!isPeerId(peerId) || peerId.type == null) {
|
|
8
|
+
throw new CodeError('Invalid PeerId', codes.ERR_INVALID_PARAMETERS);
|
|
9
|
+
}
|
|
10
|
+
const b32key = peerId.toCID().toString();
|
|
11
|
+
return new Key(`${NAMESPACE_COMMON}${b32key}`);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=peer-id-to-datastore-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer-id-to-datastore-key.js","sourceRoot":"","sources":["../../../src/utils/peer-id-to-datastore-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAU,MAAM,2BAA2B,CAAA;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAA;AAEzC,MAAM,UAAU,oBAAoB,CAAE,MAAc;IAClD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE;QAC5C,MAAM,IAAI,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;KACpE;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAA;IACxC,OAAO,IAAI,GAAG,CAAC,GAAG,gBAAgB,GAAG,MAAM,EAAE,CAAC,CAAA;AAChD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
2
|
+
import type { Peer, PeerData } from '@libp2p/interface-peer-store';
|
|
3
|
+
import type { AddressFilter } from '../index.js';
|
|
4
|
+
import type { Peer as PeerPB } from '../pb/peer.js';
|
|
5
|
+
export interface ToPBPeerOptions {
|
|
6
|
+
addressFilter?: AddressFilter;
|
|
7
|
+
existingPeer?: Peer;
|
|
8
|
+
}
|
|
9
|
+
export declare function toPeerPB(peerId: PeerId, data: Partial<PeerData>, strategy: 'merge' | 'patch', options: ToPBPeerOptions): Promise<PeerPB>;
|
|
10
|
+
//# sourceMappingURL=to-peer-pb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-peer-pb.d.ts","sourceRoot":"","sources":["../../../src/utils/to-peer-pb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAW,IAAI,EAAE,QAAQ,EAAc,MAAM,8BAA8B,CAAA;AAIvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAO,IAAI,IAAI,MAAM,EAAE,MAAM,eAAe,CAAA;AAGxD,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,YAAY,CAAC,EAAE,IAAI,CAAA;CACpB;AAED,wBAAsB,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA0I/I"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { CodeError } from '@libp2p/interfaces/errors';
|
|
2
|
+
import { codes } from '../errors.js';
|
|
3
|
+
import { equals as uint8arrayEquals } from 'uint8arrays/equals';
|
|
4
|
+
import { dedupeFilterAndSortAddresses } from './dedupe-addresses.js';
|
|
5
|
+
export async function toPeerPB(peerId, data, strategy, options) {
|
|
6
|
+
if (data == null) {
|
|
7
|
+
throw new CodeError('Invalid PeerData', codes.ERR_INVALID_PARAMETERS);
|
|
8
|
+
}
|
|
9
|
+
if (data.publicKey != null && peerId.publicKey != null && !uint8arrayEquals(data.publicKey, peerId.publicKey)) {
|
|
10
|
+
throw new CodeError('publicKey bytes do not match peer id publicKey bytes', codes.ERR_INVALID_PARAMETERS);
|
|
11
|
+
}
|
|
12
|
+
const existingPeer = options.existingPeer;
|
|
13
|
+
if (existingPeer != null && !peerId.equals(existingPeer.id)) {
|
|
14
|
+
throw new CodeError('peer id did not match existing peer id', codes.ERR_INVALID_PARAMETERS);
|
|
15
|
+
}
|
|
16
|
+
let addresses = existingPeer?.addresses ?? [];
|
|
17
|
+
let protocols = new Set(existingPeer?.protocols ?? []);
|
|
18
|
+
let metadata = existingPeer?.metadata ?? new Map();
|
|
19
|
+
let tags = existingPeer?.tags ?? new Map();
|
|
20
|
+
let peerRecordEnvelope = existingPeer?.peerRecordEnvelope;
|
|
21
|
+
// when patching, we replace the original fields with passed values
|
|
22
|
+
if (strategy === 'patch') {
|
|
23
|
+
if (data.multiaddrs != null || data.addresses != null) {
|
|
24
|
+
addresses = [];
|
|
25
|
+
if (data.multiaddrs != null) {
|
|
26
|
+
addresses.push(...data.multiaddrs.map(multiaddr => ({
|
|
27
|
+
isCertified: false,
|
|
28
|
+
multiaddr
|
|
29
|
+
})));
|
|
30
|
+
}
|
|
31
|
+
if (data.addresses != null) {
|
|
32
|
+
addresses.push(...data.addresses);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (data.protocols != null) {
|
|
36
|
+
protocols = new Set(data.protocols);
|
|
37
|
+
}
|
|
38
|
+
if (data.metadata != null) {
|
|
39
|
+
const metadataEntries = data.metadata instanceof Map ? [...data.metadata.entries()] : Object.entries(data.metadata);
|
|
40
|
+
metadata = createSortedMap(metadataEntries, {
|
|
41
|
+
validate: validateMetadata
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (data.tags != null) {
|
|
45
|
+
const tagsEntries = data.tags instanceof Map ? [...data.tags.entries()] : Object.entries(data.tags);
|
|
46
|
+
tags = createSortedMap(tagsEntries, {
|
|
47
|
+
validate: validateTag,
|
|
48
|
+
map: mapTag
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
if (data.peerRecordEnvelope != null) {
|
|
52
|
+
peerRecordEnvelope = data.peerRecordEnvelope;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// when merging, we join the original fields with passed values
|
|
56
|
+
if (strategy === 'merge') {
|
|
57
|
+
if (data.multiaddrs != null) {
|
|
58
|
+
addresses.push(...data.multiaddrs.map(multiaddr => ({
|
|
59
|
+
isCertified: false,
|
|
60
|
+
multiaddr
|
|
61
|
+
})));
|
|
62
|
+
}
|
|
63
|
+
if (data.addresses != null) {
|
|
64
|
+
addresses.push(...data.addresses);
|
|
65
|
+
}
|
|
66
|
+
if (data.protocols != null) {
|
|
67
|
+
protocols = new Set([...protocols, ...data.protocols]);
|
|
68
|
+
}
|
|
69
|
+
if (data.metadata != null) {
|
|
70
|
+
const metadataEntries = data.metadata instanceof Map ? [...data.metadata.entries()] : Object.entries(data.metadata);
|
|
71
|
+
for (const [key, value] of metadataEntries) {
|
|
72
|
+
if (value == null) {
|
|
73
|
+
metadata.delete(key);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
metadata.set(key, value);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
metadata = createSortedMap([...metadata.entries()], {
|
|
80
|
+
validate: validateMetadata
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
if (data.tags != null) {
|
|
84
|
+
const tagsEntries = data.tags instanceof Map ? [...data.tags.entries()] : Object.entries(data.tags);
|
|
85
|
+
const mergedTags = new Map(tags);
|
|
86
|
+
for (const [key, value] of tagsEntries) {
|
|
87
|
+
if (value == null) {
|
|
88
|
+
mergedTags.delete(key);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
mergedTags.set(key, value);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
tags = createSortedMap([...mergedTags.entries()], {
|
|
95
|
+
validate: validateTag,
|
|
96
|
+
map: mapTag
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
if (data.peerRecordEnvelope != null) {
|
|
100
|
+
peerRecordEnvelope = data.peerRecordEnvelope;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
const output = {
|
|
104
|
+
addresses: await dedupeFilterAndSortAddresses(peerId, options.addressFilter ?? (async () => true), addresses),
|
|
105
|
+
protocols: [...protocols.values()].sort((a, b) => {
|
|
106
|
+
return a.localeCompare(b);
|
|
107
|
+
}),
|
|
108
|
+
metadata,
|
|
109
|
+
tags,
|
|
110
|
+
publicKey: existingPeer?.id.publicKey ?? data.publicKey ?? peerId.publicKey,
|
|
111
|
+
peerRecordEnvelope
|
|
112
|
+
};
|
|
113
|
+
// Ed25519 and secp256k1 have their public key embedded in them so no need to duplicate it
|
|
114
|
+
if (peerId.type !== 'RSA') {
|
|
115
|
+
delete output.publicKey;
|
|
116
|
+
}
|
|
117
|
+
return output;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* In JS maps are ordered by insertion order so create a new map with the
|
|
121
|
+
* keys inserted in alphabetical order.
|
|
122
|
+
*/
|
|
123
|
+
function createSortedMap(entries, options) {
|
|
124
|
+
const output = new Map();
|
|
125
|
+
for (const [key, value] of entries) {
|
|
126
|
+
if (value == null) {
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
options.validate(key, value);
|
|
130
|
+
}
|
|
131
|
+
for (const [key, value] of entries.sort(([a], [b]) => {
|
|
132
|
+
return a.localeCompare(b);
|
|
133
|
+
})) {
|
|
134
|
+
if (value != null) {
|
|
135
|
+
output.set(key, options.map?.(key, value) ?? value);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return output;
|
|
139
|
+
}
|
|
140
|
+
function validateMetadata(key, value) {
|
|
141
|
+
if (typeof key !== 'string') {
|
|
142
|
+
throw new CodeError('Metadata key must be a string', codes.ERR_INVALID_PARAMETERS);
|
|
143
|
+
}
|
|
144
|
+
if (!(value instanceof Uint8Array)) {
|
|
145
|
+
throw new CodeError('Metadata value must be a Uint8Array', codes.ERR_INVALID_PARAMETERS);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function validateTag(key, tag) {
|
|
149
|
+
if (typeof key !== 'string') {
|
|
150
|
+
throw new CodeError('Tag name must be a string', codes.ERR_INVALID_PARAMETERS);
|
|
151
|
+
}
|
|
152
|
+
if (tag.value != null) {
|
|
153
|
+
if (parseInt(`${tag.value}`, 10) !== tag.value) {
|
|
154
|
+
throw new CodeError('Tag value must be an integer', codes.ERR_INVALID_PARAMETERS);
|
|
155
|
+
}
|
|
156
|
+
if (tag.value < 0 || tag.value > 100) {
|
|
157
|
+
throw new CodeError('Tag value must be between 0-100', codes.ERR_INVALID_PARAMETERS);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
if (tag.ttl != null) {
|
|
161
|
+
if (parseInt(`${tag.ttl}`, 10) !== tag.ttl) {
|
|
162
|
+
throw new CodeError('Tag ttl must be an integer', codes.ERR_INVALID_PARAMETERS);
|
|
163
|
+
}
|
|
164
|
+
if (tag.ttl < 0) {
|
|
165
|
+
throw new CodeError('Tag ttl must be between greater than 0', codes.ERR_INVALID_PARAMETERS);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
function mapTag(key, tag) {
|
|
170
|
+
let expiry;
|
|
171
|
+
if (tag.expiry != null) {
|
|
172
|
+
expiry = tag.expiry;
|
|
173
|
+
}
|
|
174
|
+
if (tag.ttl != null) {
|
|
175
|
+
expiry = BigInt(Date.now() + Number(tag.ttl));
|
|
176
|
+
}
|
|
177
|
+
return {
|
|
178
|
+
value: tag.value ?? 0,
|
|
179
|
+
expiry
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=to-peer-pb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-peer-pb.js","sourceRoot":"","sources":["../../../src/utils/to-peer-pb.ts"],"names":[],"mappings":"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"}
|
package/dist/typedoc-urls.json
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"codec": "https://libp2p.github.io/js-libp2p-peer-store/functions/_internal_.Address.codec.html",
|
|
3
|
+
"decode": "https://libp2p.github.io/js-libp2p-peer-store/functions/_internal_.Address.decode.html",
|
|
4
|
+
"encode": "https://libp2p.github.io/js-libp2p-peer-store/functions/_internal_.Address.encode.html",
|
|
5
|
+
"Peer$metadataEntry": "https://libp2p.github.io/js-libp2p-peer-store/interfaces/_internal_.Peer.Peer_metadataEntry-1.html",
|
|
6
|
+
"Peer$tagsEntry": "https://libp2p.github.io/js-libp2p-peer-store/interfaces/_internal_.Peer.Peer_tagsEntry-1.html",
|
|
7
|
+
"PersistentStore": "https://libp2p.github.io/js-libp2p-peer-store/classes/_internal_.PersistentStore.html",
|
|
8
|
+
"Address": "https://libp2p.github.io/js-libp2p-peer-store/interfaces/_internal_.Address-1.html",
|
|
9
|
+
"Peer": "https://libp2p.github.io/js-libp2p-peer-store/interfaces/_internal_.Peer-1.html",
|
|
10
|
+
"PeerUpdate": "https://libp2p.github.io/js-libp2p-peer-store/interfaces/_internal_.PeerUpdate.html",
|
|
11
|
+
"Tag": "https://libp2p.github.io/js-libp2p-peer-store/interfaces/_internal_.Tag-1.html",
|
|
3
12
|
"PersistentPeerStore": "https://libp2p.github.io/js-libp2p-peer-store/classes/PersistentPeerStore.html",
|
|
4
|
-
"
|
|
13
|
+
"AddressFilter": "https://libp2p.github.io/js-libp2p-peer-store/interfaces/AddressFilter.html",
|
|
14
|
+
"PersistentPeerStoreComponents": "https://libp2p.github.io/js-libp2p-peer-store/interfaces/PersistentPeerStoreComponents.html",
|
|
15
|
+
"PersistentPeerStoreInit": "https://libp2p.github.io/js-libp2p-peer-store/interfaces/PersistentPeerStoreInit.html"
|
|
5
16
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/peer-store",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.1.0",
|
|
4
4
|
"description": "Stores information about peers libp2p knows on the network",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p-peer-store#readme",
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
"clean": "aegir clean",
|
|
132
132
|
"lint": "aegir lint",
|
|
133
133
|
"dep-check": "aegir dep-check -i protons",
|
|
134
|
-
"generate": "protons src/pb
|
|
134
|
+
"generate": "protons src/pb/*.proto",
|
|
135
135
|
"build": "aegir build",
|
|
136
136
|
"test": "aegir test",
|
|
137
137
|
"test:chrome": "aegir test -t browser --cov",
|
|
@@ -144,17 +144,17 @@
|
|
|
144
144
|
"docs": "aegir docs"
|
|
145
145
|
},
|
|
146
146
|
"dependencies": {
|
|
147
|
+
"@libp2p/crypto": "^1.0.15",
|
|
148
|
+
"@libp2p/interface-libp2p": "^2.0.0",
|
|
147
149
|
"@libp2p/interface-peer-id": "^2.0.0",
|
|
148
|
-
"@libp2p/interface-peer-
|
|
149
|
-
"@libp2p/interface-peer-store": "^1.2.2",
|
|
150
|
-
"@libp2p/interface-record": "^2.0.1",
|
|
150
|
+
"@libp2p/interface-peer-store": "^2.0.1",
|
|
151
151
|
"@libp2p/interfaces": "^3.2.0",
|
|
152
|
-
"@libp2p/logger": "^2.0.
|
|
152
|
+
"@libp2p/logger": "^2.0.7",
|
|
153
153
|
"@libp2p/peer-id": "^2.0.0",
|
|
154
|
-
"@libp2p/peer-record": "^5.0.
|
|
154
|
+
"@libp2p/peer-record": "^5.0.3",
|
|
155
155
|
"@multiformats/multiaddr": "^12.0.0",
|
|
156
156
|
"interface-datastore": "^8.0.0",
|
|
157
|
-
"mortice": "^3.0.
|
|
157
|
+
"mortice": "^3.0.1",
|
|
158
158
|
"multiformats": "^11.0.0",
|
|
159
159
|
"protons-runtime": "^5.0.0",
|
|
160
160
|
"uint8arraylist": "^2.1.1",
|
|
@@ -162,12 +162,11 @@
|
|
|
162
162
|
},
|
|
163
163
|
"devDependencies": {
|
|
164
164
|
"@libp2p/peer-id-factory": "^2.0.0",
|
|
165
|
-
"@libp2p/utils": "^3.0.2",
|
|
166
165
|
"aegir": "^38.1.6",
|
|
167
166
|
"datastore-core": "^9.0.1",
|
|
168
167
|
"delay": "^5.0.0",
|
|
169
168
|
"p-defer": "^4.0.0",
|
|
170
|
-
"p-
|
|
169
|
+
"p-event": "^5.0.1",
|
|
171
170
|
"protons": "^7.0.2",
|
|
172
171
|
"sinon": "^15.0.1"
|
|
173
172
|
}
|
package/src/errors.ts
CHANGED