{"_id":"@amatiasq/socket","_rev":"13-c262e50354ece9908b5624816bfc1e76","name":"@amatiasq/socket","dist-tags":{"latest":"2.0.0"},"versions":{"0.1.0":{"name":"@amatiasq/socket","version":"0.1.0","author":{"name":"A. Matías Quezada","email":"amatiasq@gmail.com"},"license":"MIT","_id":"@amatiasq/socket@0.1.0","maintainers":[{"name":"amatiasq","email":"amatiasq@gmail.com"}],"homepage":"https://github.com/amatiasq/amq-libs/tree/master/libs/socket","bugs":{"url":"https://github.com/amatiasq/amq-libs/issues"},"dist":{"shasum":"5f676398f91b13298546a3220c11351756289d8e","tarball":"https://registry.npmjs.org/@amatiasq/socket/-/socket-0.1.0.tgz","fileCount":93,"integrity":"sha512-D4IuRqvrvjrRcMNKLuEU9tIlIUrd6F6UQDsk5fdsdl41+XswIvomsupMbEg8MSzdMjFvzyWUOKRYR1/WU8CDKw==","signatures":[{"sig":"MEUCIQDPNW/ASkPKCCtdlHEWxgWpegHPeS8OF/6P9DtJAlMikwIgdNb9osaVCO8mL6Vuurd2GHghsy70ZAJbDc6HbiI7NAU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236771,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfm/VQCRA9TVsSAnZWagAAhAQP/3YlfpUSSRZYpaGm21MM\nsXiP9cvKAhQ4VEHX8XZ2HARf1DzLdhuRBu7agAHMHmEig+U5fVisFLkuJ8Dl\n4Jp0t1lCZE9nKuQGqIOqMTZDiv1L9sJnAC4w83RXrsWueN+GegcNzNj+IXKu\ncdXVo/2bfkB6a4gXvPjkHSfE9ebrh+3ZjAG403fQOAwfORAbXvI0735w/+6X\nFU93zDL1QanwFjlcFk9bd8rHu7dUk1llt2OL6SNLoAhdTnp9avAL7V/ZW9W5\nDPi6TQlBZtsXrELVuMN7F+Sszuq0ErPn44lhq9mrw/iluCUoc6+/DDbmfxj2\neIk/fLcom3cmxmZprNoA4k7QWBz73AixnQPrNVxkl+wOl6so9QBYVctsUu/i\nqoIPxq8GpI3r+Sg/gRF1uTQt4RdThw8hx8u5suWeu/bImOFR6+ZeA08W+Ifm\n2bX3zUNtzL8PoL02517R7BnRt8uvT5iusUF3fB+VHeqDlmVH2avDl5O6HEnw\ntoOKvFPjevG9tqQ5RCgcOB5EUW+puw87/dK3BND+jj5pGpH7oqy7i3WTyLmm\nX9RU6I6bMAXYDDKkLLpouWb5sg99yv/c9UK1+h+3ei9hAqCJqj8fuNDzcvnR\nONLdHcK0LPwMldgET5M7LrYvUdBmTvJUaEVbaXThISWHSS9azmf9KLhbAUGS\n3u3Z\r\n=iNXx\r\n-----END PGP SIGNATURE-----\r\n"},"scripts":{"build":"tsc","prebuild":"cd ../resilient-socket && npm run build"},"_npmUser":{"name":"amatiasq","email":"amatiasq@gmail.com"},"repository":{"url":"git+https://github.com/amatiasq/amq-libs.git","type":"git"},"_npmVersion":"6.14.8","description":"Short description","directories":{},"_nodeVersion":"13.12.0","dependencies":{"ws":"^7.3.1","@amatiasq/emitter":"^2.0.0","@amatiasq/resilient-socket":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^7.2.6","@types/node":"^14.10.0"},"_npmOperationalInternal":{"tmp":"tmp/socket_0.1.0_1604056400282_0.6603253751705374","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@amatiasq/socket","version":"0.1.1","author":{"name":"A. Matías Quezada","email":"amatiasq@gmail.com"},"license":"MIT","_id":"@amatiasq/socket@0.1.1","maintainers":[{"name":"amatiasq","email":"amatiasq@gmail.com"}],"homepage":"https://github.com/amatiasq/amq-libs/tree/master/libs/socket","bugs":{"url":"https://github.com/amatiasq/amq-libs/issues"},"dist":{"shasum":"96731f423c7663081423405f5b1320dc585aba08","tarball":"https://registry.npmjs.org/@amatiasq/socket/-/socket-0.1.1.tgz","fileCount":101,"integrity":"sha512-/qsS31aTOM80jV1QzYnhICLIKxRAydOUKD4TpPfVp8HAWvtY7nFdHusFprhfO2xgRHblhrMKHpntq2Z8KR5rPg==","signatures":[{"sig":"MEQCIG+SClurYwNoGOKhMgDn06une+HOIQ6Zk9yNBXmMgOgPAiB5ifjfvhV963fCdSIoIMPWQDGChqDRGVFdlw100I7Dwg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":237674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfm/iICRA9TVsSAnZWagAAhWAQAJMXhVPKmRDRig5hUisX\n7stcHxfs8FYpDQtGR1kFUywAfvOFLLtLidsJyM3Q4C7dcr/VtNdyqW4zPEZ+\noVPR/7afn5KJTYRgsxtHDia12q83NHsjeeBeLSFmCJ0lUS79Ygk+ft3lYQ0l\nl3vd08Cv0VcgZOxUWM30CyOYEpMtdlWSD6poqjwK06+mVNQnlnAxr9FRGMyZ\nRSicvuzUEmfbnEI3TDRNtPdE0Z8qXmsRWBzN+WpEIqJ+yDMsFTe7brSaIbiR\ntn8a41ncZfdOXgTvGWj6oq4mW8HKzg/tfHoErg3hoqyB70fTNcvixMiz//X3\n/M5wRxoabVwCGXIjzN5vTlNpsiT98a1l17Ok8FW6MXJ6AOIk73PP1bdxm9Mr\nkVveC+sSd4P5hGeJ87IuKdwpa+8++mMaUamlyr6xadf4dg4RrzrSzHI3zwC+\nVxofHIbtfJUJBI8W5kzfSWivzP90UZPKrGdcj5hkbOEwQ03cJfc7XCWEJ21u\ndPkQ972ZMiOmQ75wo5WfnK1MnLxOMXCpHLmn/LzZgWxbGPyQqyoMxx0usUsh\n0tmCrLhoTeXX6HE1Pvun+5nNRv1qydi2rmo7mCgCjrlcWFRI4s2gANhF3A94\nUSFLgPGTF4Pds9efm6XME/VrVWP0hsC+AhBdu+Kdfi0k2/0p8FTZ/1pb9p3c\nIJTO\r\n=J2Ws\r\n-----END PGP SIGNATURE-----\r\n"},"scripts":{"build":"tsc","prebuild":"cd ../resilient-socket && npm run build"},"_npmUser":{"name":"amatiasq","email":"amatiasq@gmail.com"},"repository":{"url":"git+https://github.com/amatiasq/amq-libs.git","type":"git"},"_npmVersion":"6.14.8","description":"Short description","directories":{},"_nodeVersion":"13.12.0","dependencies":{"ws":"^7.3.1","@amatiasq/emitter":"^2.0.0","@amatiasq/resilient-socket":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^7.2.6","@types/node":"^14.10.0"},"_npmOperationalInternal":{"tmp":"tmp/socket_0.1.1_1604057223671_0.5013703265651464","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@amatiasq/socket","version":"0.1.2","author":{"name":"A. Matías Quezada","email":"amatiasq@gmail.com"},"license":"MIT","_id":"@amatiasq/socket@0.1.2","maintainers":[{"name":"amatiasq","email":"amatiasq@gmail.com"}],"homepage":"https://github.com/amatiasq/amq-libs/tree/master/libs/socket","bugs":{"url":"https://github.com/amatiasq/amq-libs/issues"},"dist":{"shasum":"0abe12b646838eedeac905f5417f865506a282c7","tarball":"https://registry.npmjs.org/@amatiasq/socket/-/socket-0.1.2.tgz","fileCount":93,"integrity":"sha512-ng1oZHWKI53ok/5bgsfbKvqeMw7O5oAYqg0MktAPgdHOx1tiiYExm8sJrCumiyU/iCBWsGlKZBK6yCYPP5JM0g==","signatures":[{"sig":"MEQCIEu17jNgpKmoeDrQ2qcrtxGPs4bbxgUNNaCP/CUaHFshAiANqnQVEl3zasxBa0dzYNW+5HcF2HDsAkFaOsyAjLcCiA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236452,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfm/j8CRA9TVsSAnZWagAA+JMP/0u9t+ewPcv9RJ2MWqbl\n/oRcLJ62hNw6RfGJA7ztJADdkSilJLLGj3XAVvThlONFlKRPlFLXplDP5nfV\nmIxKMWO+MumUbpIkI7Brk/+JZKE/RJe/xMLKoM0n35jojKzlQocmEIpit4K+\n8xx9c13twuFe3ZApfUTI1wNrSx15IYrz0y2FcVW+7xmnbJUsIbChuaX6mVca\nJ1OaUDz++HfAkDhfkmp4FhbVHUW2Y5vtkNNht5cVWnuCwhDPsjMquvVApMb6\n3nkkL71yVUPA5GkiSAoGfwIvKDzgq+cMJoBdj8l8ssNHiCG28MY//sCubGLH\nhNwauWf7qsoLBjWXB8NgD9j+tKg//DcXeWC9Owc2PoB+jsoZPjCaTWFLYn9p\n064Mc9hYLdDMYfSKYCn4cBqKElQO6wYQiJNSrNgH64GvGmRKdVWWKy4gdfrt\nkc75TaBGdG6djGewIv83qIta+d5k/IADQ8iUAc35pWxDDIkF7WUlj72ZUeiI\nkJj77j8v8GVwCfGoACUmbwzop0yFoC+qFM+WLINncfWZWrYbL0dvzTut68oC\nBrOi8pXR9bsbtR8FL6u9C+0AaKWj2f7TnFbHkdPxLyjzmzigo3dja0pDbd3S\nkUbXt/9evgW4n6RSiBWEVIorITZS8ja+/mFncKZA3C0jWfxD5oAAZoES24/u\nNR9B\r\n=l2r+\r\n-----END PGP SIGNATURE-----\r\n"},"scripts":{"build":"tsc","prebuild":"cd ../resilient-socket && npm run build"},"_npmUser":{"name":"amatiasq","email":"amatiasq@gmail.com"},"repository":{"url":"git+https://github.com/amatiasq/amq-libs.git","type":"git"},"_npmVersion":"6.14.8","description":"Short description","directories":{},"_nodeVersion":"13.12.0","dependencies":{"ws":"^7.3.1","@amatiasq/emitter":"^2.0.0","@amatiasq/resilient-socket":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^7.2.6","@types/node":"^14.10.0"},"_npmOperationalInternal":{"tmp":"tmp/socket_0.1.2_1604057339805_0.016772474592769315","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"@amatiasq/socket","version":"0.1.3","author":{"name":"A. Matías Quezada","email":"amatiasq@gmail.com"},"license":"MIT","_id":"@amatiasq/socket@0.1.3","maintainers":[{"name":"amatiasq","email":"amatiasq@gmail.com"}],"homepage":"https://github.com/amatiasq/amq-libs/tree/master/libs/socket","bugs":{"url":"https://github.com/amatiasq/amq-libs/issues"},"dist":{"shasum":"b493a7c5612ca600ab794392dfac8773e206520c","tarball":"https://registry.npmjs.org/@amatiasq/socket/-/socket-0.1.3.tgz","fileCount":93,"integrity":"sha512-O3wY6IMXLU+jerfWIiGTGTBKgR19tz4Pxjjat/5dStBBhaXpMC9h1h5Izki8thQcGzFscBGXmUk1tVG9NsJEBQ==","signatures":[{"sig":"MEQCIC8KeqxAe3/zveBe0M6USpeRkpqTb6teVSWD5IZ7wSMBAiB0J10Kc8CEhLqAENA8iS3jyHqIxFtzZcXmWbq31ldkrg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":236452,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfm/nsCRA9TVsSAnZWagAAFkYQAJR+k0X1X4EBM6z9JxqA\nLpWVRsQdDmnJGpDqvfgQJBiIYlutpB/MCB5MhRx+0iFimQiQLwdnR8zmh4jB\nwf3HChGaSwfXwQ1LTG3zZ6YY2UkJVsloftj23FzbQRzgNiTmpQW4IRq24uNb\nQAAGrwrkL5E04ghDraTY/V8xQ8DBjZMf9/cFv3+h0MiWaBKqULzj9lyPFqsp\nn1JJ3zgnU6idiHNJg71TL+Jph6rGoisacBEJhqpEU9SXTL/+qwUdede5Nu4b\nAcnQWpXIKrsWld45JpFDtySOzJa4TZUr8EW6DF9VVC/utL4Rcez247VubXkv\njrlZ1jeIUEjhRqK73gT4rtfdaV1rBfbhmSvmv+q6wH5EWdbXjB0MO82+uN5u\npKW839ZaN752Hh6dwFQfl2mwYAe0w8Jc8gb7/RxNbR1k0f/KD+L2yJUtuUY4\nj6oI0GboABBaEyZESVVZy+503bNtVNRThP8d0vAFBTqsRxjvS4NcsJZMIFK4\nrSH9t4D7a4uH38gKUFAJSSsefmpMy1jt5qB1NTtW2YosDUTg8WG8KejKL1U/\nCWJBMisWbquiYbGsy/A0/HLgeGJPkH3+G4jvcvCFFtVIGlLFZz5JiinM0oEz\nIaXs3kxso6Mm91qSDZZddl5y7fhPVs3DCLFFowvlXbA9OfkvWIsJlc/g79CE\n2U6G\r\n=WBlo\r\n-----END PGP SIGNATURE-----\r\n"},"scripts":{"build":"tsc","prebuild":"cd ../resilient-socket && npm run build"},"_npmUser":{"name":"amatiasq","email":"amatiasq@gmail.com"},"repository":{"url":"git+https://github.com/amatiasq/amq-libs.git","type":"git"},"_npmVersion":"6.14.8","description":"Short description","directories":{},"_nodeVersion":"13.12.0","dependencies":{"ws":"^7.3.1","@amatiasq/emitter":"^4.1.1","@amatiasq/resilient-socket":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^7.2.6","@types/node":"^14.10.0"},"_npmOperationalInternal":{"tmp":"tmp/socket_0.1.3_1604057579926_0.2649951857492052","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@amatiasq/socket","version":"0.2.0","author":{"name":"A. Matías Quezada","email":"amatiasq@gmail.com"},"license":"MIT","_id":"@amatiasq/socket@0.2.0","maintainers":[{"name":"amatiasq","email":"amatiasq@gmail.com"}],"homepage":"https://github.com/amatiasq/amq-libs/tree/master/libs/socket","bugs":{"url":"https://github.com/amatiasq/amq-libs/issues"},"dist":{"shasum":"3f2d384a1948af067443683c8845c924da6bfba6","tarball":"https://registry.npmjs.org/@amatiasq/socket/-/socket-0.2.0.tgz","fileCount":102,"integrity":"sha512-PhcDT/FVzJhUR6i1gz5Iv0QRtuhskfkycXe+jCPoO0n59JUmfK0hUVw7SpZITptOF+q/foHh8/OTxEASGTyfyA==","signatures":[{"sig":"MEQCID1dG9tYAWFnGP7mLT7jF1kHSyF0rhVfulFJw0rwYngiAiAx9XfBRMIhkZBfebfrrGdr1vWXOrGy4GgEl/tOOu1G3A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":238895,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfm/w7CRA9TVsSAnZWagAA/xgP/0DysEkGAIUWLgvUvLmm\nUQZ9vszl+Dnk4lsJkFTPJTDCYKbHybHA99m+/xKhkq+5BT2ItRRHNEWOYLnk\nSUMiDwDjLe/ZIP3R/C8Cd07IQAKSVqDHczw7RuqYqXGuIWGYz+c2L/ki5QTD\nlb4L7cLIrEuF+5OaXAVy/sdJnGDlLcpBnGG/e0/9ezKN3Rb8HYZbLX7x9Su0\n5hdJr8Ro2zQLK8UcSk/Gpd7FfFx9TO1HSWm4ouKX3OSU+twty2I1q/5fQ04H\nkj3I1I9XjBLEO1g9MhOPk7QH7XZctV41ATKM1tzxn2wUOrBpRXtoEhK0MyMj\nSt1y0QJUfTBu1UcNPRAE2djZbwPGHcym1fuXnjYD3lRkMYhD8CA6SmMYwHui\n+7pwllCDIjDxiY0UNZN8FYxl5tYYWsTuB1NtWW4+R1hDy/iLKYJZxVAKkcN7\nXlYfTb+ILkaMpchD88wW15iFHPzaOd+X9EzKqXKuM3ktO3SpUseDEmhbmvq5\nBemR0RMxz+BZtn18PJKgh37E4ROgINZmwR8s+YyioB0dlR1+rtsjLeZr9WG8\nwXqSRGo7NXCzz/iNqSm2n5Sp1XvCLJwWlRua1AiyD9yin9og+u2GZt1afKw8\ngUsF+Us0bT0Lv5Of+5JVRkLDXcmoGPPAq3W0VuMBBa2qqWPiceKU9bDfVbcC\n6ILM\r\n=Dpij\r\n-----END PGP SIGNATURE-----\r\n"},"scripts":{"build":"tsc","prebuild":"cd ../resilient-socket && npm run build"},"_npmUser":{"name":"amatiasq","email":"amatiasq@gmail.com"},"repository":{"url":"git+https://github.com/amatiasq/amq-libs.git","type":"git"},"_npmVersion":"6.14.8","description":"Short description","directories":{},"_nodeVersion":"13.12.0","dependencies":{"ws":"^7.3.1","@amatiasq/emitter":"^4.1.1","@amatiasq/resilient-socket":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^7.2.6","@types/node":"^14.10.0"},"_npmOperationalInternal":{"tmp":"tmp/socket_0.2.0_1604058170751_0.7773012395653054","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@amatiasq/socket","version":"0.2.1","author":{"name":"A. Matías Quezada","email":"amatiasq@gmail.com"},"license":"MIT","_id":"@amatiasq/socket@0.2.1","maintainers":[{"name":"amatiasq","email":"amatiasq@gmail.com"}],"homepage":"https://github.com/amatiasq/amq-libs/tree/master/libs/socket","bugs":{"url":"https://github.com/amatiasq/amq-libs/issues"},"dist":{"shasum":"585fe2b62808755f683057802f2240c1bd0cfb63","tarball":"https://registry.npmjs.org/@amatiasq/socket/-/socket-0.2.1.tgz","fileCount":102,"integrity":"sha512-7801gJnOPa4/EYGbh0f8CoxB3LlTAJuatoLQQ80Zdd0qj0Vsy5BvdXGTZ1O3+aAVHW/7IqDIQkL1L9SqsRb5XQ==","signatures":[{"sig":"MEQCIAyjjciMolPCSDGU2G0TiEw0FQ+h7ekbkwY5IE0CawgcAiBkLHmFxuz319e9C6bQpun8TyRBhVesiX9aqGdUlbPsbg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":238997,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfm/xxCRA9TVsSAnZWagAA1sEP/15Rt1rR/Nhq2mFWL4GV\nrplP0AVGzJCZimiLg82yU8TpmrqM1tCkFGw0qAH6HPRYVjx2/BYjIC/XGQoU\nzfbJ5JwlCIlN7stC++c2W5JjOZeKmiX1G61QDXaJmdYhgefrxFEwvW67g6Gw\n0ckPmGPH224PvIVF/4gP3W+jBjKEt1rGRQ555iDGDAjgWbWa9khe80vMkknK\njBR6i+5Wf+9TvLBAsw6pC4ytsF1QmS0gCSHGkZUusKCaB2Vghy8oqZPIs22T\nxCBBppID1PJ72gSX+9DZml31+ybvyRNItwhpL8nFpw5PC2hjiPNkYDD9DJY3\nunDkJF9u5INeSswyIWdJCbiG6PFjFloEenFoZGmHLt/fSn1VUjBbcqfnnwKE\nOAuNqvUMbfo4Nt9nARGie97ZVjHWDtLsTMhhPbXzPBf09Udi2VCOslDo4G7n\nB81ZvuYmrVHAyYck9BlHuymxWK/2o1v4+ub9KLxmt16s3VExqsLiAWoTIprp\n/vSbCR3C2TvBM1UJloaKDQZB8rAfwAEVWeeGE/IxJQyC76m4w7DoWX8+WYvR\nJwBc9aIq5UabTttuTADOnXJaUjTr8mL6Zvvp7yK5KaygLvEW3Jo9OWWrUnPA\nnLURl6oHmfcgPHxe4LfoalQ42/pDV8jHPwwb3k0DDjJIV4FjHqO1oB7BcmRf\nXdRk\r\n=vDZh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/socket.js","types":"./dist/socket.d.ts","module":"./dist.es2015/socket.js","scripts":{"build":"tsc","prebuild":"cd ../resilient-socket && npm run build"},"_npmUser":{"name":"amatiasq","email":"amatiasq@gmail.com"},"repository":{"url":"git+https://github.com/amatiasq/amq-libs.git","type":"git"},"_npmVersion":"6.14.8","description":"Short description","directories":{},"_nodeVersion":"13.12.0","dependencies":{"ws":"^7.3.1","@amatiasq/emitter":"^4.1.1","@amatiasq/resilient-socket":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^7.2.6","@types/node":"^14.10.0"},"_npmOperationalInternal":{"tmp":"tmp/socket_0.2.1_1604058224737_0.3028863813422671","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"@amatiasq/socket","version":"0.2.2","author":{"name":"A. Matías Quezada","email":"amatiasq@gmail.com"},"license":"MIT","_id":"@amatiasq/socket@0.2.2","maintainers":[{"name":"amatiasq","email":"amatiasq@gmail.com"}],"homepage":"https://github.com/amatiasq/amq-libs/tree/master/libs/socket","bugs":{"url":"https://github.com/amatiasq/amq-libs/issues"},"dist":{"shasum":"9889c4e9acdc657d4eb4affa6cbf8a835fa6015f","tarball":"https://registry.npmjs.org/@amatiasq/socket/-/socket-0.2.2.tgz","fileCount":102,"integrity":"sha512-ssQuPEZxdJ2X/t6PZVApV9r99ljCPIJhiWuSeW2ziLMVByGe0WgZsGnGEOHcpyJXhGGSrHAH0NAHF0IcEk31Xg==","signatures":[{"sig":"MEUCIQCpLMohzmaaQ73WbIPGew7jcOP97exx5epZQAQPLGzx3AIgfP28T8kZB6YPU98P0sqOEEkPmyZVu82AkpiwuykDpok=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":239691,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfm/8CCRA9TVsSAnZWagAACsMP/2qIfbUwZfb0NSuN0x1c\nSk8rZHV31KQVg5XEEmvcPHDLwAcrxiP7eVWs7Qr5m/cYOC9blEkjyFG1N5l2\nDMzWR68rp/cnjWonFHxQ9Voeaf2JGLs1k+ycToOeQvwKEbldsh6yXMPdIzuI\nbgLzAgBt6D91oH2fknWNfjIB2fyVGthQOkJIHMJtV4aqV0dBmVZrcGJEZ6B/\nd3+obJ/6v1SZX76K/VIU/6+6gHZ+VMSckoNpYy4+9nWJURyhtVqjb3JhN2aD\n6ZDdww24bifUhEAm60nf+52V9DVaMpZMIKWUBWIqBU4nvEeSk/kiPquGmHPf\ngvHbV2We0wzLVi1NqT1Ceq2pvolUarb8dhMUUxK1bGAYSB2+o+Su9RSOQFj2\nXBDSNx6UFFLBfQIBDQLJUzhnS6c7qytZTaaDuH4wxG7NI7fdZsKQrK2/22KO\nvYfYigzdc2nBl4Xk2Rv5hU0xBZfE+bEOV1FgiJnWJejiAZY+Rs+qxRwHTjS8\nv04J2tSjcHJZSNVDf/pqauf72SjGN516HaOPe1DzUcmxql4+kEcyFBV7DjN8\nfguCfzz7On00+7JzlRz8ETZAgD5mC9ZNuprz8kJGY8bodKLsyYfAJ0EDoq7c\nyCcrQjzsDyjaQquv5nAC31dv8LxH9RzZsXwTYtoKgK8go30OALNzvonrnxc0\nx4F7\r\n=vT/p\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/socket.js","types":"./dist/socket.d.ts","module":"./dist.es2015/socket.js","scripts":{"build":"tsc","prebuild":"cd ../resilient-socket && npm run build"},"_npmUser":{"name":"amatiasq","email":"amatiasq@gmail.com"},"repository":{"url":"git+https://github.com/amatiasq/amq-libs.git","type":"git"},"_npmVersion":"6.14.8","description":"Short description","directories":{},"_nodeVersion":"13.12.0","dependencies":{"ws":"^7.3.1","@amatiasq/emitter":"^4.1.1","@amatiasq/resilient-socket":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^7.2.6","@types/node":"^14.10.0"},"_npmOperationalInternal":{"tmp":"tmp/socket_0.2.2_1604058881856_0.014062985451352317","host":"s3://npm-registry-packages"}},"0.2.3":{"name":"@amatiasq/socket","version":"0.2.3","author":{"name":"A. Matías Quezada","email":"amatiasq@gmail.com"},"license":"MIT","_id":"@amatiasq/socket@0.2.3","maintainers":[{"name":"amatiasq","email":"amatiasq@gmail.com"}],"homepage":"https://github.com/amatiasq/amq-libs/tree/master/libs/socket","bugs":{"url":"https://github.com/amatiasq/amq-libs/issues"},"dist":{"shasum":"3d0a255c897b229930c779e31a7da6c5fe65cb90","tarball":"https://registry.npmjs.org/@amatiasq/socket/-/socket-0.2.3.tgz","fileCount":102,"integrity":"sha512-X6POcpwR81UA+aF1LjdejjBO8gvlTCFNPeiPBX3l4Rv4x5KdraOZxt0WBFYx2dWrM38nhWhEJuuVxq6Yi26ZOQ==","signatures":[{"sig":"MEUCIQCNH1oNTpn8++VnAlIlwL6XT7DJpw5KQpzmzDe9t62qKgIgDyofDlJT4pg6u3pUglCNEKsgFweV8+G3Y4Ugx/u7J1o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":239937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfm/+QCRA9TVsSAnZWagAAV7oP/jTQbEWXzyg0G+RcT1pu\nYMNP0PSQnKQrnS6g2SCeMLAVwt/MDVTlwAmTZyogmVNuaSHExMjfhQ7buV8U\nW3TF2b8Hx9zQO7SPxnOgj+lGcjlBDjitMxoEnhe46VTqg4gr+gOzGJCY+gWD\n2EMoW7q67IYeZWE6qtunsw4rcp+Vf4BkPfPTt2AYU2o4/VvdcVI0ogvj9R1y\nPuPqh530nYmXLi4UKIEDsBjXnbfQp6XV+SmC1ke1D3wyamQb5hteoabKPp50\nBSn4WU0JninBD8I29aBe6RUH1MVx2ohn6B3vjqJJ+r1yEy7dEOgj98qlPyAI\nMypRC4/dXwxiuBvevCm7AS+FH9wFtDsnZnemScpqqlSo1rz/pXjrwpYaz8KZ\ngtfeA3+Cn/oVIlCzdfqKCEAyfMuqCkR3fjFpT+hdBVVquvNn+Y7U1yiM8FPG\nkh0qhlo0fagKPZx1aYjquS6ET9mN6SL8pSn8UMj4K2DHbb1KxDg8Zomb9B8x\n66Wsrh8cEPdwHdJ6m6z8RxYy64iBSde8Sdg99PUzgsBL4vitTXoiOBu9R45m\nKvRRnHPiC8u3teqOZ2dt06r2Qe4sUUOVAnkNreMy/7x0rpR2HznuKO9IWVeo\nB9PgtoUzQm09OL2QSS8lVK00K2p1ccDPqOcwq3TFkY9dmnfN+hCnj+GB/bm8\nOf0m\r\n=1tzl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/socket.js","types":"./dist/socket.d.ts","module":"./dist.es2015/socket.js","scripts":{"build":"tsc","prebuild":"cd ../resilient-socket && npm run build"},"_npmUser":{"name":"amatiasq","email":"amatiasq@gmail.com"},"repository":{"url":"git+https://github.com/amatiasq/amq-libs.git","type":"git"},"_npmVersion":"6.14.8","description":"Short description","directories":{},"_nodeVersion":"13.12.0","dependencies":{"ws":"^7.3.1","@amatiasq/emitter":"^4.1.1","@amatiasq/resilient-socket":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^7.2.6","@types/node":"^14.10.0"},"_npmOperationalInternal":{"tmp":"tmp/socket_0.2.3_1604059024435_0.054402836801505705","host":"s3://npm-registry-packages"}},"0.2.4":{"name":"@amatiasq/socket","version":"0.2.4","author":{"name":"A. Matías Quezada","email":"amatiasq@gmail.com"},"license":"MIT","_id":"@amatiasq/socket@0.2.4","maintainers":[{"name":"amatiasq","email":"amatiasq@gmail.com"}],"homepage":"https://github.com/amatiasq/amq-libs/tree/master/libs/socket","bugs":{"url":"https://github.com/amatiasq/amq-libs/issues"},"dist":{"shasum":"9288260b80f7b19b421d92cf1075789e28a577e1","tarball":"https://registry.npmjs.org/@amatiasq/socket/-/socket-0.2.4.tgz","fileCount":102,"integrity":"sha512-PRmDfUrSzkNjk04omiIBA3lOgkdMGDHrvwV/Dbs0dzamTbdCR7VR/p+tQ9BBrpuh+LZolGUQZmdij1TcdspIdg==","signatures":[{"sig":"MEUCIGnAzySZuy75wMgq8GQ1Zo/KNtA8Amn5jsS2xB40R9dJAiEAt4qZKy2l/6WiImpFa7nP3XcVucGGTVsmkIb5Ii8OpUA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":240126,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnACUCRA9TVsSAnZWagAAHFgP/2lQNbwQnvyaw+P1TZLL\ntJiRiwey4tJrk6xSyOPjm/QAuG3w97JdcAo8wasniSO4maDY5GIoqR1gwWF5\nofLm2IqH1A3gy3NzfwgNG2tvhbYlbsGZAs1dOdjiDRKAgWG8qz7y6L3XM6sr\n+iLrkIepJSPMiCPuDmOK586BUxTjVE+QFYTIUuRnxuN+W8t1aAHBIC82nm5k\nISi9FtwIM3QgxzQRHrbe31avN9KxngLqB+URkHhOzlcFS2lSHzyM8KrOBih9\n2vd19UCfwJ/F1VsHBb9E6bXPjzIL5+YzG8va5rWsWDztf36Q+bha7HsESvuz\nNGKFaWX4Sk/K5cD84q4/GeTlKfKBEdcDVckKdZZdJeTHTLoTub/8GecKfkkC\nOZobn+vOfo9toTgMdCk9x1y6/SG/4ChjPDfxik2nmZ5A1oIT2/U5W7V4nUvs\n5KAs27hlu1NnYnZ1Q3I/NmRXo2KVcNMwJSuql2yJQKVpbQfu2eCThRP6snqv\n/g1r2XZtPwAOknVJwDyoId/HhHXP77W+0mjAvpACE2Ee71NeegY/OIOnkVUG\nmB8BoKatxzqizUYBR520/oHYllh1i7D9n+o2FjITiyJPGEWFh08cQKX4FcKZ\n8cYHvMcLBciph23yuRRWPt2VN+TT6lWTd23wMtw1awN5DX8Cbo0RfN1M/gh8\nQdKZ\r\n=Kzdp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/socket.js","types":"./dist/socket.d.ts","module":"./dist.es2015/socket.js","scripts":{"build":"tsc","prebuild":"cd ../resilient-socket && npm run build"},"_npmUser":{"name":"amatiasq","email":"amatiasq@gmail.com"},"repository":{"url":"git+https://github.com/amatiasq/amq-libs.git","type":"git"},"_npmVersion":"6.14.8","description":"Short description","directories":{},"_nodeVersion":"13.12.0","dependencies":{"ws":"^7.3.1","@amatiasq/emitter":"^4.1.1","@amatiasq/resilient-socket":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^7.2.6","@types/node":"^14.10.0"},"_npmOperationalInternal":{"tmp":"tmp/socket_0.2.4_1604059283776_0.9932328343526211","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@amatiasq/socket","version":"0.3.0","author":"A. Matías Quezada <amatiasq@gmail.com>","license":"MIT","_id":"@amatiasq/socket@0.3.0","maintainers":[{"name":"amatiasq","email":"amatiasq@gmail.com"}],"dist":{"shasum":"34badf6ea837bbe15420c45c23a7fc538b2aa7c8","tarball":"https://registry.npmjs.org/@amatiasq/socket/-/socket-0.3.0.tgz","fileCount":57,"integrity":"sha512-dQcaBCetQKH7j5YZCC4AlokprNNhTaxOkt7xEmfczmzeLv5wwpObI3ioaoXUB3rphyKY6CIEGCDzNvdVxCc7Tw==","signatures":[{"sig":"MEUCIQClBqflGj2wYBS8VEVG92ng9tkyVz4JdJOugrXaCS1KhQIgRwsIfIgpiwjHvoUvZTOFPI14X+ZWyhzKFUXkOkEcsAw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34622},"type":"module","shasum":"34badf6ea837bbe15420c45c23a7fc538b2aa7c8","exports":{".":{"bun":"./src/socket.ts","types":"./dist/socket.d.ts","default":"./dist/socket.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"amatiasq","email":"amatiasq@gmail.com"},"_integrity":"sha512-dQcaBCetQKH7j5YZCC4AlokprNNhTaxOkt7xEmfczmzeLv5wwpObI3ioaoXUB3rphyKY6CIEGCDzNvdVxCc7Tw==","_npmVersion":"10.8.3","directories":{},"_nodeVersion":"24.3.0","dependencies":{"ws":"^7.3.1","@amatiasq/emitter":"5.0.0","@amatiasq/resilient-socket":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/ws":"^7.4.7","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/socket_0.3.0_1785433887021_0.46134131011157353","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@amatiasq/socket","version":"1.0.0","author":{"name":"A. Matías Quezada","email":"amatiasq@gmail.com"},"license":"MIT","_id":"@amatiasq/socket@1.0.0","maintainers":[{"name":"amatiasq","email":"amatiasq@gmail.com"}],"dist":{"shasum":"042455a3fbe84ea9c0274d9a945aa870f2b71a66","tarball":"https://registry.npmjs.org/@amatiasq/socket/-/socket-1.0.0.tgz","fileCount":82,"integrity":"sha512-GtUpLwh+cSmatQlhiv5LKEWtcAXvNnyBwxKF6t7wlJYYtKCnyq88EiTt0mD92Se03biL15LUuB7wIyKJg+c5hA==","signatures":[{"sig":"MEUCIGiyb8nS4QJ6rUDd7J7NrzvSCoy5t9WQVgxOe2woHaALAiEAkJIRzB6bB19wr+n1f4fYYL6XAAU2agEe24KPF5jgJ94=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120214},"type":"module","exports":{".":{"bun":"./src/client.ts","types":"./dist/client.d.ts","default":"./dist/client.js"},"./server":{"bun":"./src/server.ts","types":"./dist/server.d.ts","default":"./dist/server.js"}},"gitHead":"10486e06d2bd9f14274d594df3e9aa8f23d9c98f","scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7cd428d9-6188-40af-8db7-d8b8c346c614"}},"_npmVersion":"11.19.0","description":"WebSockets in three layers, on both ends of the wire. Pick the one you need and ignore the rest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@amatiasq/emitter":"^5.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/socket_1.0.0_1785876876110_0.8070066200752777","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@amatiasq/socket","version":"2.0.0","author":{"name":"A. Matías Quezada","email":"amatiasq@gmail.com"},"license":"MIT","type":"module","exports":{".":{"bun":"./src/client.ts","types":"./dist/client.d.ts","default":"./dist/client.js"},"./server":{"bun":"./src/server.ts","types":"./dist/server.d.ts","default":"./dist/server.js"}},"scripts":{"build":"tsc","typecheck":"tsc --noEmit","test":"vitest run"},"dependencies":{"@amatiasq/emitter":"^5.0.0"},"gitHead":"0971ac68dbc556fb6e5c49995949187bfb51d050","_id":"@amatiasq/socket@2.0.0","description":"WebSockets in three layers, on both ends of the wire. Pick the one you need and ignore the rest.","_nodeVersion":"24.18.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-CDkclef/1bXZXuGhFpfbR7ozYj9RUr2Ml6pOkr+7Mrop7laS1e6mrEMBb6RW3BNSpSkCVTCabZcimzKv493mGA==","shasum":"b4577843df4e24b32b7fda6455654ab543055c3b","tarball":"https://registry.npmjs.org/@amatiasq/socket/-/socket-2.0.0.tgz","fileCount":82,"unpackedSize":126898,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD9CBbJQS1UYEvgnwzYBXO1QMEddsSHB1cG4soASe4oUwIhAMn9mhzCONiKPPXOXkWvKApMGe6h8CZjf8JLR1gmZMAC"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7cd428d9-6188-40af-8db7-d8b8c346c614"}},"directories":{},"maintainers":[{"name":"amatiasq","email":"amatiasq@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/socket_2.0.0_1785877561640_0.472587612385339"},"_hasShrinkwrap":false}},"time":{"created":"2020-10-30T11:13:20.215Z","modified":"2026-08-04T21:06:01.946Z","0.1.0":"2020-10-30T11:13:20.386Z","0.1.1":"2020-10-30T11:27:03.801Z","0.1.2":"2020-10-30T11:28:59.904Z","0.1.3":"2020-10-30T11:33:00.037Z","0.2.0":"2020-10-30T11:42:50.927Z","0.2.1":"2020-10-30T11:43:44.929Z","0.2.2":"2020-10-30T11:54:41.969Z","0.2.3":"2020-10-30T11:57:04.588Z","0.2.4":"2020-10-30T12:01:23.894Z","0.3.0":"2026-07-30T17:51:27.178Z","1.0.0":"2026-08-04T20:54:36.262Z","2.0.0":"2026-08-04T21:06:01.787Z"},"author":{"name":"A. Matías Quezada","email":"amatiasq@gmail.com"},"license":"MIT","description":"WebSockets in three layers, on both ends of the wire. Pick the one you need and ignore the rest.","maintainers":[{"name":"amatiasq","email":"amatiasq@gmail.com"}],"readme":"# @amatiasq/socket\n\nWebSockets in three layers, on both ends of the wire. Pick the one you need and\nignore the rest.\n\nInstall with `npm i --save @amatiasq/socket`.\n\n|                                 | client (browser)  | server           | one connection      |\n| ------------------------------- | ----------------- | ---------------- | ------------------- |\n| transport, reconnection, queue  | `ResilientSocket` | —                | —                   |\n| typed JSON                      | `JsonSocket`      | `JsonServer`     | `JsonConnection`    |\n| typed messages, session identity| `SessionSocket`   | `SessionServer`  | `SessionConnection` |\n\nClient-side names come from `@amatiasq/socket`, server-side from\n`@amatiasq/socket/server`. The split is deliberate: importing the client surface\nnever pulls the server code into your bundle.\n\n**This package has one dependency (`@amatiasq/emitter`) and no WebSocket\nimplementation.** The client uses the platform's global `WebSocket`; the server\ntakes sockets you already have. That is what lets it run on Node, Bun, Deno and\nCloudflare Workers without a per-runtime build.\n\n## `ResilientSocket` — reconnection and a send queue\n\n```js\nimport { ResilientSocket } from '@amatiasq/socket';\n\nconst socket = new ResilientSocket('wss://sockethost.com');\n\nsocket.onOpen(() => console.log('Socket open'));\nsocket.onClose(() => console.log('Socket closed'));\nsocket.onMessage(event => console.log(event.data));\n\n// Fires when it gives up, after maxReconnectAttempts\nsocket.onError(() => console.log('Reconnection failed'));\n\nsocket.onReconnect(event =>\n  console.log(`Disconnected for ${Date.now() - +event.disconnectedTime}ms`),\n);\n\n// Sent now if connected, queued and flushed on reconnect if not\nsocket.send('hello');\n```\n\n## `JsonSocket` — typed JSON\n\n```ts\nimport { JsonSocket } from '@amatiasq/socket';\n\ninterface Incoming {\n  foo: number;\n}\ninterface Outgoing {\n  bar: string;\n}\n\nconst socket = new JsonSocket<Incoming, Outgoing>('wss://sockethost.com');\n\nsocket.onMessage(message => console.log(message.foo));\nsocket.send({ bar: 'test' }); // a wrong shape is a compile error\n```\n\nA frame that is not valid JSON is dropped with a `console.warn` — a peer sending\ngarbage does not take the listener down.\n\n## `JsonServer` — the same, server-side\n\n```ts\nimport { createServer } from 'http';\nimport { WebSocketServer } from 'ws';\nimport { JsonServer, fromEventEmitter } from '@amatiasq/socket/server';\n\nconst server = new JsonServer<Incoming, Outgoing>();\n\nserver.onConnection(client => {\n  client.onClose(() => logout(client));\n  client.onMessage(data => console.log(data.foo));\n  client.send({ bar: 'hello' });\n});\n\n// You own the listening socket. `ws` here, but see \"Runtimes\" below.\nconst wss = new WebSocketServer({ server: createServer() });\nwss.on('connection', ws => server.accept(fromEventEmitter(ws)));\n```\n\n## The session layer\n\n`SessionSocket` / `SessionServer` add an identity that outlives the socket. When\na client reconnects it re-announces its `ClientId`, and the server rebinds it to\nthe same `SessionConnection` — every listener registered on it stays attached,\nand `onConnection` does **not** fire again.\n\n```ts\nimport { SessionServer, fromEventEmitter } from '@amatiasq/socket/server';\n\ntype ServerMessage = { type: 'tick'; data: number };\ntype ClientMessage = { type: 'move'; data: string };\n\nconst server = new SessionServer<ServerMessage, ClientMessage>();\n\nserver.onConnection(client => {\n  client.onMessageType('move', where => console.log(client.id, where));\n  client.send('tick', Date.now());\n});\n\nwss.on('connection', ws => server.accept(fromEventEmitter(ws)));\n```\n\n### Session ids are bearer tokens\n\nA `ClientId` is a v4 UUID from the platform CSPRNG — 122 random bits — issued by\nthe server and never taken from the wire. A reconnect naming an id the server does\nnot know gets a fresh session rather than adopting that id.\n\nTreat it as you would a session cookie: **whoever presents the id is that client.**\nThere is nothing else distinguishing a reconnecting client from someone who\nobtained its id, so do not log it, do not put it in a URL, and do not persist it\nanywhere a third party can read.\n\n(Before 2.0.0 these were `1`, `2`, `3`… and any client naming another's id was\nhanded its session. If you are on 1.x, upgrade.)\n\n## Runtimes\n\nThe servers never create a socket, so they work anywhere. Two adapters cover the\ntwo socket shapes that exist:\n\n```ts\nimport { fromEventTarget, fromEventEmitter } from '@amatiasq/socket/server';\n\nfromEventEmitter(ws); //  `ws` on Node — .on() / .off()\nfromEventTarget(socket); //  Deno, Cloudflare Workers, browsers — addEventListener\n```\n\nBun's `ServerWebSocket` declares its handlers on the server rather than per\nsocket, so build the transport by hand — it is four methods:\n\n```ts\nBun.serve({\n  websocket: {\n    open(ws) {\n      server.accept({\n        send: data => ws.send(data),\n        close: () => ws.close(),\n        onMessage: listener => ((ws.data.onMessage = listener), () => {}),\n        onClose: listener => ((ws.data.onClose = listener), () => {}),\n      });\n    },\n    message: (ws, data) => ws.data.onMessage?.(String(data)),\n    close: ws => ws.data.onClose?.(),\n  },\n});\n```\n\n## Reconnection, in detail\n\nA dropped socket is retried after `reconnectionDelay` (100ms by default), then\n200ms, then 400ms… After `maxReconnectAttempts` (14) it stops and fires\n`onError`. Both are per-instance options:\n\n```js\nnew ResilientSocket(uri, { reconnectionDelay: 500, maxReconnectAttempts: 3 });\n```\n\nAnything sent while disconnected is queued and flushed, in order, once the\nconnection is back.\n\n## History\n\nThis package is the merge of four: `@amatiasq/socket`, `@amatiasq/json-socket`,\n`@amatiasq/nice-socket` and `@amatiasq/resilient-socket`. The three absorbed\nnames are deprecated on npm and will not get further versions.\n\nRenames, if you are coming from one of them:\n\n| before                          | now                 |\n| ------------------------------- | ------------------- |\n| `ClientSocket`                  | `SessionSocket`     |\n| `WebSocketServer`               | `SessionServer`     |\n| `ServerSocket`                  | `SessionConnection` |\n| `NiceSocketServer`              | `JsonServer`        |\n| `NiceSocket`                    | `JsonConnection`    |\n| `sendJson()` / `onJsonMessage()`| `send()` / `onMessage()` |\n\n`JsonSocket` used to carry its own copy of the reconnection logic and no send\nqueue; it is now a layer over `ResilientSocket`, so it gained the queue. Its\n`onMessage`/`onOpen`/`onReconnect` are subscribe functions now, matching the rest\nof the package — call them, do not reach for `.subscribe`.\n\nThe server classes no longer take an `http.Server`. See \"Runtimes\".\n","readmeFilename":"README.md"}