@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.
- package/build/package.json +71 -0
- package/build/src/App.d.ts.map +1 -0
- package/build/src/App.js.map +1 -0
- package/build/src/TransfergratisSdk.types.d.ts.map +1 -0
- package/build/src/TransfergratisSdk.types.js.map +1 -0
- package/build/src/TransfergratisSdkModule.d.ts.map +1 -0
- package/build/src/TransfergratisSdkModule.js.map +1 -0
- package/build/src/TransfergratisSdkModule.web.d.ts.map +1 -0
- package/build/src/TransfergratisSdkModule.web.js.map +1 -0
- package/build/src/TransfergratisSdkView.d.ts.map +1 -0
- package/build/src/TransfergratisSdkView.js.map +1 -0
- package/build/src/TransfergratisSdkView.web.d.ts.map +1 -0
- package/build/src/TransfergratisSdkView.web.js.map +1 -0
- package/build/src/api/axios.d.ts.map +1 -0
- package/build/src/api/axios.js.map +1 -0
- package/build/src/components/Camera/index.d.ts.map +1 -0
- package/build/src/components/Camera/index.js.map +1 -0
- package/build/src/components/Camera/index.web.d.ts.map +1 -0
- package/build/src/components/Camera/index.web.js.map +1 -0
- package/build/src/components/Camera/types.d.ts.map +1 -0
- package/build/src/components/Camera/types.js.map +1 -0
- package/build/src/components/ConfigurableKYCFlow.d.ts.map +1 -0
- package/build/src/components/ConfigurableKYCFlow.js.map +1 -0
- package/build/src/components/CustomCameraExample.d.ts.map +1 -0
- package/build/src/components/CustomCameraExample.js.map +1 -0
- package/build/src/components/EnhancedCameraView.d.ts.map +1 -0
- package/build/src/components/EnhancedCameraView.js.map +1 -0
- package/build/src/components/EnhancedCameraView.web.d.ts.map +1 -0
- package/build/src/components/EnhancedCameraView.web.js.map +1 -0
- package/build/src/components/FileUpload.d.ts.map +1 -0
- package/build/src/components/FileUpload.js.map +1 -0
- package/build/src/components/KYCElementRenderer.d.ts.map +1 -0
- package/build/src/components/KYCElementRenderer.js.map +1 -0
- package/build/src/components/KYCElements/AdditionalDocumentsTemplate.d.ts.map +1 -0
- package/build/src/components/KYCElements/AdditionalDocumentsTemplate.js.map +1 -0
- package/build/src/components/KYCElements/CameraCapture.d.ts.map +1 -0
- package/build/src/components/KYCElements/CameraCapture.js.map +1 -0
- package/build/src/components/KYCElements/CompletionStep.d.ts.map +1 -0
- package/build/src/components/KYCElements/CompletionStep.js.map +1 -0
- package/build/src/components/KYCElements/CountrySelection.d.ts.map +1 -0
- package/build/src/components/KYCElements/CountrySelection.js.map +1 -0
- package/build/src/components/KYCElements/CountrySelectionTemplate.d.ts.map +1 -0
- package/build/src/components/KYCElements/CountrySelectionTemplate.js.map +1 -0
- package/build/src/components/KYCElements/DocumentTypeSelection.d.ts.map +1 -0
- package/build/src/components/KYCElements/DocumentTypeSelection.js.map +1 -0
- package/build/src/components/KYCElements/EmailVerificationTemplate.d.ts.map +1 -0
- package/build/src/components/KYCElements/EmailVerificationTemplate.js.map +1 -0
- package/build/src/components/KYCElements/FileUpload.d.ts.map +1 -0
- package/build/src/components/KYCElements/FileUpload.js.map +1 -0
- package/build/src/components/KYCElements/FileUploadTemplate.d.ts.map +1 -0
- package/build/src/components/KYCElements/FileUploadTemplate.js.map +1 -0
- package/build/src/components/KYCElements/IDCardCapture.d.ts.map +1 -0
- package/build/src/components/KYCElements/IDCardCapture.js.map +1 -0
- package/build/src/components/KYCElements/InitializationStep.d.ts.map +1 -0
- package/build/src/components/KYCElements/InitializationStep.js.map +1 -0
- package/build/src/components/KYCElements/LocationCaptureTemplate.d.ts.map +1 -0
- package/build/src/components/KYCElements/LocationCaptureTemplate.js.map +1 -0
- package/build/src/components/KYCElements/OrientationVideoCapture.d.ts.map +1 -0
- package/build/src/components/KYCElements/OrientationVideoCapture.js.map +1 -0
- package/build/src/components/KYCElements/OrientationVideoCaptureEnhanced.d.ts.map +1 -0
- package/build/src/components/KYCElements/OrientationVideoCaptureEnhanced.js.map +1 -0
- package/build/src/components/KYCElements/OrientationVideoCaptureFinal.d.ts.map +1 -0
- package/build/src/components/KYCElements/OrientationVideoCaptureFinal.js.map +1 -0
- package/build/src/components/KYCElements/PersonalInformationTemplate.d.ts.map +1 -0
- package/build/src/components/KYCElements/PersonalInformationTemplate.js.map +1 -0
- package/build/src/components/KYCElements/PhoneVerificationTemplate.d.ts.map +1 -0
- package/build/src/components/KYCElements/PhoneVerificationTemplate.js.map +1 -0
- package/build/src/components/KYCElements/ReviewSubmitTemplate.d.ts.map +1 -0
- package/build/src/components/KYCElements/ReviewSubmitTemplate.js.map +1 -0
- package/build/src/components/KYCElements/SelfieCapture.d.ts.map +1 -0
- package/build/src/components/KYCElements/SelfieCapture.js.map +1 -0
- package/build/src/components/KYCElements/SelfieCaptureTemplate.d.ts.map +1 -0
- package/build/src/components/KYCElements/SelfieCaptureTemplate.js.map +1 -0
- package/build/src/components/KYCElements/VerificationProgressTemplate.d.ts.map +1 -0
- package/build/src/components/KYCElements/VerificationProgressTemplate.js.map +1 -0
- package/build/src/components/KYCElements/VerificationStep.d.ts.map +1 -0
- package/build/src/components/KYCElements/VerificationStep.js.map +1 -0
- package/build/src/components/KYCElements/WelcomeTemplate.d.ts.map +1 -0
- package/build/{components → src/components}/KYCElements/WelcomeTemplate.js +9 -0
- package/build/src/components/KYCElements/WelcomeTemplate.js.map +1 -0
- package/build/src/components/KYCExample.d.ts.map +1 -0
- package/build/src/components/KYCExample.js.map +1 -0
- package/build/src/components/KYCFlow.d.ts.map +1 -0
- package/build/src/components/KYCFlow.js.map +1 -0
- package/build/src/components/NativeCameraView.d.ts.map +1 -0
- package/build/src/components/NativeCameraView.js.map +1 -0
- package/build/src/components/OverLay/IdCard.d.ts.map +1 -0
- package/build/src/components/OverLay/IdCard.js.map +1 -0
- package/build/src/components/OverLay/SelfieOverlay.d.ts.map +1 -0
- package/build/src/components/OverLay/SelfieOverlay.js.map +1 -0
- package/build/src/components/OverLay/StepOverlay.d.ts.map +1 -0
- package/build/src/components/OverLay/StepOverlay.js.map +1 -0
- package/build/src/components/OverLay/type.d.ts.map +1 -0
- package/build/src/components/OverLay/type.js.map +1 -0
- package/build/src/components/ProgressIndicator.d.ts.map +1 -0
- package/build/src/components/ProgressIndicator.js.map +1 -0
- package/build/src/components/SelfieCapture.d.ts.map +1 -0
- package/build/src/components/SelfieCapture.js.map +1 -0
- package/build/src/components/SimpleExample.d.ts.map +1 -0
- package/build/src/components/SimpleExample.js.map +1 -0
- package/build/src/components/Svgs/GpsIcon.d.ts.map +1 -0
- package/build/src/components/Svgs/GpsIcon.js.map +1 -0
- package/build/src/components/Svgs/Schield.d.ts.map +1 -0
- package/build/src/components/Svgs/Schield.js.map +1 -0
- package/build/src/components/Svgs/frontSelfieIcon.d.ts.map +1 -0
- package/build/src/components/Svgs/frontSelfieIcon.js.map +1 -0
- package/build/src/components/Svgs/scanningLine.d.ts.map +1 -0
- package/build/src/components/Svgs/scanningLine.js.map +1 -0
- package/build/src/components/Svgs/sideSelfieIcon.d.ts.map +1 -0
- package/build/src/components/Svgs/sideSelfieIcon.js.map +1 -0
- package/build/{components → src/components}/TemplateKYCExample.d.ts +1 -0
- package/build/src/components/TemplateKYCExample.d.ts.map +1 -0
- package/build/{components → src/components}/TemplateKYCExample.js +2 -2
- package/build/src/components/TemplateKYCExample.js.map +1 -0
- package/build/{components → src/components}/TemplateKYCFlowRefactored.d.ts +1 -0
- package/build/src/components/TemplateKYCFlowRefactored.d.ts.map +1 -0
- package/build/{components → src/components}/TemplateKYCFlowRefactored.js +2 -2
- package/build/src/components/TemplateKYCFlowRefactored.js.map +1 -0
- package/build/src/components/VisionCameraView.d.ts.map +1 -0
- package/build/src/components/VisionCameraView.js.map +1 -0
- package/build/src/components/example/CameraCaptureEx.d.ts.map +1 -0
- package/build/src/components/example/CameraCaptureEx.js.map +1 -0
- package/build/src/components/example/CameraCaptureExAdvanced.d.ts.map +1 -0
- package/build/src/components/example/CameraCaptureExAdvanced.js.map +1 -0
- package/build/src/components/example/CameraCaptureExScan.d.ts.map +1 -0
- package/build/src/components/example/CameraCaptureExScan.js.map +1 -0
- package/build/src/components/example/CameraCaptureExSimple.d.ts.map +1 -0
- package/build/src/components/example/CameraCaptureExSimple.js.map +1 -0
- package/build/src/components/example/DynamicTemplateExample.d.ts.map +1 -0
- package/build/src/components/example/DynamicTemplateExample.js.map +1 -0
- package/build/src/components/example/OrientationVideoExample.d.ts.map +1 -0
- package/build/src/components/example/OrientationVideoExample.js.map +1 -0
- package/build/src/components/example/SelfieCaptureEx.d.ts.map +1 -0
- package/build/src/components/example/SelfieCaptureEx.js.map +1 -0
- package/build/src/components/ui/Button.d.ts.map +1 -0
- package/build/src/components/ui/Button.js.map +1 -0
- package/build/src/components/ui/ButtonExample.d.ts.map +1 -0
- package/build/src/components/ui/ButtonExample.js.map +1 -0
- package/build/src/components/ui/ButtonStyles.d.ts.map +1 -0
- package/build/src/components/ui/ButtonStyles.js.map +1 -0
- package/build/src/config/KYCConfig.d.ts.map +1 -0
- package/build/src/config/KYCConfig.js.map +1 -0
- package/build/src/config/KYCConfigs.d.ts.map +1 -0
- package/build/src/config/KYCConfigs.js.map +1 -0
- package/build/src/config/allowedDomains.d.ts.map +1 -0
- package/build/src/config/allowedDomains.js.map +1 -0
- package/build/src/config/countriesData.d.ts.map +1 -0
- package/build/src/config/countriesData.js.map +1 -0
- package/build/src/config/region_mapping.d.ts.map +1 -0
- package/build/src/config/region_mapping.js.map +1 -0
- package/build/src/hooks/useI18n.d.ts.map +1 -0
- package/build/src/hooks/useI18n.js.map +1 -0
- package/build/src/hooks/useKYC.d.ts.map +1 -0
- package/build/src/hooks/useKYC.js.map +1 -0
- package/build/src/hooks/useKYCFlow.d.ts.map +1 -0
- package/build/src/hooks/useKYCFlow.js.map +1 -0
- package/build/src/hooks/useLocation.d.ts.map +1 -0
- package/build/src/hooks/useLocation.js.map +1 -0
- package/build/src/hooks/useOrientationVideo.d.ts.map +1 -0
- package/build/src/hooks/useOrientationVideo.js.map +1 -0
- package/build/src/hooks/useRealtimeVerifier.d.ts.map +1 -0
- package/build/src/hooks/useRealtimeVerifier.js.map +1 -0
- package/build/{hooks → src/hooks}/useTemplateKYCFlow.d.ts +2 -1
- package/build/src/hooks/useTemplateKYCFlow.d.ts.map +1 -0
- package/build/{hooks → src/hooks}/useTemplateKYCFlow.js +25 -7
- package/build/src/hooks/useTemplateKYCFlow.js.map +1 -0
- package/build/src/hooks/useTemplateLoader.d.ts.map +1 -0
- package/build/src/hooks/useTemplateLoader.js.map +1 -0
- package/build/{i18n → src/i18n}/en/index.d.ts.map +1 -1
- package/build/src/i18n/en/index.js.map +1 -0
- package/build/{i18n → src/i18n}/fr/index.d.ts.map +1 -1
- package/build/src/i18n/fr/index.js.map +1 -0
- package/build/src/i18n/index.d.ts.map +1 -0
- package/build/src/i18n/index.js.map +1 -0
- package/build/src/i18n/types.d.ts.map +1 -0
- package/build/src/i18n/types.js.map +1 -0
- package/build/src/i18n/usage-example.d.ts.map +1 -0
- package/build/src/i18n/usage-example.js.map +1 -0
- package/build/src/index.d.ts.map +1 -0
- package/build/src/index.js.map +1 -0
- package/build/src/modules/api/CardAuthentification.d.ts.map +1 -0
- package/build/src/modules/api/CardAuthentification.js.map +1 -0
- package/build/src/modules/api/KYCService.d.ts.map +1 -0
- package/build/{modules → src/modules}/api/KYCService.js +2 -2
- package/build/src/modules/api/KYCService.js.map +1 -0
- package/build/src/modules/api/SelfieVerification.d.ts.map +1 -0
- package/build/src/modules/api/SelfieVerification.js.map +1 -0
- package/build/src/modules/api/TemplateService.d.ts.map +1 -0
- package/build/src/modules/api/TemplateService.js.map +1 -0
- package/build/src/modules/api/backendApi.d.ts.map +1 -0
- package/build/src/modules/api/backendApi.js.map +1 -0
- package/build/src/modules/api/types.d.ts.map +1 -0
- package/build/src/modules/api/types.js.map +1 -0
- package/build/src/modules/camera/NativeCameraModule.d.ts.map +1 -0
- package/build/src/modules/camera/NativeCameraModule.js.map +1 -0
- package/build/src/modules/camera/UnifiedCameraModule.d.ts.map +1 -0
- package/build/src/modules/camera/UnifiedCameraModule.js.map +1 -0
- package/build/src/modules/camera/VisionCameraModule.d.ts.map +1 -0
- package/build/src/modules/camera/VisionCameraModule.js.map +1 -0
- package/build/src/modules/camera/VisionCameraModule.web.d.ts.map +1 -0
- package/build/src/modules/camera/VisionCameraModule.web.js.map +1 -0
- package/build/src/modules/camera/index.d.ts.map +1 -0
- package/build/src/modules/camera/index.js.map +1 -0
- package/build/src/stores/kycStore.d.ts.map +1 -0
- package/build/src/stores/kycStore.js.map +1 -0
- package/build/src/types/KYC.types.d.ts.map +1 -0
- package/build/src/types/KYC.types.js.map +1 -0
- package/build/src/types/env.types.d.ts.map +1 -0
- package/build/src/types/env.types.js.map +1 -0
- package/build/src/utils/cropByObb.d.ts.map +1 -0
- package/build/src/utils/cropByObb.js.map +1 -0
- package/build/src/utils/deviceDetection.d.ts.map +1 -0
- package/build/src/utils/deviceDetection.js.map +1 -0
- package/build/src/utils/get-document-type-info.d.ts.map +1 -0
- package/build/src/utils/get-document-type-info.js.map +1 -0
- package/build/src/utils/logger.d.ts.map +1 -0
- package/build/src/utils/logger.js.map +1 -0
- package/build/src/utils/pathToBase64.d.ts.map +1 -0
- package/build/src/utils/pathToBase64.js.map +1 -0
- package/build/src/utils/platformAlert.d.ts.map +1 -0
- package/build/src/utils/platformAlert.js.map +1 -0
- package/build/src/utils/remove-duplicate.d.ts.map +1 -0
- package/build/src/utils/remove-duplicate.js.map +1 -0
- package/build/src/utils/template-transformer.d.ts.map +1 -0
- package/build/src/utils/template-transformer.js.map +1 -0
- package/build/src/web/WebKYCEntry.d.ts.map +1 -0
- package/build/{web → src/web}/WebKYCEntry.js +57 -40
- package/build/src/web/WebKYCEntry.js.map +1 -0
- package/build/src/web/index.d.ts.map +1 -0
- package/build/src/web/index.js.map +1 -0
- package/package.json +1 -1
- package/src/components/KYCElements/WelcomeTemplate.tsx +9 -0
- package/src/components/TemplateKYCExample.tsx +3 -1
- package/src/components/TemplateKYCFlowRefactored.tsx +3 -0
- package/src/hooks/useTemplateKYCFlow.tsx +27 -5
- package/src/modules/api/KYCService.ts +2 -2
- package/src/web/WebKYCEntry.tsx +59 -48
- package/build/App.d.ts.map +0 -1
- package/build/App.js.map +0 -1
- package/build/TransfergratisSdk.types.d.ts.map +0 -1
- package/build/TransfergratisSdk.types.js.map +0 -1
- package/build/TransfergratisSdkModule.d.ts.map +0 -1
- package/build/TransfergratisSdkModule.js.map +0 -1
- package/build/TransfergratisSdkModule.web.d.ts.map +0 -1
- package/build/TransfergratisSdkModule.web.js.map +0 -1
- package/build/TransfergratisSdkView.d.ts.map +0 -1
- package/build/TransfergratisSdkView.js.map +0 -1
- package/build/TransfergratisSdkView.web.d.ts.map +0 -1
- package/build/TransfergratisSdkView.web.js.map +0 -1
- package/build/api/axios.d.ts.map +0 -1
- package/build/api/axios.js.map +0 -1
- package/build/components/Camera/index.d.ts.map +0 -1
- package/build/components/Camera/index.js.map +0 -1
- package/build/components/Camera/index.web.d.ts.map +0 -1
- package/build/components/Camera/index.web.js.map +0 -1
- package/build/components/Camera/types.d.ts.map +0 -1
- package/build/components/Camera/types.js.map +0 -1
- package/build/components/ConfigurableKYCFlow.d.ts.map +0 -1
- package/build/components/ConfigurableKYCFlow.js.map +0 -1
- package/build/components/CustomCameraExample.d.ts.map +0 -1
- package/build/components/CustomCameraExample.js.map +0 -1
- package/build/components/EnhancedCameraView.d.ts.map +0 -1
- package/build/components/EnhancedCameraView.js.map +0 -1
- package/build/components/EnhancedCameraView.web.d.ts.map +0 -1
- package/build/components/EnhancedCameraView.web.js.map +0 -1
- package/build/components/FileUpload.d.ts.map +0 -1
- package/build/components/FileUpload.js.map +0 -1
- package/build/components/KYCElementRenderer.d.ts.map +0 -1
- package/build/components/KYCElementRenderer.js.map +0 -1
- package/build/components/KYCElements/AdditionalDocumentsTemplate.d.ts.map +0 -1
- package/build/components/KYCElements/AdditionalDocumentsTemplate.js.map +0 -1
- package/build/components/KYCElements/CameraCapture.d.ts.map +0 -1
- package/build/components/KYCElements/CameraCapture.js.map +0 -1
- package/build/components/KYCElements/CompletionStep.d.ts.map +0 -1
- package/build/components/KYCElements/CompletionStep.js.map +0 -1
- package/build/components/KYCElements/CountrySelection.d.ts.map +0 -1
- package/build/components/KYCElements/CountrySelection.js.map +0 -1
- package/build/components/KYCElements/CountrySelectionTemplate.d.ts.map +0 -1
- package/build/components/KYCElements/CountrySelectionTemplate.js.map +0 -1
- package/build/components/KYCElements/DocumentTypeSelection.d.ts.map +0 -1
- package/build/components/KYCElements/DocumentTypeSelection.js.map +0 -1
- package/build/components/KYCElements/EmailVerificationTemplate.d.ts.map +0 -1
- package/build/components/KYCElements/EmailVerificationTemplate.js.map +0 -1
- package/build/components/KYCElements/FileUpload.d.ts.map +0 -1
- package/build/components/KYCElements/FileUpload.js.map +0 -1
- package/build/components/KYCElements/FileUploadTemplate.d.ts.map +0 -1
- package/build/components/KYCElements/FileUploadTemplate.js.map +0 -1
- package/build/components/KYCElements/IDCardCapture.d.ts.map +0 -1
- package/build/components/KYCElements/IDCardCapture.js.map +0 -1
- package/build/components/KYCElements/InitializationStep.d.ts.map +0 -1
- package/build/components/KYCElements/InitializationStep.js.map +0 -1
- package/build/components/KYCElements/LocationCaptureTemplate.d.ts.map +0 -1
- package/build/components/KYCElements/LocationCaptureTemplate.js.map +0 -1
- package/build/components/KYCElements/OrientationVideoCapture.d.ts.map +0 -1
- package/build/components/KYCElements/OrientationVideoCapture.js.map +0 -1
- package/build/components/KYCElements/OrientationVideoCaptureEnhanced.d.ts.map +0 -1
- package/build/components/KYCElements/OrientationVideoCaptureEnhanced.js.map +0 -1
- package/build/components/KYCElements/OrientationVideoCaptureFinal.d.ts.map +0 -1
- package/build/components/KYCElements/OrientationVideoCaptureFinal.js.map +0 -1
- package/build/components/KYCElements/PersonalInformationTemplate.d.ts.map +0 -1
- package/build/components/KYCElements/PersonalInformationTemplate.js.map +0 -1
- package/build/components/KYCElements/PhoneVerificationTemplate.d.ts.map +0 -1
- package/build/components/KYCElements/PhoneVerificationTemplate.js.map +0 -1
- package/build/components/KYCElements/ReviewSubmitTemplate.d.ts.map +0 -1
- package/build/components/KYCElements/ReviewSubmitTemplate.js.map +0 -1
- package/build/components/KYCElements/SelfieCapture.d.ts.map +0 -1
- package/build/components/KYCElements/SelfieCapture.js.map +0 -1
- package/build/components/KYCElements/SelfieCaptureTemplate.d.ts.map +0 -1
- package/build/components/KYCElements/SelfieCaptureTemplate.js.map +0 -1
- package/build/components/KYCElements/VerificationProgressTemplate.d.ts.map +0 -1
- package/build/components/KYCElements/VerificationProgressTemplate.js.map +0 -1
- package/build/components/KYCElements/VerificationStep.d.ts.map +0 -1
- package/build/components/KYCElements/VerificationStep.js.map +0 -1
- package/build/components/KYCElements/WelcomeTemplate.d.ts.map +0 -1
- package/build/components/KYCElements/WelcomeTemplate.js.map +0 -1
- package/build/components/KYCExample.d.ts.map +0 -1
- package/build/components/KYCExample.js.map +0 -1
- package/build/components/KYCFlow.d.ts.map +0 -1
- package/build/components/KYCFlow.js.map +0 -1
- package/build/components/NativeCameraView.d.ts.map +0 -1
- package/build/components/NativeCameraView.js.map +0 -1
- package/build/components/OverLay/IdCard.d.ts.map +0 -1
- package/build/components/OverLay/IdCard.js.map +0 -1
- package/build/components/OverLay/SelfieOverlay.d.ts.map +0 -1
- package/build/components/OverLay/SelfieOverlay.js.map +0 -1
- package/build/components/OverLay/StepOverlay.d.ts.map +0 -1
- package/build/components/OverLay/StepOverlay.js.map +0 -1
- package/build/components/OverLay/type.d.ts.map +0 -1
- package/build/components/OverLay/type.js.map +0 -1
- package/build/components/ProgressIndicator.d.ts.map +0 -1
- package/build/components/ProgressIndicator.js.map +0 -1
- package/build/components/SelfieCapture.d.ts.map +0 -1
- package/build/components/SelfieCapture.js.map +0 -1
- package/build/components/SimpleExample.d.ts.map +0 -1
- package/build/components/SimpleExample.js.map +0 -1
- package/build/components/Svgs/GpsIcon.d.ts.map +0 -1
- package/build/components/Svgs/GpsIcon.js.map +0 -1
- package/build/components/Svgs/Schield.d.ts.map +0 -1
- package/build/components/Svgs/Schield.js.map +0 -1
- package/build/components/Svgs/frontSelfieIcon.d.ts.map +0 -1
- package/build/components/Svgs/frontSelfieIcon.js.map +0 -1
- package/build/components/Svgs/scanningLine.d.ts.map +0 -1
- package/build/components/Svgs/scanningLine.js.map +0 -1
- package/build/components/Svgs/sideSelfieIcon.d.ts.map +0 -1
- package/build/components/Svgs/sideSelfieIcon.js.map +0 -1
- package/build/components/TemplateKYCExample.d.ts.map +0 -1
- package/build/components/TemplateKYCExample.js.map +0 -1
- package/build/components/TemplateKYCFlowRefactored.d.ts.map +0 -1
- package/build/components/TemplateKYCFlowRefactored.js.map +0 -1
- package/build/components/VisionCameraView.d.ts.map +0 -1
- package/build/components/VisionCameraView.js.map +0 -1
- package/build/components/example/CameraCaptureEx.d.ts.map +0 -1
- package/build/components/example/CameraCaptureEx.js.map +0 -1
- package/build/components/example/CameraCaptureExAdvanced.d.ts.map +0 -1
- package/build/components/example/CameraCaptureExAdvanced.js.map +0 -1
- package/build/components/example/CameraCaptureExScan.d.ts.map +0 -1
- package/build/components/example/CameraCaptureExScan.js.map +0 -1
- package/build/components/example/CameraCaptureExSimple.d.ts.map +0 -1
- package/build/components/example/CameraCaptureExSimple.js.map +0 -1
- package/build/components/example/DynamicTemplateExample.d.ts.map +0 -1
- package/build/components/example/DynamicTemplateExample.js.map +0 -1
- package/build/components/example/OrientationVideoExample.d.ts.map +0 -1
- package/build/components/example/OrientationVideoExample.js.map +0 -1
- package/build/components/example/SelfieCaptureEx.d.ts.map +0 -1
- package/build/components/example/SelfieCaptureEx.js.map +0 -1
- package/build/components/ui/Button.d.ts.map +0 -1
- package/build/components/ui/Button.js.map +0 -1
- package/build/components/ui/ButtonExample.d.ts.map +0 -1
- package/build/components/ui/ButtonExample.js.map +0 -1
- package/build/components/ui/ButtonStyles.d.ts.map +0 -1
- package/build/components/ui/ButtonStyles.js.map +0 -1
- package/build/config/KYCConfig.d.ts.map +0 -1
- package/build/config/KYCConfig.js.map +0 -1
- package/build/config/KYCConfigs.d.ts.map +0 -1
- package/build/config/KYCConfigs.js.map +0 -1
- package/build/config/allowedDomains.d.ts.map +0 -1
- package/build/config/allowedDomains.js.map +0 -1
- package/build/config/countriesData.d.ts.map +0 -1
- package/build/config/countriesData.js.map +0 -1
- package/build/config/region_mapping.d.ts.map +0 -1
- package/build/config/region_mapping.js.map +0 -1
- package/build/hooks/useI18n.d.ts.map +0 -1
- package/build/hooks/useI18n.js.map +0 -1
- package/build/hooks/useKYC.d.ts.map +0 -1
- package/build/hooks/useKYC.js.map +0 -1
- package/build/hooks/useKYCFlow.d.ts.map +0 -1
- package/build/hooks/useKYCFlow.js.map +0 -1
- package/build/hooks/useLocation.d.ts.map +0 -1
- package/build/hooks/useLocation.js.map +0 -1
- package/build/hooks/useOrientationVideo.d.ts.map +0 -1
- package/build/hooks/useOrientationVideo.js.map +0 -1
- package/build/hooks/useRealtimeVerifier.d.ts.map +0 -1
- package/build/hooks/useRealtimeVerifier.js.map +0 -1
- package/build/hooks/useTemplateKYCFlow.d.ts.map +0 -1
- package/build/hooks/useTemplateKYCFlow.js.map +0 -1
- package/build/hooks/useTemplateLoader.d.ts.map +0 -1
- package/build/hooks/useTemplateLoader.js.map +0 -1
- package/build/i18n/en/index.js.map +0 -1
- package/build/i18n/fr/index.js.map +0 -1
- package/build/i18n/index.d.ts.map +0 -1
- package/build/i18n/index.js.map +0 -1
- package/build/i18n/types.d.ts.map +0 -1
- package/build/i18n/types.js.map +0 -1
- package/build/i18n/usage-example.d.ts.map +0 -1
- package/build/i18n/usage-example.js.map +0 -1
- package/build/index.d.ts.map +0 -1
- package/build/index.js.map +0 -1
- package/build/modules/api/CardAuthentification.d.ts.map +0 -1
- package/build/modules/api/CardAuthentification.js.map +0 -1
- package/build/modules/api/KYCService.d.ts.map +0 -1
- package/build/modules/api/KYCService.js.map +0 -1
- package/build/modules/api/SelfieVerification.d.ts.map +0 -1
- package/build/modules/api/SelfieVerification.js.map +0 -1
- package/build/modules/api/TemplateService.d.ts.map +0 -1
- package/build/modules/api/TemplateService.js.map +0 -1
- package/build/modules/api/backendApi.d.ts.map +0 -1
- package/build/modules/api/backendApi.js.map +0 -1
- package/build/modules/api/types.d.ts.map +0 -1
- package/build/modules/api/types.js.map +0 -1
- package/build/modules/camera/NativeCameraModule.d.ts.map +0 -1
- package/build/modules/camera/NativeCameraModule.js.map +0 -1
- package/build/modules/camera/UnifiedCameraModule.d.ts.map +0 -1
- package/build/modules/camera/UnifiedCameraModule.js.map +0 -1
- package/build/modules/camera/VisionCameraModule.d.ts.map +0 -1
- package/build/modules/camera/VisionCameraModule.js.map +0 -1
- package/build/modules/camera/VisionCameraModule.web.d.ts.map +0 -1
- package/build/modules/camera/VisionCameraModule.web.js.map +0 -1
- package/build/modules/camera/index.d.ts.map +0 -1
- package/build/modules/camera/index.js.map +0 -1
- package/build/stores/kycStore.d.ts.map +0 -1
- package/build/stores/kycStore.js.map +0 -1
- package/build/types/KYC.types.d.ts.map +0 -1
- package/build/types/KYC.types.js.map +0 -1
- package/build/types/env.types.d.ts.map +0 -1
- package/build/types/env.types.js.map +0 -1
- package/build/utils/cropByObb.d.ts.map +0 -1
- package/build/utils/cropByObb.js.map +0 -1
- package/build/utils/deviceDetection.d.ts.map +0 -1
- package/build/utils/deviceDetection.js.map +0 -1
- package/build/utils/get-document-type-info.d.ts.map +0 -1
- package/build/utils/get-document-type-info.js.map +0 -1
- package/build/utils/logger.d.ts.map +0 -1
- package/build/utils/logger.js.map +0 -1
- package/build/utils/pathToBase64.d.ts.map +0 -1
- package/build/utils/pathToBase64.js.map +0 -1
- package/build/utils/platformAlert.d.ts.map +0 -1
- package/build/utils/platformAlert.js.map +0 -1
- package/build/utils/remove-duplicate.d.ts.map +0 -1
- package/build/utils/remove-duplicate.js.map +0 -1
- package/build/utils/template-transformer.d.ts.map +0 -1
- package/build/utils/template-transformer.js.map +0 -1
- package/build/web/WebKYCEntry.d.ts.map +0 -1
- package/build/web/WebKYCEntry.js.map +0 -1
- package/build/web/index.d.ts.map +0 -1
- package/build/web/index.js.map +0 -1
- /package/build/{App.d.ts → src/App.d.ts} +0 -0
- /package/build/{App.js → src/App.js} +0 -0
- /package/build/{TransfergratisSdk.types.d.ts → src/TransfergratisSdk.types.d.ts} +0 -0
- /package/build/{TransfergratisSdk.types.js → src/TransfergratisSdk.types.js} +0 -0
- /package/build/{TransfergratisSdkModule.d.ts → src/TransfergratisSdkModule.d.ts} +0 -0
- /package/build/{TransfergratisSdkModule.js → src/TransfergratisSdkModule.js} +0 -0
- /package/build/{TransfergratisSdkModule.web.d.ts → src/TransfergratisSdkModule.web.d.ts} +0 -0
- /package/build/{TransfergratisSdkModule.web.js → src/TransfergratisSdkModule.web.js} +0 -0
- /package/build/{TransfergratisSdkView.d.ts → src/TransfergratisSdkView.d.ts} +0 -0
- /package/build/{TransfergratisSdkView.js → src/TransfergratisSdkView.js} +0 -0
- /package/build/{TransfergratisSdkView.web.d.ts → src/TransfergratisSdkView.web.d.ts} +0 -0
- /package/build/{TransfergratisSdkView.web.js → src/TransfergratisSdkView.web.js} +0 -0
- /package/build/{api → src/api}/axios.d.ts +0 -0
- /package/build/{api → src/api}/axios.js +0 -0
- /package/build/{components → src/components}/Camera/index.d.ts +0 -0
- /package/build/{components → src/components}/Camera/index.js +0 -0
- /package/build/{components → src/components}/Camera/index.web.d.ts +0 -0
- /package/build/{components → src/components}/Camera/index.web.js +0 -0
- /package/build/{components → src/components}/Camera/types.d.ts +0 -0
- /package/build/{components → src/components}/Camera/types.js +0 -0
- /package/build/{components → src/components}/ConfigurableKYCFlow.d.ts +0 -0
- /package/build/{components → src/components}/ConfigurableKYCFlow.js +0 -0
- /package/build/{components → src/components}/CustomCameraExample.d.ts +0 -0
- /package/build/{components → src/components}/CustomCameraExample.js +0 -0
- /package/build/{components → src/components}/EnhancedCameraView.d.ts +0 -0
- /package/build/{components → src/components}/EnhancedCameraView.js +0 -0
- /package/build/{components → src/components}/EnhancedCameraView.web.d.ts +0 -0
- /package/build/{components → src/components}/EnhancedCameraView.web.js +0 -0
- /package/build/{components → src/components}/FileUpload.d.ts +0 -0
- /package/build/{components → src/components}/FileUpload.js +0 -0
- /package/build/{components → src/components}/KYCElementRenderer.d.ts +0 -0
- /package/build/{components → src/components}/KYCElementRenderer.js +0 -0
- /package/build/{components → src/components}/KYCElements/AdditionalDocumentsTemplate.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/AdditionalDocumentsTemplate.js +0 -0
- /package/build/{components → src/components}/KYCElements/CameraCapture.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/CameraCapture.js +0 -0
- /package/build/{components → src/components}/KYCElements/CompletionStep.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/CompletionStep.js +0 -0
- /package/build/{components → src/components}/KYCElements/CountrySelection.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/CountrySelection.js +0 -0
- /package/build/{components → src/components}/KYCElements/CountrySelectionTemplate.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/CountrySelectionTemplate.js +0 -0
- /package/build/{components → src/components}/KYCElements/DocumentTypeSelection.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/DocumentTypeSelection.js +0 -0
- /package/build/{components → src/components}/KYCElements/EmailVerificationTemplate.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/EmailVerificationTemplate.js +0 -0
- /package/build/{components → src/components}/KYCElements/FileUpload.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/FileUpload.js +0 -0
- /package/build/{components → src/components}/KYCElements/FileUploadTemplate.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/FileUploadTemplate.js +0 -0
- /package/build/{components → src/components}/KYCElements/IDCardCapture.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/IDCardCapture.js +0 -0
- /package/build/{components → src/components}/KYCElements/InitializationStep.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/InitializationStep.js +0 -0
- /package/build/{components → src/components}/KYCElements/LocationCaptureTemplate.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/LocationCaptureTemplate.js +0 -0
- /package/build/{components → src/components}/KYCElements/OrientationVideoCapture.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/OrientationVideoCapture.js +0 -0
- /package/build/{components → src/components}/KYCElements/OrientationVideoCaptureEnhanced.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/OrientationVideoCaptureEnhanced.js +0 -0
- /package/build/{components → src/components}/KYCElements/OrientationVideoCaptureFinal.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/OrientationVideoCaptureFinal.js +0 -0
- /package/build/{components → src/components}/KYCElements/PersonalInformationTemplate.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/PersonalInformationTemplate.js +0 -0
- /package/build/{components → src/components}/KYCElements/PhoneVerificationTemplate.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/PhoneVerificationTemplate.js +0 -0
- /package/build/{components → src/components}/KYCElements/ReviewSubmitTemplate.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/ReviewSubmitTemplate.js +0 -0
- /package/build/{components → src/components}/KYCElements/SelfieCapture.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/SelfieCapture.js +0 -0
- /package/build/{components → src/components}/KYCElements/SelfieCaptureTemplate.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/SelfieCaptureTemplate.js +0 -0
- /package/build/{components → src/components}/KYCElements/VerificationProgressTemplate.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/VerificationProgressTemplate.js +0 -0
- /package/build/{components → src/components}/KYCElements/VerificationStep.d.ts +0 -0
- /package/build/{components → src/components}/KYCElements/VerificationStep.js +0 -0
- /package/build/{components → src/components}/KYCElements/WelcomeTemplate.d.ts +0 -0
- /package/build/{components → src/components}/KYCExample.d.ts +0 -0
- /package/build/{components → src/components}/KYCExample.js +0 -0
- /package/build/{components → src/components}/KYCFlow.d.ts +0 -0
- /package/build/{components → src/components}/KYCFlow.js +0 -0
- /package/build/{components → src/components}/NativeCameraView.d.ts +0 -0
- /package/build/{components → src/components}/NativeCameraView.js +0 -0
- /package/build/{components → src/components}/OverLay/IdCard.d.ts +0 -0
- /package/build/{components → src/components}/OverLay/IdCard.js +0 -0
- /package/build/{components → src/components}/OverLay/SelfieOverlay.d.ts +0 -0
- /package/build/{components → src/components}/OverLay/SelfieOverlay.js +0 -0
- /package/build/{components → src/components}/OverLay/StepOverlay.d.ts +0 -0
- /package/build/{components → src/components}/OverLay/StepOverlay.js +0 -0
- /package/build/{components → src/components}/OverLay/type.d.ts +0 -0
- /package/build/{components → src/components}/OverLay/type.js +0 -0
- /package/build/{components → src/components}/ProgressIndicator.d.ts +0 -0
- /package/build/{components → src/components}/ProgressIndicator.js +0 -0
- /package/build/{components → src/components}/SelfieCapture.d.ts +0 -0
- /package/build/{components → src/components}/SelfieCapture.js +0 -0
- /package/build/{components → src/components}/SimpleExample.d.ts +0 -0
- /package/build/{components → src/components}/SimpleExample.js +0 -0
- /package/build/{components → src/components}/Svgs/GpsIcon.d.ts +0 -0
- /package/build/{components → src/components}/Svgs/GpsIcon.js +0 -0
- /package/build/{components → src/components}/Svgs/Schield.d.ts +0 -0
- /package/build/{components → src/components}/Svgs/Schield.js +0 -0
- /package/build/{components → src/components}/Svgs/frontSelfieIcon.d.ts +0 -0
- /package/build/{components → src/components}/Svgs/frontSelfieIcon.js +0 -0
- /package/build/{components → src/components}/Svgs/scanningLine.d.ts +0 -0
- /package/build/{components → src/components}/Svgs/scanningLine.js +0 -0
- /package/build/{components → src/components}/Svgs/sideSelfieIcon.d.ts +0 -0
- /package/build/{components → src/components}/Svgs/sideSelfieIcon.js +0 -0
- /package/build/{components → src/components}/VisionCameraView.d.ts +0 -0
- /package/build/{components → src/components}/VisionCameraView.js +0 -0
- /package/build/{components → src/components}/example/CameraCaptureEx.d.ts +0 -0
- /package/build/{components → src/components}/example/CameraCaptureEx.js +0 -0
- /package/build/{components → src/components}/example/CameraCaptureExAdvanced.d.ts +0 -0
- /package/build/{components → src/components}/example/CameraCaptureExAdvanced.js +0 -0
- /package/build/{components → src/components}/example/CameraCaptureExScan.d.ts +0 -0
- /package/build/{components → src/components}/example/CameraCaptureExScan.js +0 -0
- /package/build/{components → src/components}/example/CameraCaptureExSimple.d.ts +0 -0
- /package/build/{components → src/components}/example/CameraCaptureExSimple.js +0 -0
- /package/build/{components → src/components}/example/DynamicTemplateExample.d.ts +0 -0
- /package/build/{components → src/components}/example/DynamicTemplateExample.js +0 -0
- /package/build/{components → src/components}/example/OrientationVideoExample.d.ts +0 -0
- /package/build/{components → src/components}/example/OrientationVideoExample.js +0 -0
- /package/build/{components → src/components}/example/SelfieCaptureEx.d.ts +0 -0
- /package/build/{components → src/components}/example/SelfieCaptureEx.js +0 -0
- /package/build/{components → src/components}/ui/Button.d.ts +0 -0
- /package/build/{components → src/components}/ui/Button.js +0 -0
- /package/build/{components → src/components}/ui/ButtonExample.d.ts +0 -0
- /package/build/{components → src/components}/ui/ButtonExample.js +0 -0
- /package/build/{components → src/components}/ui/ButtonStyles.d.ts +0 -0
- /package/build/{components → src/components}/ui/ButtonStyles.js +0 -0
- /package/build/{config → src/config}/KYCConfig.d.ts +0 -0
- /package/build/{config → src/config}/KYCConfig.js +0 -0
- /package/build/{config → src/config}/KYCConfigs.d.ts +0 -0
- /package/build/{config → src/config}/KYCConfigs.js +0 -0
- /package/build/{config → src/config}/allowedDomains.d.ts +0 -0
- /package/build/{config → src/config}/allowedDomains.js +0 -0
- /package/build/{config → src/config}/countriesData.d.ts +0 -0
- /package/build/{config → src/config}/countriesData.js +0 -0
- /package/build/{config → src/config}/region_mapping.d.ts +0 -0
- /package/build/{config → src/config}/region_mapping.js +0 -0
- /package/build/{hooks → src/hooks}/useI18n.d.ts +0 -0
- /package/build/{hooks → src/hooks}/useI18n.js +0 -0
- /package/build/{hooks → src/hooks}/useKYC.d.ts +0 -0
- /package/build/{hooks → src/hooks}/useKYC.js +0 -0
- /package/build/{hooks → src/hooks}/useKYCFlow.d.ts +0 -0
- /package/build/{hooks → src/hooks}/useKYCFlow.js +0 -0
- /package/build/{hooks → src/hooks}/useLocation.d.ts +0 -0
- /package/build/{hooks → src/hooks}/useLocation.js +0 -0
- /package/build/{hooks → src/hooks}/useOrientationVideo.d.ts +0 -0
- /package/build/{hooks → src/hooks}/useOrientationVideo.js +0 -0
- /package/build/{hooks → src/hooks}/useRealtimeVerifier.d.ts +0 -0
- /package/build/{hooks → src/hooks}/useRealtimeVerifier.js +0 -0
- /package/build/{hooks → src/hooks}/useTemplateLoader.d.ts +0 -0
- /package/build/{hooks → src/hooks}/useTemplateLoader.js +0 -0
- /package/build/{i18n → src/i18n}/en/index.d.ts +0 -0
- /package/build/{i18n → src/i18n}/en/index.js +0 -0
- /package/build/{i18n → src/i18n}/fr/index.d.ts +0 -0
- /package/build/{i18n → src/i18n}/fr/index.js +0 -0
- /package/build/{i18n → src/i18n}/index.d.ts +0 -0
- /package/build/{i18n → src/i18n}/index.js +0 -0
- /package/build/{i18n → src/i18n}/types.d.ts +0 -0
- /package/build/{i18n → src/i18n}/types.js +0 -0
- /package/build/{i18n → src/i18n}/usage-example.d.ts +0 -0
- /package/build/{i18n → src/i18n}/usage-example.js +0 -0
- /package/build/{index.d.ts → src/index.d.ts} +0 -0
- /package/build/{index.js → src/index.js} +0 -0
- /package/build/{modules → src/modules}/api/CardAuthentification.d.ts +0 -0
- /package/build/{modules → src/modules}/api/CardAuthentification.js +0 -0
- /package/build/{modules → src/modules}/api/KYCService.d.ts +0 -0
- /package/build/{modules → src/modules}/api/SelfieVerification.d.ts +0 -0
- /package/build/{modules → src/modules}/api/SelfieVerification.js +0 -0
- /package/build/{modules → src/modules}/api/TemplateService.d.ts +0 -0
- /package/build/{modules → src/modules}/api/TemplateService.js +0 -0
- /package/build/{modules → src/modules}/api/backendApi.d.ts +0 -0
- /package/build/{modules → src/modules}/api/backendApi.js +0 -0
- /package/build/{modules → src/modules}/api/types.d.ts +0 -0
- /package/build/{modules → src/modules}/api/types.js +0 -0
- /package/build/{modules → src/modules}/camera/NativeCameraModule.d.ts +0 -0
- /package/build/{modules → src/modules}/camera/NativeCameraModule.js +0 -0
- /package/build/{modules → src/modules}/camera/UnifiedCameraModule.d.ts +0 -0
- /package/build/{modules → src/modules}/camera/UnifiedCameraModule.js +0 -0
- /package/build/{modules → src/modules}/camera/VisionCameraModule.d.ts +0 -0
- /package/build/{modules → src/modules}/camera/VisionCameraModule.js +0 -0
- /package/build/{modules → src/modules}/camera/VisionCameraModule.web.d.ts +0 -0
- /package/build/{modules → src/modules}/camera/VisionCameraModule.web.js +0 -0
- /package/build/{modules → src/modules}/camera/index.d.ts +0 -0
- /package/build/{modules → src/modules}/camera/index.js +0 -0
- /package/build/{stores → src/stores}/kycStore.d.ts +0 -0
- /package/build/{stores → src/stores}/kycStore.js +0 -0
- /package/build/{types → src/types}/KYC.types.d.ts +0 -0
- /package/build/{types → src/types}/KYC.types.js +0 -0
- /package/build/{types → src/types}/env.types.d.ts +0 -0
- /package/build/{types → src/types}/env.types.js +0 -0
- /package/build/{utils → src/utils}/cropByObb.d.ts +0 -0
- /package/build/{utils → src/utils}/cropByObb.js +0 -0
- /package/build/{utils → src/utils}/deviceDetection.d.ts +0 -0
- /package/build/{utils → src/utils}/deviceDetection.js +0 -0
- /package/build/{utils → src/utils}/get-document-type-info.d.ts +0 -0
- /package/build/{utils → src/utils}/get-document-type-info.js +0 -0
- /package/build/{utils → src/utils}/logger.d.ts +0 -0
- /package/build/{utils → src/utils}/logger.js +0 -0
- /package/build/{utils → src/utils}/pathToBase64.d.ts +0 -0
- /package/build/{utils → src/utils}/pathToBase64.js +0 -0
- /package/build/{utils → src/utils}/platformAlert.d.ts +0 -0
- /package/build/{utils → src/utils}/platformAlert.js +0 -0
- /package/build/{utils → src/utils}/remove-duplicate.d.ts +0 -0
- /package/build/{utils → src/utils}/remove-duplicate.js +0 -0
- /package/build/{utils → src/utils}/template-transformer.d.ts +0 -0
- /package/build/{utils → src/utils}/template-transformer.js +0 -0
- /package/build/{web → src/web}/WebKYCEntry.d.ts +0 -0
- /package/build/{web → src/web}/index.d.ts +0 -0
- /package/build/{web → src/web}/index.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"allowedDomains.js","sourceRoot":"","sources":["../../src/config/allowedDomains.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Allowed domains configuration for callback URL validation\n * These domains are permitted to receive KYC completion callbacks\n */\n\nexport interface AllowedDomainConfig {\n domains: string[];\n enforceHttps: boolean;\n allowLocalhost: boolean;\n}\n\n// Default configuration - can be overridden via environment variables\nconst DEFAULT_CONFIG: AllowedDomainConfig = {\n domains: [\n 'transfergratis.com',\n 'www.transfergratis.com',\n 'admin.transfergratis.com',\n 'dashboard.transfergratis.com',\n 'preweb.transfergratis.net',\n // Add other trusted domains here\n ],\n enforceHttps: true,\n allowLocalhost: true, // Allow localhost for development\n};\n\n/**\n * Get allowed domains from environment or use defaults\n */\nexport const getAllowedDomainsConfig = (): AllowedDomainConfig => {\n // Check for environment variable override\n if (typeof window !== 'undefined' && (window as any).KYC_ALLOWED_DOMAINS) {\n const envDomains = (window as any).KYC_ALLOWED_DOMAINS;\n if (Array.isArray(envDomains)) {\n return {\n ...DEFAULT_CONFIG,\n domains: envDomains,\n };\n }\n }\n\n return DEFAULT_CONFIG;\n};\n\n/**\n * Check if a domain is in the allowed list\n */\nexport const isDomainAllowed = (domain: string): boolean => {\n const config = getAllowedDomainsConfig();\n\n // Allow localhost in development\n if (config.allowLocalhost && (domain === 'localhost' || domain.startsWith('127.0.0.1'))) {\n return true;\n }\n\n // Check if domain matches any in the allowed list\n return config.domains.some(allowedDomain => {\n // Exact match\n if (domain === allowedDomain) {\n return true;\n }\n\n // Subdomain match (e.g., app.transfergratis.com matches transfergratis.com)\n if (domain.endsWith('.' + allowedDomain)) {\n return true;\n }\n\n return false;\n });\n};\n\n/**\n * Validate if a URL is allowed for callback\n */\nexport const isCallbackUrlAllowed = (url: string): { allowed: boolean; reason?: string } => {\n try {\n // Check if valid URL\n new URL(url);\n // Allow all URLs for redirection as requested\n return { allowed: true };\n } catch (error) {\n return {\n allowed: false,\n reason: 'Invalid URL format',\n };\n }\n};\n\n/**\n * Generate a signature for the callback URL parameters\n * This can be used to verify the integrity of the callback\n */\nexport const generateCallbackSignature = async (\n params: Record<string, string>,\n secret?: string\n): Promise<string> => {\n // Only generate signature if secret is provided\n if (!secret) {\n return '';\n }\n\n // Sort params for consistent signature\n const sortedParams = Object.keys(params)\n .sort()\n .map(key => `${key}=${params[key]}`)\n .join('&');\n\n const data = `${sortedParams}:${secret}`;\n\n // Use Web Crypto API for signature generation\n if (typeof window !== 'undefined' && window.crypto && window.crypto.subtle) {\n try {\n const encoder = new TextEncoder();\n const dataBuffer = encoder.encode(data);\n const hashBuffer = await window.crypto.subtle.digest('SHA-256', dataBuffer);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');\n return hashHex;\n } catch (error) {\n console.error('Error generating signature:', error);\n return '';\n }\n }\n\n // Fallback: simple hash for environments without Web Crypto API\n let hash = 0;\n for (let i = 0; i < data.length; i++) {\n const char = data.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash = hash & hash;\n }\n return Math.abs(hash).toString(16);\n};\n\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"countriesData.d.ts","sourceRoot":"","sources":["../../src/config/countriesData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAM7C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CA8E/C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"countriesData.js","sourceRoot":"","sources":["../../src/config/countriesData.ts"],"names":[],"mappings":"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","sourcesContent":["import { Country } from \"../types/KYC.types\";\n\n\n\n\n\nexport const countryData: Record<string, Country> = {\n FR: { name: 'France', name_en: \"France\", flag: '🇫🇷' },\n CM: { name: 'Cameroun', name_en: \"Cameroon\", flag: '🇨🇲' },\n US: { name: 'États-Unis', name_en: \"United States of America\", flag: '🇺🇸' },\n DE: { name: 'Allemagne', name_en: \"Germany\", flag: '🇩🇪' },\n BE: { name: 'Belgique', name_en: \"Belgium\", flag: '🇧🇪' },\n LU: { name: 'Luxembourg', name_en: \"Luxembourg\", flag: '🇱🇺' },\n IT: { name: 'Italie', name_en: \"Italy\", flag: '🇮🇹' },\n ES: { name: 'Espagne', name_en: \"Spain\", flag: '🇪🇸' },\n PT: { name: 'Portugal', name_en: \"Portugal\", flag: '🇵🇹' },\n AT: { name: 'Autriche', name_en: \"Austria\", flag: '🇦🇹' },\n CH: { name: 'Suisse', name_en: \"Switzerland\", flag: '🇨🇭' },\n NL: { name: 'Pays-Bas', name_en: \"Netherlands\", flag: '🇳🇱' },\n CA: { name: 'Canada', name_en: \"Canada\", flag: '🇨🇦', hasRegions: true },\n GB: { name: 'Royaume-Uni', name_en: \"United Kingdom\", flag: '🇬🇧' },\n AU: { name: 'Australie', name_en: \"Australia\", flag: '🇦🇺' },\n JP: { name: 'Japon', name_en: \"Japan\", flag: '🇯🇵' },\n KR: { name: 'Corée du Sud', name_en: \"South Korea\", flag: '🇰🇷' },\n SG: { name: 'Singapour', name_en: \"Singapore\", flag: '🇸🇬' },\n HK: { name: 'Hong Kong', name_en: \"Hong Kong\", flag: '🇭🇰' },\n AE: { name: 'Émirats Arabes Unis', name_en: \"United Arab Emirates\", flag: '🇦🇪' },\n SA: { name: 'Arabie Saoudite', name_en: \"Saudi Arabia\", flag: '🇸🇦' },\n QA: { name: 'Qatar', name_en: \"Qatar\", flag: '🇶🇦' },\n KW: { name: 'Koweït', name_en: \"Kuwait\", flag: '🇰🇼' },\n BH: { name: 'Bahreïn', name_en: \"Bahrain\", flag: '🇧🇭' },\n OM: { name: 'Oman', name_en: \"Oman\", flag: '🇴🇲' },\n JO: { name: 'Jordanie', name_en: \"Jordan\", flag: '🇯🇴' },\n LB: { name: 'Liban', name_en: \"Lebanon\", flag: '🇱🇧' },\n EG: { name: 'Égypte', name_en: \"Egypt\", flag: '🇪🇬' },\n MA: { name: 'Maroc', name_en: \"Morocco\", flag: '🇲🇦' },\n TN: { name: 'Tunisie', name_en: \"Tunisia\", flag: '🇹🇳' },\n DZ: { name: 'Algérie', name_en: \"Algeria\", flag: '🇩🇿' },\n SN: { name: 'Sénégal', name_en: \"Senegal\", flag: '🇸🇳' },\n CI: { name: 'Côte d\\'Ivoire', name_en: \"Ivory Coast\", flag: '🇨🇮' },\n NG: { name: 'Nigeria', name_en: \"Nigeria\", flag: '🇳🇬' },\n KE: { name: 'Kenya', name_en: \"Kenya\", flag: '🇰🇪' },\n ZA: { name: 'Afrique du Sud', name_en: \"South Africa\", flag: '🇿🇦' },\n BR: { name: 'Brésil', name_en: \"Brazil\", flag: '🇧🇷' },\n MX: { name: 'Mexique', name_en: \"Mexico\", flag: '🇲🇽' },\n AR: { name: 'Argentine', name_en: \"Argentina\", flag: '🇦🇷' },\n CL: { name: 'Chili', name_en: \"Chile\", flag: '🇨🇱' },\n PE: { name: 'Pérou', name_en: \"Peru\", flag: '🇵🇪' },\n CO: { name: 'Colombie', name_en: \"Colombia\", flag: '🇨🇴' },\n VE: { name: 'Venezuela', name_en: \"Venezuela\", flag: '🇻🇪' },\n EC: { name: 'Équateur', name_en: \"Ecuador\", flag: '🇪🇨' },\n UY: { name: 'Uruguay', name_en: \"Uruguay\", flag: '🇺🇾' },\n PY: { name: 'Paraguay', name_en: \"Paraguay\", flag: '🇵🇾' },\n BO: { name: 'Bolivie', name_en: \"Bolivia\", flag: '🇧🇴' },\n IN: { name: 'Inde', name_en: \"India\", flag: '🇮🇳' },\n CN: { name: 'Chine', name_en: \"China\", flag: '🇨🇳' },\n TH: { name: 'Thaïlande', name_en: \"Thailand\", flag: '🇹🇭' },\n VN: { name: 'Vietnam', name_en: \"Vietnam\", flag: '🇻🇳' },\n ID: { name: 'Indonésie', name_en: \"Indonesia\", flag: '🇮🇩' },\n MY: { name: 'Malaisie', name_en: \"Malaysia\", flag: '🇲🇾' },\n PH: { name: 'Philippines', name_en: \"Philippines\", flag: '🇵🇭' },\n TR: { name: 'Turquie', name_en: \"Turkey\", flag: '🇹🇷' },\n IL: { name: 'Israël', name_en: \"Israel\", flag: '🇮🇱' },\n RU: { name: 'Russie', name_en: \"Russia\", flag: '🇷🇺' },\n UA: { name: 'Ukraine', name_en: \"Ukraine\", flag: '🇺🇦' },\n PL: { name: 'Pologne', name_en: \"Poland\", flag: '🇵🇱' },\n CZ: { name: 'République Tchèque', name_en: \"Czech Republic\", flag: '🇨🇿' },\n HU: { name: 'Hongrie', name_en: \"Hungary\", flag: '🇭🇺' },\n RO: { name: 'Roumanie', name_en: \"Romania\", flag: '🇷🇴' },\n BG: { name: 'Bulgarie', name_en: \"Bulgaria\", flag: '🇧🇬' },\n HR: { name: 'Croatie', name_en: \"Croatia\", flag: '🇭🇷' },\n SI: { name: 'Slovénie', name_en: \"Slovenia\", flag: '🇸🇮' },\n SK: { name: 'Slovaquie', name_en: \"Slovakia\", flag: '🇸🇰' },\n LT: { name: 'Lituanie', name_en: \"Lithuania\", flag: '🇱🇹' },\n LV: { name: 'Lettonie', name_en: \"Latvia\", flag: '🇱🇻' },\n EE: { name: 'Estonie', name_en: \"Estonia\", flag: '🇪🇪' },\n FI: { name: 'Finlande', name_en: \"Finland\", flag: '🇫🇮' },\n SE: { name: 'Suède', name_en: \"Sweden\", flag: '🇸🇪' },\n NO: { name: 'Norvège', name_en: \"Norway\", flag: '🇳🇴' },\n DK: { name: 'Danemark', name_en: \"Denmark\", flag: '🇩🇰' },\n IS: { name: 'Islande', name_en: \"Iceland\", flag: '🇮🇸' },\n IE: { name: 'Irlande', name_en: \"Ireland\", flag: '🇮🇪' },\n NZ: { name: 'Nouvelle-Zélande', name_en: \"New Zealand\", flag: '🇳🇿' },\n GH: { name: 'Ghana', name_en: \"Ghana\", flag: '🇬🇭' },\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"region_mapping.d.ts","sourceRoot":"","sources":["../../src/config/region_mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAstB5F,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"region_mapping.js","sourceRoot":"","sources":["../../src/config/region_mapping.ts"],"names":[],"mappings":"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","sourcesContent":["import { ICountryMapping } from \"../types/KYC.types\";\r\n\r\nexport const countryMapping: Record<string, Record<string, Record<string, ICountryMapping[]>>> = {\r\n \"BE\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"belgium_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"BJ\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"benin_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"benin_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"BR\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"brazil_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"brazil_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GB\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"britain_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"britain_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"BF\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"burkina_faso_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"CM\": {\r\n \"identity_card\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"cameroon_id_back_1_1_new.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_back_2_1.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_back_2_2.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_back_3_1.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD2\"\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_back_3_2.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_front_1_1_new.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_front_2_2.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_front_3_1.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_front_3_2.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"cameroon_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"cameroon_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"CA\": {\r\n \"drivers_licence\": {\r\n \"Alberta\": [\r\n {\r\n \"py_file\": \"alberta_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"alberta_front.py\",\r\n \"front\": \"2D_barcode\"\r\n }\r\n ],\r\n \"British Columbia\": [\r\n {\r\n \"py_file\": \"british_columbia_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"british_columbia_front.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"british_columbia_front_01.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Manitoba\": [\r\n {\r\n \"py_file\": \"manitoba_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"manitoba_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"New Brunswick\": [\r\n {\r\n \"py_file\": \"new_brunswick_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"new_brunswick_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Newfoundland and Labrador\": [\r\n {\r\n \"py_file\": \"newfoundland_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"newfoundland_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Northwest Territories\": [\r\n {\r\n \"py_file\": \"northwest_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"northwest_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Nova Scotia\": [\r\n {\r\n \"py_file\": \"nova_scotia_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"nova_scotia_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Nunavut\": [\r\n {\r\n \"py_file\": \"nunavut_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"nunavut_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Ontario\": [\r\n {\r\n \"py_file\": \"ontario_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"ontario_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Prince Edward Island\": [\r\n {\r\n \"py_file\": \"pe_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"pe_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Quebec\": [\r\n {\r\n \"py_file\": \"quebec_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"quebec_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Saskatchewan\": [\r\n {\r\n \"py_file\": \"saskatchewan_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"saskatchewan_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Yukon\": [\r\n {\r\n \"py_file\": \"yukon_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"yukon_front.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"health_insurance_card\": {\r\n \"Ontario\": [\r\n {\r\n \"py_file\": \"ontario_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"ontario_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Quebec\": [\r\n {\r\n \"py_file\": \"quebec_01_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"quebec_01_front.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"quebec_02_front.py\",\r\n \"front\": \"2D_barcode\"\r\n }\r\n ]\r\n },\r\n \"identity_card\": {\r\n \"Alberta\": [\r\n {\r\n \"py_file\": \"alberta_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"alberta_id_front.py\",\r\n \"front\": \"2D_barcode\"\r\n }\r\n ],\r\n \"British Columbia\": [\r\n {\r\n \"py_file\": \"british_columbia_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"british_columbia_id_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"New Brunswick\": [\r\n {\r\n \"py_file\": \"new_brunswick_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"new_brunswick_id_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Nova Scotia\": [\r\n {\r\n \"py_file\": \"nova_scotia_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"nova_scotia_id_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Ontario\": [\r\n {\r\n \"py_file\": \"ontario_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"ontario_id_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Saskatchewan\": [\r\n {\r\n \"py_file\": \"saskatchewan_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"saskatchewan_id_front.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"canada_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"canada_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n },\r\n \"permanent_residence\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"pr_01_back.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"pr_01_front.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"pr_02_back.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"pr_02_front.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"pr_03_back.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"pr_03_front.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n }\r\n },\r\n \"CF\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"caf_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"TD\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"tchad_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"CG\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"congo_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GQ\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"ecuatorial_guinea_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"ET\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"ethiopia_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"FR\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"france_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GA\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"gabon_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"gabon_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"DE\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"germany_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"germany_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GH\": {\r\n \"identity_card\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"back_1.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"back_2.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"front_1.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"front_2.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"ghana_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GN\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"guinee_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"HT\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"haiti_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"IT\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"italy_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"CI\": {\r\n \"identity_card\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"back_1.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"front_1.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"ivory_coast_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"ivory_coast_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"KE\": {\r\n \"identity_card\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"back_2.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"front_3.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"kenya_back_1.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"kenya_back_3.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"kenya_front_2.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"passport_1.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"ML\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"mali_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"NL\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"netherlands_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"NE\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"niger_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"NG\": {\r\n \"identity_card\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"nigeria_id_back_1.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"nigeria_id_front_1.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"nigeria_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"nigeria_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"SN\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"senegal_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"ES\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"spain_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"TG\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"togo_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n }\r\n}"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useI18n.d.ts","sourceRoot":"","sources":["../../src/hooks/useI18n.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,eAAO,MAAM,OAAO,QAAO,aAsC1B,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useI18n.js","sourceRoot":"","sources":["../../src/hooks/useI18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAG,SAAS,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAWxG,MAAM,CAAC,MAAM,OAAO,GAAG,GAAkB,EAAE;IACzC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1C,+CAA+C;IAC/C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACrC,wDAAwD;YACxD,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC;QAEF,sDAAsD;QACtD,YAAY,EAAE,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,SAAiB,EAAE,EAAE;QACxD,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5B,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,GAAW,EAAE,OAAa,EAAE,EAAE;QACnD,OAAO,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,OAAa,EAAE,EAAE;QACxE,OAAO,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO;QACL,CAAC;QACD,OAAO;QACP,MAAM;QACN,SAAS,EAAE,eAAe;QAC1B,gBAAgB,EAAE,mBAAmB,EAAE;QACvC,KAAK;KACN,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC","sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { setLocale, getCurrentLocale, getAvailableLocales, translate, translatePlural } from '../i18n';\n\nexport interface UseI18nReturn {\n t: (key: string, options?: any) => string;\n tPlural: (key: string, count: number, options?: any) => string;\n locale: string;\n setLocale: (locale: string) => void;\n availableLocales: string[];\n isRTL: boolean;\n}\n\nexport const useI18n = (): UseI18nReturn => {\n const [locale, setCurrentLocale] = useState(getCurrentLocale());\n const [isRTL, setIsRTL] = useState(false);\n\n // Update locale state when i18n locale changes\n useEffect(() => {\n const updateLocale = () => {\n setCurrentLocale(getCurrentLocale());\n // Check if current locale is RTL (Arabic, Hebrew, etc.)\n setIsRTL(['ar', 'he', 'fa', 'ur'].includes(getCurrentLocale()));\n };\n\n // Listen for locale changes (if i18n supports events)\n updateLocale();\n }, []);\n\n const handleSetLocale = useCallback((newLocale: string) => {\n setLocale(newLocale);\n setCurrentLocale(newLocale);\n setIsRTL(['ar', 'he', 'fa', 'ur'].includes(newLocale));\n }, []);\n\n const t = useCallback((key: string, options?: any) => {\n return translate(key, options);\n }, [locale]);\n\n const tPlural = useCallback((key: string, count: number, options?: any) => {\n return translatePlural(key, count, options);\n }, [locale]);\n\n return {\n t,\n tPlural,\n locale,\n setLocale: handleSetLocale,\n availableLocales: getAvailableLocales(),\n isRTL,\n };\n};\n\nexport default useI18n;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useKYC.d.ts","sourceRoot":"","sources":["../../src/hooks/useKYC.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEtD,eAAO,MAAM,MAAM;;;;;2BAgByB,MAAM;;;+BAqBI,QAAQ;4BAyBX,MAAM;;;CA+DxD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useKYC.js","sourceRoot":"","sources":["../../src/hooks/useKYC.ts"],"names":[],"mappings":"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","sourcesContent":["import { useCallback } from 'react';\nimport { useKYCStore } from '../stores/kycStore';\n// import { KYCService } from '../modules/api/KYCService';\nimport { Document, Selfie } from '../types/KYC.types';\n\nexport const useKYC = () => {\n const {\n currentSession,\n currentStep,\n isProcessing,\n error,\n initializeSession,\n setCurrentStep,\n addDocument,\n setSelfie,\n setProcessing,\n setError,\n clearSession,\n updateSession\n } = useKYCStore();\n\n const startSession = useCallback((userId: string) => {\n try {\n initializeSession(userId);\n setError(null);\n } catch (error) {\n setError('Impossible de démarrer la session KYC');\n }\n }, [initializeSession, setError]);\n\n const nextStep = useCallback(() => {\n if (currentStep < 4) {\n setCurrentStep(currentStep + 1);\n }\n }, [currentStep, setCurrentStep]);\n\n const previousStep = useCallback(() => {\n if (currentStep > 0) {\n setCurrentStep(currentStep - 1);\n }\n }, [currentStep, setCurrentStep]);\n\n const uploadDocument = useCallback(async (document: Document) => {\n try {\n setProcessing(true);\n setError(null);\n\n // Ajouter le document au store\n addDocument({\n id: document.id,\n type: document.type,\n imageUri: document.imageUri,\n uploadedAt: document.uploadedAt,\n validated: false\n });\n\n // Ici vous pourriez appeler l'API pour valider le document\n // const kycService = new KYCService(apiBaseUrl, apiKey);\n // const validation = await kycService.validateDocument(document.imageUri, document.type);\n\n setProcessing(false);\n } catch (error) {\n setProcessing(false);\n setError('Erreur lors de l\\'upload du document');\n }\n }, [addDocument, setProcessing, setError]);\n\n const captureSelfie = useCallback(async (selfie: Selfie) => {\n try {\n setProcessing(true);\n setError(null);\n\n // Ajouter la selfie au store\n setSelfie(selfie.imageUri);\n\n setProcessing(false);\n } catch (error) {\n setProcessing(false);\n setError('Erreur lors de la capture de la selfie');\n }\n }, [setSelfie, setProcessing, setError]);\n\n const submitVerification = useCallback(async () => {\n try {\n setProcessing(true);\n setError(null);\n\n if (!currentSession) {\n throw new Error('Aucune session KYC active');\n }\n\n // Ici vous appelleriez l'API pour soumettre la vérification complète\n // const kycService = new KYCService(apiBaseUrl, apiKey);\n // const response = await kycService.submitKYC({\n // userId: currentSession.userId,\n // documentImage: currentSession.documents[0]?.imageUri,\n // selfieImage: currentSession.selfie?.imageUri,\n // documentType: currentSession.documents[0]?.type\n // });\n\n // Mettre à jour la session\n updateSession({\n status: 'completed',\n // completedAt: new Date()\n });\n\n setProcessing(false);\n } catch (error) {\n setProcessing(false);\n setError('Erreur lors de la soumission de la vérification');\n }\n }, [currentSession, setProcessing, setError, updateSession]);\n\n const resetSession = useCallback(() => {\n clearSession();\n }, [clearSession]);\n\n return {\n session: currentSession,\n currentStep,\n isProcessing,\n error,\n startSession,\n nextStep,\n previousStep,\n uploadDocument,\n captureSelfie,\n submitVerification,\n resetSession\n };\n}; "]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useKYCFlow.d.ts","sourceRoot":"","sources":["../../src/hooks/useKYCFlow.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,UAAU,QAAO,gBA+O7B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
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}; "]}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useLocation.js","sourceRoot":"","sources":["../../src/hooks/useLocation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAmC1C,MAAM,WAAW,GAAG,CAAC,UAA8B,EAAE,EAAqB,EAAE;IAC1E,MAAM,EACJ,kBAAkB,GAAG,IAAI,EACzB,YAAY,GAAG,KAAK,EACpB,gBAAgB,GAAG,EAAE,EACrB,kBAAkB,GAAG,IAAI,GAC1B,GAAG,OAAO,CAAC;IAEZ,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAsB,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAuB,IAAI,CAAC,CAAC;IAC/D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAuC,IAAI,CAAC,CAAC;IAE7G,gCAAgC;IAChC,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC9C,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,6BAA6B,EAAE,CAAC;YAClE,MAAM,aAAa,GAAG,MAAM,KAAK,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACnE,gBAAgB,CAAC,aAAa,CAAC,CAAC;YAChC,OAAO,aAAa,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;YAC3D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,iBAAiB,GAAG,WAAW,CAAC,KAAK,IAAsB,EAAE;QACjE,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEf,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,iCAAiC,EAAE,CAAC;YACtE,MAAM,aAAa,GAAG,MAAM,KAAK,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAEnE,gBAAgB,CAAC,aAAa,CAAC,CAAC;YAEhC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,QAAQ,CAAC;oBACP,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,4BAA4B;iBACtC,CAAC,CAAC;YACL,CAAC;YAED,OAAO,aAAa,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC1E,QAAQ,CAAC;gBACP,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,YAAY;aACtB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,4BAA4B;IAC5B,MAAM,kBAAkB,GAAG,WAAW,CAAC,KAAK,IAAkC,EAAE;QAC9E,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEf,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,iBAAiB,GAAG,MAAM,iBAAiB,EAAE,CAAC;gBACpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CAAC;gBAC7D,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ;aACnF,CAAC,CAAC;YAEH,MAAM,YAAY,GAAiB;gBACjC,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ;gBACzC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,SAAS;gBAC3C,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ;gBACzC,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ;gBACzC,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO;gBACvC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK;gBACnC,SAAS,EAAE,eAAe,CAAC,SAAS;aACrC,CAAC;YAEF,WAAW,CAAC,YAAY,CAAC,CAAC;YAC1B,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC1E,QAAQ,CAAC;gBACP,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,YAAY;aACtB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE3D,oCAAoC;IACpC,MAAM,oBAAoB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAClD,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEf,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,iBAAiB,GAAG,MAAM,iBAAiB,EAAE,CAAC;gBACpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,OAAO;gBACT,CAAC;YACH,CAAC;YAED,iCAAiC;YACjC,IAAI,oBAAoB,EAAE,CAAC;gBACzB,oBAAoB,CAAC,MAAM,EAAE,CAAC;YAChC,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CACpD;gBACE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ;gBAClF,YAAY;gBACZ,gBAAgB;aACjB,EACD,CAAC,WAAW,EAAE,EAAE;gBACd,MAAM,YAAY,GAAiB;oBACjC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ;oBACrC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS;oBACvC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ;oBACrC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ;oBACrC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO;oBACnC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK;oBAC/B,SAAS,EAAE,WAAW,CAAC,SAAS;iBACjC,CAAC;gBACF,WAAW,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC,CACF,CAAC;YAEF,uBAAuB,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC1E,QAAQ,CAAC;gBACP,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,YAAY;aACtB,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,kBAAkB,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAEjH,wBAAwB;IACxB,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC3C,IAAI,oBAAoB,EAAE,CAAC;YACzB,oBAAoB,CAAC,MAAM,EAAE,CAAC;YAC9B,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,kCAAkC;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,kBAAkB,EAAE,CAAC;YACvB,gBAAgB,EAAE,CAAC;QACrB,CAAC;IACH,CAAC,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE3C,kCAAkC;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,IAAI,oBAAoB,EAAE,CAAC;gBACzB,oBAAoB,CAAC,MAAM,EAAE,CAAC;YAChC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,OAAO;QACL,QAAQ;QACR,KAAK;QACL,OAAO;QACP,iBAAiB;QACjB,kBAAkB;QAClB,oBAAoB;QACpB,mBAAmB;QACnB,aAAa;KACd,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC","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; "]}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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; "]}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"]}
|
|
@@ -1 +0,0 @@
|
|
|
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,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAqB1E,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,gBAAgB,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,KAC1C,iBA+8BF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
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 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 onSessionSave,\n}) => {\n const hookResult = useTemplateKYCFlow(template, onComplete, onError, onCancel, initialLanguage, apiKey, env, existingSessionId, initialComponentIndex, initialCountryResume, 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 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 = { template_id: templateId || null, templateId: templateId || null, step: component.order, permissionGranted: true } 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]);\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 // 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: { template_id: templateId, metadata: { language: initialLanguage } },\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]);\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}; "]}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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}"]}
|