@trustchex/react-native-sdk 1.381.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 +60 -13
- package/android/src/main/java/com/trustchex/reactnativesdk/mlkit/MLKitModule.kt +1 -1
- package/ios/Camera/TrustchexCameraView.swift +10 -13
- package/ios/MLKit/MLKitModule.swift +1 -1
- package/lib/module/Screens/Debug/BarcodeTestScreen.js +308 -0
- package/lib/module/Screens/Debug/MRZTestScreen.js +105 -13
- package/lib/module/Screens/Debug/NFCScanTestScreen.js +635 -0
- package/lib/module/Screens/Dynamic/ContractAcceptanceScreen.js +49 -32
- package/lib/module/Screens/Dynamic/IdentityDocumentEIDScanningScreen.js +22 -4
- package/lib/module/Screens/Dynamic/IdentityDocumentScanningScreen.js +5 -0
- package/lib/module/Screens/Dynamic/LivenessDetectionScreen.js +126 -27
- package/lib/module/Screens/Dynamic/VerbalConsentScreen.js +1079 -0
- package/lib/module/Screens/Dynamic/VideoCallScreen.js +678 -0
- package/lib/module/Screens/Static/OTPVerificationScreen.js +6 -0
- package/lib/module/Screens/Static/QrCodeScanningScreen.js +7 -1
- package/lib/module/Screens/Static/ResultScreen.js +154 -34
- package/lib/module/Screens/Static/VerificationSessionCheckScreen.js +59 -51
- package/lib/module/Shared/Animations/recording.json +1 -0
- package/lib/module/Shared/Animations/video-call.json +1 -0
- package/lib/module/Shared/Components/DebugNavigationPanel.js +231 -67
- package/lib/module/Shared/Components/EIDScanner.js +213 -112
- package/lib/module/Shared/Components/IdentityDocumentCamera.flows.js +5 -3
- package/lib/module/Shared/Components/IdentityDocumentCamera.js +77 -39
- package/lib/module/Shared/Components/IdentityDocumentCamera.utils.js +13 -4
- package/lib/module/Shared/Components/NavigationManager.js +39 -19
- package/lib/module/Shared/Contexts/AppContext.js +1 -0
- 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/SignalingClient.js +128 -0
- package/lib/module/Shared/Libs/analytics.utils.js +8 -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/deeplink.utils.js +9 -1
- package/lib/module/Shared/Libs/demo.utils.js +8 -0
- package/lib/module/Shared/Libs/http-client.js +9 -0
- package/lib/module/Shared/Libs/mrz.utils.js +3 -2
- package/lib/module/Shared/Libs/promise.utils.js +16 -2
- package/lib/module/Shared/Libs/status-bar.utils.js +23 -0
- package/lib/module/Shared/Services/DataUploadService.js +294 -0
- package/lib/module/Shared/Services/VideoSessionService.js +156 -0
- package/lib/module/Shared/Services/WebRTCService.js +510 -0
- package/lib/module/Shared/Types/analytics.types.js +4 -0
- package/lib/module/Translation/Resources/en.js +61 -2
- package/lib/module/Translation/Resources/tr.js +61 -2
- package/lib/module/Trustchex.js +64 -20
- package/lib/module/version.js +1 -1
- package/lib/typescript/src/Screens/Debug/BarcodeTestScreen.d.ts +3 -0
- package/lib/typescript/src/Screens/Debug/BarcodeTestScreen.d.ts.map +1 -0
- package/lib/typescript/src/Screens/Debug/MRZTestScreen.d.ts.map +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/IdentityDocumentScanningScreen.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 +3 -0
- package/lib/typescript/src/Screens/Dynamic/VideoCallScreen.d.ts.map +1 -0
- package/lib/typescript/src/Screens/Static/OTPVerificationScreen.d.ts.map +1 -1
- package/lib/typescript/src/Screens/Static/QrCodeScanningScreen.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/Contexts/AppContext.d.ts +1 -0
- package/lib/typescript/src/Shared/Contexts/AppContext.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/SignalingClient.d.ts +24 -0
- package/lib/typescript/src/Shared/Libs/SignalingClient.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/deeplink.utils.d.ts.map +1 -1
- 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/promise.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/status-bar.utils.d.ts +9 -0
- package/lib/typescript/src/Shared/Libs/status-bar.utils.d.ts.map +1 -0
- package/lib/typescript/src/Shared/Services/DataUploadService.d.ts +25 -0
- package/lib/typescript/src/Shared/Services/DataUploadService.d.ts.map +1 -0
- package/lib/typescript/src/Shared/Services/VideoSessionService.d.ts +33 -0
- package/lib/typescript/src/Shared/Services/VideoSessionService.d.ts.map +1 -0
- package/lib/typescript/src/Shared/Services/WebRTCService.d.ts +58 -0
- package/lib/typescript/src/Shared/Services/WebRTCService.d.ts.map +1 -0
- package/lib/typescript/src/Shared/Types/analytics.types.d.ts +4 -0
- package/lib/typescript/src/Shared/Types/analytics.types.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Types/identificationInfo.d.ts +13 -1
- package/lib/typescript/src/Shared/Types/identificationInfo.d.ts.map +1 -1
- package/lib/typescript/src/Translation/Resources/en.d.ts +60 -1
- package/lib/typescript/src/Translation/Resources/en.d.ts.map +1 -1
- package/lib/typescript/src/Translation/Resources/tr.d.ts +60 -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 +35 -5
- package/src/Screens/Debug/BarcodeTestScreen.tsx +317 -0
- package/src/Screens/Debug/MRZTestScreen.tsx +107 -13
- package/src/Screens/Debug/NFCScanTestScreen.tsx +692 -0
- package/src/Screens/Dynamic/ContractAcceptanceScreen.tsx +58 -35
- package/src/Screens/Dynamic/IdentityDocumentEIDScanningScreen.tsx +27 -4
- package/src/Screens/Dynamic/IdentityDocumentScanningScreen.tsx +6 -0
- package/src/Screens/Dynamic/LivenessDetectionScreen.tsx +156 -27
- package/src/Screens/Dynamic/VerbalConsentScreen.tsx +1401 -0
- package/src/Screens/Dynamic/VideoCallScreen.tsx +766 -0
- package/src/Screens/Static/OTPVerificationScreen.tsx +6 -0
- package/src/Screens/Static/QrCodeScanningScreen.tsx +7 -1
- package/src/Screens/Static/ResultScreen.tsx +235 -48
- package/src/Screens/Static/VerificationSessionCheckScreen.tsx +67 -72
- package/src/Shared/Animations/recording.json +1 -0
- package/src/Shared/Animations/video-call.json +1 -0
- package/src/Shared/Components/DebugNavigationPanel.tsx +252 -51
- package/src/Shared/Components/EIDScanner.tsx +223 -116
- package/src/Shared/Components/IdentityDocumentCamera.flows.ts +7 -4
- package/src/Shared/Components/IdentityDocumentCamera.tsx +224 -188
- package/src/Shared/Components/IdentityDocumentCamera.utils.ts +13 -4
- package/src/Shared/Components/NavigationManager.tsx +41 -19
- package/src/Shared/Contexts/AppContext.ts +2 -0
- 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/SignalingClient.ts +189 -0
- package/src/Shared/Libs/analytics.utils.ts +8 -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/deeplink.utils.ts +12 -1
- package/src/Shared/Libs/demo.utils.ts +10 -0
- package/src/Shared/Libs/http-client.ts +19 -1
- package/src/Shared/Libs/mrz.utils.ts +3 -2
- package/src/Shared/Libs/promise.utils.ts +16 -2
- package/src/Shared/Libs/status-bar.utils.ts +21 -0
- package/src/Shared/Services/DataUploadService.ts +395 -0
- package/src/Shared/Services/VideoSessionService.ts +190 -0
- package/src/Shared/Services/WebRTCService.ts +636 -0
- package/src/Shared/Types/analytics.types.ts +4 -0
- package/src/Shared/Types/identificationInfo.ts +16 -1
- package/src/Translation/Resources/en.ts +88 -3
- package/src/Translation/Resources/tr.ts +89 -3
- package/src/Trustchex.tsx +65 -19
- package/src/version.ts +1 -1
|
@@ -49,6 +49,9 @@ export default {
|
|
|
49
49
|
'resultScreen.demoImageHologram': 'Hologram',
|
|
50
50
|
'resultScreen.demoLivenessDetection': 'Liveness Detection',
|
|
51
51
|
'resultScreen.demoVideo': 'Video',
|
|
52
|
+
'resultScreen.demoVerbalConsent': 'Verbal Consent',
|
|
53
|
+
'resultScreen.demoVerbalConsentTitle': 'Title',
|
|
54
|
+
'resultScreen.demoVerbalConsentText': 'Text',
|
|
52
55
|
'resultScreen.demoStartOver': 'Start Over',
|
|
53
56
|
'livenessDetectionScreen.guideHeader': 'Face Verification',
|
|
54
57
|
'livenessDetectionScreen.guideText':
|
|
@@ -83,10 +86,8 @@ export default {
|
|
|
83
86
|
'When prompted, hold your document flat against the back of your device near the NFC antenna.',
|
|
84
87
|
'eidScannerScreen.invalidMRZFields':
|
|
85
88
|
'Document information could not be read. Please try again.',
|
|
86
|
-
'eidScannerScreen.imageCannotBeShown':
|
|
87
|
-
'Photo data found but cannot be displayed.',
|
|
88
89
|
'eidScannerScreen.faceImageNotFound': 'Photo data not found on document.',
|
|
89
|
-
'eidScannerScreen.documentCode': 'Document
|
|
90
|
+
'eidScannerScreen.documentCode': 'Document Type',
|
|
90
91
|
'eidScannerScreen.nationality': 'Nationality',
|
|
91
92
|
'eidScannerScreen.personalNumber': 'Personal Number',
|
|
92
93
|
'eidScannerScreen.documentNumber': 'Document Number',
|
|
@@ -94,6 +95,13 @@ export default {
|
|
|
94
95
|
'eidScannerScreen.surname': 'Surname',
|
|
95
96
|
'eidScannerScreen.birthDate': 'Date of Birth',
|
|
96
97
|
'eidScannerScreen.gender': 'Gender',
|
|
98
|
+
'eidScannerScreen.genderMale': 'Male',
|
|
99
|
+
'eidScannerScreen.genderFemale': 'Female',
|
|
100
|
+
'eidScannerScreen.genderUnspecified': 'Unspecified',
|
|
101
|
+
'eidScannerScreen.docTypePassport': 'Passport',
|
|
102
|
+
'eidScannerScreen.docTypeID': 'ID Card',
|
|
103
|
+
'eidScannerScreen.docTypeResidence': 'Residence Permit',
|
|
104
|
+
'eidScannerScreen.docTypeVisa': 'Visa',
|
|
97
105
|
'eidScannerScreen.expirationDate': 'Expiration Date',
|
|
98
106
|
'eidScannerScreen.mrzText': 'MRZ Text',
|
|
99
107
|
'eidScannerScreen.nfcNotSupported':
|
|
@@ -158,6 +166,83 @@ export default {
|
|
|
158
166
|
'identityDocumentCamera.documentTooLarge': 'Too close. Move back.',
|
|
159
167
|
'identityDocumentCamera.holdSteady': 'Keep device steady',
|
|
160
168
|
'identityDocumentCamera.centerDocument': 'Center document in the frame',
|
|
169
|
+
'videoCallScreen.guideHeader': 'Get Ready for Video Call',
|
|
170
|
+
'videoCallScreen.guideText': 'Before you begin, please note the following:',
|
|
171
|
+
'videoCallScreen.guidePoint1':
|
|
172
|
+
'Ensure you are in a quiet environment with good lighting',
|
|
173
|
+
'videoCallScreen.guidePoint2':
|
|
174
|
+
'Have your identity document ready if requested',
|
|
175
|
+
'videoCallScreen.guidePoint3': 'Make sure your internet connection is stable',
|
|
176
|
+
'videoCallScreen.guidePoint4':
|
|
177
|
+
'The agent will guide you through the verification process',
|
|
178
|
+
'videoCallScreen.waitingForAgent': 'Waiting for agent...',
|
|
179
|
+
'videoCallScreen.queuePosition': 'Queue position: {position}',
|
|
180
|
+
'videoCallScreen.new': 'Initializing connection...',
|
|
181
|
+
'videoCallScreen.connecting': 'Connecting...',
|
|
182
|
+
'videoCallScreen.connected': 'Connected',
|
|
183
|
+
'videoCallScreen.disconnected': 'Disconnected',
|
|
184
|
+
'videoCallScreen.failed': 'Connection failed',
|
|
185
|
+
'videoCallScreen.closed': 'Connection closed',
|
|
186
|
+
'videoCallScreen.permissions_denied': 'Camera permissions required',
|
|
187
|
+
'videoCallScreen.leaveQueue': 'Leave Queue',
|
|
188
|
+
'videoCallScreen.closeSession': 'Close Session',
|
|
189
|
+
'videoCallScreen.closeSessionHint':
|
|
190
|
+
'You can close this session and start a new verification',
|
|
191
|
+
'videoCallScreen.agentInstructions': 'Instructions from Agent',
|
|
192
|
+
'videoCallScreen.callNotCompleted':
|
|
193
|
+
'Video call was not completed. This step is required to proceed.',
|
|
194
|
+
'verbalConsentVideoScreen.title': 'Verbal Consent',
|
|
195
|
+
'verbalConsentVideoScreen.description':
|
|
196
|
+
'Read the text below clearly while recording your video.',
|
|
197
|
+
'verbalConsentVideoScreen.guideHeader':
|
|
198
|
+
'Prepare for verbal consent recording',
|
|
199
|
+
'verbalConsentVideoScreen.guideText':
|
|
200
|
+
'Before you start recording, please ensure the following:',
|
|
201
|
+
'verbalConsentVideoScreen.guidePoint1':
|
|
202
|
+
'Stay in a quiet environment with minimal background noise',
|
|
203
|
+
'verbalConsentVideoScreen.guidePoint2':
|
|
204
|
+
'Keep your full face visible in good lighting',
|
|
205
|
+
'verbalConsentVideoScreen.guidePoint3':
|
|
206
|
+
'Read the consent text clearly and without rushing',
|
|
207
|
+
'verbalConsentVideoScreen.guidePoint4':
|
|
208
|
+
'Keep your phone steady until recording completes',
|
|
209
|
+
'verbalConsentVideoScreen.defaultConsentText':
|
|
210
|
+
'I confirm my identity and give my explicit consent to the processing of my personal data for digital identity verification. I acknowledge that my biometric data will be used solely for this purpose. I understand that I can withdraw this consent at any time.',
|
|
211
|
+
'verbalConsentVideoScreen.startRecording': 'Start Recording',
|
|
212
|
+
'verbalConsentVideoScreen.stopRecording': 'Stop Recording',
|
|
213
|
+
'verbalConsentVideoScreen.recordAgain': 'Record Again',
|
|
214
|
+
'verbalConsentVideoScreen.tryAgain': 'Try Again',
|
|
215
|
+
'verbalConsentVideoScreen.submit': 'Continue',
|
|
216
|
+
'verbalConsentVideoScreen.recordingProgress': 'Recording: {{current}}s',
|
|
217
|
+
'verbalConsentVideoScreen.readNowPrompt':
|
|
218
|
+
'Read the text aloud — touch screen to pause.',
|
|
219
|
+
'verbalConsentVideoScreen.scrollReadStopHint':
|
|
220
|
+
'Scroll to the end to enable Stop Recording.',
|
|
221
|
+
'verbalConsentVideoScreen.scrollCompletedStopHint':
|
|
222
|
+
'Great. You reached the end. You can stop recording after finishing the full text.',
|
|
223
|
+
'verbalConsentVideoScreen.recordingIndicator': 'Recording',
|
|
224
|
+
'verbalConsentVideoScreen.recordingStartedBanner':
|
|
225
|
+
'Recording started. Read the full text and scroll to the end.',
|
|
226
|
+
'verbalConsentVideoScreen.keepHeadInCirclePrompt':
|
|
227
|
+
'Place your head inside the circle and keep it there until recording is complete.',
|
|
228
|
+
'verbalConsentVideoScreen.readThenStopPrompt':
|
|
229
|
+
'Read the text shown on screen, then stop recording.',
|
|
230
|
+
'verbalConsentVideoScreen.readProgress':
|
|
231
|
+
'Read progress (estimated): {{current}}/{{target}}s',
|
|
232
|
+
'verbalConsentVideoScreen.stopHintPending':
|
|
233
|
+
'Keep reading the full text before stopping.',
|
|
234
|
+
'verbalConsentVideoScreen.stopHintReady':
|
|
235
|
+
'Looks complete. You can stop recording now.',
|
|
236
|
+
'verbalConsentVideoScreen.faceAligned':
|
|
237
|
+
'Face aligned. You can start recording.',
|
|
238
|
+
'verbalConsentVideoScreen.previewTitle':
|
|
239
|
+
'Review your recording and make sure the text is clear before continuing.',
|
|
240
|
+
'verbalConsentVideoScreen.analytics.recordingFailed':
|
|
241
|
+
'Video recording failed',
|
|
242
|
+
'verbalConsentVideoScreen.analytics.identificationIdMissing':
|
|
243
|
+
'Identification ID is missing before upload',
|
|
244
|
+
'verbalConsentVideoScreen.analytics.uploadFailed':
|
|
245
|
+
'Consent video upload failed',
|
|
161
246
|
'navigationManager.skipStepWarning':
|
|
162
247
|
'Completing this step is recommended for successful verification. Skip anyway?',
|
|
163
248
|
'navigationManager.skipStepLabel': 'Skip This Step',
|
|
@@ -49,6 +49,9 @@ export default {
|
|
|
49
49
|
'resultScreen.demoImageHologram': 'Hologram',
|
|
50
50
|
'resultScreen.demoLivenessDetection': 'Canlılık Tespiti',
|
|
51
51
|
'resultScreen.demoVideo': 'Video',
|
|
52
|
+
'resultScreen.demoVerbalConsent': 'Sözlü onay',
|
|
53
|
+
'resultScreen.demoVerbalConsentTitle': 'Başlık',
|
|
54
|
+
'resultScreen.demoVerbalConsentText': 'Metin',
|
|
52
55
|
'resultScreen.demoStartOver': 'Baştan Başla',
|
|
53
56
|
'livenessDetectionScreen.guideHeader': 'Yüz Doğrulaması',
|
|
54
57
|
'livenessDetectionScreen.guideText':
|
|
@@ -83,10 +86,8 @@ export default {
|
|
|
83
86
|
'İstendiğinde, belgenizi cihazınızın arka tarafındaki NFC antenine düz bir şekilde yaklaştırın.',
|
|
84
87
|
'eidScannerScreen.invalidMRZFields':
|
|
85
88
|
'Belge bilgileri okunamadı. Lütfen tekrar deneyin.',
|
|
86
|
-
'eidScannerScreen.imageCannotBeShown':
|
|
87
|
-
'Fotoğraf verisi bulundu ancak gösterilemiyor.',
|
|
88
89
|
'eidScannerScreen.faceImageNotFound': 'Belgede fotoğraf verisi bulunamadı.',
|
|
89
|
-
'eidScannerScreen.documentCode': 'Belge
|
|
90
|
+
'eidScannerScreen.documentCode': 'Belge Türü',
|
|
90
91
|
'eidScannerScreen.nationality': 'Uyruk',
|
|
91
92
|
'eidScannerScreen.personalNumber': 'Vatandaşlık No',
|
|
92
93
|
'eidScannerScreen.documentNumber': 'Belge No',
|
|
@@ -94,6 +95,13 @@ export default {
|
|
|
94
95
|
'eidScannerScreen.surname': 'Soyad',
|
|
95
96
|
'eidScannerScreen.birthDate': 'Doğum Tarihi',
|
|
96
97
|
'eidScannerScreen.gender': 'Cinsiyet',
|
|
98
|
+
'eidScannerScreen.genderMale': 'Erkek',
|
|
99
|
+
'eidScannerScreen.genderFemale': 'Kadın',
|
|
100
|
+
'eidScannerScreen.genderUnspecified': 'Belirtilmemiş',
|
|
101
|
+
'eidScannerScreen.docTypePassport': 'Pasaport',
|
|
102
|
+
'eidScannerScreen.docTypeID': 'Kimlik Kartı',
|
|
103
|
+
'eidScannerScreen.docTypeResidence': 'Oturma İzni',
|
|
104
|
+
'eidScannerScreen.docTypeVisa': 'Vize',
|
|
97
105
|
'eidScannerScreen.expirationDate': 'Geçerlilik Tarihi',
|
|
98
106
|
'eidScannerScreen.mrzText': 'MRZ Metni',
|
|
99
107
|
'eidScannerScreen.nfcNotSupported':
|
|
@@ -160,6 +168,84 @@ export default {
|
|
|
160
168
|
'identityDocumentCamera.documentTooLarge': 'Belge çok yakın. Uzaklaşın.',
|
|
161
169
|
'identityDocumentCamera.holdSteady': 'Cihazı sabit tutun',
|
|
162
170
|
'identityDocumentCamera.centerDocument': 'Belgeyi çerçevede ortalayın',
|
|
171
|
+
'videoCallScreen.guideHeader': 'Görüntülü Görüşme İçin Hazırlanın',
|
|
172
|
+
'videoCallScreen.guideText':
|
|
173
|
+
'Başlamadan önce lütfen aşağıdaki hususlara dikkat edin:',
|
|
174
|
+
'videoCallScreen.guidePoint1':
|
|
175
|
+
'Sessiz ve iyi aydınlatılmış bir ortamda olduğunuzdan emin olun',
|
|
176
|
+
'videoCallScreen.guidePoint2':
|
|
177
|
+
'İstendiğinde kimlik belgenizi hazır bulundurun',
|
|
178
|
+
'videoCallScreen.guidePoint3':
|
|
179
|
+
'İnternet bağlantınızın stabil olduğundan emin olun',
|
|
180
|
+
'videoCallScreen.guidePoint4':
|
|
181
|
+
'Temsilci sizi doğrulama sürecinde yönlendirecektir',
|
|
182
|
+
'videoCallScreen.waitingForAgent': 'Temsilci bekleniyor...',
|
|
183
|
+
'videoCallScreen.queuePosition': 'Sıra konumu: {position}',
|
|
184
|
+
'videoCallScreen.new': 'Bağlantı başlatılıyor...',
|
|
185
|
+
'videoCallScreen.connecting': 'Bağlanıyor...',
|
|
186
|
+
'videoCallScreen.connected': 'Bağlandı',
|
|
187
|
+
'videoCallScreen.disconnected': 'Bağlantı kesildi',
|
|
188
|
+
'videoCallScreen.failed': 'Bağlantı başarısız',
|
|
189
|
+
'videoCallScreen.closed': 'Bağlantı kapatıldı',
|
|
190
|
+
'videoCallScreen.permissions_denied': 'Kamera izni gerekiyor',
|
|
191
|
+
'videoCallScreen.leaveQueue': 'Kuyruktan Çık',
|
|
192
|
+
'videoCallScreen.closeSession': 'Oturumu Kapat',
|
|
193
|
+
'videoCallScreen.closeSessionHint':
|
|
194
|
+
'Bu oturumu kapatıp yeni bir doğrulama başlatabilirsiniz',
|
|
195
|
+
'videoCallScreen.agentInstructions': 'Temsilciden Talimatlar',
|
|
196
|
+
'videoCallScreen.callNotCompleted':
|
|
197
|
+
'Görüntülü görüşme tamamlanmadı. Devam etmek için bu adım zorunludur.',
|
|
198
|
+
'verbalConsentVideoScreen.title': 'Sözlü Onay',
|
|
199
|
+
'verbalConsentVideoScreen.description':
|
|
200
|
+
'Aşağıdaki metni net bir şekilde okuyarak videonuzu kaydedin.',
|
|
201
|
+
'verbalConsentVideoScreen.guideHeader': 'Sözlü onay kaydı için hazırlanın',
|
|
202
|
+
'verbalConsentVideoScreen.guideText':
|
|
203
|
+
'Kayda başlamadan önce lütfen aşağıdakileri sağlayın:',
|
|
204
|
+
'verbalConsentVideoScreen.guidePoint1':
|
|
205
|
+
'Arka plan gürültüsünün az olduğu sessiz bir ortam seçin',
|
|
206
|
+
'verbalConsentVideoScreen.guidePoint2':
|
|
207
|
+
'Yüzünüzün tamamı iyi aydınlatılmış şekilde görünür olsun',
|
|
208
|
+
'verbalConsentVideoScreen.guidePoint3':
|
|
209
|
+
'Onay metnini net ve acele etmeden okuyun',
|
|
210
|
+
'verbalConsentVideoScreen.guidePoint4':
|
|
211
|
+
'Kayıt tamamlanana kadar telefonu sabit tutun',
|
|
212
|
+
'verbalConsentVideoScreen.defaultConsentText':
|
|
213
|
+
'Dijital kimlik doğrulama amacıyla kimliğimi teyit ediyor ve kişisel verilerimin işlenmesine açık rızamı veriyorum. Biyometrik verilerimin yalnızca kimlik doğrulama amacıyla işleneceğini kabul ediyorum. Bu onayı istediğim zaman geri çekebileceğimi biliyorum.',
|
|
214
|
+
'verbalConsentVideoScreen.startRecording': 'Kaydı Başlat',
|
|
215
|
+
'verbalConsentVideoScreen.stopRecording': 'Kaydı Durdur',
|
|
216
|
+
'verbalConsentVideoScreen.recordAgain': 'Tekrar Kaydet',
|
|
217
|
+
'verbalConsentVideoScreen.tryAgain': 'Tekrar Dene',
|
|
218
|
+
'verbalConsentVideoScreen.submit': 'Devam Et',
|
|
219
|
+
'verbalConsentVideoScreen.recordingProgress': 'Kayıt: {{current}} sn',
|
|
220
|
+
'verbalConsentVideoScreen.readNowPrompt':
|
|
221
|
+
'Metni sesli okuyun — duraklatmak için ekrana dokunun.',
|
|
222
|
+
'verbalConsentVideoScreen.scrollReadStopHint':
|
|
223
|
+
'Kaydı durdurmak için metnin sonuna kadar kaydırın.',
|
|
224
|
+
'verbalConsentVideoScreen.scrollCompletedStopHint':
|
|
225
|
+
'Harika. Sona ulaştınız. Metnin tamamını bitirdikten sonra kaydı durdurabilirsiniz.',
|
|
226
|
+
'verbalConsentVideoScreen.recordingIndicator': 'Kayıt',
|
|
227
|
+
'verbalConsentVideoScreen.recordingStartedBanner':
|
|
228
|
+
'Kayıt başladı. Metnin tamamını okuyun ve sona kadar kaydırın.',
|
|
229
|
+
'verbalConsentVideoScreen.keepHeadInCirclePrompt':
|
|
230
|
+
'Başınızı dairenin içine yerleştirin ve kayıt tamamlanana kadar sabit tutun.',
|
|
231
|
+
'verbalConsentVideoScreen.readThenStopPrompt':
|
|
232
|
+
'Ekrandaki metni okuyun, ardından kaydı durdurun.',
|
|
233
|
+
'verbalConsentVideoScreen.readProgress':
|
|
234
|
+
'Okuma ilerlemesi (tahmini): {{current}}/{{target}} sn',
|
|
235
|
+
'verbalConsentVideoScreen.stopHintPending':
|
|
236
|
+
'Kaydı durdurmadan önce metnin tamamını okuyun.',
|
|
237
|
+
'verbalConsentVideoScreen.stopHintReady':
|
|
238
|
+
'Metin tamamlanmış görünüyor. Kaydı şimdi durdurabilirsiniz.',
|
|
239
|
+
'verbalConsentVideoScreen.faceAligned':
|
|
240
|
+
'Yüz hizalaması tamam. Kayda başlayabilirsiniz.',
|
|
241
|
+
'verbalConsentVideoScreen.previewTitle':
|
|
242
|
+
'Devam etmeden önce kaydı kontrol edin ve metnin net olduğundan emin olun.',
|
|
243
|
+
'verbalConsentVideoScreen.analytics.recordingFailed':
|
|
244
|
+
'Video kaydi basarisiz oldu',
|
|
245
|
+
'verbalConsentVideoScreen.analytics.identificationIdMissing':
|
|
246
|
+
'Yukleme oncesinde kimlik numarasi bulunamadi',
|
|
247
|
+
'verbalConsentVideoScreen.analytics.uploadFailed':
|
|
248
|
+
'Sozlu onay videosu yuklenemedi',
|
|
163
249
|
'navigationManager.skipStepWarning':
|
|
164
250
|
'Başarılı bir doğrulama için bu adımı tamamlamanız önerilir. Yine de atlamak istiyor musunuz?',
|
|
165
251
|
'navigationManager.skipStepLabel': 'Bu Adımı Atla',
|
package/src/Trustchex.tsx
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import React, { useEffect, useState, useMemo } from 'react';
|
|
1
|
+
import React, { useEffect, useState, useMemo, useRef } from 'react';
|
|
2
2
|
import { NavigationContainer } from '@react-navigation/native';
|
|
3
3
|
import { createNativeStackNavigator } from '@react-navigation/native-stack';
|
|
4
4
|
import { View, ActivityIndicator, StyleSheet } from 'react-native';
|
|
5
5
|
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
6
6
|
import 'react-native-get-random-values';
|
|
7
|
+
import { registerGlobals } from 'react-native-webrtc';
|
|
7
8
|
import { ThemeProvider } from './Shared/Contexts/ThemeContext';
|
|
8
9
|
import { setDebugMode, setLogLevel, logWarn } from './Shared/Libs/debug.utils';
|
|
9
10
|
|
|
@@ -14,9 +15,13 @@ import ResultScreen from './Screens/Static/ResultScreen';
|
|
|
14
15
|
import ContractAcceptanceScreen from './Screens/Dynamic/ContractAcceptanceScreen';
|
|
15
16
|
import VerificationSessionCheckScreen from './Screens/Static/VerificationSessionCheckScreen';
|
|
16
17
|
import QrCodeScanningScreen from './Screens/Static/QrCodeScanningScreen';
|
|
18
|
+
import VideoCallScreen from './Screens/Dynamic/VideoCallScreen';
|
|
19
|
+
import VerbalConsentScreen from './Screens/Dynamic/VerbalConsentScreen';
|
|
17
20
|
import OTPVerificationScreen from './Screens/Static/OTPVerificationScreen';
|
|
18
21
|
import MRZTestScreen from './Screens/Debug/MRZTestScreen';
|
|
19
|
-
import
|
|
22
|
+
import BarcodeTestScreen from './Screens/Debug/BarcodeTestScreen';
|
|
23
|
+
import NFCScanTestScreen from './Screens/Debug/NFCScanTestScreen';
|
|
24
|
+
import AppContext, { type AppContextType } from './Shared/Contexts/AppContext';
|
|
20
25
|
import DebugNavigationPanel from './Shared/Components/DebugNavigationPanel';
|
|
21
26
|
import i18n from './Translation';
|
|
22
27
|
import { initializeTTS } from './Shared/Libs/tts.utils';
|
|
@@ -26,6 +31,8 @@ import {
|
|
|
26
31
|
AnalyticsEventName,
|
|
27
32
|
} from './Shared/Types/analytics.types';
|
|
28
33
|
|
|
34
|
+
registerGlobals();
|
|
35
|
+
|
|
29
36
|
const Stack = createNativeStackNavigator();
|
|
30
37
|
|
|
31
38
|
interface TrustchexBranding {
|
|
@@ -82,13 +89,24 @@ const Trustchex: React.FC<TrustchexProps> = ({
|
|
|
82
89
|
[propBranding]
|
|
83
90
|
);
|
|
84
91
|
|
|
85
|
-
|
|
86
|
-
|
|
92
|
+
// Use a ref to preserve the context object across re-renders.
|
|
93
|
+
// Several parts of the codebase mutate properties directly on the context
|
|
94
|
+
// (e.g. currentWorkflowStep, workflowSteps, identificationInfo fields).
|
|
95
|
+
// A plain useMemo would create a new object on every dependency change,
|
|
96
|
+
// discarding those mutations and causing screens to see undefined values.
|
|
97
|
+
const contextRef = useRef<AppContextType | null>(null);
|
|
98
|
+
|
|
99
|
+
const contextValue = useMemo(() => {
|
|
100
|
+
const prev = contextRef.current;
|
|
101
|
+
|
|
102
|
+
const value: AppContextType = {
|
|
87
103
|
isDemoSession,
|
|
88
104
|
baseUrl: baseUrl || '',
|
|
89
105
|
locale,
|
|
90
106
|
branding,
|
|
91
|
-
identificationInfo
|
|
107
|
+
// Reuse the previous identificationInfo object so that direct
|
|
108
|
+
// mutations (sessionId, identificationId, consent, etc.) survive.
|
|
109
|
+
identificationInfo: prev?.identificationInfo ?? {
|
|
92
110
|
sessionId: sessionId || '',
|
|
93
111
|
identificationId: '',
|
|
94
112
|
consent: {
|
|
@@ -97,23 +115,38 @@ const Trustchex: React.FC<TrustchexProps> = ({
|
|
|
97
115
|
},
|
|
98
116
|
locale: propLocale || (i18n.language as 'en' | 'tr'),
|
|
99
117
|
},
|
|
118
|
+
// Carry over mutated properties from the previous context value
|
|
119
|
+
workflowSteps: prev?.workflowSteps,
|
|
120
|
+
currentWorkflowStep: prev?.currentWorkflowStep,
|
|
121
|
+
isDebugNavigated: prev?.isDebugNavigated,
|
|
122
|
+
isTestVideoSession: prev?.isTestVideoSession,
|
|
100
123
|
onCompleted,
|
|
101
124
|
onError,
|
|
102
125
|
setSessionId,
|
|
103
126
|
setBaseUrl,
|
|
104
127
|
setIsDemoSession,
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
sessionId
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
// Update state-derived identificationInfo fields without replacing
|
|
131
|
+
// the object (so other mutated fields like identificationId survive).
|
|
132
|
+
if (sessionId) {
|
|
133
|
+
value.identificationInfo.sessionId = sessionId;
|
|
134
|
+
}
|
|
135
|
+
value.identificationInfo.locale =
|
|
136
|
+
propLocale || (i18n.language as 'en' | 'tr');
|
|
137
|
+
|
|
138
|
+
contextRef.current = value;
|
|
139
|
+
return value;
|
|
140
|
+
}, [
|
|
141
|
+
baseUrl,
|
|
142
|
+
locale,
|
|
143
|
+
branding,
|
|
144
|
+
sessionId,
|
|
145
|
+
propLocale,
|
|
146
|
+
onCompleted,
|
|
147
|
+
onError,
|
|
148
|
+
isDemoSession,
|
|
149
|
+
]);
|
|
117
150
|
|
|
118
151
|
// Initialize analytics when SDK mounts with valid session
|
|
119
152
|
useEffect(() => {
|
|
@@ -229,8 +262,21 @@ const Trustchex: React.FC<TrustchexProps> = ({
|
|
|
229
262
|
component={QrCodeScanningScreen}
|
|
230
263
|
/>
|
|
231
264
|
<Stack.Screen
|
|
232
|
-
name="
|
|
233
|
-
component={
|
|
265
|
+
name="VideoCallScreen"
|
|
266
|
+
component={VideoCallScreen}
|
|
267
|
+
/>
|
|
268
|
+
<Stack.Screen
|
|
269
|
+
name="VerbalConsentScreen"
|
|
270
|
+
component={VerbalConsentScreen}
|
|
271
|
+
/>
|
|
272
|
+
<Stack.Screen name="MRZTestScreen" component={MRZTestScreen} />
|
|
273
|
+
<Stack.Screen
|
|
274
|
+
name="BarcodeTestScreen"
|
|
275
|
+
component={BarcodeTestScreen}
|
|
276
|
+
/>
|
|
277
|
+
<Stack.Screen
|
|
278
|
+
name="NFCScanTestScreen"
|
|
279
|
+
component={NFCScanTestScreen}
|
|
234
280
|
/>
|
|
235
281
|
</Stack.Navigator>
|
|
236
282
|
<DebugNavigationPanel />
|
package/src/version.ts
CHANGED