@sanctum-key/react-native-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (708) hide show
  1. package/README.md +278 -0
  2. package/android/build/.transforms/f62cb96b2d1f78ca96ab35932dd530dc/results.bin +1 -0
  3. package/android/build/.transforms/f62cb96b2d1f78ca96ab35932dd530dc/transformed/classes/classes_dex/classes.dex +0 -0
  4. package/android/build/generated/source/buildConfig/debug/kyc/transfergratis/com/BuildConfig.java +10 -0
  5. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +69 -0
  6. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  7. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  8. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  9. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  10. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  11. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +1 -0
  12. package/android/build/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/xml_file_paths.xml.flat +0 -0
  13. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +2 -0
  14. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  15. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  16. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  17. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  18. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/transfergratis-react-native-sdk_debug.kotlin_module +0 -0
  19. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/kyc/transfergratis/com/BuildConfig.class +0 -0
  20. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +3 -0
  21. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +110 -0
  22. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +69 -0
  23. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  24. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  25. package/android/build/intermediates/packaged_res/debug/packageDebugResources/xml/file_paths.xml +15 -0
  26. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  27. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +2 -0
  28. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  29. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  30. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  31. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  32. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  33. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  34. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  35. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  36. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  37. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  38. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  39. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  40. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  41. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  42. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  43. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  44. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  45. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  46. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  47. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  48. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  49. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  50. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  51. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  52. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  53. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  54. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  55. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  56. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  57. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  58. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  59. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  60. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  61. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  62. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  63. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  64. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  65. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  66. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  67. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  68. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  69. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  70. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  71. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  72. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  73. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  74. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  75. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  76. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  77. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  78. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  79. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  80. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  81. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  82. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  83. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  84. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  85. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  86. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  87. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  88. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  89. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  90. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  91. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  103. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  104. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  105. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  106. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  107. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  108. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  109. package/android/build/outputs/logs/manifest-merger-debug-report.txt +101 -0
  110. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  111. package/android/build/tmp/kotlin-classes/debug/META-INF/transfergratis-react-native-sdk_debug.kotlin_module +0 -0
  112. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule$definition$1$5$1.class +0 -0
  113. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule$definition$1$5$2.class +0 -0
  114. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$1.class +0 -0
  115. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$2.class +0 -0
  116. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$3.class +0 -0
  117. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$4.class +0 -0
  118. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$5.class +0 -0
  119. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunction$6.class +0 -0
  120. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$1.class +0 -0
  121. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$2.class +0 -0
  122. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$3.class +0 -0
  123. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$AsyncFunctionWithPromise$4.class +0 -0
  124. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$$inlined$View$1.class +0 -0
  125. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$lambda$4$$inlined$Prop$1.class +0 -0
  126. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule$definition$lambda$5$lambda$4$$inlined$Prop$2.class +0 -0
  127. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkModule.class +0 -0
  128. package/android/build/tmp/kotlin-classes/debug/kyc/transfergratis/com/TransfergratisSdkView.class +0 -0
  129. package/android/build.gradle +43 -0
  130. package/android/src/main/AndroidManifest.xml +49 -0
  131. package/android/src/main/java/kyc/transfergratis/com/TransfergratisSdkModule.kt +131 -0
  132. package/android/src/main/java/kyc/transfergratis/com/TransfergratisSdkView.kt +161 -0
  133. package/android/src/main/res/xml/file_paths.xml +15 -0
  134. package/build/App.d.ts +3 -0
  135. package/build/App.d.ts.map +1 -0
  136. package/build/App.js +9 -0
  137. package/build/App.js.map +1 -0
  138. package/build/TransfergratisSdk.types.d.ts +32 -0
  139. package/build/TransfergratisSdk.types.d.ts.map +1 -0
  140. package/build/TransfergratisSdk.types.js +2 -0
  141. package/build/TransfergratisSdk.types.js.map +1 -0
  142. package/build/TransfergratisSdkModule.d.ts +21 -0
  143. package/build/TransfergratisSdkModule.d.ts.map +1 -0
  144. package/build/TransfergratisSdkModule.js +4 -0
  145. package/build/TransfergratisSdkModule.js.map +1 -0
  146. package/build/TransfergratisSdkModule.web.d.ts +20 -0
  147. package/build/TransfergratisSdkModule.web.d.ts.map +1 -0
  148. package/build/TransfergratisSdkModule.web.js +25 -0
  149. package/build/TransfergratisSdkModule.web.js.map +1 -0
  150. package/build/TransfergratisSdkView.d.ts +4 -0
  151. package/build/TransfergratisSdkView.d.ts.map +1 -0
  152. package/build/TransfergratisSdkView.js +7 -0
  153. package/build/TransfergratisSdkView.js.map +1 -0
  154. package/build/TransfergratisSdkView.web.d.ts +4 -0
  155. package/build/TransfergratisSdkView.web.d.ts.map +1 -0
  156. package/build/TransfergratisSdkView.web.js +11 -0
  157. package/build/TransfergratisSdkView.web.js.map +1 -0
  158. package/build/api/axios.d.ts +30 -0
  159. package/build/api/axios.d.ts.map +1 -0
  160. package/build/api/axios.js +92 -0
  161. package/build/api/axios.js.map +1 -0
  162. package/build/components/Camera/index.d.ts +2 -0
  163. package/build/components/Camera/index.d.ts.map +1 -0
  164. package/build/components/Camera/index.js +2 -0
  165. package/build/components/Camera/index.js.map +1 -0
  166. package/build/components/Camera/index.web.d.ts +2 -0
  167. package/build/components/Camera/index.web.d.ts.map +1 -0
  168. package/build/components/Camera/index.web.js +2 -0
  169. package/build/components/Camera/index.web.js.map +1 -0
  170. package/build/components/Camera/types.d.ts +2 -0
  171. package/build/components/Camera/types.d.ts.map +1 -0
  172. package/build/components/Camera/types.js +2 -0
  173. package/build/components/Camera/types.js.map +1 -0
  174. package/build/components/ConfigurableKYCFlow.d.ts +11 -0
  175. package/build/components/ConfigurableKYCFlow.d.ts.map +1 -0
  176. package/build/components/ConfigurableKYCFlow.js +257 -0
  177. package/build/components/ConfigurableKYCFlow.js.map +1 -0
  178. package/build/components/CustomCameraExample.d.ts +10 -0
  179. package/build/components/CustomCameraExample.d.ts.map +1 -0
  180. package/build/components/CustomCameraExample.js +232 -0
  181. package/build/components/CustomCameraExample.js.map +1 -0
  182. package/build/components/EnhancedCameraView.d.ts +4 -0
  183. package/build/components/EnhancedCameraView.d.ts.map +1 -0
  184. package/build/components/EnhancedCameraView.js +393 -0
  185. package/build/components/EnhancedCameraView.js.map +1 -0
  186. package/build/components/EnhancedCameraView.web.d.ts +4 -0
  187. package/build/components/EnhancedCameraView.web.d.ts.map +1 -0
  188. package/build/components/EnhancedCameraView.web.js +499 -0
  189. package/build/components/EnhancedCameraView.web.js.map +1 -0
  190. package/build/components/FileUpload.d.ts +13 -0
  191. package/build/components/FileUpload.d.ts.map +1 -0
  192. package/build/components/FileUpload.js +216 -0
  193. package/build/components/FileUpload.js.map +1 -0
  194. package/build/components/KYCElementRenderer.d.ts +14 -0
  195. package/build/components/KYCElementRenderer.d.ts.map +1 -0
  196. package/build/components/KYCElementRenderer.js +31 -0
  197. package/build/components/KYCElementRenderer.js.map +1 -0
  198. package/build/components/KYCElements/AdditionalDocumentsTemplate.d.ts +12 -0
  199. package/build/components/KYCElements/AdditionalDocumentsTemplate.d.ts.map +1 -0
  200. package/build/components/KYCElements/AdditionalDocumentsTemplate.js +283 -0
  201. package/build/components/KYCElements/AdditionalDocumentsTemplate.js.map +1 -0
  202. package/build/components/KYCElements/CameraCapture.d.ts +11 -0
  203. package/build/components/KYCElements/CameraCapture.d.ts.map +1 -0
  204. package/build/components/KYCElements/CameraCapture.js +219 -0
  205. package/build/components/KYCElements/CameraCapture.js.map +1 -0
  206. package/build/components/KYCElements/CompletionStep.d.ts +10 -0
  207. package/build/components/KYCElements/CompletionStep.d.ts.map +1 -0
  208. package/build/components/KYCElements/CompletionStep.js +147 -0
  209. package/build/components/KYCElements/CompletionStep.js.map +1 -0
  210. package/build/components/KYCElements/CountrySelection.d.ts +11 -0
  211. package/build/components/KYCElements/CountrySelection.d.ts.map +1 -0
  212. package/build/components/KYCElements/CountrySelection.js +147 -0
  213. package/build/components/KYCElements/CountrySelection.js.map +1 -0
  214. package/build/components/KYCElements/CountrySelectionTemplate.d.ts +15 -0
  215. package/build/components/KYCElements/CountrySelectionTemplate.d.ts.map +1 -0
  216. package/build/components/KYCElements/CountrySelectionTemplate.js +438 -0
  217. package/build/components/KYCElements/CountrySelectionTemplate.js.map +1 -0
  218. package/build/components/KYCElements/DocumentTypeSelection.d.ts +11 -0
  219. package/build/components/KYCElements/DocumentTypeSelection.d.ts.map +1 -0
  220. package/build/components/KYCElements/DocumentTypeSelection.js +143 -0
  221. package/build/components/KYCElements/DocumentTypeSelection.js.map +1 -0
  222. package/build/components/KYCElements/EmailVerificationTemplate.d.ts +12 -0
  223. package/build/components/KYCElements/EmailVerificationTemplate.d.ts.map +1 -0
  224. package/build/components/KYCElements/EmailVerificationTemplate.js +212 -0
  225. package/build/components/KYCElements/EmailVerificationTemplate.js.map +1 -0
  226. package/build/components/KYCElements/FileUpload.d.ts +11 -0
  227. package/build/components/KYCElements/FileUpload.d.ts.map +1 -0
  228. package/build/components/KYCElements/FileUpload.js +268 -0
  229. package/build/components/KYCElements/FileUpload.js.map +1 -0
  230. package/build/components/KYCElements/FileUploadTemplate.d.ts +12 -0
  231. package/build/components/KYCElements/FileUploadTemplate.d.ts.map +1 -0
  232. package/build/components/KYCElements/FileUploadTemplate.js +331 -0
  233. package/build/components/KYCElements/FileUploadTemplate.js.map +1 -0
  234. package/build/components/KYCElements/IDCardCapture.d.ts +19 -0
  235. package/build/components/KYCElements/IDCardCapture.d.ts.map +1 -0
  236. package/build/components/KYCElements/IDCardCapture.js +877 -0
  237. package/build/components/KYCElements/IDCardCapture.js.map +1 -0
  238. package/build/components/KYCElements/InitializationStep.d.ts +5 -0
  239. package/build/components/KYCElements/InitializationStep.d.ts.map +1 -0
  240. package/build/components/KYCElements/InitializationStep.js +41 -0
  241. package/build/components/KYCElements/InitializationStep.js.map +1 -0
  242. package/build/components/KYCElements/LocationCaptureTemplate.d.ts +20 -0
  243. package/build/components/KYCElements/LocationCaptureTemplate.d.ts.map +1 -0
  244. package/build/components/KYCElements/LocationCaptureTemplate.js +318 -0
  245. package/build/components/KYCElements/LocationCaptureTemplate.js.map +1 -0
  246. package/build/components/KYCElements/OrientationVideoCapture.d.ts +14 -0
  247. package/build/components/KYCElements/OrientationVideoCapture.d.ts.map +1 -0
  248. package/build/components/KYCElements/OrientationVideoCapture.js +534 -0
  249. package/build/components/KYCElements/OrientationVideoCapture.js.map +1 -0
  250. package/build/components/KYCElements/OrientationVideoCaptureEnhanced.d.ts +14 -0
  251. package/build/components/KYCElements/OrientationVideoCaptureEnhanced.d.ts.map +1 -0
  252. package/build/components/KYCElements/OrientationVideoCaptureEnhanced.js +504 -0
  253. package/build/components/KYCElements/OrientationVideoCaptureEnhanced.js.map +1 -0
  254. package/build/components/KYCElements/OrientationVideoCaptureFinal.d.ts +14 -0
  255. package/build/components/KYCElements/OrientationVideoCaptureFinal.d.ts.map +1 -0
  256. package/build/components/KYCElements/OrientationVideoCaptureFinal.js +430 -0
  257. package/build/components/KYCElements/OrientationVideoCaptureFinal.js.map +1 -0
  258. package/build/components/KYCElements/PersonalInformationTemplate.d.ts +12 -0
  259. package/build/components/KYCElements/PersonalInformationTemplate.d.ts.map +1 -0
  260. package/build/components/KYCElements/PersonalInformationTemplate.js +120 -0
  261. package/build/components/KYCElements/PersonalInformationTemplate.js.map +1 -0
  262. package/build/components/KYCElements/PhoneVerificationTemplate.d.ts +12 -0
  263. package/build/components/KYCElements/PhoneVerificationTemplate.d.ts.map +1 -0
  264. package/build/components/KYCElements/PhoneVerificationTemplate.js +185 -0
  265. package/build/components/KYCElements/PhoneVerificationTemplate.js.map +1 -0
  266. package/build/components/KYCElements/ReviewSubmitTemplate.d.ts +12 -0
  267. package/build/components/KYCElements/ReviewSubmitTemplate.d.ts.map +1 -0
  268. package/build/components/KYCElements/ReviewSubmitTemplate.js +171 -0
  269. package/build/components/KYCElements/ReviewSubmitTemplate.js.map +1 -0
  270. package/build/components/KYCElements/SelfieCapture.d.ts +11 -0
  271. package/build/components/KYCElements/SelfieCapture.d.ts.map +1 -0
  272. package/build/components/KYCElements/SelfieCapture.js +236 -0
  273. package/build/components/KYCElements/SelfieCapture.js.map +1 -0
  274. package/build/components/KYCElements/SelfieCaptureTemplate.d.ts +16 -0
  275. package/build/components/KYCElements/SelfieCaptureTemplate.d.ts.map +1 -0
  276. package/build/components/KYCElements/SelfieCaptureTemplate.js +568 -0
  277. package/build/components/KYCElements/SelfieCaptureTemplate.js.map +1 -0
  278. package/build/components/KYCElements/VerificationProgressTemplate.d.ts +12 -0
  279. package/build/components/KYCElements/VerificationProgressTemplate.d.ts.map +1 -0
  280. package/build/components/KYCElements/VerificationProgressTemplate.js +195 -0
  281. package/build/components/KYCElements/VerificationProgressTemplate.js.map +1 -0
  282. package/build/components/KYCElements/VerificationStep.d.ts +10 -0
  283. package/build/components/KYCElements/VerificationStep.d.ts.map +1 -0
  284. package/build/components/KYCElements/VerificationStep.js +199 -0
  285. package/build/components/KYCElements/VerificationStep.js.map +1 -0
  286. package/build/components/KYCElements/WelcomeTemplate.d.ts +12 -0
  287. package/build/components/KYCElements/WelcomeTemplate.d.ts.map +1 -0
  288. package/build/components/KYCElements/WelcomeTemplate.js +244 -0
  289. package/build/components/KYCElements/WelcomeTemplate.js.map +1 -0
  290. package/build/components/KYCExample.d.ts +3 -0
  291. package/build/components/KYCExample.d.ts.map +1 -0
  292. package/build/components/KYCExample.js +247 -0
  293. package/build/components/KYCExample.js.map +1 -0
  294. package/build/components/KYCFlow.d.ts +3 -0
  295. package/build/components/KYCFlow.d.ts.map +1 -0
  296. package/build/components/KYCFlow.js +308 -0
  297. package/build/components/KYCFlow.js.map +1 -0
  298. package/build/components/NativeCameraView.d.ts +11 -0
  299. package/build/components/NativeCameraView.d.ts.map +1 -0
  300. package/build/components/NativeCameraView.js +27 -0
  301. package/build/components/NativeCameraView.js.map +1 -0
  302. package/build/components/OverLay/IdCard.d.ts +4 -0
  303. package/build/components/OverLay/IdCard.d.ts.map +1 -0
  304. package/build/components/OverLay/IdCard.js +185 -0
  305. package/build/components/OverLay/IdCard.js.map +1 -0
  306. package/build/components/OverLay/SelfieOverlay.d.ts +4 -0
  307. package/build/components/OverLay/SelfieOverlay.d.ts.map +1 -0
  308. package/build/components/OverLay/SelfieOverlay.js +169 -0
  309. package/build/components/OverLay/SelfieOverlay.js.map +1 -0
  310. package/build/components/OverLay/StepOverlay.d.ts +9 -0
  311. package/build/components/OverLay/StepOverlay.d.ts.map +1 -0
  312. package/build/components/OverLay/StepOverlay.js +53 -0
  313. package/build/components/OverLay/StepOverlay.js.map +1 -0
  314. package/build/components/OverLay/type.d.ts +98 -0
  315. package/build/components/OverLay/type.d.ts.map +1 -0
  316. package/build/components/OverLay/type.js +2 -0
  317. package/build/components/OverLay/type.js.map +1 -0
  318. package/build/components/ProgressIndicator.d.ts +8 -0
  319. package/build/components/ProgressIndicator.d.ts.map +1 -0
  320. package/build/components/ProgressIndicator.js +48 -0
  321. package/build/components/ProgressIndicator.js.map +1 -0
  322. package/build/components/SelfieCapture.d.ts +3 -0
  323. package/build/components/SelfieCapture.d.ts.map +1 -0
  324. package/build/components/SelfieCapture.js +197 -0
  325. package/build/components/SelfieCapture.js.map +1 -0
  326. package/build/components/SimpleExample.d.ts +3 -0
  327. package/build/components/SimpleExample.d.ts.map +1 -0
  328. package/build/components/SimpleExample.js +89 -0
  329. package/build/components/SimpleExample.js.map +1 -0
  330. package/build/components/Svgs/GpsIcon.d.ts +3 -0
  331. package/build/components/Svgs/GpsIcon.d.ts.map +1 -0
  332. package/build/components/Svgs/GpsIcon.js +9 -0
  333. package/build/components/Svgs/GpsIcon.js.map +1 -0
  334. package/build/components/Svgs/Schield.d.ts +3 -0
  335. package/build/components/Svgs/Schield.d.ts.map +1 -0
  336. package/build/components/Svgs/Schield.js +22 -0
  337. package/build/components/Svgs/Schield.js.map +1 -0
  338. package/build/components/Svgs/directionArrow.gif +0 -0
  339. package/build/components/Svgs/frontSelfieIcon.d.ts +3 -0
  340. package/build/components/Svgs/frontSelfieIcon.d.ts.map +1 -0
  341. package/build/components/Svgs/frontSelfieIcon.js +11 -0
  342. package/build/components/Svgs/frontSelfieIcon.js.map +1 -0
  343. package/build/components/Svgs/scanningLine.d.ts +9 -0
  344. package/build/components/Svgs/scanningLine.d.ts.map +1 -0
  345. package/build/components/Svgs/scanningLine.js +61 -0
  346. package/build/components/Svgs/scanningLine.js.map +1 -0
  347. package/build/components/Svgs/sideSelfieIcon.d.ts +3 -0
  348. package/build/components/Svgs/sideSelfieIcon.d.ts.map +1 -0
  349. package/build/components/Svgs/sideSelfieIcon.js +9 -0
  350. package/build/components/Svgs/sideSelfieIcon.js.map +1 -0
  351. package/build/components/TemplateKYCExample.d.ts +22 -0
  352. package/build/components/TemplateKYCExample.d.ts.map +1 -0
  353. package/build/components/TemplateKYCExample.js +155 -0
  354. package/build/components/TemplateKYCExample.js.map +1 -0
  355. package/build/components/TemplateKYCFlowRefactored.d.ts +26 -0
  356. package/build/components/TemplateKYCFlowRefactored.d.ts.map +1 -0
  357. package/build/components/TemplateKYCFlowRefactored.js +359 -0
  358. package/build/components/TemplateKYCFlowRefactored.js.map +1 -0
  359. package/build/components/VisionCameraView.d.ts +22 -0
  360. package/build/components/VisionCameraView.d.ts.map +1 -0
  361. package/build/components/VisionCameraView.js +142 -0
  362. package/build/components/VisionCameraView.js.map +1 -0
  363. package/build/components/example/CameraCaptureEx.d.ts +4 -0
  364. package/build/components/example/CameraCaptureEx.d.ts.map +1 -0
  365. package/build/components/example/CameraCaptureEx.js +219 -0
  366. package/build/components/example/CameraCaptureEx.js.map +1 -0
  367. package/build/components/example/CameraCaptureExAdvanced.d.ts +3 -0
  368. package/build/components/example/CameraCaptureExAdvanced.d.ts.map +1 -0
  369. package/build/components/example/CameraCaptureExAdvanced.js +229 -0
  370. package/build/components/example/CameraCaptureExAdvanced.js.map +1 -0
  371. package/build/components/example/CameraCaptureExScan.d.ts +3 -0
  372. package/build/components/example/CameraCaptureExScan.d.ts.map +1 -0
  373. package/build/components/example/CameraCaptureExScan.js +213 -0
  374. package/build/components/example/CameraCaptureExScan.js.map +1 -0
  375. package/build/components/example/CameraCaptureExSimple.d.ts +3 -0
  376. package/build/components/example/CameraCaptureExSimple.d.ts.map +1 -0
  377. package/build/components/example/CameraCaptureExSimple.js +138 -0
  378. package/build/components/example/CameraCaptureExSimple.js.map +1 -0
  379. package/build/components/example/DynamicTemplateExample.d.ts +10 -0
  380. package/build/components/example/DynamicTemplateExample.d.ts.map +1 -0
  381. package/build/components/example/DynamicTemplateExample.js +241 -0
  382. package/build/components/example/DynamicTemplateExample.js.map +1 -0
  383. package/build/components/example/OrientationVideoExample.d.ts +4 -0
  384. package/build/components/example/OrientationVideoExample.d.ts.map +1 -0
  385. package/build/components/example/OrientationVideoExample.js +325 -0
  386. package/build/components/example/OrientationVideoExample.js.map +1 -0
  387. package/build/components/example/SelfieCaptureEx.d.ts +4 -0
  388. package/build/components/example/SelfieCaptureEx.d.ts.map +1 -0
  389. package/build/components/example/SelfieCaptureEx.js +238 -0
  390. package/build/components/example/SelfieCaptureEx.js.map +1 -0
  391. package/build/components/ui/Button.d.ts +37 -0
  392. package/build/components/ui/Button.d.ts.map +1 -0
  393. package/build/components/ui/Button.js +194 -0
  394. package/build/components/ui/Button.js.map +1 -0
  395. package/build/components/ui/ButtonExample.d.ts +4 -0
  396. package/build/components/ui/ButtonExample.d.ts.map +1 -0
  397. package/build/components/ui/ButtonExample.js +209 -0
  398. package/build/components/ui/ButtonExample.js.map +1 -0
  399. package/build/components/ui/ButtonStyles.d.ts +521 -0
  400. package/build/components/ui/ButtonStyles.d.ts.map +1 -0
  401. package/build/components/ui/ButtonStyles.js +429 -0
  402. package/build/components/ui/ButtonStyles.js.map +1 -0
  403. package/build/config/KYCConfig.d.ts +14 -0
  404. package/build/config/KYCConfig.d.ts.map +1 -0
  405. package/build/config/KYCConfig.js +26 -0
  406. package/build/config/KYCConfig.js.map +1 -0
  407. package/build/config/KYCConfigs.d.ts +7 -0
  408. package/build/config/KYCConfigs.d.ts.map +1 -0
  409. package/build/config/KYCConfigs.js +516 -0
  410. package/build/config/KYCConfigs.js.map +1 -0
  411. package/build/config/allowedDomains.d.ts +30 -0
  412. package/build/config/allowedDomains.d.ts.map +1 -0
  413. package/build/config/allowedDomains.js +112 -0
  414. package/build/config/allowedDomains.js.map +1 -0
  415. package/build/config/countriesData.d.ts +3 -0
  416. package/build/config/countriesData.d.ts.map +1 -0
  417. package/build/config/countriesData.js +80 -0
  418. package/build/config/countriesData.js.map +1 -0
  419. package/build/config/region_mapping.d.ts +3 -0
  420. package/build/config/region_mapping.d.ts.map +1 -0
  421. package/build/config/region_mapping.js +736 -0
  422. package/build/config/region_mapping.js.map +1 -0
  423. package/build/hooks/useI18n.d.ts +11 -0
  424. package/build/hooks/useI18n.d.ts.map +1 -0
  425. package/build/hooks/useI18n.js +37 -0
  426. package/build/hooks/useI18n.js.map +1 -0
  427. package/build/hooks/useKYC.d.ts +15 -0
  428. package/build/hooks/useKYC.d.ts.map +1 -0
  429. package/build/hooks/useKYC.js +103 -0
  430. package/build/hooks/useKYC.js.map +1 -0
  431. package/build/hooks/useKYCFlow.d.ts +3 -0
  432. package/build/hooks/useKYCFlow.d.ts.map +1 -0
  433. package/build/hooks/useKYCFlow.js +221 -0
  434. package/build/hooks/useKYCFlow.js.map +1 -0
  435. package/build/hooks/useLocation.d.ts +32 -0
  436. package/build/hooks/useLocation.d.ts.map +1 -0
  437. package/build/hooks/useLocation.js +165 -0
  438. package/build/hooks/useLocation.js.map +1 -0
  439. package/build/hooks/useOrientationVideo.d.ts +10 -0
  440. package/build/hooks/useOrientationVideo.d.ts.map +1 -0
  441. package/build/hooks/useOrientationVideo.js +118 -0
  442. package/build/hooks/useOrientationVideo.js.map +1 -0
  443. package/build/hooks/useRealtimeVerifier.d.ts +28 -0
  444. package/build/hooks/useRealtimeVerifier.d.ts.map +1 -0
  445. package/build/hooks/useRealtimeVerifier.js +91 -0
  446. package/build/hooks/useRealtimeVerifier.js.map +1 -0
  447. package/build/hooks/useTemplateKYCFlow.d.ts +48 -0
  448. package/build/hooks/useTemplateKYCFlow.d.ts.map +1 -0
  449. package/build/hooks/useTemplateKYCFlow.js +910 -0
  450. package/build/hooks/useTemplateKYCFlow.js.map +1 -0
  451. package/build/hooks/useTemplateLoader.d.ts +14 -0
  452. package/build/hooks/useTemplateLoader.d.ts.map +1 -0
  453. package/build/hooks/useTemplateLoader.js +85 -0
  454. package/build/hooks/useTemplateLoader.js.map +1 -0
  455. package/build/i18n/en/index.d.ts +233 -0
  456. package/build/i18n/en/index.d.ts.map +1 -0
  457. package/build/i18n/en/index.js +261 -0
  458. package/build/i18n/en/index.js.map +1 -0
  459. package/build/i18n/fr/index.d.ts +219 -0
  460. package/build/i18n/fr/index.d.ts.map +1 -0
  461. package/build/i18n/fr/index.js +246 -0
  462. package/build/i18n/fr/index.js.map +1 -0
  463. package/build/i18n/index.d.ts +10 -0
  464. package/build/i18n/index.d.ts.map +1 -0
  465. package/build/i18n/index.js +56 -0
  466. package/build/i18n/index.js.map +1 -0
  467. package/build/i18n/types.d.ts +162 -0
  468. package/build/i18n/types.d.ts.map +1 -0
  469. package/build/i18n/types.js +3 -0
  470. package/build/i18n/types.js.map +1 -0
  471. package/build/i18n/usage-example.d.ts +4 -0
  472. package/build/i18n/usage-example.d.ts.map +1 -0
  473. package/build/i18n/usage-example.js +189 -0
  474. package/build/i18n/usage-example.js.map +1 -0
  475. package/build/index.d.ts +11 -0
  476. package/build/index.d.ts.map +1 -0
  477. package/build/index.js +17 -0
  478. package/build/index.js.map +1 -0
  479. package/build/modules/api/CardAuthentification.d.ts +72 -0
  480. package/build/modules/api/CardAuthentification.d.ts.map +1 -0
  481. package/build/modules/api/CardAuthentification.js +487 -0
  482. package/build/modules/api/CardAuthentification.js.map +1 -0
  483. package/build/modules/api/KYCService.d.ts +116 -0
  484. package/build/modules/api/KYCService.d.ts.map +1 -0
  485. package/build/modules/api/KYCService.js +526 -0
  486. package/build/modules/api/KYCService.js.map +1 -0
  487. package/build/modules/api/SelfieVerification.d.ts +5 -0
  488. package/build/modules/api/SelfieVerification.d.ts.map +1 -0
  489. package/build/modules/api/SelfieVerification.js +25 -0
  490. package/build/modules/api/SelfieVerification.js.map +1 -0
  491. package/build/modules/api/TemplateService.d.ts +44 -0
  492. package/build/modules/api/TemplateService.d.ts.map +1 -0
  493. package/build/modules/api/TemplateService.js +146 -0
  494. package/build/modules/api/TemplateService.js.map +1 -0
  495. package/build/modules/api/backendApi.d.ts +2 -0
  496. package/build/modules/api/backendApi.d.ts.map +1 -0
  497. package/build/modules/api/backendApi.js +6 -0
  498. package/build/modules/api/backendApi.js.map +1 -0
  499. package/build/modules/api/types.d.ts +53 -0
  500. package/build/modules/api/types.d.ts.map +1 -0
  501. package/build/modules/api/types.js +2 -0
  502. package/build/modules/api/types.js.map +1 -0
  503. package/build/modules/camera/NativeCameraModule.d.ts +52 -0
  504. package/build/modules/camera/NativeCameraModule.d.ts.map +1 -0
  505. package/build/modules/camera/NativeCameraModule.js +149 -0
  506. package/build/modules/camera/NativeCameraModule.js.map +1 -0
  507. package/build/modules/camera/UnifiedCameraModule.d.ts +70 -0
  508. package/build/modules/camera/UnifiedCameraModule.d.ts.map +1 -0
  509. package/build/modules/camera/UnifiedCameraModule.js +125 -0
  510. package/build/modules/camera/UnifiedCameraModule.js.map +1 -0
  511. package/build/modules/camera/VisionCameraModule.d.ts +62 -0
  512. package/build/modules/camera/VisionCameraModule.d.ts.map +1 -0
  513. package/build/modules/camera/VisionCameraModule.js +313 -0
  514. package/build/modules/camera/VisionCameraModule.js.map +1 -0
  515. package/build/modules/camera/VisionCameraModule.web.d.ts +145 -0
  516. package/build/modules/camera/VisionCameraModule.web.d.ts.map +1 -0
  517. package/build/modules/camera/VisionCameraModule.web.js +589 -0
  518. package/build/modules/camera/VisionCameraModule.web.js.map +1 -0
  519. package/build/modules/camera/index.d.ts +5 -0
  520. package/build/modules/camera/index.d.ts.map +1 -0
  521. package/build/modules/camera/index.js +4 -0
  522. package/build/modules/camera/index.js.map +1 -0
  523. package/build/stores/kycStore.d.ts +55 -0
  524. package/build/stores/kycStore.d.ts.map +1 -0
  525. package/build/stores/kycStore.js +98 -0
  526. package/build/stores/kycStore.js.map +1 -0
  527. package/build/types/KYC.types.d.ts +643 -0
  528. package/build/types/KYC.types.d.ts.map +1 -0
  529. package/build/types/KYC.types.js +25 -0
  530. package/build/types/KYC.types.js.map +1 -0
  531. package/build/types/env.types.d.ts +13 -0
  532. package/build/types/env.types.d.ts.map +1 -0
  533. package/build/types/env.types.js +2 -0
  534. package/build/types/env.types.js.map +1 -0
  535. package/build/utils/cropByObb.d.ts +37 -0
  536. package/build/utils/cropByObb.d.ts.map +1 -0
  537. package/build/utils/cropByObb.js +215 -0
  538. package/build/utils/cropByObb.js.map +1 -0
  539. package/build/utils/deviceDetection.d.ts +6 -0
  540. package/build/utils/deviceDetection.d.ts.map +1 -0
  541. package/build/utils/deviceDetection.js +12 -0
  542. package/build/utils/deviceDetection.js.map +1 -0
  543. package/build/utils/get-document-type-info.d.ts +13 -0
  544. package/build/utils/get-document-type-info.d.ts.map +1 -0
  545. package/build/utils/get-document-type-info.js +59 -0
  546. package/build/utils/get-document-type-info.js.map +1 -0
  547. package/build/utils/logger.d.ts +12 -0
  548. package/build/utils/logger.d.ts.map +1 -0
  549. package/build/utils/logger.js +45 -0
  550. package/build/utils/logger.js.map +1 -0
  551. package/build/utils/pathToBase64.d.ts +3 -0
  552. package/build/utils/pathToBase64.d.ts.map +1 -0
  553. package/build/utils/pathToBase64.js +65 -0
  554. package/build/utils/pathToBase64.js.map +1 -0
  555. package/build/utils/platformAlert.d.ts +20 -0
  556. package/build/utils/platformAlert.d.ts.map +1 -0
  557. package/build/utils/platformAlert.js +67 -0
  558. package/build/utils/platformAlert.js.map +1 -0
  559. package/build/utils/remove-duplicate.d.ts +2 -0
  560. package/build/utils/remove-duplicate.d.ts.map +1 -0
  561. package/build/utils/remove-duplicate.js +4 -0
  562. package/build/utils/remove-duplicate.js.map +1 -0
  563. package/build/utils/template-transformer.d.ts +10 -0
  564. package/build/utils/template-transformer.d.ts.map +1 -0
  565. package/build/utils/template-transformer.js +365 -0
  566. package/build/utils/template-transformer.js.map +1 -0
  567. package/build/web/WebKYCEntry.d.ts +9 -0
  568. package/build/web/WebKYCEntry.d.ts.map +1 -0
  569. package/build/web/WebKYCEntry.js +288 -0
  570. package/build/web/WebKYCEntry.js.map +1 -0
  571. package/build/web/index.d.ts +2 -0
  572. package/build/web/index.d.ts.map +1 -0
  573. package/build/web/index.js +2 -0
  574. package/build/web/index.js.map +1 -0
  575. package/expo-module.config.json +9 -0
  576. package/ios/TransfergratisSdk.podspec +31 -0
  577. package/ios/TransfergratisSdkModule.swift +409 -0
  578. package/package.json +71 -0
  579. package/plugin/build/index.d.ts +5 -0
  580. package/plugin/build/index.js +12 -0
  581. package/plugin/build/withLocation.d.ts +9 -0
  582. package/plugin/build/withLocation.js +77 -0
  583. package/plugin/build/withRemovePermissions.d.ts +3 -0
  584. package/plugin/build/withRemovePermissions.js +67 -0
  585. package/plugin/build/withVisionCamera.d.ts +8 -0
  586. package/plugin/build/withVisionCamera.js +68 -0
  587. package/plugin/src/index.ts +5 -0
  588. package/plugin/src/withLocation.ts +109 -0
  589. package/plugin/src/withRemovePermissions.js +85 -0
  590. package/plugin/src/withRemovePermissions.ts +83 -0
  591. package/plugin/src/withVisionCamera.js +88 -0
  592. package/plugin/src/withVisionCamera.ts +97 -0
  593. package/plugin/tsconfig.json +17 -0
  594. package/plugin/tsconfig.tsbuildinfo +1 -0
  595. package/plugin.js +19 -0
  596. package/src/App.tsx +9 -0
  597. package/src/TransfergratisSdk.types.ts +30 -0
  598. package/src/TransfergratisSdkModule.ts +16 -0
  599. package/src/TransfergratisSdkModule.web.ts +31 -0
  600. package/src/TransfergratisSdkView.tsx +11 -0
  601. package/src/TransfergratisSdkView.web.tsx +15 -0
  602. package/src/api/axios.ts +144 -0
  603. package/src/components/Camera/index.tsx +0 -0
  604. package/src/components/Camera/index.web.tsx +0 -0
  605. package/src/components/Camera/types.ts +0 -0
  606. package/src/components/ConfigurableKYCFlow.tsx +334 -0
  607. package/src/components/CustomCameraExample.tsx +274 -0
  608. package/src/components/EnhancedCameraView.tsx +482 -0
  609. package/src/components/EnhancedCameraView.web.tsx +597 -0
  610. package/src/components/FileUpload.tsx +249 -0
  611. package/src/components/KYCElementRenderer.tsx +106 -0
  612. package/src/components/KYCElements/AdditionalDocumentsTemplate.tsx +346 -0
  613. package/src/components/KYCElements/CameraCapture.tsx +268 -0
  614. package/src/components/KYCElements/CompletionStep.tsx +161 -0
  615. package/src/components/KYCElements/CountrySelection.tsx +177 -0
  616. package/src/components/KYCElements/CountrySelectionTemplate.tsx +526 -0
  617. package/src/components/KYCElements/DocumentTypeSelection.tsx +173 -0
  618. package/src/components/KYCElements/EmailVerificationTemplate.tsx +278 -0
  619. package/src/components/KYCElements/FileUpload.tsx +318 -0
  620. package/src/components/KYCElements/FileUploadTemplate.tsx +395 -0
  621. package/src/components/KYCElements/IDCardCapture.tsx +1053 -0
  622. package/src/components/KYCElements/InitializationStep.tsx +53 -0
  623. package/src/components/KYCElements/LocationCaptureTemplate.tsx +378 -0
  624. package/src/components/KYCElements/OrientationVideoCapture.tsx +649 -0
  625. package/src/components/KYCElements/OrientationVideoCaptureEnhanced.tsx +616 -0
  626. package/src/components/KYCElements/OrientationVideoCaptureFinal.tsx +534 -0
  627. package/src/components/KYCElements/PersonalInformationTemplate.tsx +158 -0
  628. package/src/components/KYCElements/PhoneVerificationTemplate.tsx +253 -0
  629. package/src/components/KYCElements/ReviewSubmitTemplate.tsx +201 -0
  630. package/src/components/KYCElements/SelfieCapture.tsx +284 -0
  631. package/src/components/KYCElements/SelfieCaptureTemplate.tsx +662 -0
  632. package/src/components/KYCElements/VerificationProgressTemplate.tsx +247 -0
  633. package/src/components/KYCElements/VerificationStep.tsx +234 -0
  634. package/src/components/KYCElements/WelcomeTemplate.tsx +290 -0
  635. package/src/components/KYCExample.tsx +297 -0
  636. package/src/components/KYCFlow.tsx +377 -0
  637. package/src/components/NativeCameraView.tsx +47 -0
  638. package/src/components/OverLay/IdCard.tsx +277 -0
  639. package/src/components/OverLay/SelfieOverlay.tsx +211 -0
  640. package/src/components/OverLay/StepOverlay.tsx +64 -0
  641. package/src/components/OverLay/type.ts +91 -0
  642. package/src/components/ProgressIndicator.tsx +62 -0
  643. package/src/components/SelfieCapture.tsx +244 -0
  644. package/src/components/SimpleExample.tsx +92 -0
  645. package/src/components/Svgs/GpsIcon.tsx +12 -0
  646. package/src/components/Svgs/Schield.tsx +26 -0
  647. package/src/components/Svgs/directionArrow.gif +0 -0
  648. package/src/components/Svgs/frontSelfieIcon.tsx +13 -0
  649. package/src/components/Svgs/scanningLine.tsx +88 -0
  650. package/src/components/Svgs/sideSelfieIcon.tsx +10 -0
  651. package/src/components/TemplateKYCExample.tsx +194 -0
  652. package/src/components/TemplateKYCFlowRefactored.tsx +473 -0
  653. package/src/components/VisionCameraView.tsx +197 -0
  654. package/src/components/example/CameraCaptureEx.tsx +335 -0
  655. package/src/components/example/CameraCaptureExAdvanced.tsx +357 -0
  656. package/src/components/example/CameraCaptureExScan.tsx +336 -0
  657. package/src/components/example/CameraCaptureExSimple.tsx +215 -0
  658. package/src/components/example/DynamicTemplateExample.tsx +289 -0
  659. package/src/components/example/OrientationVideoExample.tsx +380 -0
  660. package/src/components/example/SelfieCaptureEx.tsx +358 -0
  661. package/src/components/ui/Button.tsx +328 -0
  662. package/src/components/ui/ButtonExample.tsx +318 -0
  663. package/src/components/ui/ButtonStyles.ts +465 -0
  664. package/src/config/KYCConfig.ts +34 -0
  665. package/src/config/KYCConfigs.ts +528 -0
  666. package/src/config/allowedDomains.ts +133 -0
  667. package/src/config/countriesData.ts +85 -0
  668. package/src/config/region_mapping.json +735 -0
  669. package/src/config/region_mapping.ts +737 -0
  670. package/src/hooks/useI18n.ts +53 -0
  671. package/src/hooks/useKYC.ts +131 -0
  672. package/src/hooks/useKYCFlow.ts +248 -0
  673. package/src/hooks/useLocation.ts +221 -0
  674. package/src/hooks/useOrientationVideo.ts +149 -0
  675. package/src/hooks/useRealtimeVerifier.ts +128 -0
  676. package/src/hooks/useTemplateKYCFlow.tsx +1051 -0
  677. package/src/hooks/useTemplateLoader.ts +102 -0
  678. package/src/i18n/README.md +288 -0
  679. package/src/i18n/en/index.ts +275 -0
  680. package/src/i18n/fr/index.ts +260 -0
  681. package/src/i18n/index.ts +65 -0
  682. package/src/i18n/types.ts +182 -0
  683. package/src/i18n/usage-example.tsx +202 -0
  684. package/src/index.ts +25 -0
  685. package/src/modules/api/CardAuthentification.ts +589 -0
  686. package/src/modules/api/KYCService.ts +666 -0
  687. package/src/modules/api/SelfieVerification.ts +33 -0
  688. package/src/modules/api/TemplateService.ts +168 -0
  689. package/src/modules/api/backendApi.ts +8 -0
  690. package/src/modules/api/types.ts +59 -0
  691. package/src/modules/camera/NativeCameraModule.ts +170 -0
  692. package/src/modules/camera/UnifiedCameraModule.ts +160 -0
  693. package/src/modules/camera/VisionCameraModule.ts +334 -0
  694. package/src/modules/camera/VisionCameraModule.web.ts +679 -0
  695. package/src/modules/camera/index.ts +6 -0
  696. package/src/stores/kycStore.ts +161 -0
  697. package/src/types/KYC.types.ts +837 -0
  698. package/src/types/env.types.ts +13 -0
  699. package/src/utils/cropByObb.ts +254 -0
  700. package/src/utils/deviceDetection.ts +11 -0
  701. package/src/utils/get-document-type-info.ts +62 -0
  702. package/src/utils/logger.ts +48 -0
  703. package/src/utils/pathToBase64.ts +63 -0
  704. package/src/utils/platformAlert.ts +86 -0
  705. package/src/utils/remove-duplicate.ts +3 -0
  706. package/src/utils/template-transformer.ts +445 -0
  707. package/src/web/WebKYCEntry.tsx +375 -0
  708. package/src/web/index.ts +1 -0
@@ -0,0 +1,910 @@
1
+ import React, { useState, useCallback, useMemo, createContext, useContext, useEffect } from 'react';
2
+ import kycService, { authentification, truncateFields } from '../modules/api/KYCService';
3
+ import useI18n from './useI18n';
4
+ import { logger } from '../utils/logger';
5
+ import { countryMapping } from '../config/region_mapping';
6
+ import { countryData } from '../config/countriesData';
7
+ const TemplateKYCFlowContext = createContext(undefined);
8
+ export const TemplateKYCFlowProvider = ({ children, template, onComplete, onError, onCancel, initialLanguage = 'en', apiKey, env = 'PRODUCTION', existingSessionId, initialComponentIndex, initialCountryResume, }) => {
9
+ const hookResult = useTemplateKYCFlow(template, onComplete, onError, onCancel, initialLanguage, apiKey, env, existingSessionId, initialComponentIndex, initialCountryResume);
10
+ return (<TemplateKYCFlowContext.Provider value={hookResult}>
11
+ {children}
12
+ </TemplateKYCFlowContext.Provider>);
13
+ };
14
+ // Hook pour utiliser le context
15
+ export const useTemplateKYCFlowContext = () => {
16
+ const context = useContext(TemplateKYCFlowContext);
17
+ if (!context) {
18
+ throw new Error('useTemplateKYCFlowContext must be used within a TemplateKYCFlowProvider');
19
+ }
20
+ return context;
21
+ };
22
+ export const useTemplateKYCFlow = (template, onComplete, onError, onCancel, initialLanguage = 'en', apiKey, env = 'PRODUCTION', existingSessionId, initialComponentIndex, initialCountryResume) => {
23
+ const { setLocale } = useI18n();
24
+ useEffect(() => {
25
+ setLocale(initialLanguage);
26
+ }, [initialLanguage, apiKey]);
27
+ // Helpers to align SDK steps with backend actions/templates
28
+ const isUiOnlyStep = useCallback((type) => {
29
+ return type === 'verification_progress';
30
+ }, [apiKey]);
31
+ const ensureReviewSubmitStep = useCallback((tpl) => {
32
+ const hasReview = tpl.components.some(c => c.type === 'review_submit');
33
+ if (hasReview)
34
+ return tpl;
35
+ const lastOrder = tpl.components.reduce((acc, c) => Math.max(acc, c.order ?? 0), 0);
36
+ const lastId = tpl.components.reduce((acc, c) => Math.max(acc, c.id), 0);
37
+ const reviewComponent = {
38
+ id: lastId + 1,
39
+ type: 'review_submit',
40
+ order: lastOrder + 1,
41
+ labels: { en: 'Review & Submit', fr: 'Revoir & Soumettre' },
42
+ instructions: { en: 'Confirm and submit', fr: 'Confirmer et soumettre' },
43
+ ui: { buttonText: { en: 'Complete Verification', fr: 'Terminer la vérification' } },
44
+ // @ts-ignore - config unused for review component
45
+ config: {},
46
+ };
47
+ return {
48
+ ...tpl,
49
+ components: [...tpl.components, reviewComponent],
50
+ };
51
+ }, [apiKey]);
52
+ const ensureVerificationProgressStep = useCallback((tpl) => {
53
+ const hasVerification = tpl.components.some(c => c.type === 'verification_progress');
54
+ if (hasVerification)
55
+ return tpl;
56
+ const lastOrder = tpl.components.reduce((acc, c) => Math.max(acc, c.order ?? 0), 0);
57
+ const lastId = tpl.components.reduce((acc, c) => Math.max(acc, c.id), 0);
58
+ const verificationComponent = {
59
+ id: lastId + 2,
60
+ type: 'verification_progress',
61
+ order: lastOrder + 2,
62
+ labels: { en: 'Verification', fr: 'Vérification' },
63
+ instructions: { en: 'We\'re reviewing your documents', fr: 'Nous analysons vos documents' },
64
+ ui: { buttonText: { en: '', fr: '' } },
65
+ // @ts-ignore - config unused for progress component
66
+ config: {},
67
+ };
68
+ return {
69
+ ...tpl,
70
+ components: [...tpl.components, verificationComponent],
71
+ };
72
+ }, [apiKey]);
73
+ const templateWithReview = useMemo(() => ensureReviewSubmitStep(template), [template, ensureReviewSubmitStep, apiKey]);
74
+ const templateWithReviewAndVerification = useMemo(() => ensureVerificationProgressStep(templateWithReview), [templateWithReview, ensureVerificationProgressStep, apiKey]);
75
+ // État initial du flux (initialComponentIndex = index dans template.components pour reprendre au bon composant)
76
+ const buildInitialState = () => {
77
+ let resumeAtIndex = 0;
78
+ let completedComponents = [];
79
+ let initialComponentData = {};
80
+ logger.log('buildInitialState called', { initialComponentIndex, existingSessionId, initialCountryResume });
81
+ if (initialComponentIndex !== undefined && initialComponentIndex >= 0) {
82
+ const maxIndex = templateWithReviewAndVerification.components.length - 1;
83
+ const requestedIndex = Math.min(initialComponentIndex, maxIndex);
84
+ const requestedComponent = templateWithReviewAndVerification.components[requestedIndex];
85
+ logger.log('Processing initialComponentIndex (component in template)', {
86
+ initialComponentIndex,
87
+ requestedIndex,
88
+ maxIndex,
89
+ componentType: requestedComponent?.type,
90
+ componentId: requestedComponent?.id,
91
+ });
92
+ // Reprendre au composant en cours (id_card, selfie, etc.)
93
+ if (requestedComponent?.type === 'id_card') {
94
+ if (existingSessionId) {
95
+ logger.log('id_card with existing session - staying at id_card');
96
+ resumeAtIndex = requestedIndex;
97
+ if (resumeAtIndex > 0) {
98
+ completedComponents = templateWithReviewAndVerification.components
99
+ .slice(0, resumeAtIndex)
100
+ .map(component => component.id);
101
+ }
102
+ }
103
+ else {
104
+ const countrySelectionIndex = templateWithReviewAndVerification.components.findIndex(c => c.type === 'country_selection');
105
+ logger.log('id_card without session - going back to country_selection', { countrySelectionIndex });
106
+ if (countrySelectionIndex >= 0) {
107
+ resumeAtIndex = countrySelectionIndex;
108
+ if (countrySelectionIndex > 0) {
109
+ completedComponents = templateWithReviewAndVerification.components
110
+ .slice(0, countrySelectionIndex)
111
+ .map(component => component.id);
112
+ }
113
+ }
114
+ else {
115
+ resumeAtIndex = 0;
116
+ }
117
+ }
118
+ }
119
+ else if (requestedComponent?.type === 'review_submit') {
120
+ resumeAtIndex = requestedIndex;
121
+ completedComponents = [];
122
+ }
123
+ else {
124
+ resumeAtIndex = requestedIndex;
125
+ if (resumeAtIndex > 0) {
126
+ completedComponents = templateWithReviewAndVerification.components
127
+ .slice(0, resumeAtIndex)
128
+ .map(component => component.id);
129
+ }
130
+ }
131
+ logger.log('Final initial state (resume at component index)', {
132
+ resumeAtIndex,
133
+ completedComponentsCount: completedComponents.length,
134
+ componentAtResume: templateWithReviewAndVerification.components[resumeAtIndex]?.type,
135
+ });
136
+ }
137
+ if (initialCountryResume?.code && initialCountryResume?.documentType) {
138
+ const countrySel = templateWithReviewAndVerification.components.find(c => c.type === 'country_selection');
139
+ if (countrySel && countryData[initialCountryResume.code]) {
140
+ initialComponentData[countrySel.id] = {
141
+ code: initialCountryResume.code,
142
+ documentType: initialCountryResume.documentType,
143
+ region: initialCountryResume.region || 'root',
144
+ ...countryData[initialCountryResume.code],
145
+ };
146
+ logger.log('Prefilled country_selection from URL', { code: initialCountryResume.code, documentType: initialCountryResume.documentType });
147
+ }
148
+ }
149
+ return {
150
+ template: templateWithReviewAndVerification,
151
+ currentComponentIndex: resumeAtIndex,
152
+ completedComponents: completedComponents,
153
+ componentData: initialComponentData,
154
+ errors: {},
155
+ isProcessing: false,
156
+ currentLanguage: initialLanguage,
157
+ showCustomStepper: true,
158
+ session: {
159
+ session_id: existingSessionId || '',
160
+ token: '',
161
+ isInitialized: false,
162
+ isProcessing: false,
163
+ error: null,
164
+ sessionDataRestored: !existingSessionId || Boolean(initialCountryResume?.code && initialCountryResume?.documentType),
165
+ },
166
+ verification: {
167
+ status: 'idle',
168
+ },
169
+ };
170
+ };
171
+ // État du flux
172
+ const [state, setState] = useState(() => buildInitialState());
173
+ // Fonction utilitaire pour convertir base64 en data URI pour l'affichage
174
+ const base64ToDataUri = useCallback((base64, mimeType = 'image/jpeg') => {
175
+ // Si c'est déjà une data URI, retourner tel quel
176
+ if (base64.startsWith('data:')) {
177
+ return base64;
178
+ }
179
+ // Sinon, créer une data URI
180
+ return `data:${mimeType};base64,${base64}`;
181
+ }, []);
182
+ // Charger les données de session si on reprend une session existante
183
+ useEffect(() => {
184
+ const loadSessionData = async () => {
185
+ // Ne charger que si on a une session existante
186
+ if (!existingSessionId) {
187
+ logger.log('No existingSessionId, skipping data load');
188
+ return;
189
+ }
190
+ // Si initialComponentIndex n'est pas défini ou est 0, on ne charge pas (début de session)
191
+ if (initialComponentIndex === undefined || initialComponentIndex === 0) {
192
+ logger.log('initialComponentIndex is 0 or undefined, skipping data load');
193
+ return;
194
+ }
195
+ // Attendre que la session soit initialisée
196
+ if (!state.session.isInitialized || !state.session.session_id) {
197
+ logger.log('Session not initialized yet, waiting...', {
198
+ isInitialized: state.session.isInitialized,
199
+ sessionId: state.session.session_id
200
+ });
201
+ return;
202
+ }
203
+ try {
204
+ logger.log('Loading session data for resume:', { sessionId: existingSessionId, componentIndex: initialComponentIndex });
205
+ const result = await kycService.getVerificationResult(state.session.session_id);
206
+ const sessionData = result[state.session.session_id]?.data;
207
+ if (sessionData) {
208
+ // Restaurer les données des composants depuis la session
209
+ // Utiliser 'as any' car VerificationResult peut avoir des propriétés dynamiques
210
+ const data = sessionData;
211
+ const restoredComponentData = {};
212
+ // Parcourir les composants jusqu'au composant de reprise (inclu) pour restaurer leurs données
213
+ templateWithReviewAndVerification.components
214
+ .slice(0, initialComponentIndex + 1)
215
+ .forEach((component) => {
216
+ // Essayer de restaurer les données selon le type de composant
217
+ if (component.type === 'id_card' || component.type === 'file_upload') {
218
+ // Les documents peuvent être dans différentes structures
219
+ let documents = null;
220
+ // Chercher dans différentes structures possibles
221
+ if (data.documents) {
222
+ documents = data.documents;
223
+ }
224
+ else if (data.user_data?.documents) {
225
+ documents = data.user_data.documents;
226
+ }
227
+ else if (data.document_images) {
228
+ documents = data.document_images;
229
+ }
230
+ if (documents) {
231
+ // Convertir les images base64 en format utilisable
232
+ const restoredDocuments = {};
233
+ Object.keys(documents).forEach((key) => {
234
+ const doc = documents[key];
235
+ if (typeof doc === 'object' && doc !== null) {
236
+ // Si on a un fichier base64, créer une structure avec dir et file
237
+ if (doc.file || doc.base64) {
238
+ const base64Data = doc.file || doc.base64;
239
+ restoredDocuments[key] = {
240
+ dir: base64ToDataUri(base64Data), // Utiliser data URI pour l'affichage
241
+ file: base64Data, // Garder le base64 pour l'envoi
242
+ mrz: doc.mrz || '',
243
+ templatePath: doc.templatePath || '',
244
+ };
245
+ }
246
+ else {
247
+ // Sinon, garder la structure originale
248
+ restoredDocuments[key] = doc;
249
+ }
250
+ }
251
+ else if (typeof doc === 'string') {
252
+ // Si c'est directement une string base64
253
+ restoredDocuments[key] = {
254
+ dir: base64ToDataUri(doc),
255
+ file: doc,
256
+ mrz: '',
257
+ templatePath: '',
258
+ };
259
+ }
260
+ });
261
+ if (Object.keys(restoredDocuments).length > 0) {
262
+ restoredComponentData[component.id] = restoredDocuments;
263
+ }
264
+ }
265
+ }
266
+ else if (component.type === 'selfie') {
267
+ // Les selfies peuvent être dans sessionData.selfie_info
268
+ if (data.selfie_info) {
269
+ const selfieData = {};
270
+ const selfieInfo = data.selfie_info;
271
+ // Si selfie_info contient une image
272
+ if (selfieInfo.image) {
273
+ const base64Image = selfieInfo.image;
274
+ selfieData['front'] = {
275
+ dir: base64ToDataUri(base64Image),
276
+ file: base64Image,
277
+ };
278
+ }
279
+ // Si on a plusieurs orientations
280
+ if (selfieInfo.orientations) {
281
+ Object.keys(selfieInfo.orientations).forEach((orientation) => {
282
+ const img = selfieInfo.orientations[orientation];
283
+ if (img) {
284
+ selfieData[orientation] = {
285
+ dir: base64ToDataUri(img),
286
+ file: img,
287
+ };
288
+ }
289
+ });
290
+ }
291
+ if (Object.keys(selfieData).length > 0) {
292
+ restoredComponentData[component.id] = selfieData;
293
+ }
294
+ }
295
+ }
296
+ else if (component.type === 'country_selection') {
297
+ // Reconstruire country_selection au format attendu par IDCardCapture / CountrySelectionTemplate (code, documentType, region, regionMapping)
298
+ const meta = data.metadata || data.user_data || data;
299
+ const code = meta.country || meta.country_code || meta.code;
300
+ const documentType = meta.document_type || meta.documentType;
301
+ const region = meta.region;
302
+ if (code && documentType != null) {
303
+ const country = countryData[code];
304
+ const mapping = countryMapping[code];
305
+ if (country) {
306
+ restoredComponentData[component.id] = {
307
+ code,
308
+ ...country,
309
+ documentType,
310
+ region: region || undefined,
311
+ regionMapping: mapping || undefined,
312
+ };
313
+ logger.log('Restored country_selection for resume', { code, documentType, region });
314
+ }
315
+ else {
316
+ restoredComponentData[component.id] = { code, documentType, region: region || undefined, regionMapping: mapping || undefined };
317
+ }
318
+ }
319
+ else if (data.metadata || data.user_data) {
320
+ restoredComponentData[component.id] = {
321
+ ...(data.metadata || {}),
322
+ ...(data.user_data || {}),
323
+ };
324
+ }
325
+ }
326
+ else if (component.type === 'location') {
327
+ // Les données de localisation peuvent être dans metadata
328
+ if (data.metadata?.location || data.user_data?.location) {
329
+ restoredComponentData[component.id] = {
330
+ ...(data.metadata?.location || {}),
331
+ ...(data.user_data?.location || {}),
332
+ };
333
+ }
334
+ }
335
+ });
336
+ // 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")
337
+ const countrySelectionComponent = templateWithReviewAndVerification.components.find(c => c.type === 'country_selection');
338
+ if (countrySelectionComponent && !restoredComponentData[countrySelectionComponent.id] && data.documents) {
339
+ const docs = data.documents;
340
+ const firstDoc = Object.values(docs).find(d => d?.templatePath);
341
+ const path = firstDoc?.templatePath || '';
342
+ const match = path.match(/([a-z_]+)_([A-Z]{2})(?:_|$)/i) || path.match(/([A-Z]{2})/);
343
+ const code = match ? (match[2] || match[1]).toUpperCase().slice(0, 2) : null;
344
+ const docTypeFromPath = path.match(/(national_id|identity_card|passport|passport_card)/i)?.[1]?.toLowerCase().replace('identity_card', 'national_id') || null;
345
+ if (code && countryData[code]) {
346
+ const documentType = docTypeFromPath || 'national_id';
347
+ const mapping = countryMapping[code];
348
+ const country = countryData[code];
349
+ restoredComponentData[countrySelectionComponent.id] = {
350
+ code,
351
+ ...country,
352
+ documentType,
353
+ region: undefined,
354
+ regionMapping: mapping || undefined,
355
+ };
356
+ logger.log('Restored country_selection from document templatePath', { code, documentType, path });
357
+ }
358
+ }
359
+ // Mettre à jour l'état avec les données restaurées
360
+ if (Object.keys(restoredComponentData).length > 0) {
361
+ logger.log('Session data restored - components:', Object.keys(restoredComponentData));
362
+ logger.log('Session data restored - sample data:', truncateFields(restoredComponentData));
363
+ setState(prev => ({
364
+ ...prev,
365
+ componentData: {
366
+ ...prev.componentData,
367
+ ...restoredComponentData,
368
+ },
369
+ session: { ...prev.session, sessionDataRestored: true },
370
+ }));
371
+ logger.log('Component data updated in state');
372
+ }
373
+ else {
374
+ logger.log('No component data to restore from session');
375
+ setState(prev => ({ ...prev, session: { ...prev.session, sessionDataRestored: true } }));
376
+ }
377
+ }
378
+ else {
379
+ setState(prev => ({ ...prev, session: { ...prev.session, sessionDataRestored: true } }));
380
+ }
381
+ }
382
+ catch (error) {
383
+ logger.error('Error loading session data:', truncateFields(error));
384
+ setState(prev => ({ ...prev, session: { ...prev.session, sessionDataRestored: true } }));
385
+ }
386
+ };
387
+ loadSessionData();
388
+ }, [existingSessionId, initialComponentIndex, state.session.isInitialized, state.session.session_id, templateWithReviewAndVerification.components, base64ToDataUri]);
389
+ // Si l'index pointe vers Review alors que des étapes ne sont pas complétées, ramener à la première étape incomplète
390
+ useEffect(() => {
391
+ const comp = state.template.components[state.currentComponentIndex];
392
+ if (!comp || comp.type !== 'review_submit')
393
+ return;
394
+ const nonReview = state.template.components.filter(c => c.type !== 'review_submit' && c.type !== 'verification_progress');
395
+ if (nonReview.every(c => state.completedComponents.includes(c.id)))
396
+ return;
397
+ const firstIncomplete = nonReview.find(c => !state.completedComponents.includes(c.id));
398
+ if (!firstIncomplete)
399
+ return;
400
+ const targetIndex = state.template.components.findIndex(c => c.id === firstIncomplete.id);
401
+ if (targetIndex >= 0 && targetIndex !== state.currentComponentIndex) {
402
+ setState(prev => ({ ...prev, currentComponentIndex: targetIndex }));
403
+ }
404
+ }, [state.currentComponentIndex, state.completedComponents, state.template.components]);
405
+ const mapComponentTypeToAction = useCallback((type) => {
406
+ switch (type) {
407
+ case 'id_card':
408
+ case 'file_upload':
409
+ return 'document_upload';
410
+ case 'selfie':
411
+ return 'selfie_capture';
412
+ case 'location':
413
+ return 'location_permission';
414
+ case 'review_submit':
415
+ return 'final_submit';
416
+ case 'country_selection':
417
+ // No direct backend action; pack into metadata of next actionable step
418
+ return null;
419
+ case 'welcome':
420
+ // UI-only step, no backend action needed
421
+ return null;
422
+ case 'initialization':
423
+ return 'initialize_session';
424
+ case 'verification_progress':
425
+ return null; // UI-only
426
+ default:
427
+ return null;
428
+ }
429
+ }, []);
430
+ const chooseTemplateId = useCallback((tpl) => {
431
+ const types = tpl.components.map(c => c.type);
432
+ const hasLocation = types.includes('location');
433
+ const hasSelfie = types.includes('selfie');
434
+ const hasIdDoc = types.includes('id_card') || types.includes('file_upload');
435
+ // Simple heuristic to map to backend examples
436
+ if (hasLocation && hasSelfie && hasIdDoc)
437
+ return 'enhanced_id';
438
+ if (hasSelfie && hasIdDoc)
439
+ return 'standard_passport';
440
+ return 'standard_passport';
441
+ }, [apiKey]);
442
+ const computeServerStepIndex = useCallback((tpl, upToIndex) => {
443
+ // Count actionable steps before the current component (exclude UI-only and country_selection)
444
+ const actionable = tpl.components
445
+ .slice(0, upToIndex)
446
+ .filter(c => !isUiOnlyStep(c.type) && mapComponentTypeToAction(c.type) !== null);
447
+ return actionable.length; // 0-based
448
+ }, [isUiOnlyStep, mapComponentTypeToAction, apiKey]);
449
+ // Build backend-friendly payloads per action
450
+ const buildPayloadForComponent = useCallback((action, component, rawData, templateId, step) => {
451
+ console.log('apiKey in buildPayloadForComponent', apiKey);
452
+ const base = { template_id: templateId || null, templateId: templateId || null, step: component.order, permissionGranted: true };
453
+ if (!action) {
454
+ return base;
455
+ }
456
+ // Document upload expects documents; include country_selection in metadata so resume can restore it
457
+ if (action === 'document_upload') {
458
+ const documents = {};
459
+ if (rawData && typeof rawData === 'object') {
460
+ Object.keys(rawData).forEach((key) => {
461
+ documents[key] = rawData[key];
462
+ });
463
+ }
464
+ const countryComp = state.template.components.find(c => c.type === 'country_selection');
465
+ const countryDataForPayload = countryComp ? state.componentData[countryComp.id] : null;
466
+ const metadata = {};
467
+ if (countryDataForPayload?.code) {
468
+ metadata.country = countryDataForPayload.code;
469
+ metadata.document_type = countryDataForPayload.documentType;
470
+ if (countryDataForPayload.region != null)
471
+ metadata.region = countryDataForPayload.region;
472
+ }
473
+ return {
474
+ ...base,
475
+ documents,
476
+ ...(Object.keys(metadata).length > 0 ? { metadata } : {}),
477
+ };
478
+ }
479
+ if (action === 'selfie_capture') {
480
+ const documents = {};
481
+ if (rawData && typeof rawData === 'object') {
482
+ Object.keys(rawData).forEach((key) => {
483
+ documents[key] = rawData[key];
484
+ });
485
+ }
486
+ const idCardID = Object.keys(state.componentData).find((c) => c === "1");
487
+ if (idCardID) {
488
+ const _idCardData = state.componentData[idCardID];
489
+ const documentType = _idCardData?.documentType;
490
+ // Map national_id to identity_card for selfie capture
491
+ const mappedDocumentType = documentType === 'national_id' ? 'identity_card' : (documentType || 'identity_card');
492
+ return { ...base, documents, country: _idCardData?.country || '', documentType: mappedDocumentType };
493
+ }
494
+ return { ...base, documents };
495
+ }
496
+ if (action === 'location_permission') {
497
+ return { ...base, ...({ metadata: rawData || {} }), ...({ permissionGranted: true, }) };
498
+ }
499
+ // Default: wrap as metadata
500
+ return { ...base, metadata: { ...(rawData || {}) } };
501
+ }, [state.componentData, apiKey]);
502
+ // Ensure the template contains a final review step
503
+ // console.log('apiKey in useTemplateKYCFlow', apiKey);
504
+ // Composant actuel (peut être redirigé si on pointe vers Review alors que le flux n'est pas terminé)
505
+ const currentComponent = useMemo(() => {
506
+ const comp = state.template.components[state.currentComponentIndex] || null;
507
+ if (!comp || comp.type !== 'review_submit')
508
+ return comp;
509
+ const nonReview = state.template.components.filter(c => c.type !== 'review_submit' && c.type !== 'verification_progress');
510
+ const allDone = nonReview.every(c => state.completedComponents.includes(c.id));
511
+ if (allDone)
512
+ return comp;
513
+ const firstIncomplete = nonReview.find(c => !state.completedComponents.includes(c.id));
514
+ return firstIncomplete || comp;
515
+ }, [state.template.components, state.currentComponentIndex, state.completedComponents, apiKey]);
516
+ // Progression du flux (basée sur le composant effectivement affiché)
517
+ const progress = useMemo(() => {
518
+ const idx = currentComponent
519
+ ? state.template.components.findIndex(c => c.id === currentComponent.id)
520
+ : state.currentComponentIndex;
521
+ const i = idx >= 0 ? idx : state.currentComponentIndex;
522
+ return state.template.components.length > 0
523
+ ? ((i + 1) / state.template.components.length) * 100
524
+ : 0;
525
+ }, [currentComponent, state.template.components, state.currentComponentIndex, apiKey]);
526
+ // Vérifications de navigation
527
+ const canGoNext = useMemo(() => {
528
+ return state.currentComponentIndex < state.template.components.length - 1;
529
+ }, [state.currentComponentIndex, state.template.components.length, apiKey]);
530
+ const canGoPrevious = useMemo(() => {
531
+ return state.currentComponentIndex > 0;
532
+ }, [state.currentComponentIndex, apiKey]);
533
+ const isComplete = useMemo(() => {
534
+ const atReview = state.template.components[state.currentComponentIndex]?.type === 'review_submit';
535
+ const nonReviewCount = state.template.components.filter(c => c.type !== 'review_submit').length;
536
+ const completedNonReview = state.completedComponents.length >= nonReviewCount;
537
+ return atReview && completedNonReview;
538
+ }, [state.currentComponentIndex, state.completedComponents.length, state.template.components, apiKey]);
539
+ // Fonction pour obtenir le texte localisé
540
+ const getLocalizedText = useCallback((text) => {
541
+ return text[state.currentLanguage] || text.en || '';
542
+ }, [state.currentLanguage, apiKey]);
543
+ const initializeSession = useCallback(async () => {
544
+ try {
545
+ setState(prev => ({
546
+ ...prev,
547
+ session: {
548
+ ...prev.session,
549
+ isInitialized: false,
550
+ isProcessing: true,
551
+ error: null,
552
+ },
553
+ }));
554
+ logger.log('Initializing session');
555
+ const token = apiKey ? undefined : await authentification();
556
+ console.log('token in initializeSession', { token, apiKey });
557
+ // Check if we already have a session ID from URL params (passed via state or prop)
558
+ let session;
559
+ const existingSessionId = state.session.session_id; // This might be set from initial props if we add logic for it
560
+ if (existingSessionId && existingSessionId.length > 0) {
561
+ logger.log('Resuming existing session:', existingSessionId);
562
+ // Verify existence/validity if needed, for now trust the ID and just fetch/use it
563
+ session = { session_id: existingSessionId };
564
+ }
565
+ else {
566
+ session = await kycService.newSession({ token, apiKey });
567
+ }
568
+ // Align backend flow from step 0 with initialize_session
569
+ try {
570
+ const templateId = chooseTemplateId(templateWithReviewAndVerification);
571
+ await kycService.verificationSession({
572
+ session_id: session.session_id,
573
+ step: 0,
574
+ data: { template_id: templateId, metadata: { language: initialLanguage } },
575
+ templateId: templateId,
576
+ token: token,
577
+ action: 'initialize_session',
578
+ apiKey: apiKey,
579
+ });
580
+ }
581
+ catch (e) {
582
+ logger.error('Error initializing session:', JSON.stringify(e, null, 2));
583
+ // Non-fatal: we will surface errors via state below if needed
584
+ }
585
+ setState(prev => ({
586
+ ...prev,
587
+ session: {
588
+ ...prev.session,
589
+ session_id: session.session_id,
590
+ token: token,
591
+ isInitialized: true,
592
+ isProcessing: false,
593
+ error: null,
594
+ }
595
+ }));
596
+ }
597
+ catch (error) {
598
+ logger.error('Error initializing session:', JSON.stringify(error, null, 2));
599
+ setState(prev => ({
600
+ ...prev,
601
+ session: {
602
+ ...prev.session,
603
+ isInitialized: false,
604
+ isProcessing: false,
605
+ error: "Erreur lors de l'initialisation de la session",
606
+ },
607
+ }));
608
+ }
609
+ }, [apiKey]);
610
+ // When user switches device: resume with existingSessionId + initialStep — ensure session is initialized so loadSessionData runs
611
+ useEffect(() => {
612
+ if (!existingSessionId || state.session.isInitialized)
613
+ return;
614
+ if (state.session.session_id !== existingSessionId)
615
+ return;
616
+ logger.log('Resuming on new device: initializing session so data can load', { existingSessionId, initialComponentIndex });
617
+ initializeSession();
618
+ }, [existingSessionId, state.session.session_id, state.session.isInitialized, initializeSession]);
619
+ // Validation d'un composant (dataOverride permet de valider sans attendre la mise à jour du state)
620
+ const validateComponent = useCallback((componentId, dataOverride) => {
621
+ const component = state.template.components.find(c => c.id === componentId);
622
+ if (!component)
623
+ return false;
624
+ const componentData = dataOverride !== undefined ? dataOverride : state.componentData[componentId];
625
+ switch (component.type) {
626
+ case 'id_card':
627
+ // Vérifier si au moins un côté a été capturé
628
+ return componentData && Object.keys(componentData).length > 0;
629
+ case 'selfie':
630
+ // Vérifier si toutes les orientations ont été capturées
631
+ const config = component.config;
632
+ const orientations = config.orientations || ['front'];
633
+ return componentData && orientations.every((orientation) => componentData[orientation]);
634
+ case 'file_upload':
635
+ // Vérifier si un fichier a été uploadé
636
+ return componentData && componentData.file;
637
+ case 'location':
638
+ // Vérifier si la localisation a été obtenue
639
+ return componentData && componentData.latitude && componentData.longitude;
640
+ case 'country_selection':
641
+ // Vérifier si un pays a été sélectionné
642
+ logger.log("componentData", truncateFields(componentData), componentId);
643
+ return componentData && componentData.code && componentData.regionMapping;
644
+ case 'welcome':
645
+ // Welcome is valid once user has given consent (componentData is set when they click Get Started)
646
+ return componentData && componentData.consentGiven !== false;
647
+ case 'email_verification':
648
+ return componentData && componentData.verified === true;
649
+ case 'phone_verification':
650
+ return componentData && componentData.verified === true;
651
+ case 'personal_information':
652
+ return componentData && Object.keys(componentData).length > 0;
653
+ case 'additional_documents':
654
+ // Optional by default in template config, but if required we should check based on config
655
+ // For now, return true or check length if present
656
+ return true;
657
+ case 'review_submit':
658
+ return true;
659
+ default:
660
+ return false;
661
+ }
662
+ }, [state.template.components, state.componentData, apiKey]);
663
+ // Actions du flux
664
+ const actions = {
665
+ // Initialiser le template
666
+ initializeTemplate: useCallback((newTemplate) => {
667
+ const withReview = ensureReviewSubmitStep(newTemplate);
668
+ const withVerification = ensureVerificationProgressStep(withReview);
669
+ setState(prev => ({
670
+ ...prev,
671
+ template: withVerification,
672
+ currentComponentIndex: 0,
673
+ completedComponents: [],
674
+ componentData: {},
675
+ errors: {},
676
+ isProcessing: false,
677
+ verification: { status: 'idle', result: undefined },
678
+ }));
679
+ }, [ensureReviewSubmitStep, ensureVerificationProgressStep, apiKey]),
680
+ // Passer au composant suivant (overrideData = données du step courant si déjà connues, évite un double clic)
681
+ nextComponent: useCallback(async (overrideData) => {
682
+ if (!canGoNext)
683
+ return;
684
+ const currentComp = state.template.components[state.currentComponentIndex];
685
+ if (!currentComp)
686
+ return;
687
+ // Prevent multiple simultaneous calls
688
+ setState(prev => {
689
+ if (prev.isProcessing) {
690
+ return prev;
691
+ }
692
+ return {
693
+ ...prev,
694
+ isProcessing: true,
695
+ };
696
+ });
697
+ // Valider avec override ou state
698
+ if (!validateComponent(currentComp.id, overrideData)) {
699
+ setState(prev => ({
700
+ ...prev,
701
+ isProcessing: false,
702
+ errors: {
703
+ ...prev.errors,
704
+ [currentComp.id]: state.currentLanguage === "en" ? "please complete this step before moving on" : " 'Veuillez compléter cette étape avant de continuer'"
705
+ }
706
+ }));
707
+ return;
708
+ }
709
+ try {
710
+ const component = state.template.components.find(c => c.id === currentComp.id);
711
+ if (!component) {
712
+ setState(prev => ({
713
+ ...prev,
714
+ isProcessing: false,
715
+ }));
716
+ return;
717
+ }
718
+ if (component.type === 'review_submit') {
719
+ setState(prev => ({
720
+ ...prev,
721
+ currentComponentIndex: prev.currentComponentIndex + 1,
722
+ completedComponents: [...prev.completedComponents, currentComp.id],
723
+ componentData: overrideData !== undefined ? { ...prev.componentData, [currentComp.id]: overrideData } : prev.componentData,
724
+ isProcessing: false,
725
+ verification: { status: 'in_progress' },
726
+ errors: { ...prev.errors, [currentComp.id]: '' }
727
+ }));
728
+ return;
729
+ }
730
+ // Determine backend action and step index
731
+ const action = mapComponentTypeToAction(component.type);
732
+ const templateId = chooseTemplateId(state.template);
733
+ const serverStep = computeServerStepIndex(state.template, state.currentComponentIndex);
734
+ // Optionally send initialize_session at step 0 before first actionable action
735
+ if (serverStep === 0) {
736
+ try {
737
+ // await kycService.verificationSession({
738
+ // sessionId: state.session.session_id,
739
+ // step: 0,
740
+ // data: { template_id: templateId, metadata: { language: state.currentLanguage } },
741
+ // templateId: templateId,
742
+ // token: state.session.token,
743
+ // action: 'initialize_session'
744
+ // });
745
+ }
746
+ catch (e) {
747
+ // if init fails, surface error below in the main call handling
748
+ }
749
+ }
750
+ // Skip UI-only and data-only steps that have no backend action
751
+ if (!action) {
752
+ setState(prev => ({
753
+ ...prev,
754
+ currentComponentIndex: prev.currentComponentIndex + 1,
755
+ completedComponents: [...prev.completedComponents, currentComp.id],
756
+ componentData: overrideData !== undefined ? { ...prev.componentData, [currentComp.id]: overrideData } : prev.componentData,
757
+ isProcessing: false,
758
+ errors: { ...prev.errors, [currentComp.id]: '' }
759
+ }));
760
+ return;
761
+ }
762
+ const step = serverStep === 0 && action !== 'initialize_session' ? 1 : serverStep;
763
+ const currentStepData = overrideData !== undefined ? overrideData : state.componentData[currentComp.id];
764
+ const payloadData = buildPayloadForComponent(action, component, currentStepData, templateId, step);
765
+ console.log('payloadData', action, apiKey);
766
+ await kycService.verificationSession({
767
+ session_id: state.session.session_id,
768
+ step: step,
769
+ data: payloadData,
770
+ templateId: templateId,
771
+ token: state.session.token,
772
+ action: action,
773
+ apiKey: apiKey ?? "-",
774
+ });
775
+ logger.log("currentComp state", truncateFields(state));
776
+ setState(prev => ({
777
+ ...prev,
778
+ currentComponentIndex: prev.currentComponentIndex + 1,
779
+ completedComponents: [...prev.completedComponents, currentComp.id],
780
+ componentData: overrideData !== undefined ? { ...prev.componentData, [currentComp.id]: overrideData } : prev.componentData,
781
+ isProcessing: false,
782
+ ...(action === "location_permission" ? { permissionGranted: true } : {}),
783
+ errors: { ...prev.errors, [currentComp.id]: '' }
784
+ }));
785
+ }
786
+ catch (error) {
787
+ logger.error('Error in nextComponent:', error);
788
+ setState(prev => ({
789
+ ...prev,
790
+ isProcessing: false,
791
+ errors: {
792
+ ...prev.errors,
793
+ [currentComp.id]: 'Erreur lors de la validation du composant'
794
+ }
795
+ }));
796
+ }
797
+ }, [canGoNext, state.currentComponentIndex, state.template.components, validateComponent, apiKey, state.session.session_id, state.session.token, buildPayloadForComponent, mapComponentTypeToAction, chooseTemplateId, state.currentLanguage]),
798
+ // Retourner au composant précédent
799
+ previousComponent: useCallback(() => {
800
+ if (!canGoPrevious)
801
+ return;
802
+ setState(prev => ({
803
+ ...prev,
804
+ currentComponentIndex: prev.currentComponentIndex - 1,
805
+ }));
806
+ }, [canGoPrevious, apiKey]),
807
+ // Aller à un composant spécifique
808
+ goToComponent: useCallback((componentId) => {
809
+ const componentIndex = state.template.components.findIndex(c => c.id === componentId);
810
+ if (componentIndex !== -1) {
811
+ setState(prev => ({
812
+ ...prev,
813
+ currentComponentIndex: componentIndex,
814
+ }));
815
+ }
816
+ }, [state.template.components, apiKey]),
817
+ // Mettre à jour les données d'un composant
818
+ updateComponentData: useCallback((componentId, data) => {
819
+ logger.log("updateComponentData", componentId, JSON.stringify(truncateFields(data), null, 2));
820
+ setState(prev => ({
821
+ ...prev,
822
+ componentData: {
823
+ ...prev.componentData,
824
+ [componentId]: data
825
+ },
826
+ errors: {
827
+ ...prev.errors,
828
+ [componentId]: ''
829
+ }
830
+ }));
831
+ }, [apiKey]),
832
+ // Valider un composant
833
+ validateComponent: useCallback((componentId, dataOverride) => {
834
+ return validateComponent(componentId, dataOverride);
835
+ }, [validateComponent, apiKey]),
836
+ // complet verification
837
+ submitVerification: useCallback(async () => {
838
+ setState(prev => ({ ...prev, isProcessing: true }));
839
+ try {
840
+ onComplete?.(state.verification);
841
+ }
842
+ catch (error) {
843
+ setState(prev => ({ ...prev, isProcessing: false }));
844
+ }
845
+ }, [state.session.session_id, state.verification, onComplete, apiKey]),
846
+ // Soumettre le template complet
847
+ submitTemplate: useCallback(async () => {
848
+ // Allow submission when on the review step and all previous steps are valid
849
+ const atReview = state.template.components[state.currentComponentIndex]?.type === 'review_submit';
850
+ const allValid = state.template.components
851
+ .filter(c => c.type !== 'review_submit')
852
+ .every(comp => validateComponent(comp.id));
853
+ if (!(atReview && allValid)) {
854
+ onError?.('Le flux KYC n\'est pas encore terminé');
855
+ return;
856
+ }
857
+ setState(prev => ({ ...prev, isProcessing: true }));
858
+ try {
859
+ // Vérifier que tous les composants (hors review) sont validés
860
+ if (!allValid)
861
+ throw new Error('Certaines étapes ne sont pas complètes');
862
+ // Appeler le callback de completion
863
+ // onComplete?.(state.componentData);
864
+ setState(prev => ({ ...prev, isProcessing: false }));
865
+ }
866
+ catch (error) {
867
+ setState(prev => ({ ...prev, isProcessing: false }));
868
+ onError?.(error instanceof Error ? error.message : 'Erreur lors de la soumission');
869
+ }
870
+ }, [state.template.components, state.verification, state.currentComponentIndex, validateComponent, state.componentData, onComplete, onError, apiKey]),
871
+ // Réinitialiser le template
872
+ resetTemplate: useCallback(() => {
873
+ setState(buildInitialState());
874
+ }, [buildInitialState, apiKey]),
875
+ // Changer la langue
876
+ setLanguage: useCallback((language) => {
877
+ setState(prev => ({
878
+ ...prev,
879
+ currentLanguage: language,
880
+ }));
881
+ }, [apiKey]),
882
+ // Afficher le stepper personnalisé
883
+ showCustomStepper: useCallback((show) => {
884
+ setState(prev => ({
885
+ ...prev,
886
+ showCustomStepper: show,
887
+ }));
888
+ }, [apiKey]),
889
+ setVerificationState: useCallback((verificationState) => {
890
+ setState(prev => ({
891
+ ...prev,
892
+ verification: verificationState,
893
+ }));
894
+ }, [apiKey]),
895
+ };
896
+ return {
897
+ state,
898
+ actions,
899
+ currentComponent,
900
+ progress,
901
+ canGoNext,
902
+ canGoPrevious,
903
+ isComplete,
904
+ getLocalizedText,
905
+ initializeSession,
906
+ env,
907
+ apiKey,
908
+ };
909
+ };
910
+ //# sourceMappingURL=useTemplateKYCFlow.js.map