@transfergratis/react-native-sdk 0.1.4 → 0.1.6
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/build/api/axios.d.ts +30 -0
- package/build/api/axios.d.ts.map +1 -0
- package/build/api/axios.js +92 -0
- package/build/api/axios.js.map +1 -0
- package/build/components/EnhancedCameraView.d.ts +1 -41
- package/build/components/EnhancedCameraView.d.ts.map +1 -1
- package/build/components/EnhancedCameraView.js +75 -34
- package/build/components/EnhancedCameraView.js.map +1 -1
- package/build/components/EnhancedCameraView.web.d.ts +1 -41
- package/build/components/EnhancedCameraView.web.d.ts.map +1 -1
- package/build/components/EnhancedCameraView.web.js +28 -4
- package/build/components/EnhancedCameraView.web.js.map +1 -1
- package/build/components/KYCElements/CountrySelectionTemplate.d.ts +2 -2
- package/build/components/KYCElements/CountrySelectionTemplate.d.ts.map +1 -1
- package/build/components/KYCElements/CountrySelectionTemplate.js +77 -114
- package/build/components/KYCElements/CountrySelectionTemplate.js.map +1 -1
- package/build/components/KYCElements/FileUploadTemplate.d.ts.map +1 -1
- package/build/components/KYCElements/FileUploadTemplate.js +7 -3
- package/build/components/KYCElements/FileUploadTemplate.js.map +1 -1
- package/build/components/KYCElements/IDCardCapture.d.ts +7 -2
- package/build/components/KYCElements/IDCardCapture.d.ts.map +1 -1
- package/build/components/KYCElements/IDCardCapture.js +253 -104
- package/build/components/KYCElements/IDCardCapture.js.map +1 -1
- package/build/components/KYCElements/InitializationStep.d.ts +5 -0
- package/build/components/KYCElements/InitializationStep.d.ts.map +1 -0
- package/build/components/KYCElements/InitializationStep.js +41 -0
- package/build/components/KYCElements/InitializationStep.js.map +1 -0
- package/build/components/KYCElements/LocationCaptureTemplate.d.ts.map +1 -1
- package/build/components/KYCElements/LocationCaptureTemplate.js +15 -13
- package/build/components/KYCElements/LocationCaptureTemplate.js.map +1 -1
- package/build/components/KYCElements/OrientationVideoCapture.d.ts +2 -2
- package/build/components/KYCElements/OrientationVideoCapture.d.ts.map +1 -1
- package/build/components/KYCElements/OrientationVideoCapture.js.map +1 -1
- package/build/components/KYCElements/OrientationVideoCaptureEnhanced.d.ts +2 -2
- package/build/components/KYCElements/OrientationVideoCaptureEnhanced.d.ts.map +1 -1
- package/build/components/KYCElements/OrientationVideoCaptureEnhanced.js.map +1 -1
- package/build/components/KYCElements/OrientationVideoCaptureFinal.d.ts +2 -2
- package/build/components/KYCElements/OrientationVideoCaptureFinal.d.ts.map +1 -1
- package/build/components/KYCElements/OrientationVideoCaptureFinal.js.map +1 -1
- package/build/components/KYCElements/ReviewSubmitTemplate.d.ts +12 -0
- package/build/components/KYCElements/ReviewSubmitTemplate.d.ts.map +1 -0
- package/build/components/KYCElements/ReviewSubmitTemplate.js +171 -0
- package/build/components/KYCElements/ReviewSubmitTemplate.js.map +1 -0
- package/build/components/KYCElements/SelfieCaptureTemplate.d.ts +6 -2
- package/build/components/KYCElements/SelfieCaptureTemplate.d.ts.map +1 -1
- package/build/components/KYCElements/SelfieCaptureTemplate.js +137 -38
- package/build/components/KYCElements/SelfieCaptureTemplate.js.map +1 -1
- package/build/components/KYCElements/VerificationProgressTemplate.d.ts +12 -0
- package/build/components/KYCElements/VerificationProgressTemplate.d.ts.map +1 -0
- package/build/components/KYCElements/VerificationProgressTemplate.js +194 -0
- package/build/components/KYCElements/VerificationProgressTemplate.js.map +1 -0
- package/build/components/OverLay/IdCard.d.ts +1 -1
- package/build/components/OverLay/IdCard.d.ts.map +1 -1
- package/build/components/OverLay/IdCard.js +10 -6
- package/build/components/OverLay/IdCard.js.map +1 -1
- package/build/components/OverLay/SelfieOverlay.d.ts +1 -1
- package/build/components/OverLay/SelfieOverlay.d.ts.map +1 -1
- package/build/components/OverLay/SelfieOverlay.js +5 -4
- package/build/components/OverLay/SelfieOverlay.js.map +1 -1
- package/build/components/OverLay/type.d.ts +71 -1
- package/build/components/OverLay/type.d.ts.map +1 -1
- package/build/components/OverLay/type.js.map +1 -1
- package/build/components/TemplateKYCExample.d.ts +4 -1
- package/build/components/TemplateKYCExample.d.ts.map +1 -1
- package/build/components/TemplateKYCExample.js +74 -199
- package/build/components/TemplateKYCExample.js.map +1 -1
- package/build/components/TemplateKYCFlowRefactored.d.ts +3 -2
- package/build/components/TemplateKYCFlowRefactored.d.ts.map +1 -1
- package/build/components/TemplateKYCFlowRefactored.js +64 -40
- package/build/components/TemplateKYCFlowRefactored.js.map +1 -1
- package/build/components/example/OrientationVideoExample.d.ts.map +1 -1
- package/build/components/example/OrientationVideoExample.js +1 -5
- package/build/components/example/OrientationVideoExample.js.map +1 -1
- package/build/config/countriesData.d.ts +3 -0
- package/build/config/countriesData.d.ts.map +1 -0
- package/build/config/countriesData.js +79 -0
- package/build/config/countriesData.js.map +1 -0
- package/build/config/region_mapping.d.ts +3 -0
- package/build/config/region_mapping.d.ts.map +1 -0
- package/build/config/region_mapping.js +687 -0
- package/build/config/region_mapping.js.map +1 -0
- package/build/hooks/useI18n.d.ts +11 -0
- package/build/hooks/useI18n.d.ts.map +1 -0
- package/build/hooks/useI18n.js +37 -0
- package/build/hooks/useI18n.js.map +1 -0
- package/build/hooks/useOrientationVideo.d.ts +1 -2
- package/build/hooks/useOrientationVideo.d.ts.map +1 -1
- package/build/hooks/useOrientationVideo.js +2 -1
- package/build/hooks/useOrientationVideo.js.map +1 -1
- package/build/hooks/useRealtimeVerifier.d.ts +28 -0
- package/build/hooks/useRealtimeVerifier.d.ts.map +1 -0
- package/build/hooks/useRealtimeVerifier.js +91 -0
- package/build/hooks/useRealtimeVerifier.js.map +1 -0
- package/build/hooks/useTemplateKYCFlow.d.ts +6 -3
- package/build/hooks/useTemplateKYCFlow.d.ts.map +1 -1
- package/build/hooks/useTemplateKYCFlow.js +356 -42
- package/build/hooks/useTemplateKYCFlow.js.map +1 -1
- package/build/i18n/en/index.d.ts +168 -0
- package/build/i18n/en/index.d.ts.map +1 -0
- package/build/i18n/en/index.js +195 -0
- package/build/i18n/en/index.js.map +1 -0
- package/build/i18n/fr/index.d.ts +168 -0
- package/build/i18n/fr/index.d.ts.map +1 -0
- package/build/i18n/fr/index.js +194 -0
- package/build/i18n/fr/index.js.map +1 -0
- package/build/i18n/index.d.ts +10 -0
- package/build/i18n/index.d.ts.map +1 -0
- package/build/i18n/index.js +56 -0
- package/build/i18n/index.js.map +1 -0
- package/build/i18n/types.d.ts +153 -0
- package/build/i18n/types.d.ts.map +1 -0
- package/build/i18n/types.js +3 -0
- package/build/i18n/types.js.map +1 -0
- package/build/i18n/usage-example.d.ts +4 -0
- package/build/i18n/usage-example.d.ts.map +1 -0
- package/build/i18n/usage-example.js +189 -0
- package/build/i18n/usage-example.js.map +1 -0
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/build/modules/api/CardAuthentification.d.ts +22 -0
- package/build/modules/api/CardAuthentification.d.ts.map +1 -0
- package/build/modules/api/CardAuthentification.js +107 -0
- package/build/modules/api/CardAuthentification.js.map +1 -0
- package/build/modules/api/KYCService.d.ts +58 -1
- package/build/modules/api/KYCService.d.ts.map +1 -1
- package/build/modules/api/KYCService.js +304 -27
- package/build/modules/api/KYCService.js.map +1 -1
- package/build/modules/api/SelfieVerification.d.ts +3 -0
- package/build/modules/api/SelfieVerification.d.ts.map +1 -0
- package/build/modules/api/SelfieVerification.js +9 -0
- package/build/modules/api/SelfieVerification.js.map +1 -0
- package/build/modules/api/backendApi.d.ts +2 -0
- package/build/modules/api/backendApi.d.ts.map +1 -0
- package/build/modules/api/backendApi.js +6 -0
- package/build/modules/api/backendApi.js.map +1 -0
- package/build/modules/api/types.d.ts +45 -0
- package/build/modules/api/types.d.ts.map +1 -0
- package/build/modules/api/types.js +2 -0
- package/build/modules/api/types.js.map +1 -0
- package/build/types/KYC.types.d.ts +56 -7
- package/build/types/KYC.types.d.ts.map +1 -1
- package/build/types/KYC.types.js +9 -1
- package/build/types/KYC.types.js.map +1 -1
- package/build/utils/cropByObb.d.ts +11 -0
- package/build/utils/cropByObb.d.ts.map +1 -0
- package/build/utils/cropByObb.js +78 -0
- package/build/utils/cropByObb.js.map +1 -0
- package/build/utils/get-document-type-info.d.ts +13 -0
- package/build/utils/get-document-type-info.d.ts.map +1 -0
- package/build/utils/get-document-type-info.js +59 -0
- package/build/utils/get-document-type-info.js.map +1 -0
- package/build/utils/pathToBase64.d.ts +3 -0
- package/build/utils/pathToBase64.d.ts.map +1 -0
- package/build/utils/pathToBase64.js +47 -0
- package/build/utils/pathToBase64.js.map +1 -0
- package/build/utils/remove-duplicate.d.ts +2 -0
- package/build/utils/remove-duplicate.d.ts.map +1 -0
- package/build/utils/remove-duplicate.js +4 -0
- package/build/utils/remove-duplicate.js.map +1 -0
- package/build/web/WebKYCEntry.d.ts +9 -0
- package/build/web/WebKYCEntry.d.ts.map +1 -0
- package/build/web/WebKYCEntry.js +156 -0
- package/build/web/WebKYCEntry.js.map +1 -0
- package/build/web/index.d.ts +2 -0
- package/build/web/index.d.ts.map +1 -0
- package/build/web/index.js +2 -0
- package/build/web/index.js.map +1 -0
- package/package.json +3 -1
- package/src/api/axios.ts +144 -0
- package/src/components/EnhancedCameraView.tsx +96 -78
- package/src/components/EnhancedCameraView.web.tsx +41 -40
- package/src/components/KYCElements/CountrySelectionTemplate.tsx +111 -136
- package/src/components/KYCElements/FileUploadTemplate.tsx +14 -8
- package/src/components/KYCElements/IDCardCapture.tsx +311 -115
- package/src/components/KYCElements/InitializationStep.tsx +53 -0
- package/src/components/KYCElements/LocationCaptureTemplate.tsx +17 -15
- package/src/components/KYCElements/OrientationVideoCapture.tsx +2 -2
- package/src/components/KYCElements/OrientationVideoCaptureEnhanced.tsx +2 -2
- package/src/components/KYCElements/OrientationVideoCaptureFinal.tsx +2 -2
- package/src/components/KYCElements/ReviewSubmitTemplate.tsx +201 -0
- package/src/components/KYCElements/SelfieCaptureTemplate.tsx +174 -57
- package/src/components/KYCElements/VerificationProgressTemplate.tsx +246 -0
- package/src/components/OverLay/IdCard.tsx +17 -9
- package/src/components/OverLay/SelfieOverlay.tsx +6 -5
- package/src/components/OverLay/type.ts +64 -2
- package/src/components/TemplateKYCExample.tsx +80 -200
- package/src/components/TemplateKYCFlowRefactored.tsx +80 -48
- package/src/components/example/OrientationVideoExample.tsx +3 -7
- package/src/config/countriesData.ts +84 -0
- package/src/config/region_mapping.ts +688 -0
- package/src/hooks/useI18n.ts +53 -0
- package/src/hooks/useOrientationVideo.ts +2 -2
- package/src/hooks/useRealtimeVerifier.ts +128 -0
- package/src/hooks/useTemplateKYCFlow.tsx +407 -57
- package/src/i18n/README.md +288 -0
- package/src/i18n/en/index.ts +206 -0
- package/src/i18n/fr/index.ts +205 -0
- package/src/i18n/index.ts +65 -0
- package/src/i18n/types.ts +172 -0
- package/src/i18n/usage-example.tsx +202 -0
- package/src/index.ts +3 -0
- package/src/modules/api/CardAuthentification.ts +114 -0
- package/src/modules/api/KYCService.ts +350 -30
- package/src/modules/api/SelfieVerification.ts +11 -0
- package/src/modules/api/backendApi.ts +8 -0
- package/src/modules/api/types.ts +51 -0
- package/src/types/KYC.types.ts +82 -14
- package/src/utils/cropByObb.ts +99 -0
- package/src/utils/get-document-type-info.ts +62 -0
- package/src/utils/pathToBase64.ts +47 -0
- package/src/utils/remove-duplicate.ts +3 -0
- package/src/web/WebKYCEntry.tsx +215 -0
- package/src/web/index.ts +1 -0
- package/src/types/nativewind.d.ts +0 -2
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { View, Text, TouchableOpacity, StyleSheet } from 'react-native';
|
|
3
|
+
import { useI18n } from '../hooks/useI18n';
|
|
4
|
+
// Exemple d'utilisation du système i18n dans votre application
|
|
5
|
+
export const KYCFlowWithI18n = () => {
|
|
6
|
+
const { t, locale, setLocale, availableLocales } = useI18n();
|
|
7
|
+
return (<View style={styles.container}>
|
|
8
|
+
{/* Sélecteur de langue */}
|
|
9
|
+
<View style={styles.languageSelector}>
|
|
10
|
+
<Text style={styles.languageLabel}>{t('kyc.countrySelection.title')}</Text>
|
|
11
|
+
<View style={styles.languageButtons}>
|
|
12
|
+
{availableLocales.map((loc) => (<TouchableOpacity key={loc} style={[
|
|
13
|
+
styles.languageButton,
|
|
14
|
+
locale === loc && styles.activeLanguageButton
|
|
15
|
+
]} onPress={() => setLocale(loc)}>
|
|
16
|
+
<Text style={[
|
|
17
|
+
styles.languageButtonText,
|
|
18
|
+
locale === loc && styles.activeLanguageButtonText
|
|
19
|
+
]}>
|
|
20
|
+
{loc.toUpperCase()}
|
|
21
|
+
</Text>
|
|
22
|
+
</TouchableOpacity>))}
|
|
23
|
+
</View>
|
|
24
|
+
</View>
|
|
25
|
+
|
|
26
|
+
{/* Titre principal */}
|
|
27
|
+
<Text style={styles.title}>{t('kyc.title')}</Text>
|
|
28
|
+
<Text style={styles.subtitle}>{t('kyc.subtitle')}</Text>
|
|
29
|
+
|
|
30
|
+
{/* Boutons d'action */}
|
|
31
|
+
<View style={styles.buttonContainer}>
|
|
32
|
+
<TouchableOpacity style={styles.primaryButton}>
|
|
33
|
+
<Text style={styles.primaryButtonText}>
|
|
34
|
+
{t('kyc.initialization.startButton')}
|
|
35
|
+
</Text>
|
|
36
|
+
</TouchableOpacity>
|
|
37
|
+
|
|
38
|
+
<TouchableOpacity style={styles.secondaryButton}>
|
|
39
|
+
<Text style={styles.secondaryButtonText}>
|
|
40
|
+
{t('common.cancel')}
|
|
41
|
+
</Text>
|
|
42
|
+
</TouchableOpacity>
|
|
43
|
+
</View>
|
|
44
|
+
|
|
45
|
+
{/* Instructions */}
|
|
46
|
+
<View style={styles.instructionsContainer}>
|
|
47
|
+
<Text style={styles.instructionsTitle}>
|
|
48
|
+
{t('kyc.initialization.requirements')}
|
|
49
|
+
</Text>
|
|
50
|
+
{/* {t('kyc.initialization.requirementsList').map((requirement: string, index: number) => (
|
|
51
|
+
<Text key={index} style={styles.requirementItem}>
|
|
52
|
+
• {requirement}
|
|
53
|
+
</Text>
|
|
54
|
+
))} */}
|
|
55
|
+
</View>
|
|
56
|
+
|
|
57
|
+
{/* Exemple d'utilisation avec interpolation */}
|
|
58
|
+
<Text style={styles.stepText}>
|
|
59
|
+
{t('kyc.step', { current: 1, total: 3 })}
|
|
60
|
+
</Text>
|
|
61
|
+
|
|
62
|
+
{/* Exemple d'utilisation avec pluralisation */}
|
|
63
|
+
<Text style={styles.countText}>
|
|
64
|
+
{t('kyc.verificationProgress.estimatedTime')}
|
|
65
|
+
</Text>
|
|
66
|
+
</View>);
|
|
67
|
+
};
|
|
68
|
+
const styles = StyleSheet.create({
|
|
69
|
+
container: {
|
|
70
|
+
flex: 1,
|
|
71
|
+
padding: 20,
|
|
72
|
+
backgroundColor: '#FFFFFF',
|
|
73
|
+
},
|
|
74
|
+
languageSelector: {
|
|
75
|
+
flexDirection: 'row',
|
|
76
|
+
alignItems: 'center',
|
|
77
|
+
justifyContent: 'space-between',
|
|
78
|
+
marginBottom: 20,
|
|
79
|
+
paddingVertical: 10,
|
|
80
|
+
borderBottomWidth: 1,
|
|
81
|
+
borderBottomColor: '#E0E0E0',
|
|
82
|
+
},
|
|
83
|
+
languageLabel: {
|
|
84
|
+
fontSize: 16,
|
|
85
|
+
fontWeight: '600',
|
|
86
|
+
color: '#333333',
|
|
87
|
+
},
|
|
88
|
+
languageButtons: {
|
|
89
|
+
flexDirection: 'row',
|
|
90
|
+
gap: 10,
|
|
91
|
+
},
|
|
92
|
+
languageButton: {
|
|
93
|
+
paddingHorizontal: 16,
|
|
94
|
+
paddingVertical: 8,
|
|
95
|
+
borderRadius: 20,
|
|
96
|
+
backgroundColor: '#F5F5F5',
|
|
97
|
+
borderWidth: 1,
|
|
98
|
+
borderColor: '#E0E0E0',
|
|
99
|
+
},
|
|
100
|
+
activeLanguageButton: {
|
|
101
|
+
backgroundColor: '#007AFF',
|
|
102
|
+
borderColor: '#007AFF',
|
|
103
|
+
},
|
|
104
|
+
languageButtonText: {
|
|
105
|
+
fontSize: 14,
|
|
106
|
+
fontWeight: '500',
|
|
107
|
+
color: '#666666',
|
|
108
|
+
},
|
|
109
|
+
activeLanguageButtonText: {
|
|
110
|
+
color: '#FFFFFF',
|
|
111
|
+
},
|
|
112
|
+
title: {
|
|
113
|
+
fontSize: 28,
|
|
114
|
+
fontWeight: 'bold',
|
|
115
|
+
textAlign: 'center',
|
|
116
|
+
marginBottom: 10,
|
|
117
|
+
color: '#333333',
|
|
118
|
+
},
|
|
119
|
+
subtitle: {
|
|
120
|
+
fontSize: 16,
|
|
121
|
+
textAlign: 'center',
|
|
122
|
+
marginBottom: 30,
|
|
123
|
+
color: '#666666',
|
|
124
|
+
lineHeight: 22,
|
|
125
|
+
},
|
|
126
|
+
buttonContainer: {
|
|
127
|
+
gap: 15,
|
|
128
|
+
marginBottom: 30,
|
|
129
|
+
},
|
|
130
|
+
primaryButton: {
|
|
131
|
+
backgroundColor: '#007AFF',
|
|
132
|
+
paddingVertical: 15,
|
|
133
|
+
paddingHorizontal: 30,
|
|
134
|
+
borderRadius: 8,
|
|
135
|
+
alignItems: 'center',
|
|
136
|
+
},
|
|
137
|
+
primaryButtonText: {
|
|
138
|
+
color: '#FFFFFF',
|
|
139
|
+
fontSize: 16,
|
|
140
|
+
fontWeight: '600',
|
|
141
|
+
},
|
|
142
|
+
secondaryButton: {
|
|
143
|
+
backgroundColor: 'transparent',
|
|
144
|
+
paddingVertical: 15,
|
|
145
|
+
paddingHorizontal: 30,
|
|
146
|
+
borderRadius: 8,
|
|
147
|
+
alignItems: 'center',
|
|
148
|
+
borderWidth: 1,
|
|
149
|
+
borderColor: '#E0E0E0',
|
|
150
|
+
},
|
|
151
|
+
secondaryButtonText: {
|
|
152
|
+
color: '#666666',
|
|
153
|
+
fontSize: 16,
|
|
154
|
+
fontWeight: '500',
|
|
155
|
+
},
|
|
156
|
+
instructionsContainer: {
|
|
157
|
+
backgroundColor: '#F8F9FA',
|
|
158
|
+
padding: 20,
|
|
159
|
+
borderRadius: 10,
|
|
160
|
+
marginBottom: 20,
|
|
161
|
+
},
|
|
162
|
+
instructionsTitle: {
|
|
163
|
+
fontSize: 16,
|
|
164
|
+
fontWeight: '600',
|
|
165
|
+
marginBottom: 15,
|
|
166
|
+
color: '#333333',
|
|
167
|
+
},
|
|
168
|
+
requirementItem: {
|
|
169
|
+
fontSize: 14,
|
|
170
|
+
marginBottom: 8,
|
|
171
|
+
color: '#666666',
|
|
172
|
+
lineHeight: 20,
|
|
173
|
+
},
|
|
174
|
+
stepText: {
|
|
175
|
+
fontSize: 14,
|
|
176
|
+
textAlign: 'center',
|
|
177
|
+
color: '#007AFF',
|
|
178
|
+
fontWeight: '500',
|
|
179
|
+
marginBottom: 10,
|
|
180
|
+
},
|
|
181
|
+
countText: {
|
|
182
|
+
fontSize: 12,
|
|
183
|
+
textAlign: 'center',
|
|
184
|
+
color: '#999999',
|
|
185
|
+
fontStyle: 'italic',
|
|
186
|
+
},
|
|
187
|
+
});
|
|
188
|
+
export default KYCFlowWithI18n;
|
|
189
|
+
//# sourceMappingURL=usage-example.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-example.js","sourceRoot":"","sources":["../../src/i18n/usage-example.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport { View, Text, TouchableOpacity, StyleSheet } from 'react-native';\nimport { useI18n } from '../hooks/useI18n';\n\n// Exemple d'utilisation du système i18n dans votre application\nexport const KYCFlowWithI18n: React.FC = () => {\n const { t, locale, setLocale, availableLocales } = useI18n();\n\n \n\n return (\n <View style={styles.container}>\n {/* Sélecteur de langue */}\n <View style={styles.languageSelector}>\n <Text style={styles.languageLabel}>{t('kyc.countrySelection.title')}</Text>\n <View style={styles.languageButtons}>\n {availableLocales.map((loc) => (\n <TouchableOpacity\n key={loc}\n style={[\n styles.languageButton,\n locale === loc && styles.activeLanguageButton\n ]}\n onPress={() => setLocale(loc)}\n >\n <Text style={[\n styles.languageButtonText,\n locale === loc && styles.activeLanguageButtonText\n ]}>\n {loc.toUpperCase()}\n </Text>\n </TouchableOpacity>\n ))}\n </View>\n </View>\n\n {/* Titre principal */}\n <Text style={styles.title}>{t('kyc.title')}</Text>\n <Text style={styles.subtitle}>{t('kyc.subtitle')}</Text>\n\n {/* Boutons d'action */}\n <View style={styles.buttonContainer}>\n <TouchableOpacity style={styles.primaryButton}>\n <Text style={styles.primaryButtonText}>\n {t('kyc.initialization.startButton')}\n </Text>\n </TouchableOpacity>\n \n <TouchableOpacity style={styles.secondaryButton}>\n <Text style={styles.secondaryButtonText}>\n {t('common.cancel')}\n </Text>\n </TouchableOpacity>\n </View>\n\n {/* Instructions */}\n <View style={styles.instructionsContainer}>\n <Text style={styles.instructionsTitle}>\n {t('kyc.initialization.requirements')}\n </Text>\n {/* {t('kyc.initialization.requirementsList').map((requirement: string, index: number) => (\n <Text key={index} style={styles.requirementItem}>\n • {requirement}\n </Text>\n ))} */}\n </View>\n\n {/* Exemple d'utilisation avec interpolation */}\n <Text style={styles.stepText}>\n {t('kyc.step', { current: 1, total: 3 })}\n </Text>\n\n {/* Exemple d'utilisation avec pluralisation */}\n <Text style={styles.countText}>\n {t('kyc.verificationProgress.estimatedTime')}\n </Text>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n padding: 20,\n backgroundColor: '#FFFFFF',\n },\n languageSelector: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: 20,\n paddingVertical: 10,\n borderBottomWidth: 1,\n borderBottomColor: '#E0E0E0',\n },\n languageLabel: {\n fontSize: 16,\n fontWeight: '600',\n color: '#333333',\n },\n languageButtons: {\n flexDirection: 'row',\n gap: 10,\n },\n languageButton: {\n paddingHorizontal: 16,\n paddingVertical: 8,\n borderRadius: 20,\n backgroundColor: '#F5F5F5',\n borderWidth: 1,\n borderColor: '#E0E0E0',\n },\n activeLanguageButton: {\n backgroundColor: '#007AFF',\n borderColor: '#007AFF',\n },\n languageButtonText: {\n fontSize: 14,\n fontWeight: '500',\n color: '#666666',\n },\n activeLanguageButtonText: {\n color: '#FFFFFF',\n },\n title: {\n fontSize: 28,\n fontWeight: 'bold',\n textAlign: 'center',\n marginBottom: 10,\n color: '#333333',\n },\n subtitle: {\n fontSize: 16,\n textAlign: 'center',\n marginBottom: 30,\n color: '#666666',\n lineHeight: 22,\n },\n buttonContainer: {\n gap: 15,\n marginBottom: 30,\n },\n primaryButton: {\n backgroundColor: '#007AFF',\n paddingVertical: 15,\n paddingHorizontal: 30,\n borderRadius: 8,\n alignItems: 'center',\n },\n primaryButtonText: {\n color: '#FFFFFF',\n fontSize: 16,\n fontWeight: '600',\n },\n secondaryButton: {\n backgroundColor: 'transparent',\n paddingVertical: 15,\n paddingHorizontal: 30,\n borderRadius: 8,\n alignItems: 'center',\n borderWidth: 1,\n borderColor: '#E0E0E0',\n },\n secondaryButtonText: {\n color: '#666666',\n fontSize: 16,\n fontWeight: '500',\n },\n instructionsContainer: {\n backgroundColor: '#F8F9FA',\n padding: 20,\n borderRadius: 10,\n marginBottom: 20,\n },\n instructionsTitle: {\n fontSize: 16,\n fontWeight: '600',\n marginBottom: 15,\n color: '#333333',\n },\n requirementItem: {\n fontSize: 14,\n marginBottom: 8,\n color: '#666666',\n lineHeight: 20,\n },\n stepText: {\n fontSize: 14,\n textAlign: 'center',\n color: '#007AFF',\n fontWeight: '500',\n marginBottom: 10,\n },\n countText: {\n fontSize: 12,\n textAlign: 'center',\n color: '#999999',\n fontStyle: 'italic',\n },\n});\n\nexport default KYCFlowWithI18n;\n"]}
|
package/build/index.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export { SelfieCaptureTemplate } from './components/KYCElements/SelfieCaptureTem
|
|
|
24
24
|
export { FileUploadTemplate } from './components/KYCElements/FileUploadTemplate';
|
|
25
25
|
export { LocationCaptureTemplate } from './components/KYCElements/LocationCaptureTemplate';
|
|
26
26
|
export { CountrySelectionTemplate } from './components/KYCElements/CountrySelectionTemplate';
|
|
27
|
+
export { WebKYCEntry } from './web';
|
|
27
28
|
export { default as KYCService } from './modules/api/KYCService';
|
|
28
29
|
export { default as useOrientationVideo } from './hooks/useOrientationVideo';
|
|
29
30
|
export { default as useLocation } from './hooks/useLocation';
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,cAAe,2BAA2B,CAAC;AAG3C,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAG1D,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAGtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,0DAA0D,CAAC;AACtH,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,uDAAuD,CAAC;AAChH,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAGlG,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACpH,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAG7F,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG9G,OAAO,EACL,MAAM,EACN,aAAa,EACb,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACzH,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,cAAe,2BAA2B,CAAC;AAG3C,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAG1D,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAGtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,0DAA0D,CAAC;AACtH,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,uDAAuD,CAAC;AAChH,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAGlG,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACpH,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAG7F,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGpC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG9G,OAAO,EACL,MAAM,EACN,aAAa,EACb,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACzH,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -33,6 +33,8 @@ export { SelfieCaptureTemplate } from './components/KYCElements/SelfieCaptureTem
|
|
|
33
33
|
export { FileUploadTemplate } from './components/KYCElements/FileUploadTemplate';
|
|
34
34
|
export { LocationCaptureTemplate } from './components/KYCElements/LocationCaptureTemplate';
|
|
35
35
|
export { CountrySelectionTemplate } from './components/KYCElements/CountrySelectionTemplate';
|
|
36
|
+
// Export Web KYC Components
|
|
37
|
+
export { WebKYCEntry } from './web';
|
|
36
38
|
// Export KYC Service
|
|
37
39
|
export { default as KYCService } from './modules/api/KYCService';
|
|
38
40
|
// Export Hooks
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,4FAA4F;AAC5F,wDAAwD;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,cAAe,2BAA2B,CAAC;AAE3C,mCAAmC;AACnC,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAE1D,mBAAmB;AACnB,cAAc,mBAAmB,CAAC;AAElC,uDAAuD;AACvD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAEtF,2BAA2B;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC,CAAC,SAAS;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,wBAAwB;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,iDAAiD;AACjD,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,0DAA0D,CAAC;AACtH,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,uDAAuD,CAAC;AAChH,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAElG,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACpH,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAE7F,qBAAqB;AACrB,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEjE,eAAe;AACf,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAG7D,gBAAgB;AAChB,OAAO,EACL,MAAM,EACN,aAAa,EACb,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACzH,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC","sourcesContent":["\n// Reexport the native module. On web, it will be resolved to TransfergratisSdkModule.web.ts\n// and on native platforms to TransfergratisSdkModule.ts\nexport { default } from './TransfergratisSdkModule';\nexport { default as TransfergratisSdkView } from './TransfergratisSdkView';\nexport * from './TransfergratisSdk.types';\n\n// Export KYC Flow - Main component\nexport { default as LauchTransferGratisKYC } from './App';\n\n// Export KYC types\nexport * from './types/KYC.types';\n\n// Export Camera Modules (Legacy + Vision Camera + Web)\nexport { default as NativeCameraModule } from './modules/camera/NativeCameraModule';\nexport { default as VisionCameraModule } from './modules/camera/VisionCameraModule';\nexport { default as UnifiedCameraModule } from './modules/camera/UnifiedCameraModule';\n\n// Export Camera Components\nexport { NativeCameraView } from './components/NativeCameraView'; // Legacy\nexport { VisionCameraView } from './components/VisionCameraView';\nexport { EnhancedCameraView } from './components/EnhancedCameraView';\n\n// Export KYC Components\nexport { SelfieCapture } from './components/SelfieCapture';\nexport { FileUpload } from './components/FileUpload';\nexport { CustomCameraExample } from './components/CustomCameraExample';\n\n// Export Orientation Video Processing Components\nexport { default as OrientationVideoCapture } from './components/KYCElements/OrientationVideoCapture';\nexport { default as OrientationVideoCaptureEnhanced } from './components/KYCElements/OrientationVideoCaptureEnhanced';\nexport { default as OrientationVideoCaptureFinal } from './components/KYCElements/OrientationVideoCaptureFinal';\nexport { default as OrientationVideoExample } from './components/example/OrientationVideoExample';\n\n// Export Template-based KYC Components\nexport { TemplateKYCFlow } from './components/TemplateKYCFlowRefactored';\nexport { TemplateKYCExample } from './components/TemplateKYCExample';\nexport { useTemplateKYCFlow, TemplateKYCFlowProvider, useTemplateKYCFlowContext } from './hooks/useTemplateKYCFlow';\nexport { IDCardCapture } from './components/KYCElements/IDCardCapture';\nexport { SelfieCaptureTemplate } from './components/KYCElements/SelfieCaptureTemplate';\nexport { FileUploadTemplate } from './components/KYCElements/FileUploadTemplate';\nexport { LocationCaptureTemplate } from './components/KYCElements/LocationCaptureTemplate';\nexport { CountrySelectionTemplate } from './components/KYCElements/CountrySelectionTemplate';\n\n// Export KYC Service\nexport { default as KYCService } from './modules/api/KYCService';\n\n// Export Hooks\nexport { default as useOrientationVideo } from './hooks/useOrientationVideo';\nexport { default as useLocation } from './hooks/useLocation';\nexport type { LocationData, LocationError, UseLocationOptions, UseLocationReturn } from './hooks/useLocation';\n\n// UI Components\nexport { \n Button, \n PrimaryButton, \n SecondaryButton, \n OutlineButton, \n GhostButton, \n DangerButton, \n SuccessButton, \n WarningButton,\n SmallButton,\n LargeButton,\n BackButton,\n NextButton,\n SubmitButton,\n CancelButton,\n buttonIcons \n} from './components/ui/Button';\nexport { buttonStyles, colors, shadows, buttonTextColors, iconSizes, buttonSpacing } from './components/ui/ButtonStyles';\nexport { default as ButtonExample } from './components/ui/ButtonExample';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,4FAA4F;AAC5F,wDAAwD;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,cAAe,2BAA2B,CAAC;AAE3C,mCAAmC;AACnC,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAE1D,mBAAmB;AACnB,cAAc,mBAAmB,CAAC;AAElC,uDAAuD;AACvD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAEtF,2BAA2B;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC,CAAC,SAAS;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,wBAAwB;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,iDAAiD;AACjD,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,0DAA0D,CAAC;AACtH,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,uDAAuD,CAAC;AAChH,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAElG,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACpH,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAE7F,4BAA4B;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,qBAAqB;AACrB,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEjE,eAAe;AACf,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAG7D,gBAAgB;AAChB,OAAO,EACL,MAAM,EACN,aAAa,EACb,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACzH,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC","sourcesContent":["\n// Reexport the native module. On web, it will be resolved to TransfergratisSdkModule.web.ts\n// and on native platforms to TransfergratisSdkModule.ts\nexport { default } from './TransfergratisSdkModule';\nexport { default as TransfergratisSdkView } from './TransfergratisSdkView';\nexport * from './TransfergratisSdk.types';\n\n// Export KYC Flow - Main component\nexport { default as LauchTransferGratisKYC } from './App';\n\n// Export KYC types\nexport * from './types/KYC.types';\n\n// Export Camera Modules (Legacy + Vision Camera + Web)\nexport { default as NativeCameraModule } from './modules/camera/NativeCameraModule';\nexport { default as VisionCameraModule } from './modules/camera/VisionCameraModule';\nexport { default as UnifiedCameraModule } from './modules/camera/UnifiedCameraModule';\n\n// Export Camera Components\nexport { NativeCameraView } from './components/NativeCameraView'; // Legacy\nexport { VisionCameraView } from './components/VisionCameraView';\nexport { EnhancedCameraView } from './components/EnhancedCameraView';\n\n// Export KYC Components\nexport { SelfieCapture } from './components/SelfieCapture';\nexport { FileUpload } from './components/FileUpload';\nexport { CustomCameraExample } from './components/CustomCameraExample';\n\n// Export Orientation Video Processing Components\nexport { default as OrientationVideoCapture } from './components/KYCElements/OrientationVideoCapture';\nexport { default as OrientationVideoCaptureEnhanced } from './components/KYCElements/OrientationVideoCaptureEnhanced';\nexport { default as OrientationVideoCaptureFinal } from './components/KYCElements/OrientationVideoCaptureFinal';\nexport { default as OrientationVideoExample } from './components/example/OrientationVideoExample';\n\n// Export Template-based KYC Components\nexport { TemplateKYCFlow } from './components/TemplateKYCFlowRefactored';\nexport { TemplateKYCExample } from './components/TemplateKYCExample';\nexport { useTemplateKYCFlow, TemplateKYCFlowProvider, useTemplateKYCFlowContext } from './hooks/useTemplateKYCFlow';\nexport { IDCardCapture } from './components/KYCElements/IDCardCapture';\nexport { SelfieCaptureTemplate } from './components/KYCElements/SelfieCaptureTemplate';\nexport { FileUploadTemplate } from './components/KYCElements/FileUploadTemplate';\nexport { LocationCaptureTemplate } from './components/KYCElements/LocationCaptureTemplate';\nexport { CountrySelectionTemplate } from './components/KYCElements/CountrySelectionTemplate';\n\n// Export Web KYC Components\nexport { WebKYCEntry } from './web';\n\n// Export KYC Service\nexport { default as KYCService } from './modules/api/KYCService';\n\n// Export Hooks\nexport { default as useOrientationVideo } from './hooks/useOrientationVideo';\nexport { default as useLocation } from './hooks/useLocation';\nexport type { LocationData, LocationError, UseLocationOptions, UseLocationReturn } from './hooks/useLocation';\n\n// UI Components\nexport { \n Button, \n PrimaryButton, \n SecondaryButton, \n OutlineButton, \n GhostButton, \n DangerButton, \n SuccessButton, \n WarningButton,\n SmallButton,\n LargeButton,\n BackButton,\n NextButton,\n SubmitButton,\n CancelButton,\n buttonIcons \n} from './components/ui/Button';\nexport { buttonStyles, colors, shadows, buttonTextColors, iconSizes, buttonSpacing } from './components/ui/ButtonStyles';\nexport { default as ButtonExample } from './components/ui/ButtonExample';\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { IBbox } from "../../types/KYC.types";
|
|
2
|
+
export declare function frontVerification(result: {
|
|
3
|
+
path?: string;
|
|
4
|
+
regionMapping: string[];
|
|
5
|
+
selectedDocumentType: string;
|
|
6
|
+
code: string;
|
|
7
|
+
currentSide: string;
|
|
8
|
+
}): Promise<{
|
|
9
|
+
mrz?: any;
|
|
10
|
+
croppedBase64: string | undefined;
|
|
11
|
+
bbox: IBbox | undefined;
|
|
12
|
+
result: boolean;
|
|
13
|
+
detail: any[];
|
|
14
|
+
}>;
|
|
15
|
+
export declare function backVerification(result: {
|
|
16
|
+
path?: string;
|
|
17
|
+
regionMapping: string[];
|
|
18
|
+
selectedDocumentType: string;
|
|
19
|
+
code: string;
|
|
20
|
+
currentSide: string;
|
|
21
|
+
}): Promise<any>;
|
|
22
|
+
//# sourceMappingURL=CardAuthentification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardAuthentification.d.ts","sourceRoot":"","sources":["../../../src/modules/api/CardAuthentification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;CAAE;;;;;;GA+B3J;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;CAAE,gBA2E1J"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import kycService, { authentification, errorMessage } from "./KYCService";
|
|
2
|
+
import { cropByObb } from "../../utils/cropByObb";
|
|
3
|
+
export async function frontVerification(result) {
|
|
4
|
+
try {
|
|
5
|
+
console.log("Front verification", JSON.stringify({ result }, null, 2));
|
|
6
|
+
const token = await authentification();
|
|
7
|
+
const detected = await kycService.detectFaceOnId(result?.path || '', token, result?.selectedDocumentType || '');
|
|
8
|
+
if (!detected.result) {
|
|
9
|
+
throw new Error('Aucun visage détecté sur la carte. Veuillez reprendre.');
|
|
10
|
+
}
|
|
11
|
+
// Optional: crop image using card_obb for better MRZ/barcode extraction
|
|
12
|
+
let croppedBase64;
|
|
13
|
+
let bbox;
|
|
14
|
+
let mrz;
|
|
15
|
+
try {
|
|
16
|
+
const crop = await cropByObb(result?.path || '', detected.card_obb);
|
|
17
|
+
croppedBase64 = crop.base64;
|
|
18
|
+
bbox = crop.bbox;
|
|
19
|
+
}
|
|
20
|
+
catch { }
|
|
21
|
+
if (result.regionMapping.length > 0 && result.regionMapping.includes('MRZ')) {
|
|
22
|
+
mrz = await kycService.extractMrzText({ fileUri: result.path || '', docType: result?.selectedDocumentType || '', docRegion: result?.code || "", postfix: result?.currentSide, token: token });
|
|
23
|
+
}
|
|
24
|
+
return { ...detected, croppedBase64, bbox, ...(mrz ? { mrz } : {}) };
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
console.error('Error front verification:', JSON.stringify(errorMessage(e), null, 2));
|
|
28
|
+
throw new Error(e?.message || 'Erreur de détection du visage');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export async function backVerification(result) {
|
|
32
|
+
try {
|
|
33
|
+
if (!result.path)
|
|
34
|
+
throw new Error('No path provided');
|
|
35
|
+
console.log("result.regionMapping", result.regionMapping, result.currentSide, result.code);
|
|
36
|
+
const token = await authentification();
|
|
37
|
+
// Fonction helper pour essayer MRZ puis barcode en fallback
|
|
38
|
+
const tryMrzWithBarcodeFallback = async () => {
|
|
39
|
+
try {
|
|
40
|
+
console.log("Tentative d'extraction MRZ");
|
|
41
|
+
const mrz = await kycService.extractMrzText({
|
|
42
|
+
fileUri: result.path,
|
|
43
|
+
docType: result?.selectedDocumentType || '',
|
|
44
|
+
docRegion: result?.code || '',
|
|
45
|
+
postfix: 'back',
|
|
46
|
+
token: token
|
|
47
|
+
});
|
|
48
|
+
return mrz;
|
|
49
|
+
}
|
|
50
|
+
catch (mrzError) {
|
|
51
|
+
console.log("MRZ échoué, tentative d'extraction barcode");
|
|
52
|
+
try {
|
|
53
|
+
const barcode = await kycService.extractBarcode({ fileUri: result.path, token: token });
|
|
54
|
+
return barcode;
|
|
55
|
+
}
|
|
56
|
+
catch (barcodeError) {
|
|
57
|
+
throw new Error(`MRZ et barcode ont échoué. MRZ: ${mrzError?.message}, Barcode: ${barcodeError?.message}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
if (result.regionMapping.length > 2) {
|
|
62
|
+
return await tryMrzWithBarcodeFallback();
|
|
63
|
+
}
|
|
64
|
+
if (result.regionMapping.length > 0 && result.regionMapping.includes('MRZ')) {
|
|
65
|
+
try {
|
|
66
|
+
const mrz = await kycService.extractMrzText({
|
|
67
|
+
fileUri: result.path,
|
|
68
|
+
docType: result?.selectedDocumentType || '',
|
|
69
|
+
docRegion: result?.code || '',
|
|
70
|
+
postfix: 'back',
|
|
71
|
+
token: token
|
|
72
|
+
});
|
|
73
|
+
let bbox;
|
|
74
|
+
try {
|
|
75
|
+
const crop = await cropByObb(result?.path || '', mrz.card_obb);
|
|
76
|
+
bbox = crop.bbox;
|
|
77
|
+
}
|
|
78
|
+
catch { }
|
|
79
|
+
return { ...mrz, bbox };
|
|
80
|
+
}
|
|
81
|
+
catch (mrzError) {
|
|
82
|
+
throw new Error(`MRZ et barcode ont échoué. MRZ: ${mrzError?.message}, Barcode: ${mrzError?.message}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (result.regionMapping.length > 0 && result.regionMapping.includes('2D_barcode')) {
|
|
86
|
+
try {
|
|
87
|
+
console.log("Tentative d'extraction barcode");
|
|
88
|
+
const barcode = await kycService.extractBarcode({ fileUri: result.path, token: token });
|
|
89
|
+
let bbox;
|
|
90
|
+
try {
|
|
91
|
+
const crop = await cropByObb(result?.path || '', barcode.card_obb);
|
|
92
|
+
bbox = crop.bbox;
|
|
93
|
+
}
|
|
94
|
+
catch { }
|
|
95
|
+
return { ...barcode, bbox };
|
|
96
|
+
}
|
|
97
|
+
catch (barcodeError) {
|
|
98
|
+
throw new Error(`Barcode et MRZ ont échoué. Barcode: ${barcodeError?.message}, MRZ: ${barcodeError?.message}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
catch (e) {
|
|
104
|
+
throw new Error(e?.message || 'Erreur de détection du MRZ ou barcode');
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=CardAuthentification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardAuthentification.js","sourceRoot":"","sources":["../../../src/modules/api/CardAuthentification.ts"],"names":[],"mappings":"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","sourcesContent":["import kycService, { authentification, errorMessage } from \"./KYCService\";\nimport { cropByObb } from \"../../utils/cropByObb\";\nimport { IBbox } from \"../../types/KYC.types\";\n\nexport async function frontVerification(result: { path?: string, regionMapping: string[], selectedDocumentType: string, code: string, currentSide: string, }) {\n try {\n\n console.log(\"Front verification\", JSON.stringify({ result }, null, 2));\n const token = await authentification();\n const detected = await kycService.detectFaceOnId(result?.path || '', token, result?.selectedDocumentType || '')\n\n if (!detected.result) {\n throw new Error('Aucun visage détecté sur la carte. Veuillez reprendre.');\n }\n\n // Optional: crop image using card_obb for better MRZ/barcode extraction\n let croppedBase64: string | undefined;\n let bbox: IBbox | undefined;\n let mrz: any | undefined;\n try {\n const crop = await cropByObb(result?.path || '', (detected as any).card_obb);\n croppedBase64 = crop.base64;\n bbox = crop.bbox;\n } catch { }\n\n if (result.regionMapping.length > 0 && result.regionMapping.includes('MRZ')) {\n mrz = await kycService.extractMrzText({ fileUri: result.path || '', docType: result?.selectedDocumentType || '', docRegion: result?.code || \"\", postfix: result?.currentSide, token: token })\n\n }\n\n return { ...detected, croppedBase64, bbox, ...(mrz ? { mrz } : {}) };\n } catch (e: any) {\n console.error('Error front verification:', JSON.stringify(errorMessage(e), null, 2));\n throw new Error(e?.message || 'Erreur de détection du visage');\n }\n}\n\nexport async function backVerification(result: { path?: string, regionMapping: string[], selectedDocumentType: string, code: string, currentSide: string, }) {\n try {\n if (!result.path) throw new Error('No path provided');\n console.log(\"result.regionMapping\", result.regionMapping, result.currentSide, result.code);\n const token = await authentification();\n\n\n\n // Fonction helper pour essayer MRZ puis barcode en fallback\n const tryMrzWithBarcodeFallback = async () => {\n try {\n console.log(\"Tentative d'extraction MRZ\");\n const mrz = await kycService.extractMrzText({\n fileUri: result.path!,\n docType: result?.selectedDocumentType || '',\n docRegion: result?.code || '',\n postfix: 'back',\n token: token\n });\n return mrz;\n } catch (mrzError: any) {\n console.log(\"MRZ échoué, tentative d'extraction barcode\");\n try {\n const barcode = await kycService.extractBarcode({ fileUri: result.path!, token: token });\n return barcode;\n } catch (barcodeError: any) {\n throw new Error(`MRZ et barcode ont échoué. MRZ: ${mrzError?.message}, Barcode: ${barcodeError?.message}`);\n }\n }\n };\n\n\n\n if (result.regionMapping.length > 2) {\n return await tryMrzWithBarcodeFallback();\n }\n\n if (result.regionMapping.length > 0 && result.regionMapping.includes('MRZ')) {\n try {\n const mrz = await kycService.extractMrzText({\n fileUri: result.path!,\n docType: result?.selectedDocumentType || '',\n docRegion: result?.code || '',\n postfix: 'back',\n token: token\n });\n let bbox: IBbox | undefined;\n try {\n const crop = await cropByObb(result?.path || '', (mrz as any).card_obb);\n bbox = crop.bbox;\n } catch { }\n return { ...mrz, bbox };\n } catch (mrzError: any) {\n throw new Error(`MRZ et barcode ont échoué. MRZ: ${mrzError?.message}, Barcode: ${mrzError?.message}`);\n }\n }\n\n if (result.regionMapping.length > 0 && result.regionMapping.includes('2D_barcode')) {\n try {\n console.log(\"Tentative d'extraction barcode\");\n const barcode = await kycService.extractBarcode({ fileUri: result.path!, token: token });\n let bbox: IBbox | undefined;\n try {\n const crop = await cropByObb(result?.path || '', (barcode as any).card_obb);\n bbox = crop.bbox;\n } catch { }\n return { ...barcode, bbox };\n } catch (barcodeError: any) {\n throw new Error(`Barcode et MRZ ont échoué. Barcode: ${barcodeError?.message}, MRZ: ${barcodeError?.message}`);\n }\n }\n return null;\n } catch (e: any) {\n throw new Error(e?.message || 'Erreur de détection du MRZ ou barcode');\n }\n}\n\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { OrientationVideoResponse } from '../../types/KYC.types';
|
|
2
|
+
import { SessionResponse, VerificationResult, VerificationSessionRequest } from './types';
|
|
2
3
|
export interface KYCRequest {
|
|
3
4
|
userId: string;
|
|
4
5
|
documentImage: string;
|
|
@@ -20,16 +21,72 @@ export interface FaceDetectionResponse {
|
|
|
20
21
|
confidence: number;
|
|
21
22
|
message: string;
|
|
22
23
|
}
|
|
24
|
+
export interface SelfieVideoResponse {
|
|
25
|
+
orientation_direction: "center" | "left" | "right";
|
|
26
|
+
turn_score: number;
|
|
27
|
+
bbox: number[];
|
|
28
|
+
capture: boolean;
|
|
29
|
+
instruction: string;
|
|
30
|
+
error: string;
|
|
31
|
+
}
|
|
23
32
|
export declare class KYCService {
|
|
24
33
|
private baseURL;
|
|
25
34
|
private apiKey;
|
|
35
|
+
private faceServiceURL;
|
|
36
|
+
private textExtractionServiceURL;
|
|
37
|
+
private mrzServiceURL;
|
|
38
|
+
private barcodeServiceURL;
|
|
39
|
+
private orientationServiceURL;
|
|
40
|
+
private backendServiceURL;
|
|
26
41
|
constructor(baseURL: string, apiKey: string);
|
|
27
42
|
private getHeaders;
|
|
28
43
|
submitKYC(data: KYCRequest): Promise<KYCResponse>;
|
|
29
44
|
detectFace(data: FaceDetectionRequest): Promise<FaceDetectionResponse>;
|
|
30
45
|
validateDocument(documentImage: string, documentType: string): Promise<any>;
|
|
31
46
|
getKYCStatus(verificationId: string): Promise<KYCResponse>;
|
|
47
|
+
processSelfieOrientationPicture(videoFile: string, token: string): Promise<SelfieVideoResponse[]>;
|
|
32
48
|
processOrientationVideo(videoFile: string): Promise<OrientationVideoResponse>;
|
|
49
|
+
detectFaceOnId(idCardImageUri: string, token: string, docType: string): Promise<{
|
|
50
|
+
result: boolean;
|
|
51
|
+
detail: any[];
|
|
52
|
+
}>;
|
|
53
|
+
extractDocumentInformation(params: {
|
|
54
|
+
fileUri: string;
|
|
55
|
+
docType: string;
|
|
56
|
+
docRegion: string;
|
|
57
|
+
token: string;
|
|
58
|
+
}): Promise<any>;
|
|
59
|
+
extractBarcode(params: {
|
|
60
|
+
fileUri: string;
|
|
61
|
+
token: string;
|
|
62
|
+
}): Promise<any>;
|
|
63
|
+
extractMrzText(params: {
|
|
64
|
+
fileUri: string;
|
|
65
|
+
docType: string;
|
|
66
|
+
docRegion: string;
|
|
67
|
+
postfix?: string;
|
|
68
|
+
token: string;
|
|
69
|
+
}): Promise<any>;
|
|
70
|
+
recognizeFace(params: {
|
|
71
|
+
idPhotoUri: string;
|
|
72
|
+
selfiePhotoUri: string;
|
|
73
|
+
}): Promise<{
|
|
74
|
+
is_match: boolean;
|
|
75
|
+
similarity: number;
|
|
76
|
+
id_bbox?: number[];
|
|
77
|
+
selfie_bbox?: number[];
|
|
78
|
+
}>;
|
|
79
|
+
healthFaceDetection(): Promise<any>;
|
|
80
|
+
healthTextExtraction(): Promise<any>;
|
|
81
|
+
healthMrzService(): Promise<any>;
|
|
82
|
+
healthOrientationService(): Promise<any>;
|
|
83
|
+
newSession(token: string): Promise<SessionResponse>;
|
|
84
|
+
verificationSession(payload: VerificationSessionRequest): Promise<any>;
|
|
85
|
+
getVerificationResult(session_id: string): Promise<VerificationResult>;
|
|
33
86
|
}
|
|
34
|
-
|
|
87
|
+
declare const kycService: KYCService;
|
|
88
|
+
export default kycService;
|
|
89
|
+
export declare function truncateFields(obj: any, maxLength?: number): any;
|
|
90
|
+
export declare const authentification: () => Promise<any>;
|
|
91
|
+
export declare const errorMessage: (error: any) => any;
|
|
35
92
|
//# sourceMappingURL=KYCService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KYCService.d.ts","sourceRoot":"","sources":["../../../src/modules/api/KYCService.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"KYCService.d.ts","sourceRoot":"","sources":["../../../src/modules/api/KYCService.ts"],"names":[],"mappings":"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"}
|