{"_id":"expo-passkey","_rev":"173-02013b61d21c0e21c92beab64610cf52","name":"expo-passkey","dist-tags":{"alpha":"0.1.0-alpha.55","rc":"0.1.0-rc.2","beta":"0.2.1-beta.9","latest":"0.3.15"},"versions":{"0.1.0-beta.1":{"name":"expo-passkey","version":"0.1.0-beta.1","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.1","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"7d13174e2beb004c8b7ecb6002ac3fd6c5754792","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.1.tgz","fileCount":58,"integrity":"sha512-9N/mvMw4JBuoSc3uCxW1g7gOPcbZAkzAz/ezMYIU+KStgiU5L1zRHiQxWRKi/sS49YeOcPBm7xt9/Pj+6F+Rbw==","signatures":[{"sig":"MEUCIQCDi+H9stXOH+WeIp09j0Xgj+EFuMs9dQCvL9QW4UYjYgIgIRf9FCpB/MVRzU/vH/YlYqmLe7G8YTJ232LeHUM8ua0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1908253},"main":"dist/cjs/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/cjs/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","default":"./dist/types/index.js","require":"./dist/cjs/types/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js","require":"./dist/cjs/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","default":"./dist/server/index.js","require":"./dist/cjs/server/index.js"}},"gitHead":"396e6cfaa3ec78c074cb80c588952f1309f0fa9a","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"prettier":{"semi":true,"plugins":["prettier-plugin-organize-imports"],"printWidth":100,"singleQuote":true,"trailingComma":"es5"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"lint-staged":{"*.{js,mjs,cjs,ts}":["eslint --fix","prettier --write"]},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"beta","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.2","expo":"^52.0.40","jest":"^29.7.0","tsup":"^8.4.0","husky":"^9.1.7","eslint":"^9.23.0","rimraf":"^6.0.1","globals":"^16.0.0","ts-jest":"^29.2.6","prettier":"^3.5.3","jest-expo":"^52.0.6","@eslint/js":"^9.23.0","typescript":"^5.8.2","@types/jest":"^29.5.14","@types/node":"^22.13.11","better-auth":"^1.2.4","expo-crypto":"^14.0.2","expo-device":"^7.0.2","lint-staged":"^15.5.0","@jest/globals":"^29.7.0","@changesets/cli":"^2.28.1","expo-application":"^6.0.2","expo-secure-store":"^14.0.1","eslint-plugin-jest":"^28.11.0","@better-fetch/fetch":"^1.1.17","eslint-plugin-import":"^2.31.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.4","@typescript-eslint/parser":"^8.27.0","expo-local-authentication":"^15.0.2","@testing-library/react-native":"^13.2.0","@typescript-eslint/eslint-plugin":"^8.27.0","prettier-plugin-organize-imports":"^4.1.0"},"peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.1_1742792096665_0.43707306605881113","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.2":{"name":"expo-passkey","version":"0.1.0-beta.2","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.2","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"7c25d948045f2836b9d2424db4ece82fb6eade27","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.2.tgz","fileCount":58,"integrity":"sha512-yZe8ZwgHyuR2rF/ECc0hSOurzV/AkqOT6I4CGH64G95hOKYRZDpKO1F9OEzbsFTLvWc/kSWzQ/e6AoWCW1FpmQ==","signatures":[{"sig":"MEQCIDvAe5z4Dkx3O+x1a3DGG1GYDAkDQ4qJj4hjGau3nkwMAiAN339F693QJeU4xAnyCxqKUdUbldaylrHqYQ+tmNieQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1915587},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","default":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","default":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"18ad5f5b7c2f66ecf8020f3cb2e62ff5e6ffc25a","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"beta","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.2_1742804824899_0.03130088614953319","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.3":{"name":"expo-passkey","version":"0.1.0-beta.3","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.3","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"4d03f696f890e5f98cb81de925802bc4dcbe02b5","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.3.tgz","fileCount":56,"integrity":"sha512-puQxNZ0bOZFBMtR+kfzmEUWnJEfF676owlj/bxovC3BErAkZychDo3zaDNDPWkOnkv8ifUZr62quW44ORFTkpg==","signatures":[{"sig":"MEQCIGb+nQPd4fSIJNT/2W3gQr175l6rZY6d6Ck3ii+ytuvsAiAXxj/8Surp07RbZMtXlPhnxWfbOWj8ArqB6wyR4ewIpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1923882},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","default":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","default":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"2d4e5b668e9597fdc6324ad65ff18574c2f93643","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"beta","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.3_1742817037517_0.7133345348873874","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.4":{"name":"expo-passkey","version":"0.1.0-beta.4","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.4","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"5f99d95ce283cd66cf0be78cf199ff6f812fe8c6","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.4.tgz","fileCount":56,"integrity":"sha512-GSPGq8WOVlHCFC4AGVZI7YWT1tGWLl1p4m2KPDPEfjZAZiV49E7TPDG+OqEHzQFnb1VgJkSy+N51dkJAZiMqBw==","signatures":[{"sig":"MEQCIGosbXtzmr0tD4B7Q64tVaUENJnun1zp2jvsZp1FLbJ2AiBRNozo8x/NQrNQjiAY5MmP58oXsQRmvIEZfM75h4Dz3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1909384},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","default":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"node":null,"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","default":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"3c31ec268e572301acabeacdaf0bf6af1da16e0f","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"beta","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.4_1742821381625_0.8283532561642957","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.5":{"name":"expo-passkey","version":"0.1.0-beta.5","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.5","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"8e12a08703e73005ae7481b8b5cce9c6caf06374","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.5.tgz","fileCount":56,"integrity":"sha512-OneC35JCiF2mgCgMv3bmHbxt6kXU7piSwFrlb+eXUG00ttGCfEsaodkbdFM1hMPyZ5cSivqCspCciq/XfnelDQ==","signatures":[{"sig":"MEQCIGSOig4sobPt6AirIh47Kbt7GrkqfcMzCnyDWmDiJrB3AiAnRo5ANvmXSrdJNCBCDpnCjrvpzE92e/WasALJ7G3cew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1855811},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","default":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"node":null,"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","default":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"f57474bd96a73e8a3154a2f65a55c3faf03eaa9a","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"beta","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.5_1742822612770_0.3661746084411146","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.6":{"name":"expo-passkey","version":"0.1.0-beta.6","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.6","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"20ec32d5d4378c330bd0a7738a3044fc503163ec","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.6.tgz","fileCount":31,"integrity":"sha512-Y1RM2G/q1GKMOKTsufrc97QXpAryWgL63ShN+replaWnIbnsq2PS8QcDmbxDeRaYsWAks3cW2WqbLF/RjsbZsg==","signatures":[{"sig":"MEUCIDSwUlS4INtxbAEh23Yg/O5s8FJHEfmMWqdau+zVk/J6AiEAqHoalFSMS3jUVtaYNhje0LfU3RH0xxpV6kS8sh3fkbI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1835493},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","default":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"node":null,"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","default":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"846920aa4a57025f3494c0125b2b12b4784c8ac1","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"beta","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.6_1742845422098_0.4842165324302068","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.7":{"name":"expo-passkey","version":"0.1.0-beta.7","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.7","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"ee5979ecf8d58c0ad07d304ccc85c70841b41743","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.7.tgz","fileCount":31,"integrity":"sha512-Ap8VWElCO+r07/29Y0dVmgQ4sxshgZbyUNwGEAb9EomObz78AZfEvXqHMc9pIXIEn9AqMKZ6DAJuOqxQQPJcyA==","signatures":[{"sig":"MEYCIQC74+CMHcOFm7gP69CVXjGQ5Ym27Sp/iMMtsFMiklHMKwIhALaOByNwybV0d/o+iHqsZVq0WdNhIa8UVVH9+yQpO+kT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1853570},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","default":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"node":null,"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","default":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"a433cdf7fcc22e201791833c253b9c130a63ab77","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"beta","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.7_1742901174850_0.3500821446497324","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.8":{"name":"expo-passkey","version":"0.1.0-beta.8","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.8","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"bb86ed564a54ed5ace0bb59169cf2c49b89398ea","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.8.tgz","fileCount":31,"integrity":"sha512-C5lg10EEJppANLlXNoK4zC0gUYnCGdwtJ1kaEtPVzO8La7RhI61RKAP5coHSyemb16nM7xDh9gz1QtYXQAFZfQ==","signatures":[{"sig":"MEUCIFBJynYn1V+jv6MEmoGcZrEQwSxHlV0ZvgBugRbkn9ZsAiEAmQ0KXEO1u5AQ7b/Rg99pw20iqH9vuyBEi9A/ok0YuAk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1873597},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","default":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"node":null,"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","default":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","default":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"9bad9db9c51247149e05bbc8e8d3e4023afd861e","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"beta","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":"^1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.8_1742979571993_0.5923571551542639","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.9":{"name":"expo-passkey","version":"0.1.0-beta.9","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.9","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"bb79b11e1b9976ff991985374f0ff56309be077e","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.9.tgz","fileCount":20,"integrity":"sha512-ArR2BKmSaBl5NYFz7JcBdZRKJ01Hf9TSeNukH1NW7GbZQwzTF4MdSopiggXuByLDkYUkV+2WqE1AA1r9AhPZ2g==","signatures":[{"sig":"MEQCIBrowwubPpP5/4l4YtijG3Q9EUGjsfuOyfHM8IzkpEMWAiBxw0er1I0tF2avCuK3pV21J4u6t70uTZSwlqYR2P+aaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343271},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"8f4a6818b863a2a89344a065c2910b97f738d7ed","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"beta","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":"^1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.9_1743070293203_0.5462760244885438","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.10":{"name":"expo-passkey","version":"0.1.0-beta.10","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.10","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"e9256cf3807c8adeac94732f7f724f35d79561d6","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.10.tgz","fileCount":20,"integrity":"sha512-xPP2u1H9O8xnLfQMdBG7QmGJNAi3Fr0VznJd8dIHfoTkkxXY6g1GFPJhBxWVZY0e6szB4jTzokmdxsXAq/VupA==","signatures":[{"sig":"MEUCIQCFBRkMbomi277Jhkn5dA7PolRptQ9tihsPUXqMUR1RcQIgQdOpmMCBuuYnRCl7FxJz3pIrXH9/U5/lHu0n1njoXBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344073},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"21ad5ef05d89d3ca601ec93f2e0be6471f8a0253","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"beta","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":"^1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.10_1744007538535_0.4982560684298696","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.11":{"name":"expo-passkey","version":"0.1.0-beta.11","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.11","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"b7659c8a38a1f69375154ca597b4f78910987ae0","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.11.tgz","fileCount":20,"integrity":"sha512-+/PssRhBIk5Gw1ug6bz194+Q61PDEN0al8Y9togWMqSYmocYHuMeZJpNYFChLQFcjGz02rF0yp+SF8eoLGotUQ==","signatures":[{"sig":"MEUCICyrqW3R6hRbF+wIlsMOw9/9i648AQ6S6b1drK2QSGh5AiEA4Vn2wNcXal4MHXBibtNJDC5GXuY+3hN4vRZ+or4WmH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":347630},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"43ec449b91c2c04ef0a02bee6d512b0f25f8b33e","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"beta","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":"^1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.11_1744140005293_0.3640617143900191","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.12":{"name":"expo-passkey","version":"0.1.0-beta.12","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.12","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"f61a0899d9ca836dd3f36cb313597413048ca9c8","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.12.tgz","fileCount":20,"integrity":"sha512-XivsEe2dqrmxaqRA2SScNvFlgaqRtBp46dI26K5psKZZ/Bum0gE4YhqJnyAFGG00FCkyW1Ehy7D32UxVxkm5tQ==","signatures":[{"sig":"MEUCIQDalOAxc2iBdgZZiO0/wPIccur2ghHE9h8oQmsjxIjr1AIgS2twuSRIiyM+CNNW0B3+a35xNEhyFGyQngGk03OFRck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":347379},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"fb2c6eaf9a95d782e0c3da281d39c82202af5f94","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"beta","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":"^1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.12_1744304988940_0.533108184248106","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.13":{"name":"expo-passkey","version":"0.1.0-beta.13","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.13","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"e07943b96bc0d28966a9137d3eb64e27026943e3","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.13.tgz","fileCount":20,"integrity":"sha512-+typ7IAY0Zfhf5s9wm9+R8kFjcB9y6dBvpIwRYoK4Lq/SVMQeWJ3209w4yF/9Vh0OBxT7X6XpGcLtzqfDcOcvw==","signatures":[{"sig":"MEYCIQCvy7n10v+z5CJRwcXemfPpv0slWIhoeuOocxT60gmxrwIhAPNDgPkStEWr9jXKj4RxsHvYNR2xW1XPYlV4S5VOqcMd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349824},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"40d20375bd56d0493e2253b5522d7f2d0d389135","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"beta","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":"^1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.13_1744356873462_0.9991390420262614","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.14":{"name":"expo-passkey","version":"0.1.0-beta.14","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.14","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"6697b23c25221ebdb246fb3c5b880add88cf0083","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.14.tgz","fileCount":20,"integrity":"sha512-wkGKyleXZVuoUfXehyOXwAR53/ssQZ5w3/MULhRstjuy+CVLZG5ZjaDDbqzG14PoCGlyyZ0SLqmUTdSOQPmbJA==","signatures":[{"sig":"MEUCIQDQ5SHCLcAC3OtoWhY1XRZWUoKBb3lVwwlZWLd9NFOS5gIgHvB/xwAqWprDhVn/D0U4BzLwl5wr9zpeLuh4y9dEYPY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349844},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"249f5ccb0758b91d0e76d294e9bc4d32dae145ca","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":"^1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.14_1744361219237_0.012860629740703455","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.15":{"name":"expo-passkey","version":"0.1.0-beta.15","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.15","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"e51d65b68ffc5571ef552c56fa014fc6c8d6bf8b","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.15.tgz","fileCount":20,"integrity":"sha512-WLJyUxeXoo105sh0bUZBJE8U0Q5IW8vzgAqHGYX9sYp5VAn0jKaeccm1w5TIia7Tj6bmKx+o31QTXGFLGvVVmQ==","signatures":[{"sig":"MEUCIDgHSYcZzXLKMhbpb8R8rmcLt9RUaccRriLmywwtN93yAiEA5SOkMSO7IPWldkOfERIICCUlGmUWb2aeXDzYeCD4nsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349842},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"814994cb2106bdd7aa413229bc71280afcb38860","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":"^1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.15_1744362841863_0.8679316548892899","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.16":{"name":"expo-passkey","version":"0.1.0-beta.16","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.16","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"6fafaaa369d440fd318169e9224a2e06ccd9ec9f","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.16.tgz","fileCount":20,"integrity":"sha512-a32JPg3JLxJdr4Y6O5IMgxyckygEh7y3tMkBXkkfvQOFdOrgiQXKPU6ZApyfAn38mJSdxBWEbT6mvdltMjNg2A==","signatures":[{"sig":"MEUCIEkaEXRBkdsHQKpWOaQpAf9SIXL08pS8M2zAIUnodddiAiEA1wTRJCO1j7koF7663+VsqceU9UFHC+flv7UEOb+jEMk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":350727},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"f5ce3a3f1d327bae175de689f12f4820be27dcea","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":"^1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.16_1744567143330_0.11460116027881595","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.17":{"name":"expo-passkey","version":"0.1.0-beta.17","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.17","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"b449ded22a92201f0622e2508e7d359c14bbdfc0","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.17.tgz","fileCount":20,"integrity":"sha512-W/G9aVlfJxoqJEqh/xV34x7M0qHJzPqQGGfDwYAFdMSDMbO+626If9BnApXDbHcqyfBfvaQwAqxMVkThU/Qo3Q==","signatures":[{"sig":"MEUCIQD5DfJhJLWI1XEF3ShWltgSrlz/hh8KF+m6tL9Hg47j5QIgavssCa+ZHEQKJspvEDtkl3hybOT1cEr/b6UgtP48+dQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":350019},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"37fdec51e36d1ba99c2c1e3f3b77eb2e3291e100","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":"^1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.17_1744594140789_0.41653082523087814","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.18":{"name":"expo-passkey","version":"0.1.0-beta.18","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.18","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"b300410e56868a629e451d3a0e74c0c35bc13364","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.18.tgz","fileCount":20,"integrity":"sha512-2aYv4h/6kFxweLCv18fB1qamgzIXBSmDnjE4dbSMwiXTQ83Lgt88cL5SicwCW72g8mRKXHEozS56WbB2B6cQpQ==","signatures":[{"sig":"MEQCIAx46ul63cTcgQEEnh00soBxRcdTZ0lynAyGmiFUrdlxAiBv2kykbvbTm+Trl+sOrP0LlJ8cu+zhRzVq053is5neBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349699},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs","react-native":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"8b4112dc8445f204c5c16a244fb41c87052debc0","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":"^1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.18_1744704147937_0.8803723158677201","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.19":{"name":"expo-passkey","version":"0.1.0-beta.19","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.19","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"1694f8f51d57b3cb83ac48d55d24104754f9bcd9","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.19.tgz","fileCount":20,"integrity":"sha512-fj5HPyhCmrf3dfj0QoS2+w+b/5EXacXd3zQgrDMKi8VTThzuGuKdgzTrPD/eWK8/x/eFGtF2B1PSuU3trTjSgQ==","signatures":[{"sig":"MEQCIGlt6lMbpCnxt7bztHjXA76px9xHwyQRDzxi2H7cOY4mAiA2M7D5ZwJIX6Pj2kk4EOPbMoV8pExbcXYI2andybht9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349658},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/cjs/index.cjs","react-native":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"}},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"d5575cdfa6aaf03bcbd466e8fe6b3e5317fb5dab","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","react-native":"dist/client/index.js","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":"^1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.19_1744981911536_0.8146561383210054","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.20":{"name":"expo-passkey","version":"0.1.0-beta.20","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-beta.20","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"6c16d34fdc1a1ac596c7cfded7cf3c39be985c75","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-beta.20.tgz","fileCount":20,"integrity":"sha512-crXIggWq/rVTeKQNOU67iqvKxS7S+sDrtS3wiD5JAJp8GfqiO+Zp//UNEXcp3Cn47CEiowShFkK9EC8kKbr/uQ==","signatures":[{"sig":"MEUCIQDps7FvoaSO1/eUkhMG7HXTI0TJVmeuQqIyilWATxcWSgIgcu0LWTf5gLyrOv4kqKMNc714kqvYZcAiJL57IDi1Qrw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349693},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"ae607ee04fd860f9046f581d7e89f377c062e8c1","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","react-native":"dist/client/index.js","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":"^1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-beta.20_1744982878669_0.26529295738782266","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.1":{"name":"expo-passkey","version":"0.1.0-alpha.1","keywords":["expo","passkey","biometric","authentication","better-auth","react-native","face-id","touch-id","fingerprint"],"author":{"name":"Zee Mudia"},"license":"MIT","_id":"expo-passkey@0.1.0-alpha.1","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"aba743b987745a63520334400fe5a7dd67ffff77","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-alpha.1.tgz","fileCount":31,"integrity":"sha512-2n2TvP34zJsO46U0hNeaxczzQ+u4vOoj8ZyTb0YxPHWOjeJGl9syugK+0QGfTclNUv5vmsHY0w55ylz0pIOcGw==","signatures":[{"sig":"MEUCIQDmaRP2lQA1uZbvmS6xnNB2ThsaDParQaJKHXOGtWkEWgIge/InUs+1/v6ocUbD63ObnL/n6MypQJdDvw/pT6tAY48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":462042},"expo":{"name":"expo-passkey","platforms":["ios","android"]},"main":"dist/cjs/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/cjs/index.cjs"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/cjs/types/index.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/cjs/client/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/cjs/server/index.cjs"}},"gitHead":"9f98b1004cb8aa2cf263c15bbe5a456aa2236f72","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"jest","build":"tsup","clean":"rimraf dist","format":"prettier -w .","prepare":"npm run build","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","test:coverage":"jest --coverage","prepublishOnly":"npm run test && npm run lint:fix && npm run build","test:client:watch":"jest --selectProjects client --watch","test:server:watch":"jest --selectProjects server --watch"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","react-native":"dist/client/index.js","publishConfig":{"tag":"alpha","access":"public"},"typesVersions":{"*":{"types":["./dist/types/index.d.ts"],"client":["./dist/client/index.d.ts"],"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"zod":"^3.24.2","expo":"^52.0.40","jest":"^29.7.0","tsup":"^8.4.0","husky":"^9.1.7","eslint":"^9.23.0","rimraf":"^6.0.1","globals":"^16.0.0","ts-jest":"^29.2.6","prettier":"^3.5.3","jest-expo":"^52.0.6","@eslint/js":"^9.23.0","typescript":"^5.8.2","@types/jest":"^29.5.14","@types/node":"^22.13.11","better-auth":"^1.2.4","expo-crypto":"^14.0.2","expo-device":"^7.0.2","lint-staged":"^15.5.0","@jest/globals":"^29.7.0","@changesets/cli":"^2.28.1","expo-application":"^6.0.2","expo-secure-store":"^14.0.1","eslint-plugin-jest":"^28.11.0","@better-fetch/fetch":"^1.1.17","eslint-plugin-import":"^2.31.0","@simplewebauthn/types":">=12.0.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.4","@typescript-eslint/parser":"^8.27.0","expo-local-authentication":"^15.0.2","@testing-library/react-native":"^13.2.0","@typescript-eslint/eslint-plugin":"^8.27.0","prettier-plugin-organize-imports":"^4.1.0"},"peerDependencies":{"zod":"^3.0.0","expo":">=50.0.0","better-auth":"^1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":"^1.0.0","expo-modules-core":">=2.2.3","expo-secure-store":">=12.0.0","@better-fetch/fetch":"^1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"expo":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-alpha.1_1745144023412_0.030344102691404196","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.55":{"name":"expo-passkey","version":"0.1.0-alpha.55","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.1.0-alpha.55","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"239f7ad57ff9ac6a26b23983f9feaa3b373ccf54","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-alpha.55.tgz","fileCount":139,"integrity":"sha512-RjEuhoEX8+UZrriLfdv5dOEtQoxtLyxtaJHInYX8UWOa5o5cRnElJaFMlzni17mkdcZ6Y+7oe7t0B5f2F0C09Q==","signatures":[{"sig":"MEQCIHoLyTXgCgrDbBy77Q5tA8jzY2RFEVQKGOdclsF/IG7TAiB7ulHhorWbMYmj3F8xrnISGAQ3AmcS6cRSGpI81enhrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":568034},"main":"build/index.js","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"f748ccf157f109f0e9635c9aee89935be6b77910","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","open:ios":"xed example/client/ios","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","open:android":"open -a \"Android Studio\" example/client/android","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"alpha","access":"public"},"typesVersions":{"*":{"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"zod":"^3.24.3","expo":"~52.0.0","jest":"^29.7.0","ts-jest":"^29.3.2","jest-expo":"^52.0.6","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^22.15.2","better-auth":"^1.2.7","better-call":"^1.0.9","expo-crypto":"^14.0.2","expo-device":"^7.0.3","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^29.7.0","expo-application":"^6.0.2","expo-modules-core":"2.2.3","expo-secure-store":"^14.0.1","expo-module-scripts":"^4.0.4","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","expo-local-authentication":"^15.0.2","@testing-library/react-native":"^13.2.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":"*","better-auth":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-alpha.55_1746115356566_0.0840672695779765","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-rc.2":{"name":"expo-passkey","version":"0.1.0-rc.2","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.1.0-rc.2","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"4d8d6d64bb8ab17059bd6837e78085d9a43644bb","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0-rc.2.tgz","fileCount":139,"integrity":"sha512-XcVLXtOxmj747yGinV6GHye6SpwCacvSk5ayLt/VNZcG8EMEQLlVnDfKxQhYx1ioStJS1CkpymySrtmrfgIUww==","signatures":[{"sig":"MEYCIQD6rZwUxjwe9NzyaUMhskT9J9hKKkJGco/LPT4KGMbxwQIhAKjAObVSYvO+u0+8eBdZKdxkr5QIUwdJBj31r+a0IK81","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":584607},"main":"build/index.js","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"1097591706270969fc9825c6fc2fc9aea806b65f","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.2.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"zod":"^3.24.3","expo":"~52.0.0","jest":"^29.7.0","ts-jest":"^29.3.2","jest-expo":"^52.0.6","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^22.15.2","better-auth":"^1.2.7","better-call":"^1.0.9","expo-crypto":"^14.0.2","expo-device":"^7.0.3","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^29.7.0","expo-application":"^6.0.2","expo-modules-core":"2.2.3","expo-secure-store":"^14.0.1","expo-module-scripts":"^4.0.4","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","expo-local-authentication":"^15.0.2","@testing-library/react-native":"^13.2.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":"*","better-auth":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0-rc.2_1746303046012_0.14643477029288166","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"expo-passkey","version":"0.1.0","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.1.0","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"3b9e66933ec8b79159ee476ef7a2a378f136fc66","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.1.0.tgz","fileCount":139,"integrity":"sha512-SQKEYJTXmfGvDw2Q3peOqKwFY5dmwxacyf3S95kI25kACTxGfC16hwpw1FIYJa3QH7xwHa3VlO+66Z2beWsKug==","signatures":[{"sig":"MEYCIQCMp2j3MtosdfMuq9auLUxxD+cLGs3nRU/LVLBn/DUXFgIhAIKYVUdyzsOm+IRczt2b9zNSAxl31T1PxCRvMm3b3+rC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":585224},"main":"build/index.js","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"cd99b4012c3e3ab168ec0fb91f8ffb3b6f70e05a","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"10.9.2","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.3","expo":"~52.0.0","jest":"^29.7.0","ts-jest":"^29.3.2","jest-expo":"^52.0.6","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^22.15.2","better-auth":"^1.2.7","better-call":"^1.0.9","expo-crypto":"^14.0.2","expo-device":"^7.0.3","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^29.7.0","expo-application":"^6.0.2","expo-modules-core":"2.2.3","expo-secure-store":"^14.0.1","expo-module-scripts":"^4.0.4","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","expo-local-authentication":"^15.0.2","@testing-library/react-native":"^13.2.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":"*","better-auth":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.1.0_1747051967685_0.5944698157248312","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.5":{"name":"expo-passkey","version":"0.2.0-beta.5","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.2.0-beta.5","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"e10aad41f8f245e98381bd93be443b93fbbcbcfc","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.2.0-beta.5.tgz","fileCount":159,"integrity":"sha512-l39Nqbhoc3lMc/6Fe3BgSF4TEEXz1PlNg8YQlw4LAnc0BgST8Vvj7xbFHsZdrYRj/eUWPZ4z2XDZGvJmzumkiA==","signatures":[{"sig":"MEQCIDUj16h9RYhMN4iaEqmO8w0fFZ2dqkRZ/RXRlrrbYR1RAiBvs9LpBAUtAAyBLCskFZRp/yJhDfkEKjSeZXTvqbK/1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":703721},"main":"build/index.js","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"7bfb20ccba8bc407b93a1e2e3e40a7df5a298d5c","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","actor":{"name":"iosazee","type":"user","email":"zee@zeemudia.com"},"email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.3.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","publishConfig":{"tag":"beta","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.2.9","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","@simplewebauthn/browser":"^13.1.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":"*","better-auth":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.2.0-beta.5_1750715486620_0.21968459666212348","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"expo-passkey","version":"0.2.0","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.2.0","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"3fb03b13e230a5c4589726682aa3b2d671a7cbfa","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.2.0.tgz","fileCount":159,"integrity":"sha512-86Ohvoef/q7sJxrDoQa+lJ1K+GpDsRBIUc5wCKZBEHBuPCU8wJU5BelFhv+0xZfx0MlFqFhl6dPfAE9zr5pTjg==","signatures":[{"sig":"MEYCIQCpm+Em1/0Knsx1YBamYni7NpAQGNZ7jM0cn8MvyXPO9gIhAI7/onrtG6KPCmBK8K+wWVUoHWVpedmHmZ0LI7zY3Tkp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":703993},"main":"build/index.js","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"011f488f969de2aadd9a74f54db8a37811be9386","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","actor":{"name":"iosazee","type":"user","email":"zee@zeemudia.com"},"email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.3.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.2.9","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","@simplewebauthn/browser":"^13.1.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":"*","better-auth":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.2.0_1750819724846_0.26932004244948193","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-beta.9":{"name":"expo-passkey","version":"0.2.1-beta.9","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.2.1-beta.9","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"f08d56b56918b166cb273f57b88c62aa843292a0","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.2.1-beta.9.tgz","fileCount":159,"integrity":"sha512-bED7VE5740aOhUU8DQo9bSlDcEiPoofYA1UeJlfhW2Ewjsp/Dt2ssxKtbRgIFATptFsGz6Ro7ywDF781Gd5NEQ==","signatures":[{"sig":"MEUCIAfVCD/lQUBNbDo/o5D8GAkUWhsKX0u8hzv+QQBUej0SAiEA2S0kAO0QL7carsUdXqDC3lrqdsf0VSeEKz7rM+bBrus=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":709927},"main":"build/index.js","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"3430d48855df1907be491fc35d88631f1192e597","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"10.9.2","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","publishConfig":{"tag":"beta","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.2.9","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","@simplewebauthn/browser":"^13.1.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":"*","better-auth":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.2.1-beta.9_1752302749288_0.14037210187528992","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"expo-passkey","version":"0.2.1","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.2.1","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"d7aeb4b0e70524be885b2923b0a527de712a03b4","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.2.1.tgz","fileCount":159,"integrity":"sha512-XaYZ/QFwvPeXyoDW8kC2ftoAKa6P21satoIuPPOkrbu+E106udUHOq71r5Qk94aLogjBeOTCRUK+Xsm894GEZg==","signatures":[{"sig":"MEUCIGOmI0ZDEDD8NA3EQ3n+hhkc8W4cB0AecN3z2HJLvSueAiEAhcL8pTOdPuhCFoLFcKZyZJltUw0M8ZvEmrlvtWG5Fk0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":709922},"main":"build/index.js","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"80190d8a84928069e831927f3ebb47f808ef1e6c","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"10.9.2","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.2.9","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","@simplewebauthn/browser":"^13.1.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":"*","better-auth":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.2.1_1752756006182_0.04185956353269504","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"expo-passkey","version":"0.2.2","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.2.2","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"9e7150fc7c61532dcbe1cd3dc134daac77d01610","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.2.2.tgz","fileCount":159,"integrity":"sha512-P2TPXzDTAc9mwYB6BFzvhcGzrfL2CiAUGQW0Bl2Kh+7XRRpoLooThJ7CXjRsLfmhSP/y/u2tuP5cCFbEMgsa/A==","signatures":[{"sig":"MEQCID1NdSqs5VRwC0++EIat8gRFa1HkNEIBpUy0bE3EKyy+AiBeepkNA22pPkKMizNYR54xsIhFtP4R1piN81AbFBT4XQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":711106},"main":"build/index.js","type":"module","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"a42309b233359c636cdae960b1ff7207992d4ba8","scripts":{"lint":"eslint src --ext .ts,.tsx,.js,.jsx --fix","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","type-check":"tsc --noEmit","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.5.2","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","eslint":"^9.34.0","globals":"^16.3.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","@eslint/js":"^9.34.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.3.7","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","eslint-plugin-jest":"^29.0.1","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","eslint-config-prettier":"^10.1.8","eslint-config-universe":"^15.0.3","eslint-plugin-prettier":"^5.5.4","@simplewebauthn/browser":"^13.1.0","@typescript-eslint/parser":"^8.41.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0","@typescript-eslint/eslint-plugin":"^8.41.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":">=18.3.1","better-auth":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.2.2_1756397859989_0.6102235864982815","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"expo-passkey","version":"0.2.3","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.2.3","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"02918028a7f320d4d3e884fdc5312d05fba67224","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.2.3.tgz","fileCount":159,"integrity":"sha512-eUSLW99ADyfUjV5vQvEfmmWGMQC4SdFdgBExXDEKNoFN9MxOIFfY8BwbHLbS+daAK+thdKGSThqUTxBmbOxt2g==","signatures":[{"sig":"MEUCICx8NB7AyI1edvzcxd9JddQ9Vl+G3Uk4QAosY0khNNYxAiEA/tskMvoo+ObRnXjwYs1dZ5l+u44iAhrz/yS8evOUoeg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":711347},"main":"build/index.js","type":"module","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"0bdc099099c5e90d951490af6b8064931f2c207d","scripts":{"lint":"eslint src --ext .ts,.tsx,.js,.jsx --fix","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","type-check":"tsc --noEmit","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.5.2","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","eslint":"^9.34.0","globals":"^16.3.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","@eslint/js":"^9.34.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.3.7","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","eslint-plugin-jest":"^29.0.1","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","eslint-config-prettier":"^10.1.8","eslint-config-universe":"^15.0.3","eslint-plugin-prettier":"^5.5.4","@simplewebauthn/browser":"^13.1.0","@typescript-eslint/parser":"^8.41.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0","@typescript-eslint/eslint-plugin":"^8.41.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":">=18.3.1","better-auth":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.2.3_1757331702292_0.1279588896331707","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"expo-passkey","version":"0.3.0","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.3.0","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"90feaf8c46a8260f3e36e1d3233515655fd04c6a","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.3.0.tgz","fileCount":159,"integrity":"sha512-X11IvKkxAEvXl2b3WtQ2y/Yxv67OuTKkaPp4M3r8P+SFHuOBMYWxTnF6iTmBfySSuFuVy2uDpd14SvjObGf5YQ==","signatures":[{"sig":"MEUCIQC/3JoNrJRkbO6aRtYTdcGBG1Qvsh8PkGRFgEACgr5CtgIgXXvC6vR+9e3kLU31HHu1fncaCVucypGvIIrwmTXi16c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":720146},"main":"build/index.js","type":"module","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"32cce3420327e038b65a3dee23a420c581ac2f5d","scripts":{"lint":"eslint src --ext .ts,.tsx,.js,.jsx --fix","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","type-check":"tsc --noEmit","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.5.2","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","eslint":"^9.34.0","globals":"^16.3.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","@eslint/js":"^9.34.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.3.7","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","eslint-plugin-jest":"^29.0.1","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","eslint-config-prettier":"^10.1.8","eslint-config-universe":"^15.0.3","eslint-plugin-prettier":"^5.5.4","@simplewebauthn/browser":"^13.1.0","@typescript-eslint/parser":"^8.41.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0","@typescript-eslint/eslint-plugin":"^8.41.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":">=18.3.1","better-auth":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.3.0_1760725883161_0.33502232179491176","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"expo-passkey","version":"0.3.4","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.3.4","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"ada91b6bfcd8ae91b3ef52e5cbba870df471ea20","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.3.4.tgz","fileCount":159,"integrity":"sha512-LZS8kpV/n8z1TalNA948CrYsPkYcyphGnAzdXduTvTAa75u8sUXbTF/tiAhocivnoHjiezJjhHoS9hAg+m+wmw==","signatures":[{"sig":"MEYCIQCp/T4vLx04jhFegYpObOBx9QrZHN0BiJxNQgivkhbk0AIhAIVLhIe4o19AIiawlkoNVdem1qgzhPMofH7ATRWGGrbK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":721290},"main":"build/index.js","type":"module","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"88ddfc0ab004cedb1d425bccd436dda4c76e2690","scripts":{"lint":"eslint src --ext .ts,.tsx,.js,.jsx --fix","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","type-check":"tsc --noEmit","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.5.2","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","eslint":"^9.34.0","globals":"^16.3.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","@eslint/js":"^9.34.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.3.7","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","eslint-plugin-jest":"^29.0.1","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","eslint-config-prettier":"^10.1.8","eslint-config-universe":"^15.0.3","eslint-plugin-prettier":"^5.5.4","@simplewebauthn/browser":"^13.1.0","@typescript-eslint/parser":"^8.41.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0","@typescript-eslint/eslint-plugin":"^8.41.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":">=18.3.1","better-auth":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.3.4_1761115145776_0.9040400241059385","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"expo-passkey","version":"0.3.5","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.3.5","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"a0c4d12cb611b529a99a96a7381243a85e283e42","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.3.5.tgz","fileCount":159,"integrity":"sha512-G2Y1k0k/RlX4pjnVG/JHCLashx+v5OxvfytNccMNYhe9TTBWhxvb+Q5UqO7lsYjM7XVATHtcBYLQ07kMZwrSvw==","signatures":[{"sig":"MEQCIBveTKzLozhSeutMfPXS4t+WFq27aR9hI/JmBouSDcC0AiBf3pF/13U/YDoGGhiaCWbhUTzueDrAsLr3MoTcOPvxQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":721617},"main":"build/index.js","type":"module","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"8589d830d8dcc4e6b2e689e2b8f43a4139834274","scripts":{"lint":"eslint src --ext .ts,.tsx,.js,.jsx --fix","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","type-check":"tsc --noEmit","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.5.2","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","eslint":"^9.34.0","globals":"^16.3.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","@eslint/js":"^9.34.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.3.7","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","eslint-plugin-jest":"^29.0.1","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","eslint-config-prettier":"^10.1.8","eslint-config-universe":"^15.0.3","eslint-plugin-prettier":"^5.5.4","@simplewebauthn/browser":"^13.1.0","@typescript-eslint/parser":"^8.41.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0","@typescript-eslint/eslint-plugin":"^8.41.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":">=18.3.1","better-auth":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.3.5_1761208635137_0.48717608560997405","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"expo-passkey","version":"0.3.6","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.3.6","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"b2b89eace54f60cb115ec66599d550f9334cb154","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.3.6.tgz","fileCount":159,"integrity":"sha512-1ejKfPnYuAe1kochqgf3lW/AtEP/QDmLDRAV0OLoLDzjVd0RK0WK18Ji5s/ezVnUlrQRhslTQu1m/u4+IiCcBA==","signatures":[{"sig":"MEQCIAzkJmCufL35liDGxqnOObwIySgiRcM1y+GrvrKIYgPJAiADa+i26OQLS7Pb72AykTQeOyT0KtaL55wQcS6dAUuGrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":727157},"main":"build/index.js","type":"module","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"5b57a86973328cf2de2fa7b44ea4a5bc518552bd","scripts":{"lint":"eslint src --ext .ts,.tsx,.js,.jsx --fix","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","type-check":"tsc --noEmit","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.5.2","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","eslint":"^9.34.0","globals":"^16.3.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","@eslint/js":"^9.34.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.3.7","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","eslint-plugin-jest":"^29.0.1","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","eslint-config-prettier":"^10.1.8","eslint-config-universe":"^15.0.3","eslint-plugin-prettier":"^5.5.4","@simplewebauthn/browser":"^13.1.0","@typescript-eslint/parser":"^8.41.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0","@typescript-eslint/eslint-plugin":"^8.41.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":">=18.3.1","better-auth":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.3.6_1761231814358_0.7542422891714102","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"expo-passkey","version":"0.3.7","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.3.7","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"405053e27df79544e62fe0399974043457658f9e","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.3.7.tgz","fileCount":159,"integrity":"sha512-XRaPHUbhHR3jCbWjjIlizHrTlfXC4tJ+DOigE/dd2VJ/DgWR+i4BZVr2zqJ20En7ZalZ+cDMD0WpOnLonRvTDg==","signatures":[{"sig":"MEUCIQCaMl0x9g4tdoa8nuW0E8Ucu2t3cReisDKxHfG3kNOWkQIgPXF5h+01trKU3LKT3jFwtORYf8Dko3Z5nRGdXGdjw0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":734647},"main":"build/index.js","type":"module","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"4537a8e4a328aba696f7dfabdbc07e24b49888c3","scripts":{"lint":"eslint src --ext .ts,.tsx,.js,.jsx --fix","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","type-check":"tsc --noEmit","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.6.1","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","eslint":"^9.34.0","globals":"^16.3.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","@eslint/js":"^9.34.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.3.7","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","eslint-plugin-jest":"^29.0.1","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","eslint-config-prettier":"^10.1.8","eslint-config-universe":"^15.0.3","eslint-plugin-prettier":"^5.5.4","@simplewebauthn/browser":"^13.1.0","@typescript-eslint/parser":"^8.41.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0","@typescript-eslint/eslint-plugin":"^8.41.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":">=18.3.1","better-auth":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.3.7_1763372254662_0.8936032901073825","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"expo-passkey","version":"0.3.8","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.3.8","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"5265bf74d0c62cbd4ded7c7c318638c34cf46ad6","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.3.8.tgz","fileCount":159,"integrity":"sha512-d0aUBzgHZbiGUrUO/TeevKi/b34Z4j/whrevY+cDWpkmfgvfCpOtxp4SsPyHeNhBy0Wr7ToflWBbcCzJvLjihw==","signatures":[{"sig":"MEYCIQD5FnfjvabSO1ucxB6WJiHaxUZi0sRDjh5uqJjYDycuUwIhALa8vxcPapgY4MU+Y+fe3c5ryrbXRjgesbC7gmx5ANu3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":734073},"main":"build/index.js","type":"module","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"d3032ab8d2d68a667c499cf190f62ec192e061c2","scripts":{"lint":"eslint src --ext .ts,.tsx,.js,.jsx --fix","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","type-check":"tsc --noEmit","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.6.1","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","eslint":"^9.34.0","globals":"^16.3.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","@eslint/js":"^9.34.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.3.7","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","eslint-plugin-jest":"^29.0.1","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","eslint-config-prettier":"^10.1.8","eslint-config-universe":"^15.0.3","eslint-plugin-prettier":"^5.5.4","@simplewebauthn/browser":"^13.1.0","@typescript-eslint/parser":"^8.41.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0","@typescript-eslint/eslint-plugin":"^8.41.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":">=18.3.1","better-auth":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.3.8_1763399474714_0.2062018284852607","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"expo-passkey","version":"0.3.9","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.3.9","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"8d4302363d5e1f7bb019ed6ce8f0e33032673c90","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.3.9.tgz","fileCount":159,"integrity":"sha512-T+MAjushiQB29pIS1LOrUgKgNeZ6g57BYVf5hRg9Jhp1gAqICI7eZiwSFR44gtRH64PuY4t2LpGm5eBxvjwvXA==","signatures":[{"sig":"MEQCIBQA0bN01xrTYOoCfL0FYS9qNKnOqEdQT2CYjlTQI6uaAiB6n02wCYI3UN64eTrB60CN42Yka1LPnNGdzLSchPjCKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":736564},"main":"build/index.js","type":"module","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"7a662eabc96aa1bdfa253b7c8ec7b4b7b28aea22","scripts":{"lint":"eslint src --ext .ts,.tsx,.js,.jsx --fix","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","type-check":"tsc --noEmit","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"iosazee","email":"zee@zeemudia.com"},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.6.1","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","eslint":"^9.34.0","globals":"^16.3.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","@eslint/js":"^9.34.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.3.7","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","eslint-plugin-jest":"^29.0.1","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","eslint-config-prettier":"^10.1.8","eslint-config-universe":"^15.0.3","eslint-plugin-prettier":"^5.5.4","@simplewebauthn/browser":"^13.1.0","@typescript-eslint/parser":"^8.41.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0","@typescript-eslint/eslint-plugin":"^8.41.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":">=18.3.1","better-auth":">=1.0.0","better-call":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"better-call":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.3.9_1769985070839_0.7013826901755871","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"expo-passkey","version":"0.3.10","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.3.10","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"f68472c319693f8dcdd37dbef0035caf5820faaf","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.3.10.tgz","fileCount":159,"integrity":"sha512-V7j1dKyxKiuYXVjoqCUQxzQi6jHur+HeoAloVcoStbrI1x65j1BkwiMCWErIexg2bDdgIEHa6yr1A8TIH/yXEg==","signatures":[{"sig":"MEYCIQDmduKQwxCofEAkV6YqzoUKcfhXRJrwdKxeWRfVV6jYnwIhAOcKpDYDUYWtrYXlEJVHWFZGBii+I0XtrfpGYbnzwJLA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/expo-passkey@0.3.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":737471},"main":"build/index.js","type":"module","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"5ea0ee1b0352f3250a67c0056c86ca5f1391f572","scripts":{"lint":"eslint src --ext .ts,.tsx,.js,.jsx --fix","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","type-check":"tsc --noEmit","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c4d0da40-8996-4a97-95cc-c685a446d006"}},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.10.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","eslint":"^9.34.0","globals":"^16.3.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","@eslint/js":"^9.34.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.3.7","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","eslint-plugin-jest":"^29.0.1","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","eslint-config-prettier":"^10.1.8","eslint-config-universe":"^15.0.3","eslint-plugin-prettier":"^5.5.4","@simplewebauthn/browser":"^13.1.0","@typescript-eslint/parser":"^8.41.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0","@typescript-eslint/eslint-plugin":"^8.41.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":">=18.3.1","better-auth":">=1.0.0","better-call":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"better-call":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.3.10_1770973073289_0.5915700773192625","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"expo-passkey","version":"0.3.11","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.3.11","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"1d179634f51d6fe3b7b46b60aaeb8e3e671b30b7","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.3.11.tgz","fileCount":159,"integrity":"sha512-ReGYzsuNQDtO7gEAEYsAH0SaSQ/D1nvXGexlFrYVb2OQz5bNEakp5mEZx33hAod/jxjoIwPl/WDqG3hje1TaWw==","signatures":[{"sig":"MEYCIQDiuxE+BbfEeINIIY6E+HqU9fbbPu9c1MgDTQEyIjmNxAIhAJIQ/4HP8lCcr5hkTgwMfsaRxrNvzArM+NPUozPZzssb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/expo-passkey@0.3.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":735892},"main":"build/index.js","type":"module","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"a079b33ed2eda51f4f68f5665653156d70dd381d","scripts":{"lint":"eslint src --ext .ts,.tsx,.js,.jsx --fix","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","type-check":"tsc --noEmit","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c4d0da40-8996-4a97-95cc-c685a446d006"}},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.10.0","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","eslint":"^9.34.0","globals":"^16.3.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","@eslint/js":"^9.34.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.3.7","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","eslint-plugin-jest":"^29.0.1","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","eslint-config-prettier":"^10.1.8","eslint-config-universe":"^15.0.3","eslint-plugin-prettier":"^5.5.4","@simplewebauthn/browser":"^13.1.0","@typescript-eslint/parser":"^8.41.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0","@typescript-eslint/eslint-plugin":"^8.41.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":">=18.3.1","better-auth":">=1.0.0","better-call":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"better-call":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.3.11_1771030489206_0.984231044863692","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"expo-passkey","version":"0.3.12","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.3.12","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"71472e27f83a7118320f66ddfb7ca625cfcd2769","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.3.12.tgz","fileCount":159,"integrity":"sha512-Sa+4dV4LrEHzS4yqc80pBXf1FcZAmPQi/kGO3XyNZGo7TRq2HxJVUMhTunDr6IDstETrLqyN6dRhzn9HiJXrtQ==","signatures":[{"sig":"MEUCIQDPyf5LjwApxIUBRu+VH6UCHbINB2zBvIrnKZBaA50Y3AIgMalbGIH5UJzzxPKD7SgSIomsK0/qeD4BcwffHVttBKI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/expo-passkey@0.3.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":739703},"main":"build/index.js","type":"module","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"32e19c0459b4856a3aaaeea8c24a13d68dc08347","scripts":{"lint":"eslint src --ext .ts,.tsx,.js,.jsx --fix","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","type-check":"tsc --noEmit","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c4d0da40-8996-4a97-95cc-c685a446d006"}},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.11.1","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"22.22.1","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","eslint":"^9.34.0","globals":"^16.3.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","@eslint/js":"^9.34.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.3.7","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","eslint-plugin-jest":"^29.0.1","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","eslint-config-prettier":"^10.1.8","eslint-config-universe":"^15.0.3","eslint-plugin-prettier":"^5.5.4","@simplewebauthn/browser":"^13.1.0","@typescript-eslint/parser":"^8.41.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0","@typescript-eslint/eslint-plugin":"^8.41.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":">=18.3.1","better-auth":">=1.0.0","better-call":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"better-call":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.3.12_1773526525753_0.6214401307989774","host":"s3://npm-registry-packages-npm-production"}},"0.3.14":{"name":"expo-passkey","version":"0.3.14","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"author":{"url":"https://github.com/iosazee","name":"Zee Mudia","email":"zee@zeemudia.com"},"license":"MIT","_id":"expo-passkey@0.3.14","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"homepage":"https://github.com/iosazee/expo-passkey#readme","bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"dist":{"shasum":"3b012f18df049430c788fd1ca6c785d6bb3d8a42","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.3.14.tgz","fileCount":163,"integrity":"sha512-9q7KKpoLZQIjP1VNIppmy3LN+rsbl3gbXUSCt9qAsSrvCARrb9m+E/unnNga+FkqEdpRt4HTw0vmoRHgaX6TXA==","signatures":[{"sig":"MEYCIQCqIMG7PICNxzDYtKcpFgr97p21erMK8TmGip8CZfcfTAIhAPlZfkRpRBfVBwzWFpHXsG5VNOLoY/ay992bFUgJw5kd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/expo-passkey@0.3.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":761373},"main":"build/index.js","type":"module","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"gitHead":"771e9427bb02cee296072c78b0199317365a22a4","scripts":{"lint":"eslint src --ext .ts,.tsx,.js,.jsx --fix","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","type-check":"tsc --noEmit","expo-module":"expo-module","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c4d0da40-8996-4a97-95cc-c685a446d006"}},"repository":{"url":"git+https://github.com/iosazee/expo-passkey.git","type":"git"},"_npmVersion":"11.12.1","description":"Passkey authentication for Expo apps with Better Auth integration","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","publishConfig":{"tag":"latest","access":"public"},"typesVersions":{"*":{"web":["./build/index.web.d.ts"],"native":["./build/index.native.d.ts"],"server":["./build/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","expo":"~53.0.11","jest":"^30.0.0","eslint":"^9.34.0","globals":"^16.3.0","ts-jest":"^29.3.2","jest-expo":"^53.0.7","@eslint/js":"^9.34.0","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","better-auth":"^1.6.11","better-call":"^1.0.9","expo-crypto":"^14.1.5","expo-device":"^7.1.4","@types/react":"~18.3.12","react-native":"0.76.0","@jest/globals":"^30.0.0","expo-application":"^6.1.4","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","eslint-plugin-jest":"^29.0.1","expo-module-scripts":"^4.1.7","react-test-renderer":"^18.3.1","@simplewebauthn/types":">=12.0.0","@simplewebauthn/server":"^13.1.1","eslint-config-prettier":"^10.1.8","eslint-config-universe":"^15.0.3","eslint-plugin-prettier":"^5.5.4","@simplewebauthn/browser":"^13.1.0","@typescript-eslint/parser":"^8.41.0","expo-local-authentication":"^16.0.4","@testing-library/react-native":"^13.2.0","@typescript-eslint/eslint-plugin":"^8.41.0"},"peerDependencies":{"zod":">=3.0.0","expo":">=50.0.0","react":">=18.3.1","better-auth":">=1.0.0","better-call":">=1.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","react-native":"*","expo-application":">=5.0.0","@better-auth/expo":">=1.0.0","expo-secure-store":">=12.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","expo-local-authentication":">=13.0.0"},"peerDependenciesMeta":{"zod":{"optional":true},"expo":{"optional":true},"react":{"optional":true},"better-auth":{"optional":true},"better-call":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"react-native":{"optional":true},"expo-application":{"optional":true},"@better-auth/expo":{"optional":true},"expo-secure-store":{"optional":true},"@better-fetch/fetch":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"expo-local-authentication":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/expo-passkey_0.3.14_1779258477496_0.24233663967713026","host":"s3://npm-registry-packages-npm-production"}},"0.3.15":{"name":"expo-passkey","version":"0.3.15","description":"Passkey authentication for Expo apps with Better Auth integration","type":"module","main":"build/index.js","types":"build/index.d.ts","sideEffects":false,"scripts":{"build":"expo-module build","clean":"expo-module clean","lint":"eslint src --ext .ts,.tsx,.js,.jsx --fix","type-check":"tsc --noEmit","test":"expo-module test","test:client":"jest --selectProjects client","test:server":"jest --selectProjects server","prepare":"expo-module prepare","prepublishOnly":"expo-module prepublishOnly","expo-module":"expo-module"},"exports":{".":{"types":"./build/index.d.ts","import":"./build/index.js","require":"./build/index.js"},"./native":{"types":"./build/index.native.d.ts","import":"./build/index.native.js","require":"./build/index.native.js"},"./web":{"types":"./build/index.web.d.ts","import":"./build/index.web.js","require":"./build/index.web.js"},"./server":{"types":"./build/server/index.d.ts","import":"./build/server/index.js","require":"./build/server/index.js"}},"typesVersions":{"*":{"server":["./build/server/index.d.ts"],"native":["./build/index.native.d.ts"],"web":["./build/index.web.d.ts"]}},"keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"repository":{"type":"git","url":"git+https://github.com/iosazee/expo-passkey.git"},"bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"author":{"name":"Zee Mudia","email":"zee@zeemudia.com","url":"https://github.com/iosazee"},"license":"MIT","homepage":"https://github.com/iosazee/expo-passkey#readme","devDependencies":{"@eslint/js":"^9.34.0","@jest/globals":"^30.0.0","@simplewebauthn/browser":"^13.1.0","@simplewebauthn/server":"^13.1.1","@simplewebauthn/types":">=12.0.0","@testing-library/react-native":"^13.2.0","@types/jest":"^30.0.0","@types/node":"^24.0.3","@types/react":"~18.3.12","@typescript-eslint/eslint-plugin":"^8.41.0","@typescript-eslint/parser":"^8.41.0","better-auth":"^1.6.11","better-call":"^1.0.9","eslint":"^9.34.0","eslint-config-prettier":"^10.1.8","eslint-config-universe":"^15.0.3","eslint-plugin-jest":"^29.0.1","eslint-plugin-prettier":"^5.5.4","expo":"~53.0.11","expo-application":"^6.1.4","expo-crypto":"^14.1.5","expo-device":"^7.1.4","expo-local-authentication":"^16.0.4","expo-module-scripts":"^4.1.7","expo-modules-core":"2.4.0","expo-secure-store":"^14.2.3","globals":"^16.3.0","jest":"^30.0.0","jest-expo":"^53.0.7","react-native":"0.76.0","react-test-renderer":"^18.3.1","ts-jest":"^29.3.2","typescript":"^5.0.0","zod":"^3.25.0"},"peerDependencies":{"@better-auth/expo":">=1.0.0","@better-fetch/fetch":">=1.0.0","@simplewebauthn/server":">=13.0.0","better-auth":">=1.0.0","better-call":">=1.0.0","expo":">=50.0.0","expo-application":">=5.0.0","expo-crypto":">=12.0.0","expo-device":">=5.0.0","expo-local-authentication":">=13.0.0","expo-secure-store":">=12.0.0","react":">=18.3.1","react-native":"*","zod":">=3.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-native":{"optional":true},"expo":{"optional":true},"expo-application":{"optional":true},"expo-crypto":{"optional":true},"expo-device":{"optional":true},"expo-local-authentication":{"optional":true},"expo-secure-store":{"optional":true},"@better-auth/expo":{"optional":true},"@better-fetch/fetch":{"optional":true},"better-auth":{"optional":true},"better-call":{"optional":true},"@simplewebauthn/server":{"optional":true},"@simplewebauthn/browser":{"optional":true},"zod":{"optional":true}},"publishConfig":{"access":"public","tag":"latest"},"gitHead":"28599243082b0924da0c76b6b20dc3da771bed2d","_id":"expo-passkey@0.3.15","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-qIgX4AZVQ8c57O6AXT1DeLyDGSHU5lxgJttLlq0T8RFcJLsEyojpjoN8TI2Y7mIgXZAPgq1Aje1aUoE0i7Y3Pw==","shasum":"9ca19ab94e90f03232741c7d199ece2d283daca5","tarball":"https://registry.npmjs.org/expo-passkey/-/expo-passkey-0.3.15.tgz","fileCount":163,"unpackedSize":766572,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/expo-passkey@0.3.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFekV2AD4xDIHHmp131zcSo7OWFjRVP4VimJVCxB89wkAiEAjRoZMmTGYThCzdLmeYd1IMvCWNUYsHgG2JRuaTXygh8="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c4d0da40-8996-4a97-95cc-c685a446d006"}},"directories":{},"maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/expo-passkey_0.3.15_1779260023572_0.41747595996505127"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-24T04:54:56.586Z","modified":"2026-05-20T06:53:44.027Z","0.1.0-beta.1":"2025-03-24T04:54:57.046Z","0.1.0-beta.2":"2025-03-24T08:27:05.130Z","0.1.0-beta.3":"2025-03-24T11:50:37.723Z","0.1.0-beta.4":"2025-03-24T13:03:01.864Z","0.1.0-beta.5":"2025-03-24T13:23:33.004Z","0.1.0-beta.6":"2025-03-24T19:43:42.348Z","0.1.0-beta.7":"2025-03-25T11:12:55.061Z","0.1.0-beta.8":"2025-03-26T08:59:32.249Z","0.1.0-beta.9":"2025-03-27T10:11:33.396Z","0.1.0-beta.10":"2025-04-07T06:32:18.800Z","0.1.0-beta.11":"2025-04-08T19:20:05.467Z","0.1.0-beta.12":"2025-04-10T17:09:49.130Z","0.1.0-beta.13":"2025-04-11T07:34:33.692Z","0.1.0-beta.14":"2025-04-11T08:46:59.394Z","0.1.0-beta.15":"2025-04-11T09:14:02.036Z","0.1.0-beta.16":"2025-04-13T17:59:03.511Z","0.1.0-beta.17":"2025-04-14T01:29:01.024Z","0.1.0-beta.18":"2025-04-15T08:02:28.112Z","0.1.0-beta.19":"2025-04-18T13:11:51.769Z","0.1.0-beta.20":"2025-04-18T13:27:58.900Z","0.1.0-alpha.1":"2025-04-20T10:13:43.603Z","0.1.0-alpha.2":"2025-04-20T20:09:20.590Z","0.1.0-alpha.3":"2025-04-20T21:53:13.034Z","0.1.0-alpha.4":"2025-04-20T23:33:16.520Z","0.1.0-alpha.5":"2025-04-21T00:39:59.926Z","0.1.0-alpha.6":"2025-04-21T01:19:26.316Z","0.1.0-alpha.7":"2025-04-21T10:41:30.741Z","0.1.0-alpha.8":"2025-04-22T08:52:34.654Z","0.1.0-alpha.9":"2025-04-22T09:56:03.703Z","0.1.0-alpha.11":"2025-04-22T10:34:32.253Z","0.1.0-alpha.12":"2025-04-22T15:43:19.027Z","0.1.0-alpha.13":"2025-04-22T16:42:43.844Z","0.1.0-alpha.14":"2025-04-23T13:00:41.207Z","0.1.0-alpha.15":"2025-04-23T13:34:04.786Z","0.1.0-alpha.16":"2025-04-24T10:40:19.411Z","0.1.0-alpha.17":"2025-04-24T11:11:56.856Z","0.1.0-alpha.18":"2025-04-26T19:11:00.906Z","0.1.0-alpha.19":"2025-04-27T19:38:18.708Z","0.1.0-alpha.20":"2025-04-27T20:36:33.056Z","0.1.0-alpha.21":"2025-04-27T21:41:10.348Z","0.1.0-alpha.22":"2025-04-27T23:55:45.909Z","0.1.0-alpha.23":"2025-04-28T00:33:46.366Z","0.1.0-alpha.24":"2025-04-28T01:12:06.720Z","0.1.0-alpha.25":"2025-04-28T01:50:27.908Z","0.1.0-alpha.26":"2025-04-28T06:27:19.584Z","0.1.0-alpha.27":"2025-04-28T06:41:53.127Z","0.1.0-alpha.28":"2025-04-28T07:02:33.143Z","0.1.0-alpha.29":"2025-04-28T07:05:00.704Z","0.1.0-alpha.30":"2025-04-28T07:40:41.357Z","0.1.0-alpha.31":"2025-04-28T09:31:54.581Z","0.1.0-alpha.32":"2025-04-28T09:40:09.290Z","0.1.0-alpha.33":"2025-04-28T09:53:42.527Z","0.1.0-alpha.34":"2025-04-28T10:10:09.413Z","0.1.0-alpha.35":"2025-04-28T11:11:19.742Z","0.1.0-alpha.36":"2025-04-28T11:50:28.360Z","0.1.0-alpha.37":"2025-04-28T12:13:00.458Z","0.1.0-alpha.38":"2025-04-28T13:09:10.096Z","0.1.0-alpha.39":"2025-04-28T13:12:12.031Z","0.1.0-alpha.40":"2025-04-28T13:28:43.000Z","0.1.0-alpha.41":"2025-04-28T17:01:59.443Z","0.1.0-alpha.42":"2025-04-28T17:12:45.051Z","0.1.0-alpha.43":"2025-04-28T17:23:25.991Z","0.1.0-alpha.44":"2025-04-28T17:37:31.011Z","0.1.0-alpha.45":"2025-04-28T17:51:04.313Z","0.1.0-alpha.46":"2025-04-28T18:05:41.919Z","0.1.0-alpha.47":"2025-04-28T18:24:27.524Z","0.1.0-alpha.48":"2025-04-28T18:32:47.632Z","0.1.0-alpha.49":"2025-04-28T18:43:44.012Z","0.1.0-alpha.50":"2025-04-29T10:52:25.300Z","0.1.0-alpha.51":"2025-04-29T19:14:39.439Z","0.1.0-alpha.52":"2025-04-30T14:59:03.944Z","0.1.0-alpha.53":"2025-04-30T16:55:14.861Z","0.1.0-alpha.54":"2025-05-01T09:34:12.613Z","0.1.0-alpha.55":"2025-05-01T16:02:36.828Z","0.1.0-rc.1":"2025-05-02T11:58:41.551Z","0.1.0-rc.2":"2025-05-03T20:10:46.299Z","0.1.0":"2025-05-12T12:12:47.871Z","0.2.0-beta.1":"2025-06-22T11:34:21.382Z","0.2.0-beta.2":"2025-06-23T03:12:43.302Z","0.2.0-beta.3":"2025-06-23T04:51:55.519Z","0.2.0-beta.4":"2025-06-23T06:18:36.438Z","0.2.0-beta.5":"2025-06-23T21:51:26.899Z","0.2.0":"2025-06-25T02:48:45.016Z","0.2.1-beta.1":"2025-07-04T11:18:55.503Z","0.2.1-beta.2":"2025-07-04T12:20:16.147Z","0.2.1-beta.9":"2025-07-12T06:45:49.501Z","0.2.1":"2025-07-17T12:40:06.376Z","0.2.2":"2025-08-28T16:17:40.251Z","0.2.3":"2025-09-08T11:41:42.480Z","0.3.0":"2025-10-17T18:31:23.403Z","0.3.1":"2025-10-21T13:36:52.456Z","0.3.2":"2025-10-21T14:57:03.998Z","0.3.3":"2025-10-21T16:49:51.527Z","0.3.4":"2025-10-22T06:39:06.067Z","0.3.5":"2025-10-23T08:37:15.524Z","0.3.6":"2025-10-23T15:03:34.528Z","0.3.7":"2025-11-17T09:37:34.949Z","0.3.8":"2025-11-17T17:11:14.963Z","0.3.9":"2026-02-01T22:31:11.043Z","0.3.10":"2026-02-13T08:57:53.441Z","0.3.11":"2026-02-14T00:54:49.419Z","0.3.12":"2026-03-14T22:15:25.970Z","0.3.14":"2026-05-20T06:27:57.709Z","0.3.15":"2026-05-20T06:53:43.720Z"},"bugs":{"url":"https://github.com/iosazee/expo-passkey/issues"},"author":{"name":"Zee Mudia","email":"zee@zeemudia.com","url":"https://github.com/iosazee"},"license":"MIT","homepage":"https://github.com/iosazee/expo-passkey#readme","keywords":["react-native","expo","expo-passkey","ExpoPasskeyModule","passkey","biometric","authentication","better-auth","face-id","touch-id","fingerprint"],"repository":{"type":"git","url":"git+https://github.com/iosazee/expo-passkey.git"},"description":"Passkey authentication for Expo apps with Better Auth integration","maintainers":[{"name":"iosazee","email":"zee@zeemudia.com"}],"readme":"# Expo Passkey\n\n<p align=\"center\">\n  <img src=\"https://img.shields.io/badge/Platform-iOS%20%7C%20Android%20%7C%20Web-blue\" alt=\"Platform iOS | Android | Web\" />\n  <img src=\"https://img.shields.io/badge/License-MIT-green\" alt=\"MIT License\" />\n  <img src=\"https://img.shields.io/badge/TypeScript-Ready-blue\" alt=\"TypeScript Ready\" />\n  <img src=\"https://img.shields.io/badge/Status-STABLE-brightgreen\" alt=\"Stable Status\" />\n</p>\n\nThis is a cross-platform Expo module and Better Auth plugin that brings passkey authentication to your Expo apps on **web, iOS, and Android**. Features a unified passkey table structure that works seamlessly across all platforms, making it perfect for both universal apps using react-native-web and projects with separate mobile and web frontends.\n\n> **v0.3.15**: Documentation now tracks the current\n> [`expo-passkey-liveness`](https://github.com/iosazee/expo-passkey-liveness)\n> alpha integration, the `livenessToken` forwarding added in v0.3.14, and\n> the Better Auth 1.6+ session-resolution fallback introduced in v0.3.13.\n\n## 📱 Example Project\n\nCheck out the companion example monorepo at\n[`epk-example-app`](https://github.com/iosazee/epk-example-app), which\ndemonstrates `expo-passkey` and `expo-passkey-liveness` end to end:\n\n- **Backend**: Next.js 15 + Better Auth + Prisma, wiring both plugins in one `betterAuth()` call\n- **Web App**: Browser WebAuthn registration/authentication with liveness-token enforcement and debug views\n- **Mobile App**: Expo SDK 55 dev-client app using native passkeys, `expo-secure-store`, and liveness wrappers\n- **Audit Surface**: Debug routes show `passkey.metadata.liveness` and `passkeyLivenessSession` rows after ceremonies\n- **Deployment Shape**: Vercel-ready web backend plus iOS Associated Domains and Android Asset Links setup for native apps\n\nUse it as the current integration reference when you want passkeys alone,\npasskeys plus liveness gating, or a full passwordless email-OTP fallback.\n\n## 🎬 Video Demos\n\nSee Expo Passkey in action on different platforms:\n\n### iOS Demo\n[![Watch the iOS Demo](https://img.shields.io/badge/Watch-iOS%20Demo%20with%20Face%20ID-blue?style=for-the-badge&logo=apple)](https://server.nubialand.com/uploads/Expo-Passkey-Demo.mp4)\n\n### Android Demo\n[![Watch the Android Demo](https://img.shields.io/badge/Watch-Android%20Demo%20with%20Fingerprint-green?style=for-the-badge&logo=android)](https://server.nubialand.com/uploads/epk-demo.mp4)\n\n### Cross-Platform Portability Demo\n[![Watch the Cross-Platform Demo](https://img.shields.io/badge/Watch-Cross%20Platform%20Portability%20Demo-purple?style=for-the-badge&logo=webauthn)](https://server.nubialand.com/uploads/ios_web.mp4)\n\n*These demos show the complete passkey experience from registration to authentication using biometric verification, including cross-platform passkey portability.*\n\n## 📋 Table of Contents\n\n- [Overview](#overview)\n- [Key Features](#key-features)\n- [Platform Requirements](#platform-requirements)\n- [Installation](#installation)\n- [Platform Setup](#platform-setup)\n  - [iOS Setup](#ios-setup)\n  - [Android Setup](#android-setup)\n  - [Web Setup](#web-setup)\n- [Quick Start](#quick-start)\n- [Optional Liveness Gating](#optional-liveness-gating)\n- [Complete API Reference](#complete-api-reference)\n- [Database Schema](#database-schema)\n- [Custom Schema Configuration](#custom-schema-configuration)\n- [Cross-Platform Usage](#cross-platform-usage)\n- [Client Preferences](#client-preferences)\n- [Database Optimizations](#database-optimizations)\n- [Troubleshooting](#troubleshooting)\n- [Security Considerations](#security-considerations)\n- [Error Handling](#error-handling)\n- [Example Project](#example-project)\n- [License](#license)\n\n## Overview\n\nExpo Passkey bridges the gap between Better Auth's backend capabilities and cross-platform authentication on web, mobile, and native platforms. It allows your users to authenticate securely using Face ID, Touch ID, fingerprint recognition, or platform authenticators in web browsers, providing a modern, frictionless authentication experience.\n\nThis plugin implements a comprehensive FIDO2/WebAuthn passkey solution that connects Better Auth's backend infrastructure with platform-specific authentication capabilities, offering a complete end-to-end solution that works seamlessly across web, iOS, and Android with **client-controlled security preferences** and **cross-platform credential syncing**.\n\n## Key Features\n\n- ✅ **Cross-Platform Support**: Works on web browsers, iOS (16+), and Android (10+)\n- ✅ **Unified Table Structure**: Single table works across web, mobile, and all platforms\n- ✅ **Custom Schema Configuration**: Customize database table names to fit your existing structure\n- ✅ **Universal App Ready**: Perfect for Expo + react-native-web projects and separate frontend architectures\n- ✅ **Platform-Specific Optimization**: Native biometrics on mobile, WebAuthn in browsers\n- ✅ **Client-Controlled Preferences**: Specify attestation, user verification, and authenticator requirements\n- ✅ **Enterprise-Ready Security**: Support for direct attestation and required user verification\n- ✅ **Cross-Platform Syncing**: Automatic support for iCloud Keychain, Google Password Manager, and hardware keys\n- ✅ **Seamless Integration**: Works directly with Better Auth server and client\n- ✅ **Better Auth 1.6+ Compatible**: Session fallback avoids false `SESSION_REQUIRED` failures in newer Better Auth runtimes\n- ✅ **Complete Lifecycle Management**: Registration, authentication, and revocation flows\n- ✅ **Type-Safe API**: Comprehensive TypeScript definitions and autocomplete\n- ✅ **Secure Device Binding**: Ensures keys are bound to specific devices/platforms\n- ✅ **Optional Liveness Gating**: Forwards `livenessToken` to the companion `expo-passkey-liveness` enforcement hook\n- ✅ **Automatic Cleanup**: Optional automatic revocation of unused passkeys\n- ✅ **Rich Metadata**: Store and retrieve device-specific context with each passkey\n- ✅ **Portable Passkeys**: Supports iCloud Keychain, Google Password Manager, and hardware keys\n\n## Platform Requirements\n\n| Platform | Minimum Version | Authentication Requirements |\n|----------|----------------|----------------------------|\n| Web      | Modern browsers with WebAuthn | Platform authenticator or security key |\n| iOS      | iOS 16+        | Face ID or Touch ID configured |\n| Android  | Android 10+ (API level 29+) | Fingerprint or Face Recognition configured |\n\n## Installation\n\n### Client Installation\nIn your Expo app:\n```bash\n# Install the package\nnpm i expo-passkey\n\n# Install peer dependencies (if not already installed)\nnpx expo install expo-application expo-local-authentication expo-secure-store expo-crypto expo-device\n\n# For web support, also install:\nnpm install @simplewebauthn/browser\n```\n\n### Optional Liveness Extension\n\nIf you want face presentation-attack-detection (PAD) before passkey\nregistration or authentication, install the sibling package too:\n\n```bash\nnpm install expo-passkey expo-passkey-liveness@next\n```\n\n`expo-passkey` works without the liveness package. When the sibling\nplugin is installed and configured with server enforcement,\n`livenessToken` becomes the bridge between the two packages.\n\n**Import Strategy**:\nThe package uses platform-specific entry points to prevent import conflicts:\n\n```typescript\n// ✅ Correct imports\nimport { expoPasskeyClient } from \"expo-passkey/native\";  // Mobile\nimport { expoPasskeyClient } from \"expo-passkey/web\";     // Web  \nimport { expoPasskey } from \"expo-passkey/server\";        // Server\n\n// ❌ Avoid this - will show helpful error\nimport { expoPasskeyClient } from \"expo-passkey\";         // Guard rail\n```\n\n### Server Installation\nIn your auth server:\n```bash\n# Install the package\nnpm i expo-passkey\n\n# Install peer dependencies (if not already installed)\nnpm install better-auth better-fetch @simplewebauthn/server zod\n```\n\n## Platform Setup\n\n### iOS Setup\n\nTo enable passkeys on iOS, you need to associate your app with a domain:\n\n1. **Host Apple App Site Association File**:\n   \n   Create an Apple App Site Association file at `https://<your_domain>/.well-known/apple-app-site-association`:\n\n   ```json\n   {\n     \"webcredentials\": {\n       \"apps\": [\"<teamID>.<bundleID>\"]\n     }\n   }\n   ```\n\n   Replace `<teamID>` with your Apple Developer Team ID and `<bundleID>` with your app's bundle identifier.\n\n2. **Configure Your Expo App**:\n   \n   Add the associated domain to your `app.json`:\n\n   ```json\n   {\n     \"expo\": {\n       \"ios\": {\n         \"associatedDomains\": [\"webcredentials:your_domain\"]\n       }\n     }\n   }\n   ```\n\n3. **Configure Server Plugin**:\n   \n   Add your domain to the `origin` array in the expoPasskey options:\n\n   ```typescript\n   expoPasskey({\n     rpId: \"example.com\",\n     rpName: \"Your App Name\",\n     origin: [\"https://example.com\"] // Your associated domain\n   })\n   ```\n\n### Android Setup\n\nTo enable passkeys on Android:\n\n1. **Host Asset Links JSON File**:\n   \n   Create an asset links file at `https://<your_domain>/.well-known/assetlinks.json`:\n\n   ```json\n   [\n     {\n       \"relation\": [\"delegate_permission/common.handle_all_urls\"],\n       \"target\": {\n         \"namespace\": \"android_app\",\n         \"package_name\": \"<package_name>\",\n         \"sha256_cert_fingerprints\": [\"<sha256_cert_fingerprint>\"]\n       }\n     }\n   ]\n   ```\n\n   You can generate this file using the [Digital Asset Links Tool](https://developers.google.com/digital-asset-links/tools/generator).\n\n2. **Get the Android Origin Value**:\n   \n   For Android, the origin is derived from the SHA-256 hash of the APK signing certificate. Use this Python code to convert your SHA-256 fingerprint:\n\n   ```python\n   import binascii\n   import base64\n   \n   fingerprint = '91:F7:CB:F9:D6:81:53:1B:C7:A5:8F:B8:33:CC:A1:4D:AB:ED:E5:09:C5'\n   print(\"android:apk-key-hash:\" + base64.urlsafe_b64encode(binascii.a2b_hex(fingerprint.replace(':', ''))).decode('utf8').replace('=', ''))\n   ```\n\n   Replace the value of `fingerprint` with your own.\n\n3. **Configure Server Plugin**:\n   \n   Add the android origin to your expoPasskey options:\n\n   ```typescript\n   expoPasskey({\n     rpId: \"example.com\",\n     rpName: \"Your App Name\",\n     origin: [\n       \"https://example.com\", // Your website\n       \"android:apk-key-hash:<your-base64url-encoded-hash>\" // Android app signature\n     ]\n   })\n   ```\n\n### Web Setup\n\nWeb setup is automatic when using the plugin in a browser environment. Ensure your site is served over HTTPS (required for WebAuthn) and that your server configuration includes your web domain in the `origin` array.\n\n## Quick Start\n\n1. **Add to Server**:\n```typescript\nimport { betterAuth } from \"better-auth\";\nimport { expoPasskey } from \"expo-passkey/server\";\n\nexport const auth = betterAuth({\n  plugins: [\n    expoPasskey({\n      rpId: \"example.com\",\n      rpName: \"Your App Name\",\n      origin: [\n        \"https://example.com\",\n        \"android:apk-key-hash:<your-base64url-encoded-hash>\"\n      ],\n      // Optional settings\n      logger: {\n        enabled: true,           // Enable detailed logging (default: true in dev)\n        level: \"debug\",          // Log level: \"debug\", \"info\", \"warn\", \"error\"\n      },\n      rateLimit: {\n        registerWindow: 300,     // Time window in seconds for rate limiting\n        registerMax: 3,          // Max registration attempts in window\n        authenticateWindow: 60,  // Time window for auth attempts\n        authenticateMax: 5,      // Max auth attempts in window\n      },\n      cleanup: {\n        inactiveDays: 30,        // Auto-revoke passkeys after 30 days of inactivity\n        disableInterval: false,  // Set to true in serverless environments\n      },\n      schema: {\n        authPasskey: { modelName: \"user_passkeys\" },\n        passkeyChallenge: { modelName: \"auth_challenges\" }\n      }\n    })\n  ]\n});\n```\n\nFor serverless environments such as Vercel, set\n`cleanup.disableInterval: true` so the auth handler does not keep background\ntimers alive.\n\n2. **Migrate the Database**\n\nRun the migration or generate the schema to add the necessary fields and tables to the database.\n\n<details>\n  <summary><strong>🚀 Migrate</strong></summary>\n\n  ```bash\n  npx @better-auth/cli migrate\n  ```\n\n</details>\n\n<details>\n  <summary><strong>⚙️ Generate</strong></summary>\n\n  ```bash\n  npx @better-auth/cli generate\n  ```\n\n</details>\n\nSee the [Schema](#database-schema) to add the models/fields manually.\n\n3. **Add to Client**:\n\n**For Mobile App (React Native/Expo)**:\n```typescript\nimport { createAuthClient } from \"better-auth/react\";\nimport { expoClient } from \"@better-auth/expo/client\";\nimport { expoPasskeyClient } from \"expo-passkey/native\";\nimport * as SecureStore from \"expo-secure-store\";\n\nexport const authClient = createAuthClient({\n  baseURL: process.env.EXPO_PUBLIC_AUTH_BASE_URL,\n  plugins: [\n    expoClient({\n      scheme: \"your-app\",\n      storagePrefix: \"your_app\",\n      storage: SecureStore,\n    }),\n    expoPasskeyClient({\n      storagePrefix: \"your_app\",\n      rpId: \"example.com\",        // Recommended for native - prevents authentication errors\n      timeout: 60000,              // Optional: WebAuthn operation timeout (default: 60000ms)\n    }),\n    // ... other plugins\n  ],\n});\n\nexport const {\n  registerPasskey,\n  authenticateWithPasskey,\n  listPasskeys,\n  revokePasskey,\n  isPasskeySupported,\n  getBiometricInfo,\n  getDeviceInfo\n} = authClient;\n```\n\n**For Web App (Next.js/React)**:\n```typescript\nimport { createAuthClient } from \"better-auth/react\";\nimport { expoPasskeyClient } from \"expo-passkey/web\";\n\nexport const authClient = createAuthClient({\n  baseURL: process.env.NEXT_PUBLIC_APP_URL,\n  plugins: [\n    expoPasskeyClient({\n      rpId: \"example.com\",        // Optional - auto-detected from window.location.hostname\n      timeout: 60000,              // Optional: WebAuthn operation timeout (default: 60000ms)\n    }),\n    // ... other plugins\n  ],\n});\n\nexport const {\n  isPlatformAuthenticatorAvailable,\n  registerPasskey,\n  authenticateWithPasskey,\n  listPasskeys,\n  revokePasskey,\n} = authClient;\n```\n\n## Optional Liveness Gating\n\n`expo-passkey` accepts an optional `livenessToken` on both registration\nand authentication. The core package does not validate this token by\nitself; it simply forwards the field so `expo-passkey-liveness` can\nenforce it in a Better Auth hook before the passkey endpoint handler runs.\n\nCompose `expoPasskeyLiveness()` after `expoPasskey()` in the same\n`betterAuth()` call. Both plugins must use the same `rpId`.\n\n```typescript\nimport { betterAuth } from \"better-auth\";\nimport { expoPasskey } from \"expo-passkey/server\";\nimport {\n  expoPasskeyLiveness,\n  rekognitionProvider,\n  redisReplayStore,\n} from \"expo-passkey-liveness/server\";\n\nexport const auth = betterAuth({\n  plugins: [\n    expoPasskey({\n      rpId: \"example.com\",\n      rpName: \"Your App Name\",\n      origin: [\"https://example.com\"],\n    }),\n    expoPasskeyLiveness({\n      rpId: \"example.com\",\n      liveness: {\n        required: \"both\", // \"registration\" | \"authentication\" | \"both\"\n        provider: rekognitionProvider({ region: \"us-east-1\" }),\n        minScore: 90,\n        replayStore: redisReplayStore(redis),\n      },\n      cleanup: {\n        disableInterval: true, // recommended in serverless runtimes\n      },\n    }),\n  ],\n});\n```\n\nThe liveness package exposes:\n\n- `POST /expo-passkey/liveness/session`\n- `POST /expo-passkey/liveness/verify`\n- a `hooks.before` enforcement layer that validates `livenessToken`\n  before `/expo-passkey/register` and/or `/expo-passkey/authenticate`\n  runs\n- an audit slice written into `passkey.metadata.liveness`\n\nNative clients can use the liveness wrappers:\n\n```typescript\nimport {\n  registerPasskeyWithLiveness,\n  authenticateWithPasskeyAndLiveness,\n} from \"expo-passkey-liveness/native\";\n\nconst registerResult = await registerPasskeyWithLiveness(\n  {\n    userId: session.user.id,\n    userName: session.user.email,\n    displayName: session.user.name ?? session.user.email,\n    rpId: \"example.com\",\n    rpName: \"Your App Name\",\n  },\n  { fetcher, registerPasskey }\n);\n\nconst authResult = await authenticateWithPasskeyAndLiveness(\n  { rpId: \"example.com\" },\n  { fetcher, authenticateWithPasskey }\n);\n```\n\nOr pass a token manually:\n\n```typescript\nconst live = await verifyLiveness(\n  { challenge: \"registration\" },\n  { fetcher }\n);\n\nif (!live.error && live.data) {\n  await registerPasskey({\n    userId: session.user.id,\n    userName: session.user.email,\n    rpId: \"example.com\",\n    rpName: \"Your App Name\",\n    livenessToken: live.data.livenessToken,\n  });\n}\n```\n\nThe liveness package's web entrypoint is currently a stub that returns\n`LIVENESS_NOT_SUPPORTED`; the example app uses a local web-only adapter\nto exercise the server pipeline with a demo `customProvider`.\n\nWhen `expo-passkey-liveness` is not installed or does not gate an\noperation, `livenessToken` is ignored and existing passkey-only flows\ncontinue to work.\n\n## Complete API Reference\n\n### Client API\n\n#### Client Options\n\nConfigure the passkey client when initializing:\n\n```typescript\ninterface ExpoPasskeyClientOptions {\n  /**\n   * Prefix for storage keys\n   * @default '_better-auth'\n   */\n  storagePrefix?: string;\n\n  /**\n   * Timeout for WebAuthn operations in milliseconds\n   * @default 60000 (1 minute)\n   */\n  timeout?: number;\n\n  /**\n   * Relying Party ID - the domain of your application\n   * @default window.location.hostname (web) or undefined (native)\n   * @example 'example.com'\n   *\n   * IMPORTANT: For native apps, this should match your server's rpId.\n   * Can be overridden per-operation by passing rpId to registerPasskey()\n   * or authenticateWithPasskey().\n   */\n  rpId?: string;\n}\n```\n\n**Native App Example:**\n```typescript\nexpoPasskeyClient({\n  storagePrefix: \"myapp\",\n  rpId: \"example.com\",     // Required for reliable native auth\n  timeout: 60000,\n})\n```\n\n**Web App Example:**\n```typescript\nexpoPasskeyClient({\n  rpId: \"example.com\",     // Optional - auto-detected from URL\n  timeout: 60000,\n})\n```\n\n#### `registerPasskey(options): Promise<RegisterPasskeyResult>`\n\nRegisters a new passkey for a user with full client preference control.\n\n**⚠️ Authentication Required**: User must be authenticated before calling this function. The server associates the passkey with the active session user, not a trusted client-supplied user id.\n\n```typescript\ninterface RegisterOptions {\n  userId: string;              // Required client-side WebAuthn user handle/local credential key\n  userName: string;            // Required: User name for the passkey\n  displayName?: string;        // Optional: Display name (defaults to userName)\n  rpId?: string;               // Optional: Relying Party ID (auto-detected on web)\n  rpName?: string;             // Optional: Relying Party name\n  attestation?: \"none\" | \"indirect\" | \"direct\" | \"enterprise\";\n  authenticatorSelection?: {   // Optional: Authenticator selection criteria\n    authenticatorAttachment?: \"platform\" | \"cross-platform\";\n    residentKey?: \"required\" | \"preferred\" | \"discouraged\";\n    requireResidentKey?: boolean;\n    userVerification?: \"required\" | \"preferred\" | \"discouraged\";\n  };\n  timeout?: number;            // Optional: Timeout in milliseconds\n  \n  metadata?: {                 // Optional: Additional metadata to store\n    deviceName?: string;       // Device name (e.g. \"John's iPhone\")\n    deviceModel?: string;      // Device model (e.g. \"iPhone 14 Pro\")\n    appVersion?: string;       // App version\n    lastLocation?: string;     // Context where registered\n    manufacturer?: string;     // Device manufacturer\n    brand?: string;            // Device brand\n    biometricType?: string;    // Type of biometric used\n    [key: string]: unknown;        // Any other custom metadata\n  };\n\n  livenessToken?: string;      // Optional: forwarded to expo-passkey-liveness when installed\n}\n\n// Return type\ninterface RegisterPasskeyResult {\n  data: { \n    success: boolean; \n    rpName: string;            // Relying party name from server config \n    rpId: string;              // Relying party ID from server config\n  } | null;\n  error: Error | null;\n}\n```\n\n#### `authenticateWithPasskey(options?): Promise<AuthenticatePasskeyResult>`\n\nAuthenticates a user with a registered passkey. Works across all platforms.\n\n```typescript\ninterface AuthenticateOptions {\n  userId?: string;             // Optional: User ID (for targeted authentication)\n  rpId?: string;               // Optional: Relying Party ID (auto-detected on web)\n  timeout?: number;            // Optional: Timeout in milliseconds\n  userVerification?: \"required\" | \"preferred\" | \"discouraged\";\n  metadata?: {                 // Optional: Additional metadata to update\n    lastLocation?: string;     // Context where authentication occurred\n    appVersion?: string;       // App version\n    [key: string]: unknown;        // Any other custom metadata\n  };\n  livenessToken?: string;      // Optional: forwarded to expo-passkey-liveness when installed\n}\n\n// Return type\ninterface AuthenticatePasskeyResult {\n  data: { \n    token: string;             // Session token for authentication\n    user: {                    // User object\n      id: string;              // User ID\n      email: string;           // User email\n      [key: string]: any;      // Any other user properties\n    };\n  } | null;\n  error: Error | null;\n}\n```\n\n#### `listPasskeys(options): Promise<ListPasskeysResult>`\n\nRetrieve all registered passkeys for a user.\n\n**⚠️ Authentication Required**: User must be authenticated before calling this function.\n\n```typescript\ninterface ListPasskeysOptions {\n  userId: string;          // Required: User ID to list passkeys for\n  limit?: number;          // Optional: Maximum number of passkeys to return\n  offset?: number;         // Optional: Offset for pagination\n}\n\ninterface ListPasskeysResult {\n  data: {\n    passkeys: Array<{\n      id: string;\n      userId: string;\n      credentialId: string;\n      platform: string;\n      lastUsed: string;\n      status: \"active\" | \"revoked\";\n      createdAt: string;\n      metadata: Record<string, unknown>;\n    }>;\n    nextOffset?: number;\n  } | null;\n  error: Error | null;\n}\n```\n\n#### `revokePasskey(options): Promise<RevokePasskeyResult>`\n\nRevoke a passkey, preventing it from being used for authentication.\n\n**⚠️ Authentication Required**: User must be authenticated before calling this function. The server validates ownership from the active session.\n\n**🔐 Security Note**: As of v0.3.0, userId is no longer accepted from the client for security. The server validates that the user owns the passkey being revoked.\n\n```typescript\ninterface RevokePasskeyOptions {\n  credentialId: string;    // Required: Credential ID to revoke\n  reason?: string;         // Optional: Reason for revocation\n}\n\ninterface RevokePasskeyResult {\n  data: { success: boolean } | null;\n  error: Error | null;\n}\n```\n\n**Example:**\n```typescript\n// Revoke a passkey\nconst result = await revokePasskey({\n  credentialId: \"credential-id-123\",\n  reason: \"User requested removal\"\n});\n\nif (result.data?.success) {\n  console.log(\"Passkey revoked successfully\");\n}\n```\n\n#### Platform Detection Functions\n\n```typescript\n// Check if passkeys are supported on current platform\nconst isSupported = await isPasskeySupported();\n\n// Get platform-specific device information (mobile only)\nif (Platform.OS !== 'web') {\n  const deviceInfo = await getDeviceInfo();\n  const biometricInfo = await getBiometricInfo();\n}\n\n// Check platform authenticator availability (web only)\nif (Platform.OS === 'web') {\n  const isAvailable = await isPlatformAuthenticatorAvailable();\n}\n```\n\n\n## Cross-Platform Usage\n\n### Separate Frontend Applications\n\nFor projects with separate mobile and web frontends that share the same backend, both applications can use the `expoPasskeyClient()` plugin:\n\n**Mobile App Example**:\n```typescript\n// Mobile app (React Native/Expo)\nconst { data, error } = await registerPasskey({\n  userId: \"user123\",\n  userName: \"john@example.com\",\n  displayName: \"John Doe\",\n  rpId: \"example.com\",\n  rpName: \"My App\"\n});\n\nif (data) {\n  console.log(\"Passkey registered on mobile!\");\n}\n```\n\n**Web App Example**:\n```typescript\n// Web app (Next.js/React)\nconst { data, error } = await registerPasskey({\n  userId: \"user123\",\n  userName: \"john@example.com\", \n  displayName: \"John Doe\",\n  rpId: \"example.com\",\n  rpName: \"My App\"\n});\n\nif (data) {\n  console.log(\"Passkey registered on web!\");\n}\n```\n\n### Cross-Platform Passkey Syncing\n\nThe plugin automatically supports cross-platform credential usage:\n\n#### **iCloud Keychain Flow**\n```typescript\n// 1. User registers on iPhone (native app)\nawait registerPasskey({\n  userId: \"user123\",\n  userName: \"john@example.com\",\n  authenticatorSelection: {\n    authenticatorAttachment: \"platform\",  // Uses Face ID/Touch ID\n    userVerification: \"required\"\n  }\n  // Automatically syncs to iCloud Keychain\n});\n\n// 2. User opens web app on Mac (same iCloud account)\nawait authenticateWithPasskey({\n  // No userId needed - discovers credentials automatically\n  // Can access same passkey from iCloud Keychain\n});\n```\n\n#### **Hardware Key Flow**\n```typescript\n// 1. Register YubiKey on mobile\nawait registerPasskey({\n  userId: \"user123\",\n  userName: \"john@example.com\",\n  authenticatorSelection: {\n    authenticatorAttachment: \"cross-platform\", // YubiKey/Security key\n    userVerification: \"preferred\"\n  }\n});\n\n// 2. Use same YubiKey on web\nawait authenticateWithPasskey({\n  userId: \"user123\", // Optional - can discover automatically\n  // Same YubiKey works across platforms\n});\n```\n\n### Platform-Specific Features\n\nYou can check the current platform and access platform-specific features:\n\n```typescript\nimport { Platform } from 'react-native';\n\n// Mobile-specific features\nif (Platform.OS !== 'web') {\n  const biometricInfo = await getBiometricInfo();\n  const deviceInfo = await getDeviceInfo();\n}\n\n// Web-specific features\nif (Platform.OS === 'web') {\n  const isAvailable = await isPlatformAuthenticatorAvailable();\n}\n```\n\n### Unified Passkey Management\n\nWith the unified table structure, passkeys work seamlessly across platforms:\n\n- A user can register a passkey on mobile and use it with iCloud Keychain on web\n- Security keys work across all platforms  \n- The same API manages passkeys regardless of where they were created\n- Single database table handles all platform variations\n- Enhanced metadata tracks cross-platform usage and original platform\n\n## Client Preferences\n\n### Security Level Control\n\nControl the security requirements for your passkeys:\n\n#### **High Security (Enterprise)**\n```typescript\nawait registerPasskey({\n  userId: \"executive123\",\n  userName: \"ceo@company.com\",\n  displayName: \"CEO\",\n  \n  // High security preferences\n  attestation: \"direct\",        // Request device attestation for verification\n  authenticatorSelection: {\n    authenticatorAttachment: \"platform\",    // Require biometric authenticator\n    userVerification: \"required\",           // Always require biometric verification\n    residentKey: \"required\",               // Create discoverable credentials\n  },\n  timeout: 120000,             // 2 minutes for complex security flows\n});\n```\n\n#### **Convenient (Consumer)**\n```typescript\nawait registerPasskey({\n  userId: \"user123\",\n  userName: \"user@example.com\",\n  \n  // Convenient preferences\n  attestation: \"none\",         // No attestation needed\n  authenticatorSelection: {\n    authenticatorAttachment: \"platform\",    // Prefer platform but allow cross-platform\n    userVerification: \"preferred\",          // Prefer but don't require\n    residentKey: \"preferred\",              // Prefer discoverable but allow non-discoverable\n  },\n  timeout: 60000,             // 1 minute\n});\n```\n\n#### **Cross-Platform (Hardware Keys)**\n```typescript\nawait registerPasskey({\n  userId: \"user123\",\n  userName: \"user@example.com\",\n  \n  // Cross-platform preferences\n  attestation: \"indirect\",     // Some attestation for verification\n  authenticatorSelection: {\n    authenticatorAttachment: \"cross-platform\", // Allow hardware keys\n    userVerification: \"required\",              // Still require verification\n    residentKey: \"discouraged\",               // Hardware keys often don't support resident keys\n  },\n});\n```\n\n### Adaptive Security\n\nAutomatically adjust security based on device capabilities:\n\n```typescript\n// Check device capabilities first\nconst deviceInfo = await getDeviceInfo();\nconst biometricInfo = await getBiometricInfo();\n\n// Adapt preferences based on device\nlet preferences = {\n  attestation: \"none\" as const,\n  authenticatorSelection: {\n    authenticatorAttachment: \"platform\" as const,\n    userVerification: \"preferred\" as const,\n    residentKey: \"preferred\" as const,\n  }\n};\n\n// High-end devices get stricter requirements\nif (biometricInfo?.isEnrolled && deviceInfo.platform === 'ios') {\n  preferences.authenticatorSelection.userVerification = \"required\";\n  preferences.authenticatorSelection.residentKey = \"required\";\n}\n\n// Enterprise environments might require attestation\nif (process.env.EXPO_PUBLIC_ENVIRONMENT === 'enterprise') {\n  preferences.attestation = \"direct\";\n}\n\nawait registerPasskey({\n  userId: \"user123\",\n  userName: \"user@example.com\",\n  ...preferences,\n});\n```\n\n## Database Schema\n\nThe plugin uses a unified table structure that works seamlessly across all platforms.\n\n### authPasskey Table\n\n| **Field Name**    | **Type**                | **Key** | **Description**                                      |\n|-------------------|-------------------------|---------|------------------------------------------------------|\n| `id`              | `string`                | PK      | Unique identifier for each passkey                   |\n| `userId`          | `string`                | FK      | The ID of the user (references `user.id`)            |\n| `credentialId`    | `string`                | UQ      | Unique identifier of the generated credential        |\n| `publicKey`       | `string`                | -       | Base64 encoded public key                            |\n| `counter`         | `number`                | -       | For WebAuthn signature verification                  |\n| `platform`        | `string`                | -       | Platform on which the passkey is registered          |\n| `lastUsed`        | `string`                | -       | Time the passkey was last used                       |\n| `status`          | `string`                | -       | Status of the passkey (active/revoked)               |\n| `createdAt`       | `string`                | -       | Time when the passkey was created                    |\n| `updatedAt`       | `string`                | -       | Time when the passkey was last updated               |\n| `revokedAt`       | `string` (optional)     | -       | Timestamp when the passkey was revoked (if any)      |\n| `revokedReason`   | `string` (optional)     | -       | Reason for revocation (if any)                       |\n| `metadata`        | `string` (JSON)         | -       | JSON string containing metadata about the device and client preferences |\n| `aaguid`          | `string`                | -       | Authenticator Attestation Globally Unique Identifier |\n\n### passkeyChallenge Table\n\n| **Field Name**        | **Type**                | **Key** | **Description**                                      |\n|-----------------------|-------------------------|---------|------------------------------------------------------|\n| `id`                  | `string`                | PK      | Unique identifier for each challenge                 |\n| `userId`              | `string`                | -       | The ID of the user                                   |\n| `challenge`           | `string`                | -       | Base64url encoded challenge                          |\n| `type`                | `string`                | -       | Type of challenge (registration/authentication)      |\n| `createdAt`           | `string`                | -       | Time when the challenge was created                  |\n| `expiresAt`           | `string`                | -       | Time when the challenge expires                      |\n| `registrationOptions` | `string` (optional)     | -       | JSON string containing client registration preferences |\n\n## Custom Schema Configuration\n\nYou can customize the database table names to fit your existing database structure or naming conventions:\n\n### Basic Configuration\n\n```typescript\nimport { betterAuth } from \"better-auth\";\nimport { expoPasskey } from \"expo-passkey/server\";\n\nexport const auth = betterAuth({\n  plugins: [\n    expoPasskey({\n      rpId: \"example.com\",\n      rpName: \"Your App Name\",\n      // ✨ Custom schema configuration\n      schema: {\n        authPasskey: {\n          modelName: \"user_passkeys\" // Custom table name for passkeys\n        },\n        passkeyChallenge: {\n          modelName: \"auth_challenges\" // Custom table name for challenges\n        }\n      }\n    })\n  ]\n});\n```\n### Default Table Names\n\nIf no custom schema is provided, the plugin uses these default table names:\n\n- **Passkeys**: `authPasskey`\n- **Challenges**: `passkeyChallenge`\n\n\n## Database Optimizations\n\nOptimizing database performance is essential to get the best out of the Expo Passkey plugin.\n\n### Recommended Fields to Index\n\n- **Single field indexes**:\n  - `userId`: For fast lookups of a user's passkeys.\n  - `lastUsed`: For efficient sorting and cleanup operations.\n  - `status`: For filtering by active/revoked status.\n  - `credentialId`: For quick credential lookup during authentication.\n\n- **Compound indexes**:\n  - `(credentialId, status)`: Optimizes the authentication endpoint.\n  - `(userId, status)`: Accelerates the passkey listing endpoint.\n  - `(lastUsed, status)`: Improves performance of cleanup operations.\n  - `(userId, type)`: Improves challenge lookup performance.\n\n## Troubleshooting\n\n### Web Issues\n\n- **HTTPS Required**: WebAuthn only works over HTTPS in production\n- **Browser Support**: Ensure the browser supports WebAuthn and platform authenticators\n- **Same-Origin Policy**: Ensure your RP ID matches your domain\n- **Platform Authenticator**: Some browsers may not have platform authenticators available\n\n### iOS Issues\n\n- **iOS Version Requirements**: Must be running iOS 16+ for passkey support\n- **Biometric Setup**: Ensure Face ID/Touch ID is configured in device settings\n- **Associated Domains**: Verify your apple-app-site-association file is accessible\n- **App Configuration**: Check that associatedDomains is properly set in app.json\n- **Simulator Limitations**: Biometric authentication in simulators requires additional setup:\n  - In the simulator, go to Features → Face ID/Touch ID → Enrolled\n  - When prompted, select \"Matching Face/Fingerprint\" for success testing\n\n### Android Issues\n\n- **API Level**: Must be running Android 10+ (API level 29+)\n- **Biometric Hardware**: Device must have fingerprint or facial recognition hardware\n- **Asset Links**: Ensure your assetlinks.json file is accessible and correctly formatted\n- **Signing Certificates**: Make sure you're using the correct SHA-256 fingerprint\n- **Origin Format**: Verify your android:apk-key-hash format in the server config\n\n### Universal App Issues\n\n- **Platform Detection**: The plugin automatically detects the platform, but you can manually check using `Platform.OS`\n- **Import Issues**: The plugin uses platform-specific entry points to avoid importing incompatible modules\n- **Metro Bundler**: Ensure your Metro configuration supports the export conditions in package.json\n\n### Client Preference Issues\n\n- **Preference Enforcement**: If client preferences aren't being respected, check server logs for stored registration options\n- **Attestation Requirements**: Direct attestation may not be available on all devices or platforms\n- **Hardware Key Support**: Some authenticator selection criteria may not apply to hardware keys\n\n\n## Security Considerations\n\n### Session-Based Validation (v0.3.0+)\n\n**Critical Security Enhancement**: The plugin now validates userId from the authenticated session instead of accepting it from client requests. This prevents account takeover attacks where malicious clients could register passkeys for other users.\n\n- **Registration**: Requires active session. Server extracts userId from session token, not client request.\n- **Revocation**: Requires active session. Server validates ownership before allowing revocation.\n- **Authentication**: Does not require session (users authenticate to create a session).\n\n**Migration from v0.2.x**:\n```typescript\n// Before v0.3.0 (VULNERABLE - don't use)\nawait revokePasskey({ userId: \"user-123\", credentialId: \"cred-123\" });\n\n// After v0.3.0 (SECURE)\nawait revokePasskey({ credentialId: \"cred-123\" });\n// userId is automatically validated from the session\n```\n\n### Additional Security Measures\n\n- **Client Preference Enforcement**: Server enforces client-specified security requirements\n- **Cross-Platform Security**: Passkeys maintain the same security properties across platforms\n- **Domain Verification**: Ensure proper domain verification for both web and mobile\n- **Relying Party ID**: Configure `rpId` correctly to prevent cross-domain attacks\n- **Liveness Tokens**: If you use `expo-passkey-liveness`, configure replay protection in production and keep `rpId` identical between both plugins\n- **Portable Passkeys**: iCloud Keychain and Google Password Manager sync passkeys securely\n- **Hardware Keys**: Support for hardware security keys across all platforms\n- **Attestation Handling**: Proper support for enterprise attestation requirements\n- **Token Security**: Use HTTPS for all API communications\n- **Rate Limiting**: Configure appropriate rate limits to prevent brute force attacks\n\n## Error Handling\n\nThe package provides comprehensive error codes for all platforms:\n\n```typescript\n// Platform-agnostic error handling with preference validation\ntry {\n  const result = await registerPasskey({\n    userId: \"user123\",\n    userName: \"user@example.com\",\n    attestation: \"direct\",\n    authenticatorSelection: {\n      userVerification: \"required\"\n    }\n  });\n  \n  if (result.error) {\n    if (result.error.code === ERROR_CODES.WEBAUTHN.NOT_SUPPORTED) {\n      showPlatformNotSupportedMessage();\n    } else if (result.error.code === ERROR_CODES.BIOMETRIC.AUTHENTICATION_FAILED) {\n      showAuthFailedMessage();\n    } else if (result.error.code === ERROR_CODES.SERVER.VERIFICATION_FAILED) {\n      showPreferenceValidationError();\n    }\n    return;\n  }\n  \n  handleSuccessfulRegistration(result.data);\n} catch (error) {\n  console.error(\"Unexpected error:\", error);\n}\n```\n\n## Example Project\n\nThe current reference app lives in\n[`epk-example-app`](https://github.com/iosazee/epk-example-app). It is a\ntwo-workspace monorepo:\n\n- `apps/web`: Next.js 15, Better Auth, Prisma, email OTP fallback, browser\n  passkeys, liveness enforcement, debug routes, and Vercel deployment shape\n- `apps/mobile`: Expo SDK 55 dev-client app using `@better-auth/expo`,\n  `expo-passkey/native`, `expo-passkey-liveness/native`, and the same backend\n\nThe web app uses a demo `customProvider` that auto-passes liveness so you can\nexercise the server pipeline without third-party credentials. The mobile app is\nthe place to test the native camera ceremony after configuring a native\nprovider adapter such as Rekognition or iProov.\n\n## License\n\nMIT\n\n---\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## Related\n\n- [Better Auth Documentation](https://www.better-auth.com/docs/integrations/expo)\n- [Expo Local Authentication](https://docs.expo.dev/versions/latest/sdk/local-authentication/)\n- [WebAuthn Guide](https://webauthn.guide/)\n- [SimpleWebAuthn](https://simplewebauthn.dev/)\n- [Apple Associated Domains](https://developer.apple.com/documentation/xcode/supporting-associated-domains)\n- [Android Asset Links](https://developers.google.com/digital-asset-links)\n- [Expo Passkey Liveness](https://github.com/iosazee/expo-passkey-liveness)\n- [EPK Example App](https://github.com/iosazee/epk-example-app)\n","readmeFilename":"README.md"}