{"_id":"@otplib/uri","_rev":"10-c3ca04e7681accafd27bd6f72c09a9c5","name":"@otplib/uri","dist-tags":{"latest":"13.4.1"},"versions":{"13.0.0":{"name":"@otplib/uri","version":"13.0.0","keywords":["otp","otpauth","uri","qrcode","2fa","authenticator"],"author":{"name":"Gerald Yeo","email":"support@yeojz.dev"},"license":"MIT","_id":"@otplib/uri@13.0.0","maintainers":[{"name":"geraldyeo","email":"support@yeojz.dev"}],"homepage":"https://otplib.yeojz.dev","bugs":{"url":"https://github.com/yeojz/otplib/issues"},"dist":{"shasum":"b00765a4ca2274f2879d3d6f8d6e70063e1d4feb","tarball":"https://registry.npmjs.org/@otplib/uri/-/uri-13.0.0.tgz","fileCount":9,"integrity":"sha512-/0jDNQ6iXYjfMsb1ehiNXZxYqe6B3Rpv/WyvVlEN02cbSLHpuVrHT2m5iICf6k94xJCqLnLcfqNd6EMl7mA4IA==","signatures":[{"sig":"MEUCIQCUszLfJ9tWhFCWM9wpiICcARsm1JmP06uMtyie3fzdegIgHCUHJVl17FmCoARpU2HmRZ0Vqwy5tQ5jQvQaefFC52U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58297},"main":"./dist/index.cjs","type":"module","_from":"file:otplib-uri-13.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest","build":"tsup","clean":"rm -rf dist .tsbuildinfo","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit"},"_npmUser":{"name":"geraldyeo","email":"support@yeojz.dev"},"_resolved":"/tmp/ecf47ce7b102e27e116f8e5cd24688e7/otplib-uri-13.0.0.tgz","_integrity":"sha512-/0jDNQ6iXYjfMsb1ehiNXZxYqe6B3Rpv/WyvVlEN02cbSLHpuVrHT2m5iICf6k94xJCqLnLcfqNd6EMl7mA4IA==","repository":{"url":"git+https://github.com/yeojz/otplib.git","type":"git","directory":"packages/uri"},"_npmVersion":"10.8.2","description":"otpauth:// URI parsing and generation for otplib","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"@otplib/core":"13.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.16","typescript":"^5.3.3","@repo/testing":"13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/uri_13.0.0_1768042029448_0.2786412236616138","host":"s3://npm-registry-packages-npm-production"}},"13.0.1":{"name":"@otplib/uri","version":"13.0.1","keywords":["otp","otpauth","uri","qrcode","2fa","authenticator"],"author":{"name":"Gerald Yeo","email":"support@yeojz.dev"},"license":"MIT","_id":"@otplib/uri@13.0.1","maintainers":[{"name":"geraldyeo","email":"support@yeojz.dev"}],"homepage":"https://otplib.yeojz.dev","bugs":{"url":"https://github.com/yeojz/otplib/issues"},"dist":{"shasum":"9bbfebea7930a45c8af6318b385b7838c88cb7ae","tarball":"https://registry.npmjs.org/@otplib/uri/-/uri-13.0.1.tgz","fileCount":9,"integrity":"sha512-jxET/qEhK1XT614GmSg3bfvn/wo/E+U8kV+c/YDt+kfGayyafMrnvBJhwx701niE1yOlMFpbqN6bhVy0EiVKaA==","signatures":[{"sig":"MEUCIE2dtW8spWq16NeuFJyet6DRM/2ggV9dmW46AClRTUAWAiEAw0jTzjezuO0/f1Gqmx3wjhVQro8fEAsvCZEdJRC1eyg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@otplib%2furi@13.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58297},"main":"./dist/index.cjs","type":"module","_from":"file:otplib-uri-13.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest","build":"tsup","clean":"rm -rf dist .tsbuildinfo","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit"},"_npmUser":{"name":"geraldyeo","email":"support@yeojz.dev"},"_resolved":"/tmp/11405bbbb97b5c837516b88abbdfb7be/otplib-uri-13.0.1.tgz","_integrity":"sha512-jxET/qEhK1XT614GmSg3bfvn/wo/E+U8kV+c/YDt+kfGayyafMrnvBJhwx701niE1yOlMFpbqN6bhVy0EiVKaA==","repository":{"url":"git+https://github.com/yeojz/otplib.git","type":"git","directory":"packages/uri"},"_npmVersion":"10.8.2","description":"otpauth:// URI parsing and generation for otplib","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"@otplib/core":"13.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.16","typescript":"^5.3.3","@repo/testing":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/uri_13.0.1_1768062585036_0.6104661401464135","host":"s3://npm-registry-packages-npm-production"}},"13.0.2":{"name":"@otplib/uri","version":"13.0.2","keywords":["otp","otpauth","uri","qrcode","2fa","authenticator"],"author":{"name":"Gerald Yeo","email":"support@yeojz.dev"},"license":"MIT","_id":"@otplib/uri@13.0.2","maintainers":[{"name":"geraldyeo","email":"support@yeojz.dev"}],"homepage":"https://otplib.yeojz.dev","bugs":{"url":"https://github.com/yeojz/otplib/issues"},"dist":{"shasum":"175b9a45ca89668163652d9d14e92c2c971cf505","tarball":"https://registry.npmjs.org/@otplib/uri/-/uri-13.0.2.tgz","fileCount":11,"integrity":"sha512-wBy1Sc88noOXnuk04Ed9yaMvNL/qPDjFAt0RQG527NSERC9ZUx+51wyi8pmhmRIj4LKIHboq9TZutxJv99yjnA==","signatures":[{"sig":"MEYCIQDe8Qi/dhNiWtvJF6hkMuVhJTECSFu0qrDksc3cHdVMIAIhAIEXh3M3SHGQJ5uJsYhsdwA2ceGmREGqSAbVbG9DXV01","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@otplib%2furi@13.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59064},"main":"./dist/index.cjs","type":"module","_from":"file:otplib-uri-13.0.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest","build":"tsup","clean":"rm -rf dist .tsbuildinfo","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit"},"_npmUser":{"name":"geraldyeo","email":"support@yeojz.dev"},"_resolved":"/tmp/4f012bf6f75fd4737920f9bc1a8f634e/otplib-uri-13.0.2.tgz","_integrity":"sha512-wBy1Sc88noOXnuk04Ed9yaMvNL/qPDjFAt0RQG527NSERC9ZUx+51wyi8pmhmRIj4LKIHboq9TZutxJv99yjnA==","repository":{"url":"git+https://github.com/yeojz/otplib.git","type":"git","directory":"packages/uri"},"_npmVersion":"10.8.2","description":"otpauth:// URI parsing and generation for otplib","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"@otplib/core":"13.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.16","typescript":"^5.3.3","@repo/testing":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/uri_13.0.2_1768120924003_0.23022075823977128","host":"s3://npm-registry-packages-npm-production"}},"13.1.0":{"name":"@otplib/uri","version":"13.1.0","keywords":["otp","otpauth","uri","qrcode","2fa","authenticator"],"author":{"name":"Gerald Yeo","email":"support@yeojz.dev"},"license":"MIT","_id":"@otplib/uri@13.1.0","maintainers":[{"name":"geraldyeo","email":"support@yeojz.dev"}],"homepage":"https://otplib.yeojz.dev","bugs":{"url":"https://github.com/yeojz/otplib/issues"},"dist":{"shasum":"66332920c226190c100f2373eb0574385a31964d","tarball":"https://registry.npmjs.org/@otplib/uri/-/uri-13.1.0.tgz","fileCount":11,"integrity":"sha512-uSUzIa5F1TSUsHXSUA8xUkYaeYGXyFDq1mpPzQ2eGa+KzDBgw24GLJini2G/VGNjpNth6Q92GuAbcZQ29U0QUA==","signatures":[{"sig":"MEYCIQDyT7eCvlnQn+StfxL59/mwBzhb9/6bESuBMoGyjhASxgIhAKUpGRVhCYOqEMvUWfqePP3enYd8AVS5hXv3HCngsb0U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@otplib%2furi@13.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59064},"main":"./dist/index.cjs","type":"module","_from":"file:otplib-uri-13.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest","build":"tsup","clean":"rm -rf dist .tsbuildinfo","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit"},"_npmUser":{"name":"geraldyeo","email":"support@yeojz.dev"},"_resolved":"/tmp/d645c75b2461a5b187f62be0c62757d0/otplib-uri-13.1.0.tgz","_integrity":"sha512-uSUzIa5F1TSUsHXSUA8xUkYaeYGXyFDq1mpPzQ2eGa+KzDBgw24GLJini2G/VGNjpNth6Q92GuAbcZQ29U0QUA==","repository":{"url":"git+https://github.com/yeojz/otplib.git","type":"git","directory":"packages/uri"},"_npmVersion":"10.8.2","description":"otpauth:// URI parsing and generation for otplib","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"@otplib/core":"13.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.16","typescript":"^5.3.3","@repo/testing":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/uri_13.1.0_1768235696662_0.3810409816128184","host":"s3://npm-registry-packages-npm-production"}},"13.1.1":{"name":"@otplib/uri","version":"13.1.1","keywords":["otp","otpauth","uri","qrcode","2fa","authenticator"],"author":{"name":"Gerald Yeo","email":"support@yeojz.dev"},"license":"MIT","_id":"@otplib/uri@13.1.1","maintainers":[{"name":"geraldyeo","email":"support@yeojz.dev"}],"homepage":"https://otplib.yeojz.dev","bugs":{"url":"https://github.com/yeojz/otplib/issues"},"dist":{"shasum":"d9bdd0ef44fd63d9677a8e9bee27ca82d83ac1a7","tarball":"https://registry.npmjs.org/@otplib/uri/-/uri-13.1.1.tgz","fileCount":11,"integrity":"sha512-UMdz/41JIKPLw6/VeExc3MJaCHZYEZXlF5WVyhtWT5nfzQKAcgp6HI8Tar0lDN+lXXKCjbGwlyCKOWCMAISNXg==","signatures":[{"sig":"MEUCIQD8ljpPvUXzLr+ME+XTfWkpPhByo/sZ5UhqAMoyDppeAwIgZJZ5tutS0fz+JGOzgUU9chcpgfqZm5Fk2aGoisgi7TA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@otplib%2furi@13.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59064},"main":"./dist/index.cjs","type":"module","_from":"file:otplib-uri-13.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest","build":"tsup","clean":"rm -rf dist .tsbuildinfo","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit"},"_npmUser":{"name":"geraldyeo","email":"support@yeojz.dev"},"_resolved":"/tmp/8ab8a472e8b492806d3ee242761ba098/otplib-uri-13.1.1.tgz","_integrity":"sha512-UMdz/41JIKPLw6/VeExc3MJaCHZYEZXlF5WVyhtWT5nfzQKAcgp6HI8Tar0lDN+lXXKCjbGwlyCKOWCMAISNXg==","repository":{"url":"git+https://github.com/yeojz/otplib.git","type":"git","directory":"packages/uri"},"_npmVersion":"10.8.2","description":"otpauth:// URI parsing and generation for otplib","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"@otplib/core":"13.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.16","typescript":"^5.3.3","@repo/testing":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/uri_13.1.1_1768406229051_0.6096315177053346","host":"s3://npm-registry-packages-npm-production"}},"13.2.0":{"name":"@otplib/uri","version":"13.2.0","keywords":["otp","otpauth","uri","qrcode","2fa","authenticator"],"author":{"name":"Gerald Yeo","email":"support@yeojz.dev"},"license":"MIT","_id":"@otplib/uri@13.2.0","maintainers":[{"name":"geraldyeo","email":"support@yeojz.dev"}],"homepage":"https://otplib.yeojz.dev","bugs":{"url":"https://github.com/yeojz/otplib/issues"},"dist":{"shasum":"8cdff3383dbdb201437f907b16d958cedcbeb430","tarball":"https://registry.npmjs.org/@otplib/uri/-/uri-13.2.0.tgz","fileCount":11,"integrity":"sha512-72ISyPHKYmDpiP5vu5uL9cvUOFlTW2BuRvFVligqWTEPqgluY+uljjq8rMkyUUv/QMIwiFiaxfyn0CntvV3rSg==","signatures":[{"sig":"MEUCIEuAb6VMsw28LEzsszs8iytWiGCXamoA2+TOXENg1g0HAiEA0K7OeRZ7t2pT5YuO2bbd9lRM/7GBw/FGDB1/Q4rtyaQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@otplib%2furi@13.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59186},"main":"./dist/index.cjs","type":"module","_from":"file:otplib-uri-13.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest","build":"tsup","clean":"rm -rf dist .tsbuildinfo","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit"},"_npmUser":{"name":"geraldyeo","email":"support@yeojz.dev"},"_resolved":"/tmp/3ff9c919d5c1ff2aa2b81330fb60ef2d/otplib-uri-13.2.0.tgz","_integrity":"sha512-72ISyPHKYmDpiP5vu5uL9cvUOFlTW2BuRvFVligqWTEPqgluY+uljjq8rMkyUUv/QMIwiFiaxfyn0CntvV3rSg==","repository":{"url":"git+https://github.com/yeojz/otplib.git","type":"git","directory":"packages/uri"},"_npmVersion":"10.8.2","description":"otpauth:// URI parsing and generation for otplib","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"@otplib/core":"13.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","typescript":"^5.3.3","@repo/testing":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/uri_13.2.0_1769355444533_0.5174489866718988","host":"s3://npm-registry-packages-npm-production"}},"13.2.1":{"name":"@otplib/uri","version":"13.2.1","keywords":["otp","otpauth","uri","qrcode","2fa","authenticator"],"author":{"name":"Gerald Yeo","email":"support@yeojz.dev"},"license":"MIT","_id":"@otplib/uri@13.2.1","maintainers":[{"name":"geraldyeo","email":"support@yeojz.dev"}],"homepage":"https://otplib.yeojz.dev","bugs":{"url":"https://github.com/yeojz/otplib/issues"},"dist":{"shasum":"50054fe922f3610e7558b0c5337353770c1f382e","tarball":"https://registry.npmjs.org/@otplib/uri/-/uri-13.2.1.tgz","fileCount":11,"integrity":"sha512-ssYnfiUrFTs/rPRUW8h59m0MVLYOC+UKk7tVGYgtG15lLaLBrNBQjM2YFanuzn9Jm4iv9JxiNG7TRkwcnyR09A==","signatures":[{"sig":"MEUCIEYPdfJ0WmRVZfFOajw52aYCYWPo1hs0qt9i3I/qNBgqAiEAlrNPkpSEZKcxaW04IIvKsQ/Yg0FFkosCFXb/9JcvF/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@otplib%2furi@13.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59186},"main":"./dist/index.cjs","type":"module","_from":"file:otplib-uri-13.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest","build":"tsup","clean":"rm -rf dist .tsbuildinfo","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit"},"_npmUser":{"name":"geraldyeo","email":"support@yeojz.dev"},"_resolved":"/tmp/0d73c8ae15a7e36789a326255d372fee/otplib-uri-13.2.1.tgz","_integrity":"sha512-ssYnfiUrFTs/rPRUW8h59m0MVLYOC+UKk7tVGYgtG15lLaLBrNBQjM2YFanuzn9Jm4iv9JxiNG7TRkwcnyR09A==","repository":{"url":"git+https://github.com/yeojz/otplib.git","type":"git","directory":"packages/uri"},"_npmVersion":"10.8.2","description":"otpauth:// URI parsing and generation for otplib","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"@otplib/core":"13.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^4.0.18","typescript":"^5.3.3","@repo/testing":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/uri_13.2.1_1769411108325_0.2412106191513721","host":"s3://npm-registry-packages-npm-production"}},"13.3.0":{"name":"@otplib/uri","version":"13.3.0","keywords":["otp","otpauth","uri","qrcode","2fa","authenticator"],"author":{"name":"Gerald Yeo","email":"support@yeojz.dev"},"license":"MIT","_id":"@otplib/uri@13.3.0","maintainers":[{"name":"geraldyeo","email":"support@yeojz.dev"}],"homepage":"https://otplib.yeojz.dev","bugs":{"url":"https://github.com/yeojz/otplib/issues"},"dist":{"shasum":"7474d6dc0fdf8ab2d0cf2b79e2001446c4e7b6b3","tarball":"https://registry.npmjs.org/@otplib/uri/-/uri-13.3.0.tgz","fileCount":11,"integrity":"sha512-3oh6nBXy+cm3UX9cxEAGZiDrfxHU2gfelYFV+XNCx+8dq39VaQVymwlU2yjPZiMAi/3agaUeEftf2RwM5F+Cyg==","signatures":[{"sig":"MEUCICC3/Fzkb9ZNdSKCXjp/d/5k5Hesv7plqeSoVN2GkW4OAiEAsz8VP8GyiaN5sxwh95h0fWx+tMV2j0bSUbwSRB9yFgc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@otplib%2furi@13.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62173},"main":"./dist/index.cjs","type":"module","_from":"file:otplib-uri-13.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest","build":"tsup","clean":"rm -rf dist .tsbuildinfo","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5990c180-a814-4f77-8cc4-7a7a294086c3"}},"_resolved":"/tmp/e88d5d94e324fd948e661fbdecf4816b/otplib-uri-13.3.0.tgz","_integrity":"sha512-3oh6nBXy+cm3UX9cxEAGZiDrfxHU2gfelYFV+XNCx+8dq39VaQVymwlU2yjPZiMAi/3agaUeEftf2RwM5F+Cyg==","repository":{"url":"git+https://github.com/yeojz/otplib.git","type":"git","directory":"packages/uri"},"_npmVersion":"11.6.2","description":"otpauth:// URI parsing and generation for otplib","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"@otplib/core":"13.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.18","typescript":"^5.9.3","@repo/testing":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/uri_13.3.0_1770906881813_0.529897280260629","host":"s3://npm-registry-packages-npm-production"}},"13.4.0":{"name":"@otplib/uri","version":"13.4.0","keywords":["otp","otpauth","uri","qrcode","2fa","authenticator"],"author":{"name":"Gerald Yeo","email":"support@yeojz.dev"},"license":"MIT","_id":"@otplib/uri@13.4.0","maintainers":[{"name":"geraldyeo","email":"support@yeojz.dev"}],"homepage":"https://otplib.yeojz.dev","bugs":{"url":"https://github.com/yeojz/otplib/issues"},"dist":{"shasum":"23fa0b727bec026bb871afd42e1c3e5ff57bed1d","tarball":"https://registry.npmjs.org/@otplib/uri/-/uri-13.4.0.tgz","fileCount":11,"integrity":"sha512-x1ozBa5bPbdZCrrTL/HK21qchiK7jYElTu+0ft22abeEhiLYgH1+SIULvOcVk3CK8YwF4kdcidvkq4ciejucJA==","signatures":[{"sig":"MEUCIGUgLfmU88D69ROUeCpieQKk0kYjwXtjhdkjhaFS/EnPAiEAs+vbeMlUkxfeeLia/oEDvNQJ5d3S2n1f8QoK5Zkg4YQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@otplib%2furi@13.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62146},"main":"./dist/index.cjs","type":"module","_from":"file:otplib-uri-13.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest","build":"tsup","clean":"rm -rf dist .tsbuildinfo","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5990c180-a814-4f77-8cc4-7a7a294086c3"}},"_resolved":"/tmp/da239e79a2db6225d43968713efbf442/otplib-uri-13.4.0.tgz","_integrity":"sha512-x1ozBa5bPbdZCrrTL/HK21qchiK7jYElTu+0ft22abeEhiLYgH1+SIULvOcVk3CK8YwF4kdcidvkq4ciejucJA==","repository":{"url":"git+https://github.com/yeojz/otplib.git","type":"git","directory":"packages/uri"},"_npmVersion":"11.9.0","description":"otpauth:// URI parsing and generation for otplib","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@otplib/core":"13.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.18","typescript":"^5.9.3","@repo/testing":"13.0.1"},"_npmOperationalInternal":{"tmp":"tmp/uri_13.4.0_1773932444414_0.27995575730966804","host":"s3://npm-registry-packages-npm-production"}},"13.4.1":{"name":"@otplib/uri","version":"13.4.1","description":"otpauth:// URI parsing and generation for otplib","license":"MIT","author":{"name":"Gerald Yeo","email":"support@yeojz.dev"},"homepage":"https://otplib.yeojz.dev","repository":{"type":"git","url":"git+https://github.com/yeojz/otplib.git","directory":"packages/uri"},"bugs":{"url":"https://github.com/yeojz/otplib/issues"},"keywords":["otp","otpauth","uri","qrcode","2fa","authenticator"],"sideEffects":false,"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"dependencies":{"@otplib/core":"13.4.1"},"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","vitest":"^4.1.5","@repo/testing":"13.0.1"},"publishConfig":{"access":"public"},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","lint":"eslint src/","clean":"rm -rf dist .tsbuildinfo"},"_id":"@otplib/uri@13.4.1","_integrity":"sha512-xaIm7bvICMhoB2rZIR5luiaMdssWR5nY5nXnR1fdezUgZuEO58D6zrGzLp7pQuBmlpmL0HagnscDQFoskp9yiA==","_resolved":"/tmp/d409a5ece79f6af2e0d020e358b5d96a/otplib-uri-13.4.1.tgz","_from":"file:otplib-uri-13.4.1.tgz","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-xaIm7bvICMhoB2rZIR5luiaMdssWR5nY5nXnR1fdezUgZuEO58D6zrGzLp7pQuBmlpmL0HagnscDQFoskp9yiA==","shasum":"68d482a8c190b6b74224886817e732729c8790b0","tarball":"https://registry.npmjs.org/@otplib/uri/-/uri-13.4.1.tgz","fileCount":11,"unpackedSize":62145,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@otplib%2furi@13.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCaFUBNXd7pnjtiOK/RmQEZK8cKMHeaXOdXUmR/Yf7XXwIgZpCcocRBwTmgYpSEapMALnqEVrAuN8v/cZ97HJ2smew="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5990c180-a814-4f77-8cc4-7a7a294086c3"}},"directories":{},"maintainers":[{"name":"geraldyeo","email":"support@yeojz.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/uri_13.4.1_1780134882808_0.511765267126802"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-10T10:47:09.337Z","modified":"2026-05-30T09:54:43.485Z","13.0.0":"2026-01-10T10:47:09.593Z","13.0.1":"2026-01-10T16:29:45.236Z","13.0.2":"2026-01-11T08:42:04.146Z","13.1.0":"2026-01-12T16:34:56.818Z","13.1.1":"2026-01-14T15:57:09.187Z","13.2.0":"2026-01-25T15:37:24.692Z","13.2.1":"2026-01-26T07:05:08.455Z","13.3.0":"2026-02-12T14:34:41.966Z","13.4.0":"2026-03-19T15:00:44.605Z","13.4.1":"2026-05-30T09:54:42.933Z"},"bugs":{"url":"https://github.com/yeojz/otplib/issues"},"author":{"name":"Gerald Yeo","email":"support@yeojz.dev"},"license":"MIT","homepage":"https://otplib.yeojz.dev","keywords":["otp","otpauth","uri","qrcode","2fa","authenticator"],"repository":{"type":"git","url":"git+https://github.com/yeojz/otplib.git","directory":"packages/uri"},"description":"otpauth:// URI parsing and generation for otplib","maintainers":[{"name":"geraldyeo","email":"support@yeojz.dev"}],"readme":"# @otplib/uri\n\nParse and generate `otpauth://` URIs for OTP account provisioning.\n\n## Installation\n\n```bash\nnpm install @otplib/uri\npnpm add @otplib/uri\nyarn add @otplib/uri\n```\n\n## Overview\n\nThe `@otplib/uri` package provides utilities for working with `otpauth://` URIs - the standard format for sharing OTP account information. These URIs are commonly used in QR codes for authenticator app setup.\n\n### URI Format\n\n```\notpauth://TYPE/LABEL?PARAMETERS\n```\n\n- **TYPE**: `totp` or `hotp`\n- **LABEL**: `issuer:account` or just `account`\n- **PARAMETERS**: `secret`, `issuer`, `algorithm`, `digits`, `period`/`counter`\n\nExample:\n\n```\notpauth://totp/GitHub:user@example.com?secret=GEZDGNBVGY3TQOJQGEZDGNBVGY&issuer=GitHub\n```\n\n## Parsing URIs\n\n### Basic Parsing\n\n```typescript\nimport { parse } from \"@otplib/uri\";\n\nconst uri =\n  \"otpauth://totp/GitHub:user@example.com?secret=GEZDGNBVGY3TQOJQGEZDGNBVGY&issuer=GitHub\";\nconst result = parse(uri);\n\nconsole.log(result);\n// {\n//   type: 'totp',\n//   label: 'GitHub:user@example.com',\n//   params: {\n//     secret: 'GEZDGNBVGY3TQOJQGEZDGNBVGY',\n//     issuer: 'GitHub',\n//     algorithm: 'sha1',\n//     digits: 6,\n//     period: 30\n//   }\n// }\n```\n\n### Extracting Account Details\n\n```typescript\nimport { parse } from \"@otplib/uri\";\n\nconst uri = \"otpauth://totp/ACME%20Corp:john@example.com?secret=GEZDGNBVGY3TQOJQGEZDGNBVGY\";\nconst { label, params } = parse(uri);\n\n// Split label to get issuer and account\nconst [issuer, account] = label.includes(\":\") ? label.split(\":\") : [params.issuer, label];\n\nconsole.log(\"Issuer:\", issuer); // 'ACME Corp'\nconsole.log(\"Account:\", account); // 'john@example.com'\nconsole.log(\"Secret:\", params.secret);\n```\n\n### Error Handling\n\n```typescript\nimport {\n  parse,\n  URIParseError,\n  InvalidURIError,\n  MissingParameterError,\n  InvalidParameterError,\n} from \"@otplib/uri\";\n\ntry {\n  const result = parse(\"invalid-uri\");\n} catch (error) {\n  if (error instanceof InvalidURIError) {\n    console.error(\"Not a valid otpauth:// URI\");\n  } else if (error instanceof MissingParameterError) {\n    console.error(\"Missing required parameter (e.g., secret)\");\n  } else if (error instanceof InvalidParameterError) {\n    console.error(\"Invalid parameter value\");\n  }\n}\n```\n\n## Generating URIs\n\n### TOTP URI\n\n```typescript\nimport { generateTOTP } from \"@otplib/uri\";\n\nconst uri = generateTOTP({\n  issuer: \"ACME Corp\",\n  label: \"john@example.com\",\n  secret: \"GEZDGNBVGY3TQOJQGEZDGNBVGY\",\n});\n\nconsole.log(uri);\n// 'otpauth://totp/ACME%20Corp:john@example.com?secret=GEZDGNBVGY3TQOJQGEZDGNBVGY&issuer=ACME%20Corp'\n```\n\n### TOTP with Custom Options\n\n```typescript\nimport { generateTOTP } from \"@otplib/uri\";\n\nconst uri = generateTOTP({\n  issuer: \"GitHub\",\n  label: \"user@github.com\",\n  secret: \"GEZDGNBVGY3TQOJQGEZDGNBVGY\",\n  algorithm: \"sha256\", // Non-default algorithm\n  digits: 8, // 8-digit tokens\n  period: 60, // 60-second period\n});\n```\n\n### HOTP URI\n\n```typescript\nimport { generateHOTP } from \"@otplib/uri\";\n\nconst uri = generateHOTP({\n  issuer: \"MyApp\",\n  label: \"user123\",\n  secret: \"GEZDGNBVGY3TQOJQGEZDGNBVGY\",\n  counter: 0, // Starting counter\n});\n\nconsole.log(uri);\n// 'otpauth://hotp/MyApp:user123?secret=GEZDGNBVGY3TQOJQGEZDGNBVGY&issuer=MyApp&counter=0'\n```\n\n### Low-Level Generation\n\nFor more control, use the `generate` function directly:\n\n```typescript\nimport { generate } from \"@otplib/uri\";\n\nconst uri = generate({\n  type: \"totp\",\n  label: \"CustomApp:user@example.com\",\n  params: {\n    secret: \"GEZDGNBVGY3TQOJQGEZDGNBVGY\",\n    issuer: \"CustomApp\",\n    algorithm: \"sha1\",\n    digits: 6,\n    period: 30,\n  },\n});\n```\n\n## Google Authenticator Compatibility\n\n> [!WARNING]\n> Google Authenticator has specific requirements:\n>\n> - Only supports `sha1` algorithm\n> - Only supports `6` or `8` digits\n> - Only supports `30` second period for TOTP\n> - Issuer should be included in both label and parameter\n\n### Compatible URI\n\n```typescript\nimport { generateTOTP } from \"@otplib/uri\";\n\n// This URI is fully compatible with Google Authenticator\nconst uri = generateTOTP({\n  issuer: \"MyService\",\n  label: \"user@example.com\",\n  secret: \"GEZDGNBVGY3TQOJQGEZDGNBVGY\",\n  // algorithm: 'sha1',  // Default, compatible\n  // digits: 6,          // Default, compatible\n  // period: 30,         // Default, compatible\n});\n```\n\n## QR Code Integration\n\nGenerate a QR code for the URI using any QR library:\n\n```typescript\nimport { generateTOTP } from \"@otplib/uri\";\nimport QRCode from \"qrcode\"; // Example library\n\nconst uri = generateTOTP({\n  issuer: \"MyApp\",\n  label: \"user@example.com\",\n  secret: \"GEZDGNBVGY3TQOJQGEZDGNBVGY\",\n});\n\n// Generate QR code as data URL\nconst qrDataUrl = await QRCode.toDataURL(uri);\n\n// Or generate as SVG\nconst qrSvg = await QRCode.toString(uri, { type: \"svg\" });\n```\n\n## Documentation\n\nFull documentation available at [otplib.yeojz.dev](https://otplib.yeojz.dev):\n\n- [Getting Started Guide](https://otplib.yeojz.dev/guide/getting-started)\n- [API Reference](https://otplib.yeojz.dev/api/)\n\n## License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}