@libp2p/peer-collections 2.1.0 → 2.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIvD;;;;;;;GAOG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;gBAElB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;IAU/C,CAAC,MAAM,CAAC,QAAQ,CAAC;IASjB,MAAM,CAAE,IAAI,EAAE,QAAQ;IAUtB,OAAO,IAAK,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAS9C,KAAK,CAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,GAAG,OAAO;IAMrF,MAAM,CAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,GAAG,QAAQ;IAcvF,IAAI,CAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,GAAG,MAAM,GAAG,SAAS;IAY/F,SAAS,CAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,GAAG,MAAM;IAMxF,OAAO,CAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAMjF,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIlC,OAAO,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAIhC,GAAG,IAAK,MAAM,GAAG,SAAS;IAU1B,IAAI,CAAE,GAAG,OAAO,EAAE,MAAM,EAAE;IAM1B,KAAK,IAAK,MAAM,GAAG,SAAS;IAU5B,OAAO,CAAE,GAAG,OAAO,EAAE,MAAM,EAAE;IAU7B,IAAI,MAAM,WAET;CACF"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIvD;;;;;;;GAOG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;gBAElB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;IAU/C,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAK,gBAAgB,CAAC,MAAM,CAAC;IAS9C,MAAM,CAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ;IAUjC,OAAO,IAAK,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAS9C,KAAK,CAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,GAAG,OAAO;IAMrF,MAAM,CAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,GAAG,QAAQ;IAcvF,IAAI,CAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,GAAG,MAAM,GAAG,SAAS;IAY/F,SAAS,CAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,GAAG,MAAM;IAMxF,OAAO,CAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAMjF,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIlC,OAAO,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAIhC,GAAG,IAAK,MAAM,GAAG,SAAS;IAU1B,IAAI,CAAE,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAMjC,KAAK,IAAK,MAAM,GAAG,SAAS;IAU5B,OAAO,CAAE,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAUtC,IAAI,MAAM,IAAK,MAAM,CAEpB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIvD;;;;;;;GAOG;AACH,qBAAa,OAAO,CAAE,CAAC;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;gBAEvB,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAU7B,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB,KAAK;IAIL,MAAM,CAAE,IAAI,EAAE,MAAM;IAIpB,OAAO,IAAK,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IASzC,OAAO,CAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAMpE,GAAG,CAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAIjC,GAAG,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3B,GAAG,CAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAI3B,IAAI,IAAK,gBAAgB,CAAC,MAAM,CAAC;IASjC,MAAM;IAIN,IAAI,IAAI,WAEP;CACF"}
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIvD;;;;;;;GAOG;AACH,qBAAa,OAAO,CAAE,CAAC;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;gBAEvB,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAU7B,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAK,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAInD,KAAK,IAAK,IAAI;IAId,MAAM,CAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,OAAO,IAAK,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IASzC,OAAO,CAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAMpE,GAAG,CAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAIjC,GAAG,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3B,GAAG,CAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAIlC,IAAI,IAAK,gBAAgB,CAAC,MAAM,CAAC;IASjC,MAAM,IAAK,gBAAgB,CAAC,CAAC,CAAC;IAI9B,IAAI,IAAI,IAAK,MAAM,CAElB;CACF"}
package/dist/src/set.d.ts CHANGED
@@ -19,5 +19,8 @@ export declare class PeerSet {
19
19
  forEach(predicate: (peerId: PeerId, index: PeerId, set: PeerSet) => void): void;
20
20
  has(peer: PeerId): boolean;
21
21
  values(): IterableIterator<PeerId>;
22
+ intersection(other: PeerSet): PeerSet;
23
+ difference(other: PeerSet): PeerSet;
24
+ union(other: PeerSet): PeerSet;
22
25
  }
23
26
  //# sourceMappingURL=set.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIvD;;;;;;;GAOG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAEpB,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC;IAU7C,IAAI,IAAI,WAEP;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB,GAAG,CAAE,IAAI,EAAE,MAAM;IAIjB,KAAK;IAIL,MAAM,CAAE,IAAI,EAAE,MAAM;IAIpB,OAAO,IAAK,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAW9C,OAAO,CAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAQhF,GAAG,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3B,MAAM;CAQP"}
1
+ {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIvD;;;;;;;GAOG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAEpB,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC;IAU7C,IAAI,IAAI,IAAK,MAAM,CAElB;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAK,gBAAgB,CAAC,MAAM,CAAC;IAI9C,GAAG,CAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxB,KAAK,IAAK,IAAI;IAId,MAAM,CAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,OAAO,IAAK,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAW9C,OAAO,CAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAQhF,GAAG,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3B,MAAM,IAAK,gBAAgB,CAAC,MAAM,CAAC;IASnC,YAAY,CAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAYtC,UAAU,CAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAYpC,KAAK,CAAE,KAAK,EAAE,OAAO,GAAG,OAAO;CAahC"}
package/dist/src/set.js CHANGED
@@ -52,5 +52,33 @@ export class PeerSet {
52
52
  return peerIdFromString(val);
53
53
  });
54
54
  }
55
+ intersection(other) {
56
+ const output = new PeerSet();
57
+ for (const peerId of other) {
58
+ if (this.has(peerId)) {
59
+ output.add(peerId);
60
+ }
61
+ }
62
+ return output;
63
+ }
64
+ difference(other) {
65
+ const output = new PeerSet();
66
+ for (const peerId of this) {
67
+ if (!other.has(peerId)) {
68
+ output.add(peerId);
69
+ }
70
+ }
71
+ return output;
72
+ }
73
+ union(other) {
74
+ const output = new PeerSet();
75
+ for (const peerId of other) {
76
+ output.add(peerId);
77
+ }
78
+ for (const peerId of this) {
79
+ output.add(peerId);
80
+ }
81
+ return output;
82
+ }
55
83
  }
56
84
  //# sourceMappingURL=set.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/set.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;GAOG;AACH,MAAM,OAAO,OAAO;IAGlB,YAAa,GAAgC;QAC3C,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;QAEpB,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;gBACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;aAC7B;SACF;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACtB,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IAED,GAAG,CAAE,IAAY;QACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC/B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC;IAED,MAAM,CAAE,IAAY;QAClB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;IAClC,CAAC;IAED,OAAO;QACL,OAAO,WAAW,CAChB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAClB,CAAC,GAAG,EAAE,EAAE;YACN,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAEvC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACzB,CAAC,CACF,CAAA;IACH,CAAC;IAED,OAAO,CAAE,SAAgE;QACvE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACvB,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;YAEhC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,GAAG,CAAE,IAAY;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;IACtC,CAAC;IAED,MAAM;QACJ,OAAO,WAAW,CAChB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EACjB,CAAC,GAAG,EAAE,EAAE;YACN,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC,CACF,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/set.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/peer-collections",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "Stores values against a peer id",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p-peer-collections#readme",
package/src/list.ts CHANGED
@@ -23,7 +23,7 @@ export class PeerList {
23
23
  }
24
24
  }
25
25
 
26
- [Symbol.iterator] () {
26
+ [Symbol.iterator] (): IterableIterator<PeerId> {
27
27
  return mapIterable<[number, string], PeerId>(
28
28
  this.list.entries(),
29
29
  (val) => {
@@ -32,7 +32,7 @@ export class PeerList {
32
32
  )
33
33
  }
34
34
 
35
- concat (list: PeerList) {
35
+ concat (list: PeerList): PeerList {
36
36
  const output = new PeerList(this)
37
37
 
38
38
  for (const value of list) {
@@ -113,7 +113,7 @@ export class PeerList {
113
113
  return peerIdFromString(str)
114
114
  }
115
115
 
116
- push (...peerIds: PeerId[]) {
116
+ push (...peerIds: PeerId[]): void {
117
117
  for (const peerId of peerIds) {
118
118
  this.list.push(peerId.toString())
119
119
  }
@@ -129,7 +129,7 @@ export class PeerList {
129
129
  return peerIdFromString(str)
130
130
  }
131
131
 
132
- unshift (...peerIds: PeerId[]) {
132
+ unshift (...peerIds: PeerId[]): number {
133
133
  let len = this.list.length
134
134
 
135
135
  for (let i = peerIds.length - 1; i > -1; i--) {
@@ -139,7 +139,7 @@ export class PeerList {
139
139
  return len
140
140
  }
141
141
 
142
- get length () {
142
+ get length (): number {
143
143
  return this.list.length
144
144
  }
145
145
  }
package/src/map.ts CHANGED
@@ -23,15 +23,15 @@ export class PeerMap <T> {
23
23
  }
24
24
  }
25
25
 
26
- [Symbol.iterator] () {
26
+ [Symbol.iterator] (): IterableIterator<[PeerId, T]> {
27
27
  return this.entries()
28
28
  }
29
29
 
30
- clear () {
30
+ clear (): void {
31
31
  this.map.clear()
32
32
  }
33
33
 
34
- delete (peer: PeerId) {
34
+ delete (peer: PeerId): void {
35
35
  this.map.delete(peer.toString())
36
36
  }
37
37
 
@@ -58,7 +58,7 @@ export class PeerMap <T> {
58
58
  return this.map.has(peer.toString())
59
59
  }
60
60
 
61
- set (peer: PeerId, value: T) {
61
+ set (peer: PeerId, value: T): void {
62
62
  this.map.set(peer.toString(), value)
63
63
  }
64
64
 
@@ -71,11 +71,11 @@ export class PeerMap <T> {
71
71
  )
72
72
  }
73
73
 
74
- values () {
74
+ values (): IterableIterator<T> {
75
75
  return this.map.values()
76
76
  }
77
77
 
78
- get size () {
78
+ get size (): number {
79
79
  return this.map.size
80
80
  }
81
81
  }
package/src/set.ts CHANGED
@@ -23,23 +23,23 @@ export class PeerSet {
23
23
  }
24
24
  }
25
25
 
26
- get size () {
26
+ get size (): number {
27
27
  return this.set.size
28
28
  }
29
29
 
30
- [Symbol.iterator] () {
30
+ [Symbol.iterator] (): IterableIterator<PeerId> {
31
31
  return this.values()
32
32
  }
33
33
 
34
- add (peer: PeerId) {
34
+ add (peer: PeerId): void {
35
35
  this.set.add(peer.toString())
36
36
  }
37
37
 
38
- clear () {
38
+ clear (): void {
39
39
  this.set.clear()
40
40
  }
41
41
 
42
- delete (peer: PeerId) {
42
+ delete (peer: PeerId): void {
43
43
  this.set.delete(peer.toString())
44
44
  }
45
45
 
@@ -66,7 +66,7 @@ export class PeerSet {
66
66
  return this.set.has(peer.toString())
67
67
  }
68
68
 
69
- values () {
69
+ values (): IterableIterator<PeerId> {
70
70
  return mapIterable<string, PeerId>(
71
71
  this.set.values(),
72
72
  (val) => {
@@ -74,4 +74,42 @@ export class PeerSet {
74
74
  }
75
75
  )
76
76
  }
77
+
78
+ intersection (other: PeerSet): PeerSet {
79
+ const output = new PeerSet()
80
+
81
+ for (const peerId of other) {
82
+ if (this.has(peerId)) {
83
+ output.add(peerId)
84
+ }
85
+ }
86
+
87
+ return output
88
+ }
89
+
90
+ difference (other: PeerSet): PeerSet {
91
+ const output = new PeerSet()
92
+
93
+ for (const peerId of this) {
94
+ if (!other.has(peerId)) {
95
+ output.add(peerId)
96
+ }
97
+ }
98
+
99
+ return output
100
+ }
101
+
102
+ union (other: PeerSet): PeerSet {
103
+ const output = new PeerSet()
104
+
105
+ for (const peerId of other) {
106
+ output.add(peerId)
107
+ }
108
+
109
+ for (const peerId of this) {
110
+ output.add(peerId)
111
+ }
112
+
113
+ return output
114
+ }
77
115
  }