{"_id":"uport-transports","_rev":"64-15c1bff474cd02f1536d3f5066c08999","name":"uport-transports","dist-tags":{"latest":"0.2.6","next":"0.2.0-rc.0","alpha":"0.2.7-alpha.0","experimental":"0.2.2-experimental-1","dev":"0.2.7-dev.4"},"versions":{"0.0.45":{"name":"uport-transports","version":"0.0.45","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib","build":"npm run build:es5 && npm run build:dist","test":"mocha test/index.js --require babel-core/register","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","webpack":"2.3.3"},"gitHead":"579c2e32e2f1bda56c1212ee7db6db9058fe8983","_id":"uport-transports@0.0.45","_npmVersion":"6.0.1","_nodeVersion":"10.1.0","_npmUser":{"name":"localredhead","email":"levi.strope@gmail.com"},"dist":{"integrity":"sha512-TegZWrXgYlk4SDOWeH9DvCz8x22WN0hBT620ngfUr2cYIYNShNUDUTitXwYj9zw5M9+LLEi0Sv2tOxGibYDGFA==","shasum":"f55e179649b005cd3bbba18430268632d12a905c","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.45.tgz","fileCount":47,"unpackedSize":344686,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbX8fSCRA9TVsSAnZWagAARhAP/iyMTA5NkzD4ke5QCqaC\nj5LC3UG1tQYp9BYzBy8dgfovKyzeSetRfpl/I9AkYCMD9XX+NNiuqpOQa9gJ\njg2ml0iHn+HmoZZZ5yYBgJJgp5cuR9SlvLdXbC69OKqzGuhKkPRYIZy9LRA9\nCpRhJWWnmHIUupLlf9Qf6QwQphZkoHDDFYs6X2IFMxSxD57wlcUWeO/rTi9H\n5NCSnmZ6ltE6EXprCKzqME4QKqx9j+jlebIYOXUuhCQzN+K7j/Tclasvm/DN\nHHgVxdUKvTRxKprJih0xuBRtLQvnCp8wXl0Q6JrP/yiWz+2E5QjhjLd5UNiU\nj8gbjSApHyAi3oA5ul1M3sArI/dgMKANqAQmncDoMIhFindt03hRmYRxPfLX\nIqphkL/DWdM7/RTe8YtFpnRLEXk2cYA9M+9LKzMw2ZeGCIPZcatEQROakcee\nIPAbSXtsAeuWGw2syvuF+xVoa70LUfrCcx5in+xLi2ECIUCmrbyBjefy/F9f\nI9s1hOIHjckxq1+pTv/70ctOU3ZEV0b2y3GIlV2IDkOt1as9jSKkYiEVk52N\nfgHknoF8amHZAjT2Y1MHuuNv1g9mjip+EmnITTAFstNMH92Wr7n2rrXMlS5N\nZJjxaXklmTGBjrWRJowtBUsNp9fjkZ1JJRcwcYaL+xitdJb9I4wBRVMzXQ3s\n2i+A\r\n=PapG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDphaouwJoqOU/eZazVByD+RFHIcs6imi+Akw/Yf4by+QIhALMrxHlNSXL6fAs3ZsxrnxHy+rromMEqYcl9gFtRUBWb"}]},"maintainers":[{"name":"localredhead","email":"levi.strope@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.45_1533003730538_0.7424972311879987"},"_hasShrinkwrap":false},"0.0.46":{"name":"uport-transports","version":"0.0.46","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib","build":"npm run build:es5 && npm run build:dist","test":"mocha test/index.js --require babel-core/register","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","webpack":"2.3.3"},"gitHead":"9394f3b7105a041a2e1e89bb6f9b30c5b5c756e8","_id":"uport-transports@0.0.46","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-u7SLI2HFt5pjoNgWLUSql4c5w3PNBLzwuGVhxrEX6HA58xjGXRvJdESWpto2LkzRXS1A+Oe9FsgezKqAnDQCdQ==","shasum":"786201ec75627bf8aa697ddd14b46a083a12b9e1","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.46.tgz","fileCount":48,"unpackedSize":344709,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbYJQgCRA9TVsSAnZWagAAPQMP/20ZjSWEQEgqUQnuWpDC\nARuQNsJERVouljODSO9hMMdWgjlinZBCzPO2vBIE7TGhOAm2D+MTrJdcorZW\nHzFBZxDaw7JSUaSCjwD1YjmZ2o8zxeJBnDYzbNaAxhLohk/WTSiT8rH4o4JR\nrK1l3IOD/bQElvit9vfQxSHf4TfMSkrzlgw7RENQjuvQwGAJZUZ6zcmWVPZU\nOb1uLOZzShvKDaQeiX3P+UbhG1zV9tRDyF/U6nheg+LtJ32vgBfv+er+66ZP\nrfNelJat7OfO+7+/28ETpLN8qnGw8zVCn5Q3SCA8utq1wCX3Cu/2zzWiz++x\n9/jiRNQovm8tZ5Iu4lVmxKSULRHo2DZjqoZ/6XR7XkMtXukSn0jHtQt5iITJ\nLksbCQPUZ97kCu3RpPLLx3cELuD/4rt4z50RXXtyN6QnAZD5B7X6v06JEDwe\nFKVWFf+qf2YxsnHyAp6WYEPVoAHzps1T+ICShCWBWgVSkcSnAN49dUmgBOdf\nyTb48z12K7Ex51/cGxSKbanhxwHiUtwOfoAD8/HwVu0xnIfmPcZBPyu2K0+Q\nvyRn3zc/gA1HPrgne+SJR3/XoqjPeWpuZrSOioPA8NW5IVOD8FBol4T2+M5e\nf0l8IZ/tEncKAaU9S/6KFTJIGWwCnRmhUsgQ/nlOBjSnzE6F+WYMyuQh4yoH\nPPW1\r\n=mnci\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmJHaSTMe4BRjnsn5iPr96oizY6qKlLEMvGe+P38RUzgIhAKWBQUbqaHM8yyJ6qM2UTWgjH5wlHTDm1xc4eQuOkNeY"}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.46_1533056032563_0.5203833099867894"},"_hasShrinkwrap":false},"0.0.47":{"name":"uport-transports","version":"0.0.47","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib","build":"npm run build:es5 && npm run build:dist","test":"mocha test/index.js --require babel-core/register","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","webpack":"2.3.3"},"gitHead":"9b72b3eced9b3c8ca94baee4a453f4d98af75bc2","_id":"uport-transports@0.0.47","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-bL6hdLvHkyiUI93NeSZokTqKqfefvoS/Opwrw1e+4ZassSOUW4tkzyGxSCLPc0DBKO55OZQnF8wPJzvyDFSzLA==","shasum":"db20f5dfd244f4e0954594ed8d0270553612356b","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.47.tgz","fileCount":48,"unpackedSize":345458,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbaIjaCRA9TVsSAnZWagAA1S8P/1iLBX5jod/P1OJDUSbD\nay1YzLiUi/v581My60PFPfIhUNmg2dWbJaVApsot5bDrDiDEK7v9H4BaHV3S\nWwESkhF1Jg3DngPqmpgqkv/QZC561p95AmklYLVP2qKMxZpKmVO526CiEiaN\nYGp+ebONHtTNaLI4diY5aLogLvZRLbdYAddR/N1hWJDd+Hz6d+7IlKRVKvFI\nACxBjfjzkqE7eq/au2hm08YKC6abZBF7aV0R6LZy+7Y095rpXbocQ2ISro3x\nSBi9W1Bk0ffg0a+D89lb6WjLMIwgZN2sAlaUznyFYzPYQ+xtjebaEMwAB83W\n7HD6e+jJlwc1xKbTQD6dO10sZ2lop0gDN1IhLdbeWweNqy7G8ZadufoEFpY/\neDUPZEx49Hd3DFjTy3LnaiMPr6UP4rhcBpzTV5UYzSwVvtuLGDNmiVd5S4/z\nnS+mIxsYN9JntVL/28NiLNWJWHzFQB7Wh37BUVZynZik8pT4or+UN2xOMo4h\nuHcYSyQR0j9OmP/PyCSuuv5LMNVoYDgNe6wZE58twxBdMQWhUvPoVk7CVBhz\nEqNVu/WVGkoLuZFw0iMTnYHJ1NbnggujvvQ+2MqZOqbc9FD2nlqHSugzphOF\nWcWHnOzmdAuLaM372rV4NyJ/rN09GAu6byXFeAqxTK0el5k6Hkz2h2rUuxfT\n9rj4\r\n=SqCJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSaHKxW6W+Rk9FYCkBT4VAtW/ZnfNkKtCP3VY+cd3d+AIgdUWL8bfnpkN4f0P3J2IavQLTiEPch0ImEiYU+x2325A="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.47_1533577433465_0.3853593910717641"},"_hasShrinkwrap":false},"0.0.48":{"name":"uport-transports","version":"0.0.48","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib","build":"npm run build:es5 && npm run build:dist","test":"mocha test/index.js --require babel-core/register","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","webpack":"2.3.3"},"gitHead":"ab8f7315d9bacb08ca4f21733e67a754439c18dd","_id":"uport-transports@0.0.48","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-wqRGRQ/bIrNLYEyGe3+AX2wpI341s0FkzriXVlworW6fDu6q2vg0ozIigJAQj6wZrUyIo7mmfHzCF6nlutndVA==","shasum":"6101ce0de9545507d487d4c0105c819240a4acfa","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.48.tgz","fileCount":48,"unpackedSize":345558,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbaJtYCRA9TVsSAnZWagAAE7gP/jbWxVXCTchBGds9aNuY\nniakWk5N4VvAx96lEyThKUTvwV+PXokCOoIug3ihXpCQWCiN9cFwHoRP5Y+i\n7grmApLWSPZuvlqVTdaoRM2bC7QKnl7tvsyfDNKrYKFR1lIs8a3xObQfKVBJ\n35AOo+hkWfn18Erj7gDhBxdvGFA6Orkeo4w+gC9wtNl/iaUrEcLAFOFkEnjh\nfW54ZVHXc/WvjIqxrZPTzrKbws6Qgbf5newdsOjuXZZrFWKrFToHpEQOHtxt\nwk+shI50UYbylTs4cbKaKYK4s9pywJa9B5zXPBwo7VGWC66IPctwYQIvgq2G\nPvnCrn3e+iqOGUCILRTzRGu+DcTWIyK1Rs6KDeozOQ0lr1gXjpzN/BnKujWT\nvhHF0/axuftyW3ydP5MdN5YhlhAp53fRH+ivKH7QBxImREHOMxKca9e3w6Yw\nL8Je5fcHpZgjrDOoBi9CS6sCdIgEMSARt30m/tae2F/FAYHPXYmQW8mA6GaI\nvX57aPLWydbS+Nu5lvKbOv4Wv2z7ZEf54jJAkkeZwteIzIne7OWhKbE3T4R9\nXuk2FohGT0/ry7Jx+dUM6vUJhr8ODjgVPQgS+EwGJwyBFKMxTdQYBAj1fO43\niC9paugc/4YJDw4WqanHPiBafYBLZGu7ulVdD++34YtyBIs6pPbZQddhVaGM\nbnx3\r\n=CJNd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCp++CXspuAz412tss/uFohNLVPeYx9dY4vStmmlABYhQIgGV4tVppa4cN4AImaxLEdaR3rh+8ARJQ4wdLqJFXnf7c="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.48_1533582167869_0.6094998288694571"},"_hasShrinkwrap":false},"0.0.49":{"name":"uport-transports","version":"0.0.49","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"7e01c32f3067f98295b8f7ca9a34cff28dcf12dc","_id":"uport-transports@0.0.49","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-k4gTT3gw7mFPhQTfuHGHTfVxBGaW9xUc8rKVsqzbi+NLwdDoh7yBqKynU855XG26Pl1LH/0xak2We/4903nTkQ==","shasum":"53866922edd8ae488ef25397773409ecaa8d23ea","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.49.tgz","fileCount":65,"unpackedSize":514957,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbcxqsCRA9TVsSAnZWagAAgHAP/i0po9kpTQv+9h0IuqAn\nnARygqZ7eVZDVm4LbOlNH+Q4zU3MgROkn98lZYXYIbnqx46RN5OPhi9HJ4pm\nw5Lnu1OakDmujl3uJFXXrZNaW60ZRTDJV3dOBaXWmXvYHQodEv8SaBiwaz2O\nK6ZVpmhTUXvXqezmHu+dTEHXrS772bhkLXt+OMYUGhcNeje3/G/UJdZjEorX\nbIQJjJpAOEAr8sHSFjBg5beoXqYqClf5bdmLybGq/JRaryzp+K1Pdik5MO+j\nwofaQunfpBZJMz4+n/sM5d3P1CCvUnK3r4LVd63Gqe7ZPTvmTJZcJme2PMvU\nyMfTWq3qirO11ZZYXZ06T+L33q3SviXaFUjj6y8tbNF7nqswz+Q5TOF4PvmO\n2uuI0XkZVzuTleogR1bd9kYfQCXdsT/mFj9K4L8ojN3Eyp50nVI/rMtvlnfI\nKm+4aWI7l1kvQFlz6wV7caXkVv+jtsTUe9ssCayr893CMFWCAK1fcgD4MgAW\n8vCWOCy2O8xCuCGLu/xKh5U/JERp5wR13nj1Hckv3MxAt2A53g5OgFVUwtin\nM1O9+Lu2qwPgesrWnuXjGF0euGF25pMJSxUD5//JcwUlDhkmFVFazJt626jg\nxWW6Uh4sUOI1HyQhINaPGAtPkeDvgK3+zt/r0DXBInO3EKk/jZuxO3w3Path\nme96\r\n=RhCF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDueuvKSyV9Ig0SWK58YRKAhEbqF7ChUdSgbF5HkBhOnAIhAMh4jXnDoCjxkA14IWZ4liEoIYF5/8w61zdYYvvHScHs"}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.49_1534270124064_0.6005890974589163"},"_hasShrinkwrap":false},"0.0.50":{"name":"uport-transports","version":"0.0.50","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"58e16c70a3e1dc484351187765e6784074716175","_id":"uport-transports@0.0.50","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-vGe9QF10CRolZPrEcxBjOD4xngstj9zGMKtt40mRs/iKMJmXPPNd+lcR68PqUiNZ4IWaa0gHyD3NOC1/f46rWQ==","shasum":"8b32169f14c899656385c26cd08c0e17cd595ab0","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.50.tgz","fileCount":65,"unpackedSize":515515,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbcyvYCRA9TVsSAnZWagAAcToP/jKOd+sytw7ouqq2Mbr4\nhsU3yIG/DumWGAk/8qFWw/YTexhO5IEYj4Bq9MqISZ0H9YeXozGAXcX7y+jv\nDhaWtrySKh0uF4NFm+rzgvJ673Fzd0kGaZACFy+FS+yGmlMsKuACe7RcJGCG\nK/EHOtL+zHeL/3mDoWionAS5+EbkKYux7YF7RW282j09yExSH9fmEuMPzRoZ\nIy6ghdNUEmBCSZf6zb9B5hinBZFRE7eNrdQxFXcM0rk02kj46sANXelcO0Mg\nYCVNEN4GRzQQPHZsRcVzJp9IhqQUJV78j3rm8HGnR2xQafsHbaNpmiQ/m171\n1td33nOdPQqHPBSecnUDC8Ww1yj20zQN7Al9bojQZopJJXGB38Npbplhnzqv\nae6vr3TrBMgiexJ7yNguNSQHz8u0+SLR7UpnPnQDUpq9duIZPvNmJ+9YP8z+\n0nIYKhzVnc3li2DFioI5pHSmNwTRqQbEScjl1M4TVJFTzqdthJ6y729fQzR5\nSSy/KpGOiB/DFT3l/eJ4c+sEcWC7zFOa1znNxfM4VKFMalZTNArE0A1Qk2hB\nt4Mc/Pfb6veEUTC4TeICljR9+oHBPfUNGZtCQD0YMqkLA05BnOGN9GXhgOEC\nZNNCSk8h5JNw+NlP3Bt8zOAh+zCj8lq3dfOuH5bERpwjsTToxM9pSbDGmwRu\n6MWV\r\n=OEuR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFLTusNIkYsjCQoFIHFd+4TwLD0RcVF1omtgx7GGof+7AiB6ykjOP9E/ZsYLb3keOPLTmXwYQkqUyt7BbAaScj2DJA=="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.50_1534274519786_0.4847707244354962"},"_hasShrinkwrap":false},"0.0.51":{"name":"uport-transports","version":"0.0.51","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"9788dfff73321160b08db91ce5f0992f43a87e12","_id":"uport-transports@0.0.51","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-eMrF3TMlhoSJi954KCP2b9ch6DJ/1P52vL+7EyID0AZb4MwcZ5Ix2IcI5d06jk4yAmLmoj9jYkwa86gLWo7X1Q==","shasum":"b93e82e9862d71e70012c2df436035410583de42","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.51.tgz","fileCount":47,"unpackedSize":344760,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdGDtCRA9TVsSAnZWagAAjGQP/2XG/z2QGOfVoXwppUxS\n0CA25UNwifBWXL7NOx41tGKBcU3R5a27o3ZRVAPKUT/NpNsxszR0As8iWctM\nXR82tMf0ncJv2ffVy9ME17U1mlnaHBnmDwVqruJ6s3H/JGHwarD4bXpX3xkY\n1BSwRFOJVzDRvOs9+vlFwrqUOMt7NaXbVUQYyoWh0QUXj4pWVNEANX0gw0Oh\nNSnciG2Bdbz94nsfEPS9c2U7NqEhxEI8yKPCc+Jq5esiWOyWL47AtHnJaOFN\n3QH2qIeFrGuaJ6B8xAOYBF19mk7JGl/Hunk6sS423IiQ0+cPTJ8/rUXnd2kZ\nzxut1Urn6t08eF6PU5nbvmUYwKaKuW/9fOKCVRYzfLPD+IvAkMTfiY0Zgrms\nrwhXyDJwLjT2jAL4Y4OlgbraDT9SIdtcIssGfPgpGyVpXfvD8AftCQMO08hG\n0Y9eVXsGgprwh1lQHjF8KK6lXBXEB9KVGyxmNfm0KmimQ3dUHyDUG4y9/Rxa\nilpNy8kqsPL6UV1z7i5e7WRMAv/j/8u8h+gV3vrEQrmP2Q98+XjO9yxI/0Du\nIGHya9FCZLtN1WdLu0lfzmL24kA7iO54h6Ubb8hdq6MnDFq9hqGgF9WwEZXh\nA81OinQRXL2e/lcs4A4O/pZ/YzfQwHOzkyzA6PYHqDXi+PgbAl+UkemO6Dkn\nJfgi\r\n=n+Jh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC4fQyIOOgje0+OT8WsOmgzZVfTpk5uuFDzfJ4xZ7k5WAiEA0AEjZckssWpj91RbKchGAl/jmsl1EK7/KuQ9i5k8cyc="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.51_1534353645360_0.3264701495880242"},"_hasShrinkwrap":false},"0.0.52":{"name":"uport-transports","version":"0.0.52","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"b56848b00d5eddc562051770f00e40e0118a11c5","_id":"uport-transports@0.0.52","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-IUDMklTqpHHxmxTXqtW0HZ4T6nlehPxtJNRh0vks0VtqhXcl7D03XXI6l+6EoCnOrQY6fxBqE0FONt9b+RDc3Q==","shasum":"5184bdd5dc0d974a08e7d31de47561fe1ee5af87","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.52.tgz","fileCount":63,"unpackedSize":471895,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdGL6CRA9TVsSAnZWagAAGQIP/3+Ri9dfXL/m6KT2i9ff\n7ZrhG7d/EfYBDuKtLxaszYWNaCIHtmAPIl5SNtme19v6amORWF18nhEcmy4l\n4GW7rmPpZnpKJpx1GhyxRa1DzKW/0U2L5Y4yj08YCv4EFYa8j76LOUHA4ggd\n5QaUtcOwwq8ApfetOXJaqkH6n9vegsZCP9J7BZscp9D9GKxaU7Gghg5ArYFj\nPmh4nRVx3VVerROmR5umGu+f+H2HJskdEQkpGXBH9o0tpYRlaQTZ/TMoOZOR\nJjHBSHZ5yC8YP2f6DkbZYrEdIkJy1eVDRuoR/tjrB/FDT3sz5rvh4VDVkKI0\nYc0WP3gKn95ZvUEYQKiR0/9QzNiiBRzoxyiciWWBFn2j4CzrfMyK07pfhvHG\n5EFS20t63NSNCBY7UAC1u1mMNMaqiAOOKeTqGenIRvxBMZSfuBHBxR0QZAH0\nyeptKE9MDL3RPY7DZrZyBv+DsZYUBtJJeddKH+eKhLeTGqfERAAh3oiHYxyQ\nVnMKVJA7ZyGgkS6Oc02VRxRuE3yNpJotrewCwoRBT6Dgxdml9iCFmypkjC4r\nmsVDov1VOTMD1Y4ekElOAwg9PIhoOMT3B9gNVjupdWAqG1Ravddi7I9Vt8oj\nu/SS1Hd1GtePBWxF7a3mTfgFeLnzgPVCrTZJefzYXaKONgbVKON844urHj++\nl/Nr\r\n=4AeT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG9KpNUh9IMP4ir81w/UOXTXtgQF2J3Qi/HVaqIOKaFpAiEAkeO4Eg2V9PMaFaDsi1lOe6TsYtUkB/fwnBet752Mk8U="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.52_1534354170341_0.26949101481046056"},"_hasShrinkwrap":false},"0.0.53":{"name":"uport-transports","version":"0.0.53","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"aaee6d53f118648408d9933a507c24a5f77f0880","_id":"uport-transports@0.0.53","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-MjVWBM1JWuJwxMBI5ekNzxtmWgqZLH3cGyaYtK88kPOnGaaSjPqu8AEC+7G+ETffSbwLq7iyjtoU+Nfxnz/UGw==","shasum":"9c10c137cfaec24992e75e50bfcb1d63d1d1bac4","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.53.tgz","fileCount":63,"unpackedSize":471968,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdGgiCRA9TVsSAnZWagAAhiUQAIG/dWDFcIeY7dKPnkwW\nu6B1VE+F8p/s+mp98LEZuUynFpFipVtxWWy39fMhbqiB1/J/9m8i8GOwF0Of\nv1V3f7E+1F2jMj4qk+OMkbbg+h5wnX96EKKyfYyi9DjTTQSaU9+IWnTHkBjr\nLZS7J6zN0MJOUbU2MPYM0zP2kPR7+eZjH3sWYkwBM49etdfTbSaUdwQ8mNGq\nTYwqJpybnBsIuULpulBqyjsPraimiKSHyq82IgNiwgQGt0W+0FNPoX/rqqTc\nvWs6tE1O7QBTd9pu700A2OKv76MFn8/DriUbGp8VDqXIBfQarcfjtM/hmwcu\nnmilP0gDQjOzWRM+r8W9WM/YXwIrv/Ds8tx0uHYcM/nAXQOkkK9jENYdZ8Jv\nWJyNdsS2eg/NBCFZWWJ3BC8LkXj85wu/8XaIJzUU9NQfH9vVoOepGesIJiSx\nzMkbAd+8g+bjyivcSIcyCc0QevzzfsQVSEO9DeoQaBBB5JCzgQCQPfKRu3NX\nMUtWINLfsoKn/8Dldo1a4Z97QT97HuiWdCAu+9kW9xuESy9SLfCyPf1iJfRP\neTY1aZHy/DwEGDy28TTHE5JWvTmCfaMFzBtUjY/TZo8I+T3bbUwo/b+LbYS1\ne2ua0NqHd/VidytEGppf+EDn/sHhZlL8qBzMPBdkSZvCFt9zq8sd+rA9g5kE\nZUuu\r\n=Tkcs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7pZiP9Nt7h2KVwDmfezC29M6kxdm+ocpjGwWhF595NwIgEHJOl5AOxULcHbOKiawaMuXSDBcUTn/Ijx38hq6tOfY="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.53_1534355490482_0.9859501387400686"},"_hasShrinkwrap":false},"0.0.54":{"name":"uport-transports","version":"0.0.54","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"0fb4fbdc8402c9e4bcf64498ee6cb3b9fa63b11c","_id":"uport-transports@0.0.54","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-2w4kNusuXqsR7Z83+oyJBDJI7brFrkfot1NvDQ6Ci69DnO5UtTf3fgovFhm/ujyM4DcqhUW1wtEe6oC0DW6BgA==","shasum":"86f35004eb0d0767cae6a0bc639f9b1ed2bf3b21","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.54.tgz","fileCount":63,"unpackedSize":472133,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdHP7CRA9TVsSAnZWagAAFzoP+gM760pwv2rt+nZZpr8S\nlYukqAR0TuZ1m4DLE/xY4tgqOeOuxlnAwrvyoLyfAkJW4b6jJYse4QDalqjl\nmleFq175ABoX5JwhbTTK6oRtTGo9d7ZuCIE4ouFbk+cNgvyGSeCrSkUPgP8A\nyCUl5xdZfv2/vMd5t5EZhaUygpsVcy8K3TmZkNaNN+QBbqY5Z0Cflq8FL0YM\nNwGK/R5XlwCyUHrvolDwvyD0aYASLUEZNHzVSfRQKDKS3xvdfrzKrEhoarau\ndHvE/+zoDoZazA+IExKQSxg+nJLl+DwSvw2d136tuojcwi9uO8GtXLVIYTau\nomuF5Ea4kYk1XuruhN9dzmxC4mXfzmoI9H31hNBeXMtotmAn+OBQmlM010Ad\nzL5JXEZ6QBI7c5z78t5dCxuBOrNzoQHjP1qaC2hG/yV/ap5wyjqFftVJiIvO\nSRxbbKpMZESRULl9Gmej3eUD1tGgqZz2X0czmOiY0NsjVlOFs3ytDL2a7pVB\n1w0yIuQUSnzMRSNoC9HaQPfx3QvwuPNha9H2N67Sx9C7mnfDandRKd8BmB/z\nIpEb0pJSIu2bVWJrD1CQYcoSL3iuXcumpvAGM3YpLxTTdROXdxWT1GKqs8Zc\nxaChoUnq9pQtXviJ3uIR7bD4EuTWgmWOWWpNYvQfXAAJjuWo40oBv55Um8a2\nATvg\r\n=WuEe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6LVkYpGKwBIyn9d9s+ghQ1DQYFdfbMBC8tHhSagRivQIhAJ6dIyw+J8Um0TlMHTAUv371kwlBgL9ovOqbKXvumwnM"}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.54_1534358523795_0.5872260362142478"},"_hasShrinkwrap":false},"0.0.55":{"name":"uport-transports","version":"0.0.55","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"0fb4fbdc8402c9e4bcf64498ee6cb3b9fa63b11c","_id":"uport-transports@0.0.55","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-s5VDQGE2n5E75Li6uTsC6igsCv1//44vF+CpvRv9spispjpZpKTzHvFfTXHRoT4i55i0CLar4AU6JK6ieod8Lw==","shasum":"3c72a8c05c6f6a2d1205aaaeacfc2a6cbda14d4e","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.55.tgz","fileCount":63,"unpackedSize":472152,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdHtLCRA9TVsSAnZWagAAKfoP/37QwRTGKCYpKzcGuRhQ\nx65IijubNu7qO+FYbnyjCS4wCF8Y6fSR/cW4P9UetAuKVnMbNFF5RuFAnRJD\nY11kNm0uyFHsCZQ877Iv2xhUkQCBZVQwa6Elu/DERSWt0P4pNE0xj0n7veV2\nvDtdGczAfiCJhrC8JtGYmmbU7fvDBdgM7BlnKM/ZpltLNb3AdSY9mHmWqMcQ\n0vBHxD+YU7AUXRseTds6wOTZmgNu+MqzNLZNt8UG650WwcTgmz4DJpZ2uwns\nVdjTKl2t5YayJcoFyFWXZSJKNqk3wEm3iVsHMYj/G7pBY2KOAYkfKx8uoR00\nZkkpVU4FHEBmeoQW1sN/UAAVGAIinK/ihVk2k13i/8aFbHzx8o4PU37IiB7F\n9ZGtFXBRvr+4TzAdnQ68CGuOSfQLX9h6sFpgJ3G2ejCiTIHPLugL4fxNnhw9\n0hcpYwPklTMebjm+wbBUCYlX6m2oUmnrVOX+C7OugWZ/B0+qOf/P0kzopXTj\nDF5WRGxE/PcE28d6LNUmvAm75yGlZo/3b2cJOp4hD10ICHw3E8NsL2UsG+k4\nLFRE+hLEKm0VM0WGcWfXd0ztz+mEr3C0YBASmQjvVrJ0hXWDziVgOE0gSRcR\nE0xrOPfILymx+AcsKs1+rceQBk1y4Ge7uF7DsYXGOd/9fdJvUxrdVoXe441Z\ngxhL\r\n=xYb9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC0p+5tHf90AiXgpziXkoZj17RA+AHagryms/pqjcP7WAiEAjz4JL+fhYevRIjIm1dhGZejsuEXQ1W8QqypJ5Sisj7M="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.55_1534360395762_0.3515815166500822"},"_hasShrinkwrap":false},"0.0.56":{"name":"uport-transports","version":"0.0.56","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"0fb4fbdc8402c9e4bcf64498ee6cb3b9fa63b11c","_id":"uport-transports@0.0.56","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-vlyi1kHNHJB+nNkxg/yuMs5BACZGEjNFaR+f/6Uzm0XRjLlg0K+aqTnwr0FnzGAfNVeQNtruBN33rfGjofkiqg==","shasum":"b8e5e742685789b57e34b23f824729f0f9838e70","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.56.tgz","fileCount":63,"unpackedSize":471921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdH6ACRA9TVsSAnZWagAAUFsQAJvKraelZ+ZgdaTXXr/x\nNkbyhOQh35b0SEw2gDiJHJZ3eexrnj/m4RlyKfvjfTGSHL+PZS55NE+wF+Cx\nH5LJPZJiazYQHhuSK8zYW4T2CMUXSskKYrRzwE1VoOkAKtpOVWZGYfhdOebx\nu6cv4qryRu2cnbrUBBARom5Bu0Zhl0SrGqeLDwcxwCRYdx5hsOtxv19PwDvx\nBKb8Xt65YTb7hYvdipBI0zcjIp7qN+uNpJ29DMtl/bb7vhZaxPx8m8DKoTtR\nEbCpkWblCVRZmLxSDXVkuoiltpE6obOHXbdsSL23hjGQzfS0JmBZP5dL1EVZ\nJ+mEaW8yhKwPM+DzGQb92N1Hs3m4DWPbZoh2Ga6iCqjv4OnsNhiA9GRCvaZO\nrcsNSbvza/TbfK21uSeP6hmpcaKLGwKok3WiJkQdlT/kH3/JSKa/jgPW+zDm\nZaQqCLiX23H4lmRVjkLbxHdb9HZ1ZAKJaQ7zRcMAqCv+OQhCLXWLuu+8RRsr\noY6WNHk7c464k90uN7brvjQWoNKatJ1yemMK1iikleCE72TO8tyzmcg8xepS\nKQZ3tJ8PqoKnYRhF+xwINVIhtE30LPVHOtIueN8HQV/AtEg08LfRDCX19u+c\nKVcDq523oRHTBOZCsqwg8Rkvm9tlHUj9v8SOqtBSZZofjXZUTXe+2pAC+PmD\nBHLr\r\n=XwtU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF9mCUClQzA2WizkvGRkdPDAtFnAu29L+TKFSPexQssTAiEAiSA1Hcve83B7alo1s//D1U9fjgF2pa4Rh6mUpszVIrI="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.56_1534361216294_0.8499072971025285"},"_hasShrinkwrap":false},"0.0.57":{"name":"uport-transports","version":"0.0.57","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"0fb4fbdc8402c9e4bcf64498ee6cb3b9fa63b11c","_id":"uport-transports@0.0.57","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-QmvYamhU3v7kykYMUfBAlvKccJQ5/o/ZFv8YAY54/pFuqKAKDR9mjMPLk0mOplLQA4MfegqL85cHYr0veEdl7Q==","shasum":"6adaf52e187fb0c24036135ba6a63577bda4acf8","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.57.tgz","fileCount":63,"unpackedSize":471981,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdIExCRA9TVsSAnZWagAAvHEQAI6TS6RW3UCTtVvlJhtt\nZV7dJDAThgAcIpDktuRpLgKXexQx99yFZkUxAxbY2Q3R9FDszLcgRHppIKJ9\nnGHrj4fcU5HT5/0RIzPylmEXakw1NR5z2rzmlmMv+LjZMsMlLqIAJKt9BZ/B\n7XEzdwY5MTwfdgkFslB6IUQtwTo5vemqryeM3SYCl3iSzs0tKqzin/ApJK/6\nT/kzHubgwZGptMuoCYw349QRXcgislD7YIG6aSXz7QmtmscIAt/iAJrvh4Qj\nvDRa1NFHAhIGZjBRE7OTRRA11UjTfhoWRCBNurPke3dAJ2zgx1JbKJFzH4OI\nH0t0gvPOdwS2rKFCALwMROBE/uPZTd+VYO49+ZNsbgyg9QQBTefJnsSxE14J\nrZmmH2GGYGVXg2hB0eyzsO6NR6OFiIWvn2S+5AhiBb5Jbw91MJvPlbDXQ4vw\n8kJGIw635i4zYiNEPTxfC4XSgTTh7tBhKygBy19itw+1x3IOzV/VvoO0/K8A\nVTB7Z1AVeI2/q5YfRRpDBmsKOvopDHz+TM+TH55XhOlxlDA2QHdpr09BXnEy\n+LnUO3DnrZqjBObbiTKcG/JLw3dlRABcAb7R0qW6X+7IUmcGFLawcgTKumoZ\n16JowDGoQm9cIM9TXftCxRqU7KARJZS4E73NejtgojnDXxQwl7usn5CCodRm\nBIkn\r\n=TGiF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCUm3QTAQJdeH3Zf+sanPdIhXMJOaRvfgQW46svF6F8oQIhAPMHUQKtwcveP5VS81PcMkRwNHurXTKTJtZu20Mvn8A4"}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.57_1534361905459_0.17400588191644317"},"_hasShrinkwrap":false},"0.0.58":{"name":"uport-transports","version":"0.0.58","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"0fb4fbdc8402c9e4bcf64498ee6cb3b9fa63b11c","_id":"uport-transports@0.0.58","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-X1ace/WvEycTJVQhC0X+m1PGx+hEIIxJ7DssAK1ZZWBiXrB7IZqj0RXIs/dcSjOQ5MqjONsIznRFQJH0rqZkiQ==","shasum":"049f234d8177663c29a47ce183991d923107e579","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.58.tgz","fileCount":63,"unpackedSize":471945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdIO1CRA9TVsSAnZWagAAYKwP/AmZ1LiTav+cYqsrvMIx\nDubSVsbeHsDrxTKPgoDwtMiYhWMGkQ8D8ynRCUvZWAdul8zhCVN1TNVFk3O5\nDMOp5YewXmudu2b+nkEMWlhKdfBpa6Q2idIfOjSUBYfUQep0wleUydNaMcIy\nLDIP4X4o2YRxaSBq7Hr4MzPqKeW1TXSElNRTfwMFcY5o95UfBiDHacObHnKu\n57CahVjYOwWDpxCTfo6CKhepfReVOanQRapSPmaykxp0ath57uOUyx4g+2sW\nBJ0bWsuLgeJPF6lA61xFXwR8DQDiuI5YfNVBaBcaxUF5i5WyKp9WXrPJz7av\nNGtCIjMSIkDHfkt4B0/3HHZgNM3Egd4rGQ9acuIesFbaj2vxx2o+z5oedfc1\nstz95CAba3Ob/NflhU6TQA7WMg4cO150wnymdd3xl8ghqyCBalviaigj9PbL\ne48BIxuUUJTQtJTJXtMyNGO/ogBBZf8P115bPKPAKSdDiXJq188iYStdrJvG\nsjKumC7FaPsj0AdlDoa/2FoMmshtTrTT7nWWaI7ElyS7qWYFDm5HukJa0ht2\nxZ+BJnaFEQmjhuElJ+ZsmwZtKgSs+qWDZ/R5Elxu6hc2HnAOCVMYlfd7TlHv\nuQLEwt5B2tD5j7D8qV/d0qX5kaOVZHOl3ztEizE/M1hDxsEUkyIpXoFaHjvJ\n11ZI\r\n=b+Xx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDAq+SXpDzIUtujl/pYBcNptNrOZkhd/58M/8QufdBsvAiAD66CKqPj4kQoyCBgHGS7bQ9m85vbZoz6+aZYjgaIzYQ=="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.58_1534362549208_0.4921959549706163"},"_hasShrinkwrap":false},"0.0.59":{"name":"uport-transports","version":"0.0.59","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"fa19b2d088d8c151c1b39f530b15af2e67d7f8d9","_id":"uport-transports@0.0.59","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-bSvfjVn7TE4uUDba3fnJRBI8qORtXDC0O1jKBaLX236mDZzT6mAoewDvRcCsIAEoU7a9VvlixlUsAkIP3ujcfg==","shasum":"a0acdf2380e1e4d543c28cc96a7014261c07e2b2","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.59.tgz","fileCount":63,"unpackedSize":471949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdYZzCRA9TVsSAnZWagAASZIP+wZ6+f2ixhm/vTghLhec\ngIt46qfADV02X7eQQ/GBZEUFSun5+qzdeTHHOb7qZCneJ8P8kfL00zS3xmhm\nc9JSpDs+6Ccukuko/h8XcO+DIfa68amL3pazUCMZQtDIS/qM9f5IRJvNtCqx\nfhPD8V8k40EPvuaajhHcocQ18QrPpefos5lmD2k3PQXvpmLM6tbrVuTRHvlu\nQXaUFblXsqQan6pXat9GJn3ai9T2b9IVbkuu4tkUKV77DqWA+tXI0XGioGbY\n1R/Aaefr8OrouL0WPBy9XVPdE2aIUrWNAB+4z8cefxOtil9m+OBnHrKAz2Yo\nZj8drOfIpqZsS+iUCrQY9TP9GHhOTXo8dq39LDLpyt1DazKV5UqNfQWeWrXj\n+76sW2gNsXILuWquA6ELvPuFH3o+TmSISQ7wv0gddW0NEaXKey81M7ni3f/d\n/TOhxuj6dbxKLYthMAHXhyg2ZhVaIXBb3FH403s2rlzGTnuYVRITJsxxXve8\nibxLbh0TzQ9LYohP57UpwRcUDx3yJngfZIJftK1PEGPJZxV2KHYSxu0tM77n\nvOWDWHC+7jtyTyADH9jn1sdqJDIfXeC/paJzBpf6GMZAP54Sb9STDIclfbmB\n61WfkptX6fXeLQw1Tr3NgZn8N7MrtlcrMlSJtwK7HQO2CJrvb2RGS10BuvKe\nPX/l\r\n=i6dZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNY/pEJA5w5YYJpJTMzhQa4+FfqhiURI2G5UkAf9UzOQIgWmQk8Wg32Nz6W8nXVvamAI5KLP1kFcmaSCOgqhC2I9g="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.59_1534428786892_0.36526016565491437"},"_hasShrinkwrap":false},"0.0.60":{"name":"uport-transports","version":"0.0.60","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"fa19b2d088d8c151c1b39f530b15af2e67d7f8d9","_id":"uport-transports@0.0.60","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-lWS8Fi2FrnbZMDfolOPzJcCbPUL8nwImnZfffMuqN0mQyhXnPwxHfGH+/atI8D+g2a6MPEF4sQKz5LoIr1ghRg==","shasum":"b9b74698371323755dd98b4661de263559b1e0d5","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.60.tgz","fileCount":63,"unpackedSize":472096,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdahICRA9TVsSAnZWagAAW2YQAJqWbxvsY4HzKwnI+EXo\nc9JxAts8GG4GIAt1YeOR6GhfB/YuPWrd+CXjDWoeJO/E6yYCXKFIqSw3zi65\nk+LhunzYPhM1LYE7vkClgMGY3ZmIeJ1MOTyivskdpkbHy3GephislDaYiAOe\nKVuSqKSE2px4Uc9gAbj0NnB2ZfThqNu/sBVG8zQxVbg4qIOMJs9rg3Qx8XW1\nwVG48qr6jKSObbk92KYAZuY2zEQkgjYNpOWN/vgywDIBeLeVMEPTbpSRbDqn\nl3iqtlLQ+bUdzLxa3/ycRGQDMDrmSatTGDzIJNov97jYFjKv9kbSjKctNXKi\nuvQjlVKih4GYtEVFQpC3C07BqruXZ1txvVMrFJl2zz+AckqFSW7/oeSHEc3G\n5TnwaZcIWVGf6wqTKneHu7z8ns6bWN1+dntz+v+4RbarT/uaEOPGa14NTHqx\n3lny5DznUZKXiMD5aqwGgcrf1FHJ3mKp1yakSWyAQQRz0FZG1fW5Ps+I9F2T\nwe55w7NOPHsVuOz+lCwl6xqliYvMQcttTKDFv0KfioSMbnlQEM4vxB53F/sw\nDUpwDUjOWHiA97eBbwNLJCwTvLZaM4+w2ZShjoqg5XvMVa1Q4NGUimY7469n\ntSBaNUPW8Zfq4UmvIua+lJgnTI2eWkSIDUT24/StaNP0toUb3/lV2lgAGvEp\nqL6t\r\n=5oyM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDxF2r472c07OcMJ/R81O3T96zdimVcDf4Fsy4U5GW0vAiApL/RQBq/9kW49LkoRpxSr2facRP0fqC2vl8RrWZfQCQ=="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.60_1534437447699_0.23876010455923802"},"_hasShrinkwrap":false},"0.0.61":{"name":"uport-transports","version":"0.0.61","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"6d831a6bd1948da3bf601f20a37fdb53093cad6a","_id":"uport-transports@0.0.61","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-hULLPAKYH+kv3TVpv3cVxl7ut6iJYTxnW0+M4ZYCm/xaoIikUaFyHGvcGAcSviVjrz1WFQDyZEx4xJQJ/680XQ==","shasum":"5e229341756057cc5f68ab507215572cffb03293","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.61.tgz","fileCount":63,"unpackedSize":472187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbddOVCRA9TVsSAnZWagAAmccP/jjE/4nLDRg6VAL1gEu4\nEfqPKgid0mky9oWX4cWwSb0eporu0dqNiqofYqUsBPRIZAP+PD4i8tS3vFyq\nkArwMzdv1oRevhFtJ3GojteeGTxQ/bwNrBd2/AmXlVr5xgQALBzmQKZCWG5f\nBiOO5yeKZpI4a8DudjcpJPgPtmL1QRD4mNAPlMjT0+skcXT8U62pzxF5KNNy\n7QmVYgF7G6pSkyFwI7YyLmJfOpGGWLviob5zFQkJSnfw3eF63RosAf/kiqIR\nEEpK/Qkq0aVR4O28RNpE7bBMIrhHyrvNF3YxCWnukIHInjslteTLkJew6DOZ\nol1IECq8BsA/ecg1TCEjeD/R+QkLAC4TrnY1cPfeyORMtuaLOl2iiX8gXySG\nm9LHrhvVDG6+bInqlM6imQdOaHpJVk/OtuH6s1bhl7MJxylSU/xXsb6Fwbd5\njpr/8bq3rXXUH4ZytWSSJd2ztPqww5AzWtrEp61iq6X4n4gcmUUa+Lr0ZRKw\nEJwmyDzHUipJu03Kkxhg/E9yPjtczjkseTalToq3qQnU30nA5XC0GdRaq/Kd\nVBIWJxgBrCNnrfNiDcLnJp5ICJfEff/wIlQZNqSfVB37wWFgjrgUmn71LUzm\ntvqeeOc6G4etSIEzeT0RQ9lFRoDF2lPB8H9AUwPXQUBgacQkwHs8NhtuLiMP\nx2XH\r\n=uZti\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHF75z5wwcPu1DQnywYaVpdx3KRUvoWCspjVY5OLSXcqAiAsvKgoS/hGnYHALSZ1WKffXAeN3TXF/lOgY3p5OKPkGg=="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.61_1534448532187_0.38467660909740764"},"_hasShrinkwrap":false},"0.0.62":{"name":"uport-transports","version":"0.0.62","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js src/* > DOCS.md","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"adabb713e5a689c916cdbbcc7a9f44f862db2739","_id":"uport-transports@0.0.62","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-x76HuQwfqDcSd9aoQvh12PCiABLPdJLD8i30gYkFdF/CeMR+Ppu+JIeP43E7VY79Uoag8X4lHK5JwhVke8oQLA==","shasum":"80da97f92a828bf26c27e05843a69132d2e41cc1","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.62.tgz","fileCount":63,"unpackedSize":472346,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdwqDCRA9TVsSAnZWagAAre8P/2pRUikUCfK/ydG4MQ9E\naInvJmlFovJwKHDww9HG3egu6ZS1KwUW1+Jgu60gv67O5EFamu6Fz2bN0AUK\nXU1NpKgQeW3Bt7/Tnbf4Ht9wpgYUZ2GNmOp0ahSnjVRLHVIzmqNcZADb7xxu\ng84PRyiDXAawn6xFc4PuAZEavk66cpQzi1oletxDMPA2KDkc+8Yw2TwaR8lR\nYpBBkxVcYvHbQXdLUo6Gv0tfWy94Rs+eCiR/shp8mkAgFjqOt3WH5G2mEQUl\niOc/r9cAbmJ+dy16mwHya45mBOcGbXFjUzQaVcM5hEXSvvvFErjO4mKIEZ1K\nBCiIeDYYIdcBr9VwJ3b/JIXC7+8aC7u/DHKjozrfqBl64qMLhtFmpF6856I2\nPpfK8K+vrZVtD62GPBdspeqnPj1hCpUAn9G34LGFgz0QWh6yvj9a+aU+dPw7\n4FXh5Ng81qwiuMqhn6ksAyaDjSTDo+nLIKBljpbukxx5t7U++tZRMJgFVwcf\nw7/i6icE2e2rJ1N8G2JpLg2DYVz7myhKmdWM7yGe17UNf8arUoC/7GE52mqG\nnmh4kxveMOaNJsqgEL2Gn/OV9v2JKMCz9JZjOjYwIj+mrifC2DLVyKOSarbT\n6BMuBwJ6u/ZxfVo5p83iA9F14t2RWrwFxDo5U4/mIvjjxzFfPP32NLJ0rDk+\nnfsL\r\n=EFn6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGCPkY9D2irTPxaIxNrs8DtX6BUQ554jN/KykcgbECPEAiA3UxX52YsVQZVM2Yc3i83a6PrYy0WAyPcMaDQSXIjnww=="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.62_1534528131051_0.9173549097606986"},"_hasShrinkwrap":false},"0.0.64":{"name":"uport-transports","version":"0.0.64","description":"[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login) [![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports) [![npm](https://img.shields.io/npm/v","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"3e79f85acd5ff8f4f56ebfe135d77b3eb4e78dc8","_id":"uport-transports@0.0.64","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-Bs9++qElc86Gdm3ItsROJuyrwXHWEpdO1uWhxjkmtbGoqLZHSZkEbzMEfLEt8tgYsy4GLRCWobfv0r9dSczFdA==","shasum":"d0d5906caec818c4c89d4c36cb69295676f5cf63","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.64.tgz","fileCount":66,"unpackedSize":502885,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfdOPCRA9TVsSAnZWagAAvcUP/i7kqx//Y/Q82CYIRfEY\nK36Y2FyHJHHTstMhCKAlv3SYVEjT9fxzDQGrFge+UiKJsaC1KWT9nAs0rDt0\nYSukLgcM3QrUtcW0xTk0ynebUermtXWNk4pbeN+R0Y7ycelV5oHMuqwYmsDn\nFHWea8ZzB8PufonDoRj2OZMPy+T+EvEHJmdxcWUUaYanFgqbl9KvnYZGQsBM\nB6UOujHP+g8Udlr1jN0MrS0kwpQLbHLgIafmAoFwUO76D3+m65eItCKCH9pR\nrFoVwdyLg/ydIDhsfjSNKCPC4jKetRg8q2xP75vEe/0/xeS9JsSpa4xc1Amv\n3ku5kHskRlF+aULyAijkVkqh70WuB1vjLTtXhmUKb64Ayy2wVC9NAJoOKg0q\nALN1+b33s06cC6U0hwfT7dSt34KR3v93jzi0oCUTFMUs+a0piGEXybXUlTwI\nJYjld4BELWpINVkV4oR8IzGPOzM4+KiMR2Wk/JrlcVvEISMU3VjR9q2ALco/\nhjNUHUYfwjZ/jfItBYi5CM7U5aohSFuEii+2om35Xbamxe7hGVu8j9tPCQ1F\nfutnfCiXXmvm4PUj4t0K0FhOBiNUh+JLjet2JFf7zWc07cerZcSIevO3tra5\nQzavj9XWPOTWn3Z9hItXW0dyywl0pkc13tL4sg9bwTQdt24UOclbWO0BYcdi\nBcqB\r\n=HI5e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFslTVoPCkAzZ5AG6FF3K3Dw4jrCdTq1/jT3LoOemXikAiBDWyydsLYiWuQlBuVV8YbBBMojtGTV7iH0WFdUN2a+uQ=="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.64_1534972814982_0.033597895757272234"},"_hasShrinkwrap":false},"0.0.65":{"name":"uport-transports","version":"0.0.65","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"ca48524ba35e186c6011eb73b03e569cf0d8f937","_id":"uport-transports@0.0.65","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-V+VVsl5EExgakyLnRH43TWK1djbxgaCMZ8ol+CmxNUbQ1yq7srzaz5ESZa5Gfi2IKfouOxloZCkyfGkfeHNSvA==","shasum":"ee585632456ffea9a4059df8f665e40502ac42c1","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.65.tgz","fileCount":65,"unpackedSize":497712,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJblpTVCRA9TVsSAnZWagAACf8P/AiU4tpfQ5pkJJMr/w4a\n30TTKvgCaMzk1YO5gRD0OmFemSTH9EEA+XBMlw5lkNHdWdZ4iithkt+7sKlT\n0pkfrjrXgWsIgEvzLyicb/miD6AwC1QU8Bah/YKNCFv0NXI71RavwIKp1Lu8\n6Zfw4RdlpkgTwk6Kbci2qbSaYDYHCi02NL+00XTPVCCXkbS+Xs8lNAWMvJde\nqdASzKceoZdvm2oN5lAnwyRKST9KZNi8LzIhYLnxjJuFLGhJ4T0sSz1UssOy\naaovgEs9iUpOn25IINIAmnYcliIw72mVZYEQWRlIiuMvoJarXJqVWVZoULkm\nwMZbfd0VW1c3HiP30Gc2VVZ10UL/6NNMN4OPEz9aF5rebIlhAJWCNtfjQPGT\ntRwEIa4rGADvJBTZbfE2hHv0jjzykabpB9lkORCnuNG1bR+4z0vn6w6KZkc3\nuC4l37KnmaivNTxme+82FScTmxY2DocG6jgxk3S23NYQXgAkQbA2alwdNuOn\nXg8//rIwB+JwpZKVrLXoX2dMw8KWiFqFL1eo5sYWplZBeCR3HI3EZlDdqs1n\nYIHQNyNgfCac7ohr33Iti6HJw1WkSUQVZrvUXdcSbMKwtFiLz32rZZG/OLQ9\nOQcIAq7XQpykjyYtrNucOV3yNxLyRF1i6UAwwBCvn2NivhPvuKSyKQyy7AX3\nyDnc\r\n=2UVi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrfWa3Vm+0PKHDLEkwftuIdn1cxIKE3hJFf6YOm/agagIgXgra21Ki7myv8ZcG88ld/LSXHH1UN8nQDLoo2llkzFQ="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.65_1536595156999_0.42152021774755344"},"_hasShrinkwrap":false},"0.0.66":{"name":"uport-transports","version":"0.0.66","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"f48119010c91371d3b48f74ad2c954ae4542a962","_id":"uport-transports@0.0.66","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zachferland","email":"zachferland@gmail.com"},"dist":{"integrity":"sha512-axL2PIajtWsRBmabG4jIl8cPkganWfUVSQt/jLPyELM44Fxhz0kEgga6us+DThPwKnfuL+8jz263FXIMReVTgA==","shasum":"46e1faa8d76bfb970a6c9768a4ad697fa2ef2e36","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.66.tgz","fileCount":66,"unpackedSize":496028,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbrOi7CRA9TVsSAnZWagAAjFAP/33qRZI230EZAnXFV1a+\n+irXxTpPkjJaTzxz/8l/8s7g3CQ63RB/+TYgb7yWjQxQN5GLYMAbe1Jb3DSJ\nD+iOo893dspzwxiymcyiqisc3RJYKztq2egjlXXzCzZS3zJTBgfNvkoJCVvS\nWhN/opikND2DrSFeXPzz6nu9IlHFCIxJvsG8cjb02H40+8pRhStCyPp8OzlM\nZE/QBppyeQuHSsxdOsSGT19v3kuC4lHNIoBlhadi8eIoHW6clZBMQ5h2Rma5\n8NfHP9JttzBgzJk+KFslkL7vQQz5TlGVFi3MklDEIxCUc3W1icY+eZX0kS6X\nv+5FpJKasQgJgqcUW4BaYFAOY490vt/KFUIwcBzpotRr1ZuI9SNWew7lmpSr\nM48o3t/6DRQ2wrXKpsCpQH51+GXE3kpt5iz+6TKaL6+5/3MWP4Ao4xJXPPeH\nEf9QOQfuPssvyZy/OcV498iEuZyr0MqoShx8U7zzbqpB0OQEYsyp9AqplS9O\ndLh13mmIZj89NpWrO4+ZwBmiXj+x+6ID0XB55NMV4ZgKopiwHARt0pbA8wXC\nP1DcdjLOBYvAGeDIV0XbBWvgPVce9MG1UCXk0YKqrqApFnNcnksqYJ3ce0KR\nZrLo+hamT9ZW9762zZ0QgSrThNXnqYjouk3xAxKU9vtW4H0UQp2bSoNqmYk0\nB930\r\n=mzid\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGF0e5zYEPj7sRepw5/WE7K4iI8ON/CaINSpTWf7Gf4JAiEAsoTqL9vverUtOPFl0ScbDx24i2JPY4RyOXUq5hAuDNo="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.66_1538058426911_0.8027054567375944"},"_hasShrinkwrap":false},"0.0.67":{"name":"uport-transports","version":"0.0.67","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"ed3821ef728edbd1b25b4ddfb834573dfe382a71","_id":"uport-transports@0.0.67","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-fzF3VDyXYrcZTnQcCYxUsIH+TeNihi3Z7umrbMs0HGHwOd/z2reigk0DQrAoiwaMLDlJJst6oqT+TPMSwr0rZw==","shasum":"67133c18b751065e8cb030f5a161d52fa7970386","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.0.67.tgz","fileCount":66,"unpackedSize":498950,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbvmZyCRA9TVsSAnZWagAA9iEQAI8UvbNZMYy8yex4qoRY\n/Lia8a1E5bjX7oxrmwI+y2YJFt+ZrVvrFxZDZKsT2AmCXmZ58OQo9QUaUKc9\nZsi0sn3RRXFDruygtxtyxK+9+e/3ffY48ROi2KJXzox3f9MCh2Rh2EaEeFQ0\neu8fSi3qgLW1IVP9EHiPTmYisjvlqWgPsHvjGr+iRQaBbQ+7dK2JFlQVHfcD\nk5G+cKsrneWyMC6KkHXVqYCnaR7TAmPxB1legmcZKsqfBi6eNEsT6xZxBnnB\ngxLo9fpooQDep7YA52DCBjEvTvytBt08mzOFxtg5An3hSxuE5234nz/eeahm\nOyYn2buWwLIzgtwNrSjsradijqnQ2oleK+rNC/JmYbp3uN5D2r3fROR3cFRh\nZhY21rqiqVLGPH3q/slyJPbDzNsp+pLFMBAX286OkAIRXHWo7/DBe+MiH/6y\nH9flKnkkuzta1QvSbmhjKgbdhLP7ZCCn8v0eG9ImpvK3pWQ/Hi5cEXVgO9aa\nxdT4//tZ6xpJvKaZJNoOBTQdN4O366n5WBWbtMHSTMMWPlKPnBgz9wKzy3JR\nlXg0sk2m9uCIJPikWKaT+lPwHiBf8RWBs+QuPOml54GYmSlBsjMJ1fRBAJ5R\nywT2fOMsZ0sNZ7mqPDoOpikPYe0XRjn+oZFEWetaqTotdStSGK5U7YQq/DrY\niIRh\r\n=/hCc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFHd5N3BRoL3VH1zPP83nZLMu4ylirFSPt3YZPAGhkijAiEA6GGdPi9Dj50iwBSnA2rpjKKqIcok3spiZ5wlc3rChi8="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.0.67_1539204721626_0.4068906337313005"},"_hasShrinkwrap":false},"0.1.0-0":{"name":"uport-transports","version":"0.1.0-0","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"a68289296dab2db5cc74381077a7b81bd42fac6c","_id":"uport-transports@0.1.0-0","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-I6uNyz9/iHI2xNelKIpGbuZSVLNOSmVkwq7VvLZgyMC3mUm/AikjyvthlRQUjz9RPYtF2jcqbhVqHRfPMOnO8Q==","shasum":"e190ed5ebdadef67e1c4a079c49275a49d7918d0","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.1.0-0.tgz","fileCount":66,"unpackedSize":498951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbv1/eCRA9TVsSAnZWagAAc+gP/AkVoA6F6hxCfFhmaAca\n5lDNTqx0e3YVF+L6du6oDTBybg82XITnDp6oKQ0JmbHaXVjuaAk8PzdzChs1\nNwwlljavur6eQQM40XgR6GbB5vAtr0pV1FyUtgxrHkb3Mam3v7qjmpJuCOVJ\ndEaw/cBjUG9ta02LRIR29LAsYitaOlQai66AlPX0eQOWwoj17Fry4IBvuvc8\nWi/uqZtU4KgC1PV9ZsssoomhceP2kZCSRRTMo5l5rmR0pYhE52ggbUIHg0AH\n2kSoyy0Gxw1eVo5JWdwZfwq080YdC0aMZeoqb9WqLLQYPhLpB3OJuR5o5vx4\nRCRdiQ891q5JmSaxDZAf5wwi0PHGL3q1zpkgpVuqYYdlrZjorV1yr6haev4m\n6B/WUVCJpbjpADUbhWJ+iRC7ukvwgKrwhHcJfLucszWhLPpYwUXq1v9KFZxi\nZl5q47vdXO6LbrYdwrS3IfQmh8zRk7ZX1oYo9UiPch2B1edJCznwME0idQh2\nqmV9xPvOluTLb9VOTtEJ7J+K53poDyMiODCWfGh65eIZQqFW14l4n8Kv1Wmu\nDuhmbALfOVjWiHq98r7NyCySdUZYy/l+qUGOt7+96oXjii5eoXwv9JB8nkyF\nLcBv9IaMyJu4i6SjpsqVyNVH4fpMoXQLpS8LT2mkwcxppYK4ZQPgiTyUkhMc\nbT3O\r\n=TRKU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAOCJuqOCWvDyQfCjy74IhHdCBgehhmMtdsuf+H2wm83AiEA/sk2erDB/jyuq/EWlvVoR2Ju0wRhMboxMM2dKxMqvsY="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.1.0-0_1539268573775_0.17162695662657157"},"_hasShrinkwrap":false},"0.1.0":{"name":"uport-transports","version":"0.1.0","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"5acbd09e9631cdb84ede0572da19459e8ed5c209","_id":"uport-transports@0.1.0","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-sniB4Y5M92Nn3Y4lbdcm5LibEqlzZlgQ5lpqFj7WNdJQXVNo1ptkbhGdDDQ8R9NYjw1xHG716vYud2VWIl7Yng==","shasum":"4b0790ef95fdef1431c3222f149fdc7cf2625a43","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.1.0.tgz","fileCount":66,"unpackedSize":498949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbyP03CRA9TVsSAnZWagAAVz4P/2gR9zl7cjl/ANJaZcOF\nurTrRCH9938aaGoVcGdR1x9ucXs9IYfP2cybi0sVqGt67lvLRqZgXXm2em9Q\nbZOH8yKpzLKdIVWRK0StmPsIIoFg/N2XEbOF0dDXbxz6/QAMZK8zOnWdqiFk\n8ubvnWBRuR/unppkKR2GWOA4TMDpxUssviYWI4maPfqhfeGJX/OFLwbDeqM+\nnEHWEysLzaeZM6533Jz52ZpyRtwUKwtUcQqAkFcHf3SBaSrBXK67XwgItnnl\n7voRPcFY3BMxh0LPDqtFDFqLsFtxhTiXrWNszUfyFdNRu2EW9eXgo/QKr9sE\nYIq0to/mhB9K/X1fBpyc9p51qRf5VFkHfsDDAZ3hhtv/gT50Miupb1Df6hrT\nrzzPYn4fE3Ds8acqca09XWZVqyeilllkyyr1z/El9PKk+xxZ8xKRu6B9bgIX\n/U3xK6v0Noquv31kbYXTadjEZY6ZY0PS51eiKNUbH1cdjJPG0KU/nMLy8rx8\nvaDjai8cdMtgn4ohiqo9iJ85xgNJJcinNjzHChWDP1FDHjf2KV/56l1ctPO8\nzmjYIsk5fjtibxsSI66GrelaM4x2ffVFKnRR7zUbrfOc2QLYHewvS4PtJ1yI\nEM3qcuykto1KABj00GIkyh5K8r7GclfwSievXb4WAlu8uyi2FM4k1iOZ4Gbi\nDtsa\r\n=hpCf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAkuHXUI3KV0z0jcsvrExtn30gKiLQa3DgbW9h4/iIYjAiEAviMNG7nHGoWPG5YLxEzhYHrpq8JrsEF1nTVKSs9o30o="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.1.0_1539898679016_0.3902151494256263"},"_hasShrinkwrap":false},"0.2.0-alpha.1":{"name":"uport-transports","version":"0.2.0-alpha.1","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"7372ac1ed2c86a600b75d04059f602a16114b896","_id":"uport-transports@0.2.0-alpha.1","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-ldTh1LRVjE5rv2lwzdV3gmzFLMX1I4/b02v4XC5FTTKwFboVBhlrL7zl+IX5yr5uTT0VVKEpTkbHfP4C5QpaPA==","shasum":"d78ef325745a99b043037f02d4243189a884fb90","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.0-alpha.1.tgz","fileCount":66,"unpackedSize":503563,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbzk6eCRA9TVsSAnZWagAAGpQP/0E6pkscMfn19fhWoKC9\nG0Tg0g3wNfuks09besnUlebXVkubm5As+2cQSccFvYNb/buMNIKc7lU3ghGe\neK6yVzE1ixx0bLzjlVkuGw2KQfWcioXKfh39P1vmoDg+0OS9tL2U59Ef2AgD\nOEe0C76xmAWQ3yoC2cyRu/yV2RK0Ea/hB1DzsFIPG7v+j5CXLx/1tDtlmtyu\npY/OKXO2w81+0UtYmuIuqNWMBNKe3YkKnV4uF1yoxUhVAWj4DVr8VtGS9JD4\ns3Xh2pat3iMX3W7xlYvj2//VhqZNS9/sWV/EQxOiXHnr3M9fC8SPEtUdBuQY\nR4/STMNCVexyeA9p9BWRVfbK8kJRJYZ46xWm3WmULhRsStff9G4kVR6WH6OX\n0lTsrQelWjBj/mgub+VDZJx/463wr92zy5VKk6YmOcGvN73fgDrnLHK5P3sr\neD2CUHI3V7ox6KEHTxjfK3DJs/KjO4+QRjDJXaffiEqIfaco/OWCVglvLpBP\njj+WDTNlhuXKKujFZTjDkbwd8bl9rOhi3zp5MlRMnrr2H2BntqdfsyrseyXe\n11Em3t+4Pet7t2uNGH6Ap7wseRSn5U+1CPQA6gb7wqO3jn8oWyOPoTOh2fLO\nOVZR24z145L7pjKaIAk1hoykEBnC1eBr+yYl7J8ZFxuk+xiFkEF5PiZ0p3i5\nk8BQ\r\n=rDrL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmw2VptPa3qihMQtW89MXSk/7WGPhmrJrwKdF2nTbrugIhAODvTGqvLZnqgIqa0TDQHL25Q/fHl6v9BNryrk1kCoWM"}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.0-alpha.1_1540247197935_0.366680426918202"},"_hasShrinkwrap":false},"0.2.0-alpha.2":{"name":"uport-transports","version":"0.2.0-alpha.2","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"3dc8282b8e28e510eca82c6d5b6ad392d53db4ee","_id":"uport-transports@0.2.0-alpha.2","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-n3nC9+lxi1Y7fWEcIPAgJ2Nw3ZtX36aL1q5Gr8DsIVTFGffgTB8MwQKxqGEqIIhBxRwSGeQU4UsUeVw6glWK9w==","shasum":"d80302abb5c6f34e40276f3d1dd7c5c24a7e3799","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.0-alpha.2.tgz","fileCount":66,"unpackedSize":506745,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbzlSBCRA9TVsSAnZWagAAjpwP/2/3nfiJNtJVDIpmRpku\nFg5ozCI562BYYb+8Cb7BGegy1ArxMY2y7jKPswmnPEMj+gCqMu6Nf1JvpDnc\nT8Ejxt0G+wOqjZqLI7bwhjgCPFLy9DyEXVSVZnEDjJhhJq7y/zbzxhD8y+J5\nfml4/LTMfMpHVrxZu9HvfGaR4glFxe35+1tqqfnZufWu1NLE2drb/q0LZ4wi\nDu3nEHa5S0ePjEni14t7toGlhJ5tJjzr6oPj3CXEYg//+83jY2EN0O1Whq8B\nuicsoTsHZIW2o7KfHeDhcnjFyK6ieHE9ZnOPvdyBHwva7ctBct2F/nMbBAUc\ncAHjM3SnLJ58+zb0f99N65L7jVL3e68M+QaFjNWvmf5gwv3jOAFz0MFDEMHH\nO1ojQ+QJzghuTo/+VaPuergiCuvriX1YGPckcCM5rX/Nfut9jh8iRmSpH4Nt\nF3rAofBOtyqd2vi7psLnYOsx0HyLQ/quWUN50MKnePVI3jcy5So8S/tPpFZ8\naMjjiNoVb2soeDUFd459MHsNzPSrjA2Gfax41gNBkW3GtRoXcvupCC0BA9Pj\nmvFigs2NhbL2JtS/5u1KeeXz6rRwAE2LN6Ch72eEjG6kFlJLn0crXWcQlLJP\nJyLMgcL4NmcWqEfagSDeSHVYtL65JFemT2i1ZOGk1bGxAqlo6Jdrcz3Pb02j\nYJeQ\r\n=5dCh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEy3Jf1OJIl9Tu2LBHkqXTUNclTlFk5ytL8kSxBZvvx8AiAHgdKRHZEO1qUQQEL44jyFa822GhPTw4ve+P5i7TK+ug=="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.0-alpha.2_1540248704615_0.4888782445224611"},"_hasShrinkwrap":false},"0.1.1":{"name":"uport-transports","version":"0.1.1","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"bfa43c86a4d0dd6af7291a76dc8f286c517cd36c","_id":"uport-transports@0.1.1","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-jMDfK8BVxCX5C5vHODTp7TeSoWceNa49Bzge23KIS1R8wpDY2ZLhrCSZI4LnD8TsAOTzH4GQ+OMFBf8+HiOw6w==","shasum":"39e588f7b64394217f7728f57d70434b37879622","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.1.1.tgz","fileCount":66,"unpackedSize":499035,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbz4IRCRA9TVsSAnZWagAA4RsP/1Vkeh4KvmPkVippg8AG\nDv/kTDuDmhTQtyOysTbP6SJRM30IeevdSho7JEJq+psmchgb4dy/xAbSZxlE\nckaOVWq6qPSvYyyC/6djLHHy+MPrbcu322xkikJ4s8T+wEVqOY+Fl7Ezgwo/\nqXdSIC17UE4OQj3muRj4juvXwifSrOpxIVs7xQuR5TcLxDknNGigtlzDCi8D\nLr5FaXhLzxggD3cvphxF8X4y6+tSo9FTKG7hTThCAMVQxHiy5EEn1eNWaTQG\n8uWFd9l7WiH28mkIC6UMTLfK+TtT/MjGyihUusEaBCjlcGQCUzW1VXRrEJkw\nqNjDrUt0ROEj/KTRSVsnp8rGzhbRyFYb5vY2SsmYRtkvlq0OV47/XYzwDg1m\n7BveLcgG4P1uk/BHL8svIpUgDcPhZkzL54SSpJRU20Y7CTkiVocA1BBcTxXJ\nNL+v1zjBjdK4VR6KJnw5AnEc8uIU4HENUiIiHSrd3Oplt/E2JHBom8UolXa5\n+7oB4g+K4Dic9vOuxioPcDJoekQCatCENIK/Vo0nd/+mg6U0kvMhUABijtXb\nFmDGt4Gzkl7VLWI1IswVzroEutfrqp11wnCs8gpq7iOybgrLIcrGWM/gdvaP\niRX2xgi9UMgvN9QfVeBTuSS1VX1h0VAm8bMhWARV5U4IbZCKTJ+Z+PhdOrsF\nhvmD\r\n=0aTm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOxqZkh3SOKoyK8cga1ukIXrv5oJfTzHuLoq8pHo6GQAIgI12b6fZ/LH7Pvi0PfDPh6ZQ7IxuJbFmdHo9it7nSbpU="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.1.1_1540325905111_0.3807035315444347"},"_hasShrinkwrap":false},"0.2.0-alpha.3":{"name":"uport-transports","version":"0.2.0-alpha.3","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"0776fa092078f6cfd802d73ade543afff2b7ce1e","_id":"uport-transports@0.2.0-alpha.3","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-KnxVAZcqF9le+cqm5tS+lX9PtD+LmZx2j1wp77EYz84GtBjZTqOeUtR48aoM9vmT5AKvLJMqYLMVOU2kzmWveg==","shasum":"4424d5dcdb83a76d577d1b218fb6ecc3b6363745","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.0-alpha.3.tgz","fileCount":66,"unpackedSize":504009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb0fTqCRA9TVsSAnZWagAAamYP/RBhTAEioslZZwOvtCMW\niuE+1IYrV4tN0xWs/xuoqQRXAD1e6Kllyx521ogAMwd/gLOJuK+w2/1fGdUc\nsvodUQbmKP6XlVPmWlD9Kx43mkNdwkDUQW198M0U05RFd08xSkf+WkT1ofmZ\nc+0hFuPoTemuLTioCeUN39Glew3QsabD6Pn7yU6B+5rSHKOhxAZ4F/0FbB6Z\nRFf/yJn5/2kdlQ6lW1ohju1ZnNLl1bUOq0MkfV71Vav+8xsNsStZd6ZSzfNH\nsRIgjrZ5vrmkewvS+0dqF4X0o0/qx3yeeqi+Pr14l+c2kjLD0YCtKtpv7uKs\noTAo95AhgASeKhUyguNqCC5fUrHWq31GtAlEdpoPE3aKPeuuwBlm0QoovTIB\n3GsUpt7ZG+jM50iUJdWmsepACmfVQDINXGGA05hw8D1VMNef7rZu9y1MDn3z\nWOvznpRakcxFZTnRhbQ/XmVq5KS8AZkGrR9j19Y4XS+B0LlLgqEv380P4vgn\neZXk9Rs0uiCdyeBP7JMzMoSzjPJ5TDhJSwafA0OZxqYbilGbwBJ88kq8TVoc\n5rVU1mMl2wVdIReqfBG+EyE1yMwPghagLQtO1KOE9ekQ5WwyeYJRG/7g6/rd\nq1r5qJXHumuax1eEYqLxQqraB9ODmscLBSodcp8PAKceYwBFF40Cdi15Lu/T\n2LUs\r\n=TLEO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/w06cX9cCkrLVSDlORpF0RLk1Kt0qcTae6w6yDO87YAIgXuyKsL3DLOIfkhnxUFrnEladsq9CEM0Ci7JQxEnrJBw="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.0-alpha.3_1540486377570_0.6300485465844692"},"_hasShrinkwrap":false},"0.2.0-alpha.4":{"name":"uport-transports","version":"0.2.0-alpha.4","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"8722337d0aab2a63ecaaaa688ea812b1cd2063fd","_id":"uport-transports@0.2.0-alpha.4","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-tjh7yXroX7sMAndTkv9hjHUAXHTtGAgL4/4cbYx4M6UG8CM0HYDdtV3Kb7xDZ+Dww9GCFS5PhjEP48TG++g4Xg==","shasum":"3e098f72c87dcba5d6029accd0d9a09a275dd616","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.0-alpha.4.tgz","fileCount":66,"unpackedSize":507423,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb0fU/CRA9TVsSAnZWagAAaHkP/3aU6+/FmrU0r7R8rsQD\nAdxoLHtqjFnJ3loGgKCzWpol6o3EcTv18R5aOGu5zoM0D5oTR3VS5jEtXSuf\nJjPIK5fbihsOyUQoe4aCPXHJpt8xLrHV2575AlF1s4Pycftc+GVG0eOBRtgW\nBcSqZdVZ3umBBUz1SkfPAOmgKJN3sAgxTyVZgYr5na/wsb7aTv4NiZNOuOoP\nvzCGiHNbI1OjpLhCeUlc0DvY7z1PTOc38mlH4g3SHPvoIZ0BC0LegmLTSSML\n38g6YLNSmtIzpKpKpebojVV+tOJzc6IS9MW/WM0FA9eCd3s5XfuOll9dWa09\nvndUBj++ceTsJ2xdh6W0RMQ/xiVj7jllsYN+4dhp76QI6TKexB/SJWBraXPn\nr244mv+6KC2mqAjWI8WZy69MJYS2eIZiWkQTd4SFP3jYwZ13cssZn/KOuSuB\ntHoWhxzeMuudFvDmVDTm+gwfDuPXhTxy8Wgxsdb0qErLjQ5zn7VlHIdtYVgV\nDYQSHaIbxfNAqkKh4gkaNHi6JNeFteltXq+SmkpDPNo7rq04LjgjKnHT3NT9\nt9oosVYxf8ps2ljmjaFQCgJa8NEzb5MlLyLdCpsDvllTmQmDqMLKYgUcMb+G\no7RyLAk0EE9x8i+b0as1+A6JxrGX8A8aEQnifTtbL6BECJSXPjnL4gLxrgWL\nOCjU\r\n=Q0Rj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFAGXY6Wl06JUleddDUOz6QzAmjX+W9K6XEzG8ljeRqpAiAUKwbXJoJJj9WSOM3DQcScvJOpSkvk5yyttXnla7jxFQ=="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.0-alpha.4_1540486463083_0.5914551037677049"},"_hasShrinkwrap":false},"0.2.0-alpha.5":{"name":"uport-transports","version":"0.2.0-alpha.5","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"bf2540ecabb3c3e61d36697cc9e0b26a5a582784","_id":"uport-transports@0.2.0-alpha.5","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-BhV9tuI45x2BXN6xesNfAJhHcDYZaAeKE9w4vVSJ4a3N1D0d9nVx5CkOGepU3OmyKeTzlgNmNfdGmUhS0jxz+g==","shasum":"6347b5b7c8d0cbaa5896ed33c23359f755b2212c","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.0-alpha.5.tgz","fileCount":67,"unpackedSize":507963,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb0iFMCRA9TVsSAnZWagAA8l8P/RhRwdaxjF0DDYGhTlwz\nnXa5J32JKmKE3CueHPg+8Lm33B+j3+4nOzLnTLUlPMk6YlEKmABp85Fg26wm\nIDj7xBHq3qCWT4UrVBgwfM0QGsY2j+kXCf1AwGylMX52pY2VsT0pPOosG13Z\nK9fL+czxCb172yg2+YWGZW0nbzrXc6d4vF1KTusRVqdqttm5cfNJOtlVHoXA\npXvC8xeNegHrJ/EDWTP3R0nRIho1DqGyrxJAtfJKcS5jpKkZXzwGidx2yY6K\nnb7opxzgxPqQ5TJdzzDzr9Ts7cidDpF4ixrxV1K1WJ993VAya8tpkntoSSFb\n/nHdkolA/fiHn9GD8lC7zMjOxC9R6ceu4sLfJtEwQn+7BWpT2oX9AyDIzEi1\nC2RW9CvPTC4BE7uFv6yN+kfmXMQensr72dAy0XlbUg9+k64QpV8SzTD1a6Op\nT6R4ZZHm7ca1kXkyrTF04cY2wsp4TKXI1dPdWQ+XJYvWK1WECtj+dXqRdB1Q\nG9nX/55FObzpGw1hJzlafdyhNgu7rmXz40noqRQlhEIeEuuL3SFxWmg7FqsM\nWrEeKkBPOtlPq/b9Cz/SjduKA7A3PlOkLQ6+MgRs494FLOvdZ3lkTnFCRZCU\nAZ7HFLO80KoyOLAv3k6ZaA/WJVSvBNZ1nz7SzsZPLFS3wjE6eqOPYdJf8w3Z\nTgvF\r\n=Alrj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYA1xhK0FQ/6rAmUqLSAxphJLVd97AuhlendWbfkX8KAIhAKgY3PTtUweQ/1PDtsekl2c6WnbXctCTxnCFaU4V6G7x"}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.0-alpha.5_1540497738757_0.19946789442070578"},"_hasShrinkwrap":false},"0.2.0-alpha.6":{"name":"uport-transports","version":"0.2.0-alpha.6","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"e5b92a8b561259482b2059f595797123053ee8d9","_id":"uport-transports@0.2.0-alpha.6","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-6+BzKP0nd7HLTE931FC70ullkzHP5dF143VREl8J3QvYIk5yS4TJ4d4Ft7/v0FuZnF8xLLEZb5ICo21NKG9bNg==","shasum":"b95ea119f608402f3ca0b9dc13a620841e193c27","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.0-alpha.6.tgz","fileCount":67,"unpackedSize":507607,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb0ksbCRA9TVsSAnZWagAAIMIQAJz664Z3BDGyWgNBL0jM\nKIGy4m7ToWiIdo9a1qlu5qpHLp3b3X/4an7dZFe1DmFsoddcJVZP1tikfyIi\nIe2w+yp0iZxicEjWcGh4vi47lmE7udNBpqPH+DVrdHtRl6scwuBi9ldJR5tV\nn42231r1obZXsem20YeUVZA4sJcy+F2y5voRQ0huOhzHXeuuPPPyahg1DyMr\nfCo6hxdQqW62BmZeHE4TH9td3uh/seSakRY3T9gLFvf8SQ8iRUBzNJdl/J+m\nN+JUhQ3zGT8vUI/JiiII68efQr/oya8h/QiuA/VjubfFQ5ZoffS+drxCH8vd\ng/WXfW0COTclIP9QOIATzZw3fIdG+FPDatAyBS+xEdN8lt1ken9DmtwVGqrt\n1OCcguXwqWG1tMEBthq6Ebf6kQHNDZjeMdnW52DNrBffEjczXWoeg99lS0Vl\nw6i70WxvI/Q45h+Ftg/nSTfXPNhB/BTnqlERy2Tsxw9Rw8BZvisz+ZCjCIvf\nIJXr12FgUwasoUM26GXtE7Y5vbsk2nnJigaiitX3SVmiDaNlVQwGnfNYSLwP\n9N5nWeSKcC2lq+XXnj6uuSfe2Gy7cSPFX9XlxuDGJ9BPb8SeiCYOntDG6TdL\nlS2HMYg+OwDCOc8sCEWPmxhCJqW6WRpdsHnXiVfTm8j0Ewg8S+Myyah3M4M+\nymj6\r\n=Dhie\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeaGGm8hgaritIZ3dfXPxGf616/wUSKlgAt9qvib0HjgIhAON48x4TknGneJIgmk98ud1Cfobno/b0Tc0paJKmmMge"}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.0-alpha.6_1540508442829_0.7172511289632488"},"_hasShrinkwrap":false},"0.1.2":{"name":"uport-transports","version":"0.1.2","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"9517ff1de3b93db602fb0c4ab73a50c673b3d8a9","_id":"uport-transports@0.1.2","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-Ts/Sdsd6B4EyxwObPOg8aGz8WZESylrWvbxwZZLFw9O0RDIOVwisod9lqQUe/WDYyz5kADt48XAP4mrpbdPvKA==","shasum":"b56c9a6c71b721f407eb56a709e720575ab1f491","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.1.2.tgz","fileCount":67,"unpackedSize":555761,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4EEKCRA9TVsSAnZWagAAQrUP/RICRnvW6mqZOlVa++KU\n5p8kldbrPMq9uZF0wHeWc6lp6oKk2Ezs6cgUNw4DwolZilnXwvsPguB4q5nI\n4EDZGfG/vMULXvpJ9LBA2ZGzKAtwY8oX4v/Kzp2NKAx9Gy2krC5oj9aJe1sz\nC0q0mvOmhKUGHoAqBZR/Ut9lZX1XFt7tWz91iAUDNpssBan1lOcA9QIp2DmL\nYPCYKfpHZH1kntIAZQhNDWoXf8fW9vT+cQJDRqNIQsYxWA0JRZg5sxw00wcD\ndSm1h3uSP12ZBZnNbibrPkQGvpRbVHKBqJEc4fHl1bI7oc4gVFpnNU0yp0zi\njyU1tqaGKrFOt72p/edZuZCMuxVj8fBcJ2jFTe+rJCtdB8fvzT7aC8NJSy+l\nqwR7Jv0qV3xWpRyrd/VFlP91DJq9VP7vMhT/a+CkOPI8ZrWY+Mbnuv1n3xyY\nu6TcAZQv8R3Q6NWWs4GLiJB46PxU2c26/lv1lvRYUI+K8vM3imqK7bwBC+YB\nswD5U+LKJJHxAUtTEmjQWuTUGHfHwEKU2bD+HMOp9rIsiV9gdCBQlzf90/Kk\n8ceese5ykZOnDYpDEmBCJsC24zca9o3/LWY1gJOHv/1vMv0h0Io6UcQL012L\nmLrIbvLDrZ/GRRO2XL0uGmXWB4Ddy871rXI2gSyFhiC5hUYIoMUaqc43/yy7\njw83\r\n=W9IN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBnzPLWZ2j3ZhQdB8DqBgq54WTeXS3oSG59bQwqcUVq5AiEAqvOhqMbtcxa6mFUbVeXpOsIKxv4onydVtNPYV6fIoMs="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.1.2_1541423369996_0.6715283699117736"},"_hasShrinkwrap":false},"0.2.0-alpha.7":{"name":"uport-transports","version":"0.2.0-alpha.7","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"a57e924129280cb60962f3065377a5aaa7bf8499","_id":"uport-transports@0.2.0-alpha.7","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-PJDPOFchxgKTKaIWxBtSHuUS1hXagwGez0Nz5EN97F+cMzVs3rMVra8SGAO1EryZOfMEOONDra0NjceWYFjZqA==","shasum":"a8ee884fe5463401b70c2f6bb4935e8b40cd8381","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.0-alpha.7.tgz","fileCount":68,"unpackedSize":564174,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7FmCCRA9TVsSAnZWagAA1XoQAIt9P4uN1WsRT2bL0WeI\n45c4Vh9GH4edthbml1/3M6k1psGKd3WlxY6OKSAoJ/uH0RZHafnWHU+U7Ppx\nto25dljrU28OcasGAyzc2UyqOkK/TxIK6coNpyJc4DzuGS4+VaYIHsF1uFVo\nAJK7mv9jUte03Ke3S5fDQj33fXdo7ztyV7zHOpqTZjgLBHs2aj8WPsbHokP3\nRVX+yYX2nv+w0gTNLLp35GFKiBiV+Rt6CK76Gw3H040C32a4KS+p7uGAVZyk\nqX8KD4SThmoOMmKMKUU1FtJJccn8uxM3pBunCLWQslb2hYZ2y3Phf68O/yjv\n6ZNHPDSeBQ4ZXCu3f2eoX+U/mC8ExVBU3WXr52SWmPnQbps/7xKP2t0X78mF\nrMih7StUeZ7K4BUu188x5latU8+q1rg3jByIY0ke9ct3VQxlJ4iIlxln4xAV\neYO76NKwI/0Dt9fi53RhD9mJIrw5ZpwRYmTDQYGOhaPRepFjS+EnOFMa02Gu\niA8bCvyUbIqzocZs/yxElx7XYyNaQzXeI4/ocDQAZnBFdOE6/EWfrKzYMrvP\nQLMm6+uvwefrRGLbsKo3t/fPGvWZdxYEHBz/CmMzO4gX5dZDA54Czie4ekod\n5/H15+R8TuxZL19ofe0QCm8y2hbWt3WvfFINRmes6Zq66dpF32XzE5cYdWlo\nfmBg\r\n=oXI5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqYviJ7vWCIHs+ziC2fFSQHxbY28DuloPIIdBBNinhSAIhALMI6nd7Os2tPH7XSs90qld1spipwtcqtXZ4y2CiR9Ey"}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.0-alpha.7_1542216065829_0.8286959997285617"},"_hasShrinkwrap":false},"0.1.3":{"name":"uport-transports","version":"0.1.3","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.2","webpack-dev-server":"^2.11.2"},"gitHead":"a775de1f82c76977e7d0e5d7637fbeb616f6203e","_id":"uport-transports@0.1.3","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-S/L++rT8nfWzEl6dQ96ZvZHmEqmYGH9Hj8HWCqXCQLdBYRLkSA7w2CmCTZbvl9XirQCAYubjAPZwnaldvphhNw==","shasum":"71a69434043d0b262314607071044187b460f9c7","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.1.3.tgz","fileCount":67,"unpackedSize":555761,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb+VwjCRA9TVsSAnZWagAAluwP/j2FLkiJts8QJHjgj8Cz\nltU1SBaO0uC/Ixp9JDE1ZWmlodDT3ixVBSCL3bbYReaa/Yw/aInbdFApvnd7\nxSGz8RNYECAh+w1/v1ki6D408kOOnSI41trGudPXN7Q1vb1qngT1ravVVQQJ\nIPeQ07u/KYvqMJk7DaJ6UBCMztDseV6nZNHNbBoUvjFuBLerMAWsMWV2iLwE\nHRt7km74b2cU9d9BPCkBxg1+beQOk4eaMhQTT0zBbLT1mkoZrPYn+5oFEvQy\nMWbWWrP8Y7Ix3ilucWtwMGKqp1JO9qXxcuXWGy649eDKTRD1zShfZbpaLtee\nWC2tRJkEHa+7tC0LyXDDM8GLlEgf4FjSnZxkCc2R1lWLbZ/U80Sq0adOh8b9\nDVRK4cGyFLZXVUOqbXedcJRR8nvy0i9W7w8+M2JA45KsScsR/r/4pa5u1yU2\n2BVwjjghBXirKtMOrFlUNtvOgdB7utL7rb9V/Feqp7zSvT3cr3otC7RnSMmF\n3Mxxgf4OswdPOF8KnUcg8byLCxuQyUv09JwyTE20yJlcIMliG4qQ7dsCBxAB\n1V6y+u+TKmlEsSMHv53lm853aJgcYGKR/zaYGode8g6+Cfcf3YpuRXpcyleS\nFmURCU1KnuD5K5g0qcrGB1s3w73U59IlRNAwGsgk5fH5NleKCT0aRzRpU2Pe\nAxM2\r\n=k+vd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYwsJhmJniMhkRlWv5ofHi2msiM7Z2FuvuhkYtOkL7nwIhAPAu9igWglBhfU4tFrzX/fJHyhZKhGjGUKBnEDbmXvb+"}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.1.3_1543068707095_0.7106392242941744"},"_hasShrinkwrap":false},"0.1.4":{"name":"uport-transports","version":"0.1.4","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"./node_modules/jsdoc-to-markdown/bin/cli.js -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template 'template.hbs' -c js2doc.conf > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^1.3.7","json-loader":"^0.5.4","mocha":"^5.1.1","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.2","webpack-dev-server":"^2.11.2"},"gitHead":"c5a21f1d76e7262bfba485b2e1fcc7930719d5e2","_id":"uport-transports@0.1.4","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-qtaOztpoHgfp3ZBT1Q4lOriRfbnxacQCqIfm1z5Q2VhJqU81H/N1fKz2GoXhV1L6DA8rzrPLKQlI8Rdth67sHw==","shasum":"f34cceed7c52fc3701a5c03bc8f433af058ebaf8","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.1.4.tgz","fileCount":67,"unpackedSize":555761,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb+WAWCRA9TVsSAnZWagAA2vUP/jVIH4KKiM8vAAKDpHbM\nHxl9J9mi8ft4MXFzyd11nLPeFTQdZ2pelMJVb2VkezZWLNI12vVRHvIyPEma\nqW/Gl28kVbiBOvSgtlja5yzYA3595mxnLgrD03RxZlqo6F4XkZOM5tNz0/K9\n4/vHhlCiU1jtE2GUy3IhoWdCUg75rugVxmZfV6dnQDGFG7p235eQJGYD1kQZ\nj4fBGD89zn3QRw5fP5h3GYH1mdFmEuFuQljd+xAixvMcAaVmmf8fbfIZPutC\n2hqJQQT41DkDNS79hUayA2InJcOF+252n4BHdNdvt+vjQ8h/Rn1rreNzr53t\nBRy7VTsS0q6fR5zl7uk/p5ajujI3jporNXmVL5m29GJTcmtA0vOzMsRAqaFi\n311EWX0f1w8fbEkDleolxOMaZzCA/WHK+81DE2PhOr0VTAyUDWi1w61JKueL\nLFnbtTBnA8H6DZXTfhXNSH9RDd4Qcqu3QiAivw9fSCUp51cqQr0uH1labn0B\n73rYRlnmOiIait6w/yzhQYU5x6c09JDPufoX+VcBQtPwGX0f9bMplF/OBEs3\nk5+PVU+4PztGabf3j/LGVSSV1wNjx1WzNRrh9zbGBrCqKza3WCk61b7BEk5C\nqFN9HzPjTIQiihAL5sHwLK4kZtv2QGkb2kes8mjnFktyLde1zBQqJFUmMvav\ncrMj\r\n=x9FC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChG4QAUseLfXiYih1BImxhjwFmMvdvYVBwUFohLeQc6QIhALnNjjjiHxVgGXv1KbtLkFFgaNoX+FTBtNAeDrWhVQX0"}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.1.4_1543069718285_0.4212905267125895"},"_hasShrinkwrap":false},"0.2.0-rc.0":{"name":"uport-transports","version":"0.2.0-rc.0","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.0","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"873be6d35efcee72d49666264f4105b0457aa989","_id":"uport-transports@0.2.0-rc.0","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-zEysvCu6cidmI3TZklYGMbX7wQUMLbv5L18tcUd8gsr4Z/aCL1HM0cJDFlTaqxJ0VdR8R+/dp5+9Iu1gKwXH6g==","shasum":"346e5981e62af71ba10570c47ddd667f800c9905","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.0-rc.0.tgz","fileCount":71,"unpackedSize":568923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcDm6nCRA9TVsSAnZWagAATnQP+wcDoU22ft1LH47SJ7Si\nTnO0+qIiUgmAI2eShppOXELYuYZAOu3+EO1pTEdL9uUU5C4S0z9bf7QUeVza\nhPxPLh1zE4a2u7WLfWKElJiaFNL+0YsmnwHAI9fLoqxpAXudjv+DZhIJ04GJ\njiD6pVct0uJxQC5bWoZJnRrz8n+5sc0K2SnjNER/anupDVp21HVo6NmgNKLo\nZe/gDg8qKI4eq/Xf70tyh1AYb+kSZu626C+CxXcjPTDZhaszLoQ2rawlhKSF\n/4C8M70bS4Gs0deoLjaBK/ZFWeBj8S4RmQzk5BHI7S9MNXs9HGcgHJt1r1oW\nzJmANlvW4I7oODnVDETC12g5TmPJHHSCYnFNH+f0MBwesaFvGiPKUm60c48x\n5cXC7nHglA4ynqpHcL/3PYcuZrqFP094dHyvAdNwAZI/Bv9l5QoqHzNG9uB9\nihfoNcGUCJ0daSB93gbzN7t79QcMcKldnNzNuZNJXfRGJk1znTjz+AAm+O5h\nQtSiRuNk8rCByUC+pPQLbpwVHR3SjpXZ05CAAwJ3TLDRpH6teNC2+LK/8DVn\nISB62+37zTD4ZgczdMf1tHti5pB+BDFzw0RmQlZyK1vZdJMijhlCx2A0ozBK\n2cx1f3sIeUHxBsPz/sNllTSnG3/o5zrGp9nwFMAmagkcWG0uXYt1FvTM84vI\nPEF/\r\n=y+oh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHH7/gKLepn7R2ywUoPngjo0YOiVZWvrDdPjg+qYcSH7AiAUcZXQNDWe+yRICQU+dIpxqqS+uLIFsOSFIWWqhStV2g=="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.0-rc.0_1544449702625_0.6860425913440065"},"_hasShrinkwrap":false},"0.2.0":{"name":"uport-transports","version":"0.2.0","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"0.0.8","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0","uport-registry":"^5.1.0","webpack-cli":"^3.1.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-dev-server":"^2.11.2"},"gitHead":"37f5d8d549a17f8867bf9e63ddeb4994723d296f","_id":"uport-transports@0.2.0","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-hmIhEuUAGiJt/cs9h9Su6t8jGB6/46Evv9Q3W6z5+Cx7XkkTRzCdqj9ibwhkjkWggxrSjoCotFnU7858uAkYvw==","shasum":"bd1c972bcc10ebcb08d8617885f255c21e693b39","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.0.tgz","fileCount":71,"unpackedSize":568918,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcDuPQCRA9TVsSAnZWagAA+3cQAJMfQ+YjEJHnBeAePBtm\no4FAcbX6EGKFI4qxxOgl3IrwqMcqWkd3jsSipZ38YrifSBCqQtevpN96doKD\n2N1d39upYskZXqn74TdftGkBwhCfAGyutvlmbc3BCN50/WxdYfzXPSYwOIjs\nz8L0a4tVMCfeWv1BsWUoynsEaWAmWeDLM7hr+pTYBkZxceX26iCUwJfcWx7s\n6piifT9c31nWKcVVS9Z4zu+3M3CW+E4nDRlNB83G4a5R1XlP6Se+tgf4mUEm\nn8Sz6hnH/cG63mpYzNZFPH5CNOqW0S5oDwYpQswdS/Ghc3bpEIrCz8vUcwEi\nUnYwTcDWYOworZQONx3CVnjWtnxg4L1OGEzuyMXDHWwQVzPf7kGCZOhHMFdg\npFT2ro/4ytlyS3f/OKWL69jJuCByN3Vs4rEssb5QFB2EBHRAsK85tGidl+Qc\n3dnQ9IpuWBWwxJJLWcLAj6yNswNaKiLgXkYXQVAHXvFALZbk/Z1P7edH5dUW\n731Qvptyw+U+INYRNJ7QfegQn5IWxijNisjwRvlXwe0CHVMTsyhmQFVx5OXZ\nO4hUW3mUBDPVGARjUNwDOfLiKKIVuPk5rQ66ZuTwvQCaOTC/U6a9gZjOFqAo\nxti39DwCT12pzGpE6omCA84bFOHT1npL7QdunT46/rDRid0vsqQa3LNR/s3e\nU7zv\r\n=DwpM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCA+3aEca0IETHBobdei3eMzSG+bHzuJBm5o4dy74QU/wIhAOyHt3mE+BSbAMspsL9KQuF52BAbc2RJmXYrK/RvpSim"}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.0_1544479695285_0.8926916444322328"},"_hasShrinkwrap":false},"0.2.1-alpha-1":{"name":"uport-transports","version":"0.2.1-alpha-1","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"0.0.9","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.0","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"b43a5144a4e413a4e6f1e464817ed2e51555bedf","_id":"uport-transports@0.2.1-alpha-1","_npmVersion":"6.4.1","_nodeVersion":"11.2.0","_npmUser":{"name":"pelleb","email":"pelleb@gmail.com"},"dist":{"integrity":"sha512-heVhVuyqc5zci5v6g6sFuOYrPat6lGBLmNR2ax6cV+zx1fjmwMl20PLxxXdW0U2rCZDTqGZTtAe+NbXUh5DLaQ==","shasum":"3c589e533978b13e893f81cbdf07de4c0e045b4a","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.1-alpha-1.tgz","fileCount":69,"unpackedSize":563126,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcHtqUCRA9TVsSAnZWagAAXk4P/irv7GPST9rDIyOINxDC\nYywz0576zxEEnr8eY3CLFs2uLyjCHFripGYG5+2zrkZ/JT0Gux+362swf+/I\nm7IsBGFU2yZBpRZLzOFfZpIcnkpnU/PNDJS7PNTHxH273MKhLomUSshLzdj+\nNl2/euYsWh0nvQXVEPruhA0p3rmI4e9h+W3GwIE8SHNARkfy4MtzKNRXX6dR\nS9RnLvi8YS2JZh1wKBxC2+5cJvGhl26lwyinXWW0CtfU6XFEN/ktLI4aMqJI\nZCZkedUdSCpIlRlhGCSkV8dP1jMPk8+CzRRc/LfdLtgX9vx2VYlNrB7B3TMP\nIAq4KYQclQmUCkjQkrY/G8bTgXSQsiGtZVBkZeGVU6kHcod9HWEvdszvOBwT\n5E1jC6mWquyp9lCQMlO+rvFBE1HHkQQKbxYwkmDg8GSj6pFNAhs4GaLkiyTP\nSjCDdoQpktJuV57e1ooOlBWMj90/VcRNhKe3fCa0e2AmtWyBNKicIzcWuzid\nH8nI03RL9zhGVnJ64xQx/tJw0vdX4SojoUOGGhSJ9P+BbGLPqOC5pZkuwl2Z\nVyswaqOFlskuFZRLqWwt5hJDN8n0bTRQa2mKJn1lHd532BbiUomux4B+Vq+J\nLpt3H2MozR79g+DHZXvKiH3kfWMU2TweLRBLGNzGlitE6lEckWreoxS7AJr1\njvHf\r\n=a7jg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA0mSZs7b1OmxZ7bA8JNhrkyJXWw6HMQrS+YvpJKmP+nAiAR2H2MplL2vaYGZ8jppsEOrdqJ9Z89RR2uxQwg1a2i4A=="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.1-alpha-1_1545525907707_0.7099597897352516"},"_hasShrinkwrap":false},"0.2.1":{"name":"uport-transports","version":"0.2.1","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"0.0.9","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.0","webpack-dev-server":"^2.11.2"},"gitHead":"67fcf65c44eaf6e00ec8bdf4dc3181b3a78362fd","_id":"uport-transports@0.2.1","_npmVersion":"6.5.0","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-nDj+9zUxk+RszyQvJmEAIV7zogR7B/gRNqKr2GF4D5VVsrLATUzJVaaKgTkWBM0eNF4pm5sCgw+CrzR/9ajgXg==","shasum":"f307345648932ffa9e8c1849cc9ad3bf2b86e416","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.1.tgz","fileCount":73,"unpackedSize":848933,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcP8fhCRA9TVsSAnZWagAAZuEP/2vZVamnYh+zwyy+/hGh\nHypWXrPs4oFl41tIy2926Bg8CV/mFsi5vtCnPui6nXAzP0muvvOL4FZyYpeC\nb53ZnG8D/Wo9Hl/b3RCYQp/jukdsCNFQbYLtrfbKtMS1HNJM8xUtxOcZ/F8C\nc5Kr47uS3Gy3bVxum3oakCJiaD505StFRsAIDgsEczvDLG4QWeHJcBbTNCc6\nYeDRk7nIaex2GzCeqbrjtSf3MRSYZTQzPK8Ka/Bwto6JjNG/myj9r6Nyuw7e\nyvo11tD+NuAADqxtqRW8bpN6IS4UIDMaIlDqI8FFqvRM5AArmaUULHkdvMLm\n0wZKU8Z+RU4EZENEflZm3qbv49jWv2XZhPvPkHZ1K3RgbZDn/9JKqPuxnSj7\nvgCkD0QkUE8LzKXG+EGBN//MyQs8gv6k9umyRwIy1xC9bgmXT4iosgiy2fS5\niQCDHNkejZSAzb0FOrfl2kWlgXlHZUojPqpt5x0X7ghFEBJJFw/Mj5lKtbJY\n/vYfZKqtMwlTxtjNn8BjdAiWMOTL/hX1Rhv6jhIUaNbCTy3e5KWXANgy41cA\n64pVcrcmGmjAdx0vF1V6AbqsE0eUNyaTC/i5UKdhIPZP6Vxgw3qGj/TuDqTl\nTeVZFqEwuaLtjEqwZTYW1DSKn+mcSgdaoiQzL/FYsVh4hibcoXYb5KIAZFEK\n2dxP\r\n=sRsb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4QHkZCnAHZvtYAPHfrYe/muF82vkfDua6ogPabtNZEAIhALukwATZ0fVpo8Hgr4Pb4ZLhRMUEGMTd2QUWQX80IYXo"}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"mike.xu@consensys.net","name":"mike.xu"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"},{"email":"simonas@not.cat","name":"simonas-notcat"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.1_1547683808715_0.38038134455292893"},"_hasShrinkwrap":false},"0.2.2":{"name":"uport-transports","version":"0.2.2","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"0.0.9","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.0","webpack-dev-server":"^2.11.2"},"gitHead":"b1e44a3a56963a5c8addaaa1d49f988304c0d29e","_id":"uport-transports@0.2.2","_npmVersion":"6.5.0","_nodeVersion":"9.11.1","_npmUser":{"name":"rmw2","email":"rob.whitaker.18@gmail.com"},"dist":{"integrity":"sha512-nH5w6i9vdwfarNEZbi+lfuShqHOG96oHwdWJg7aFP0uG7dtQW34Om6kEoNhQRJZhZOE5rAgqNEicNvhwTL68XA==","shasum":"8259f8291764e613216416e2600df9fb237da22a","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.2.tgz","fileCount":73,"unpackedSize":848979,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcP9KuCRA9TVsSAnZWagAAfQ8P/3y9H0v3fU1e2p5O/06M\nKuKIAFA8ivB4YH1xy6JzNAwKGQalDrRaydD44/Pfi7RSEFtoMLaXzYpG05Ux\n7f2OqXip8GlnfpD91Opp+XdT6WAaRdqt6UqAbt1BA9FjkyrvMaL8TzLEfgN7\nUj2wGS0rizKXUpiDlRQRRSJSK1YthwYUmpZw5yUHA7wQhFu5eZrieL1cblM6\nsaVoYoWKPdiuIg4shIR3pMJeaNOhGVtaTWGqOK1HQvw3Js8gj5zoCcAHjwXq\nZ6ReFB7YOakCPy9tNPLbqG/yLurQNcnzcFOPPbTkjaUQjqSirQZe8DmwnU0B\nwq38PEnyqknZhzk6nWwzr6UIk/22EgJONEg45kPG+6hOCQXSwhk3Wr7owrqv\nWZzP+WFbKVz7Klya8cz9lKj5si3SCnCIgFkAh0E8Z4YHDx/gP26gXgZEbX6I\nu4Jms6u/VQrFdhdtWckbLErmqYclQwefC5Kd10CVwh7E2CFu+xm3UnADMpX1\n7Akyyj69eRKrCJU/2zZSNPjtBRs24TldqMMZcWdL2ald6F7L+GhRbBUdjHXn\nNaScavnVZ/LJiHNmLWVs+jXUdX2goS7V/+Qw0facQNVtyegNwj90MRjQusoX\nWiCoyxS6LOqZh2IzftAjySMq2kaujz1Bj6kp0KdCY70ANF0cmGxVLGEeNb50\nCXcN\r\n=oWEQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCst1fONMsQKUuZ0PYnqHiaesC6rUr5Oj5RVVyDnlbeOwIhAMxA9xTKt4FuArRM7dubRcxYyHCEPd48xiaSa48c3qYl"}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"mike.xu@consensys.net","name":"mike.xu"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"},{"email":"simonas@not.cat","name":"simonas-notcat"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.2_1547686573597_0.9122119085619673"},"_hasShrinkwrap":false},"0.2.2-experimental-1":{"name":"uport-transports","version":"0.2.2-experimental-1","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"dist/index.js","module":"dist/index-esm.js","source":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && ./node_modules/.bin/microbundle && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"^0.2.0-alpha3","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","microbundle":"^0.9.0","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"^4.29.0","webpack-cli":"^3.2.1","webpack-dev-server":"^3.1.14"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"3689e26ab8a02e71474dda2fe5ec0118ab329ce3","_id":"uport-transports@0.2.2-experimental-1","_npmVersion":"6.5.0","_nodeVersion":"11.5.0","_npmUser":{"name":"pelleb","email":"pelleb@gmail.com"},"dist":{"integrity":"sha512-NKmirJcn7pWRWuMDlGwkfNrXM8b9S58Jkf/P6V2hhVmwztCAGeZjtMMB2SFiNwCEWzLI1Tgcz+irM4cU5RmnOg==","shasum":"99279a1fcc0e92631b4fc76c4326ed6a9436a3f9","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.2-experimental-1.tgz","fileCount":76,"unpackedSize":847179,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcRkFXCRA9TVsSAnZWagAAgxcP/RNnCzmGd7apZLi29uae\naN8jjCRtA2HctFwNTtI1uiYCVMp2h1xqCqefVw475iruEN8s9nGY3iV5kgLf\ngq0dHB1fuG31FDERlm9YSy1pgV2OSCb0aURiTCO4kZTpth6Jpodxc2KFT33m\niLn7KJgH0/JNIH3KLgzQek1gzbtb+tD6pXAwZ0up67YipC+2ITJMOBG6+xkl\namsW8kWAD55Gt4Vpul5IaKjsMBh2o0Jq4ITMj/0Wyetzo6/VUtfyu5xWn507\nwi6SG4DVuE/B2JO+YGAnpV2kS1I/20+ulR+jFR136ulNQ2vXqV6ekNezyYot\nfl9tkaIGS2YIirS+DDo15AlIOawDJeHYx081TCNr09rqtlm5UbR8PUOHvcwx\n9w16NSa7yw1xFeHNUftX9jzliASXtid0HwauSMjULujuQNGnpe6BVj1KTnkT\nUemuPugneiwQS9jIM7TAyRZRzjKd6Pu25MEdUhvpGErA0QXhjvxTsNHEx82+\nOuW8z0vWFHWMP4XDKhuybICE1BgXBtgg6Hq66IYtP1tPnuRLq0F0uomdQIRW\nHuiBVpzUWc6ID0oCEJWk9Rqpkl46+3b0/4Qisx9c2H62D5iXidYCPanw2+gt\n6wzLdWQonkOkxQd9qHNJO90nwXzmTYI00Ti4Dc51tV+ZkHyMaZg1E5Te3EvO\nl61Q\r\n=1jGq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFWPupgRNWhvK/2sa9buvYPKkY1MZKF/Ofv1OnFCd8+0AiBocntpfWhYf0wJ6vZNQhoq8KCsBsra5SLmonvyDfn9CQ=="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"mike.xu@consensys.net","name":"mike.xu"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"},{"email":"simonas@not.cat","name":"simonas-notcat"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.2-experimental-1_1548108118245_0.8930352043528971"},"_hasShrinkwrap":false},"0.2.3":{"name":"uport-transports","version":"0.2.3","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"0.1.1","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.0","webpack-dev-server":"^2.11.2"},"gitHead":"1f8420874fdde102358be7a29639e930dcb79380","_id":"uport-transports@0.2.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"mike.xu","email":"mike.xu@consensys.net"},"dist":{"integrity":"sha512-ESUJ4SyLJv8FJsY8d6ghs5rmoAkHoWKqzcmhXEX5UWFFD5ilupiVrkfkAqbsu7c/8RBJTgxb1euO3djMvd0gTA==","shasum":"3c88f84faca281518692eeaa8d5a1d73a8e87471","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.3.tgz","fileCount":70,"unpackedSize":640109,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcXI9kCRA9TVsSAnZWagAAQjUP/3vJDyJ+mRY69nYYwGPg\nxq/0nYrg51bSdacl64UndV8lolEuuDy08n2RgdEKi+e8Ch1BBtj8AS7I6kkq\nLYNdyDIG0Uu5OJA0FuwjLnKTv4YaHjkjRExMOfcQpkS4Ww/74lO8Ery6+rbj\n2piMijNyj6fyam48YtR5RaUc1xPmllIMwge72QqahspQu0wNJR6EZ99d1UMC\nkMm7GS8WfPhkaH4wFYv/G4HbAyNY9WnnDAqLWrvczevJ/MNg3TcETZ4W/oST\n9WliOLIv7vqKuzqJBmHNybAZejfdUPxhjDrmHxOWqU99GXlSSfLegzxWXbZ7\nweVJLoB4vyptyfgP49l6QLR1iTwGg4uVJcmEoeLfiVzgP6ToIUGbu3xNGz8o\nn7+J4FhvGH4jK8125T2w4Cz9YzA7TUnHt8q2LaZ62VnAfGcDLoUzp8Tk6lYn\nrd9vdz0an5LgFwnyHr3NiT2wvP5WcDsW8Q0Q3h/4SKFrspzqMmDBhB6AwH6x\nVf7PwnWnBIb63yvrDtMcmHCdKZBRiAuguXxAsvV8h3qN7UkR2yRndAi6joOz\nXiNxnJ4Wxr+8zFmTm2pAm0L1MRssJ05gxnxI+mXADPw1vvLD8H8xsnanvUft\nlnbV5jXl57tyEy6aOgOHzEo51erKumXXSUpSgVNJFyQKWqnI65EWTGZFib72\nJOxA\r\n=lFEg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAESRSk/N43aWZtMJ0XaSstVvnKidxnBQUr4jG2FQRU5AiEA9QDuv2KxRbRxmEXtuyWaCRWf+DY8RRQ7NSUGt37bBfk="}]},"maintainers":[{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"mike.xu@consensys.net","name":"mike.xu"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"},{"email":"simonas@not.cat","name":"simonas-notcat"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.3_1549569891820_0.8617003913063461"},"_hasShrinkwrap":false},"0.2.4":{"name":"uport-transports","version":"0.2.4","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"0.1.1","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.0","webpack-dev-server":"^2.11.2"},"gitHead":"3795de73f2822ad0d2097c391e3fd08e56d62b57","_id":"uport-transports@0.2.4","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"mike.xu","email":"mike.xu@consensys.net"},"dist":{"integrity":"sha512-w9hn57WVa4ldjxY6GVuJXaiJWS+CF4bW7vtllLmC+64JXwGKmrqwrrR1BmDtvIblAtA065pMSySc1ygFQXbVnA==","shasum":"a3d699cb8391c8383467e3e490b293abf28af0aa","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.4.tgz","fileCount":70,"unpackedSize":640398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcjzG/CRA9TVsSAnZWagAABdAP/id/sfX8ODgeRiCemmq9\nJPqSE/zhHPMnqqOrXo/Ns05+F0G3LlyXS1VKUG7+2YBgct83e8D7D3cz1fwS\n9JjI9WXt3wlx2NC+/tSlMPXXCSnG9T8/OD0F68pGOw49WhUeVDL5cXSnIu7K\nwynbj7dqUP3dZ7+aP6JcYW15CdwsM/EJCwCsaRjaTY3QYAEeGYWF7Tai5Cul\nOsk3UwUqxpwrJvNGnOpNNYl4ySCAODQLEKSRYgQpAa4dAxdQO2vFBGK29CgE\nRtVPo31MdmoN+VMDRYo+KaSgagkclydaXaWdIkP+o/TrrBPx0CC3Hil3OhOI\ncI1JagBmyCd7lUiiHjNlelxOI2qk6lav0xpZf4oGIVGqtVk29gtDr+XjZuMB\nUsuAuDmgqagDfBMKyKL/ZMIddA+B1+bhWgtWuXpdk1NPmAJyeYrNFRtuR8OQ\n8mi4uGX21Khfgp1yAb7E0oH6yjJM7fW3hWdIoLJ//QBre/HkzXZuLgFvlzqn\nC3uT301RYKZo+Lr3x2uVhZfRsJKLwMarWN5dikDjUqpoQIn7W8kauUwsC6a2\nyR4wx+5UVezXO0IYcN9JLTXUr88mpRXrl5+oz+vZuUMb8yBfRI5sENrUGqY+\n12AaBq4jQCJJp0r9yEUYx/WiWhvFueW6LO6GIcgdVZxsNh08KemQ6MNHRnpL\ni7Zi\r\n=glAh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsHpCzaTtDuQQTR1S+QPFVDLDDcFwWaMX63d6Rma5qMgIhAOeSKnh/YVjQ0zR1dwMroEYg+gA5/Y90tSWkJqb4yr+7"}]},"maintainers":[{"email":"aldigjo@gmail.com","name":"aldigjo"},{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"mike.xu@consensys.net","name":"mike.xu"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"},{"email":"simonas@not.cat","name":"simonas-notcat"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.4_1552888254365_0.9002301280497833"},"_hasShrinkwrap":false},"0.2.5-alpha.0":{"name":"uport-transports","version":"0.2.5-alpha.0","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"0.1.1","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.0","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"3df52ce7dc1d57b6c61523ab6613065c854d597f","_id":"uport-transports@0.2.5-alpha.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"mike.xu","email":"mike.xu@consensys.net"},"dist":{"integrity":"sha512-unaLcU71FlocOrwkRhWGGy86zzS/Uv2mwGSSR9/nsmH8vbS7ztbgPPHTx/TBmxa5J6dynnowHkHWkNlAiCcuww==","shasum":"787d3747addc72bdf1b40ba14a8832a701881409","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.5-alpha.0.tgz","fileCount":70,"unpackedSize":640515,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcm+9qCRA9TVsSAnZWagAAndIP/AjkEInCxyQEt/ILtltw\npl7Fqx776eHmWBzxsRgNNdtREBCmHbnpMn4PGMvNny7vAz+WgITkruIQ2VZo\nBpKE5PAGXLVxkIyFY5UgVpjZmJklLQvFAs3iAP2n9ToYB+vatgUvGWupDqCz\nSIubxfhatGbC0Xrc+hN6clB/nFCLbtU5eugUnYaUgE46LfgW4G0QirzxRHpM\nzqwP/UptC5Opmqz7TKF4OAxLi8p9kqeJEH/xi6utytUK+bsgihLmCDQb0yMg\ni1YhndceUoISIM1jJn++Dpbo7Fkm2FWWDOFnhhD7g3CuyZfvaQg33wUcALzR\nDd1wwmIkAGo1fO5t+ueSUIeIv3ui/b0FrcMPWrQ+BZ77RK8N/Eaj+qEKY5DC\no8d3plZwusmegYp53SDHUKVChuF8CYyRrGB664YTHPWIuLjiZDjcD5Swrqpc\nNNVHbGgiuj5sxuk4KDXzFi5nafavKa2ZWVHihCUGUmWOrfO8CB3R8JhMq4Ru\njZCDVUfyZkeoose5rXlkFwfp+HgCGCA9iNPnSOeOgmn0rZ6Bmii+Y5At4aj0\nBen/LU0fM9qhoiDywDTlVlTVsu9dwTgyCE0gbUGXcrtGGWtOXRg8GCvIgvst\n1jwJucIPH4tNsI9MqzujXX8y3WoGU3n378SUzd83IKUB36B2zCm0ilJpHyRv\nf3Hm\r\n=RYnY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF+loNyBDqkTKFxkxEl5c7m/I7oCtxSUKvFOAOfqKiZPAiBF9QZrkHI+yqmxfoolGrC1Ie/V08hGKmZb7Yt1RfITlg=="}]},"maintainers":[{"email":"aldigjo@gmail.com","name":"aldigjo"},{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"mike.xu@consensys.net","name":"mike.xu"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"},{"email":"simonas@not.cat","name":"simonas-notcat"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.5-alpha.0_1553723241516_0.7220262044090084"},"_hasShrinkwrap":false},"0.2.5":{"name":"uport-transports","version":"0.2.5","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"0.1.1","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.0","webpack-dev-server":"^2.11.2"},"gitHead":"ba4fb844c9d80895d40e981b34f9c46e231a3fc2","_id":"uport-transports@0.2.5","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"mike.xu","email":"mike.xu@consensys.net"},"dist":{"integrity":"sha512-Ki2f4ej5YAk4BATvwZNCgPiLWhgb9rwhukqLLJN3gxnbLh/d5ozuxb1zrGmoxBY9Em9vwrFnROxWaeaNPkDu5g==","shasum":"235c59c277da8e053307cdee4375c4654d6f0663","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.5.tgz","fileCount":70,"unpackedSize":642695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcojR/CRA9TVsSAnZWagAAseEP/i01dH/e49lrcNgmVWPz\n8q9SfgHGWyKlhDpe/DAhmrlD1tvktIgSB2zKrfOMfjfli0Y+trf1CFX0Qr0W\nMVoC2MhJOfgvgk3BxiUX6fCGAcWrMF6BfTO5ACAO5lsdC1dE3uOkeYJMDmvp\nvwwi6dztqPZtD4gsdYwZh5kkLGbT+cKs2jOMQGiCsTe64fGF3Mda6rvNrPxL\nIJgrTHqn+LTABv/8ksafjXI/IYcr8sE2SNUGwuNWxETEl73IrTimmnU1hVW3\nwllagg/EkH1tyl3bLHITbEo8g6rwYWjvKovUjfxeZFg99mFi6TE9uAbSJrHH\nJxjZ422vCCbQQVCO1FChp+ss+yHA3wbr7CeaH/AG4RHwNWoAZm4JBPmiVycZ\n+G9itVq3Cg9v5J+gEhs9vO30Zi787ZLoyt9Do3M7uNvl/D3cfOxpykgH+a3P\nc7Kpy1HWjJLYEF8mjPlOB5MBoRaBzXIkIo5/OOY80jKKisIFzXG3hA7+eeiQ\niZdoobujUzDJv79584RKwoC9065qrW120mEaqaZLIBua+PI5Px3237bmFPhb\n6Qy/4RE9tLKtZGKtx2cOq4tbDcs3Td6GS5FxiXDJXvlGfN5HWVhAjPSf9SYq\nFeckvu/SoxANGnswGWpJ857Rnz6w5AnaitFF+ZcVT//rcPMpgPZEkPAztmyb\n2WBM\r\n=T0CF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9Afb21snnnzZc+53wDZtIGvMTOZU9RsX9Sx6RGDuuqQIhAKWlZuqQ2DGATvAMexdIA5WESfZ1lc+vF2jrMyqAh8nP"}]},"maintainers":[{"email":"aldigjo@gmail.com","name":"aldigjo"},{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"mike.xu@consensys.net","name":"mike.xu"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"},{"email":"simonas@not.cat","name":"simonas-notcat"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.5_1554134142783_0.84326611441633"},"_hasShrinkwrap":false},"0.2.6":{"name":"uport-transports","version":"0.2.6","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"0.1.1","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.0","webpack-dev-server":"^2.11.2"},"gitHead":"93053b021c528aadf6166db9225dbd705dea6868","_id":"uport-transports@0.2.6","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"mike.xu","email":"mike.xu@consensys.net"},"dist":{"integrity":"sha512-WS5Mm5rBckWtOsGC4AeZRaD2MnQKvpGBT6jSQ+CbUPMy48L6A725NKDZY/ek5e1DXH0nxTM9btNVowzje2TXjg==","shasum":"69d2910428e208a0feacc6ada66287418426b911","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.6.tgz","fileCount":70,"unpackedSize":642722,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcsJiUCRA9TVsSAnZWagAAqC0QAJmutav1e7NK1BXel8rk\ngUG6JDTC9/Dced0HBAU7Ft2zfdTGWUUdYAv0LJdhQZny9usEpnfn05B+CKP6\nvjWm/Mx9Twq62rzbCEc7nPxLDCyxAELp97iW+3lQgi71ZimWvXqPaCqP+3U5\nWa6LzG9wM+OHWu3To90P7CQHNwxvTeZBTewSU2MV7yYHbE8ip0hOwC1CT2tc\n8MzqiMf76JGtzUiYnBp0B4VzyxhB8U+joYO4IvR5cf6tFyBBCvTKXz/Li2DK\nalV+UpVVFY2e08uJ11y4ALRgi9uYJctZuhb/ZHTH8sCzkPG+ziulbL4jprmE\nqglW2iQITkl8MleQ0U6glYBHR034n6hr6nYgs91UHMY669bUwMH0pZD4G0gk\nv6Ptpo2gpzZSlJPu0f6si3YxDtXAiKYwBc4U1GEl3xmCTB9xjzsam3sMwxe3\nyBBVdqA18vxfT6VSJI1OJzVi1Vls8Zs+iH3sqFJsdueoxaHZHWs8IoR+a0U1\nZ5O1lBg5tnA1KNSmEq4QHdjqReIMdXsggPthb53BZb0Q2oPHwFEgTo8MWXOE\n9tFpIO9RqCrE6T6vezkZANVH9cY3uOHQ0X/GKxb0vc4LVvjdfnJD4Bf6qAFK\n3K6d7vMuO6xy8uo38Ije3aab0RMhRi35BqFBgoWObPI1tn/j4eVpfFJ2G1bD\nLKd2\r\n=nNMF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF4JFDpqZ9mphojLQzm4ONzuKdMU5fuGj11rK8pcXlEZAiBQndgZHaFymHZfsbG807ArQAsu5sFUf5ldi35YJzNlbQ=="}]},"maintainers":[{"email":"aldigjo@gmail.com","name":"aldigjo"},{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"mike.xu@consensys.net","name":"mike.xu"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"},{"email":"simonas@not.cat","name":"simonas-notcat"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.6_1555077267391_0.6807989935594478"},"_hasShrinkwrap":false},"0.2.7-dev.0":{"name":"uport-transports","version":"0.2.7-dev.0","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"0.1.1","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.0","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"5d6a63e5d1e40fb4fd057200e5b1c72722569651","_id":"uport-transports@0.2.7-dev.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"mike.xu","email":"mike.xu@consensys.net"},"dist":{"integrity":"sha512-6mDPJD+Lu/Hs3gksFSLPG4CblDyDehcGPNfQp0l745fc8GZ+/O7XRngv7JwwCILIGbcE6Rr/b+hxYd2M6TBR9g==","shasum":"01facf9bafa38f80598916108cc142f33b372e2c","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.7-dev.0.tgz","fileCount":70,"unpackedSize":642531,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc00CxCRA9TVsSAnZWagAADW8P/3g05z/6SBy0YRYQzmPy\nVaBIcvHaAZbeHN8t96u/Jm3w0/PqNNuCSj+4HUjYwhfBJyu1kVbOC/hulHIw\nHvJeXL2taAqZo917ljDO09iwDjSKbZpGqJDo9UIWNLSNQWVfANsTOWmQZ2zq\nG2rWuEilzccQp1+DO3BtvixCylCi7H37x8BwaFyzjA7ZXo/I9GXSQALhsRxx\nzBGIgXyk6HkqKFnGqj3mImXGWoTM6ulmoDwrD/+J0EHTM9bbCoxvmEw8XNCx\nKD89uvehzkJEu/X7hg/tdReySLu9t/2ZyWLio7Ahy2UHixcqJP33wEd7GNm4\nDCq8HPuEyWNa20/nsJ6tdHN9DKExUdkZXanTt+mF8n9bow2d1pILujaMK17v\nnwoQlEwhsnQ1TnXUa3ooN7VWrDEBeNJpt41M6l7SiBKSYu3S82N9jSgh631U\nOp3ZgFBahZ6pPBNR5HHC7tqZ6mIc03yEyKpuHC1+KJIHkdYS5epG6MyWXCXN\nCRVis0Ui0qUss1qfGeXXx9bU7Y24hmB6Thfv7pUG8GcxIuX0qQY4iNyI4jfL\n8+3uPNK4UAm6G+OVBUyanQzzxSBLkg9U43Uq0SN3K+7E3Q6wSgJLbB8FQGdL\nCR5LUhC3VgBuGknTCWh1tWrCTk/+3e5WbJnK3zTe82xlRuhNzSa2y6Ec1RCj\nZSoz\r\n=tC5N\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBWCemxbrY1jb2lPDA+SnbjgL8Y0SKZnBAmIVGcfSMATAiBGbNEMpjASqJCsZWjFkeKZWXZDNidsU28IFk3/bBKP8g=="}]},"maintainers":[{"email":"aldigjo@gmail.com","name":"aldigjo"},{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"mike.xu@consensys.net","name":"mike.xu"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"},{"email":"simonas@not.cat","name":"simonas-notcat"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.7-dev.0_1557348529126_0.1837490335457186"},"_hasShrinkwrap":false},"0.2.7-alpha.0":{"name":"uport-transports","version":"0.2.7-alpha.0","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"0.2.0-alpha.0","mnid":"^0.1.1","nets":"^3.2.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.0","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"b9a0b5b92b3ac1b7464614d4be7d97ae09560a9f","_id":"uport-transports@0.2.7-alpha.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"mike.xu","email":"mike.xu@consensys.net"},"dist":{"integrity":"sha512-MxrwiwJKelEMjsBOQWTbk0oTDIMNqL2zFXrg1FrHPvr01iKy6rtjKZJ5k+EfX3jdtiu9ozYHzEVHV/i5zA5r/A==","shasum":"cbbb1fb25182da5024347942616c15604c1f7a74","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.7-alpha.0.tgz","fileCount":71,"unpackedSize":645553,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3cdgCRA9TVsSAnZWagAAfHIP/1gxtZ1YWSG6Arkbhs+8\nk9G2u9ASOJIsxJ21o+mVJ38FRaGP8ZRJALQxTzfPCGnDvAEaqQH/LoekTgug\n47asv02C4SBwq5vBtONEBWhauDChspXnZHyFv3l4JOY9u21+tCXtwE3g8XrD\nCAQ7xWVh9x6vwfm3AKaIp9vSDCk89uMU5lexbLQgH+UcNLwoLiAdtolKx7uN\nfCELYpLFxAat9ErKxERgfuW8/B99FqkqysyRHTjIBIw+ZFOKuOhRrCjPPg9e\nz6ccryFC/NMHUekrYV5z5sWgtpGBrdThA8DLJVsYfHfYV0CMGJOPGdj8syHR\n02jbeO213ml4Sz5FObvAjw7qgJHjXYWjPHUAdEhhQc5SicN6XkMF0N1+ipmf\nCvzTRbNS+6r+HCAEGfZ8JPmudajHvt9ULzowhl0sxFsuunl+sAqD8M9eacq2\nNt/hQfModw7Cr7gvFTX0L3G8Yegm4ubEj9fDyPAG8kDbjxGbFKJ2nx2y3jAF\ncOxi2Y4hsTRUrVuWfvR82B8BVX5vnU42K87w0LKJHr7mh4bE6nDpAMIQ7zXJ\nro39Zd1y980fsIIxfkooXplj/oZXQtfROv4OjcppGlMjkfzqgHSj2s7lJcmM\nC/Bt086HrNTUjKtLiMVaNhalFGolaS4NP3KlmXdcqks0Cr04nJsdLBN114UW\nYORo\r\n=2fs4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqE3Q9fA8STS3xezU437fdA/xk4G0clLy0ntmTijGc4AIhAOWxPKK0Zn3oqTh1RpaJ7CDKXZfXJ7vPnOrz+/lwvnfY"}]},"maintainers":[{"email":"aldigjo@gmail.com","name":"aldigjo"},{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"mike.xu@consensys.net","name":"mike.xu"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"},{"email":"simonas@not.cat","name":"simonas-notcat"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.7-alpha.0_1558038367460_0.8923788710401799"},"_hasShrinkwrap":false},"0.2.7-dev.1":{"name":"uport-transports","version":"0.2.7-dev.1","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"0.1.1","mnid":"^0.1.1","mobile-detect":"^1.4.3","nets":"^3.2.0","pubsub-js":"^1.7.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.0","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"53f41defe6ed4571f6e63bdb5ee9ca3324b2c9af","_id":"uport-transports@0.2.7-dev.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"mike.xu","email":"mike.xu@consensys.net"},"dist":{"integrity":"sha512-+18ffHPRLRxlrxaSKpl+qX7Mf21tcS8NFKShN8+Ek1gW1xG2amB2JLTLvbktpz1Ub26G3/G2EblwpwXS5Yg9jg==","shasum":"ee98b6b5b9076be61409d79772598ba0576ab3c6","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.7-dev.1.tgz","fileCount":74,"unpackedSize":666930,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc5Hk0CRA9TVsSAnZWagAAUHgP/Ra7/L/AxqNIAZOeabkX\nJYuFXYELS1u0VXfme3qhYfNpCknOFBXvyCZ/tSPrpbE6Anrpgin1LV2jMZS5\nPFTG6b/jpofI4Yfvq6fP9xHmr7e2KlbLvWjA7sKJ8PUKxo72VQE8nIZhfkHF\nHmeolEOAEyJvSfVjLcn0bWKzEUJ3NhM8ECE6x/opDXOUGpmZEtjVv7dltEe1\n1gJAoTA4skx34sBfRdzleH1q+nPMF6WnQVsV+94cTOkBnH3voFh2qwcYZLwn\nTV00yrpfdoBoAg0mB73gloha66tBSLAemURSlVP8NRQuw4QLKXK4317d3mlu\nddN6xgs3WhrsZrV22B5JHGf82aURe4vGOIz5vcpjf9mqqi82dm+5TmY/CXX8\nHvOs3yarEEyahCQ7+gtZ7oLCS92FzrEWI7qVm57oUx36g9oi+a2Am7vaxD7j\nkvBM5dRuaqJjCm+gbBpyUMtKAhDuH0hxRE4JcusXiIMZDGr8v5AXdJ7Yg4Gk\n+VY9vDhLJEnJwngKUPnPleEtJ8G1hJLN70LhnbeLk0+TVZz+Qi26tesFpqkq\ny7dcQqyogvTigzDtDcmcM58MPcf2vDqxq4Gs7YDC3F1cUaRR/iHZHrXXdg2i\nU63Vn1c82hV0e+brMl0cBDEpdKnNlKbdGasZ10UkA8/yExJLt/0Fm8PNd/u4\ndR/u\r\n=sL9V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDalZtnW92zHpCFF9FtpK9nek1p3ffK2tszwdC0qd5NJAIgY1+1MGEHyr9gUEE72Ri1np1mhWL7wvAu1SZjMNdwO0Q="}]},"maintainers":[{"email":"aldigjo@gmail.com","name":"aldigjo"},{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"mike.xu@consensys.net","name":"mike.xu"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"},{"email":"simonas@not.cat","name":"simonas-notcat"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.7-dev.1_1558477106882_0.8087126501354567"},"_hasShrinkwrap":false},"0.2.7-dev.2":{"name":"uport-transports","version":"0.2.7-dev.2","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"0.1.1","mnid":"^0.1.1","mobile-detect":"^1.4.3","nets":"^3.2.0","pubsub-js":"^1.7.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.0","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"a5a7a6fe9e19a185d0666e9ee32bef007f66e8b5","_id":"uport-transports@0.2.7-dev.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"mike.xu","email":"mike.xu@consensys.net"},"dist":{"integrity":"sha512-q4X6DpQxQMpmogodM5mQbVswrYdsJFb4FcQSnXoChW8M9e8e23kvc+DzCzOErz6aSR53HZYXpe7bnW4yWQMuAA==","shasum":"31e4b7628f9112353b0c648e28ad664611d9a980","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.7-dev.2.tgz","fileCount":74,"unpackedSize":671954,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc8YCLCRA9TVsSAnZWagAAh5UP/RpxCorVz6f4U6EzW2pn\nstw/RFEAsiXLOPgBHP1VDHVdps8wyVNzzICtx7kwsa4NrV1lE3JLzRzJmS0J\nnHKuMc3FuT4lannGcd75fDMZGA/hwRVYpG3nLVjfjVF/CdWI4V1VI1xO6XQ4\n9CgK5KWg8UE4R6i4/ckLZGb0E+qGPJ92zhJC6EFr5G6TjPqJS0eIIhkvFgKP\nhaULSPVzinKR6ZFAZz+B3nglkQQdysjTti1BZSoiqhRI0R86y1U1Vkrrcf4w\npF1Tt4CSYYi3iVKCHNrlxLVfbX8/bvkxqDoZrojaT11ocbhyOgit+uJRCSqI\n2Ws7d1tPbKjyCsmx67KmKOy5MMvS4zHPtfaHXe0qdTuS/j6Ile/+SXYOHZ6o\nuKzRLihg4h7/TAY4kq7s6tXW258Uiz6xZgi08c0p2Iho9RzcEe/M+hvfYrgZ\nlJ/xg/jyiWb8Fe/GMc6RO2roQJw0LS8D33nHa3mysbvrqMtTA3Me0IMnFh9V\nAdaiuDtZQaBahoFBstBZm5WEtJPOucgR7pVcj4ToaotiXbU2+lPOD/uDisOF\npJQ9Oem8Veb20rzxFp/AhB6azsEqzcS+TB7ftZ47kbFEPoLCQKkP8/zqOczP\nJ+8KTaDvKjemX/V7lY9PRnQN7F2fpWBYfMu87ftVX3L/mk6xxMrjCtpNqS3n\nnrFB\r\n=M3+C\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBkTWN6NijDdMisECTx9cexblMIVc9ExSGaZxMg1A3riAiAyFduFfjbpdqjt1xKYZFv9jKfZZTuB7Q7fsk8pyt3mTg=="}]},"maintainers":[{"email":"aldigjo@gmail.com","name":"aldigjo"},{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"mike.xu@consensys.net","name":"mike.xu"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"},{"email":"simonas@not.cat","name":"simonas-notcat"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.7-dev.2_1559330954427_0.5903636780868429"},"_hasShrinkwrap":false},"0.2.7-dev.3":{"name":"uport-transports","version":"0.2.7-dev.3","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","test:watch":"mocha --watch test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"0.1.1","mnid":"^0.1.1","mobile-detect":"^1.4.3","nets":"^3.2.0","pubsub-js":"^1.7.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.0","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"dc15f72000df2be9d4c0a177024c861ebad9afd5","_id":"uport-transports@0.2.7-dev.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"mike.xu","email":"mike.xu@consensys.net"},"dist":{"integrity":"sha512-bJ6HuFD0JrtyeKphEkFYmlkJ1r3dHD66+vkb3ULQhXsp9O24NM5KyPUDnxRwUxUe5Rpw1lfR+t6Li2hqgT8NwA==","shasum":"697b7875925d687773868a576f7b59309a0f7bb5","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.7-dev.3.tgz","fileCount":74,"unpackedSize":679481,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc9aNRCRA9TVsSAnZWagAA1zwP/1bBduRGa9BzgoTwuBvI\nn7Ea3o1oM5UtoSwRKmrRd8XiTMZ9Rfyjj9beOd2RgZgHJLl7OzhRG60XFhlm\nZNimfp0XDqFFNbmGbOu6vpIFP2Z6KJJmHMNwxl6rYiS2dcsIlFMyvKc3hfYK\nWGlFCML++G7ivt9l2JkMT+y5g43xOzSd3i4UozlzA6AiOqb9gA0dFItksQdV\neGA/xXn3gNH7IdgGkRhZnl6ytK+IiTg95BYt13dEgvF9OnMVFkqFftF3TNHM\nx/DU+cxZS+2djdRfuekjZRkVvpG7F2IycVMHYu5R8KejP+D9Uyny6yL5T/3L\nVg5VTpfVTEcjn6arb9CG3whDjkFJbUsnKXc/IQHlU/KhdqUrM+CoJxKjAxmu\n/+fhuP7HSsvZOt2pV0vtHqskneN3fcpI/eXI3STHuR82vpfmYs5VFN3r2Zc/\n8XS41ItHBJul2eD5pFNCUR6R8FxC5uDkCjXjnod1cK0tWRnV2OMTwMkF1cGT\nm/wgrl2SvBHaWwkvBi1kr/70QzkEpV4HuvNQomJFoPVp8frgUVGgVyByHvMJ\noUvT6LP3uDRb12b21ifys/jEn4ohdG3rhiI7wdE7Yj93Ma63Ei9le1WENQpY\nIAS01FFmEPAyTfaBHxhtzA9/Mrk1cLnPOl0gFsR/0Op4Y2j4SdHN/vRAnkTq\n0zJw\r\n=17yQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGvD8qaxvoRJ1GrrKY9hSPp5sORCiOgdbI2uHLGh+yk1AiBl/G6a+f6nF/tt0/ZJ5ViK+10NEqUnyRbLGSh0sjqi0g=="}]},"maintainers":[{"email":"aldigjo@gmail.com","name":"aldigjo"},{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"mike.xu@consensys.net","name":"mike.xu"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"},{"email":"simonas@not.cat","name":"simonas-notcat"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.7-dev.3_1559602000966_0.9748350020770946"},"_hasShrinkwrap":false},"0.2.7-dev.4":{"name":"uport-transports","version":"0.2.7-dev.4","description":"Set up communication channels between your app and a uPort client to handle requests and responses","main":"lib/index.js","scripts":{"build:dist":"webpack --config webpack.config.js","build:es5":"babel src -d lib --ignore assets && npm run build:ui","build:ui":"webpack --config webpack.ui.config.js","build":"npm run build:es5 && npm run build:dist","start":"webpack-dev-server --config webpack.config.dev.js --hot","test":"mocha test/index.js","test:watch":"mocha --watch test/index.js","build:docs:html":"jsdoc *.js -d docs","build:docs:md":"jsdoc2md -f src/* src/transport/* src/transport/ui/* src/message/* src/network/* --template template.hbs -c js2doc.conf  > docs/reference/index.md; echo","build:docs":"npm run build:docs:html && npm run build:docs:md","lint":"eslint ./src","format":"eslint --fix ./src","prepare":"npm run build && npm t"},"author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","dependencies":{"async":"^2.6.0","base64url":"^3.0.1","did-jwt":"0.1.1","mnid":"^0.1.1","mobile-detect":"^1.4.3","nets":"^3.2.0","pubsub-js":"^1.7.0","qr-image":"^3.1.0","qs":"^6.2.1","tweetnacl":"^1.0.0","tweetnacl-util":"^0.15.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.21.0","babel-eslint":"^10.0.1","babel-loader":"^7.1.4","babel-plugin-external-helpers":"^6.18.0","babel-plugin-syntax-object-rest-spread":"^6.13.0","babel-plugin-transform-es2015-modules-umd":"^6.18.0","babel-plugin-transform-es2015-template-literals":"^6.8.0","babel-plugin-transform-es3-member-expression-literals":"^6.8.0","babel-plugin-transform-es3-property-literals":"^6.8.0","babel-plugin-transform-object-rest-spread":"^6.22.0","babel-preset-es2015":"^6.18.0","babel-preset-stage-2":"^6.24.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^5.7.0","eslint-config-prettier":"^3.1.0","eslint-config-standard":"^12.0.0","eslint-config-uport":"0.0.1","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-prettier":"^3.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","file-loader":"^1.1.11","html-webpack-plugin":"^3.2.0","jsdoc":"^3.4.3","jsdoc-to-markdown":"^4.0.1","json-loader":"^0.5.4","mocha":"^5.1.1","prettier":"^1.14.3","proxyquire":"^2.0.1","raw-loader":"^0.5.1","sinon":"^4.5.0","sinon-chai":"^3.0.0","url-loader":"^1.0.1","webpack":"2.3.3","webpack-cli":"^3.1.0","webpack-dev-server":"^2.11.2"},"readme":"# uPort Transports\n\n[![Join the chat at](https://img.shields.io/badge/Riot-Join%20chat-green.svg)](https://chat.uport.me/#/login)\n[![npm](https://img.shields.io/npm/dt/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![npm](https://img.shields.io/npm/v/uport-transports.svg)](https://www.npmjs.com/package/uport-transports)\n[![Twitter Follow](https://img.shields.io/twitter/follow/uport_me.svg?style=social&label=Follow)](https://twitter.com/uport_me)\n\n[Introduction](#introduction) | [Quick Start](#quick-start) | [Modules](docs/guides/modules.md#modules) | [Development Guide](#development-guide)\n\n:bangbang: :warning: Transport modules rely on a spec change that is yet to be released in the uPort mobile app. Until the new mobile app is released, integrating the transport modules is not fully supported. Once it is fully supported, we will remove this message.\n\n## <a name=\"introduction\"></a> Introduction\n\n**uPort** is a collection of tools and protocols for building decentralized user-centric applications. It is built on open standards and open source libraries. uPort identities can be created and interacted with through uPort clients, including the uPort mobile app. Identities are fully owned and controlled by the creator, and don't rely on centralized third-parties for creation, control or validation.\n\n`uport-transports` is a loosely coupled collection of functions called transports and utility functions used to set up communication channels between an application and a uPort client. Transports are simply functions that consume request messages and additional transport params, then they send these strings to a uPort client. Some the transports will also manage receiving a response to a given request. Many of these functions can be combined to create transports specific to your use case and environment. You can then use these transports in [uport-connect](https://github.com/uport-project/uport-connect) or use them in combination with message creation in [uport-credentials](https://github.com/uport-project/uport-credentials). If you are looking for quick start integration you will likely be better served by using the default transports used in [uport-connect](https://github.com/uport-project/uport-connect).\n\nFor more information about our system and other products visit [uport.me](https://www.uport.me). For more library information and in depth documentation and guides visit the [developer docs site](http://developer.uport.me). View our [protocol specs](https://github.com/uport-project/specs/) if interested in understanding the lower level details.\n\nFor any questions or library support reach out to the [uPort team on Riot](https://chat.uport.me/#/login) or create a [Github issue](https://github.com/uport-project/uport-transports/issues).\n\n### <a name=\"quick-start\"></a> Quick Start\n\nBelow is a quick start example, look in the docs for information on functions not shown here, more examples, and all additional configuration details.\n\nInstall through npm:\n\n```shell\nnpm install uport-transports\n```\nImport specific modules. You will primarily use transport. Message and crypto include utility functions for handling, parsing, encrypting, and decrypting messages for transports.\n\n```javascript\nimport { transport, message, crypto } from 'uport-transports'\n```\nTo send a request in our default QR code modal:\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQR = transport.qr.send()\ntransportQR(request)\n```\n\nTo send a request in our default QR code modal and use the message server transport and chasqui (the message server service provided by uPort) to get the response. This transport combines the QR send transport along with the message server tranport which handles responses. This assumes that chasqui was set as a callback in the request token. You can get a chasqui callback with utility function `transport.messageServer.genCallback()`\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst transportQRChasqui = transport.qr.chasquiSend()\ntransportQRChasqui(request).then(response => {\n  // response to request returned here\n})\n```\n\nTo send a request in push notification. You can get a pushToken and pubEncKey for a user by requesting push notification permissions in a selective disclosure request. If the user accepts, these two values can be found in the response returned. You can handle the response as you want and specify or you can combine this with the message server transport to handle the response.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst pushTransport = transport.push.send(pushToken, pubEncKey)\npushTransport(request)\n```\nTo send the request through a URL when on the same mobile device as uPort app, whether from a mobile browser or a mobile application. Transport adds necessary params for sending and handling response and then opens request URL.\n\n```javascript\nconst request = `eyJ0eXAiOiJKV1QiLCJhbG...`\nconst urlTransport = transport.url.send()\nurlTransport(request)\n```\nTo the get a response from a URL:\n\n```javascript\nconst response = tranport.url.getResponse()\n```\n\nOr listen for url response:\n```javascript\ntranport.url.onResponse().then(response => {\n  ...\n})\n```\n\n## <a name=\"development-guide\"></a> Development Guide\n\n#### Run Locally\n\nDownload this repo or your fork, then run `npm install`.\n\n#### <a name=\"build\"></a> Builds\n\nAll builds are created from files in `/src`\n\nTo transpile to ES5. All files are output to `/lib`. The entry of our npm package is `/lib/index.js`\n\n```shell\n$ npm run build:es5\n```\n\nTo generate a bundle/distributable. We use webpack for our builds. The output dist is `/dist/uport-transports.js` and source map `/dist/uport-transports.map.js`\n\n```shell\n$ npm run build:dist\n```\n\n#### <a name=\"test\"></a> Tests\n\nWe write our tests using [mocha](http://mochajs.org), [chai](http://chaijs.com) and [sinon](http://sinonjs.org).\n\nTo run our tests:\n\n```shell\n$ npm run test\n```\n","readmeFilename":"README.md","gitHead":"9258c86ef502e56b02f3f6d0a53df8a9db7c9826","_id":"uport-transports@0.2.7-dev.4","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"mike.xu","email":"mike.xu@consensys.net"},"dist":{"integrity":"sha512-YzJ1yp7Jpe4BAVvsJKdwzn+btzffLiajIoJST9PbyV/FWxX3ynTAU/KyF/Z4xwGu8EE8SIOMFolU1ZoGMoUYog==","shasum":"dafd65441023d46f6066fefea843d223dc0e8751","tarball":"https://registry.npmjs.org/uport-transports/-/uport-transports-0.2.7-dev.4.tgz","fileCount":74,"unpackedSize":679465,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc9aZWCRA9TVsSAnZWagAAglsP/2tGI77KIEUYQS7HBlDp\nwk0g6IDTUJdaR4Z7QYKa8A+7UjEPUFVDru/Fyj76fftmK8HK31/OD7ElKysO\noJ1O8QMo0OHnmpGaXMKnliWCJMVawIaadIpWmoh+oNs2E2h0oQq9tEWzrcKz\nWmIgJcVBB2O5L7ccAMfMWHa+ntcCRMfHYubZe3OA8EsZlrmDhPXHXVl8TwtF\nLoj4PzbvTidGThbOs2ugoPnzR8I2FoTAeHpOsARIRGl/vQCsiXteyAlagvFb\nPwvkLIstIfk23TizEZpOPegxIbMpUyjfaHXyLbe16xDIleW8UimG3yHrcbKu\nbVDEswYU2GVBEcL7BwCSPgPV/KbwVV+oLykyxtyYUetCPat+ZtKj+l+KbETh\nnIxn1gyPQIRz6LAoNvzJPN+/Vuxap+nVSrOIlqfl25gkvYWMIm3TomLIX+4m\n/SjG4CYWUzG6akH8spYqYeGkQnDZPwSoTDTI+KzH2qEBqS7Y7icI39l8jkhv\nQgPFMXzFy8xyRtsa+Y310vGUWHCSVhhOvoHh5gM79AmmdWd1aoszEMnX9Oml\nPUdbxG3MizGn5LquOEbPB1/0kDv1Q3CQLtWRKCjxzGxPHoIoudJqIIruMMvQ\nplE16HWS+azAohtt+ohtzOPG567cdqFFn3VRyN6woC6wJiAWe42jLpxmQF32\nWKVJ\r\n=51sF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+UO77nE8z/C5zWH1+7nMHZLQHcsBCcy59FUctnUgReQIgA8elQHxcG0Zk1psIBMNWYVxiyIiJkqfFHxKgb+ZQp2Q="}]},"maintainers":[{"email":"aldigjo@gmail.com","name":"aldigjo"},{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"mike.xu@consensys.net","name":"mike.xu"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"},{"email":"simonas@not.cat","name":"simonas-notcat"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uport-transports_0.2.7-dev.4_1559602773460_0.33732544526854635"},"_hasShrinkwrap":false}},"time":{"created":"2018-07-31T02:22:10.538Z","0.0.45":"2018-07-31T02:22:10.621Z","modified":"2022-07-07T12:05:48.438Z","0.0.46":"2018-07-31T16:53:52.617Z","0.0.47":"2018-08-06T17:43:53.561Z","0.0.48":"2018-08-06T19:02:48.235Z","0.0.49":"2018-08-14T18:08:44.278Z","0.0.50":"2018-08-14T19:21:59.975Z","0.0.51":"2018-08-15T17:20:45.491Z","0.0.52":"2018-08-15T17:29:30.493Z","0.0.53":"2018-08-15T17:51:30.585Z","0.0.54":"2018-08-15T18:42:03.918Z","0.0.55":"2018-08-15T19:13:15.849Z","0.0.56":"2018-08-15T19:26:56.460Z","0.0.57":"2018-08-15T19:38:25.613Z","0.0.58":"2018-08-15T19:49:09.340Z","0.0.59":"2018-08-16T14:13:06.970Z","0.0.60":"2018-08-16T16:37:27.830Z","0.0.61":"2018-08-16T19:42:12.311Z","0.0.62":"2018-08-17T17:48:51.224Z","0.0.64":"2018-08-22T21:20:15.311Z","0.0.65":"2018-09-10T15:59:17.135Z","0.0.66":"2018-09-27T14:27:07.091Z","0.0.67":"2018-10-10T20:52:01.775Z","0.1.0-0":"2018-10-11T14:36:14.013Z","0.1.0":"2018-10-18T21:37:59.237Z","0.2.0-alpha.1":"2018-10-22T22:26:38.109Z","0.2.0-alpha.2":"2018-10-22T22:51:44.716Z","0.1.1":"2018-10-23T20:18:25.277Z","0.2.0-alpha.3":"2018-10-25T16:52:57.805Z","0.2.0-alpha.4":"2018-10-25T16:54:23.233Z","0.2.0-alpha.5":"2018-10-25T20:02:18.889Z","0.2.0-alpha.6":"2018-10-25T23:00:43.104Z","0.1.2":"2018-11-05T13:09:30.159Z","0.2.0-alpha.7":"2018-11-14T17:21:05.966Z","0.1.3":"2018-11-24T14:11:47.291Z","0.1.4":"2018-11-24T14:28:38.429Z","0.2.0-rc.0":"2018-12-10T13:48:22.914Z","0.2.0":"2018-12-10T22:08:15.513Z","0.2.1-alpha-1":"2018-12-23T00:45:07.899Z","0.2.1":"2019-01-17T00:10:09.231Z","0.2.2":"2019-01-17T00:56:13.801Z","0.2.2-experimental-1":"2019-01-21T22:01:58.412Z","0.2.3":"2019-02-07T20:04:51.947Z","0.2.4":"2019-03-18T05:50:54.569Z","0.2.5-alpha.0":"2019-03-27T21:47:21.702Z","0.2.5":"2019-04-01T15:55:42.898Z","0.2.6":"2019-04-12T13:54:27.660Z","0.2.7-dev.0":"2019-05-08T20:48:49.327Z","0.2.7-alpha.0":"2019-05-16T20:26:07.616Z","0.2.7-dev.1":"2019-05-21T22:18:27.622Z","0.2.7-dev.2":"2019-05-31T19:29:14.587Z","0.2.7-dev.3":"2019-06-03T22:46:41.205Z","0.2.7-dev.4":"2019-06-03T22:59:33.609Z"},"maintainers":[{"email":"simonas@not.cat","name":"simonas-notcat"},{"email":"mirceanis@gmail.com","name":"mirceanis"},{"email":"devops@uport.me","name":"uport-automation-bot"},{"email":"pelleb@gmail.com","name":"pelleb"},{"email":"levi.strope@gmail.com","name":"localredhead"},{"email":"rob.whitaker.18@gmail.com","name":"rmw2"},{"email":"mike.xu@consensys.net","name":"mike.xu"}],"description":"Set up communication channels between your app and a uPort client to handle requests and responses","author":{"name":"Zach Ferland","email":"zach.ferland@consensys.net","url":"http://consensys.net/"},"license":"Apache-2.0","readme":"","readmeFilename":""}