{"_id":"@arve.knudsen/peer-info","_rev":"3-e7cdc0a1ddcee00de17a74f7fbd99329","name":"@arve.knudsen/peer-info","dist-tags":{"latest":"0.15.3"},"versions":{"0.15.1":{"name":"@arve.knudsen/peer-info","version":"0.15.1","description":"IPFS Peer abstraction JavaScript implementation","leadMaintainer":"Arve Knudsen <arve.knudsen@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release","release-minor":"aegir release --type minor","release-major":"aegir release --type major","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls","size":"bundlesize -f dist/index.min.js -s 146kB"},"repository":{"type":"git","url":"git+https://github.com/aknuds1/js-peer-info.git"},"keywords":["IPFS"],"engines":{"node":">=10.0.0","npm":">=6.0.0"},"license":"MIT","bugs":{"url":"https://github.com/aknuds1/js-peer-info/issues"},"homepage":"https://github.com/aknuds1/js-peer-info","devDependencies":{"aegir":"^18.2.2","buffer-loader":"0.1.0","bundlesize":"~0.17.0","chai":"^4.2.0","dirty-chai":"^2.0.1"},"dependencies":{"mafmt":"^6.0.7","multiaddr":"^6.0.6","@arve.knudsen/peer-id":"~0.12.2","unique-by":"^1.0.0"},"contributors":[{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Orie Steele","email":"orie@ohs.io"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"Stephen Whitmore","email":"stephen.whitmore@gmail.com"},{"name":"Vasco Santos","email":"vasco.santos@moxy.studio"},{"name":"Zane Starr","email":"zcstarr@gmail.com"},{"name":"haad","email":"haad@headbanggames.com"},{"name":"npmcdn-to-unpkg-bot","email":"npmcdn-to-unpkg-bot@users.noreply.github.com"},{"name":"Łukasz Kurowski","email":"crackcomm@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"56165feb4d9077bae2a984b0dfef6d0f9f9149de","_id":"@arve.knudsen/peer-info@0.15.1","_nodeVersion":"12.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-DjBMVhPPYMbwQUBoUbjr9TF9lMWaheMbFLv6+6GPQys8YhNeKGKMkQ32bCUHC6D7pc4lykrpGMEPwnPvt5SuYw==","shasum":"8130141399d5fe8f0bf7cbe5fcdb2ab9d5d3352b","tarball":"https://registry.npmjs.org/@arve.knudsen/peer-info/-/peer-info-0.15.1.tgz","fileCount":7,"unpackedSize":18980,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHhDhCRA9TVsSAnZWagAAAIoP/1lnEkf+pQ9ZI/FlZsV1\nBz6Umc06MLExYrJ6lklpSQROiaLmi9BfTfqqWEBiVVTqQFWvZgpF9SLvPJ6Z\nKxJeOiBDmSEFu4Fr0pGwY8xLiWUjg2eOjoUy8dpVMW7qwHxSueEpBKRyu4Gj\nfXtxT7a3/np+qRvc6zK0O51exGTZzfOzKdkIRucugVI720fFPALW57+wBV8n\nwCCeTr5jghorFHDEmSOoXbimnNhhDxd8e6ebOK0vUSC3dwN7ZIUp+9Gpb2k8\nOJuRRzrZ0IWK1oK4rHQDOcjwWMEM42mmK3burnaw/+VFca/6CEBnC7l/H2z4\nxAQvzs8+KNdMxYl8JfMJdJJNaOJmmWEAFXl26LdCR6i5WYxhwPfUcK3oxv+6\nNFWg0mu52Yzf88a2N8zOtuHYdaaunYlqLTDzIKAuemGolMmKvBDH4XHciTLw\nhUioqF1NC3aI0uRP6SNpYTRfg0i+ojiGW402u70fRLnBH72p/smKbqU9xT52\nn2JCwtqYoxqup7jO1zrFR22qQdEfdHqr0utDiXze1N6C2RfhwUYtALWhvfH2\n73pRZiF9bB50Qd1WRFK7f8z3R8z9ttgBEVgWiz2HvqmtSv5ojRgR/jchBeH8\n0z9v2QBBIOBP1VG7XSsbjRLKmuHO7PRGCS+7pohFt3qdUSjFDxF6KiAkmTrA\n194C\r\n=Sdep\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCfyB4JXYLc2Igz2rtCMXil1dIZNPzUjusEEoja1p7VAIgVSy2ACTr8JAi7J7FBa7sk8qxeoeWS/AM2JwG9X6g9BM="}]},"maintainers":[{"name":"arve.knudsen","email":"arve.knudsen@gmail.com"}],"_npmUser":{"name":"arve.knudsen","email":"arve.knudsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/peer-info_0.15.1_1562251488863_0.7976280267109059"},"_hasShrinkwrap":false},"0.15.2":{"name":"@arve.knudsen/peer-info","version":"0.15.2","description":"IPFS Peer abstraction JavaScript implementation","leadMaintainer":"Arve Knudsen <arve.knudsen@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release","release-minor":"aegir release --type minor","release-major":"aegir release --type major","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls","size":"bundlesize -f dist/index.min.js -s 146kB"},"repository":{"type":"git","url":"git+https://github.com/aknuds1/js-peer-info.git"},"keywords":["IPFS"],"engines":{"node":">=10.0.0","npm":">=6.0.0"},"license":"MIT","bugs":{"url":"https://github.com/aknuds1/js-peer-info/issues"},"homepage":"https://github.com/aknuds1/js-peer-info","devDependencies":{"aegir":"^18.2.2","buffer-loader":"0.1.0","bundlesize":"~0.17.0","chai":"^4.2.0","dirty-chai":"^2.0.1"},"dependencies":{"mafmt":"^6.0.7","multiaddr":"^6.0.6","@arve.knudsen/peer-id":"~0.12.2","unique-by":"^1.0.0"},"contributors":[{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Orie Steele","email":"orie@ohs.io"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"Stephen Whitmore","email":"stephen.whitmore@gmail.com"},{"name":"Vasco Santos","email":"vasco.santos@moxy.studio"},{"name":"Zane Starr","email":"zcstarr@gmail.com"},{"name":"haad","email":"haad@headbanggames.com"},{"name":"npmcdn-to-unpkg-bot","email":"npmcdn-to-unpkg-bot@users.noreply.github.com"},{"name":"Łukasz Kurowski","email":"crackcomm@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"2755b596b6221f5a5f910b583532551a5e43d62b","_id":"@arve.knudsen/peer-info@0.15.2","_nodeVersion":"12.6.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-z6/lfeEDCkXSs5T+7EcIp0/usr3gXX3HgEue8kNO5HW3GZIsaXJZ9tMuT76V5jH7MD/FfGSguS/t2tx5s7YM3A==","shasum":"2f154456ba2ff7fccb5636a21433ff52ef05e762","tarball":"https://registry.npmjs.org/@arve.knudsen/peer-info/-/peer-info-0.15.2.tgz","fileCount":7,"unpackedSize":18994,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHhHhCRA9TVsSAnZWagAA5p4P/0l/L7RXH0BuMaIwt1po\nfXRtEDGD4+rkzgqt5kbx/DOR+MBBCEVrOec8xI2CI5QohGCXWulcKQcrqRF1\nDJyPLsQMAWQCFQWQxuDZMLAIOmC9AcxZR8jUZYexxzDsn9y4JrtY+1Mc63X7\nTaxElMvIWwphFa7GPxum27xBmKWkLGHk5hUHaVEjPFW7HU7B6DlrATMk9F59\nkyi7UhycM4qlvZO+lRWug/2gkfxdr5Z/VgQ6Uur1zzppk1mNYgBB7tpB9qQm\nFq4mrPVs+bdlaGT7lL9KmmiN1un3RP1CutQN79bDVKKfv2RWzUbUPC6klVvh\nWbLe/V3QIzZ/iJWY0rnFbR6VVdDaFfaFLAFi/8CCIskt9lpL49Nl6kijXKkv\nW8SxuwEUj1osZ/zQYaB29VL6vtjXWDxEhruLnF++JC5aA+LmlYbCtDspiWkl\nRrh0/6zQsODybtaxLbvoM/pCdSLVi3r4scQGKi7yO5gTT5vNkrsRwvzoToG1\nhfI40MuLJZbcjI398neD73KSq202/2jOpV6jzZzy9MnX7LEQrwbeYCZAPvMO\n941hx2A4XJXzacOSW5svd4hjO3bB0VOslJYEFADAASKuwsITqoi8x9AJX9FP\nz6kbV+oN1v4HN+qkyc6DissRwksggGZS8J3VS9MWATThyGEGzYy4LXYCasT6\n4URN\r\n=UOMp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDO9h9hkJe1bpkF7aYhMiwZGFF70gwQCILPZOLz+JY44AIgTal47/r30wvaNjkif+LuNasZIrjaAQ6dMAU3hgZlR+c="}]},"maintainers":[{"name":"arve.knudsen","email":"arve.knudsen@gmail.com"}],"_npmUser":{"name":"arve.knudsen","email":"arve.knudsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/peer-info_0.15.2_1562251744900_0.29049005964181296"},"_hasShrinkwrap":false},"0.15.3":{"name":"@arve.knudsen/peer-info","version":"0.15.3","description":"IPFS Peer abstraction JavaScript implementation","leadMaintainer":"Arve Knudsen <arve.knudsen@gmail.com>","main":"src/index.js","scripts":{"lint":"aegir lint","build":"aegir build","test":"aegir test","test:node":"aegir test -t node","test:browser":"aegir test -t browser","release":"aegir release","release-minor":"aegir release --type minor","release-major":"aegir release --type major","coverage":"aegir coverage","coverage-publish":"aegir coverage --provider coveralls","size":"bundlesize -f dist/index.min.js -s 146kB"},"repository":{"type":"git","url":"git+https://github.com/aknuds1/js-peer-info.git"},"keywords":["IPFS"],"engines":{"node":">=10.0.0","npm":">=6.0.0"},"license":"MIT","bugs":{"url":"https://github.com/aknuds1/js-peer-info/issues"},"homepage":"https://github.com/aknuds1/js-peer-info","devDependencies":{"aegir":"^18.2.2","buffer-loader":"0.1.0","bundlesize":"~0.17.0","chai":"^4.2.0","dirty-chai":"^2.0.1"},"dependencies":{"mafmt":"^6.0.7","multiaddr":"^6.0.6","@arve.knudsen/peer-id":"~0.13.1","unique-by":"^1.0.0"},"contributors":[{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Orie Steele","email":"orie@ohs.io"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"Stephen Whitmore","email":"stephen.whitmore@gmail.com"},{"name":"Vasco Santos","email":"vasco.santos@moxy.studio"},{"name":"Zane Starr","email":"zcstarr@gmail.com"},{"name":"haad","email":"haad@headbanggames.com"},{"name":"npmcdn-to-unpkg-bot","email":"npmcdn-to-unpkg-bot@users.noreply.github.com"},{"name":"Łukasz Kurowski","email":"crackcomm@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"gitHead":"e946f150f1f6689bc220d100ec6a611389a5641f","_id":"@arve.knudsen/peer-info@0.15.3","_nodeVersion":"12.6.0","_npmVersion":"6.10.0","dist":{"integrity":"sha512-0d7qUFVzpFhhFMBPOGkf5mI/xFiXeibVm3uYYBp9+cZo6O3SMGdrTmVuLHuUTZ+SD2JmH3UuTC6MPS03Qge6rw==","shasum":"0af6b85e547b03169d6826b38c66da43cf394daf","tarball":"https://registry.npmjs.org/@arve.knudsen/peer-info/-/peer-info-0.15.3.tgz","fileCount":7,"unpackedSize":18994,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJzjhCRA9TVsSAnZWagAASTYP/3+rg+VlHr5iKmyQaMt1\ntIMz7qasf2X3jKCsdGGZ3UL3tYjVGf33I9Pb6qmL2X2isxpTxZmUi5sv2SXr\nLyApXQgHwSFx80s+BvnLjv5A4lzLAMF+6N7ZDP7Lhbds4xZCnEk8PX4W2rUP\nxRjC4ebs4GxRC0CKQR1KGOw/F5LwmnK+0P5DJ8IrdOKzcNPEtklD8Zde5H+1\n0+LO7mKAFraUE73FznUk1a4BWs0sKZPhH5VuaNj5ptkpg753iM33eMi3g/gl\n4sebUtvNoSYRxPRUe+phypIYQ84Zp7AKMN/g0WXdKnGirV9l/Xu06VLun9da\ntHO/XmFr1zQ1xAhp0Gxr8087tqiU0TYgl0gsL4GHXmEYnwddaYcP5VV8hBiA\nJPtneREO/glKL6tjmcxCFZSP8X5/mTDfi/8BUujNoB3FhgPjDFwxNOyRPE38\nl/Jl2MWfH1aHHYXvYU6En2K7jiEiWn2Fv5TwhLTYgtAYAcKSa56vZ1+EQMZ6\nqmtPiUXbpiLMyjVMIAkhkGvuiOtvLZ7tM2DTCpnkWsDOdLal+hi3FJOgiLsc\nRYPSEov2NKyTA3EpUraob5x8nLuhPEPlb76sYJsWzVJcaWohOlKWaNtNvmsN\n2yJ/ZazIkiwrlYT3S524Anw3yCQHHdLTEnovwseQN6ue59YGUaLvTsTev3AR\nx21d\r\n=fzTD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPgQcIxe+M98x3huRR8SFi0UWDEws+a/S5pZz5yo9tsgIhAK656O9qdUDudLXlhdSyLCO6LP5T0aOz1uv3XGLWH6eX"}]},"maintainers":[{"name":"arve.knudsen","email":"arve.knudsen@gmail.com"}],"_npmUser":{"name":"arve.knudsen","email":"arve.knudsen@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/peer-info_0.15.3_1562851552574_0.6830979486888018"},"_hasShrinkwrap":false}},"time":{"created":"2019-07-04T14:44:48.660Z","0.15.1":"2019-07-04T14:44:49.002Z","modified":"2022-04-04T15:41:18.113Z","0.15.2":"2019-07-04T14:49:05.007Z","0.15.3":"2019-07-11T13:25:52.668Z"},"maintainers":[{"name":"arve.knudsen","email":"arve.knudsen@gmail.com"}],"description":"IPFS Peer abstraction JavaScript implementation","homepage":"https://github.com/aknuds1/js-peer-info","keywords":["IPFS"],"repository":{"type":"git","url":"git+https://github.com/aknuds1/js-peer-info.git"},"contributors":[{"name":"Arnaud","email":"arnaud.valensi@gmail.com"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"David Dias","email":"mail@daviddias.me"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Hugo Dias","email":"hugomrdias@gmail.com"},{"name":"Orie Steele","email":"orie@ohs.io"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Sid Harder","email":"sideharder@gmail.com"},{"name":"Stephen Whitmore","email":"stephen.whitmore@gmail.com"},{"name":"Vasco Santos","email":"vasco.santos@moxy.studio"},{"name":"Zane Starr","email":"zcstarr@gmail.com"},{"name":"haad","email":"haad@headbanggames.com"},{"name":"npmcdn-to-unpkg-bot","email":"npmcdn-to-unpkg-bot@users.noreply.github.com"},{"name":"Łukasz Kurowski","email":"crackcomm@users.noreply.github.com"},{"name":"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ","email":"victorbjelkholm@gmail.com"}],"bugs":{"url":"https://github.com/aknuds1/js-peer-info/issues"},"license":"MIT","readme":"# js-peer-info\n\n[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://protocol.ai)\n[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/)\n[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p)\n[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io)\n[![](https://img.shields.io/codecov/c/github/libp2p/js-peer-info.svg?style=flat-square)](https://codecov.io/gh/libp2p/js-peer-info)\n[![](https://img.shields.io/travis/libp2p/js-peer-info.svg?style=flat-square)](https://travis-ci.com/libp2p/js-peer-info)\n[![Dependency Status](https://david-dm.org/libp2p/js-peer-info.svg?style=flat-square)](https://david-dm.org/libp2p/js-peer-info)\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/feross/standard)\n![](https://img.shields.io/badge/npm-%3E%3D3.0.0-orange.svg?style=flat-square)\n![](https://img.shields.io/badge/Node.js-%3E%3D6.0.0-orange.svg?style=flat-square)\n\n## Lead Maintainer\n\n[Pedro Teixeira](https://github.com/pgte)\n\n## Table of Contents\n\n- [Installation](#installation)\n  - [npm](#npm)\n  - [Node.JS, Browserify, Webpack](#nodejs-browserify-webpack)\n  - [Browser: `<script>` Tag](#browser-script-tag)\n- [Usage](#usage)\n- [API](#api)\n  - [`PeerInfo.create([id, ] callback)`](#peerinfocreateid-callback)\n  - [`new PeerInfo(id)`](#new-peerinfoid)\n  - [`.connect(ma)`](#connectma)\n  - [`.disconnect()`](#connectma)\n  - [`.isConnected()`](#connectma)\n  - [`.multiaddrs`](#multiaddrs)\n  - [`.multiaddrs.add(addr)`](#multiaddraddaddr)\n  - [`.multiaddrs.addSafe(addr)`](#multiaddraddsafeaddr)\n  - [`.multiaddrs.forEach(fn)`](#multiaddrforeachfn)\n  - [`.multiaddrs.size`](#multiaddrsize)\n  - [`.multiaddrs.has()`](#multiaddrhas)\n  - [`.multiaddrs.delete(addr)`](#multiaddrdeleteaddr)\n  - [`.multiaddrs.toArray()`](#multiaddrtoarray)\n  - [`.multiaddrs.replace(existing, fresh)`](#multiaddrreplaceexisting-fresh)\n  - [`.multiaddrs.distinct()`](#distinct)\n- [Contribute](#contribute)\n- [License](#license)\n\n## Installation\n\n### npm\n\n```sh\n> npm i peer-info\n```\n\n### Node.JS, Browserify, Webpack\n\n```js\nconst PeerInfo = require('peer-info')\n```\n\n### Browser: `<script>` Tag\n\nLoading this module through a script tag will make the `PeerInfo` obj available in the global namespace.\n\n```html\n<script src=\"https://unpkg.com/peer-info/dist/index.min.js\"></script>\n<!-- OR -->\n<script src=\"https://unpkg.com/peer-info/dist/index.js\"></script>\n```\n\n## Usage\n\n```js\nconst PeerInfo = require('peer-info')\nconst peer = new PeerInfo()\n\n// TCP port 5001\npeer.multiaddrs.add('/ip4/1.2.3.4/tcp/5001')\n\n// UDP port 8001\npeer.multiaddrs.add('/ip4/1.2.3.4/udp/8001')\n\n// mic/speaker soundwaves using frequencies 697 and 1209\npeer.multiaddrs.add('/sonic/bfsk/697/1209')\n```\n\n## API\n\n```js\nconst PeerInfo = require('peer-info')\n```\n\n### `PeerInfo.create([id, ] callback)`\n\n- `id` optional - can be a PeerId or a JSON object(will be parsed with https://github.com/libp2p/js-peer-id#createfromjsonobj) \n- `callback: Function` with signature `function (err, peerInfo) {}`\n\nCreates a new PeerInfo instance and if no `id` is passed it\ngenerates a new underlying [PeerID](https://github.com/libp2p/js-peer-id)\nfor it.\n\n### `new PeerInfo(id)`\n\n- `id: PeerId` - instance of PeerId (optional)\n\nCreates a new PeerInfo instance from an existing PeerId.\n\n### `protocols`\n\nA list of protocols that `peer` supports.\n\n### `.protocols.add(protocol)`\n\nAdds a protocol that `peer` can support. `protocol` is a string.\n\n### `.protocols.delete(protocol)`\n\nRemoves a protocol that `peer` no longer supports. `protocol` is a string.\n\n### `multiaddrs`\n\nA list of multiaddresses instances that `peer` can be reached at.\n\n### `.multiaddrs.add(addr)`\n\n- `addr: Multiaddr`\n\nAdds a new multiaddress that `peer` can be reached at. `addr` is an instance of\na [multiaddr](https://github.com/multiformats/js-multiaddr).\n\n### `.multiaddrs.addSafe(addr)`\n\n- `addr: Multiaddr`\n\nThe `addSafe` call, in comparison to `add`, will only add the multiaddr to\n`multiaddrs` if the same multiaddr tries to be added twice.\n\nThis is a simple mechanism to prevent `multiaddrs` from becoming bloated with\nunusable addresses, which happens when we exchange observed multiaddrs with\npeers which will not provide a useful multiaddr to be shared to the rest of the\nnetwork (e.g. a multiaddr referring to a peer inside a LAN being shared to the\noutside world).\n\n### `.multiaddrs.delete(addr)`\n\n- `addr: Multiaddr`\n\nRemoves a multiaddress instance `addr` from `peer`.\n\n### `.multiaddrs.replace(existing, fresh)`\n\n- `existing: Multiaddr`\n- `fresh: Multiaddr`\n\nRemoves the array of multiaddresses `existing` from `peer`, and adds the array\nof multiaddresses `fresh`.\n\n## Contribute\n\nPRs accepted.\n\nSmall note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.\n\n## License\n\n[MIT © David Dias](LICENSE)\n","readmeFilename":"README.md"}