@libp2p/peer-collections 2.1.0 → 2.2.1

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 CHANGED
@@ -1,18 +1,18 @@
1
1
  # @libp2p/peer-collections <!-- omit in toc -->
2
2
 
3
3
  [![libp2p.io](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/)
4
- [![IRC](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p)
5
4
  [![Discuss](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg?style=flat-square)](https://discuss.libp2p.io)
6
5
  [![codecov](https://img.shields.io/codecov/c/github/libp2p/js-libp2p-peer-collections.svg?style=flat-square)](https://codecov.io/gh/libp2p/js-libp2p-peer-collections)
7
- [![CI](https://img.shields.io/github/workflow/status/libp2p/js-libp2p-interfaces/test%20&%20maybe%20release/master?style=flat-square)](https://github.com/libp2p/js-libp2p-peer-collections/actions/workflows/js-test-and-release.yml)
6
+ [![CI](https://img.shields.io/github/actions/workflow/status/libp2p/js-libp2p-peer-collections/js-test-and-release.yml?branch=master\&style=flat-square)](https://github.com/libp2p/js-libp2p-peer-collections/actions/workflows/js-test-and-release.yml?query=branch%3Amaster)
8
7
 
9
8
  > Stores values against a peer id
10
9
 
11
10
  ## Table of contents <!-- omit in toc -->
12
11
 
13
12
  - [Install](#install)
13
+ - [Browser `<script>` tag](#browser-script-tag)
14
14
  - [Description](#description)
15
- - [Example](#example)
15
+ - [API Docs](#api-docs)
16
16
  - [License](#license)
17
17
  - [Contribution](#contribution)
18
18
 
@@ -22,26 +22,23 @@
22
22
  $ npm i @libp2p/peer-collections
23
23
  ```
24
24
 
25
- ## Description
25
+ ### Browser `<script>` tag
26
26
 
27
- We can't use PeerIds as collection keys because collection keys are compared using same-value-zero equality, so this is just a group of collections that stringifies PeerIds before storing them.
27
+ Loading this module through a script tag will make it's exports available as `Libp2pPeerCollections` in the global namespace.
28
28
 
29
- PeerIds cache stringified versions of themselves so this should be a cheap operation.
29
+ ```html
30
+ <script src="https://unpkg.com/@libp2p/peer-collections/dist/index.min.js"></script>
31
+ ```
30
32
 
31
- ## Example
33
+ ## Description
32
34
 
33
- ```JavaScript
34
- import { peerMap, peerSet, peerList } from '@libp2p/peer-collections'
35
+ We can't use PeerIds as collection keys because collection keys are compared using same-value-zero equality, so this is just a group of collections that stringifies PeerIds before storing them.
35
36
 
36
- const map = peerMap<string>()
37
- map.set(peerId, 'value')
37
+ PeerIds cache stringified versions of themselves so this should be a cheap operation.
38
38
 
39
- const set = peerSet()
40
- set.add(peerId)
39
+ ## API Docs
41
40
 
42
- const list = peerList()
43
- list.push(peerId)
44
- ```
41
+ - <https://libp2p.github.io/js-libp2p-peer-collections>
45
42
 
46
43
  ## License
47
44
 
@@ -0,0 +1,3 @@
1
+ (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PPeerCollections = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
+ "use strict";var Libp2PPeerCollections=(()=>{var We=Object.create;var W=Object.defineProperty;var Ye=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty;var tt=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),l=(r,e)=>{for(var t in e)W(r,t,{get:e[t],enumerable:!0})},Ee=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ze(e))!et.call(r,o)&&o!==t&&W(r,o,{get:()=>e[o],enumerable:!(n=Ye(e,o))||n.enumerable});return r};var rt=(r,e,t)=>(t=r!=null?We(_e(r)):{},Ee(e||!r||!r.__esModule?W(t,"default",{value:r,enumerable:!0}):t,r)),nt=r=>Ee(W({},"__esModule",{value:!0}),r);var $e=tt((_r,qe)=>{"use strict";function je(r,e){for(let t in e)Object.defineProperty(r,t,{value:e[t],enumerable:!0,configurable:!0});return r}function fr(r,e,t){if(!r||typeof r=="string")throw new TypeError("Please pass an Error to err-code");t||(t={}),typeof e=="object"&&(t=e,e=""),e&&(t.code=e);try{return je(r,t)}catch{t.message=r.message,t.stack=r.stack;let o=function(){};return o.prototype=Object.create(Object.getPrototypeOf(r)),je(new o,t)}}qe.exports=fr});var mr={};l(mr,{PeerList:()=>L,PeerMap:()=>ee,PeerSet:()=>z});var ot=Ce,Ae=128,st=127,it=~st,at=Math.pow(2,31);function Ce(r,e,t){e=e||[],t=t||0;for(var n=t;r>=at;)e[t++]=r&255|Ae,r/=128;for(;r&it;)e[t++]=r&255|Ae,r>>>=7;return e[t]=r|0,Ce.bytes=t-n+1,e}var ct=te,ht=128,Ie=127;function te(r,n){var t=0,n=n||0,o=0,s=n,i,h=r.length;do{if(s>=h)throw te.bytes=0,new RangeError("Could not decode varint");i=r[s++],t+=o<28?(i&Ie)<<o:(i&Ie)*Math.pow(2,o),o+=7}while(i>=ht);return te.bytes=s-n,t}var ft=Math.pow(2,7),ut=Math.pow(2,14),dt=Math.pow(2,21),pt=Math.pow(2,28),lt=Math.pow(2,35),mt=Math.pow(2,42),bt=Math.pow(2,49),gt=Math.pow(2,56),yt=Math.pow(2,63),wt=function(r){return r<ft?1:r<ut?2:r<dt?3:r<pt?4:r<lt?5:r<mt?6:r<bt?7:r<gt?8:r<yt?9:10},xt={encode:ot,decode:ct,encodingLength:wt},vt=xt,V=vt;var j=(r,e=0)=>[V.decode(r,e),V.decode.bytes],N=(r,e,t=0)=>(V.encode(r,e,t),e),P=r=>V.encodingLength(r);var wr=new Uint8Array(0);var De=(r,e)=>{if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0},A=r=>{if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")};var Ue=r=>new TextEncoder().encode(r),ze=r=>new TextDecoder().decode(r);var D=(r,e)=>{let t=e.byteLength,n=P(r),o=n+P(t),s=new Uint8Array(o+t);return N(r,s,0),N(t,s,n),s.set(e,o),new B(r,t,e,s)},q=r=>{let e=A(r),[t,n]=j(e),[o,s]=j(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new B(t,o,i,e)},Le=(r,e)=>{if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&De(r.bytes,t.bytes)}},B=class{constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var ie={};l(ie,{base58btc:()=>m,base58flickr:()=>Dt});function St(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(t[i]!==255)throw new TypeError(s+" is ambiguous");t[i]=o}var h=r.length,d=r.charAt(0),M=Math.log(h)/Math.log(256),b=Math.log(256)/Math.log(h);function T(a){if(a instanceof Uint8Array||(ArrayBuffer.isView(a)?a=new Uint8Array(a.buffer,a.byteOffset,a.byteLength):Array.isArray(a)&&(a=Uint8Array.from(a))),!(a instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(a.length===0)return"";for(var p=0,O=0,y=0,x=a.length;y!==x&&a[y]===0;)y++,p++;for(var v=(x-y)*b+1>>>0,g=new Uint8Array(v);y!==x;){for(var S=a[y],C=0,w=v-1;(S!==0||C<O)&&w!==-1;w--,C++)S+=256*g[w]>>>0,g[w]=S%h>>>0,S=S/h>>>0;if(S!==0)throw new Error("Non-zero carry");O=C,y++}for(var E=v-O;E!==v&&g[E]===0;)E++;for(var Q=d.repeat(p);E<v;++E)Q+=r.charAt(g[E]);return Q}function X(a){if(typeof a!="string")throw new TypeError("Expected String");if(a.length===0)return new Uint8Array;var p=0;if(a[p]!==" "){for(var O=0,y=0;a[p]===d;)O++,p++;for(var x=(a.length-p)*M+1>>>0,v=new Uint8Array(x);a[p];){var g=t[a.charCodeAt(p)];if(g===255)return;for(var S=0,C=x-1;(g!==0||S<y)&&C!==-1;C--,S++)g+=h*v[C]>>>0,v[C]=g%256>>>0,g=g/256>>>0;if(g!==0)throw new Error("Non-zero carry");y=S,p++}if(a[p]!==" "){for(var w=x-y;w!==x&&v[w]===0;)w++;for(var E=new Uint8Array(O+(x-w)),Q=O;w!==x;)E[Q++]=v[w++];return E}}}function Qe(a){var p=X(a);if(p)return p;throw new Error(`Non-${e} character`)}return{encode:T,decodeUnsafe:X,decode:Qe}}var Et=St,At=Et,Me=At;var re=class{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},ne=class{constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Te(this,e)}},oe=class{constructor(e){this.decoders=e}or(e){return Te(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Te=(r,e)=>new oe({...r.decoders||{[r.prefix]:r},...e.decoders||{[e.prefix]:e}}),se=class{constructor(e,t,n,o){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=o,this.encoder=new re(e,t,n),this.decoder=new ne(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},R=({name:r,prefix:e,encode:t,decode:n})=>new se(r,e,t,n),U=({prefix:r,name:e,alphabet:t})=>{let{encode:n,decode:o}=Me(t,e);return R({prefix:r,name:e,encode:n,decode:s=>A(o(s))})},It=(r,e,t,n)=>{let o={};for(let b=0;b<e.length;++b)o[e[b]]=b;let s=r.length;for(;r[s-1]==="=";)--s;let i=new Uint8Array(s*t/8|0),h=0,d=0,M=0;for(let b=0;b<s;++b){let T=o[r[b]];if(T===void 0)throw new SyntaxError(`Non-${n} character`);d=d<<t|T,h+=t,h>=8&&(h-=8,i[M++]=255&d>>h)}if(h>=t||255&d<<8-h)throw new SyntaxError("Unexpected end of data");return i},Ct=(r,e,t)=>{let n=e[e.length-1]==="=",o=(1<<t)-1,s="",i=0,h=0;for(let d=0;d<r.length;++d)for(h=h<<8|r[d],i+=8;i>t;)i-=t,s+=e[o&h>>i];if(i&&(s+=e[o&h<<t-i]),n)for(;s.length*t&7;)s+="=";return s},f=({name:r,prefix:e,bitsPerChar:t,alphabet:n})=>R({prefix:e,name:r,encode(o){return Ct(o,n,t)},decode(o){return It(o,n,t,r)}});var m=U({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Dt=U({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ae={};l(ae,{base32:()=>F,base32hex:()=>Lt,base32hexpad:()=>Tt,base32hexpadupper:()=>Nt,base32hexupper:()=>Mt,base32pad:()=>zt,base32padupper:()=>Ot,base32upper:()=>Ut,base32z:()=>Pt});var F=f({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Ut=f({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),zt=f({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Ot=f({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Lt=f({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Mt=f({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Tt=f({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Nt=f({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Pt=f({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Bt=(r,e)=>{let{bytes:t,version:n}=r;switch(n){case 0:return Rt(t,ce(r),e||m.encoder);default:return Ft(t,ce(r),e||F.encoder)}},Ne=new WeakMap,ce=r=>{let e=Ne.get(r);if(e==null){let t=new Map;return Ne.set(r,t),t}return e},c=class{constructor(e,t,n,o){this.code=t,this.version=e,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==$)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Vt)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return c.createV0(t)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:t}=this.multihash,n=D(e,t);return c.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return c.equals(this,e)}static equals(e,t){let n=t;return n&&e.code===n.code&&e.version===n.version&&Le(e.multihash,n.multihash)}toString(e){return Bt(this,e)}toJSON(){return{code:this.code,version:this.version,hash:this.multihash.bytes}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof c)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:o,multihash:s,bytes:i}=t;return new c(n,o,s,i||Pe(n,o,s.bytes))}else if(t[jt]===!0){let{version:n,multihash:o,code:s}=t,i=q(o);return c.create(n,s,i)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==$)throw new Error(`Version 0 CID must use dag-pb (code: ${$}) block encoding`);return new c(e,t,n,n.bytes)}case 1:{let o=Pe(e,t,n.bytes);return new c(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return c.create(0,$,e)}static createV1(e,t){return c.create(1,e,t)}static decode(e){let[t,n]=c.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=c.inspectBytes(e),n=t.size-t.multihashSize,o=A(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let s=o.subarray(t.multihashSize-t.digestSize),i=new B(t.multihashCode,t.digestSize,s,o);return[t.version===0?c.createV0(i):c.createV1(t.codec,i),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[T,X]=j(e.subarray(t));return t+=X,T},o=n(),s=$;if(o===18?(o=0,t=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=t,h=n(),d=n(),M=t+d,b=M-i;return{version:o,codec:s,multihashCode:h,digestSize:d,multihashSize:b,size:M}}static parse(e,t){let[n,o]=kt(e,t),s=c.decode(o);return ce(s).set(n,e),s}},kt=(r,e)=>{switch(r[0]){case"Q":{let t=e||m;return[m.prefix,t.decode(`${m.prefix}${r}`)]}case m.prefix:{let t=e||m;return[m.prefix,t.decode(r)]}case F.prefix:{let t=e||F;return[F.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}},Rt=(r,e,t)=>{let{prefix:n}=t;if(n!==m.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let o=e.get(n);if(o==null){let s=t.encode(r).slice(1);return e.set(n,s),s}else return o},Ft=(r,e,t)=>{let{prefix:n}=t,o=e.get(n);if(o==null){let s=t.encode(r);return e.set(n,s),s}else return o},$=112,Vt=18,Pe=(r,e,t)=>{let n=P(r),o=n+P(e),s=new Uint8Array(o+t.byteLength);return N(r,s,0),N(e,s,n),s.set(t,o),s},jt=Symbol.for("@ipld/js-cid/CID");var he={};l(he,{identity:()=>qt});var qt=R({prefix:"\0",name:"identity",encode:r=>ze(r),decode:r=>Ue(r)});var fe={};l(fe,{base2:()=>$t});var $t=f({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ue={};l(ue,{base8:()=>Jt});var Jt=f({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var de={};l(de,{base10:()=>Kt});var Kt=U({prefix:"9",name:"base10",alphabet:"0123456789"});var pe={};l(pe,{base16:()=>Gt,base16upper:()=>Ht});var Gt=f({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Ht=f({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var le={};l(le,{base36:()=>Xt,base36upper:()=>Qt});var Xt=U({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Qt=U({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var me={};l(me,{base64:()=>Wt,base64pad:()=>Yt,base64url:()=>Zt,base64urlpad:()=>_t});var Wt=f({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Yt=f({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Zt=f({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),_t=f({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var be={};l(be,{base256emoji:()=>or});var Be=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),er=Be.reduce((r,e,t)=>(r[t]=e,r),[]),tr=Be.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function rr(r){return r.reduce((e,t)=>(e+=er[t],e),"")}function nr(r){let e=[];for(let t of r){let n=tr[t.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(n)}return new Uint8Array(e)}var or=R({prefix:"\u{1F680}",name:"base256emoji",encode:rr,decode:nr});var we={};l(we,{sha256:()=>Z,sha512:()=>sr});var ye=({name:r,code:e,encode:t})=>new ge(r,e,t),ge=class{constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?D(this.code,t):t.then(n=>D(this.code,n))}else throw Error("Unknown type, must be binary type")}};var Re=r=>async e=>new Uint8Array(await crypto.subtle.digest(r,e)),Z=ye({name:"sha2-256",code:18,encode:Re("SHA-256")}),sr=ye({name:"sha2-512",code:19,encode:Re("SHA-512")});var xe={};l(xe,{identity:()=>_});var Fe=0,ir="identity",Ve=A,ar=r=>D(Fe,Ve(r)),_={code:Fe,name:ir,encode:Ve,digest:ar};var Jr=new TextEncoder,Kr=new TextDecoder;var ve={...he,...fe,...ue,...de,...pe,...ae,...le,...ie,...me,...be},Wr={...we,...xe};function Se(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}var ur=rt($e(),1);var Je=Symbol.for("@libp2p/peer-id");var dr=Symbol.for("nodejs.util.inspect.custom"),Ke=Object.values(ve).map(r=>r.decoder).reduce((r,e)=>r.or(e),ve.identity.decoder),Ge=114,He=36,Xe=37,J=class{constructor(e){this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}get[Je](){return!0}toString(){return this.string==null&&(this.string=m.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return c.createV1(Ge,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e instanceof Uint8Array)return Se(this.multihash.bytes,e);if(typeof e=="string")return u(e).equals(this);if(e?.multihash?.bytes!=null)return Se(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[dr](){return`PeerId(${this.toString()})`}},K=class extends J{constructor(e){super({...e,type:"RSA"}),this.type="RSA",this.publicKey=e.publicKey}},G=class extends J{constructor(e){super({...e,type:"Ed25519"}),this.type="Ed25519",this.publicKey=e.multihash.digest}},H=class extends J{constructor(e){super({...e,type:"secp256k1"}),this.type="secp256k1",this.publicKey=e.multihash.digest}};function u(r,e){if(e=e??Ke,r.charAt(0)==="1"||r.charAt(0)==="Q"){let t=q(m.decode(`z${r}`));return r.startsWith("12D")?new G({multihash:t}):r.startsWith("16U")?new H({multihash:t}):new K({multihash:t})}return pr(Ke.decode(r))}function pr(r){try{let e=q(r);if(e.code===_.code){if(e.digest.length===He)return new G({multihash:e});if(e.digest.length===Xe)return new H({multihash:e})}if(e.code===Z.code)return new K({multihash:e})}catch{return lr(c.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function lr(r){if(r==null||r.multihash==null||r.version==null||r.version===1&&r.code!==Ge)throw new Error("Supplied PeerID CID is invalid");let e=r.multihash;if(e.code===Z.code)return new K({multihash:r.multihash});if(e.code===_.code){if(e.digest.length===He)return new G({multihash:r.multihash});if(e.digest.length===Xe)return new H({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}function I(r,e){let t={[Symbol.iterator]:()=>t,next:()=>{let n=r.next(),o=n.value;return n.done===!0||o==null?{done:!0,value:void 0}:{done:!1,value:e(o)}}};return t}var ee=class{constructor(e){if(this.map=new Map,e!=null)for(let[t,n]of e.entries())this.map.set(t.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){this.map.delete(e.toString())}entries(){return I(this.map.entries(),e=>[u(e[0]),e[1]])}forEach(e){this.map.forEach((t,n)=>{e(t,u(n),this)})}get(e){return this.map.get(e.toString())}has(e){return this.map.has(e.toString())}set(e,t){this.map.set(e.toString(),t)}keys(){return I(this.map.keys(),e=>u(e))}values(){return this.map.values()}get size(){return this.map.size}};var z=class{constructor(e){if(this.set=new Set,e!=null)for(let t of e)this.set.add(t.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(e){this.set.add(e.toString())}clear(){this.set.clear()}delete(e){this.set.delete(e.toString())}entries(){return I(this.set.entries(),e=>{let t=u(e[0]);return[t,t]})}forEach(e){this.set.forEach(t=>{let n=u(t);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return I(this.set.values(),e=>u(e))}intersection(e){let t=new z;for(let n of e)this.has(n)&&t.add(n);return t}difference(e){let t=new z;for(let n of this)e.has(n)||t.add(n);return t}union(e){let t=new z;for(let n of e)t.add(n);for(let n of this)t.add(n);return t}};var L=class{constructor(e){if(this.list=[],e!=null)for(let t of e)this.list.push(t.toString())}[Symbol.iterator](){return I(this.list.entries(),e=>u(e[1]))}concat(e){let t=new L(this);for(let n of e)t.push(n);return t}entries(){return I(this.list.entries(),e=>[e[0],u(e[1])])}every(e){return this.list.every((t,n)=>e(u(t),n,this))}filter(e){let t=new L;return this.list.forEach((n,o)=>{let s=u(n);e(s,o,this)&&t.push(s)}),t}find(e){let t=this.list.find((n,o)=>e(u(n),o,this));if(t!=null)return u(t)}findIndex(e){return this.list.findIndex((t,n)=>e(u(t),n,this))}forEach(e){this.list.forEach((t,n)=>{e(u(t),n,this)})}includes(e){return this.list.includes(e.toString())}indexOf(e){return this.list.indexOf(e.toString())}pop(){let e=this.list.pop();if(e!=null)return u(e)}push(...e){for(let t of e)this.list.push(t.toString())}shift(){let e=this.list.shift();if(e!=null)return u(e)}unshift(...e){let t=this.list.length;for(let n=e.length-1;n>-1;n--)t=this.list.unshift(e[n].toString());return t}get length(){return this.list.length}};return nt(mr);})();
3
+ return Libp2PPeerCollections}));
@@ -6,6 +6,15 @@ import type { PeerId } from '@libp2p/interface-peer-id';
6
6
  *
7
7
  * PeerIds cache stringified versions of themselves so this
8
8
  * should be a cheap operation.
9
+ *
10
+ * @example
11
+ *
12
+ * ```JavaScript
13
+ * import { peerList } from '@libp2p/peer-collections'
14
+ *
15
+ * const list = peerList()
16
+ * list.push(peerId)
17
+ * ```
9
18
  */
10
19
  export declare class PeerList {
11
20
  private readonly list;
@@ -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;;;;;;;;;;;;;;;;GAgBG;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"}
package/dist/src/list.js CHANGED
@@ -7,6 +7,15 @@ import { mapIterable } from './util.js';
7
7
  *
8
8
  * PeerIds cache stringified versions of themselves so this
9
9
  * should be a cheap operation.
10
+ *
11
+ * @example
12
+ *
13
+ * ```JavaScript
14
+ * import { peerList } from '@libp2p/peer-collections'
15
+ *
16
+ * const list = peerList()
17
+ * list.push(peerId)
18
+ * ```
10
19
  */
11
20
  export class PeerList {
12
21
  constructor(list) {
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/list.ts"],"names":[],"mappings":"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"}
package/dist/src/map.d.ts CHANGED
@@ -6,6 +6,15 @@ import type { PeerId } from '@libp2p/interface-peer-id';
6
6
  *
7
7
  * PeerIds cache stringified versions of themselves so this
8
8
  * should be a cheap operation.
9
+ *
10
+ * @example
11
+ *
12
+ * ```JavaScript
13
+ * import { peerMap } from '@libp2p/peer-collections'
14
+ *
15
+ * const map = peerMap<string>()
16
+ * map.set(peerId, 'value')
17
+ * ```
9
18
  */
10
19
  export declare class PeerMap<T> {
11
20
  private readonly map;
@@ -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;;;;;;;;;;;;;;;;GAgBG;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/map.js CHANGED
@@ -7,6 +7,15 @@ import { mapIterable } from './util.js';
7
7
  *
8
8
  * PeerIds cache stringified versions of themselves so this
9
9
  * should be a cheap operation.
10
+ *
11
+ * @example
12
+ *
13
+ * ```JavaScript
14
+ * import { peerMap } from '@libp2p/peer-collections'
15
+ *
16
+ * const map = peerMap<string>()
17
+ * map.set(peerId, 'value')
18
+ * ```
10
19
  */
11
20
  export class PeerMap {
12
21
  constructor(map) {
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/map.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,GAAgB;QAC3B,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;QAEpB,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE;gBACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAA;aACpC;SACF;IACH,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACvB,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,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,CAAC,CACF,CAAA;IACH,CAAC;IAED,OAAO,CAAE,EAAoD;QAC3D,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC9B,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;QACxC,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,GAAG,CAAE,IAAY;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;IACtC,CAAC;IAED,GAAG,CAAE,IAAY,EAAE,KAAQ;QACzB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,IAAI;QACF,OAAO,WAAW,CAChB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EACf,CAAC,GAAG,EAAE,EAAE;YACN,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC,CACF,CAAA;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;IAC1B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,OAAO;IAGlB,YAAa,GAAgB;QAC3B,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;QAEpB,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE;gBACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAA;aACpC;SACF;IACH,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACvB,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,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,CAAC,CACF,CAAA;IACH,CAAC;IAED,OAAO,CAAE,EAAoD;QAC3D,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC9B,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;QACxC,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,GAAG,CAAE,IAAY;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;IACtC,CAAC;IAED,GAAG,CAAE,IAAY,EAAE,KAAQ;QACzB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,IAAI;QACF,OAAO,WAAW,CAChB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EACf,CAAC,GAAG,EAAE,EAAE;YACN,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC,CACF,CAAA;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;IAC1B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;IACtB,CAAC;CACF"}
package/dist/src/set.d.ts CHANGED
@@ -6,6 +6,15 @@ import type { PeerId } from '@libp2p/interface-peer-id';
6
6
  *
7
7
  * PeerIds cache stringified versions of themselves so this
8
8
  * should be a cheap operation.
9
+ *
10
+ * @example
11
+ *
12
+ * ```JavaScript
13
+ * import { peerSet } from '@libp2p/peer-collections'
14
+ *
15
+ * const set = peerSet()
16
+ * set.add(peerId)
17
+ * ```
9
18
  */
10
19
  export declare class PeerSet {
11
20
  private readonly set;
@@ -19,5 +28,8 @@ export declare class PeerSet {
19
28
  forEach(predicate: (peerId: PeerId, index: PeerId, set: PeerSet) => void): void;
20
29
  has(peer: PeerId): boolean;
21
30
  values(): IterableIterator<PeerId>;
31
+ intersection(other: PeerSet): PeerSet;
32
+ difference(other: PeerSet): PeerSet;
33
+ union(other: PeerSet): PeerSet;
22
34
  }
23
35
  //# 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;;;;;;;;;;;;;;;;GAgBG;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
@@ -7,6 +7,15 @@ import { mapIterable } from './util.js';
7
7
  *
8
8
  * PeerIds cache stringified versions of themselves so this
9
9
  * should be a cheap operation.
10
+ *
11
+ * @example
12
+ *
13
+ * ```JavaScript
14
+ * import { peerSet } from '@libp2p/peer-collections'
15
+ *
16
+ * const set = peerSet()
17
+ * set.add(peerId)
18
+ * ```
10
19
  */
11
20
  export class PeerSet {
12
21
  constructor(set) {
@@ -52,5 +61,33 @@ export class PeerSet {
52
61
  return peerIdFromString(val);
53
62
  });
54
63
  }
64
+ intersection(other) {
65
+ const output = new PeerSet();
66
+ for (const peerId of other) {
67
+ if (this.has(peerId)) {
68
+ output.add(peerId);
69
+ }
70
+ }
71
+ return output;
72
+ }
73
+ difference(other) {
74
+ const output = new PeerSet();
75
+ for (const peerId of this) {
76
+ if (!other.has(peerId)) {
77
+ output.add(peerId);
78
+ }
79
+ }
80
+ return output;
81
+ }
82
+ union(other) {
83
+ const output = new PeerSet();
84
+ for (const peerId of other) {
85
+ output.add(peerId);
86
+ }
87
+ for (const peerId of this) {
88
+ output.add(peerId);
89
+ }
90
+ return output;
91
+ }
55
92
  }
56
93
  //# 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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"}
@@ -0,0 +1,5 @@
1
+ {
2
+ "PeerList": "https://libp2p.github.io/js-libp2p-peer-collections/classes/PeerList.html",
3
+ "PeerMap": "https://libp2p.github.io/js-libp2p-peer-collections/classes/PeerMap.html",
4
+ "PeerSet": "https://libp2p.github.io/js-libp2p-peer-collections/classes/PeerSet.html"
5
+ }
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.1",
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",
@@ -22,7 +22,7 @@
22
22
  "types": "./dist/src/index.d.ts",
23
23
  "files": [
24
24
  "src",
25
- "dist/src",
25
+ "dist",
26
26
  "!dist/test",
27
27
  "!**/*.tsbuildinfo"
28
28
  ],
@@ -65,15 +65,15 @@
65
65
  "release": "patch"
66
66
  },
67
67
  {
68
- "type": "chore",
68
+ "type": "docs",
69
69
  "release": "patch"
70
70
  },
71
71
  {
72
- "type": "docs",
72
+ "type": "test",
73
73
  "release": "patch"
74
74
  },
75
75
  {
76
- "type": "test",
76
+ "type": "deps",
77
77
  "release": "patch"
78
78
  },
79
79
  {
@@ -103,7 +103,11 @@
103
103
  },
104
104
  {
105
105
  "type": "docs",
106
- "section": "Trivial Changes"
106
+ "section": "Documentation"
107
+ },
108
+ {
109
+ "type": "deps",
110
+ "section": "Dependencies"
107
111
  },
108
112
  {
109
113
  "type": "test",
@@ -131,7 +135,8 @@
131
135
  "test:firefox-webworker": "aegir test -t webworker -- --browser firefox",
132
136
  "test:node": "aegir test -t node --cov",
133
137
  "test:electron-main": "aegir test -t electron-main",
134
- "release": "aegir release"
138
+ "release": "aegir release",
139
+ "docs": "aegir docs"
135
140
  },
136
141
  "dependencies": {
137
142
  "@libp2p/interface-peer-id": "^1.0.4",
package/src/list.ts CHANGED
@@ -9,6 +9,15 @@ import { mapIterable } from './util.js'
9
9
  *
10
10
  * PeerIds cache stringified versions of themselves so this
11
11
  * should be a cheap operation.
12
+ *
13
+ * @example
14
+ *
15
+ * ```JavaScript
16
+ * import { peerList } from '@libp2p/peer-collections'
17
+ *
18
+ * const list = peerList()
19
+ * list.push(peerId)
20
+ * ```
12
21
  */
13
22
  export class PeerList {
14
23
  private readonly list: string[]
@@ -23,7 +32,7 @@ export class PeerList {
23
32
  }
24
33
  }
25
34
 
26
- [Symbol.iterator] () {
35
+ [Symbol.iterator] (): IterableIterator<PeerId> {
27
36
  return mapIterable<[number, string], PeerId>(
28
37
  this.list.entries(),
29
38
  (val) => {
@@ -32,7 +41,7 @@ export class PeerList {
32
41
  )
33
42
  }
34
43
 
35
- concat (list: PeerList) {
44
+ concat (list: PeerList): PeerList {
36
45
  const output = new PeerList(this)
37
46
 
38
47
  for (const value of list) {
@@ -113,7 +122,7 @@ export class PeerList {
113
122
  return peerIdFromString(str)
114
123
  }
115
124
 
116
- push (...peerIds: PeerId[]) {
125
+ push (...peerIds: PeerId[]): void {
117
126
  for (const peerId of peerIds) {
118
127
  this.list.push(peerId.toString())
119
128
  }
@@ -129,7 +138,7 @@ export class PeerList {
129
138
  return peerIdFromString(str)
130
139
  }
131
140
 
132
- unshift (...peerIds: PeerId[]) {
141
+ unshift (...peerIds: PeerId[]): number {
133
142
  let len = this.list.length
134
143
 
135
144
  for (let i = peerIds.length - 1; i > -1; i--) {
@@ -139,7 +148,7 @@ export class PeerList {
139
148
  return len
140
149
  }
141
150
 
142
- get length () {
151
+ get length (): number {
143
152
  return this.list.length
144
153
  }
145
154
  }
package/src/map.ts CHANGED
@@ -9,6 +9,15 @@ import { mapIterable } from './util.js'
9
9
  *
10
10
  * PeerIds cache stringified versions of themselves so this
11
11
  * should be a cheap operation.
12
+ *
13
+ * @example
14
+ *
15
+ * ```JavaScript
16
+ * import { peerMap } from '@libp2p/peer-collections'
17
+ *
18
+ * const map = peerMap<string>()
19
+ * map.set(peerId, 'value')
20
+ * ```
12
21
  */
13
22
  export class PeerMap <T> {
14
23
  private readonly map: Map<string, T>
@@ -23,15 +32,15 @@ export class PeerMap <T> {
23
32
  }
24
33
  }
25
34
 
26
- [Symbol.iterator] () {
35
+ [Symbol.iterator] (): IterableIterator<[PeerId, T]> {
27
36
  return this.entries()
28
37
  }
29
38
 
30
- clear () {
39
+ clear (): void {
31
40
  this.map.clear()
32
41
  }
33
42
 
34
- delete (peer: PeerId) {
43
+ delete (peer: PeerId): void {
35
44
  this.map.delete(peer.toString())
36
45
  }
37
46
 
@@ -58,7 +67,7 @@ export class PeerMap <T> {
58
67
  return this.map.has(peer.toString())
59
68
  }
60
69
 
61
- set (peer: PeerId, value: T) {
70
+ set (peer: PeerId, value: T): void {
62
71
  this.map.set(peer.toString(), value)
63
72
  }
64
73
 
@@ -71,11 +80,11 @@ export class PeerMap <T> {
71
80
  )
72
81
  }
73
82
 
74
- values () {
83
+ values (): IterableIterator<T> {
75
84
  return this.map.values()
76
85
  }
77
86
 
78
- get size () {
87
+ get size (): number {
79
88
  return this.map.size
80
89
  }
81
90
  }
package/src/set.ts CHANGED
@@ -9,6 +9,15 @@ import { mapIterable } from './util.js'
9
9
  *
10
10
  * PeerIds cache stringified versions of themselves so this
11
11
  * should be a cheap operation.
12
+ *
13
+ * @example
14
+ *
15
+ * ```JavaScript
16
+ * import { peerSet } from '@libp2p/peer-collections'
17
+ *
18
+ * const set = peerSet()
19
+ * set.add(peerId)
20
+ * ```
12
21
  */
13
22
  export class PeerSet {
14
23
  private readonly set: Set<string>
@@ -23,23 +32,23 @@ export class PeerSet {
23
32
  }
24
33
  }
25
34
 
26
- get size () {
35
+ get size (): number {
27
36
  return this.set.size
28
37
  }
29
38
 
30
- [Symbol.iterator] () {
39
+ [Symbol.iterator] (): IterableIterator<PeerId> {
31
40
  return this.values()
32
41
  }
33
42
 
34
- add (peer: PeerId) {
43
+ add (peer: PeerId): void {
35
44
  this.set.add(peer.toString())
36
45
  }
37
46
 
38
- clear () {
47
+ clear (): void {
39
48
  this.set.clear()
40
49
  }
41
50
 
42
- delete (peer: PeerId) {
51
+ delete (peer: PeerId): void {
43
52
  this.set.delete(peer.toString())
44
53
  }
45
54
 
@@ -66,7 +75,7 @@ export class PeerSet {
66
75
  return this.set.has(peer.toString())
67
76
  }
68
77
 
69
- values () {
78
+ values (): IterableIterator<PeerId> {
70
79
  return mapIterable<string, PeerId>(
71
80
  this.set.values(),
72
81
  (val) => {
@@ -74,4 +83,42 @@ export class PeerSet {
74
83
  }
75
84
  )
76
85
  }
86
+
87
+ intersection (other: PeerSet): PeerSet {
88
+ const output = new PeerSet()
89
+
90
+ for (const peerId of other) {
91
+ if (this.has(peerId)) {
92
+ output.add(peerId)
93
+ }
94
+ }
95
+
96
+ return output
97
+ }
98
+
99
+ difference (other: PeerSet): PeerSet {
100
+ const output = new PeerSet()
101
+
102
+ for (const peerId of this) {
103
+ if (!other.has(peerId)) {
104
+ output.add(peerId)
105
+ }
106
+ }
107
+
108
+ return output
109
+ }
110
+
111
+ union (other: PeerSet): PeerSet {
112
+ const output = new PeerSet()
113
+
114
+ for (const peerId of other) {
115
+ output.add(peerId)
116
+ }
117
+
118
+ for (const peerId of this) {
119
+ output.add(peerId)
120
+ }
121
+
122
+ return output
123
+ }
77
124
  }