{"_id":"node-2fa","_rev":"19-c1b2928f0ceae3998fc1d57225a5065a","name":"node-2fa","description":"Easy 2-Factor Integration For Node.js","dist-tags":{"latest":"2.0.3"},"versions":{"1.0.0":{"name":"node-2fa","version":"1.0.0","description":"Easy 2-Factor Integration For Node.JS","main":"index.js","scripts":{"test":"node example.js"},"repository":{"type":"git","url":"git+https://github.com/jeremyscalpello/node-2fa.git"},"keywords":["auth","2fa","mfa","token","key","base32","code","generator"],"author":{"name":"Jeremy Scalpello","email":"jeremy@scalpello.info"},"license":"Apache-2.0","homepage":"https://github.com/jeremyscalpello/node-2fa#readme","dependencies":{"notp":"^2.0.3","thirty-two":"0.0.2"},"gitHead":"506b77c6ef02ac0a2ab9f38c960f724b56f1e141","bugs":{"url":"https://github.com/jeremyscalpello/node-2fa/issues"},"_id":"node-2fa@1.0.0","_shasum":"00720dfb3db2a3d3cd5164b97c5f34f57c6dd916","_from":".","_npmVersion":"2.12.1","_nodeVersion":"0.12.7","_npmUser":{"name":"jeremyscalpello","email":"jeremy@scalpello.info"},"dist":{"shasum":"00720dfb3db2a3d3cd5164b97c5f34f57c6dd916","tarball":"https://registry.npmjs.org/node-2fa/-/node-2fa-1.0.0.tgz","integrity":"sha512-k6LtZ2NG2qvwUBkm+1ceZ8rocJnl2PvSgyIYVMVknm8rJevLJlX4dH7pZ2s032FN9lxUfl97lJGOoS0eo+jA3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvgK5HyoyWvY/y8NmsIdJ4gN0My34/O/5Oe54qdKidZAIhAKGJkMJC1btD2/9Bm7O7RWres+wqnuaqVHuG4Bof5rwq"}]},"maintainers":[{"name":"jeremyscalpello","email":"jeremy@scalpello.info"}],"directories":{}},"1.0.1":{"name":"node-2fa","version":"1.0.1","description":"Easy 2-Factor Integration For Node.JS","main":"index.js","scripts":{"test":"node example.js"},"repository":{"type":"git","url":"git+https://github.com/jeremyscalpello/node-2fa.git"},"keywords":["auth","2fa","mfa","token","key","base32","code","generator"],"author":{"name":"Jeremy Scalpello","email":"jeremy@scalpello.info"},"license":"Apache-2.0","homepage":"https://github.com/jeremyscalpello/node-2fa#readme","dependencies":{"notp":"^2.0.3","thirty-two":"0.0.2"},"gitHead":"8bc1870bed7bb7fd7473553db67b2661160e8020","bugs":{"url":"https://github.com/jeremyscalpello/node-2fa/issues"},"_id":"node-2fa@1.0.1","_shasum":"acf130abf66e0a39f1b3678c835384d17364f48f","_from":".","_npmVersion":"3.5.3","_nodeVersion":"5.5.0","_npmUser":{"name":"jeremyscalpello","email":"jeremy@scalpello.info"},"dist":{"shasum":"acf130abf66e0a39f1b3678c835384d17364f48f","tarball":"https://registry.npmjs.org/node-2fa/-/node-2fa-1.0.1.tgz","integrity":"sha512-gmgeFAh/lL1L/+C4t+ya1ZE2dhr28FIsjcCgnSQS0IUWpyfTzWgbbYkxW4NCO9TQ7EzXy1ZTdl9wpr9MbOlYUA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEhfbP3opDmMcMQaRMw/BmE8O49i+GhF0W2z+q2si2oOAiEAp22na5BMe9CiFLtIP5/WSid3wuz61IfdWvoZW9qbz/w="}]},"maintainers":[{"name":"jeremyscalpello","email":"jeremy@scalpello.info"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/node-2fa-1.0.1.tgz_1465317833318_0.008293496677652001"},"directories":{}},"1.1.0":{"name":"node-2fa","version":"1.1.0","description":"Easy 2-Factor Integration For Node.JS","main":"index.js","scripts":{"test":"node example.js"},"repository":{"type":"git","url":"git+https://github.com/jeremyscalpello/node-2fa.git"},"keywords":["auth","2fa","mfa","token","key","base32","code","generator"],"author":{"name":"Jeremy Scalpello","email":"jeremy@scalpello.info"},"license":"Apache-2.0","homepage":"https://github.com/jeremyscalpello/node-2fa#readme","dependencies":{"notp":"^2.0.3","thirty-two":"0.0.2"},"gitHead":"20b1c5ab4cd7490763597db34a99b3daa4474b84","bugs":{"url":"https://github.com/jeremyscalpello/node-2fa/issues"},"_id":"node-2fa@1.1.0","_shasum":"2f70ef738cb64132f854389dbedc2d2df74d1d2c","_from":".","_npmVersion":"3.10.7","_nodeVersion":"6.5.0","_npmUser":{"name":"jeremyscalpello","email":"jeremy@scalpello.info"},"dist":{"shasum":"2f70ef738cb64132f854389dbedc2d2df74d1d2c","tarball":"https://registry.npmjs.org/node-2fa/-/node-2fa-1.1.0.tgz","integrity":"sha512-0Vu7yMz9+1jPhTgyO3Cl/i6/NU5c2dc14wX7drhhBheQp0AuFOjnENfbmBmjscvTLkwPJ0R4IJW5q1oVIRoo/Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8CtgjRObp2XnOUsinSOD+3JuAnPCDOgUtkuMomSqhAAIhALGHqMuQrBipArk8O0xxuKJhP8bmzW40BZaz1kzAUuIj"}]},"maintainers":[{"name":"jeremyscalpello","email":"jeremy@scalpello.info"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/node-2fa-1.1.0.tgz_1474443037402_0.6243391763418913"},"directories":{}},"1.1.1":{"name":"node-2fa","version":"1.1.1","description":"Easy 2-Factor Integration For Node.JS","main":"index.js","scripts":{"test":"node example.js"},"repository":{"type":"git","url":"git+https://github.com/jeremyscalpello/node-2fa.git"},"keywords":["auth","2fa","mfa","token","key","base32","code","generator"],"author":{"name":"Jeremy Scalpello","email":"jeremy@scalpello.info"},"license":"Apache-2.0","homepage":"https://github.com/jeremyscalpello/node-2fa#readme","dependencies":{"notp":"^2.0.3","thirty-two":"0.0.2"},"gitHead":"d1ee822e37b9208f0175300c1ef72da2a459fe21","bugs":{"url":"https://github.com/jeremyscalpello/node-2fa/issues"},"_id":"node-2fa@1.1.1","_shasum":"e3335701587858ca0df779b92cf75dd7e33913b4","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"jeremyscalpello","email":"jeremy@scalpello.info"},"dist":{"shasum":"e3335701587858ca0df779b92cf75dd7e33913b4","tarball":"https://registry.npmjs.org/node-2fa/-/node-2fa-1.1.1.tgz","integrity":"sha512-q9265YUt5hfQN5M0OilBoAIlWCnSVHGpMlV8eOtBtB9j3bFJpec+EFOT+g3uP0EoWyoOEZIq7XVjSjv2H/iPvw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfKtkueneElSGfYK5Sun6Q27MsGgjV/avoT6JhKzh7vwIhAM19Ybj2JakLZ7lb6S0mCuMVvnqVboK2/CTuFi2sFOPz"}]},"maintainers":[{"name":"jeremyscalpello","email":"jeremy@scalpello.info"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/node-2fa-1.1.1.tgz_1474484275124_0.4146180509123951"},"directories":{}},"1.1.2":{"name":"node-2fa","version":"1.1.2","description":"Easy 2-Factor Integration For Node.JS","main":"index.js","scripts":{"test":"node example.js"},"repository":{"type":"git","url":"git+https://github.com/jeremyscalpello/node-2fa.git"},"keywords":["auth","2fa","mfa","token","key","base32","code","generator"],"author":{"name":"Jeremy Scalpello","email":"jeremy@scalpello.info"},"license":"Apache-2.0","homepage":"https://github.com/jeremyscalpello/node-2fa#readme","dependencies":{"notp":"^2.0.3","thirty-two":"0.0.2"},"gitHead":"895215467a121f9517299ecea049e1714ebecdff","bugs":{"url":"https://github.com/jeremyscalpello/node-2fa/issues"},"_id":"node-2fa@1.1.2","_shasum":"5bc5691474afe35ae6b3b76459b98b7c20c7158c","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"jeremyscalpello","email":"jeremy@scalpello.info"},"dist":{"shasum":"5bc5691474afe35ae6b3b76459b98b7c20c7158c","tarball":"https://registry.npmjs.org/node-2fa/-/node-2fa-1.1.2.tgz","integrity":"sha512-ar6+2EiYRk4RV4jU35EuOz+bOxJd3m+tJ2RvWrsxrZhWLjwLsor5lKz825f++sCIWA7cOQen0ZVORhQJcYoX1w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCDssaBB29vqasRkhD56MzK/RhYel55bVepV76pSJ2bYwIhAKLpn9ywED9SItDBhn/KkUqPXmvOC2PGkhb9wnUZMlwd"}]},"maintainers":[{"name":"jeremyscalpello","email":"jeremy@scalpello.info"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/node-2fa-1.1.2.tgz_1486120262482_0.9577609756961465"},"directories":{}},"2.0.0":{"name":"node-2fa","version":"2.0.0","description":"Easy 2-Factor Integration For Node.js","main":"dist/index.js","types":"dist/index.d.ts","private":false,"scripts":{"test":"eslint . --fix&&jest","prepublishOnly":"npm run test&&npm run build","build":"tsc"},"repository":{"type":"git","url":"git+https://github.com/jeremyscalpello/node-2fa.git"},"keywords":["auth","2fa","mfa","token","key","base32","code","generator"],"contributors":[{"name":"Jeremy Scalpello","email":"jeremy@scalpello.info"},{"name":"Alistair Smith","email":"hey@alistair.cloud"}],"license":"Apache-2.0","homepage":"https://github.com/jeremyscalpello/node-2fa#readme","dependencies":{"notp":"^2.0.3","thirty-two":"1.0.2"},"devDependencies":{"@types/jest":"^26.0.20","@types/node":"^14.14.20","@types/notp":"^2.0.0","@typescript-eslint/eslint-plugin":"^4.12.0","@typescript-eslint/parser":"^4.12.0","eslint":"^7.17.0","jest":"^26.6.3","prettier":"^2.2.1","ts-jest":"^26.4.4","tslib":"^2.1.0","typescript":"^4.1.3"},"prettier":{"printWidth":120},"gitHead":"eed036dc63c3dad033ef15883cddd90a863121af","bugs":{"url":"https://github.com/jeremyscalpello/node-2fa/issues"},"_id":"node-2fa@2.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-GzMZg6J+EFmhtH4eGfLrwIDuf5hlinqRhVKDmjCbIhIy3Y7L8wDqFYfWYtDHXY/kxzuZNG1+9QOcoogJqkWd6A==","shasum":"b3bbe937af4f719ef17e6634380a1a0604e8ac5a","tarball":"https://registry.npmjs.org/node-2fa/-/node-2fa-2.0.0.tgz","fileCount":7,"unpackedSize":18560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/sc/CRA9TVsSAnZWagAAq6YP/3jYDDQwOkSI3WPwdGZx\n2LT4Rm5EqlSiyHkKMn7kXyS5Y3Q0Rfw99isMWoaRPTK5QOSaNejz7SuwL+Dx\nRTJfcar92ZUWXng3ujz4le58vY/wqEKNnSZasvENQTQmz4bvi/xwaq47yZ/X\nUYokwFLUA17sQTKgdFPQCzdjDtynjn5APSAvpl94+/zx35soUedTfKn4Hknf\ng6MUKdZlXRf4iXJ2Fbek6+NBMjHXcq7mgD9a5Zao+KMW+V6wdu2r248AuRl9\nIANpg/Gcnv0RBqQ3QHeKFSlyRkAQHfm04gS/cfz4iSFr4RvNr3ovfK4q0BOb\nM8pe4qvUy8YopTJ0w1fQH1YAi6F0LQa5sJH17Nqwv7tTB3PiS6mgt8f2bcem\nsEurcy0gattdTQg3W7JrajHKX3vpBtb8RhSHEXGvikAZ41jVlAPU+cG7V4JR\noAcNn5viT7g5n3D4l5TIP/kufBAJv5umO4hhhowCm5yQX1xD0g2bLqfdwLta\nQ8EzuncJHxqsJRiDkUo0j73LgNt4b3KxCnQMHwpEp1hjcE89MxIi5YCPXJqB\n67NkK6aGET4Eo4Q3o0mi5wM2mk5t5Vm9dK8QLZ7g/T6BuMMjfQeV/ZPp3plv\nUkHdYIYd4l/xiE0i15yCgnwZ0pavEW1IE0Z3ObJNwUCneLc5UFUFqvIDG3nZ\nyJx4\r\n=1718\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHFSJPjtAcTigBRfoignbsQvJic0+SpaE+ZxQkVOTw3gAiAHNFp509Y+xGgaWQUGBGDYDsmBgGlklLsK1SlJ6ECLbw=="}]},"_npmUser":{"name":"jeremyscalpello","email":"jeremy@scalpello.info"},"directories":{},"maintainers":[{"name":"jeremyscalpello","email":"jeremy@scalpello.info"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-2fa_2.0.0_1610532671192_0.6563677762287958"},"_hasShrinkwrap":false},"2.0.1":{"name":"node-2fa","version":"2.0.1","description":"Easy 2-Factor Integration For Node.js","main":"dist/index.js","types":"dist/index.d.ts","private":false,"scripts":{"test":"eslint . --fix&&jest","prepublishOnly":"npm run test&&npm run build","build":"tsc"},"repository":{"type":"git","url":"git+https://github.com/jeremyscalpello/node-2fa.git"},"keywords":["auth","2fa","mfa","token","key","base32","code","generator"],"contributors":[{"name":"Jeremy Scalpello","email":"jeremy@scalpello.info"},{"name":"Alistair Smith","email":"hey@alistair.cloud"}],"license":"Apache-2.0","homepage":"https://github.com/jeremyscalpello/node-2fa#readme","dependencies":{"notp":"^2.0.3","thirty-two":"1.0.2","tslib":"^2.1.0"},"devDependencies":{"@types/jest":"^26.0.20","@types/node":"^14.14.20","@types/notp":"^2.0.0","@typescript-eslint/eslint-plugin":"^4.12.0","@typescript-eslint/parser":"^4.12.0","eslint":"^7.17.0","jest":"^26.6.3","prettier":"^2.2.1","ts-jest":"^26.4.4","typescript":"^4.1.3"},"prettier":{"printWidth":120},"gitHead":"80947fc6eae3300a3dca20d1bfa6eb88949fc932","bugs":{"url":"https://github.com/jeremyscalpello/node-2fa/issues"},"_id":"node-2fa@2.0.1","_nodeVersion":"10.16.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-esvVPbgzGKWKdKaSLroJLSi6pzGavgCWdsQzPML3SGNzenjLCsa5FFGxgytL7oiD+/Ivhr8kfH1gSFaGLgYQqQ==","shasum":"3ba5a73352d571c9545d6065fd29dbad44c96ce7","tarball":"https://registry.npmjs.org/node-2fa/-/node-2fa-2.0.1.tgz","fileCount":7,"unpackedSize":18560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgDo/OCRA9TVsSAnZWagAA6WgQAIXo7mG15PofUwN6IaPB\nsyWdfhvL3++3F//08R+N3aXc0WYhdRUierZFzQloNMeU9On5Nfu0LcD6sKO1\nqfF0KYungl/CSNe4twJggRSISHxkCZ8ngupaGhBhHCEuftcpNimnBTPU6v9Y\nc8d9ELtM7MqUkcjhWJCgEuFLIJ5S45ZCiKcT8tjaQIF7sbMVmRF4NE0cpaWx\nJBJ2GjPcAZOLwhOm4sWgXfBWgBlh0c4bi20vjkPLpLSjhQZWB5fZLMjPydsk\n0fP4MBzdXaDLohqnb3K9a+/MvsmX+jGTsXOBjbrIMBO9rar7qfipAEI6A1ao\nNVRmdnupoVC/reRkkeZjgH1wBVQEGQEBhgOUdeb1hIMRtQa7V3tIjPj9RnUO\nckqb9AtfSuv+Mt5MG3mO5WaHkP5W5w6HckXrLucb6BGEwFz/K0WryjMDPFA9\nk+IbiTUtE3PObIWQpcInwdcRPFXK8EO1rLDlE6Q3bflIHhfclIZ+FtUrFpin\nzfHaPyWIxZef01u/H9CSd+CTA34qtdo7eWLOO9e3ZjWlKSTu9jFJ53/CSC6A\nCvOElk7RzH+/x/51Y0IJr1ca7UTDcQHVTSpkHJ1le83H+TnBu5t88a8RkGED\nNY4ryNq2zwvIQTwbjB84+9bzlrKDbTHrMFauHAypxinGgBh36d24xUz5wwJi\nyZp/\r\n=M7S2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCG03L814qJwBg5b5mIWwEp5pmQyF9cEGn97x9n3W0SOwIhAIKC0x+aR3f5eD2ORGt7IcWIwoaB7O9pByWdS8b8QM+i"}]},"_npmUser":{"name":"jeremyscalpello","email":"jeremy@scalpello.info"},"directories":{},"maintainers":[{"name":"jeremyscalpello","email":"jeremy@scalpello.info"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-2fa_2.0.1_1611567053606_0.8582318008950918"},"_hasShrinkwrap":false},"2.0.2":{"name":"node-2fa","version":"2.0.2","description":"Easy 2-Factor Integration For Node.js","main":"dist/index.js","types":"dist/index.d.ts","private":false,"scripts":{"test":"eslint . --fix&&jest","prepublishOnly":"npm run test&&npm run build","build":"tsc"},"repository":{"type":"git","url":"git+https://github.com/jeremyscalpello/node-2fa.git"},"keywords":["auth","2fa","mfa","token","key","base32","code","generator"],"contributors":[{"name":"Jeremy Scalpello","email":"jeremy@scalpello.info"},{"name":"Alistair Smith","email":"hey@alistair.cloud"}],"license":"Apache-2.0","homepage":"https://github.com/jeremyscalpello/node-2fa#readme","dependencies":{"notp":"^2.0.3","thirty-two":"1.0.2","tslib":"^2.1.0"},"devDependencies":{"@types/jest":"^26.0.20","@types/node":"^14.14.20","@types/notp":"^2.0.0","@typescript-eslint/eslint-plugin":"^4.12.0","@typescript-eslint/parser":"^4.12.0","eslint":"^7.17.0","jest":"^26.6.3","prettier":"^2.2.1","ts-jest":"^26.4.4","typescript":"^4.1.3"},"prettier":{"printWidth":120},"gitHead":"b6f093b0ea82ab4c6a8b7287c4d2a654f89ce4db","bugs":{"url":"https://github.com/jeremyscalpello/node-2fa/issues"},"_id":"node-2fa@2.0.2","_nodeVersion":"10.16.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-fg0D8sM42/BEOztQUoaiV2ci775okITm7aGDAGd69a1Tfwkn07MK6h12kOQnA/Ay5viHhoi1xeu3LmXpPUTbbA==","shasum":"d46fecc8fa45c23f74f6ddc087f4a117096fa022","tarball":"https://registry.npmjs.org/node-2fa/-/node-2fa-2.0.2.tgz","fileCount":7,"unpackedSize":18794,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZXpPCRA9TVsSAnZWagAASVQP/jJORb0ReQMr9Won8+dI\n4g0RTiedRyt7CgZBAaGWHvnTwY6aArMse6k+XezCkbUsGr5owhXcFqPncp5I\n4kJgPV/Tph+CgLbBmI2kmAnpsV/uqt/GuILJIHrVtUHeDrZiib6ycqPqhIt/\nEkTrblQRg2z6prRCKEfY49rzKGumuFSjLB104XAVHgcQWlWPW2aG8OaAMbnx\nt+PjIEQy3jAuWzYny9LTlJFNBTNnoXvymeDreMIwHI3qLqE1EC/ue+xPNqrb\nWuK4m1i14LvTa+gSvFmaoYpWW7ztqCrpRUpBFZoiFVpt6yiaS6z/o/oV0P6C\nsNy5QNxvf97nROtMpYnCsaEgCviKpsKZDevMnO86ViYe9BsjBv0y4WEGDZ7E\nWoVpfNCvPz3H/WD7Q+pOXU1bvFWa7M88ewGOcAWwco8Sft5GNbBW4MPz4gO5\nnXpTo9DN7iZax7SJhK35kYJSN0CH7xT0EIvyg2aOsS4cEW1+3ZolLKWQS3GN\nq6mkMm3Z+gXD7+XXaWLLN9U4a1sBW8IW8zGTqeUn7CYKKpSeV5Bij+FLXdV6\nmez3dMMfSUxJXsk6UOYttySwhG/nC53OLzkTSBR59v0xcn/WPBKhsYC55p57\nEUbVh9XOKwvc1ctTRlVkg53z5zskmjdaRUeOo+eycSPCzdBpc/KiXWTX2qeJ\nHolG\r\n=Nfvk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFKhenr6CCxfnb6F0po/b9qrSeIYbYr1E1Am2+WOIiFgIhAIyDiXE8QKb4WN00lL0+zK5m0kRL2MUTgb2B4mW0GNnc"}]},"_npmUser":{"name":"jeremyscalpello","email":"jeremy@scalpello.info"},"directories":{},"maintainers":[{"name":"jeremyscalpello","email":"jeremy@scalpello.info"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-2fa_2.0.2_1617263182977_0.4618377422320279"},"_hasShrinkwrap":false},"2.0.3":{"name":"node-2fa","version":"2.0.3","description":"Easy 2-Factor Integration For Node.js","main":"dist/index.js","types":"dist/index.d.ts","private":false,"scripts":{"test":"eslint . --fix&&jest","prepublishOnly":"npm run test&&npm run build","build":"tsc"},"repository":{"type":"git","url":"git+https://github.com/jeremyscalpello/node-2fa.git"},"keywords":["auth","2fa","mfa","token","key","base32","code","generator"],"contributors":[{"name":"Jeremy Scalpello","email":"jeremy@scalpello.info"},{"name":"Alistair Smith","email":"hey@alistair.cloud"}],"license":"Apache-2.0","homepage":"https://github.com/jeremyscalpello/node-2fa#readme","dependencies":{"@types/notp":"^2.0.0","notp":"^2.0.3","thirty-two":"1.0.2","tslib":"^2.1.0"},"devDependencies":{"@types/jest":"^26.0.20","@types/node":"^14.14.20","@typescript-eslint/eslint-plugin":"^4.12.0","@typescript-eslint/parser":"^4.12.0","eslint":"^7.17.0","jest":"^26.6.3","prettier":"^2.2.1","ts-jest":"^26.4.4","typescript":"^4.1.3"},"prettier":{"printWidth":120},"gitHead":"e1ad9b1dc41c1537d9745ad67731da6684f1d522","bugs":{"url":"https://github.com/jeremyscalpello/node-2fa/issues"},"_id":"node-2fa@2.0.3","_nodeVersion":"12.18.3","_npmVersion":"6.14.11","dist":{"integrity":"sha512-PQldrOhjuoZyoydMvMSctllPN1ZPZ1/NwkEcgYwY9faVqE/OymxR+3awPpbWZxm6acLKqvmNqQmdqTsqYyflFw==","shasum":"74a5f3c618e803c3b7a9b04c38d36cbf4a5e26d6","tarball":"https://registry.npmjs.org/node-2fa/-/node-2fa-2.0.3.tgz","fileCount":7,"unpackedSize":18794,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhnJiHCRA9TVsSAnZWagAASUMP/AioPdqifbG2uPTQRFFn\n6ai6AyQyH7covEWJaLu7JHzm1kzLICXYql8KqFy4WMaR5XnXSHHSOKci8Bts\nYDlbWkQziFpFuxYklrwsN/dN+Ntnb4fyy6ATslNlSmIJth2Zx/I/JWbGtTPN\nCPbdvuv7x+l37NdRM6NNEFiHPFN35geNWoj4Xl+A1/dsUzm/ixyt8od2cFcX\nGWOPGS1Ds4xmA4C+8aPzysNXPy2iQszq5DUSalRRZjW+BqAKdHelJidoCyDH\nf5erwWU94Xu9GmCfXVlON2wz2Xx+GgK/WioxfuvCI8OBfkJjUst+K+vTMQbY\n5ugfy7ogv+/YR3G+BGMRAZHUvpyWKu+pgJxS8myB1+dWpVxJj8KMuEOiLdiE\n+LRFGpYUaoZWRYaxrr0g8pZyxtpO7dKBfR6pxq/fwNrklbT0mV7FpQjYpF3o\nTVxgiiYrvH1KSmVq666oFJdv8hjIO7z2VRXkY+aFe7oXCKnIj4Pwvlsj3KUI\nHjpWT2tAZzmqT3ms7CpSxmKooJ1bMjfbsk53KLS879WgOqC08SspTjATviY1\ndr62z7fFZJI/PjVXPLjVrk4et1Dpfq7C9hHl9wJ0+kkkPezV/gWoy2uRkTN0\npL0zBigSFojZmsVSr3VETtaWzoaeauOHP4ZKDNah9TwHQYsMX9EHhlo6s1mu\n9wi2\r\n=7lni\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDq/rqvdze87ADz8WfNWAXhWawzU87L7EsMh+gf86Y52gIhAKOxtY+Q1EMTb2fp+ub43mTnhEp3kz8koXomZJncHek2"}]},"_npmUser":{"name":"jeremyscalpello","email":"jeremy@scalpello.info"},"directories":{},"maintainers":[{"name":"jeremyscalpello","email":"jeremy@scalpello.info"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-2fa_2.0.3_1637652615078_0.7592161204029308"},"_hasShrinkwrap":false}},"readme":"# node-2fa\n\nEasy 2-Factor Integration For Node.js\n\nThere are a number of applications which support 2-Factor Authentication, namely\n\n- Authy [iPhone](https://itunes.apple.com/us/app/authy/id494168017?mt=8) | [Android](https://play.google.com/store/apps/details?id=com.authy.authy&hl=en) | [Chrome](https://chrome.google.com/webstore/detail/authy/gaedmjdfmmahhbjefcbgaolhhanlaolb?hl=en) | [Linux](https://www.authy.com/personal/) | [OS X](https://www.authy.com/personal/) | [BlackBerry](https://appworld.blackberry.com/webstore/content/38831914/?countrycode=US&lang=en)\n- Google Authenticator [iPhone](https://itunes.apple.com/us/app/google-authenticator/id388497605?mt=8) | [Android](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en)\n- Microsoft Authenticator [Windows Phone](https://www.microsoft.com/en-us/store/apps/authenticator/9wzdncrfj3rj) | [Android](https://play.google.com/store/apps/details?id=com.microsoft.msa.authenticator)\n\nThis module uses [`notp`](https://github.com/guyht/notp) which implements `TOTP` [(RFC 6238)](https://www.ietf.org/rfc/rfc6238.txt)\n(the _Authenticator_ standard), which is based on `HOTP` [(RFC 4226)](https://www.ietf.org/rfc/rfc4226.txt)\nto provide codes that are exactly compatible with all other _Authenticator_ apps and services that use them.\n\nUsage\n=====\n\n```bash\nnpm install node-2fa --save\n```\n\n```javascript\nconst twofactor = require(\"node-2fa\");\n\nconst newSecret = twofactor.generateSecret({ name: \"My Awesome App\", account: \"johndoe\" });\n/*\n{ secret: 'XDQXYCP5AC6FA32FQXDGJSPBIDYNKK5W',\n  uri: 'otpauth://totp/My%20Awesome%20App:johndoe?secret=XDQXYCP5AC6FA32FQXDGJSPBIDYNKK5W&issuer=My%20Awesome%20App',\n  qr: 'https://chart.googleapis.com/chart?chs=166x166&chld=L|0&cht=qr&chl=otpauth://totp/My%20Awesome%20App:johndoe%3Fsecret=XDQXYCP5AC6FA32FQXDGJSPBIDYNKK5W%26issuer=My%20Awesome%20App'\n}\n*/\n\nconst newToken = twofactor.generateToken(\"XDQXYCP5AC6FA32FQXDGJSPBIDYNKK5W\");\n// => { token: '630618' }\n\ntwofactor.verifyToken(\"XDQXYCP5AC6FA32FQXDGJSPBIDYNKK5W\", \"630618\");\n// => { delta: 0 }\n\ntwofactor.verifyToken(\"XDQXYCP5AC6FA32FQXDGJSPBIDYNKK5W\", \"00\");\n// => null\n```\n\n## API\n\n### generateSecret(options)\n\nreturns an object containing a 32-character secret (keep user specific, store in DB), a uri (if you want to make your own QR / barcode) and a direct link to a QR code served via HTTPS by the Google Chart API\n\noptions is an object containing `name` which is the name of your app that will show up when the user scans the QR code and `account` which can be the username and will also show up in the user's app. Both parameters are optional\n\n### generateToken(secret)\n\nreturns an object containing a 6-character token\n\n### verifyToken(secret, token, window)\n\nchecks if a time-based token matches a token from secret key within a +/- _window_ (default: 4) minute window\n\nreturns either `null` if the token does not match, or an object containing delta key, which is an integer of how for behind / forward the code time sync is in terms of how many new codes have been generated since entry\n\nex.\n`{delta: -1}` means that the client entered the key too late (a newer key was meant to be used).\n`{delta: 1}` means the client entered the key too early (an older key was meant to be used).\n`{delta: 0}` means the client was within the time frame of the current key.\n\n## _n_-Minute Window\n\nThe window is set to 4 by default. Each token is valid for a total of _n_ minutes to account for time drift.\n","maintainers":[{"name":"jeremyscalpello","email":"jeremy@scalpello.info"}],"time":{"modified":"2022-06-21T11:35:30.443Z","created":"2015-11-01T13:45:55.993Z","1.0.0":"2015-11-01T13:45:55.993Z","1.0.1":"2016-06-07T16:43:55.380Z","1.1.0":"2016-09-21T07:30:39.662Z","1.1.1":"2016-09-21T18:57:56.710Z","1.1.2":"2017-02-03T11:11:03.104Z","2.0.0":"2021-01-13T10:11:11.310Z","2.0.1":"2021-01-25T09:30:53.775Z","2.0.2":"2021-04-01T07:46:23.098Z","2.0.3":"2021-11-23T07:30:15.239Z"},"homepage":"https://github.com/jeremyscalpello/node-2fa#readme","keywords":["auth","2fa","mfa","token","key","base32","code","generator"],"repository":{"type":"git","url":"git+https://github.com/jeremyscalpello/node-2fa.git"},"bugs":{"url":"https://github.com/jeremyscalpello/node-2fa/issues"},"license":"Apache-2.0","readmeFilename":"README.md","users":{"maxidev":true,"moosecouture":true,"momar":true,"fdaciuk":true,"kiknag":true,"pldin601":true,"ashish.npm":true},"contributors":[{"name":"Jeremy Scalpello","email":"jeremy@scalpello.info"},{"name":"Alistair Smith","email":"hey@alistair.cloud"}]}