{"_id":"@akanass/rx-otp","_rev":"4-16577229843c38e1154f192ecf795783","name":"@akanass/rx-otp","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"@akanass/rx-otp","version":"1.0.0","description":"HMAC-based (HOTP) and Time-based (TOTP) One-Time Password manager. Works with Google Authenticator for Two-Factor Authentication.","main":"commonjs/index.js","module":"esm5/index.js","es2015":"esm2015/index.js","types":"index.d.ts","private":false,"repository":{"type":"git","url":"git+ssh://git@github.com/njl07/rx-otp.git"},"keywords":["One-Time Password","OTP","HOTP","RFC 4226","TOTP","RFC 6238","Google Authenticator","Two-Factor Authentication","RFC 3548","RxJS","Rx","ReactiveX","Observable","Observer","Streams","Async","ES2015","ES2016","ES2017","ES2018","ES6","ES7","ES8","ES9","Typescript","Browser"],"author":{"name":"Nicolas Jessel","email":"akanass@icloud.com","url":"https://github.com/njl07"},"license":"SEE LICENSE IN https://github.com/njl07/rx-otp/blob/master/LICENSE.md","bugs":{"url":"https://github.com/njl07/rx-otp/issues"},"homepage":"https://github.com/njl07/rx-otp#readme","dependencies":{"@types/node":"^11.11.1","@types/qr-image":"^3.2.1","@types/uid-safe":"^2.1.2","ajv":"^6.10.0","ajv-keywords":"^3.4.0","big-integer":"^1.6.42","convert-base":"^0.1.0","pad-component":"^0.0.1","qr-image":"^3.2.0","thirty-two":"^1.0.2"},"peerDependencies":{"rxjs":"^6.4.0"},"engines":{"node":">=7.0.0"},"_id":"@akanass/rx-otp@1.0.0","_nodeVersion":"11.11.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-1AtNOtTcgODkxDqRXpWlugZ6oxmEmSW8im4N3EfRStvc3YP0heEkbTOE/OKBZkxyxxyJpo+tjPVKQI+22MgyZg==","shasum":"077d0a328fd63389894ebd7a8b3c255c45606ea1","tarball":"https://registry.npmjs.org/@akanass/rx-otp/-/rx-otp-1.0.0.tgz","fileCount":106,"unpackedSize":4262091,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJch+IRCRA9TVsSAnZWagAAMiEP/104MP1RHhTu99Ymvd12\noH3d3cJE0tHoAi5dCJ1eOVBH8rvu6M/0x5QhgPNk7pUCeIZaRognU9Jg/D2y\ngmINWjha7ztbKdwPg7Go1WDglYpKH97smxk9tjBViiJuKQVfNLtBvivnpp91\nUHqRkMFW6tMhg4Nhpn6k6Dz4j1A/myR8VpohbzzXA13LnpWWSOK3sDpgvP/f\nWzxehs00cl33V1gFrp5sgtol1APmUaqtZZZlH/apTa1zwnRV1HNtlUYf9Dn5\nyLsSau2VFYnesdfrO28zWRKUdmrCxMMz1Q2WQaWnKy72nkcATJhWedxOv7SG\nawvUqpNdCN2vH0TSy3INcYwcICDE0nAto1bsgzQdTnFecy2wmEgyWMEwWdU2\nf9xpqP72/M7BB/CLg3ydi1LKtbD8wbST3cp2SNviHuzgAGRH2GIdl3PNdjxr\nO8J1ge15kYmlpozcr55+rYrVeRQK9CdD7/evqLz6iTHfmhUfTVVJ17HcFnUH\nC1/hGU6QXpjme5J7997KptgEeg8C0yxQBDyNrh9sjprdX/CzaZ1jlvyyTvTF\n0Tsc2q9Mkwf589nSVZcgvcar94Sbwk0XZCPwbdivvqp2SnCN+KVVjYPhUOh6\ngzN0f7krIy3KRs0l36NZXr5UjQorqtTGKdhjZpfrTsgAGW58fesSUrb3umQl\nAQ+g\r\n=hG7y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDiWU57DUTvHBtMyq9zU6inbrwMiMZU5ZGZy70n1z1r1gIhAIghPoKN7nxpIZTknLYmdvU68klMBSFVcEeR5AgBbxWk"}]},"maintainers":[{"name":"akanass","email":"akanass@icloud.com"}],"_npmUser":{"name":"akanass","email":"akanass@icloud.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rx-otp_1.0.0_1552409104986_0.20602590142949495"},"_hasShrinkwrap":false},"1.1.0":{"name":"@akanass/rx-otp","version":"1.1.0","description":"HMAC-based (HOTP) and Time-based (TOTP) One-Time Password manager. Works with Google Authenticator for Two-Factor Authentication.","main":"commonjs/index.js","module":"esm5/index.js","es2015":"esm2015/index.js","types":"index.d.ts","private":false,"repository":{"type":"git","url":"git+ssh://git@github.com/akanass/rx-otp.git"},"keywords":["One-Time Password","OTP","HOTP","RFC 4226","TOTP","RFC 6238","Google Authenticator","Two-Factor Authentication","RFC 3548","RxJS","Rx","ReactiveX","Observable","Observer","Streams","Async","ES2015","ES2016","ES2017","ES2018","ES6","ES7","ES8","ES9","Typescript","Browser"],"author":{"name":"Nicolas Jessel","email":"akanass@icloud.com","url":"https://github.com/akanass"},"license":"SEE LICENSE IN https://github.com/akanass/rx-otp/blob/master/LICENSE.md","bugs":{"url":"https://github.com/akanass/rx-otp/issues"},"homepage":"https://github.com/akanass/rx-otp#readme","dependencies":{"@types/node":"^12.6.2","@types/qr-image":"^3.2.1","@types/uid-safe":"^2.1.2","ajv":"^6.10.1","ajv-keywords":"^3.4.1","big-integer":"^1.6.44","convert-base":"^0.1.0","pad-component":"^0.0.1","qr-image":"^3.2.0","thirty-two":"^1.0.2"},"peerDependencies":{"rxjs":"^6.5.2"},"engines":{"node":">=7.0.0"},"_id":"@akanass/rx-otp@1.1.0","_nodeVersion":"12.5.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-8n9UOQXYh6Zc3WA8cjPJ+pT4Q7xre+t3V5zyKaM4BQPk7YjtCf56B8m3LZse6TeJYnKjaCADg+eDx4iM7meStw==","shasum":"6d3cbdd33ab20c238bb31d024250209aa703527c","tarball":"https://registry.npmjs.org/@akanass/rx-otp/-/rx-otp-1.1.0.tgz","fileCount":106,"unpackedSize":4281196,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKFjRCRA9TVsSAnZWagAAwVEP/0ETQXskutRvGtSEHMIG\ntScSfokoliALWJ5Vpr7SJPs8pUtGsstZr98TcW3FTPzg8oBHMtAAo3686nyu\nv0URvVWKwu/eeoRcYjNSb+t9cBd22W9rdOGUIglaw6jto5Ci1xIWubbMa9pD\nFM7RTxNNb+LkoJMI3NIEa8xC636kkBd4RDBGltNMVG1n6NEsGvtiYYLrWQIJ\noz+p8iPo4P7gP0iOhFA+aCMufrpDw1mpN344Bwa+0AY1t+ocHWlyXmPhmpSp\n4tV0yvVd9VosV9OAOWIN67KBXvugyhV1Qa0BBRVOU+bA6PES7OLj2VbOG/9e\nS86YhauGR9AaBv2z6WKtNWblAM0kosEdkWgHQiCOZcaCn21NwvZTVD2TWxfX\ngrcLMi/MAYJ+xe04s8mlQDoFFKwmFXpFaLY5oyOCutPH9mJqME/w6hm7rHBB\nfJCrmO6mEIdUCnWmDSkwsCKwnB+GTHXUhdB2qMzuHB6ZhHKNAapwzPcon9MW\n0Z/S2uQhwKAuXdKF21eVJkebFHmZh9tIrX+D67Kq/82n+7/I3wdLUk1AehFn\n9cdoebeRVpx0rJeSyt2639F+iY7QZgkrFXHOjkRHNzDPpFE/+gcH7oHlvcWM\nS0d0Tvd4VtUDbxs2LPzyk+BX07zvfa/LzmMffY7Kvux/5+ot3U9v/rRYm1i/\nrH/N\r\n=lUJe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID/O/ygDilXgsVoacXQsawzG2daXPl/h7wTc0/GIzLxnAiEAo8UxCYkMcYw+ZQxgDqNcTN1H7jubjcEW68ykbFXE9Vk="}]},"maintainers":[{"name":"akanass","email":"akanass@icloud.com"}],"_npmUser":{"name":"akanass","email":"akanass@icloud.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rx-otp_1.1.0_1562925264924_0.4898640491360633"},"_hasShrinkwrap":false},"2.0.0":{"name":"@akanass/rx-otp","version":"2.0.0","description":"HMAC-based (HOTP) and Time-based (TOTP) One-Time Password manager. Works with Google Authenticator for Two-Factor Authentication.","main":"commonjs/index.js","module":"esm2015/index.js","types":"index.d.ts","private":false,"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+ssh://git@github.com/akanass/rx-otp.git"},"keywords":["One-Time Password","OTP","HOTP","RFC 4226","TOTP","RFC 6238","Google Authenticator","Two-Factor Authentication","RFC 3548","RxJS","Rx","ReactiveX","Observable","Observer","Streams","Async","ES2015","ES2016","ES2017","ES2018","ES6","ES7","ES8","ES9","Typescript","Browser"],"author":{"name":"Nicolas Jessel","email":"akanass@icloud.com","url":"https://github.com/akanass"},"license":"MIT","bugs":{"url":"https://github.com/akanass/rx-otp/issues"},"homepage":"https://github.com/akanass/rx-otp#readme","dependencies":{"@types/node":"^16.10.3","@types/qr-image":"^3.2.4","@types/uid-safe":"^2.1.2","ajv":"^8.6.3","ajv-keywords":"^5.0.0","big-integer":"^1.6.49","convert-base":"^0.1.0","pad-component":"^0.0.1","qr-image":"^3.2.0","thirty-two":"^1.0.2"},"peerDependencies":{"rxjs":"^7.4.0"},"engines":{"node":">=7.0.0"},"gitHead":"31b839499c1e9801798e7210dbc4dc29115315a9","_id":"@akanass/rx-otp@2.0.0","_nodeVersion":"16.11.0","_npmVersion":"8.0.0","dist":{"integrity":"sha512-T1Lu1WwM81H9FErwQZiNnS1gqqzMGd83131iM3GLq1FIqL/+PPq4o2EUHpjjdkx8l1gzB23dTgCRK91EF4gAWw==","shasum":"754cf385f00dd277ec4ba8526ae3bad8b4f9e2c7","tarball":"https://registry.npmjs.org/@akanass/rx-otp/-/rx-otp-2.0.0.tgz","fileCount":39,"unpackedSize":106564,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhxIrxCRA9TVsSAnZWagAAmVgP/ijuFqbHzNAEG9brh4b2\nzX7AG/YY74FDErKnUhziEqHlThr0hVTGoUmwgT3yaQRSxqJ/BRQ4MrvB4C5h\n+B25JQGC75aWGoDcXbLRdQ0rUrrNuxzo/jNqmefViWv9QDd2dYXYmQsUmBaK\nSIw/doMr1Zp7x8hxBGy9+l5Pe8gmOEDHP5m6qSB5hQxXfc/p9s5tjaSPPouR\n7FtxapS1R9xJl2M/pPSmiDkA9Gud7yOc8xzJ5gM5IMRbCQzFeWRdY7PralIT\n5q8dbwqjVRC0LI0N4AAwxB9xyX27SqJ4vOtmyfMyxIKg39MRpOnZx7jULkMK\nkpn79OGWh1Ttj/azMGS7uShbXP6nNfBG0in8gvSjOi1FRd6i2B+EO2ELw3KJ\nMcvs7pFw+9aujop1shhEjvSGvlFbgncY1+YEwoz62qsOMGwKVwPwoOkT0T2c\nGcrAF216p0uU0VKV+R9DV3XqwzWcNFGL0TesqfFnaFjsx43/GA4V2niEZgwC\nBh2b8Bl+uokSo4edgLdDjWZpM6ImZHsqLgar3IzNEkibrk1Gw3mAtfubTO/X\nY1svrsD3PcQwmf2f1Htfe6tnbq+70TT3ox3sUUpuqXBcCZllJ/WMCe65Mjjc\nNKe+Y51biPk31ApM2d8hP3gF3OCV6oo2P3f1sXJ0ddiZciJx4zbPM6zaWElx\n7prq\r\n=IyRe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrVAQFsB0pVzkWpyplvJjddD0u7nZ7YWx6s9Ik6oFViwIgZQ+fjnAWKWGePtqUi/cOBBHeMBpTv6SEeAxmiRT2MHM="}]},"_npmUser":{"name":"akanass","email":"akanass@icloud.com"},"directories":{},"maintainers":[{"name":"akanass","email":"akanass@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rx-otp_2.0.0_1633965747649_0.5432459485840151"},"_hasShrinkwrap":false}},"time":{"created":"2019-03-12T16:45:04.804Z","1.0.0":"2019-03-12T16:45:05.181Z","modified":"2022-04-04T12:27:57.009Z","1.1.0":"2019-07-12T09:54:25.249Z","2.0.0":"2021-10-11T15:22:27.837Z"},"maintainers":[{"name":"akanass","email":"akanass@icloud.com"}],"description":"HMAC-based (HOTP) and Time-based (TOTP) One-Time Password manager. Works with Google Authenticator for Two-Factor Authentication.","homepage":"https://github.com/akanass/rx-otp#readme","keywords":["One-Time Password","OTP","HOTP","RFC 4226","TOTP","RFC 6238","Google Authenticator","Two-Factor Authentication","RFC 3548","RxJS","Rx","ReactiveX","Observable","Observer","Streams","Async","ES2015","ES2016","ES2017","ES2018","ES6","ES7","ES8","ES9","Typescript","Browser"],"repository":{"type":"git","url":"git+ssh://git@github.com/akanass/rx-otp.git"},"author":{"name":"Nicolas Jessel","email":"akanass@icloud.com","url":"https://github.com/akanass"},"bugs":{"url":"https://github.com/akanass/rx-otp/issues"},"license":"MIT","readme":"# One-Time Password manager\n\nOne Time Password manager is fully compliant with [HOTP](http://tools.ietf.org/html/rfc4226) (counter based one time passwords) and [TOTP](http://tools.ietf.org/html/rfc6238) (time based one time passwords). It can be used in conjunction with the `Google Authenticator`, for Two-Factor Authentication, which has free apps for `iOS`, `Android` and `BlackBerry`.\n\nAll methods described in both `RFC` are implemented in [API](#api).\n\nNow [RxJS](http://reactivex.io/rxjs) compliant, wrote in full [Typescript](https://www.typescriptlang.org/docs/tutorial.html) | [ES6](https://babeljs.io/docs/learn-es2015/) for client and server side.\n\n## Table of contents\n\n* [Installation](#installation)\n* [Super simple to use](#super-simple-to-use)\n* [Build your project with Webpack](#build-your-project-with-webpack)\n* [API in Detail](#api-in-detail)\n* [Contributing](#contributing)\n* [Change History](#change-history)\n* [License](#license)\n\n## Installation\n\n```sh\n$ npm install --save @akanass/rx-otp rxjs\n\nor\n\n$ yarn add @akanass/rx-otp rxjs\n```\n\n## Super simple to use\n\n**RX-OTP** is designed to be the simplest way possible to generate and verify OTP.\n\nIt's fully `Typescript` | `ES6` written, so you can import it :\n\n```typescript\nimport {HOTP} from \"@akanass/rx-otp\";\n```\n\nor use `CommonJS`:\n\n```javascript\nconst HOTP = require('@akanass/rx-otp').HOTP;\n```\n\nNow, it's easy to perform a generation of `HOTP`:\n\n```typescript\nHOTP.generate('12345678901234567890').subscribe({\n    next: token => console.log(token), // display 125165 in the console\n    error: err => console.error(err) // show error in console\n});\n```\n\n[Back to top](#table-of-contents)\n\n## Build your project with Webpack\n\nIf you want to include this library inside a project builds with `webpack` for a `client` application, you must add this configuration inside your `webpack configuration`:\n\n```javascript\n{\n    target: \"web\",\n    node: {\n        fs: \"empty\",\n        net: \"empty\",\n        tls: \"empty\"\n    }\n}\n``` \n\nFor a `server` application, `target` will be `node`, `node` block in configuration **doesn't exist** and `uglify` plugin must be `disabled`. \n\n[Back to top](#table-of-contents)\n\n## API in Detail\n\nWe implemented some functions and to see their details go to documentation folder:\n\n* [./documentation/HOTP.md](https://github.com/akanass/rx-otp/blob/master/documentation/HOTP.md)\n* [./documentation/TOTP.md](https://github.com/akanass/rx-otp/blob/master/documentation/TOTP.md)\n* [./documentation/U2F.md](https://github.com/akanass/rx-otp/blob/master/documentation/U2F.md)\n\n[Back to top](#table-of-contents)\n\n## Contributing\n\nTo set up your development environment:\n\n1. clone the repo to your workspace,\n2. in the shell `cd` to the main folder,\n3. hit `npm or yarn install`,\n4. run `npm or yarn run test`.\n    * It will lint the code and execute all tests. \n    * The test coverage report can be viewed from `./coverage/lcov-report/index.html`.\n\n[Back to top](#table-of-contents)\n\n## Change History\n\n* v2.0.0 (2021-10-11)\n    * Upgrade all packages' versions to move on `rxjs:7.4.0` and delete incompatible packages\n    * Delete browser single version due to incompatibility\n    * Delete `es5` version and now module is only on `es2015` and if you want an older support, your bundle system should transpile it to `es5`\n    * Fix tests\n    * Documentation\n* v1.1.0 (2019-07-12)\n    * Change repository owner name\n    * Latest packages' versions\n    * Fix tests\n    * Documentation\n* v1.0.0 (2019-03-08)\n    * Add **scope** to library and move to **`@akanass/rx-otp`**\n    * Rewritten all **library and test files in `Typescript`**\n    * Add `typings` support\n    * Use `JEST` for testing\n    * Use [json-schema](https://json-schema.org/) and [ajv](https://github.com/epoberezkin/ajv) library to validate functions' parameters\n\n[Back to top](#table-of-contents)\n\n## License\nCopyright (c) 2021 **Nicolas Jessel**. Licensed under the [MIT license](https://github.com/akanass/rx-otp/blob/master/LICENSE.md).\n\n[Back to top](#table-of-contents)\n","readmeFilename":"README.md"}