{"_id":"@blinkbitcoin/react-native-geetest-module","_rev":"3-2405006b1f9b493a16a2bb23e62c1225","name":"@blinkbitcoin/react-native-geetest-module","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@blinkbitcoin/react-native-geetest-module","version":"0.1.0","keywords":["react-native","ios","android"],"author":{"url":"https://blink.sv/","name":"Blink","email":"team@blink.sv"},"license":"MIT","_id":"@blinkbitcoin/react-native-geetest-module@0.1.0","maintainers":[{"name":"jp_blinkbtc_com","email":"jp@blinkbtc.com"},{"name":"k9ert","email":"kneunert@gmail.com"},{"name":"blinkadmin","email":"a@blinkbtc.com"}],"homepage":"https://github.com/blinkbitcoin/react-native-geetest-module#readme","bugs":{"url":"https://github.com/blinkbitcoin/react-native-geetest-module/issues"},"dist":{"shasum":"1d7a001c68e104f9515b756aceb020f33e940745","tarball":"https://registry.npmjs.org/@blinkbitcoin/react-native-geetest-module/-/react-native-geetest-module-0.1.0.tgz","fileCount":20,"integrity":"sha512-ZgcD7pCRLbLCfkbs3VyuOCcrI7TVidn4OylpmznRTYMrORNI4SXad8BskP0qRh2/p2+C3H3027cP380OZhPFiA==","signatures":[{"sig":"MEYCIQDV9VsyWv7cwyPZwARrLXgRXFLWIQbwiIEVVrkkl2ZB2QIhAMDVjnOCDP2whUraBsbx2oZkelWi2wzNmowwzCOFj1a1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100002},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/dist/"]},"main":"dist/index.js","husky":{"hooks":{"commit-msg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"pnpm lint && pnpm typescript"}},"types":"dist/index.d.ts","module":"dist/index.mjs","source":"src/index","gitHead":"725edd3346eacf7cf51c6ba708c69d50730ee51b","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","pods":"cd example && pod-install --quiet","test":"jest","build":"tsup","example":"yarn --cwd example","bootstrap":"pnpm example && pnpm install && pnpm pods","code:check":"pnpm lint && tsc --project tsconfig.build.json --noEmit","typescript":"tsc --noEmit"},"_npmUser":{"name":"jp_blinkbtc_com","email":"jp@blinkbtc.com"},"prettier":{"semi":false,"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":false,"trailingComma":"all"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/blinkbitcoin/react-native-geetest-module.git","type":"git"},"_npmVersion":"10.9.2","description":"A React Native GeeTest module for gt3 that can protect server endpoints.","directories":{},"_nodeVersion":"23.10.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"semi":false,"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":false,"trailingComma":"all"}]},"extends":["@react-native-community","prettier"]},"eslintIgnore":["android/","iOS/","node_modules/","dist/"],"react-native":"src/index","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"jest":"^26.0.1","tsup":"^8.5.1","react":"16.13.1","eslint":"^7.2.0","prettier":"^2.0.5","commitlint":"^11.0.0","typescript":"^5.8.2","@types/jest":"^26.0.0","pod-install":"^0.1.0","@types/react":"^16.9.19","react-native":"0.63.4","@types/react-native":"0.62.13","eslint-config-prettier":"^7.0.0","eslint-plugin-prettier":"^3.1.3","@commitlint/config-conventional":"^11.0.0","@react-native-community/eslint-config":"^2.0.0"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-geetest-module_0.1.0_1785343050137_0.17043192201879553","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@blinkbitcoin/react-native-geetest-module","version":"0.1.1","keywords":["react-native","ios","android"],"author":{"url":"https://blink.sv/","name":"Blink","email":"team@blink.sv"},"license":"MIT","_id":"@blinkbitcoin/react-native-geetest-module@0.1.1","maintainers":[{"name":"jp_blinkbtc_com","email":"jp@blinkbtc.com"},{"name":"k9ert","email":"kneunert@gmail.com"},{"name":"blinkadmin","email":"a@blinkbtc.com"}],"homepage":"https://github.com/blinkbitcoin/react-native-geetest-module#readme","bugs":{"url":"https://github.com/blinkbitcoin/react-native-geetest-module/issues"},"dist":{"shasum":"88e60f1468d4c24e8486fd09b931a7762b59586e","tarball":"https://registry.npmjs.org/@blinkbitcoin/react-native-geetest-module/-/react-native-geetest-module-0.1.1.tgz","fileCount":20,"integrity":"sha512-fhJ+aU3ZG8ricuUjBwZee1zV/df+gGm/TFLuZxckx894XCwV49ulKJew7XJiJcTzUQ2xYoK7ywYDOIy+ClZOhQ==","signatures":[{"sig":"MEUCIHsh91QTyzUFcGU+63RgMaSUWjAvhqd/DAhhs+F1N5iAAiEApr7+5HGHbq5XYSDbRtMkaGfqv48egHy2rDaUM1jqq6A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100002},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/dist/"]},"main":"dist/index.js","husky":{"hooks":{"commit-msg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"pnpm lint && pnpm typescript"}},"types":"dist/index.d.ts","module":"dist/index.mjs","source":"src/index","gitHead":"ea543a7c1d22732f30177cb7d08f82ca55ee20cd","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","pods":"cd example && pod-install --quiet","test":"jest","build":"tsup","example":"yarn --cwd example","bootstrap":"pnpm example && pnpm install && pnpm pods","code:check":"pnpm lint && tsc --project tsconfig.build.json --noEmit","typescript":"tsc --noEmit"},"_npmUser":{"name":"jp_blinkbtc_com","email":"jp@blinkbtc.com"},"prettier":{"semi":false,"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":false,"trailingComma":"all"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/blinkbitcoin/react-native-geetest-module.git","type":"git"},"_npmVersion":"10.9.2","description":"A React Native GeeTest module for gt3 that can protect server endpoints.","directories":{},"_nodeVersion":"23.10.0","eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"semi":false,"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":false,"trailingComma":"all"}]},"extends":["@react-native-community","prettier"]},"eslintIgnore":["android/","iOS/","node_modules/","dist/"],"react-native":"src/index","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.6.5","devDependencies":{"jest":"^26.0.1","tsup":"^8.5.1","react":"16.13.1","eslint":"^7.2.0","prettier":"^2.0.5","commitlint":"^11.0.0","typescript":"^5.8.2","@types/jest":"^26.0.0","pod-install":"^0.1.0","@types/react":"^16.9.19","react-native":"0.63.4","@types/react-native":"0.62.13","eslint-config-prettier":"^7.0.0","eslint-plugin-prettier":"^3.1.3","@commitlint/config-conventional":"^11.0.0","@react-native-community/eslint-config":"^2.0.0"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-geetest-module_0.1.1_1785343557165_0.28820903251842456","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@blinkbitcoin/react-native-geetest-module","version":"0.1.2","description":"A React Native GeeTest module for gt3 that can protect server endpoints.","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","react-native":"src/index","source":"src/index","scripts":{"build":"tsup","test":"jest","typescript":"tsc --noEmit","lint":"eslint \"**/*.{js,ts,tsx}\"","code:check":"pnpm lint && tsc --project tsconfig.build.json --noEmit","example":"yarn --cwd example","pods":"cd example && pod-install --quiet","bootstrap":"pnpm example && pnpm install && pnpm pods"},"keywords":["react-native","ios","android"],"repository":{"type":"git","url":"git+https://github.com/blinkbitcoin/react-native-geetest-module.git"},"author":{"name":"Blink","email":"team@blink.sv","url":"https://blink.sv/"},"license":"MIT","bugs":{"url":"https://github.com/blinkbitcoin/react-native-geetest-module/issues"},"homepage":"https://github.com/blinkbitcoin/react-native-geetest-module#readme","publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"devDependencies":{"@commitlint/config-conventional":"^11.0.0","@react-native-community/eslint-config":"^2.0.0","@types/jest":"^26.0.0","@types/react":"^16.9.19","@types/react-native":"0.62.13","commitlint":"^11.0.0","eslint":"^7.2.0","eslint-config-prettier":"^7.0.0","eslint-plugin-prettier":"^3.1.3","jest":"^26.0.1","pod-install":"^0.1.0","prettier":"^2.0.5","react":"16.13.1","react-native":"0.63.4","tsup":"^8.5.1","typescript":"^5.8.2"},"packageManager":"pnpm@10.6.5","peerDependencies":{"react":"*","react-native":"*"},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/dist/"]},"husky":{"hooks":{"commit-msg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"pnpm lint && pnpm typescript"}},"commitlint":{"extends":["@commitlint/config-conventional"]},"eslintConfig":{"root":true,"extends":["@react-native-community","prettier"],"rules":{"prettier/prettier":["error",{"quoteProps":"consistent","semi":false,"singleQuote":false,"tabWidth":2,"trailingComma":"all","useTabs":false}]}},"eslintIgnore":["android/","iOS/","node_modules/","dist/"],"prettier":{"quoteProps":"consistent","semi":false,"singleQuote":false,"tabWidth":2,"trailingComma":"all","useTabs":false},"_id":"@blinkbitcoin/react-native-geetest-module@0.1.2","gitHead":"1c51a16d904a12376ed2cd78edae697fb8dcf966","_nodeVersion":"23.10.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-donA4DoTcJvV0RpVjXAyko0UPyPk5nAGElwEE2Nvyc6PQcp0gH/2OSj5OwR2tbnRW+0rPjzOYcrR+93vCXZoGw==","shasum":"6efc28450ae4e5ee80104c0754b183c589882351","tarball":"https://registry.npmjs.org/@blinkbitcoin/react-native-geetest-module/-/react-native-geetest-module-0.1.2.tgz","fileCount":22,"unpackedSize":117366,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCh8GXbCDOY7nLxbSOmczca/F6IJLvGZoOoCZ50Rk6NygIhALV5WJtPgQna+rxi/9vRMOQt8jXT7NQJ3JV9qYBhq2qc"}]},"_npmUser":{"name":"jp_blinkbtc_com","email":"jp@blinkbtc.com"},"directories":{},"maintainers":[{"name":"jp_blinkbtc_com","email":"jp@blinkbtc.com"},{"name":"k9ert","email":"kneunert@gmail.com"},{"name":"blinkadmin","email":"a@blinkbtc.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-geetest-module_0.1.2_1785344273637_0.37166471079406826"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-29T16:37:29.993Z","modified":"2026-07-29T16:57:54.016Z","0.1.0":"2026-07-29T16:37:30.284Z","0.1.1":"2026-07-29T16:45:57.318Z","0.1.2":"2026-07-29T16:57:53.804Z"},"bugs":{"url":"https://github.com/blinkbitcoin/react-native-geetest-module/issues"},"author":{"name":"Blink","email":"team@blink.sv","url":"https://blink.sv/"},"license":"MIT","homepage":"https://github.com/blinkbitcoin/react-native-geetest-module#readme","keywords":["react-native","ios","android"],"repository":{"type":"git","url":"git+https://github.com/blinkbitcoin/react-native-geetest-module.git"},"description":"A React Native GeeTest module for gt3 that can protect server endpoints.","maintainers":[{"name":"jp_blinkbtc_com","email":"jp@blinkbtc.com"},{"name":"k9ert","email":"kneunert@gmail.com"},{"name":"blinkadmin","email":"a@blinkbtc.com"}],"readme":"# react-native-geetest-module\n\nA React Native Geetest module for gt3 that can protect server endpoints.\n\n## Installation\n\n```sh\nyarn add @blinkbitcoin/react-native-geetest-module\n```\n\nor\n\n```sh\nnpm install @blinkbitcoin/react-native-geetest-module\n```\n\nthen\n\n```sh\nnpx pod-install\n```\n\n## App Configuration\n\n#### Android\n\nIn `AndroidManifest.xml`:\n\n```xml\n<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" />\n<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />\n<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />\n<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" />\n```\n\nIn `proguard-rules.pro`\n\n```\n-dontwarn com.geetest.sdk.**\n-keep class com.geetest.sdk.**{*;}\n```\n\n## Usage\n\nThis module requires a server with register (API1) and validation (API2) endpoints.\n\n![Geetest Flow](GeetestFlow.png)\n\nDocumentation from Geetest is provided [here](https://docs.geetest.com/captcha/deploy/server/node)\n\nSet up the module in the component that uses Geetest\n```js\nimport * as React from \"react\"\nimport {NativeModules, NativeEventEmitter} from \"react-native\"\nimport GeetestModule from \"@blinkbitcoin/react-native-geetest-module\";\n\n// ...\n\nconst onGeetestDialogResultListener = React.useRef<EventSubscription>()\nconst onGeetestFailedListener = React.useRef<EventSubscription>()\n\n// ...\n\nReact.useEffect(() => {\n  GeetestModule.setUp()\n\n  const eventEmitter = new NativeEventEmitter(NativeModules.GeetestModule)\n\n  onGeetestDialogResultListener.current = eventEmitter.addListener(\n    \"GT3-->onDialogResult-->\",\n    (event) => {\n      const parsedDialogResult = JSON.parse(event.result)\n      console.log( \"GT3-->onDialogResult-->\", parsedDialogResult)\n    },\n  )\n\n  onGeetestFailedListener.current = eventEmitter.addListener(\n    \"GT3-->onFailed-->\",\n    (event) => {\n      console.log(\"GT3-->onFailed->\", event.error)\n    },\n  )\n\n  return () => {\n    GeetestModule.tearDown()\n\n    onGeetestDialogResultListener.current?.remove()\n    onGeetestFailedListener.current?.remove()\n  }\n}, [])\n```\n\nCall the module with the results from the register request as a json string\n```js\nGeetestModule.handleRegisteredGeeTestCaptcha(/*\n  JSON.stringify({\n    success,\n    challenge,\n    gt,\n    new_captcha,\n  })\n*/)\n```\n\nThen use the parsedDialogResult to validate a call to your server's endpoint. \n\nSee the [example](example/src/App.tsx).\n\n## Contributing\n\nSee the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}