{"_id":"@distrentic/totp","_rev":"2-9994e43c33efca918d9c8eca2af0afe0","name":"@distrentic/totp","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@distrentic/totp","version":"1.0.0","description":"zero dependency time-based one-time password provider based on rfc6238","main":"dist/index.js","typings":"index.d.ts","scripts":{"build":"tsc --project ."},"keywords":["totp","time-based","one-time","one-time password","rfc3548","zero dependency"],"author":{"name":"distrentic"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/distrentic/totp.git"},"devDependencies":{"@types/node":"^14.14.41","typescript":"^4.2.4"},"gitHead":"20fe2f1304f5e64e9cdf92a4918df9ba404736ff","bugs":{"url":"https://github.com/distrentic/totp/issues"},"homepage":"https://github.com/distrentic/totp#readme","_id":"@distrentic/totp@1.0.0","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-px1d0qKa1rd10L7Pqcr1enaGfsdJ4HpQVnf7biujmxlsuA4P5CawkKJ0B59LSPt76ZJEsBAzZKDK64+Qy2OaAA==","shasum":"fee6ac131ab57b5bc340f19af2af3da6471fcb93","tarball":"https://registry.npmjs.org/@distrentic/totp/-/totp-1.0.0.tgz","fileCount":10,"unpackedSize":11618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghod1CRA9TVsSAnZWagAAjp8P/iutuBmjR+R1heFzIQ+W\nemHNUg7mJirBIHNVxia4g4uHKoAwMmsC3VPhN01evJRF3ZKxcFHFEa+XpiQq\nbKdenjmiQUzngoLhUekdeAKbW7FDcImWI+2OsuMJedn0knZI5VO6V5ufiSaI\n/AKzsNO5ga0Hh/8dAScTUKWiCbBHHl7pxysQfpeEDNsNjtw5/OgvSDZv4WFw\nGHTTUtmVT1ehQhMpRYrKtRwQGwJsYx0kVaXWNQ9RVQetkTJ2ZrQGIZiwX1BJ\nrldZL9wcLzpQzzDk8gDF1aLKFyGp2+BRqaEGo7OzAZMe7kRoR1vf3ykpAqEO\nM3xhhFKq5yskrSH4C2vHuk+G46tZhD6RPk7MnjKonVci7rrtxxuv6Xq4vk85\nvINXVgxE9tjpKJ5BVQGURqlEmMmU93+FuMGdrn7eiQEt/lZcmmyyBgaHhDNV\nUyNWn/NI2eEm3AC1GZnJPhvs4sww/Mbpqk3ny4zpH0BtNTeQ4SFJZEbNL3ui\nq/cdynmqMRDu561J39X16T0raREYbUU4WFACQdRK8klarCthe4mwdFIRN5Ma\nO9oSok+W+bkfVfcD2ovIiOL+Lrd1+OZvzmaTzm5INytAw7+qxyjrsnPMBSPE\n8qiNthIt0bhv+9BjhbENHk/AYXd6h/FtlIFsu9uaVrB+awI5x/ZpI1Sg3Aaf\nGX8v\r\n=P2mH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEJGpePI5iZWZIlYkOpXkOIENx5I49uNr9AkN/126zIbAiEAgm+pmrvLhDcCPGdRldXpeMqzhgwJnXkCRy+9Il9h7Wo="}]},"_npmUser":{"name":"onatm","email":"onatmercan@gmail.com"},"directories":{},"maintainers":[{"name":"idursun","email":"ibrahim.dursun@gmail.com"},{"name":"onatm","email":"onatmercan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/totp_1.0.0_1619429236551_0.8867847362045631"},"_hasShrinkwrap":false},"1.0.1":{"name":"@distrentic/totp","version":"1.0.1","description":"zero dependency time-based one-time password provider based on rfc6238","main":"dist/index.js","typings":"index.d.ts","scripts":{"build":"tsc --project ."},"keywords":["totp","time-based","one-time","one-time password","rfc3548","zero dependency"],"author":{"name":"distrentic"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/distrentic/totp.git"},"devDependencies":{"@types/node":"^14.14.41","typescript":"^4.2.4"},"gitHead":"4df8fbac34c11e50927ef05235d58555e13cb03e","bugs":{"url":"https://github.com/distrentic/totp/issues"},"homepage":"https://github.com/distrentic/totp#readme","_id":"@distrentic/totp@1.0.1","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-EEw69K1FcIJKcYShbDwtf/yYAgTzoyU1b7JkQJ/QNMeP+68HS2G7KsJFIfUPaRi4mcFSEmUJ28gO79IWeN63fA==","shasum":"dae5ed89c50691a66a61136cb255a38c1b863bd3","tarball":"https://registry.npmjs.org/@distrentic/totp/-/totp-1.0.1.tgz","fileCount":10,"unpackedSize":11670,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghopTCRA9TVsSAnZWagAAA3wP/jpWgX5phOBNEy218Sb+\n54aLJW41ZzTgSyhVWMIHpVJDEmPqlfuvB5bOmcuVwFcI7EXEZL5YPh0AC/cO\noVJEHZakwuyA5GWir8Wf3vFIFz13GdPVZM4HSVkWUQy1YgkNHmE20vbd05co\n/Ro7GWU3yIvxKCaeBViDAofya8JEXwLHZiJGShPTnx9A7trAH3U031SAZEQ7\nxx0mpuvbgH9Cmg4hNgfX6/ntzTnXWEqnVGhMpgt070RF2c+4hu9dBe4rVFN3\nJO/1tJ+8ESqrqLWAa8iNZ2cdY3Y4gEiXiZVF8XTdYYh0PmWly5+7uruwUjD3\nPT6kbo6qVVjquBgIGNLPw7JuPzmees6edUFPkDZ9jqjM2hBHENr1sMeSPF+c\nUeJszJjNWtGzVCwnVRrWC3IU6cyUR560+BbQoHFX/b7ioVU93nGg+Qkm8zhg\nV9kQzfLWg8qYJBUfbwkA1TmFRH+D8a5zt2ROJ+MFcZGCbzKbhb86YJiNzLDQ\nSFKtZLab/b+bE9+pfsNCeeXPYL+fj9XurkdlNZ20vR4D7k6Tul9P3oiv8+d7\nvonCrjNqWFOyfOsZ2M2IWzUDJ46aY5NDZD42vx/wZvW5dZ/un15L1CNnMF9D\nBS+52+R7r8SrnslN2d3CeY7dMD0CZDPb2YCFtwtOe2gWHLDBwYHa7kYav8rc\nivGc\r\n=ob6M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7R/GEx4EtVv1/M5OfbAU2d/x9uPzdeDzviokKC/2WXgIgdBNvFiXscwoKNzxrh9a4upbUEHABxUvy/uWSZ6R2W8k="}]},"_npmUser":{"name":"onatm","email":"onatmercan@gmail.com"},"directories":{},"maintainers":[{"name":"idursun","email":"ibrahim.dursun@gmail.com"},{"name":"onatm","email":"onatmercan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/totp_1.0.1_1619429971564_0.7279890847109587"},"_hasShrinkwrap":false}},"time":{"created":"2021-04-26T09:27:16.197Z","1.0.0":"2021-04-26T09:27:16.670Z","modified":"2022-04-05T04:46:28.297Z","1.0.1":"2021-04-26T09:39:31.700Z"},"maintainers":[{"name":"idursun","email":"ibrahim.dursun@gmail.com"},{"name":"onatm","email":"onatmercan@gmail.com"}],"description":"zero dependency time-based one-time password provider based on rfc6238","homepage":"https://github.com/distrentic/totp#readme","keywords":["totp","time-based","one-time","one-time password","rfc3548","zero dependency"],"repository":{"type":"git","url":"git+https://github.com/distrentic/totp.git"},"author":{"name":"distrentic"},"bugs":{"url":"https://github.com/distrentic/totp/issues"},"license":"MIT","readme":"# totp\n\n**zero dependency** time-based one-time password provider based on [`rfc6238`](https://tools.ietf.org/html/rfc6238).\n\n## Installation\n\n```sh\nnpm install @distrentic/totp\n```\n\n```sh\nyarn add @distrentic/totp\n```\n\n## Usage\n\n```typescript\nimport totp from \"@distrenctic/totp\";\n\nconst purpose = \"EmailConfirmation\";\nconst userId = \"cknxpnrvf000001jp176m87ik\";\nconst modifier = `TOTP:${purpose}:${userId}`;\n\nconst securityStamp = \"soub@WOOL8pow-mol\";\nconst token = Buffer.from(securityStamp, \"utf-8\");\n\nconst code = totp.generateCode(token, modifier);\n\nconsole.log(code);\n// => 112233\n\nconst isValid = totp.validateCode(code, token, modifier);\n\nconsole.log(isValid);\n// => true\n```\n\n## API\n\n### Methods\n\n- **generateCode**(< _Buffer_ > token[, < _string_ > modifier]) - (_number_) - Generates a new time-based one-time password. Default time-step is **3 minutes**.\n  - **token** - _Buffer_ - a secure random token (e.g. user's security stamp)\n  - **modifier** - _string_ - (optional) reason to create this one-time password\n\n- **validateCode**(< _number_ > code, < _Buffer_ > token[, < _string_ > modifier]) - (_boolean_) - Validates the time-based one-time password. Allows a variance of no greater than 9 minutes in either direction.\n  - **code** - _number_ - code to be validated\n  - **token** - __Buffer__ - token that is used to create one-time password\n  - **modifier** - _string_ - (optional) reason to create this one-time password\n\n## License\n\nLicensed under MIT license ([LICENSE](LICENSE) or <http://opensource.org/licenses/MIT>)\n","readmeFilename":"README.md"}