{"_id":"@fakehost/exchange","_rev":"28-df4d6c431ae1495b316611ce66334083","name":"@fakehost/exchange","dist-tags":{"latest":"1.0.0-beta.2","canary":"0.2.1","beta":"1.0.0-beta.0"},"versions":{"0.0.1":{"name":"@fakehost/exchange","version":"0.0.1","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"async-retry":"^1.3.1","colors":"^1.4.0","decamelize":"^3.2.0","lodash":"^4.17.15","make-error":"^1.3.5","minimatch":"^3.0.4","mock-socket":"^9.0.3","request-promise-native":"^1.0.8","sockjs":"^0.3.21","sockjs-client":"^1.5.1","ts-node":"^9.1.1","uuid":"^8.3.2","ws":"^8.2.0"},"peerDependencies":{"rxjs":"^6.5.3"},"devDependencies":{"@types/async-retry":"^1.2.0","@types/cookie":"^0.3.3","@types/minimatch":"^3.0.3","@types/node":"^12.12.14","@types/request-promise-native":"^1.0.17","@types/sockjs":"^0.3.33","@types/sockjs-client":"^1.5.1","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.1","@types/ws":"^7.4.7","cross-env":"^6.0.3","typescript":"^4.3.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"d0bc67ec4624545dcb6e1bce259bbebfd4bd4ebd","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.1","_nodeVersion":"14.17.4","_npmVersion":"lerna/4.0.0/node@v14.17.4+x64 (darwin)","dist":{"integrity":"sha512-MAXdEsTpW0rMLK9At17H8EqY1y6RIWZegpq2XY9Yb1uOJ6F12y7M+nkhjCoZZK63r2aFyu45MEx+l3btR4PGEw==","shasum":"06536cd1ad1872fe6476bc15fcd20600e98ba210","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.1.tgz","fileCount":26,"unpackedSize":32050,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMJFUCRA9TVsSAnZWagAA2QAP/1yJXyBV+9hHycyBI3uW\nD1oSLKpSASxuEoJk2etajXMe5R5qpSYaQCvDnXhQhH/2X61GnAYl3g6UaruY\ngUuvlhOtYxMnjRXZCKxp8pwZ+FtfAgL9sBCQPTkVeHNnqcyUcxyeGArUoZT1\nPT+E6AbaUB1jn3nMMY+BaXVTuIiEJ9z3r6Y9mLm98vOsCHuxD3PTeBGOr3Jt\nFH6nCQXfYk3W9RoC2/RKQeuMGQMzDzoFf0WyK7hHeZu5ktwPxRRk19BKFUcP\nKS9a7be0NQSwVmJm9WsvYTaPbs33Lu6Y9nXoBLumWe+tRcoeM1EYjbj24gDf\nN7dvO7IrVJG9XCKny5dC/9hBH5k5YNflM0ae04uSuBiCMxmF7XaxmuYyv2lx\nB/lykzOSZTMVttji3T5sBLFpw/cUBXfe/5UDr5ipzgeS4C9vHZuIu9vVmvpY\nEpKDABUWVtShZH0UyvLIJfLICfHAIN+95WQlVOlFDbLChHEIac+u9MCMo7uH\nljBNKOGkBVZZmaQB6M6HqA5jafmCzdVG7HPrjlzk2VYtANhKI2WRisYqekFJ\n8kskVL0kAc8dartAED8dbYbmq9Sw7TygQu2+M2rDCgPy1s7+2Vh4okgZvr7e\nUdndFPV0lWRO8OZ+JZ90oF5n0QBXDEl3t7FLdyjyf9dFJcDIk/du88fagqRP\nfLPX\r\n=Mn80\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCA2zpE1Gak8HJ2O2YfbrLySW/V/K9e/ysAMc+JiTHOzQIhAPP4h19SSGh32QJGV2CoxkXVQcGpsntpT4ML6/WLjWiO"}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.1_1630572884268_0.8591783355390283"},"_hasShrinkwrap":false},"0.0.2":{"name":"@fakehost/exchange","version":"0.0.2","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"async-retry":"^1.3.1","colors":"^1.4.0","decamelize":"^3.2.0","lodash":"^4.17.15","make-error":"^1.3.5","minimatch":"^3.0.4","mock-socket":"^9.0.3","request-promise-native":"^1.0.8","sockjs":"^0.3.21","sockjs-client":"^1.5.1","ts-node":"^9.1.1","uuid":"^8.3.2","ws":"^8.2.0"},"peerDependencies":{"rxjs":"^6.5.3"},"devDependencies":{"@types/async-retry":"^1.2.0","@types/cookie":"^0.3.3","@types/minimatch":"^3.0.3","@types/node":"^12.12.14","@types/request-promise-native":"^1.0.17","@types/sockjs":"^0.3.33","@types/sockjs-client":"^1.5.1","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.1","@types/ws":"^7.4.7","cross-env":"^6.0.3","typescript":"^4.3.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"f9e0d20a44cc814ac3c619f8531e3bbba76635e7","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.2","_nodeVersion":"14.17.4","_npmVersion":"lerna/4.0.0/node@v14.17.4+x64 (darwin)","dist":{"integrity":"sha512-tNW36R4w2whpl0ibRIuRpEXepVYF5gmmJ9yshVoYgiBa9//aMEpYYtDIYOKxeJMgCN8r3/qn1yO/HQGhznmRIQ==","shasum":"4d5788acb6402836871e28f0c3d6e322a74e2540","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.2.tgz","fileCount":26,"unpackedSize":32050,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMeMFCRA9TVsSAnZWagAA9EgQAJqABCg1/5lh8m9C9em3\nXDuVGrGVmBTgliMl9p5M1hdAl3SRzuA9BGuA2YP29o49FWZec5lcjWjD3e+U\ntEIHNvFqTRXqOvSV7znETZUdlb5xYJ2gU0Y0maPfNVXo+D5911Mn98un86GG\nXtyS8J0O1HiSbbVVLnvP8CqsMsa7HN/XOoLK1pGBli8ukz8hYxVqlvPdW8nQ\nzdLL+Cmq+5o1ULjLwDmmjfyB/Qhu1kp6OCkAdF+egbFpVxr9sW7L2ZaI0Ydu\n4gh706YguLEmqrbUqL1VYpMb0DZsVvR84u+3CpGDIQrOVtYBVV3kEt0l2w82\nKlkID7OD6KykNw6k13vjtDF1J1OT4/1mVCB4N43Oykox91xvzXRuk2cp8OIj\nY9Xe7LGLVUWyM3gCNyGOw5pr0+BgZwnNFgX7caiwmRSoMCw+pkeMAxE2Ffhb\n1GRN0wMROG64iKW3bFg0wlwV5f1DB6utMvfShOjdIbdi5+GQw9br11hca3wU\n7nkAve1g3mfTvpnHOk/yTe14GCjWB358B7wb/uO4CL44J6aC4CqNgYwgZhIv\nWYwixshL4iCrcb1jF0tY9/DBStTwHAP8B3wQYNyhXKHiIWmRse3UFwQeTggz\nqo994Ibd+Ds/Kb1fXuh03TOr2Az3cdPuoRXx+W52Z86NLJsAKLykkiNTT+Od\nCqrZ\r\n=eAIj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDHdeIplGOrD9zG0IC4l3ORi6G7Lq9phPXsWBlsZYfUAIhAPh1mbBr8JXW0bBnORiJqR0lmr3LI/f9YtB2tPyhSo3n"}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.2_1630659333694_0.7932842827359061"},"_hasShrinkwrap":false},"0.0.3":{"name":"@fakehost/exchange","version":"0.0.3","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"async-retry":"^1.3.1","colors":"^1.4.0","decamelize":"^3.2.0","lodash":"^4.17.15","make-error":"^1.3.5","minimatch":"^3.0.4","mock-socket":"^9.0.3","request-promise-native":"^1.0.8","sockjs":"^0.3.21","sockjs-client":"^1.5.1","ts-node":"^9.1.1","uuid":"^8.3.2","ws":"^8.2.0"},"peerDependencies":{"rxjs":"^6.5.3"},"devDependencies":{"@types/async-retry":"^1.2.0","@types/cookie":"^0.3.3","@types/minimatch":"^3.0.3","@types/node":"^12.12.14","@types/request-promise-native":"^1.0.17","@types/sockjs":"^0.3.33","@types/sockjs-client":"^1.5.1","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.1","@types/ws":"^7.4.7","cross-env":"^6.0.3","typescript":"^4.3.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"1e752ee15d9e70c701c144e062b9f7f08d62bfb8","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.3","_nodeVersion":"14.17.4","_npmVersion":"lerna/4.0.0/node@v14.17.4+x64 (darwin)","dist":{"integrity":"sha512-6Vkvfs467eRj7H3PZ5J4tKE+sJL+CILpweePeP8n21Th3m6BGFGzaukXv3SXwKcvvBGhPs8l9b+79dTLCddTxw==","shasum":"13983523e06674b6caeef76c0062b6f4cc46d3d2","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.3.tgz","fileCount":26,"unpackedSize":31926,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMh2aCRA9TVsSAnZWagAA3uwP+QFD23Jv3B0SXZFBld1O\n6AR02ui1FaoXpKI0NdJMd8+/BSZC4iGztvyjVD4xfRC/hx1sloEPeVT730El\nLGYaH3kYR3VK0o9RT30w2PGd/+J6csRD+SWGRDLoYvBVpkYuXdLBnT8k+dK7\nJGiQy6QXPmnC6+AkwX2GejBX+/mk5pfP/W/uVm6FThOZhSLhSYKy3h0eE6+z\nZRJhf5TbhruaHRb5OaQVyYQa8MDfp9naVzoz0IvMwE2bfbWNokZTn5f043/e\nHiJLV7bEZsh+eIzwlEBVqp2QeDp4iuva+SHbrFSayVtQrx3EDKvQ0lnL8eg1\nEtNZ4IeVAexUsx3bDVS1McehMEjcDDC95W9wjWQtZFHU26wJYmh0cZFcuGTW\n7iHpNZzynMhwKsfe+d5zCftyypaeoxpJW37mOiIQcs2RflvkQed9unQ2yar9\nCjgSh4TAUMyAjzBxFbx6nNK5+TOpkO3Obq5PzjbtFKp1T29Z+V56UiHVfFa3\niKPlS/7MM3Qy1WBHvzs6O4Z6ZQBQnhPx64YbYyqkh2ZVpFHnPgx2epRtk4ev\nZzUgTFSiY/HlYSIyvLJxdo9aK4ediE4+LyTtoCFvuwMu3yYzGkepddjTVJlV\n4vCpbPkEvIZ6AU0dr4IDM/5aLlRzVvyfvA+cKmVA8G0ToJnOYfjX8Q65Y1C9\nwY83\r\n=f00V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDtekW/Q8tlbPuhk9UtdiRz8x2sn30Iiz7PUeEdDo05CAiAu7wDsWfGNytkPvoxpjs6CmFKeqP3tficWpuPi4cVP2Q=="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.3_1630674330282_0.9596186883160993"},"_hasShrinkwrap":false},"0.0.4":{"name":"@fakehost/exchange","version":"0.0.4","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"async-retry":"^1.3.1","colors":"^1.4.0","decamelize":"^3.2.0","lodash":"^4.17.15","make-error":"^1.3.5","minimatch":"^3.0.4","mock-socket":"^9.0.3","request-promise-native":"^1.0.8","sockjs":"^0.3.21","sockjs-client":"^1.5.1","ts-node":"^9.1.1","uuid":"^8.3.2","ws":"^8.2.0"},"devDependencies":{"@types/async-retry":"^1.2.0","@types/cookie":"^0.3.3","@types/minimatch":"^3.0.3","@types/node":"^12.12.14","@types/request-promise-native":"^1.0.17","@types/sockjs":"^0.3.33","@types/sockjs-client":"^1.5.1","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.1","@types/ws":"^7.4.7","cross-env":"^6.0.3","typescript":"^4.3.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"f76acad4b93a802c8363ddd1ee6cdbb4f7c2b0f9","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.4","_nodeVersion":"14.17.4","_npmVersion":"lerna/4.0.0/node@v14.17.4+x64 (darwin)","dist":{"integrity":"sha512-9F5ScDFQKe0j2WtQVaOsO6wXnwNUX8UgCL2yMXL2lfLf96BZnqnnI8Aw669tS2nR2RZUn53NGIs7b/63KyaIPQ==","shasum":"e108122017d4ae35693890b340203b0409b4eb0d","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.4.tgz","fileCount":26,"unpackedSize":31876,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhNkRpCRA9TVsSAnZWagAAY/sP/1lNiLpaF6ApjhwAkzzk\n1cTOnoko3GQpZS4XwBKyCrbDafHysBNWiTJdk/Q3gSZenO27P2owYKTtL+Ap\n7jlDx37xLTgMOr2YlFjGWfFh2y4nG7h530CeMWTzLcp9NSSDLemExLoW1KZC\nwKpbUhSCVw3AoCVsXTCStQC65vIzkn/BfpBtc8PTPNDTqlgbYYGCP2ZaQb8O\nqk+RPt28rR5BwZXXtBhJViN+/V3atmLxtTBLt6JAuJ6+vbTE+UyQikGPnxAv\n861CeDkwV00E1ZBKuMqIc8TS79abbjZFB3LsiAhcfDuvuvGpo9+E7t4YvI4O\nyrC23ivE3Ki1ZOpI9uKE6tGBi4HvyzQIUjsb7EA7D4RaWSY3FNIeA21K1aXn\ngU0d8wxqo3mFLvq1MBBiDSvXJnV7r9P1SDpI2EvszPWV68Db0sB4ameBEtRT\n2DUFgZrpvikgyp4+0kFXN8hlSoPGxrkdFWpYOrt0YIKPa5mbk9kHwivqXy5L\n5+sQo0MhgAYS3PF3tF//vtxfY/Nuvp2pTNkwU22YGyiS7paK+YaA9RzfviOl\n7U+UdFIr9ClOCNzBy2Gl9gzLxTapwOQ0rTsTNszCU4KMx1oZfnyER1gOp2PC\nhSZz/ECcKkT2IaYig4l16IW6mpJPqxpg2K3G8Kp1V+nBiqZwxA3ulTYKWpOk\nKpfC\r\n=/pHm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEwNdlb1zp96dzBwLWkmapo2LVoQ3u5JaSp3LghXt7zOAiABi8Col82GfoEImsRiZSxc5NlgCSmFKm6EvmJDDAnMhw=="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.4_1630946409352_0.6921381150508299"},"_hasShrinkwrap":false},"0.0.5":{"name":"@fakehost/exchange","version":"0.0.5","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"async-retry":"^1.3.1","colors":"^1.4.0","decamelize":"^3.2.0","lodash":"^4.17.15","make-error":"^1.3.5","minimatch":"^3.0.4","mock-socket":"^9.0.3","request-promise-native":"^1.0.8","sockjs":"^0.3.21","sockjs-client":"^1.5.1","ts-node":"^9.1.1","uuid":"^8.3.2","ws":"^8.2.0"},"devDependencies":{"@types/async-retry":"^1.2.0","@types/cookie":"^0.3.3","@types/minimatch":"^3.0.3","@types/node":"^12.12.14","@types/request-promise-native":"^1.0.17","@types/sockjs":"^0.3.33","@types/sockjs-client":"^1.5.1","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.1","@types/ws":"^7.4.7","cross-env":"^6.0.3","typescript":"^4.3.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"80e12c0286fed65f33d8c56b689b48a3c7828e16","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.5","_nodeVersion":"14.17.4","_npmVersion":"lerna/4.0.0/node@v14.17.4+x64 (darwin)","dist":{"integrity":"sha512-Ax6ErbFJnmDykJWTSzosK52Ll4yHXbjXn2f/876ePHJUOlDPxfIT4n1oMMKq2zzkARp/nIcNZL5CIW5171mzEg==","shasum":"d8d858258060feed045d5c71afe70e86eba15783","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.5.tgz","fileCount":26,"unpackedSize":32284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhNyOsCRA9TVsSAnZWagAAEZIP/3w7SbH7D8F0JZlGd678\nFGDsiI5DrTMmDahJ3PZws7DXcEZiwz1r9eRhN0h0vnE3TyT1ve46tBqY/sm9\nKR72KL7sJwc7XgtVNFi4DKbakidqcmh/OicnOqzgypLH/qpQv15SPz+OuctE\n10uYmrD/1mzD/3rxqoPDIYwLnUsfj3FB0Gj0n72HI1yfWFlcxVEGuIetqpSe\nsHBXW8oRRqxsEMgOWFBMHUMCraccMlgp+SyLRmX+gy4GObH7UGBL/9cpCGHQ\n67Mw/nMZuNzAotB3GqvPTYjCgrOMiYWfS2JFN/IlLPOqIE+P5ul4Ks96FKx/\nCayxV1q+IUGegCpMX6Asm7MVBYSb00P0ZH8IY5k8k80BiOi4OiD9qlS9fQh6\nCzBjeYL2tb0GarJ4mN+ud60xTebXzaPKqCaF1uINwgq/CBGcOBrajAiQGhLe\nGXV3Pox+O15t2821RiwbkMo5YfGG5S3+VmrhCm6DG8Atk5ZBm7nx0SWRApW+\nBmvGiktjWsla7lYnEWifWUDvxLp7wq5AQGQRHBU/HQkuUBn4ImC8/mHg7iwo\njkptYiKHOIyeh6rW0Yiw8lwB2HIatYm0SSjbP8calaaQCKmdCKIL4WwoQaFD\nWeY6m/iR1eSNQ1MLiIZjs+2ujcjB4kF33D83y/Ml3S7DqgXLWGcMcnFp9xqh\nEIlX\r\n=r9yd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdH1c9rTu11L686VlrVMdnM+BMDJutf4B5CT6k1ov+swIhAIp/6pl3ku4AISIrvdGph4ITj4xa7/5whlqpGHY0p0Jd"}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.5_1631003564447_0.3581945589250879"},"_hasShrinkwrap":false},"0.0.6":{"name":"@fakehost/exchange","version":"0.0.6","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"async-retry":"^1.3.1","colors":"^1.4.0","decamelize":"^3.2.0","lodash":"^4.17.15","make-error":"^1.3.5","minimatch":"^3.0.4","mock-socket":"^9.0.3","request-promise-native":"^1.0.8","sockjs":"^0.3.21","sockjs-client":"^1.5.1","ts-node":"^9.1.1","uuid":"^8.3.2","ws":"^8.2.0"},"devDependencies":{"@types/async-retry":"^1.2.0","@types/cookie":"^0.3.3","@types/minimatch":"^3.0.3","@types/node":"^12.12.14","@types/request-promise-native":"^1.0.17","@types/sockjs":"^0.3.33","@types/sockjs-client":"^1.5.1","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.1","@types/ws":"^7.4.7","cross-env":"^6.0.3","typescript":"^4.3.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"6eb7bd798a2271238aec77129b64a6d782459148","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.6","_nodeVersion":"14.17.4","_npmVersion":"lerna/4.0.0/node@v14.17.4+x64 (darwin)","dist":{"integrity":"sha512-DSla0tMF8VDZh3PH3027Rgv+PUwoS3Gy/pNPEy1AzYeGcExyXAErhTMWEN/vloxIyaX83dJcSEjpERg4W3+Kaw==","shasum":"c0b002e0453494b688a0221814ca6dc7abdcef2f","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.6.tgz","fileCount":26,"unpackedSize":32284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhNyjDCRA9TVsSAnZWagAAjUEP/12cuKaOhVabanbgn7Je\nKUy2uGhgWiNRROPD8NiQGISE36WeeuQV8PfYPe8J1HZcPaSCwcNiYcVrk1b1\n0kQOTwCr8lJvyr8aLGu7tpXGo6rymTNRLeaOC5L6/UEFTjCouxWX/GkWCyyT\neGAEznhmnHkTHXVLBuEBIhCdUgKq6ESLk8Agio91SWq5AHUgNbGbno+r4iVX\nqzKPWD3hlSxiCC2QJJ2Ll5s6ua/k6Zphdylht7Mbc7zxxyH5qtK6nxvZ8yVK\nfvVr4sDoocCYwnvjgqAvLpqoEG9VwGIPCWumQZfU9X6i5r+bhG0QLPbJHWFa\nNmbdXZ1Q72rsHUwiRTShD/dqBIZRGeuz5ix8zIKlp6nuDUPFhd5Zp1zBEMUl\nRVTFOQt/P+hMzS9QDwK/zHMlFKCV8ZrgJCYYKul7WZxn2nEUqNbeZMGASv5k\nbpyLVDlMM2KRjsm/xkG7kxXOTjKNxSnEttxX44jeNOzl6cQ8Rp/p14qXJziI\n90dLGUeIiZKsFSbTHq+ire2np3HfyG2KMQL5aflLHSJMrN5pJte3G/GxJ/HP\n7a6/gqKvdeRhQILp4x18VunlChYlIvRZNL3aj4AVkeX8PQnQhmb/fIKtm4tE\noSdJarzhqAwEQtRxgCLpW4hqzoU3Vt4L1DhwYzZS3GpbCJV+2nHTmWwUs3xX\nENyo\r\n=wHAv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDPg3JZLqnBK7PI2YWD3MGr9POdfqyVlySuGgrbn6cr5AiBQWlrqO41E1roV9kKCgan3ybnaaewQYmIOK+TENqnfIQ=="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.6_1631004867817_0.6233120966837744"},"_hasShrinkwrap":false},"0.0.7":{"name":"@fakehost/exchange","version":"0.0.7","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"async-retry":"^1.3.1","colors":"^1.4.0","decamelize":"^3.2.0","lodash":"^4.17.15","make-error":"^1.3.5","minimatch":"^3.0.4","mock-socket":"^9.0.3","request-promise-native":"^1.0.8","sockjs":"^0.3.21","sockjs-client":"^1.5.1","ts-node":"^9.1.1","uuid":"^8.3.2","ws":"^8.2.0"},"devDependencies":{"@types/async-retry":"^1.2.0","@types/cookie":"^0.3.3","@types/minimatch":"^3.0.3","@types/node":"^12.12.14","@types/request-promise-native":"^1.0.17","@types/sockjs":"^0.3.33","@types/sockjs-client":"^1.5.1","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.1","@types/ws":"^7.4.7","cross-env":"^6.0.3","typescript":"^4.3.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"ca7f93f606cddf9160bad76f85c460b848eb85f0","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.7","_nodeVersion":"14.17.4","_npmVersion":"lerna/4.0.0/node@v14.17.4+x64 (darwin)","dist":{"integrity":"sha512-BOJA+XmcRgOj/d3o9EEnu2Mh5lwj+UYrz+3eHfGO/bwXPKjtQEiDKYdvPtzprboklve7Z8F7eGDu2CcD0Ikcfw==","shasum":"a78ce554ff9f8d152248ee92e94d560d4de56858","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.7.tgz","fileCount":26,"unpackedSize":33580,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhNymxCRA9TVsSAnZWagAAFxAP/3fNX9nwRn7wYdaDW/6k\nAcU5MUBFGzR00AxdENF+k1JSTeSMUareg9CH5J5aHzOcPxh0MJYz5EU8Ps4E\nbEWCy8nVKXXlm6JYm4nPO7fAX28GoV+OouMYpCdNMeAjYa94KNXMywbqg0ti\naRSMuIlE1+we8vxCrxgK8TiJ+bW/eyThkUznjVomWqOxDJtwUUwpq24BcN51\nd4APorrr7YT6E/kfh7fOdhgkdgqf6W7XuSFbskssLtsib23viYHHYWNgl46D\nHJFEPUuK2xzgA7Khv47PuFr6I+knIM9o/XP8XYsDfW9FdrOSfKP4eF3VnbiA\nM80hM6yIdGE9zcTQLUkpIHkRYDg4eFDDGwQ7I7+vBhTT+vul5/71JcOOlnth\niNC6HSgyfy2ljNqklg02YJ3r6Pf6Wqr4Ur2Nw6r+0IDiezziii0d+qn2diPl\nLRSJ72pbvHkHzGUMwfAqGkTq5DpcQWMmZnyLEIhJxzqW5K8HHCmDf52KcSdB\nY9zM3Akx+shZKh/VOQCqJg61a3wi8sLYPo6YeGHeNQk5exRk7c+PLjtafPYO\nxAz3wJ1ksZP+hTJG3uNhkjX8HNbie44yXjXXQRcaF/CvPQMqqbY5F/wq+ZxG\nKbukmXqY6yOghFr0EYCC64SeZko85+iRfcWtX3VGWV3jDZrzXJRSf4v983I0\nP63G\r\n=ucfV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHlO2oG4Y7pDPEjljIqP3MNSC9vvfxEsq4M6+k/Eq4uRAiEAjWvJhMPXzCXmA9lZCRby/s7Ai+MSCdbiSfPOTJtRrbE="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.7_1631005105019_0.9985233243009912"},"_hasShrinkwrap":false},"0.0.8":{"name":"@fakehost/exchange","version":"0.0.8","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"async-retry":"^1.3.1","colors":"^1.4.0","decamelize":"^3.2.0","lodash":"^4.17.15","make-error":"^1.3.5","minimatch":"^3.0.4","mock-socket":"^9.0.3","request-promise-native":"^1.0.8","sockjs":"^0.3.21","sockjs-client":"^1.5.1","ts-node":"^9.1.1","uuid":"^8.3.2","ws":"^8.2.0"},"devDependencies":{"@types/async-retry":"^1.2.0","@types/cookie":"^0.3.3","@types/minimatch":"^3.0.3","@types/node":"^12.12.14","@types/request-promise-native":"^1.0.17","@types/sockjs":"^0.3.33","@types/sockjs-client":"^1.5.1","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.1","@types/ws":"^7.4.7","cross-env":"^6.0.3","typescript":"^4.3.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"dfd950ed1f2f1531d247a8141985daa0a0853ac6","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.8","_nodeVersion":"14.17.4","_npmVersion":"lerna/4.0.0/node@v14.17.4+x64 (darwin)","dist":{"integrity":"sha512-3F5L+hwVj7tCtZnUTLq+jkUH35igWNG/qmbg0eOLTsM9Xh6ZJnqP6dHofwlGnXCGM/yQ6DwKM+L93j6Wxo+Zzw==","shasum":"32c13bd38592efc556b2daf710c9316afc34094b","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.8.tgz","fileCount":26,"unpackedSize":33819,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOHFqCRA9TVsSAnZWagAAyigP/35dWlS5HZLCRFFVjOKM\nzv4b4gWMjUJcB94oGx27DpBEPI+9sufOpLg2QZFotMYpzsBcjyxS+ANwMp16\nts4pakUeyGVf/PHr6SJJatLPRSz0tFV8tF1GEZCUBScMOQxZw6zNrmWOIhSx\n0/PDOvjjoms5sAfk1UTYnfUHK9ITpBdTkum2vpckQ+2aggk9+t8IiE/ygVRy\nOIVXHxy07wAWEbVCp3/+QRvxFOMt9hIutht51gkU3lgY6MyFupT6oJiUFo76\nhlWVmlzZ7XIQ+TGMyOGQt9UY1SCQzy/5L+yg4zD2uj7xk09gAYOU0iU4qtBB\nGyulHQ/CgILDDnyi8e3867xPaYYzSU20eknMmrJB6qlJA62CxKUVtNWXUry6\npO0Oq4uZruzrlJnZH6ZLTR7jJT+Zh/PEWztKwfb8APQVTVVYaKRZ+0L4G+vM\n1O6bWPyg+AyayQ0yx9NYn6nn2UebvFFqQ2dUFq7jZr3bVKEmPahYjQ35L/IA\n6LBfDvp0dm7vxG6lWD+Xp0yFL5XNMiP2u5EVFibd8nLoPDFnbJPvW7c1dI8O\nqoaEBLEGoFl+SlXFUpWrlrNFCp5k0WVkoYJGTn/agXEr3rQEzNiDcgl9oG7s\n3NZGgZYTeKxn+ZBCImnpL2Qmo/WhowSN88CYCNJnIKn3DW6kPJwL4GFmnUwr\njDKp\r\n=w7Fk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICTVz1dP05aX4wBI2elI8Y209elG22k/01XWES26C/RfAiBOeG2ILFbQGEMAKDgqf3fhbijOOedLmyPS3LyF/ikWRA=="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.8_1631089002872_0.09247309405991233"},"_hasShrinkwrap":false},"0.0.9":{"name":"@fakehost/exchange","version":"0.0.9","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"async-retry":"^1.3.1","colors":"^1.4.0","decamelize":"^3.2.0","lodash":"^4.17.15","make-error":"^1.3.5","minimatch":"^3.0.4","mock-socket":"^9.0.3","request-promise-native":"^1.0.8","sockjs":"^0.3.21","sockjs-client":"^1.5.1","ts-node":"^9.1.1","uuid":"^8.3.2","ws":"^8.2.0"},"devDependencies":{"@types/async-retry":"^1.2.0","@types/cookie":"^0.3.3","@types/minimatch":"^3.0.3","@types/node":"^12.12.14","@types/request-promise-native":"^1.0.17","@types/sockjs":"^0.3.33","@types/sockjs-client":"^1.5.1","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.1","@types/ws":"^7.4.7","cross-env":"^6.0.3","typescript":"^4.3.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"1cce05bb91d8ba988456594942b9355ebba49a9f","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.9","_nodeVersion":"14.17.4","_npmVersion":"lerna/4.0.0/node@v14.17.4+x64 (darwin)","dist":{"integrity":"sha512-vzsQQYafMNnQqC4b4LFk7uyoKqqEwCiKoeQ5z6P4T6dFMSVnMaiJ/JXHliQXfIGlfLHmv41zRzGxN6g/MqdFpg==","shasum":"c31a322420190c6127c03175e9a8f93a105e7dbd","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.9.tgz","fileCount":26,"unpackedSize":34170,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOIaOCRA9TVsSAnZWagAAiNUP/ieu3o8RPnU3m2EVxphd\nki/FkRHNCRiAn20G/X0i3uARQ3jhR2ON362++OvYTkqqcbfVp6LkEdxQGWe0\nWgASgCP/8MHlcTnpCjpU3QVXiCDJm0B02qmHLVU4Cs2z6MS1txFqT2uLhfFE\nyaNbd77xwUZky7keQSRLhAPBsMmZBt14mQfqu34fnC8/BLqnH+GnwmHeAYiq\nCnBad0OiS1oBVlSU1iIunS4OE1r31AbToyPQVi0EwDOjIbDke+wcwbBvA1XE\njX1jRWTeQk+e8yTxxVZC6GOSRTI7r71wlXTXfYLEV4ihy3B1KeeLPwu+Hg6x\nh7omQGVhoyNnJusmAeyrzdV8jAdJrmVVV+fWUBOh+dLGWanCLoYAGvM3wwRg\nEZUaaLPnf4epNuJqrtIgF0kUQWP6ZsLqi4XhzLL+rc1nEum7EYsDRyC4K0dE\nrjx7BLLW1FXSgdRYubcbVLDkyn5uirCXgHaqboH7za8kKyU6LEB5vUJg+oVB\n0xSmdzwic58gzlPYRsIgdBVXMuInvh2cOCiY+/ZtOLCz9mEkwO7iRoNgerPe\nWjGPZElr918qylbnWd/ShUG3I8qh9Bev1QX/g6C4/LVCULAFeXTv58VRUnms\nTKduDCP/+Q3WsovA4YmTCZEXkf8AMUKa5TpULmJmR9SKT8eRta3h2zMLOAu6\nqnXL\r\n=Qt3D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB+/tynT0tDGPRG7Vn8Ic7IBh6HokVifzefmuuB+3VPvAiAjR/kDLF5Z4JFiWfAuHN/jwUwTHLlpwMFOlvWDamfTGQ=="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.9_1631094414221_0.034408304598204875"},"_hasShrinkwrap":false},"0.0.10":{"name":"@fakehost/exchange","version":"0.0.10","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"async-retry":"^1.3.1","colors":"^1.4.0","decamelize":"^3.2.0","lodash":"^4.17.15","make-error":"^1.3.5","minimatch":"^3.0.4","mock-socket":"^9.0.3","request-promise-native":"^1.0.8","sockjs":"^0.3.21","sockjs-client":"^1.5.1","ts-node":"^9.1.1","uuid":"^8.3.2","ws":"^8.2.0"},"devDependencies":{"@types/async-retry":"^1.2.0","@types/cookie":"^0.3.3","@types/minimatch":"^3.0.3","@types/node":"^12.12.14","@types/request-promise-native":"^1.0.17","@types/sockjs":"^0.3.33","@types/sockjs-client":"^1.5.1","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.1","@types/ws":"^7.4.7","cross-env":"^6.0.3","typescript":"^4.3.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"1832611a8211b9e1501b1ab35537e8dff0662ad5","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.10","_nodeVersion":"14.17.4","_npmVersion":"lerna/4.0.0/node@v14.17.4+x64 (darwin)","dist":{"integrity":"sha512-j8+ez3TNpYIkXpNZM8Swse+6hpleLpsFi+RVGhfWshTSRrGGbvqg3nYs1eyPz/W5QuXl7BLfbf/A1VOPKKoNIg==","shasum":"40235d6c404ec089e59f62f154e6b0d88576cdfc","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.10.tgz","fileCount":26,"unpackedSize":34370,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOIjsCRA9TVsSAnZWagAAup0P/3vNA9A8CjJqXui/DJDP\nT8RvQOIrULpLzrif0+liybNyhyOOP4ycCfxbeNeSoOir5SXdAZMFTqrNWn0F\ntYLforqsuHqxVt7GejkgEqvB7zo0pzYLL3mSHkDYXnXfnpuPptEpHXRREBhq\naOQ9GTt/NGFiyF1lOEEycwRvLplDOC9cCedjZ4pUeKLSc8UxnR664uxSzjab\nce2Lx5pVvlGgoNfn7UJoII6+VKE6spOXUfMN77gtSYAseFAjPAeFDXuvzqWh\naYFcu3Fzuh+sPDkNli3vSb3aXodLGbeHgEkF6Famrk4q8jKMnk7peBoIQNQA\nZ5EydivOfwCBikmlyGvdqOY+s0hWWRnH5Y33mpNzzdPpbXPgJlaJSTt5eK4i\nidpSZt7bpUCGz0jx0gZxyipp4X04sDGzFZIw3lFWjDdleZgzPJiS229o1CJz\nj3KRo+XOtML3n3nOmBHoUUyFNs1R299ryKEFPUo4u4H88QZ9u47JmOKfbVPl\nwPXdf2SqTnWgLwESKM3a2rJayqOtXkYeeRi/aeqRO6HDTBeJs3WYVY4n7doE\nQCZpXoZ7tfXXbi8uUYlwTV0IrkOGTUt3B/cB8AkU2nLGYQytqNlrYo4V7M5a\ncPrxH2SO6JSsXAgB0erpEEXFCUEUb5vv7XrvKPOjWbdjwAKMzf8uSxalXz2N\nMzn/\r\n=ZQu/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIACE9bHmsEcXIQIR9ld4IJEPLjk/8InSvJS9wCOAERK7AiBQjLbS/CgUScF8STg39tiLeHO4xPDiIJyvcDiGdRsp3Q=="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.10_1631095020789_0.5678486886313299"},"_hasShrinkwrap":false},"0.0.11":{"name":"@fakehost/exchange","version":"0.0.11","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"async-retry":"^1.3.1","colors":"^1.4.0","decamelize":"^3.2.0","lodash":"^4.17.15","make-error":"^1.3.5","minimatch":"^3.0.4","mock-socket":"^9.0.3","request-promise-native":"^1.0.8","sockjs":"^0.3.21","sockjs-client":"^1.5.1","ts-node":"^9.1.1","uuid":"^8.3.2","ws":"^8.2.0"},"devDependencies":{"@types/async-retry":"^1.2.0","@types/cookie":"^0.3.3","@types/minimatch":"^3.0.3","@types/node":"^12.12.14","@types/request-promise-native":"^1.0.17","@types/sockjs":"^0.3.33","@types/sockjs-client":"^1.5.1","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.1","@types/ws":"^7.4.7","cross-env":"^6.0.3","typescript":"^4.3.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"0c71c2d41126bbbe0fe37b877064d092fad468e5","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.11","_nodeVersion":"14.17.4","_npmVersion":"lerna/4.0.0/node@v14.17.4+x64 (darwin)","dist":{"integrity":"sha512-AXCphGkyB67+2F3VFfcqZwBlqJuBjJlhX8zsGjgBtpJJToffqNzjo+cQJYRiHdCcOBCknPuxI+HSOYjsPaLp9w==","shasum":"5ab61c29a95c66a0046e680dbeee8b9f57794b30","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.11.tgz","fileCount":26,"unpackedSize":34289,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOI28CRA9TVsSAnZWagAAhOIP/1l9aiD4fID+2whVy2Il\nrfhiUgV16IxqAomiKdQGnx8r06SKCxHLTxjDWO+a/e7SW6EwEOWpKgpBAMf3\nwDDRq5+Rxog3ipsdf3cDvdLBIra0kgal7OKnbxokNAJEnEwhrn66KdS/Wi9J\nJc6C5C69t04epW8WEf/Y+FzEWTcV8hqBcsV2g8D4nFha3/Vs72uHVFBT1XsQ\n8Pl/JchCIaG0LrTNpNRUQV5QhGVFFrlpEgmgOnEuC8Ud67TDgKQpWK/qmw0Q\nkvzN/OS/05IrucwAKiXodeHbcayQjBdGX2uoh+WQNMEUahKnvi+b0arRUs1a\nmNbxxeHBlVzlUdRRlT3y0JKOeeOSOABgD7zXoR1vmV4AHJkEEws2+Fgckppw\nUj2dzLZZF9Ifvo6W0rfNYvm1pJjd72GUqekD1sIbvxlJwuafC//HpptRVXzM\nKxSZrtVl0O9oMtTtEh9M0HUyuY1vM50mduS0rnntPxJg8x6JRbfhzmPuA+f5\nb0KCi0LV2+eGFU3PktL4XiE7KoeYPbMF+iifhiOsHzpHu7svoQiz05W+Mpa1\nEa3OYfY89/R7PAVca86vfe21tET4ddsMXkjgHQwN9IrMAN1JJHNsqpI4Lon4\nXPaS8EoKvH8SP3iARMVU4p1/t5rIGems4m6dX94aSCYk7VRfs6y8dWmbqjZI\nGX/Q\r\n=gG/G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGWvJ159Pu6/ImvCU7DmFstewNJCwuMtLLb7QhJe8mndAiASROg6L41nX2oQX4A6/6dXZOhrtxA/nwFvqxN5u9z/1w=="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.11_1631096251988_0.4189951471011035"},"_hasShrinkwrap":false},"0.0.12":{"name":"@fakehost/exchange","version":"0.0.12","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"async-retry":"^1.3.1","colors":"^1.4.0","decamelize":"^3.2.0","lodash":"^4.17.15","make-error":"^1.3.5","minimatch":"^3.0.4","mock-socket":"^9.0.3","request-promise-native":"^1.0.8","sockjs":"^0.3.21","sockjs-client":"^1.5.1","ts-node":"^9.1.1","uuid":"^8.3.2","ws":"^8.2.0"},"devDependencies":{"@types/async-retry":"^1.2.0","@types/cookie":"^0.3.3","@types/minimatch":"^3.0.3","@types/node":"^12.12.14","@types/request-promise-native":"^1.0.17","@types/sockjs":"^0.3.33","@types/sockjs-client":"^1.5.1","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.1","@types/ws":"^7.4.7","cross-env":"^6.0.3","typescript":"^4.3.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"48385c3a78a7814ebe752369dcd81c8aba8c6348","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.12","_nodeVersion":"14.17.4","_npmVersion":"lerna/4.0.0/node@v14.17.4+x64 (darwin)","dist":{"integrity":"sha512-mWD3iRUo0JRH2gyqb3nMXpwG1nM/gSsKGJLOBe0ijZAiirRJRBEUsQxvcIL2VlLsP2GxsBz2PG6Yoh+dmXeTmw==","shasum":"fa5205ed5cb640c305421875653cd4ea91fba1b7","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.12.tgz","fileCount":26,"unpackedSize":34428,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOI7ICRA9TVsSAnZWagAAYP8P/jEaDH+AcVj0NVrt3lyU\nrHIbJbWgjYJFCHUoFVqdj/UuggcjgK5w6Nrp5snfLfN7rWE6ax8ZumZXZdmd\n9NSGSPzavCldBosmIgIeXaB20p3bZ7hk9DgcHo4Okh9f3gv7TJQEV6UxU6ZL\n/MCtPjrITV4XCa2YRfmR+MPLRl9zFLHIVkyxv2bFIi5+aniyQBeS5hZdOwQW\nMc8N6tBQBtfgP2zQu99eht94iCgKBDleYFhFDJdjAoYuIdKl/zac+8j+CqGF\ng5rGXXB/MkPJobsDMTN4hUOahNKjn8o2wlcMQUyGnEgDDNuyRM2oRnPFs7qp\nYcjhf0S01Q/sB5FATUB1QQcx5hzBy4867Uj52egQK5W4PWO3d1u5X1My26lW\n+QaCVjuhnPcG4NgHOutbopfv2EgmyzjAXJQNATMxGu3pgxrj3Gv32ShXn7Lx\nEdQ5l7OdfhPJha6gGRqaa6C7pEJE/bNLvp3ahN+9YTWa1AM3cMj4EiCnl5Di\nBS33vVeOhdKd27R5RFKdwtDxtodj2gTSDOjE8A0pnTQeT0uXqZjOti/ES5qr\nvSp+bHRcy8Gv3SbWcMHqpHRNL2OJ3YTecTuLdQDdLSGtba4ySAtJridMWIJS\noiXzbkiv1chrP6PnHTrk5LLI0ufh/FZlFP9kzggRB4Swa0yKElW27fvQ22Eq\n/gsi\r\n=l0KT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzXOiU1fyNEu53tAc919nKrR1E4VNL0ChVgJdvWOcmKgIgBWkLbiDzF24riSWniOK/NPB9y2bF5sSQrulc+i7dQbA="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.12_1631096520216_0.4680763669076613"},"_hasShrinkwrap":false},"0.0.13":{"name":"@fakehost/exchange","version":"0.0.13","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"async-retry":"^1.3.1","colors":"^1.4.0","decamelize":"^3.2.0","lodash":"^4.17.15","make-error":"^1.3.5","minimatch":"^3.0.4","mock-socket":"^9.0.3","request-promise-native":"^1.0.8","sockjs":"^0.3.21","sockjs-client":"^1.5.1","ts-node":"^9.1.1","uuid":"^8.3.2","ws":"^8.2.0"},"devDependencies":{"@types/async-retry":"^1.2.0","@types/cookie":"^0.3.3","@types/minimatch":"^3.0.3","@types/node":"^12.12.14","@types/request-promise-native":"^1.0.17","@types/sockjs":"^0.3.33","@types/sockjs-client":"^1.5.1","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.1","@types/ws":"^7.4.7","cross-env":"^6.0.3","typescript":"^4.3.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"16746be4a4c15926ee1221dab8832ca6bedfa6ff","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.13","_nodeVersion":"14.17.4","_npmVersion":"lerna/4.0.0/node@v14.17.4+x64 (darwin)","dist":{"integrity":"sha512-ISceuclx6Ouqx1v5ZqdXdKdm+8qZ0V7C7XanzKjiiSgI74gWRVJDodJpfM9KNAuBh+p+Hak3G6lfTB0T967RSg==","shasum":"873226e20f5c19285efd506842058af833570266","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.13.tgz","fileCount":26,"unpackedSize":34187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOJAsCRA9TVsSAnZWagAA9JgP/0ZWeZzoBW3sszwGfj90\nwvBskDvzdN6y5Z4NiOO1/YJpnzkOt5TrWD4Pp0m0pUjXbMROvgED9LHLKCAf\nj2ifHJavV5C3yJOdyia/ZsMdY+vnfFM9Yq8qZk7hgCZW22H+ecAJTEGe+JoS\ne5dP4BSu00LpgmU+B8CsbevPBJD0NyVfP18a8tZ5OY4KVVCzD9V9qhUDPNWr\nuWycofiq7mmTiJYqlEowFX3w7aG0eOX8nzi9f9RlrMlSWOqUqO4DjMlDxY0n\nSClbjdt6tsJyyw7WFzfR5ptKqp82eQn8KCG+vE1RBLBKqT5ZOepevHRuoF2P\n/9QmAqyqfbDdVY4H37XZJnq2+eW5fdLR8xfY9E9+CpBfpW+eOGSdCmhhErBo\nNJO7zSISslqX3yyc8rpDnopDRTm7S6Wwhxyc9HOFv5amyMGZwGWzgn6Kh4LY\nU9KZmuzQ2IW7YEnezWZ0EyqZqVXCv/BU7Wz5gChnEGwbrBPC2Vh62SD7k+Bd\n+usj+0NgjKUYNNTlW7Jq3S6HZ2qUsdJDpKlNLTAPDZPYFt3He18g+R1NMPu1\nPtTajL+kgKUrhuy8+N98gEnO0sMx+OFZpAGD0gb30T3vMS9KWXxorWHRkmWJ\n173pisupGIeB27NlGrXEsqON4WQeoLhwxx9iGtrrFUTUddf3sAv5lX40fsiE\nF6Df\r\n=PFvs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFl6fVZAH1IFM7BK1BTaARNlX5dRph3RPb5xbL1F9OP/AiAt5lkuEvubZuLRp/Tx/R5QgiJdq+DdZpKqDnoKiZTz/g=="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.13_1631096876655_0.8697575114916298"},"_hasShrinkwrap":false},"0.0.14":{"name":"@fakehost/exchange","version":"0.0.14","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"chalk":"^5.0.0","lodash":"^4.17.21","mock-socket":"9.0.3","sockjs":"^0.3.24","ts-node":"^10.4.0","url":"^0.11.0","uuid":"^8.3.2","ws":"^8.4.2"},"devDependencies":{"@types/node":"^14.0.0","@types/sockjs":"^0.3.33","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.4","@types/ws":"^8.2.2","cross-env":"^7.0.3","typescript":"^4.5.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"fec8f4b36ad4e0da59cb8611c3b53dbc6ce84d25","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.14","_nodeVersion":"14.17.3","_npmVersion":"lerna/4.0.0/node@v14.17.3+arm64 (darwin)","dist":{"integrity":"sha512-+dqoNduR8oH3jleKkkYxHfFqTJpx8dnG1l/WvnvZH9gXg4WoWdb5MItb33l3dFNp97LKPhy4hRBzlFR0+NU/RA==","shasum":"8e1525e2103f7d78ca5dd3f7d71e06bd43faf913","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.14.tgz","fileCount":14,"unpackedSize":31887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh87zjCRA9TVsSAnZWagAArb0P/2CfLzotkRWHqgCq2nIf\nJQUUT8grehd0ISMahqZJzHoa1i8qGBgKbzVgInaPD9gskLYCakKoDt8olyXq\nhh/0aNcSeyixI8P7F2Mhy0mZomwr3De+xwNeHatVyCBdfRb0KqKi3fHSdIwy\nheDnHmKmjXgDaSQwOVrXHEaDEa3q2mH/mXk16AsdcZJgkjVy/sDJ5cauMAq8\nsoGNlJcmxrDVqCA9CaI3uUsHfjr37C6p5R7k/1OuCksU4ntW8xXNOAklHStL\nINJV/9tUw2iemr3HfeKsC67SuihQXmoyqCLY8YXaOeYTRxR+DlI/9LlfKy6h\naLpA1LVXxrBFn0nmb+T4W4437CcOtg1aYSL+Zd9XhUz/rUthdxOO9m7CFbXZ\nNRt4OPHe/hqz9MhGXld1P+iGu+kDX+I8K8Y66CX5NiDnAKZDwzXME8AUNhPM\nhysGiS900nAhmbEa9FdWA/GMmf3G/UIphqjfE/8ujXwyq/9DciknCVoZMNM1\nV07PzwdI5orceYgZJs5J/UXEprtHkd1REKF7SSuPiWuvpDTZs2WTadooHHO1\nxqBBBfKxVYahJS12/iaIOASC/HWqwvhPOqdN5rfk5tTLTaZec9kWkzSprhuN\nXg/wJqyIWuRnPCx4fr+AhklRdDzPvTP+23G9BQOo987ub56mclsBD/pKm/cp\n661B\r\n=LAc0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICBugFjj6OQE/y5nMAnNfisZPwa4zqPnCeR7LzQ6cjBcAiApaNyjROXygz91v0Y4CSaD+jgUDWzWnIt9JmTqy0dcsQ=="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.14_1643363555150_0.24722387370269305"},"_hasShrinkwrap":false},"0.0.15":{"name":"@fakehost/exchange","version":"0.0.15","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"chalk":"^4.0.0","lodash":"^4.17.21","mock-socket":"9.0.3","sockjs":"^0.3.24","ts-node":"^10.4.0","url":"^0.11.0","uuid":"^8.3.2","ws":"^8.4.2"},"devDependencies":{"@types/node":"^14.0.0","@types/sockjs":"^0.3.33","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.4","@types/ws":"^8.2.2","cross-env":"^7.0.3","typescript":"^4.5.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"ef075a4163bd8a327ca20a87c48ea21b1c8b4e44","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.15","_nodeVersion":"14.17.3","_npmVersion":"lerna/4.0.0/node@v14.17.3+arm64 (darwin)","dist":{"integrity":"sha512-7hWpads34NfX9ND4NUjY7UuQ4w5F9axY+cm/9zFmpnrR+YAobvm5FQUu94YN1dq7fWXtCpLV2wj9/U6axkv/WQ==","shasum":"c8705bd7a8721c67c3af98ed40d12919bc984763","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.15.tgz","fileCount":14,"unpackedSize":31887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh88G2CRA9TVsSAnZWagAAta8P/RNs9Z8Rngjua+w3ENDM\nq5v1ExKG/ccMChK1PdPqjnbjqksDydJCXEAMK2xKoynOMtF4zLZczh3i/Diw\n9tBUPN76vz3wj/L94XZUTA7nLG/JZPT75MR1b23PUOniKngiS4qUVl3Cv1I7\nA1nk4ZDBbQIQ+pMrpQJuoz9yo6QeBoTaPVUIuVSRIctWnT6OBU8FLDfQXOpI\nda22lDRV52jOTtzA0WziVwIp62ZcUq00/3ZFcjDWR5zzoZ7fSv75uTPOlDmZ\nDzwbw7o6fxiBou9xfz8e1m/CPUhnuinXlzu9H3QGTUzGpbMSPxBtZLuxTqGY\njqkiMdM2h6H/aFdHSSqoyUy3cR7YsjJQxudRp6z/CwsdqEIR3BgMfnBPtivL\n7Lc5xDR+btOm52mKo6LNdZqNcwGMWvdZ6fXTp9NIdw9ueSu1GcKnXt4oKGVD\nyN6IUtJU7zh2xGEwoBnHhLrk/NLwNYG8Lyibc2+MD+3xe6LVn7bEIWIyNyIR\nWt6uaMHiH0f7QjSCRYkyAIW7tm5pSJs845NQE5O7b40M3UCx+T5tpmagGJS3\nv+mQ8RwCiQkU5mz5leM3qtCuRvTIpBEXcPbMSbrMGxk3NlDpLKtUTiMkWktz\nH3UVW78OMB0Y7MXkxD0/7lLTrjl22+el4nZfWchhhowZVZgwpRmQ7dr7yk/W\nXYZY\r\n=VKmq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCHalA4jfDLJUY8Zy6PzARr6v7Yh5vDoW8vdhOscnNvgIgIiB6Hh3d3kVE2DMCFFUPybU/SsFEdBaKz7iYdHU0Urs="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.15_1643364790773_0.8560013898629766"},"_hasShrinkwrap":false},"0.0.16":{"name":"@fakehost/exchange","version":"0.0.16","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"chalk":"^4.0.0","lodash":"^4.17.21","mock-socket":"9.0.3","sockjs":"^0.3.24","ts-node":"^10.4.0","url":"^0.11.0","uuid":"^8.3.2","ws":"^8.4.2"},"devDependencies":{"@types/node":"^14.0.0","@types/sockjs":"^0.3.33","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.4","@types/ws":"^8.2.2","cross-env":"^7.0.3","typescript":"^4.5.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"cb1dacbc843b9dcfcf9659e6ac9c325fba633939","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.16","_nodeVersion":"14.17.3","_npmVersion":"lerna/4.0.0/node@v14.17.3+arm64 (darwin)","dist":{"integrity":"sha512-RdvBIEclH3iaUwUqTGupRCXYBCJfzm+jjHSclqy/GXB6jBJ+aPoRFpXirMQKQy+jG9qdJlG5rriCQEAnPh4Q6A==","shasum":"3158f99e9ae4ccafc2edce3cdffc84f9c6138b53","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.16.tgz","fileCount":14,"unpackedSize":33176,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiIK2ZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpr4xAAmW8af3tMi0SFpPiUfvipsmpG4lHYIUgI6VvRen0h5uzEZaYx\r\nOruefie9Fp9Ma/anrjbMYj4ctHWJ035M6xfWP6pmc2yETnuYW5iCqR22TWNT\r\nj5s//PgeNzHd4eeiDG9uymayV00yAM08bXr8czYYKBNZVGU2kVuWT2nVbgLT\r\ngXEpwKqK96wftqcYLtVHG12AAGb7Q0C+QFy2d4mFy5SkQYDl+BCsW31N9Grm\r\n20I3Mf6Xbp7zq0UWDWFXwH1MTTgLroipiZuA4tieTo5SXvByEH1O58fLJB4X\r\nUMDO4r0zYj5NzbnkFfNbP8hGpApXlPkDqTSXiUI6YG0i0R4i/9BrWnUdx1DD\r\nXqp5HjTCAXAsEWPYc8S/R46gp/s6H2XEq48vPvk91qL85woi/9UbotgCPTGF\r\ncYBI69mRWnWmdoCOftllLtAadlUGPB/RTr0TQaH5dvJotL7t23wfvOLCAHX+\r\nqPKxRzrm4Kpqku1ltFcQk7dh1ifXGHKQGlFJmMMe53rKKKR+wci2noWFrWHb\r\nJbu+Dh23ldOUMo78DtabTtAPNKkSJ+Ki+kTISB1b8wCJMuNQTnhaV/BxQaUY\r\nszY9cWRUcPYDEjnegk1iOs3AtEeHweHdD3zma9EuYMiPyvW4TwSdb9MClv6G\r\n1cGGk/onRqFWkXa77sL/y0aU+KnDdrd7XcU=\r\n=gl0E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfXVlW53UHfpS5ViOEZVYSwGg5IXUbMif8BCGYHL1K0wIgJHE+mQ09G6N/L2HgP1jWSNgQLy9MCIUpWRRyZbLRL2g="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.16_1646308761345_0.036409560767873606"},"_hasShrinkwrap":false},"0.0.17":{"name":"@fakehost/exchange","version":"0.0.17","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"chalk":"^4.0.0","debug":"^4.3.3","lodash":"^4.17.21","mock-socket":"9.0.3","sockjs":"^0.3.24","ts-node":"^10.4.0","url":"^0.11.0","uuid":"^8.3.2","ws":"^8.4.2"},"devDependencies":{"@types/debug":"^4.1.7","@types/node":"^14.0.0","@types/sockjs":"^0.3.33","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.4","@types/ws":"^8.2.2","cross-env":"^7.0.3","typescript":"^4.5.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"2a7fec29dfd6fa2c707fe17be9a479adbe4636a3","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.17","_nodeVersion":"14.17.3","_npmVersion":"lerna/4.0.0/node@v14.17.3+arm64 (darwin)","dist":{"integrity":"sha512-k8wHm6oan3H/yEzC87HV25jVcBnQKbKnMtqXxVGadYsNtotDJ3Zq8nY4gGstK4bjDsn7JjJ5y5hkF4hB4D1bsA==","shasum":"42d243bfeffcef84824525b4ca2985f9bafce2e6","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.17.tgz","fileCount":15,"unpackedSize":34346,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiILLwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrFxxAAlBkjHC39JjqZJBSbe/JEVkrP+7lgIWN2gzm6gZQ/UJLAM4ab\r\ncMgse/TGM5E74YAenCKC2acLnXuofXQ1FeaLqzoPAyB4/hxapRE6dutjW6Tj\r\nccbuyMNLqtS8S4YfluOphdQpPlm5M371+7K93euFXgmmxikZe6EEfqqX9g8s\r\nABA3I12eouYpCyuT4kvdD7iUIXEu7SoA81fj/Zusio71AZlK9cHzO63o7xYQ\r\nvNmecBNQxtK5k42qLm47fhUQCihKjxNemEZLHI6SpHLW0QNLHvxJIzgh7GX1\r\ngn19TXsDhOT/KVV8sx8xa7E4PaQm4dd+60iZQaYMA61Zf10hLIV2XROF1usf\r\nP7izU8Y7meCSr9RjwB4bD2aop6+oOQnsa7157ypWqSsORPqYWWojS1UFC2z+\r\nzlJXTtE0ix2185g7RCCeSJ8bSS3e/lL89/eaaWrBL1jpDGRqcrj+6Xxnk/0j\r\n37Bsurtra99aylCFmOX7F6JRgKeENzGoyyvHrbsBH8nk0z9M/CxshWGslgEi\r\nn7M8lgNKQu/YdLDTj0acMEN2Wt9OuC0ik14fFFTVPx3w/TxHjeDGGfebiCml\r\nCmLVQTKwZbmhEBbuekhxIPmDLF+wfVLk0hxtKbBmcinkMlcysWov3NXrY2/X\r\nW0qIRQSemTx6b15MhhuAno0LYzYSwXIG788=\r\n=gM6t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAutVmjnNek9NIwoXu/zw9eOHwvgubFoGfDu/ooI58cEAiBbkz9GIeWgWW0TuV07EibcTlXuYGV9uj7EfS2z+l1Fdg=="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.17_1646310128444_0.9324800161391396"},"_hasShrinkwrap":false},"0.0.18":{"name":"@fakehost/exchange","version":"0.0.18","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"chalk":"^4.0.0","debug":"^4.3.3","lodash":"^4.17.21","mock-socket":"9.0.3","sockjs":"^0.3.24","ts-node":"^10.4.0","url":"^0.11.0","uuid":"^8.3.2","ws":"^8.4.2"},"devDependencies":{"@types/debug":"^4.1.7","@types/node":"^14.0.0","@types/sockjs":"^0.3.33","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.4","@types/ws":"^8.2.2","cross-env":"^7.0.3","typescript":"^4.5.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"54014705341928720523e5babe3fc30ff2cab25d","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.18","_nodeVersion":"14.17.3","_npmVersion":"lerna/4.0.0/node@v14.17.3+arm64 (darwin)","dist":{"integrity":"sha512-haAzzMlwkcX8AbPUErPdmUKMGawfwD1Odpyg25V4M1U3oKCLDRbb+aYaSpEctOXaqA1W14r6Ck3kA+IHGSdZRQ==","shasum":"d8e8398356d51160a622f9da3599524c7b28da17","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.18.tgz","fileCount":15,"unpackedSize":34514,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiILPmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp18A//a6nu8v7dO3h4iskp7H2obvi7Mfb19f1YryMFnqwoaZwbC7hn\r\nTOybWHRh3b5TUjsHptPFAsGldHX2KlbLVSvClevIn53H8M/nbAa+TOsB1/tY\r\nTazVcSG45QE+H7TXn7FuSnH4SEVIs6TfjtTfUNv1vcDujTjU2NF+RBhtMdwT\r\nOIhFXK5Y1FHPBHaKOQk2jxovH5O6mLYlA3iSudZEEd7r0emeoCQ9FjzUvjii\r\nUsiPbmpTgnWs0AMDqqvPk8wjhxJd5m2uBl/xrvhJCh2SK3rOUcAq1ICy6ioH\r\nxbceORsthzT7bmFDh4MyXPvwB7cBamxQlwjJv2YeW8VhVPv92ySfD990/4cE\r\nGLNon/SWkKKEndffx9Usuy+4YlFhDcxCMMpO+BnhNrA7jaHCjYVaYI5kqv/3\r\n8BNvDv1bCeBFr37aJ02PqsQShUThL9gTzvq1E9c7jPFPCMUeyPYddOLHgpCu\r\n9v0FZUuUbnAHenOM0oiK9t7QOVqVdwFNv/tLHaO/v8hXjIllNb786bfCz3eU\r\n/JnNi+gVtq92Lm1uvhN6r5scffCihgvCpY+0ZuzMhgyAPk/Fco2sj7bIw6Jm\r\nL9W8Z3pAJDorT98tHmXZdVcG6rsUm/0FiS+JpyeZcr70POT/tJRr4NVx8ApD\r\nFH/9Bkr3pG8bEVdiJsVJ18a/af1doC9kXC0=\r\n=9O9F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1CGWPuqR+8x/AjxTKq4Oqmdvn6BuITffxrW739l7KlAIhAJY2hr7duA98tdz/JULWPX8AhScBFeDvNvJ6Fp2sHiB0"}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.18_1646310374300_0.6663696993026362"},"_hasShrinkwrap":false},"0.0.19":{"name":"@fakehost/exchange","version":"0.0.19","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"chalk":"^4.0.0","debug":"^4.3.3","lodash":"^4.17.21","mock-socket":"9.0.3","sockjs":"^0.3.24","ts-node":"^10.4.0","url":"^0.11.0","uuid":"^8.3.2","ws":"^8.4.2"},"devDependencies":{"@types/debug":"^4.1.7","@types/node":"^14.0.0","@types/sockjs":"^0.3.33","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.4","@types/ws":"^8.2.2","cross-env":"^7.0.3","typescript":"^4.5.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"17c6108b87cbea87b871387b9d3c359bcbd825f0","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.19","_nodeVersion":"14.17.3","_npmVersion":"lerna/4.0.0/node@v14.17.3+arm64 (darwin)","dist":{"integrity":"sha512-Fm04vkP6brvFW8jGuKcbWr1UmmLKTXGKNkBJykOJsfjbamyQq00amzB5by2ID45/+Jk9yfIbt2WTRj9wN8N2Rg==","shasum":"64ebf3ccd19325396d6f3ff6a6be59f7b5f361d5","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.19.tgz","fileCount":15,"unpackedSize":34796,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHklRjyUCNSUT2aLfCXFwaWDCX1oJceWRAnpY/x2DhxmAiBhsGimvZJvv2pFjiPx3NM5xYy3HSJSxbD9jNCk8HIAsQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjCJypACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrBbg//UZxRf0D1DugT8ChAjaMhlhz2A93Iz3k8sZXS7Jkhkn/Ve1pc\r\nhI3aagM/zMQdvB/LJOH8E4LVgorIljhi7z4ZQy/G8y2j+TxutyT53zlyHU5Q\r\nbRXyv9CwWd0E+Pmf2JksGCgR2nkfcqfyqH3li/i8DzoQGTNmnS22UoyEN74K\r\nOGeqbt2V8IG+0Q+7pzHraxbgtgKFgrGvRN9CeQOB4Xev6OGhhb5i8sHdh/+t\r\nwFWTOM05NFU56iuT3f5w3LASMYYBfhvEwrHcn+bbp60Shz/4d7XnFxZVO/ym\r\nQe7izkLl3qQHZyacZW0MRdlm1UmaTrIzo0HAZWekPuqZYvAAf5jd7fRHSxNO\r\nA5zM1wr/5ZD6FUnADKhaxLBXGm3pmYIn/VCl+pSvzrK2kJLlT+3OL/Nwj5xZ\r\nqempYfwMPtSscpEy1RQL9s+xF9xZ/zMyQmT/MIXCJa8xrqdTI8pq850+0sEX\r\nidk7aF6d3PdWW4Ttct0r5KhYQuJHEYapnUut2WqhthDyGQjLO5Bl4JT8sn2R\r\nrI54Nu1JHROOYdJTJgb5NU37XGWnqkHVr70W/MWvL1SFCguKVvPPW54gc/bm\r\nV2T3ThhSyctoI2TvNke+pnSsgnHWwQz/5Og8KRAcbSjRENGob6k6ARgIeGN1\r\n3/l29mdE+hyA970hgTN3Vbkoe+DhFj7NOK0=\r\n=rNIj\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.19_1661508777725_0.7006970769924423"},"_hasShrinkwrap":false},"0.0.20":{"name":"@fakehost/exchange","version":"0.0.20","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakes","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"chalk":"^4.0.0","debug":"^4.3.3","lodash":"^4.17.21","mock-socket":"9.0.3","sockjs":"^0.3.24","ts-node":"^10.4.0","url":"^0.11.0","uuid":"^8.3.2","ws":"^8.4.2"},"devDependencies":{"@types/debug":"^4.1.7","@types/node":"^14.0.0","@types/sockjs":"^0.3.33","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.4","@types/ws":"^8.2.2","cross-env":"^7.0.3","typescript":"^4.5.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"452efe9e39c17adc5e16b7c61f6c0a50b14eba92","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.0.20","_nodeVersion":"14.17.3","_npmVersion":"lerna/4.0.0/node@v14.17.3+arm64 (darwin)","dist":{"integrity":"sha512-iTO9JIN6MAbsVkh5qaPfKVmE94a5Pb97J+DL+mj2zpR90VjHfO0i9PT2JYqJMsg2j2K8Gr17ILLGCfSQQt7qqQ==","shasum":"9426f8078c47d0c22bcb4b3bb25cfe37895d6b96","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.0.20.tgz","fileCount":15,"unpackedSize":34841,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCimE5X37q9+xtz6o2S4mCSmTF8+vw/QAey5wALhJUSLgIhAJ9RX2nOOR+36QBLLQYG2QQQjtiGCJyGgadNo6/R1qT3"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjD2fVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrauBAAgDuIKbytLlmZbLfazGkBMdGIPptPn9lXCy2qAiVWDzOaJgrg\r\nMrNnOl+7FyHnBQKYwxiDM1bZF2Kt4QjVLQYOC0mN3kLTYv7jgS8CUjpuj91g\r\ni4LyQ4QU7AQHrA3GCBBfERaSBKhunWpinA7oWHkLZ/lOeE/BuUx4VTVapHW0\r\n0aBMP5bJbrybQDG32AZjNDG0H8rsNqSyafe4DgnqF32bwH4gsziwi8jLBRXy\r\nYRxKIMYf4Zahg/8BZ0vqJRY94JgODNOdHXTQQtls+i5PerOA6PY/akzUWd/n\r\nNrMWOw9x7HOoFmsiQhiJCdas15NkRgRSmSfdllVUf/Zlcxi5bwL4acSt83el\r\nsxzyzJhUQ8WBdSneLAy0+Eh+nZt/+Mz2DLEsjyDuIg6GZrDD/mhjikEpn93C\r\nwI2azKZIMMPwgAXU5hnAlp6lCDuvNtf81qnWAz1G1k1DCXRQocRwFuKc6EqP\r\nihShBiCnMWKAire62uSpVa8P7xlkHDJ+RSDzkJs8AQ2iz6wVl017otuI3Hhx\r\nRcTxGC4Gk0/BUrGyy6EFLmjjWsqrMTzPPVWft1K9UHzIrOfsthzjohRgShzM\r\nrnUvzE6tFafNo8ZjB9i/8FXyyF6iG0Bocl8+igw3HMgj3XY8wLEmus0dvjgt\r\n3NtHPLCKeqgZOlR6kIx6jr0+XWaTmWZvwwE=\r\n=oGoy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.0.20_1661954004774_0.6543797271907084"},"_hasShrinkwrap":false},"0.1.1-alpha.3":{"name":"@fakehost/exchange","version":"0.1.1-alpha.3","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakehost","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"chalk":"^4.0.0","debug":"^4.3.3","mock-socket":"^9.1.5","url":"^0.11.0","uuid":"^9.0.0","ws":"^8.9.0"},"devDependencies":{"@types/debug":"^4.1.7","@types/node":"^14.0.0","@types/sockjs":"^0.3.33","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.4","@types/ws":"^8.5.3","cross-env":"^7.0.3","sockjs":"^0.3.0","ts-node":"^10.4.0","typescript":"^4.5.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"cedc35f674c03e5aadb33efabb496f9e17ca91c5","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.1.1-alpha.3","_nodeVersion":"18.9.0","_npmVersion":"lerna/6.0.1/node@v18.9.0+arm64 (darwin)","dist":{"integrity":"sha512-v12HShvFbM6amy7CGMRjmXrszVeL2VBc9KqgQQJT42nowWoiJBkgYsbmSM4iO/jUhU3VqfRTU955XbQh0y4fKQ==","shasum":"8f86992ee13a8798048fc1f054bac42cc1d1ed14","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.1.1-alpha.3.tgz","fileCount":14,"unpackedSize":43011,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBm5SwvJFQDpmtJrh0kQYxT2pKqRnxJGDXl6MMLthxCnAiEArPh8ZY3Q3h1R8LOpcZ2Ze2HaPUGNhqDkj+Q06X1uwsA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVSP4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr+Pg//dLPfjeSIJgvE/R0+bpPW5lG+WC7MN9ooyk4FCy0rjM2nkZKQ\r\nRHAfSCIXw9uPhMRgBzMZmG/bGI9NDTaq3NUHMygq49D6W1XTrM4J9Bb2MNQL\r\n+iLdzacEgwJkNmaC9Fx1FPwXqv/6ic1wQbDXwK9yEBRXg6QgGvJ/jZqnCgsV\r\na4LJUhXEcbog7Yh3O8rlsVfC/Ki93I77kwNN0pwX7p8gaH9z8tqqrqvEdbgp\r\nzq9TaqLYFFOfAJWiHS7dIdr7eQUCQCDqyoW7+VJt78lQpLokCf/UcNRnva/W\r\n502mGh0kABeH3Vsw0dj/ns/X0c6phHKqqRC+2X4P1gSGMK0NR0nttG3GdW3L\r\nMv7m6WJUjIjhm34t/8nvyJgcSCBK5sHehBQY+0g/w2J4/+QWybQoWtxYsViG\r\nqEtuiakvQnu9AUSV2P3u49ohofsaBKpT+ev8+mdaLm+BlDgXjAhD+zqMFPm5\r\n1RfCjMYfWyAMBhdw/tWI0Fv6BPZXOK6Ey0GmvGEmiEthh1oxH5UxvqbboFxi\r\nLpQFpp/VTQJ6EUdGuPUa6TWam/HzZXpN1W5am47IkBBk+3ZYfnI0HZqJbgoR\r\nq2SbRkRQfEV/IHpaAertexyd1MjrtHa3wqCdWi9ycx03AzMw/lUjthAG4reB\r\n8oFXaM3FBQxndVe2V9cP+Um1n4349Yvo09M=\r\n=Q+gB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.1.1-alpha.3_1666524151956_0.06705514552149805"},"_hasShrinkwrap":false},"0.1.1-alpha.5":{"name":"@fakehost/exchange","version":"0.1.1-alpha.5","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakehost","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"chalk":"^4.0.0","debug":"^4.3.3","mock-socket":"^9.1.5","url":"^0.11.0","uuid":"^9.0.0","ws":"^8.9.0"},"devDependencies":{"@types/debug":"^4.1.7","@types/node":"^14.0.0","@types/sockjs":"^0.3.33","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.4","@types/ws":"^8.5.3","cross-env":"^7.0.3","sockjs":"^0.3.0","ts-node":"^10.4.0","typescript":"^4.5.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"a975d193be8895126b76b22cac75391b076a73ac","readme":"# @fakehost/exchange\n\nDocumentation coming soon.\n\nGives 3 types of fake host:\n\n1. `InlineFakeHost` for bundling directly in a browser. This works by mocking out the websocket.\n2. `WsFakeHost` a W3C compliant websocket service for running in node.\n3. `SockJSFakeHost` a sockjs service as some clients require this.\n\n## Debug Logging\n\nDebug logging can be enabled through the constructor, or via the environment variable: \n\n```sh\nDEBUG=@fakehost/exchange\n```\n\n### Example usage\n\nThis library won't give you much on its own. Instead is a way to support the same fake services code hosted within the browser, or running as a node process.\n\n```ts\nimport { ProtocolHandler, ServiceDefinition } from '@fakehost/exchange';\nimport { WsFakeHost } from '.';\nimport { Connection } from '../dist/host/BaseFakeHost';\n\ninterface IncomingMessage {\n    route: string;\n    kind: 'in';\n    payload: unknown;\n}\n\ninterface OutgoingMessage {\n    route: string;\n    kind: 'out';\n    payload: unknown;\n}\n\ntype SubscriptionHandler = (input: any) => any;\n\nexport class CustomFakeHost implements ProtocolHandler<IncomingMessage, OutgoingMessage> {\n    private subscriptions = new Map<IncomingMessage['route'], SubscriptionHandler>();\n\n    onConnection(connection: Connection) {\n        // Called on a new connection\n    }\n\n    serialize(message: OutgoingMessage): string {\n        // Message formatted for the wire\n        return JSON.stringify(message);\n    }\n    deserialize(message: string | Buffer): IncomingMessage {\n        // Message received\n        const parsed =\n            typeof message === 'string' ? message : new TextDecoder('utf-8').decode(message);\n        return JSON.parse(parsed) as IncomingMessage;\n    }\n    onMessage(connection: Connection, message: IncomingMessage): void {\n        // Handle the message, routing to the subscriptions registered in `subscribe`\n        const match = this.subscriptions.get(message.route);\n        if (match) {\n            // call, handle response. e.g.\n            const result = match(message.payload);\n            connection.write(\n                this.serialize({\n                    kind: 'out',\n                    payload: this.serialize(result),\n                    route: message.route,\n                }),\n            );\n        } else {\n            // Not found\n        }\n    }\n    subscribe(definition: ServiceDefinition<Partial<IncomingMessage>>): void {\n        // Here you want to subscribe to different routes.\n        this.subscriptions.set(definition.destination.route!, definition.handler);\n    }\n}\n\ntype CustomServiceDefinition = ServiceDefinition<Pick<IncomingMessage, 'route'>>;\n\nconst services: CustomServiceDefinition[] = [\n    {\n        destination: {\n            route: 'route/to/service',\n        },\n        handler: (name: string) => `hello ${name}` as SubscriptionHandler,\n    },\n];\nconst customHost = new CustomFakeHost();\nnew WsFakeHost(customHost, 5555);\nservices.forEach(svc => customHost.subscribe(svc));\n\n```","readmeFilename":"README.md","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.1.1-alpha.5","_nodeVersion":"18.9.0","_npmVersion":"lerna/6.0.1/node@v18.9.0+arm64 (darwin)","dist":{"integrity":"sha512-BhMVmEBt0VL9BA2MdvtoFpNqm2+8WsqH8cUfyS2bQNYbYfv7KnQ8dp2qoDY9VH0brl9bIxXuyc6dAvgZhsPTAQ==","shasum":"a84359ff9fbbb07753f5251db0bcb153d3a69126","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.1.1-alpha.5.tgz","fileCount":14,"unpackedSize":40249,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfznGPUpwLIln2jjh/C1EIlPMCqm62bBbOmx4MlyR1nQIhAM3SBKX5oKCQoW485AeuMJhzCX31EeJwMRYRrJ8zZcLY"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVpiNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo1IBAAm/nIsawnoZglD0GLQoqXYViFBHUsLsCjTYvIc20JhXqjsxFs\r\ngFtD0dcXBH3rqDOTtGZc6ry7KIEWMsjbvzdvn7rrFLnAETJmbWAXKoi5w1Hs\r\n9x+jUxEE9SMWTLHqOwfxs0DQNp3QrcghzAxmuy4b62/mzeqAxEIFBPnmqDiq\r\ndRgU/RjY95rnvN8fJ3dTxPbIo8Itj+psOHthbsyBsavUhMm1O1IgWw/h2tsS\r\nFftlu0E8vJu0sOGh66VlwxIkuj0uuF9UEnvTpk42Doan5qcGTZHWV6pKayDv\r\ncbt9ECi1wXy2+gt0eLOqw0TyK9HrBw8Ynjp7QZD+laafP11TfRJT986oSfuk\r\nvqUN4xuON/3ZLk6akdz2Mo3NpVeEy+Uka7A29eXXfbU0OsFbZEqwUmwMyvU5\r\nFktRzPSuXOgMdFYDaDkptWI1La7wiSDVqQaRxeklfOUpzmYqk5IEXQxL5TBT\r\ns78Pxc6vqS2VKi/QEln5od6US/UKMSC1IONK8o9Aw9dBp2G1R/S8NOE8HAJA\r\nFDzyZzkru71CLvXV7ZUffuaMf3TQvW3QqtIxbbV9karYzv2sNQ6ox9FO9YbL\r\nuY+hmX0ek9q+PHtgbaISrvcaccPxkPHQJfg6rXHtXHmhw+7wIiQaKeikHfgn\r\n1GkXbLOxCX3Q6pWibgkYNdB/vtsN/V7RhAM=\r\n=eP6q\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.1.1-alpha.5_1666619533191_0.4411682474830063"},"_hasShrinkwrap":false},"0.1.1-alpha.6":{"name":"@fakehost/exchange","version":"0.1.1-alpha.6","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakehost","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"chalk":"^4.0.0","debug":"^4.3.3","mock-socket":"^9.1.5","sockjs":"^0.3.0","url":"^0.11.0","uuid":"^9.0.0","ws":"^8.9.0"},"devDependencies":{"@types/debug":"^4.1.7","@types/node":"^14.0.0","@types/sockjs":"^0.3.33","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.4","@types/ws":"^8.5.3","cross-env":"^7.0.3","ts-node":"^10.4.0","typescript":"^4.5.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"a8c0ff10e02471a9e73b46ad9081fb1e01542839","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.1.1-alpha.6","_nodeVersion":"18.9.0","_npmVersion":"lerna/6.0.1/node@v18.9.0+arm64 (darwin)","dist":{"integrity":"sha512-q2ELkV30lMZPrAFTuhD2+qrHhvilRuwjMZxLYJBZeofkSoUwtQNswBb9urRiWSzIPKpG4WUi8CzIlSTElEUjlA==","shasum":"5c624ace134d11e6d49ad9a0e26539678c56e380","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.1.1-alpha.6.tgz","fileCount":14,"unpackedSize":40130,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDk27tTTt+UZwT+gvjhzg/zCQqVBnbbhrfZsT0DMAOxawIgZ3fD+IpUkQkROBYbKRXianV/WYolYERb26mpTMvSwXc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjV6VhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoFDRAAkTvtCXJq9wBH6XMp/ZiK56wyEJ6/YUhekqGlySWe0zBAOO6r\r\nELMQSGvWiDMR+mU9DyO0Qt6GT2+kI2PrYfFUzY0IHFCxqjoLxDskW3EVwZl7\r\nWooir51h9JwbyBrIT4sHsRqV4zOxCGICSt8fvLeCHemk9iysseo+nd0PlF3N\r\nJBn8eGpEFZPbDATOG0tSE5feAQUQOrt8p6+7ndjQtulRKmtEuxqtdBEddHxR\r\nzQ3Rprw0ZxO13ZTOOJabsmWcE7uMBg2nj5lxF0IHLmI0h4t0tTqILKOYFTPG\r\nfFv9jKGYQoRr6m5Evs16KsOENAeDHWQrk+t8thTet7h1Use1iytdihjl7qcI\r\nylNWLSDIWeYvsQ7ksYCTb6+7W7vQpon7K+ZvA/Wh/EFYYoDWlvzNMAFojUi3\r\nT1UbXS5u9Of348KtRKCHPRdWvXV7zox4L5WqDTQUWcKa8FMVODWLEGBOwb9F\r\nwDcNuWn0FdtKXt3Q9ut4uOAkzoWqcILBP1yBdjWbugZU7fuIpFrl3/BwBgLJ\r\nOGY9BFP68GqanYBt85Ue01jShPjrTw3EtFTOY/dgARKS+A4O1cRacEz+n8TD\r\nYDHCU4otmqdGurxnas/By1JSEjz1wjZora/b6Q2sP7naGxoBbVrxi53RCF+w\r\nGVGqfy/w1b/K3ySLQtX+6QnfYgPckG8rQIA=\r\n=fO57\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.1.1-alpha.6_1666688353563_0.61636356130979"},"_hasShrinkwrap":false},"0.2.0":{"name":"@fakehost/exchange","version":"0.2.0","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakehost","main":"dist/index.js","types":"dist/index.d.ts","dependencies":{"chalk":"^4.0.0","debug":"^4.3.3","mock-socket":"^9.1.5","sockjs":"^0.3.0","url":"^0.11.0","uuid":"^9.0.0","ws":"^8.9.0"},"devDependencies":{"@types/debug":"^4.1.7","@types/node":"^14.0.0","@types/sockjs":"^0.3.33","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.4","@types/ws":"^8.5.3","cross-env":"^7.0.3","ts-node":"^10.4.0","typescript":"^4.5.5"},"scripts":{"build":"yarn rollup -c && yarn tsc --emitDeclarationOnly","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"0d16f8a25e14de01d34f9b71bf945390d48663a7","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.2.0","_nodeVersion":"18.9.0","_npmVersion":"lerna/6.4.1/node@v18.9.0+arm64 (darwin)","dist":{"integrity":"sha512-wydxlvDIk00c3CUaH600pwvATT7gECOK3GK+k/6DK3rU2GAcURZ2ouUTQd0mFFZC70kPQLYWbE0clgZ9a9g3fA==","shasum":"48f00ca31d9e9a21ec80846212fcbc2edfdb5ba4","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.2.0.tgz","fileCount":14,"unpackedSize":40106,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC2HcbtB7049bvw15XENhfltv9cyJSQZPW8PYOfnpTqFAiEAlLfn682ljycaFCJioiZ9Q764gVp37YxC17x/Lu9JzDQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj19hTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmovkA/6AkIyhAZuXKW3K2y1aWroZt0wdecNB3WZfF6sUqVdih70N9ag\r\nGNOad+bxz3dkBqV71eyAePHe3KDZpuxzbXzQeI76nBsqfy73Z9W4jHc2pFRi\r\nng2v3q50U69ecG/6NfqykZ9RU9tc9/aM4IWy1yhKH2LP6vAac3L6AMVFuoNr\r\nXz310NU1s5xDQLpcdLRRUQOt0cnqf1Bs6jM6hL0Ft7qeZ6u/vrhiEa7wcKpy\r\ntzwTR+yahSHXvUonmyQlLE1LuQgrQn9XDRD5W3b4yHVlFYwj4KXFdBRFWXrU\r\nxrP43pNaUBprkpTO8WhOPRzHCir2mc0Umbd/MnIS/fonc+pK6zc2TX8qd1Mw\r\nYwLi6IFkBLzEKnsfGtLXhyJbhz+ukOt8f53C4m9pT3N6hRf9rGNLXTpPvasm\r\ny8nba6BQjP/GxIRvt9Q5IwqmUULsHLT8RFV37ZK7uqeuBu90JxrlDf8+BKMj\r\nsmydbNfLGrIz6O+zIR4rLiKKDoCaCXT9kVrtAyOzB+JFbXBO6ADi28Aa8Cvo\r\nlyUGebGjwpz3ScJirOy0K1qSfe+DlwrwVJe4HVZssfY70mj8fJ+4BGEgth5u\r\n6VHoDV0LyHncAcrvVgNDC4vWLK6hNIL/pAUK18j2gZ5s7v4sRhk/ljMgiHYh\r\n2nWo8Dxh7/Ixe9qF7kld9ujm2aFRY+AFU2I=\r\n=ie9N\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.2.0_1675090003748_0.625000613719126"},"_hasShrinkwrap":false},"0.2.1":{"name":"@fakehost/exchange","version":"0.2.1","private":false,"license":"ISC","homepage":"https://github.com/ilikejames/fakehost","main":"dist/index.cjs","type":"module","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"types":"dist/index.d.ts","dependencies":{"chalk":"^4.0.0","debug":"^4.3.3","mock-socket":"^9.1.5","sockjs":"^0.3.0","url":"^0.11.0","uuid":"^9.0.0","ws":"^8.9.0"},"devDependencies":{"@types/debug":"^4.1.7","@types/sockjs":"^0.3.33","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.4","@types/ws":"^8.5.3","cross-env":"^7.0.3","ts-node":"^10.4.0"},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --sourcemap","lint":"eslint --ext .tsx --ext .ts src/","typecheck":"tsc --noEmit"},"gitHead":"ffbd038dbab7f8f8614a2c121a90aa6f509ac042","readme":"# @fakehost/exchange\n\nDocumentation coming soon.\n\nGives 3 types of fake host:\n\n1. `InlineFakeHost` for bundling directly in a browser. This works by mocking out the websocket.\n2. `WsFakeHost` a W3C compliant websocket service for running in node.\n3. `SockJSFakeHost` a sockjs service as some clients require this.\n\n## Debug Logging\n\nDebug logging can be enabled through the constructor, or via the environment variable: \n\n```sh\nDEBUG=@fakehost/exchange\n```\n\n### Example usage\n\nThis library won't give you much on its own. Instead is a way to support the same fake services code hosted within the browser, or running as a node process.\n\n```ts\nimport { ProtocolHandler, ServiceDefinition } from '@fakehost/exchange';\nimport { WsFakeHost } from '.';\nimport { Connection } from '../dist/host/BaseFakeHost';\n\ninterface IncomingMessage {\n    route: string;\n    kind: 'in';\n    payload: unknown;\n}\n\ninterface OutgoingMessage {\n    route: string;\n    kind: 'out';\n    payload: unknown;\n}\n\ntype SubscriptionHandler = (input: any) => any;\n\nexport class CustomFakeHost implements ProtocolHandler<IncomingMessage, OutgoingMessage> {\n    private subscriptions = new Map<IncomingMessage['route'], SubscriptionHandler>();\n\n    onConnection(connection: Connection) {\n        // Called on a new connection\n    }\n\n    serialize(message: OutgoingMessage): string {\n        // Message formatted for the wire\n        return JSON.stringify(message);\n    }\n    deserialize(message: string | Buffer): IncomingMessage {\n        // Message received\n        const parsed =\n            typeof message === 'string' ? message : new TextDecoder('utf-8').decode(message);\n        return JSON.parse(parsed) as IncomingMessage;\n    }\n    onMessage(connection: Connection, message: IncomingMessage): void {\n        // Handle the message, routing to the subscriptions registered in `subscribe`\n        const match = this.subscriptions.get(message.route);\n        if (match) {\n            // call, handle response. e.g.\n            const result = match(message.payload);\n            connection.write(\n                this.serialize({\n                    kind: 'out',\n                    payload: this.serialize(result),\n                    route: message.route,\n                }),\n            );\n        } else {\n            // Not found\n        }\n    }\n    subscribe(definition: ServiceDefinition<Partial<IncomingMessage>>): void {\n        // Here you want to subscribe to different routes.\n        this.subscriptions.set(definition.destination.route!, definition.handler);\n    }\n}\n\ntype CustomServiceDefinition = ServiceDefinition<Pick<IncomingMessage, 'route'>>;\n\nconst services: CustomServiceDefinition[] = [\n    {\n        destination: {\n            route: 'route/to/service',\n        },\n        handler: (name: string) => `hello ${name}` as SubscriptionHandler,\n    },\n];\nconst customHost = new CustomFakeHost();\nnew WsFakeHost(customHost, 5555);\nservices.forEach(svc => customHost.subscribe(svc));\n\n```","readmeFilename":"README.md","description":"Documentation coming soon.","_id":"@fakehost/exchange@0.2.1","_nodeVersion":"18.15.0","_npmVersion":"lerna/6.4.1/node@v18.15.0+arm64 (darwin)","dist":{"integrity":"sha512-4//kpDRwy4gpG9IEEhgwW31buljoyfTmaNZqSzUCAF/0gLnP88cenFqigDgN73NUPO7TT8/xLX6Oq727sXspAw==","shasum":"9edb6c023fa6f8c753534643b739db1c05f962b6","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-0.2.1.tgz","fileCount":16,"unpackedSize":65808,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtLm9bc/z9gaU7JiQNjtRa//kY0q2ZyOIrbx9sbZsIwwIhAOqIARyL7forr+nYD7IP+4wugA432ZQ5gnhX2r03dXDQ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQQqRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq4rA//Qy56NGuhI9HIk+uDZphz9fBOZ0qefBS2copFZUDiOof8lBHE\r\nBQbMjvcEyDWFudprlv0kt+Z9GaR/rFPoaPfRZavmFUixWuDh+hHlOUoYZr8h\r\nH0gYSG8AWx5QZ7yX969ThIDaCHgeNTahYoCYy06XiQK898AChaK5q5AYPYiR\r\nC3lJMf8u9KSfJXG1AmPRB4HKWW1yLwlelFI1HiA/8hyCKURdvC0sMw66Kw2w\r\n/3A/NnsqnhrHdW5f5+DioPixvdlJFIi29z6cgKhVRi9frlDIRiy+Sj6S0FWK\r\n/tSvvI3jKHsxsavowO3oo2t8U6QcJS/W9sYu0vRmW08qAtaBdwFe2NIHX0X5\r\nhjd+voPNstjQWyW4VAlL7BMO14+8ElB5NAcHR2C90IuI5s1tu3KvxLtxy1pq\r\nJjZawjVESo8S/+7j19cdnHsWDlQ0eypNrxBZMaImHYPpz4kdZ291Q2NujaOW\r\nQ9dNbhwl9E3nqm2Zo6YwDd2ubVXhaMAxfdpEX0i6/zXNdtH/4pMZGWEehzrO\r\nWLe/tqCRooGwfdDqWq07v8Nw0KqDhnWOw5qJk+qA+DEMuwirJlfLUvNyqKkD\r\nt1WxvxtdlZ4irql82rhZe59IsvCUR2aMY1ed93DxNWrNJDLwi/5gnSRblnI+\r\nUpeKuPDqgqZzCqipqx7aQ3jb7yLwLCCurPk=\r\n=eAVE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_0.2.1_1681984145613_0.6562423674014173"},"_hasShrinkwrap":false},"1.0.0-beta.0":{"name":"@fakehost/exchange","description":"A basic package for building fake messaging services that communicate over websockets. Can run as a nodejs service, or be bundled inside the browser.","keywords":["fake","websocket","mock","ws"],"version":"1.0.0-beta.0","private":false,"license":"MIT","type":"module","exports":{"browser":{"import":"./dist/browser/index.js","require":"./dist/browser/index.cjs"},"node":{"import":"./dist/index.js","require":"./dist/index.cjs"},"default":{"import":"./dist/browser/index.js","require":"./dist/browser/index.cjs"}},"main":"./dist/index.cjs","types":"./dist/index.d.ts","dependencies":{"chalk":"^4.0.0","debug":"^4.3.3","mock-socket":"^9.1.5","sockjs":"^0.3.0","url":"^0.11.0","uuid":"^9.0.0","ws":"^8.9.0"},"devDependencies":{"@types/debug":"^4.1.7","@types/sockjs":"^0.3.33","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.4","@types/ws":"^8.5.3","cross-env":"^7.0.3","isomorphic-ws":"^5.0.0","ts-node":"^10.4.0","vitest":"^0.33.0"},"scripts":{"build":"tsup-node --config ./tsup.config.ts","lint":"eslint --ext .tsx --ext .ts src/","test":"vitest --run","typecheck":"tsc --noEmit"},"gitHead":"ea70cf66499e06a84e25869c6b615d124a979bb4","readme":"# @fakehost/exchange\n\n[![NPM Version][npm-image]][npm-url]\n\n## Overview\n\n**[See the docs for more info.](https://ilikejames.github.io/fakehost)**\n\nA basic package for building fake messaging services that communicate over websockets. Can run as a nodejs service, or be bundled inside the browser.\n\n**This library won't give you much on its own.** Instead its used to support running the same fake service code hosted **within the browser** or **running as a node process**. \n\nProvides two main objects:\n\n- `WsHost`. For starting a websocket service. This runs as a node process which can be started from the command line, or started from nodejs tests e.g. jest, vitest, playwright, webdriver etc. \n- `BrowserWsHost`. For starting a \"mocked\" websocket service. This runs directly within the browser, and is useful for bundling \"fake\" services within Storybook, or a demo application, and for running browser based tests such as Cypress.\n\n**⚠️ Don't use this in production environments. This is for testing, and demo purposes only.**\n\n## Example Usage\n\nFor a full example see [@fakehost/fake-signalr](https://github.com/ilikejames/fakehost/tree/master/packages/signalr/fake-signalr).\n\n### Protocol Handler\n\nMessaging services have many different types of protocols to manage the exchange of messages. Many of these are custom.\n\nLets say we are building a fake protocol handler for a service that has the following incoming message and outgoing message structure:\n\n```typescript\ntype IncomingMessage = {\n    destination: string\n    payload: unknown\n}\n\ntype OutgoingMessage = {\n    destination: string\n    payload: unknown\n}\n```\n\nMessages are all in JSON, so we can easily inspect what the service is doing by examining the network tab and looking at the messages. \n\nAn extremely basic protocol that only supports simple request/response messages could look like:\n\n```typescript\nimport { Host, ConnectionId, Connection, ExchangeEvent } from '@fakehost/exchange'\n\ntype MessageHandler = (payload: unknown) => unknown\n\nexport class MyProtocolHandler {\n\n    private messageHandlers = new Map<string, MessageHandler>()\n\n    constructor(host: Host) {\n        host.on('connection', this.onConnection.bind(this))\n        host.on('disconnection', this.onDisconnection.bind(this))\n        host.on('message', this.onMessage.bind(this))\n    }\n\n    onConnection({ connection }: ExchangeEvent<'connection'>) {\n        console.log(`a new connection \"${connection.id}\"`)\n    }\n\n    onDisconnection({ connection }: ExchangeEvent<'disconnect'>) {\n        console.log(`connection \"${connection.id}\" has disconnected`)\n    }\n\n    onMessage({ connection, message: rawMessage }: ExchangeEvent<'message'>) {\n        // deserialize the incoming message\n        const message: IncomingMessage = this.deserialize(rawMessage)\n\n        // get the handler for the service + method\n        const handler = this.messageHandlers.get(message.destination)\n\n        if(!handler) {\n            console.log(`\"${destination}\" not handled`)\n            return\n        }\n\n        // call the handler\n        const result = handler(message.payload)\n\n        // send the handler's response\n        connection.write(JSON.stringify({\n            destination: message.destination,\n            payload: result\n        }))\n    }\n\n    deserialize(message: string | Buffer) {\n        const parsed = typeof message === 'string' ? message : new TextDecoder('utf-8').decode(message);\n        return JSON.parse(parsed) as IncomingMessage;\n    }\n\n    register(destination: string, handler: MessageHandler) {\n        this.messageHandlers.set(destination, handler)\n    }\n}\n```\n\nAnd lets wire up a handler, and start  `MyProtocolHandler` running as a localhost service:\n\n```typescript\nimport { WsHost } from '@fakehost/exchange'\n\n// start a websocket service listening on port 5000 at /json\nconst host = new WsHost({\n    name: 'fake',\n    debug: true,\n    port: 5000,\n    path: '/json'\n})\n\n// create a new protocol handler\nconst protocol = new MyProtocolHandler(host)\n\n// create a simple handler and register it to handle incoming messages with destination of `greeting`\nconst greetingHandler = (payload: { name: string }) => {\n    return `Hello, ${name}!`\n}\nprotocol.register('greeting', greetingHandler)\n```\n\n\n## Debug\n\nDebug logging can be enabled through the constructors, or via the environment variable:\n\n```sh\nDEBUG=@fakehost/exchange\n```\n\n## License\n\n@fakehost/exchange is licensed under the [MIT License](https://mit-license.org/).\n\n\n## Migrating from v0.x\n\nSee [Migrating from v0.x](https://ilikejames.github.io/fakehost/#/exchange/migrating-from-v0.md)\n\n[npm-image]: https://img.shields.io/npm/v/@fakehost/exchange.svg\n[npm-url]: https://npmjs.org/package/@fakehost/exchange\n","readmeFilename":"README.md","_id":"@fakehost/exchange@1.0.0-beta.0","_nodeVersion":"18.15.0","_npmVersion":"lerna/7.1.1/node@v18.15.0+arm64 (darwin)","dist":{"integrity":"sha512-37kke6qiQrVPzKarxXlEpA6j+vc2QqnerNd0rpi4OVib+tVuni0475fFDV60LgNeWkp/xuP8z0qdvNOh9yjEYg==","shasum":"8f561a35cd40bfcd4e0e829d95ca2fe299134873","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-1.0.0-beta.0.tgz","fileCount":72,"unpackedSize":150493,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGDCZ9QPMIpUmoEf9WLmKRIuf4wprEsrCQIRGRTVtTyvAiEAnZ3yvjrgPojW8BcqJ1BB5s8qoEfuATAT7rWsQAhNjKM="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_1.0.0-beta.0_1691341286736_0.316818190402794"},"_hasShrinkwrap":false},"1.0.0-beta.1":{"name":"@fakehost/exchange","description":"A basic package for building fake messaging services that communicate over websockets. Can run as a nodejs service, or be bundled inside the browser.","keywords":["fake","websocket","mock","ws"],"version":"1.0.0-beta.1","private":false,"license":"MIT","type":"module","exports":{"browser":{"import":"./dist/browser/index.js","require":"./dist/browser/index.cjs"},"node":{"import":"./dist/index.js","require":"./dist/index.cjs"},"default":{"import":"./dist/browser/index.js","require":"./dist/browser/index.cjs"}},"main":"./dist/index.cjs","types":"./dist/index.d.ts","dependencies":{"chalk":"^4.0.0","debug":"^4.3.3","mock-socket":"^9.1.5","url":"^0.11.0","uuid":"^9.0.0","ws":"^8.9.0"},"devDependencies":{"@types/debug":"^4.1.7","@types/sockjs":"^0.3.33","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.4","@types/ws":"^8.5.3","cross-env":"^7.0.3","isomorphic-ws":"^5.0.0","sockjs":"^0.3.0","ts-node":"^10.4.0","vitest":"^0.33.0"},"scripts":{"build":"tsup-node --config ./tsup.config.ts","lint":"eslint --ext .tsx --ext .ts src/","test":"vitest --run","typecheck":"tsc --noEmit"},"gitHead":"84c2c6eb17c64fb1255b844a714280bb7a0dd1e2","_id":"@fakehost/exchange@1.0.0-beta.1","_nodeVersion":"18.15.0","_npmVersion":"lerna/7.1.1/node@v18.15.0+arm64 (darwin)","dist":{"integrity":"sha512-pKwqt4p/YceQ+5m9zA5R+9GwTKgCSs+x4fCk6gt/LZl1TtoK25zZ0xEW+Tvt11bC2ax0IjpG2GUeDQEFs6Az6A==","shasum":"b68927256be05afd660e0ea4110e41f9140a1b62","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-1.0.0-beta.1.tgz","fileCount":72,"unpackedSize":150493,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBYPCHUQHv7RLq1yv0Ti6TO7opfLhOwkhyJzV5Th6thqAiAlB6k+VwNKr+3Pl/AKDbZsYf8cMCjo2aCljBxNDZbsig=="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_1.0.0-beta.1_1696245056708_0.9912081991221577"},"_hasShrinkwrap":false},"1.0.0-beta.2":{"name":"@fakehost/exchange","description":"A basic package for building fake messaging services that communicate over websockets. Can run as a nodejs service, or be bundled inside the browser.","keywords":["fake","websocket","mock","ws"],"version":"1.0.0-beta.2","private":false,"license":"MIT","type":"module","exports":{"browser":{"import":"./dist/browser/index.js","require":"./dist/browser/index.cjs"},"node":{"import":"./dist/index.js","require":"./dist/index.cjs"},"default":{"import":"./dist/browser/index.js","require":"./dist/browser/index.cjs"}},"main":"./dist/index.cjs","types":"./dist/index.d.ts","dependencies":{"blob-util":"^2.0.2","chalk":"^4.0.0","debug":"^4.3.3","mock-socket":"^9.1.5","url":"^0.11.0","uuid":"^9.0.0","ws":"^8.9.0"},"devDependencies":{"@types/debug":"^4.1.7","@types/sockjs":"^0.3.33","@types/sockjs-node":"^0.3.28","@types/uuid":"^8.3.4","@types/ws":"^8.5.3","cross-env":"^7.0.3","isomorphic-ws":"^5.0.0","sockjs":"^0.3.0","ts-node":"^10.4.0","vitest":"^0.33.0"},"scripts":{"build":"tsup-node --config ./tsup.config.ts","lint":"eslint --ext .tsx --ext .ts src/","test":"vitest --run","typecheck":"tsc --noEmit"},"gitHead":"ac16c45ca2fe74b52a6a430a3e484c1d82296dc6","_id":"@fakehost/exchange@1.0.0-beta.2","_nodeVersion":"18.15.0","_npmVersion":"lerna/7.1.1/node@v18.15.0+arm64 (darwin)","dist":{"integrity":"sha512-qQEk7IFNlWZvKksqQJ9XVkfcHbl6eqvmZ+qcyAuxWRcdJ0Yu0oxufebfTv+hifs+PG8UVpQkjksOgwv3ms049g==","shasum":"221685b3de8168260322941ae94523dcf2310dd6","tarball":"https://registry.npmjs.org/@fakehost/exchange/-/exchange-1.0.0-beta.2.tgz","fileCount":72,"unpackedSize":150520,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEiXsC2T2mUzAluGWNFlqmi43ClYg1Y31LBUCuwIB9lKAiAhObNEZXRqcnfFiLroB23KuA7S5e/i1b4mcGZGQKsE1Q=="}]},"_npmUser":{"name":"ilikejames","email":"james.mountain@gmail.com"},"directories":{},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/exchange_1.0.0-beta.2_1696408562609_0.37126202319152735"},"_hasShrinkwrap":false}},"time":{"created":"2021-09-02T08:54:44.231Z","0.0.1":"2021-09-02T08:54:44.422Z","modified":"2023-10-04T08:36:03.049Z","0.0.2":"2021-09-03T08:55:33.847Z","0.0.3":"2021-09-03T13:05:30.423Z","0.0.4":"2021-09-06T16:40:09.536Z","0.0.5":"2021-09-07T08:32:44.600Z","0.0.6":"2021-09-07T08:54:27.963Z","0.0.7":"2021-09-07T08:58:25.146Z","0.0.8":"2021-09-08T08:16:42.990Z","0.0.9":"2021-09-08T09:46:54.378Z","0.0.10":"2021-09-08T09:57:00.918Z","0.0.11":"2021-09-08T10:17:32.166Z","0.0.12":"2021-09-08T10:22:00.416Z","0.0.13":"2021-09-08T10:27:56.787Z","0.0.14":"2022-01-28T09:52:35.314Z","0.0.15":"2022-01-28T10:13:10.912Z","0.0.16":"2022-03-03T11:59:21.481Z","0.0.17":"2022-03-03T12:22:08.573Z","0.0.18":"2022-03-03T12:26:14.469Z","0.0.19":"2022-08-26T10:12:57.912Z","0.0.20":"2022-08-31T13:53:24.987Z","0.1.1-alpha.3":"2022-10-23T11:22:32.276Z","0.1.1-alpha.5":"2022-10-24T13:52:13.402Z","0.1.1-alpha.6":"2022-10-25T08:59:13.777Z","0.2.0":"2023-01-30T14:46:43.952Z","0.2.1":"2023-04-20T09:49:05.817Z","1.0.0-beta.0":"2023-08-06T17:01:26.890Z","1.0.0-beta.1":"2023-10-02T11:10:56.894Z","1.0.0-beta.2":"2023-10-04T08:36:02.845Z"},"maintainers":[{"name":"ilikejames","email":"james.mountain@gmail.com"}],"description":"A basic package for building fake messaging services that communicate over websockets. Can run as a nodejs service, or be bundled inside the browser.","license":"MIT","readme":"# @fakehost/exchange\n\n[![NPM Version][npm-image]][npm-url]\n\n## Overview\n\n**[See the docs for more info.](https://ilikejames.github.io/fakehost)**\n\nA basic package for building fake messaging services that communicate over websockets. Can run as a nodejs service, or be bundled inside the browser.\n\n**This library won't give you much on its own.** Instead its used to support running the same fake service code hosted **within the browser** or **running as a node process**. \n\nProvides two main objects:\n\n- `WsHost`. For starting a websocket service. This runs as a node process which can be started from the command line, or started from nodejs tests e.g. jest, vitest, playwright, webdriver etc. \n- `BrowserWsHost`. For starting a \"mocked\" websocket service. This runs directly within the browser, and is useful for bundling \"fake\" services within Storybook, or a demo application, and for running browser based tests such as Cypress.\n\n**⚠️ Don't use this in production environments. This is for testing, and demo purposes only.**\n\n## Example Usage\n\nFor a full example see [@fakehost/fake-signalr](https://github.com/ilikejames/fakehost/tree/master/packages/signalr/fake-signalr).\n\n### Protocol Handler\n\nMessaging services have many different types of protocols to manage the exchange of messages. Many of these are custom.\n\nLets say we are building a fake protocol handler for a service that has the following incoming message and outgoing message structure:\n\n```typescript\ntype IncomingMessage = {\n    destination: string\n    payload: unknown\n}\n\ntype OutgoingMessage = {\n    destination: string\n    payload: unknown\n}\n```\n\nMessages are all in JSON, so we can easily inspect what the service is doing by examining the network tab and looking at the messages. \n\nAn extremely basic protocol that only supports simple request/response messages could look like:\n\n```typescript\nimport { Host, ConnectionId, Connection, ExchangeEvent } from '@fakehost/exchange'\n\ntype MessageHandler = (payload: unknown) => unknown\n\nexport class MyProtocolHandler {\n\n    private messageHandlers = new Map<string, MessageHandler>()\n\n    constructor(host: Host) {\n        host.on('connection', this.onConnection.bind(this))\n        host.on('disconnection', this.onDisconnection.bind(this))\n        host.on('message', this.onMessage.bind(this))\n    }\n\n    onConnection({ connection }: ExchangeEvent<'connection'>) {\n        console.log(`a new connection \"${connection.id}\"`)\n    }\n\n    onDisconnection({ connection }: ExchangeEvent<'disconnect'>) {\n        console.log(`connection \"${connection.id}\" has disconnected`)\n    }\n\n    onMessage({ connection, message: rawMessage }: ExchangeEvent<'message'>) {\n        // deserialize the incoming message\n        const message: IncomingMessage = this.deserialize(rawMessage)\n\n        // get the handler for the service + method\n        const handler = this.messageHandlers.get(message.destination)\n\n        if(!handler) {\n            console.log(`\"${destination}\" not handled`)\n            return\n        }\n\n        // call the handler\n        const result = handler(message.payload)\n\n        // send the handler's response\n        connection.write(JSON.stringify({\n            destination: message.destination,\n            payload: result\n        }))\n    }\n\n    deserialize(message: string | Buffer) {\n        const parsed = typeof message === 'string' ? message : new TextDecoder('utf-8').decode(message);\n        return JSON.parse(parsed) as IncomingMessage;\n    }\n\n    register(destination: string, handler: MessageHandler) {\n        this.messageHandlers.set(destination, handler)\n    }\n}\n```\n\nAnd lets wire up a handler, and start  `MyProtocolHandler` running as a localhost service:\n\n```typescript\nimport { WsHost } from '@fakehost/exchange'\n\n// start a websocket service listening on port 5000 at /json\nconst host = new WsHost({\n    name: 'fake',\n    debug: true,\n    port: 5000,\n    path: '/json'\n})\n\n// create a new protocol handler\nconst protocol = new MyProtocolHandler(host)\n\n// create a simple handler and register it to handle incoming messages with destination of `greeting`\nconst greetingHandler = (payload: { name: string }) => {\n    return `Hello, ${name}!`\n}\nprotocol.register('greeting', greetingHandler)\n```\n\n\n## Debug\n\nDebug logging can be enabled through the constructors, or via the environment variable:\n\n```sh\nDEBUG=@fakehost/exchange\n```\n\n## License\n\n@fakehost/exchange is licensed under the [MIT License](https://mit-license.org/).\n\n\n## Migrating from v0.x\n\nSee [Migrating from v0.x](https://ilikejames.github.io/fakehost/#/exchange/migrating-from-v0.md)\n\n[npm-image]: https://img.shields.io/npm/v/@fakehost/exchange.svg\n[npm-url]: https://npmjs.org/package/@fakehost/exchange\n","readmeFilename":"README.md","keywords":["fake","websocket","mock","ws"]}