{"_id":"otp-io","_rev":"15-e8fcd5c71eeed14ceb59c01818848565","name":"otp-io","dist-tags":{"latest":"1.2.7"},"versions":{"1.0.0":{"name":"otp-io","version":"1.0.0","keywords":["2fa","otp","hotp","topt","google authenticator","authenticator","one time password","one-time-password","authentication","2 factor","node","browser","frontend","backend"],"author":"Alexander G <me@alexxgrib.me> (https://alexxgrib.me/)","license":"MIT","_id":"otp-io@1.0.0","maintainers":[{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"}],"homepage":"https://github.com/AlexXanderGrib/otp#readme","bugs":{"url":"https://github.com/AlexXanderGrib/otp/issues"},"dist":{"shasum":"5a08dd3069df82a6547cbedbd78e61638a465623","tarball":"https://registry.npmjs.org/otp-io/-/otp-io-1.0.0.tgz","fileCount":102,"integrity":"sha512-9JWV6BmDVp0jnpvXKiN6kE/ti3I0Lvv87Xi9wr7SFqBKyUQBKm8Bf/gGNghm+pVvp633liWZWbTNVw7CXZAVeA==","signatures":[{"sig":"MEQCIDyNU3+XFhin8LOxs5ghhxqFPL2FUEeaNYif+zszFM1rAiBIz1sdhURhwFSMx/dpVHh+o+6SfaHHMqKI1+onzJHNuQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":231529,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj8Zk2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo1Vg/6AkVR1IZ1IL3cp8CUCe6Zvn15lRVFpYBibGwmuF34xtmlutfC\r\nCvr/rbydYvtG72KGjfxub+NU2BKVFup8oU8i71nMnZQDK28woIVLyilqnSKb\r\nANkC8vFi05MRJi2s/lcqiSFapd4OSotlfi5Eu6smeFoiu40c6qGbjXDDKxbR\r\nEZaR0BMP8P2tFuCHNTKRg/Ppt5yVRVHWx5vbUlvXP32rXyq1QWJw0uvU9yW4\r\nFZxMxN+/B6eyey7URK6GdW+x5AFJNmZzJFT9hOFy2sFLaFpW/P+H8KAnz3Qq\r\nPQfEeC+CJjqbxBnVXHr84FOrINvl+ohoE7LKwlbK0wUDDXJQvNiPNsKHWRFZ\r\niT/cO7wJOsDiFA5TA8PjxGuEVpYn1I44W4fU+MFRGcjjXohTlG8+kKwo0b5i\r\nbd51TD0I7LR+Qnrc1UXrYaM7UWanP34vkfLhw3MbblmpGJxTin0EMzE7A40i\r\ncDEmzk70l9ebinnm+hHlHzzJFEK8Dt32UcLlyGtHwZefAl3jG7ipttRzGE4I\r\nhwfSpIDP7dOFiTP4xp04L7I7KDVwv93i2o5cbEhHo+JLTWX0ai7ONnliEjGP\r\nVRp3mSpM/sAb3OBp5u/inAqBWQd+/LhwTEFFocgSpuBdXwmGr5FPSCOkqoLL\r\nhw4Vq+JK7vOzpSdbw+1u+v8SOCF6VV4quNw=\r\n=j6Ue\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./index.mjs","engines":{"node":">=14"},"exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./crypto-node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"./package.json":"./package.json","./crypto-browser":{"types":"./crypto-browser.d.ts","import":"./crypto-browser.mjs","require":"./crypto-browser.js"}},"gitHead":"d2faa52c3f107e907b201c02127fc665e62d10dc","scripts":{"lint":"eslint src/*","test":"jest","build":"yarn build:dist && yarn build:docs","prepack":"yarn build","prettify":"prettier --write src/**/*","build:dist":"rimraf dist && rollup -c","build:docs":"typedoc"},"typings":"./index.d.ts","_npmUser":{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"},"deprecated":"<1.2.6 web crypto exported incorrectly - do not work at all","repository":{"url":"git+https://github.com/AlexXanderGrib/otp.git","type":"git"},"description":"🕖 Typed library to work 2fa via Google Authenticator/Time-based TOTP/Hmac-based HOTP","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^8.1.0","jest":"^29.3.1","eslint":"^8.34.0","rimraf":"^4.1.2","rollup":"^3.17.1","ts-jest":"^29.0.3","ts-node":"^10.9.1","typedoc":"^0.23.21","prettier":"^2.8.4","typescript":"^4.9.5","@types/jest":"^29.2.3","@types/node":"^18.14.0","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.27.5","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^45.0.2","rollup-plugin-cleanup":"^3.2.1","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-security":"^1.7.1","rollup-plugin-prettier":"^3.0.0","typedoc-plugin-markdown":"^3.13.6","@typescript-eslint/parser":"^5.44.0","rollup-plugin-typescript2":"^0.34.1","typedoc-plugin-missing-exports":"^1.0.0","@typescript-eslint/eslint-plugin":"^5.44.0"},"_npmOperationalInternal":{"tmp":"tmp/otp-io_1.0.0_1676777782087_0.8363534650935804","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"otp-io","version":"1.0.1","keywords":["2fa","otp","hotp","topt","google authenticator","authenticator","one time password","one-time-password","authentication","2 factor","node","browser","frontend","backend"],"author":"Alexander G <me@alexxgrib.me> (https://alexxgrib.me/)","license":"MIT","_id":"otp-io@1.0.1","maintainers":[{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"}],"homepage":"https://github.com/AlexXanderGrib/otp#readme","bugs":{"url":"https://github.com/AlexXanderGrib/otp/issues"},"dist":{"shasum":"b24e48640c271c1272092309b15735f4960d62fe","tarball":"https://registry.npmjs.org/otp-io/-/otp-io-1.0.1.tgz","fileCount":102,"integrity":"sha512-XgKZSYUtkZDGs0GQ9ZHJxc34hbsdFVleukVJ5Pqf2lJuIphNgfuEsZJnrj7SjfvnCgO8jm/Jb/oFCs27M6Z5Sg==","signatures":[{"sig":"MEUCIC5xXV8TdWzdqJ44IXfVD5Qul1ldhkwceIUhzd8nQn38AiEA+aCgGMTAYKibq2s8euThF95O/E1HZBClsyJAwV6Ful4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":231493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj8Zl6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo6Dw//WF3ySnxlUzfUQ3lsVyUIKT8NEgBL3SL5C+yUqsBmjVLpzVbr\r\ni7ueT+jRw2ARW4d5nZNR8dAKM8N78NwgN7YzEcZaV7InJaXUdH/obHVwoavZ\r\n+8cdRFprI8JnrG9ZJwedn0ARIVVF3PMF2fxhdDi3CZn97W/03F6dwErDg2/G\r\ndTJ078ZlCf3CxnKNp7wDOlljlhOjzpBB0H9fRR/k3HXh2+1r1F8nFsTnUVe6\r\nVGboUR3j4bUpn3FdkrkqAgrddPY94gEtPbuartYA+iuChft9DtAh643Y5aQ3\r\nhM24U3ZCY3pZX/bDY7f8IWTNP6axgtra+j/uevYxiU32PBv78sTlu8lR3TOt\r\nQtG5p03DWJBuwywTSclq52vyJBkfP6YdKdaUVeog/S4iNRfTTbN1uFohz3+y\r\nD+On99aj+HpG668ZQCGmJRZSdbzpEhNH2rNA3BIxH6DDonVrM7YHq2aPTdrl\r\nerL8l0XnBO5hAym2n7O4OhxSYzk3EZj1MxRLoa8d/Jg8GFFaseUHYkRh7pcM\r\nsjPlUPaTbEDNNV1NK3s1iOenMFR0Q+Gk08nZfWG5F/DuayZXtGobX4FSMLxq\r\nmP1O8GP+8TcMr71Ory+UsAdVPcjEHboJ3b4vKSMO/QSF8sgEtMA4DiFkdV4D\r\ngOh+7mNPrsh7b+TnnJZtCl+uktCmOqFd8yU=\r\n=5dW4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./index.mjs","engines":{"node":">=14"},"exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./crypto-node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"./package.json":"./package.json","./crypto-browser":{"types":"./crypto-browser.d.ts","import":"./crypto-browser.mjs","require":"./crypto-browser.js"}},"gitHead":"d2faa52c3f107e907b201c02127fc665e62d10dc","scripts":{"lint":"eslint src/*","test":"jest","build":"yarn build:dist && yarn build:docs","prepack":"yarn build","prettify":"prettier --write src/**/*","build:dist":"rimraf dist && rollup -c","build:docs":"typedoc"},"typings":"./index.d.ts","_npmUser":{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"},"deprecated":"<1.2.6 web crypto exported incorrectly - do not work at all","repository":{"url":"git+https://github.com/AlexXanderGrib/otp.git","type":"git"},"description":"🕖 Typed library to work 2fa via Google Authenticator/Time-based TOTP/Hmac-based HOTP","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^8.1.0","jest":"^29.3.1","eslint":"^8.34.0","rimraf":"^4.1.2","rollup":"^3.17.1","ts-jest":"^29.0.3","ts-node":"^10.9.1","typedoc":"^0.23.21","prettier":"^2.8.4","typescript":"^4.9.5","@types/jest":"^29.2.3","@types/node":"^18.14.0","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.27.5","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^45.0.2","rollup-plugin-cleanup":"^3.2.1","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-security":"^1.7.1","rollup-plugin-prettier":"^3.0.0","typedoc-plugin-markdown":"^3.13.6","@typescript-eslint/parser":"^5.44.0","rollup-plugin-typescript2":"^0.34.1","typedoc-plugin-missing-exports":"^1.0.0","@typescript-eslint/eslint-plugin":"^5.44.0"},"_npmOperationalInternal":{"tmp":"tmp/otp-io_1.0.1_1676777850335_0.18045668998978348","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"otp-io","version":"1.0.2","keywords":["2fa","otp","hotp","topt","google authenticator","authenticator","one time password","one-time-password","authentication","2 factor","node","browser","frontend","backend"],"author":"Alexander G <me@alexxgrib.me> (https://alexxgrib.me/)","license":"MIT","_id":"otp-io@1.0.2","maintainers":[{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"}],"homepage":"https://github.com/AlexXanderGrib/otp#readme","bugs":{"url":"https://github.com/AlexXanderGrib/otp/issues"},"dist":{"shasum":"045d7588fb6b0260e53b5e0e52556e029877f6a1","tarball":"https://registry.npmjs.org/otp-io/-/otp-io-1.0.2.tgz","fileCount":102,"integrity":"sha512-H9+XeuwqqhL5xY2U4GgRe66iAX8QlB29d2vHKaswvxOrA2SLD4TawJmuhbWCk+ADUwDRSHbkyjD7f85M7iMPxA==","signatures":[{"sig":"MEUCIC319kUF6yKNjv7Melr0u7JVKpoMWwCAo5xSl3GA2sisAiEAgpDayVIPduI7inD/pOtnPy2X4DjaSU0paI4soEYdFy4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":231493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj8ZrxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpVkw/9HUdGHU24F7NFPPjCorGom5g3OstvF/t74/W57EEU0x67WsAt\r\ndK8aLo2222EsTHGtoi3OU+m63rhRAmaeWDytIzx4984ljhvCT9V8tYUns0fM\r\n9Tb13ieTyjUI+CAD+gkdEjIGdDL1I1gOKIAHaYypw31pL87EpX7491CDFoKK\r\ng3Qs6fvb2V02VjU40kDoQU/+ZjHHLYrTfMRHQ208G0K4SRy0PyWf1RWhbzmZ\r\nxKtq7Uh5DBcUveWxGRjDoE3eUuDMLWp01n0vjn59K9YwyIOFax0j209pi3ne\r\nilvsnlZkf4Td1EnA1Uh53FGOil0go1in9Mp0Wppza3pzMqTlmCf+q93P9VK/\r\nQlE74yXNpCPc0wWYk8ZuQLXjPibh886urS7OjehJpTTqPakpQuA0+wdt+3Ik\r\n+BmpNl9aaj+gxbGuD57vVvP9S+1Ut7JVkX1naVyGGMIOyaxL5NZNXON1Nh1R\r\nldazIMI1td+R9BLnMdyuRmL5MbYL6XFrQ+0miahd6XbvjTs4eJ+R6Za3rk92\r\nY3XEnDJo9v0Zd8qNpMdGRCe7c+He/X28tfrnxTk7CTTcmJIYeZQYIsTe3PZw\r\njn4QDFedYge2s3UYmq+36Mi7U/+5ZRloIn2M1GoC+XFXSwlo+cLyqjGZDjJX\r\nmVLHB5clJEucFmXsl1eSPBcOFrwaqIfeuis=\r\n=T393\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./index.mjs","engines":{"node":">=14"},"exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./crypto-node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"./package.json":"./package.json","./crypto-browser":{"types":"./crypto-browser.d.ts","import":"./crypto-browser.mjs","require":"./crypto-browser.js"}},"gitHead":"9dd01e384aed750e92c5093bed7a4bab166b30e9","scripts":{"lint":"eslint src/*","test":"jest","build":"yarn build:dist && yarn build:docs","prepack":"yarn build","prettify":"prettier --write src/**/*","build:dist":"rimraf dist && rollup -c","build:docs":"typedoc"},"typings":"./index.d.ts","_npmUser":{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"},"deprecated":"<1.2.6 web crypto exported incorrectly - do not work at all","repository":{"url":"git+https://github.com/AlexXanderGrib/otp.git","type":"git"},"description":"🕖 Typed library to work 2fa via Google Authenticator/Time-based TOTP/Hmac-based HOTP","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^8.1.0","jest":"^29.3.1","eslint":"^8.34.0","rimraf":"^4.1.2","rollup":"^3.17.1","ts-jest":"^29.0.3","ts-node":"^10.9.1","typedoc":"^0.23.21","prettier":"^2.8.4","typescript":"^4.9.5","@types/jest":"^29.2.3","@types/node":"^18.14.0","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.27.5","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^45.0.2","rollup-plugin-cleanup":"^3.2.1","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-security":"^1.7.1","rollup-plugin-prettier":"^3.0.0","typedoc-plugin-markdown":"^3.13.6","@typescript-eslint/parser":"^5.44.0","rollup-plugin-typescript2":"^0.34.1","typedoc-plugin-missing-exports":"^1.0.0","@typescript-eslint/eslint-plugin":"^5.44.0"},"_npmOperationalInternal":{"tmp":"tmp/otp-io_1.0.2_1676778225145_0.6524880116336362","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"otp-io","version":"1.1.0","keywords":["2fa","otp","hotp","topt","google authenticator","authenticator","one time password","one-time-password","authentication","2 factor","node","browser","frontend","backend"],"author":"Alexander G <me@alexxgrib.me> (https://alexxgrib.me/)","license":"MIT","_id":"otp-io@1.1.0","maintainers":[{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"}],"homepage":"https://github.com/AlexXanderGrib/otp#readme","bugs":{"url":"https://github.com/AlexXanderGrib/otp/issues"},"dist":{"shasum":"9bff309a932ade34a179dec08f726865567531ff","tarball":"https://registry.npmjs.org/otp-io/-/otp-io-1.1.0.tgz","fileCount":110,"integrity":"sha512-qOVB1YegCaF/RXTerPX9BiPXrzmAeJg/iozomSZJ9BYzLd1zsp8ihkWjx9WUM1aDxMpM0sI9qO7s2eHQHIfL9w==","signatures":[{"sig":"MEQCIBMOy2oOMm8yE1RSh0HMCXhHDuFXMVy35dfZ6RTwEk/dAiBlrAXWb7uvayDQWmZqnbO0qN83vT8Mbi2SB5YiijRy8w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":284135,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+0ExACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp3wA//cclUp/B0c0sojwoav01v5t/pNYZLTzt8uKUY33QBhnJs5ela\r\nJ8r7ImnUU7rJ2E8qY2F+zuYrilBO6ru6PON2CMbIVvk7/oihQoMXfKpx6g1a\r\ntP9bj50Fr+GeJaOxqJTaJSEE4iN/CVzwgGeAS7GaMpT26sheydBkfShAtLzH\r\npdB0/sxwqaasS4Lf3i7fbusHIyPd2HhvBfNloUafgz+OCGHgFToFN4t1m/zL\r\nIpeMu0BDkMdWUwjc2ZyrdQHmzLXu07MWIVkIPq01kQlswIZfKV3rcS8luzRV\r\n1XPo6+Jy2m5Vqi2WCc2dZ+GRla4xtz9xSGNQPt0q0KKoBJdfucaVnpxft6dR\r\n+kATD4EqrOhpabIxgh7gw+w6TFArt5YcjcGbueG2d7YWLocns0T/6Vd+gP9H\r\nPtQzAPeXUMQOeFIGzXlal/RIPPr8MTLitc/QLh8miCuS4V4jMON9Uxl5XuQE\r\nACN4jRNnZul1MjongSEBrB7oA8RB98FLdwcQFUTU2d/OfuW4Wn5DlpZ1YiGg\r\nIjBuBQkyJX4xFyKH8GIhrpSR1Xt0D2ATv5rdWkLO04TRl64FSwv956URUlyR\r\ncJGEiDhwJvniYRFcqcrw7TkQfWS2zyLgH1Ywf4hlIdiEqMxIybn98VfqxjnN\r\nqb4OBo/jKn31/TSydLMlU9aPl790D6VBGyc=\r\n=ZXBM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./index.mjs","engines":{"node":">=14"},"exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./crypto-web":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"},"./crypto-node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"./package.json":"./package.json","./crypto-browser":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"}},"gitHead":"bec3093c6b29a313a6b64124667364cba49920de","scripts":{"lint":"eslint src/*","test":"jest","build":"yarn build:dist && yarn build:docs","prepack":"yarn build","prettify":"prettier --write src/**/*","build:dist":"rimraf dist && rollup -c","build:docs":"typedoc"},"typings":"./index.d.ts","_npmUser":{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"},"deprecated":"<1.2.6 web crypto exported incorrectly - do not work at all","repository":{"url":"git+https://github.com/AlexXanderGrib/otp.git","type":"git"},"description":"🕖 Typed library to work 2fa via Google Authenticator/Time-based TOTP/Hmac-based HOTP","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^8.1.0","jest":"^29.3.1","eslint":"^8.34.0","rimraf":"^4.1.2","rollup":"^3.17.1","ts-jest":"^29.0.3","ts-node":"^10.9.1","typedoc":"^0.23.21","prettier":"^2.8.4","typescript":"^4.9.5","@types/jest":"^29.2.3","@types/node":"^18.14.0","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.27.5","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^45.0.2","rollup-plugin-cleanup":"^3.2.1","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-security":"^1.7.1","rollup-plugin-prettier":"^3.0.0","typedoc-plugin-markdown":"^3.13.6","@typescript-eslint/parser":"^5.44.0","rollup-plugin-typescript2":"^0.34.1","typedoc-plugin-missing-exports":"^1.0.0","@typescript-eslint/eslint-plugin":"^5.44.0"},"_npmOperationalInternal":{"tmp":"tmp/otp-io_1.1.0_1677410609572_0.9362596644026246","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"otp-io","version":"1.1.1","keywords":["2fa","otp","hotp","topt","google authenticator","authenticator","one time password","one-time-password","authentication","2 factor","node","browser","frontend","backend"],"author":"Alexander G <me@alexxgrib.me> (https://alexxgrib.me/)","license":"MIT","_id":"otp-io@1.1.1","maintainers":[{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"}],"homepage":"https://github.com/AlexXanderGrib/otp#readme","bugs":{"url":"https://github.com/AlexXanderGrib/otp/issues"},"dist":{"shasum":"6a7a262150beea4a44701b320e3cec5fee503796","tarball":"https://registry.npmjs.org/otp-io/-/otp-io-1.1.1.tgz","fileCount":110,"integrity":"sha512-ramrGmhx2KNrjFZUJGAn947UO6MwT+jRXijHAxe/y/F3qC9CjTh5/GgE+JVVa0kYy99AcNUQM213KJKk9BJVRg==","signatures":[{"sig":"MEQCIChb9BrKKbii1DFsOZvyqooY7if2k4NsCJEYOvJ25RbgAiBywABvGSpSvxgHtAeDx6luIaZMD67EPHyPktBhDc3pxg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":284137,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+0GuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrdXA//fFZT2gbPHMidmu3pxGK1hfR5S0CnIjr0PukprdhGcxx8fXCP\r\nlG4Of+MSqljpcUY5nBEC7gmrnwGXhyq6pwN+WpBleaqvOumY0NevUCEF7Mou\r\nDKGtqikDMinL3aP/8/UIkSH3CVixLgOpz3erjF4Ih3ujM8tl0eaGSqJ/8jx0\r\n0IUZxLOLwSj3Kn6ta+YDlbPmur8AASKfoIhJwyp3gBQmOL/8kAM1qxN5Qouu\r\nEKjgvM+uvxz2522Y00CnB1iNS3qNWeyW7O2MMLKtZyClQDa/mxBag+tQz0jP\r\noW2ixPMu/MJdMG+uSdIpa1QCxOWDvbA/kA6w7Qg+5V9Rhlj/V1Op21AZHin5\r\nDjv+fI+bMJpYtH2208+TBGEvNpMZSeOB5rOusKrtYqRWGu4NCWwXUtoIdd8P\r\nocoapxD4o1UI8Tao1WgfQY60Fthk5j/A0GwkXfDErQNnNLk52WzueThdpY/x\r\nLkOyzWLFHHiAIurBgHjHD8GjHw0309YZSaIzxq/2W6QLhAkS+8mFE3oK6MZW\r\nmTUczVkFgwQ7aTjD+hCwH9zr3V7ghYGBrBrrUwliHTU3wFpuaZhcjBA4ll+j\r\nFHX6cQ3xSCgsZ1vzCRwXdJm04n80TYAvY9WmE70xEo16BRLFiZnY/xEW4XIa\r\nOgkqlx5coOzWRsaIs2AuXWduvEDBAcaLvRA=\r\n=nweT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./index.mjs","engines":{"node":">=14"},"exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./crypto-web":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"},"./crypto-node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"./package.json":"./package.json","./crypto-browser":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"}},"gitHead":"55192a3f278c09aece2bf13d3f45cca282f72924","scripts":{"lint":"eslint src/*","test":"jest","build":"yarn build:dist && yarn build:docs","prepack":"yarn build","prettify":"prettier --write src/**/*","build:dist":"rimraf dist && rollup -c","build:docs":"typedoc"},"typings":"./index.d.ts","_npmUser":{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"},"deprecated":"<1.2.6 web crypto exported incorrectly - do not work at all","repository":{"url":"git+https://github.com/AlexXanderGrib/otp.git","type":"git"},"description":"🕖 Typed library to work 2fa via Google Authenticator/Time-based TOTP/Hmac-based HOTP","directories":{},"sideEffects":false,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^8.1.0","jest":"^29.3.1","eslint":"^8.34.0","rimraf":"^4.1.2","rollup":"^3.17.1","ts-jest":"^29.0.3","ts-node":"^10.9.1","typedoc":"^0.23.21","prettier":"^2.8.4","typescript":"^4.9.5","@types/jest":"^29.2.3","@types/node":"^18.14.0","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.27.5","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^45.0.2","rollup-plugin-cleanup":"^3.2.1","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-security":"^1.7.1","rollup-plugin-prettier":"^3.0.0","typedoc-plugin-markdown":"^3.13.6","@typescript-eslint/parser":"^5.44.0","rollup-plugin-typescript2":"^0.34.1","typedoc-plugin-missing-exports":"^1.0.0","@typescript-eslint/eslint-plugin":"^5.44.0"},"_npmOperationalInternal":{"tmp":"tmp/otp-io_1.1.1_1677410733907_0.12161187844404275","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"otp-io","version":"1.2.0","keywords":["2fa","otp","hotp","topt","google authenticator","authenticator","one time password","one-time-password","authentication","2 factor","node","browser","frontend","backend"],"author":{"url":"https://alexxgrib.me/","name":"Alexander G","email":"me@alexxgrib.me"},"license":"MIT","_id":"otp-io@1.2.0","maintainers":[{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"}],"homepage":"https://github.com/AlexXanderGrib/otp#readme","bugs":{"url":"https://github.com/AlexXanderGrib/otp/issues"},"dist":{"shasum":"0fe78dd35d3a89d86930355f77f93f68d3199d98","tarball":"https://registry.npmjs.org/otp-io/-/otp-io-1.2.0.tgz","fileCount":82,"integrity":"sha512-cCGEVShQdMRHYJLX/dAOBR84XamvnMIji7Bi45aLxKB1oS3QFkzVyOZIC+9iCU/Sw5MtgTB2+tl9fvg31RS8Qg==","signatures":[{"sig":"MEQCIDjePhs4rkNfrzBZVrEFtcGRhDk2QX7XSr3jGkrbkbm/AiAp3cxzj+Ih/hxUXvHqD+IXoVPce2g03W2QFcAvRsB48w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70281},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./index.mjs","engines":{"node":">=14"},"exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./crypto":{"node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"default":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"}},"./crypto-web":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"},"./crypto-node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"./package.json":"./package.json","./crypto-browser":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"}},"gitHead":"103fc037d29bce5661bc3d439e03e64a9c75f637","scripts":{"lint":"eslint src/*","test":"jest","build":"yarn build:dist && yarn build:docs","prepack":"yarn build","prettify":"prettier --write src/**/*","build:dist":"rimraf dist && rollup -c","build:docs":"typedoc"},"typings":"./index.d.ts","_npmUser":{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"},"deprecated":"<1.2.6 web crypto exported incorrectly - do not work at all","repository":{"url":"git+https://github.com/AlexXanderGrib/otp.git","type":"git"},"_npmVersion":"9.7.2","description":"🕖 Typed library to work 2fa via Google Authenticator/Time-based TOTP/Hmac-based HOTP","directories":{},"sideEffects":false,"_nodeVersion":"20.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^10.3.3","jest":"^29.6.1","eslint":"^8.44.0","rimraf":"^5.0.1","rollup":"^3.26.2","ts-jest":"^29.1.1","ts-node":"^10.9.1","typedoc":"^0.24.8","prettier":"^3.0.0","typescript":"^5.1.6","@types/jest":"^29.2.3","@types/node":"^18.14.0","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.27.5","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^47.0.0","rollup-plugin-cleanup":"^3.2.1","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^5.0.0","eslint-plugin-security":"^1.7.1","rollup-plugin-prettier":"^3.0.0","typedoc-plugin-markdown":"^3.15.3","@typescript-eslint/parser":"^5.44.0","rollup-plugin-typescript2":"^0.35.0","typedoc-plugin-missing-exports":"^2.0.0","@typescript-eslint/eslint-plugin":"^5.44.0"},"_npmOperationalInternal":{"tmp":"tmp/otp-io_1.2.0_1689071188788_0.2687700220627851","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"otp-io","version":"1.2.1","keywords":["2fa","otp","hotp","topt","google authenticator","authenticator","one time password","one-time-password","authentication","2 factor","node","browser","frontend","backend"],"author":{"url":"https://alexxgrib.me/","name":"Alexander G","email":"me@alexxgrib.me"},"license":"MIT","_id":"otp-io@1.2.1","maintainers":[{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"}],"homepage":"https://github.com/AlexXanderGrib/otp#readme","bugs":{"url":"https://github.com/AlexXanderGrib/otp/issues"},"dist":{"shasum":"c79fe2dcb998dcd4feae78169239a9be3ba154c2","tarball":"https://registry.npmjs.org/otp-io/-/otp-io-1.2.1.tgz","fileCount":85,"integrity":"sha512-LCJAvC5USjEsQFeJ8fQCwniU+IgD76Q/XzmF1KGXBWRZ+I2zP7XI7KwKz7JE+hHs2fgBQMQ2VqX6Jdxi+RDohw==","signatures":[{"sig":"MEQCIHwflc62ddGPS+u3wr/MuGvdpH8uT9lQC2QyMCO/sCNrAiASYdIM5UV+rcQezdZNc9dEg6z3zHcxDb/A7Y+ICToZVw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70402},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./index.mjs","engines":{"node":">=14"},"exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./crypto":{"node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"default":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"}},"./crypto-web":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"},"./crypto-node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"./package.json":"./package.json","./crypto-browser":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"}},"gitHead":"103fc037d29bce5661bc3d439e03e64a9c75f637","scripts":{"lint":"eslint src/*","test":"jest","build":"yarn build:dist && yarn build:docs","prepack":"yarn build","prettify":"prettier --write src/**/*","build:dist":"rimraf dist && rollup -c","build:docs":"typedoc"},"typings":"./index.d.ts","_npmUser":{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"},"deprecated":"<1.2.6 web crypto exported incorrectly - do not work at all","repository":{"url":"git+https://github.com/AlexXanderGrib/otp.git","type":"git"},"_npmVersion":"9.7.2","description":"🕖 Typed library to work 2fa via Google Authenticator/Time-based TOTP/Hmac-based HOTP","directories":{},"sideEffects":false,"_nodeVersion":"20.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^10.3.3","jest":"^29.6.1","eslint":"^8.44.0","rimraf":"^5.0.1","rollup":"^3.26.2","ts-jest":"^29.1.1","ts-node":"^10.9.1","typedoc":"^0.24.8","prettier":"^3.0.0","typescript":"^5.1.6","@types/jest":"^29.2.3","@types/node":"^18.14.0","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.27.5","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^47.0.0","rollup-plugin-cleanup":"^3.2.1","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^5.0.0","eslint-plugin-security":"^1.7.1","rollup-plugin-prettier":"^3.0.0","typedoc-plugin-markdown":"^3.15.3","@typescript-eslint/parser":"^5.44.0","rollup-plugin-typescript2":"^0.35.0","typedoc-plugin-missing-exports":"^2.0.0","@typescript-eslint/eslint-plugin":"^5.44.0"},"_npmOperationalInternal":{"tmp":"tmp/otp-io_1.2.1_1689071328478_0.2987321074839926","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"otp-io","version":"1.2.2","keywords":["2fa","otp","hotp","topt","google authenticator","authenticator","one time password","one-time-password","authentication","2 factor","node","browser","frontend","backend"],"author":{"url":"https://alexxgrib.me/","name":"Alexander G","email":"me@alexxgrib.me"},"license":"MIT","_id":"otp-io@1.2.2","maintainers":[{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"}],"homepage":"https://github.com/AlexXanderGrib/otp#readme","bugs":{"url":"https://github.com/AlexXanderGrib/otp/issues"},"dist":{"shasum":"ea97d3371227ec68145a9dd0d0777c40c6a3753f","tarball":"https://registry.npmjs.org/otp-io/-/otp-io-1.2.2.tgz","fileCount":85,"integrity":"sha512-e0vq0aO9nui3XpUay2yFtP5e+cjZ3H1/lWRLjY5fNlKf+WNbmmIDT2KMWBQtM9uuwD0drAHOtA4RLU/Rl9LuCA==","signatures":[{"sig":"MEYCIQCQ6vdVY1CCwn8mpUYP/MUmtJ21zrikxkVP1syqGUvt9QIhALM9mAwjEQj8iMwr+XtTOTX2JW5yme1z5xU8LgWl/u6D","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70369},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./index.mjs","engines":{"node":">=14"},"exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./crypto":{"node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"},"./crypto-web":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"},"./crypto-node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"./package.json":"./package.json","./crypto-browser":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"}},"gitHead":"103fc037d29bce5661bc3d439e03e64a9c75f637","scripts":{"lint":"eslint src/*","test":"jest","build":"yarn build:dist && yarn build:docs","prepack":"yarn build","prettify":"prettier --write src/**/*","build:dist":"rimraf dist && rollup -c","build:docs":"typedoc"},"typings":"./index.d.ts","_npmUser":{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"},"deprecated":"<1.2.6 web crypto exported incorrectly - do not work at all","repository":{"url":"git+https://github.com/AlexXanderGrib/otp.git","type":"git"},"_npmVersion":"9.7.2","description":"🕖 Typed library to work 2fa via Google Authenticator/Time-based TOTP/Hmac-based HOTP","directories":{},"sideEffects":false,"_nodeVersion":"20.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^10.3.3","jest":"^29.6.1","eslint":"^8.44.0","rimraf":"^5.0.1","rollup":"^3.26.2","ts-jest":"^29.1.1","ts-node":"^10.9.1","typedoc":"^0.24.8","prettier":"^3.0.0","typescript":"^5.1.6","@types/jest":"^29.2.3","@types/node":"^18.14.0","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.27.5","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^47.0.0","rollup-plugin-cleanup":"^3.2.1","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^5.0.0","eslint-plugin-security":"^1.7.1","rollup-plugin-prettier":"^3.0.0","typedoc-plugin-markdown":"^3.15.3","@typescript-eslint/parser":"^5.44.0","rollup-plugin-typescript2":"^0.35.0","typedoc-plugin-missing-exports":"^2.0.0","@typescript-eslint/eslint-plugin":"^5.44.0"},"_npmOperationalInternal":{"tmp":"tmp/otp-io_1.2.2_1689071401477_0.23233523222819707","host":"s3://npm-registry-packages"}},"1.2.3":{"name":"otp-io","version":"1.2.3","keywords":["2fa","otp","hotp","topt","google authenticator","authenticator","one time password","one-time-password","authentication","2 factor","node","browser","frontend","backend"],"author":{"url":"https://alexxgrib.me/","name":"Alexander G","email":"me@alexxgrib.me"},"license":"MIT","_id":"otp-io@1.2.3","maintainers":[{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"}],"homepage":"https://github.com/AlexXanderGrib/otp#readme","bugs":{"url":"https://github.com/AlexXanderGrib/otp/issues"},"dist":{"shasum":"57f6138d2b536ee57b7c8633cdc97922650bb734","tarball":"https://registry.npmjs.org/otp-io/-/otp-io-1.2.3.tgz","fileCount":87,"integrity":"sha512-Agxkd7RxMvoGoDejXP92/wTf5KBdXDwUF57Ni8ERcjF28QtRoWWPGGd/36QD/HKT1vR8059OHPMjMFBAGyfPBw==","signatures":[{"sig":"MEUCIQD4um2eb/MABtlRWS8s9xSsendV4LGgxmu/ajXTzozMFAIgAY2/hieS0WCTtsBmJdACv1xjcoTWlG9+jfk0gWUPwQs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70572},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./index.mjs","engines":{"node":">=14"},"exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./crypto":{"node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"},"./crypto-web":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"},"./crypto-node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"./package.json":"./package.json","./crypto-browser":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"}},"gitHead":"103fc037d29bce5661bc3d439e03e64a9c75f637","scripts":{"lint":"eslint src/*","test":"jest","build":"yarn build:dist && yarn build:docs","prepack":"yarn build","prettify":"prettier --write src/**/*","build:dist":"rimraf dist && rollup -c","build:docs":"typedoc"},"typings":"./index.d.ts","_npmUser":{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"},"deprecated":"<1.2.6 web crypto exported incorrectly - do not work at all","repository":{"url":"git+https://github.com/AlexXanderGrib/otp.git","type":"git"},"_npmVersion":"9.7.2","description":"🕖 Typed library to work 2fa via Google Authenticator/Time-based TOTP/Hmac-based HOTP","directories":{},"sideEffects":false,"_nodeVersion":"20.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^10.3.3","jest":"^29.6.1","eslint":"^8.44.0","rimraf":"^5.0.1","rollup":"^3.26.2","ts-jest":"^29.1.1","ts-node":"^10.9.1","typedoc":"^0.24.8","prettier":"^3.0.0","typescript":"^5.1.6","@types/jest":"^29.2.3","@types/node":"^18.14.0","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.27.5","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^47.0.0","rollup-plugin-cleanup":"^3.2.1","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^5.0.0","eslint-plugin-security":"^1.7.1","rollup-plugin-prettier":"^3.0.0","typedoc-plugin-markdown":"^3.15.3","@typescript-eslint/parser":"^5.44.0","rollup-plugin-typescript2":"^0.35.0","typedoc-plugin-missing-exports":"^2.0.0","@typescript-eslint/eslint-plugin":"^5.44.0"},"_npmOperationalInternal":{"tmp":"tmp/otp-io_1.2.3_1689071801130_0.305923459167595","host":"s3://npm-registry-packages"}},"1.2.4":{"name":"otp-io","version":"1.2.4","keywords":["2fa","otp","hotp","topt","google authenticator","authenticator","one time password","one-time-password","authentication","2 factor","node","browser","frontend","backend"],"author":{"url":"https://alexxgrib.me/","name":"Alexander G","email":"me@alexxgrib.me"},"license":"MIT","_id":"otp-io@1.2.4","maintainers":[{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"}],"homepage":"https://github.com/AlexXanderGrib/otp#readme","bugs":{"url":"https://github.com/AlexXanderGrib/otp/issues"},"dist":{"shasum":"a025e754034710c0982fd940654bd69353067576","tarball":"https://registry.npmjs.org/otp-io/-/otp-io-1.2.4.tgz","fileCount":87,"integrity":"sha512-MnYZ5AQhGdKcuQQNaHc29qtw7Vfvc11r8yukmxVYJQKm/x04GuS3KNDgLdZirr9J/K1+izLVm6CCSbyum41dBA==","signatures":[{"sig":"MEYCIQDo+xAcWumtr0zgs5eB1oHClMixMBiwbasUufF1dSZpVgIhALxExeDnCXo5tv/yL6flB2dofXdqgROys4rc56zgocSJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70568},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./index.mjs","engines":{"node":">=14"},"exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./crypto":{"node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"},"./crypto-web":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"},"./crypto-node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"./package.json":"./package.json","./crypto-browser":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"}},"gitHead":"103fc037d29bce5661bc3d439e03e64a9c75f637","scripts":{"lint":"eslint src/*","test":"jest","build":"yarn build:dist && yarn build:docs","prepack":"yarn build","prettify":"prettier --write src/**/*","build:dist":"rimraf dist && rollup -c","build:docs":"typedoc"},"typings":"./index.d.ts","_npmUser":{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"},"deprecated":"<1.2.6 web crypto exported incorrectly - do not work at all","repository":{"url":"git+https://github.com/AlexXanderGrib/otp.git","type":"git"},"_npmVersion":"9.7.2","description":"🕖 Typed library to work 2fa via Google Authenticator/Time-based TOTP/Hmac-based HOTP","directories":{},"sideEffects":false,"_nodeVersion":"20.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^10.3.3","jest":"^29.6.1","eslint":"^8.44.0","rimraf":"^5.0.1","rollup":"^3.26.2","ts-jest":"^29.1.1","ts-node":"^10.9.1","typedoc":"^0.24.8","prettier":"^3.0.0","typescript":"^5.1.6","@types/jest":"^29.2.3","@types/node":"^18.14.0","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.27.5","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^47.0.0","rollup-plugin-cleanup":"^3.2.1","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^5.0.0","eslint-plugin-security":"^1.7.1","rollup-plugin-prettier":"^3.0.0","typedoc-plugin-markdown":"^3.15.3","@typescript-eslint/parser":"^5.44.0","rollup-plugin-typescript2":"^0.35.0","typedoc-plugin-missing-exports":"^2.0.0","@typescript-eslint/eslint-plugin":"^5.44.0"},"_npmOperationalInternal":{"tmp":"tmp/otp-io_1.2.4_1689071872511_0.770321748958914","host":"s3://npm-registry-packages"}},"1.2.5":{"name":"otp-io","version":"1.2.5","keywords":["2fa","otp","hotp","topt","google authenticator","authenticator","one time password","one-time-password","authentication","2 factor","node","browser","frontend","backend"],"author":{"url":"https://alexxgrib.me/","name":"Alexander G","email":"me@alexxgrib.me"},"license":"MIT","_id":"otp-io@1.2.5","maintainers":[{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"}],"homepage":"https://github.com/AlexXanderGrib/otp#readme","bugs":{"url":"https://github.com/AlexXanderGrib/otp/issues"},"dist":{"shasum":"395a45fd5894e2cd49728c7e787cbd7a08363cd3","tarball":"https://registry.npmjs.org/otp-io/-/otp-io-1.2.5.tgz","fileCount":87,"integrity":"sha512-wqFjvc18SuaBH+SYsqjW579Qy7EaD7NWe7fW35LeeeJ6KBd4YU9Rj7s/3wX1Gu9gfoxUaM37tGNvk/u6swXk0g==","signatures":[{"sig":"MEUCIQDVVFK/meFsECdtaNS0GUsMfrotabpKuLYHy/ppB6PkRAIgap8EBwZDfQ+gMq2gKhGOM2V38vAe46coekRuIz5oVgw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70560},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./index.mjs","engines":{"node":">=14"},"exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./crypto":{"node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"},"./crypto-web":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"},"./crypto-node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"./package.json":"./package.json","./crypto-browser":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"}},"gitHead":"103fc037d29bce5661bc3d439e03e64a9c75f637","scripts":{"lint":"eslint src/*","test":"jest","build":"yarn build:dist && yarn build:docs","prepack":"yarn build","prettify":"prettier --write src/**/*","build:dist":"rimraf dist && rollup -c","build:docs":"typedoc"},"typings":"./index.d.ts","_npmUser":{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"},"deprecated":"<1.2.6 web crypto exported incorrectly - do not work at all","repository":{"url":"git+https://github.com/AlexXanderGrib/otp.git","type":"git"},"_npmVersion":"9.7.2","description":"🕖 Typed library to work 2fa via Google Authenticator/Time-based TOTP/Hmac-based HOTP","directories":{},"sideEffects":false,"_nodeVersion":"20.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^10.3.3","jest":"^29.6.1","eslint":"^8.44.0","rimraf":"^5.0.1","rollup":"^3.26.2","ts-jest":"^29.1.1","ts-node":"^10.9.1","typedoc":"^0.24.8","prettier":"^3.0.0","typescript":"^5.1.6","@types/jest":"^29.2.3","@types/node":"^18.14.0","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.27.5","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^47.0.0","rollup-plugin-cleanup":"^3.2.1","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^5.0.0","eslint-plugin-security":"^1.7.1","rollup-plugin-prettier":"^3.0.0","typedoc-plugin-markdown":"^3.15.3","@typescript-eslint/parser":"^5.44.0","rollup-plugin-typescript2":"^0.35.0","typedoc-plugin-missing-exports":"^2.0.0","@typescript-eslint/eslint-plugin":"^5.44.0"},"_npmOperationalInternal":{"tmp":"tmp/otp-io_1.2.5_1689072183189_0.236065163583713","host":"s3://npm-registry-packages"}},"1.2.6":{"name":"otp-io","version":"1.2.6","keywords":["2fa","otp","hotp","topt","google authenticator","authenticator","one time password","one-time-password","authentication","2 factor","node","browser","frontend","backend"],"author":{"url":"https://alexxgrib.me/","name":"Alexander G","email":"me@alexxgrib.me"},"license":"MIT","_id":"otp-io@1.2.6","maintainers":[{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"}],"homepage":"https://github.com/AlexXanderGrib/otp#readme","bugs":{"url":"https://github.com/AlexXanderGrib/otp/issues"},"dist":{"shasum":"e6f9441188505cf878be9a8ac07cf4699274c6e0","tarball":"https://registry.npmjs.org/otp-io/-/otp-io-1.2.6.tgz","fileCount":91,"integrity":"sha512-+xzN/hv2cZ+pxU8aCRKdKOqHigq3s3Tn5Ab0Ls03a9W7h3d/S2M9N/551KKamZy298mRSPsuk+wJbQl2Te5lEw==","signatures":[{"sig":"MEQCIDEVh+5KRb4GuXTMKgDYR2LYzfT7hhHfgNhD0aqNa86qAiA7Vqf10548qv4LZqPfBpChu947gmGs+QbJ7oIeWDlyIA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72189},"main":"./index.js","type":"commonjs","types":"./index.d.ts","module":"./index.mjs","engines":{"node":">=14"},"exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./crypto":{"node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"},"./crypto-web":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"},"./crypto-node":{"types":"./crypto-node.d.ts","import":"./crypto-node.mjs","require":"./crypto-node.js"},"./package.json":"./package.json","./crypto-browser":{"types":"./crypto-web.d.ts","import":"./crypto-web.mjs","require":"./crypto-web.js"}},"gitHead":"103fc037d29bce5661bc3d439e03e64a9c75f637","scripts":{"lint":"eslint src/*","test":"jest","build":"yarn build:dist && yarn build:docs","prepack":"yarn build","prettify":"prettier --write src/**/*","build:dist":"rimraf dist && rollup -c","build:docs":"typedoc"},"typings":"./index.d.ts","_npmUser":{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"},"repository":{"url":"git+https://github.com/AlexXanderGrib/otp.git","type":"git"},"_npmVersion":"9.7.2","description":"🕖 Typed library to work 2fa via Google Authenticator/Time-based TOTP/Hmac-based HOTP","directories":{},"sideEffects":false,"_nodeVersion":"20.4.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^10.3.3","jest":"^29.6.1","eslint":"^8.44.0","rimraf":"^5.0.1","rollup":"^3.26.2","ts-jest":"^29.1.1","ts-node":"^10.9.1","typedoc":"^0.24.8","prettier":"^3.0.0","typescript":"^5.1.6","@types/jest":"^29.2.3","@types/node":"^18.14.0","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.27.5","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^47.0.0","rollup-plugin-cleanup":"^3.2.1","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^5.0.0","eslint-plugin-security":"^1.7.1","rollup-plugin-prettier":"^3.0.0","typedoc-plugin-markdown":"^3.15.3","@typescript-eslint/parser":"^5.44.0","rollup-plugin-typescript2":"^0.35.0","typedoc-plugin-missing-exports":"^2.0.0","@typescript-eslint/eslint-plugin":"^5.44.0"},"_npmOperationalInternal":{"tmp":"tmp/otp-io_1.2.6_1689072427725_0.36983355947109","host":"s3://npm-registry-packages"}},"1.2.7":{"name":"otp-io","version":"1.2.7","description":"🕖 Typed library to work 2fa via Google Authenticator/Time-based TOTP/Hmac-based HOTP","scripts":{"test":"jest","build:dist":"rimraf dist && rollup -c","build:docs":"typedoc","build":"npm run build:dist && npm run build:docs","prepack":"npm run build","lint":"eslint src/*","prettify":"prettier --write src/**/*"},"main":"./index.js","module":"./index.mjs","type":"commonjs","types":"./index.d.ts","typings":"./index.d.ts","sideEffects":false,"exports":{"./package.json":"./package.json",".":{"require":"./index.js","import":"./index.mjs","types":"./index.d.ts"},"./crypto-node":{"require":"./crypto-node.js","import":"./crypto-node.mjs","types":"./crypto-node.d.ts"},"./crypto-web":{"require":"./crypto-web.js","import":"./crypto-web.mjs","types":"./crypto-web.d.ts"},"./crypto-browser":{"require":"./crypto-web.js","import":"./crypto-web.mjs","types":"./crypto-web.d.ts"},"./crypto":{"node":{"require":"./crypto-node.js","import":"./crypto-node.mjs","types":"./crypto-node.d.ts"},"require":"./crypto-web.js","import":"./crypto-web.mjs","types":"./crypto-web.d.ts"}},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/AlexXanderGrib/otp.git"},"keywords":["2fa","otp","hotp","topt","google authenticator","authenticator","one time password","one-time-password","authentication","2 factor","node","browser","frontend","backend"],"author":{"name":"Alexander G","email":"me@alexxgrib.me","url":"https://alexxgrib.me/"},"maintainers":[{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"}],"license":"MIT","bugs":{"url":"https://github.com/AlexXanderGrib/otp/issues"},"homepage":"https://github.com/AlexXanderGrib/otp#readme","devDependencies":{"@types/jest":"^29.5.14","@types/node":"^22.10.2","@typescript-eslint/eslint-plugin":"^8.19.0","@typescript-eslint/parser":"^8.19.0","eslint":"^8.44.0","eslint-config-google":"^0.14.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.27.5","eslint-plugin-prettier":"^5.0.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-security":"^1.7.1","eslint-plugin-unicorn":"^47.0.0","glob":"^11.0.0","jest":"^29.7.0","prettier":"^3.4.2","rimraf":"^6.0.1","rollup":"^4.29.1","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-prettier":"^4.1.1","rollup-plugin-typescript2":"^0.36.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typedoc":"^0.27.6","typedoc-plugin-markdown":"^4.4.0","typedoc-plugin-missing-exports":"^3.1.0","typescript":"^5.7.2"},"engines":{"node":">=14"},"_id":"otp-io@1.2.7","gitHead":"103fc037d29bce5661bc3d439e03e64a9c75f637","_nodeVersion":"20.18.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-UhIZfOtlMBSWGSN/v1i1eY5qsW07V/ZgaSq8bZXK0nfZEcoEitRKmn1dY8Sed8rafai3Ju8BwuxttuC2DJm6sA==","shasum":"23d9b668f0b6208751eb81fccaa29d9542ca839e","tarball":"https://registry.npmjs.org/otp-io/-/otp-io-1.2.7.tgz","fileCount":93,"unpackedSize":73308,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0HOPP52d1dLnT3/f7b02bV39Y2Y9rFdqMKp7yTZxFswIgXC3adpNKEeVk+gCU5v5I4tLUVZvcGz3KYfTrDmRcdHQ="}]},"_npmUser":{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/otp-io_1.2.7_1735653310562_0.6660216748122161"},"_hasShrinkwrap":false}},"time":{"created":"2023-02-19T03:36:21.999Z","modified":"2024-12-31T13:55:10.904Z","1.0.0":"2023-02-19T03:36:22.285Z","1.0.1":"2023-02-19T03:37:30.540Z","1.0.2":"2023-02-19T03:43:45.353Z","1.1.0":"2023-02-26T11:23:29.733Z","1.1.1":"2023-02-26T11:25:34.087Z","1.2.0":"2023-07-11T10:26:29.022Z","1.2.1":"2023-07-11T10:28:48.642Z","1.2.2":"2023-07-11T10:30:01.735Z","1.2.3":"2023-07-11T10:36:41.295Z","1.2.4":"2023-07-11T10:37:52.736Z","1.2.5":"2023-07-11T10:43:03.442Z","1.2.6":"2023-07-11T10:47:07.970Z","1.2.7":"2024-12-31T13:55:10.746Z"},"bugs":{"url":"https://github.com/AlexXanderGrib/otp/issues"},"author":{"name":"Alexander G","email":"me@alexxgrib.me","url":"https://alexxgrib.me/"},"license":"MIT","homepage":"https://github.com/AlexXanderGrib/otp#readme","keywords":["2fa","otp","hotp","topt","google authenticator","authenticator","one time password","one-time-password","authentication","2 factor","node","browser","frontend","backend"],"repository":{"type":"git","url":"git+https://github.com/AlexXanderGrib/otp.git"},"description":"🕖 Typed library to work 2fa via Google Authenticator/Time-based TOTP/Hmac-based HOTP","maintainers":[{"name":"alexxandergrib","email":"alexxandergrib@gmail.com"}],"readme":"# OTP io\n\n> Typed library to work 2fa via Google Authenticator/Time-based TOTP/Hmac-based HOTP\n\n[![Test Status](https://github.com/AlexXanderGrib/otp/actions/workflows/test.yml/badge.svg)](https://github.com/AlexXanderGrib/otp)\n[![Downloads](https://img.shields.io/npm/dt/otp-io.svg)](https://npmjs.com/package/otp-io)\n[![last commit](https://img.shields.io/github/last-commit/AlexXanderGrib/otp.svg)](https://github.com/AlexXanderGrib/otp)\n[![codecov](https://img.shields.io/codecov/c/github/AlexXanderGrib/otp/main.svg)](https://codecov.io/gh/AlexXanderGrib/otp)\n[![GitHub](https://img.shields.io/github/stars/AlexXanderGrib/otp.svg)](https://github.com/AlexXanderGrib/otp)\n[![otp-io](https://snyk.io/advisor/npm-package/otp-io/badge.svg)](https://snyk.io/advisor/npm-package/otp-io)\n[![Known Vulnerabilities](https://snyk.io/test/npm/otp-io/badge.svg)](https://snyk.io/test/npm/otp-io)\n[![Quality](https://img.shields.io/npms-io/quality-score/otp-io.svg?label=quality%20%28npms.io%29&)](https://npms.io/search?q=otp-io)\n[![npm](https://img.shields.io/npm/v/otp-io.svg)](https://npmjs.com/package/otp-io)\n[![license MIT](https://img.shields.io/npm/l/otp-io.svg)](https://github.com/AlexXanderGrib/otp/blob/main/LICENSE.txt)\n[![Size](https://img.shields.io/bundlephobia/minzip/otp-io)](https://bundlephobia.com/package/otp-io)\n\n[Example](#how-it-works) &bull; [API Reference](./docs/api/README.md)\n\n## Why use this lib?\n\n- **Small.** Tree-shakable, 0 dependencies\n- **Tested.** Compatibility with [Google Authenticator](https://github.com/google/google-authenticator/wiki/Key-Uri-Format) and with [RFC4226 (HOTP)](https://www.ietf.org/rfc/rfc4226.txt) and [RFC6238 (TOTP)](https://www.ietf.org/rfc/rfc6238.txt)\n\n## Install\n\n- `npm`\n  ```bash\n  npm i otp-io\n  ```\n- `Yarn`\n  ```bash\n  yarn add otp-io\n  ```\n\n## What is this?\n\n- `HOTP` - HMAC-based One Time Password generation method. Uses incrementing with each login `counter` and `secret` to generate unique 6-8 digit codes.\n- `TOTP` - Time-based, uses `current time` modulo `period` (seconds) as counter in `HOTP`,\n- `Google Authenticator` - uses simplified version of `TOTP` to generate codes. Differences:\n  - Only `SHA-1` hash support\n  - Only 6 digit codes\n  - Keys should not be padded\n  - TOTP period is 30 seconds\n\nGoogle Authenticator limits are defaults for this library.\n\n## How it works?\n\n```typescript\n// 1. Import library - use totp (code changes with time)\nimport { totp, generateKey, getKeyUri } from \"otp-io\";\n// 2. Import crypto adapter. \n// Specify `crypto-node` or `crypto-web` if node/bundler cannot \n// detect correct version\nimport { hmac, randomBytes } from \"otp-io/crypto\";\n\n// 3. Get key from somewhere. Or generate it\nconst secret = generateKey(randomBytes, /* bytes: */ 20); // 5-20 good for Google Authenticator\n\n// 4. Get key import url\nconst url = getKeyUri({\n  type: \"totp\",\n  secret,\n  name: \"User's Username\",\n  issuer: \"Your Site Name\"\n});\n\n// 5. Show it to user as QR code - send it back to client\n// Get 6-digit code back from him, as confirmation of saving secret key\n\nconst input = \"...\";\n\nconst code = await totp(hmac, { secret });\n\nif (code === input) {\n  // 6. Done. User configured your key\n}\n```\n\n## Api Reference\n\n[API Reference](./docs/api/modules.md)\n","readmeFilename":"README.md"}