@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
@@ -6,6 +6,109 @@
6
6
  import { encodeMessage, decodeMessage, message } from 'protons-runtime';
7
7
  export var Peer;
8
8
  (function (Peer) {
9
+ let Peer$metadataEntry;
10
+ (function (Peer$metadataEntry) {
11
+ let _codec;
12
+ Peer$metadataEntry.codec = () => {
13
+ if (_codec == null) {
14
+ _codec = message((obj, w, opts = {}) => {
15
+ if (opts.lengthDelimited !== false) {
16
+ w.fork();
17
+ }
18
+ if ((obj.key != null && obj.key !== '')) {
19
+ w.uint32(10);
20
+ w.string(obj.key);
21
+ }
22
+ if ((obj.value != null && obj.value.byteLength > 0)) {
23
+ w.uint32(18);
24
+ w.bytes(obj.value);
25
+ }
26
+ if (opts.lengthDelimited !== false) {
27
+ w.ldelim();
28
+ }
29
+ }, (reader, length) => {
30
+ const obj = {
31
+ key: '',
32
+ value: new Uint8Array(0)
33
+ };
34
+ const end = length == null ? reader.len : reader.pos + length;
35
+ while (reader.pos < end) {
36
+ const tag = reader.uint32();
37
+ switch (tag >>> 3) {
38
+ case 1:
39
+ obj.key = reader.string();
40
+ break;
41
+ case 2:
42
+ obj.value = reader.bytes();
43
+ break;
44
+ default:
45
+ reader.skipType(tag & 7);
46
+ break;
47
+ }
48
+ }
49
+ return obj;
50
+ });
51
+ }
52
+ return _codec;
53
+ };
54
+ Peer$metadataEntry.encode = (obj) => {
55
+ return encodeMessage(obj, Peer$metadataEntry.codec());
56
+ };
57
+ Peer$metadataEntry.decode = (buf) => {
58
+ return decodeMessage(buf, Peer$metadataEntry.codec());
59
+ };
60
+ })(Peer$metadataEntry = Peer.Peer$metadataEntry || (Peer.Peer$metadataEntry = {}));
61
+ let Peer$tagsEntry;
62
+ (function (Peer$tagsEntry) {
63
+ let _codec;
64
+ Peer$tagsEntry.codec = () => {
65
+ if (_codec == null) {
66
+ _codec = message((obj, w, opts = {}) => {
67
+ if (opts.lengthDelimited !== false) {
68
+ w.fork();
69
+ }
70
+ if ((obj.key != null && obj.key !== '')) {
71
+ w.uint32(10);
72
+ w.string(obj.key);
73
+ }
74
+ if (obj.value != null) {
75
+ w.uint32(18);
76
+ Tag.codec().encode(obj.value, w);
77
+ }
78
+ if (opts.lengthDelimited !== false) {
79
+ w.ldelim();
80
+ }
81
+ }, (reader, length) => {
82
+ const obj = {
83
+ key: ''
84
+ };
85
+ const end = length == null ? reader.len : reader.pos + length;
86
+ while (reader.pos < end) {
87
+ const tag = reader.uint32();
88
+ switch (tag >>> 3) {
89
+ case 1:
90
+ obj.key = reader.string();
91
+ break;
92
+ case 2:
93
+ obj.value = Tag.codec().decode(reader, reader.uint32());
94
+ break;
95
+ default:
96
+ reader.skipType(tag & 7);
97
+ break;
98
+ }
99
+ }
100
+ return obj;
101
+ });
102
+ }
103
+ return _codec;
104
+ };
105
+ Peer$tagsEntry.encode = (obj) => {
106
+ return encodeMessage(obj, Peer$tagsEntry.codec());
107
+ };
108
+ Peer$tagsEntry.decode = (buf) => {
109
+ return decodeMessage(buf, Peer$tagsEntry.codec());
110
+ };
111
+ })(Peer$tagsEntry = Peer.Peer$tagsEntry || (Peer.Peer$tagsEntry = {}));
9
112
  let _codec;
10
113
  Peer.codec = () => {
11
114
  if (_codec == null) {
@@ -25,20 +128,26 @@ export var Peer;
25
128
  w.string(value);
26
129
  }
27
130
  }
28
- if (obj.metadata != null) {
29
- for (const value of obj.metadata) {
30
- w.uint32(26);
31
- Metadata.codec().encode(value, w);
32
- }
33
- }
34
- if (obj.pubKey != null) {
131
+ if (obj.publicKey != null) {
35
132
  w.uint32(34);
36
- w.bytes(obj.pubKey);
133
+ w.bytes(obj.publicKey);
37
134
  }
38
135
  if (obj.peerRecordEnvelope != null) {
39
136
  w.uint32(42);
40
137
  w.bytes(obj.peerRecordEnvelope);
41
138
  }
139
+ if (obj.metadata != null && obj.metadata.size !== 0) {
140
+ for (const [key, value] of obj.metadata.entries()) {
141
+ w.uint32(50);
142
+ Peer.Peer$metadataEntry.codec().encode({ key, value }, w);
143
+ }
144
+ }
145
+ if (obj.tags != null && obj.tags.size !== 0) {
146
+ for (const [key, value] of obj.tags.entries()) {
147
+ w.uint32(58);
148
+ Peer.Peer$tagsEntry.codec().encode({ key, value }, w);
149
+ }
150
+ }
42
151
  if (opts.lengthDelimited !== false) {
43
152
  w.ldelim();
44
153
  }
@@ -46,7 +155,8 @@ export var Peer;
46
155
  const obj = {
47
156
  addresses: [],
48
157
  protocols: [],
49
- metadata: []
158
+ metadata: new Map(),
159
+ tags: new Map()
50
160
  };
51
161
  const end = length == null ? reader.len : reader.pos + length;
52
162
  while (reader.pos < end) {
@@ -58,15 +168,22 @@ export var Peer;
58
168
  case 2:
59
169
  obj.protocols.push(reader.string());
60
170
  break;
61
- case 3:
62
- obj.metadata.push(Metadata.codec().decode(reader, reader.uint32()));
63
- break;
64
171
  case 4:
65
- obj.pubKey = reader.bytes();
172
+ obj.publicKey = reader.bytes();
66
173
  break;
67
174
  case 5:
68
175
  obj.peerRecordEnvelope = reader.bytes();
69
176
  break;
177
+ case 6: {
178
+ const entry = Peer.Peer$metadataEntry.codec().decode(reader, reader.uint32());
179
+ obj.metadata.set(entry.key, entry.value);
180
+ break;
181
+ }
182
+ case 7: {
183
+ const entry = Peer.Peer$tagsEntry.codec().decode(reader, reader.uint32());
184
+ obj.tags.set(entry.key, entry.value);
185
+ break;
186
+ }
70
187
  default:
71
188
  reader.skipType(tag & 7);
72
189
  break;
@@ -135,40 +252,39 @@ export var Address;
135
252
  return decodeMessage(buf, Address.codec());
136
253
  };
137
254
  })(Address || (Address = {}));
138
- export var Metadata;
139
- (function (Metadata) {
255
+ export var Tag;
256
+ (function (Tag) {
140
257
  let _codec;
141
- Metadata.codec = () => {
258
+ Tag.codec = () => {
142
259
  if (_codec == null) {
143
260
  _codec = message((obj, w, opts = {}) => {
144
261
  if (opts.lengthDelimited !== false) {
145
262
  w.fork();
146
263
  }
147
- if ((obj.key != null && obj.key !== '')) {
148
- w.uint32(10);
149
- w.string(obj.key);
264
+ if ((obj.value != null && obj.value !== 0)) {
265
+ w.uint32(8);
266
+ w.uint32(obj.value);
150
267
  }
151
- if ((obj.value != null && obj.value.byteLength > 0)) {
152
- w.uint32(18);
153
- w.bytes(obj.value);
268
+ if (obj.expiry != null) {
269
+ w.uint32(16);
270
+ w.uint64(obj.expiry);
154
271
  }
155
272
  if (opts.lengthDelimited !== false) {
156
273
  w.ldelim();
157
274
  }
158
275
  }, (reader, length) => {
159
276
  const obj = {
160
- key: '',
161
- value: new Uint8Array(0)
277
+ value: 0
162
278
  };
163
279
  const end = length == null ? reader.len : reader.pos + length;
164
280
  while (reader.pos < end) {
165
281
  const tag = reader.uint32();
166
282
  switch (tag >>> 3) {
167
283
  case 1:
168
- obj.key = reader.string();
284
+ obj.value = reader.uint32();
169
285
  break;
170
286
  case 2:
171
- obj.value = reader.bytes();
287
+ obj.expiry = reader.uint64();
172
288
  break;
173
289
  default:
174
290
  reader.skipType(tag & 7);
@@ -180,11 +296,11 @@ export var Metadata;
180
296
  }
181
297
  return _codec;
182
298
  };
183
- Metadata.encode = (obj) => {
184
- return encodeMessage(obj, Metadata.codec());
299
+ Tag.encode = (obj) => {
300
+ return encodeMessage(obj, Tag.codec());
185
301
  };
186
- Metadata.decode = (buf) => {
187
- return decodeMessage(buf, Metadata.codec());
302
+ Tag.decode = (buf) => {
303
+ return decodeMessage(buf, Tag.codec());
188
304
  };
189
- })(Metadata || (Metadata = {}));
305
+ })(Tag || (Tag = {}));
190
306
  //# sourceMappingURL=peer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"peer.js","sourceRoot":"","sources":["../../../src/pb/peer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peer.js","sourceRoot":"","sources":["../../../src/pb/peer.ts"],"names":[],"mappings":"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"}
@@ -1,37 +1,27 @@
1
- import { Key } from 'interface-datastore/key';
2
- import type { Peer } from '@libp2p/interface-peer-store';
1
+ import type { Peer, PeerData } from '@libp2p/interface-peer-store';
3
2
  import type { PeerId } from '@libp2p/interface-peer-id';
4
- import type { PersistentPeerStoreComponents } from './index.js';
5
- export interface Store {
6
- has: (peerId: PeerId) => Promise<boolean>;
7
- save: (peer: Peer) => Promise<Peer>;
8
- load: (peerId: PeerId) => Promise<Peer>;
9
- delete: (peerId: PeerId) => Promise<void>;
10
- merge: (peerId: PeerId, data: Partial<Peer>) => Promise<Peer>;
11
- mergeOrCreate: (peerId: PeerId, data: Partial<Peer>) => Promise<Peer>;
12
- patch: (peerId: PeerId, data: Partial<Peer>) => Promise<Peer>;
13
- patchOrCreate: (peerId: PeerId, data: Partial<Peer>) => Promise<Peer>;
14
- all: () => AsyncIterable<Peer>;
15
- lock: {
16
- readLock: () => Promise<() => void>;
17
- writeLock: () => Promise<() => void>;
18
- };
3
+ import type { PersistentPeerStoreComponents, PersistentPeerStoreInit } from './index.js';
4
+ import type { PeerUpdate as PeerUpdateExternal } from '@libp2p/interface-libp2p';
5
+ import { Mortice } from 'mortice';
6
+ /**
7
+ * Event detail emitted when peer data changes
8
+ */
9
+ export interface PeerUpdate extends PeerUpdateExternal {
10
+ updated: boolean;
19
11
  }
20
12
  export declare class PersistentStore {
21
- private readonly components;
22
- lock: any;
23
- constructor(components: PersistentPeerStoreComponents);
24
- _peerIdToDatastoreKey(peerId: PeerId): Key;
13
+ #private;
14
+ private readonly peerId;
15
+ private readonly datastore;
16
+ readonly lock: Mortice;
17
+ private readonly addressFilter?;
18
+ constructor(components: PersistentPeerStoreComponents, init?: PersistentPeerStoreInit);
25
19
  has(peerId: PeerId): Promise<boolean>;
26
20
  delete(peerId: PeerId): Promise<void>;
27
21
  load(peerId: PeerId): Promise<Peer>;
28
- save(peer: Peer): Promise<Peer>;
29
- patch(peerId: PeerId, data: Partial<Peer>): Promise<Peer>;
30
- patchOrCreate(peerId: PeerId, data: Partial<Peer>): Promise<Peer>;
31
- _patch(peerId: PeerId, data: Partial<Peer>, peer: Peer): Promise<Peer>;
32
- merge(peerId: PeerId, data: Partial<Peer>): Promise<Peer>;
33
- mergeOrCreate(peerId: PeerId, data: Partial<Peer>): Promise<Peer>;
34
- _merge(peerId: PeerId, data: Partial<Peer>, peer: Peer): Promise<Peer>;
22
+ save(peerId: PeerId, data: PeerData): Promise<PeerUpdate>;
23
+ patch(peerId: PeerId, data: Partial<PeerData>): Promise<PeerUpdate>;
24
+ merge(peerId: PeerId, data: PeerData): Promise<PeerUpdate>;
35
25
  all(): AsyncGenerator<Peer, void, unknown>;
36
26
  }
37
27
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAiB,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAOvG,OAAO,KAAK,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAChF,OAAgB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAG1C;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,kBAAkB;IACpD,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,qBAAa,eAAe;;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,SAAgB,IAAI,EAAE,OAAO,CAAA;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAe;gBAEjC,UAAU,EAAE,6BAA6B,EAAE,IAAI,GAAE,uBAA4B;IAUpF,GAAG,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItC,MAAM,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtC,IAAI,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpC,IAAI,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAa1D,KAAK,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAcpE,KAAK,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAczD,GAAG,IAAK,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;CAuDpD"}
package/dist/src/store.js CHANGED
@@ -1,181 +1,111 @@
1
- import { logger } from '@libp2p/logger';
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var _PersistentStore_instances, _PersistentStore_findExistingPeer, _PersistentStore_saveIfDifferent;
2
7
  import { peerIdFromBytes } from '@libp2p/peer-id';
3
- import { CodeError } from '@libp2p/interfaces/errors';
4
- import { codes } from './errors.js';
5
- import { Key } from 'interface-datastore/key';
6
8
  import { base32 } from 'multiformats/bases/base32';
7
- import { multiaddr } from '@multiformats/multiaddr';
8
9
  import { Peer as PeerPB } from './pb/peer.js';
10
+ import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
11
+ import { NAMESPACE_COMMON, peerIdToDatastoreKey } from './utils/peer-id-to-datastore-key.js';
12
+ import { bytesToPeer } from './utils/bytes-to-peer.js';
13
+ import { CodeError } from '@libp2p/interfaces/errors';
14
+ import { codes } from './errors.js';
9
15
  import mortice from 'mortice';
10
- import { equals as uint8arrayEquals } from 'uint8arrays/equals';
11
- const log = logger('libp2p:peer-store:store');
12
- const NAMESPACE_COMMON = '/peers/';
16
+ import { toPeerPB } from './utils/to-peer-pb.js';
13
17
  export class PersistentStore {
14
- constructor(components) {
15
- this.components = components;
18
+ constructor(components, init = {}) {
19
+ _PersistentStore_instances.add(this);
20
+ this.peerId = components.peerId;
21
+ this.datastore = components.datastore;
22
+ this.addressFilter = init.addressFilter;
16
23
  this.lock = mortice({
17
24
  name: 'peer-store',
18
25
  singleProcess: true
19
26
  });
20
27
  }
21
- _peerIdToDatastoreKey(peerId) {
22
- if (peerId.type == null) {
23
- log.error('peerId must be an instance of peer-id to store data');
24
- throw new CodeError('peerId must be an instance of peer-id', codes.ERR_INVALID_PARAMETERS);
25
- }
26
- const b32key = peerId.toCID().toString();
27
- return new Key(`${NAMESPACE_COMMON}${b32key}`);
28
- }
29
28
  async has(peerId) {
30
- return await this.components.datastore.has(this._peerIdToDatastoreKey(peerId));
29
+ return await this.datastore.has(peerIdToDatastoreKey(peerId));
31
30
  }
32
31
  async delete(peerId) {
33
- await this.components.datastore.delete(this._peerIdToDatastoreKey(peerId));
32
+ if (this.peerId.equals(peerId)) {
33
+ throw new CodeError('Cannot delete self peer', codes.ERR_INVALID_PARAMETERS);
34
+ }
35
+ await this.datastore.delete(peerIdToDatastoreKey(peerId));
34
36
  }
35
37
  async load(peerId) {
36
- const buf = await this.components.datastore.get(this._peerIdToDatastoreKey(peerId));
37
- const peer = PeerPB.decode(buf);
38
- const metadata = new Map();
39
- for (const meta of peer.metadata) {
40
- metadata.set(meta.key, meta.value);
41
- }
42
- return {
43
- ...peer,
44
- id: peerId,
45
- addresses: peer.addresses.map(({ multiaddr: ma, isCertified }) => {
46
- return {
47
- multiaddr: multiaddr(ma),
48
- isCertified: isCertified ?? false
49
- };
50
- }),
51
- metadata,
52
- pubKey: peer.pubKey ?? undefined,
53
- peerRecordEnvelope: peer.peerRecordEnvelope ?? undefined
54
- };
38
+ const buf = await this.datastore.get(peerIdToDatastoreKey(peerId));
39
+ return await bytesToPeer(peerId, buf);
55
40
  }
56
- async save(peer) {
57
- if (peer.pubKey != null && peer.id.publicKey != null && !uint8arrayEquals(peer.pubKey, peer.id.publicKey)) {
58
- log.error('peer publicKey bytes do not match peer id publicKey bytes');
59
- throw new CodeError('publicKey bytes do not match peer id publicKey bytes', codes.ERR_INVALID_PARAMETERS);
60
- }
61
- // dedupe addresses
62
- const addressSet = new Set();
63
- const addresses = peer.addresses
64
- .filter(address => {
65
- if (addressSet.has(address.multiaddr.toString())) {
66
- return false;
67
- }
68
- addressSet.add(address.multiaddr.toString());
69
- return true;
70
- })
71
- .sort((a, b) => {
72
- return a.multiaddr.toString().localeCompare(b.multiaddr.toString());
73
- })
74
- .map(({ multiaddr, isCertified }) => ({
75
- multiaddr: multiaddr.bytes,
76
- isCertified
77
- }));
78
- const metadata = [];
79
- [...peer.metadata.keys()].sort().forEach(key => {
80
- const value = peer.metadata.get(key);
81
- if (value != null) {
82
- metadata.push({ key, value });
83
- }
84
- });
85
- const buf = PeerPB.encode({
86
- addresses,
87
- protocols: peer.protocols.sort(),
88
- pubKey: peer.pubKey,
89
- metadata,
90
- peerRecordEnvelope: peer.peerRecordEnvelope
41
+ async save(peerId, data) {
42
+ const { existingBuf, existingPeer } = await __classPrivateFieldGet(this, _PersistentStore_instances, "m", _PersistentStore_findExistingPeer).call(this, peerId);
43
+ const peerPb = await toPeerPB(peerId, data, 'patch', {
44
+ addressFilter: this.addressFilter
91
45
  });
92
- await this.components.datastore.put(this._peerIdToDatastoreKey(peer.id), buf.subarray());
93
- return await this.load(peer.id);
46
+ return await __classPrivateFieldGet(this, _PersistentStore_instances, "m", _PersistentStore_saveIfDifferent).call(this, peerId, peerPb, existingBuf, existingPeer);
94
47
  }
95
48
  async patch(peerId, data) {
96
- const peer = await this.load(peerId);
97
- return await this._patch(peerId, data, peer);
98
- }
99
- async patchOrCreate(peerId, data) {
100
- let peer;
101
- try {
102
- peer = await this.load(peerId);
103
- }
104
- catch (err) {
105
- if (err.code !== codes.ERR_NOT_FOUND) {
106
- throw err;
107
- }
108
- peer = { id: peerId, addresses: [], protocols: [], metadata: new Map() };
109
- }
110
- return await this._patch(peerId, data, peer);
111
- }
112
- async _patch(peerId, data, peer) {
113
- return await this.save({
114
- ...peer,
115
- ...data,
116
- id: peerId
49
+ const { existingBuf, existingPeer } = await __classPrivateFieldGet(this, _PersistentStore_instances, "m", _PersistentStore_findExistingPeer).call(this, peerId);
50
+ const peerPb = await toPeerPB(peerId, data, 'patch', {
51
+ addressFilter: this.addressFilter,
52
+ existingPeer
117
53
  });
54
+ return await __classPrivateFieldGet(this, _PersistentStore_instances, "m", _PersistentStore_saveIfDifferent).call(this, peerId, peerPb, existingBuf, existingPeer);
118
55
  }
119
56
  async merge(peerId, data) {
120
- const peer = await this.load(peerId);
121
- return await this._merge(peerId, data, peer);
122
- }
123
- async mergeOrCreate(peerId, data) {
124
- /** @type {Peer} */
125
- let peer;
126
- try {
127
- peer = await this.load(peerId);
128
- }
129
- catch (err) {
130
- if (err.code !== codes.ERR_NOT_FOUND) {
131
- throw err;
132
- }
133
- peer = { id: peerId, addresses: [], protocols: [], metadata: new Map() };
134
- }
135
- return await this._merge(peerId, data, peer);
136
- }
137
- async _merge(peerId, data, peer) {
138
- // if the peer has certified addresses, use those in
139
- // favour of the supplied versions
140
- const addresses = new Map();
141
- peer.addresses.forEach((addr) => {
142
- addresses.set(addr.multiaddr.toString(), addr.isCertified);
143
- });
144
- (data.addresses ?? []).forEach(addr => {
145
- const addrString = addr.multiaddr.toString();
146
- const isAlreadyCertified = Boolean(addresses.get(addrString));
147
- const isCertified = isAlreadyCertified || addr.isCertified;
148
- addresses.set(addrString, isCertified);
149
- });
150
- return await this.save({
151
- id: peerId,
152
- addresses: Array.from(addresses.entries()).map(([addrStr, isCertified]) => {
153
- return {
154
- multiaddr: multiaddr(addrStr),
155
- isCertified
156
- };
157
- }),
158
- protocols: Array.from(new Set([
159
- ...(peer.protocols ?? []),
160
- ...(data.protocols ?? [])
161
- ])),
162
- metadata: new Map([
163
- ...(peer.metadata?.entries() ?? []),
164
- ...(data.metadata?.entries() ?? [])
165
- ]),
166
- pubKey: data.pubKey ?? (peer != null ? peer.pubKey : undefined),
167
- peerRecordEnvelope: data.peerRecordEnvelope ?? (peer != null ? peer.peerRecordEnvelope : undefined)
57
+ const { existingBuf, existingPeer } = await __classPrivateFieldGet(this, _PersistentStore_instances, "m", _PersistentStore_findExistingPeer).call(this, peerId);
58
+ const peerPb = await toPeerPB(peerId, data, 'merge', {
59
+ addressFilter: this.addressFilter,
60
+ existingPeer
168
61
  });
62
+ return await __classPrivateFieldGet(this, _PersistentStore_instances, "m", _PersistentStore_saveIfDifferent).call(this, peerId, peerPb, existingBuf, existingPeer);
169
63
  }
170
64
  async *all() {
171
- for await (const key of this.components.datastore.queryKeys({
65
+ for await (const { key, value } of this.datastore.query({
172
66
  prefix: NAMESPACE_COMMON
173
67
  })) {
174
68
  // /peers/${peer-id-as-libp2p-key-cid-string-in-base-32}
175
69
  const base32Str = key.toString().split('/')[2];
176
70
  const buf = base32.decode(base32Str);
177
- yield this.load(peerIdFromBytes(buf));
71
+ const peerId = peerIdFromBytes(buf);
72
+ if (peerId.equals(this.peerId)) {
73
+ // Skip self peer if present
74
+ continue;
75
+ }
76
+ yield bytesToPeer(peerId, value);
178
77
  }
179
78
  }
180
79
  }
80
+ _PersistentStore_instances = new WeakSet(), _PersistentStore_findExistingPeer = async function _PersistentStore_findExistingPeer(peerId) {
81
+ try {
82
+ const existingBuf = await this.datastore.get(peerIdToDatastoreKey(peerId));
83
+ const existingPeer = await bytesToPeer(peerId, existingBuf);
84
+ return {
85
+ existingBuf,
86
+ existingPeer
87
+ };
88
+ }
89
+ catch (err) {
90
+ if (err.code !== 'ERR_NOT_FOUND') {
91
+ throw err;
92
+ }
93
+ }
94
+ return {};
95
+ }, _PersistentStore_saveIfDifferent = async function _PersistentStore_saveIfDifferent(peerId, peer, existingBuf, existingPeer) {
96
+ const buf = PeerPB.encode(peer);
97
+ if (existingBuf != null && uint8ArrayEquals(buf, existingBuf)) {
98
+ return {
99
+ peer: await bytesToPeer(peerId, buf),
100
+ previous: existingPeer,
101
+ updated: false
102
+ };
103
+ }
104
+ await this.datastore.put(peerIdToDatastoreKey(peerId), buf);
105
+ return {
106
+ peer: await bytesToPeer(peerId, buf),
107
+ previous: existingPeer,
108
+ updated: true
109
+ };
110
+ };
181
111
  //# sourceMappingURL=store.js.map