{"_id":"@authenticalls/react-native-kyc-sdk","_rev":"7-ecb04ac8ff276af9128eaa262c25ed2d","name":"@authenticalls/react-native-kyc-sdk","dist-tags":{"latest":"2.0.8"},"versions":{"1.0.0":{"name":"@authenticalls/react-native-kyc-sdk","version":"1.0.0","author":{"name":"Authenticalls"},"license":"ISC","_id":"@authenticalls/react-native-kyc-sdk@1.0.0","maintainers":[{"name":"authenticalls","email":"devteam@authenticalls.com"}],"dist":{"shasum":"6a3034289104c68761c29c209d7b5063bc3b3e97","tarball":"https://registry.npmjs.org/@authenticalls/react-native-kyc-sdk/-/react-native-kyc-sdk-1.0.0.tgz","fileCount":1,"integrity":"sha512-ew///YBdsDES3pReKwgPxU8WzJigRHbhOsIcTdteJm20yEjzROoAKiwqd9Lg6x/AilltKvTz9Hvn/GsQ/+ncHw==","signatures":[{"sig":"MEUCICWOBFEtH4TxwVHuRtu0Whxn9eqGjXoUv1X3r4R6NMCyAiEAu5a6AmA2nlCtz57b9M/J02fwSiuzgCySZcDc/qq6i8Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":244},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"authenticalls","email":"devteam@authenticalls.com"},"_npmVersion":"10.7.0","directories":{},"_nodeVersion":"20.15.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/react-native-kyc-sdk_1.0.0_1741092332978_0.7891713568188372","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@authenticalls/react-native-kyc-sdk","version":"2.0.4","keywords":[],"author":"","license":"ISC","_id":"@authenticalls/react-native-kyc-sdk@2.0.4","maintainers":[{"name":"authenticalls","email":"devteam@authenticalls.com"},{"name":"ianin","email":"ionutanin@gmail.com"}],"dist":{"shasum":"13216f646f3f38314ddcb2c3fd45f47669a76d62","tarball":"https://registry.npmjs.org/@authenticalls/react-native-kyc-sdk/-/react-native-kyc-sdk-2.0.4.tgz","fileCount":174,"integrity":"sha512-Wd4VGOil07ddknPsRaBXWr4CezCVb5A6rRnUAJpTV4yJMkWjDZ5om74xek1WXXlQf78pEs2rBSjmSyDG+S8lNA==","signatures":[{"sig":"MEUCIQDhOhP8Y91lINSTjbP1+AgD4SltneGnUETBQFNUL9AvmwIgfsvuSf8b7Sadkaqkl4DuK/NwJv9TNoXo/00YRZ3KUmk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":735217},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"5275976c332c4f4bde64a73397383a102819c319","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"ianin","email":"ionutanin@gmail.com"},"_npmVersion":"10.5.0","description":"`authenticalls-app-sdk` is a React Native SDK that provides a secure user identity verification modal. It integrates with `react-native-vision-camera`, `react-native-reanimated`, and other dependencies to ensure a smooth scanning experience.","directories":{},"_nodeVersion":"20.12.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/react":"^19.0.10","@types/react-native":"^0.73.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.75.4","react-native-svg":">=13.0.0","react-native-reanimated":">=3.0.0","react-native-vision-camera":">=3.0.0","react-native-worklets-core":">=1.0.0","react-native-orientation-locker":">=1.7.0","@bam.tech/react-native-image-resizer":"^3.0.11","react-native-vision-camera-face-detector":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-kyc-sdk_2.0.4_1741093429236_0.11016955314925991","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"@authenticalls/react-native-kyc-sdk","version":"2.0.7","keywords":[],"author":"","license":"ISC","_id":"@authenticalls/react-native-kyc-sdk@2.0.7","maintainers":[{"name":"authenticalls","email":"devteam@authenticalls.com"}],"dist":{"shasum":"df345a4d6b1a31a17cc75ba83f2fb42f470e12e4","tarball":"https://registry.npmjs.org/@authenticalls/react-native-kyc-sdk/-/react-native-kyc-sdk-2.0.7.tgz","fileCount":219,"integrity":"sha512-qC/QeLtx7dgUYMcuzPx/JMqYbJpiFuxEFjMIW6DxkPUId6TLt8FY6nzLrN64CgwsfryO0AQP6+0Q3i6EqG5TGw==","signatures":[{"sig":"MEUCIF+U3g4O/Uh3M7eBwwBsYsz3x1zAswA50a733LOIMzANAiEA+RpixbuM5dxK7VJbtW7VabaEoJ3VHErv9+d9h2L5m4I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":857733},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e4b3ad7771a439461d83b1984ae55524dd3d2cef","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"authenticalls","email":"devteam@authenticalls.com"},"_npmVersion":"10.7.0","description":"`@authenticalls/react-native-kyc-sdk` is a React Native SDK that provides a secure user identity verification modal. It integrates with `react-native-vision-camera`, `react-native-reanimated`, and other dependencies to ensure a smooth scanning experience.","directories":{},"_nodeVersion":"20.15.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/react":"^19.0.10","@types/react-native":"^0.73.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.75.4","react-native-svg":">=13.0.0","react-native-reanimated":">=3.0.0","react-native-vision-camera":">=3.0.0","react-native-worklets-core":">=1.0.0","react-native-orientation-locker":">=1.7.0","@bam.tech/react-native-image-resizer":"^3.0.11","react-native-vision-camera-face-detector":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-kyc-sdk_2.0.7_1743419860071_0.6487768042407138","host":"s3://npm-registry-packages-npm-production"}},"2.0.8":{"name":"@authenticalls/react-native-kyc-sdk","version":"2.0.8","description":"`@authenticalls/react-native-kyc-sdk` is a React Native SDK that provides a secure user identity verification modal. It integrates with `react-native-vision-camera`, `react-native-reanimated`, and other dependencies to ensure a smooth scanning experience.","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepare":"npm run build"},"keywords":[],"author":"","license":"ISC","peerDependencies":{"@bam.tech/react-native-image-resizer":"^3.0.11","react":">=18.0.0","react-native":">=0.75.4","react-native-orientation-locker":">=1.7.0","react-native-reanimated":">=3.0.0","react-native-svg":">=13.0.0","react-native-vision-camera":">=3.0.0","react-native-vision-camera-face-detector":">=1.0.0","react-native-worklets-core":">=1.0.0"},"devDependencies":{"@types/react":"^19.0.10","@types/react-native":"^0.73.0","typescript":"^5.8.2"},"_id":"@authenticalls/react-native-kyc-sdk@2.0.8","gitHead":"e4b3ad7771a439461d83b1984ae55524dd3d2cef","_nodeVersion":"20.15.1","_npmVersion":"10.7.0","dist":{"integrity":"sha512-nS/pS4CqQ5xTPPgVPrjfCq5JnWQBnZHU7ei3SOdQDx0h78hexv8+qkb9kTHlZHOhjKICmrLRSuvMAXxoVPsEUg==","shasum":"f0554d1e331fc104308087b1d119c07f939de069","tarball":"https://registry.npmjs.org/@authenticalls/react-native-kyc-sdk/-/react-native-kyc-sdk-2.0.8.tgz","fileCount":219,"unpackedSize":857731,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC0gA8DKad7bPzmET9TKNTXNnC85Gk1ES8fbEXKFEjMTAIgDMZfILuu46392uHQ+VigaKcVoR/M3s/+CqdI4145WLw="}]},"_npmUser":{"name":"authenticalls","email":"devteam@authenticalls.com"},"directories":{},"maintainers":[{"name":"authenticalls","email":"devteam@authenticalls.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-kyc-sdk_2.0.8_1743419990117_0.514388965134551"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-04T12:45:32.861Z","modified":"2025-03-31T11:19:50.549Z","1.0.0":"2025-03-04T12:45:33.165Z","2.0.4":"2025-03-04T13:03:49.553Z","2.0.7":"2025-03-31T11:17:40.345Z","2.0.8":"2025-03-31T11:19:50.364Z"},"license":"ISC","keywords":[],"description":"`@authenticalls/react-native-kyc-sdk` is a React Native SDK that provides a secure user identity verification modal. It integrates with `react-native-vision-camera`, `react-native-reanimated`, and other dependencies to ensure a smooth scanning experience.","maintainers":[{"name":"authenticalls","email":"devteam@authenticalls.com"}],"readme":"# Authenticalls App SDK\n\n`@authenticalls/react-native-kyc-sdk` is a React Native SDK that provides a secure user identity verification modal. It integrates with `react-native-vision-camera`, `react-native-reanimated`, and other dependencies to ensure a smooth scanning experience.\n\n---\n## 🚀 Features\n- 🔒 **User Identity Verification**\n- 📸 **Camera-based scanning**\n- 🌍 **Supports multiple languages (`en`, `ro`, `fr`)**\n- 🔄 **Timeout handling and max failure attempts**\n- 🎯 **Customizable verification process**\n---\n\n## 📦 Installation\n\n### 1️⃣ **Install the SDK**\nRun the following command in your React Native project:\n```sh\nnpm install @authenticalls/react-native-kyc-sdk\n```\n\n## Configuration\n### 1. Make sure `babel.config.js` includes `react-native-worklets-core` and `react-native-reanimated` plugins:\n```javascript\nmodule.exports = {\n  presets: ['module:@react-native/babel-preset'],\n  plugins: [\n    [\n      'react-native-reanimated/plugin',\n      {\n        processNestedWorklets: true,\n      },\n    ],\n    ['react-native-worklets-core/plugin'],\n  ],\n};\n```\n\n### 2. Fonts:\n```javascript\nmodule.exports = {\n  assets: ['./src/components/AuthenticallsModal/src/assets/fonts/']\n};\n```\n\n### 3. Request Camera Permissions\nEnsure your app has permission to access the camera. Add the following to your `AndroidManifest.xml` (for **Android**):\n```sh\n<uses-permission android:name=\"android.permission.CAMERA\"/>\n<!-- For Android 13+ (API 33+) -->\n<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\" />\n<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\" />\n```\n\nFor **iOS**, update `Info.plist`:\n```sh\n<key>NSCameraUsageDescription</key>\n<string>AuthenticallsApp would like to access your camera.</string>\n<key>NSLocationWhenInUseUsageDescription</key>\n<string>AuthenticallsApp would like to access your location.</string>\n<key>NSPhotoLibraryUsageDescription</key>\n<string>AuthenticallsApp would like to access your photo library to save captured photos.</string>\n```\n\n## 🚀 Usage\nImport and use the component in your project:\n```typescript jsx\nimport AuthenticallsSDK from '@authenticalls/react-native-kyc-sdk';\n\n<AuthenticallsModal\n  user={{\n    country: 'RO',\n    documentNumber: 'DOCUMENT NUMBER',\n    documentType: 'DOCUMENT TYPE',\n    firstName: 'FIRST NAME',\n    lastName: 'LAST NAME',\n  }}\n  apiKey=\"API_KEY\"\n  lang=\"en\"\n  maxFailures={2}\n  timeout={90000} // in milliseconds\n  visible={boolean}\n  onClose={handleClose}\n/>\n```\n\n## 📖 Component Props\n### 🔹 `<AuthenticallsSDK />` Props\n| Prop         | Type                          | Required | Description |\n|-------------|------------------------------|----------|-------------|\n| `user`      | `{ country: string; documentNumber: string; documentType: string; firstName: string; lastName: string; }` | ✅ Yes | User information for verification. |\n| `apiKey`    | `string`                      | ✅ Yes | API key for authentication. |\n| `lang`      | `\"en\" \\| \"ro\" \\| \"fr\"`        | ✅ Yes | Language of the UI (`\"en\"` = English, `\"ro\"` = Romanian, `\"fr\"` = French). |\n| `maxFailures` | `number`                     | ✅ Yes | Max attempts before redirecting to manual review. |\n| `timeout`   | `number` (milliseconds)       | ✅ Yes | Request timeout duration (e.g., `90000` = **90 seconds**). |\n| `visible`   | `boolean`                     | ✅ Yes | Whether the modal is visible or not. |\n| `onClose`   | `(result?: { status: \"PENDING\" \\| \"REJECTED\" \\| \"APPROVED\"; validationID?: string }) => void` | ✅ Yes | Callback when verification completes. May return `status` and `validationID`, or `void` if verification wasn't triggered. |\n\n\n## 🏗️ Building the SDK on Android:\n### Installation:\n```shell\nnpm install\ncd android\n./gradlew clean\n./gradlew build\nnpm start --reset-cache // then press 'a' to start android\n```\n\n### Build example:\n```shell\nnpx react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res && cd android && ./gradlew assembleRelease\n```\n\nExample of android versions used `gradle.build`:\n```javascript\nbuildscript {\n    ext {\n        buildToolsVersion = \"34.0.0\"\n        minSdkVersion = 26\n        compileSdkVersion = 34\n        targetSdkVersion = 34\n        ndkVersion = \"26.1.10909125\"\n        kotlinVersion = \"1.9.24\"\n    }\n    repositories {\n        google()\n        mavenCentral()\n    }\n    dependencies {\n        classpath(\"com.android.tools.build:gradle\")\n        classpath(\"com.facebook.react:react-native-gradle-plugin\")\n        classpath(\"org.jetbrains.kotlin:kotlin-gradle-plugin\")\n    }\n}\n\napply plugin: \"com.facebook.react.rootproject\"\n```\n\n## 🛠️ Troubleshooting\n\n### Android\n1. `gradle.properties`:\n```kotlin\nhermesEnabled=true\n\n# Can be set to false to disable the build setup\nVisionCamera_enableFrameProcessors=true\n# Can be set to false to avoid including the full 2.4 MB MLKit dependency\nVisionCamera_enableCodeScanner=true\n```\n\n2. `gradle-wrapper.properties`:\n```kotlin\ndistributionUrl=https\\://services.gradle.org/distributions/gradle-8.8-all.zip\n```\n\n1. **Clean all**\n```shell\nrm -rf node_modules\nrm -rf package-lock.json\nrm -rf ~/Library/Developer/Xcode/DerivedData/*\nrm -rf android/.cxx\nrm -rf android/.gradle\nrm -rf android/build\n\n./gradlew --stop // stop gradlew daemons - can lead to build errors if there are more than 1 deamon active\nwatchman watch-del-all // clear all watches - sometimes can lead to build errors\n```\n2. **Install**\n```shell\nnpm install // or npm install --legacy-peer-deps if using newer version of node\ncd android\n./gradlew clean\n./gradlew build\n```\n\n### iOS\n1. **Clean all**\n```shell\nrm -rf ~/Library/Caches/CocoaPods\ncd ios\nrm -rf Pods Podfile.lock\npod install\n```\n\nMake sure that the mininum version used is 15.6 in `ios/Podfile` \n```javascript\nplatform :ios, '15.6'\n```\n","readmeFilename":"README.md"}