@transfergratis/react-native-sdk 0.1.32 → 0.1.33

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.
Files changed (666) hide show
  1. package/build/package.json +71 -0
  2. package/build/src/App.d.ts.map +1 -0
  3. package/build/src/App.js.map +1 -0
  4. package/build/src/TransfergratisSdk.types.d.ts.map +1 -0
  5. package/build/src/TransfergratisSdk.types.js.map +1 -0
  6. package/build/src/TransfergratisSdkModule.d.ts.map +1 -0
  7. package/build/src/TransfergratisSdkModule.js.map +1 -0
  8. package/build/src/TransfergratisSdkModule.web.d.ts.map +1 -0
  9. package/build/src/TransfergratisSdkModule.web.js.map +1 -0
  10. package/build/src/TransfergratisSdkView.d.ts.map +1 -0
  11. package/build/src/TransfergratisSdkView.js.map +1 -0
  12. package/build/src/TransfergratisSdkView.web.d.ts.map +1 -0
  13. package/build/src/TransfergratisSdkView.web.js.map +1 -0
  14. package/build/src/api/axios.d.ts.map +1 -0
  15. package/build/src/api/axios.js.map +1 -0
  16. package/build/src/components/Camera/index.d.ts.map +1 -0
  17. package/build/src/components/Camera/index.js.map +1 -0
  18. package/build/src/components/Camera/index.web.d.ts.map +1 -0
  19. package/build/src/components/Camera/index.web.js.map +1 -0
  20. package/build/src/components/Camera/types.d.ts.map +1 -0
  21. package/build/src/components/Camera/types.js.map +1 -0
  22. package/build/src/components/ConfigurableKYCFlow.d.ts.map +1 -0
  23. package/build/src/components/ConfigurableKYCFlow.js.map +1 -0
  24. package/build/src/components/CustomCameraExample.d.ts.map +1 -0
  25. package/build/src/components/CustomCameraExample.js.map +1 -0
  26. package/build/src/components/EnhancedCameraView.d.ts.map +1 -0
  27. package/build/src/components/EnhancedCameraView.js.map +1 -0
  28. package/build/src/components/EnhancedCameraView.web.d.ts.map +1 -0
  29. package/build/src/components/EnhancedCameraView.web.js.map +1 -0
  30. package/build/src/components/FileUpload.d.ts.map +1 -0
  31. package/build/src/components/FileUpload.js.map +1 -0
  32. package/build/src/components/KYCElementRenderer.d.ts.map +1 -0
  33. package/build/src/components/KYCElementRenderer.js.map +1 -0
  34. package/build/src/components/KYCElements/AdditionalDocumentsTemplate.d.ts.map +1 -0
  35. package/build/src/components/KYCElements/AdditionalDocumentsTemplate.js.map +1 -0
  36. package/build/src/components/KYCElements/CameraCapture.d.ts.map +1 -0
  37. package/build/src/components/KYCElements/CameraCapture.js.map +1 -0
  38. package/build/src/components/KYCElements/CompletionStep.d.ts.map +1 -0
  39. package/build/src/components/KYCElements/CompletionStep.js.map +1 -0
  40. package/build/src/components/KYCElements/CountrySelection.d.ts.map +1 -0
  41. package/build/src/components/KYCElements/CountrySelection.js.map +1 -0
  42. package/build/src/components/KYCElements/CountrySelectionTemplate.d.ts.map +1 -0
  43. package/build/src/components/KYCElements/CountrySelectionTemplate.js.map +1 -0
  44. package/build/src/components/KYCElements/DocumentTypeSelection.d.ts.map +1 -0
  45. package/build/src/components/KYCElements/DocumentTypeSelection.js.map +1 -0
  46. package/build/src/components/KYCElements/EmailVerificationTemplate.d.ts.map +1 -0
  47. package/build/src/components/KYCElements/EmailVerificationTemplate.js.map +1 -0
  48. package/build/src/components/KYCElements/FileUpload.d.ts.map +1 -0
  49. package/build/src/components/KYCElements/FileUpload.js.map +1 -0
  50. package/build/src/components/KYCElements/FileUploadTemplate.d.ts.map +1 -0
  51. package/build/src/components/KYCElements/FileUploadTemplate.js.map +1 -0
  52. package/build/src/components/KYCElements/IDCardCapture.d.ts.map +1 -0
  53. package/build/src/components/KYCElements/IDCardCapture.js.map +1 -0
  54. package/build/src/components/KYCElements/InitializationStep.d.ts.map +1 -0
  55. package/build/src/components/KYCElements/InitializationStep.js.map +1 -0
  56. package/build/src/components/KYCElements/LocationCaptureTemplate.d.ts.map +1 -0
  57. package/build/src/components/KYCElements/LocationCaptureTemplate.js.map +1 -0
  58. package/build/src/components/KYCElements/OrientationVideoCapture.d.ts.map +1 -0
  59. package/build/src/components/KYCElements/OrientationVideoCapture.js.map +1 -0
  60. package/build/src/components/KYCElements/OrientationVideoCaptureEnhanced.d.ts.map +1 -0
  61. package/build/src/components/KYCElements/OrientationVideoCaptureEnhanced.js.map +1 -0
  62. package/build/src/components/KYCElements/OrientationVideoCaptureFinal.d.ts.map +1 -0
  63. package/build/src/components/KYCElements/OrientationVideoCaptureFinal.js.map +1 -0
  64. package/build/src/components/KYCElements/PersonalInformationTemplate.d.ts.map +1 -0
  65. package/build/src/components/KYCElements/PersonalInformationTemplate.js.map +1 -0
  66. package/build/src/components/KYCElements/PhoneVerificationTemplate.d.ts.map +1 -0
  67. package/build/src/components/KYCElements/PhoneVerificationTemplate.js.map +1 -0
  68. package/build/src/components/KYCElements/ReviewSubmitTemplate.d.ts.map +1 -0
  69. package/build/src/components/KYCElements/ReviewSubmitTemplate.js.map +1 -0
  70. package/build/src/components/KYCElements/SelfieCapture.d.ts.map +1 -0
  71. package/build/src/components/KYCElements/SelfieCapture.js.map +1 -0
  72. package/build/src/components/KYCElements/SelfieCaptureTemplate.d.ts.map +1 -0
  73. package/build/src/components/KYCElements/SelfieCaptureTemplate.js.map +1 -0
  74. package/build/src/components/KYCElements/VerificationProgressTemplate.d.ts.map +1 -0
  75. package/build/src/components/KYCElements/VerificationProgressTemplate.js.map +1 -0
  76. package/build/src/components/KYCElements/VerificationStep.d.ts.map +1 -0
  77. package/build/src/components/KYCElements/VerificationStep.js.map +1 -0
  78. package/build/src/components/KYCElements/WelcomeTemplate.d.ts.map +1 -0
  79. package/build/{components → src/components}/KYCElements/WelcomeTemplate.js +9 -0
  80. package/build/src/components/KYCElements/WelcomeTemplate.js.map +1 -0
  81. package/build/src/components/KYCExample.d.ts.map +1 -0
  82. package/build/src/components/KYCExample.js.map +1 -0
  83. package/build/src/components/KYCFlow.d.ts.map +1 -0
  84. package/build/src/components/KYCFlow.js.map +1 -0
  85. package/build/src/components/NativeCameraView.d.ts.map +1 -0
  86. package/build/src/components/NativeCameraView.js.map +1 -0
  87. package/build/src/components/OverLay/IdCard.d.ts.map +1 -0
  88. package/build/src/components/OverLay/IdCard.js.map +1 -0
  89. package/build/src/components/OverLay/SelfieOverlay.d.ts.map +1 -0
  90. package/build/src/components/OverLay/SelfieOverlay.js.map +1 -0
  91. package/build/src/components/OverLay/StepOverlay.d.ts.map +1 -0
  92. package/build/src/components/OverLay/StepOverlay.js.map +1 -0
  93. package/build/src/components/OverLay/type.d.ts.map +1 -0
  94. package/build/src/components/OverLay/type.js.map +1 -0
  95. package/build/src/components/ProgressIndicator.d.ts.map +1 -0
  96. package/build/src/components/ProgressIndicator.js.map +1 -0
  97. package/build/src/components/SelfieCapture.d.ts.map +1 -0
  98. package/build/src/components/SelfieCapture.js.map +1 -0
  99. package/build/src/components/SimpleExample.d.ts.map +1 -0
  100. package/build/src/components/SimpleExample.js.map +1 -0
  101. package/build/src/components/Svgs/GpsIcon.d.ts.map +1 -0
  102. package/build/src/components/Svgs/GpsIcon.js.map +1 -0
  103. package/build/src/components/Svgs/Schield.d.ts.map +1 -0
  104. package/build/src/components/Svgs/Schield.js.map +1 -0
  105. package/build/src/components/Svgs/frontSelfieIcon.d.ts.map +1 -0
  106. package/build/src/components/Svgs/frontSelfieIcon.js.map +1 -0
  107. package/build/src/components/Svgs/scanningLine.d.ts.map +1 -0
  108. package/build/src/components/Svgs/scanningLine.js.map +1 -0
  109. package/build/src/components/Svgs/sideSelfieIcon.d.ts.map +1 -0
  110. package/build/src/components/Svgs/sideSelfieIcon.js.map +1 -0
  111. package/build/{components → src/components}/TemplateKYCExample.d.ts +1 -0
  112. package/build/src/components/TemplateKYCExample.d.ts.map +1 -0
  113. package/build/{components → src/components}/TemplateKYCExample.js +2 -2
  114. package/build/src/components/TemplateKYCExample.js.map +1 -0
  115. package/build/{components → src/components}/TemplateKYCFlowRefactored.d.ts +1 -0
  116. package/build/src/components/TemplateKYCFlowRefactored.d.ts.map +1 -0
  117. package/build/{components → src/components}/TemplateKYCFlowRefactored.js +2 -2
  118. package/build/src/components/TemplateKYCFlowRefactored.js.map +1 -0
  119. package/build/src/components/VisionCameraView.d.ts.map +1 -0
  120. package/build/src/components/VisionCameraView.js.map +1 -0
  121. package/build/src/components/example/CameraCaptureEx.d.ts.map +1 -0
  122. package/build/src/components/example/CameraCaptureEx.js.map +1 -0
  123. package/build/src/components/example/CameraCaptureExAdvanced.d.ts.map +1 -0
  124. package/build/src/components/example/CameraCaptureExAdvanced.js.map +1 -0
  125. package/build/src/components/example/CameraCaptureExScan.d.ts.map +1 -0
  126. package/build/src/components/example/CameraCaptureExScan.js.map +1 -0
  127. package/build/src/components/example/CameraCaptureExSimple.d.ts.map +1 -0
  128. package/build/src/components/example/CameraCaptureExSimple.js.map +1 -0
  129. package/build/src/components/example/DynamicTemplateExample.d.ts.map +1 -0
  130. package/build/src/components/example/DynamicTemplateExample.js.map +1 -0
  131. package/build/src/components/example/OrientationVideoExample.d.ts.map +1 -0
  132. package/build/src/components/example/OrientationVideoExample.js.map +1 -0
  133. package/build/src/components/example/SelfieCaptureEx.d.ts.map +1 -0
  134. package/build/src/components/example/SelfieCaptureEx.js.map +1 -0
  135. package/build/src/components/ui/Button.d.ts.map +1 -0
  136. package/build/src/components/ui/Button.js.map +1 -0
  137. package/build/src/components/ui/ButtonExample.d.ts.map +1 -0
  138. package/build/src/components/ui/ButtonExample.js.map +1 -0
  139. package/build/src/components/ui/ButtonStyles.d.ts.map +1 -0
  140. package/build/src/components/ui/ButtonStyles.js.map +1 -0
  141. package/build/src/config/KYCConfig.d.ts.map +1 -0
  142. package/build/src/config/KYCConfig.js.map +1 -0
  143. package/build/src/config/KYCConfigs.d.ts.map +1 -0
  144. package/build/src/config/KYCConfigs.js.map +1 -0
  145. package/build/src/config/allowedDomains.d.ts.map +1 -0
  146. package/build/src/config/allowedDomains.js.map +1 -0
  147. package/build/src/config/countriesData.d.ts.map +1 -0
  148. package/build/src/config/countriesData.js.map +1 -0
  149. package/build/src/config/region_mapping.d.ts.map +1 -0
  150. package/build/src/config/region_mapping.js.map +1 -0
  151. package/build/src/hooks/useI18n.d.ts.map +1 -0
  152. package/build/src/hooks/useI18n.js.map +1 -0
  153. package/build/src/hooks/useKYC.d.ts.map +1 -0
  154. package/build/src/hooks/useKYC.js.map +1 -0
  155. package/build/src/hooks/useKYCFlow.d.ts.map +1 -0
  156. package/build/src/hooks/useKYCFlow.js.map +1 -0
  157. package/build/src/hooks/useLocation.d.ts.map +1 -0
  158. package/build/src/hooks/useLocation.js.map +1 -0
  159. package/build/src/hooks/useOrientationVideo.d.ts.map +1 -0
  160. package/build/src/hooks/useOrientationVideo.js.map +1 -0
  161. package/build/src/hooks/useRealtimeVerifier.d.ts.map +1 -0
  162. package/build/src/hooks/useRealtimeVerifier.js.map +1 -0
  163. package/build/{hooks → src/hooks}/useTemplateKYCFlow.d.ts +2 -1
  164. package/build/src/hooks/useTemplateKYCFlow.d.ts.map +1 -0
  165. package/build/{hooks → src/hooks}/useTemplateKYCFlow.js +25 -7
  166. package/build/src/hooks/useTemplateKYCFlow.js.map +1 -0
  167. package/build/src/hooks/useTemplateLoader.d.ts.map +1 -0
  168. package/build/src/hooks/useTemplateLoader.js.map +1 -0
  169. package/build/{i18n → src/i18n}/en/index.d.ts.map +1 -1
  170. package/build/src/i18n/en/index.js.map +1 -0
  171. package/build/{i18n → src/i18n}/fr/index.d.ts.map +1 -1
  172. package/build/src/i18n/fr/index.js.map +1 -0
  173. package/build/src/i18n/index.d.ts.map +1 -0
  174. package/build/src/i18n/index.js.map +1 -0
  175. package/build/src/i18n/types.d.ts.map +1 -0
  176. package/build/src/i18n/types.js.map +1 -0
  177. package/build/src/i18n/usage-example.d.ts.map +1 -0
  178. package/build/src/i18n/usage-example.js.map +1 -0
  179. package/build/src/index.d.ts.map +1 -0
  180. package/build/src/index.js.map +1 -0
  181. package/build/src/modules/api/CardAuthentification.d.ts.map +1 -0
  182. package/build/src/modules/api/CardAuthentification.js.map +1 -0
  183. package/build/src/modules/api/KYCService.d.ts.map +1 -0
  184. package/build/{modules → src/modules}/api/KYCService.js +2 -2
  185. package/build/src/modules/api/KYCService.js.map +1 -0
  186. package/build/src/modules/api/SelfieVerification.d.ts.map +1 -0
  187. package/build/src/modules/api/SelfieVerification.js.map +1 -0
  188. package/build/src/modules/api/TemplateService.d.ts.map +1 -0
  189. package/build/src/modules/api/TemplateService.js.map +1 -0
  190. package/build/src/modules/api/backendApi.d.ts.map +1 -0
  191. package/build/src/modules/api/backendApi.js.map +1 -0
  192. package/build/src/modules/api/types.d.ts.map +1 -0
  193. package/build/src/modules/api/types.js.map +1 -0
  194. package/build/src/modules/camera/NativeCameraModule.d.ts.map +1 -0
  195. package/build/src/modules/camera/NativeCameraModule.js.map +1 -0
  196. package/build/src/modules/camera/UnifiedCameraModule.d.ts.map +1 -0
  197. package/build/src/modules/camera/UnifiedCameraModule.js.map +1 -0
  198. package/build/src/modules/camera/VisionCameraModule.d.ts.map +1 -0
  199. package/build/src/modules/camera/VisionCameraModule.js.map +1 -0
  200. package/build/src/modules/camera/VisionCameraModule.web.d.ts.map +1 -0
  201. package/build/src/modules/camera/VisionCameraModule.web.js.map +1 -0
  202. package/build/src/modules/camera/index.d.ts.map +1 -0
  203. package/build/src/modules/camera/index.js.map +1 -0
  204. package/build/src/stores/kycStore.d.ts.map +1 -0
  205. package/build/src/stores/kycStore.js.map +1 -0
  206. package/build/src/types/KYC.types.d.ts.map +1 -0
  207. package/build/src/types/KYC.types.js.map +1 -0
  208. package/build/src/types/env.types.d.ts.map +1 -0
  209. package/build/src/types/env.types.js.map +1 -0
  210. package/build/src/utils/cropByObb.d.ts.map +1 -0
  211. package/build/src/utils/cropByObb.js.map +1 -0
  212. package/build/src/utils/deviceDetection.d.ts.map +1 -0
  213. package/build/src/utils/deviceDetection.js.map +1 -0
  214. package/build/src/utils/get-document-type-info.d.ts.map +1 -0
  215. package/build/src/utils/get-document-type-info.js.map +1 -0
  216. package/build/src/utils/logger.d.ts.map +1 -0
  217. package/build/src/utils/logger.js.map +1 -0
  218. package/build/src/utils/pathToBase64.d.ts.map +1 -0
  219. package/build/src/utils/pathToBase64.js.map +1 -0
  220. package/build/src/utils/platformAlert.d.ts.map +1 -0
  221. package/build/src/utils/platformAlert.js.map +1 -0
  222. package/build/src/utils/remove-duplicate.d.ts.map +1 -0
  223. package/build/src/utils/remove-duplicate.js.map +1 -0
  224. package/build/src/utils/template-transformer.d.ts.map +1 -0
  225. package/build/src/utils/template-transformer.js.map +1 -0
  226. package/build/src/web/WebKYCEntry.d.ts.map +1 -0
  227. package/build/{web → src/web}/WebKYCEntry.js +57 -40
  228. package/build/src/web/WebKYCEntry.js.map +1 -0
  229. package/build/src/web/index.d.ts.map +1 -0
  230. package/build/src/web/index.js.map +1 -0
  231. package/package.json +1 -1
  232. package/src/components/KYCElements/WelcomeTemplate.tsx +9 -0
  233. package/src/components/TemplateKYCExample.tsx +3 -1
  234. package/src/components/TemplateKYCFlowRefactored.tsx +3 -0
  235. package/src/hooks/useTemplateKYCFlow.tsx +27 -5
  236. package/src/modules/api/KYCService.ts +2 -2
  237. package/src/web/WebKYCEntry.tsx +59 -48
  238. package/build/App.d.ts.map +0 -1
  239. package/build/App.js.map +0 -1
  240. package/build/TransfergratisSdk.types.d.ts.map +0 -1
  241. package/build/TransfergratisSdk.types.js.map +0 -1
  242. package/build/TransfergratisSdkModule.d.ts.map +0 -1
  243. package/build/TransfergratisSdkModule.js.map +0 -1
  244. package/build/TransfergratisSdkModule.web.d.ts.map +0 -1
  245. package/build/TransfergratisSdkModule.web.js.map +0 -1
  246. package/build/TransfergratisSdkView.d.ts.map +0 -1
  247. package/build/TransfergratisSdkView.js.map +0 -1
  248. package/build/TransfergratisSdkView.web.d.ts.map +0 -1
  249. package/build/TransfergratisSdkView.web.js.map +0 -1
  250. package/build/api/axios.d.ts.map +0 -1
  251. package/build/api/axios.js.map +0 -1
  252. package/build/components/Camera/index.d.ts.map +0 -1
  253. package/build/components/Camera/index.js.map +0 -1
  254. package/build/components/Camera/index.web.d.ts.map +0 -1
  255. package/build/components/Camera/index.web.js.map +0 -1
  256. package/build/components/Camera/types.d.ts.map +0 -1
  257. package/build/components/Camera/types.js.map +0 -1
  258. package/build/components/ConfigurableKYCFlow.d.ts.map +0 -1
  259. package/build/components/ConfigurableKYCFlow.js.map +0 -1
  260. package/build/components/CustomCameraExample.d.ts.map +0 -1
  261. package/build/components/CustomCameraExample.js.map +0 -1
  262. package/build/components/EnhancedCameraView.d.ts.map +0 -1
  263. package/build/components/EnhancedCameraView.js.map +0 -1
  264. package/build/components/EnhancedCameraView.web.d.ts.map +0 -1
  265. package/build/components/EnhancedCameraView.web.js.map +0 -1
  266. package/build/components/FileUpload.d.ts.map +0 -1
  267. package/build/components/FileUpload.js.map +0 -1
  268. package/build/components/KYCElementRenderer.d.ts.map +0 -1
  269. package/build/components/KYCElementRenderer.js.map +0 -1
  270. package/build/components/KYCElements/AdditionalDocumentsTemplate.d.ts.map +0 -1
  271. package/build/components/KYCElements/AdditionalDocumentsTemplate.js.map +0 -1
  272. package/build/components/KYCElements/CameraCapture.d.ts.map +0 -1
  273. package/build/components/KYCElements/CameraCapture.js.map +0 -1
  274. package/build/components/KYCElements/CompletionStep.d.ts.map +0 -1
  275. package/build/components/KYCElements/CompletionStep.js.map +0 -1
  276. package/build/components/KYCElements/CountrySelection.d.ts.map +0 -1
  277. package/build/components/KYCElements/CountrySelection.js.map +0 -1
  278. package/build/components/KYCElements/CountrySelectionTemplate.d.ts.map +0 -1
  279. package/build/components/KYCElements/CountrySelectionTemplate.js.map +0 -1
  280. package/build/components/KYCElements/DocumentTypeSelection.d.ts.map +0 -1
  281. package/build/components/KYCElements/DocumentTypeSelection.js.map +0 -1
  282. package/build/components/KYCElements/EmailVerificationTemplate.d.ts.map +0 -1
  283. package/build/components/KYCElements/EmailVerificationTemplate.js.map +0 -1
  284. package/build/components/KYCElements/FileUpload.d.ts.map +0 -1
  285. package/build/components/KYCElements/FileUpload.js.map +0 -1
  286. package/build/components/KYCElements/FileUploadTemplate.d.ts.map +0 -1
  287. package/build/components/KYCElements/FileUploadTemplate.js.map +0 -1
  288. package/build/components/KYCElements/IDCardCapture.d.ts.map +0 -1
  289. package/build/components/KYCElements/IDCardCapture.js.map +0 -1
  290. package/build/components/KYCElements/InitializationStep.d.ts.map +0 -1
  291. package/build/components/KYCElements/InitializationStep.js.map +0 -1
  292. package/build/components/KYCElements/LocationCaptureTemplate.d.ts.map +0 -1
  293. package/build/components/KYCElements/LocationCaptureTemplate.js.map +0 -1
  294. package/build/components/KYCElements/OrientationVideoCapture.d.ts.map +0 -1
  295. package/build/components/KYCElements/OrientationVideoCapture.js.map +0 -1
  296. package/build/components/KYCElements/OrientationVideoCaptureEnhanced.d.ts.map +0 -1
  297. package/build/components/KYCElements/OrientationVideoCaptureEnhanced.js.map +0 -1
  298. package/build/components/KYCElements/OrientationVideoCaptureFinal.d.ts.map +0 -1
  299. package/build/components/KYCElements/OrientationVideoCaptureFinal.js.map +0 -1
  300. package/build/components/KYCElements/PersonalInformationTemplate.d.ts.map +0 -1
  301. package/build/components/KYCElements/PersonalInformationTemplate.js.map +0 -1
  302. package/build/components/KYCElements/PhoneVerificationTemplate.d.ts.map +0 -1
  303. package/build/components/KYCElements/PhoneVerificationTemplate.js.map +0 -1
  304. package/build/components/KYCElements/ReviewSubmitTemplate.d.ts.map +0 -1
  305. package/build/components/KYCElements/ReviewSubmitTemplate.js.map +0 -1
  306. package/build/components/KYCElements/SelfieCapture.d.ts.map +0 -1
  307. package/build/components/KYCElements/SelfieCapture.js.map +0 -1
  308. package/build/components/KYCElements/SelfieCaptureTemplate.d.ts.map +0 -1
  309. package/build/components/KYCElements/SelfieCaptureTemplate.js.map +0 -1
  310. package/build/components/KYCElements/VerificationProgressTemplate.d.ts.map +0 -1
  311. package/build/components/KYCElements/VerificationProgressTemplate.js.map +0 -1
  312. package/build/components/KYCElements/VerificationStep.d.ts.map +0 -1
  313. package/build/components/KYCElements/VerificationStep.js.map +0 -1
  314. package/build/components/KYCElements/WelcomeTemplate.d.ts.map +0 -1
  315. package/build/components/KYCElements/WelcomeTemplate.js.map +0 -1
  316. package/build/components/KYCExample.d.ts.map +0 -1
  317. package/build/components/KYCExample.js.map +0 -1
  318. package/build/components/KYCFlow.d.ts.map +0 -1
  319. package/build/components/KYCFlow.js.map +0 -1
  320. package/build/components/NativeCameraView.d.ts.map +0 -1
  321. package/build/components/NativeCameraView.js.map +0 -1
  322. package/build/components/OverLay/IdCard.d.ts.map +0 -1
  323. package/build/components/OverLay/IdCard.js.map +0 -1
  324. package/build/components/OverLay/SelfieOverlay.d.ts.map +0 -1
  325. package/build/components/OverLay/SelfieOverlay.js.map +0 -1
  326. package/build/components/OverLay/StepOverlay.d.ts.map +0 -1
  327. package/build/components/OverLay/StepOverlay.js.map +0 -1
  328. package/build/components/OverLay/type.d.ts.map +0 -1
  329. package/build/components/OverLay/type.js.map +0 -1
  330. package/build/components/ProgressIndicator.d.ts.map +0 -1
  331. package/build/components/ProgressIndicator.js.map +0 -1
  332. package/build/components/SelfieCapture.d.ts.map +0 -1
  333. package/build/components/SelfieCapture.js.map +0 -1
  334. package/build/components/SimpleExample.d.ts.map +0 -1
  335. package/build/components/SimpleExample.js.map +0 -1
  336. package/build/components/Svgs/GpsIcon.d.ts.map +0 -1
  337. package/build/components/Svgs/GpsIcon.js.map +0 -1
  338. package/build/components/Svgs/Schield.d.ts.map +0 -1
  339. package/build/components/Svgs/Schield.js.map +0 -1
  340. package/build/components/Svgs/frontSelfieIcon.d.ts.map +0 -1
  341. package/build/components/Svgs/frontSelfieIcon.js.map +0 -1
  342. package/build/components/Svgs/scanningLine.d.ts.map +0 -1
  343. package/build/components/Svgs/scanningLine.js.map +0 -1
  344. package/build/components/Svgs/sideSelfieIcon.d.ts.map +0 -1
  345. package/build/components/Svgs/sideSelfieIcon.js.map +0 -1
  346. package/build/components/TemplateKYCExample.d.ts.map +0 -1
  347. package/build/components/TemplateKYCExample.js.map +0 -1
  348. package/build/components/TemplateKYCFlowRefactored.d.ts.map +0 -1
  349. package/build/components/TemplateKYCFlowRefactored.js.map +0 -1
  350. package/build/components/VisionCameraView.d.ts.map +0 -1
  351. package/build/components/VisionCameraView.js.map +0 -1
  352. package/build/components/example/CameraCaptureEx.d.ts.map +0 -1
  353. package/build/components/example/CameraCaptureEx.js.map +0 -1
  354. package/build/components/example/CameraCaptureExAdvanced.d.ts.map +0 -1
  355. package/build/components/example/CameraCaptureExAdvanced.js.map +0 -1
  356. package/build/components/example/CameraCaptureExScan.d.ts.map +0 -1
  357. package/build/components/example/CameraCaptureExScan.js.map +0 -1
  358. package/build/components/example/CameraCaptureExSimple.d.ts.map +0 -1
  359. package/build/components/example/CameraCaptureExSimple.js.map +0 -1
  360. package/build/components/example/DynamicTemplateExample.d.ts.map +0 -1
  361. package/build/components/example/DynamicTemplateExample.js.map +0 -1
  362. package/build/components/example/OrientationVideoExample.d.ts.map +0 -1
  363. package/build/components/example/OrientationVideoExample.js.map +0 -1
  364. package/build/components/example/SelfieCaptureEx.d.ts.map +0 -1
  365. package/build/components/example/SelfieCaptureEx.js.map +0 -1
  366. package/build/components/ui/Button.d.ts.map +0 -1
  367. package/build/components/ui/Button.js.map +0 -1
  368. package/build/components/ui/ButtonExample.d.ts.map +0 -1
  369. package/build/components/ui/ButtonExample.js.map +0 -1
  370. package/build/components/ui/ButtonStyles.d.ts.map +0 -1
  371. package/build/components/ui/ButtonStyles.js.map +0 -1
  372. package/build/config/KYCConfig.d.ts.map +0 -1
  373. package/build/config/KYCConfig.js.map +0 -1
  374. package/build/config/KYCConfigs.d.ts.map +0 -1
  375. package/build/config/KYCConfigs.js.map +0 -1
  376. package/build/config/allowedDomains.d.ts.map +0 -1
  377. package/build/config/allowedDomains.js.map +0 -1
  378. package/build/config/countriesData.d.ts.map +0 -1
  379. package/build/config/countriesData.js.map +0 -1
  380. package/build/config/region_mapping.d.ts.map +0 -1
  381. package/build/config/region_mapping.js.map +0 -1
  382. package/build/hooks/useI18n.d.ts.map +0 -1
  383. package/build/hooks/useI18n.js.map +0 -1
  384. package/build/hooks/useKYC.d.ts.map +0 -1
  385. package/build/hooks/useKYC.js.map +0 -1
  386. package/build/hooks/useKYCFlow.d.ts.map +0 -1
  387. package/build/hooks/useKYCFlow.js.map +0 -1
  388. package/build/hooks/useLocation.d.ts.map +0 -1
  389. package/build/hooks/useLocation.js.map +0 -1
  390. package/build/hooks/useOrientationVideo.d.ts.map +0 -1
  391. package/build/hooks/useOrientationVideo.js.map +0 -1
  392. package/build/hooks/useRealtimeVerifier.d.ts.map +0 -1
  393. package/build/hooks/useRealtimeVerifier.js.map +0 -1
  394. package/build/hooks/useTemplateKYCFlow.d.ts.map +0 -1
  395. package/build/hooks/useTemplateKYCFlow.js.map +0 -1
  396. package/build/hooks/useTemplateLoader.d.ts.map +0 -1
  397. package/build/hooks/useTemplateLoader.js.map +0 -1
  398. package/build/i18n/en/index.js.map +0 -1
  399. package/build/i18n/fr/index.js.map +0 -1
  400. package/build/i18n/index.d.ts.map +0 -1
  401. package/build/i18n/index.js.map +0 -1
  402. package/build/i18n/types.d.ts.map +0 -1
  403. package/build/i18n/types.js.map +0 -1
  404. package/build/i18n/usage-example.d.ts.map +0 -1
  405. package/build/i18n/usage-example.js.map +0 -1
  406. package/build/index.d.ts.map +0 -1
  407. package/build/index.js.map +0 -1
  408. package/build/modules/api/CardAuthentification.d.ts.map +0 -1
  409. package/build/modules/api/CardAuthentification.js.map +0 -1
  410. package/build/modules/api/KYCService.d.ts.map +0 -1
  411. package/build/modules/api/KYCService.js.map +0 -1
  412. package/build/modules/api/SelfieVerification.d.ts.map +0 -1
  413. package/build/modules/api/SelfieVerification.js.map +0 -1
  414. package/build/modules/api/TemplateService.d.ts.map +0 -1
  415. package/build/modules/api/TemplateService.js.map +0 -1
  416. package/build/modules/api/backendApi.d.ts.map +0 -1
  417. package/build/modules/api/backendApi.js.map +0 -1
  418. package/build/modules/api/types.d.ts.map +0 -1
  419. package/build/modules/api/types.js.map +0 -1
  420. package/build/modules/camera/NativeCameraModule.d.ts.map +0 -1
  421. package/build/modules/camera/NativeCameraModule.js.map +0 -1
  422. package/build/modules/camera/UnifiedCameraModule.d.ts.map +0 -1
  423. package/build/modules/camera/UnifiedCameraModule.js.map +0 -1
  424. package/build/modules/camera/VisionCameraModule.d.ts.map +0 -1
  425. package/build/modules/camera/VisionCameraModule.js.map +0 -1
  426. package/build/modules/camera/VisionCameraModule.web.d.ts.map +0 -1
  427. package/build/modules/camera/VisionCameraModule.web.js.map +0 -1
  428. package/build/modules/camera/index.d.ts.map +0 -1
  429. package/build/modules/camera/index.js.map +0 -1
  430. package/build/stores/kycStore.d.ts.map +0 -1
  431. package/build/stores/kycStore.js.map +0 -1
  432. package/build/types/KYC.types.d.ts.map +0 -1
  433. package/build/types/KYC.types.js.map +0 -1
  434. package/build/types/env.types.d.ts.map +0 -1
  435. package/build/types/env.types.js.map +0 -1
  436. package/build/utils/cropByObb.d.ts.map +0 -1
  437. package/build/utils/cropByObb.js.map +0 -1
  438. package/build/utils/deviceDetection.d.ts.map +0 -1
  439. package/build/utils/deviceDetection.js.map +0 -1
  440. package/build/utils/get-document-type-info.d.ts.map +0 -1
  441. package/build/utils/get-document-type-info.js.map +0 -1
  442. package/build/utils/logger.d.ts.map +0 -1
  443. package/build/utils/logger.js.map +0 -1
  444. package/build/utils/pathToBase64.d.ts.map +0 -1
  445. package/build/utils/pathToBase64.js.map +0 -1
  446. package/build/utils/platformAlert.d.ts.map +0 -1
  447. package/build/utils/platformAlert.js.map +0 -1
  448. package/build/utils/remove-duplicate.d.ts.map +0 -1
  449. package/build/utils/remove-duplicate.js.map +0 -1
  450. package/build/utils/template-transformer.d.ts.map +0 -1
  451. package/build/utils/template-transformer.js.map +0 -1
  452. package/build/web/WebKYCEntry.d.ts.map +0 -1
  453. package/build/web/WebKYCEntry.js.map +0 -1
  454. package/build/web/index.d.ts.map +0 -1
  455. package/build/web/index.js.map +0 -1
  456. /package/build/{App.d.ts → src/App.d.ts} +0 -0
  457. /package/build/{App.js → src/App.js} +0 -0
  458. /package/build/{TransfergratisSdk.types.d.ts → src/TransfergratisSdk.types.d.ts} +0 -0
  459. /package/build/{TransfergratisSdk.types.js → src/TransfergratisSdk.types.js} +0 -0
  460. /package/build/{TransfergratisSdkModule.d.ts → src/TransfergratisSdkModule.d.ts} +0 -0
  461. /package/build/{TransfergratisSdkModule.js → src/TransfergratisSdkModule.js} +0 -0
  462. /package/build/{TransfergratisSdkModule.web.d.ts → src/TransfergratisSdkModule.web.d.ts} +0 -0
  463. /package/build/{TransfergratisSdkModule.web.js → src/TransfergratisSdkModule.web.js} +0 -0
  464. /package/build/{TransfergratisSdkView.d.ts → src/TransfergratisSdkView.d.ts} +0 -0
  465. /package/build/{TransfergratisSdkView.js → src/TransfergratisSdkView.js} +0 -0
  466. /package/build/{TransfergratisSdkView.web.d.ts → src/TransfergratisSdkView.web.d.ts} +0 -0
  467. /package/build/{TransfergratisSdkView.web.js → src/TransfergratisSdkView.web.js} +0 -0
  468. /package/build/{api → src/api}/axios.d.ts +0 -0
  469. /package/build/{api → src/api}/axios.js +0 -0
  470. /package/build/{components → src/components}/Camera/index.d.ts +0 -0
  471. /package/build/{components → src/components}/Camera/index.js +0 -0
  472. /package/build/{components → src/components}/Camera/index.web.d.ts +0 -0
  473. /package/build/{components → src/components}/Camera/index.web.js +0 -0
  474. /package/build/{components → src/components}/Camera/types.d.ts +0 -0
  475. /package/build/{components → src/components}/Camera/types.js +0 -0
  476. /package/build/{components → src/components}/ConfigurableKYCFlow.d.ts +0 -0
  477. /package/build/{components → src/components}/ConfigurableKYCFlow.js +0 -0
  478. /package/build/{components → src/components}/CustomCameraExample.d.ts +0 -0
  479. /package/build/{components → src/components}/CustomCameraExample.js +0 -0
  480. /package/build/{components → src/components}/EnhancedCameraView.d.ts +0 -0
  481. /package/build/{components → src/components}/EnhancedCameraView.js +0 -0
  482. /package/build/{components → src/components}/EnhancedCameraView.web.d.ts +0 -0
  483. /package/build/{components → src/components}/EnhancedCameraView.web.js +0 -0
  484. /package/build/{components → src/components}/FileUpload.d.ts +0 -0
  485. /package/build/{components → src/components}/FileUpload.js +0 -0
  486. /package/build/{components → src/components}/KYCElementRenderer.d.ts +0 -0
  487. /package/build/{components → src/components}/KYCElementRenderer.js +0 -0
  488. /package/build/{components → src/components}/KYCElements/AdditionalDocumentsTemplate.d.ts +0 -0
  489. /package/build/{components → src/components}/KYCElements/AdditionalDocumentsTemplate.js +0 -0
  490. /package/build/{components → src/components}/KYCElements/CameraCapture.d.ts +0 -0
  491. /package/build/{components → src/components}/KYCElements/CameraCapture.js +0 -0
  492. /package/build/{components → src/components}/KYCElements/CompletionStep.d.ts +0 -0
  493. /package/build/{components → src/components}/KYCElements/CompletionStep.js +0 -0
  494. /package/build/{components → src/components}/KYCElements/CountrySelection.d.ts +0 -0
  495. /package/build/{components → src/components}/KYCElements/CountrySelection.js +0 -0
  496. /package/build/{components → src/components}/KYCElements/CountrySelectionTemplate.d.ts +0 -0
  497. /package/build/{components → src/components}/KYCElements/CountrySelectionTemplate.js +0 -0
  498. /package/build/{components → src/components}/KYCElements/DocumentTypeSelection.d.ts +0 -0
  499. /package/build/{components → src/components}/KYCElements/DocumentTypeSelection.js +0 -0
  500. /package/build/{components → src/components}/KYCElements/EmailVerificationTemplate.d.ts +0 -0
  501. /package/build/{components → src/components}/KYCElements/EmailVerificationTemplate.js +0 -0
  502. /package/build/{components → src/components}/KYCElements/FileUpload.d.ts +0 -0
  503. /package/build/{components → src/components}/KYCElements/FileUpload.js +0 -0
  504. /package/build/{components → src/components}/KYCElements/FileUploadTemplate.d.ts +0 -0
  505. /package/build/{components → src/components}/KYCElements/FileUploadTemplate.js +0 -0
  506. /package/build/{components → src/components}/KYCElements/IDCardCapture.d.ts +0 -0
  507. /package/build/{components → src/components}/KYCElements/IDCardCapture.js +0 -0
  508. /package/build/{components → src/components}/KYCElements/InitializationStep.d.ts +0 -0
  509. /package/build/{components → src/components}/KYCElements/InitializationStep.js +0 -0
  510. /package/build/{components → src/components}/KYCElements/LocationCaptureTemplate.d.ts +0 -0
  511. /package/build/{components → src/components}/KYCElements/LocationCaptureTemplate.js +0 -0
  512. /package/build/{components → src/components}/KYCElements/OrientationVideoCapture.d.ts +0 -0
  513. /package/build/{components → src/components}/KYCElements/OrientationVideoCapture.js +0 -0
  514. /package/build/{components → src/components}/KYCElements/OrientationVideoCaptureEnhanced.d.ts +0 -0
  515. /package/build/{components → src/components}/KYCElements/OrientationVideoCaptureEnhanced.js +0 -0
  516. /package/build/{components → src/components}/KYCElements/OrientationVideoCaptureFinal.d.ts +0 -0
  517. /package/build/{components → src/components}/KYCElements/OrientationVideoCaptureFinal.js +0 -0
  518. /package/build/{components → src/components}/KYCElements/PersonalInformationTemplate.d.ts +0 -0
  519. /package/build/{components → src/components}/KYCElements/PersonalInformationTemplate.js +0 -0
  520. /package/build/{components → src/components}/KYCElements/PhoneVerificationTemplate.d.ts +0 -0
  521. /package/build/{components → src/components}/KYCElements/PhoneVerificationTemplate.js +0 -0
  522. /package/build/{components → src/components}/KYCElements/ReviewSubmitTemplate.d.ts +0 -0
  523. /package/build/{components → src/components}/KYCElements/ReviewSubmitTemplate.js +0 -0
  524. /package/build/{components → src/components}/KYCElements/SelfieCapture.d.ts +0 -0
  525. /package/build/{components → src/components}/KYCElements/SelfieCapture.js +0 -0
  526. /package/build/{components → src/components}/KYCElements/SelfieCaptureTemplate.d.ts +0 -0
  527. /package/build/{components → src/components}/KYCElements/SelfieCaptureTemplate.js +0 -0
  528. /package/build/{components → src/components}/KYCElements/VerificationProgressTemplate.d.ts +0 -0
  529. /package/build/{components → src/components}/KYCElements/VerificationProgressTemplate.js +0 -0
  530. /package/build/{components → src/components}/KYCElements/VerificationStep.d.ts +0 -0
  531. /package/build/{components → src/components}/KYCElements/VerificationStep.js +0 -0
  532. /package/build/{components → src/components}/KYCElements/WelcomeTemplate.d.ts +0 -0
  533. /package/build/{components → src/components}/KYCExample.d.ts +0 -0
  534. /package/build/{components → src/components}/KYCExample.js +0 -0
  535. /package/build/{components → src/components}/KYCFlow.d.ts +0 -0
  536. /package/build/{components → src/components}/KYCFlow.js +0 -0
  537. /package/build/{components → src/components}/NativeCameraView.d.ts +0 -0
  538. /package/build/{components → src/components}/NativeCameraView.js +0 -0
  539. /package/build/{components → src/components}/OverLay/IdCard.d.ts +0 -0
  540. /package/build/{components → src/components}/OverLay/IdCard.js +0 -0
  541. /package/build/{components → src/components}/OverLay/SelfieOverlay.d.ts +0 -0
  542. /package/build/{components → src/components}/OverLay/SelfieOverlay.js +0 -0
  543. /package/build/{components → src/components}/OverLay/StepOverlay.d.ts +0 -0
  544. /package/build/{components → src/components}/OverLay/StepOverlay.js +0 -0
  545. /package/build/{components → src/components}/OverLay/type.d.ts +0 -0
  546. /package/build/{components → src/components}/OverLay/type.js +0 -0
  547. /package/build/{components → src/components}/ProgressIndicator.d.ts +0 -0
  548. /package/build/{components → src/components}/ProgressIndicator.js +0 -0
  549. /package/build/{components → src/components}/SelfieCapture.d.ts +0 -0
  550. /package/build/{components → src/components}/SelfieCapture.js +0 -0
  551. /package/build/{components → src/components}/SimpleExample.d.ts +0 -0
  552. /package/build/{components → src/components}/SimpleExample.js +0 -0
  553. /package/build/{components → src/components}/Svgs/GpsIcon.d.ts +0 -0
  554. /package/build/{components → src/components}/Svgs/GpsIcon.js +0 -0
  555. /package/build/{components → src/components}/Svgs/Schield.d.ts +0 -0
  556. /package/build/{components → src/components}/Svgs/Schield.js +0 -0
  557. /package/build/{components → src/components}/Svgs/frontSelfieIcon.d.ts +0 -0
  558. /package/build/{components → src/components}/Svgs/frontSelfieIcon.js +0 -0
  559. /package/build/{components → src/components}/Svgs/scanningLine.d.ts +0 -0
  560. /package/build/{components → src/components}/Svgs/scanningLine.js +0 -0
  561. /package/build/{components → src/components}/Svgs/sideSelfieIcon.d.ts +0 -0
  562. /package/build/{components → src/components}/Svgs/sideSelfieIcon.js +0 -0
  563. /package/build/{components → src/components}/VisionCameraView.d.ts +0 -0
  564. /package/build/{components → src/components}/VisionCameraView.js +0 -0
  565. /package/build/{components → src/components}/example/CameraCaptureEx.d.ts +0 -0
  566. /package/build/{components → src/components}/example/CameraCaptureEx.js +0 -0
  567. /package/build/{components → src/components}/example/CameraCaptureExAdvanced.d.ts +0 -0
  568. /package/build/{components → src/components}/example/CameraCaptureExAdvanced.js +0 -0
  569. /package/build/{components → src/components}/example/CameraCaptureExScan.d.ts +0 -0
  570. /package/build/{components → src/components}/example/CameraCaptureExScan.js +0 -0
  571. /package/build/{components → src/components}/example/CameraCaptureExSimple.d.ts +0 -0
  572. /package/build/{components → src/components}/example/CameraCaptureExSimple.js +0 -0
  573. /package/build/{components → src/components}/example/DynamicTemplateExample.d.ts +0 -0
  574. /package/build/{components → src/components}/example/DynamicTemplateExample.js +0 -0
  575. /package/build/{components → src/components}/example/OrientationVideoExample.d.ts +0 -0
  576. /package/build/{components → src/components}/example/OrientationVideoExample.js +0 -0
  577. /package/build/{components → src/components}/example/SelfieCaptureEx.d.ts +0 -0
  578. /package/build/{components → src/components}/example/SelfieCaptureEx.js +0 -0
  579. /package/build/{components → src/components}/ui/Button.d.ts +0 -0
  580. /package/build/{components → src/components}/ui/Button.js +0 -0
  581. /package/build/{components → src/components}/ui/ButtonExample.d.ts +0 -0
  582. /package/build/{components → src/components}/ui/ButtonExample.js +0 -0
  583. /package/build/{components → src/components}/ui/ButtonStyles.d.ts +0 -0
  584. /package/build/{components → src/components}/ui/ButtonStyles.js +0 -0
  585. /package/build/{config → src/config}/KYCConfig.d.ts +0 -0
  586. /package/build/{config → src/config}/KYCConfig.js +0 -0
  587. /package/build/{config → src/config}/KYCConfigs.d.ts +0 -0
  588. /package/build/{config → src/config}/KYCConfigs.js +0 -0
  589. /package/build/{config → src/config}/allowedDomains.d.ts +0 -0
  590. /package/build/{config → src/config}/allowedDomains.js +0 -0
  591. /package/build/{config → src/config}/countriesData.d.ts +0 -0
  592. /package/build/{config → src/config}/countriesData.js +0 -0
  593. /package/build/{config → src/config}/region_mapping.d.ts +0 -0
  594. /package/build/{config → src/config}/region_mapping.js +0 -0
  595. /package/build/{hooks → src/hooks}/useI18n.d.ts +0 -0
  596. /package/build/{hooks → src/hooks}/useI18n.js +0 -0
  597. /package/build/{hooks → src/hooks}/useKYC.d.ts +0 -0
  598. /package/build/{hooks → src/hooks}/useKYC.js +0 -0
  599. /package/build/{hooks → src/hooks}/useKYCFlow.d.ts +0 -0
  600. /package/build/{hooks → src/hooks}/useKYCFlow.js +0 -0
  601. /package/build/{hooks → src/hooks}/useLocation.d.ts +0 -0
  602. /package/build/{hooks → src/hooks}/useLocation.js +0 -0
  603. /package/build/{hooks → src/hooks}/useOrientationVideo.d.ts +0 -0
  604. /package/build/{hooks → src/hooks}/useOrientationVideo.js +0 -0
  605. /package/build/{hooks → src/hooks}/useRealtimeVerifier.d.ts +0 -0
  606. /package/build/{hooks → src/hooks}/useRealtimeVerifier.js +0 -0
  607. /package/build/{hooks → src/hooks}/useTemplateLoader.d.ts +0 -0
  608. /package/build/{hooks → src/hooks}/useTemplateLoader.js +0 -0
  609. /package/build/{i18n → src/i18n}/en/index.d.ts +0 -0
  610. /package/build/{i18n → src/i18n}/en/index.js +0 -0
  611. /package/build/{i18n → src/i18n}/fr/index.d.ts +0 -0
  612. /package/build/{i18n → src/i18n}/fr/index.js +0 -0
  613. /package/build/{i18n → src/i18n}/index.d.ts +0 -0
  614. /package/build/{i18n → src/i18n}/index.js +0 -0
  615. /package/build/{i18n → src/i18n}/types.d.ts +0 -0
  616. /package/build/{i18n → src/i18n}/types.js +0 -0
  617. /package/build/{i18n → src/i18n}/usage-example.d.ts +0 -0
  618. /package/build/{i18n → src/i18n}/usage-example.js +0 -0
  619. /package/build/{index.d.ts → src/index.d.ts} +0 -0
  620. /package/build/{index.js → src/index.js} +0 -0
  621. /package/build/{modules → src/modules}/api/CardAuthentification.d.ts +0 -0
  622. /package/build/{modules → src/modules}/api/CardAuthentification.js +0 -0
  623. /package/build/{modules → src/modules}/api/KYCService.d.ts +0 -0
  624. /package/build/{modules → src/modules}/api/SelfieVerification.d.ts +0 -0
  625. /package/build/{modules → src/modules}/api/SelfieVerification.js +0 -0
  626. /package/build/{modules → src/modules}/api/TemplateService.d.ts +0 -0
  627. /package/build/{modules → src/modules}/api/TemplateService.js +0 -0
  628. /package/build/{modules → src/modules}/api/backendApi.d.ts +0 -0
  629. /package/build/{modules → src/modules}/api/backendApi.js +0 -0
  630. /package/build/{modules → src/modules}/api/types.d.ts +0 -0
  631. /package/build/{modules → src/modules}/api/types.js +0 -0
  632. /package/build/{modules → src/modules}/camera/NativeCameraModule.d.ts +0 -0
  633. /package/build/{modules → src/modules}/camera/NativeCameraModule.js +0 -0
  634. /package/build/{modules → src/modules}/camera/UnifiedCameraModule.d.ts +0 -0
  635. /package/build/{modules → src/modules}/camera/UnifiedCameraModule.js +0 -0
  636. /package/build/{modules → src/modules}/camera/VisionCameraModule.d.ts +0 -0
  637. /package/build/{modules → src/modules}/camera/VisionCameraModule.js +0 -0
  638. /package/build/{modules → src/modules}/camera/VisionCameraModule.web.d.ts +0 -0
  639. /package/build/{modules → src/modules}/camera/VisionCameraModule.web.js +0 -0
  640. /package/build/{modules → src/modules}/camera/index.d.ts +0 -0
  641. /package/build/{modules → src/modules}/camera/index.js +0 -0
  642. /package/build/{stores → src/stores}/kycStore.d.ts +0 -0
  643. /package/build/{stores → src/stores}/kycStore.js +0 -0
  644. /package/build/{types → src/types}/KYC.types.d.ts +0 -0
  645. /package/build/{types → src/types}/KYC.types.js +0 -0
  646. /package/build/{types → src/types}/env.types.d.ts +0 -0
  647. /package/build/{types → src/types}/env.types.js +0 -0
  648. /package/build/{utils → src/utils}/cropByObb.d.ts +0 -0
  649. /package/build/{utils → src/utils}/cropByObb.js +0 -0
  650. /package/build/{utils → src/utils}/deviceDetection.d.ts +0 -0
  651. /package/build/{utils → src/utils}/deviceDetection.js +0 -0
  652. /package/build/{utils → src/utils}/get-document-type-info.d.ts +0 -0
  653. /package/build/{utils → src/utils}/get-document-type-info.js +0 -0
  654. /package/build/{utils → src/utils}/logger.d.ts +0 -0
  655. /package/build/{utils → src/utils}/logger.js +0 -0
  656. /package/build/{utils → src/utils}/pathToBase64.d.ts +0 -0
  657. /package/build/{utils → src/utils}/pathToBase64.js +0 -0
  658. /package/build/{utils → src/utils}/platformAlert.d.ts +0 -0
  659. /package/build/{utils → src/utils}/platformAlert.js +0 -0
  660. /package/build/{utils → src/utils}/remove-duplicate.d.ts +0 -0
  661. /package/build/{utils → src/utils}/remove-duplicate.js +0 -0
  662. /package/build/{utils → src/utils}/template-transformer.d.ts +0 -0
  663. /package/build/{utils → src/utils}/template-transformer.js +0 -0
  664. /package/build/{web → src/web}/WebKYCEntry.d.ts +0 -0
  665. /package/build/{web → src/web}/index.d.ts +0 -0
  666. /package/build/{web → src/web}/index.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useKYCFlow.js","sourceRoot":"","sources":["../../../src/hooks/useKYCFlow.ts"],"names":[],"mappings":"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","sourcesContent":["import { useState, useCallback, useMemo } from 'react';\nimport {\n KYCFlowConfig,\n KYCFlowState,\n KYCFlowActions,\n UseKYCFlowReturn\n} from '../types/KYC.types';\n\nexport const useKYCFlow = (): UseKYCFlowReturn => {\n const [state, setState] = useState<KYCFlowState>({\n config: {\n id: '',\n name: '',\n description: '',\n version: '1.0.0',\n elements: [],\n settings: {\n allowBackNavigation: true,\n showProgressBar: true,\n showStepNumbers: true,\n autoAdvance: false,\n enableRetry: true,\n maxRetries: 3,\n },\n styling: {\n primaryColor: '#4CAF50',\n secondaryColor: '#2196F3',\n backgroundColor: '#f8f9fa',\n textColor: '#333',\n borderRadius: 8,\n },\n localization: {\n language: 'fr',\n translations: {},\n },\n },\n currentElementIndex: 0,\n completedElements: [],\n elementData: {},\n errors: {},\n isProcessing: false,\n });\n\n // Élément actuel\n const currentElement = useMemo(() => {\n if (state.config.elements.length === 0) return null;\n return state.config.elements[state.currentElementIndex] || null;\n }, [state.config.elements, state.currentElementIndex]);\n\n // Progression\n const progress = useMemo(() => {\n if (state.config.elements.length === 0) return 0;\n return (state.currentElementIndex / (state.config.elements.length - 1)) * 100;\n }, [state.currentElementIndex, state.config.elements.length]);\n\n // Navigation - validation simple sans dépendances complexes\n const canGoNext = useMemo(() => {\n if (!currentElement) return false;\n if (state.isProcessing) return false;\n \n // Validation simple\n const data = state.elementData[currentElement.id];\n const validation = currentElement.validation;\n \n if (validation?.required && (!data || (typeof data === 'string' && data.trim() === ''))) {\n return false;\n }\n \n return state.currentElementIndex < state.config.elements.length - 1;\n }, [currentElement, state.isProcessing, state.currentElementIndex, state.config.elements.length, state.elementData]);\n\n const canGoPrevious = useMemo(() => {\n return state.config.settings.allowBackNavigation && \n state.currentElementIndex > 0 && \n !state.isProcessing;\n }, [state.config.settings.allowBackNavigation, state.currentElementIndex, state.isProcessing]);\n\n const isComplete = useMemo(() => {\n return state.currentElementIndex === state.config.elements.length - 1 &&\n state.completedElements.length === state.config.elements.length;\n }, [state.currentElementIndex, state.config.elements.length, state.completedElements.length]);\n\n // Actions\n const actions: KYCFlowActions = {\n initializeFlow: useCallback((config: KYCFlowConfig) => {\n setState({\n config,\n currentElementIndex: 0,\n completedElements: [],\n elementData: {},\n errors: {},\n isProcessing: false,\n });\n }, []),\n\n nextElement: useCallback(() => {\n const currentEl = currentElement;\n if (currentEl) {\n setState(prev => ({\n ...prev,\n completedElements: [...prev.completedElements, currentEl.id],\n currentElementIndex: prev.currentElementIndex + 1,\n }));\n }\n }, [currentElement]),\n\n previousElement: useCallback(() => {\n setState(prev => ({\n ...prev,\n currentElementIndex: prev.currentElementIndex - 1,\n }));\n }, []),\n\n goToElement: useCallback((elementId: string) => {\n const elementIndex = state.config.elements.findIndex(el => el.id === elementId);\n if (elementIndex !== -1) {\n setState(prev => ({\n ...prev,\n currentElementIndex: elementIndex,\n }));\n }\n }, [state.config.elements]),\n\n updateElementData: useCallback((elementId: string, data: any) => {\n setState(prev => ({\n ...prev,\n elementData: { ...prev.elementData, [elementId]: data },\n }));\n }, []),\n\n validateElement: useCallback((elementId: string) => {\n const element = state.config.elements.find(el => el.id === elementId);\n if (!element) return false;\n\n const data = state.elementData[elementId];\n const validation = element.validation;\n\n if (!validation) return true;\n\n // Validation requise\n if (validation.required && (!data || (typeof data === 'string' && data.trim() === ''))) {\n setState(prev => ({\n ...prev,\n errors: { ...prev.errors, [elementId]: 'Ce champ est requis' }\n }));\n return false;\n }\n\n // Validation de longueur\n if (validation.minLength && data && data.length < validation.minLength) {\n setState(prev => ({\n ...prev,\n errors: { ...prev.errors, [elementId]: `Minimum ${validation.minLength} caractères` }\n }));\n return false;\n }\n\n if (validation.maxLength && data && data.length > validation.maxLength) {\n setState(prev => ({\n ...prev,\n errors: { ...prev.errors, [elementId]: `Maximum ${validation.maxLength} caractères` }\n }));\n return false;\n }\n\n // Validation par pattern\n if (validation.pattern && data && !new RegExp(validation.pattern).test(data)) {\n setState(prev => ({\n ...prev,\n errors: { ...prev.errors, [elementId]: 'Format invalide' }\n }));\n return false;\n }\n\n // Validation personnalisée\n if (validation.customValidator && data) {\n const result = validation.customValidator(data);\n if (typeof result === 'string') {\n setState(prev => ({\n ...prev,\n errors: { ...prev.errors, [elementId]: result }\n }));\n return false;\n }\n if (!result) {\n setState(prev => ({\n ...prev,\n errors: { ...prev.errors, [elementId]: 'Validation échouée' }\n }));\n return false;\n }\n }\n\n // Effacer l'erreur si la validation réussit\n if (state.errors[elementId]) {\n const newErrors = { ...state.errors };\n delete newErrors[elementId];\n setState(prev => ({\n ...prev,\n errors: newErrors\n }));\n }\n\n return true;\n }, [state.config.elements, state.elementData, state.errors]),\n\n submitFlow: useCallback(async () => {\n setState(prev => ({ ...prev, isProcessing: true }));\n\n try {\n console.log('Submitting KYC flow:', state.elementData);\n await new Promise(resolve => setTimeout(resolve, 2000));\n \n setState(prev => ({\n ...prev,\n isProcessing: false,\n }));\n } catch (error) {\n setState(prev => ({\n ...prev,\n isProcessing: false,\n errors: { ...prev.errors, submit: 'Erreur lors de la soumission' }\n }));\n }\n }, [state.elementData]),\n\n resetFlow: useCallback(() => {\n setState(prev => ({\n ...prev,\n currentElementIndex: 0,\n completedElements: [],\n elementData: {},\n errors: {},\n isProcessing: false,\n }));\n }, []),\n };\n\n return {\n state,\n actions,\n currentElement,\n progress,\n canGoNext,\n canGoPrevious,\n isComplete,\n };\n}; "]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocation.d.ts","sourceRoot":"","sources":["../../../src/hooks/useLocation.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,kBAAkB,EAAE,MAAM,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACvD,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,QAAA,MAAM,WAAW,GAAI,UAAS,kBAAuB,KAAG,iBAsLvD,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocation.js","sourceRoot":"","sources":["../../../src/hooks/useLocation.ts"],"names":[],"mappings":"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","sourcesContent":["import { useState, useEffect, useCallback } from 'react';\nimport * as Location from 'expo-location';\n\nexport interface LocationData {\n latitude: number;\n longitude: number;\n accuracy: number | null;\n altitude: number | null;\n heading: number | null;\n speed: number | null;\n timestamp: number;\n}\n\nexport interface LocationError {\n code: string;\n message: string;\n}\n\nexport interface UseLocationOptions {\n enableHighAccuracy?: boolean;\n timeInterval?: number;\n distanceInterval?: number;\n requestPermissions?: boolean;\n}\n\nexport interface UseLocationReturn {\n location: LocationData | null;\n error: LocationError | null;\n loading: boolean;\n requestPermission: () => Promise<boolean>;\n getCurrentLocation: () => Promise<LocationData | null>;\n startLocationUpdates: () => Promise<void>;\n stopLocationUpdates: () => void;\n hasPermission: boolean;\n}\n\nconst useLocation = (options: UseLocationOptions = {}): UseLocationReturn => {\n const {\n enableHighAccuracy = true,\n timeInterval = 10000,\n distanceInterval = 10,\n requestPermissions = true,\n } = options;\n\n const [location, setLocation] = useState<LocationData | null>(null);\n const [error, setError] = useState<LocationError | null>(null);\n const [loading, setLoading] = useState(false);\n const [hasPermission, setHasPermission] = useState(false);\n const [locationSubscription, setLocationSubscription] = useState<Location.LocationSubscription | null>(null);\n\n // Check and request permissions\n const checkPermissions = useCallback(async () => {\n try {\n const { status } = await Location.getForegroundPermissionsAsync();\n const hasPermission = status === Location.PermissionStatus.GRANTED;\n setHasPermission(hasPermission);\n return hasPermission;\n } catch (err) {\n console.error('Error checking location permissions:', err);\n return false;\n }\n }, []);\n\n const requestPermission = useCallback(async (): Promise<boolean> => {\n try {\n setLoading(true);\n setError(null);\n \n const { status } = await Location.requestForegroundPermissionsAsync();\n const hasPermission = status === Location.PermissionStatus.GRANTED;\n \n setHasPermission(hasPermission);\n \n if (!hasPermission) {\n setError({\n code: 'PERMISSION_DENIED',\n message: 'Location permission denied',\n });\n }\n \n return hasPermission;\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : 'Unknown error';\n setError({\n code: 'PERMISSION_ERROR',\n message: errorMessage,\n });\n return false;\n } finally {\n setLoading(false);\n }\n }, []);\n\n // Get current location once\n const getCurrentLocation = useCallback(async (): Promise<LocationData | null> => {\n try {\n setLoading(true);\n setError(null);\n\n if (!hasPermission) {\n const permissionGranted = await requestPermission();\n if (!permissionGranted) {\n return null;\n }\n }\n\n const currentLocation = await Location.getCurrentPositionAsync({\n accuracy: enableHighAccuracy ? Location.Accuracy.High : Location.Accuracy.Balanced,\n });\n\n const locationData: LocationData = {\n latitude: currentLocation.coords.latitude,\n longitude: currentLocation.coords.longitude,\n accuracy: currentLocation.coords.accuracy,\n altitude: currentLocation.coords.altitude,\n heading: currentLocation.coords.heading,\n speed: currentLocation.coords.speed,\n timestamp: currentLocation.timestamp,\n };\n\n setLocation(locationData);\n return locationData;\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : 'Unknown error';\n setError({\n code: 'LOCATION_ERROR',\n message: errorMessage,\n });\n return null;\n } finally {\n setLoading(false);\n }\n }, [hasPermission, enableHighAccuracy, requestPermission]);\n\n // Start continuous location updates\n const startLocationUpdates = useCallback(async () => {\n try {\n setLoading(true);\n setError(null);\n\n if (!hasPermission) {\n const permissionGranted = await requestPermission();\n if (!permissionGranted) {\n return;\n }\n }\n\n // Stop any existing subscription\n if (locationSubscription) {\n locationSubscription.remove();\n }\n\n const subscription = await Location.watchPositionAsync(\n {\n accuracy: enableHighAccuracy ? Location.Accuracy.High : Location.Accuracy.Balanced,\n timeInterval,\n distanceInterval,\n },\n (newLocation) => {\n const locationData: LocationData = {\n latitude: newLocation.coords.latitude,\n longitude: newLocation.coords.longitude,\n accuracy: newLocation.coords.accuracy,\n altitude: newLocation.coords.altitude,\n heading: newLocation.coords.heading,\n speed: newLocation.coords.speed,\n timestamp: newLocation.timestamp,\n };\n setLocation(locationData);\n }\n );\n\n setLocationSubscription(subscription);\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : 'Unknown error';\n setError({\n code: 'LOCATION_UPDATE_ERROR',\n message: errorMessage,\n });\n } finally {\n setLoading(false);\n }\n }, [hasPermission, enableHighAccuracy, timeInterval, distanceInterval, requestPermission, locationSubscription]);\n\n // Stop location updates\n const stopLocationUpdates = useCallback(() => {\n if (locationSubscription) {\n locationSubscription.remove();\n setLocationSubscription(null);\n }\n }, [locationSubscription]);\n\n // Initialize permissions on mount\n useEffect(() => {\n if (requestPermissions) {\n checkPermissions();\n }\n }, [requestPermissions, checkPermissions]);\n\n // Cleanup subscription on unmount\n useEffect(() => {\n return () => {\n if (locationSubscription) {\n locationSubscription.remove();\n }\n };\n }, [locationSubscription]);\n\n return {\n location,\n error,\n loading,\n requestPermission,\n getCurrentLocation,\n startLocationUpdates,\n stopLocationUpdates,\n hasPermission,\n };\n};\n\nexport default useLocation; "]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOrientationVideo.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOrientationVideo.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EAGvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,OAAO,EAAE,uBAAuB,CAAC;IACjC,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,eAAO,MAAM,mBAAmB,GAC9B,SAAS,OAAO,CAAC,sBAAsB,CAAC,EACxC,MAAK,cAA6B,KACjC,yBA8HF,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOrientationVideo.js","sourceRoot":"","sources":["../../../src/hooks/useOrientationVideo.ts"],"names":[],"mappings":"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","sourcesContent":["import { useState, useCallback } from 'react';\nimport { \n OrientationVideoState, \n OrientationVideoActions, \n OrientationVideoConfig,\n OrientationVideoResult,\n OrientationType \n} from '../types/KYC.types';\nimport { KycEnvironment } from '../types/env.types';\nimport kycService from '../modules/api/KYCService';\n\nexport interface UseOrientationVideoReturn {\n state: OrientationVideoState;\n actions: OrientationVideoActions;\n config: OrientationVideoConfig;\n}\n\nexport const useOrientationVideo = (\n config?: Partial<OrientationVideoConfig>,\n env: KycEnvironment = 'PRODUCTION'\n): UseOrientationVideoReturn => {\n const defaultConfig: OrientationVideoConfig = {\n duration: 10,\n orientations: ['center', 'left', 'right'],\n instructions: {\n center: 'Look straight ahead at the camera',\n left: 'Turn your head to the left',\n right: 'Turn your head to the right',\n },\n showPreview: true,\n allowRetake: true,\n maxRetakes: 3,\n quality: 0.8,\n aspectRatio: 16 / 9,\n };\n\n const finalConfig = { ...defaultConfig, ...config };\n\n const [state, setState] = useState<OrientationVideoState>({\n isRecording: false,\n currentOrientation: null,\n recordedVideo: null,\n processingResult: null,\n isProcessing: false,\n error: null,\n retakeCount: 0,\n });\n\n const startRecording = useCallback(() => {\n setState(prev => ({ \n ...prev, \n isRecording: true, \n error: null,\n currentOrientation: 'center' // Start with center orientation\n }));\n }, []);\n\n const stopRecording = useCallback(() => {\n setState(prev => ({ ...prev, isRecording: false }));\n }, []);\n\n const processVideo = useCallback(async (): Promise<OrientationVideoResult> => {\n if (!state.recordedVideo || state.isProcessing) {\n throw new Error('No video to process or already processing');\n }\n\n setState(prev => ({ ...prev, isProcessing: true, error: null }));\n\n try {\n const result = await kycService.processOrientationVideo(state.recordedVideo, env);\n \n if (result.success && result.data) {\n setState(prev => ({ \n ...prev, \n processingResult: result.data || null,\n isProcessing: false \n }));\n return result.data;\n } else {\n const errorMessage = result.message || 'Processing failed';\n setState(prev => ({ \n ...prev, \n isProcessing: false,\n error: errorMessage \n }));\n throw new Error(errorMessage);\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';\n setState(prev => ({ \n ...prev, \n isProcessing: false,\n error: errorMessage \n }));\n throw error;\n }\n }, [state.recordedVideo, state.isProcessing, env]);\n\n const retake = useCallback(() => {\n if (state.retakeCount >= finalConfig.maxRetakes) {\n throw new Error('Maximum retakes reached');\n }\n\n setState(prev => ({ \n ...prev, \n recordedVideo: null,\n processingResult: null,\n error: null,\n retakeCount: prev.retakeCount + 1 \n }));\n }, [state.retakeCount, finalConfig.maxRetakes]);\n\n const reset = useCallback(() => {\n setState({\n isRecording: false,\n currentOrientation: null,\n recordedVideo: null,\n processingResult: null,\n isProcessing: false,\n error: null,\n retakeCount: 0,\n });\n }, []);\n\n const setCurrentOrientation = useCallback((orientation: OrientationType) => {\n setState(prev => ({ ...prev, currentOrientation: orientation }));\n }, []);\n\n // const setRecordedVideo = useCallback((videoUri: string) => {\n // setState(prev => ({ ...prev, recordedVideo: videoUri }));\n // }, []);\n\n const actions: OrientationVideoActions = {\n startRecording,\n stopRecording,\n processVideo,\n retake,\n reset,\n setCurrentOrientation,\n };\n\n return {\n state,\n actions,\n config: finalConfig,\n };\n};\n\nexport default useOrientationVideo; "]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRealtimeVerifier.d.ts","sourceRoot":"","sources":["../../../src/hooks/useRealtimeVerifier.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAChG,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/D,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,cAAc,EACtB,MAAM,CAAC,EAAE,sBAAsB,GAC9B;IAAE,KAAK,EAAE,qBAAqB,CAAC;IAAC,QAAQ,EAAE,wBAAwB,CAAA;CAAE,CA+FtE;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRealtimeVerifier.js","sourceRoot":"","sources":["../../../src/hooks/useRealtimeVerifier.ts"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nexport type CaptureFunction = () => Promise<{ success: boolean; uri?: string; error?: string }>;\nexport type VerifyFunction = (uri: string) => Promise<boolean>;\n\nexport interface RealtimeVerifierConfig {\n intervalMs?: number; // default 5000\n maxAttempts?: number; // default Infinity\n stopOnError?: boolean; // default false\n}\n\nexport interface RealtimeVerifierState {\n isRunning: boolean;\n attempts: number;\n lastError?: string | null;\n verifiedUri?: string | null;\n}\n\nexport interface RealtimeVerifierControls {\n start: () => void;\n stop: () => void;\n reset: () => void;\n}\n\nexport function useRealtimeVerifier(\n capture: CaptureFunction,\n verify: VerifyFunction,\n config?: RealtimeVerifierConfig,\n): { state: RealtimeVerifierState; controls: RealtimeVerifierControls } {\n const { intervalMs = 5000, maxAttempts = Number.POSITIVE_INFINITY, stopOnError = false } = config || {};\n\n const [state, setState] = useState<RealtimeVerifierState>({\n isRunning: false,\n attempts: 0,\n lastError: null,\n verifiedUri: null,\n });\n\n const timerRef = useRef<ReturnType<typeof setInterval> | null>(null);\n const runningRef = useRef<boolean>(false);\n const attemptsRef = useRef<number>(0);\n\n const tick = useCallback(async () => {\n if (!runningRef.current) return;\n if (attemptsRef.current >= maxAttempts) {\n runningRef.current = false;\n if (timerRef.current) {\n clearInterval(timerRef.current);\n timerRef.current = null;\n }\n setState(prev => ({ ...prev, isRunning: false }));\n return;\n }\n\n attemptsRef.current += 1;\n setState(prev => ({ ...prev, attempts: attemptsRef.current }));\n\n try {\n const captureResult = await capture();\n if (!captureResult.success || !captureResult.uri) {\n if (stopOnError) {\n throw new Error(captureResult.error || 'Capture failed');\n }\n setState(prev => ({ ...prev, lastError: captureResult.error || 'Capture failed' }));\n return;\n }\n\n const ok = await verify(captureResult.uri);\n if (ok) {\n runningRef.current = false;\n if (timerRef.current) {\n clearInterval(timerRef.current);\n timerRef.current = null;\n }\n setState(prev => ({ ...prev, isRunning: false, verifiedUri: captureResult.uri, lastError: null }));\n }\n } catch (err: any) {\n const message = err?.message || 'Unknown error';\n if (stopOnError) {\n runningRef.current = false;\n if (timerRef.current) {\n clearInterval(timerRef.current);\n timerRef.current = null;\n }\n setState(prev => ({ ...prev, isRunning: false, lastError: message }));\n return;\n }\n setState(prev => ({ ...prev, lastError: message }));\n }\n }, [capture, verify, maxAttempts, stopOnError]);\n\n const start = useCallback(() => {\n if (runningRef.current) return;\n runningRef.current = true;\n setState(prev => ({ ...prev, isRunning: true, lastError: null }));\n // Fire immediately, then every interval\n tick();\n timerRef.current = setInterval(tick, intervalMs);\n }, [intervalMs, tick]);\n\n const stop = useCallback(() => {\n runningRef.current = false;\n if (timerRef.current) {\n clearInterval(timerRef.current);\n timerRef.current = null;\n }\n setState(prev => ({ ...prev, isRunning: false }));\n }, []);\n\n const reset = useCallback(() => {\n attemptsRef.current = 0;\n setState({ isRunning: false, attempts: 0, lastError: null, verifiedUri: null });\n }, []);\n\n useEffect(() => {\n return () => {\n if (timerRef.current) {\n clearInterval(timerRef.current);\n }\n };\n }, []);\n\n return { state, controls: { start, stop, reset } };\n}\n\nexport default useRealtimeVerifier;\n\n\n"]}
@@ -36,6 +36,7 @@ interface TemplateKYCFlowProviderProps {
36
36
  documentType: string;
37
37
  region?: string;
38
38
  };
39
+ referenceId?: string;
39
40
  onSessionSave?: (sessionId: string) => void;
40
41
  }
41
42
  export declare const TemplateKYCFlowProvider: React.FC<TemplateKYCFlowProviderProps>;
@@ -44,6 +45,6 @@ export declare const useTemplateKYCFlow: (template: KYCTemplate, onComplete?: (d
44
45
  code: string;
45
46
  documentType: string;
46
47
  region?: string;
47
- }, onSessionSave?: (sessionId: string) => void) => UseTemplateReturn;
48
+ }, referenceId?: string, onSessionSave?: (sessionId: string) => void) => UseTemplateReturn;
48
49
  export {};
49
50
  //# sourceMappingURL=useTemplateKYCFlow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTemplateKYCFlow.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTemplateKYCFlow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA6D,SAAS,EAAqB,MAAM,OAAO,CAAC;AACvH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAA6C,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAClK,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQpD,UAAU,0BAA0B;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;IACzB,gBAAgB,EAAE,GAAG,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;IACrF,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,GAAG,EAAE,cAAc,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,UAAU,4BAA4B;IACpC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iGAAiG;IACjG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6GAA6G;IAC7G,oBAAoB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAsB1E,CAAC;AAGF,eAAO,MAAM,yBAAyB,QAAO,0BAM5C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,UAAU,WAAW,EACrB,aAAa,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,EAC9C,UAAU,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,WAAW,MAAM,IAAI,EACrB,kBAAiB,MAAa,EAC9B,SAAS,MAAM,EACf,MAAK,cAA6B,EAClC,oBAAoB,MAAM,EAC1B,wBAAwB,MAAM,EAC9B,uBAAuB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9E,cAAc,MAAM,EACpB,gBAAgB,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,KAC1C,iBAk+BF,CAAC"}
@@ -5,8 +5,8 @@ import { logger } from '../utils/logger';
5
5
  import { countryMapping } from '../config/region_mapping';
6
6
  import { countryData } from '../config/countriesData';
7
7
  const TemplateKYCFlowContext = createContext(undefined);
8
- export const TemplateKYCFlowProvider = ({ children, template, onComplete, onError, onCancel, initialLanguage = 'en', apiKey, env = 'PRODUCTION', existingSessionId, initialComponentIndex, initialCountryResume, onSessionSave, }) => {
9
- const hookResult = useTemplateKYCFlow(template, onComplete, onError, onCancel, initialLanguage, apiKey, env, existingSessionId, initialComponentIndex, initialCountryResume, onSessionSave);
8
+ export const TemplateKYCFlowProvider = ({ children, template, onComplete, onError, onCancel, initialLanguage = 'en', apiKey, env = 'PRODUCTION', existingSessionId, initialComponentIndex, initialCountryResume, referenceId, onSessionSave, }) => {
9
+ const hookResult = useTemplateKYCFlow(template, onComplete, onError, onCancel, initialLanguage, apiKey, env, existingSessionId, initialComponentIndex, initialCountryResume, referenceId, onSessionSave);
10
10
  return (<TemplateKYCFlowContext.Provider value={hookResult}>
11
11
  {children}
12
12
  </TemplateKYCFlowContext.Provider>);
@@ -19,7 +19,7 @@ export const useTemplateKYCFlowContext = () => {
19
19
  }
20
20
  return context;
21
21
  };
22
- export const useTemplateKYCFlow = (template, onComplete, onError, onCancel, initialLanguage = 'en', apiKey, env = 'PRODUCTION', existingSessionId, initialComponentIndex, initialCountryResume, onSessionSave) => {
22
+ export const useTemplateKYCFlow = (template, onComplete, onError, onCancel, initialLanguage = 'en', apiKey, env = 'PRODUCTION', existingSessionId, initialComponentIndex, initialCountryResume, referenceId, onSessionSave) => {
23
23
  const { setLocale } = useI18n();
24
24
  useEffect(() => {
25
25
  setLocale(initialLanguage);
@@ -450,7 +450,13 @@ export const useTemplateKYCFlow = (template, onComplete, onError, onCancel, init
450
450
  // Build backend-friendly payloads per action
451
451
  const buildPayloadForComponent = useCallback((action, component, rawData, templateId, step) => {
452
452
  console.log('apiKey in buildPayloadForComponent', apiKey);
453
- const base = { template_id: templateId || null, templateId: templateId || null, step: component.order, permissionGranted: true };
453
+ const base = {
454
+ template_id: templateId || null,
455
+ templateId: templateId || null,
456
+ step: component.order,
457
+ permissionGranted: true,
458
+ ...(referenceId ? { reference_id: referenceId } : {}),
459
+ };
454
460
  if (!action) {
455
461
  return base;
456
462
  }
@@ -499,7 +505,7 @@ export const useTemplateKYCFlow = (template, onComplete, onError, onCancel, init
499
505
  }
500
506
  // Default: wrap as metadata
501
507
  return { ...base, metadata: { ...(rawData || {}) } };
502
- }, [state.componentData, apiKey]);
508
+ }, [state.componentData, apiKey, referenceId]);
503
509
  // Ensure the template contains a final review step
504
510
  // console.log('apiKey in useTemplateKYCFlow', apiKey);
505
511
  // Composant actuel (peut être redirigé si on pointe vers Review alors que le flux n'est pas terminé)
@@ -566,13 +572,25 @@ export const useTemplateKYCFlow = (template, onComplete, onError, onCancel, init
566
572
  else {
567
573
  session = await kycService.newSession({ token, apiKey });
568
574
  }
575
+ // Notify session creation/resume as soon as we have an ID.
576
+ // This makes save_session webhook calls more reliable on all runtimes.
577
+ if (onSessionSave && !hasSavedSessionRef.current && session?.session_id) {
578
+ hasSavedSessionRef.current = true;
579
+ onSessionSave(session.session_id);
580
+ }
569
581
  // Align backend flow from step 0 with initialize_session
570
582
  try {
571
583
  const templateId = chooseTemplateId(templateWithReviewAndVerification);
572
584
  await kycService.verificationSession({
573
585
  session_id: session.session_id,
574
586
  step: 0,
575
- data: { template_id: templateId, metadata: { language: initialLanguage } },
587
+ data: {
588
+ template_id: templateId,
589
+ metadata: {
590
+ language: initialLanguage,
591
+ ...(referenceId ? { reference_id: referenceId } : {}),
592
+ },
593
+ },
576
594
  templateId: templateId,
577
595
  token: token,
578
596
  action: 'initialize_session',
@@ -607,7 +625,7 @@ export const useTemplateKYCFlow = (template, onComplete, onError, onCancel, init
607
625
  },
608
626
  }));
609
627
  }
610
- }, [apiKey]);
628
+ }, [apiKey, referenceId, chooseTemplateId, templateWithReviewAndVerification, initialLanguage, state.session.session_id, onSessionSave]);
611
629
  // When user switches device: resume with existingSessionId + initialStep — ensure session is initialized so loadSessionData runs
612
630
  useEffect(() => {
613
631
  if (!existingSessionId || state.session.isInitialized)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTemplateKYCFlow.js","sourceRoot":"","sources":["../../../src/hooks/useTemplateKYCFlow.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useCallback, useMemo, createContext, useContext, ReactNode, useEffect, useRef } from 'react';\nimport { KYCTemplate, TemplateState, TemplateActions, UseTemplateReturn, TemplateComponent, GovernmentDocumentType, VerificationState } from '../types/KYC.types';\nimport { KycEnvironment } from '../types/env.types';\nimport kycService, { authentification, truncateFields } from '../modules/api/KYCService';\nimport useI18n from './useI18n';\nimport { logger } from '../utils/logger';\nimport { countryMapping } from '../config/region_mapping';\nimport { countryData } from '../config/countriesData';\n\n// Context pour le provider\ninterface TemplateKYCFlowContextType {\n state: TemplateState;\n actions: TemplateActions;\n currentComponent: any;\n progress: number;\n canGoNext: boolean;\n canGoPrevious: boolean;\n isComplete: boolean;\n getLocalizedText: (text: { en: string; fr: string;[key: string]: string }) => string;\n initializeSession: () => Promise<void>;\n env: KycEnvironment;\n apiKey?: string;\n}\n\nconst TemplateKYCFlowContext = createContext<TemplateKYCFlowContextType | undefined>(undefined);\n\n// Provider component\ninterface TemplateKYCFlowProviderProps {\n children: ReactNode;\n template: KYCTemplate;\n onComplete?: (data: VerificationState) => void;\n onError?: (error: string) => void;\n onCancel?: () => void;\n initialLanguage?: string;\n apiKey?: string;\n env?: KycEnvironment;\n existingSessionId?: string;\n /** Index in template.components where to resume (0-based). Simple to store in template table. */\n initialComponentIndex?: number;\n /** Pays / type de document depuis l'URL de reprise — évite de dépendre du backend pour afficher les pays. */\n initialCountryResume?: { code: string; documentType: string; region?: string };\n referenceId?: string;\n onSessionSave?: (sessionId: string) => void;\n}\n\nexport const TemplateKYCFlowProvider: React.FC<TemplateKYCFlowProviderProps> = ({\n children,\n template,\n onComplete,\n onError,\n onCancel,\n initialLanguage = 'en',\n apiKey,\n env = 'PRODUCTION',\n existingSessionId,\n initialComponentIndex,\n initialCountryResume,\n referenceId,\n onSessionSave,\n}) => {\n const hookResult = useTemplateKYCFlow(template, onComplete, onError, onCancel, initialLanguage, apiKey, env, existingSessionId, initialComponentIndex, initialCountryResume, referenceId, onSessionSave);\n\n return (\n <TemplateKYCFlowContext.Provider value={hookResult}>\n {children}\n </TemplateKYCFlowContext.Provider>\n );\n};\n\n// Hook pour utiliser le context\nexport const useTemplateKYCFlowContext = (): TemplateKYCFlowContextType => {\n const context = useContext(TemplateKYCFlowContext);\n if (!context) {\n throw new Error('useTemplateKYCFlowContext must be used within a TemplateKYCFlowProvider');\n }\n return context;\n};\n\nexport const useTemplateKYCFlow = (\n template: KYCTemplate,\n onComplete?: (data: VerificationState) => void,\n onError?: (error: string) => void,\n onCancel?: () => void,\n initialLanguage: string = 'en',\n apiKey?: string,\n env: KycEnvironment = 'PRODUCTION',\n existingSessionId?: string,\n initialComponentIndex?: number,\n initialCountryResume?: { code: string; documentType: string; region?: string },\n referenceId?: string,\n onSessionSave?: (sessionId: string) => void,\n): UseTemplateReturn => {\n\n const { setLocale } = useI18n();\n\n useEffect(() => {\n setLocale(initialLanguage);\n }, [initialLanguage, apiKey]);\n\n // Helpers to align SDK steps with backend actions/templates\n const isUiOnlyStep = useCallback((type: TemplateComponent['type']) => {\n return type === 'verification_progress';\n }, [apiKey]);\n\n\n\n const ensureReviewSubmitStep = useCallback((tpl: KYCTemplate): KYCTemplate => {\n const hasReview = tpl.components.some(c => c.type === 'review_submit');\n if (hasReview) return tpl;\n\n const lastOrder = tpl.components.reduce((acc, c) => Math.max(acc, c.order ?? 0), 0);\n const lastId = tpl.components.reduce((acc, c) => Math.max(acc, c.id), 0);\n\n const reviewComponent: TemplateComponent = {\n id: lastId + 1,\n type: 'review_submit',\n order: lastOrder + 1,\n labels: { en: 'Review & Submit', fr: 'Revoir & Soumettre' },\n instructions: { en: 'Confirm and submit', fr: 'Confirmer et soumettre' },\n ui: { buttonText: { en: 'Complete Verification', fr: 'Terminer la vérification' } },\n // @ts-ignore - config unused for review component\n config: {},\n } as TemplateComponent;\n\n return {\n ...tpl,\n components: [...tpl.components, reviewComponent],\n };\n }, [apiKey]);\n\n const ensureVerificationProgressStep = useCallback((tpl: KYCTemplate): KYCTemplate => {\n const hasVerification = tpl.components.some(c => c.type === 'verification_progress');\n if (hasVerification) return tpl;\n\n const lastOrder = tpl.components.reduce((acc, c) => Math.max(acc, c.order ?? 0), 0);\n const lastId = tpl.components.reduce((acc, c) => Math.max(acc, c.id), 0);\n\n const verificationComponent: TemplateComponent = {\n id: lastId + 2,\n type: 'verification_progress',\n order: lastOrder + 2,\n labels: { en: 'Verification', fr: 'Vérification' },\n instructions: { en: 'We\\'re reviewing your documents', fr: 'Nous analysons vos documents' },\n ui: { buttonText: { en: '', fr: '' } },\n // @ts-ignore - config unused for progress component\n config: {},\n } as TemplateComponent;\n\n return {\n ...tpl,\n components: [...tpl.components, verificationComponent],\n };\n }, [apiKey]);\n\n const templateWithReview = useMemo(() => ensureReviewSubmitStep(template), [template, ensureReviewSubmitStep, apiKey]);\n const templateWithReviewAndVerification = useMemo(() => ensureVerificationProgressStep(templateWithReview), [templateWithReview, ensureVerificationProgressStep, apiKey]);\n\n // État initial du flux (initialComponentIndex = index dans template.components pour reprendre au bon composant)\n const buildInitialState = (): TemplateState => {\n let resumeAtIndex = 0;\n let completedComponents: number[] = [];\n let initialComponentData: Record<number, unknown> = {};\n\n logger.log('buildInitialState called', { initialComponentIndex, existingSessionId, initialCountryResume });\n\n if (initialComponentIndex !== undefined && initialComponentIndex >= 0) {\n const maxIndex = templateWithReviewAndVerification.components.length - 1;\n const requestedIndex = Math.min(initialComponentIndex, maxIndex);\n const requestedComponent = templateWithReviewAndVerification.components[requestedIndex];\n\n logger.log('Processing initialComponentIndex (component in template)', {\n initialComponentIndex,\n requestedIndex,\n maxIndex,\n componentType: requestedComponent?.type,\n componentId: requestedComponent?.id,\n });\n\n // Reprendre au composant en cours (id_card, selfie, etc.)\n if (requestedComponent?.type === 'id_card') {\n if (existingSessionId) {\n logger.log('id_card with existing session - staying at id_card');\n resumeAtIndex = requestedIndex;\n if (resumeAtIndex > 0) {\n completedComponents = templateWithReviewAndVerification.components\n .slice(0, resumeAtIndex)\n .map(component => component.id);\n }\n } else {\n const countrySelectionIndex = templateWithReviewAndVerification.components.findIndex(\n c => c.type === 'country_selection'\n );\n logger.log('id_card without session - going back to country_selection', { countrySelectionIndex });\n if (countrySelectionIndex >= 0) {\n resumeAtIndex = countrySelectionIndex;\n if (countrySelectionIndex > 0) {\n completedComponents = templateWithReviewAndVerification.components\n .slice(0, countrySelectionIndex)\n .map(component => component.id);\n }\n } else {\n resumeAtIndex = 0;\n }\n }\n } else if (requestedComponent?.type === 'review_submit') {\n resumeAtIndex = requestedIndex;\n completedComponents = [];\n } else {\n resumeAtIndex = requestedIndex;\n if (resumeAtIndex > 0) {\n completedComponents = templateWithReviewAndVerification.components\n .slice(0, resumeAtIndex)\n .map(component => component.id);\n }\n }\n\n logger.log('Final initial state (resume at component index)', {\n resumeAtIndex,\n completedComponentsCount: completedComponents.length,\n componentAtResume: templateWithReviewAndVerification.components[resumeAtIndex]?.type,\n });\n }\n\n if (initialCountryResume?.code && initialCountryResume?.documentType) {\n const countrySel = templateWithReviewAndVerification.components.find(c => c.type === 'country_selection');\n if (countrySel && countryData[initialCountryResume.code]) {\n initialComponentData[countrySel.id] = {\n code: initialCountryResume.code,\n documentType: initialCountryResume.documentType,\n region: initialCountryResume.region || 'root',\n ...countryData[initialCountryResume.code],\n };\n logger.log('Prefilled country_selection from URL', { code: initialCountryResume.code, documentType: initialCountryResume.documentType });\n }\n }\n\n return {\n template: templateWithReviewAndVerification,\n currentComponentIndex: resumeAtIndex,\n completedComponents: completedComponents,\n componentData: initialComponentData,\n errors: {},\n isProcessing: false,\n currentLanguage: initialLanguage,\n showCustomStepper: true,\n session: {\n session_id: existingSessionId || '',\n token: '',\n isInitialized: false,\n isProcessing: false,\n error: null,\n sessionDataRestored: !existingSessionId || Boolean(initialCountryResume?.code && initialCountryResume?.documentType),\n },\n verification: {\n status: 'idle',\n },\n };\n };\n\n // État du flux\n const [state, setState] = useState<TemplateState>(() => buildInitialState());\n const hasSavedSessionRef = useRef(false);\n \n // Fonction utilitaire pour convertir base64 en data URI pour l'affichage\n const base64ToDataUri = useCallback((base64: string, mimeType: string = 'image/jpeg'): string => {\n // Si c'est déjà une data URI, retourner tel quel\n if (base64.startsWith('data:')) {\n return base64;\n }\n // Sinon, créer une data URI\n return `data:${mimeType};base64,${base64}`;\n }, []);\n\n // Charger les données de session si on reprend une session existante\n useEffect(() => {\n const loadSessionData = async () => {\n // Ne charger que si on a une session existante\n if (!existingSessionId) {\n logger.log('No existingSessionId, skipping data load');\n return;\n }\n\n // Si initialComponentIndex n'est pas défini ou est 0, on ne charge pas (début de session)\n if (initialComponentIndex === undefined || initialComponentIndex === 0) {\n logger.log('initialComponentIndex is 0 or undefined, skipping data load');\n return;\n }\n\n // Attendre que la session soit initialisée\n if (!state.session.isInitialized || !state.session.session_id) {\n logger.log('Session not initialized yet, waiting...', {\n isInitialized: state.session.isInitialized,\n sessionId: state.session.session_id\n });\n return;\n }\n\n try {\n logger.log('Loading session data for resume:', { sessionId: existingSessionId, componentIndex: initialComponentIndex });\n const result = await kycService.getVerificationResult(state.session.session_id);\n const sessionData = result[state.session.session_id]?.data;\n\n if (sessionData) {\n // Restaurer les données des composants depuis la session\n // Utiliser 'as any' car VerificationResult peut avoir des propriétés dynamiques\n const data: any = sessionData;\n const restoredComponentData: Record<number, any> = {};\n\n // Parcourir les composants jusqu'au composant de reprise (inclu) pour restaurer leurs données\n templateWithReviewAndVerification.components\n .slice(0, initialComponentIndex + 1)\n .forEach((component) => {\n // Essayer de restaurer les données selon le type de composant\n if (component.type === 'id_card' || component.type === 'file_upload') {\n // Les documents peuvent être dans différentes structures\n let documents: any = null;\n \n // Chercher dans différentes structures possibles\n if (data.documents) {\n documents = data.documents;\n } else if (data.user_data?.documents) {\n documents = data.user_data.documents;\n } else if (data.document_images) {\n documents = data.document_images;\n }\n\n if (documents) {\n // Convertir les images base64 en format utilisable\n const restoredDocuments: Record<string, any> = {};\n \n Object.keys(documents).forEach((key) => {\n const doc = documents[key];\n if (typeof doc === 'object' && doc !== null) {\n // Si on a un fichier base64, créer une structure avec dir et file\n if (doc.file || doc.base64) {\n const base64Data = doc.file || doc.base64;\n restoredDocuments[key] = {\n dir: base64ToDataUri(base64Data), // Utiliser data URI pour l'affichage\n file: base64Data, // Garder le base64 pour l'envoi\n mrz: doc.mrz || '',\n templatePath: doc.templatePath || '',\n };\n } else {\n // Sinon, garder la structure originale\n restoredDocuments[key] = doc;\n }\n } else if (typeof doc === 'string') {\n // Si c'est directement une string base64\n restoredDocuments[key] = {\n dir: base64ToDataUri(doc),\n file: doc,\n mrz: '',\n templatePath: '',\n };\n }\n });\n\n if (Object.keys(restoredDocuments).length > 0) {\n restoredComponentData[component.id] = restoredDocuments;\n }\n }\n } else if (component.type === 'selfie') {\n // Les selfies peuvent être dans sessionData.selfie_info\n if (data.selfie_info) {\n const selfieData: Record<string, any> = {};\n const selfieInfo: any = data.selfie_info;\n \n // Si selfie_info contient une image\n if (selfieInfo.image) {\n const base64Image = selfieInfo.image;\n selfieData['front'] = {\n dir: base64ToDataUri(base64Image),\n file: base64Image,\n };\n }\n \n // Si on a plusieurs orientations\n if (selfieInfo.orientations) {\n Object.keys(selfieInfo.orientations).forEach((orientation) => {\n const img = selfieInfo.orientations[orientation];\n if (img) {\n selfieData[orientation] = {\n dir: base64ToDataUri(img),\n file: img,\n };\n }\n });\n }\n\n if (Object.keys(selfieData).length > 0) {\n restoredComponentData[component.id] = selfieData;\n }\n }\n } else if (component.type === 'country_selection') {\n // Reconstruire country_selection au format attendu par IDCardCapture / CountrySelectionTemplate (code, documentType, region, regionMapping)\n const meta = data.metadata || data.user_data || data;\n const code = meta.country || meta.country_code || meta.code;\n const documentType = meta.document_type || meta.documentType;\n const region = meta.region;\n if (code && documentType != null) {\n const country = countryData[code];\n const mapping = countryMapping[code as keyof typeof countryMapping];\n if (country) {\n restoredComponentData[component.id] = {\n code,\n ...country,\n documentType,\n region: region || undefined,\n regionMapping: mapping || undefined,\n };\n logger.log('Restored country_selection for resume', { code, documentType, region });\n } else {\n restoredComponentData[component.id] = { code, documentType, region: region || undefined, regionMapping: mapping || undefined };\n }\n } else if (data.metadata || data.user_data) {\n restoredComponentData[component.id] = {\n ...(data.metadata || {}),\n ...(data.user_data || {}),\n };\n }\n } else if (component.type === 'location') {\n // Les données de localisation peuvent être dans metadata\n if (data.metadata?.location || data.user_data?.location) {\n restoredComponentData[component.id] = {\n ...(data.metadata?.location || {}),\n ...(data.user_data?.location || {}),\n };\n }\n }\n });\n\n // Fallback: si pas de country_selection restauré mais on a des documents avec templatePath, déduire code/documentType (ex. \"templates/national_id_CM_front.jpg\")\n const countrySelectionComponent = templateWithReviewAndVerification.components.find(c => c.type === 'country_selection');\n if (countrySelectionComponent && !restoredComponentData[countrySelectionComponent.id] && data.documents) {\n const docs = data.documents as Record<string, { templatePath?: string }>;\n const firstDoc = Object.values(docs).find(d => d?.templatePath);\n const path = firstDoc?.templatePath || '';\n const match = path.match(/([a-z_]+)_([A-Z]{2})(?:_|$)/i) || path.match(/([A-Z]{2})/);\n const code = match ? (match[2] || match[1]).toUpperCase().slice(0, 2) : null;\n const docTypeFromPath = path.match(/(national_id|identity_card|passport|passport_card)/i)?.[1]?.toLowerCase().replace('identity_card', 'national_id') || null;\n if (code && countryData[code]) {\n const documentType = docTypeFromPath || 'national_id';\n const mapping = countryMapping[code as keyof typeof countryMapping];\n const country = countryData[code];\n restoredComponentData[countrySelectionComponent.id] = {\n code,\n ...country,\n documentType,\n region: undefined,\n regionMapping: mapping || undefined,\n };\n logger.log('Restored country_selection from document templatePath', { code, documentType, path });\n }\n }\n\n // Mettre à jour l'état avec les données restaurées\n if (Object.keys(restoredComponentData).length > 0) {\n logger.log('Session data restored - components:', Object.keys(restoredComponentData));\n logger.log('Session data restored - sample data:', truncateFields(restoredComponentData));\n setState(prev => ({\n ...prev,\n componentData: {\n ...prev.componentData,\n ...restoredComponentData,\n },\n session: { ...prev.session, sessionDataRestored: true },\n }));\n logger.log('Component data updated in state');\n } else {\n logger.log('No component data to restore from session');\n setState(prev => ({ ...prev, session: { ...prev.session, sessionDataRestored: true } }));\n }\n } else {\n setState(prev => ({ ...prev, session: { ...prev.session, sessionDataRestored: true } }));\n }\n } catch (error) {\n logger.error('Error loading session data:', truncateFields(error));\n setState(prev => ({ ...prev, session: { ...prev.session, sessionDataRestored: true } }));\n }\n };\n\n loadSessionData();\n }, [existingSessionId, initialComponentIndex, state.session.isInitialized, state.session.session_id, templateWithReviewAndVerification.components, base64ToDataUri]);\n\n // Si l'index pointe vers Review alors que des étapes ne sont pas complétées, ramener à la première étape incomplète\n useEffect(() => {\n const comp = state.template.components[state.currentComponentIndex];\n if (!comp || comp.type !== 'review_submit') return;\n const nonReview = state.template.components.filter(\n c => c.type !== 'review_submit' && c.type !== 'verification_progress'\n );\n if (nonReview.every(c => state.completedComponents.includes(c.id))) return;\n const firstIncomplete = nonReview.find(c => !state.completedComponents.includes(c.id));\n if (!firstIncomplete) return;\n const targetIndex = state.template.components.findIndex(c => c.id === firstIncomplete.id);\n if (targetIndex >= 0 && targetIndex !== state.currentComponentIndex) {\n setState(prev => ({ ...prev, currentComponentIndex: targetIndex }));\n }\n }, [state.currentComponentIndex, state.completedComponents, state.template.components]);\n\n const mapComponentTypeToAction = useCallback((type: TemplateComponent['type']): string | null => {\n switch (type) {\n case 'id_card':\n case 'file_upload':\n return 'document_upload';\n case 'selfie':\n return 'selfie_capture';\n case 'location':\n return 'location_permission';\n case 'review_submit':\n return 'final_submit';\n case 'country_selection':\n // No direct backend action; pack into metadata of next actionable step\n return null;\n case 'welcome':\n // UI-only step, no backend action needed\n return null;\n case 'initialization':\n return 'initialize_session';\n case 'verification_progress':\n return null; // UI-only\n default:\n return null;\n }\n }, []);\n\n const chooseTemplateId = useCallback((tpl: KYCTemplate): string => {\n const types = tpl.components.map(c => c.type);\n const hasLocation = types.includes('location');\n const hasSelfie = types.includes('selfie');\n const hasIdDoc = types.includes('id_card') || types.includes('file_upload');\n // Simple heuristic to map to backend examples\n if (hasLocation && hasSelfie && hasIdDoc) return 'enhanced_id';\n if (hasSelfie && hasIdDoc) return 'standard_passport';\n return 'standard_passport';\n }, [apiKey]);\n\n\n const computeServerStepIndex = useCallback((tpl: KYCTemplate, upToIndex: number): number => {\n // Count actionable steps before the current component (exclude UI-only and country_selection)\n const actionable = tpl.components\n .slice(0, upToIndex)\n .filter(c => !isUiOnlyStep(c.type) && mapComponentTypeToAction(c.type) !== null);\n return actionable.length; // 0-based\n }, [isUiOnlyStep, mapComponentTypeToAction, apiKey]);\n\n // Build backend-friendly payloads per action\n const buildPayloadForComponent = useCallback((action: string | null, component: TemplateComponent, rawData: any, templateId: string, step: number) => {\n console.log('apiKey in buildPayloadForComponent', apiKey);\n\n const base = {\n template_id: templateId || null,\n templateId: templateId || null,\n step: component.order,\n permissionGranted: true,\n ...(referenceId ? { reference_id: referenceId } : {}),\n } as any;\n if (!action) {\n return base;\n }\n // Document upload expects documents; include country_selection in metadata so resume can restore it\n if (action === 'document_upload') {\n const documents: Record<string, any> = {};\n if (rawData && typeof rawData === 'object') {\n Object.keys(rawData).forEach((key) => {\n documents[key] = rawData[key];\n });\n }\n const countryComp = state.template.components.find(c => c.type === 'country_selection');\n const countryDataForPayload = countryComp ? state.componentData[countryComp.id] : null;\n const metadata: Record<string, unknown> = {};\n if (countryDataForPayload?.code) {\n metadata.country = countryDataForPayload.code;\n metadata.document_type = countryDataForPayload.documentType;\n if (countryDataForPayload.region != null) metadata.region = countryDataForPayload.region;\n }\n return {\n ...base,\n documents,\n ...(Object.keys(metadata).length > 0 ? { metadata } : {}),\n };\n }\n\n if (action === 'selfie_capture') {\n const documents: Record<string, any> = {};\n if (rawData && typeof rawData === 'object') {\n\n Object.keys(rawData).forEach((key) => {\n documents[key] = rawData[key];\n });\n }\n const idCardID = Object.keys(state.componentData).find((c: string) => c === \"1\");\n if (idCardID) {\n const _idCardData = state.componentData[idCardID];\n const documentType = _idCardData?.documentType;\n // Map national_id to identity_card for selfie capture\n const mappedDocumentType = documentType === 'national_id' ? 'identity_card' : (documentType as GovernmentDocumentType || 'identity_card');\n return { ...base, documents, country: _idCardData?.country || '', documentType: mappedDocumentType };\n }\n return { ...base, documents };\n }\n\n if (action === 'location_permission') {\n return { ...base, ...({ metadata: rawData || {} }), ...({ permissionGranted: true, }) };\n }\n\n // Default: wrap as metadata\n return { ...base, metadata: { ...(rawData || {}) } };\n }, [state.componentData, apiKey, referenceId]);\n // Ensure the template contains a final review step\n\n // console.log('apiKey in useTemplateKYCFlow', apiKey);\n\n\n // Composant actuel (peut être redirigé si on pointe vers Review alors que le flux n'est pas terminé)\n const currentComponent = useMemo(() => {\n const comp = state.template.components[state.currentComponentIndex] || null;\n if (!comp || comp.type !== 'review_submit') return comp;\n const nonReview = state.template.components.filter(\n c => c.type !== 'review_submit' && c.type !== 'verification_progress'\n );\n const allDone = nonReview.every(c => state.completedComponents.includes(c.id));\n if (allDone) return comp;\n const firstIncomplete = nonReview.find(c => !state.completedComponents.includes(c.id));\n return firstIncomplete || comp;\n }, [state.template.components, state.currentComponentIndex, state.completedComponents, apiKey]);\n\n // Progression du flux (basée sur le composant effectivement affiché)\n const progress = useMemo(() => {\n const idx = currentComponent\n ? state.template.components.findIndex(c => c.id === currentComponent.id)\n : state.currentComponentIndex;\n const i = idx >= 0 ? idx : state.currentComponentIndex;\n return state.template.components.length > 0\n ? ((i + 1) / state.template.components.length) * 100\n : 0;\n }, [currentComponent, state.template.components, state.currentComponentIndex, apiKey]);\n\n // Vérifications de navigation\n const canGoNext = useMemo(() => {\n return state.currentComponentIndex < state.template.components.length - 1;\n }, [state.currentComponentIndex, state.template.components.length, apiKey]);\n\n const canGoPrevious = useMemo(() => {\n return state.currentComponentIndex > 0;\n }, [state.currentComponentIndex, apiKey]);\n\n const isComplete = useMemo(() => {\n const atReview = state.template.components[state.currentComponentIndex]?.type === 'review_submit';\n const nonReviewCount = state.template.components.filter(c => c.type !== 'review_submit').length;\n const completedNonReview = state.completedComponents.length >= nonReviewCount;\n return atReview && completedNonReview;\n }, [state.currentComponentIndex, state.completedComponents.length, state.template.components, apiKey]);\n\n // Fonction pour obtenir le texte localisé\n const getLocalizedText = useCallback((text: { en: string; fr: string;[key: string]: string }): string => {\n return text[state.currentLanguage] || text.en || '';\n }, [state.currentLanguage, apiKey]);\n\n const initializeSession = useCallback(async () => {\n try {\n setState(prev => ({\n ...prev,\n session: {\n ...prev.session,\n isInitialized: false,\n isProcessing: true,\n error: null,\n },\n }));\n logger.log('Initializing session');\n\n const token = apiKey ? undefined : await authentification();\n console.log('token in initializeSession', { token, apiKey },);\n\n // Check if we already have a session ID from URL params (passed via state or prop)\n let session;\n const existingSessionId = state.session.session_id; // This might be set from initial props if we add logic for it\n\n if (existingSessionId && existingSessionId.length > 0) {\n logger.log('Resuming existing session:', existingSessionId);\n // Verify existence/validity if needed, for now trust the ID and just fetch/use it\n session = { session_id: existingSessionId };\n } else {\n session = await kycService.newSession({ token, apiKey });\n }\n\n // Notify session creation/resume as soon as we have an ID.\n // This makes save_session webhook calls more reliable on all runtimes.\n if (onSessionSave && !hasSavedSessionRef.current && session?.session_id) {\n hasSavedSessionRef.current = true;\n onSessionSave(session.session_id);\n }\n\n // Align backend flow from step 0 with initialize_session\n try {\n const templateId = chooseTemplateId(templateWithReviewAndVerification);\n await kycService.verificationSession({\n session_id: session.session_id,\n step: 0,\n data: {\n template_id: templateId,\n metadata: {\n language: initialLanguage,\n ...(referenceId ? { reference_id: referenceId } : {}),\n },\n },\n templateId: templateId,\n token: token,\n action: 'initialize_session',\n apiKey: apiKey,\n });\n } catch (e) {\n logger.error('Error initializing session:', JSON.stringify(e, null, 2));\n // Non-fatal: we will surface errors via state below if needed\n }\n\n setState(prev => ({\n ...prev,\n session: {\n ...prev.session,\n session_id: session.session_id,\n token: token,\n isInitialized: true,\n isProcessing: false,\n error: null,\n }\n }));\n } catch (error) {\n\n logger.error('Error initializing session:', JSON.stringify(error, null, 2));\n setState(prev => ({\n ...prev,\n session: {\n ...prev.session,\n isInitialized: false,\n isProcessing: false,\n error: \"Erreur lors de l'initialisation de la session\",\n },\n }));\n }\n }, [apiKey, referenceId, chooseTemplateId, templateWithReviewAndVerification, initialLanguage, state.session.session_id, onSessionSave]);\n\n // When user switches device: resume with existingSessionId + initialStep — ensure session is initialized so loadSessionData runs\n useEffect(() => {\n if (!existingSessionId || state.session.isInitialized) return;\n if (state.session.session_id !== existingSessionId) return;\n logger.log('Resuming on new device: initializing session so data can load', { existingSessionId, initialComponentIndex });\n initializeSession();\n }, [existingSessionId, state.session.session_id, state.session.isInitialized, initializeSession]);\n\n // Emit session id once when session becomes available.\n useEffect(() => {\n if (!onSessionSave || hasSavedSessionRef.current) return;\n if (!state.session.isInitialized || !state.session.session_id) return;\n\n hasSavedSessionRef.current = true;\n onSessionSave(state.session.session_id);\n }, [onSessionSave, state.session.isInitialized, state.session.session_id]);\n\n // Validation d'un composant (dataOverride permet de valider sans attendre la mise à jour du state)\n const validateComponent = useCallback((componentId: number, dataOverride?: any): boolean => {\n const component = state.template.components.find(c => c.id === componentId);\n if (!component) return false;\n\n const componentData = dataOverride !== undefined ? dataOverride : state.componentData[componentId];\n\n switch (component.type) {\n case 'id_card':\n // Vérifier si au moins un côté a été capturé\n return componentData && Object.keys(componentData).length > 0;\n\n case 'selfie':\n // Vérifier si toutes les orientations ont été capturées\n const config = component.config as any;\n const orientations = config.orientations || ['front'];\n return componentData && orientations.every((orientation: string) => componentData[orientation]);\n\n case 'file_upload':\n // Vérifier si un fichier a été uploadé\n return componentData && componentData.file;\n\n case 'location':\n // Vérifier si la localisation a été obtenue\n return componentData && componentData.latitude && componentData.longitude;\n\n case 'country_selection':\n // Vérifier si un pays a été sélectionné\n logger.log(\"componentData\", truncateFields(componentData), componentId);\n\n return componentData && componentData.code && componentData.regionMapping;\n\n case 'welcome':\n // Welcome is valid once user has given consent (componentData is set when they click Get Started)\n return componentData && componentData.consentGiven !== false;\n\n case 'email_verification':\n return componentData && componentData.verified === true;\n\n case 'phone_verification':\n return componentData && componentData.verified === true;\n\n case 'personal_information':\n return componentData && Object.keys(componentData).length > 0;\n\n case 'additional_documents':\n // Optional by default in template config, but if required we should check based on config\n // For now, return true or check length if present\n return true;\n\n case 'review_submit':\n return true;\n default:\n return false;\n }\n }, [state.template.components, state.componentData, apiKey]);\n\n // Actions du flux\n const actions: TemplateActions = {\n // Initialiser le template\n initializeTemplate: useCallback((newTemplate: KYCTemplate) => {\n const withReview = ensureReviewSubmitStep(newTemplate);\n const withVerification = ensureVerificationProgressStep(withReview);\n setState(prev => ({\n ...prev,\n template: withVerification,\n currentComponentIndex: 0,\n completedComponents: [],\n componentData: {},\n errors: {},\n isProcessing: false,\n verification: { status: 'idle', result: undefined },\n }));\n }, [ensureReviewSubmitStep, ensureVerificationProgressStep, apiKey]),\n\n // Passer au composant suivant (overrideData = données du step courant si déjà connues, évite un double clic)\n nextComponent: useCallback(async (overrideData?: any) => {\n if (!canGoNext) return;\n\n const currentComp = state.template.components[state.currentComponentIndex];\n if (!currentComp) return;\n\n // Prevent multiple simultaneous calls\n setState(prev => {\n if (prev.isProcessing) {\n return prev;\n }\n return {\n ...prev,\n isProcessing: true,\n };\n });\n // Valider avec override ou state\n if (!validateComponent(currentComp.id, overrideData)) {\n setState(prev => ({\n ...prev,\n isProcessing: false,\n errors: {\n ...prev.errors,\n [currentComp.id]: state.currentLanguage === \"en\" ? \"please complete this step before moving on\" : \" 'Veuillez compléter cette étape avant de continuer'\"\n }\n }));\n return;\n\n }\n\n try {\n const component = state.template.components.find(c => c.id === currentComp.id);\n if (!component) {\n setState(prev => ({\n ...prev,\n isProcessing: false,\n }));\n return;\n }\n\n if (component.type === 'review_submit') {\n setState(prev => ({\n ...prev,\n currentComponentIndex: prev.currentComponentIndex + 1,\n completedComponents: [...prev.completedComponents, currentComp.id],\n componentData: overrideData !== undefined ? { ...prev.componentData, [currentComp.id]: overrideData } : prev.componentData,\n isProcessing: false,\n verification: { status: 'in_progress' },\n errors: { ...prev.errors, [currentComp.id]: '' }\n }));\n return;\n }\n // Determine backend action and step index\n const action = mapComponentTypeToAction(component.type);\n const templateId = chooseTemplateId(state.template);\n const serverStep = computeServerStepIndex(state.template, state.currentComponentIndex);\n\n // Optionally send initialize_session at step 0 before first actionable action\n if (serverStep === 0) {\n try {\n // await kycService.verificationSession({\n // sessionId: state.session.session_id,\n // step: 0,\n // data: { template_id: templateId, metadata: { language: state.currentLanguage } },\n // templateId: templateId,\n // token: state.session.token,\n // action: 'initialize_session'\n // });\n } catch (e) {\n // if init fails, surface error below in the main call handling\n }\n }\n\n // Skip UI-only and data-only steps that have no backend action\n if (!action) {\n setState(prev => ({\n ...prev,\n currentComponentIndex: prev.currentComponentIndex + 1,\n completedComponents: [...prev.completedComponents, currentComp.id],\n componentData: overrideData !== undefined ? { ...prev.componentData, [currentComp.id]: overrideData } : prev.componentData,\n isProcessing: false,\n errors: { ...prev.errors, [currentComp.id]: '' }\n }));\n return;\n }\n\n const step = serverStep === 0 && action !== 'initialize_session' ? 1 : serverStep;\n const currentStepData = overrideData !== undefined ? overrideData : state.componentData[currentComp.id];\n const payloadData = buildPayloadForComponent(action, component, currentStepData, templateId, step);\n console.log('payloadData', action, apiKey);\n\n await kycService.verificationSession({\n session_id: state.session.session_id,\n step: step,\n data: payloadData,\n templateId: templateId,\n token: state.session.token,\n action: action,\n apiKey: apiKey ?? \"-\",\n });\n logger.log(\"currentComp state\", truncateFields(state));\n setState(prev => ({\n ...prev,\n currentComponentIndex: prev.currentComponentIndex + 1,\n completedComponents: [...prev.completedComponents, currentComp.id],\n componentData: overrideData !== undefined ? { ...prev.componentData, [currentComp.id]: overrideData } : prev.componentData,\n isProcessing: false,\n ...(action === \"location_permission\" ? { permissionGranted: true } : {}),\n errors: { ...prev.errors, [currentComp.id]: '' }\n }));\n\n } catch (error) {\n logger.error('Error in nextComponent:', error);\n setState(prev => ({\n ...prev,\n isProcessing: false,\n errors: {\n ...prev.errors,\n [currentComp.id]: 'Erreur lors de la validation du composant'\n }\n }));\n }\n\n }, [canGoNext, state.currentComponentIndex, state.template.components, validateComponent, apiKey, state.session.session_id, state.session.token, buildPayloadForComponent, mapComponentTypeToAction, chooseTemplateId, state.currentLanguage]),\n\n // Retourner au composant précédent\n previousComponent: useCallback(() => {\n if (!canGoPrevious) return;\n\n setState(prev => ({\n ...prev,\n currentComponentIndex: prev.currentComponentIndex - 1,\n }));\n }, [canGoPrevious, apiKey]),\n\n // Aller à un composant spécifique\n goToComponent: useCallback((componentId: number) => {\n const componentIndex = state.template.components.findIndex(c => c.id === componentId);\n if (componentIndex !== -1) {\n setState(prev => ({\n ...prev,\n currentComponentIndex: componentIndex,\n }));\n }\n }, [state.template.components, apiKey]),\n\n // Mettre à jour les données d'un composant\n updateComponentData: useCallback((componentId: number, data: any) => {\n logger.log(\"updateComponentData\", componentId, JSON.stringify(truncateFields(data), null, 2));\n\n setState(prev => ({\n ...prev,\n componentData: {\n ...prev.componentData,\n [componentId]: data\n },\n errors: {\n ...prev.errors,\n [componentId]: ''\n }\n }));\n\n }, [apiKey]),\n\n // Valider un composant\n validateComponent: useCallback((componentId: number, dataOverride?: any) => {\n return validateComponent(componentId, dataOverride);\n }, [validateComponent, apiKey]),\n // complet verification\n submitVerification: useCallback(async () => {\n setState(prev => ({ ...prev, isProcessing: true }));\n try {\n onComplete?.(state.verification);\n\n } catch (error) {\n setState(prev => ({ ...prev, isProcessing: false }));\n }\n }, [state.session.session_id, state.verification, onComplete, apiKey]),\n\n // Soumettre le template complet\n submitTemplate: useCallback(async () => {\n // Allow submission when on the review step and all previous steps are valid\n const atReview = state.template.components[state.currentComponentIndex]?.type === 'review_submit';\n const allValid = state.template.components\n .filter(c => c.type !== 'review_submit')\n .every(comp => validateComponent(comp.id));\n if (!(atReview && allValid)) {\n onError?.('Le flux KYC n\\'est pas encore terminé');\n return;\n }\n\n setState(prev => ({ ...prev, isProcessing: true }));\n\n try {\n // Vérifier que tous les composants (hors review) sont validés\n if (!allValid) throw new Error('Certaines étapes ne sont pas complètes');\n\n // Appeler le callback de completion\n // onComplete?.(state.componentData);\n\n setState(prev => ({ ...prev, isProcessing: false }));\n } catch (error) {\n setState(prev => ({ ...prev, isProcessing: false }));\n onError?.(error instanceof Error ? error.message : 'Erreur lors de la soumission');\n }\n }, [state.template.components, state.verification, state.currentComponentIndex, validateComponent, state.componentData, onComplete, onError, apiKey]),\n\n // Réinitialiser le template\n resetTemplate: useCallback(() => {\n setState(buildInitialState());\n }, [buildInitialState, apiKey]),\n\n // Changer la langue\n setLanguage: useCallback((language: string) => {\n setState(prev => ({\n ...prev,\n currentLanguage: language,\n }));\n }, [apiKey]),\n\n // Afficher le stepper personnalisé\n showCustomStepper: useCallback((show: boolean) => {\n setState(prev => ({\n ...prev,\n showCustomStepper: show,\n }));\n }, [apiKey]),\n\n setVerificationState: useCallback((verificationState) => {\n setState(prev => ({\n ...prev,\n verification: verificationState,\n }));\n }, [apiKey]),\n };\n\n return {\n state,\n actions,\n currentComponent,\n progress,\n canGoNext,\n canGoPrevious,\n isComplete,\n getLocalizedText,\n initializeSession,\n env,\n apiKey,\n } as UseTemplateReturn;\n}; "]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTemplateLoader.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTemplateLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMjD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,uBAAuB,CAkF3D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTemplateLoader.js","sourceRoot":"","sources":["../../../src/hooks/useTemplateLoader.ts"],"names":[],"mappings":"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","sourcesContent":["import { useState, useCallback, useRef } from 'react';\nimport { KYCTemplate } from '../types/KYC.types';\nimport templateService from '../modules/api/TemplateService';\nimport { transformBackendTemplateToSDK, validateTransformedTemplate } from '../utils/template-transformer';\nimport { logger } from '../utils/logger';\nimport { authentification } from '../modules/api/KYCService';\n\nexport interface UseTemplateLoaderReturn {\n template: KYCTemplate | null;\n isLoading: boolean;\n error: string | null;\n loadTemplate: (templateId: string, apiKey?: string) => Promise<void>;\n refresh: () => void;\n clearError: () => void;\n}\n\n/**\n * Hook to load and transform templates from the backend API\n */\nexport function useTemplateLoader(): UseTemplateLoaderReturn {\n const [template, setTemplate] = useState<KYCTemplate | null>(null);\n const [isLoading, setIsLoading] = useState<boolean>(false);\n const [error, setError] = useState<string | null>(null);\n const currentTemplateIdRef = useRef<string | null>(null);\n const currentApiKeyRef = useRef<string | undefined>(undefined);\n\n /**\n * Load a template by ID\n */\n const loadTemplate = useCallback(async (templateId: string, apiKey?: string) => {\n // Reset state\n setError(null);\n setIsLoading(true);\n currentTemplateIdRef.current = templateId;\n currentApiKeyRef.current = apiKey;\n\n try {\n logger.log(`Loading template: ${templateId}`);\n\n // Get token if no API key provided\n let token: string | undefined;\n if (!apiKey) {\n try {\n token = await authentification();\n } catch (authError) {\n logger.error('Authentication failed:', authError);\n throw new Error('Failed to authenticate. Please provide a valid API key.');\n }\n }\n\n // Fetch template from backend\n const backendTemplate = await templateService.fetchTemplate(templateId, apiKey, token);\n\n // Transform to SDK format\n const transformedTemplate = transformBackendTemplateToSDK(backendTemplate);\n\n // Validate transformed template\n if (!validateTransformedTemplate(transformedTemplate)) {\n throw new Error('Transformed template validation failed');\n }\n\n // Set the template\n setTemplate(transformedTemplate);\n logger.log(`Template loaded successfully: ${templateId}`);\n } catch (err: any) {\n const errorMessage = err.message || 'Failed to load template';\n logger.error(`Error loading template ${templateId}:`, errorMessage);\n setError(errorMessage);\n setTemplate(null);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n /**\n * Refresh the current template\n */\n const refresh = useCallback(() => {\n if (currentTemplateIdRef.current) {\n // Clear cache for this template\n templateService.clearCache(currentTemplateIdRef.current);\n // Reload template\n loadTemplate(currentTemplateIdRef.current, currentApiKeyRef.current);\n }\n }, [loadTemplate]);\n\n /**\n * Clear error state\n */\n const clearError = useCallback(() => {\n setError(null);\n }, []);\n\n return {\n template,\n isLoading,\n error,\n loadTemplate,\n refresh,\n clearError,\n };\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/i18n/en/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkRd,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/i18n/en/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkRd,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/i18n/en/index.ts"],"names":[],"mappings":"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","sourcesContent":["export const en = {\n // Common UI elements\n common: {\n next: 'Next',\n previous: 'Previous',\n continue: 'Continue',\n cancel: 'Cancel',\n confirm: 'Confirm',\n submit: 'Submit',\n retry: 'Retry',\n close: 'Close',\n back: 'Back',\n loading: 'Loading...',\n error: 'Error',\n success: 'Success',\n warning: 'Warning',\n info: 'Information',\n invalidCode: 'Invalid code',\n resendCode: 'Resend code',\n verify: 'Verify',\n sendCode: 'Send code',\n resend: 'Resend',\n email: 'Email',\n otp: 'OTP',\n verificationCode: 'Verification code',\n changeEmail: 'Change Email',\n processing: \"Processing\",\n codeResent: 'Code Resent',\n codeResentMessage: 'Code resent to %{email}',\n phone: 'Phone number with country code',\n },\n\n // KYC Flow\n kyc: {\n title: 'Identity Verification',\n subtitle: 'Complete your identity verification to continue',\n step: 'Step %{current} of %{total}',\n enterCodeSent: \"Enter code sent\",\n\n additionalDocs: {\n title: 'Additional Documents',\n add: \"Press to select file\",\n subtitle: 'Upload additional documents to complete your identity verification',\n uploadButton: 'Upload',\n uploadButtonText: 'Upload',\n uploadSubtext: 'Upload a clear photo of your document',\n supportedFormats: 'Supported formats: JPG, PNG, PDF',\n maxSize: 'Max file size: 10MB',\n processing: 'Processing file...',\n success: 'File uploaded successfully',\n error: 'Failed to upload file. Please try again.'\n },\n\n // Initialization\n initialization: {\n title: 'Welcome to Identity Verification',\n description: 'We need to verify your identity to comply with regulations and ensure security.',\n startButton: 'Start Verification',\n requirements: 'What you\\'ll need:',\n requirementsList: [\n 'Valid government-issued ID',\n 'Good lighting for photos',\n 'Stable internet connection'\n ]\n },\n\n welcome: {\n requirements: 'What you\\'ll need:',\n estimatedTime: 'Estimated time:',\n consent: 'Please accept the following:',\n privacyPolicy: 'I agree to the Privacy Policy',\n termsOfService: 'I agree to the Terms of Service',\n marketingConsent: 'I agree to receive marketing communications',\n readMore: 'Read more',\n getStarted: 'Get Started'\n },\n\n // Location Capture\n locationCapture: {\n title: 'Secure Your Verification',\n description: 'Allow location access to help us protect your account and prevent fraudulent activity during verification.',\n howThisHelps: 'How this helps:',\n howThisHelpsList: '• Verifies your device location matches your identity\\n• Detects and prevents unauthorized access\\n• Ensures compliance with security regulations',\n permissionDeniedTitle: 'Permission denied',\n permissionDeniedMessage: 'Location permission is required to continue.',\n locationDisabledTitle: 'Location disabled',\n locationDisabledMessage: 'Please enable location services on your device to continue.',\n errorTitle: 'Error',\n errorMessage: 'Unable to retrieve your location. Please try again.',\n obtained: 'Location obtained',\n latitudeLabel: 'Latitude',\n longitudeLabel: 'Longitude',\n accuracyLabel: 'Accuracy',\n resetButton: 'Reset',\n enableButton: 'Enable Location Access',\n fetching: 'Fetching...'\n },\n\n // Country Selection\n countrySelection: {\n title: 'Select Your Country',\n subtitle: 'Choose the country that issued your ID document',\n searchPlaceholder: 'Search for your country...',\n noResults: 'No countries found',\n selectCountry: 'Select Country'\n },\n\n // ID Card Capture\n idCardCapture: {\n title: 'Capture Your ID Document',\n subtitle: 'Take a clear photo of your ID document',\n frontSide: 'Front Side',\n backSide: 'Back Side',\n instructions: {\n title: 'Instructions:',\n list: [\n 'Place your ID on a flat surface',\n 'Ensure good lighting',\n 'Keep the entire document in frame',\n 'Avoid glare and shadows'\n ]\n },\n captureButton: 'Capture Photo',\n retakeButton: 'Retake',\n usePhotoButton: 'Use This Photo',\n processing: 'Processing image...',\n success: 'ID captured successfully',\n error: 'Failed to capture ID. Please try again.',\n captureTitle: '%{side} side of your government document',\n cardNotFullyInFrame: 'The ID is not fully in frame. Position the entire card within the frame.',\n continueOnPhone: 'Continue on Phone',\n continueOnMobile: 'Continue on Mobile',\n scanQrCode: 'Scan this QR code with your phone to continue the verification process.',\n },\n\n // Selfie Capture\n selfieCapture: {\n title: 'Take a Selfie',\n subtitle: 'Take a clear selfie for identity verification',\n instructions: {\n title: 'Instructions:',\n list: [\n 'Look directly at the camera',\n 'Ensure good lighting on your face',\n 'Remove glasses and hats',\n 'Keep a neutral expression'\n ]\n },\n captureButton: 'Take Selfie',\n retakeButton: 'Retake',\n usePhotoButton: 'Use This Photo',\n processing: 'Processing selfie...',\n success: 'Selfie captured successfully',\n error: 'Failed to capture selfie. Please try again.'\n },\n\n // File Upload\n fileUpload: {\n title: 'Upload Document',\n subtitle: 'Upload a clear photo of your document',\n selectFile: 'Select File',\n uploadButton: 'Upload',\n dragDropText: 'Drag and drop your file here, or click to select',\n supportedFormats: 'Supported formats: JPG, PNG, PDF',\n maxSize: 'Max file size: 10MB',\n processing: 'Processing file...',\n success: 'File uploaded successfully',\n error: 'Failed to upload file. Please try again.'\n },\n\n // Verification Progress\n verificationProgress: {\n title: 'Verifying Your Identity',\n subtitle: 'Please wait while we verify your information',\n steps: {\n analyzing: 'Analyzing documents...',\n extracting: 'Extracting information...',\n verifying: 'Verifying identity...',\n complete: 'Verification complete'\n },\n retrying: 'Retrying ( %{current} / %{max} )',\n estimatedTime: 'Estimated time: 2-3 minutes',\n status: {\n pending: 'Pending',\n processing: 'Processing',\n completed: 'Completed',\n failed: 'Failed',\n retry: 'Retry'\n }\n },\n\n // Review and Submit\n reviewSubmit: {\n title: 'Review Your Information',\n subtitle: 'Please review the information we extracted',\n personalInfo: 'Personal Information',\n documentInfo: 'Document Information',\n editButton: 'Edit',\n submitButton: 'Submit for Verification',\n confirmMessage: 'Are you sure you want to submit this information?',\n processing: 'Submitting...',\n success: 'Information submitted successfully',\n error: 'Failed to submit information. Please try again.',\n selfieSide: {\n center: 'Center',\n right: 'Right',\n left: 'Left'\n }\n },\n\n // Cancel Confirmation\n cancelConfirmation: {\n title: 'Are you sure you want to cancel?',\n message: 'You will lose all your progress.',\n cancelButton: 'Cancel',\n confirmButton: 'OK'\n }\n },\n\n // Camera and Media\n camera: {\n permissionTitle: 'Camera Permission Required',\n permissionMessage: 'We need access to your camera to capture your ID and selfie.',\n permissionButton: 'Grant Permission',\n settingsButton: 'Open Settings',\n notAvailable: 'Camera not available',\n switchCamera: 'Switch Camera',\n flashOn: 'Flash On',\n flashOff: 'Flash Off',\n capturePhoto: 'Capture Photo',\n processing: 'Processing...',\n permissionRequired: 'Camera permission required. Please grant permission to continue.',\n deviceNotAvailable: 'Camera device not available',\n notReady: 'Camera not ready',\n analyzing: 'Analyzing...',\n errorOccurred: 'Camera error occurred',\n failedToCapture: 'Failed to capture photo',\n failedToStartRecording: 'Failed to start video recording',\n failedToStopRecording: 'Failed to stop video recording'\n },\n\n // Errors\n errors: {\n networkError: 'Network error. Please check your connection.',\n serverError: 'Server error. Please try again later.',\n validationError: 'Please check your information and try again.',\n cameraError: 'Camera error. Please try again.',\n fileError: 'File error. Please try again.',\n timeoutError: 'Request timeout. Please try again.',\n unknownError: 'An unknown error occurred. Please try again.',\n wrongCode: \"Wrong code\",\n invalidCode: \"Invalid code\",\n invalidEmail: \"Invalid email\",\n invalidPhone: \"Invalid phone\",\n invalidDate: \"Invalid date\",\n minLength: \"Min length\",\n maxLength: \"Max length\",\n invalidFormat: \"Invalid format\",\n fileTooLarge: \"File too large\",\n fileTypeNotSupported: \"File type not supported\",\n },\n\n // Validation messages\n validation: {\n required: 'This field is required',\n invalidEmail: 'Please enter a valid email address',\n invalidPhone: 'Please enter a valid phone number',\n invalidDate: 'Please enter a valid date',\n minLength: 'Must be at least %{min} characters',\n maxLength: 'Must be no more than %{max} characters',\n invalidFormat: 'Invalid format',\n fileTooLarge: 'File is too large',\n fileTypeNotSupported: 'File type not supported'\n }\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/i18n/fr/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmQd,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/i18n/fr/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmQd,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/i18n/fr/index.ts"],"names":[],"mappings":"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","sourcesContent":["export const fr = {\n // Common UI elements\n common: {\n next: 'Suivant',\n previous: 'Précédent',\n continue: 'Continuer',\n cancel: 'Annuler',\n confirm: 'Confirmer',\n submit: 'Soumettre',\n retry: 'Réessayer',\n close: 'Fermer',\n back: 'Retour',\n loading: 'Chargement...',\n error: 'Erreur',\n success: 'Succès',\n warning: 'Avertissement',\n info: 'Information',\n invalidCode: 'Code invalide',\n resendCode: 'Renvoyer le code',\n verify: 'Vérifier',\n sendCode: 'Envoyer le code',\n resend: 'Renvoyer',\n email: 'Email',\n otp: 'OTP',\n verificationCode: 'Code de vérification',\n changeEmail: 'Changer d\\'email',\n processing: \"Traitement\",\n codeResent: 'Code Renvoyé',\n codeResentMessage: 'Code renvoyé à %{email}',\n phone: 'Numéro de téléphone avec code pays',\n\n },\n\n // KYC Flow\n kyc: {\n title: 'Vérification d\\'Identité',\n subtitle: 'Complétez votre vérification d\\'identité pour continuer',\n step: 'Étape %{current} sur %{total}',\n\n // Initialization\n initialization: {\n title: 'Bienvenue dans la Vérification d\\'Identité',\n description: 'Nous devons vérifier votre identité pour respecter les réglementations et assurer la sécurité.',\n startButton: 'Commencer la Vérification',\n requirements: 'Ce dont vous aurez besoin :',\n requirementsList: [\n 'Une pièce d\\'identité officielle valide',\n 'Un bon éclairage pour les photos',\n 'Une connexion internet stable'\n ]\n },\n welcome: {\n requirements: 'Ce dont vous aurez besoin :',\n estimatedTime: 'Temps estimé :',\n consent: 'Veuillez accepter les suivants :',\n privacyPolicy: 'J\\'accepte la Politique de Confidentialité',\n termsOfService: 'J\\'accepte les Conditions d\\'Utilisation',\n marketingConsent: 'J\\'accepte de recevoir des communications marketing',\n readMore: 'Lire plus',\n getStarted: 'Commencer'\n },\n\n // Location Capture\n locationCapture: {\n title: 'Sécurisez Votre Vérification',\n description: 'Autorisez l\\'accès à la localisation pour nous aider à protéger votre compte et à prévenir les activités frauduleuses pendant la vérification.',\n howThisHelps: 'Comment cela aide :',\n howThisHelpsList: '• Vérifie que la localisation de votre appareil correspond à votre identité\\n• Détecte et empêche les accès non autorisés\\n• Garantit la conformité aux réglementations de sécurité',\n permissionDeniedTitle: 'Permission refusée',\n permissionDeniedMessage: 'La permission de localisation est nécessaire pour continuer.',\n locationDisabledTitle: 'Localisation désactivée',\n locationDisabledMessage: 'Veuillez activer la localisation sur votre appareil pour continuer.',\n errorTitle: 'Erreur',\n errorMessage: 'Impossible de récupérer votre localisation. Veuillez réessayer.',\n obtained: 'Localisation obtenue',\n latitudeLabel: 'Latitude',\n longitudeLabel: 'Longitude',\n accuracyLabel: 'Précision',\n resetButton: 'Réinitialiser',\n enableButton: 'Activer l\\'accès à la localisation',\n fetching: 'Récupération...'\n },\n\n // Country Selection\n countrySelection: {\n title: 'Sélectionnez Votre Pays',\n subtitle: 'Choisissez le pays qui a émis votre document d\\'identité',\n searchPlaceholder: 'Recherchez votre pays...',\n noResults: 'Aucun pays trouvé',\n selectCountry: 'Sélectionner le Pays'\n },\n\n // ID Card Capture\n idCardCapture: {\n title: 'Capturez Votre Document d\\'Identité',\n subtitle: 'Prenez une photo claire de votre document d\\'identité',\n frontSide: 'Face Avant',\n backSide: 'Face Arrière',\n instructions: {\n title: 'Instructions :',\n list: [\n 'Placez votre pièce d\\'identité sur une surface plane',\n 'Assurez-vous d\\'un bon éclairage',\n 'Gardez tout le document dans le cadre',\n 'Évitez les reflets et les ombres'\n ]\n },\n captureButton: 'Prendre la Photo',\n retakeButton: 'Reprendre',\n usePhotoButton: 'Utiliser Cette Photo',\n processing: 'Traitement de l\\'image...',\n success: 'Document d\\'identité capturé avec succès',\n error: 'Échec de la capture du document. Veuillez réessayer.',\n captureTitle: '%{side} de votre document d\\'identité',\n cardNotFullyInFrame: 'La carte n\\'est pas entièrement visible. Positionnez toute la carte dans le cadre.',\n continueOnPhone: 'Continuer sur mobile',\n continueOnMobile: 'Continuer sur mobile',\n scanQrCode: 'Scannez ce code QR avec votre téléphone pour continuer la vérification.',\n },\n\n // Selfie Capture\n selfieCapture: {\n title: 'Prenez un Selfie',\n subtitle: 'Prenez un selfie clair pour la vérification d\\'identité',\n instructions: {\n title: 'Instructions :',\n list: [\n 'Regardez directement la caméra',\n 'Assurez-vous d\\'un bon éclairage sur votre visage',\n 'Retirez les lunettes et les chapeaux',\n 'Gardez une expression neutre'\n ]\n },\n captureButton: 'Prendre le Selfie',\n retakeButton: 'Reprendre',\n usePhotoButton: 'Utiliser Cette Photo',\n processing: 'Traitement du selfie...',\n success: 'Selfie capturé avec succès',\n error: 'Échec de la capture du selfie. Veuillez réessayer.'\n },\n\n // File Upload\n fileUpload: {\n title: 'Télécharger le Document',\n subtitle: 'Téléchargez une photo claire de votre document',\n selectFile: 'Sélectionner le Fichier',\n uploadButton: 'Télécharger',\n dragDropText: 'Glissez-déposez votre fichier ici, ou cliquez pour sélectionner',\n supportedFormats: 'Formats supportés : JPG, PNG, PDF',\n maxSize: 'Taille maximale : 10MB',\n processing: 'Traitement du fichier...',\n success: 'Fichier téléchargé avec succès',\n error: 'Échec du téléchargement. Veuillez réessayer.'\n },\n\n // Verification Progress\n verificationProgress: {\n title: 'Vérification de Votre Identité',\n subtitle: 'Veuillez patienter pendant que nous vérifions vos informations',\n steps: {\n analyzing: 'Analyse des documents...',\n extracting: 'Extraction des informations...',\n verifying: 'Vérification de l\\'identité...',\n complete: 'Vérification terminée'\n },\n retrying: 'Réessayer ( %{current}/ %{max} )',\n estimatedTime: 'Temps estimé : 2-3 minutes',\n status: {\n pending: 'En attente',\n processing: 'En cours',\n completed: 'Terminé',\n failed: 'Échoué',\n retry: 'Réessayer'\n }\n },\n\n // Review and Submit\n reviewSubmit: {\n title: 'Vérifiez Vos Informations',\n subtitle: 'Veuillez vérifier les informations que nous avons extraites',\n personalInfo: 'Informations Personnelles',\n documentInfo: 'Informations du Document',\n editButton: 'Modifier',\n submitButton: 'Soumettre pour Vérification',\n confirmMessage: 'Êtes-vous sûr de vouloir soumettre ces informations ?',\n processing: 'Soumission...',\n success: 'Informations soumises avec succès',\n error: 'Échec de la soumission. Veuillez réessayer.',\n selfieSide: {\n center: 'Face',\n right: 'Droite',\n left: 'Gauche'\n }\n },\n\n // Confirmation d'annulation\n cancelConfirmation: {\n title: 'Êtes-vous sûr de vouloir annuler ?',\n message: 'Vous perdrez tout votre progrès.',\n cancelButton: 'Annuler',\n confirmButton: 'OK'\n }\n },\n\n // Camera and Media\n camera: {\n permissionTitle: 'Permission Caméra Requise',\n permissionMessage: 'Nous avons besoin d\\'accéder à votre caméra pour capturer votre pièce d\\'identité et votre selfie.',\n permissionButton: 'Accorder la Permission',\n settingsButton: 'Ouvrir les Paramètres',\n notAvailable: 'Caméra non disponible',\n switchCamera: 'Changer de Caméra',\n flashOn: 'Flash Activé',\n flashOff: 'Flash Désactivé',\n capturePhoto: 'Prendre la Photo',\n processing: 'Traitement...',\n permissionRequired: 'Permission caméra requise. Veuillez accorder la permission pour continuer.',\n deviceNotAvailable: 'Appareil photo non disponible',\n notReady: 'Caméra pas prête',\n analyzing: 'Analyse en cours...',\n errorOccurred: 'Erreur de caméra survenue',\n failedToCapture: 'Échec de la capture photo',\n failedToStartRecording: 'Échec du démarrage de l\\'enregistrement vidéo',\n failedToStopRecording: 'Échec de l\\'arrêt de l\\'enregistrement vidéo'\n },\n\n // Errors\n errors: {\n networkError: 'Erreur réseau. Veuillez vérifier votre connexion.',\n serverError: 'Erreur serveur. Veuillez réessayer plus tard.',\n validationError: 'Veuillez vérifier vos informations et réessayer.',\n cameraError: 'Erreur caméra. Veuillez réessayer.',\n fileError: 'Erreur fichier. Veuillez réessayer.',\n timeoutError: 'Délai d\\'attente dépassé. Veuillez réessayer.',\n unknownError: 'Une erreur inconnue s\\'est produite. Veuillez réessayer.',\n wrongCode: \"Wrong code\",\n invalidCode: \"Invalid code\",\n invalidEmail: \"Invalid email\",\n invalidPhone: \"Invalid phone\",\n invalidDate: \"Invalid date\",\n minLength: \"Min length\",\n maxLength: \"Max length\",\n invalidFormat: \"Invalid format\",\n fileTooLarge: \"File too large\",\n fileTypeNotSupported: \"File type not supported\",\n },\n\n validation: {\n required: 'Ce champ est obligatoire',\n invalidEmail: 'Veuillez entrer une adresse email valide',\n invalidPhone: 'Veuillez entrer un numéro de téléphone valide',\n invalidDate: 'Veuillez entrer une date valide',\n minLength: 'Doit contenir au moins {min} caractères',\n maxLength: 'Ne doit pas dépasser {max} caractères',\n invalidFormat: 'Format invalide',\n fileTooLarge: 'Fichier trop volumineux',\n fileTypeNotSupported: 'Type de fichier non supporté'\n }\n\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAK/B,QAAA,MAAM,IAAI,MAAa,CAAC;AA8BxB,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,SAOvC,CAAC;AAGF,eAAO,MAAM,gBAAgB,cAAoB,CAAC;AAGlD,eAAO,MAAM,mBAAmB,gBAAuC,CAAC;AAGxE,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,UAAU,GAAG,WAEnD,CAAC;AAGF,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,EAAE,UAAU,GAAG,WAExE,CAAC;AAGF,OAAO,EAAE,IAAI,EAAE,CAAC;AAGhB,eAAe,IAAI,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,uBAAuB;AACvB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AAExB,mBAAmB;AACnB,IAAI,CAAC,YAAY,GAAG;IAClB,EAAE;IACF,EAAE;CACH,CAAC;AAEF,qBAAqB;AACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAE1B,qBAAqB;AACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAEnB,oCAAoC;AACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAE3B,gCAAgC;AAChC,IAAI,CAAC,aAAa,GAAG;IACnB,EAAE,EAAE,CAAC,KAAa,EAAE,EAAE;QACpB,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,EAAE,EAAE,CAAC,KAAa,EAAE,EAAE;QACpB,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7C,OAAO,OAAO,CAAC;IACjB,CAAC;CACK,CAAC;AAET,gCAAgC;AAChC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,EAAE;IAC1C,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,8CAA8C,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;IACnC,CAAC;AACH,CAAC,CAAC;AAEF,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;AAElD,2CAA2C;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAExE,kDAAkD;AAClD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,OAAa,EAAE,EAAE;IACtD,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,kDAAkD;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,OAAa,EAAE,EAAE;IAC3E,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,2BAA2B;AAC3B,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,iBAAiB;AACjB,eAAe,IAAI,CAAC","sourcesContent":["import { I18n } from 'i18n-js';\nimport { en } from './en';\nimport { fr } from './fr';\n\n// Create i18n instance\nconst i18n = new I18n();\n\n// Set translations\ni18n.translations = {\n en,\n fr,\n};\n\n// Set default locale\ni18n.defaultLocale = 'en';\n\n// Set current locale\ni18n.locale = 'en';\n\n// Enable fallback to default locale\ni18n.enableFallback = true;\n\n// Configure pluralization rules\ni18n.pluralization = {\n en: (count: number) => {\n if (count === 1) return 'one';\n return 'other';\n },\n fr: (count: number) => {\n if (count === 0 || count === 1) return 'one';\n return 'other';\n },\n} as any;\n\n// Helper function to set locale\nexport const setLocale = (locale: string) => {\n if (i18n.translations[locale]) {\n i18n.locale = locale;\n } else {\n console.warn(`Locale '${locale}' not found. Falling back to default locale.`);\n i18n.locale = i18n.defaultLocale;\n }\n};\n\n// Helper function to get current locale\nexport const getCurrentLocale = () => i18n.locale;\n\n// Helper function to get available locales\nexport const getAvailableLocales = () => Object.keys(i18n.translations);\n\n// Helper function to translate with interpolation\nexport const translate = (key: string, options?: any) => {\n return i18n.t(key, options);\n};\n\n// Helper function to translate with pluralization\nexport const translatePlural = (key: string, count: number, options?: any) => {\n return i18n.t(key, { count, ...options });\n};\n\n// Export the i18n instance\nexport { i18n };\n\n// Export default\nexport default i18n;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/i18n/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/i18n/types.ts"],"names":[],"mappings":"AAAA,yCAAyC","sourcesContent":["// Type definitions for i18n translations\n\nexport interface CommonTranslations {\n next: string;\n previous: string;\n continue: string;\n cancel: string;\n confirm: string;\n submit: string;\n retry: string;\n close: string;\n back: string;\n loading: string;\n error: string;\n success: string;\n warning: string;\n info: string;\n}\n\nexport interface KYCTranslations {\n title: string;\n subtitle: string;\n step: string;\n \n initialization: {\n title: string;\n description: string;\n startButton: string;\n requirements: string;\n requirementsList: string[];\n };\n \n countrySelection: {\n title: string;\n subtitle: string;\n searchPlaceholder: string;\n noResults: string;\n selectCountry: string;\n };\n \n idCardCapture: {\n title: string;\n subtitle: string;\n frontSide: string;\n backSide: string;\n instructions: {\n title: string;\n list: string[];\n };\n captureButton: string;\n retakeButton: string;\n usePhotoButton: string;\n processing: string;\n success: string;\n error: string;\n captureTitle?: string;\n cardNotFullyInFrame?: string;\n };\n \n selfieCapture: {\n title: string;\n subtitle: string;\n instructions: {\n title: string;\n list: string[];\n };\n captureButton: string;\n retakeButton: string;\n usePhotoButton: string;\n processing: string;\n success: string;\n error: string;\n };\n \n fileUpload: {\n title: string;\n subtitle: string;\n selectFile: string;\n uploadButton: string;\n dragDropText: string;\n supportedFormats: string;\n maxSize: string;\n processing: string;\n success: string;\n error: string;\n };\n \n verificationProgress: {\n title: string;\n subtitle: string;\n steps: {\n analyzing: string;\n extracting: string;\n verifying: string;\n complete: string;\n };\n estimatedTime: string;\n status: {\n pending: string;\n processing: string;\n completed: string;\n failed: string;\n retry: string;\n };\n };\n \n reviewSubmit: {\n title: string;\n subtitle: string;\n personalInfo: string;\n documentInfo: string;\n editButton: string;\n submitButton: string;\n confirmMessage: string;\n processing: string;\n success: string;\n error: string;\n };\n \n cancelConfirmation: {\n title: string;\n message: string;\n cancelButton: string;\n confirmButton: string;\n };\n}\n\nexport interface CameraTranslations {\n permissionTitle: string;\n permissionMessage: string;\n permissionButton: string;\n settingsButton: string;\n notAvailable: string;\n switchCamera: string;\n flashOn: string;\n flashOff: string;\n capturePhoto: string;\n processing: string;\n}\n\nexport interface ErrorTranslations {\n networkError: string;\n serverError: string;\n validationError: string;\n cameraError: string;\n fileError: string;\n timeoutError: string;\n unknownError: string;\n}\n\nexport interface ValidationTranslations {\n required: string;\n invalidEmail: string;\n invalidPhone: string;\n invalidDate: string;\n minLength: string;\n maxLength: string;\n invalidFormat: string;\n fileTooLarge: string;\n fileTypeNotSupported: string;\n}\n\nexport interface TranslationKeys {\n common: CommonTranslations;\n kyc: KYCTranslations;\n camera: CameraTranslations;\n errors: ErrorTranslations;\n validation: ValidationTranslations;\n}\n\n// Type for supported locales\nexport type SupportedLocale = 'en' | 'fr';\n\n// Type for translation function parameters\nexport interface TranslationOptions {\n [key: string]: any;\n}\n\n// Type for pluralization options\nexport interface PluralizationOptions extends TranslationOptions {\n count: number;\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-example.d.ts","sourceRoot":"","sources":["../../../src/i18n/usage-example.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAyEnC,CAAC;AA2HF,eAAe,eAAe,CAAC"}