{"_id":"@valture/react-native-recaptcha-v3","_rev":"19-987a46d1fda9bdf8df7fb1471aaa3e8d","name":"@valture/react-native-recaptcha-v3","dist-tags":{"latest":"2.4.1"},"versions":{"1.0.0":{"name":"@valture/react-native-recaptcha-v3","version":"1.0.0","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@1.0.0","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"40040b4432287814d71618f9916b1b722d84969a","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-1.0.0.tgz","fileCount":36,"integrity":"sha512-7h9naHd37cByh9kHf9C1bAvr8lRm+jMlcgImAWMDYUrJlixiQRM4ANY25z5Kzx+MHAtwbtiuxxA3SE0U0413Dg==","signatures":[{"sig":"MEUCIQDEkr2byibCxOK5NaBGXBhT/+G6yoSc9z7Ng5k1O4rFMQIgLaqvGQXH+Y6eR4LOD7UdR90h64r2U7kG4TIr3C0HBFQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40554},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/src/index.d.ts","module":"./lib/module/index.js","source":"./src/index.tsx","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}}},"gitHead":"79f10a8eeffa85f200704304879a0d9cd4f11455","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 @valture/react-native-recaptcha-v3-example","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"valture","email":"smitvalture@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":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"resolutions":{"@types/react":"^18.2.44"},"_nodeVersion":"20.17.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"18.3.1","turbo":"^1.10.7","eslint":"^9.17.0","del-cli":"^5.1.0","prettier":"^3.0.3","commitlint":"^17.0.2","release-it":"^17.10.0","typescript":"^5.7.2","@types/jest":"^29.5.14","@types/react":"^18.2.44","react-native":"0.76.3","react-native-webview":"^13.12.4","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@react-native/eslint-config":"^0.73.1","@testing-library/jest-native":"^5.4.3","@testing-library/react-native":"^12.9.0","@commitlint/config-conventional":"^17.0.2","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_1.0.0_1734343349616_0.328880899947954","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"esm":true,"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"view-legacy","version":"0.44.3","languages":"kotlin-objc"}},"1.0.1":{"name":"@valture/react-native-recaptcha-v3","version":"1.0.1","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@1.0.1","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"5b7c5e6af8dc3861eaa5df782f7042ac8606dd84","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-1.0.1.tgz","fileCount":36,"integrity":"sha512-Z8QG6fPm9cerMCGfSRH9264+LJY8XWDkGNbMbDM5SdrhTfz330lMzt21ZSWMmjt6aoZm73DtrlkfK2dYEgVH4w==","signatures":[{"sig":"MEUCIQDqMUKHbi/EO50lKIi3oFimZlafdA4LFxRO8xUWpoqOEQIgY96pMQxjiaYQ621dW/COzEm0oruneWrVrfXIkgmuSXA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40590},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/src/index.d.ts","module":"./lib/module/index.js","source":"./src/index.tsx","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}}},"gitHead":"c15a3f58d1e8fd5206cff440d456b8c1c36d52c0","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 @valture/react-native-recaptcha-v3-example","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"valture","email":"smitvalture@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":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.8.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"resolutions":{"@types/react":"^18.2.44"},"_nodeVersion":"20.17.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"18.3.1","turbo":"^1.10.7","eslint":"^9.17.0","del-cli":"^5.1.0","prettier":"^3.0.3","commitlint":"^17.0.2","release-it":"^17.10.0","typescript":"^5.7.2","@types/jest":"^29.5.14","@types/react":"^18.2.44","react-native":"0.76.3","react-native-webview":"^13.12.4","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@react-native/eslint-config":"^0.73.1","@testing-library/jest-native":"^5.4.3","@testing-library/react-native":"^12.9.0","@commitlint/config-conventional":"^17.0.2","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_1.0.1_1734349095680_0.221035663230708","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"esm":true,"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"view-legacy","version":"0.44.3","languages":"kotlin-objc"}},"1.0.2":{"name":"@valture/react-native-recaptcha-v3","version":"1.0.2","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@1.0.2","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"dd2c2fce721a370f2bb43628f9cd734d43393631","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-1.0.2.tgz","fileCount":36,"integrity":"sha512-uGKxV5K9NG2K401nheQclGS+JMFq562WfhOJ5sHdqmYYzx/3Jzg5db7gJbGTiRn7whHzs8xr1zSi+wByohI4cw==","signatures":[{"sig":"MEQCIEFWCi39oBnhhkYAiPHcmuDMz3mxcIFtpd1cTHLvhcfTAiBXFDcmbV8iYXykLAT7kC5TCvWgnEtPFG2y24HJ8MgGuw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40555},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/src/index.d.ts","module":"./lib/module/index.js","source":"./src/index.tsx","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}}},"gitHead":"4f86a78c8400a3dea024416f0ec9ed98bbe001e8","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 @valture/react-native-recaptcha-v3-example","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"valture","email":"smitvalture@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":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.9.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"resolutions":{"@types/react":"^18.2.44"},"_nodeVersion":"20.10.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"18.3.1","turbo":"^1.10.7","eslint":"^9.17.0","del-cli":"^5.1.0","prettier":"^3.0.3","commitlint":"^17.0.2","release-it":"^17.10.0","typescript":"^5.7.2","@types/jest":"^29.5.14","@types/react":"^18.2.44","react-native":"0.76.3","react-native-webview":"^13.12.4","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@react-native/eslint-config":"^0.73.1","@testing-library/jest-native":"^5.4.3","@testing-library/react-native":"^12.9.0","@commitlint/config-conventional":"^17.0.2","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.2"},"peerDependencies":{"react":"*","react-native":"*","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_1.0.2_1734361523653_0.9908477679274574","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"esm":true,"project":"tsconfig.build.json"}]]},"create-react-native-library":{"type":"view-legacy","version":"0.44.3","languages":"kotlin-objc"}},"1.0.3":{"name":"@valture/react-native-recaptcha-v3","version":"1.0.3","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@1.0.3","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"c7cde0495413bd6d3367b137a88cdd6f4b5f894b","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-1.0.3.tgz","fileCount":19,"integrity":"sha512-MvTUDaZyFEDeC++EhEZGcYKoj6m+wbRnLAfqHDG3B3XiKFsO5XRGpWBetNSWPHFnXhi5CEbB2ENan4y1Hiyqgw==","signatures":[{"sig":"MEYCIQCjN+sDVkeLqI26ePrx0lozcis03SDPltLatXSeoFu1uAIhALHy/SFnUHL34t5Do4ym930keLz4wmbF2tvnN3RTgRzA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28914},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","module":"./lib/module/index.js","source":"./src/index.tsx","exports":{".":{"import":{"types":"./lib/typescript/module/index.d.ts"},"require":{"types":"./lib/typescript/commonjs/index.d.ts"}}},"gitHead":"751f6743c8c1e222ffd3f3f893ceaad397486728","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli android/build lib","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"prettier":{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"resolutions":{"@types/react":"^18.2.44"},"_nodeVersion":"20.17.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"react":"18.3.1","eslint":"^9.17.0","prettier":"^3.0.3","release-it":"^17.10.0","typescript":"^5.7.2","@types/react":"^19.0.1","react-native":"0.76.3","react-native-webview":"^13.12.4","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.3"},"peerDependencies":{"react":"*","react-native":"*","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_1.0.3_1734439406512_0.8424673330381143","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"esm":true,"project":"tsconfig.build.json"}]]}},"1.0.5":{"name":"@valture/react-native-recaptcha-v3","version":"1.0.5","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@1.0.5","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"ad070ca388be5fe91942094ea55fabfa24ad7ef6","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-1.0.5.tgz","fileCount":19,"integrity":"sha512-QdYa8fx55J4KB9GwmzKjSBGoUxBNCjoJa5fZyYITDL0OX2D5wNPHHSHm8zcCNblubUSjjcfpS1E0dfDt6C5Rpg==","signatures":[{"sig":"MEQCICdkeNEWseNjaGbB0tRwghcyf+igeG1UCqhYQRr/cSPyAiAKl1RONXq47c+MCB2VzuJSclgq9Z2Sy2Os1W2tVin5Nw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28925},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","module":"./lib/module/index.js","source":"./src/index.tsx","exports":{".":{"import":{"types":"./lib/typescript/module/index.d.ts"},"require":{"types":"./lib/typescript/commonjs/index.d.ts"}}},"gitHead":"ad9df6b5f130f9d2dd00bfb1a5030443791562f0","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli lib","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"prettier":{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"resolutions":{"@types/react":"^18.2.44"},"_nodeVersion":"20.17.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"react":"18.3.1","eslint":"^9.17.0","del-cli":"^6.0.0","prettier":"^3.0.3","release-it":"^17.10.0","typescript":"^5.7.2","@types/react":"^19.0.1","react-native":"0.76.3","react-native-webview":"^13.12.4","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.3"},"peerDependencies":{"react":"*","react-native":"*","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_1.0.5_1734439655917_0.7767900755360346","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"esm":true,"project":"tsconfig.build.json"}]]}},"1.0.6":{"name":"@valture/react-native-recaptcha-v3","version":"1.0.6","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@1.0.6","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"26b8666fd36a357f57b5c47bfa2f407c1d862d97","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-1.0.6.tgz","fileCount":19,"integrity":"sha512-2fx7G2RTvmD2lFdB5onCbav5F6Jxll7sd/KG3pSk01w16WcctcPQUEWbuj/xpeHWNWftlfRwFkldui4Vz2OooA==","signatures":[{"sig":"MEYCIQC2xkgkDWWO/29xpmRxLG5cR5/qDnDmKSgeC1CeYqL2XwIhAJDcMALYPoJ5zmPQusmL0JchQimEHhNm//ClowSCKb0F","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29340},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","module":"./lib/module/index.js","source":"./src/index.tsx","exports":{".":{"import":{"types":"./lib/typescript/module/index.d.ts"},"require":{"types":"./lib/typescript/commonjs/index.d.ts"}}},"gitHead":"ad1effaf95aa1c499164728eb5b7a5ae01e3bd4e","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli lib","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"prettier":{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"resolutions":{"@types/react":"^18.2.44"},"_nodeVersion":"20.17.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"react":"18.3.1","eslint":"^9.17.0","del-cli":"^6.0.0","prettier":"^3.0.3","release-it":"^17.10.0","typescript":"^5.7.2","@types/react":"^19.0.1","react-native":"0.76.3","react-native-webview":"^13.12.4","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.3"},"peerDependencies":{"react":"*","react-native":"*","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_1.0.6_1734440990832_0.15246063241280994","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"esm":true,"project":"tsconfig.build.json"}]]}},"1.0.7":{"name":"@valture/react-native-recaptcha-v3","version":"1.0.7","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@1.0.7","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"490d3de43430ffb92dcec2b9c1e33d6290aed869","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-1.0.7.tgz","fileCount":19,"integrity":"sha512-EzLyALl+LKn5HZnhY3BpqDapimEXO9IFjxtlDgJlADef2qeEP/r1RYH0tFwmq6+UfbneRP3DGfiMCKZ8mWlUGw==","signatures":[{"sig":"MEUCIQDTxMTxbU1s6R2FkQr/Ww4lbB3lnS1r4UwaSXeKcY6HqQIgBXbiVwU2Pbe7/5poKIMso5TxyWUaprED3QMIfSXNpH0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30541},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","module":"./lib/module/index.js","source":"./src/index.tsx","exports":{".":{"import":{"types":"./lib/typescript/module/index.d.ts"},"require":{"types":"./lib/typescript/commonjs/index.d.ts"}}},"gitHead":"8ac256d0c9aa3bbbeecddbcfb4aa094e4c361894","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli lib","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"prettier":{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"resolutions":{"@types/react":"^18.2.44"},"_nodeVersion":"20.17.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"react":"18.3.1","eslint":"^9.17.0","del-cli":"^6.0.0","prettier":"^3.0.3","release-it":"^17.10.0","typescript":"^5.7.2","@types/react":"^19.0.1","react-native":"0.76.3","react-native-webview":"^13.12.4","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.3"},"peerDependencies":{"react":"*","react-native":"*","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_1.0.7_1734441432918_0.0576497849276747","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"esm":true,"project":"tsconfig.build.json"}]]}},"1.0.8":{"name":"@valture/react-native-recaptcha-v3","version":"1.0.8","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@1.0.8","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"134926be0fdac36c4ff3dcd91ce34e9f71ad3baa","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-1.0.8.tgz","fileCount":19,"integrity":"sha512-nYnRpRwl038silqQhmtrqZ1WypbBt9OooPLLV+EsbcWed9TVYYGFNx5FbkPKmHya3cIEY82ZoA7l/Q208W00dA==","signatures":[{"sig":"MEUCIGVakAav7JhGzdSA6G48dm8QF0espASZtRY4HVSUvVZeAiEAnfCfKse6MYgPMQka5NmDsK+BigQXKp1yDTfsVrcWXas=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30656},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","module":"./lib/module/index.js","source":"./src/index.tsx","exports":{".":{"import":{"types":"./lib/typescript/module/index.d.ts"},"require":{"types":"./lib/typescript/commonjs/index.d.ts"}}},"gitHead":"d71f9e65d06e5c206e85cb023478f4897284bb12","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli lib","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"prettier":{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"resolutions":{"@types/react":"^18.2.44"},"_nodeVersion":"20.17.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"react":"18.3.1","eslint":"^9.17.0","del-cli":"^6.0.0","prettier":"^3.0.3","release-it":"^17.10.0","typescript":"^5.7.2","@types/react":"^19.0.1","react-native":"0.76.3","react-native-webview":"^13.12.4","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.3"},"peerDependencies":{"react":"*","react-native":"*","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_1.0.8_1734441614649_0.5291454275552385","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"esm":true,"project":"tsconfig.build.json"}]]}},"1.0.9":{"name":"@valture/react-native-recaptcha-v3","version":"1.0.9","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@1.0.9","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"4ba55464d9e7ed67979de8948847cb19610e21c7","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-1.0.9.tgz","fileCount":19,"integrity":"sha512-dvL+PRV+fWz4kKS+nUWsivao5JWMzsdrWntXYldjNQBZn6/ZsZ8s8ZPSPIxlyjpTleLdPPmvLRbuUqZCVlaGtg==","signatures":[{"sig":"MEQCIFsM3s1vc8JayUHQMlAu6NsSD9Muw4zTBRcc/9jBeUD8AiAOkxy8DI8Gex/nuuDnvd1jZ2ZwInzp4gb0W1mpnsi8xg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30656},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","module":"./lib/module/index.js","source":"./src/index.tsx","exports":{".":{"import":{"types":"./lib/typescript/module/index.d.ts"},"require":{"types":"./lib/typescript/commonjs/index.d.ts"}}},"gitHead":"b033ee212bc83d1b05dfd2bf09a21b79e57d4d41","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli lib","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"prettier":{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"_npmVersion":"10.8.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"resolutions":{"@types/react":"^18.2.44"},"_nodeVersion":"22.8.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"react":"18.3.1","eslint":"^9.17.0","del-cli":"^6.0.0","prettier":"^3.0.3","release-it":"^17.10.0","typescript":"^5.7.2","@types/react":"^19.0.1","react-native":"0.76.3","react-native-webview":"^13.12.4","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.3"},"peerDependencies":{"react":"*","react-native":"*","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_1.0.9_1734449573302_0.7326769785448004","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"esm":true,"project":"tsconfig.build.json"}]]}},"1.0.10":{"name":"@valture/react-native-recaptcha-v3","version":"1.0.10","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@1.0.10","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"b1d2d2cf9257021678e2ece2c4e619a1ab788760","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-1.0.10.tgz","fileCount":19,"integrity":"sha512-QLIZDLVchWa2aPaDotZkkMfE15v3EgkEMNyoBdJRGpxn61GZGLUk30OD6Dd/8QUWUpe4TsaGrYsrjQhqxMhvMA==","signatures":[{"sig":"MEYCIQCfuXzr9l1ipJ5SV44gsfF0D/RlfDVBEQN5oKjWdIf5BAIhAJIwLuzvfjyMOdQRCz79R/qSfRfnnpp6mg880U2BBJus","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39735},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","module":"./lib/module/index.js","source":"./src/index.tsx","exports":{".":{"import":{"types":"./lib/typescript/module/index.d.ts"},"require":{"types":"./lib/typescript/commonjs/index.d.ts"}}},"gitHead":"e55f17f7595d6d19bb91aadf0ffbfd1ee6c20068","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli lib","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"prettier":{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"_npmVersion":"10.9.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"_nodeVersion":"20.10.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"react":"18.3.1","eslint":"^9.17.0","del-cli":"^6.0.0","prettier":"^3.0.3","release-it":"^17.10.0","typescript":"^5.7.2","@types/react":"^18.2.44","react-native":"0.76.3","@types/react-native":"^0.72.8","react-native-webview":"^13.12.4","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.3"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.60.0","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_1.0.10_1746592619828_0.5399134540452741","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"esm":true,"project":"tsconfig.build.json"}]]}},"1.1.0":{"name":"@valture/react-native-recaptcha-v3","version":"1.1.0","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@1.1.0","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"d304afbdd24bb3fab6ff4698c51b63bb3509edbf","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-1.1.0.tgz","fileCount":19,"integrity":"sha512-S6v1UD1rikVCSoj4QkcMUwBq34Q8gwWvfs4sFSDr9G8NqDCgl909gXy1909sfJxW4oF8t9ODCOTpXoDy3G4OaQ==","signatures":[{"sig":"MEUCIQCfEzToL4inktJk4oK39LZH3Y1LsRJdBzR1FzYVh1320AIgKMJ1aJCNQby4QuS5qZv0B7HBDtoFtaVI5qQRDvm+oCY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54280},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","module":"./lib/module/index.js","source":"./src/index.tsx","exports":{".":{"import":{"types":"./lib/typescript/module/index.d.ts"},"require":{"types":"./lib/typescript/commonjs/index.d.ts"}}},"gitHead":"cda1262cfe3faf254711cde7e61d8377a6b26daf","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli lib","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"prettier":{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"_npmVersion":"10.9.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"_nodeVersion":"20.10.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"react":"18.3.1","eslint":"^9.17.0","del-cli":"^6.0.0","prettier":"^3.0.3","release-it":"^17.10.0","typescript":"^5.7.2","@types/react":"^18.2.44","react-native":"0.76.3","@types/react-native":"^0.72.8","react-native-webview":"^13.12.4","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.3"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.60.0","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_1.1.0_1746597010750_0.1666832197034449","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"esm":true,"project":"tsconfig.build.json"}]]}},"1.1.1":{"name":"@valture/react-native-recaptcha-v3","version":"1.1.1","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@1.1.1","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"0a150bd3fe1a1eae9e388e1feff6b29cfa0a3420","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-1.1.1.tgz","fileCount":14,"integrity":"sha512-+M2K2uwDA6mLXBjVjkjA+P9/Vo5d8/I82zlfA3WcmZdMgvFiTpEgA3+US6mMSTO2+GAr4v0su6rNFFHzrh9gGQ==","signatures":[{"sig":"MEYCIQC8yELqe+As9/Ju3CCNIvoxGqrs37SpIFv5M0H7G4PFewIhAM/pmzmvIQN2ZT7PuxqmMElCSjusnpPd9FzGQOViKDrV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56182},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","module":"./lib/module/index.js","source":"./src/index.tsx","exports":{".":{"import":{"types":"./lib/typescript/module/index.d.ts"},"require":{"types":"./lib/typescript/commonjs/index.d.ts"}}},"gitHead":"c0f57fb824687ab12afb1d697412f3484465fdea","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli lib","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"prettier":{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"},"typeRoots":["./src/types","./node_modules/@types"],"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"_npmVersion":"11.5.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"_nodeVersion":"24.6.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"react":"18.3.1","eslint":"^9.17.0","del-cli":"^6.0.0","prettier":"^3.0.3","release-it":"^17.10.0","typescript":"^5.7.2","@types/react":"^18.2.44","react-native":"0.76.3","@types/react-native":"^0.72.8","react-native-webview":"^13.12.4","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.3"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.60.0","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_1.1.1_1758823966294_0.177612669582488","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"esm":true,"project":"tsconfig.build.json"}]]}},"2.0.0":{"name":"@valture/react-native-recaptcha-v3","version":"2.0.0","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@2.0.0","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"1a54712400e475f36d77633364e8c699d09b223d","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-2.0.0.tgz","fileCount":6,"integrity":"sha512-Cj2fEjz80/P8UM879LUx0BdpWC9KsjllfrDWBHUNsKANLwlgKJX6z4Sc2FrdAzZj7vPaSdbCCpJDH78VuI1Idg==","signatures":[{"sig":"MEUCIQDGXedxunF7SnJKgeqYaZp6NPTw2/Ak1MYqtUi9U/OWqwIgLyVg/sXQsbbA0MQ4SewiyQTglT2D1xNDIYAKlc3TF8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20801},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","exports":{".":"./lib/commonjs/index.js"},"gitHead":"82a572e9fa819cc1050ebf75927b0704ed67b54c","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli lib","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"prettier":{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"_npmVersion":"11.5.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"_nodeVersion":"24.6.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"react":"18.3.1","eslint":"^9.17.0","del-cli":"^6.0.0","prettier":"^3.0.3","release-it":"^17.10.0","typescript":"^5.7.2","@types/react":"^18.2.44","react-native":"0.76.3","@types/react-native":"^0.72.8","react-native-webview":"^13.12.4","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.3"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.60.0","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_2.0.0_1758827028462_0.5389341978788933","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"sourceMaps":false}],["typescript",{"project":"tsconfig.build.json"}]]}},"2.0.1":{"name":"@valture/react-native-recaptcha-v3","version":"2.0.1","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@2.0.1","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"6b3599d40bc0abe247e400335ed2b4b28df37c03","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-2.0.1.tgz","fileCount":6,"integrity":"sha512-JG4M3kl4w4c944qrv+hDC5DAf2+vs0gt4cOZAXMPRquXd8FGRB+EQ4DTrm33wfQlx1VkNwjI2fTUnniFZbmcOQ==","signatures":[{"sig":"MEUCIEVv4ymgAeE/Jbo+X+I+JmukzOCRcMTg2TgITt03yNTXAiEAxYpLUuNegoggWrNi1gFKfIoiKQMK82YbOShB/Cj2coA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20881},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","exports":{".":{"types":"./lib/typescript/commonjs/index.d.ts","default":"./lib/commonjs/index.js"}},"gitHead":"28be3c550f1a4b7b9ad0157e301434e13b571da0","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli lib","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"prettier":{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"_npmVersion":"11.5.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"_nodeVersion":"24.6.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"react":"18.3.1","eslint":"^9.17.0","del-cli":"^6.0.0","prettier":"^3.0.3","release-it":"^17.10.0","typescript":"^5.7.2","@types/react":"^18.2.44","react-native":"0.76.3","@types/react-native":"^0.72.8","react-native-webview":"^13.12.4","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.3"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.60.0","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_2.0.1_1758827618143_0.3949852133734011","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"sourceMaps":false}],["typescript",{"project":"tsconfig.build.json"}]]}},"2.1.0":{"name":"@valture/react-native-recaptcha-v3","version":"2.1.0","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@2.1.0","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"f4e5b3b9c3ddbfb39fcc374221fbf0a05d0488be","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-2.1.0.tgz","fileCount":6,"integrity":"sha512-DCPDd6MLWUnmTPpDJD3170iwrFn8KkwmDiT8tapKx9BuWphcSrZezPlyTUov6FOxgTQo94i7qqAcgjG/ZnrtlA==","signatures":[{"sig":"MEQCIG4R9AHLZw9jS6fFQ2zLDRc2Ue+ksV/YcQEGAQXZLv8kAiAdh09QTmRDmyGiRvO9ioEaj9mqNYRcRwqUizrlsMcLmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21717},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","exports":{".":{"types":"./lib/typescript/commonjs/index.d.ts","default":"./lib/commonjs/index.js"}},"gitHead":"33341a37fca5a8def5a6a7025380cc8608ff3819","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli lib","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"prettier":{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"_npmVersion":"11.5.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"_nodeVersion":"24.6.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"react":"18.3.1","eslint":"^9.17.0","del-cli":"^6.0.0","prettier":"^3.0.3","release-it":"^17.10.0","typescript":"^5.7.2","@types/react":"^18.2.44","react-native":"0.76.3","@types/react-native":"^0.72.8","react-native-webview":"^13.12.4","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.3"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.60.0","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_2.1.0_1758900111560_0.7776099169620245","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"sourceMaps":false}],["typescript",{"project":"tsconfig.build.json"}]]}},"2.2.0":{"name":"@valture/react-native-recaptcha-v3","version":"2.2.0","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@2.2.0","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"be056506712a85561410d568f404bae154025d28","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-2.2.0.tgz","fileCount":6,"integrity":"sha512-3S9mVhV8HwojDL+Sxm/UmMfoiQJAFjUqgJ840Az3/Z7IRRirxDUSKs653W4T89tV6YD63VLHxxG7NJWW1f5fbQ==","signatures":[{"sig":"MEUCIQCMlEMc00Jb2bVJxvKCysKYuDGorYfvAmH50o1k996GsAIgSYV66+ZNr4g6fQXol3gVO7il5DgJXCrfwPBMRdAyX3M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38037},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","exports":{".":{"types":"./lib/typescript/commonjs/index.d.ts","default":"./lib/commonjs/index.js"}},"gitHead":"cdae6b976df66bbfab2f0e143690e6eb04fd0347","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli lib","prepare":"bob build","release":"release-it","typecheck":"tsc","pack:local":"npm run clean && npm run prepare && npm pack"},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"prettier":{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"_npmVersion":"11.5.2","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"_nodeVersion":"24.6.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"react":"18.3.1","eslint":"^9.17.0","del-cli":"^6.0.0","prettier":"^3.0.3","release-it":"^17.10.0","typescript":"^5.7.2","@types/react":"^18.2.44","react-native":"0.76.3","@types/react-native":"^0.72.8","react-native-webview":"^13.12.4","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.3"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.60.0","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_2.2.0_1762253717777_0.126480653852294","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"sourceMaps":false}],["typescript",{"project":"tsconfig.build.json"}]]}},"2.3.0":{"name":"@valture/react-native-recaptcha-v3","version":"2.3.0","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@2.3.0","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"960842a44d37aeca0dcf8b7237e2d02d5557c043","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-2.3.0.tgz","fileCount":6,"integrity":"sha512-/Kvz350pAdl4xFLKwux5NNa+6Wz9TwJUC7Vn8BX+O4Ure/M9JdGvTiq3VPZNYgZDOgyVuX49qTE4wDQMVdqLKQ==","signatures":[{"sig":"MEYCIQDTwfqTo0MEtGAcDFnrDpcHro3nlOLqQ9wiJ/HuUkdUZgIhAJSeuRKNlaHbBY3Mna6g+PQfe3Zn5xRiOUSe6pih1LU3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37635},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","exports":{".":{"types":"./lib/typescript/commonjs/index.d.ts","default":"./lib/commonjs/index.js"}},"gitHead":"f8d5cb3cfcb3a72bb09fba3ee025225ee684a229","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli lib","prepare":"bob build","release":"release-it","typecheck":"tsc","pack:local":"npm run clean && npm run prepare && npm pack"},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"prettier":{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"_npmVersion":"11.12.1","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"react":"18.3.1","eslint":"^9.17.0","del-cli":"^6.0.0","prettier":"^3.0.3","release-it":"^17.10.0","typescript":"^5.7.2","@types/react":"^18.2.44","react-native":"0.76.3","react-native-webview":"^13.16.1","eslint-config-prettier":"^9.0.0","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@react-native-community/cli":"15.0.1","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.3"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.60.0","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_2.3.0_1779466220806_0.13144937705145643","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"sourceMaps":false}],["typescript",{"project":"tsconfig.build.json"}]]}},"2.4.0":{"name":"@valture/react-native-recaptcha-v3","version":"2.4.0","keywords":["react-native","recaptcha","google","v3","security","verification"],"author":{"url":"https://github.com/smitvalture","name":"Smit Valture","email":"smitvalture@gmail.com"},"license":"MIT","_id":"@valture/react-native-recaptcha-v3@2.4.0","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"dist":{"shasum":"b3a65fd1164177d3e8ac636a9f1409a5e982df66","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-2.4.0.tgz","fileCount":6,"integrity":"sha512-Z1fCDiU4GpSHF5vuFOoPDbNFK6GJu/pJMHZYDSNG3Hfh/vQ8ydGBouP6wwlZJUoGpMm1mPXJZr795HX0FXMGIw==","signatures":[{"sig":"MEYCIQC6GFcK03jI46qKCUszu3pur779jdE1bfwTjvV3LAYjyAIhAKdjUR7UychtszK/Q68/PYLzukcuStDwM3wwPxe5wRp0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45768},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","exports":{".":{"types":"./lib/typescript/commonjs/index.d.ts","default":"./lib/commonjs/index.js"}},"gitHead":"875d84695ce31fe1bde0a546a0f6cf708000301d","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","clean":"del-cli lib","prepare":"bob build","release":"release-it","test:ci":"jest --ci --coverage","typecheck":"tsc","pack:local":"npm run clean && npm run prepare && npm pack"},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"prettier":{"tabWidth":2,"singleQuote":true,"trailingComma":"es5"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git","type":"git"},"_npmVersion":"11.12.1","description":"React Native component for integrating Google reCAPTCHA v3, providing seamless bot protection for mobile applications.","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"jest":"^29.7.0","react":"18.3.1","eslint":"^9.17.0","del-cli":"^6.0.0","prettier":"^3.0.3","babel-jest":"^29.7.0","release-it":"^17.10.0","typescript":"^5.7.2","@types/jest":"^29.5.12","@types/react":"^18.2.44","react-native":"0.76.3","react-test-renderer":"18.3.1","react-native-webview":"^13.16.1","eslint-config-prettier":"^9.0.0","react-native-builder-bob":"^0.33.3","@typescript-eslint/parser":"^8.18.0","@types/react-test-renderer":"^18.3.0","@react-native-community/cli":"15.0.1","@testing-library/react-native":"^12.7.2","@typescript-eslint/eslint-plugin":"^8.18.0","@release-it/conventional-changelog":"^9.0.3"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.60.0","react-native-webview":">=11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-recaptcha-v3_2.4.0_1779469776889_0.7749916114847937","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"sourceMaps":false}],["typescript",{"project":"tsconfig.build.json"}]]}},"2.4.1":{"name":"@valture/react-native-recaptcha-v3","version":"2.4.1","description":"React Native component for Google reCAPTCHA v3 (score-based, invisible). TypeScript-first, ref-based API, AbortSignal support, reCAPTCHA Enterprise.","main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/index.d.ts","exports":{".":{"types":"./lib/typescript/commonjs/index.d.ts","default":"./lib/commonjs/index.js"}},"scripts":{"typecheck":"tsc","lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli lib","prepare":"bob build","pack:local":"npm run clean && npm run prepare && npm pack","test":"jest","test:ci":"jest --ci --coverage","release":"release-it"},"keywords":["react-native","recaptcha","recaptcha-v3","google-recaptcha","google","v3","score-based","invisible","captcha","enterprise","abort-signal","typescript","security","verification","bot-protection","antibot","spam","ios","android"],"repository":{"type":"git","url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git"},"author":{"name":"Smit Valture","email":"smitvalture@gmail.com","url":"https://github.com/smitvalture"},"license":"MIT","bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"engines":{"node":">=18"},"devDependencies":{"@react-native-community/cli":"15.0.1","@release-it/conventional-changelog":"^9.0.3","@testing-library/react-native":"^12.7.2","@types/jest":"^29.5.12","@types/react":"^18.2.44","@types/react-test-renderer":"^18.3.0","@typescript-eslint/eslint-plugin":"^8.18.0","@typescript-eslint/parser":"^8.18.0","babel-jest":"^29.7.0","del-cli":"^6.0.0","eslint":"^9.17.0","eslint-config-prettier":"^9.0.0","jest":"^29.7.0","prettier":"^3.0.3","react":"18.3.1","react-native":"0.76.3","react-native-builder-bob":"^0.33.3","react-native-webview":"^13.16.1","react-test-renderer":"18.3.1","release-it":"^17.10.0","typescript":"^5.7.2"},"peerDependencies":{"react":">=16.8.0","react-native":">=0.60.0","react-native-webview":">=11.0.0"},"release-it":{"git":{"commitMessage":"chore: release ${version}","tagName":"v${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"prettier":{"singleQuote":true,"tabWidth":2,"trailingComma":"es5"},"react-native-builder-bob":{"source":"src","output":"lib","targets":[["commonjs",{"sourceMaps":false}],["typescript",{"project":"tsconfig.build.json"}]]},"packageManager":"yarn@1.22.22","gitHead":"a0cae447d719d930e1b2546c9f3aa1cdb08eae96","_id":"@valture/react-native-recaptcha-v3@2.4.1","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-04Ge+OGko/mw7zUNk9eeppsZofc6iMEGS/2i6KT7qbE1mtBFQmdYyulqHFdVrrZiyy6yK6aLNAn54El75DGK6A==","shasum":"7cb926e4e3286e6c8c91f49c36c157252ac06e7e","tarball":"https://registry.npmjs.org/@valture/react-native-recaptcha-v3/-/react-native-recaptcha-v3-2.4.1.tgz","fileCount":6,"unpackedSize":49414,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB4HonC4IH7w2fKixCQKkZVhhDflp49TUu2UMC2/3/uvAiEA4DfUOoybFaA6vvPZPnsA8kHK2ic3qyldErHNTH2OqT0="}]},"_npmUser":{"name":"valture","email":"smitvalture@gmail.com"},"directories":{},"maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-recaptcha-v3_2.4.1_1779471084513_0.675236772685472"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-16T10:02:29.532Z","modified":"2026-05-22T17:31:24.765Z","1.0.0":"2024-12-16T10:02:29.783Z","1.0.1":"2024-12-16T11:38:15.930Z","1.0.2":"2024-12-16T15:05:23.849Z","1.0.3":"2024-12-17T12:43:26.698Z","1.0.5":"2024-12-17T12:47:36.073Z","1.0.6":"2024-12-17T13:09:50.978Z","1.0.7":"2024-12-17T13:17:13.087Z","1.0.8":"2024-12-17T13:20:14.856Z","1.0.9":"2024-12-17T15:32:53.490Z","1.0.10":"2025-05-07T04:37:00.015Z","1.1.0":"2025-05-07T05:50:10.949Z","1.1.1":"2025-09-25T18:12:46.473Z","2.0.0":"2025-09-25T19:03:48.634Z","2.0.1":"2025-09-25T19:13:38.351Z","2.1.0":"2025-09-26T15:21:51.736Z","2.2.0":"2025-11-04T10:55:17.952Z","2.3.0":"2026-05-22T16:10:20.957Z","2.4.0":"2026-05-22T17:09:37.038Z","2.4.1":"2026-05-22T17:31:24.638Z"},"bugs":{"url":"https://github.com/smitvalture/react-native-recaptcha-v3/issues"},"author":{"name":"Smit Valture","email":"smitvalture@gmail.com","url":"https://github.com/smitvalture"},"license":"MIT","homepage":"https://github.com/smitvalture/react-native-recaptcha-v3#readme","keywords":["react-native","recaptcha","recaptcha-v3","google-recaptcha","google","v3","score-based","invisible","captcha","enterprise","abort-signal","typescript","security","verification","bot-protection","antibot","spam","ios","android"],"repository":{"type":"git","url":"git+https://github.com/smitvalture/react-native-recaptcha-v3.git"},"description":"React Native component for Google reCAPTCHA v3 (score-based, invisible). TypeScript-first, ref-based API, AbortSignal support, reCAPTCHA Enterprise.","maintainers":[{"name":"valture","email":"smitvalture@gmail.com"}],"readme":"# React Native reCAPTCHA v3\n\n[![npm version](https://badge.fury.io/js/%40valture%2Freact-native-recaptcha-v3.svg)](https://www.npmjs.com/package/@valture/react-native-recaptcha-v3)\n[![npm downloads](https://img.shields.io/npm/dm/%40valture%2Freact-native-recaptcha-v3)](https://www.npmjs.com/package/@valture/react-native-recaptcha-v3)\n[![CI](https://github.com/smitvalture/react-native-recaptcha-v3/actions/workflows/ci.yml/badge.svg)](https://github.com/smitvalture/react-native-recaptcha-v3/actions/workflows/ci.yml)\n[![types](https://img.shields.io/npm/types/%40valture%2Freact-native-recaptcha-v3)](https://www.npmjs.com/package/@valture/react-native-recaptcha-v3)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nA lightweight, **actively maintained** React Native component for **Google reCAPTCHA v3 (score-based, invisible)**. Zero user interaction, ref-based API, full TypeScript types, supports reCAPTCHA Enterprise and `AbortSignal`.\n\n> **Are you sure you want v3?** v3 returns a score (0.0–1.0) silently in the background — no challenge, no modal, no checkbox. If you need a visible \"I'm not a robot\" challenge or a modal puzzle, you want **v2** instead — see [Picking the right package](#-picking-the-right-package) below.\n\n## 📋 Table of contents\n\n- [Picking the right package](#-picking-the-right-package)\n- [Features](#-features)\n- [Installation](#-installation)\n- [Obtaining reCAPTCHA keys](#-obtaining-recaptcha-keys)\n- [Usage](#-usage)\n- [API Reference](#️-api-reference)\n- [Advanced usage](#-advanced-usage)\n- [How it works](#-how-it-works)\n- [About the WebView approach](#-about-the-webview-approach)\n- [FAQ](#-faq)\n- [Troubleshooting](#️-troubleshooting)\n\n## 🎯 Picking the right package\n\nreCAPTCHA has several variants and the React Native ecosystem has a package per variant. Use this table to land on the right one:\n\n| You want… | Use |\n|----------|-----|\n| **v3 score-based** (invisible, score 0–1, no UI ever) | **`@valture/react-native-recaptcha-v3`** ← this package |\n| **v3 score-based with abandoned legacy code** | `react-native-recaptcha-v3` (last updated 2018 — avoid for new code) |\n| **v2 checkbox** (\"I'm not a robot\") or **v2 invisible** (modal challenge) | [`react-native-recaptcha-that-works`](https://github.com/douglasjunior/react-native-recaptcha-that-works) |\n| **reCAPTCHA Enterprise** score-based | This package, with `useEnterprise` prop |\n| **reCAPTCHA Enterprise** challenge-based | [`react-native-recaptcha-that-works`](https://github.com/douglasjunior/react-native-recaptcha-that-works) |\n| **hCaptcha** | [`@hcaptcha/react-native-hcaptcha`](https://www.npmjs.com/package/@hcaptcha/react-native-hcaptcha) |\n\n> **Tip:** v3 score-based and v2/hCaptcha challenges complement each other well. A common production pattern is \"v3 first, fall back to a visible challenge if the score is low.\" This package and `that-works`/`hcaptcha` can be used together.\n\n## ✨ Features\n\n- **Invisible**: pure reCAPTCHA v3 — no UI, no friction\n- **Ref-based API**: `getToken(action, { signal })`, `isReady()`, `reset()`\n- **AbortSignal support**: cancel in-flight token requests with the standard browser API\n- **reCAPTCHA Enterprise**: opt in with `useEnterprise`\n- **Secure defaults**: narrow `originWhitelist`, `mixedContentMode='never'`, `siteKey` shape validation\n- **Auto-recovery**: queues pre-ready calls, handles reload + retry\n- **Network error detection**: comprehensive offline/timeout handling with clear errors\n- **First-class TypeScript**: types ship with the package, no `@types/*` needed\n- **Tested**: 32 unit tests with controllable WebView mock; CI on every PR\n\n## 📦 Installation\n\n```bash\n# Yarn\nyarn add @valture/react-native-recaptcha-v3 react-native-webview\n\n# npm\nnpm install @valture/react-native-recaptcha-v3 react-native-webview\n```\n\n### Peer dependencies\n\n| Peer | Minimum | Tested |\n|------|---------|--------|\n| `react` | `>=16.8.0` | 18.3 |\n| `react-native` | `>=0.60.0` | 0.76 |\n| `react-native-webview` | `>=11.0.0` | 13.16 |\n\nIf you support older RN versions in your app, run a quick smoke test — the bundled CI matrix only validates the tested column.\n\n## 🔑 Obtaining reCAPTCHA keys\n\nYou need a **Site Key** and a **registered domain (`baseUrl`)** from the Google reCAPTCHA Admin console.\n\n1. Go to [https://www.google.com/recaptcha/admin/create](https://www.google.com/recaptcha/admin/create)\n2. **reCAPTCHA Type**: choose **reCAPTCHA v3** (this package does not work with v2 keys)\n3. **Domains**: enter the domain you control on your backend (e.g. `api.mydomain.com`). This must match the `baseUrl` prop in the component.\n4. Copy the **Site Key** into the `siteKey` prop. Store the **Secret Key** on your backend — never include it in your app.\n\nFor reCAPTCHA Enterprise, follow [Google Cloud's setup guide](https://cloud.google.com/recaptcha/docs/setup-mobile) and pass `useEnterprise` to the component.\n\n## 🚀 Usage\n\n```tsx\nimport React, { useRef } from 'react';\nimport { Button, View, StyleSheet, Alert } from 'react-native';\nimport ReCaptcha, {\n  type GoogleRecaptchaRefAttributes,\n} from '@valture/react-native-recaptcha-v3';\n\nconst SITE_KEY = 'your_site_key_here';\nconst BASE_URL = 'https://api.mydomain.com'; // must match the domain registered in reCAPTCHA Admin\n\nconst App = () => {\n  const recaptchaRef = useRef<GoogleRecaptchaRefAttributes>(null);\n\n  const handleSubmit = async () => {\n    try {\n      const token = await recaptchaRef.current?.getToken('login');\n      if (token) {\n        // POST `token` to your backend, which calls Google's siteverify API\n        // with your Secret Key to get the score.\n        console.log('reCAPTCHA Token:', token);\n      }\n    } catch (error) {\n      Alert.alert('reCAPTCHA error', String(error));\n    }\n  };\n\n  return (\n    <View style={styles.container}>\n      <ReCaptcha\n        ref={recaptchaRef}\n        siteKey={SITE_KEY}\n        baseUrl={BASE_URL}\n        action=\"homepage\"\n        onVerify={(token, action) => console.log('Verified', { action, token })}\n        onError={(error) => console.error('reCAPTCHA error:', error)}\n        containerStyle={styles.recaptchaContainer}\n        testMode={__DEV__}\n      />\n      <Button title=\"Submit\" onPress={handleSubmit} />\n    </View>\n  );\n};\n\nconst styles = StyleSheet.create({\n  container: { flex: 1, justifyContent: 'center', alignItems: 'center', padding: 20 },\n  recaptchaContainer: { position: 'absolute', width: 0, height: 0, opacity: 0, zIndex: -1 },\n});\n\nexport default App;\n```\n\n## ⚙️ API Reference\n\n### Props\n\n| Prop | Type | Required | Default | Description |\n|------|------|----------|---------|-------------|\n| `siteKey` | `string` | Yes | — | Google reCAPTCHA v3 Site Key. Validated against `/^[A-Za-z0-9_-]{20,80}$/` at mount; malformed keys surface via `onError`. |\n| `baseUrl` | `string` | Yes | — | Domain registered with reCAPTCHA Admin (e.g. `https://api.mydomain.com`). |\n| `action` | `string` | No | `'submit'` | Default action name. Can be overridden per `getToken()` call. |\n| `onVerify` | `(token, action) => void` | No | — | Fires on successful token generation. Receives the resolved action. |\n| `onError` | `(error: string) => void` | No | — | Fires on any reCAPTCHA error. |\n| `onLoadStart` | `() => void` | No | — | Fires when the WebView starts loading. |\n| `onLoadEnd` | `() => void` | No | — | Fires **once per load cycle** when the WebView finishes loading. |\n| `style` | `ViewStyle` | No | — | Style for the underlying `WebView`. |\n| `containerStyle` | `ViewStyle` | No | — | Style for the wrapping container. |\n| `initializationTimeout` | `number` | No | `30000` | Timeout (ms) for queued pre-ready `getToken()` calls. |\n| `tokenRequestTimeout` | `number` | No | `15000` | Timeout (ms) for in-flight token requests. |\n| `testMode` | `boolean` | No | `false` | Enable verbose `console.log` for debugging. |\n| `useEnterprise` | `boolean` | No | `false` | Use the reCAPTCHA Enterprise endpoint. |\n| `originWhitelist` | `readonly string[]` | No | `[google.com, gstatic.com, baseUrl]` | Origins the WebView can navigate to. Pass `['*']` to opt out. |\n| `mixedContentMode` | `'never' \\| 'always' \\| 'compatibility'` | No | `'never'` | Android WebView mixed-content policy. |\n\n### Methods (via `ref`)\n\n| Method | Signature | Description |\n|--------|-----------|-------------|\n| `getToken` | `(action?: string, options?: { signal?: AbortSignal }) => Promise<string>` | Fetches a token. Queues if pre-ready. Pass `options.signal` to cancel. |\n| `isReady` | `() => boolean` | `true` if reCAPTCHA initialized successfully and no error is set. |\n| `reset` | `() => Promise<void>` | Reloads the underlying WebView. Rejects any in-flight or queued `getToken()` promises with a clear `RESET` error. Resolves once the reload completes. |\n\n### Error messages\n\nThe component rejects `getToken()` promises with `Error` objects whose `.message` is one of:\n\n| Message | When |\n|---------|------|\n| `'Network connection required. Please check your internet connection.'` | Offline, script load failure, init timeout |\n| `'reCAPTCHA initialization timed out. Please check your internet connection.'` | Queued request waited longer than `initializationTimeout` |\n| `'Token request timed out. Please try again.'` | In-flight request exceeded `tokenRequestTimeout` |\n| `'reCAPTCHA is not ready. Please wait and try again.'` | Called synchronously before initialization |\n| `'Invalid token received from reCAPTCHA.'` | Empty/malformed VERIFY payload |\n| `'Token request superseded by a newer request.'` | A newer `getToken()` started while this one was in-flight |\n| `'Token request cancelled: reCAPTCHA was reset.'` | `reset()` was called while this request was pending |\n| `'Token request was aborted.'` | Caller aborted via `AbortSignal` |\n| `'Invalid siteKey. …'` | `siteKey` failed shape validation |\n\n## 🧰 Advanced usage\n\n### Cancel a token request with `AbortSignal`\n\n```tsx\nconst controller = new AbortController();\n\nconst tokenPromise = recaptchaRef.current?.getToken('checkout', {\n  signal: controller.signal,\n});\n\n// User navigates away, modal closes, etc.\ncontroller.abort();\n\ntry {\n  await tokenPromise;\n} catch (err) {\n  // err.message === 'Token request was aborted.'\n}\n```\n\n### reCAPTCHA Enterprise\n\n```tsx\n<ReCaptcha\n  ref={recaptchaRef}\n  siteKey={ENTERPRISE_SITE_KEY}\n  baseUrl={BASE_URL}\n  useEnterprise\n  action=\"checkout\"\n/>\n```\n\nUses `https://www.google.com/recaptcha/enterprise.js` and `grecaptcha.enterprise.execute` under the hood.\n\n### Combine with a visible fallback (production pattern)\n\n```tsx\n// Pseudo-code: try v3 first, fall back to a visible challenge on low score\ntry {\n  const token = await recaptchaRef.current?.getToken('signup');\n  const { score, success } = await verifyOnBackend(token);\n  if (success && score >= 0.5) {\n    proceed();\n  } else {\n    // Score too low — present hCaptcha or v2 modal challenge\n    hCaptchaRef.current?.show();\n  }\n} catch (e) {\n  // v3 failed entirely — fall back to challenge\n  hCaptchaRef.current?.show();\n}\n```\n\n## 🛠 How it works\n\nThe component renders a hidden `react-native-webview` that loads an HTML page containing the Google reCAPTCHA v3 script. When you call `getToken()`, the component injects JavaScript into the WebView that calls `grecaptcha.execute()` and posts the result back via `postMessage`.\n\nLifecycle:\n\n1. **Mount** → WebView begins loading; component state is `not ready, no error`.\n2. **WebView `onLoadStart`** → React state cleared; `onLoadStart?.()` fires.\n3. **Page loads, reCAPTCHA script downloads from Google** → JS calls `grecaptcha.ready()`.\n4. **`READY` message posted to RN** → component sets `isReady = true`; queued `getToken()` calls drain.\n5. **`getToken()`** → JS injection calls `grecaptcha.execute(siteKey, { action })` → token comes back via `VERIFY` message → promise resolves.\n6. **Error at any step** → `ERROR` / `LOAD_ERROR` message → `onError?.()` fires and all in-flight + queued promises reject.\n\nAll timers (init, force-READY safety net, per-request timeouts, abort listeners) are cleared on unmount.\n\n## 📱 About the WebView approach\n\nGoogle's [official guidance for reCAPTCHA on mobile](https://developers.google.com/recaptcha/docs/android) recommends their first-party iOS / Android SDKs over WebView-based solutions, citing higher rates of high-risk traffic from WebView origins.\n\n**Every React Native reCAPTCHA package on npm uses WebView** — including this one. A native turbo-module wrapping Google's mobile SDKs doesn't currently exist in the open-source RN ecosystem.\n\nWhat this means for you:\n\n- ✅ **WebView is fine for most apps.** Google still issues valid tokens from WebView origins; verification still works on your backend.\n- ⚠️ **High-risk traffic may score lower from WebView origins.** If your app handles particularly sensitive flows (banking, identity), score thresholds may need to be tuned downward, or you may want to layer hCaptcha / v2-modal as a visible fallback.\n- ✅ **This package follows reCAPTCHA's WebView best practices**: narrow `originWhitelist`, no mixed content, validated site keys.\n\nIf a native turbo-module is critical for you, that's its own (significant) project and not on the roadmap for this package. PRs welcome if you'd like to build one.\n\n## ❓ FAQ\n\n### How is this different from `react-native-recaptcha-that-works`?\n\nThat package is **v2 / Enterprise challenge-based** (modal, \"I'm not a robot,\" sometimes shows challenges). This package is **v3 score-based** (invisible, returns a score, no UI). They solve different problems and are commonly used together.\n\n### How is this different from `react-native-recaptcha-v3` (chocolatemilkv2)?\n\nThat package was last updated in 2018 and uses class components, no TypeScript types, and predates `forwardRef`. This package is a modern rewrite with the same goal: TypeScript-first, hooks-based, tested, actively maintained.\n\n### Why is the `siteKey` validated with a regex?\n\nDefense in depth. The site key is interpolated into the WebView's injected JS and script URL. A malformed key (containing quotes or HTML) could in theory break out of the injection context. Real Google site keys are alphanumeric with `-` and `_`, so the regex is permissive enough for any real key and tight enough to refuse obvious nonsense.\n\n### Why doesn't `onLoadEnd` fire when reCAPTCHA becomes ready?\n\n`onLoadEnd` follows the WebView's documented semantic (\"page finished loading\") and fires exactly once per load cycle. To know when reCAPTCHA is actually ready to issue tokens, call `isReady()` or rely on `getToken()` queueing for you (it does, automatically).\n\n### How do I verify the token on my backend?\n\nSend the token to Google's [siteverify](https://developers.google.com/recaptcha/docs/verify) endpoint along with your Secret Key. Google returns `{ success, score, action, ... }`. Reject if `success === false` or `score` is too low for your risk threshold.\n\n## ⚠️ Troubleshooting\n\n- **`onError: 'Invalid siteKey...'`** — your `siteKey` prop is malformed. Real keys are 40 characters of `[A-Za-z0-9_-]`.\n- **`onError: 'Network connection required...'` immediately** — the device is offline, or the WebView can't reach `https://www.google.com/recaptcha/api.js`. Check the `originWhitelist` prop if you've customized it.\n- **`Error: Invalid domain for site key`** — the `baseUrl` doesn't match a domain registered in your reCAPTCHA Admin console. Re-check the exact string (including scheme).\n- **`getToken()` rejects with `NOT_READY`** — you called `getToken()` synchronously before the WebView initialized. Either await `isReady()` becoming true, or let `getToken()` queue automatically (it will be processed once ready).\n- **HTTP content on Android fails to load** — `mixedContentMode` defaults to `'never'`. Pass `mixedContentMode=\"compatibility\"` if you genuinely need to mix HTTP into the HTTPS WebView (not recommended for a security component).\n- **Set `testMode={true}`** to log every WebView message to the console.\n\n## 🤝 Contributing\n\nContributions welcome — see [CONTRIBUTING.md](./CONTRIBUTING.md). Bug reports and feature requests go in [Issues](https://github.com/smitvalture/react-native-recaptcha-v3/issues).\n\nFor security vulnerabilities, please follow [SECURITY.md](./SECURITY.md) rather than opening a public issue.\n\n## 📜 License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}