{"_id":"@akiroz/pubsub-tunnel","_rev":"11-fabfecbc5e03246c5faf935a285df317","name":"@akiroz/pubsub-tunnel","dist-tags":{"latest":"0.0.11"},"versions":{"0.0.1":{"name":"@akiroz/pubsub-tunnel","version":"0.0.1","scripts":{"test":"ts-mocha test/index.spec.ts"},"dependencies":{"ip-to-int":"^0.3.1","lru-cache":"^5.1.1","pcap":"^3.1.0"},"devDependencies":{"@types/lru-cache":"^5.1.0","@types/mocha":"^7.0.2","@types/node":"^14.0.1","@types/server":"^1.0.2","axios":"^0.19.2","husky":"^4.2.5","mocha":"^7.1.2","net-ping":"^1.2.3","prettier":"^2.0.5","pretty-quick":"^2.0.1","server":"^1.0.27","ts-mocha":"^7.0.0","ts-node":"^8.10.1","typescript":"^3.8.3"},"prettier":{"tabWidth":4,"trailingComma":"es5","printWidth":120},"husky":{"hooks":{"pre-commit":"tsc --noEmit && pretty-quick --staged"}},"description":"A simple network tunning mechanism for Pub/Sub transports","_id":"@akiroz/pubsub-tunnel@0.0.1","dist":{"shasum":"a3ce53b6c3b28c9661bf0690c977190004ead409","integrity":"sha512-itrubickAA2jXg5DvjY45DAw7xlY4j3Mp1LlZ/2SgByd2i46stAHKJYKjptoIsmSnAhSv/8M3RT84zAXtsgVMw==","tarball":"https://registry.npmjs.org/@akiroz/pubsub-tunnel/-/pubsub-tunnel-0.0.1.tgz","fileCount":8,"unpackedSize":5868,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewgY3CRA9TVsSAnZWagAArMYP/iUjEin4N246pLfEJmeK\nTtMIcnzBszMn+ZTRbXJyHOQR5/PTPVWV0i81zzPmALExD40pji4dhYjDykoM\nh1XHwnZbsUhN+tyBra6/76AnpA4sW+dJ/ebfTroi6FRpBh38n5gJSG9u03/D\nY+tBKaaC3vNuToZgkQaEgHPnqkHuR6k57Q4ZDhC/h8DFU14RMFc8PyHVeg5Y\npm+6ab+ydtzPF4uM/x8800kn6JL12lS97zLqN7ZImMslXSM+jxvTLmOea0Ab\nFJyfPYgvoyTnFdiX5qr6fUBbz0qajJza3QIrmiWSGa7lLheGbAz61k4iTNQd\nKmE4rfCz5BvCAzm3pk9I1Cfg/k+dZ8J8TlZjQtGPRzQ11Sy2nK0dwbfl94fC\nwjKu8koAmeqrjpBwcf7kpQR7UFHg7CM0Ao6Ji18sUsPG2Wk3BZE2uCIOr3Au\nm78Kz5x2/F1hNrAc4qCdzsIIeYM+JSju5YBnOISBXCzvlYR49/H+LW1/XbaS\ncmJxhlNvyf0zwzqayi+DKciSQFQbX/M3RBGrnOSZ0TwJjqt32dNLPuACoqrc\nStjK4g+PhJilJwDCSRlxsi3ea55+4FAV1yLqJ/kMkTolM8Ux1F96CchPuzKj\nzmJoOOdPKwO7CWPcg15ELUgLOPjezxjPTjoy+sEdRG2e6u0VAX9CRVdHcS7l\nrGYQ\r\n=Mw4q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFnmPQ+GPcyiNSl4eLzq+tGehIYVmOLwl6v6J9+1dUXOAiARgk8Lsjel5KhZSRLCOoJhbXUUvD+izOsaTXndBDFgDQ=="}]},"maintainers":[{"name":"akiroz","email":"akiroz.vectis@gmail.com"}],"_npmUser":{"name":"akiroz","email":"akiroz.vectis@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-tunnel_0.0.1_1589773879148_0.20521927164491527"},"_hasShrinkwrap":false},"0.0.2":{"name":"@akiroz/pubsub-tunnel","version":"0.0.2","scripts":{"test":"ts-mocha test/index.spec.ts","prepublish":"tsc"},"dependencies":{"ip-to-int":"^0.3.1","lru-cache":"^5.1.1","pcap":"^3.1.0"},"devDependencies":{"@types/lru-cache":"^5.1.0","@types/mocha":"^7.0.2","@types/node":"^14.0.1","@types/server":"^1.0.2","axios":"^0.19.2","husky":"^4.2.5","mocha":"^7.1.2","net-ping":"^1.2.3","prettier":"^2.0.5","pretty-quick":"^2.0.1","server":"^1.0.27","ts-mocha":"^7.0.0","ts-node":"^8.10.1","typescript":"^3.8.3"},"prettier":{"tabWidth":4,"trailingComma":"es5","printWidth":120},"husky":{"hooks":{"pre-commit":"tsc --noEmit && pretty-quick --staged"}},"description":"![test](https://github.com/akiroz/pubsub-tunnel/workflows/test/badge.svg)","_id":"@akiroz/pubsub-tunnel@0.0.2","dist":{"shasum":"50fb260f673fbbcac2806c97596a566ff975bc1a","integrity":"sha512-XQdzA56MIrvHxwyCSSBgbgE6gwxzVV5Zr4cBlbrMYd5Nh6WjfHmGgihYr/hrM1KNvPcylulVnunGAput8Yu8Hw==","tarball":"https://registry.npmjs.org/@akiroz/pubsub-tunnel/-/pubsub-tunnel-0.0.2.tgz","fileCount":14,"unpackedSize":41144,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewh0oCRA9TVsSAnZWagAAZigP/Rgp3rUONe5px5m8AI4m\nCeHMGfKy4gNMu4in7qFwpq80O3NTr7IKaYv24rlqRq8NnmbWKZmdnqrJnrGJ\nANOak13/MUwyRAFkEaPLDNzCirk0B+lu1JPM73Uc1gXNFBo4QaQiegVcD4OY\nqIivWxg12LgGJRY/oDr1VtbTCZv1XT5PgjqnOArpUAg1biyo/xPFuUDDxSSx\nYxVpHihcBlQl2al+GiCxAExXDBjdQWzhFCuJqQ4B67eAzTKjTMZvUnCUNw9s\n59ML32TXoKZyzrqZ8PR2E6I/dxmbJQhdYd/mPCbk8WfIzHo8TlATjF0ec53s\nLgjmsLanCOsCQBszXzIOqWV4xpkZb/eByod8CI+XZDzAnEhbkJFLR5LCNWQO\nCBpj2E3zQlVxf72O0c/EL5noVsXKf3HJ5D5SaU9gjUWF3zZS3DdK5xstX8nd\nsbVq9d9FS14Y9PQckImriG4bAv9K8xWxM2aXdkZPEshpGxYiN+cVSBb5WWNT\nMiipA9SE+PosCvmJUOQ2D30I4FfzBIVzTjpNF3zsBetlxHGou224COWxrLwm\ng/dQImt9foXlUs+uRgdN4m5Jkl+Boja4vQyBAoEp8nF35MBsnKBLyszDbHO2\nRiUf5Zk/uZxWatpfkFgsNGYE/uf0tZtrnA4/QhzUrnn6CqhZ4RrL4Gt2dySQ\nvs3z\r\n=vA2L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuX23lpufsP+R+HQ1VKAbzf+fNDnzxkVen2+ilWLLHlAIhAJ/udYU0G57tDf3IDYlJLXv1cLlvpnksRr6TY++/M8o6"}]},"maintainers":[{"name":"akiroz","email":"akiroz.vectis@gmail.com"}],"_npmUser":{"name":"akiroz","email":"akiroz.vectis@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-tunnel_0.0.2_1589779751717_0.47606275025050304"},"_hasShrinkwrap":false},"0.0.3":{"name":"@akiroz/pubsub-tunnel","version":"0.0.3","main":"dist/main.js","types":"dist/main.d.ts","scripts":{"test":"ts-mocha test/index.spec.ts","prepublish":"tsc"},"dependencies":{"ip-to-int":"^0.3.1","lru-cache":"^5.1.1","pcap":"^3.1.0"},"devDependencies":{"@types/lru-cache":"^5.1.0","@types/mocha":"^7.0.2","@types/node":"^14.0.1","@types/server":"^1.0.2","axios":"^0.19.2","husky":"^4.2.5","mocha":"^7.1.2","net-ping":"^1.2.3","prettier":"^2.0.5","pretty-quick":"^2.0.1","server":"^1.0.27","ts-mocha":"^7.0.0","ts-node":"^8.10.1","typescript":"^3.8.3"},"prettier":{"tabWidth":4,"trailingComma":"es5","printWidth":120},"husky":{"hooks":{"pre-commit":"tsc --noEmit && pretty-quick --staged"}},"description":"![test](https://github.com/akiroz/pubsub-tunnel/workflows/test/badge.svg)","_id":"@akiroz/pubsub-tunnel@0.0.3","dist":{"shasum":"71ed117fc4854860f1475e208e968b64e1e7048c","integrity":"sha512-osUB9AiZZS365LILMABduLc9r4yktLmQdmzqsRV1/ITVQxHKdxGiDgU/rEcLMZPnBQNmz/RS883mqcDu+L9VYA==","tarball":"https://registry.npmjs.org/@akiroz/pubsub-tunnel/-/pubsub-tunnel-0.0.3.tgz","fileCount":14,"unpackedSize":41203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewh3iCRA9TVsSAnZWagAAeMYQAIqwHApQdOu70XKEyFLb\n0mImIgdcLg7ngzKxosuXPOrdQcDLwrW2JEH4X4KRXWSJ+BaR8rFfEPY2Je8A\nbI1BEhrIPI3Fx2zAkIg0qqkFQQKfQ9aTocRfX/eCE6n2Y27YV7UCUgH0yglh\nflXeWwmdPfpbUpYQxYqGNWq8QbqjQwwaXKYUulWqVpO5bvyRH4LXg4fTI5vI\nHcILHmHogG1k/KgBBwnXwGgKgh3hMUq86myPtv2+jo+Xb5b5ZF/kuC5WVO1P\nPDC1IxKIgQ+wACoBr0FX4L4VCloeTKrCQUuaReSkoEYrjwoP/j9/nti4v6/K\n2rHuTYk1fnVhJhuK0fVACnyH+QeuHGY7cV+wa5DhmfwIRtbeVTPUs0SkSvdA\nNOajot6NWyzLH0k76o14jp3bbAexOYpteMkLss0oXryuOqD4FEYKA8E4KimX\nJuz1M5PEmz3PXDGATLSgXEHePnl2lMFzlJhcXXyyxNLvyWqHetBl3U8iUXMK\n2XhATc8uLcmKR/zX7OuEu/n661cOcMMM72MXX3qQt+sCB550p75zMaFuqAYb\nCA9Qv9qkJ0bjABizqnYuiqJtWaFwvsTPXWZOUn5k24aQx+MjotUD5GtCtav7\nVfdEpnhzaL+esrE69mm5bvwllbWeKUmNQWy5qHsoowXs+3c0+FOLaV8kdR4I\nZKJG\r\n=tc0B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAlbxgQKDmHtK9GC0FegD5LjKVNG2YRfHcLdFQruBfIaAiEAsxOtF8JXMjgEhNrgZOeAs801pKkS86e/AJ7v5KmGxBk="}]},"maintainers":[{"name":"akiroz","email":"akiroz.vectis@gmail.com"}],"_npmUser":{"name":"akiroz","email":"akiroz.vectis@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-tunnel_0.0.3_1589779938128_0.6277510505701578"},"_hasShrinkwrap":false},"0.0.4":{"name":"@akiroz/pubsub-tunnel","version":"0.0.4","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"ts-mocha test/index.spec.ts","prepublish":"tsc"},"dependencies":{"ip-to-int":"^0.3.1","lru-cache":"^5.1.1","pcap":"^3.1.0"},"devDependencies":{"@types/lru-cache":"^5.1.0","@types/mocha":"^7.0.2","@types/node":"^14.0.1","@types/server":"^1.0.2","axios":"^0.19.2","husky":"^4.2.5","mocha":"^7.1.2","net-ping":"^1.2.3","prettier":"^2.0.5","pretty-quick":"^2.0.1","server":"^1.0.27","ts-mocha":"^7.0.0","ts-node":"^8.10.1","typescript":"^3.8.3"},"prettier":{"tabWidth":4,"trailingComma":"es5","printWidth":120},"husky":{"hooks":{"pre-commit":"tsc --noEmit && pretty-quick --staged"}},"description":"![test](https://github.com/akiroz/pubsub-tunnel/workflows/test/badge.svg)","_id":"@akiroz/pubsub-tunnel@0.0.4","dist":{"shasum":"316e413c4dfc8feceb1fe11b5a165a36c2117e9b","integrity":"sha512-SDA/lS2/0tIRnMaTOMPQuJlsqANszS+PD85KeGeKkZsnK23D6rwwnNN9HfT0VyhWymF85JzLqBGTIiuxvksIHw==","tarball":"https://registry.npmjs.org/@akiroz/pubsub-tunnel/-/pubsub-tunnel-0.0.4.tgz","fileCount":14,"unpackedSize":41205,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewh7eCRA9TVsSAnZWagAAJnsP/17McenDRXllW6YlhHkL\nT7rVz61XuABrIvY93tddEduineASPRq2Qw/EX2rfzJD30rCVPvja/v0mkGVS\n6V0++1gY7EiwyG8qy4gaX3U07GSLxHjJfgUajry9FMVTUg++aaw9WARg6zze\nVNWBo3j+a2WJoSw/fUdC6KS03o/Ia5V15K16HDQyPkalORmd62zm2LpPcbEn\nZ3lcPXrey68sni0P5Pf4EMi6Z2kGLxtentzBqA0AGhVaGrwk/Pk4cWuIaEdI\nbrB49FdIEjZBa4B+oGmLYO1hvdpOmctVJR2uSXER5H3U3znx2oyrWdndrvwR\nttv+LJknhyq0MtzzNjKsKLV8si2lDR7kzBtV/QuV271qFk2dJ5FgLvx5uhW/\nw15xEwi3LvtgKhJU5pEXQt8a2HAXofxyf3KrX12CGm0NM2qqAFwTn96xA9T9\nr5Iruw6ikSQJvyJzrpfSWHC4STPwtU3+C01hNtGI1IR8ZPh6H6wMxIkAxHkj\n5l+leZ+Z6QUPvVQejl7rqBQUdQ4NFCsudV3oYxuJJH2BFS1bn4OYkDSvb/wd\nhiRq3nO3aVLOqMWwkWwj3ZbaINgSRWlS+BBTaPXoYYG6SpEaJj0Yl3QUtBGr\nGnU33kez+zBgFWJKPbwBX7UWTOXMvccqCQwv4IeYE87+1gjzWZDURaJPtX+o\nsAAg\r\n=RD3V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAsmea09+bSaUxTfqnhoBeJAUYC9LWufzd3fgN6quTulAiEA2IScOheg9j68zEPifG1Xeoww/eE4Um+fkGzcfoZ/AQM="}]},"maintainers":[{"name":"akiroz","email":"akiroz.vectis@gmail.com"}],"_npmUser":{"name":"akiroz","email":"akiroz.vectis@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-tunnel_0.0.4_1589780190511_0.3688069059936965"},"_hasShrinkwrap":false},"0.0.5":{"name":"@akiroz/pubsub-tunnel","version":"0.0.5","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"ts-mocha test/index.spec.ts","prepublish":"tsc"},"dependencies":{"ip-to-int":"^0.3.1","lru-cache":"^5.1.1","pcap":"^3.1.0"},"devDependencies":{"@types/lru-cache":"^5.1.0","@types/mocha":"^7.0.2","@types/node":"^14.0.1","@types/server":"^1.0.2","axios":"^0.19.2","husky":"^4.2.5","mocha":"^7.1.2","net-ping":"^1.2.3","prettier":"^2.0.5","pretty-quick":"^2.0.1","server":"^1.0.27","ts-mocha":"^7.0.0","ts-node":"^8.10.1","typescript":"^3.8.3"},"prettier":{"tabWidth":4,"trailingComma":"es5","printWidth":120},"husky":{"hooks":{"pre-commit":"tsc --noEmit && pretty-quick --staged"}},"description":"![test](https://github.com/akiroz/pubsub-tunnel/workflows/test/badge.svg)","_id":"@akiroz/pubsub-tunnel@0.0.5","dist":{"shasum":"fb3f1ed0b1d49d3e3e64b01979ba582da45dc4ab","integrity":"sha512-Z6I1qM57hbbXz+kBY++L0hMqcFGXdYhNPIEARYzzNkJ9TKSWzyxty25b0GpTfOdlx2XJ92f9uJAhWUa9fBpgJA==","tarball":"https://registry.npmjs.org/@akiroz/pubsub-tunnel/-/pubsub-tunnel-0.0.5.tgz","fileCount":14,"unpackedSize":46207,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexLpUCRA9TVsSAnZWagAAupUQAJe2hR8FwNgEEB+5FBZz\nzC2Mirs2jYLX2TK+nG7xr3RL7+uTd/pCEMTU/9CyU/Bb4cTz/GGR4DaZwsMe\nzGK98fId6vmvUgLnLl0C4nx+0hx4Qzkvnvh+M6gIyRmhRpowcZBzJ5Cf1eQj\nxh4fNnh0DuVCQk4U69Qrjz4/WpBUa5Uc0zg7UBImSOyif2JxJT5g3bfVt4WQ\nIGutsIya67CuOQ1PorYJm5Mf1JCsmETHJOs4sULl01u5IlNaOmWfyAezNzPY\nM6zQXXq6P3x/BDP+RFMMxRbsgr/rlR5HxelB+x2Ewml1O7yqzBDDsMdnb0jG\ngolmQtV1llMkNscjq1SsE81aLfpXFYaZiSl0q6hucDlGMfY8eLGx+waCn79Q\n2ENvTHFfhttZRUs+UwqiB2LyCYsnPQ2vE5cxm5/swKtHiKLYJchqSqHmvYyA\nDDlaZBm1eBFUXflfPK7tDc0UhsnCCIAW2g8NkMzF4IkyBwuddci45EgAoMAy\neLQx16rlY/+e9VVFYBQvqCuN85b8bl153Ns9vGxJ6Wo/OOps9gg9501Qvdg4\n6qD/xVggcTxv9Y/pC6AEwpzawMlp6K5j50HhYQhsd7EHx390WgrC6N3T6pHx\nVkcwRKp4umRGxyJcGw6Wu3XEPh5XPJOrwSd/PvvMJ9sinLv27jhlozYltdks\nstaj\r\n=vhJ4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTDfgnQR3CnQ1rUuDqXMYzQgq+emV9KFiPL80nuZptrgIgBbLvJqlZ716dyFlZYbaVwHBBQTUvoPJc8mZvsMtorKc="}]},"maintainers":[{"name":"akiroz","email":"akiroz.vectis@gmail.com"}],"_npmUser":{"name":"akiroz","email":"akiroz.vectis@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-tunnel_0.0.5_1589951059976_0.26875461476411644"},"_hasShrinkwrap":false},"0.0.6":{"name":"@akiroz/pubsub-tunnel","version":"0.0.6","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"ts-mocha test/index.spec.ts","prepublish":"tsc"},"dependencies":{"ip-to-int":"^0.3.1","lru-cache":"^5.1.1","pcap":"^3.1.0"},"devDependencies":{"@types/lru-cache":"^5.1.0","@types/mocha":"^7.0.2","@types/node":"^14.0.1","@types/server":"^1.0.2","axios":"^0.19.2","husky":"^4.2.5","mocha":"^7.1.2","net-ping":"^1.2.3","prettier":"^2.0.5","pretty-quick":"^2.0.1","server":"^1.0.27","ts-mocha":"^7.0.0","ts-node":"^8.10.1","typescript":"^3.8.3"},"prettier":{"tabWidth":4,"trailingComma":"es5","printWidth":120},"husky":{"hooks":{"pre-commit":"tsc --noEmit && pretty-quick --staged"}},"description":"![test](https://github.com/akiroz/pubsub-tunnel/workflows/test/badge.svg)","_id":"@akiroz/pubsub-tunnel@0.0.6","dist":{"shasum":"279df4b0df7616b4a3b59f57c5dad962ea5e74a5","integrity":"sha512-HQXvzoBASFpWGJt50FAngf1j5fl9QIkgDuWqr9xQtoIW72HKmjQOv3uCon5CtLFdgGxvhTaQJje1C9KzC6r9yA==","tarball":"https://registry.npmjs.org/@akiroz/pubsub-tunnel/-/pubsub-tunnel-0.0.6.tgz","fileCount":14,"unpackedSize":42150,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexOuzCRA9TVsSAnZWagAAyFoQAILdiVRgI+8yDx1kbwQM\noCvHVHu8pe/PfB3TjjFSY1DBaeNBhC3MA10YrdBR3zyhrBhwv0tR8uL9dVye\nesS9apTv0AbzC9Vd/jsvBSHZlAEy03NsonKTaKgjkGr5/OF16cTO+6DRjKq2\nOU+4Lj8isHrKjkYbrWhUYJ5fncMYQYhPwbiZG3lR/H6LirRYwzOG8AGBaUKf\n/hnJ79SLbHEkuy0XXo5jIuHW/4AQjW0WM05MfY3QSSt7T8DeBe0UCK0JCqXG\nKEerhtyxT/7BhAb5Al33FxI8vSwXo6uqHveI6IFlnH4X0tzvhxk+mSeNQPAW\ntXK0hyqdzIqKFM6DbThY1y7DVecCdGn5rZzroLzgKg3GNe/BiJADHFMF/NFp\n/EfFEedLK1JZ7EBV1M9b5W5SztaQhi5HYpFzudqu/b3RefjLJHNKX+urYv1Y\n3GXALK31eeHry61DklF2opnPEQTPU1LdH+K/BXBIvtnNhyzkQe2HPRglz8xb\nMzkovW4jE95R1HUNzwbh+jnKzdNNdhxXY1K9C71Xk5PxYpUS7ZgasokYIrMi\nlMAf0PLb06WoZqN+VwQfy++zrdEncrm1yVjTfZYi4eU/vBcFHAN1Madb8WLv\nLVDU0m63178uT5BKsQ/R2Axdq233dATnVx1rfEzTP7CRK91jVsg1c3mnHFOT\n34CI\r\n=zN1D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEVQ2Xa3PQpN9EWXZgkEzzwIgB/1dAv9Y7qQUp5alH1bAiEAxrJ7lydvpP/+NVgZQxw47x3d0f31QRwdM1mDP4MmorU="}]},"maintainers":[{"name":"akiroz","email":"akiroz.vectis@gmail.com"}],"_npmUser":{"name":"akiroz","email":"akiroz.vectis@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-tunnel_0.0.6_1589963699121_0.085997039472677"},"_hasShrinkwrap":false},"0.0.7":{"name":"@akiroz/pubsub-tunnel","version":"0.0.7","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"ts-mocha test/index.spec.ts","prepublish":"tsc"},"devDependencies":{"@types/lru-cache":"^5.1.0","@types/mocha":"^7.0.2","@types/node":"^14.0.1","@types/server":"^1.0.2","axios":"^0.19.2","husky":"^4.2.5","mocha":"^7.1.2","net-ping":"^1.2.3","prettier":"^2.0.5","pretty-quick":"^2.0.1","server":"^1.0.27","ts-mocha":"^7.0.0","ts-node":"^8.10.1"},"dependencies":{"lru-cache":"^5.1.1","node-cidr":"^1.0.0","typescript":"^3.9.3"},"optionalDependencies":{"ioctl-napi":"^0.3.0","pcap":"^3.1.0"},"prettier":{"tabWidth":4,"trailingComma":"es5","printWidth":120},"husky":{"hooks":{"pre-commit":"tsc --noEmit && pretty-quick --staged"}},"description":"![test](https://github.com/akiroz/pubsub-tunnel/workflows/test/badge.svg)","_id":"@akiroz/pubsub-tunnel@0.0.7","dist":{"shasum":"ad30f3749e330d9a55b792f257a443eb4de263f3","integrity":"sha512-Ugc1VtfWZakH4/QAHWBxNuthxxOsDvouSe1IGGagFBNSt4/nhPnk5u6qbhil1FKLBQ0AIcGAuX8U+AbZUkLh1Q==","tarball":"https://registry.npmjs.org/@akiroz/pubsub-tunnel/-/pubsub-tunnel-0.0.7.tgz","fileCount":15,"unpackedSize":58077,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJey2uHCRA9TVsSAnZWagAAfskP/A5btQjsyYDklvFpiv1c\n5GKrFWlwO2Thj7k0wJV+sTjcSKfx5J4SQIzIxAP1Ny7xFO9nXyGKxsMmWSjB\n27E6txPD3lrhiaH5etNkhEwR08vDl9kCeFUNjg2WEv1fqE1tH9va03geLALa\nLxVZ3Q1kf8A7nH9H6gp+yr+z44O5+ryiu9jo6FUEGzUfej0C/p5NI/IITFpH\n44K67teYlUmQVKP6NWdImwSTwocfMtWtoVCOkkYjEn4Gtv332HD++O1j+JV/\ndOZEM6nD5zueQ9/pAy3Q0a/qLCtSHhJfx3oHTiZlzjyyChcwxwTRx/gOKm3m\nJJh8+oyHLKjzsaF8GkX0ezjgc1w+69HctJfR99OxmIlC+i5cx/6NXjYOBKzK\nYc07em8hfCL8qfgl80yXcPr+bXVNcPpF2tlr13tTIfs0GU9r0xyTjUvGYBxd\nCuEPBFHY7G/FU1ThStDLEPxBujlrtRx5Kv31JEwj6wAbUPMqtD+kgk6hlTxl\nHSilTfcmFHNTAcMNFCZq390xQU87bMHGNv6GLhJUazksdJ7QEbmygDEikChs\noW+dcrrJ0R51YwADE49y2n8eRtKfGxZlIIab9cNdaTJHM+902MRqMvrFD5wp\nq2t32So+ylcSUFgShN9pqTD5hxLCbw6oU8je/w7Pzc3qAPC+WX8C8RfmeA1I\n08Vb\r\n=BXX9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDE+8gRzhyBeKf3LU49WXrn8mAAiWQWkOd11ajbB12chAIhAPyvtN9gyXEZqziPpBzSD/Hl+eP5xjv3Gr2Hv84KaHjE"}]},"maintainers":[{"name":"akiroz","email":"akiroz.vectis@gmail.com"}],"_npmUser":{"name":"akiroz","email":"akiroz.vectis@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-tunnel_0.0.7_1590389639342_0.8718900166274475"},"_hasShrinkwrap":false},"0.0.8":{"name":"@akiroz/pubsub-tunnel","version":"0.0.8","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"ts-mocha test/index.spec.ts","prepublish":"tsc"},"devDependencies":{"@types/lru-cache":"^5.1.0","@types/mocha":"^7.0.2","@types/node":"^14.0.1","@types/server":"^1.0.2","axios":"^0.19.2","husky":"^4.2.5","mocha":"^7.1.2","net-ping":"^1.2.3","prettier":"^2.0.5","pretty-quick":"^2.0.1","server":"^1.0.27","ts-mocha":"^7.0.0","ts-node":"^8.10.1"},"dependencies":{"lru-cache":"^5.1.1","node-cidr":"^1.0.0","typescript":"^3.9.3"},"optionalDependencies":{"ioctl-napi":"^0.3.0","pcap":"^3.1.0"},"prettier":{"tabWidth":4,"trailingComma":"es5","printWidth":120},"husky":{"hooks":{"pre-commit":"tsc --noEmit && pretty-quick --staged"}},"description":"![test](https://github.com/akiroz/pubsub-tunnel/workflows/test/badge.svg)","_id":"@akiroz/pubsub-tunnel@0.0.8","dist":{"shasum":"90dc43514ef639ccfd22773eee6c4ccbb484cc69","integrity":"sha512-U8Q1AJdMDAvaXmWzjFVEChG/wJM1EK6S2wv3XNTuGwh2FUTylL6SmIArAZCUV1SCwX6RqWhQJJrLOZtJyG/ipA==","tarball":"https://registry.npmjs.org/@akiroz/pubsub-tunnel/-/pubsub-tunnel-0.0.8.tgz","fileCount":15,"unpackedSize":58075,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJey5ynCRA9TVsSAnZWagAAig4P/RWdU5dTGj9XvsmAChUd\nzM5Vpbyy3En8AAFHMCYyyxiZh8d7EJUPeLHAL/iR8K0DQYjDOcPDDGgpJ41v\nLNX/uQRVImXosJ2WiV+wDz/8NIPQRBaBLQtidUDEXMZO8KPikboFCRd4F9SR\nZAi60MtR3qFrS/9QehJjWxJAxDQbhOgjlI64iSwhE+g+d+QERsW6SJ4lzewB\nIGPwR68KCgGihNjFapWfA9bL/ZoCXfLj7GolvGLKX/bT/sC1cf94gfTUNMW0\ndPzv3fH7kVvqf4eQcI5N4aPIS/SrpoVX5EPX4XtPkvWv4tFY19KObDS0Yh3j\nTW4gC3PG7JI87um6xZAQHhcp8SpEq81/pWNb/eBYZkS6cUe+K7ETst5YseLY\noJZuDmKpCvYlfX79ju1l84534HthZehwyD2IewVy94ozc96GQKFVnnR9G4Gn\nLV48KECHMXzReA3w0J2yDS9MzV+/I0RT4JC5C9UqqL4n4xpzmUUDZuj0FRFE\n3LC5ynLqvvry1cNy7gTgVrbZimCCNSK4s0JGZcEzzZ0vCBG0LRNPYBCRKNeS\nrEVDaVqN2lsqqCFzuK2I6OTkAElhFDq4/rSoO323SeQxN5o+laq9IM/zr6SK\nssc+U7tWZU8mCfwvGhH+Db0Zw1xdx9ymPepf2UcY40KLrmukcCN9MLEtaM/M\njXtG\r\n=/vnG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGye13jfdCSm2pdIrNCaSUeUJu26H0+4qow5XnrD7e+CAiEAkpx0l7wGQ7zmJ0NVMLJSF/a2l3TKaxh26WGPenuExpo="}]},"maintainers":[{"name":"akiroz","email":"akiroz.vectis@gmail.com"}],"_npmUser":{"name":"akiroz","email":"akiroz.vectis@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-tunnel_0.0.8_1590402215017_0.1445850885734532"},"_hasShrinkwrap":false},"0.0.9":{"name":"@akiroz/pubsub-tunnel","version":"0.0.9","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"ts-mocha test/index.spec.ts","prepublish":"tsc"},"devDependencies":{"@types/lru-cache":"^5.1.0","@types/mocha":"^7.0.2","@types/node":"^14.0.1","@types/server":"^1.0.2","axios":"^0.19.2","husky":"^4.2.5","mocha":"^7.1.2","net-ping":"^1.2.3","prettier":"^2.0.5","pretty-quick":"^2.0.1","server":"^1.0.27","ts-mocha":"^7.0.0","ts-node":"^8.10.1"},"dependencies":{"lru-cache":"^5.1.1","node-cidr":"^1.0.0","typescript":"^3.9.3"},"optionalDependencies":{"ioctl-napi":"^0.3.0","pcap":"^3.1.0"},"prettier":{"tabWidth":4,"trailingComma":"es5","printWidth":120},"husky":{"hooks":{"pre-commit":"tsc --noEmit && pretty-quick --staged"}},"description":"![test](https://github.com/akiroz/pubsub-tunnel/workflows/test/badge.svg)","_id":"@akiroz/pubsub-tunnel@0.0.9","dist":{"shasum":"ffd4109121c33a6e83675641b14126af34bf05c3","integrity":"sha512-R9Izwg7vxIrGHBeGwuPjBUTABAR1AjLpJV8GUd1/2114NhwJQMgRFNoGmooSwycMjyim6cNXG5tDwM6ztBxSYw==","tarball":"https://registry.npmjs.org/@akiroz/pubsub-tunnel/-/pubsub-tunnel-0.0.9.tgz","fileCount":15,"unpackedSize":58790,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezeg3CRA9TVsSAnZWagAA7sYP/2iuEX0XLqxcL8cZCCsf\nRrUh82hJ6V91lyJyYMBxNie0PMaBpQjDOYoDodAWGmgBYXo0RJYadnM5rDsa\ncFF0hQ6A80feY7wp5nFwNQVy1AHdM9li4gWq8nebWYl2TQLL+HxFT/eNpBN3\n9AqF4fxudFoFihDOUBlroFjcz4f1HP7iPJzR3XrBfQQPa3p6A5ySPr1zUnoo\nbiFyTCqmLjEkfDIO2swScePGrXm5Aba/SnlvYYHIyYIEiIc4MyqhIrshWRh7\ngjX2V/7M0wnLdZPlElkhOyMLxDCLRTjYDmksjPxHgFQsAmNtef40dLkbpmv+\n9JhM5e06GqgeoNZVXw5B+2vpzAeSDzHJ4Hq5I708JRT9sy1VIwzqicQQ0x54\nBPrjCacM/ZFgM27cKhi3TvHSJczl8i7mwOTVFA2RIHTo46L4jAcM2FnWy4OP\nuA/CjV+Mlm2aHn8khpApBQYu9M/UC0vKjh3cmQxkSrGjmJ3gPBGeoldMP43+\nDM0UubKDd5h/wKUkV7uMQPA3Q7ZD9uWw3jK/TxrJcBCihlhxQDUGDJHHsZpA\ni4Klv4ecLxntRus7MC2wax+v0feTeCSIDQO+Ny3ovu1dRGQ9GiY7bcuJH9pf\nd/oNHjMSEUhDJaiCiSerPOs2gtSbiYnAkE6m6oRBJjoqAK4N30UrLz75IU7u\nhGzW\r\n=xyBJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE36LKnf4vDzW4ZRRY5NZoITJsqwzP5PFt09oOglo7ddAiANfYsYQ9gifPb7c/nNv6kYqMrjhnC/DRmrSzd9Af9WRQ=="}]},"maintainers":[{"name":"akiroz","email":"akiroz.vectis@gmail.com"}],"_npmUser":{"name":"akiroz","email":"akiroz.vectis@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-tunnel_0.0.9_1590552631315_0.6461197301955199"},"_hasShrinkwrap":false},"0.0.10":{"name":"@akiroz/pubsub-tunnel","version":"0.0.10","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"ts-mocha test/index.spec.ts","prepublish":"tsc"},"devDependencies":{"@types/lru-cache":"^5.1.0","@types/mocha":"^7.0.2","@types/node":"^14.0.1","@types/server":"^1.0.2","axios":"^0.19.2","husky":"^4.2.5","mocha":"^7.1.2","net-ping":"^1.2.3","prettier":"^2.0.5","pretty-quick":"^2.0.1","server":"^1.0.27","ts-mocha":"^7.0.0","ts-node":"^8.10.1"},"dependencies":{"lru-cache":"^5.1.1","node-cidr":"^1.0.0","typescript":"^3.9.3"},"optionalDependencies":{"ioctl-napi":"^0.3.0","pcap":"^3.1.0"},"prettier":{"tabWidth":4,"trailingComma":"es5","printWidth":120},"husky":{"hooks":{"pre-commit":"tsc --noEmit && pretty-quick --staged"}},"description":"![test](https://github.com/akiroz/pubsub-tunnel/workflows/test/badge.svg)","_id":"@akiroz/pubsub-tunnel@0.0.10","dist":{"shasum":"edd1408cffec849199d27fb9b940edb53255c394","integrity":"sha512-V1xEsRKQhxV4pPqQf6CKpipGeGj77Bejr/M9wND/EYjGOLKzwC/v4Ak8ximPQUGaDiNy/t5ysfnWWwt/XCuJfQ==","tarball":"https://registry.npmjs.org/@akiroz/pubsub-tunnel/-/pubsub-tunnel-0.0.10.tgz","fileCount":15,"unpackedSize":59469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBCBZCRA9TVsSAnZWagAAqwYQAJAKpYWbmaoCDjV5rFOm\naOaM7QD4fSGG0uPDgA6GVovInTGCLBv1k5OkFgZTKE9ukBJzABd/OtKPIAVA\n9kH4SuqCaIA0hfOZZCDu0R4h+IN6Q0PtOEem5NR6Lu3416n2ANNZfRXdO/dr\nljV6zdjes7nAxbMqqM/8WxMMQxAPFcC9wuubrACJLKI9T1YaC72b8n+dfZ+/\n4reXF3kuRiMODGY3ReU7w2wPXLXsXv0mveEYSU178ffTQAsnXe4cOBfX9ROr\nYpU6xBkizKZ6W5ZMxh+5FQGuYqZR4zFU8tmb6kPomfk8MP0w1at2MOafXoQ8\nRN0XvUTGyecYAdvPF+G5J/ZAukWbyd5jrK5yKfwy8GWXVxnqXvK96GYXNSDw\n2Sjk4Ir1ALUPJ6xChO54zTbHZFVOob1jVoeLk7veNAFR2P2L8XeKKi13iCSS\nI0LOhja5iX+V0BeH8KvZX9BsKc6KeM9a58FiF5AYULR2lsRcudd6q46KIwTE\ndz9Wl7OUFcxiKThBmJ9FBjPqlwi9d8memQ4coN9kSa988BzinSbs1TTBRiFu\nNvM2UKF6gnTDViajfcb/DgIHOuuoU8RGINXBKkssKHE1v4N9gAM2+8SMaM5O\nukdPXEnEKV24PZyaJedUMA+q0Jj7d+9gt95giBiKabjZRRjz4uW1NkilC+/W\nQ+jo\r\n=Knca\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDCjDOPPeq+faV/8yppEBthNS8ekQyqQKxCHRSfmquxTAiEA5yTamzx/xKECDHbhPjR0K+asKKR32z28g5jMpEVd6jg="}]},"maintainers":[{"name":"akiroz","email":"akiroz.vectis@gmail.com"}],"_npmUser":{"name":"akiroz","email":"akiroz.vectis@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-tunnel_0.0.10_1594105945354_0.8547954075022994"},"_hasShrinkwrap":false},"0.0.11":{"name":"@akiroz/pubsub-tunnel","version":"0.0.11","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"ts-mocha test/index.spec.ts","prepublish":"tsc"},"devDependencies":{"@types/lru-cache":"^5.1.0","@types/mocha":"^7.0.2","@types/node":"^14.0.1","@types/server":"^1.0.2","axios":"^0.21.1","husky":"^4.2.5","mocha":"^7.1.2","net-ping":"^1.2.3","prettier":"^2.0.5","pretty-quick":"^2.0.1","server":"^1.0.27","ts-mocha":"^7.0.0","ts-node":"^8.10.1"},"dependencies":{"lru-cache":"^5.1.1","node-cidr":"^1.0.0","typescript":"^3.9.3"},"optionalDependencies":{"ioctl-napi":"^0.3.0","pcap":"^3.1.0"},"prettier":{"tabWidth":4,"trailingComma":"es5","printWidth":120},"husky":{"hooks":{"pre-commit":"tsc --noEmit && pretty-quick --staged"}},"description":"![test](https://github.com/akiroz/pubsub-tunnel/workflows/test/badge.svg)","_id":"@akiroz/pubsub-tunnel@0.0.11","dist":{"shasum":"22b038d04f1ca3dff0bb3405e5b526a7ee6f2848","integrity":"sha512-Gogte8ATo0YIXpq27PDyjUyJhef52gM8qnTYJ38sN29iVzDmNdxErwJuoYUiuz4l4LCIAQ2eyysa6VIoX4o/9g==","tarball":"https://registry.npmjs.org/@akiroz/pubsub-tunnel/-/pubsub-tunnel-0.0.11.tgz","fileCount":15,"unpackedSize":59708,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgq8dTCRA9TVsSAnZWagAAdUgQAKHDTWHU+SbnWzRzhOGw\nlgDfO/k/VXvHZfqlPcsi1/pmiPRPwAdpE4D3UPxEC3SUEv7XYA5vpNp4gYNo\nic4bzwWmsqZ9S8uDihhCmEOdJMHdJQ7/CCqcCbZIPqlVEuCoyW+Cw48ajyY3\nqdIiMfR/GKIpqFwDQ9WR9CjGNp83rrA/ql8XrkP7Fg1J/kbIv6hP7ohF3GSy\nkuya3DQ9BI1RVAx3KeM6P3LLIACJuE85duh0HNIyLqw+yooP+M24/aS7rvAs\nO4umXqICygNsRdlcwCghYX9XImD5kxAiyYdhgVNNIysBr2PseZpz+42yEXqx\nafZR7kcxoUNzoqv288yrKTwmhhyOiUZVnJ8Ats2h6iAqUsaREDjVG66yI5k7\nb7DrwtsJ0BJ/OyRxoeMiO1P6NSMgZgaVWUXncnWRZyFCc0ez9Pd8fHQHAEa8\nAvIbAgofFCeFpviLpbqmLuccj8wuueZEpyY4oagb1PgHKue22s1XX0wQbUrr\nW5n4/febvBBiMb4o6UF0TtpAoE1zam2Ex4de/jq6lvN4rwYLzJOpasQpMNkN\nAu4ttTzKu+XCgIYFFOaCH8WmSj4ldqshDGXjEXH5jdHuO/QyZNN+SHQA/0K3\n+P81+cUrBvTc279WP+QTOmfpghpfJISVDxg64FbyLRMKsh5+vfI4dWVUdzkP\nZz2S\r\n=KiVV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHVpSZ9Ag9IF+7YWJL2hQ2fDtlmOQlGJ6yYsAqPZXAgEAiBm/QhGQX5AeOl3EDKJUr3aQO8v44ThD0lYFilIvET9NA=="}]},"_npmUser":{"name":"akiroz","email":"akiroz.vectis@gmail.com"},"directories":{},"maintainers":[{"name":"akiroz","email":"akiroz.vectis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-tunnel_0.0.11_1621870419349_0.7994710431941343"},"_hasShrinkwrap":false}},"time":{"created":"2020-05-18T03:51:19.097Z","0.0.1":"2020-05-18T03:51:19.257Z","modified":"2022-04-04T12:29:45.973Z","0.0.2":"2020-05-18T05:29:11.881Z","0.0.3":"2020-05-18T05:32:18.217Z","0.0.4":"2020-05-18T05:36:30.674Z","0.0.5":"2020-05-20T05:04:20.207Z","0.0.6":"2020-05-20T08:34:59.269Z","0.0.7":"2020-05-25T06:53:59.454Z","0.0.8":"2020-05-25T10:23:35.158Z","0.0.9":"2020-05-27T04:10:31.443Z","0.0.10":"2020-07-07T07:12:25.526Z","0.0.11":"2021-05-24T15:33:39.566Z"},"maintainers":[{"name":"akiroz","email":"akiroz.vectis@gmail.com"}],"description":"![test](https://github.com/akiroz/pubsub-tunnel/workflows/test/badge.svg)","readme":"# PubSub Tunnel\n\n![test](https://github.com/akiroz/pubsub-tunnel/workflows/test/badge.svg)\n\nA simple network tunneling mechanism for Pub/Sub transports\n\nTunnels traffic at layer 3 (IP) of the OSI model\n\n### API\n\n[See tests](test/index.spec.ts) for a basic use case that simply uses an EventEmitter as the Pub/Sub mechanism.\n\n### Requirements\n\n-   Dependencies\n    - Linux: `iproute2` (Included in most modern distros)\n    - Windows: `WSL` (Included with Windows 10)\n    - MacOS: `libpcap` (Included in MacOS)\n-   Special privileges\n    - Linux: `/dev/net/tun` + `CAP_NET_ADMIN`\n    - Windows: Same as Linux\n    - MacOS: `/dev/bpf*`\n\n### Mechanism\n\nOn Linux: uses TUN interfaces to communicate with the host.\n\nOn MacOS: uses `libpcap` internally to capture/inject packets from the\nloopback interface.\n\nThe tunneling mechanism has 2 roles: `server` and `client`.\n\n0. Server subscribes to a `topic` and is ready for tunneling sessions\n1. Client generates a session ID (128 bit) and start forwarding packets from a\n   preconfigured address on the loopback interface to `topic` prepended\n   by the session ID\n2. Client subscribes to `topic/${base64(id)}` and performs NAT\n   on received IP packets to first loopback address (127.0.0.1) before injecting it\n3. Server upon receiving a new session ID allocates an IP in the loopback block\n   (127.0.0.0/8) in a preconfigured range and performs NAT on the IP packet\n   to the first loopback address (127.0.0.1) before injecting it in the interface\n4. Server starts forwarding packets from the allocated address to `topic/${base64(id)}`\n\nNote that IPs in the preconfigured range on the loopback block will be reused\nin a LRU fasion, make sure the range is large enough such that new sessions will\nnot override existing ones.\n\n### Network diagram\n\n![](network.png)\n","readmeFilename":"README.md"}