{"_id":"@flun/webauthn-browser","_rev":"28-82f404077e21efa5ff14e98427806e86","name":"@flun/webauthn-browser","dist-tags":{"latest":"2.1.9"},"versions":{"2.0.2":{"name":"@flun/webauthn-browser","version":"2.0.2","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"cn@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.2","maintainers":[{"name":"flun","email":"cn@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/flunGit/webauthn-browser/issues"},"dist":{"shasum":"a1733edbc19cc39a15eae52b49acea7356a0f15a","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.2.tgz","fileCount":27,"integrity":"sha512-Ib1egYyU4q/+UP0LhQlG3fvjZQrsZ383L3ha5sTjwwU1/HnwqKz5CThRAJ4Nv5507Hzyox6kblJ/pYk4UG8NVQ==","signatures":[{"sig":"MEQCIDfpNYPDuZRVDfW5M/TXYxOFlkiilkA/zjolT6zcS+zXAiA4Yk8eI8IdyOu0HxxGf1U+qHHaXhJ1GGL8cdo7kEszHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129941},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"c43fcdd291e5283cc8551dd29326cb116a898735","_npmUser":{"name":"flun","email":"cn@flun.top"},"decjsion":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","repository":{"url":"git+https://github.com/flunGit/webauthn-browser.git","type":"git"},"_npmVersion":"11.8.0","description":"![WebAuthn](https://img.shields.io/badge/WebAuthn-Browser_Simplified-blueviolet?style=for-the-badge&logo=WebAuthn) [![npm (scoped)](https://img.shields.io/npm/v/@flun/webauthn-browser?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@flun/weba","directories":{},"_nodeVersion":"25.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.2_1777527711755_0.15159972774181152","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@flun/webauthn-browser","version":"2.0.3","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"cn@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.3","maintainers":[{"name":"flun","email":"cn@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/flunGit/webauthn-browser/issues"},"dist":{"shasum":"c0b2481ba7cf644fe333f69d561a6902e154fafa","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.3.tgz","fileCount":27,"integrity":"sha512-xmjl1XFfrwod0FP8eoUX/u/fwMr0+xok9zUIcyxilZ5K/fTicfgVRHVh8JwviTVlHGxKhhdlb4WRqp5PDxZDhQ==","signatures":[{"sig":"MEUCIEeBgnHDTPfIg5TTUakrWCxtPuNeZ/jC26xHAWdfOQpPAiEA3fmziWgC+2/OeeM04r/RmqtpxUIG6JtO9I2DwuIU7lI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129905},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"9bdaca59c85145c40646965bcbaf089f77b74e90","_npmUser":{"name":"flun","email":"cn@flun.top"},"decjsion":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","repository":{"url":"git+https://github.com/flunGit/webauthn-browser.git","type":"git"},"_npmVersion":"11.8.0","description":"![WebAuthn](https://img.shields.io/badge/WebAuthn-Browser_Simplified-blueviolet?style=for-the-badge&logo=WebAuthn) [![npm (scoped)](https://img.shields.io/npm/v/@flun/webauthn-browser?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@flun/weba","directories":{},"_nodeVersion":"25.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.3_1777529029217_0.42681721051761645","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@flun/webauthn-browser","version":"2.0.4","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"cn@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.4","maintainers":[{"name":"flun","email":"cn@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/flunGit/webauthn-browser/issues"},"dist":{"shasum":"b6d6000d8007f03683aeeed9f90f8ee20b1eacae","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.4.tgz","fileCount":27,"integrity":"sha512-uBTojwbMhuA+WQU8zuVanxfE9Ss3ROSd+5Gx3pJJ5nLaZZEIhbBDhQrBi+SmJZZoQWgRX1TPPUAUFZgt289W6A==","signatures":[{"sig":"MEUCIQDROFhot0OraVUCIv9iSg4QhhThQOkKOgPIHwwAYAheUAIgans7t9hSCQq6MJcwVA1u0daSejLYhx8PcDn0LQgh+d8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129981},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"4df722b21bf071d3c3f57f317dfb1208005a0bc9","scripts":null,"_npmUser":{"name":"flun","email":"cn@flun.top"},"decjsion":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","repository":{"url":"git+https://github.com/flunGit/webauthn-browser.git","type":"git"},"_npmVersion":"11.8.0","description":"![WebAuthn](https://img.shields.io/badge/WebAuthn-Browser_Simplified-blueviolet?style=for-the-badge&logo=WebAuthn) [![npm (scoped)](https://img.shields.io/npm/v/@flun/webauthn-browser?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@flun/weba","directories":{},"_nodeVersion":"25.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.4_1777638455705_0.4748129214063257","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@flun/webauthn-browser","version":"2.0.5","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"cn@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.5","maintainers":[{"name":"flun","email":"cn@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/flunGit/webauthn-browser/issues"},"dist":{"shasum":"09a0e0736923af88429935a9236b620a0f5d01a0","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.5.tgz","fileCount":27,"integrity":"sha512-YEv0nLkb0R6ORGricX9SFGY2HYY9YD6OQ5GGSyz4jyJbLPIp/xSJmnTp5WjJH4Idz5oV7IoUP83qnHbjH9mYOQ==","signatures":[{"sig":"MEYCIQC5Zh2drRmU9r+GQJpjVVQN8T3dgTyEGy+p3kfDU5/hfAIhAJa+WR4aEx7yT75BnPB5IueHUmhiptSvo7n3h8ig47/x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130004},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"b4df2d353d223c0ab40bd193b0d35ebcc65a1ee0","_npmUser":{"name":"flun","email":"cn@flun.top"},"decjsion":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","repository":{"url":"git+https://github.com/flunGit/webauthn-browser.git","type":"git"},"_npmVersion":"11.8.0","description":"![WebAuthn](https://img.shields.io/badge/WebAuthn-Browser_Simplified-blueviolet?style=for-the-badge&logo=WebAuthn) [![npm (scoped)](https://img.shields.io/npm/v/@flun/webauthn-browser?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@flun/weba","directories":{},"_nodeVersion":"25.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.5_1777645277588_0.02154774185924868","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@flun/webauthn-browser","version":"2.0.6","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"cn@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.6","maintainers":[{"name":"flun","email":"cn@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/flunGit/webauthn-browser/issues"},"dist":{"shasum":"843cebb010ea762dad0a3c0b3c77d90a453295bb","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.6.tgz","fileCount":27,"integrity":"sha512-hD5lbi+Fz9YW3+nW7pkQJxDaX9/MqKk05Rq8es2JOpzPZxlT16Aox4poIV+r990e0kyAQfgWUgYsPrG/OlA6EA==","signatures":[{"sig":"MEYCIQDi2e8E43AKxWnhVASLMw0gkubXuTAfX7vqAbLbXgGciQIhAKN6vqGsYc+gdpZXQHcSbbFWpYYmC9rQMpq5mdDrXBFc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129954},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"220088638046f00cc36bd68d065ce180bd1a35b4","_npmUser":{"name":"flun","email":"cn@flun.top"},"decjsion":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","repository":{"url":"git+https://github.com/flunGit/webauthn-browser.git","type":"git"},"_npmVersion":"11.8.0","description":"![WebAuthn](https://img.shields.io/badge/WebAuthn-Browser_Simplified-blueviolet?style=for-the-badge&logo=WebAuthn) [![npm (scoped)](https://img.shields.io/npm/v/@flun/webauthn-browser?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@flun/weba","directories":{},"_nodeVersion":"25.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.6_1777707657526_0.17735398215148734","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"@flun/webauthn-browser","version":"2.0.7","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"cn@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.7","maintainers":[{"name":"flun","email":"cn@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/flunGit/webauthn-browser/issues"},"dist":{"shasum":"979f947d21da3f7ae4c2df9c1d22fe90115d2235","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.7.tgz","fileCount":27,"integrity":"sha512-951540K/gHiX7ECdd0HFrktYUqwt+kSh7+g5XOqZbvqzC6bBGTespT05b2WxJCaSgenE1a7sIEkDYAvHS5VjLg==","signatures":[{"sig":"MEYCIQC1rXpJa2gyYC4UrXZbGXxXw9G84pkdx6Ahw58SF8z8OAIhAN1EYi7lJmKwdp+U6tJAUjr5K+QKOd2em+CBkiHob7Mq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130008},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"4fb78639798b80bbfcb7acf888bdb15406dc0913","_npmUser":{"name":"flun","email":"cn@flun.top"},"repository":{"url":"git+https://github.com/flunGit/webauthn-browser.git","type":"git"},"_npmVersion":"11.12.1","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"25.9.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.7_1777867326298_0.30109229094874723","host":"s3://npm-registry-packages-npm-production"}},"2.0.8":{"name":"@flun/webauthn-browser","version":"2.0.8","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"cn@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.8","maintainers":[{"name":"flun","email":"cn@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"4bdc217c2a53569ade4ea2882407383fc25224e7","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.8.tgz","fileCount":27,"integrity":"sha512-PjGRYNV+wY6KW6tugNarOGxvtT2hBaUZakNLvpBLXTEFqvllpMdfXllxoUagqPxyl8yoPIHDqcu+Uq1irzvV3w==","signatures":[{"sig":"MEUCIQD9qq376aGLYPDJrIW4Fhve8XYtk3I2H9hCNEczn1HpuAIgYfxufrVnIoBFc+gbS8aKuNmSwh8ktVhVEVnGzDobKeI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130010},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"513661c91895480b2e37b42dac8bdd709ea11556","_npmUser":{"name":"flun","email":"cn@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.12.1","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"25.9.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.8_1778546757052_0.08492620643262994","host":"s3://npm-registry-packages-npm-production"}},"2.0.9":{"name":"@flun/webauthn-browser","version":"2.0.9","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"cn@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.9","maintainers":[{"name":"flun","email":"cn@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"40a6cc41d42c72fc60a566c75ca08e03130a9374","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.9.tgz","fileCount":27,"integrity":"sha512-PIUrjYMa/zOCdVnx+yed8oQHYBBIU6xu+axKJ0mMN7GhepApTl8Lt9E7hjqpmAgoQBQWeU260JWqnzsbtXKsEg==","signatures":[{"sig":"MEYCIQC06PGh6dnoJ4/OCZMwq7isLCHFPPGAFWOKxFTXafCmogIhAOGu03KdKDxR6fojJxpKbrBMIX36xLMzCflRMsmvw7Ya","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129955},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"04b5c56ea9975fd1b7c01c00513d09e2f4179e0d","_npmUser":{"name":"flun","email":"cn@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.12.1","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"25.9.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.9_1778747129584_0.15464248937579406","host":"s3://npm-registry-packages-npm-production"}},"2.0.10":{"name":"@flun/webauthn-browser","version":"2.0.10","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"cn@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.10","maintainers":[{"name":"flun","email":"cn@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"e48c181e7d254008ac54233acf181e3893de1e30","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.10.tgz","fileCount":27,"integrity":"sha512-terjQf4jk3XrAPGuJBJFK3kxIoiblIS+G2IbbfLO0OH6w7eQDqrxPJLu3gEh9eMqPo/cKAFbkK778W7rzZg/uQ==","signatures":[{"sig":"MEQCIGjNXtj+ORxGXJU5f6ajjLXEayKOVq46zS7S1jh42A10AiAFnTZ2YjjhzJvIyZ9AC+gZo/odPF77V1wnP/jACOd4FQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129957},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"505b065948b14053d0f4b1d18948641213d7cad3","_npmUser":{"name":"flun","email":"cn@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.12.1","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"25.9.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.10_1778758734455_0.7898044381353253","host":"s3://npm-registry-packages-npm-production"}},"2.0.11":{"name":"@flun/webauthn-browser","version":"2.0.11","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"cn@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.11","maintainers":[{"name":"flun","email":"cn@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"261be26d0de86c031d31563e2b418c9b81994665","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.11.tgz","fileCount":27,"integrity":"sha512-CzOv1z+PC/qhEyx1MigoXk6M+SM2wS7k7/db3dg5sUHFFddPYkSh0s0QOi2r+NWETPseNQHVdWDq3h5E0+f48w==","signatures":[{"sig":"MEUCIAxzxBDo3S9ejPSLMjdYtdV9bCMcFL4t75EJh5l4fF+WAiEAmMbzewrDhoupQwTp1X78lojpn1C/ic1j6sB8G/QboJw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129957},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"2adce67863f063736f28fa845cbe1dc9d0bee735","_npmUser":{"name":"flun","email":"cn@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.12.1","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"25.9.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.11_1778847995708_0.26626479210016285","host":"s3://npm-registry-packages-npm-production"}},"2.0.12":{"name":"@flun/webauthn-browser","version":"2.0.12","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"cn@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.12","maintainers":[{"name":"flun","email":"cn@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"f3750ae6e0227caccaf9deb37a28dc91d750ac62","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.12.tgz","fileCount":27,"integrity":"sha512-dF7LKxTH8bPvFA8E96Hd9VjZ38UTwGe9+pLjWuy76QITgq4VGQZ/3GMU4EjSdb/f7ZbQuioZVnzq3firwqkCpA==","signatures":[{"sig":"MEMCH2O+4mLfI80KllXcBqaRXknajXkGTUcXmyh+eVR7/J4CICatJkvEDS3HcVuLr1C2VAevfIonYPcnGZw9yTRFs+Ou","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129957},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"5c646f9c42ba1e6e8978ad746d0ea27626b25146","_npmUser":{"name":"flun","email":"cn@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.12.1","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"25.9.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.12_1780215912728_0.5743147319023212","host":"s3://npm-registry-packages-npm-production"}},"2.0.13":{"name":"@flun/webauthn-browser","version":"2.0.13","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"cn@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.13","maintainers":[{"name":"flun","email":"cn@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"4f3e79edec5a19ca7d6d9e971e23a2db28698f3d","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.13.tgz","fileCount":27,"integrity":"sha512-FZUd33xtuwwyCr4UJNxMt1cJJsJeRvBk+6aUl8m/+AP8HpJMpgHWkRYVaorgrf5GOPQocjgLPwdNCwr9qD77xg==","signatures":[{"sig":"MEUCIQC/Me7OVZBE/TqmlsrKroesBksekUF6GiPfGaU7V7yfGQIga6FpS+Ijt4NWTCaqSO3cbnbGLMS4PXEFI6eMwMbIrj4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129957},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"659358a5ad738870e3471a9fc4434260d8cd9d27","_npmUser":{"name":"flun","email":"cn@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.13.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.2.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.13_1781255534784_0.27141727407276606","host":"s3://npm-registry-packages-npm-production"}},"2.0.14":{"name":"@flun/webauthn-browser","version":"2.0.14","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"cn@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.14","maintainers":[{"name":"flun","email":"cn@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"97ebe5dd24a4e1e60eb6ae8f53581b71feb89654","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.14.tgz","fileCount":27,"integrity":"sha512-eu7E93kRNXqRs6A0ZkH/tXNZvqd5wCFQs9Y9CWlMLNKvZ5/d3l4pYp0ReUpQ4ViL/8P5N1CE6qHUujMgfN+9JQ==","signatures":[{"sig":"MEUCIAjCdRcZPQ56Mciwk4IghySIdtz120kFTI71l9s4KLVCAiEAuEPcu2Pc/+ktquCSymuBUI1LK+Oka8v6G3DtciiMbeY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129957},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"b926f1628ccd90ffab9bbdc49eca7d879f214aa7","_npmUser":{"name":"flun","email":"cn@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.13.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.2.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.14_1781336383134_0.36059896864299423","host":"s3://npm-registry-packages-npm-production"}},"2.0.15":{"name":"@flun/webauthn-browser","version":"2.0.15","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"open@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.15","maintainers":[{"name":"flun","email":"open@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"583e62586597356bdf3403316ecbcab780c3563b","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.15.tgz","fileCount":27,"integrity":"sha512-v6UgUuL+YZAgmwQVz4XKk3xOBQu+jXEwNV+nRBDhNhjpjTMmir44gGlJ1/kjo3he9WlDkOo7qXscpcnFSmVH1w==","signatures":[{"sig":"MEQCIGP4IUF/Gha5O5C1/lDoxoYXwXxqTeNATKcXlCl5tZiUAiA/EvXm+QR24tgf4dg/gNlg7zniY+LUOMMi79MLMOCSrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129978},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"4b1712d74d7aadfb121e65ba28076aee5210a8f2","_npmUser":{"name":"flun","email":"open@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.13.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.2.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.15_1781612270121_0.40118858303157445","host":"s3://npm-registry-packages-npm-production"}},"2.0.16":{"name":"@flun/webauthn-browser","version":"2.0.16","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"open@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.16","maintainers":[{"name":"flun","email":"open@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"dd6160910b84b0a5091db0147d6b006a3e10d72b","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.16.tgz","fileCount":27,"integrity":"sha512-wUESeCO25I3YCiRB5ew7EaeB+iBvS8vkbrxnYeuR/67OO0YNpR8o8s1+8pr/lWLv8GAw4Y7fb7Ajjqmg5nPy/A==","signatures":[{"sig":"MEUCIQCLHnfh5VDuhCc/lkBMg1h8lX/+RlXxjD3DgvUKjWR83QIgPEEw9GBqmP3CmBItAxFpa5/rXyjbe2iZ+H/G31gZcxY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131071},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"a40c8fe7ba943b47aba48d3d65b17093858b50ac","_npmUser":{"name":"flun","email":"open@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.17.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.4.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.16_1783324240786_0.8500080473618037","host":"s3://npm-registry-packages-npm-production"}},"2.0.17":{"name":"@flun/webauthn-browser","version":"2.0.17","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"open@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.17","maintainers":[{"name":"flun","email":"open@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"c8e8b474bca44d5775268a11ded8107d0ddb55cc","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.17.tgz","fileCount":27,"integrity":"sha512-4bys2uvL+cPwsHCbyaPBGgs+g6C2KYLul1tL+7MvXS1r4efdzgFsrrC9ty/w5tgebQOYzZQcbL1FuxgEnCOxLw==","signatures":[{"sig":"MEUCIQCTnxyJ3bsyokgwOM12erJLf6kKILxVnfjol/fEAdoGMQIgfWNwIBZh+Vkf51t4a6RVj84p/rcP95zymI+znnY6E5g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131271},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"329a7c9ada0f0dc0ba7efb5cd5b0ae49edeebac6","_npmUser":{"name":"flun","email":"open@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.17.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.4.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.17_1783324668198_0.1268720704370958","host":"s3://npm-registry-packages-npm-production"}},"2.0.18":{"name":"@flun/webauthn-browser","version":"2.0.18","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"open@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.18","maintainers":[{"name":"flun","email":"open@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"c45b40df86b2ed7ea1f568652fb064a8ad58c65c","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.18.tgz","fileCount":27,"integrity":"sha512-XgrVgtTV5Q1+jIp7MjqdG3Zkxi1onGXSINyxRV/3sljMto9CfLxu3Pj3H/idCDo7etPHf5OqkTfHli0A0u89cg==","signatures":[{"sig":"MEUCIF52rr28rDx1x2tgZiDdR7Mnv9/J8V2oQIGyuqmgyQp0AiEA75RdkKjrDcdxWrnoMcJnId1y71iYS92GOzUk8Fb6Yhc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131101},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"f00d304473c419efb92a2a0a6f7abaf839f59be6","_npmUser":{"name":"flun","email":"open@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.17.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.4.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.18_1783325917207_0.23395214973141432","host":"s3://npm-registry-packages-npm-production"}},"2.0.19":{"name":"@flun/webauthn-browser","version":"2.0.19","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"open@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.0.19","maintainers":[{"name":"flun","email":"open@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"f86cddc32095bc20c51cd3a0576bc290bdacfda3","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.0.19.tgz","fileCount":27,"integrity":"sha512-Y2YpUpQbI2efPhB1OvYGcj7Ki93bpert2gkt9xSYy5y5O0e8AZGv2CapOrGvWcU9GBXLj6QKVCW1g2NqHRwG4w==","signatures":[{"sig":"MEUCIC3oi6qGJB1aVWIGGIYGySDrWpmH5OFq7Ic9r3kU8TqpAiEAnc56HMVB3ZwnoJtGRIMzJlj7vDkdjaiIOCtztIe8sqU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131178},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"a23927e1e81a1e5962301333358aad804107f2a4","_npmUser":{"name":"flun","email":"open@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.17.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.0.19_1784114744877_0.7642179475660904","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@flun/webauthn-browser","version":"2.1.0","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"open@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.1.0","maintainers":[{"name":"flun","email":"open@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"de8d52212ca7ff20c76473d0e7da8044748c5c6f","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.1.0.tgz","fileCount":27,"integrity":"sha512-DFT3hkWAXBAadUW54ypmySBzvhkFvHZqpTsDgZ62XrOOR+9yBEi9S7IYTgDAJxFTZ/TPN4pMozn5pgir31fWkQ==","signatures":[{"sig":"MEQCIAlI4r8KW4QSanXjtK+ct+ogL8OomYGTjmVeejszDZItAiBpkwjr9eh2bM6WZHikQtwmn51XzpU0YyUnJOpL4BY6rw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111694},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"cf4ac1f526a186285a6d29d45091eb9b1c3ed441","_npmUser":{"name":"flun","email":"open@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.17.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.1.0_1784384719406_0.5563999197514866","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@flun/webauthn-browser","version":"2.1.1","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"open@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.1.1","maintainers":[{"name":"flun","email":"open@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"6db007dd304dd5377b43a71f99e0159891170eb9","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.1.1.tgz","fileCount":27,"integrity":"sha512-OEeOtmH7iEgVJVhRCG3L6g/cSuz/tESgog2a5YPmeZOkp2hfnv4VCzdxsRkUVCHkPttq2Oo+WfmIct18CXF+sQ==","signatures":[{"sig":"MEQCIGp5S6+Acv8GSwOhwpvziHgPClEr8coPw9o/GODh1vZVAiB6YEsavpJ7nuJjRIJUnbXj7PS1Ubq5/T28y7JK7grvHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111688},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"4938768db35383f615826527c2a3e8d64f7108d8","_npmUser":{"name":"flun","email":"open@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.17.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.1.1_1784532488190_0.7357161744499465","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@flun/webauthn-browser","version":"2.1.2","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"open@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.1.2","maintainers":[{"name":"flun","email":"open@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"a3321f705ad4270b698150ba52d36ea49630dfcd","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.1.2.tgz","fileCount":27,"integrity":"sha512-JKBcV76wPacDV5p7mHAv0xBwNAnXFeIF5JXj7ZPpc6jqEV/tanFBz3+WN+hR3EinUgAWMUZ8vnCj/uvfACfAtA==","signatures":[{"sig":"MEUCIQCyMOvJ7Toj3JCcGx0i0uJ1bae0DvVxKSE3EzrG9gLdIwIgcaCUhLZ8GA7uoSgB6tgZ1SQ3ieftgIRGVlYsI+N4Kvk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111678},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"217d5853027007ae5534d5cca2fe56e0261f0de6","_npmUser":{"name":"flun","email":"open@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.17.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.1.2_1784532686463_0.8995425280679139","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"@flun/webauthn-browser","version":"2.1.3","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"open@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.1.3","maintainers":[{"name":"flun","email":"open@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"ed2b4f92e21170feb00234f8153d8a093a80879a","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.1.3.tgz","fileCount":27,"integrity":"sha512-Lj/W9AwNIgIDsi9iYg7MI8XvkaXkOJsMx13j0FNEWVd7IE4m99G/KM3FCkjim2+Xazpi+mh4QjoKWzUL+sTr0w==","signatures":[{"sig":"MEYCIQCR6psIa2ayT1L8nKwTN6US9KTRA7lzMaQZbbqtUiWeYAIhAP51dG3W07Ren2c0e68kFj5fyZWErmIbNnvWoj8c0sDg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111629},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"fb2ca093719193acc0855f5d7c1db446b2c89eee","_npmUser":{"name":"flun","email":"open@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.17.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.1.3_1784595159775_0.6826364052150062","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"@flun/webauthn-browser","version":"2.1.4","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"open@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.1.4","maintainers":[{"name":"flun","email":"open@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"c76165831cd916f1d4ed944cb8d91949ccebf378","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.1.4.tgz","fileCount":27,"integrity":"sha512-3OAgXZOw8heD6xqscmV3tJTYLTbgJJfvUDQM9ilaenLoMYXDiJ51/v+MuzPD/vby6vtGJRc6hWjr7+9ivRoZ5Q==","signatures":[{"sig":"MEYCIQD/wvg0SZh4ulONuajMjrYBtpcilXsjoYvcTqFBPRWcSgIhAOI5u7R/Ict664H2cdyHUNnbXUnr+0d1qTBc/0H//tuM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111647},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"d56771956b42f6e964b583c2689aba82474275d0","_npmUser":{"name":"flun","email":"open@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.17.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.1.4_1784728511566_0.06073394618161432","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"@flun/webauthn-browser","version":"2.1.5","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"open@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.1.5","maintainers":[{"name":"flun","email":"open@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"75d25a4332f74abe02ea454b59f81b72f3d1b8cd","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.1.5.tgz","fileCount":27,"integrity":"sha512-OEQt3Y+KxsXiwgekbBXvjACTE4ew7ZzrEADWYx7omWmgGsZ6vwWZD7S8skIczjC+cxJ6THsyV3TlOBLDXOQPNg==","signatures":[{"sig":"MEQCICB3TbxgFvehLQZMu8BeXEn0JVJU6YK0nBXRG1upV5BnAiAa9i8RCV96H1Now+Ji0vC/rfGDbquHIpMY20715+pd9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111642},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"84db639c0d37073dd6d84ce79b6da9e586a76fd3","_npmUser":{"name":"flun","email":"open@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.17.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.1.5_1784949095693_0.0961169168954552","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"@flun/webauthn-browser","version":"2.1.6","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"open@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.1.6","maintainers":[{"name":"flun","email":"open@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"f7f2d2d8b76da15ec0bb1723c31a0a76ab551b49","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.1.6.tgz","fileCount":27,"integrity":"sha512-DdogS49xUDeVlhdXUiHY8c23gnxSC8C6JAnZXttud5axwL5djmHtR52bYkTfzcl+XRmAhv5UehbfwyAyErgsHA==","signatures":[{"sig":"MEYCIQDVBC3M5TEiXOtX1FuGfl3qnVM5e9VfyFnc/nzncDanfwIhAPy8LACArX0ngyD7fnaxAHwvzEoGYGYa96y43CMy7BgS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111581},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"5e1d8ddbaf455a73433b2b3a63b62f6ab7b68ada","_npmUser":{"name":"flun","email":"open@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.17.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.1.6_1784959463880_0.014806701250702714","host":"s3://npm-registry-packages-npm-production"}},"2.1.7":{"name":"@flun/webauthn-browser","version":"2.1.7","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"open@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.1.7","maintainers":[{"name":"flun","email":"open@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"31c4eaca716df7ce7e0ceeb4be77ee0d4db97257","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.1.7.tgz","fileCount":27,"integrity":"sha512-/EqnLwaBRVJz2bEGz+sbJZRPaMbV1YYECL+IcXc1wxJIaVpaKmnkjVV0IK+2+jUtlF2XXaWPA68M0rLRXxaOwg==","signatures":[{"sig":"MEUCIAKGRbLtX1itXfTmS7oLCjbb5spWrY5BkjgW03Ea11Z7AiEA0jv6g6JqIEQ4ZgEk/J1sPxwwmmoVXe9Ece/g0EpDc8I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111516},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"a3d57cedb394df2025b98e15a57076b9d0d09741","_npmUser":{"name":"flun","email":"open@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.17.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.1.7_1785045703165_0.2963613734240942","host":"s3://npm-registry-packages-npm-production"}},"2.1.8":{"name":"@flun/webauthn-browser","version":"2.1.8","keywords":["typescript","webauthn","passkeys","fido","umd"],"author":{"name":"flun","email":"open@flun.top"},"license":"ISC","_id":"@flun/webauthn-browser@2.1.8","maintainers":[{"name":"flun","email":"open@flun.top"}],"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"692f4dc7a561c221ceaf0bded851f9efbfb4ec33","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.1.8.tgz","fileCount":27,"integrity":"sha512-EdUBOSin3SwcpQGJc3LOZY3/ngX4jbH2yED5sSf5mb02MyUapSDdkii/5BjnzLGGgTgLdpRdp0PvNlus0tvj8w==","signatures":[{"sig":"MEQCIGS6PkKm72sgy08DThSt9TIOu7gPe9FgIRcrDZOgf8FNAiAOyKxA6PwM/XIVoo8TuIvesXOwPYLjV25TYRN6+wxc2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111516},"main":"./index.js","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"235730a2e9dcb3163e0b6f2332e8d154c72781e3","_npmUser":{"name":"flun","email":"open@flun.top"},"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.17.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"_nodeVersion":"26.5.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/webauthn-browser_2.1.8_1785052928051_0.5194627511740995","host":"s3://npm-registry-packages-npm-production"}},"2.1.9":{"_id":"@flun/webauthn-browser@2.1.9","bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"dist":{"shasum":"75ef312aae8d033c040a505bf8320cc10ef5d310","tarball":"https://registry.npmjs.org/@flun/webauthn-browser/-/webauthn-browser-2.1.9.tgz","fileCount":27,"integrity":"sha512-BA9rxNZRO0LTGVN6vu1KgEBmWKh4kgONHOtsLdOgRSjrXDLPeaM6oWV8JsHnQoeKxP7PE+8848rbAKMmhPKYnQ==","signatures":[{"sig":"MEYCIQCxHjbSqFeuKTLdVuiKzGbEcLUBkxnGQQsn0OIWICrB3AIhAIUjVnSt7e9RCps5qWfOnUWvTlVwioT7RQX+CbJaDFOI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDW4rY8BCQlEO05lY9+o+JWtOmPXHBVjPgXLVZ4H7JfMQIgA1eWclFfrty97xftbKD+cBztzr8tV0EOzN7vKHehyyU="}],"unpackedSize":111523},"main":"./index.js","name":"@flun/webauthn-browser","type":"module","types":"./index.d.ts","unpkg":"dist/index.js","author":{"name":"flun","email":"open@flun.top"},"module":"./index.js","engines":{"npm":">=10.0.0","node":">=22.12.0"},"exports":{".":"./index.js"},"gitHead":"5f1ce52aea8ed4809e0632b81afe8ac8580ae9b9","license":"ISC","version":"2.1.9","_npmUser":{"name":"flun","email":"open@flun.top"},"homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","keywords":["typescript","webauthn","passkeys","fido","umd"],"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"_npmVersion":"11.19.0","description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","directories":{},"maintainers":[{"name":"flun","email":"open@flun.top"}],"_nodeVersion":"26.10.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.6.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/webauthn-browser_2.1.9_1790683683693_0.5002592583110508"}}},"time":{"created":"2026-04-30T05:41:51.641Z","modified":"2026-09-29T12:08:04.055Z","2.0.2":"2026-04-30T05:41:51.882Z","2.0.3":"2026-04-30T06:03:49.354Z","2.0.4":"2026-05-01T12:27:35.915Z","2.0.5":"2026-05-01T14:21:17.728Z","2.0.6":"2026-05-02T07:40:57.677Z","2.0.7":"2026-05-04T04:02:06.432Z","2.0.8":"2026-05-12T00:45:57.200Z","2.0.9":"2026-05-14T08:25:29.833Z","2.0.10":"2026-05-14T11:38:54.591Z","2.0.11":"2026-05-15T12:26:35.947Z","2.0.12":"2026-05-31T08:25:12.867Z","2.0.13":"2026-06-12T09:12:14.941Z","2.0.14":"2026-06-13T07:39:43.268Z","2.0.15":"2026-06-16T12:17:50.252Z","2.0.16":"2026-07-06T07:50:40.912Z","2.0.17":"2026-07-06T07:57:48.340Z","2.0.18":"2026-07-06T08:18:37.336Z","2.0.19":"2026-07-15T11:25:45.022Z","2.1.0":"2026-07-18T14:25:19.558Z","2.1.1":"2026-07-20T07:28:08.320Z","2.1.2":"2026-07-20T07:31:26.589Z","2.1.3":"2026-07-21T00:52:39.898Z","2.1.4":"2026-07-22T13:55:11.712Z","2.1.5":"2026-07-25T03:11:35.844Z","2.1.6":"2026-07-25T06:04:24.008Z","2.1.7":"2026-07-26T06:01:43.305Z","2.1.8":"2026-07-26T08:02:08.185Z","2.1.9":"2026-09-29T12:08:03.785Z"},"bugs":{"url":"https://github.com/OpenFlun/webauthn-browser/issues"},"author":{"name":"flun","email":"open@flun.top"},"license":"ISC","homepage":"https://www.npmjs.com/package/@flun/webauthn-browser#readme","keywords":["typescript","webauthn","passkeys","fido","umd"],"repository":{"url":"git+https://github.com/OpenFlun/webauthn-browser.git","type":"git"},"description":"WebAuthn 前端库,提供简单易用的接口来处理 WebAuthn 认证流程,支持 Passkeys 和 FIDO2 标准;","maintainers":[{"name":"flun","email":"open@flun.top"}],"readme":"# @flun/webauthn-browser <!-- omit in toc -->\n\n![WebAuthn](https://img.shields.io/badge/WebAuthn-Browser_Simplified-blueviolet?style=for-the-badge&logo=WebAuthn)\n[![npm (scoped)](https://img.shields.io/npm/v/@flun/webauthn-browser?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@flun/webauthn-browser)\n\n**@flun/webauthn-browser** 是一个专为浏览器环境设计的 WebAuthn（含 Passkeys）前端工具库,基于 [@simplewebauthn/browser](https://simplewebauthn.dev/) 核心逻辑重构并增强,它封装了 `navigator.credentials` API 的复杂细节,提供简洁的 Promise 风格接口,并内置了丰富的错误处理与 Base64URL 编解码工具,并且新增在Windows下优先调用底层Windows hello 注册/认证(避免环境干扰与安全);\n\n本包以 **ESM** 编写,同时提供 **UMD** 打包产物,可通过 npm 模块方式或 `<script>` 全局方式引入,兼容现代浏览器及部分旧版环境;\n\n## 目录\n\n- [目录](#目录)\n- [配置](#配置)\n  - [允许安装脚本执行](#允许安装脚本执行)\n- [安装](#安装)\n  - [NPM 模块方式](#npm-模块方式)\n  - [UMD 全局方式](#umd-全局方式)\n    - [ES2021（推荐用于现代浏览器）](#es2021推荐用于现代浏览器)\n- [主要功能](#主要功能)\n- [Windows下优先调用底层Windows hello 注册/认证(避免环境干扰);](#windows下优先调用底层windows-hello-注册认证避免环境干扰)\n- [快速开始](#快速开始)\n  - [模块方式使用示例](#模块方式使用示例)\n  - [全局方式使用示例](#全局方式使用示例)\n- [API 参考](#api-参考)\n  - [核心认证方法](#核心认证方法)\n    - [startRegistration(options)](#startregistrationoptions)\n    - [startAuthentication(options)](#startauthenticationoptions)\n  - [环境检测方法](#环境检测方法)\n    - [browserSupportsWebAuthn()](#browsersupportswebauthn)\n    - [platformAuthenticatorIsAvailable()](#platformauthenticatorisavailable)\n    - [browserSupportsWebAuthnAutofill()](#browsersupportswebauthnautofill)\n  - [编解码工具](#编解码工具)\n  - [错误类与中止服务](#错误类与中止服务)\n    - [WebAuthnError](#webauthnerror)\n    - [WebAuthnAbortService](#webauthnabortservice)\n  - [内部调试工具](#内部调试工具)\n- [错误处理](#错误处理)\n- [前后端集成示例](#前后端集成示例)\n  - [配合 @flun/webauthn-server](#配合-flunwebauthn-server)\n- [许可证](#许可证)\n- [相关链接](#相关链接)\n\n---\n## 配置\n\n### 允许安装脚本执行\n\n本包在安装时可能触发某些依赖包的自动脚本（如 `postinstall` 等）;如果你的 npm 全局配置或项目配置禁止了脚本执行（例如设置了 `ignore-scripts=true`）,可能会导致安装不完整或运行时异常;\n\n推荐在项目根目录的 `package.json` 中添加 `allowScripts` 字段,显式放行本包及其依赖的脚本:\n\n```json\n{\n  \"allowScripts\": {\n    \"@flun/webauthn-browser\": true\n    // 如果依赖的其它包（如 bcrypt、electron-winstaller 等）也有脚本,请按需添加,格式相同\n  }\n}\n```\n\n> 如果你信任所有安装包,也可以直接在项目 `.npmrc` 中设置 `allow-scripts = false`（表示关闭脚本拦截,所有脚本均允许执行）,或删除`ignore-scripts` 字段;\n\n---\n\n## 安装\n\n### NPM 模块方式\n\n适用于使用打包工具（Webpack、Vite、Rollup 等）或 Node.js ≥ 22.12.0 的环境;\n\n```sh\nnpm i @flun/webauthn-browser\n```\n\n然后在代码中按需导入：\n\n```js\n// ES Module\nimport { startRegistration, startAuthentication } from '@flun/webauthn-browser';\n\n// CommonJS (Node.js ≥ 22.12.0)\nconst { startRegistration, startAuthentication } = require('@flun/webauthn-browser');\n```\n\n### UMD 全局方式\n\n本包通过 **unpkg** 提供 UMD 版本,引入后所有方法将挂载在全局对象 **`flunWebAuthnBrowser`** 上;\n\n#### ES2021（推荐用于现代浏览器）\n\n```html\n<script src=\"https://unpkg.com/@flun/webauthn-browser/dist/index.js\"></script>\n```\n*** 注意 ES5（不再支持）***\n\n---\n## 主要功能\n\n- ✅ **简化的 WebAuthn 调用**\n  `startRegistration()` 和 `startAuthentication()` 自动处理 Base64URL ↔ ArrayBuffer 转换,支持标准 JSON 格式的入参;\n\n- ✅ **内置错误标准化**\n  将浏览器原生错误转换为包含 `code` 和 `message` 的 `WebAuthnError` 对象,便于业务层处理;\n\n- ✅ **条件媒介支持（Conditional UI / 自动填充）**\n  支持 `useBrowserAutofill` 实现无感登录体验（需页面存在合适的 `<input>` 元素）;\n\n- ✅ **完整的环境检测**\n  提供 `browserSupportsWebAuthn()`、`platformAuthenticatorIsAvailable()` 等方法,精确判断设备能力;\n\n- ✅ **编解码工具集**\n  导出 `bufferToBase64URLString` / `base64URLStringToBuffer` 等工具函数,方便前后端数据交互;\n\n- ✅ **可中止的认证流程**\n  通过 `WebAuthnAbortService` 在必要时取消进行中的认证/注册操作;\n\n- ✅ **Windows hello 底层调用**\n   Windows下优先调用底层Windows hello 注册/认证(避免环境干扰与安全);\n---\n\n## 快速开始\n\n以下示例演示了最基本的调用方式,默认与后端使用 JSON 交互;\n\n### 模块方式使用示例\n\n```js\nimport { startRegistration, startAuthentication } from '@flun/webauthn-browser';\n\n// 注册\nasync function register(username) {\n  const regOptions = await fetch('/api/register/begin', {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({ username })\n  }).then(r => r.json());\n\n  const regResponse = await startRegistration({ optionsJSON: regOptions });\n\n  await fetch('/api/register/complete', {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({ username, response: regResponse })\n  });\n}\n\n// 登录\nasync function login(username) {\n  const authOptions = await fetch('/api/login/begin', {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({ username })\n  }).then(r => r.json());\n\n  const authResponse = await startAuthentication({ optionsJSON: authOptions }),\n    verifyRes = await fetch('/api/login/complete', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify({ username, response: authResponse })\n    });\n  return verifyRes.json();\n}\n```\n\n### 全局方式使用示例\n\n在 HTML 页面中引入 UMD 脚本后,即可通过全局变量 `flunWebAuthnBrowser` 调用所有方法;\n\n```html\n<script src=\"https://unpkg.com/@flun/webauthn-browser/dist/index.js\"></script>\n<script>\n  (async () => {\n    // 1. 首先检测浏览器是否支持 WebAuthn\n    if (!flunWebAuthnBrowser.browserSupportsWebAuthn()) {\n      return alert('您的浏览器不支持 WebAuthn 或 Passkey,请升级或使用其他方式登录;');\n    }\n\n    // ---------- 注册示例 ----------\n    async function handleRegister(username) {\n      const optionsRes = await fetch('/api/register/begin', {\n        method: 'POST',\n        headers: { 'Content-Type': 'application/json' },\n        body: JSON.stringify({ username })\n      }), options = await optionsRes.json(),\n       response = await flunWebAuthnBrowser.startRegistration({\n        optionsJSON: options\n      }),\n       verifyRes = await fetch('/api/register/complete', {\n        method: 'POST',\n        headers: { 'Content-Type': 'application/json' },\n        body: JSON.stringify({ username, response })\n      }), result = await verifyRes.json();\n\n      console.log('注册结果:', result);\n    }\n\n    // ---------- 登录（认证）示例 ----------\n    async function handleLogin(username) {\n      const optionsRes = await fetch('/api/login/begin', {\n        method: 'POST',\n        headers: { 'Content-Type': 'application/json' },\n        body: JSON.stringify({ username })\n      }), options = await optionsRes.json(),\n       response = await flunWebAuthnBrowser.startAuthentication({\n        optionsJSON: options\n      });\n\n      const verifyRes = await fetch('/api/login/complete', {\n        method: 'POST',\n        headers: { 'Content-Type': 'application/json' },\n        body: JSON.stringify({ username, response })\n      });\n      const result = await verifyRes.json();\n      if (result.verified) {\n        console.log('登录成功');\n        window.location.href = '/dashboard';\n      } else {\n        alert('登录失败,请重试');\n      }\n    }\n\n    // ---------- 带自动填充（Conditional UI）的登录示例 ----------\n    // 注意：使用自动填充时,页面必须包含类似如下的 input 元素：\n    // <input type=\"text\" name=\"username\" autocomplete=\"username webauthn\" />\n    async function handleAutofillLogin() {\n      if (!(await flunWebAuthnBrowser.browserSupportsWebAuthnAutofill())) {\n        return console.warn('当前浏览器不支持 WebAuthn 自动填充');\n      }\n\n      const optionsRes = await fetch('/api/login/begin', {\n        method: 'POST',\n        headers: { 'Content-Type': 'application/json' },\n        body: JSON.stringify({ useAutofill: true })\n      }), options = await optionsRes.json();\n\n      try {\n        const response = await flunWebAuthnBrowser.startAuthentication({\n          optionsJSON: options,\n          useBrowserAutofill: true\n        }),\n         verifyRes = await fetch('/api/login/complete', {\n          method: 'POST',\n          headers: { 'Content-Type': 'application/json' },\n          body: JSON.stringify({ response })\n        }), result = await verifyRes.json();\n\n        if (result.verified) {\n          console.log('自动填充登录成功');\n          window.location.href = '/dashboard';\n        }\n      } catch (error) {\n        console.warn('自动填充登录未完成:', error.message);\n      }\n    }\n\n    // 绑定按钮事件示例\n    document.getElementById('register-btn')?.addEventListener('click', () => {\n      const username = document.getElementById('username-input').value;\n      handleRegister(username);\n    });\n\n    document.getElementById('login-btn')?.addEventListener('click', () => {\n      const username = document.getElementById('username-input').value;\n      handleLogin(username);\n    });\n\n    // 自动填充登录通常在页面加载时触发\n    window.addEventListener('load', () => {\n      handleAutofillLogin();\n    });\n  })();\n</script>\n```\n\n---\n\n## API 参考\n\n### 核心认证方法\n\n#### startRegistration(options)\n\n发起 WebAuthn 注册流程,创建新凭证;\n**参数**\n| 字段名            | 类型      | 默认值  | 描述                                                           |\n| ----------------- | --------- | ------- | -------------------------------------------------------------- |\n| `optionsJSON`     | `object`  | 必填    | 由服务端调用 `generateRegistrationOptions()` 生成的 JSON 对象  |\n| `useAutoRegister` | `boolean` | `false` | 是否启用条件媒介自动注册（实验性,需浏览器支持 Conditional UI） |\n\n**返回值** `Promise<RegistrationResponseJSON>`\n\n返回一个经过标准化处理的 JSON 对象,可直接发送给后端 `verifyRegistrationResponse()` 验证;响应格式如下：\n\n```ts\ninterface RegistrationResponseJSON {\n  id: string;\n  rawId: string;\n  response: {\n    attestationObject: string;\n    clientDataJSON: string;\n    transports?: AuthenticatorTransport[];\n    publicKeyAlgorithm?: number;\n    publicKey?: string;\n    authenticatorData?: string;\n  };\n  type: string;\n  clientExtensionResults: AuthenticationExtensionsClientOutputs;\n  authenticatorAttachment?: string;\n}\n```\n\n**示例**\n\n```js\nconst response = await startRegistration({ optionsJSON });\n// 发送 response 至服务端\n```\n\n#### startAuthentication(options)\n\n发起 WebAuthn 认证（登录）流程;\n\n**参数**\n\n| 字段名                       | 类型      | 默认值  | 描述                                                                           |\n| ---------------------------- | --------- | ------- | ------------------------------------------------------------------------------ |\n| `optionsJSON`                | `object`  | 必填    | 由服务端调用 `generateAuthenticationOptions()` 生成的 JSON 对象                |\n| `useBrowserAutofill`         | `boolean` | `false` | 是否启用条件媒介（自动填充）,实现无感登录                                      |\n| `verifyBrowserAutofillInput` | `boolean` | `true`  | 启用自动填充时是否检查页面是否存在 `autocomplete=\"... webauthn\"` 的 input 元素 |\n\n**返回值** `Promise<AuthenticationResponseJSON>`\n\n```ts\ninterface AuthenticationResponseJSON {\n  id: string;\n  rawId: string;\n  response: {\n    authenticatorData: string;\n    clientDataJSON: string;\n    signature: string;\n    userHandle?: string;\n  };\n  type: string;\n  clientExtensionResults: AuthenticationExtensionsClientOutputs;\n  authenticatorAttachment?: string;\n}\n```\n\n**示例**\n\n```js\n// 普通登录\nconst response = await startAuthentication({ optionsJSON });\n\n// 自动填充登录（需页面存在 <input autocomplete=\"webauthn\">）\nconst response = await startAuthentication({\n  optionsJSON,\n  useBrowserAutofill: true\n});\n```\n\n### 环境检测方法\n\n#### browserSupportsWebAuthn()\n\n检查当前浏览器是否支持 WebAuthn API;\n\n**返回值** `boolean`\n\n```js\nif (flunWebAuthnBrowser.browserSupportsWebAuthn()) {\n  // 可以使用 WebAuthn\n}\n```\n\n#### platformAuthenticatorIsAvailable()\n\n检查平台认证器（如 Touch ID、Face ID、Windows Hello）是否可用;\n\n**返回值** `Promise<boolean>`\n\n```js\nconst available = await flunWebAuthnBrowser.platformAuthenticatorIsAvailable();\n```\n\n#### browserSupportsWebAuthnAutofill()\n\n检查当前浏览器是否支持 WebAuthn 条件媒介（自动填充）;\n\n**返回值** `Promise<boolean>`\n\n```js\nif (await flunWebAuthnBrowser.browserSupportsWebAuthnAutofill()) {\n  // 可以使用 useBrowserAutofill 选项\n}\n```\n\n### 编解码工具\n\n这些工具函数直接挂载在导出对象上,便于前后端统一数据格式;\n\n| 函数                                           | 描述                                   |\n| ---------------------------------------------- | -------------------------------------- |\n| `bufferToBase64URLString(buffer: ArrayBuffer)` | 将 ArrayBuffer 转换为 Base64URL 字符串 |\n| `base64URLStringToBuffer(base64url: string)`   | 将 Base64URL 字符串转换为 ArrayBuffer  |\n\n**示例**\n\n```js\nconst { bufferToBase64URLString, base64URLStringToBuffer } = flunWebAuthnBrowser,\n challengeBuffer = base64URLStringToBuffer(optionsJSON.challenge),\n encoded = bufferToBase64URLString(challengeBuffer);\n```\n\n### 错误类与中止服务\n\n#### WebAuthnError\n\n自定义错误类,继承自 `Error`;当认证/注册过程中发生可识别的错误时抛出;\n\n**属性**\n\n| 属性    | 类型     | 描述                         |\n| ------- | -------- | ---------------------------- |\n| `name`  | `string` | 错误名称（通常为原始错误名） |\n| `code`  | `string` | 标准化的错误码（见下方表格） |\n| `cause` | `Error`  | 浏览器抛出的原始错误对象     |\n\n**常见错误码**\n\n| 错误码                                                        | 描述                                             |\n| ------------------------------------------------------------- | ------------------------------------------------ |\n| `ERROR_CEREMONY_ABORTED`                                      | 认证/注册流程被中止（如调用 `cancelCeremony()`） |\n| `ERROR_INVALID_DOMAIN`                                        | 当前域名无效                                     |\n| `ERROR_INVALID_RP_ID`                                         | RP ID 与当前域名不匹配                           |\n| `ERROR_AUTHENTICATOR_GENERAL_ERROR`                           | 认证器通用错误                                   |\n| `ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED`                   | 认证器已被注册（注册时）                         |\n| `ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT` | 需要可发现凭证但认证器不支持                     |\n| `ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`                        | 透传错误,需查看 `cause` 属性                     |\n\n#### WebAuthnAbortService\n\n用于手动取消正在进行的 WebAuthn 操作;\n\n**方法**\n\n| 方法                     | 描述                                      |\n| ------------------------ | ----------------------------------------- |\n| `createNewAbortSignal()` | 创建新的 AbortSignal,并自动中止之前的操作 |\n| `cancelCeremony()`       | 主动取消当前正在进行的认证/注册流程       |\n\n```js\n// 取消当前所有 WebAuthn 操作\nflunWebAuthnBrowser.WebAuthnAbortService.cancelCeremony();\n```\n\n### 内部调试工具\n\n以下属性暴露了部分内部实现细节,**仅用于高级调试或扩展,不推荐在生产中直接使用**;\n\n| 属性                                        | 描述                   |\n| ------------------------------------------- | ---------------------- |\n| `_browserSupportsWebAuthnInternals`         | 内部检测函数的桩对象   |\n| `_browserSupportsWebAuthnAutofillInternals` | 自动填充检测的内部实现 |\n\n---\n\n## 错误处理\n\n推荐使用 `try...catch` 捕获 `WebAuthnError` 并根据 `code` 进行差异化处理;\n\n```js\nimport { startAuthentication, WebAuthnError } from '@flun/webauthn-browser';\n\ntry {\n  const response = await startAuthentication({ optionsJSON });\n  // 发送 response\n} catch (err) {\n  if (err instanceof WebAuthnError) {\n    switch (err.code) {\n      case 'ERROR_CEREMONY_ABORTED':\n        console.log('用户取消了操作');\n        break;\n      case 'ERROR_INVALID_RP_ID':\n        alert('配置错误：RP ID 无效');\n        break;\n      default:\n        console.error('认证失败', err.message);\n    }\n  } else {\n    // 处理其他非 WebAuthn 错误\n  }\n}\n```\n\n---\n\n## 前后端集成示例\n\n### 配合 @flun/webauthn-server\n\n以下是一个完整的最小化集成示例,前端使用本库,后端使用 [`@flun/webauthn-server`](https://www.npmjs.com/package/@flun/webauthn-server);\n\n**前端代码**\n\n```js\nimport {  startRegistration,  startAuthentication,  browserSupportsWebAuthn} from '@flun/webauthn-browser';\n\nasync function register(username) {\n  // 1. 请求注册选项\n  const optionsRes = await fetch('/api/register/begin', {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({ username })\n  }), options = await optionsRes.json(),\n   // 2. 启动浏览器注册流程\n   response = await startRegistration({ optionsJSON: options }),\n   // 3. 将响应发送给服务端验证\n   verifyRes = await fetch('/api/register/complete', {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({ username, response })\n  });\n  return verifyRes.json();\n}\n\nasync function login(username) {\n  // 1. 请求认证选项\n  const optionsRes = await fetch('/api/login/begin', {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({ username })\n  }), options = await optionsRes.json(),\n   // 2. 启动浏览器认证流程（可开启自动填充）\n   response = await startAuthentication({ optionsJSON: options }),\n   // 3. 发送响应验证\n   verifyRes = await fetch('/api/login/complete', {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({ username, response })\n  });\n  return verifyRes.json();\n}\n```\n\n**后端代码片段**（基于 Express + `@flun/webauthn-server`）\n\n```js\nimport {\n  generateRegistrationOptions, verifyRegistrationResponse, generateAuthenticationOptions, verifyAuthenticationResponse\n} from '@flun/webauthn-server';\n\napp.post('/api/register/begin', async (req, res) => {\n  const { username } = req.body, user = getUser(username),\n   options = await generateRegistrationOptions({\n    rpName: 'My App',\n    rpID: 'localhost',\n    userName: username,\n    userID: user.id,\n  });\n  storeChallenge(username, options.challenge);\n  res.json(options);\n});\n\napp.post('/api/register/complete', async (req, res) => {\n  const { username, response } = req.body, expectedChallenge = getChallenge(username),\n   verification = await verifyRegistrationResponse({\n    response,\n    expectedChallenge,\n    expectedOrigin: 'http://localhost:7296',\n    expectedRPID: 'localhost',\n  });\n  if (verification.verified) {\n    saveCredential(username, verification.registrationInfo);\n    res.json({ success: true });\n  } else {\n    res.status(400).json({ error: 'Verification failed' });\n  }\n});\n\n// 认证接口类似...\n```\n\n---\n\n## 许可证\n\nISC © [flun](https://github.com/OpenFlun)\n\n---\n\n## 相关链接\n\n- [GitHub 仓库](https://github.com/OpenFlun/webauthn-browser)\n- [npm 包页面](https://www.npmjs.com/package/@flun/webauthn-browser)\n- [配套后端库 @flun/webauthn-server](https://www.npmjs.com/package/@flun/webauthn-server)\n- [W3C WebAuthn 规范](https://w3c.github.io/webauthn/)","readmeFilename":"README.md"}