@trustchex/react-native-sdk 1.409.0 → 1.464.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/trustchex/reactnativesdk/TrustchexSDKModule.kt +2 -8
- package/android/src/main/java/com/trustchex/reactnativesdk/camera/TrustchexCameraView.kt +59 -1
- package/ios/Camera/TrustchexCameraView.swift +9 -1
- package/lib/module/Screens/Debug/NFCScanTestScreen.js +635 -0
- package/lib/module/Screens/Dynamic/ContractAcceptanceScreen.js +1 -4
- package/lib/module/Screens/Dynamic/IdentityDocumentEIDScanningScreen.js +17 -4
- package/lib/module/Screens/Dynamic/LivenessDetectionScreen.js +102 -23
- package/lib/module/Screens/Dynamic/VerbalConsentScreen.js +1079 -0
- package/lib/module/Screens/Dynamic/VideoCallScreen.js +3 -1
- package/lib/module/Screens/Static/ResultScreen.js +128 -22
- package/lib/module/Screens/Static/VerificationSessionCheckScreen.js +8 -0
- package/lib/module/Shared/Animations/recording.json +1 -0
- package/lib/module/Shared/Components/DebugNavigationPanel.js +69 -71
- package/lib/module/Shared/Components/EIDScanner.js +212 -108
- package/lib/module/Shared/Components/IdentityDocumentCamera.flows.js +5 -3
- package/lib/module/Shared/Components/IdentityDocumentCamera.js +53 -36
- package/lib/module/Shared/Components/IdentityDocumentCamera.utils.js +13 -4
- package/lib/module/Shared/Components/NavigationManager.js +24 -16
- package/lib/module/Shared/EIDReader/aesSecureMessagingWrapper.js +51 -0
- package/lib/module/Shared/EIDReader/apduLevelPACECapable.js +3 -0
- package/lib/module/Shared/EIDReader/bacKey.js +16 -2
- package/lib/module/Shared/EIDReader/eidReader.js +354 -13
- package/lib/module/Shared/EIDReader/eidService.js +25 -1
- package/lib/module/Shared/EIDReader/nfcManagerCardService.js +4 -7
- package/lib/module/Shared/EIDReader/paceInfo.js +85 -0
- package/lib/module/Shared/EIDReader/paceKeySpec.js +51 -0
- package/lib/module/Shared/EIDReader/protocol/paceAPDUSender.js +100 -0
- package/lib/module/Shared/EIDReader/protocol/paceProtocol.js +655 -0
- package/lib/module/Shared/EIDReader/protocol/paceResult.js +37 -0
- package/lib/module/Shared/EIDReader/secureMessagingWrapper.js +27 -4
- package/lib/module/Shared/EIDReader/smartcards/commandAPDU.js +2 -1
- package/lib/module/Shared/EIDReader/tlv/tlv.helpers.js +1 -1
- package/lib/module/Shared/EIDReader/tlv/tlv.utils.js +6 -3
- package/lib/module/Shared/EIDReader/utils/aesCrypto.utils.js +189 -0
- package/lib/module/Shared/Libs/analytics.utils.js +4 -0
- package/lib/module/Shared/Libs/contains.js +1 -40
- package/lib/module/Shared/Libs/country-display.utils.js +34 -0
- package/lib/module/Shared/Libs/demo.utils.js +8 -0
- package/lib/module/Shared/Libs/mrz.utils.js +3 -2
- package/lib/module/Shared/Libs/status-bar.utils.js +4 -2
- package/lib/module/Shared/Types/analytics.types.js +2 -0
- package/lib/module/Translation/Resources/en.js +41 -2
- package/lib/module/Translation/Resources/tr.js +41 -2
- package/lib/module/Trustchex.js +54 -20
- package/lib/module/version.js +1 -1
- package/lib/typescript/src/Screens/Debug/NFCScanTestScreen.d.ts +3 -0
- package/lib/typescript/src/Screens/Debug/NFCScanTestScreen.d.ts.map +1 -0
- package/lib/typescript/src/Screens/Dynamic/ContractAcceptanceScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Dynamic/IdentityDocumentEIDScanningScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Dynamic/LivenessDetectionScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Dynamic/VerbalConsentScreen.d.ts +3 -0
- package/lib/typescript/src/Screens/Dynamic/VerbalConsentScreen.d.ts.map +1 -0
- package/lib/typescript/src/Screens/Dynamic/VideoCallScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Static/ResultScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Static/VerificationSessionCheckScreen.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/DebugNavigationPanel.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/EIDScanner.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.flows.d.ts +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.flows.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.utils.d.ts +5 -0
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/NavigationManager.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/aesSecureMessagingWrapper.d.ts +18 -0
- package/lib/typescript/src/Shared/EIDReader/aesSecureMessagingWrapper.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/apduLevelPACECapable.d.ts +23 -0
- package/lib/typescript/src/Shared/EIDReader/apduLevelPACECapable.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/bacKey.d.ts +6 -0
- package/lib/typescript/src/Shared/EIDReader/bacKey.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/eidReader.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/eidService.d.ts +9 -0
- package/lib/typescript/src/Shared/EIDReader/eidService.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/nfcManagerCardService.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/paceInfo.d.ts +50 -0
- package/lib/typescript/src/Shared/EIDReader/paceInfo.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/paceKeySpec.d.ts +30 -0
- package/lib/typescript/src/Shared/EIDReader/paceKeySpec.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceAPDUSender.d.ts +17 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceAPDUSender.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceProtocol.d.ts +105 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceProtocol.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceResult.d.ts +24 -0
- package/lib/typescript/src/Shared/EIDReader/protocol/paceResult.d.ts.map +1 -0
- package/lib/typescript/src/Shared/EIDReader/secureMessagingWrapper.d.ts +15 -0
- package/lib/typescript/src/Shared/EIDReader/secureMessagingWrapper.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/smartcards/commandAPDU.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/tlv/tlv.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/utils/aesCrypto.utils.d.ts +39 -0
- package/lib/typescript/src/Shared/EIDReader/utils/aesCrypto.utils.d.ts.map +1 -0
- package/lib/typescript/src/Shared/Libs/analytics.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/contains.d.ts +0 -7
- package/lib/typescript/src/Shared/Libs/contains.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/country-display.utils.d.ts +2 -0
- package/lib/typescript/src/Shared/Libs/country-display.utils.d.ts.map +1 -0
- package/lib/typescript/src/Shared/Libs/demo.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/http-client.d.ts +1 -1
- package/lib/typescript/src/Shared/Libs/http-client.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/mrz.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/status-bar.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Types/analytics.types.d.ts +2 -0
- package/lib/typescript/src/Shared/Types/analytics.types.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Types/identificationInfo.d.ts +10 -1
- package/lib/typescript/src/Shared/Types/identificationInfo.d.ts.map +1 -1
- package/lib/typescript/src/Translation/Resources/en.d.ts +40 -1
- package/lib/typescript/src/Translation/Resources/en.d.ts.map +1 -1
- package/lib/typescript/src/Translation/Resources/tr.d.ts +40 -1
- package/lib/typescript/src/Translation/Resources/tr.d.ts.map +1 -1
- package/lib/typescript/src/Trustchex.d.ts.map +1 -1
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +7 -4
- package/src/Screens/Debug/NFCScanTestScreen.tsx +692 -0
- package/src/Screens/Dynamic/ContractAcceptanceScreen.tsx +1 -4
- package/src/Screens/Dynamic/IdentityDocumentEIDScanningScreen.tsx +21 -4
- package/src/Screens/Dynamic/LivenessDetectionScreen.tsx +124 -23
- package/src/Screens/Dynamic/VerbalConsentScreen.tsx +1401 -0
- package/src/Screens/Dynamic/VideoCallScreen.tsx +3 -1
- package/src/Screens/Static/ResultScreen.tsx +183 -31
- package/src/Screens/Static/VerificationSessionCheckScreen.tsx +9 -0
- package/src/Shared/Animations/recording.json +1 -0
- package/src/Shared/Components/DebugNavigationPanel.tsx +73 -48
- package/src/Shared/Components/EIDScanner.tsx +222 -111
- package/src/Shared/Components/IdentityDocumentCamera.flows.ts +7 -4
- package/src/Shared/Components/IdentityDocumentCamera.tsx +199 -184
- package/src/Shared/Components/IdentityDocumentCamera.utils.ts +13 -4
- package/src/Shared/Components/NavigationManager.tsx +27 -18
- package/src/Shared/EIDReader/aesSecureMessagingWrapper.ts +69 -0
- package/src/Shared/EIDReader/apduLevelPACECapable.ts +34 -0
- package/src/Shared/EIDReader/bacKey.ts +24 -8
- package/src/Shared/EIDReader/eidReader.ts +398 -12
- package/src/Shared/EIDReader/eidService.ts +49 -1
- package/src/Shared/EIDReader/nfcManagerCardService.ts +4 -6
- package/src/Shared/EIDReader/paceInfo.ts +159 -0
- package/src/Shared/EIDReader/paceKeySpec.ts +56 -0
- package/src/Shared/EIDReader/protocol/paceAPDUSender.ts +163 -0
- package/src/Shared/EIDReader/protocol/paceProtocol.ts +946 -0
- package/src/Shared/EIDReader/protocol/paceResult.ts +62 -0
- package/src/Shared/EIDReader/secureMessagingWrapper.ts +28 -10
- package/src/Shared/EIDReader/smartcards/commandAPDU.ts +2 -1
- package/src/Shared/EIDReader/tlv/tlv.helpers.ts +1 -1
- package/src/Shared/EIDReader/tlv/tlv.utils.ts +8 -5
- package/src/Shared/EIDReader/utils/aesCrypto.utils.ts +217 -0
- package/src/Shared/Libs/analytics.utils.ts +4 -0
- package/src/Shared/Libs/contains.ts +0 -53
- package/src/Shared/Libs/country-display.utils.ts +55 -0
- package/src/Shared/Libs/crypto.utils.ts +2 -2
- package/src/Shared/Libs/demo.utils.ts +10 -0
- package/src/Shared/Libs/http-client.ts +12 -4
- package/src/Shared/Libs/mrz.utils.ts +3 -2
- package/src/Shared/Libs/status-bar.utils.ts +4 -2
- package/src/Shared/Services/VideoSessionService.ts +1 -1
- package/src/Shared/Types/analytics.types.ts +2 -0
- package/src/Shared/Types/identificationInfo.ts +11 -0
- package/src/Translation/Resources/en.ts +63 -3
- package/src/Translation/Resources/tr.ts +62 -3
- package/src/Trustchex.tsx +53 -17
- package/src/version.ts +1 -1
|
@@ -17,20 +17,14 @@ class TrustchexSDKModule(reactContext: ReactApplicationContext) :
|
|
|
17
17
|
@ReactMethod
|
|
18
18
|
override fun enableKeepAwake() {
|
|
19
19
|
UiThreadUtil.runOnUiThread {
|
|
20
|
-
|
|
21
|
-
activity?.runOnUiThread {
|
|
22
|
-
activity.window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
|
23
|
-
}
|
|
20
|
+
currentActivity?.window?.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
|
24
21
|
}
|
|
25
22
|
}
|
|
26
23
|
|
|
27
24
|
@ReactMethod
|
|
28
25
|
override fun disableKeepAwake() {
|
|
29
26
|
UiThreadUtil.runOnUiThread {
|
|
30
|
-
|
|
31
|
-
activity?.runOnUiThread {
|
|
32
|
-
activity.window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
|
33
|
-
}
|
|
27
|
+
currentActivity?.window?.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
|
34
28
|
}
|
|
35
29
|
}
|
|
36
30
|
|
|
@@ -8,6 +8,8 @@ import android.graphics.Matrix
|
|
|
8
8
|
import android.graphics.Rect
|
|
9
9
|
import android.graphics.YuvImage
|
|
10
10
|
import android.util.Base64
|
|
11
|
+
import android.hardware.camera2.CameraCharacteristics
|
|
12
|
+
import android.hardware.camera2.CameraManager
|
|
11
13
|
import android.util.Size
|
|
12
14
|
import android.widget.FrameLayout
|
|
13
15
|
import androidx.annotation.OptIn
|
|
@@ -154,7 +156,7 @@ class TrustchexCameraView(context: ThemedReactContext) : FrameLayout(context) {
|
|
|
154
156
|
|
|
155
157
|
private fun selectBestCamera(type: String): CameraSelector {
|
|
156
158
|
if (type == "front") {
|
|
157
|
-
return
|
|
159
|
+
return selectWidestFrontCamera()
|
|
158
160
|
}
|
|
159
161
|
|
|
160
162
|
// For back camera, try to select Ultra Wide camera for document scanning
|
|
@@ -181,6 +183,62 @@ class TrustchexCameraView(context: ThemedReactContext) : FrameLayout(context) {
|
|
|
181
183
|
return CameraSelector.DEFAULT_BACK_CAMERA
|
|
182
184
|
}
|
|
183
185
|
|
|
186
|
+
/**
|
|
187
|
+
* Select the front camera with the widest field of view.
|
|
188
|
+
* Many devices (e.g. Pixel 9a, Samsung S24) have multiple front cameras;
|
|
189
|
+
* the wider lens gives a better framing experience for face detection.
|
|
190
|
+
*/
|
|
191
|
+
@OptIn(androidx.camera.camera2.interop.ExperimentalCamera2Interop::class)
|
|
192
|
+
private fun selectWidestFrontCamera(): CameraSelector {
|
|
193
|
+
try {
|
|
194
|
+
val provider = cameraProvider ?: return CameraSelector.DEFAULT_FRONT_CAMERA
|
|
195
|
+
val cameraManager = context.getSystemService(android.content.Context.CAMERA_SERVICE) as? CameraManager
|
|
196
|
+
?: return CameraSelector.DEFAULT_FRONT_CAMERA
|
|
197
|
+
|
|
198
|
+
val frontCameras = provider.availableCameraInfos.filter { info ->
|
|
199
|
+
try {
|
|
200
|
+
val c2Info = androidx.camera.camera2.interop.Camera2CameraInfo.from(info)
|
|
201
|
+
val chars = cameraManager.getCameraCharacteristics(c2Info.cameraId)
|
|
202
|
+
chars.get(CameraCharacteristics.LENS_FACING) == CameraCharacteristics.LENS_FACING_FRONT
|
|
203
|
+
} catch (_: Exception) { false }
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
if (frontCameras.size <= 1) return CameraSelector.DEFAULT_FRONT_CAMERA
|
|
207
|
+
|
|
208
|
+
// Pick the camera with the shortest focal length (widest FoV)
|
|
209
|
+
var bestInfo: androidx.camera.core.CameraInfo? = null
|
|
210
|
+
var shortestFocal = Float.MAX_VALUE
|
|
211
|
+
|
|
212
|
+
for (info in frontCameras) {
|
|
213
|
+
try {
|
|
214
|
+
val c2Info = androidx.camera.camera2.interop.Camera2CameraInfo.from(info)
|
|
215
|
+
val chars = cameraManager.getCameraCharacteristics(c2Info.cameraId)
|
|
216
|
+
val focalLengths = chars.get(CameraCharacteristics.LENS_INFO_AVAILABLE_FOCAL_LENGTHS)
|
|
217
|
+
if (focalLengths != null && focalLengths.isNotEmpty()) {
|
|
218
|
+
val minFocal = focalLengths.min()
|
|
219
|
+
if (minFocal < shortestFocal) {
|
|
220
|
+
shortestFocal = minFocal
|
|
221
|
+
bestInfo = info
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
} catch (_: Exception) { /* skip */ }
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
if (bestInfo != null) {
|
|
228
|
+
val selectedInfo = bestInfo
|
|
229
|
+
return CameraSelector.Builder()
|
|
230
|
+
.requireLensFacing(CameraSelector.LENS_FACING_FRONT)
|
|
231
|
+
.addCameraFilter { cameraInfos ->
|
|
232
|
+
cameraInfos.filter { it == selectedInfo }.ifEmpty { cameraInfos }
|
|
233
|
+
}
|
|
234
|
+
.build()
|
|
235
|
+
}
|
|
236
|
+
} catch (_: Exception) {
|
|
237
|
+
// Fall back to default
|
|
238
|
+
}
|
|
239
|
+
return CameraSelector.DEFAULT_FRONT_CAMERA
|
|
240
|
+
}
|
|
241
|
+
|
|
184
242
|
fun setTorchEnabled(enabled: Boolean) {
|
|
185
243
|
torchEnabled = enabled
|
|
186
244
|
camera?.cameraControl?.enableTorch(enabled)
|
|
@@ -237,7 +237,15 @@ class TrustchexCameraView: UIView {
|
|
|
237
237
|
// MARK: - Camera Selection
|
|
238
238
|
private func selectBestCamera(for position: AVCaptureDevice.Position) -> AVCaptureDevice? {
|
|
239
239
|
if position == .front {
|
|
240
|
-
|
|
240
|
+
// Prefer the widest front camera available for better face framing
|
|
241
|
+
let discovery = AVCaptureDevice.DiscoverySession(
|
|
242
|
+
deviceTypes: [.builtInUltraWideCamera, .builtInWideAngleCamera],
|
|
243
|
+
mediaType: .video,
|
|
244
|
+
position: .front
|
|
245
|
+
)
|
|
246
|
+
// DiscoverySession lists in the order of deviceTypes, so ultra-wide comes first if available
|
|
247
|
+
return discovery.devices.first
|
|
248
|
+
?? AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front)
|
|
241
249
|
}
|
|
242
250
|
|
|
243
251
|
// For document scanning, prefer wide angle camera for all models
|