{"_id":"@sbaiahmed1/react-native-biometrics","_rev":"29-6b206b1eb753c880d2833acc06ac2794","name":"@sbaiahmed1/react-native-biometrics","dist-tags":{"beta":"0.7.1-beta.0","latest":"0.16.1"},"versions":{"0.1.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.1.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.1.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"277702182649114c83abe98be9b4af376fcf9621","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.1.0.tgz","fileCount":30,"integrity":"sha512-z3Yh7loFgnaXpV3Fa5swuTOofnqAKvTsPku6Xrvp3xcv0l5JE9BJoROI+yOpOToVMTz1XPsFaR0+kqLqmz5v1g==","signatures":[{"sig":"MEUCIDWRPs0PPkUb4WqzsqLZ/yktcQzpjScm+CYMymazZECcAiEAv4K1A4TiKc8Qz1pKjMXFIegZdWRzbh3hLy9Bm+I+Dqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192720},"main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"types":"./lib/typescript/src/index.d.ts","source":"./src/index.tsx","default":"./lib/module/index.js"},"./package.json":"./package.json"},"gitHead":"d37d01890da672620e4274cca203cdc72ac21a9c","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","actor":{"name":"sbaiahmed1","type":"user","email":"ahmedclubust@gmail.com"},"email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"A lightweight and unified React Native library for biometric authentication across iOS and Android. Supports Face ID, Touch ID, and Fingerprint with a simple JavaScript API.","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.1.0_1750636687442_0.05640292552231285","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.1.1":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.1.1","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.1.1","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"698c4511f5c18307174d31b87bdc1603ea5d0781","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.1.1.tgz","fileCount":30,"integrity":"sha512-ivCYYgSn+JqqIxglDxB+nzAKPXDVVgQ3GUH8T+K01Kb+Nd3rOcyHRSR0U1GEjrovyExc4v+DDfd18WgelF99SA==","signatures":[{"sig":"MEUCIQCMkqL1tSPzB2z56gl+cMacDK6cT9mDBeCQgq4mOEUq/gIgNCsLOekSOgFAdHcphg8RVvDUdIx3Cumx9tHNkIMuMCk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202933},"main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"types":"./lib/typescript/src/index.d.ts","source":"./src/index.tsx","default":"./lib/module/index.js"},"./package.json":"./package.json"},"gitHead":"d2f3d4d78b1038edc390f1ce1c4260b3fa61114c","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","actor":{"name":"sbaiahmed1","type":"user","email":"ahmedclubust@gmail.com"},"email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"A lightweight and unified React Native library for biometric authentication across iOS and Android. Supports Face ID, Touch ID, and Fingerprint with a simple JavaScript API.","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.1.1_1750804338737_0.8973357376609128","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.2.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.2.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.2.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"86d57db7bdac5f86637cee7c8f95a75b0189a9b0","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.2.0.tgz","fileCount":37,"integrity":"sha512-UfM4C+2L34eeU5cqK+Uj//Zpqc7+1rs41wapcs5ccuBt73+D8pQzuYV7wJyKllPGO9T4c770XVP16nPFIOUygg==","signatures":[{"sig":"MEUCIQC9kzWaIrRvFwTaS9069BTFygufmyRNrxsBcA6nh/3iXAIgFwnZLl7HPoHJX5BpEtyEMepMyaQqmslJjwkF2GLbfG0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219896},"main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"types":"./lib/typescript/src/index.d.ts","source":"./src/index.tsx","default":"./lib/module/index.js"},"./package.json":"./package.json"},"gitHead":"8b7c726678c9e0d530db0e2b90933dc6f7d7c849","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","actor":{"name":"sbaiahmed1","type":"user","email":"ahmedclubust@gmail.com"},"email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"A lightweight and unified React Native library for biometric authentication across iOS and Android. Supports Face ID, Touch ID, and Fingerprint with automatic architecture detection (TurboModules/NativeModules).","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.2.0_1751414591570_0.44620799233721886","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.3.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.3.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.3.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"0c9f22df034056f6840031d127e15e2ca49c5887","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.3.0.tgz","fileCount":37,"integrity":"sha512-Xk3ElLUbjchGemKXXgy6aSuOR+ORT8a/FE8aBji+pgheG3sg4ssoO0SdbbkWcPRJw9IPd7M5V8kj0V+X4kXEHg==","signatures":[{"sig":"MEQCIH4fA21r266KEAXQyHL9t0q3uVESajEScwK5FmTUswifAiAWZVBUc4A4aK+y1OWhVdxDaOPZpFeAPq2DpzYvombonw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":244445},"main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"types":"./lib/typescript/src/index.d.ts","source":"./src/index.tsx","default":"./lib/module/index.js"},"./package.json":"./package.json"},"gitHead":"1f6dde128fd6c68d8ab93b82bc4a0e84f69f0dfa","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","actor":{"name":"sbaiahmed1","type":"user","email":"ahmedclubust@gmail.com"},"email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.9.2","description":"A lightweight and unified React Native library for biometric authentication across iOS and Android. Supports Face ID, Touch ID, and Fingerprint with automatic architecture detection (TurboModules/NativeModules).","directories":{},"_nodeVersion":"23.5.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.3.0_1751764797811_0.8877980027870689","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.4.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.4.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.4.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"ba0d8de8e96c7446fce756aec9e06eecfc60596e","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.4.0.tgz","fileCount":37,"integrity":"sha512-9sZEGupVK73Eb5mSC66LY28NE719JQuxSMbzZUdXvyvQBZPE2p/sDlGQG0nacvVs1Ev1RTlb/TT7TQeppm7Rig==","signatures":[{"sig":"MEYCIQDb/0VWSJMwGOCd+oEGcwFoqmrkGF+YOd6+rP5XkKojGQIhAMarppkwXgCbd9q2hJO1epTmtBvcp+dyTDtVZInakoXz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246955},"main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"types":"./lib/typescript/src/index.d.ts","source":"./src/index.tsx","default":"./lib/module/index.js"},"./package.json":"./package.json"},"gitHead":"7f42cbeef3e2c388f4f3a3e48e79141b83cd867f","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.4.0_1752205351220_0.9433784817031798","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.5.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.5.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.5.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"83952a56d4e99778abdd1cd39c3028533198760a","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.5.0.tgz","fileCount":37,"integrity":"sha512-uv/62+hYh7pOQAoTJ1C5MutARxWufQ2yUG89il4Kn31MLCo78/nWY43Olry6enSifZNLaqGZu6/kDbi04xduwA==","signatures":[{"sig":"MEYCIQDC9xjX6zD3oUK9bLb1Un/4KTUMvNlbI4bK8Nq4PDaeWQIhAIAs+cC6n01hMID9Q66SmeiSldGeqwVK5czPB16BW3er","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":254603},"main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"types":"./lib/typescript/src/index.d.ts","source":"./src/index.tsx","default":"./lib/module/index.js"},"./package.json":"./package.json"},"gitHead":"065ca700b556936927192c9773e1a302918c75f7","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.5.0_1757887678036_0.375785738823051","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.6.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.6.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.6.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"8610769b83ef673396e0ec2908892ea0a378add1","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.6.0.tgz","fileCount":37,"integrity":"sha512-DyDVhu/5a52lIPpWyMJb4MfgdwXp8mblTjUOiVbsez0OYEcwmtEzJ7GtF76ECFD33m1QzRCNrkvXYEiE60ruAw==","signatures":[{"sig":"MEUCIDo01q84UjUqWoJp1pf7kwVkPD6bpUUy5Lx6hFp1Hqr6AiEA8zDChSo3xUIo6p794dP9mxJ4FLjTJIJ5/lJqjSY07x8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":256448},"main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"types":"./lib/typescript/src/index.d.ts","source":"./src/index.tsx","default":"./lib/module/index.js"},"./package.json":"./package.json"},"gitHead":"8734601ccfc15b9fd903ad56f92ddc52dcd64a95","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.6.0_1758562633250_0.8467137560160063","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.6.1":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.6.1","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.6.1","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"76f98d74e528a4d62b1b7ece278ee7180a90931a","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.6.1.tgz","fileCount":53,"integrity":"sha512-ir8X3MN8mj5YnsfKnh2thjdanNV142ZbeOUmpnEcjfaw2ZNLmzRJNxjpUPJsq/xCEAfOnmD6klTCrNx1FzT3jQ==","signatures":[{"sig":"MEYCIQCk8b1dFltMKrU/FjYjq9jqYAvJ+W0Y2wKdugO1rixChwIhAJB3nwhuCHNv+CWD6OTueP5H98rtxItBHFd1G5RVVdTP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":382611},"main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"types":"./lib/typescript/src/index.d.ts","source":"./src/index.tsx","default":"./lib/module/index.js"},"./package.json":"./package.json"},"gitHead":"a0ed8113964e90ea8f6d14f8ab066928892c9d91","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.9.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"23.5.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.6.1_1759533082255_0.2407661660208189","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.6.2":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.6.2","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.6.2","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"a034c266a2f872243c1232a7f4c547bcfb6c9530","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.6.2.tgz","fileCount":37,"integrity":"sha512-tn17TThWgjv/fuDo3CgrfbmkbbX6u1ExULf5aarc0tIJDqMNKoadC1bFSBmg0nxQrjfTkf6KS8QEtKxv5tiwrw==","signatures":[{"sig":"MEUCIQDJUQpNa1IJ6wlv3qcYqyuD6BTqn3O13gABJcpiL8Ur1gIgCHCDEKryir1zAt6h1hpqGCFj2M0kROOKA5Knc2cQ3w0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":256108},"main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"types":"./lib/typescript/src/index.d.ts","source":"./src/index.tsx","default":"./lib/module/index.js"},"./package.json":"./package.json"},"gitHead":"f908a2699fd512108595ef539d9594706f1fc93f","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.6.2_1759536540575_0.4228079198727108","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.7.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.7.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.7.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"5d473937987d2416f6be9fbeedf5f6d715da8f33","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.7.0.tgz","fileCount":67,"integrity":"sha512-sXKL4S6PX/BehptuU53p4C8WJO6SvvTxzSf1HIF+yp8jo/mgbWh8XowikaruDJX6tYKU1DT+8SSy5US9JTw0OQ==","signatures":[{"sig":"MEUCIAaEYR78rjIMPrkUiwj5qtfLiE48ygcT58uFbrZ74CrgAiEA9mvGv0dKXM/CmAJlqjWBrQno+OClf7cCP5QbIhXcq80=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":443782},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./package.json":"./package.json"},"gitHead":"4e0ad7bcd5c3b37ad356c6d4bb6406825f6fe9c0","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.9.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"23.5.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.7.0_1759701203920_0.4419825445149399","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.7.1-beta.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.7.1-beta.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.7.1-beta.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"2c810129d59e40dc44e79e07bde43fec57627ae8","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.7.1-beta.0.tgz","fileCount":67,"integrity":"sha512-IyYn9Z9X0yrJArrCsnLumafMsBcFAE6TMLipGR0gomTe/f+UhHE/eLuU9FyVJZ9aK3x49Rnalin3fsmUOjECKw==","signatures":[{"sig":"MEUCIGGlIJhtMayje5GmOdMwIyZRmdRigivVzc/Raq85YC+hAiEAx5Lw3y/d3/Qs+VYhpZ4r8oBN3QHqlm32inyUy0YgLso=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":435647},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./package.json":"./package.json"},"gitHead":"2e4dcf0e4447206c695090c88345ce83b9b95c2b","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.9.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"23.5.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","readmeFilename":"README.md","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.7.1-beta.0_1759787631970_0.3012097052299354","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.7.2":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.7.2","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.7.2","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"e58d04ccaffc2fa893048d3452f301ef0c1b1689","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.7.2.tgz","fileCount":67,"integrity":"sha512-HPAXVqfMQ8nMShdAVUgOOwRahn+Dfg9NG3ccVx0naeg1Xfp61Tz1wk/7G9EzuqdXxnaaxna1T81tGCRUe/ziJw==","signatures":[{"sig":"MEYCIQDexHp1NJzQtpX8MhT039TzBayrYXuO673ankFpSZ7NrwIhAMnqHnBr2bL9zMqrQUcWuE1zW+K6Ujy6dshdxlTtUSqT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":435640},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./package.json":"./package.json"},"gitHead":"d7f366c2ef6855c4cfc5ba0be88a4c777fc54ead","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.9.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"23.5.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.7.2_1759868963923_0.21416809908215706","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.8.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.8.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.8.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"04f4a546ae6a64405d36c1cf01ec7752e08d21e3","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.8.0.tgz","fileCount":76,"integrity":"sha512-Q3kgn75jnYOEiK3f1dQL45saYVXRI3exL2BhigakDOvJwhOE6TmtR/H1xTbN83/MwgVKqECOv1iWUdYyye6HBA==","signatures":[{"sig":"MEUCICsLQiG0pAsue6Hn4/9uls29jvFYOeaEurPRIcoX0KruAiEA948d6tRHr5R7B0ACkaeN/U6N52uEzwpv5/iMnV2gcek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":464694},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./package.json":"./package.json"},"gitHead":"903381fc6abcc497d71f043d8e4f602b2dfe35ba","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.9.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"23.5.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.8.0_1761776251263_0.5220009601196507","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.9.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.9.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.9.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"a8f73879ea30c1af2a54f24403b7a7894fddff9c","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.9.0.tgz","fileCount":60,"integrity":"sha512-oQdAC347jDhrREEHCfdsMooRQjIvjswr2aNLrAfLvW+OOTWFFuICKm8qMDapek9iimq+fa/lhWuAfdfExXrnsA==","signatures":[{"sig":"MEUCIQCVRxcH6QVxy4FBbdkV7fhzsJUvfHfuHD5Z/qegIxiG1gIgKQ3b+q3bGwpmkrVyg9elMf1Pp8ptCUocyK7yz+5aRzc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":352071},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./package.json":"./package.json"},"gitHead":"6b7057a2df304dd6a5e0d76f29cabde55ed5cd01","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.9.0_1762012028955_0.16241745197968904","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.9.1":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.9.1","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.9.1","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"4bcacff82fec056c20e5fe7a40a34886e0a025ab","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.9.1.tgz","fileCount":76,"integrity":"sha512-s/lS5I3e/D79e7WEHUznlX0t7A/sD+FF8d3amtdL9ik9Y8x06zK8mpIm1qboPM8ICGUg1yPfBNFs/W6b5H+3yw==","signatures":[{"sig":"MEUCIFrx2R2+bxuyET75KCyNx+0rwRXAx5/xn1RchiHV78PwAiEAyzD/wifVthwDyTbDy5+goZAzUjuTaRq7NSXRZOXi8RE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":469884},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./package.json":"./package.json"},"gitHead":"7962847fc220c1d3fd01f902a2617c86370f067c","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.9.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"23.5.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.9.1_1763157235560_0.18369296986904549","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.9.2":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.9.2","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.9.2","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"d59d0946f843c7d15b2a78512ed0501d2698df61","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.9.2.tgz","fileCount":76,"integrity":"sha512-bq0Q6X2YE48DYRwfjXyZyrojBFxI63q5eCd6vyYVQ22qyUSvyng4af1BKqj7MSFNSALJfzEu7q0pQ/hrCUrD5g==","signatures":[{"sig":"MEQCIBcyj00V7NEJy7kwWEv0A+N4yqLQ4eB5vnsmqj3fzTspAiAjrHtdouJdd0vGAeCRSnzagsw8EvBoTFOlv9BAEK5yug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":469287},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./package.json":"./package.json"},"gitHead":"d85d35afc7a1d78fd2d2d168481cc306301dcb9f","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.9.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"23.5.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^17.10.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.9.2_1764369562339_0.6010789255953126","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.10.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.10.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.10.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"a8180ec3664ed228ad659621ef487d8feb0981f6","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.10.0.tgz","fileCount":76,"integrity":"sha512-GGmy0YD3/C8RhP1eUaRu/o25c9GK/6J/Ua8TJxtKh83Tfie+3Lo+tes4Jy3S5/HWReY07O4iVETXnpLeSNnmQQ==","signatures":[{"sig":"MEYCIQD2gi1v+LURHhwcB8uET8Jv75WWgfJKQroCBOwvqyFR1wIhAO9r93PhUVkTLFsnhDVSRKncWFgLfnO0cgZ0JebuFSTC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475497},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./package.json":"./package.json"},"gitHead":"d36a44f513b5a9fe42eba30123d5eb61e7c9c1f4","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.9.4","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"22.21.1","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^19.1.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.4"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.10.0_1766267181296_0.9613601682094672","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.11.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.11.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.11.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"f1d1ff8e284c6e29b4ea6ebc29a959f13d69cb88","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.11.0.tgz","fileCount":76,"integrity":"sha512-pk3jMlyI4RmxhKSKZb/tQbOKqTPO39VvXM32SixgPVaQ7yHbqLwYbaD55wAmsZ7Nsgp+PrAmJ2lckkIoqdw86g==","signatures":[{"sig":"MEUCIQD2aap+0Vqim/Q3VyOD5CAp2PzzPMKj1USI0McZirBkKAIgPqZE0ZgeoH+R3NvkpUETsLw9O3eER107HNccHmZbltk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":509356},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./package.json":"./package.json"},"gitHead":"f8258d14deb6368a64027d34090ccd8661ad2263","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it --only-version","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"11.7.0","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"23.5.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^19.1.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.4"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.11.0_1766346839763_0.8828630811190648","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.12.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.12.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.12.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"1c428e36a0c231e2731b66d6ac2597d4704c9115","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.12.0.tgz","fileCount":76,"integrity":"sha512-8+gd2M5p5IfsR8MyV4dF2pQ1RSC47ZL/x+RZQsY1JFhwMxoeb/NYTcVErG0rPXgPCvojHyGj7aZPRbvTGeypTw==","signatures":[{"sig":"MEYCIQCOS3vfL0nbuEF9V73eQYSWy7zD6pMA83BEZ/bRs404agIhAMG18Cl9BzVskJO8HGmTqUPRb9JvkIR/7x6587kvjAcb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544776},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./package.json":"./package.json"},"gitHead":"9c22b8181a30e3a23951c2d6bd65b5052b0b29ad","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"11.7.0","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"23.5.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^19.1.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.4"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.12.0_1769724643759_0.5351513522173037","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.12.1":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.12.1","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.12.1","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"e5da304abb9dafe9c2a1bc92e3fa0cf852c7fee2","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.12.1.tgz","fileCount":76,"integrity":"sha512-cH/KgEstyi8Msghxd6exP+kZPENBW/v+p1TPcGvGURlKJh8UGvY2hL2RfWMQx4Aj3N6MdtB+EQYCBkuV3FlugQ==","signatures":[{"sig":"MEUCIA0Pw9McFD6pqztMtP+QOgaiadoXUoDcjHl6ngd8xurSAiEAwickJ7DmLMh8zSA0SiHusZl2hhe53yjhU4x7gPPKv7k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":547295},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./package.json":"./package.json"},"gitHead":"c0191d0c90268a6910ab2da467de7e2c2d494b27","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.9.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"22.13.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^19.1.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.4"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.12.1_1770391273938_0.7775405101513355","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.12.2":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.12.2","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.12.2","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"c07e2411ad304ce7d44a0c5b07ef6b675de65e66","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.12.2.tgz","fileCount":60,"integrity":"sha512-dynDt3FpJAFsBkS8FPpNq6DxRV/ednwMK2w/03/vu38O77FUHcUANsPPKHe3skLKT6Q/CqiY7f+F1lJaFlI8Kg==","signatures":[{"sig":"MEUCIAdljHjdqOC3+VLW1FrvXGUZbT3d8e+F4sx4iGy/lLbVAiEA8sODZGhSTYFSeCZl8CEL9oOssX7+HQu5/k8y0tFLqbI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":429581},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./package.json":"./package.json"},"gitHead":"d0dd2ac58b8f86437f0334677f14b721c7f82bea","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^19.1.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.4"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.12.2_1770733948599_0.8871139360875684","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.13.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.13.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.13.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"49792d40db5ae6508f1413526f8749384116bda2","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.13.0.tgz","fileCount":76,"integrity":"sha512-pApLuo6D3+W4yNCfc2KNb60ILCvcYy1hT90fmGdDVRuxOGrAQ+HLxBm9/uQWYs0Q+Sk2RcFVwPS8MTGlgqEaLg==","signatures":[{"sig":"MEUCIQC1e6uexGp0VqwQNGFt8Q156FduTVx1Q6OKE4soa14asQIgBj9J5PGfDG4DwB7VsfIoL/+Xe6atIJZeLkopeWUqazQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":567727},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./package.json":"./package.json"},"gitHead":"f93ef9ad9ee616d20d9de28c699f66122bf88674","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"11.7.0","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"23.5.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^19.1.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.4"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.13.0_1772756519774_0.5531312338254202","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.14.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.14.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.14.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"90fdbbd535506822ea3cd3e834d8c31f3458d51b","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.14.0.tgz","fileCount":60,"integrity":"sha512-Q20kLHiMi6QjHzZJJFmfNYFlsPiKJxj4lDO5yf6svu7oK1NM9a4paPXQoxQaXzcvPNsItGtciTAR80vbV0jVCw==","signatures":[{"sig":"MEUCIG4OCbizFuw/uWAeGsgGXrNPPheYmEypxeFukv8zl1M5AiEArWUl2FEOSHbRu368U+wt1MWUN36kQ5tiqrSoD2MEqlA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":465165},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./package.json":"./package.json"},"gitHead":"5e383e4c051fe476efb666513a3d69870054a276","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^19.1.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.4"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.14.0_1773854932377_0.37797629463577986","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.15.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.15.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.15.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"c8a15fe00c722f4c5d9ed36afcf002d094e5603b","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.15.0.tgz","fileCount":60,"integrity":"sha512-z/CWCcQZWGj8WRSsxu8flNydLAOS33Cv9tFPY4EuUm7Z47ADxjenoi/RFWNmJEQ5dIbGYC+q8WyzP0yWebawQA==","signatures":[{"sig":"MEYCIQDdosW1Pf2HWo/O0OnpeV0SEZifICn8QS3ZaKzv5OwY2wIhAI07p7/vvfdnIcaZx5c6r914E2AtJFtCbY0Nx5yD4TA3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":471631},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./types":{"import":{"types":"./lib/typescript/module/src/types.d.ts","default":"./lib/module/types.js"},"source":"./src/types.ts","require":{"types":"./lib/typescript/commonjs/src/types.d.ts","default":"./lib/commonjs/types.js"}},"./package.json":"./package.json"},"gitHead":"257b91f8ef9545f30817ecebea46f177ae872b6c","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^19.1.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.4"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.15.0_1775504448037_0.7700755915528525","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.15.1":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.15.1","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.15.1","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://github.com/sbaiahmed1/react-native-biometrics#readme","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"c9dbd237ecee4094b08815a9dccd71a8e3c3f958","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.15.1.tgz","fileCount":60,"integrity":"sha512-S+r16Ht9YDhkl9QrgMzhu3OcusojG3o7UA1KeBE9iBui51Y4tSh+QSj3SeYOpM2A3p13pcqEgkHvtPG6V+lb6A==","signatures":[{"sig":"MEQCICu0TQOASP+iG8jkItYjTNB8xli44l5hG+j3mQISds08AiA/gwX/uUloGiwGjC/YqyVUjMv3D3/tH4m5ZSeFQNAkJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":472241},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./types":{"import":{"types":"./lib/typescript/module/src/types.d.ts","default":"./lib/module/types.js"},"source":"./src/types.ts","require":{"types":"./lib/typescript/commonjs/src/types.d.ts","default":"./lib/commonjs/types.js"}},"./package.json":"./package.json"},"gitHead":"1cfc62c63e3dc53944d86b3964ce3ca75b5304e4","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"20.19.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"19.0.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^19.1.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.0.0","react-native":"0.79.2","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.79.2","@react-native-community/cli":"15.0.0-alpha.2","@react-native/eslint-config":"^0.78.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.4"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.15.1_1783290521761_0.7512410291432547","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.16.0":{"name":"@sbaiahmed1/react-native-biometrics","version":"0.16.0","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","_id":"@sbaiahmed1/react-native-biometrics@0.16.0","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"homepage":"https://sbaiahmed1.github.io/react-native-biometrics/","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"c3d97be85e2497e9c4b3c1db7fc864d90d6da782","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.16.0.tgz","fileCount":64,"integrity":"sha512-OxitCchfqlQ6vgwuodHGRTHfFGmT4koWcmAlgnq6jTr9CtA6BurOdc+QgCEaT6mJQUkmrjCkxyTeA5YoxJSO7g==","signatures":[{"sig":"MEQCIBGLZJzf6u/gEVUZopNa7EWOD5ptj43gTyX5Y52Kz9ybAiAS/EuO+yTEgokY0/pHzgT3n5MtndkQvnvb842OXieNVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":575847},"main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./types":{"import":{"types":"./lib/typescript/module/src/types.d.ts","default":"./lib/module/types.js"},"source":"./src/types.ts","require":{"types":"./lib/typescript/commonjs/src/types.d.ts","default":"./lib/commonjs/types.js"}},"./package.json":"./package.json"},"gitHead":"c04a41d28985d8205a321c0bea4e4664a47e73b5","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android example/ios example/.expo lib plugin/build","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build && yarn build:plugin","release":"release-it","typecheck":"tsc","docs:build":"yarn workspace react-native-biometrics-website build","docs:serve":"yarn workspace react-native-biometrics-website serve","docs:start":"yarn workspace react-native-biometrics-website start","build:plugin":"tsc --build plugin"},"_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example","website"],"_npmVersion":"10.8.2","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"_nodeVersion":"20.19.4","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"expo":"^54.0.0","jest":"^29.7.0","react":"19.1.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^19.1.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.1.0","react-native":"0.81.5","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","eslint-plugin-jest":"^27.9.0","expo-module-scripts":"^5.0.8","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.81.5","@react-native/eslint-config":"^0.81.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.4"},"peerDependencies":{"expo":">=52.0.0","react":"*","react-native":"*"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-native-biometrics_0.16.0_1786124210264_0.7031415805965122","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}},"0.16.1":{"_id":"@sbaiahmed1/react-native-biometrics@0.16.1","bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"dist":{"shasum":"1df89a203c17ea167e7bb8ef2f73819a5469597b","tarball":"https://registry.npmjs.org/@sbaiahmed1/react-native-biometrics/-/react-native-biometrics-0.16.1.tgz","fileCount":64,"integrity":"sha512-uHIncnxHvLvjbNuacneC2tXzmKauHaesRr3sJxvv0MlUcDS9j/uKy5Sxbh/a1u6d1CaLWPWaCzMMcEuntiXzQg==","signatures":[{"sig":"MEUCIAoCWF4rR4/CtzVa3b2nXrM/H2K3H5OLtmGpLYJw+CVpAiEAm7x8JgpKCkIhwXvRTo3P3xPwSDbSC1ebd9oohIlNhBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD6LJCNmNrO9/8q7UkBCeE7Y8EBxb/AMWCi9Za0OtPhrgIhAOqCxH4COA3C6bD//uWKGjaB8qmb7egM/qst5KeFVbXT"}],"unpackedSize":576169},"main":"./lib/commonjs/index.js","name":"@sbaiahmed1/react-native-biometrics","author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"source":"./src/index.tsx","require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}},"./types":{"import":{"types":"./lib/typescript/module/src/types.d.ts","default":"./lib/module/types.js"},"source":"./src/types.ts","require":{"types":"./lib/typescript/commonjs/src/types.d.ts","default":"./lib/commonjs/types.js"}},"./package.json":"./package.json"},"gitHead":"c9ebe1db9dea03b4c032297b0ada3ac36e4bbc43","license":"MIT","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli android/build example/android example/ios example/.expo lib plugin/build","example":"yarn workspace @sbaiahmed1/react-native-biometrics-example","prepare":"bob build && yarn build:plugin","release":"release-it","typecheck":"tsc","docs:build":"yarn workspace react-native-biometrics-website build","docs:serve":"yarn workspace react-native-biometrics-website serve","docs:start":"yarn workspace react-native-biometrics-website start","build:plugin":"tsc --build plugin"},"version":"0.16.1","_npmUser":{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"},"homepage":"https://sbaiahmed1.github.io/react-native-biometrics/","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"workspaces":["example","website"],"_npmVersion":"11.17.0","description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","directories":{},"maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"_nodeVersion":"24.19.0","codegenConfig":{"name":"ReactNativeBiometricsSpec","type":"modules","android":{"javaPackageName":"com.sbaiahmed1.reactnativebiometrics"},"jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"expo":"^54.0.0","jest":"^29.7.0","react":"19.1.0","turbo":"^1.10.7","eslint":"^9.22.0","del-cli":"^5.1.0","ts-jest":"^29.4.0","prettier":"^3.0.3","@eslint/js":"^9.22.0","commitlint":"^19.6.1","release-it":"^19.1.0","typescript":"^5.8.3","@types/jest":"^29.5.5","@types/react":"^19.1.0","react-native":"0.81.5","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","eslint-plugin-jest":"^27.9.0","expo-module-scripts":"^5.0.8","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","react-native-builder-bob":"^0.40.12","@react-native/babel-preset":"0.81.5","@react-native/eslint-config":"^0.81.0","@commitlint/config-conventional":"^19.6.0","@release-it/conventional-changelog":"^9.0.4"},"peerDependencies":{"expo":">=52.0.0","react":"*","react-native":"*"},"peerDependenciesMeta":{"expo":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-biometrics_0.16.1_1788904036422_0.7741579565528605"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["module",{"esm":true}],["commonjs",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"turbo-module","version":"0.51.0","languages":"kotlin-objc"}}},"time":{"created":"2025-06-22T23:58:07.331Z","modified":"2026-09-08T21:47:16.695Z","0.1.0":"2025-06-22T23:58:07.650Z","0.1.1":"2025-06-24T22:32:18.955Z","0.2.0":"2025-07-02T00:03:11.791Z","0.3.0":"2025-07-06T01:19:58.002Z","0.4.0":"2025-07-11T03:42:31.399Z","0.5.0":"2025-09-14T22:07:58.250Z","0.6.0":"2025-09-22T17:37:13.467Z","0.6.1":"2025-10-03T23:11:22.452Z","0.6.2":"2025-10-04T00:09:00.900Z","0.7.0":"2025-10-05T21:53:24.133Z","0.7.1-beta.0":"2025-10-06T21:53:52.198Z","0.7.1":"2025-10-06T22:19:56.936Z","0.7.2":"2025-10-07T20:29:24.089Z","0.8.0":"2025-10-29T22:17:31.517Z","0.9.0":"2025-11-01T15:47:09.196Z","0.9.1":"2025-11-14T21:53:55.765Z","0.9.2":"2025-11-28T22:39:22.503Z","0.10.0":"2025-12-20T21:46:21.461Z","0.11.0":"2025-12-21T19:53:59.900Z","0.12.0":"2026-01-29T22:10:43.983Z","0.12.1":"2026-02-06T15:21:14.100Z","0.12.2":"2026-02-10T14:32:28.787Z","0.13.0":"2026-03-06T00:21:59.936Z","0.14.0":"2026-03-18T17:28:52.532Z","0.15.0":"2026-04-06T19:40:48.196Z","0.15.1":"2026-07-05T22:28:41.899Z","0.16.0":"2026-08-07T17:36:50.410Z","0.16.1":"2026-09-08T21:47:16.556Z"},"bugs":{"url":"https://github.com/sbaiahmed1/react-native-biometrics/issues"},"author":{"url":"https://github.com/sbaiahmed1","name":"Ahmed Sbai","email":"ahmedclubust@gmail.com"},"license":"MIT","homepage":"https://sbaiahmed1.github.io/react-native-biometrics/","keywords":["react-native","ios","android","biometrics","biometric authentication","face id","touch id","fingerprint","react-native biometrics","authentication","security","mobile security","biometric login","face recognition","touchid","faceid","mobile authentication","secure login","react-native-biometrics","expo","react native security","mobile biometrics","native modules","turbo modules","typescript","mobile login"],"repository":{"url":"git+https://github.com/sbaiahmed1/react-native-biometrics.git","type":"git"},"description":"React Native biometric authentication library for iOS and Android. Easy integration of Face ID, Touch ID, and Fingerprint authentication with TypeScript support. Compatible with new architecture (TurboModules) and Expo. Secure mobile login solution.","maintainers":[{"name":"sbaiahmed1","email":"ahmedclubust@gmail.com"}],"readme":"<div align=\"center\">\n  <h1>🔐 React Native Biometrics</h1>\n  <p><strong>A lightweight and unified React Native library for biometric authentication across iOS and Android</strong></p>\n\n  <p>\n    <img src=\"https://img.shields.io/npm/v/@sbaiahmed1/react-native-biometrics?style=for-the-badge&color=blue\" alt=\"npm version\" />\n    <img src=\"https://img.shields.io/npm/dt/@sbaiahmed1/react-native-biometrics?style=for-the-badge&color=green\" alt=\"downloads\" />\n    <img src=\"https://img.shields.io/github/license/sbaiahmed1/react-native-biometrics?style=for-the-badge&color=orange\" alt=\"license\" />\n    <img src=\"https://img.shields.io/github/stars/sbaiahmed1/react-native-biometrics?style=for-the-badge&color=yellow\" alt=\"stars\" />\n    <img src=\"https://img.shields.io/npm/types/@sbaiahmed1/react-native-biometrics?style=for-the-badge&color=blue\" alt=\"typescript\" />\n  </p>\n\n  <p>\n    <img src=\"https://img.shields.io/badge/iOS-Face%20ID%20%7C%20Touch%20ID-blue?style=for-the-badge&logo=apple\" alt=\"iOS Support\" />\n    <img src=\"https://img.shields.io/badge/Android-Fingerprint%20%7C%20Face-green?style=for-the-badge&logo=android\" alt=\"Android Support\" />\n    <img src=\"https://img.shields.io/badge/New%20Architecture-Ready-purple?style=for-the-badge\" alt=\"New Architecture\" />\n  </p>\n\n  <p>\n    <strong>📖 Documentation: <a href=\"https://sbaiahmed1.github.io/react-native-biometrics/\">sbaiahmed1.github.io/react-native-biometrics</a></strong>\n  </p>\n</div>\n\n## 🎬 Demo\n\n<div style=\"display: flex; justify-content: center; gap: 20px;\">\n  <img src=\"./demo.gif\" alt=\"React Native Biometrics Demo\" width=\"300\" height=\"803\" />\n  <img src=\"./android-demo.gif\" alt=\"React Native Biometrics Demo\" width=\"300\" height=\"803\" />\n</div>\n\n---\n\n## ✨ Features\n\n- 🔒 **Unified API** - Single interface for iOS and Android biometric authentication\n- 📱 **Multiple Biometric Types** - Face ID, Touch ID, Fingerprint, and more\n- 🛠️ **Advanced Options** - Customizable prompts, fallback options, and device credentials\n- 🔑 **Key Management** - Create and manage cryptographic keys (EC256/RSA2048) for secure operations\n- 🔏 **Non-Biometric Signing** - Keystore/Keychain-backed RSA/EC signing without prompts (SHA-256/SHA-512), hardware-backed where supported — a modern `react-native-rsa-native` alternative\n- 🛡️ **Device Integrity** - Detect compromised devices (rooted/jailbroken) for enhanced security\n- 🔔 **Biometric Change Detection** - Real-time monitoring of biometric enrollment changes with event-driven updates ([docs](./BIOMETRIC_CHANGE_DETECTION.md))\n- 🐛 **Debug Tools** - Comprehensive diagnostic and testing utilities\n- 📝 **Centralized Logging** - Advanced logging system for debugging and monitoring\n- 🔐 **Key Integrity Validation** - Comprehensive cryptographic key validation and signature verification\n- 🏗️ **StrongBox Support** - Automatic use of Android StrongBox hardware security with TEE fallback\n- 🔍 **Authentication Type Reporting** - Know exactly how the user authenticated (FaceID, TouchID, PIN, etc.) via `AuthType`\n- #️⃣ **Native SHA-256 Hashing** - Platform-native SHA-256 via `sha256()` function\n- 📦 **Lightweight** - Minimal dependencies and optimized for performance\n- 🎯 **TypeScript** - Full TypeScript support with detailed type definitions\n- 🔄 **New Architecture** - Compatible with React Native's new architecture (TurboModules)\n- ✅ **Old Architecture** - Compatible with React Native's old architecture\n- 🌟 **Expo Compatible** - Works seamlessly with Expo development workflow\n- 📱 **Modern** - Made with Swift and Kotlin for iOS and Android respectively\n- 🚀 **Easy Integration** - Simple setup with comprehensive documentation\n- 🔐 **Secure by Default** - Industry-standard security practices built-in\n\n## 📋 Requirements\n\n| Platform     | Minimum Version | Recommended |\n|--------------|-----------------|-------------|\n| React Native | 0.68+           | 0.75+       |\n\n### Supported Biometric Types\n\n- **iOS**: Face ID, Touch ID\n- **Android**: Fingerprint, Face Recognition, Iris Scanner\n- **Fallback**: Device PIN, Password, Pattern\n\n## 🚀 Installation\n\n### Migration from react-native-biometrics(unmaintained)\n\nThis guide is for users migrating from the popular but deprecated `react-native-biometrics` library by SelfLender. Our library offers a more modern, functional API with enhanced features, but the migration process is straightforward.\n\n### 1. Installation\n\nFirst, uninstall the old library and install ours:\n\n**Uninstall `react-native-biometrics`:**\n```bash\nnpm uninstall react-native-biometrics\n# or\nyarn remove react-native-biometrics\n```\n\n**Install `@sbaiahmed1/react-native-biometrics`:**\n```bash\nnpm install @sbaiahmed1/react-native-biometrics\n# or\nyarn add @sbaiahmed1/react-native-biometrics\n```\n\n### 2. API Changes\n\nThe most significant change is the shift from a class-based API to a functional one. You no longer need to instantiate a class; simply import the functions you need.\n\n#### From Class to Functions\n\n**Before (`react-native-biometrics`):**\n```javascript\nimport ReactNativeBiometrics from 'react-native-biometrics';\n\nconst rnBiometrics = new ReactNativeBiometrics();\nrnBiometrics.isSensorAvailable().then(...);\n```\n\n**After (`@sbaiahmed1/react-native-biometrics`):**\n```javascript\nimport { isSensorAvailable } from '@sbaiahmed1/react-native-biometrics';\n\nisSensorAvailable().then(...);\n```\n\n#### `isSensorAvailable`\n\nThe function signature and return value are very similar.\n\n**Before:**\n```javascript\nrnBiometrics.isSensorAvailable()\n  .then((resultObject) => {\n    const { available, biometryType } = resultObject;\n    // ...\n  });\n```\n\n**After:**\n```javascript\nimport { isSensorAvailable } from '@sbaiahmed1/react-native-biometrics';\n\nisSensorAvailable()\n  .then((sensorInfo) => {\n    const { available, biometryType } = sensorInfo;\n    // ...\n  });\n```\n\n#### `simplePrompt`\n\nThe `simplePrompt` function is now more direct.\n\n**Before:**\n```javascript\nrnBiometrics.simplePrompt({ promptMessage: 'Authenticate' })\n  .then((result) => {\n    if (result.success) {\n      // ...\n    }\n  });\n```\n\n**After:**\n```javascript\nimport { simplePrompt } from '@sbaiahmed1/react-native-biometrics';\n\nsimplePrompt('Authenticate')\n  .then((result) => {\n    if (result.success) {\n      // ...\n    }\n  });\n```\n\n#### Key Management\n\nThe key management functions have been updated and are now named exports. Here are the most important changes:\n\n| `react-native-biometrics` (Old) | `@sbaiahmed1/react-native-biometrics` (New) | Notes |\n| ------------------------------- | ------------------------------------------- | ----- |\n| `createKeys()`                  | `createKeys(keyAlias?, keyType?, biometricStrength?, allowDeviceCredentials?, failIfExists?)` | Supports key type, biometric strength, device credential fallback, and duplicate key protection. |\n| `biometricKeysExist()`          | `validateKeyIntegrity()`                    | Check the `keyExists` boolean in the returned object. |\n| `createSignature()`             | `verifyKeySignature()`                      | This function now creates the signature. The name is updated to reflect its primary use in verification flows. |\n| `deleteKeys()`                  | `deleteKeys()`                              | No change in function name. |\n\nAdditionally, this library introduces several new key management functions:\n- `getKeyAttributes()`: Get detailed attributes of a key.\n- `getAllKeys(customAlias?)`: Retrieve all keys managed by the library, optionally filtered by custom alias.\n- `configureKeyAlias()`: Set a default alias for keys.\n\n#### Using Fallback (Device Credentials)\n\nIn the old library, you would enable the device credential fallback in the constructor. In our library, you use the `authenticateWithOptions` function.\n\n**Before:**\n```javascript\nconst rnBiometrics = new ReactNativeBiometrics({ allowDeviceCredentials: true });\n// All prompts will now have a fallback\n```\n\n**After:**\n```javascript\nimport { authenticateWithOptions } from '@sbaiahmed1/react-native-biometrics';\n\nauthenticateWithOptions({\n  title: 'Authenticate',\n  allowDeviceCredentials: true,\n}).then(...);\n```\n\n### 3. Configuration Changes\n\n#### Android\n\nIn your `android/app/src/main/AndroidManifest.xml`, it's recommended to add the `USE_BIOMETRIC` permission alongside `USE_FINGERPRINT` for broader compatibility with modern Android versions.\n\n```xml\n<uses-permission android:name=\"android.permission.USE_FINGERPRINT\" />\n<uses-permission android:name=\"android.permission.USE_BIOMETRIC\" />\n```\n\n### Full Example: Before and After\n\nHere’s a complete example of a common authentication flow.\n\n**Before (`react-native-biometrics`):**\n```javascript\nimport ReactNativeBiometrics, { BiometryTypes } from 'react-native-biometrics';\n\nconst rnBiometrics = new ReactNativeBiometrics();\n\nrnBiometrics.isSensorAvailable()\n  .then((resultObject) => {\n    const { available, biometryType } = resultObject;\n\n    if (available && biometryType === BiometryTypes.TouchID) {\n      console.log('TouchID is supported');\n      return rnBiometrics.simplePrompt({ promptMessage: 'Confirm fingerprint' });\n    }\n    // ... handle other cases\n  })\n  .then((result) => {\n    if (result && result.success) {\n      console.log('Successful authentication');\n    } else {\n      console.log('User cancelled or authentication failed');\n    }\n  })\n  .catch((error) => {\n    console.log(error);\n  });\n```\n\n**After (`@sbaiahmed1/react-native-biometrics`):**\n```javascript\nimport { isSensorAvailable, simplePrompt } from '@sbaiahmed1/react-native-biometrics';\n\nconst authenticate = async () => {\n  try {\n    const sensorInfo = await isSensorAvailable();\n    if (sensorInfo.available && sensorInfo.biometryType === 'TouchID') {\n      console.log('TouchID is supported');\n      const result = await simplePrompt('Confirm fingerprint');\n      if (result.success) {\n        console.log('Successful authentication');\n      } else {\n        console.log('User cancelled or authentication failed');\n      }\n    }\n    // ... handle other cases\n  } catch (error) {\n    console.log(error);\n  }\n};\n\nauthenticate();\n```\n\n### Yarn\n```bash\nyarn add @sbaiahmed1/react-native-biometrics\n```\n\n### Expo\n\nThe library ships with an Expo config plugin. Instead of editing native files manually, add it to your app config — it sets `NSFaceIDUsageDescription` on iOS and adds the `USE_BIOMETRIC` / `USE_FINGERPRINT` permissions on Android during prebuild:\n\n```json\n{\n  \"expo\": {\n    \"plugins\": [\n      [\n        \"@sbaiahmed1/react-native-biometrics\",\n        {\n          \"faceIDPermission\": \"Allow $(PRODUCT_NAME) to use Face ID for secure authentication\"\n        }\n      ]\n    ]\n  }\n}\n```\n\nThen apply the changes by regenerating the native projects with `npx expo prebuild`. For a full regeneration use `npx expo prebuild --clean` — but note it deletes the `ios/` and `android/` directories, including any manual native edits. `npx expo run:ios` / `run:android` only run prebuild when the native directories are missing, so they won't pick up plugin changes on an existing project by themselves.\n\n| Option | Type | Default | Description |\n|---|---|---|---|\n| `faceIDPermission` | `string \\| false` | A generic Face ID message | The iOS `NSFaceIDUsageDescription` text. Pass `false` to leave `Info.plist` untouched (e.g. when you manage it via `ios.infoPlist`). |\n\nWith the plugin in place, the manual **iOS Setup** and **Android Setup** permission steps below are handled for you (Expo projects only).\n\n### iOS Setup\n\n1. **Add permissions to `Info.plist`:**\n```xml\n<key>NSFaceIDUsageDescription</key>\n<string>This app uses Face ID for secure authentication</string>\n```\n\n2. **Install iOS dependencies:**\n```bash\ncd ios && pod install\n```\n\n### Android Setup\n\n1. **Add permissions to `android/app/src/main/AndroidManifest.xml`:**\n```xml\n<uses-permission android:name=\"android.permission.USE_FINGERPRINT\" />\n<uses-permission android:name=\"android.permission.USE_BIOMETRIC\" />\n```\n\n2. **Ensure minimum SDK version in `android/app/build.gradle`:**\n```gradle\nandroid {\n    compileSdkVersion 34\n    defaultConfig {\n        minSdkVersion 23\n        targetSdkVersion 34\n    }\n}\n```\n\n3. **Add ProGuard rules (if using ProGuard) in `android/app/proguard-rules.pro`:**\n```proguard\n-keep class androidx.biometric.** { *; }\n-keep class com.sbaiahmed1.reactnativebiometrics.** { *; }\n```\n\n### Importing Types on Non-Native Platforms\n\nThe `AuthType` and `BiometricStrength` enums can be safely imported from `@sbaiahmed1/react-native-biometrics/types` on non-mobile platforms (e.g. web), as this entry point does not load native modules.\n\n```typescript\nimport { AuthType, BiometricStrength } from '@sbaiahmed1/react-native-biometrics/types';\n```\n\n## 📖 Usage\n\n### 🔍 Quick Start\n\n```typescript\nimport {\n  isSensorAvailable,\n  simplePrompt,\n  authenticateWithOptions,\n  setDebugMode\n} from '@sbaiahmed1/react-native-biometrics';\n\nconst BiometricAuth = () => {\n  const authenticate = async () => {\n    try {\n      // Enable debug mode for development\n      await setDebugMode(true);\n\n      // Check if biometric authentication is available\n      const sensorInfo = await isSensorAvailable();\n\n      if (sensorInfo.available) {\n        console.log(`✅ ${sensorInfo.biometryType} available`);\n\n        // Perform authentication\n        const result = await simplePrompt('Please authenticate to continue');\n\n        if (result.success) {\n          console.log('🎉 Authentication successful!');\n          // Navigate to secure content\n        } else {\n          console.log('❌ Authentication failed');\n        }\n      } else {\n        console.log('❌ Biometric authentication not available:', sensorInfo.error);\n        // Show alternative authentication method\n      }\n    } catch (error) {\n      console.error('💥 Authentication error:', error);\n    }\n  };\n\n  return authenticate;\n};\n```\n\n### 🔍 Check Sensor Availability\n\nBefore attempting authentication, check if biometric sensors are available on the device.\n\n```typescript\nimport { isSensorAvailable } from '@sbaiahmed1/react-native-biometrics';\n\nconst checkBiometrics = async () => {\n  try {\n    const sensorInfo = await isSensorAvailable();\n\n    if (sensorInfo.available) {\n      console.log('✅ Biometric authentication available');\n      console.log('📱 Type:', sensorInfo.biometryType);\n      // Possible values: 'FaceID', 'TouchID', 'Fingerprint', 'Biometrics'\n    } else {\n      console.log('❌ Biometric authentication not available');\n      console.log('🚫 Reason:', sensorInfo.error);\n    }\n  } catch (error) {\n    console.error('💥 Error checking biometrics:', error);\n  }\n};\n```\n\n### 🔐 Simple Authentication\n\nPerform basic biometric authentication with a custom message.\n\n```typescript\nimport { simplePrompt } from '@sbaiahmed1/react-native-biometrics';\n\nconst authenticate = async () => {\n  try {\n    const result = await simplePrompt('Please authenticate to continue');\n\n    if (result.success) {\n      console.log('✅ Authentication successful!');\n      // Proceed with authenticated action\n    } else {\n      console.log('❌ Authentication failed or cancelled');\n    }\n  } catch (error) {\n    console.error('💥 Authentication error:', error);\n  }\n};\n```\n\n> Android: choose biometric strength using an enum\n\n```typescript\nimport { simplePrompt, BiometricStrength } from '@sbaiahmed1/react-native-biometrics';\n\nawait simplePrompt('Please authenticate to continue', {\n  biometricStrength: BiometricStrength.Weak, // or BiometricStrength.Strong\n});\n```\n\n### ⚙️ Enhanced Authentication\n\nUse advanced authentication options with customizable prompts and fallback mechanisms.\n\n```typescript\nimport { authenticateWithOptions } from '@sbaiahmed1/react-native-biometrics';\n\nconst enhancedAuth = async () => {\n  try {\n    const result = await authenticateWithOptions({\n      title: '🔐 Secure Login',\n      subtitle: 'Verify your identity',\n      description: 'Use your biometric to access your account securely',\n      cancelLabel: 'Cancel',\n      fallbackLabel: 'Use Password',\n      allowDeviceCredentials: true,    // Allow PIN/password fallback\n      disableDeviceFallback: false,    // Enable fallback options\n    });\n\n    if (result.success) {\n      console.log('✅ Authentication successful!');\n      // User authenticated successfully\n      navigateToSecureArea();\n    } else {\n      console.log('❌ Authentication failed:', result.error);\n      console.log('🔢 Error code:', result.errorCode);\n      // Handle authentication failure\n      handleAuthFailure(result.errorCode);\n    }\n  } catch (error) {\n    console.error('💥 Authentication error:', error);\n  }\n};\n\n// Example: Different authentication scenarios\nconst authScenarios = {\n  // Strict biometric only (no fallback)\n  strictBiometric: {\n    title: 'Biometric Required',\n    subtitle: 'Touch sensor or look at camera',\n    allowDeviceCredentials: false,\n    disableDeviceFallback: true,\n  },\n\n  // Flexible authentication (with fallbacks)\n  flexibleAuth: {\n    title: 'Secure Access',\n    subtitle: 'Use biometric or device passcode',\n    allowDeviceCredentials: true,\n    disableDeviceFallback: false,\n    fallbackLabel: 'Use Passcode',\n  },\n\n  // Custom branded experience\n  brandedAuth: {\n    title: 'MyApp Security',\n    subtitle: 'Protect your data',\n    description: 'Authenticate to access your personal information',\n    cancelLabel: 'Not Now',\n    fallbackLabel: 'Enter PIN',\n  },\n };\n```\n\n### 🔑 Key Management\n\nManage cryptographic keys for secure biometric operations.\n\n```typescript\nimport { createKeys, deleteKeys, getAllKeys } from '@sbaiahmed1/react-native-biometrics';\n\n// Create biometric keys for secure operations\nconst createBiometricKeys = async () => {\n  try {\n    // Create keys with the platform default type\n    // (EC256 on iOS, RSA2048 on Android — pass 'ec256' explicitly if you need it everywhere)\n    const result = await createKeys();\n    console.log('✅ EC256 keys created successfully');\n    console.log('🔑 Public key:', result.publicKey);\n\n    // Store the public key for server-side verification\n    await storePublicKeyOnServer(result.publicKey);\n  } catch (error) {\n    console.error('💥 Failed to create keys:', error);\n  }\n};\n\n// Create RSA keys for legacy system compatibility\nconst createRSAKeys = async () => {\n  try {\n    const result = await createKeys('com.myapp.rsa.key', 'rsa2048');\n    console.log('✅ RSA2048 keys created successfully');\n    console.log('🔑 Public key:', result.publicKey);\n  } catch (error) {\n    console.error('💥 Failed to create RSA keys:', error);\n  }\n};\n\n// Delete biometric keys when no longer needed\nconst deleteBiometricKeys = async () => {\n  try {\n    const result = await deleteKeys();\n\n    if (result.success) {\n      console.log('✅ Keys deleted successfully');\n      // Clean up any stored references\n      await removePublicKeyFromServer();\n    } else {\n      console.log('❌ Failed to delete keys');\n    }\n  } catch (error) {\n    console.error('💥 Failed to delete keys:', error);\n  }\n};\n\n// Retrieve the library's stored biometric keys\nconst getAllBiometricKeys = async () => {\n  try {\n    // With no alias, returns the key(s) under the default (configured) alias\n    const result = await getAllKeys();\n\n    console.log(`📋 Found ${result.keys.length} stored keys`);\n\n    result.keys.forEach((key, index) => {\n      console.log(`🔑 Key ${index + 1}:`);\n      console.log(`   Alias: ${key.alias}`);\n      console.log(`   Public Key: ${key.publicKey.substring(0, 50)}...`);\n      // For metadata such as creation date, use getKeyAttributes(key.alias)\n    });\n\n    return result.keys;\n  } catch (error) {\n    console.error('💥 Failed to retrieve keys:', error);\n    return [];\n  }\n};\n\n// Example: Complete key lifecycle management\nconst keyLifecycleExample = async () => {\n  try {\n    // 1. Check if biometrics are available\n    const sensorInfo = await isSensorAvailable();\n    if (!sensorInfo.available) {\n      throw new Error('Biometric authentication not available');\n    }\n\n    // 2. Create keys for the user (EC256 by default)\n    const keyResult = await createKeys();\n    console.log('🔐 EC256 biometric keys created for user');\n\n    // 3. Perform authenticated operations\n    const authResult = await authenticateWithOptions({\n      title: 'Verify Identity',\n      subtitle: 'Authenticate to access secure features',\n    });\n\n    if (authResult.success) {\n      console.log('🎉 User authenticated with biometric keys');\n    }\n\n    // 4. Clean up when user logs out\n    // await deleteKeys();\n  } catch (error) {\n    console.error('💥 Key lifecycle error:', error);\n  }\n};\n```\n\n### 🔏 Non-Biometric Signing (No Prompts)\n\nCreate Keychain/Keystore-backed RSA or EC keys that sign **without any biometric prompt** — the modern replacement for the `react-native-rsa-native` use case. The private key never leaves the Keychain/Keystore and is hardware-backed where the platform supports it (Android TEE/StrongBox for both key types, iOS Secure Enclave for EC keys; iOS RSA keys reside in the regular Keychain); only the user-authentication requirement is removed.\n\n```typescript\nimport {\n  createKeysWithOptions,\n  keyExists,\n  getPublicKey,\n  sign,\n  deleteKeys,\n  SignatureAlgorithm,\n} from '@sbaiahmed1/react-native-biometrics';\n\nconst deviceBoundSigningExample = async () => {\n  // Create a hardware-backed RSA-2048 key that never prompts\n  await createKeysWithOptions({\n    keyAlias: 'server-auth-key',\n    keyType: 'rsa2048',\n    requireAuthentication: false,\n  });\n\n  // Prompt-free existence check\n  if (await keyExists('server-auth-key')) {\n    // Public key as base64 X.509 SubjectPublicKeyInfo DER on both platforms —\n    // consumable directly by e.g. `openssl pkey -pubin -inform DER`\n    const { publicKey } = await getPublicKey('server-auth-key');\n    await sendPublicKeyToServer(publicKey);\n  }\n\n  // Sign a payload — no prompt appears\n  const result = await sign({\n    keyAlias: 'server-auth-key',\n    data: 'payload-to-sign',\n    algorithm: SignatureAlgorithm.SHA512withRSA, // optional, defaults to SHA-256\n  });\n\n  if (result.success) {\n    console.log('✍️ Signature:', result.signature);\n  }\n};\n```\n\n`sign()` never prompts: called on a normal biometric-gated key it resolves with `{ success: false, errorCode: 'KEY_REQUIRES_AUTHENTICATION' }` — use `signWithOptions()` for those. Conversely, `signWithOptions()` on a no-auth key signs silently with `authType: 0`.\n\n> 📖 **See the [Cryptographic Keys Guide](./docs/CRYPTOGRAPHIC_KEYS.md) for algorithm constraints (SHA-512 availability on Android/StrongBox), key accessibility, and public key format details.**\n\n### 🐛 Debugging Utilities\n\nComprehensive debugging tools to help troubleshoot biometric authentication issues.\n\n```typescript\nimport {\n  getDiagnosticInfo,\n  runBiometricTest,\n  setDebugMode,\n  isSensorAvailable,\n  simplePrompt\n} from '@sbaiahmed1/react-native-biometrics';\n\n// 🔍 Get comprehensive diagnostic information\nconst getDiagnostics = async () => {\n  try {\n    const info = await getDiagnosticInfo();\n\n    console.log('📱 Platform:', info.platform);\n    console.log('🔢 OS Version:', info.osVersion);\n    console.log('📲 Device Model:', info.deviceModel);\n    console.log('🔐 Biometric Capabilities:', info.biometricCapabilities);\n    console.log('🛡️ Security Level:', info.securityLevel);\n    console.log('🔒 Keyguard Secure:', info.keyguardSecure);\n    console.log('👆 Enrolled Biometrics:', info.enrolledBiometrics);\n\n    if (info.lastError) {\n      console.log('⚠️ Last Error:', info.lastError);\n    }\n\n    return info;\n  } catch (error) {\n    console.error('💥 Failed to get diagnostic info:', error);\n  }\n};\n\n// 🧪 Run comprehensive biometric functionality test\nconst testBiometrics = async () => {\n  try {\n    console.log('🧪 Running biometric tests...');\n    const testResult = await runBiometricTest();\n\n    if (testResult.success) {\n      console.log('✅ All tests passed!');\n    } else {\n      console.log('❌ Test failures detected:');\n      testResult.errors.forEach(error => console.log('  🚫', error));\n    }\n\n    // Warnings are reported independently of success/failure\n    if (testResult.warnings.length > 0) {\n      console.log('⚠️ Test warnings:');\n      testResult.warnings.forEach(warning => console.log('  ⚠️', warning));\n    }\n\n    // Detailed test results\n    console.log('📊 Test Results:');\n    console.log('  🔍 Sensor Available:', testResult.results.sensorAvailable);\n    console.log('  🔐 Can Authenticate:', testResult.results.canAuthenticate);\n    console.log('  🔧 Hardware Detected:', testResult.results.hardwareDetected);\n    console.log('  👆 Has Enrolled Biometrics:', testResult.results.hasEnrolledBiometrics);\n    console.log('  🛡️ Secure Hardware:', testResult.results.secureHardware);\n\n    return testResult;\n  } catch (error) {\n    console.error('💥 Failed to run biometric test:', error);\n  }\n};\n\n// 🔧 Debug mode management\nconst debugModeExample = async () => {\n  try {\n    // Enable debug logging\n    await setDebugMode(true);\n    console.log('🐛 Debug mode enabled - all operations will be logged');\n\n    // Perform some operations (they will now be logged)\n    await isSensorAvailable();\n    await simplePrompt('Debug test authentication');\n\n    // Disable debug logging\n    await setDebugMode(false);\n    console.log('🔇 Debug mode disabled');\n  } catch (error) {\n    console.error('💥 Failed to manage debug mode:', error);\n  }\n};\n\n// 🔍 Complete diagnostic workflow\nconst runDiagnosticWorkflow = async () => {\n  console.log('🚀 Starting comprehensive biometric diagnostics...');\n\n  // 1. Enable debug mode\n  await setDebugMode(true);\n\n  // 2. Get device information\n  const diagnostics = await getDiagnostics();\n\n  // 3. Run functionality tests\n  const testResults = await testBiometrics();\n\n  // 4. Generate report\n  const report = {\n    timestamp: new Date().toISOString(),\n    device: diagnostics,\n    tests: testResults,\n    summary: {\n      isFullyFunctional: testResults?.success || false,\n      criticalIssues: testResults?.errors?.length || 0,\n      warnings: testResults?.warnings?.length || 0,\n    }\n  };\n\n  console.log('📋 Diagnostic Report:', JSON.stringify(report, null, 2));\n\n  // 5. Disable debug mode\n  await setDebugMode(false);\n\n  return report;\n};\n```\n\n## 📚 API Reference\n\n### Configuration Methods\n\n#### `configureKeyAlias(keyAlias: string)`\nConfigures a custom key alias for biometric key storage. This enhances security by allowing app-specific key aliases instead of using a shared hardcoded alias.\n\n```javascript\nimport { configureKeyAlias } from '@sbaiahmed1/react-native-biometrics';\n\n// Configure a custom key alias\nawait configureKeyAlias('com.myapp.biometric.main');\n```\n\n#### `getDefaultKeyAlias()`\nReturns the current default key alias. If no custom alias is configured, returns an app-specific default based on bundle ID (iOS) or package name (Android).\n\n```javascript\nimport { getDefaultKeyAlias } from '@sbaiahmed1/react-native-biometrics';\n\nconst defaultAlias = await getDefaultKeyAlias();\nconsole.log('Current key alias:', defaultAlias);\n```\n\n#### `configure(config: BiometricConfig)`\nConfigures the library with a configuration object.\n\n```javascript\nimport { configure } from '@sbaiahmed1/react-native-biometrics';\n\nawait configure({\n  keyAlias: 'com.myapp.biometric.main'\n});\n```\n\n### Core Functions\n\n#### `isSensorAvailable()`\n\nChecks if biometric authentication is available on the device.\n\n```typescript\nconst isSensorAvailable = (): Promise<SensorInfo> => {\n};\n\ntype SensorInfo = {\n  available: boolean;        // Whether biometric auth is available\n  biometryType?: string;     // Type of biometry ('FaceID', 'TouchID', 'Fingerprint', etc.)\n  isDeviceSecure: boolean;  // Whether the device has a passcode/PIN/password set\n  error?: string;            // Error message if not available\n  errorCode?: string;        // Error code if not available (platform-specific)\n}\n```\n\n**Platform Notes:**\n- `errorCode` is available on both iOS and Android platforms\n- iOS returns specific error codes like `\"BiometryNotAvailable\"`, `\"BiometryNotEnrolled\"`, etc.\n- Android returns descriptive error codes like `\"BiometricErrorNoHardware\"`, `\"BiometricErrorNoneEnrolled\"`, etc.\n- The `error` property provides human-readable messages on both platforms\n\n#### `simplePrompt(promptMessage, options?)`\n\nPerforms basic biometric authentication with a custom message.\n\n```typescript\nconst simplePrompt = (\n  promptMessage: string,\n  options?: { biometricStrength?: BiometricStrength }  // Android only\n): Promise<BiometricAuthResult> => {\n};\n```\n\n**Parameters:**\n- `promptMessage` (string): Message to display to the user\n- `options.biometricStrength` (optional, Android only): `BiometricStrength.Strong` or `BiometricStrength.Weak`\n\n**Returns:** `Promise<BiometricAuthResult>` - check `result.success` for the outcome\n\n#### `authenticateWithOptions(options)`\n\nEnhanced authentication with customizable options and detailed results.\n\n```typescript\nconst authenticateWithOptions = (options: AuthOptions): Promise<AuthResult> => {\n};\n\ntype AuthOptions = {\n  title?: string;                    // Dialog title\n  subtitle?: string;                 // Dialog subtitle\n  description?: string;              // Additional description\n  cancelLabel?: string;              // Cancel button text\n  fallbackLabel?: string;            // Fallback button text\n  allowDeviceCredentials?: boolean;  // Allow PIN/password fallback\n  disableDeviceFallback?: boolean;   // Disable fallback options\n  returnAuthType?: boolean;          // Include authType in result (see AuthType enum)\n}\n\ntype AuthResult = {\n  success: boolean;          // Authentication result\n  error?: string;            // Error message if failed\n  errorCode?: string;        // Error code if failed\n  authType?: AuthType;       // How the user authenticated (only when returnAuthType is true)\n}\n```\n\n### Key Management\n\n**Important note:** RSA keys are stored in the regular keychain (not Secure Enclave on iOS) and may have different security characteristics compared to EC256 keys. For maximum security, EC256 keys are recommended as they can leverage hardware-backed storage when available.\n\n#### `createKeys(keyAlias?, keyType?, biometricStrength?, allowDeviceCredentials?, failIfExists?)`\n\nGenerates cryptographic keys for secure biometric operations. Optionally accepts a custom key alias, key type, and additional options.\n\n```typescript\nconst createKeys = (\n  keyAlias?: string,\n  keyType?: 'ec256' | 'rsa2048',\n  biometricStrength?: BiometricStrength,\n  allowDeviceCredentials?: boolean,\n  failIfExists?: boolean\n): Promise<KeyResult> => {\n};\n\ntype KeyResult = {\n  publicKey: string;         // Generated public key\n}\n```\n\n**Parameters:**\n- `keyAlias` (optional): Custom key identifier. If not provided, uses the configured default alias.\n- `keyType` (optional): Type of cryptographic key to generate. Defaults to `'ec256'` on iOS and `'rsa2048'` on Android.\n- `biometricStrength` (optional): Uses `BiometricStrength.Strong` or `BiometricStrength.Weak`. On iOS, `Strong` binds new keys to `.biometryCurrentSet`; `Weak`/unset uses `.biometryAny` for backward compatibility.\n- `allowDeviceCredentials` (optional, default `false`): When `true`, the key can be unlocked by biometrics OR device credentials (PIN/passcode). On iOS this uses `.userPresence` to allow passcode fallback; on Android this requires API 30+.\n- `failIfExists` (optional, default `false`): When `true`, rejects with `KEY_ALREADY_EXISTS` if a key with the alias already exists instead of overwriting it.\n\n**iOS migration guidance**\n- Existing keys keep the access-control policy they were created with; this setting only affects newly created keys.\n- If you switch iOS key creation to `BiometricStrength.Strong`, recreate keys (`deleteKeys` + `createKeys`) to migrate.\n- Keys created with `.biometryCurrentSet` are invalidated when biometric enrollment changes.\n\n> 📖 **For detailed key type information, security considerations, and advanced usage patterns, see the [Cryptographic Keys Guide](./docs/CRYPTOGRAPHIC_KEYS.md)**\n\n**⚠️ Platform Behavior Notes:**\n\n| Behavior | iOS | Android |\n|----------|-----|---------|\n| **Biometric prompt during `createKeys()`** | Silent - no prompt shown | Silent - no prompt shown |\n| **Key storage** | EC256 uses Secure Enclave; RSA uses regular Keychain | Android Keystore (hardware-backed when available) |\n| **Authentication requirement** | Enforced when the key is used (e.g. `verifyKeySignature()`) | Enforced when the key is used (e.g. `verifyKeySignature()`) |\n| **Requirement at creation time** | A device passcode must be set | A strong (Class 3) biometric must be enrolled — or a device credential when `allowDeviceCredentials: true` (API 30+) |\n\nOn both platforms, key generation is silent — no biometric prompt appears during `createKeys()`. Setting `setUserAuthenticationRequired(true)` (Android) or a Keychain access control (iOS) means authentication is required to *use* the private key, so the biometric prompt appears during signing operations like `verifyKeySignature()` / `signWithOptions()`, not during key creation.\n\nOne platform difference to be aware of: Android refuses to generate an auth-bound key unless a strong (Class 3) biometric is enrolled, rejecting with `CREATE_KEYS_ERROR: \"At least one biometric must be enrolled\"`. Devices whose only biometric is a weak/convenience one (e.g. camera-based face unlock on many budget devices) can only create keys with `allowDeviceCredentials: true` (Android 11+ / API 30+), which lets the device PIN/pattern/password unlock the key.\n\n**Example:**\n```javascript\nimport { createKeys } from '@sbaiahmed1/react-native-biometrics';\n\n// Create keys with platform defaults\nconst result = await createKeys();\nconsole.log('Keys created:', result.publicKey);\n\n// Create keys with specific type\nconst rsaKeys = await createKeys(undefined, 'rsa2048');\nconst ecKeys = await createKeys(undefined, 'ec256');\n```\n\n#### `createKeysWithOptions(options?)`\n\nOptions-object variant of `createKeys` with one additional capability: `requireAuthentication: false` creates a Keystore/Keychain-backed key that can sign **without any biometric prompt** (see [`sign()`](#signoptions)).\n\n```typescript\nconst createKeysWithOptions = (options?: {\n  keyAlias?: string;\n  keyType?: 'ec256' | 'rsa2048';\n  requireAuthentication?: boolean;   // default true (same behavior as createKeys)\n  biometricStrength?: BiometricStrength;   // ignored when requireAuthentication is false\n  allowDeviceCredentials?: boolean;        // ignored when requireAuthentication is false\n  failIfExists?: boolean;\n}): Promise<KeyResult> => {\n};\n```\n\nWith `requireAuthentication: false`:\n- The private key remains non-exportable in the Android Keystore / iOS Keychain, but using it never requires user authentication. Non-exportability is guaranteed on all paths; hardware residency depends on platform and key type — Android keys are TEE/StrongBox-backed, iOS EC keys use the Secure Enclave on device, while iOS RSA keys live in the regular Keychain without hardware protection.\n- No biometric enrollment or passcode is required at creation time on either platform (iOS uses `kSecAttrAccessibleWhenUnlockedThisDeviceOnly`, so the key is only usable while the device is unlocked).\n\n**Example:**\n```javascript\nconst result = await createKeysWithOptions({\n  keyAlias: 'server-auth-key',\n  keyType: 'rsa2048',\n  requireAuthentication: false,\n});\n```\n\n#### `keyExists(keyAlias?)`\n\nChecks whether a key exists for the alias without triggering any biometric prompt.\n\n```typescript\nconst keyExists = (keyAlias?: string): Promise<boolean> => {\n};\n```\n\n#### `getPublicKey(keyAlias?)`\n\nRetrieves the public key without triggering any biometric prompt. Unlike the `publicKey` returned by `createKeys`, the result is base64-encoded **X.509 SubjectPublicKeyInfo DER on both platforms and for both key types**, so it can be consumed directly by standard tooling (`openssl pkey -pubin -inform DER`). Rejects with `KEY_NOT_FOUND` if no key exists. On iOS, a biometric-gated key may reject with `KEY_REQUIRES_AUTHENTICATION` — the Keychain can refuse even a non-interactive lookup of an auth-bound key — so for those keys capture the `publicKey` returned by `createKeys` at creation time instead (Android is unaffected).\n\n```typescript\nconst getPublicKey = (keyAlias?: string): Promise<{\n  publicKey: string;   // Base64 X.509 SPKI DER\n  keyType?: string;    // 'rsa2048' | 'ec256'\n}> => {\n};\n```\n\n#### `sign(options)`\n\nSigns data **without any user authentication prompt**. Only works with keys created via `createKeysWithOptions({ requireAuthentication: false })`; on a biometric-gated key it never prompts — it resolves with `{ success: false, errorCode: 'KEY_REQUIRES_AUTHENTICATION' }` (use `signWithOptions()` for those keys).\n\n```typescript\nconst sign = (options: {\n  keyAlias?: string;\n  data: string;\n  inputEncoding?: InputEncoding;      // 'utf8' (default) | 'base64'\n  algorithm?: SignatureAlgorithm;     // defaults to the SHA-256 variant for the key type\n}): Promise<SignatureResult> => {\n};\n\nenum SignatureAlgorithm {\n  SHA256withRSA = 'SHA256withRSA',\n  SHA512withRSA = 'SHA512withRSA',\n  SHA256withECDSA = 'SHA256withECDSA',\n  SHA512withECDSA = 'SHA512withECDSA',\n}\n```\n\n**Error codes:** `KEY_NOT_FOUND`, `KEY_REQUIRES_AUTHENTICATION`, `INVALID_ALGORITHM` (algorithm/key-type mismatch), `UNSUPPORTED_ALGORITHM` (e.g. SHA-512 on an Android key minted before SHA-512 support or inside StrongBox), `INVALID_INPUT_ENCODING`.\n\n**Example:**\n```javascript\nconst result = await sign({\n  keyAlias: 'server-auth-key',\n  data: payload,\n  algorithm: SignatureAlgorithm.SHA512withRSA,\n});\nif (result.success) {\n  console.log('Signature:', result.signature);\n}\n```\n\n#### `deleteKeys(keyAlias?: string)`\n\nDeletes previously created cryptographic keys. Optionally accepts a custom key alias.\n\n```typescript\nconst deleteKeys = (keyAlias?: string): Promise<DeleteResult> => {\n};\n\ntype DeleteResult = {\n  success: boolean;          // Whether deletion succeeded\n}\n```\n\n**Example:**\n```javascript\nimport { deleteKeys } from '@sbaiahmed1/react-native-biometrics';\n\n// Delete keys with default (configured) alias\ntry {\n  const result = await deleteKeys();\n  console.log('Keys deleted successfully');\n} catch (error) {\n  console.error('Error deleting keys:', error);\n}\n\n// Delete keys with custom alias\ntry {\n  const result = await deleteKeys('com.myapp.biometric.backup');\n  console.log('Keys deleted with custom alias');\n} catch (error) {\n  console.error('Error deleting keys:', error);\n}\n```\n\n#### `getAllKeys(customAlias?)`\n\nRetrieves the library's stored key(s): with no argument it returns the key(s) under the default (configured) alias; pass a custom alias to look up that alias instead.\n\n```typescript\nconst getAllKeys = (customAlias?: string): Promise<GetAllKeysResult> => {\n};\n\ntype GetAllKeysResult = {\n  keys: Array<{\n    alias: string;           // Key identifier/alias\n    publicKey: string;       // Base64 encoded public key\n  }>;\n}\n```\n\n**Usage Examples:**\n\n```typescript\n// With no alias, returns the key(s) stored under the default (configured) alias\nconst defaultKeys = await getAllKeys();\nconsole.log(`Found ${defaultKeys.keys.length} keys`);\n\n// Look up a specific custom alias instead\nconst customKeys = await getAllKeys('my-custom-alias');\nconsole.log(`Found ${customKeys.keys.length} keys with custom alias`);\n```\n\n### Device Security\n\n#### `getDeviceIntegrityStatus()`\n\nChecks the integrity and security status of the device, including detection of compromised devices (rooted/jailbroken) and active runtime instrumentation (Frida/Xposed).\n\n```typescript\nconst getDeviceIntegrityStatus = (): Promise<DeviceIntegrityResult> => {\n};\n\ntype DeviceIntegrityResult = {\n  // Platform-specific properties\n  isRooted?: boolean;           // 🤖 ANDROID ONLY: Whether device is rooted\n  isJailbroken?: boolean;       // 🍎 iOS ONLY: Whether device is jailbroken\n  isKeyguardSecure?: boolean;   // 🤖 ANDROID ONLY: Whether device lock is secure\n  hasSecureHardware?: boolean;  // 🤖 ANDROID ONLY: Whether secure hardware is available\n\n  // Cross-platform properties\n  hasRuntimeHooks?: boolean;    // 🤖🍎 Whether an instrumentation framework (Frida, Xposed/LSPosed) is actively injected into the process\n  isDebuggerAttached?: boolean; // 🤖🍎 Whether a debugger is attached — informational only, does NOT affect isCompromised (debuggers are routine in development)\n  runtimeHookDetails?: {        // 🤖🍎 Per-framework breakdown of the hook detection\n    fridaDetected: boolean;     // 🤖🍎 Frida artifacts, mapped libraries, or default server port detected\n    xposedDetected?: boolean;   // 🤖 ANDROID ONLY: Xposed/EdXposed/LSPosed/Substrate detected\n  };\n  isCompromised: boolean;       // 🤖🍎 Overall compromise status (always present)\n  riskLevel: 'NONE' | 'LOW' | 'MEDIUM' | 'HIGH' | 'UNKNOWN';  // 🤖🍎 Risk assessment (always present)\n  error?: string;               // 🤖🍎 Error message if check failed\n}\n```\n\n> [!NOTE]\n> **Runtime hook detection is best-effort.** Detected hooks set `isCompromised: true` and `riskLevel: 'HIGH'`, but a negative result is not proof of integrity: an attacker who already controls the runtime can hook the detection itself, rename binaries, or move frida-server off its default port. These checks raise the bar — for server-verifiable integrity signals, pair them with [Play Integrity](https://developer.android.com/google/play/integrity) (Android) and [App Attest](https://developer.apple.com/documentation/devicecheck) (iOS).\n>\n> Two environment notes: on Android the frida-server port probe requires the host app to hold `android.permission.INTERNET` (virtually all React Native apps do) — the library does not declare it for you, and without it that single probe silently reports nothing. On the iOS **Simulator**, localhost is shared with the macOS host, so a `frida-server` running on your Mac will register as a hook inside the simulator; verify hook detection on a physical device.\n\n**Example:**\n```javascript\nimport { getDeviceIntegrityStatus } from '@sbaiahmed1/react-native-biometrics';\n\nconst checkDeviceSecurity = async () => {\n  try {\n    const status = await getDeviceIntegrityStatus();\n\n    if (status.isCompromised) {\n      console.warn('⚠️ Device security compromised!');\n      console.log('Risk level:', status.riskLevel);\n\n      if (status.isRooted) {\n        // Android ONLY\n        console.log('📱 Device is rooted');\n      }\n\n      if (status.isJailbroken) {\n        // IOS ONLY\n        console.log('📱 Device is jailbroken');\n      }\n\n      if (status.hasRuntimeHooks) {\n        console.log('🪝 Runtime instrumentation detected:', status.runtimeHookDetails);\n      }\n\n      // Handle compromised device (e.g., restrict functionality)\n      return false;\n    } else {\n      console.log('✅ Device security intact');\n      console.log('Risk level:', status.riskLevel);\n      return true;\n    }\n  } catch (error) {\n    console.error('💥 Device integrity check failed:', error);\n    return false;\n  }\n};\n```\n\n**Platform Compatibility:**\n\n| Property | Android | iOS | Description |\n|----------|---------|-----|-------------|\n| `isRooted` | ✅ | ❌ | Detects if Android device is rooted |\n| `isJailbroken` | ❌ | ✅ | Detects if iOS device is jailbroken |\n| `isKeyguardSecure` | ✅ | ❌ | Checks if device lock screen is secure |\n| `hasSecureHardware` | ✅ | ❌ | Verifies secure hardware availability |\n| `isCompromised` | ✅ | ✅ | Overall security compromise status |\n| `riskLevel` | ✅ | ✅ | Risk assessment level |\n| `error` | ✅ | ✅ | Error message if check fails |\n\n**Security Considerations:**\n- Device integrity checks are not foolproof and can be bypassed by sophisticated attackers\n- Use this as an additional security layer, not as the sole security measure\n- Consider implementing server-side validation for critical operations\n- The risk level assessment helps you make informed decisions about feature restrictions\n- Platform-specific properties (`isRooted`/`isJailbroken`) will be `undefined` on the opposite platform\n\n### Debugging & Diagnostics\n\n#### `getDiagnosticInfo()`\n\nReturns comprehensive diagnostic information about the device's biometric capabilities.\n\n```typescript\nconst getDiagnosticInfo = (): Promise<DiagnosticInfo> => {\n};\n\ntype DiagnosticInfo = {\n  platform: string;                 // 'iOS' or 'Android'\n  osVersion: string;                // Operating system version\n  deviceModel: string;              // Device model information\n  biometricCapabilities: string[];  // Available biometric types\n  securityLevel: string;            // 'SecureHardware' or 'Software'\n  keyguardSecure: boolean;          // Whether device lock is secure\n  enrolledBiometrics: string[];     // Currently enrolled biometric types\n  lastError?: string;               // Last error encountered (if any)\n}\n```\n\n#### `runBiometricTest()`\n\nRuns a comprehensive test of biometric functionality and returns detailed results.\n\n```typescript\nconst runBiometricTest = (): Promise<BiometricTestResult> => {\n};\n\ntype BiometricTestResult = {\n  success: boolean;                 // Overall test success\n  results: {\n    sensorAvailable: boolean;         // Biometric sensor availability\n    canAuthenticate: boolean;         // Authentication capability\n    hardwareDetected: boolean;        // Hardware detection\n    hasEnrolledBiometrics: boolean;   // Enrolled biometrics check\n    secureHardware: boolean;          // Secure hardware availability\n  };\n  errors: string[];                 // Critical errors found\n  warnings: string[];               // Non-critical warnings\n}\n```\n\n#### `setDebugMode(enabled: boolean)`\n\nEnables or disables debug logging for the biometric library.\n\n```typescript\nconst setDebugMode = (enabled: boolean): Promise<void> => {\n};\n```\n\n**Parameters:**\n- `enabled` (boolean): Whether to enable debug mode\n\n**Usage:**\n- When enabled, all library operations will log detailed information\n- **iOS**: Check Xcode console for `[ReactNativeBiometrics Debug]` messages\n- **Android**: Check Logcat for `ReactNativeBiometrics Debug` tags\n\n### Logging & Monitoring\n\nThe library includes a comprehensive centralized logging system for debugging and monitoring biometric operations.\n\n#### `enableLogging(enabled: boolean)`\n\nEnables or disables the centralized logging system.\n\n```typescript\nconst enableLogging = (enabled: boolean): void => {\n};\n```\n\n#### `setLogLevel(level: LogLevel)`\n\nSets the minimum log level for output.\n\n```typescript\nenum LogLevel {\n  DEBUG = 0,\n  INFO = 1,\n  WARN = 2,\n  ERROR = 3\n}\n\nconst setLogLevel = (level: LogLevel): void => {\n};\n```\n\n#### `configureLogger(config: LoggerConfig)`\n\nConfigures the logger with advanced options.\n\n```typescript\ntype LoggerConfig = {\n  enabled: boolean;\n  level: LogLevel;\n  useColors: boolean;\n  prefix: string;\n  includeTimestamp: boolean;\n  includeContext: boolean;\n  maxStoredLogs: number;\n};\n\nconst configureLogger = (config: Partial<LoggerConfig>): void => {\n};\n```\n\n#### `getLogs()`\n\nRetrieves stored log entries for analysis.\n\n```typescript\ntype LogEntry = {\n  timestamp: string;\n  level: LogLevel;\n  message: string;\n  context?: string;\n};\n\nconst getLogs = (): LogEntry[] => {\n};\n```\n\n#### `clearLogs()`\n\nClears all stored log entries.\n\n```typescript\nconst clearLogs = (): void => {\n};\n```\n\n**Example Usage:**\n```typescript\nimport {\n  enableLogging,\n  setLogLevel,\n  LogLevel,\n  configureLogger,\n  getLogs,\n  isSensorAvailable\n} from '@sbaiahmed1/react-native-biometrics';\n\n// Enable logging with INFO level\nenableLogging(true);\nsetLogLevel(LogLevel.INFO);\n\n// Configure advanced logging options\nconfigureLogger({\n  useColors: true,\n  prefix: '[MyApp]',\n  includeTimestamp: true,\n  includeContext: true,\n  maxStoredLogs: 1000\n});\n\n// Perform biometric operations - they will be automatically logged\nconst sensorInfo = await isSensorAvailable();\n\n// Retrieve logs for analysis\nconst logs = getLogs();\nconsole.log('Recent logs:', logs);\n```\n\n**For detailed logging documentation, see [docs/LOGGING.md](./docs/LOGGING.md).**\n\n### Key Integrity Validation\n\n#### `validateKeyIntegrity(keyAlias?: string): Promise<KeyIntegrityResult>`\nPerforms comprehensive validation of key integrity including format checks, accessibility tests, signature validation, and hardware backing verification. On Android API 31+, the result also reports `strongBoxBacked` in `integrityChecks` when the backing type can be distinguished.\n\n#### `verifyKeySignature(keyAlias?, data, promptTitle?, promptSubtitle?, cancelButtonText?, returnAuthType?): Promise<SignatureResult>`\nGenerates a cryptographic signature for the provided data using the specified key.\n\n- `data`: The data to be signed.\n- `keyAlias` (optional): The alias of the key to use for signing.\n- `promptTitle` (optional): Title text displayed in the signature prompt dialog.\n- `promptSubtitle` (optional): Subtitle text providing additional context in the prompt dialog (Android only).\n- `cancelButtonText` (optional): Text for the cancel button in the prompt dialog (Android only).\n- `returnAuthType` (optional): When `true`, includes `authType` in the result indicating how the user authenticated.\n- Returns a `SignatureResult` with `success`, `signature`, `error`, `errorCode`, and optionally `authType` (when `returnAuthType` is `true`).\n\n#### `signWithOptions(options: SignatureOptions): Promise<SignatureResult>` 🆕\n\nSigns data with advanced security controls, including the ability to disable device credential fallback.\n\n```typescript\nimport { InputEncoding, BiometricStrength } from '@sbaiahmed1/react-native-biometrics';\n\ntype SignatureOptions = {\n  keyAlias?: string;                      // Key alias to use for signing\n  data: string;                           // Data to sign\n  inputEncoding?: InputEncoding;          // Input encoding: InputEncoding.UTF8 (default) or InputEncoding.Base64\n  promptTitle?: string;                   // Prompt title\n  promptSubtitle?: string;                // Prompt subtitle (Android only)\n  cancelButtonText?: string;              // Cancel button text\n  biometricStrength?: BiometricStrength;  // Biometric strength (Android only)\n  disableDeviceFallback?: boolean;        // Prevent PIN/pattern fallback (Android only)\n  returnAuthType?: boolean;               // Include authType in result (see AuthType enum)\n};\n\n// InputEncoding enum values:\n// - InputEncoding.UTF8: Data is treated as a UTF-8 string (default)\n// - InputEncoding.Base64: Data is decoded from base64 before signing (for WebAuthn/binary data)\n```\n\n**Example - Requiring biometrics only (no PIN fallback):**\n```javascript\nimport { signWithOptions, BiometricStrength, InputEncoding } from '@sbaiahmed1/react-native-biometrics';\n\n// High-security signing - biometrics only, no PIN fallback\nconst result = await signWithOptions({\n  keyAlias: 'transaction_key',\n  data: JSON.stringify({ amount: 1000, recipient: 'user123' }),\n  promptTitle: 'Authorize Transaction',\n  promptSubtitle: 'Use biometrics to sign this transaction',\n  biometricStrength: BiometricStrength.Strong,\n  disableDeviceFallback: true,  // Fail if biometrics unavailable\n});\n\nif (result.success) {\n  console.log('Signature:', result.signature);\n} else if (result.errorCode === 'BIOMETRIC_NOT_AVAILABLE') {\n  console.log('Biometrics required but not available');\n}\n```\n\n**When to use `disableDeviceFallback: true`:**\n- High-value financial transactions\n- Multi-factor authentication where biometric is the second factor\n- Operations requiring proof of physical presence\n- Security-critical actions that must not fall back to knowledge-based authentication\n\n**Using base64 input for WebAuthn/binary data:**\n```javascript\nimport { signWithOptions, InputEncoding } from '@sbaiahmed1/react-native-biometrics';\n\n// When your challenge is binary data (e.g., from WebAuthn)\nconst binaryChallenge = 'SGVsbG8gV29ybGQh'; // base64-encoded bytes\n\nconst result = await signWithOptions({\n  keyAlias: 'webauthn_key',\n  data: binaryChallenge,\n  inputEncoding: InputEncoding.Base64,  // Decode as binary, not UTF-8\n  promptTitle: 'Authenticate',\n});\n```\n\nThis avoids double-encoding issues when working with WebAuthn challenges or other binary data that's already base64-encoded.\n\n#### `validateSignature(keyAlias, data, signature): Promise<SignatureValidationResult>`\nValidates a signature against the original data using the public key.\n\n```typescript\nconst validateSignature = (\n  keyAlias: string = '',   // pass '' to use the default (configured) alias\n  data: string,\n  signature: string\n): Promise<SignatureValidationResult> => {\n};\n```\n\n#### `sha256(data: string, inputEncoding?: 'utf8' | 'base64'): Promise<Sha256Result>`\n\nComputes a SHA-256 hash of the provided data using native platform cryptography.\n\n```typescript\ntype Sha256Result = {\n  hash: string;    // Base64-encoded SHA-256 hash\n  error?: string;  // Error message if hashing failed\n}\n```\n\n**Parameters:**\n- `data`: The data to hash.\n- `inputEncoding` (optional, default `'utf8'`): How to interpret the input data. Use `'base64'` if the data is already base64-encoded binary.\n\n**Example:**\n```javascript\nimport { sha256 } from '@sbaiahmed1/react-native-biometrics';\n\nconst result = await sha256('Hello, world!');\nconsole.log('Hash:', result.hash); // Base64-encoded SHA-256 hash\n```\n\n#### `getKeyAttributes(keyAlias?: string): Promise<KeyAttributesResult>`\nRetrieves detailed attributes and security properties of the specified key.\n\n**Example:**\n```javascript\nimport {\n  validateKeyIntegrity,\n  verifyKeySignature,\n  validateSignature,\n  getKeyAttributes\n} from '@sbaiahmed1/react-native-biometrics';\n\n// Validate key integrity\nconst integrityResult = await validateKeyIntegrity('my-key');\nconsole.log('Key valid:', integrityResult.valid);\nconsole.log('Hardware backed:', integrityResult.integrityChecks.hardwareBacked);\nconsole.log('StrongBox backed:', integrityResult.integrityChecks.strongBoxBacked); // Android API 31+ only\n\n// Generate and validate signature\nconst data = 'Hello, secure world!';\nconst signatureResult = await verifyKeySignature('my-key', data);\nif (signatureResult.success && signatureResult.signature) {\n  const validationResult = await validateSignature('my-key', data, signatureResult.signature);\n  console.log('Signature valid:', validationResult.valid);\n}\n\n// Get key attributes\nconst attributes = await getKeyAttributes('my-key');\nif (attributes.exists) {\n  console.log('Algorithm:', attributes.attributes.algorithm);\n  console.log('Key size:', attributes.attributes.keySize);\n  console.log('Security level:', attributes.attributes.securityLevel);\n}\n```\n\n### Biometric Change Detection\n\nMonitor real-time changes to device biometric settings and enrollments.\n\n#### `subscribeToBiometricChanges(callback: (event: BiometricChangeEvent) => void): EventSubscription`\n\nSubscribes to biometric change events. Returns an event subscription that can be used to unsubscribe later.\n\n**Parameters:**\n- `callback`: Function called when biometric changes are detected\n\n**Returns:** `EventSubscription` - Subscription object for unsubscribing\n\n**Example:**\n```javascript\nimport { subscribeToBiometricChanges } from '@sbaiahmed1/react-native-biometrics';\n\nconst subscription = subscribeToBiometricChanges((event) => {\n  console.log('Change type:', event.changeType);\n  console.log('Available:', event.available);\n  console.log('Biometry type:', event.biometryType);\n});\n```\n\n#### `unsubscribeFromBiometricChanges(subscription: EventSubscription): void`\n\nUnsubscribes from biometric change events to prevent memory leaks.\n\n**Parameters:**\n- `subscription`: The subscription object returned from `subscribeToBiometricChanges`\n\n**Example:**\n```javascript\nimport { unsubscribeFromBiometricChanges } from '@sbaiahmed1/react-native-biometrics';\n\nunsubscribeFromBiometricChanges(subscription);\n```\n\n#### `startBiometricChangeDetection(): Promise<void>`\n\nStarts monitoring for biometric changes. Must be called explicitly to begin detection after subscribing.\n\n**Returns:** `Promise<void>` - Resolves when detection has started\n\n**Example:**\n```javascript\nimport { startBiometricChangeDetection } from '@sbaiahmed1/react-native-biometrics';\n\nawait startBiometricChangeDetection();\nconsole.log('Monitoring biometric changes...');\n```\n\n#### `stopBiometricChangeDetection(): Promise<void>`\n\nStops monitoring for biometric changes. Useful for conserving battery and resources.\n\n**Returns:** `Promise<void>` - Resolves when detection has stopped\n\n**Example:**\n```javascript\nimport { stopBiometricChangeDetection } from '@sbaiahmed1/react-native-biometrics';\n\nawait stopBiometricChangeDetection();\nconsole.log('Stopped monitoring');\n```\n\n#### `BiometricChangeEvent` Type\n\n```typescript\ninterface BiometricChangeEvent {\n  timestamp: number;        // Unix epoch milliseconds when the change occurred\n  changeType: string;       // Type of change (see below)\n  biometryType: string;     // Current biometry type\n  available: boolean;       // Whether biometrics are available\n  enrolled: boolean;        // Whether biometrics are enrolled\n}\n```\n\n**Change Types:**\n- `BIOMETRIC_ENABLED`: Biometrics became available\n- `BIOMETRIC_DISABLED`: Biometrics became unavailable\n- `ENROLLMENT_CHANGED`: Biometric enrollments added/removed\n- `HARDWARE_UNAVAILABLE`: Biometric hardware changed\n- `STATE_CHANGED`: General state change\n\n**Complete Example:**\n```javascript\nimport React, { useEffect, useState } from 'react';\nimport {\n  subscribeToBiometricChanges,\n  unsubscribeFromBiometricChanges,\n  startBiometricChangeDetection,\n  stopBiometricChangeDetection\n} from '@sbaiahmed1/react-native-biometrics';\n\nconst MyComponent = () => {\n  const [subscription, setSubscription] = useState(null);\n\n  useEffect(() => {\n    // Subscribe to changes\n    const sub = subscribeToBiometricChanges((event) => {\n      console.log('Biometric change:', event.changeType);\n\n      if (event.changeType === 'BIOMETRIC_DISABLED') {\n        alert('Biometrics were disabled on this device');\n      }\n    });\n    setSubscription(sub);\n\n    // Start detection\n    startBiometricChangeDetection();\n\n    // Cleanup on unmount\n    return () => {\n      if (sub) {\n        unsubscribeFromBiometricChanges(sub);\n      }\n      stopBiometricChangeDetection();\n    };\n  }, []);\n\n  return <View>{/* Your UI */}</View>;\n};\n```\n\n**For comprehensive documentation including platform-specific behavior, implementation details, and best practices, see [BIOMETRIC_CHANGE_DETECTION.md](./BIOMETRIC_CHANGE_DETECTION.md).**\n\n### Error Codes\n\nCommon error codes returned by authentication methods:\n\n| Code | Description | Platform |\n|------|-------------|----------|\n| `SENSOR_NOT_AVAILABLE` | Biometric sensor not available | Both |\n| `USER_CANCEL` | User cancelled authentication | Both |\n| `USER_FALLBACK` | User chose fallback method | Both |\n| `SYSTEM_CANCEL` | System cancelled authentication | Both |\n| `PASSCODE_NOT_SET` | Device passcode not set | Both |\n| `BIOMETRY_NOT_AVAILABLE` | Biometry not available | iOS |\n| `BIOMETRY_NOT_ENROLLED` | No biometrics enrolled | iOS |\n| `BIOMETRY_LOCKOUT` | Too many failed attempts | Both |\n| `KEY_USER_NOT_AUTHENTICATED` | Keystore rejected the signing operation despite successful authentication (OEM auth-token delivery bug; automatically retried before this is returned — prompt the user to try again) | Android |\n\n\n## 📱 Example App\n\nThe library includes a comprehensive example app demonstrating all features and capabilities. The example app contains several demo components:\n\n### Available Demo Components\n\n#### 🔐 AuthExample\nDemonstrates basic authentication flows:\n- Simple biometric prompts\n- Enhanced authentication with custom options\n- Error handling and fallback scenarios\n\n#### 🎨 ColorExample\nShows UI customization capabilities:\n- Custom prompt styling\n- Theme integration\n- Visual feedback examples\n\n#### 🔧 CombinedBiometricsDemo\nComprehensive demonstration of key management and security features:\n- **Key Management**: Create, delete, and list biometric keys with custom aliases\n- **Integrity Validation**: Comprehensive key integrity checks and validation\n- **Signature Operations**: Generate and verify cryptographic signatures\n- **Security Testing**: Automated test suite for all security features\n- **Real-time Results**: Live display of test results and security status\n\nThis component combines the functionality of key management and integrity testing into a single, unified interface, making it easy to test and understand all security features.\n\n#### 🐛 DebuggingExample\nDebugging and diagnostic utilities:\n- Device capability detection\n- Comprehensive diagnostic information\n- Debug logging controls\n- Test result analysis\n\n### Running the Example App\n\nThe example is an Expo app using [Continuous Native Generation](https://docs.expo.dev/workflow/continuous-native-generation/) — the native projects are generated on first run, and Expo runs `pod install` for you on iOS. You still need [CocoaPods](https://cocoapods.org) installed (`pod` on your PATH) for the iOS build.\n\n```bash\n# from the repository root\nyarn\n\n# iOS\nyarn example ios\n\n# Android\nyarn example android\n```\n\nThe example app provides hands-on experience with all library features and serves as a reference implementation for integration patterns.\n\n## 📊 Library Comparison\n\n| Feature | @sbaiahmed1/react-native-biometrics | react-native-biometrics | react-native-touch-id |\n|---------|-----------------------------------|------------------------|----------------------|\n| **TypeScript Support** | ✅ Full support | ❌ Limited | ❌ No |\n| **New Architecture** | ✅ TurboModules | ❌ No | ❌ No |\n| **Expo Compatibility** | ✅ Yes | ❌ No | ❌ No |\n| **Key Management** | ✅ Advanced | ✅ Basic | ❌ No |\n| **Debug Tools** | ✅ Comprehensive | ❌ Limited | ❌ No |\n| **Active Maintenance** | ✅ Yes | ❌ Outdated | ❌ Outdated |\n| **Bundle Size** | 🟢 Small | 🟡 Medium | 🟢 Small |\n| **Documentation** | ✅ Extensive | 🟡 Basic | 🟡 Basic |\n| **Security Features** | ✅ Advanced | 🟡 Basic | 🟡 Basic |\n\n## 🎯 Use Cases\n\n### Mobile Banking & Finance\n- Secure login for banking applications\n- Transaction authentication\n- Account access protection\n- Compliance with financial security standards\n\n### Healthcare Applications\n- Patient data access control\n- Medical record security\n- HIPAA compliance support\n- Secure prescription management\n\n### Enterprise & Business\n- Employee authentication\n- Corporate app security\n- Document access control\n- Time tracking applications\n\n### E-commerce & Retail\n- Secure payment authentication\n- Account protection\n- Purchase confirmation\n- Loyalty program access\n\n### Social & Communication\n- Private message protection\n- Profile security\n- Content access control\n- Privacy-focused features\n\n## 🔧 Troubleshooting\n\n### Common Issues\n\n#### iOS\n- **\"Biometry is not available\"**: Ensure Face ID/Touch ID is set up in device settings\n- **\"Passcode not set\"**: Device must have a passcode/password configured\n- **Build errors**: Make sure iOS deployment target is 11.0 or higher\n\n#### Android\n- **\"No biometric features available\"**: Check if device has fingerprint sensor and it's enrolled\n- **\"BiometricPrompt not available\"**: Ensure Android API level 24+ (the library's default `minSdkVersion`) and the androidx.biometric dependency\n- **Permission denied**: Verify `USE_FINGERPRINT` and `USE_BIOMETRIC` permissions are added\n\n#### Native crash on 32-bit Android (armeabi-v7a) release builds\n\nIf your app crashes on startup on 32-bit devices in release builds with a backtrace pointing at `JavaTurboModule::setEventEmitterCallback` / `NativeReactNativeBiometricsSpecJSI`, this is a React Native core bug ([facebook/react-native#51628](https://github.com/facebook/react-native/issues/51628)), not a bug in this library. RN used an unsafe variadic JNI call that misreads the stack on 32-bit ABIs; it is triggered by any TurboModule that declares an event emitter (this library's `onBiometricChange`). See [issue #89](https://github.com/sbaiahmed1/react-native-biometrics/issues/89) for the full analysis.\n\n**Fix**: upgrade React Native to a version containing [the upstream fix](https://github.com/facebook/react-native/pull/51695):\n\n| RN line | Affected | Fixed in |\n|---|---|---|\n| ≤ 0.78.x | all | never backported — upgrade to 0.79.6+ |\n| 0.79.x | 0.79.0 – 0.79.5 | 0.79.6 |\n| 0.80.x | 0.80.0 | 0.80.1 |\n| 0.81.x and later | — | not affected |\n\n### Debug Mode\n\nEnable debug mode to get detailed logs:\n\n```typescript\nimport ReactNativeBiometrics from '@sbaiahmed1/react-native-biometrics';\n\n// Enable debug logging\nawait ReactNativeBiometrics.setDebugMode(true);\n\n// Perform operations - check console for detailed logs\nconst result = await ReactNativeBiometrics.isSensorAvailable();\n\n// Disable when done\nawait ReactNativeBiometrics.setDebugMode(false);\n```\n\n### Getting Help\n\n1. Check the [troubleshooting section](#troubleshooting) above\n2. Run diagnostic tests using `getDiagnosticInfo()` and `runBiometricTest()`\n3. Enable debug mode for detailed logging\n4. Search existing [GitHub issues](https://github.com/sbaiahmed1/react-native-biometrics/issues)\n5. Create a new issue with:\n   - Device information\n   - OS version\n   - Library version\n   - Debug logs\n   - Minimal reproduction code\n\n## 🤝 Contributing\n\nWe welcome contributions! Here's how you can help:\n\n### Development Setup\n\n1. **Fork and clone the repository**\n   ```bash\n   git clone https://github.com/your-username/react-native-biometrics.git\n   cd react-native-biometrics\n   ```\n\n2. **Install dependencies**\n   ```bash\n   npm install\n   # or\n   yarn install\n   ```\n\n### Guidelines\n\n- 🐛 **Bug Reports**: Include device info, OS version, and reproduction steps\n- ✨ **Feature Requests**: Describe the use case and expected behavior\n- 🔧 **Pull Requests**:\n  - Follow existing code style\n  - Add tests for new feat","readmeFilename":"README.md"}