{"_id":"@cogitojs/telepath-js","_rev":"13-4f5a9a64ad46a38c7b2d8fe762f7b7c6","name":"@cogitojs/telepath-js","dist-tags":{"latest":"0.3.0"},"versions":{"0.2.11":{"name":"@cogitojs/telepath-js","version":"0.2.11","description":"Secure communication channel between mobile app and web app","homepage":"https://cogito.mobi/","license":"MIT","main":"umd/telepath-js.min.js","module":"es/index.js","scripts":{"build":"node ./tools/build.js"},"engines":{"node":">=9.0.0"},"files":["lib","es","umd","source"],"devDependencies":{"@babel/cli":"^7.0.0-beta.53","@babel/core":"^7.0.0-beta.53","@babel/plugin-proposal-object-rest-spread":"^7.0.0-beta.53","@babel/preset-env":"^7.0.0-beta.53","gzip-size":"^4.1.0","libsodium-wrappers":"^0.7.3","lodash":"^4.17.10","nock":"^9.2.5","pretty-bytes":"^4.0.2","rollup":"^0.58.2","rollup-plugin-auto-external":"^1.2.0","rollup-plugin-babel":"^4.0.0-beta.4","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-builtins":"^2.1.2","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0"},"dependencies":{"@cogitojs/crypto":"^0.2.11","base64url":"^2.0.0","cross-fetch":"^2.1.1"},"peerDependencies":{"libsodium-wrappers":"^0.7.3"},"publishConfig":{"access":"public"},"_id":"@cogitojs/telepath-js@0.2.11","dist":{"shasum":"9c148755cb667cefe6c7cf7932c13204fc30e9d7","tarball":"https://registry.npmjs.org/@cogitojs/telepath-js/-/telepath-js-0.2.11.tgz","fileCount":36,"unpackedSize":145320,"integrity":"sha512-E/+59xXRMtupxCI7skqfbneuq/ABwNRUlGFjvxV86JShEWj1P579968wtS0MrMWrAhHcPmhlkuSmWiaKTXAWnQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCO/nQMoZty3eBC4PQuqNz9+b5uBdRix0dAANSOXzzd5QIhALmhgycDm5vokbEap5rzD2qa/3eb3F4a8L3j99lXxaim"}]},"maintainers":[{"name":"everydayproductive","email":"marcin@everydayproductive.com"},{"name":"jeroenknoops","email":"jeroen.knoops@gmail.com"},{"name":"markspanbroek","email":"mark@spanbroek.net"}],"_npmUser":{"name":"everydayproductive","email":"marcin@everydayproductive.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/telepath-js_0.2.11_1532647819816_0.7995770545093432"},"_hasShrinkwrap":false},"0.2.12":{"name":"@cogitojs/telepath-js","version":"0.2.12","description":"Secure communication channel between mobile app and web app","homepage":"https://cogito.mobi/","license":"MIT","main":"umd/telepath-js.min.js","module":"es/index.js","scripts":{"build":"node ./tools/build.js"},"engines":{"node":">=9.0.0"},"devDependencies":{"@babel/cli":"^7.0.0-beta.53","@babel/core":"^7.0.0-beta.53","@babel/plugin-proposal-object-rest-spread":"^7.0.0-beta.53","@babel/preset-env":"^7.0.0-beta.53","gzip-size":"^4.1.0","libsodium-wrappers":"^0.7.3","lodash":"^4.17.10","nock":"^9.2.5","pretty-bytes":"^4.0.2","rollup":"^0.58.2","rollup-plugin-auto-external":"^1.2.0","rollup-plugin-babel":"^4.0.0-beta.4","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-builtins":"^2.1.2","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0"},"dependencies":{"@cogitojs/crypto":"^0.2.12","base64url":"^2.0.0","cross-fetch":"^2.1.1"},"peerDependencies":{"libsodium-wrappers":"^0.7.3"},"publishConfig":{"access":"public"},"_id":"@cogitojs/telepath-js@0.2.12","dist":{"shasum":"22f64366d600b3f970fb74c8089cc58832681863","tarball":"https://registry.npmjs.org/@cogitojs/telepath-js/-/telepath-js-0.2.12.tgz","integrity":"sha512-5LRwFLzdDltbkvsODx8Tqs+xVu6zO5h4JI89Cp8HM7jGjdqBMEM9ockAh7eHZAvq6BI4u7vsQSbSi8Hyy5KHOA==","fileCount":36,"unpackedSize":119991,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbj5QdCRA9TVsSAnZWagAAB9gP/0z6+mJNXlKBDFtNMoz5\n5H5HqLCzTMcmYskzhDKVQZp3OfP0D9al18G3DbWUx9kUOw/rTPwAD03zkGf/\naBmaW0cJN28ebudOJvrwFi8GRqB3sw/6NiRFhMVx69lMX4TNXn5hc7MIhmcd\nes1mQV9c4sB7aVqHr6zTy+DAXT5yEhTsX2oMiMHv3INuV7yxiwose6sTufwF\nYnXTBfuxTrTVwaQoS7XsqRe9yt3+LhkGLgokN6UUhfAe3FpPxyocYFx4hAf4\n1JXraQR3XW+L++nhvVoBLc2PjyMCprcGPo/P6jXB5jvYRRyTHCiZgKe+Q0KI\n7na8YKYJi8+HBnCn5jb5zDKuThlPoV/vtm/8oKFJqf0bB7F6YLO0DL1f4ynd\nhSX+glKcOu3tPGThzFhWYMud+kW2l/FhWwn91SnEDCW4TEEBPZDGY/h2/kfy\nfyXBbjer08SMhn3Cq3RfX+2GHhv/peO/fZL3LJN86nMzn3wDslfYkgtNhcSV\nQPrU3QL9yMkHI4OLekEN0pmlIg8uBS23KaHL9PTVQ1tv9A7ZeAHejL362EYe\nMWihfUJANtb5bHVABrG5ToWI8ffrd3TbfzBv95CXMjsa31Gcqv07Hf5kVRdx\n1yo2ECj9OtrGFKoBgTzijILnZYWoSukKVHeiL+8SVausxf/6C/Js8+r3H7nL\nvqXm\r\n=9tff\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEIks/bTz04m7pyWIospJIAVDeIqnOyyJXNYVIzUoawkAiEArXBnPlqabgmRAzed0PtOf9V1b05u0ghbbzwgrMQd0YQ="}]},"maintainers":[{"name":"everydayproductive","email":"marcin@everydayproductive.com"},{"name":"jeroenknoops","email":"jeroen.knoops@gmail.com"},{"name":"markspanbroek","email":"mark@spanbroek.net"}],"_npmUser":{"name":"markspanbroek","email":"mark@spanbroek.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/telepath-js_0.2.12_1536136220813_0.0316431006117297"},"_hasShrinkwrap":false},"0.2.13":{"name":"@cogitojs/telepath-js","version":"0.2.13","description":"Secure communication channel between mobile app and web app","homepage":"https://cogito.mobi/","license":"MIT","main":"umd/telepath-js.min.js","module":"es/index.js","scripts":{"build":"node ./tools/build.js"},"engines":{"node":">=9.0.0"},"devDependencies":{"@babel/cli":"^7.0.0-beta.53","@babel/core":"^7.0.0-beta.53","@babel/plugin-proposal-object-rest-spread":"^7.0.0-beta.53","@babel/preset-env":"^7.0.0-beta.53","gzip-size":"^4.1.0","libsodium-wrappers":"^0.7.3","lodash":"^4.17.10","nock":"^9.2.5","pretty-bytes":"^4.0.2","rollup":"^0.58.2","rollup-plugin-auto-external":"^1.2.0","rollup-plugin-babel":"^4.0.0-beta.4","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-builtins":"^2.1.2","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0"},"dependencies":{"@cogitojs/crypto":"^0.2.13","base64url":"^2.0.0","cross-fetch":"^2.1.1"},"peerDependencies":{"libsodium-wrappers":"^0.7.3"},"publishConfig":{"access":"public"},"_id":"@cogitojs/telepath-js@0.2.13","dist":{"shasum":"c9350629bc4370f5252b4012e3fbe32eb6c9c6d4","tarball":"https://registry.npmjs.org/@cogitojs/telepath-js/-/telepath-js-0.2.13.tgz","integrity":"sha512-KIQumqq7tP9sRv8qXoudmbUEhmUQ3k+Y5Bu7Ag4DBoK/4V0pKvmUg2T/q1bmuWMUXSxvsO7kCybXoY1JhUkQ+A==","fileCount":36,"unpackedSize":125452,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbpOIRCRA9TVsSAnZWagAAStgQAJ6hUFn9fwcxrN3dVKH/\nrIhO2gAGxe2ITT7oa9Js7mdUo6r8cd0bP1abivg9wDJs2rjGT51O3BqiAhZU\nt8fHKd787As34RsbsNmJ7qdbatweZvMGpQ0KhbdaxOSv09raYLNd7wdcIsxp\nrzuEUqLDqY0usFQRJ4CiwBB5sicMC5jUFuNvX1iAIYwnjaZa6M93PaLFxeIL\nRxqmLySwGwXMK1ziAbFgztnGhVLG0PNspHzPjx1wZ6svLBZheytScklRoAlI\njNKD5jKlmONd2s0NkqaYuU0vG4cCI63RT7GsrzgE5BZdDcubbc5+ilx0pPVM\nmFevHOM6Qn2N+DGT3LMesEBEruAoaOzySpJzI5wJqHBpiUohMkD/Jlv46JHb\n0xhdyMNEnDZU8CmqwT4c0QPuy3KOIGyW6bLGI1UY90ju/7ioZJiOBo+ZcwrJ\nugAG7zyOXRbykbP73u8Kh3BBEVyiS93ulVVarHlk1DorsTJ8JxK8mZ4WUZni\nPDoDgnno70N4WhpkG4MjDmsSBnCgC6PVasv3UJHSMx9hn1ZwQNBj9fvs5+74\neE7buHSDORFVY3eHPnamt+Q7nVAIDV65MY8Ban3V6UcmYT2OC05N48OFfprd\nCXrYx1RHRXtpWx+qW80554ansdqB6xRTqhhVkRAE3Fb8HvvBLh+82us0cknl\nRt2a\r\n=pHc3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD97pG52NiD9tLc8BhEVGo2+ojkYQghYIfh8dxdTh/aWQIhAJrVn1ZJH+VruOivp7pw9VsvQ6fz5TMLgsdcw9pbFFYC"}]},"maintainers":[{"name":"everydayproductive","email":"marcin@everydayproductive.com"},{"name":"jeroenknoops","email":"jeroen.knoops@gmail.com"},{"name":"markspanbroek","email":"mark@spanbroek.net"}],"_npmUser":{"name":"everydayproductive","email":"marcin@everydayproductive.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/telepath-js_0.2.13_1537532432941_0.6004806251286567"},"_hasShrinkwrap":false},"0.2.14":{"name":"@cogitojs/telepath-js","version":"0.2.14","description":"Secure communication channel between mobile app and web app","homepage":"https://cogito.mobi/","license":"MIT","main":"umd/telepath-js.min.js","module":"es/index.js","scripts":{"build":"node ./tools/build.js"},"engines":{"node":">=9.0.0"},"devDependencies":{"@babel/cli":"^7.0.0-beta.53","@babel/core":"^7.0.0-beta.53","@babel/plugin-proposal-object-rest-spread":"^7.0.0-beta.53","@babel/preset-env":"^7.0.0-beta.53","gzip-size":"^4.1.0","libsodium-wrappers":"^0.7.3","lodash":"^4.17.10","nock":"^9.2.5","pretty-bytes":"^4.0.2","rollup":"^0.58.2","rollup-plugin-auto-external":"^1.2.0","rollup-plugin-babel":"^4.0.0-beta.4","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-builtins":"^2.1.2","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0"},"dependencies":{"@cogitojs/crypto":"0.2.x","base64url":"^2.0.0","cross-fetch":"^2.1.1"},"peerDependencies":{"libsodium-wrappers":"^0.7.3"},"publishConfig":{"access":"public"},"_id":"@cogitojs/telepath-js@0.2.14","dist":{"shasum":"0a91b0400167ba3f02b41be9a0a4d23648a6e011","tarball":"https://registry.npmjs.org/@cogitojs/telepath-js/-/telepath-js-0.2.14.tgz","integrity":"sha512-H8CxjviNqLqLIsUgI38X24zUcpNcqpnkf3TLFXY4I4N8ympJasLn1D/EqBpSMHAqNrSBdSRHfFHIZO+d7kmTeg==","fileCount":36,"unpackedSize":125450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbpOlUCRA9TVsSAnZWagAAYv4P/RbWSqpTwnEb6+NpYRSm\nfcmG/MdW8DvUmbnDS1+jzXilNipyqKsaGalfi6SYwe7LCh+vSbW7yVp5kqvk\nEyHzPnNCyCBtS3yPR5HfC0p7nseS8sgoV0uDEARlOwEvaIpggmtgYTjHmp/Q\n1xPGUkSVpdut1SO6geHLnKsf5EJ3l+Ob65j70DCtoFOrVoeLmy8jpM9h6DfB\nUjiOxD+GZFT2wkt7YH0Yl+ZXveE3zAu45Ea2qcZ4sRuuFR9TbVqhdWPkT9jm\nSL8pvarfR0O6N0n+Vg9l440WHtYxo3ryub5VK+J6z+CgU1ZRsCaMt5i8yjqa\nJeWmazZEjZsZitvIFbXaOgL9BeNrKqpKs8Bg68pa3pyKkpr21nAw0gZqomd0\n0Nzf9cT+Avc7Ga/XNCttdltY2Xi8gYnYnJkyOwuPud2HgyAKd5ftWbt4N7gL\nLBm7t49BH7cUlnIDbsfaLE4jxeaIOMwqeQBqJGgtLIsvOLEQ9h2DJib7mm2d\nvHlxXwc1OBMNMGDiZLaxp6/NYPvurL49hqiObCVQpmON5PQdBskLexoqUezX\nStSpWQczdbBEhGivFJSrCWOUtGOJ+LL8Qw2JAVpmRh706NY1qi6GosLPCkgG\n9cSQhysT+PVxP7nqKeBlLNMMV8uZ0y7YxsiJYRmJsL2vLsYvMjFFZHkfvf/1\nPQ8N\r\n=G1T0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAHMCFVCy5rKLK70MnoWgTJ31DZxqMMvYiKs3dgfYldpAiAOtddCvJlUzoRYiEeMNCLEMpsOhjkxLfKWqpUKf0CQQw=="}]},"maintainers":[{"name":"everydayproductive","email":"marcin@everydayproductive.com"},{"name":"jeroenknoops","email":"jeroen.knoops@gmail.com"},{"name":"markspanbroek","email":"mark@spanbroek.net"}],"_npmUser":{"name":"everydayproductive","email":"marcin@everydayproductive.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/telepath-js_0.2.14_1537534291768_0.9862832246710544"},"_hasShrinkwrap":false},"0.2.15":{"name":"@cogitojs/telepath-js","version":"0.2.15","description":"Secure communication channel between mobile app and web app","homepage":"https://cogito.mobi/","license":"MIT","main":"umd/telepath-js.min.js","module":"es/index.js","scripts":{"build":"node ./tools/build.js"},"engines":{"node":">=9.0.0"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","gzip-size":"^4.1.0","libsodium-wrappers":"^0.7.3","lodash":"^4.17.10","nock":"^9.2.5","pretty-bytes":"^4.0.2","rollup":"^0.66.0","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-babel":"^4.0.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-builtins":"^2.1.2","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0"},"dependencies":{"@cogitojs/crypto":"^0.2.15","base64url":"^2.0.0","cross-fetch":"^2.1.1"},"peerDependencies":{"libsodium-wrappers":"^0.7.3"},"publishConfig":{"access":"public"},"_id":"@cogitojs/telepath-js@0.2.15","dist":{"shasum":"78ef28b23ebc1c8a3c8fd14ac029e7623cd5dcfd","tarball":"https://registry.npmjs.org/@cogitojs/telepath-js/-/telepath-js-0.2.15.tgz","integrity":"sha512-Yl3EOouOR0C+mOhvlLXsLLPvjoDFupmC1DKVM2MTBGuP4f1uOmS+oWVo5MiAKaaTmgkPOEOkBYKX+KdT7a3FZQ==","fileCount":36,"unpackedSize":125396,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbqnQmCRA9TVsSAnZWagAAWI0QAIIcnI5B3VCS77lcCvBq\n68Hri6T7e1PCHlSHS4fvB8WUclvXfESNEx3FTdhR2Kp2PU6dx28BVPEIvS4L\nG+KD9TY/Aypxo+k+Be+z9MkEURBXykRNuJ5dPX2/OkDQHN+HS3IqCFrYIsge\nNJ+P68gnd6DUjTQK+QReeK/dTWVHN7JCjX1ZoMuWk4Tes1dGsPWQwi4Dvlyv\nq0EpDVJ4NvLSPop46l0UBv+27/FX8klfSkE+hUq2HqSgE7FexjjqJpmelVBR\nz/EhocPT+MGpz+n2gWdCE39RK3c85EZ4oF6LWuoFR7gZiaOCzwatnoukEkA7\ngQwnhXjwp2Kxao8JIQoAYlyOWcKAwKlnxDHjW6z5tFnv4+PJycx4WhJhFnlY\nahzJpECuiDHYul0ZuHfrk96F2JIUkNysWfvzfoYt4oEsg3umVPCcZ9wBNRaJ\ndoewhVeorO5QqXRGuQnjeYRu7Sklj+T81RLznXsc+aGwPnNViDkK0zdj3+Yy\nLCBFvCXBK5v1A+sYRxeriAHAR1dIeBqBujCWTr7RYk7KvguvM9DkIkB2PCst\n8nbEbCoq2Le/xVGiCZDI0r2/qd8zk2B/aeYRkTqNih5x58Wp7ufuu4xMGzgd\n9weRfAujJPu8QmoO/4TdrEefRowGoQrSefE6g7Ucdt29cZVoEVHTCgqFYEZC\nWxwn\r\n=7Dke\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpyZmU/U6EdaGLJj+elUnII0tLdCvs4Ltr5XebTCSoEwIhAOdAw1D4AR+Lc65pd4Ibqku/o/yyy/0mc5Zz7U3MyS2Z"}]},"maintainers":[{"name":"everydayproductive","email":"marcin@everydayproductive.com"},{"name":"jeroenknoops","email":"jeroen.knoops@gmail.com"},{"name":"markspanbroek","email":"mark@spanbroek.net"}],"_npmUser":{"name":"everydayproductive","email":"marcin@everydayproductive.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/telepath-js_0.2.15_1537897509288_0.42807148676875606"},"_hasShrinkwrap":false},"0.2.16":{"name":"@cogitojs/telepath-js","version":"0.2.16","description":"Secure communication channel between mobile app and web app","homepage":"https://cogito.mobi/","license":"MIT","main":"umd/telepath-js.min.js","module":"es/index.js","scripts":{"build":"node ./tools/build.js"},"engines":{"node":">=9.0.0"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","gzip-size":"^4.1.0","libsodium-wrappers":"^0.7.3","lodash":"^4.17.10","nock":"^9.2.5","pretty-bytes":"^4.0.2","rollup":"^0.66.0","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-babel":"^4.0.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-builtins":"^2.1.2","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0"},"dependencies":{"@cogitojs/crypto":"^0.2.16","base64url":"^2.0.0","cross-fetch":"^2.1.1"},"peerDependencies":{"libsodium-wrappers":"^0.7.3"},"publishConfig":{"access":"public"},"_id":"@cogitojs/telepath-js@0.2.16","dist":{"shasum":"354c8e4577834b8feb36dccd732d08ab07377d42","tarball":"https://registry.npmjs.org/@cogitojs/telepath-js/-/telepath-js-0.2.16.tgz","integrity":"sha512-0tHV77pBwm9VeK/g/tcbdMvqNc5A71QqknVYS1Cc98YojPJLgvx5QpLmgwpg4stUMYbVR8a4eDuPqSAYuiSDuQ==","fileCount":36,"unpackedSize":125396,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbq5bJCRA9TVsSAnZWagAArXsP/0mZ7hY9inbtZZTIhSee\nFzcg0U7VCVBEBgLCj6RuRfb8e0qdrEyqU7N3UjxFyQ288yNRLVV19ZeEHj1a\numzHRksQ4QqbBihBZqzlCWTuL/7escIr2DUDhla0iXavapO5IvBJMMieaTgw\ncaAwfVz+p8s7oBM2wGuD1vhNWe/YvRyca2x6gomCRG7lSVCofekd4zJctSoZ\nYVgItFAR8YOlYLn1EdTfOU5024GKKtjRL2seYLHlx5oyGiUc7ypEConjxlIx\nMYiAPSY9Xn+hkWgT31SgeA8af5USeeUM+kTFwo3ijWlLmkv7Wj+rTZSykleH\nZh8vAjjUkXOuXBKHPQoSXwb/G/nDqYOz73OgtZS5F9uY0qe7lqaHzPjWPZRG\nL4+UliRfB0KYB2nL0Fk58ji2YyNvVjqQS9b2fPxMSAaiT17uCdpMZDB49zLT\njvF/zjf6kKM2DkeZmHct+h1GcnT6TyiXV8qnLvsolUeuB8kYlArapFKNqerP\nj3JLSqV0x0B5P17O2T8UXo9O6EIPcckuWirIZXA0MwuNQczwKcEXx/XhrkkX\n09WcrzuP1efT5Qp99mzkJzFNsyiVL+EnIHE8Eej6b4nnxhcJUR23ameB//CW\nELOYqaIp9MnaTV8D+T/Dm4B6lJs7tjIoNrUCbBEDBpCwVAiNmtU8w0wz0ICd\nn3Sw\r\n=9EvO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCezxyw6se2PwatyCyBcBXRcPYZMixw9BZ8G5VS0uINQQIgdoGrSN6tu+MM2IquZN8Kr9BAEbvCza4gVV98QYVJEbE="}]},"maintainers":[{"name":"everydayproductive","email":"marcin@everydayproductive.com"},{"name":"jeroenknoops","email":"jeroen.knoops@gmail.com"},{"name":"markspanbroek","email":"mark@spanbroek.net"}],"_npmUser":{"name":"markspanbroek","email":"mark@spanbroek.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/telepath-js_0.2.16_1537971912958_0.2950743986744866"},"_hasShrinkwrap":false},"0.2.18":{"name":"@cogitojs/telepath-js","version":"0.2.18","description":"Secure communication channel between mobile app and web app","homepage":"https://cogito.mobi/","license":"MIT","main":"umd/telepath-js.min.js","module":"es/index.js","scripts":{"build":"node ./tools/build.js"},"engines":{"node":">=9.0.0"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/preset-env":"^7.0.0","gzip-size":"^4.1.0","libsodium-wrappers":"^0.7.3","lodash":"^4.17.10","nock":"^9.2.5","pretty-bytes":"^4.0.2","rollup":"^0.66.0","rollup-plugin-auto-external":"^2.0.0","rollup-plugin-babel":"^4.0.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-builtins":"^2.1.2","rollup-plugin-node-resolve":"^3.3.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0"},"dependencies":{"@cogitojs/crypto":"^0.2.18","base64url":"^2.0.0","cross-fetch":"^2.1.1"},"peerDependencies":{"libsodium-wrappers":"^0.7.3"},"publishConfig":{"access":"public"},"_id":"@cogitojs/telepath-js@0.2.18","dist":{"shasum":"9328dffdf1ba17ed566897f551884ac40198c50a","integrity":"sha512-hFak/GOKZDvt28jn06O7KyGyI2mCgwAnbV4Zo522+duPY0HQTIaFZKVWaTQx5bdgNmUq9dBr+tkaxuGG67w5Ow==","tarball":"https://registry.npmjs.org/@cogitojs/telepath-js/-/telepath-js-0.2.18.tgz","fileCount":36,"unpackedSize":125398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8vnECRA9TVsSAnZWagAAVWwP/jMATdx69wlw803aeg8u\no8BLIuTlzVaGUaMK5rbHesSVwGefPzzevaMXAkh1Pr7r/gv9V5mhOut1rSLX\nTdFkXM5fF2W4e8zTytV6TD5pp77fKnYgqsvxvao1MVJAHMU38HmFjRI8R3QB\nlWxWplrchVo00nfORJryGRzJW1YOq1tSj7WpOjd49SCFVJ9IpQZBpFEmXFAP\n6BAifKmhMBGYXBF2xknfBhaHFWVpiwMdDRPZlDjWPll5mOGsGx/bIyOoYkch\nz2QNvEM585esa9+y4+kASOtp/tRjQuYyFsT9mGF6Nu+AQshjIoyIYrrKtHfK\nTO4OoDOPejCNbfyrowK+MpygaXlM/YkWl71Ur805b+UOeCvkPUR50jjW69oI\nEJGZlvz6dEc8U/nZ+kDrhssP9Urd0NL0Cjo2qcnA0vNwLDao2gfFblhWl4DS\nLhElX0RAIFn2r3ZBgUBsUtDrmwAPmvjOKFoK5GneHcjFARq+vFZd/4mwmzPD\nxq1c4PdJcSdQcgWt89NgvulZMauVlbOlku3Z1cAER6+Mh9N4kX4CeiZVkWX+\n25xzxiB2HPZpCXV/YgbsYKZx22mIMRqrRlzZfeLklcUd0kIfkvgXMskfgDQl\nYbeXFHQjbvXcRI8y918siIB4R5k7VT6WmPL8qM8WlFmiXlyDJ2wf66PNKcDk\ng3jI\r\n=VdiA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjg2nyU8lkJKhcmqFH95/WOEmxF848TANOqWauF7UMfQIgI/254DfSv4X8pdBRyuQDFutk9sZuOAJL3hZpSgCw7ww="}]},"maintainers":[{"name":"everydayproductive","email":"marcin@everydayproductive.com"},{"name":"jeroenknoops","email":"jeroen.knoops@gmail.com"},{"name":"markspanbroek","email":"mark@spanbroek.net"}],"_npmUser":{"name":"everydayproductive","email":"marcin@everydayproductive.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/telepath-js_0.2.18_1542650307640_0.3866413363680532"},"_hasShrinkwrap":false},"0.2.19":{"name":"@cogitojs/telepath-js","version":"0.2.19","description":"Secure communication channel between mobile app and web app","homepage":"https://cogito.mobi","license":"MIT","main":"lib/index.js","module":"es/index.js","scripts":{"build":"node ./tools/build.js"},"engines":{"node":">=9.0.0"},"devDependencies":{"nock":"^9.2.5"},"dependencies":{"@cogitojs/crypto":"^0.2.19","base64url":"^2.0.0","cross-fetch":"^2.1.1","libsodium-wrappers":"^0.7.3"},"publishConfig":{"access":"public"},"gitHead":"e1e293e20c36b248606cc79820652e5336c856dc","_resolved":"","_integrity":"","_from":"file:cogitojs-telepath-js-0.2.19.tgz","_id":"@cogitojs/telepath-js@0.2.19","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"everydayproductive","email":"marcin@everydayproductive.com"},"dist":{"integrity":"sha512-hdrRjeYrW9tUFKW7spyequi6W2aHdv0ARj3FCBQoa18+nEDxzZAbPfFI9XH/rwaEBVcm8duDJg9zQXDFdD5egA==","shasum":"a7f3667630d970160b589010ef516ab984214ef2","tarball":"https://registry.npmjs.org/@cogitojs/telepath-js/-/telepath-js-0.2.19.tgz","fileCount":44,"unpackedSize":100350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcM4QBCRA9TVsSAnZWagAAr08P/R5uvHgYPLYrIqeclFve\nSSoMR6F2MkJ4nbltqlzYxmA1pCwBvxxa3HuFHm6uuX1bhhgKtucR/ivDUxTP\nPA8vtOCxXcKANF24vztMX6bZn++ExKLUyKN62vwj29wNAPkDlDbbCRQyjkj5\n32WnWQ2svPK+C/s4h6TR3aehQO09mKP08TVpL1MXTGKewpqQw8vP6m8GBs0H\noaODcpluG/5qboLwcdgbYNUJI/Pw7wGKgyFMHKKTx2dtLrgo/6hxFH4yCP1n\nWuijfAfcW3f6/eHO2JPYbT8lsd30F22sQQC5SRB1t4cat+rcNbnLXwDQWUJK\n3h0NHP8AkCp7/x04U5H/y9JClKrzOpiOGVeujGSwLcfNQWcTHeYBLHI/AlU/\n5FTbpuNNNRepJ5FcYYXIO36lcbLS3mgl4S+zRQde37RiP6aCfyIrOjgSNnfW\n0GsOVkzvEcku+WRVNFAZXhpLy0yqVkDa/ocJF3Q+4/8VnxLVTaKvr8rTyCbo\nZxOmJS2AXKuorvLTrCXfmv34UDbobDYtgu5Vx+cjajawk9D7UOCNzKThiWhW\nC9lZAsSslKI8YW3qV8nkQETbkRSJ6RXbu3dhZSPQX4FWmtEHWb07wqxgwcEc\n1yDqj0SU93Ga5Qe2/glzsPt4pEMZrreBZlD5O7JUpRrbSgJrl/dglMlP3HL3\nf0PF\r\n=Qivb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC2Im0pDJsA7Lvb4q7DdDrIBihuNZ23pAUMEH8MzFdbqAiEA2jdfEvzYayugg/4zYSYI7MRMJY4uYfew3t665VUPNfk="}]},"maintainers":[{"name":"everydayproductive","email":"marcin@everydayproductive.com"},{"name":"jeroenknoops","email":"jeroen.knoops@gmail.com"},{"name":"markspanbroek","email":"mark@spanbroek.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/telepath-js_0.2.19_1546880001401_0.4960918931029945"},"_hasShrinkwrap":false},"0.2.23":{"name":"@cogitojs/telepath-js","version":"0.2.23","description":"Secure communication channel between mobile app and web app","homepage":"https://cogito.mobi","license":"MIT","main":"lib/index.js","module":"es/index.js","scripts":{"build":"node ./tools/build.js"},"engines":{"node":">=8.0.0"},"devDependencies":{"nock":"^9.2.5"},"dependencies":{"@cogitojs/crypto":"^0.2.23","base64url":"^2.0.0","cross-fetch":"^2.1.1","libsodium-wrappers":"^0.7.3"},"publishConfig":{"access":"public"},"gitHead":"558949fc0d06f7d63e451c85dcb8fb6594c7cf71","_resolved":"","_integrity":"","_from":"file:cogitojs-telepath-js-0.2.23.tgz","_id":"@cogitojs/telepath-js@0.2.23","_npmVersion":"6.5.0-next.0","_nodeVersion":"11.6.0","_npmUser":{"name":"everydayproductive","email":"marcin@everydayproductive.com"},"dist":{"integrity":"sha512-HsKPiPV3OBmbJbPDk/sGDGwi858TU9+/O/sNMwZPtfqk8tx3TTBpSy0sChXcLYWXoAaR+cKBKBTUfkehoI6spw==","shasum":"dc0c45ebcf8cfc804db03039f79307d28150f076","tarball":"https://registry.npmjs.org/@cogitojs/telepath-js/-/telepath-js-0.2.23.tgz","fileCount":44,"unpackedSize":91943,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcVFeACRA9TVsSAnZWagAAUxEQAIjns2WtJNVaQA3ezXEM\nLw4Q//SbFxE6wQ1QIwxPswV2TgTu2J/AoTDKqSDIHIAkRNAbJ1e6df9MXp6m\nwXGX5xr+U7hjR3lDEX8R4q48KRd5hXGgvILSnu3n/wp5kyK+VQBbZkpnqw7P\n6MFbrJ1xO2xj7RNWQopg0FVlAy0lRR5SVXU1lZZnMM9ayBMPvGOpe5S0K7Ka\n3DLCDb5UvNrcR2tysdIG2rmTGbiBLBGaGjAjQSnZqQP2sRE1pl7OiW6roXZJ\n2lPNDUoBNycA0k9AWPt5MeGPMuXECL1tA0FglHqhwjxSBZG6aSL2/8Q0fUv6\nL76xMlBiOGNv88Dld+PSMKi88IHnQehgumPoOhKQHh76+01HV6Y657NxGWtv\nE4CpZgGG4T7vA4GqiPesGDzaq2fEypzj9wEtK2JRwmJcH8o35WSWmcINg57V\n6kghQwvGlWvthMo/TaUZguEIj/pjxGiYfQn6mVUAvxLsTQSE+b8A0mcsV5in\nlBBZniZfQTxjAi8zntPmwf5kIWPsSQz6YP7xesBKhZuHizlEnw2w/1uNDtD+\nhmvvooMxEbc+yCErjPoXWT7alpdP4oF9FrV5a/g1E9Dmg8qvvhI87WmkPBUo\nx0JEVxcQoZkwGMZEfdGG9pXNnQNnK0ZirRDoNKJsTCKqE7Ql5d6PKTG5rggT\n/Lv9\r\n=zm60\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBYVKynoQIGIgYkSs+dE2tXxVZkBsVpkR73c2jhVo35AAiEAtYX6k+kshQWTGMtrc6H+McXx/TTHPM5abYZ90jYp6Yc="}]},"maintainers":[{"name":"everydayproductive","email":"marcin@everydayproductive.com"},{"name":"jeroenknoops","email":"jeroen.knoops@gmail.com"},{"name":"markspanbroek","email":"mark@spanbroek.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/telepath-js_0.2.23_1549031295519_0.4289704001804149"},"_hasShrinkwrap":false},"0.3.0":{"name":"@cogitojs/telepath-js","version":"0.3.0","description":"Secure communication channel between mobile app and web app","homepage":"https://cogito.mobi","license":"MIT","main":"lib/index.js","module":"es/index.js","scripts":{"build":"node ./tools/build.js"},"engines":{"node":">=8.0.0"},"devDependencies":{"nock":"^9.2.5"},"dependencies":{"@cogitojs/crypto":"^0.3.0","base64url":"^2.0.0","cross-fetch":"^2.1.1","libsodium-wrappers":"^0.7.3","socket.io-client":"^2.1.1","timeout-callback":"^2.0.2"},"publishConfig":{"access":"public"},"gitHead":"e6dfe2f2da5877de36fde1e9267096bc030b8d0d","_id":"@cogitojs/telepath-js@0.3.0","_nodeVersion":"11.13.0","_npmVersion":"lerna/3.13.1/node@v11.13.0+x64 (darwin)","dist":{"integrity":"sha512-gxIt5Xw05gQLQ4qX+m9vYQPAV67ZWF5y9AeVz9QEJ14mWwo+I3/4Qz7UleR1KXLiamJUhi0XpmRPri6E7gzlww==","shasum":"93fed811e62864160883e903bfa10a2ecbdb7f51","tarball":"https://registry.npmjs.org/@cogitojs/telepath-js/-/telepath-js-0.3.0.tgz","fileCount":61,"unpackedSize":179625,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwBGaCRA9TVsSAnZWagAAA0gQAJohm7E+zs91+B6EPal6\nnXhhnRKAJKIf8F953FT6fpyCg2IMeYa/DHOAhALhC7TUeJ/W7bGSdOSYtZ/a\nr2U7Zg25KMSJbvnUPY+P6PNx3KAe1dD/mx/RuOMq+gxgL3KFq9iHKkYwECFG\nQPBDMCm/VtIXUPRbrxibM6MzyomFygIQaZrxe7Bfe/Jn993AP0dGWgCHyW5h\n6eT7PcfiaHa8Vs5UofQT4BoE/l0aGV/R1a3OepqyLjtq25pRAV6E7Jax2eW4\n9imKvrpxu9f+M40MS4h7UvtEpJ8Eu4Pq/a+sRR9coYielhMmmQZ9WnM1JaJ3\nZTo89AoWn5zHwV+eQTe+09cT25QIPWp/IYfUgg7X7I4L+CUjtWdyU1q1cGYg\nyWp1p0BEO7lncTDKg6xv5m7FwV4P/1EG9sXsqqxJ65Ea3haZn90ZIweSGyIR\nKSYzYlwAtaTPd5xluCB6ORDEXO5/qDY9OlIkZzPUigDF17G4zbmTDYNIQMdn\n+S2iXjx+x92j82IoEIhs1tk7ArC2P6KJNbZkXX2Jykajm3hVOb0YIZOoySw3\nC2xB+lfiqZtHRXMhJZJD6nPN6fStFL53bjxcnug4AUq0ggReZWNPMCsNBD5u\nkn1HxUecYNse/GykcISowWn6+NRbHHDTFKlF2NxJSS0ok/AaeSOMUcDhXr5v\nL8Su\r\n=OliN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBlx6YUUzbayrMiIKeaT7/Jjzo35YXucJzoJQPjlXJ5+AiEArlgurlEjDGk7NnzFmcoo5c+lJXl3AklFNicCkJ6ueVw="}]},"maintainers":[{"email":"marcin@everydayproductive.com","name":"everydayproductive"},{"email":"jeroen.knoops@gmail.com","name":"jeroenknoops"},{"email":"mark@spanbroek.net","name":"markspanbroek"},{"email":"philips-software@philips.com","name":"philips-software-fa"}],"_npmUser":{"name":"jeroenknoops","email":"jeroen.knoops@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/telepath-js_0.3.0_1556091290035_0.9194442768326132"},"_hasShrinkwrap":false}},"time":{"created":"2018-07-26T23:30:19.782Z","0.2.11":"2018-07-26T23:30:19.917Z","modified":"2022-06-12T16:20:49.154Z","0.2.12":"2018-09-05T08:30:21.001Z","0.2.13":"2018-09-21T12:20:33.052Z","0.2.14":"2018-09-21T12:51:31.917Z","0.2.15":"2018-09-25T17:45:10.102Z","0.2.16":"2018-09-26T14:25:13.075Z","0.2.18":"2018-11-19T17:58:27.758Z","0.2.19":"2019-01-07T16:53:21.527Z","0.2.23":"2019-02-01T14:28:15.684Z","0.3.0":"2019-04-24T07:34:50.248Z"},"maintainers":[{"email":"marcin@everydayproductive.com","name":"everydayproductive"},{"email":"jeroen.knoops@gmail.com","name":"jeroenknoops"},{"email":"mark@spanbroek.net","name":"markspanbroek"},{"email":"philips-software@philips.com","name":"philips-software-fa"}],"description":"Secure communication channel between mobile app and web app","homepage":"https://cogito.mobi","license":"MIT","readme":"# @cogitojs/telepath-js\n\nProvides a secure channel for communication between a web app running in a\n browser and an app running on a mobile device.\n\nSetting up a secure channel between the mobile device and a browser is done\nusing a QR code that is presented by the web app whenever a secure channel is\nrequired. The user can then open the secure channel by scanning the QR code\nusing the app on the phone.\n\n## Description\n\nTelepath consists of a javascript library that can be used in web apps, and an\niOS library for mobile apps.\n\nBecause both the browser and phone are likely to be behind distinct [NAT], we\nuse a service with a public ip address to facilitate peer-to-peer communication\nbetween them. This is a fairly simple service that only holds end-to-end\nencrypted messages in queues.\n\nSetting up a secure channel is done using these steps:\n\n1. The web app requests a secure connection to the mobile app by invoking the\n   `createChannel` function on the javascript library.\n2. The `createChannel` function generates a random channel id `I` and a\n   symmetric encryption key `E`.\n3. The web app displays a QR code containing the channel id `I` and key `E`.\n4. The owner of the phone opens the app, points the camera to the QR code.\n5. The phone app extracts the channel id and the key from the QR code.\n6. Both phone and web app can now communicate on channel `I`. They encrypt/decrypt\n   their messages using key `E`.\n\n![Telepath Connection Sequence](images/telepath-connect.png)\n\nTelepath channels supports bi-directional communication; both from the web app\nto the mobile app, and vice-versa. A channel therefore consists of two queues,\nwhich we’ve named ‘blue’ and ‘red’. The red queue is used to send messages from\nthe web app to the mobile app, and the blue queue is used for the reverse route.\n\n    -------------                             ------------\n    |    web    |  ---------- red ----------> |  mobile  |\n    |    app    |  <--------- blue ---------- |    app   |\n    -------------                             ------------\n\n[NAT]: https://en.wikipedia.org/wiki/Network_address_translation\n\n## QR Code\n\nThe channel id `I` and key `E` are first encoded in a URL, and then the URL is\nencoded in a QR code. This allows a user to scan the QR code using the standard\ncamera app in iOS and be directed to the telepath-enabled mobile app.\n\nAn example of such a URL and its QR Code:\n\n```bash\nhttps://example.com/telepath/connect#I=2oxSJ6_eyP7JXsn6VK7ooB_u&E=m8JzVbVlEwlzzR0-o8-AU0F6oONYcqvLW5YVLvLLP6s\n```\n\n![Example QR Code](images/ExampleQRCode.png)\n\nThe URL is made up of the following components:\n\n```bash\n<base url>telepath/connect#I=<channel id>&E=<encryption key>\n```\n\nwhere:\n\n* `<base url>` is the url that is registered to open the mobile app in [iOS][1]\n  or [Android][2]\n* `<channel id>` is the channel id string, [percent encoded][3] for use in a URL\n  fragment\n* `<encryption key>` is the encryption key, [base64url encoded][4]\n\n## Usage\n\nAdd `@cogitojs/telepath-js` as a dependency:\n\n```bash\nyarn add @cogitojs/telepath-js\n```\n\nThen import `Telepath` in your own module:\n\n```javascript\nimport { Telepath } from '@cogitojs/telepath-js'\n```\n\n### Creating an instance of Telepath\n\nYou create an instance of Telepath by providing the URL of the queuing\nservice to the `Telepath` class:\n\n```javascript\nconst telepath = new Telepath('https://queuing.example.com')\n```\n\nHaving an instance of `Telepath`, you can create a new channel\nwith a random id and a random encryption key as follows:\n\n```javascript\nconst channel = await telepath.createChannel({ appName: 'My Web App' })\n```\n\nIf you do not want the channel with a random id and a key, but rather recreate\nthe channel with the previously obtained id and the key, you can provide them\nas additional attributes in the object passed to the `createChannel` method:\n\n```javascript\nconst channel = await this.telepath.createChannel({\n  id: channelId,\n  key: channelKey,\n  appName: 'My Web App'\n})\n```\n\n### Obtaining a connection URL\n\nAt some point, you will need to create a QR code so that you can scan\nwith a mobile app and obtain the channel identifier and the symmetric\nkey as described above. `Telepath` provides a convenience method that given the base url\n(see Section [QR Code](#qr-code) above) it return a properly formatted connection URL.\nYou can use this connection URL as an input to your QR code generation library.\nThe resulting QR code can be scanned by the mobile\napp and used to connect to this channel. The telepath library does not include\nfunctionality for displaying QR codes, you can use a QR code component such as\n[qrcode.react][qrcode] for this purpose.\n\n```javascript\nconst connectUrl = channel.createConnectUrl('https://example.com')\n// returns: https://example.com/telepath/connect#I=<channelId>&E=<symmetricKey>\n```\n\n### Sending messages through the channel\n\nMessages are exchanged using [JSON-RPC][json-rpc]:\n\n```javascript\nconst request = { jsonrpc: '2.0', method:'test', id: 1 }\nconst response = await channel.send(request)\n```\n\nThe `send` method returns a promise. The queuing service will be polled for a\nresponse for at least 10 minutes. If no response is available after this time it\nwill return `null`.\n\n[qrcode]: https://www.npmjs.com/package/qrcode.react\n[json-rpc]: http://www.jsonrpc.org/specification\n\n### Notifications\n\nTelepath also supports \"fire and forget\"-style *notifications*. So\ninstead of a request-response loop, you can send a message and forget\nabout it, or you can register a notification handler to receive\nincoming notifications.\n\nIf you want to be able to receive notifications, after creating the\nTelepath channel you need to call `startNotifications` and subscribe\nfor notifications:\n\n```javascript\nawait channel.startNotifications()\nconst subscription = channel.subscribeForNotifications(message => {\n  console.log('received notification: ' + message)\n}, error => {\n  console.log('notification error: ' + error)\n})\n// later...\nchannel.unsubscribeForNotifications(subscription)\n```\n\nSending notifications work like this (please remember that\nnotifications must be valid JSON-RPC 2.0 message):\n\n```javascript\nconst notification = { jsonrpc: '2.0', method:'test' }\nawait channel.notify(notification)\n```\n\nPlease note that the `channel.notify` promise being resolve only means\nthat the notification was sent, not that it was received by the other\nparty.\n\n### Unit Testing\n\nThis module provides a test double that you can use in your unit tests. This\ntest double prevents real network communication from happening. It is very\nlimited in functionality but it will suffice for many purposes. Have a look at\n`telepath-mock.js` to review the exact capabilities.\n\nYou can use the test double by creating a manual mock in your workspace. Put\na file named `telepath-js.js` in the folder `your-project/src/__mocks__/@cogitojs`.\nInside that file, put the following statement:\n\n```javascript\nexport { Telepath } from '@cogitojs/telepath-js/source/telepath-mock'\n```\n\n## Known Limitations\n\nCurrently uses independent encryption of messages. A recipient can therefore not\ndetect if some messages have been duplicated, deleted or reordered.\n\n\n[1]: https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html\n[2]: https://developer.android.com/training/app-links/deep-linking.html\n[3]: https://tools.ietf.org/html/rfc3986#section-2.1\n[4]: https://tools.ietf.org/html/rfc4648#section-5\n","readmeFilename":"README.md"}