@libp2p/peer-store 7.0.1 → 8.0.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.
Files changed (76) hide show
  1. package/README.md +0 -170
  2. package/dist/index.min.js +14 -14
  3. package/dist/src/errors.d.ts +0 -1
  4. package/dist/src/errors.d.ts.map +1 -1
  5. package/dist/src/errors.js +1 -2
  6. package/dist/src/errors.js.map +1 -1
  7. package/dist/src/index.d.ts +23 -25
  8. package/dist/src/index.d.ts.map +1 -1
  9. package/dist/src/index.js +86 -88
  10. package/dist/src/index.js.map +1 -1
  11. package/dist/src/pb/peer.d.ts +28 -9
  12. package/dist/src/pb/peer.d.ts.map +1 -1
  13. package/dist/src/pb/peer.js +147 -31
  14. package/dist/src/pb/peer.js.map +1 -1
  15. package/dist/src/store.d.ts +18 -28
  16. package/dist/src/store.d.ts.map +1 -1
  17. package/dist/src/store.js +77 -147
  18. package/dist/src/store.js.map +1 -1
  19. package/dist/src/utils/bytes-to-peer.d.ts +4 -0
  20. package/dist/src/utils/bytes-to-peer.d.ts.map +1 -0
  21. package/dist/src/utils/bytes-to-peer.js +33 -0
  22. package/dist/src/utils/bytes-to-peer.js.map +1 -0
  23. package/dist/src/utils/dedupe-addresses.d.ts +6 -0
  24. package/dist/src/utils/dedupe-addresses.d.ts.map +1 -0
  25. package/dist/src/utils/dedupe-addresses.js +41 -0
  26. package/dist/src/utils/dedupe-addresses.js.map +1 -0
  27. package/dist/src/utils/peer-data-to-datastore-peer.d.ts +5 -0
  28. package/dist/src/utils/peer-data-to-datastore-peer.d.ts.map +1 -0
  29. package/dist/src/utils/peer-data-to-datastore-peer.js +92 -0
  30. package/dist/src/utils/peer-data-to-datastore-peer.js.map +1 -0
  31. package/dist/src/utils/peer-id-to-datastore-key.d.ts +5 -0
  32. package/dist/src/utils/peer-id-to-datastore-key.d.ts.map +1 -0
  33. package/dist/src/utils/peer-id-to-datastore-key.js +13 -0
  34. package/dist/src/utils/peer-id-to-datastore-key.js.map +1 -0
  35. package/dist/src/utils/to-peer-pb.d.ts +10 -0
  36. package/dist/src/utils/to-peer-pb.d.ts.map +1 -0
  37. package/dist/src/utils/to-peer-pb.js +182 -0
  38. package/dist/src/utils/to-peer-pb.js.map +1 -0
  39. package/dist/typedoc-urls.json +13 -2
  40. package/package.json +8 -10
  41. package/src/errors.ts +1 -2
  42. package/src/index.ts +97 -103
  43. package/src/pb/peer.proto +10 -7
  44. package/src/pb/peer.ts +187 -37
  45. package/src/store.ts +102 -189
  46. package/src/utils/bytes-to-peer.ts +41 -0
  47. package/src/utils/dedupe-addresses.ts +51 -0
  48. package/src/utils/peer-data-to-datastore-peer.ts +116 -0
  49. package/src/utils/peer-id-to-datastore-key.ts +15 -0
  50. package/src/utils/to-peer-pb.ts +237 -0
  51. package/dist/src/address-book.d.ts +0 -29
  52. package/dist/src/address-book.d.ts.map +0 -1
  53. package/dist/src/address-book.js +0 -304
  54. package/dist/src/address-book.js.map +0 -1
  55. package/dist/src/key-book.d.ts +0 -21
  56. package/dist/src/key-book.d.ts.map +0 -1
  57. package/dist/src/key-book.js +0 -121
  58. package/dist/src/key-book.js.map +0 -1
  59. package/dist/src/metadata-book.d.ts +0 -28
  60. package/dist/src/metadata-book.d.ts.map +0 -1
  61. package/dist/src/metadata-book.js +0 -211
  62. package/dist/src/metadata-book.js.map +0 -1
  63. package/dist/src/pb/tags.d.ts +0 -21
  64. package/dist/src/pb/tags.d.ts.map +0 -1
  65. package/dist/src/pb/tags.js +0 -111
  66. package/dist/src/pb/tags.js.map +0 -1
  67. package/dist/src/proto-book.d.ts +0 -18
  68. package/dist/src/proto-book.d.ts.map +0 -1
  69. package/dist/src/proto-book.js +0 -199
  70. package/dist/src/proto-book.js.map +0 -1
  71. package/src/address-book.ts +0 -367
  72. package/src/key-book.ts +0 -140
  73. package/src/metadata-book.ts +0 -244
  74. package/src/pb/tags.proto +0 -11
  75. package/src/pb/tags.ts +0 -145
  76. package/src/proto-book.ts +0 -234
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Peer } from '@libp2p/interface-peer-store';
2
+ import type { PeerId } from '@libp2p/interface-peer-id';
3
+ export declare function bytesToPeer(peerId: PeerId, buf: Uint8Array): Promise<Peer>;
4
+ //# sourceMappingURL=bytes-to-peer.d.ts.map
@@ -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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"}
@@ -1,5 +1,16 @@
1
1
  {
2
- "Store": "https://libp2p.github.io/js-libp2p-peer-store/interfaces/_internal_.Store.html",
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
- "PersistentPeerStoreComponents": "https://libp2p.github.io/js-libp2p-peer-store/interfaces/PersistentPeerStoreComponents.html"
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": "7.0.1",
3
+ "version": "8.0.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/peer.proto src/pb/tags.proto",
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,16 @@
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-info": "^1.0.3",
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.0",
152
+ "@libp2p/logger": "^2.0.7",
153
153
  "@libp2p/peer-id": "^2.0.0",
154
- "@libp2p/peer-record": "^5.0.0",
155
154
  "@multiformats/multiaddr": "^12.0.0",
156
155
  "interface-datastore": "^8.0.0",
157
- "mortice": "^3.0.0",
156
+ "mortice": "^3.0.1",
158
157
  "multiformats": "^11.0.0",
159
158
  "protons-runtime": "^5.0.0",
160
159
  "uint8arraylist": "^2.1.1",
@@ -162,12 +161,11 @@
162
161
  },
163
162
  "devDependencies": {
164
163
  "@libp2p/peer-id-factory": "^2.0.0",
165
- "@libp2p/utils": "^3.0.2",
166
164
  "aegir": "^38.1.6",
167
165
  "datastore-core": "^9.0.1",
168
166
  "delay": "^5.0.0",
169
167
  "p-defer": "^4.0.0",
170
- "p-wait-for": "^5.0.0",
168
+ "p-event": "^5.0.1",
171
169
  "protons": "^7.0.2",
172
170
  "sinon": "^15.0.1"
173
171
  }
package/src/errors.ts CHANGED
@@ -1,5 +1,4 @@
1
1
 
2
2
  export const codes = {
3
- ERR_INVALID_PARAMETERS: 'ERR_INVALID_PARAMETERS',
4
- ERR_NOT_FOUND: 'ERR_NOT_FOUND'
3
+ ERR_INVALID_PARAMETERS: 'ERR_INVALID_PARAMETERS'
5
4
  }